/* Keyword の # スクロールは common.js で scrollIntoView(smooth)。オフセットは scroll-margin-top で統一 */
/* 上の画像読み込みでレイアウトが伸びたときのスクロール追従（scroll anchoring）を抑え、ガクつきを減らす */
main.student_keyword {
    overflow-anchor: none;
}

:root{
    --color-infant: #FF98BD;
    --color-infant-sub: #F6979D;
    --color-child: #00C5F6;
    --color-psycho: #B793C7;
    --color-psycho-sub: #CE82BB;
    --color-culture: #E58F5A;
    --color-culture-sub: #EE6F76;
    --color-design: #6DCECA;
    --color-design-sub: #0081CB;
    --color-welfare: #78C96E;
    --color-welfare-sub: #ffA929;
    --color-welfare-sub-2: #FF9679;
    --color-welfare-sub-3: #AED775;
    --color-welfare-sub-4: #86D2B5;
}

.font-color-infant {
    color: var(--color-infant);
}
.font-color-child {
    color: var(--color-child);
}
.font-color-psycho {
    color: var(--color-psycho-sub);
}
.font-color-culture {
    color: var(--color-culture-sub);
}
.font-color-design {
    color: var(--color-design-sub);
}
.font-color-welfare {
    color: var(--color-welfare-sub);
}
.font-color-welfare-2 {
    color: var(--color-welfare-sub-2);
}
.font-color-welfare-3 {
    color: var(--color-welfare-sub-3);
}
.font-color-welfare-4 {
    color: var(--color-welfare-sub-4);
}
/* 目次 */
.table-of-contents-section .container {
    padding: 200px 10px 115px;
}

.table-of-contents-section .container .section-title {
    margin-bottom: 50px;
    position: relative;
}

.table-of-contents-section .container .section-title::before {
    content: '';
    position: absolute;
    top: -115%;
    left: 50%;
    transform: translateX(-50%);
    width: 938px;
    height: 141px;
    background-image: url('../images/Keyword/table-of-contents-section-title-bg.png');
    background-size: 100% 100%;
    background-repeat: no-repeat;
}
.table-of-contents-section .container .table-of-contents-grid-2{
    margin-top: min(41px, 2.4117647vw);
}

.table-of-contents-section .container .table-of-contents-grid,
.table-of-contents-section .container .table-of-contents-grid-2,
.table-of-contents-section .container .section-title-sub-txt {
    width: 100%;
    max-width: min(1284px, 171.2vw);
    margin-inline: auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 49px;
}
.table-of-contents-section .container .table-of-contents-grid-2{
    justify-content: center;
    flex-wrap: wrap;
}

.table-of-contents-section .container .table-of-contents-grid .table-of-contents-grid-item {
    width: 100%;
    height: 110px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    border-radius: 27px;
    font-size: 45px;
    font-weight: 500;
    color: #ffffff;
    transition: all 0.3s ease;
    position: relative;
    padding-left: min(167px, 22.26666667vw);
    white-space: nowrap;
}
.table-of-contents-section .container .table-of-contents-grid-2 .table-of-contents-grid-item {
    width: fit-content;
    flex: 0 0 auto;
    height: min(110px, 14.66666667vw);
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0 min(55px, 3.235294vw);
    margin-top: min(41px, 2.4117647vw);
    border-radius: 27px;
    font-size: 45px;
    font-weight: 500;
    color: #ffffff;
    transition: all 0.3s ease;
    position: relative;
}

.table-of-contents-section .container .table-of-contents-grid .table-of-contents-grid-item::before {
    position: absolute;
    top: 0;
    left: 0;
    content: "NEW";
    display: flex;
    align-items: center;
    justify-content: center;
    width: min(142px, 18.93333333vw);
    height: 100%;
    background-color: #fff;
    font-size: min(40px, 5.33333333vw);
    color: #EA5858;
    border-radius: min(27px, 1.58823529vw) 0 0 min(27px, 1.58823529vw);
    border: 4px solid;
    letter-spacing: 0;
}

.table-of-contents-section .container .table-of-contents-grid .table-of-contents-grid-item::after {
    content: "";
    position: absolute;
    top: 0;
    left: calc(min(142px, 18.93333333vw) - min(16px, 2.13333333vw));
    width: min(30px, 4vw);
    height: 100%;
    transform: skewX(-12deg);
}

.table-of-contents-section .container .table-of-contents-grid .table-of-contents-grid-item:nth-child(1) {
    background-color: var(--color-infant-sub);
}
.table-of-contents-section .container .table-of-contents-grid .table-of-contents-grid-item:nth-child(1)::before {
    border-color: var(--color-infant-sub);
}
.table-of-contents-section .container .table-of-contents-grid .table-of-contents-grid-item:nth-child(1)::after {
    background-color: var(--color-infant-sub);
}

.table-of-contents-section .container .table-of-contents-grid .table-of-contents-grid-item:nth-child(2) {
    background-color: var(--color-psycho);
}
.table-of-contents-section .container .table-of-contents-grid .table-of-contents-grid-item:nth-child(2)::before {
    border-color: var(--color-psycho);
}
.table-of-contents-section .container .table-of-contents-grid .table-of-contents-grid-item:nth-child(2)::after {
    background-color: var(--color-psycho);
}

.table-of-contents-section .container .table-of-contents-grid .table-of-contents-grid-item:nth-child(3) {
    background-color: var(--color-culture);
}
.table-of-contents-section .container .table-of-contents-grid .table-of-contents-grid-item:nth-child(3)::before {
    border-color: var(--color-culture);
}
.table-of-contents-section .container .table-of-contents-grid .table-of-contents-grid-item:nth-child(3)::after {
    background-color: var(--color-culture);
}
.table-of-contents-section .container .section-title-sub-txt {
    font-size: min(30px, 1.764705882vw);
    text-align: center;
    line-height: 2.4;
    border-bottom: solid 1px #000000;
}
.table-of-contents-section .container .table-of-contents-grid-2 .table-of-contents-grid-item:nth-child(1) {
    background-color: var(--color-design);
}
.table-of-contents-section .container .table-of-contents-grid-2 .table-of-contents-grid-item:nth-child(2) {
    background-color: var(--color-welfare);
}


/* 学生インタビュー */
.student-interview-section .container .section-title {
    font-size: min(90px, 5.88235294vw);
    position: relative;
    padding-top: min(240px, 16vw);
    margin-bottom: min(130px, 8.66666667vw);
}

.student-interview-section .container .section-title::before {
    content: '';
    position: absolute;
    top: 30%;
    left: 50%;
    transform: translateX(-50%);
    width: min(938px, 62.53333333vw);
    height: min(141px, 9.4vw);
    background-image: url('../images/Keyword/student-interview-section-title-bg.png');
    background-size: 100% 100%;
    background-repeat: no-repeat;
    z-index: 1;
}

.student-interview-section .container {
    padding: 0 min(10px, 0.66666667vw) ;
}

.student-interview-section .container._1 {
    background-color: rgba(246, 151, 157, 0.25);
}

.student-interview-section .container._2 {
    background-color: rgba(183, 147, 199, 0.25);
}

.student-interview-section .container._3 {
    background-color: rgba(229, 143, 90, 0.25);
}
.student-interview-section .container._4 {
    background-color: rgba(109, 206, 202, 0.25);
}
.student-interview-section .container._5 {
    background-color: rgba(120, 201, 110, 0.25);
}

/* Keyword: 各 #interview-* — 先頭余白は common.js の固定オフセットで統一（CSS と二重にしない）。ノッチのみ safe-area */
.student_keyword #interview-infant,
.student_keyword #interview-psycho,
.student_keyword #interview-culture,
.student_keyword #interview-design,
.student_keyword #interview-humanlife,
.student_keyword #interview-health,
.student_keyword #interview-food,
.student_keyword #interview-development,
.student_keyword #interview-welfare {
    scroll-margin-top: env(safe-area-inset-top, 0px);
}

.student-interview-section .container .student-interview-item {
    max-width: 1280px;
    margin: 0 auto min(140px, 8.2352941vw);
    background-color: #ffff;
    padding: min(45px, 5.92941176vw) min(70px, 9.33333333vw) min(70px, 9.33333333vw) min(108px, 14.4vw);
}
.student-interview-section .container .section-title {
    display: flex;
    align-items: center;
    justify-content: center;
}
.student-interview-section .container .section-title-new {
    display: inline-block;
    vertical-align: middle;
    width: min(124px, 7.33333333vw);
    height: min(56px, 3.294117647058824vw);
    margin-right: min(30px, 1.764705882vw);
    font-size: min(30px, 1.764705882vw);
    color: #FFFCEA;
}
@media (max-width: 750px) {
    .student-interview-section .container .section-title-new {
        width: min(124px, 16.53333333vw);
        height: min(56px, 7.46666667vw);
        margin-right: min(30px, 4vw);
        font-size: min(30px, 4vw);
        line-height: min(56px, 7.46666667vw);
    }
}
.student-interview-section .container .new-ribbon-1 {
    background: url('../images/Keyword/title-new-bg-1.png') no-repeat center center;
    background-size: 100% auto;
}
.student-interview-section .container .new-ribbon-2 {
    background: url('../images/Keyword/title-new-bg-2.png') no-repeat center center;
    background-size: 100% auto;
}
.student-interview-section .container .new-ribbon-3 {
    background: url('../images/Keyword/title-new-bg-3.png') no-repeat center center;
    background-size: 100% auto;
}
.student-interview-section .container .student-interview-item h3 {
    font-size: 50px;
    margin-bottom: 20px;
    font-weight: 600;
    text-align: center;
}

.student-interview-section .container._1 .student-interview-item h3{
    display: flex;
    align-items: center;
    justify-content: center;
}
.student-interview-section .font-small{
    font-size: min(40px, 2.3529411vw);
    padding-right: 1em;
}
.student-interview-section .container .student-interview-item-grade {
    font-size: 26.36px;
    line-height: 1.8;
    font-weight: 600;
    position: relative;
    text-align: center;
    margin-bottom: 33px;
}

.student-interview-section .container .student-interview-item-grade .num {
    font-size: 42px;
}

.student-interview-section .container .student-interview-item-grade::before {
    content: '';
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
    width: 43.5%;
    height: 2px;
    background-color: #000000;
}

.student-interview-section .container .student-interview-item-grade::after {
    content: '';
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 0;
    width: 43.5%;
    height: 2px;
    background-color: #000000;
}

.student-interview-section .container .student-interview-grid {
    display: flex;
    align-items: flex-start;
    gap: 45px;
    margin-bottom: 28px;
}

.student-interview-section .container .student-interview-grid .img {
    position: relative;
    max-width: min(580px, 77.33333333vw);
    width: 100%;
}
.student-interview-section .container .student-interview-grid .img .img-label {
    position: absolute;
    top: min(94px, 5.58823529vw);
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: min(268px, 35.73333333vw);
    height: min(81px, 4.7647058vw);
    background-color: rgba(255, 255, 255, 0.8);
    font-size: min(30px, 4vw);
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0;
}
.keyword-page .student-interview-section .container .student-interview-grid .img .img-label.label-2 {
    width: min(268px, 35.73333333vw);
}

.student-interview-section .container .student-interview-grid .img .name {
    font-size: min(26.43px, 3.524vw);
    font-weight: 600;
    text-align: right;
    white-space: nowrap;
}

.student-interview-section .container .student-interview-grid .img .name .name-school {
    font-size: min(20px, 2.66666667vw);
}

.student-interview-section .container .student-interview-grid .interview-text {
    width: min(477px, 63.6vw);
    font-size: min(19px, 2.53333333vw);
}

.student-interview-section .container .interview-sub {
    font-size: min(14px, 1.86666667vw);
    text-align: right;
    line-height: 5.443;
}

/* Keywordページ専用: CTAボタン */
.student_keyword .cta-group {
    text-align: center;
}

.student_keyword .btn-cta-lg,
.student_keyword .btn-cta-md,
.student_keyword .btn-cta-md-alt {
    background-color: #ffff;
    box-shadow: 0 5px 10px 0 rgb(0 0 0 / 18%);
    margin: 0 auto min(230px, 13.529411vw);
}

@media (max-width: 1000px) and (min-width: 751px) {
    .table-of-contents-section .container .table-of-contents-grid {
        width: 90%;
        flex-direction: column;
    }

    .student-interview-section .container .student-interview-grid {
        flex-direction: column;
        align-items: center;
    }
    .student-interview-section .container .interview-sub {
        font-size: min(14px, 2.13333333vw);
    }
}

/* レスポンシブ */
@media (max-width: 750px) {
    .table-of-contents-section .container {
        width: min(560px, 74.666666vw);
        margin-inline: auto;
        padding: 20.5vw 0 10.5vw;
    }

    /* SP時のみ：目次をinfantのキーワードグリッド風に（NEW・リボンの色を目次テーマ色に） */
    .table-of-contents-section .table-of-contents-sp .keyword-grid._1 .keyword-grid-title {
        background-color: var(--color-infant-sub);
    }
    .table-of-contents-section .table-of-contents-sp .keyword-grid._1 .keyword-grid-title::before {
        border: 2px solid var(--color-infant-sub);
        background-color: #fff;
    }
    .table-of-contents-section .table-of-contents-sp .keyword-grid._1 .keyword-grid-title::after {
        background-color: var(--color-infant-sub);
    }
    .table-of-contents-section .table-of-contents-sp .keyword-grid._2 .keyword-grid-title {
        background-color: var(--color-psycho);
    }
    .table-of-contents-section .table-of-contents-sp .keyword-grid._2 .keyword-grid-title::before {
        border: 2px solid var(--color-psycho);
        background-color: #fff;
    }
    .table-of-contents-section .table-of-contents-sp .keyword-grid._2 .keyword-grid-title::after {
        background-color: var(--color-psycho);
    }
    .table-of-contents-section .table-of-contents-sp .keyword-grid._3 .keyword-grid-title {
        background-color: var(--color-culture);
    }
    .table-of-contents-section .table-of-contents-sp .keyword-grid._3 .keyword-grid-title::before {
        border: 2px solid var(--color-culture);
        background-color: #fff;
    }
    .table-of-contents-section .table-of-contents-sp .keyword-grid._3 .keyword-grid-title::after {
        background-color: var(--color-culture);
    }
    .table-of-contents-section .table-of-contents-sp .keyword-grid._4 .keyword-grid-title-2 {
        background-color: var(--color-design);
    }
    .table-of-contents-section .table-of-contents-sp .keyword-grid._5 .keyword-grid-title-3 {
        background-color: var(--color-welfare);
    }

    .table-of-contents-section .container .section-title::before {
        top: -92%;
        width: 83vw;
        height: 13vw;
        background-size: 100% 100%;
        background-repeat: no-repeat;
    }

    .table-of-contents-section .container .section-title {
        margin-bottom: 7vw;
    }

    .table-of-contents-section .container .table-of-contents-grid {
        width: 80%;
        flex-direction: column;
        justify-content: unset;
        gap: 5.5vw;
        font-size: min(45px, 6vw);
        border-radius: min(27px, 3.6vw);
    }

    .table-of-contents-section .container .table-of-contents-grid .table-of-contents-grid-item {
        height: min(110px, 14.66666667vw);
        font-size: min(45px, 6vw);
        padding-left: min(118px, 15.73333333vw);
    }

    .table-of-contents-section .container .table-of-contents-grid .table-of-contents-grid-item::before {
        width: min(118px, 15.73333333vw);
        font-size: min(23px, 3.066666vw);
        border-radius: min(10px, 1.3333333333vw);
    }

    .table-of-contents-section .container .table-of-contents-grid .table-of-contents-grid-item::after {
        left: calc(min(118px, 15.73333333vw) - min(8px, 1.06666667vw));
        width: min(14px, 1.8666666vw);
    }

    .student-interview-section .container {
        padding: 0;
    }

    .student-interview-section .container .section-title {
        font-size: min(60px, 8vw);
        padding-top: min(188px, 25.06666vw);
        margin-bottom: min(57px, 7.6vw);
        line-height: 1.2;
    }

    .student-interview-section .container .section-title::before {
        top: 21%;
        left: 50%;
        transform: translateX(-50%);
        width: 86vw;
        height: 13vw;
        background-size: 100% 100%;
        background-repeat: no-repeat;
    }

    .student-interview-section .container .student-interview-item {
        width: min(650px, 86.66666667vw);
        margin: 0 auto min(57px, 7.6vw);
        background-color: #ffff;
        padding: min(42.5px, 5.66666667vw) min(30px, 4vw) min(42.5px, 5.66666667vw);
    }

    .student-interview-section .container .student-interview-item h3 {
        font-size: min(47px, 6.26666667vw);
        margin-bottom: 1.75vw;
    }

    .student-interview-section .container .student-interview-item-grade {
        font-size: min(26.36px, 3.51466667vw);
        margin: 0 min(10px, 1.33333333vw) min(20px, 2.66666667vw);
    }

    .student-interview-section .container .student-interview-item-grade .num {
        font-size: min(42px, 5.6vw);
    }

    .student-interview-section .container .student-interview-item-grade::before {
        width: min(215px, 28.66666667vw);
    }

    .student-interview-section .container .student-interview-item-grade::after {
        width: min(215px, 28.66666667vw);
    }

    .student-interview-section .container .student-interview-grid {
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: min(12px, 1.6vw);
        margin-bottom: min(40px, 5.33333333vw);
    }

    .student-interview-section .container .student-interview-grid .img .img-label {
        top: min(121px, 16.13333333vw);
        left: min(-10px, -1.33333333vw);
        width: min(270px, 36vw);
        height: min(81px, 10.8vw);
        font-size: min(34px, 4.53333333vw);
    }

    .student-interview-section .container .student-interview-grid .img .name {
        text-align: center;
        font-size: min(26.43px, 3.524vw);
        padding-top: min(7px, 0.93333333vw);
    }

    .student-interview-section .container .student-interview-grid .img .name .name-school {
        font-size: min(20px, 2.66666667vw);
    }

    .student-interview-section .container .student-interview-grid .interview-text {
        width: 100%;
        font-size: min(18px, 2.4vw);
        padding: 0 min(16px, 2.13333333vw) 0;
    }

    .student-interview-section .btn-cta-sm {
        padding: min(33px, 4.4vw) 0 0 min(151px, 20.13333333vw);
    }

    .student-interview-section .btn-cta-sm::before {
        right: 22%;
    }

    .student_keyword .btn-cta-sm {
        text-align: left;
    }

    /* Keywordページ: 学部サイト大ボタン（SP時サイズ指定） */
    .student_keyword .btn-cta-lg.btn-keyword {
        width: min(540px, 72vw);
        height: min(90px, 12vw);
        font-size: min(22.5px, 3vw);
        padding-left: min(97px, 12.93333333vw);
        letter-spacing: 0;
        border-radius: min(90px, 12vw);
        border: min(3.7px, 0.4933333vw) solid #000000;
    }
    .student_keyword .btn-cta-lg.btn-keyword::before {
        right: min(50px, 6.666666vw);
    }
    .student_keyword .btn-cta-md-alt {
        width: min(460px, 61.33333333vw);
        height: min(72px, 9.6vw);
        font-size: min(22.5px, 2.93333333vw);
        padding-left: min(60px, 8vw);
    }

    .student_keyword .humanlife-dept-block + .humanlife-dept-block {
        margin-top: min(48px, 6.4vw);
    }
}