@charset "utf-8";

.sec-intro {
    overflow: hidden
}

.sec-intro .inner-12 {
    padding-bottom: 181px
}

.sec-intro .sec-title {
    margin-bottom: 80px
}

.sec-intro .desc {
    margin-bottom: 179px
}

.sec-intro .desc p {
    font-weight: 700;
    text-align: center;
    font-size: clamp(0.75rem, 0.659rem + 0.39vw, 1.125rem);
}

.sec-intro .images {
    display: flex;
    gap: 94px;
    align-items: flex-start;
    justify-content: center;
    margin: 0 2%
}

.sec-intro .images .img01,
.sec-intro .images .img03 {
    margin-top: -98px
}

.sec-intro .images .img01,
.sec-intro .images .img02,
.sec-intro .images .img03 {
    position: relative;
    height: 100%;
    border-radius: 20px
}

.sec-intro .images .img01 img,
.sec-intro .images .img02 img,
.sec-intro .images .img03 img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 20px
}

.sec-intro .images .img02 {
    margin-top: auto
}

.sec-intro .images .img01::before {
    content: "";
    background: url(/system_panel/uploads/images/20260211132831703420.png) no-repeat center/contain;
    width: 291px;
    height: 291px;
    position: absolute;
    bottom: -99px;
    left: -97px;
    z-index: -1
}

.sec-intro .images .img02::before {
    content: "";
    background: url(/system_panel/uploads/images/20260211132831763913.png) no-repeat center/contain;
    width: 198px;
    height: 222px;
    position: absolute;
    top: -81px;
    right: -37px;
    z-index: -1
}

.sec-intro .images .img03::before {
    content: "";
    background: url(/system_panel/uploads/images/20260211132831479936.png) no-repeat bottom/contain;
    width: 291px;
    height: 291px;
    position: absolute;
    bottom: -65px;
    right: -96px;
    z-index: -1
}

.concept {
    position: relative
}

.sp-img {
    display: none
}

.concept .w1920 {
    position: sticky;
    top: 0;
    height: 100vh;
    margin-left: 0;
    margin-right: auto;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    overflow: hidden
}

.concept .item-image-wrapper {
    position: relative;
    width: 50%;
    height: 100vh;
    border-radius: 0 300px 0 0;
    overflow: hidden
}

.concept .item-image-wrapper .img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: opacity 0.6s ease
}

.concept .item-image-wrapper .img img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.concept .item-image-wrapper .img.is-active {
    opacity: 1
}

.concept .text-scroll-wrapper {
    width: 42%;
    position: relative;
    margin-right: 3%
}

.concept .text {
    height: 110vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 5vh 30px 15vh;
    box-sizing: content-box
}

.concept .text .title {
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: flex-start;
    margin-bottom: 56px
}

.concept .text .title .num {
    font-family: var(--eng);
    font-weight: 700;
    font-size: 22px;
    font-size: clamp(1rem, 0.909rem + 0.39vw, 1.375rem);
    letter-spacing: .08em;
    text-align: left;
    color: #333
}

.concept .text .title .ttl-ja {
    font-family: var(--main);
    font-weight: 700;
    font-size: 40px;
    font-size: clamp(1.25rem, 0.947rem + 1.29vw, 2.5rem);
    letter-spacing: .08em;
    line-height: 2;
    text-align: left;
    color: #000
}

.concept .text .desc p {
    font-size: clamp(0.75rem, 0.659rem + 0.39vw, 1.125rem);
}

.message {
    border-radius: 0 0 100px 100px;
    background: #fffddd
}

.message .w1920 {
    padding: 169px 0 163px;
    margin-right: 0;
    margin-left: auto;
    display: grid;
    grid-template-columns: auto calc(659/1920*100vw);
    gap: 10%;
    align-items: flex-end
}

.message .text {
    margin-left: 6%
}

.message .catch {
    font-family: var(--main);
    font-weight: 700;
    font-size: 48px;
    font-size: clamp(1.375rem, 0.981rem + 1.68vw, 3rem);
    letter-spacing: .08em;
    line-height: calc(72/48);
    text-align: left;
    color: #212121;
    margin-bottom: 80px
}

.message .desc {
    margin-bottom: 80px
}

.message .name {
    display: flex;
    gap: 1em;
    align-items: center;
    justify-content: flex-end;
    font-family: var(--main);
    font-weight: 400;
    font-size: 18px;
    font-size: clamp(1rem, 0.97rem + 0.13vw, 1.125rem);
    letter-spacing: .08em;
    line-height: 1;
    color: #212121
}

.message .name .bold {
    font-weight: 700
}

.outline .inner-16 {
    margin: 0 10%;
    padding: 189px 0 140px
}

.outline .title {
    margin-bottom: 32px
}

.outline .sec-body {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 6%
}

.outline .sec-body .item {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 32px 0;
    position: relative
}

.outline .sec-body .item .ttl {
    font-family: var(--main);
    font-weight: 700;
    font-size: 20px;
    font-size: clamp(1rem, 0.939rem + 0.26vw, 1.25rem);
    letter-spacing: .08em;
    line-height: 1;
    color: #212121
}

.outline .sec-body .item .detail {
    font-family: var(--main);
    font-weight: 400;
    font-size: 16px;
    letter-spacing: .04em;
    line-height: 30px;
    color: #000
}

.outline .sec-body .item::before {
    content: "";
    background-size: 100% 2px;
    background-position: 0 100%;
    background-repeat: no-repeat;
    display: inline-block;
    width: 100%;
    height: 2px;
    position: absolute;
    left: 0;
    top: 0
}

.outline .sec-body .col-left .item:last-child::after {
    content: "";
    background-size: 100% 2px;
    background-position: 0 100%;
    background-repeat: no-repeat;
    display: inline-block;
    width: 100%;
    height: 2px;
    position: absolute;
    left: 0;
    bottom: 0;
    background-image: repeating-linear-gradient(to right, #F2E300, #F2E300 8px, transparent 8px, transparent 16px)
}

.outline .sec-body .item.red::before {
    background-image: repeating-linear-gradient(to right, #c84a3b, #c84a3b 8px, transparent 8px, transparent 16px)
}

.outline .sec-body .item.blue::before {
    background-image: repeating-linear-gradient(to right, #489FE4, #489FE4 8px, transparent 8px, transparent 16px)
}

.outline .sec-body .item.yellow::before {
    background-image: repeating-linear-gradient(to right, #F2E300, #F2E300 8px, transparent 8px, transparent 16px)
}

.outline .sec-body .map,
.outline .sec-body iframe {
    width: 100%;
    border-radius: 20px
}

.outline .sec-body iframe {
    height: 336px
}

.t_school .inner-16 {
    margin: 0 10%;
    padding-bottom: 162px
}

.t_school .sec-body {
    width: 100%
}

@media (max-width:960px) {
    .sec-intro .sec-title {
        margin-bottom: 40px
    }

    .sec-intro .inner-12 {
        padding-bottom: 100px;
        width: 94%;
    }

    .concept .text .title {
        margin-bottom: 32px
    }

    

    .message .w1920 {
        display: flex;
        flex-direction: column;
        padding: 100px 0;
        gap: 40px
    }

    .outline .sec-body {
        display: flex;
        flex-direction: column
    }

    .sec-intro .images {
        gap: 0;
        margin: 0
    }

    .sec-intro .images .img01,
    .sec-intro .images .img02,
    .sec-intro .images .img03 {
        border-radius: 10px
    }

    .sec-intro .images .img01::before,
    .sec-intro .images .img03::before {
        width: 100px;
        height: 150px
    }

    .sec-intro .images .img02::before {
        width: 80px;
        top: -105px
    }

    .sec-intro .images .img03::before {
        right: -55px
    }

    .sec-intro .images .img01::before {
        bottom: 0;
        left: -45px
    }

    .concept {
        height: auto !important
    }

    .concept .w1920 {
        position: static;
        height: auto;
        display: block;
        padding: 40px 0
    }

    .concept .item-image-wrapper {
        display: none
    }

    .sp-img {
        display: block;
        width: 100%;
        margin-bottom: 24px
    }

    .sp-img img {
        width: 100%;
        object-fit: cover;
        height: 77vw;
        border-radius: 0 80px 80px 0
    }

    .concept .text-scroll-wrapper {
        width: 100%;
        transform: none !important;
        display: flex;
        flex-direction: column;
        gap: 40px
    }

    .concept .text {
        height: auto;
        padding: 0;
        width: 94%;
        margin: 0 auto
    }

    .message .catch,
    .message .desc {
        margin-bottom: 40px
    }

    .message .text {
        margin: auto;
        width: 90%
    }

    .message .w1920 .img {
        width: 80%
    }

    .message {
        border-radius: 0 0 40px 40px
    }

    .outline .inner-16 {
        margin: 0 auto;
        padding: 100px 0
    }

    .outline .sec-body .col-right .item.blue::before {
        content: none
    }

    .t_school .inner-16 {
        margin: 0 auto;
        padding-bottom: 100px
    }
}

.gjs-dashed .concept .w1920,
.gjs-dashed .concept .item-image-wrapper {
    height: auto;
    overflow: visible
}

.gjs-dashed .concept .text {
    height: auto
}

.gjs-dashed .concept .item-image-wrapper .img {
    position: relative;
    opacity: 1;
    inset: 0
}