@charset "UTF-8";

/*============================
 reason-kv 
============================*/
.reason-kv {
    margin-bottom: 100px;
}
.ser-kv__left {
    width: 52%;
    padding: 0 0 0 1%;
}

.ser-kv__img {
    width: 43%;

    & img {
        object-fit: cover;
        height: 820px;
        width: 100%;
        border-radius: 0 0 0 40px;
    }
}

.ser-kv__left--inner {
    max-width: 640px;
    margin: 0 0 0 auto;
    padding: 240px 0 0;
}

.ser-kv__h1 {
    .txt {
        padding: .2em .5em;
        background: linear-gradient(90deg, #FC7E2A, #002086);
        color: #fff;
        width: fit-content;
        white-space: nowrap;
        margin-bottom: 10px;
    }
}

.ser-kv__copy {
    & span {
        display: block;
        line-height: 1.5;
    }
}

.ser-kv__items img {
    width: 32.33%;
    margin: 5px .5%;
    max-width: 220px;
}

@media screen and (max-width:1024px) {
    .service-kv {
        margin-top: 60px;
        margin-bottom: 60px;
    }

    .ser-kv__left {
        width: 52%;
        padding: 0 0 0 3%;
    }

    .ser-kv__img {
        width: 43%;

        & img {
            height: 600px;
            border-radius: 0 0 0 30px;
        }
    }

    .ser-kv__left--inner {
        margin: 0 0 0 auto;
        padding: 140px 0 0;
    }

    .ser-kv__h1 {
        .txt {
            padding: .2em .5em;
        }
    }

    .ser-kv__items img {
        width: 32.33%;
        margin: 5px .5%;

    }
}

@media screen and (max-width:767px) {
    .service-kv {
        margin-top: 60px;
        margin-bottom: 40px;
    }

    .ser-kv__flex {
        display: flex;
        flex-direction: column-reverse;
    }

    .ser-kv__left {
        width: 100%;
        padding: 30px 5% 0;
    }

    .ser-kv__img {
        width: 95%;
        margin: 0 0 0 auto;

        & img {
            height: 300px;
            border-radius: 0 0 0 30px;
        }
    }

    .ser-kv__left--inner {
        margin: 0;
        padding: 0;
    }

    .ser-kv__h1 {
        .txt {
            padding: .2em .5em;
        }
    }

    .ser-kv__items {
        display: flex;
        justify-content: space-between;
    }

    .ser-kv__items img {
        width: 49%;
        margin: 5px 0;

    }
}


/*============================
 reason
============================*/
.reason {
    margin-top: 120px;
    padding: 0 0 120px;

    &::before {
        content: "";
        position: absolute;
        background: #EFEFEF;
        width: 100%;
        height: 550px;
        left: 0;
        bottom: 0;
        z-index: -1;
        border-radius: 40px 0 0;
    }

    &::after {
        content: "";
        position: absolute;
        background: #EFEFEF;
        width: 29%;
        height: calc(100% - 80px);
        right: 0;
        bottom: 0;
        z-index: -1;
        border-radius: 40px 0 0;
    }

    .inner__mid {
        border-top: solid 1px #707070;
        padding: 100px 1% 0;
    }
}

.rea__ttl {
    .font-en {
        margin-bottom: .5em;
    }

    .txt {
        display: flex;
        align-items: baseline;
    }
}

.rea__atc {
    width: 32%;
    max-width: 424px;
    background: #fff;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 0 30px rgba(0, 0, 0, .1);
    padding: 40px 2% 30px;
    position: relative;

    &::before {
        content: "";
        position: absolute;
        width: 100%;
        height: 15px;
        background: linear-gradient(90deg, #FC7E2A 0%, #002086);
        top: 0;
        left: 0;
    }

}

.rea__h3 {
    .num {
        display: block;
        margin-bottom: 1em;
        line-height: 1;
    }

    .fs-22 {
        line-height: 1.4;
        min-height: 2.8em;
        display: block;
    }
}

.rea__tags {
    margin-bottom: 1em;

    & li {
        width: fit-content;
        padding: 0 .5em;
        background: #001968;
        color: #fff;
        white-space: nowrap;
        margin: 5px 5px 5px 0;
    }
}

.rea__txt {
    margin-bottom: 1em;
    min-height: 4.5em;
    line-height: 1.5;
}

.rea__data {
    width: fit-content;
    margin: 0 auto;
}

@media screen and (max-width:1024px) {
    .reason {
        margin-top: 80px;
        padding: 0 0 80px;

        &::before {
            height: 350px;
            border-radius: 30px 0 0;
        }

        &::after {
            width: 29%;
            height: calc(100% - 60px);
            right: 0;
            bottom: 0;
            z-index: -1;
            border-radius: 30px 0 0;
        }

        .inner__mid {
            padding: 80px 3% 0;
        }
    }

    .rea__atc {
        width: 32%;
        border-radius: 10px;
        overflow: hidden;
        box-shadow: 0 0 20px rgba(0, 0, 0, .1);
        padding: 30px 2% 20px;

        &::before {
            height: 10px;
        }

    }

    .rea__h3 {
        .fs-22 {
            min-height: 2.8em;
        }
    }

    .rea__tags {
        margin-bottom: 1em;

        & li {
            padding: 0 .5em;
            margin: 5px 5px 5px 0;
            font-size: 1rem;
        }
    }

    .rea__txt {
        margin-bottom: 1em;
        min-height: 4.5em;
        line-height: 1.5;
    }

}

@media screen and (max-width:767px) {
    .reason {
        margin-top: 0;
        padding: 0 0 60px;

        &::before {
            height: 350px;
            border-radius: 20px 0 0;
        }

        &::after {
            width: 29%;
            height: calc(100% - 60px);
            right: 0;
            bottom: 0;
            border-radius: 20px 0 0;
        }

        .inner__mid {
            padding: 60px 5% 0;
        }
    }

    .rea__ttl {
        .txt {
            display: block;
            line-height: 1.5;
        }
    }

    .rea__atc {
        width: 100%;
        border-radius: 10px;
        padding: 30px 5% 20px;

        margin: 0 auto 30px;

        &:last-child {
            margin-bottom: 0;
        }

    }

    .rea__h3 {
        .fs-22 {
            min-height: auto;
            font-size: 1.8rem;
        }
    }

    .rea__tags {
        margin-bottom: 1em;
        display: flex;

        & li {
            padding: 0 .5em;
            margin: 5px 5px 5px 0;
            font-size: 1.2rem;
        }
    }

    .rea__txt {
        margin-bottom: 1em;
        min-height: auto;
    }
}

/*============================
 strength
============================*/
.str__atc {
    margin-bottom: 150px;
}

.str__left {
    width: 50%;
}

.str__data {
    width: 45%;
    max-width: 537px;
}

.str__tags {
    & li {
        width: fit-content;
        padding: 0 .5em;
        background: #001968;
        color: #fff;
        white-space: nowrap;
        margin: .25em .5em .25em 0;
    }
}

.str__box {
    padding: 20px 4%;
    border-radius: 20px;
}

.str__ul {
    & li {
        width: 49%;
        margin-bottom: 15px;
        display: flex;
        align-items: center;
        background: #001968;
        color: #fff;
        padding: .5em .75em;
        border-radius: 6px;
        font-weight: bold;

        & img {
            width: 24px;
            margin-right: .5em;
        }
    }
}

.str__point--item {
    background-color: #fff;
    padding: 20px 4%;
    align-items: center;
    border-radius: 20px;
    box-shadow: 0 0 30px rgba(0, 0, 0, .1);
    margin-bottom: 20px;

    &:last-child {
        margin-bottom: 0;
    }
}

.str__num {
    width: 120px;
    height: 120px;
    min-width: 120px;
    border-radius: 50%;
    background: #EFEFEF;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 5%;
}

.str__point--right {
    flex: 1 1 auto;

}

.str__tech {
    background: #fff;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 0 30px rgba(0, 0, 0, .1);
    padding: 50px 4%;
    position: relative;

    &::before {
        content: "";
        position: absolute;
        width: 100%;
        height: 15px;
        background: linear-gradient(90deg, #FC7E2A 0%, #002086);
        top: 0;
        left: 0;
    }

}

.teck__ttl {
    .font-en {
        margin-bottom: .5em;
    }

    .box {
        width: fit-content;
        margin: 0 auto 10px;
        background: linear-gradient(90deg, #FC7E2A 0%, #002086);
        color: #fff;
        padding: .2em .5em;
    }
}

.tech__links {
    .s-links__item {
        width: 48%;
        height: 240px;
    }
}

@media screen and (max-width:1024px) {
    .str__atc {
        margin-bottom: 100px;
    }

    .str__left {
        width: 50%;
    }

    .str__data {
        width: 45%;
    }

    .str__tags {
        & li {
            margin: .25em .5em .25em 0;
        }
    }

    .str__box {
        padding: 20px 4%;
        border-radius: 10px;
    }

    .str__ul {
        & li {
            width: 49%;
            margin-bottom: 10px;
            padding: .5em .75em;
            border-radius: 6px;

            & img {
                width: 20px;
                margin-right: .5em;
            }
        }
    }

    .str__point--item {
        padding: 20px 4%;
        border-radius: 20px;
        margin-bottom: 20px;

    }

    .str__num {
        width: 80px;
        height: 80px;
        min-width: 80px;
        margin-right: 5%;
    }

    .str__tech {
        border-radius: 20px;
        padding: 50px 4% 30px;

        &::before {
            height: 15px;
        }

    }

    .teck__ttl {
        .font-en {
            margin-bottom: .5em;
        }

        .box {
            margin: 0 auto 10px;
            padding: .2em .5em;
        }
    }

    .tech__links {
        .s-links__item {
            width: 48%;
            height: 180px;
        }
    }

}

@media screen and (max-width:767px) {
    .str__atc {
        margin-bottom: 60px;
    }

    .str__left {
        width: 100%;
        margin-bottom: 30px;
    }

    .str__data {
        width: 100%;
    }

    .str__ttl {
        white-space: normal;
    }

    .str__tags {
        display: flex;

        & li {
            margin: .25em .5em .25em 0;
        }
    }

    .str__box {
        padding: 20px 4%;
        border-radius: 10px;
    }

    .str__ul {
        & li {
            width: 100%;
            margin-bottom: 10px;
            padding: .5em .75em;
            border-radius: 6px;

            & img {
                width: 20px;
                margin-right: .5em;
            }
        }
    }

    .str__point--item {
        padding: 20px 4%;
        border-radius: 20px;
        margin-bottom: 20px;

    }

    .str__num {
        width: 80px;
        height: 80px;
        min-width: 80px;
        margin-right: 5%;
        margin: 0 auto 20px;

        & span {
            font-size: 3rem;
        }
    }


    .str__tech {
        border-radius: 10px;
        padding: 50px 5% 30px;

        &::before {
            height: 10px;
        }

    }

    .teck__ttl {
        .txt {
            font-size: 1.8rem;
        }

        .box {
            margin: 0 auto 10px;
            padding: .2em .5em;
        }
    }

    .tech__links {
        .s-links__item {
            width: 100%;
            height: 150px;
        }
    }
}

/*============================
 number
============================*/
.num__items {
    width: 102%;
    margin-left: -1%;
}

.num__item {
    width: 23%;
    height: 260px;
    border-radius: 20px;
    margin: 0 1%;
    margin-bottom: 20px;
    position: relative;
    filter: drop-shadow(0 0 16px rgba(0, 0, 0, .1));
    background: #fff;

    &:nth-child(6) {
        width: 48%;
        margin: 0 1%;
    }
}

.num__h3 {
    position: absolute;
    top: 25%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90%;
    line-height: 1.4;
    .fs-10{
        font-size: 1rem;
    }
}

.num__container {
    position: absolute;
    transform: translate(-50%, -50%);
    display: flex;

    justify-content: center;
    width: 95%;
    top: 60%;
    left: 50%;
}

.num__num {
    white-space: nowrap;

    .caption {
        display: block;
    }

    .fs-72 {
        font-size: 7.2rem;
        font-weight: 600;
        line-height: 1;
    }

    .caption02 {
        display: block;
        text-align: right;
        line-height: 1;
    }

}


.num__col2--item {
    margin: 0 2.5%;
    width: 40%;
}

.num__col3--item {
    width: 30%;
    margin: 0 1.5%;
}

@media screen and (max-width:1024px) {
    .num__items {
        width: 102%;
        margin-left: -1%;
    }

    .num__item {
        width: 23%;
        height: 200px;
        border-radius: 20px;
        margin: 0 1%;
        margin-bottom: 15px;

        &:nth-child(6) {
            width: 48%;
            margin: 0 1%;
        }
    }

    .num__h3 {
        top: 25%;
        left: 50%;
    }

    .num__container {

        width: 95%;
        top: 60%;
        left: 50%;
    }

    .num__num {



        .fs-72 {
            font-size: 5rem;
        }
    }


    .num__col2--item {
        margin: 0 2.5%;
        width: 40%;
    }

    .num__col3--item {
        width: 30%;
        margin: 0 1.5%;
    }
}

@media screen and (max-width:767px) {
    .num__items {
        width: 100%;
        margin-left: 0;
        display: flex;
        justify-content: space-between;
    }

    .num__item {
        width: 49%;
        margin: 0;
        margin-bottom: 10px;
        height: 160px;
        border-radius: 12px;
        &:nth-child(6) {
            width: 100%;
            margin: 0 auto 10px;
        }
    }

    .num__h3 {
        top: 15px;
        left: 50%;
        font-size: 1.4rem;
        transform: translate(-50%);
    }

    .num__container {

        width: 100%;
        top: 60%;
        left: 50%;
    }

    .num__num {



        .fs-72 {
            font-size: 4rem;
        }
    }


    .num__col2--item {
        margin: 0 2.5%;
        width: 40%;
    }

    .num__col3--item {
        width: 30%;
        margin: 0 1.5%;
    }
}

/*============================
 comparison
============================*/

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

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

/*============================
 qualification
============================*/
.quq__item {
    margin-bottom: 50px;

    &:last-child {
        margin-bottom: 0;
    }
}

.qua__h3 {
    position: relative;
    padding-bottom: .2em;

    &::before {
        content: "";
        position: absolute;
        width: 100%;
        height: 1px;
        left: 0;
        bottom: 0;
        background: linear-gradient(90deg, #FC7E2A, #002086);
    }
}

.qua__ul li {
    width: 49%;
    background: #fff;
    padding: .5em;
    border-radius: 5px;
    margin-bottom: 10px;
    display: flex;
    justify-content: space-between;
    box-shadow: 0 0 10px rgba(0, 0, 0, .1);
}

.qua__th {
    font-weight: bold;
    padding-right: 1em;
}

.qua__td {
    font-weight: bold;
    white-space: nowrap;
}

@media screen and (max-width:1024px) {
    .quq__item {
        margin-bottom: 40px;

    }

    .qua__h3 {
        padding-bottom: .2em;

    }

    .qua__ul li {
        width: 49%;
        padding: .5em;
        border-radius: 5px;
        margin-bottom: 10px;
    }

}

@media screen and (max-width:767px) {
    .quq__item {
        margin-bottom: 40px;

    }

    .qua__h3 {
        padding-bottom: .2em;

    }

    .qua__ul li {
        width: 100%;
        padding: .5em;
        border-radius: 5px;
        margin-bottom: 10px;
    }

}

/*============================
 area
============================*/
.area__caption {
    margin-top: 1em;

    & i {
        margin-right: .5em;
    }
}

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

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

/*============================
 voice
============================*/
.voice__atc {
    width: 48%;
    background: #fff;
    border-radius: 20px;
    padding: 30px 2%;
    position: relative;

    &::before {
        content: "";
        position: absolute;
        width: 35px;
        height: 20px;
        left: 50%;
        bottom: -19px;
        transform: translate(-50%);
        background: #fff;
        clip-path: polygon(100% 0, 0 0, 50% 100%);
    }
}

.voice__ico {
    min-width: 80px;
}

.voice__txtwrap {
    flex: 1 1 auto;
    padding-left: 5%;
}

.voice__info {
    margin-top: 1em;
    padding-top: .5em;
    border-top: solid 1px #001968;
}

@media screen and (max-width:1024px) {
    .voice__atc {
        width: 48%;
        border-radius: 20px;
        padding: 20px 2%;

        &::before {
            width: 35px;
            height: 20px;
            bottom: -19px;
        }
    }

    .voice__ico {
        min-width: 60px;
    }

    .voice__txtwrap {
        flex: 1 1 auto;
        padding-left: 5%;
    }

    .voice__info {
        margin-top: 1em;
        padding-top: .5em;
    }

}

@media screen and (max-width:767px) {
    .voice__atc {
        width: 100%;
        margin: 0 auto 50px;
        border-radius: 20px;
        padding: 20px 2%;

        &:last-child {
            margin-bottom: 0;
        }

        &::before {
            width: 35px;
            height: 20px;
            bottom: -19px;
        }
    }

    .voice__ico {
        min-width: 60px;
        margin: 0 auto 20px;
        width: fit-content;
    }

    .voice__txtwrap {
        flex: 1 1 auto;
        padding-left: 5%;
    }

    .voice__info {
        margin-top: 1em;
        padding-top: .5em;
    }

}



/*============================
 s-links 
============================*/
.s-links__items {
    width: 102%;
    margin-left: -1%;
    justify-content: center;
}

.s-links__item {
    width: 31.33%;
    margin: 0 1%;


    & a {
        display: block;
        width: 100%;
        height: 100%;
        color: #fff;
        padding: 40px 5% 80px;
        border-radius: 20px;
        position: relative;
        transition: .3s;
    }

    &.-works a {
        background: url(../img/reason/s-link_works.png) no-repeat center center/100%;
    }

    &.-area a {
        background: url(../img/service/s-link-area.png) no-repeat center center/100%;
    }

    &.-service a {
        background: url(../img/reason/s-link_service.png) no-repeat center center/100%;
    }

    &.-service05 a {
        background: url(../img/reason/s-link_service05.png) no-repeat center center/100%;
    }

    &.-service06 a {
        background: url(../img/reason/s-link_service06.png) no-repeat center center/100%;
    }

    &.-reason a {
        background: url(../img/service/s-link-reason.png) no-repeat center center/100%;
    }

    &.-works01 a {
        background: url(../img/service/s-link-works01.png) no-repeat center center/100%;
    }

    &.-works02 a {
        background: url(../img/service/s-link-works02.png) no-repeat center center/100%;
    }

    &.-works03 a {
        background: url(../img/service/s-link-works03.png) no-repeat center center/100%;
    }

    &.-works04 a {
        background: url(../img/service/s-link-works04.png) no-repeat center center/100%;
    }

    &.-works05 a {
        background: url(../img/service/s-link-works05.png) no-repeat center center/100%;
    }

    &.-works06 a {
        background: url(../img/service/s-link-works06.png) no-repeat center center/100%;
    }

    &.-column a {
        background: url(../img/service/s-link-column.png) no-repeat center center/100%;
    }


    &:hover a {
        background-size: 105%;
    }
}

.s-link__ttl {
    & img {
        margin-bottom: 1em;
    }

    .txt {
        line-height: 1.4;
    }
}

.s-link__btn {
    bottom: 20px;
    right: 5%;
    display: flex;
    align-items: center;
    position: absolute;

    & img {
        width: 37px;
        margin-left: 1em;
    }
}

@media screen and (max-width:1024px) {
    .s-links__item {
        width: 31.33%;
        margin: 0 1%;


        & a {
            padding: 30px 5% 60px;
            border-radius: 20px;
        }
    }

    .s-link__btn {
        bottom: 20px;
        right: 5%;

        & img {
            width: 30px;
        }
    }
}

@media screen and (max-width:767px) {
    .s-links__items {
        width: 100%;
        margin-left: 0;
    }

    .s-links__item {
        width: 100%;

        margin: 0 auto 20px;

        &:last-child {
            margin-bottom: 0;
        }

        & a {
            padding: 30px 5% 60px;
            border-radius: 10px;
        }
    }

    .s-link__btn {
        bottom: 10px;
        right: 5%;

        & img {
            width: 26px;
        }
    }
}