@charset "utf-8";

.intro {
    position: relative;
    color: #FFF;
}

.intro .bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -1;
}

.intro .inner {
    padding: 225px 0 155px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 60px;
}

.intro .tit-ja {
    font-weight: 500;
    font-size: clamp(1.5rem, 1.3rem + 1vw, 2.5rem);
    line-height: calc(60/40);
    color: #fff;
    clip-path: inset(100% 0 0 0);
    transition: .8s ease;
}

.intro .tit-ja.is-active {
    clip-path: inset(0 0 0 0);
}

.intro .desc p {
    font-family: var(--sans);
    font-weight: 400;
    font-size: clamp(0.875rem, 0.825rem + 0.25vw, 1.125rem);
    line-height: calc(40/18);
    color: #fff;
}

.has-bg {
    position: relative;
    background-color: #A3B0C3;
    z-index: 2;
}

.has-bg .bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
    mix-blend-mode: overlay;
}

.philosophy,
.reason {
    position: relative;
    z-index: 3;
}

.philosophy .inner {
    padding: 90px 0 120px;
    display: flex;
    flex-direction: column;
    gap: 80px;
}

.philosophy .sec-body {
    display: flex;
    flex-direction: column;
    gap: 120px;
}

.philosophy .item {
    display: flex;
    justify-content: space-between;
}

.philosophy .item .tit-en {
    font-family: var(--sub);
    font-weight: 300;
    font-size: clamp(1.5rem, 1.4rem + 0.5vw, 2rem);
    color: #1f1f1f;
    position: relative;
    padding-top: 4px;
    padding-left: 7px;
}

.philosophy .item .tit-en::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 9px;
    height: 10px;
    background-color: #ee9042;
    clip-path: polygon(0% 0%, 100% 0%, 0% 100%);
}

.philosophy .item .sec-text {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.philosophy .item .sec-text .tit-ja {
    font-weight: 500;
    font-size: clamp(1.25rem, 1.05rem + 1vw, 2.25rem);
    line-height: calc(51/36);
    color: #1f1f1f;
}

.philosophy .item .sec-text .desc p {
    font-family: var(--sans);
    font-weight: 400;
    font-size: clamp(0.875rem, 0.85rem + 0.13vw, 1rem);
    color: #2f2f2f;
}

.philosophy .column {
    display: flex;
    flex-direction: column;
    gap: 80px;
    counter-reset: number 0;
}

.philosophy .column .tit-ja {
    padding-top: 9px;
    padding-left: 15px;
    position: relative;
}

.philosophy .column .tit-ja::before {
    counter-increment: number 1;
    content: counter(number, decimal-leading-zero);
    font-weight: 400;
    font-size: clamp(0.625rem, 0.55rem + 0.38vw, 1rem);
    color: #1f1f1f;
    position: absolute;
    top: 0;
    left: 0;
}

.philosophy .column .tit-ja::after {
    content: "/";
    position: absolute;
    top: 4px;
    left: 15px;
    font-weight: 400;
    font-size: clamp(0.625rem, 0.55rem + 0.38vw, 1rem);
    color: #1f1f1f;
    transform: rotate(14deg);
}

.reason .inner {
    display: flex;
    flex-direction: column;
    gap: 60px;
    padding-bottom: 120px;
}

.reason .sec-body {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.reason .card {
    max-width: 1123px;
    width: 90%;
    margin: 0 auto;
    background: #fff;
    position: relative;
}

.reason .card::before {
    content: "";
    position: absolute;
    width: 35px;
    height: 34px;
    background-color: #051b33;
    clip-path: polygon(0% 0%, 100% 0%, 0% 100%);
    top: 5px;
    left: 6px;
}


.reason .card .column {
    display: flex;
    align-items: center;
    padding: 30px 52px 30px 70px;
    gap: 4%;
    justify-content: space-between;
}

.reason .card .column .sec-img {
    max-width: 468px;
    width: 47%;
}

.reason .card .column .sec-text {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.reason .card .column .sec-text .tit-ja {
    font-weight: 600;
    font-size: clamp(1.25rem, 1.175rem + 0.38vw, 1.625rem);
    line-height: calc(37/26);
    color: #153250;
}

.reason .card .column .sec-text .desc p {
    font-family: var(--sans);
    font-weight: 400;
    font-size: clamp(0.875rem, 0.85rem + 0.13vw, 1rem);
    line-height: calc(28/16);
    color: #2f2f2f;
}

.reason .card .column .sec-text .tit-ja br {
    display: none;
}

@media (max-width: 1180px) {
    .reason .card .column {
        padding: 30px 52px 30px 34px;
    }

    .intro .inner,
    .philosophy .inner {
        padding: 60px 0 80px;
    }

    .reason .inner {
        padding-bottom: 60px;
    }
}

@media (max-width: 1023px) {


    .intro .inner,
    .philosophy .inner {
        gap: 47px;
    }

    .philosophy .item {
        flex-direction: column;
        gap: 20px;
    }

    .philosophy .sec-body {
        gap: 60px;
    }

    .philosophy .column {
        gap: 40px;
    }

    .reason .inner {
        gap: 27px;
    }

    .reason .card .column {
        flex-direction: column-reverse;
        gap: 20px;
    }

    .reason .card .column .sec-img {
        max-width: 90%;
        width: 100%;
    }

    .reason .card .column .sec-text {
        width: 90%;
        gap: 20px;
        margin: 0 auto;
    }
}

@media (max-width: 767px) {
    .intro .inner {
        gap: 40px;
        width: 92%;
    }

    .reason .card .column {
        padding: 30px 7px 50px;
    }

    .reason .card .column .sec-text {
        width: 95%;
    }

    .reason .card {
        width: 100%;
        max-width: 100%;
    }

    .reason .card .column .sec-text .tit-ja br {
        display: block;
    }

    .reason .card::before {
        width: 23px;
        height: 22px;
    }
}

.gjs-dashed .bg {
    z-index: 1;
}

.gjs-dashed .intro .inner {
    position: relative;
    z-index: 5;
}

.gjs-dashed .intro .tit-ja {
    clip-path: inset(0 0 0 0);
}