@charset "UTF-8";
.page_top .ttl-h2 {
    margin-bottom: 2rem;
}
.page_top .ttl-h2 span.en {
    font-size: 4.6rem;
    font-weight: 900;
    letter-spacing: 0.025em;
    line-height: 1.2;
    display: inline-block;
}
.page_top .ttl-h2 span.en:first-letter {
    color: #FF5611;
}
.page_top .ttl-h2 span:not(.en) {
    font-size: 1.3rem;
    font-weight: bold;
    padding-left: 2rem;
    display: block;
    letter-spacing: 0.05em;
}
.page_top .ttl-h2 span:not(.en)::before {
    content: "";
    position: absolute;
    width: 1.1rem;
    height: .2rem;
    background: #FF5611;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
}

.page_top p {
    font-size: 1.4rem;
    line-height: 2;
    letter-spacing: 0.025em;
    margin-bottom: 2.5rem;
    font-weight: normal;
}


@media only screen and (min-width: 768px) {
}
@media only screen and (max-width: 767px) {
    .wrapper {
        overflow: hidden;
    }
    .page_top.contents {
        overflow: visible;
    }
    .page_top.contents::before {
        content: "";
        position: absolute;
        background: url("../img/top/bg-contents01-sp.png") no-repeat;
        background-size: 100%;
        background-position: top;
        width: 100%;
        height: 8.76%;
        z-index: 1;
        top: calc(-135 / 375 * 100vw);
    }
	  
}


.about_block {
    padding: 13.6rem 0 13rem;
}
.about_block::after {
    content: "";
    position: absolute;
    width: 19.4rem;
    height: 19.4rem;
    background: #FF5611;
    opacity: .11;
    border-radius: 50%;
    left: 50%;
    bottom: -2.5rem;
    transform: translateX(9rem);
}
.about_block::before {
    content: "";
    position: absolute;
    width: 9.3rem;
    height: 9.3rem;
    background: #fff;
    opacity: .8;
    border-radius: 50%;
    left: 50%;
    bottom: -5.5rem;
    transform: translateX(6.5rem);
}
.about_block h2 {
    margin: 0 auto 3rem;
    max-width: 28.8rem;
}

@media only screen and (min-width: 768px) {
    .about_block {
        background: url("../img/top/bg-contents01.png") no-repeat;
        background-size: 100%;
        background-position: bottom;
        padding: 136px 0 130px;
    }
}
@media only screen and (max-width: 767px) {
    .about_block {
        background: none;
        padding-top: 0;
        z-index: 2;
    }
}



.business_block {
    padding: 6.4rem 2.5rem 4.0rem;
}
.business_block h2.ttl-h2 span.en {
    text-indent: -.4rem;
    display: inline-block;
}
.business_block h2.ttl-h2 + p {
    text-indent: -.6rem;
    margin-left: -.3rem;
}
.business_block h3 {
    font-size: 2.2rem;
    font-weight: bold;
    position: absolute;
    bottom: -6rem;
    left: -.6rem;
    z-index: 1;
}
.business_block h3 span.en {
    display: inline-block;
    font-size: 3.9rem;
    font-weight: bold;
    color: #fff;
    line-height: 1.2;
    padding: .4rem 1.3rem;
    margin-bottom: .4rem;
}
.business_block h3.sttl_care span.en {
    background: #FF5611;
}
.business_block h3.sttl_cure span.en {
    background: #4584DB;
}
.business_block h3.sttl_project span.en {
    background: -webkit-linear-gradient(360deg, #FF5611, #4584DB);
    background: -o-linear-gradient(360deg, #FF5611, #4584DB);
    background: linear-gradient(90deg, #FF5611, #4584DB);
}
.business_block .btn_more {
    margin: 7.7rem 2.5rem 0;
}
@media only screen and (min-width: 768px) {

}
@media only screen and (max-width: 767px) {
	  
}


.works_block {
    padding: 4.0rem 0 2.5rem;
    padding-top: 8rem;
    margin-top: -4rem;
}
.works_block::after {
    content: "";
    position: absolute;
    width: 4.6rem;
    height: 4.6rem;
    background: #FF5611;
    opacity: .24;
    border-radius: 50%;
    left: 50%;
    top: 6.5rem;
    transform: translateX(9rem);
}
.works_block::before {
    content: "";
    position: absolute;
    width: 14.2rem;
    height: 14.2rem;
    background: #fff;
    opacity: 1;
    border-radius: 50%;
    left: 50%;
    top: 13rem;
    transform: translateX(6.5rem);
}
.works_block h2.ttl-h2 + p {
    text-indent: -.8rem;
}
.works_block > *:not(.works_list) {
    padding: 0 2.5rem;
}
.works_list-item {
    margin-bottom: .1rem;
}
.works_list-item a {
    display: block;
}
.works_list-item figure::before {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    background: #141B22;
    opacity: .55;
}
.works_list-item figcaption {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    font-size: 1.4rem;
    font-weight: bold;
    letter-spacing: 0.05em;
    color: #EE6E02;
    text-align: center;
}
.works_list-item figcaption span {
    display: block;
    font-size: 3rem;
    font-weight: 900;
    letter-spacing: 0.025em;
    color: #fff;
}

@media only screen and (min-width: 768px) {
	
}
@media only screen and (max-width: 767px) {
	  
}


.environment_block {
    padding: 4rem 0 6rem;
}
.environment_block::after {
    content: "";
    position: absolute;
    width: 7.4rem;
    height: 7.4rem;
    background: #FF5611;
    opacity: .24;
    border-radius: 50%;
    left: 50%;
    bottom: -3.5rem;
    transform: translateX(-22.5rem);
}
.environment_block::before {
    content: "";
    position: absolute;
    width: 14.2rem;
    height: 14.2rem;
    background: #fff;
    opacity: 1;
    border-radius: 50%;
    left: 50%;
    top: 19.1rem;
    transform: translateX(6.5rem);
}

.environment_block > *:not(figure) {
    padding: 0 2.5rem;
}
.environment_block h2.ttl-h2 span.en {
    margin-left: -.3rem;
}
.environment_block h2.ttl-h2 + p {
    text-indent: -.6rem;
    padding: 0 2.2rem;
}
.environment_block .btn_more {
    padding: 0;
    margin-top: 3rem;
}


@media only screen and (min-width: 768px) {
}
@media only screen and (max-width: 767px) {
	  
}



.person_block {
    padding: 8rem 0 0;
}
.person_block::before {
    content: "";
    position: absolute;
    width: 0;
    height: 0;
    border-style: solid;
    border-color: transparent transparent #ff5611 transparent;
    border-width: 0 0 21vw 100vw;
    left: 0;
    top: .2rem;
}
.person_inner {
    background: #FF5611;
    color: #fff;
    padding: 6.5rem 2.5rem 13.5rem;
}
.person_inner::after {
    content: "";
    position: absolute;
    width: 6.1rem;
    height: 6.1rem;
    background: #fff;
    opacity: .24;
    border-radius: 50%;
    left: 50%;
    top: 0;
    transform: translateX(7.7rem);
}
.person_inner::before {
    content: "";
    position: absolute;
    width: 14.2rem;
    height: 14.2rem;
    background: #fff;
    opacity: .17;
    border-radius: 50%;
    left: 50%;
    top: 0;
    transform: translateX(9.6rem);
}


.person_block .ttl-h2 span:not(.en)::before {
    background: #fff;
}
.person_block .ttl-h2 span.en {
    margin-left: -.3rem;
}
.person_block .ttl-h2 span.en:first-letter {
    color: #FFDB7B;
}
.person_block h2.ttl-h2 + p {
    text-indent: -.8rem;
}


.person_slide_inner::before {
    content: "";
    position: absolute;
    background: url("../img/top/bg-person.png") no-repeat;
    background-size: 100% 100%;
    width: 40.9rem;
    height: 38.9rem;
    left: 2.4rem;
    top: -1.7rem;
}
.person_slide {
    overflow: hidden;
}
.person_slide-item figure {
    width: 24.2rem;
    margin: 0 auto;
}

.person_slide-item h3 {
    margin-top: -8.2rem;
    margin-bottom: .7rem;
}
.person_slide-item h3 span {
    display: inline-block;
    font-size: 2.2rem;
    font-weight: 700;
    background: #242633;
    color: #fff;
    padding: .5rem 1.5rem;
    margin-bottom: .7rem;
}
.person_slide-item p {
    font-size: 1.6rem;
    font-weight: normal;
}
.person_slide-item p.txt_name {
    margin-bottom: 0;
}
.person_slide-item p.txt_name span {
    font-size: 2.4rem;
    font-weight: bold;
    line-height: 1;
}

.person_slide-item.swiper-slide {
    padding: 0 1rem;
}
.person_slide-item .btn_more {
    margin-top: 3.5rem;
}
.person_slide .swiper-button-prev,
.person_slide .swiper-button-next {
    width: 2.1rem;
    height: 4.3rem;
    z-index: 10;
    top: 35%;
    transform: translateY(-50%);
}
.person_slide .swiper-button-prev::after,
.person_slide .swiper-button-next::after {
    content: "";
    position: absolute;
    background: url("../img/top/btn-arrow-slide.svg") no-repeat;
    background-size: 100% 100%;
    width: 2.1rem;
    height: 4.3rem;
    top: 0;
    left: 0;
    opacity: 1;
}
.person_slide .swiper-button-prev {
    left: 0;
    transform: scale(-1,-1) translateY(50%);
}
.person_slide .swiper-button-next {
    right: 0;
}


@media only screen and (min-width: 768px) {
    .person_block::before {
        border-width: 0px 0px 80px 375px;
        top: 0;
    }
}
@media only screen and (max-width: 767px) {
	  
}



.job_block {
    padding: 8rem 0;
    margin-top: -8rem;
}
.job_block::before {
    content: "";
    position: absolute;
    width: 0;
    height: 0;
    border-style: solid;
    border-color: transparent transparent #232633 transparent;
    border-width: 0 0 21vw 100vw;
    left: 0;
    top: .2rem;
}
.job_block::after {
    content: "";
    position: absolute;
    width: 0;
    height: 0;
    border-style: solid;
    border-color: #232633 transparent transparent transparent;
    border-width: 21vw 100vw 0 0;
    left: 0;
    bottom: .2rem;
}
.job_inner {
    background: #232633;
    color: #fff;
    padding: 6.5rem 2.5rem 6.0rem;
}
.job_block .ttl-h2 span {
    color: #fff;
}
.job_block .ttl-h2:first-letter {
    color: #FF5611;
}

.job_list li:not(:last-child) {
    border-bottom: .1rem solid #454650;
}
.job_list li a {
    font-size: 2rem;
    font-weight: bold;
    letter-spacing: 0.05em;
    padding-top: 4.65rem;
    padding-bottom: 3.65rem;
    display: block;
}
.job_list li a::before {
    content: "";
    position: absolute;
    background: url("../img/common/ico-btn.svg") no-repeat;
    background-size: 100% 100%;
    width: 5.3rem;
    height: 5.3rem;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
}
.job_list li a::after {
    content: "";
    position: absolute;
    background: #EE6E02;
    width: .84rem;
    height: .84rem;
    top: 50%;
    right: 2.2rem;
    transform: translateY(-50%);
    transform-origin: center center;
    border-radius: 50%;
    transition: 0.3s;
}


@media only screen and (min-width: 768px) {
    .job_block::before {
        border-width: 0px 0px 80px 375px;
        top: 0;
    }
    .job_block::after {
        border-width: 80px 375px 0px 0px;
        bottom: 0;
    }
    .job_list li a:hover {
        opacity: .8;
    }
    .job_list li a:hover::after {
        transform: translateY(-50%) scale(3);
    }
}
@media only screen and (max-width: 767px) {
	  
}




