@charset "utf-8";

/* ------------------------------
 choice
------------------------------ */

.choice {
    padding-top: 4rem;
    background-color: var(--c-main-pale);
    overflow: hidden; /* SP で写真が枠外にはみ出す分を切る */
}

.choice-inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    text-align: left;
}

.choice-body {
    position: relative; /* PC では写真をこの文章ブロックの左下（セクション下端）に付ける */
    max-width: 480px;
    padding: 6rem 0;
    margin-left: 24.7rem; /* 写真 217px ＋ 間 30px の分を空けて、写真込みで中央に来るようにする */
}

.choice-title {
    margin-bottom: 2rem;
}

.choice-pht {
    position: absolute;
    bottom: 0;
    left: -24.7rem;
    width: 217px; /* absolute だと幅が縮むので明示 */
}

.choice-pht img {
    display: block;
}

/* ------------------------------
 flow
------------------------------ */

.flow .section-title {
    margin-bottom: 8rem;
}

.flow-item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 2rem;
    width: 280px;
    min-height: 300px;
    padding: 2rem 1rem;
    background-color: var(--c-white);
    border-radius: 1.2rem;
    -webkit-box-shadow: var(--shadow-default);
            box-shadow: var(--shadow-default);
}

.flow-item-step {
    display: block;
    font-family: var(--ff-en);
    font-size: 2rem;
    font-weight: 700;
}

.flow-item-title {
    margin-top: 2rem;
    color: var(--c-main);
    font-size: 2rem;
    line-height: 1.2;
}

.flow-item-icon {
    display: block;
}

.flow-item-text {
    font-weight: 400;
    text-align: left;
}

/* ------------------------------
 main-curriculum
------------------------------ */

.main-curriculum {
    background-color: var(--c-main-pale);
}

.main-curriculum .section-title,
.eiken-curriculum .section-title {
    margin-bottom: 8rem;
}

/* ------------------------------
 other-curriculum
------------------------------ */

.other-curriculum {
    background-color: var(--c-cream);
}

.other-slider {
    margin: 6rem 0 -2rem; /* リード文との間 80px（.swiper の上下 padding 20px 分を引く） */
}

.other-item {
    gap: 2rem;
    width: 500px;
    padding: 4rem;
}

.other-item .curriculum-card-pic {
    width: 160px;
    height: 200px;
}

.other-item .curriculum-card-body {
    flex: none;
    width: 240px;
}

.other-item .curriculum-card-level {
    display: block;
    width: 154px;
    margin: 1rem 0 0;
    text-align: center;
    background-color: var(--c-white);
}

.other-slider .slider-prev {
    top: 12.4rem;
    left: calc(50% - 28.7rem);
}

.other-slider .slider-next {
    top: 12.4rem;
    right: calc(50% - 28.7rem);
}

/* ------ max-width:767px ------ */
@media (max-width:767px) {
    /* choice */
    .choice {
        padding: 8rem 0;
    }

    .choice-inner {
        display: block;
        text-align: center;
    }

    .choice-body {
        position: static;
        max-width: none;
        padding: 0;
        margin-left: 0;
    }

    .choice-title {
        position: relative;
        z-index: 0; /* 写真（z-index: -1）を文字の下に置くための基準。写真は見出しを起点に右横へ */
        display: inline-block;
        text-align: left; /* ブロックごと中央に置き、中の吹き出しは Figma どおり左寄せのまま */
    }

    .choice-pht {
        top: -5.1rem;
        bottom: auto;
        left: calc(100% - 4.3rem); /* 見出しの右端から 43px 内側で始まり、右側へはみ出す */
        z-index: -1;
        width: 106px;
    }

    /* flow */
    .flow .section-title {
        margin-bottom: 4rem;
    }

    .flow-list {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-align: stretch;
            -ms-flex-align: stretch;
                align-items: stretch;
        gap: 3.6rem; /* カード間 10px ＋ 矢印 16px ＋ 10px */
        max-width: 500px;
        margin: 0 auto;
    }

    .flow-item {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        -webkit-box-pack: start;
            -ms-flex-pack: start;
                justify-content: flex-start;
        gap: 2rem 1rem;
        width: auto;
        min-height: 0;
        padding: 2rem;
    }

    .flow-item:not(:last-child):after {
        top: auto;
        right: auto;
        bottom: -2.6rem;
        left: 50%;
        border: 20px solid transparent; /* 下向きの三角形（40×16） */
        border-bottom: 0;
        border-top: 16px solid var(--c-main);
        -webkit-transform: translateX(-50%);
            -ms-transform: translateX(-50%);
                transform: translateX(-50%);
    }

    .flow-item-head {
        text-align: left;
    }

    .flow-item-step {
        font-size: 1.8rem;
    }

    .flow-item-title {
        margin-top: .4rem;
        font-size: 1.6rem;
    }

    .flow-item-icon {
        order: -1;
        width: auto;
        height: 50px;
    }

    .flow-item-text {
        width: 100%;
    }

    /* main-curriculum */
    .main-curriculum .section-title,
    .eiken-curriculum .section-title {
        margin-bottom: 4rem;
    }

    /* other-curriculum */
    .other-slider {
        margin-top: 2rem;
    }

    .other-item {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        gap: 1rem;
        width: 280px;
        padding: 2rem;
        text-align: center;
    }

    .other-item .curriculum-card-pic {
        width: 108px;
        height: 135px;
    }

    .other-item .curriculum-card-body {
        width: 100%;
    }

    .other-item .curriculum-card-level {
        margin: .6rem auto 0;
    }

    .other-item .curriculum-card-text {
        margin-top: .6rem;
        text-align: left;
    }

    .other-slider .slider-prev {
        top: 15rem;
        left: calc(50% - 17.5rem);
    }

    .other-slider .slider-next {
        top: 15rem;
        right: calc(50% - 17.5rem);
    }
}
