@import url('news.css');
@import url('results.css');

@keyframes fadeIn-index {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

/*共通*/
.hero-bg-layer { background-color: var(--main-color); }

/* =====  カスタム  =====*/

/* ==== mv ==== */
.page-header {
    background-color: var(--main-color);
    padding-top:var(--margin);
}
.mv {
    container-type: inline-size; 
    position: relative;
    margin-top:0;
}
.mv figure {
    max-width: 894px;
    max-height: 446px;
    width: 100%;
    height: 100%;
    border-radius: var(--radius);
    overflow: hidden;
    margin-inline: auto;
    opacity: 0;
    animation: fadeIn-index 0.2s 0.4s ease-in-out forwards;
}

.mv figure img {
    width: 100%;
    height: auto;
}

/* ==== キャンペーンの黄色い丸 ==== */
.campaign {
    --campaign-wh: clamp(21.27px, 11cqw, 150px);
    --campaign-before-wh: calc(100% + 2rem);
    max-width: var(--campaign-wh);
    max-height: var(--campaign-wh);
    width: 100%;
    height: 100%;
    font-family: "Zen Maru Gothic", sans-serif;
    font-weight: bold;
    font-size: clamp(12px, 1.5cqw, 18px);
    color: var(--main-color);
    line-height: 1;
    text-align: center;
    background-color: var(--color-yellow);
    border-radius: 50rem;
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    position: absolute;
    right: clamp(-100px, calc(-42.0108vw + 408.129px), 30px);
    top:clamp(-17px, calc(  6.09319vw -  73.1183px), 0px);
    z-index: 10;
    transition: all .09s linear;
    opacity: 0;
    animation: fadeIn-index 0.6s 0.4s ease-in-out forwards;
}
.campaign::before {
    content: '';
    display: block;
    max-width: calc(var(--campaign-wh) + 2rem);
    max-height: calc(var(--campaign-wh) + 2rem);
    width: var(--campaign-before-wh);
    height: var(--campaign-before-wh);
    background-image: url(../_img/index/SVG/campaign2.svg);
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute;
    inset: -2rem;
    margin: auto;
}
.campaign .button {
    --btn-w: 72%;
    --btn-h: auto;
    min-width: auto;
    min-height: auto;
    height: auto;
    font-size: clamp(11px, 1.2cqw, 17px);
    text-transform: uppercase;
    text-indent: -.5em;
    justify-content: center;
    gap: 5px;
    background-color: var(--main-color);
    color: var(--color-white);
    padding: 0;
    margin: 0 auto;
}
.campaign .button::after {
    color: var(--color-white);
    font-size: 1em;
    right: 2px;
    top: 1px;
}
.campaign > a {
    display: block;
    width: 100%;
    margin: 0;
    position: static;
}
.campaign > a::before {
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
    margin: auto;
}


/* ==== クラス分けのボタン ==== */
.nav.nav--class {
    gap: clamp(5px, calc(0.5833vw + 5.6px), 12px);
    position: relative;
    z-index: 2;
    padding-top: var(--section-space);
}
.nav.nav--class li {
    max-width: 240px;
    width: 100%;
}

/* ====  キャッチコピー・問いかけ ==== */
#index #catch > div {
    display:flex;
    gap:60px;
    align-items: flex-start;
    justify-content: center;
    flex-wrap: wrap;
}
#index #catch h2 {
    font-size: clamp(30px, calc(0.5208vw + 33.75px), 40px);
    line-height: 1.7;
    letter-spacing: 0.1em;
    margin:0;
    order:2;
}
#index #catch p {
    line-height: 2;
    letter-spacing: 0.05em;
    margin:0;
    order:1;
}


section.page {
    display: block;
    width: 100%;
    height: 100vh;
    background-repeat: no-repeat;
    background-size: cover;
}

#index #about {
    --mask-top: 220px;
    margin: 0;
    background-color: var(--main-color);
    padding-bottom: 100px;
}
#index .scrolly__inner {
    position: relative;
    z-index: 0;
}
#index .scrolly__inner::before {
    content: '';
    position: sticky;
    display: block;
    width: 100%;
    height: var(--mask-top);
    top: 0;
    left: 0;
    right: 0;
    margin: auto;
    background-image: url("data:image/svg+xml;utf8,<?xml version='1.0' encoding='UTF-8'?><svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2395.07 304.95'><path fill='%230352a5' d='M-213.31-168.28v724.53H2.44v-274.06c5.96.03,11.95.06,18,.06,344,0,682-142.42,892-142.42,159.39,0,253.08,48.53,289,71.92,35.92-23.39,129.61-71.92,289-71.92,210,0,548,142.42,892,142.42,6.73,0,13.38-.03,20-.08v274.08h141.02V-168.28H-213.31Z'/></svg>");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center top;
    z-index: 1;
}
#index .scrolly__inner::after {
    font-family: "Roboto", sans-serif;
    font-weight: 900;
    font-size: clamp(50px, calc(8.333vw - 20px), 80px);
    white-space: pre;
    content: 'ABOUT\A SEISENJUKU';
    color: rgba(255,255,255, .8);
    letter-spacing: 0.05em;
    line-height: 0.97;
    position: sticky;
    bottom: 0;
    left: 0;
}
.scrolly__bg {
    margin-top: -200px;
    position: sticky;
    top: 0;
    height: 100svh;
    isolation: isolate;
}
.scrolly__bg-clip {
    position: absolute;
    inset: 0;
    overflow: clip;
  }
  .scrolly__bg-clip .bg {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity var(--transition);
    background-size: cover;
  }
.scrolly__bg .bg {
    background-color: var(--main-color);
    background-position: top;
}
/*520pxで切替あり*/
.scrolly__bg .bg--1 { background-image: url(../_img/index/about1.png); }
.scrolly__bg .bg--2 { background-image: url(../_img/index/about2.png); }
.scrolly__bg .bg--3 { background-image: url(../_img/index/about3.png); }

.scene {
    padding-top: 130px;   /* 青帯に潜るマージン（帯高さ + 余白） */
    padding-bottom: 85vh; /* 背景切替のための間合い（体感で調整） */
    position: relative;
  }

.scene h2 { 
    font-size: 27.2px;
    letter-spacing: 0.1em;
    text-align: right;
    margin-bottom: calc(var(--margin) * 2.19);
}
.scene h2 span {
    display: block;
    width: fit-content;
    background-color: var(--color-white);
    padding: var(--pad-1) var(--pad-2);
    margin-bottom: 30px;
    margin-left: auto;
    white-space: nowrap;
}
@media (min-width: 921px) {
    .scene h2 {
      text-align: right;
    }
    .scene[data-scene="2"] h2 span:nth-child(2), .scene[data-scene="2"] h2 span:nth-child(3), .scene[data-scene="3"] h2 span:nth-child(3), .scene[data-scene="3"] h2 span:nth-child(4) {
      display: inline-block;
      margin: 0;
      white-space: nowrap;
    }
    .scene[data-scene="2"] h2 span:nth-child(2), .scene[data-scene="3"] h2 span:nth-child(3) {
      border-top-right-radius: 0;
      border-bottom-right-radius: 0;
      padding-right: 0;
      margin-right: 0;
    }
    .scene[data-scene="2"] h2 span:nth-child(3), .scene[data-scene="3"] h2 span:nth-child(4) {
      border-top-left-radius: 0;
      border-bottom-left-radius: 0;
      padding-left: 4px;
      margin-left: -2px;
    }
}
    
.scene p  { 
    width: 47%;
    font-weight: bold;
    color: var(--color-white);
    line-height: 2.1;
    letter-spacing: 0.05em;
    font-feature-settings: initial;
    margin-left: auto;
}

.scene[data-scene="2"] h2 { margin-bottom: calc(var(--margin) * 2.77); }
.scene[data-scene="3"] h2 { margin-bottom: calc(var(--margin) * 2.6); }


/* ===== パララックスが終わってから ===== */
.about-normal {
    color: var(--color-white);
    line-height: 2.15;
    padding-block: var(--pad-9) var(--pad-8);
    overflow: hidden;
}
.about-normal .grid {
    gap:60px;
}

.about-normal figure {
    border-radius: var(--radius);
    overflow: hidden;
    width:100%;
}
.about-normal figure img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}
.about-normal .teacher02 {
    margin-top:60px;
}
.about-normal .teacher03 {
    margin-top:60px;
    position:absolute;
    left:60px;
}


/* ===== #news ===== */
#news {
    margin-bottom: calc(var(--section-space) * 2);
}
.news-list {
    --meta-width: 135px;
    max-width: 773px;
    text-align: left;
    margin-inline: auto;
}
 
#news .button {
    --margin: 60px;
    margin-inline: auto;
}

/* ===== 誠泉塾の充実したテスト対策 ===== */
#test-list {
    margin-bottom: var(--book-h) !important;
}

#test-list> div {
    padding-top: var(--pad-4);
}

#test-list h2 {
    position: relative;
    font-size: 1.3em
}
#test-list h2 span {
    font-size: 1.3em;
}
#test-list h2.section-title--bright {
    align-items: center;
}

#test-list .card {
    border-radius: var(--radius);
}

#test {
    margin-bottom: calc(var(--margin) * 2);
}

#test .card-sec {
    --card-bg: var(--color-green);
    color: var(--color-white);
    padding: var(--pad-3);
    border-radius: var(--radius);
    box-shadow: none;
}

#entrance-exam {
    --tag-bg: var(--main-color);
}
#entrance-exam ul {
    margin: 0;
}
#entrance-exam ul > li {
    --li-wh: 198px;
    --li-color: var(--color-white);
    --li-bgc: var(--main-color);
    width: var(--li-wh);
    height: var(--li-wh);
    font-size: 20px;
    color: var(--li-color);
    background-color: var(--li-bgc);
    border-radius: 50rem;
    padding-block: calc(var(--padding) * 1.9);
    padding-inline: calc(var(--padding) * 1.35) ;
}

#entrance-exam ul li > .target {
    font-size: 15px;
    padding-bottom: calc(var(--padding) * 0.7);
    border-bottom: 1px solid var(--color-white);
}
#entrance-exam .text {
    font-size: 1.1em;
}
#entrance-exam a {
    display: block;
    width: 390px;
    height: 109px;
}
#entrance-exam a > img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}


/* ===== イベント情報 ===== */
#event {
    margin-bottom: var(--book-h) !important;
}
#event .width-limiter {
    padding-top: var(--section-space); /*レイアウト調整*/
}

/* ===== ここが嬉しい！ここが便利！ ====== */
#appeal section {
    max-width: 1000px;
    padding-bottom: var(--pad-7);
    border-bottom: 1px solid #d1d1d1;
    margin-inline: auto;
}
#appeal .section-title--bright {
    margin-bottom: var(--margin);
}
#appeal .section-title--bright span {
    display: block;
}

#appeal .section-title--bright span > span:first-child {
    color: #000;
    font-size: 0.6em;
    margin-bottom: calc(var(--space-1) / 2);
}
#appeal .section-title--bright span > span:last-child {
    font-size: 0.76em;
}
#appeal a {
    display: block;
    width: 100%;
    height: auto;
}
#appeal picture {
    display: block;
    width: 100%;
    height: auto;
}
#appeal picture img {
    width: 100%;
    height: auto;
}


/* ===== レスポンシブ  ===== */

@media (min-width:920px) {
    .campaign:hover {
        scale: 1.1;
    }
}
@media (min-width: 520.1px) {
    #test-list h2.section-title--bright, #appeal .section-title--bright {
        display: inline-block;
    }
    #appeal .section-title--bright span {
        font-size: 1.9em;
    }
    .section-title--bright::before {
        left: -50px;
      }
    .section-title--bright::after {
    right:-42px;
    }
}
@media (max-width: 960px){

}
@media (max-width: 920px){
    /*キャンペーンの黄色い丸*/
    .campaign {
        position: relative;
        max-width: none;
        max-height: none;
        width: 100%;
        font-size: 1em;
        line-height: 2;
        padding: var(--padding) var(--pad-4);
        margin-top: var(--margin);
        margin-inline: auto;
        border-radius: var(--radius);
        left: 0;
        right: 0;
    }
    .campaign::before { display: none; }
    .campaign .button {
        width: 100%;
        font-size: 0.8em;
        padding-bottom: 2px;
        line-height: 2;
    }

    /* ===== Catch ===== */
    #index #catch > div {
        gap:40px;
    }
    #index #catch h2 {
        font-size: clamp(22px, calc(0.5208vw + 23px), 30px);
    }

    /* ===== About / Scrolly ===== */
    .scrolly__bg .bg { background-position: left; }
    .scrolly__bg .bg--1 { background-image: url(../_img/index/about1_sp.png); }
    .scrolly__bg .bg--2 { background-image: url(../_img/index/about2_sp.png); }
    .scrolly__bg .bg--3 { background-image: url(../_img/index/about3_sp.png); }
    /* .scene { padding-top: 120px; } */


    #appeal .section-title--bright span {
        font-size: clamp(.5em, calc(1.75vw + 0.6em), 1.3em);
    }
    #appeal .section-title--bright span > span:first-child {
        font-size: 0.9em;
    }
    #appeal .section-title--bright span > span:last-child {
        font-size: 1.2em;
    }
    #appeal img {
        width: 100%;
        height: 100%;
        object-fit: contain;
        object-position: top;
    }
    #appeal .app {
        aspect-ratio: 1000 / 322;
    }
}
@media (max-width: 768px){
    #index #catch > div {
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
    }
    #index #catch > div h2 {
        order:1;
    }
    #index #catch > div p {
        order:2;
    }
}
@media (max-width: 520px){
    .mv figure { max-height: 100vh; }
    .nav.nav--class.buttons {
        justify-content: space-between;
    }
    .nav.nav--class.buttons li {
        flex: 0 0 calc(50% - 5px);
    }
    .nav.nav--class.buttons li .button {
        min-width: auto;
        font-size: 1rem;
    }
    /* ===== scrollyの部分 ===== */
    #index .scrolly__inner::after {
        bottom: 70px;
    }

    .scene h2 { 
        font-size: clamp(19px, calc(5.655vw - 2.206px), 27.2px);
    }
    .scene p  { 
        width: 70%;
    }

    .scene h2 span.en {
        letter-spacing: 0.08em;
        margin-left: -0.2em;
    }
    /* ===== about-normal ===== */
    .about-normal {
        padding-top:60px;
    }
    .about-normal .teacher03 {
        position:relative;
        left:0;
    }

    .slider > div {
        --duration: 12s; 
    }
    
    .slider figure:where(:first-of-type, :nth-child(3), :nth-child(5)) {
        width: 200px;
        height: 300px;
    }
    .slider figure:not(:first-of-type, :nth-child(3), :nth-child(5)) {
        width: 300px;
        height: 200px;
    }

    /* ===== 充実したテスト対策 ===== */
    #test-list h2 {
        font-size: 1em;
        flex-direction: column;
        align-items: center;
    }
    #entrance-exam .text {
        font-size: 1em;
    }
    #entrance-exam .banners {
        gap: var(--gap-1);
    }

    /* ===== ここが嬉しい！ここが便利！ ===== */
    #appeal .app {
        grid-column: 1;
        aspect-ratio: 980 / 597
    }
    #nav-for-customer img {
        width: 100%;
        height: auto;
    }
    
}
