@charset "UTF-8";
/* ════════════════════════════════════════
   功能型 Media Query
════════════════════════════════════════ */
@media (hover: none) {
  .cursor-ring, .cursor-dot {
    display: none;
  }
  .strip-item[data-bubble]::before, .strip-item[data-bubble]::after {
    display: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .pass-left.on .benefit-item, .pass-left.on .price-row, .pass-left.on .pass-cta-btn, .pass-left.on .pass-note, .quota-card.on .q-month {
    animation: none;
    opacity: 1;
  }
  .rv-fade {
    transition: none;
  }
}
/* ════════════════════════════════════════
   2K 螢幕調整 (≥ 2560px)
════════════════════════════════════════ */
@media (min-width: 2560px) {
  .hero {
    min-height: 1100px;
  }
  .hero-inner {
    max-width: 1900px;
  }
  .hero-bar-inner {
    max-width: 1900px;
  }
  .hero-bar {
    padding: 20rem 0 5rem;
  }
  .hero-left {
    max-width: 800px;
  }
  .hero-people {
    width: 46vw;
    bottom: -8rem;
  }
  .hero-slong {
    width: 700px;
  }
  .hero-time-img {
    width: clamp(240px, 20vw, 660px);
  }
  .hero-icon-free-inner {
    width: 120px;
  }
  .hero-trail {
    left: calc(22.5rem + 180px);
  }
  .hero-trail img {
    width: 52vw;
  }
  .hero-target-tag {
    font-size: 1.3rem;
    padding: 8px 22px;
  }
  .hero-target-txt {
    font-size: 1.35rem;
  }
  .hero-bar-right .btn-yellow {
    font-size: 1.35rem;
    padding: 16px 48px;
  }
  .hero-bar-right .btn-yellow--chara {
    padding-left: 120px;
    padding-right: 36px;
  }
  .hero-bar-right .btn-chara {
    height: 130px;
    bottom: -53px;
  }
  .hero-bar-note {
    font-size: .95rem;
  }
  .hero-bar-badge {
    font-size: .95rem;
    padding: 2px 10px;
  }
  .clip-t {
    padding-top: 0rem;
  }
  .strategy::before {
    background-image: url('../images/bg-star-big.jpg');
    height: 750px;
  }
  .strategy-head img {
    width: 60%;
    margin-bottom: 2rem;
    margin-top: -4rem;
  }
  .steps-photo-wrap {
    padding-top: 40rem;
  }
  .reg-left-img {
    width: clamp(240px, 32vw, 760px);
  }
  .schools-head-img {
    width: clamp(220px, 31vw, 660px);
  }
  .sch-fly2 {
    width: clamp(260px, 55vw, 1000px);
  }
  .ps-head-img {
    max-width: 660px;
  }
  .stories-grid {
    grid-template-rows: 760px;
  }
  .schools-bubbles {
    height: 1280px;
  }
  .sc-b {
    width: calc(var(--bs, 150px) * 1.70);
    height: calc(var(--bs, 150px) * 1.70);
  }
  .sticky-inner {
    max-width: 1800px;
  }
  .pass-inner {
    max-width: 1700px;
  }
  .schools-inner {
    max-width: 1700px;
  }
  .teaser-inner {
    max-width: 1700px;
  }
  .reg-inner {
    max-width: 1700px;
  }
  .strat-grid {
    max-width: 1800px;
  }
  .venue-top {
    max-width: 1700px;
  }
  .venue-inner {
    max-width: 1700px;
  }
  .footer-inner {
    max-width: 1700px;
  }
}
/* ════════════════════════════════════════
   大螢幕調整 (≥ 1920px)
════════════════════════════════════════ */
@media (min-width: 1920px) {
  .pass-section {
    padding: 110px 0;
  }
  .venue-section {
    padding: 130px 0;
  }
  .teaser-section {
    padding: 0 0 150px;
  }
  .strip-section {
    padding: 90px 0 50px;
  }
  .footer {
    padding: 90px 0 55px;
  }
  .hero {
    min-height: 940px;
  }
  .hero-inner {
    max-width: 1600px;
  }
  .hero-bar-inner {
    max-width: 1600px;
  }
  .hero-bar {
    padding: 20rem 0 3rem;
  }
  .hero-left {
    max-width: 600px;
  }
  .hero-people {
    width: 960px;
    bottom: -6rem;
  }
  .hero-slong {
    width: 580px;
  }
  .hero-time-img {
    width: clamp(240px, 27vw, 572px);
  }
  .hero-icon-free-inner {
    width: 105px;
  }
  .hero-trail {
    left: calc(22.5rem + 90px);
  }
  .hero-trail img {
    width: clamp(500px, 50vw, 858px);
  }
  .strategy::before {
    top: -5px;
  }
  .schools-bubbles {
    height: 960px;
  }
  .sc-b {
    width: calc(var(--bs, 150px) * 1.28);
    height: calc(var(--bs, 150px) * 1.28);
  }
  .steps-photo-wrap {
    padding-top: 38rem;
  }
  .stories-grid {
    grid-template-rows: 580px;
  }
  .steps-bottom-text {
    font-size: clamp(6rem, 10vw, 14rem);
  }
  .teaser-head-img {
    width: clamp(400px, 30vw, 600px);
  }
  .sl-desc {
    font-size: 1rem;
  }
  .sc-desc {
    font-size: 1rem;
  }
  .sticky-inner {
    max-width: 1520px;
  }
  .pass-inner {
    max-width: 1400px;
  }
  .schools-inner {
    max-width: 1400px;
  }
  .teaser-inner {
    max-width: 1400px;
  }
  .reg-inner {
    max-width: 1400px;
  }
  .strat-grid {
    max-width: 1520px;
    margin: 0 auto;
  }
  .venue-top {
    max-width: 1400px;
    margin-left: auto;
    margin-right: auto;
  }
  .venue-inner {
    max-width: 1400px;
    margin-left: auto;
    margin-right: auto;
  }
  .footer-inner {
    max-width: 1400px;
  }
}
@media (max-width: 1600px) {
  .hero-icon-free-inner {
    right: 2.2rem;
    top: -.6rem;
  }

}
/* ════════════════════════════════════════
   1380px 過渡區間
════════════════════════════════════════ */
@media (max-width: 1380px) {
  .hero-inner {
    max-width: 1260px;
  }
  .footer-cols {
    max-width: 1260px;
  }
}
@media (max-width: 1280px) {
  .hero-inner {
    max-width: 1180px;
  }
  .hero-bar-inner {
    max-width: 1220px;
  }
  .steps-parallax-img {
    transform: none !important;
    top: 0;
  }
  .hero-icon-free-wrap {
    left: 2rem;
    top: -1.5rem;
  }
  .hero-icon-free-inner {
    left: auto;
    top: -1.5rem;
    right: 2rem;
    width: 110px;
  }
}
@media (min-width: 901px) and (max-width: 1380px) {
  .hero-bar {
    padding: 20rem 0 .5rem;
  }
}
@media (max-width: 1180px) {
  .hero-inner {
    max-width: 1080px;
  }
  .hero-people {
    bottom: 160px;
  }
  .hero {
    min-height: 890px;
  }
  .hero-trail img {
    transform: none !important;
  }
  .steps-parallax-img {
    transform: none !important;
    top: 0;
  }
  /* Hero Bar — 手機樣式 */
  .hero-bar-path {
    display: block;
    width: 100%;
    margin-top: auto;
    position: relative;
    z-index: 3;
    pointer-events: none;
    line-height: 0;
  }
  .hero-bar-path img {
    width: 100%;
    height: auto;
    display: block;
  }
  .hero-bar {
    margin-top: 0;
    background: var(--sky);
    z-index: 6;
    padding: 16px 0;
    overflow: visible;
  }
  .hero-bar-inner {
    margin-top: 0;
    gap: 6px;
    flex-direction: column;
    align-items: center;
  }
  .hero-bar-left {
    text-align: center;
    align-items: center;
    flex-direction: column;
    margin: 0 0 1.2rem;
  }
  .hero-bar-waves {
    display: none;
  }
  .hero-bar-deco {
    display: none;
  }
  .hero-bar-right {
    width: 100%;
    align-items: center;
  }
  .hero-bar-btns {
    width: 100%;
    gap: 20px;
    justify-content: center;
  }
  .reg-inner {
    margin: 0 4rem;
  }
  .hero-icon-free-inner {
    left: auto;
    top: -1.5rem;
    right: 1.8rem;
  }
  .hero-target-txt {
    max-width: 700px;
    text-align: center;
  }
  .hero-target-txt br {
    display: none;
  }
  .hero-target-tag {
    text-align: center;
  }
  .hero-bar-note {
    justify-content: center;
  }
  .ps-head-img {
    margin-left: 0rem;
  }
  .pass-section {
    padding: 80px 0 100px;
  }
  .teaser-subtitle {
    margin: -.4rem 0 0 4rem;
  }
  .cd-sub {
    margin-top: -.4rem;
  }
}
/* ════════════════════════════════════════
   ≤ 1024px
════════════════════════════════════════ */
@media (max-width: 1024px) {
  .sch-fly2 {
    right: 3rem;
  }
  .strategy::before {
    height: 780px;
  }
  .strat-grid {
    grid-template-columns: repeat(2, 1fr);
    padding: 0 3rem;
  }
  .steps-parallax-img {
    transform: none !important;
    top: 0;
  }
  .hero {
    min-height: 820px;
  }
  .hero-inner {
    max-width: 950px;
  }
  .hero-icon-free-inner {
    left: auto;
    right: 1rem;
    top: -2rem;
  }
  .hero-people {
    bottom: 160px;
  }
  /* Hero Bar — 手機樣式 */
  .hero-bar-path {
    display: block;
    width: 100%;
    margin-top: auto;
    position: relative;
    z-index: 3;
    pointer-events: none;
    line-height: 0;
  }
  .hero-bar-path img {
    width: 100%;
    height: auto;
    display: block;
  }
  .hero-bar {
    margin-top: 0;
    background: var(--sky);
    z-index: 6;
    padding: 16px 0;
    overflow: visible;
  }
  .hero-bar-inner {
    margin-top: 0;
    gap: 6px;
    flex-direction: column;
    align-items: center;
  }
  .hero-bar-left {
    text-align: center;
    align-items: center;
    flex-direction: column;
    margin: 0 0 1.2rem;
  }
  .hero-bar-waves {
    display: none;
  }
  .hero-bar-deco {
    display: none;
  }
  .hero-bar-right {
    width: 100%;
    align-items: center;
  }
  .hero-bar-btns {
    width: 100%;
    gap: 20px;
    justify-content: center;
  }
  .hero-target-txt {
    max-width: 700px;
    text-align: center;
  }
  .hero-target-txt br {
    display: none;
  }
  .hero-target-tag {
    text-align: center;
  }
  .hero-bar-note {
    justify-content: center;
  }
  .reg-inner {
    max-width: 980px;
  }
  .reg-left-img {
    width: clamp(300px, 45vw, 500px);
    margin-left: -.4rem;
  }
  .sch-heading {
    margin-top: -40px;
    margin-left: 140px;
  }
  .sch-desc {
    margin-left: 140px;
  }
  .sch-unlock-badge {
    margin-left: 140px;
  }
  .pass-inner {
    grid-template-columns: 1fr;
    max-width: 900px;
    padding: 0;
  }
  .benefit-grid {
    margin-right: 0;
  }
  .price-list {
    margin-right: 0;
  }
  .quota-card {
    margin: 2rem 0 0;
    background-position: center 60px;
    padding: 38px 32px 20rem;
  }
  .q-month-n {
    font-size: 3.2rem;
  }
  .q-month-t {
    font-size: 1.2rem;
  }
  .stories-head-img {
    width: clamp(400px, 65vw, 700px);
  }
  .ps-head-img {
    margin-left: 0rem;
  }
  .pass-section {
    padding: 80px 0 100px;
  }
  .teaser-subtitle {
    margin: -1rem 0 0 4rem;
  }
  .teaser-head-img {
    width: clamp(300px, 42vw, 560px);
  }
  .cd-sub {
    margin: -1.4rem 0 0 4rem;
  }
  .cd-head-img {
    width: clamp(300px, 42vw, 560px);
  }
}
/* ════════════════════════════════════════
   ≤ 1000px
════════════════════════════════════════ */
@media (max-width: 1000px) {
  .venue-top {
    padding: 0 32px;
    margin-bottom: 40px;
  }
  .venue-inner {
    grid-template-columns: 1fr;
    padding: 0 32px;
    gap: 40px;
  }
  .venue-section::after {
    background: rgba(0, 30, 80, .7);
  }
  .reg-inner {
    padding: 60px 32px 100px;
  }
}
/* ════════════════════════════════════════
   ≤ 960px
════════════════════════════════════════ */
@media (max-width: 960px) {
  .pass-inner {
    grid-template-columns: 1fr;
    padding: 0 32px;
    gap: 40px;
  }
  .ps-head-img {
    margin-left: 0;
    max-width: 100%;
  }
  .ps-script {
    font-size: clamp(1.4rem, 5vw, 2rem);
  }
  .ps-script-sub {
    font-size: clamp(1.1rem, 4vw, 1.5rem);
  }
  .ps-title {
    font-size: clamp(1.2rem, 4.5vw, 1.7rem);
  }
}
/* ════════════════════════════════════════
   ≤ 900px
════════════════════════════════════════ */
@media (max-width: 991px) {
  /* Hero */
  .hero {
    min-height: clamp(560px, 70vh, 720px);
  }
  .hero-badge {
    width: 90px;
    height: 90px;
  }
  .hero-badge-num {
    font-size: 1.2rem;
  }
  .strategy-head {
    gap: 20px;
  }
  .hero-left {
    max-width: 100%;
    padding: 90px 24px 120px;
  }
  .hero-people {
    width: clamp(240px, 60vw, 440px);
    bottom: 0;
    z-index: 1;
  }
  .hero-bar {
    padding: 16px 0;
    z-index: 6;
  }
  .hero-bar-inner {
    padding: 0 10px;
    margin-top: -.2rem;
  }
  .hero-bar-left {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    margin-top: 0rem;
    margin-bottom: .8rem;
    margin-left: 1rem;
  }
  .hero-icon-free-inner {
    width: 90px;
    top: -1.8rem;
    left: auto;
    right: 1rem;
  }
  .hero-slong {
    width: min(400px, 90%);
  }
  /* Sticky */
  .sticky-inner {
    grid-template-columns: 1fr;
  }
  .sticky-left {
    position: relative;
    height: auto;
    padding: 60px 24px 32px;
  }
  .sticky-right {
    padding: 0 24px 60px;
  }
  /* Schools */
  .schools-bubbles {
    height: 560px;
  }
  .schools-inner {
    padding: 0 24px;
  }
  .sc-b {
    transform: translate(-50%, -50%) scale(calc(var(--sc) * .72)) translateY(var(--float-y, 0px));
  }
  .sc-b.rv {
    transform: translate(-50%, -50%) translateY(44px) scale(calc(var(--sc) * .72));
  }
  .sc-b.rv.on {
    transform: translate(-50%, -50%) scale(calc(var(--sc) * .72)) translateY(var(--float-y, 0px));
  }
  .schools-head {
    display: flex;
    flex-direction: column;
  }
  .schools-head-img {
    order: 1;
    width: 90%;
    max-width: 320px;
  }
  .sch-fly2 {
    position: static;
    width: 100%;
    max-width: 100%;
    order: 2;
    align-self: flex-end;
    margin-top: .8rem;
  }
  .sch-heading {
    order: 3;
  }
  .sch-desc {
    order: 4;
  }
  .sch-unlock-badge {
    order: 5;
  }
  .sch-heading {
    margin-left: 0;
    margin-top: 12px;
  }
  .sch-desc {
    margin-left: 0;
    font-size: 1rem;
  }
  .sch-unlock-badge {
    margin-left: 0;
    width: fit-content;
  }
  /* Steps */
  .steps-flow {
    flex-wrap: wrap;
    gap: 36px 0;
    padding: 0 24px;
  }
  .sf-item {
    flex: 0 0 50%;
    padding: 0 12px;
  }
  .sf-arrow {
    display: none;
  }
  .steps-photo-wrap {
    height: 700px;
  }
  .steps-bottom-text {
    font-size: clamp(3rem, 12vw, 6rem);
  }
}
/* ════════════════════════════════════════
   ≤ 920px
════════════════════════════════════════ */
@media (max-width: 920px) {
  .footer-cols {
    flex-wrap: wrap;
    gap: 32px;
  }
  .fc-sep {
    display: none;
  }
  .footer-col {
    flex: 0 0 calc(50% - 16px);
    min-width: 140px;
  }
  .ps-head-img {
    max-width: 70%;
  }
  /* Nav */
  .nav {
    padding: 16px 24px;
  }
  .nav.solid {
    padding: 12px 24px;
  }
  .nav-links {
    display: none;
  }
  .nav-hamburger {
    display: flex;
  }
  .pc-br {
    display: none;
  }
  /* Sections 垂直間距 */
  .pass-section {
    padding: 64px 0;
  }
  .schools-section {
    padding: 70px 0 56px;
  }
  .venue-section {
    padding: 70px 0 100px;
  }
  .strip-section {
    padding: 45px 0 15px;
  }
  .teaser-section {
    padding: 0 0 72px;
  }
  /* Venue */
  .venue-top {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
  }
  .vn-fly3 {
    align-self: flex-end;
  }
  /* Steps */
  .steps-head {
    padding: 0 24px;
    margin-bottom: 28px;
  }
  .steps-pic-restart {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 4;
  }
  /* Quota */
  .q-months {
    grid-template-columns: repeat(4, 1fr);
    max-width: 100%;
    gap: 8px;
  }
  /* Stories */
  .stories-head {
    padding: 0 24px;
    margin-bottom: 20px;
  }
  .stories-grid {
    grid-template-columns: 1fr;
    grid-template-rows: repeat(3, 450px);
  }
  .story-card:nth-child(1), .story-card:nth-child(2), .story-card:nth-child(3) {
    grid-column: 1;
  }
  .story-img img {
    object-position: top;
  }
  /* Teaser */
  .teaser-inner {
    padding: 0 24px;
  }
  .teaser-head {
    margin-bottom: 28px;
  }
  .teaser-row {
    padding: 14px 20px;
  }
  .teaser-stamp {
    right: 5rem;
    padding: 14px 20px;
    font-size: 1.2rem;
  }
  .ts-lock {
    width: 18px;
    height: 18px;
  }
  .hero-people {
    bottom: 200px;
  }
  .hero-left {
    padding: 50px 24px 120px;
  }
  .hero-trail {
    left: 12rem;
  }
  .hero-slong {
    width: min(350px, 90%);
  }
  /* Hero Bar — 手機樣式 */
  .hero-bar-path {
    display: block;
    width: 100%;
    margin-top: auto;
    position: relative;
    z-index: 3;
    pointer-events: none;
    line-height: 0;
  }
  .hero-bar-path img {
    width: 100%;
    height: auto;
    display: block;
  }
  .hero-bar {
    margin-top: 0;
    background: var(--sky);
    z-index: 6;
    padding: 16px 0;
    overflow: visible;
  }
  .hero-bar-inner {
    margin-top: 0;
    gap: 6px;
    flex-direction: column;
    align-items: center;
  }
  .hero-bar-left {
    text-align: center;
    align-items: center;
    margin: 0;
  }
  .hero-bar-waves {
    display: none;
  }
  .hero-bar-deco {
    display: none;
  }
  .hero-bar-right {
    width: 100%;
    align-items: center;
  }
  .hero-bar-btns {
    width: 100%;
    gap: 12px;
    justify-content: center;
  }
  .hero-target-txt br {
    display: none;
  }
  .hero-target-tag {
    display: block;
    text-align: center;
  }
  .hero-bar-note {
    justify-content: center;
  }
  .hero {
    min-height: 720px;
  }
  .hero-target-txt {
    margin-bottom: 1.5rem;
  }
  .strategy::before {
    background: url(../images/bg-star.jpg) center top / 100% auto no-repeat;
  }
  .reg-inner {
    grid-template-columns: 1fr;
  }
  .reg-left-img {
    width: clamp(300px, 70vw, 560px);
    margin-bottom: 2rem;
  }
  .vn-head-img {
    width: clamp(280px, 50vw, 500px);
  }
  .vn-fly3 {
    width: 100%;
    left: -1rem;
  }
  .footer-cols {
    gap: 16px;
  }
  .footer-col {
    flex: 0 0 calc(33.333% - 11px);
  }
  .steps-parallax-img {
    top: 80px;
  }
}
/* ════════════════════════════════════════
   ≤ 820px
════════════════════════════════════════ */
@media (max-width: 820px) {
  .steps-photo-wrap {
    height: 650px;
  }
  .reg-inner {
    padding: 60px 0px 100px;
  }
  .hero-icon-free-inner {
    width: 90px;
    top: -1.6rem;
    left: auto;
    right: 20px;
  }
}
/* ════════════════════════════════════════
   手機橫式（寬 ≤ 991px，橫向）
════════════════════════════════════════ */
@media (max-width: 991px) and (orientation: landscape) {
  .hero {
    min-height: 750px;
  }
  .hero-left {
    padding: 40px 50px 200px;
  }
  .hero-people {
    bottom: 220px;
  }
  .hero-bar-path {
    display: block;
    width: 100%;
    margin-top: auto;
    position: relative;
    z-index: 3;
    pointer-events: none;
    line-height: 0;
  }
  .hero-bar-path img {
    width: 100%;
    height: auto;
    display: block;
  }
  .hero-bar {
    margin-top: 0;
    background: var(--sky);
    z-index: 6;
    padding: 16px 0;
    overflow: visible;
  }
  .hero-bar-inner {
    margin-top: 0;
    gap: 6px;
    flex-direction: column;
    align-items: center;
  }
  .hero-bar-left {
    text-align: center;
    align-items: center;
    margin: 0;
  }
  .hero-bar-waves {
    display: none;
  }
  .hero-bar-deco {
    display: none;
  }
  .hero-bar-right {
    width: 100%;
    align-items: center;
  }
  .hero-bar-btns {
    width: 100%;
    gap: 12px;
    justify-content: center;
  }
  .hero-target-txt {
    margin: 0 0 2rem;
    max-width: 600px;
  }
  .hero-target-txt br {
    display: none;
  }
  .hero-target-tag {
    display: block;
    text-align: center;
  }
  .hero-bar-note {
    justify-content: center;
  }
  .steps-photo-wrap {
    height: 680px;
    margin-top: -230px;
  }
  .steps-parallax-img {
    width: 100%;
    top: 0;
    bottom: auto;
    transform: none !important;
    max-width: 100%;
    margin-left: 0;
    height: 100%;
    object-fit: cover;
    object-position: center top;
  }
  .steps-pic-restart {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 4;
  }
  .ps-head-img {
    max-width: 550px;
  }
  .quota-card {
    margin: 0;
    background-position: center 30px;
  }
  .clip-t {
    background: linear-gradient(to bottom, var(--sky) 30%, var(--white) 30%);
  }
  .hero-slong {
    max-width: 50%;
  }
  .reg-inner {
    grid-template-columns: 1fr;
  }
  .reg-left-img {
    width: min(480px, 100%);
    margin-bottom: 3rem;
  }
  .q-month-n {
    font-size: 2.2rem;
  }
  .q-month-t {
    font-size: 1rem;
  }
  .teaser-subtitle {
    margin: 0rem 0 0 4rem;
  }
  .cd-sub {
    margin-top: -.8rem;
  }
  .footer-cols {
    flex-wrap: wrap;
    gap: 16px;
  }
  .fc-sep {
    display: none;
  }
  .footer-col {
    flex: 0 0 calc(33.333% - 11px);
  }
  .teaser-stamp {
    right: 10rem;
    padding: 14px 20px;
    font-size: 1.2rem;
  }
  .hero-icon-free-inner {
    width: 90px;
    right: 25px;
    top: -20px;
    left: auto
  }
}
/* ════════════════════════════════════════
   手機橫式 ≤ 680px
════════════════════════════════════════ */
@media (max-width: 680px) and (orientation: landscape) {
  .hero-slong {
    width: min(320px, 90%);
  }
  .hero-left {
    padding: 40px 20px 0px
  }
  .hero {
    min-height: 700px;
  }
  .hero-trail {
    left: 7rem;
  }
  .clip-t {
    background: linear-gradient(to bottom, var(--sky) 30%, var(--white) 30%);
  }
  .reg-inner {
    grid-template-columns: 1fr;
  }
  .footer-cols {
    flex-wrap: wrap;
    gap: 16px;
  }
  .footer-col {
    flex: 0 0 calc(33.333% - 11px);
  }
}
/* ════════════════════════════════════════
   ≤ 640px (手機)
════════════════════════════════════════ */
@media (max-width: 640px) {
  .strategy {
    background: linear-gradient(to bottom, #00a0e8 880px, var(--white) 880px);
  }
  .rf-submit {
    text-align: center;
    max-width: 290px;
  }
  .sch-unlock-badge {
    width: fit-content;
  }
  .sch-grid {
    grid-template-columns: 1fr;
  }
  .sch-filter-wrap {
    padding: 0 16px;
  }
  .sch-grid {
    padding: 0 16px;
  }
  .sc-title-sub {
    font-size: 1.35rem;
  }
  .reg-left-img {
    width: 100%;
    margin-left: 0rem;
    margin-top: 0rem;
    margin-bottom: 0;
  }
  .steps-head-img {
    width: 90%;
  }
  .sc-bar {
    bottom: -2px;
    left: -1px;
  }
  .strat-grid {
    padding: 0 2rem;
  }
  .ill-stat {
    padding: 20px 24px;
    border-right: none;
    border-bottom: 1px solid var(--border);
  }
  .ill-stat:last-child {
    border-bottom: none;
  }
  .sc-c1 .sc-bar {
    border-color: #0074b8;
  }
  /* Hero badge 縮小 */
  .hero-badge {
    width: 72px;
    height: 72px;
  }
  .hero-badge-num {
    font-size: 1rem;
  }
  /* Hero 手機版：改為流式佈局，標題→人物圖→適合對象 */
  .hero-inner {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    bottom: auto;
  }
  .hero-inner {
    display: flex;
    flex-direction: column;
  }
  .hero-people {
    position: relative;
    top: auto;
    bottom: auto;
    right: auto;
    left: auto;
    width: 94vw;
    display: block;
    margin: -1.8rem auto 0;
    z-index: 1;
    order: 2;
  }
  .hero-bar-path {
    display: block;
    width: 100%;
    margin-top: -10rem;
    position: relative;
    z-index: 3;
    pointer-events: none;
    line-height: 0;
  }
  .hero-bar-path img {
    width: 100%;
    height: auto;
    display: block;
  }
  .hero-bar {
    margin-top: 0;
    background: var(--sky);
    z-index: 6;
    padding: 16px 0;
    overflow: visible;
  }
  .hero-bar-inner {
    margin-top: 0rem;
    gap: 6px;
  }
  .hero-bar-waves {
    display: none;
  }
  .hero-bar-deco {
    display: none;
  }
  .hero {
    min-height: 0;
  }
  .hero-left {
    padding: 20px 24px 20px;
    order: 1;
  }
  .hero-date-row {
    transform: scale(0.95) translateY(-5px);
  }
  .hero-h1 {
    margin: 0 0 4px;
  }
  .hero-slong {
    margin-bottom: 0rem;
  }
  .hero-target-txt {
    font-size: .72rem;
    line-height: 1.45;
    text-align: left;
    margin: 0 1rem .4rem;
  }
  .hero-bar-left {
    align-items: flex-start;
    text-align: left;
  }
  .hero-target-tag {
    font-size: 0.85rem;
    padding: 3px 18px;
    margin-left: .8rem;
    margin-bottom: .1rem;
    margin-top: -.1rem;
  }
  .hero-time-img {
    width: 80%;
  }
  .hero-icon-free-inner {
    width: 100px;
    left: auto;
    right: 4rem;
    top: 0rem;
  }
  /* Hero bar 按鈕 */
  .hero-bar-right {
    width: 100%;
    align-items: flex-start;
    padding: 0 .5rem;
  }
  .hero-bar-btns {
    width: 100%;
    gap: 6px;
    justify-content: center;
  }
  .btn-yellow {
    flex: 1;
    justify-content: center;
    font-size: .78rem;
    padding: 10px 12px;
  }
  .btn-yellow--chara {
    flex: 0 0 auto;
    padding: 10px 12px 10px 56px;
    font-size: 1rem;
    justify-content: flex-start;
    letter-spacing: -0.05rem;
  }
  .btn-yellow--chara .btn-chara {
    height: 72px;
    left: 6%;
    bottom: -32px;
  }
  .btn-yellow--chara .bs1 {
    width: 14px;
    height: 14px;
    left: 88px;
    top: -5px;
  }
  .btn-yellow--chara .bs2 {
    width: 6px;
    height: 6px;
    left: 22px;
    top: 22px;
  }
  .btn-yellow--chara .bs3 {
    width: 11px;
    height: 11px;
    left: 11px;
    top: 10px;
  }
  .btn-yellow--chara .bs4 {
    left: 40px;
  }
  .btn-yellow--chara .bs5 {
    left: 8px;
  }
  .btn-yellow--chara .bs6 {
    left: 55px;
  }
  .hero-bar-note {
    font-size: .68rem;
    color: rgba(255, 255, 255, .65);
    gap: 2px;
    justify-content: center;
    margin-top: 0rem;
  }
  .hero-bar-badge {
    font-size: .62rem;
    padding: 1px 6px;
    opacity: .7;
    display: none;
  }
  .hero-bar-deco {
    display: none;
  }
  /* Strategy：手機版改用實色藍，透明會露出白底 */
  .strategy::before {
    height: 1580px;
    background: url(../images/bg-star-s.jpg) center bottom / 100% auto no-repeat;
  }
  .strategy-head img {
    width: 90%;
    margin: 0rem auto 0;
  }
  .strategy-pic-line {
    width: 150%;
    max-width: 150%;
    margin-left: -55%;
  }
  .strategy {
    overflow: hidden;
  }
  .strat-grid {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .strat-grid .sc {
    margin-bottom: 16px;
  }
  .strat-grid .sc:last-child {
    margin-bottom: 0;
  }
  .sc-desc {
    font-size: 1rem;
  }
  .sc-icon {
    width: 200px;
    height: 200px;
  }
  .cta-bg {
    position: absolute;
    z-index: 2;
  }
  .cta-bg img {
    width: 100%;
    height: 100%;
    object-position: bottom;
    vertical-align: bottom;
    background-size: 100% auto;
    object-fit: contain
  }
  /* Steps */
  .steps-flow {
    flex-direction: column;
    align-items: center;
    gap: 32px;
  }
  .sf-item {
    flex: 0 0 auto;
    width: 100%;
  }
  .sf-arrow {
    display: none;
  }
  .steps-photo-wrap {
    height: 500px;
    margin-top: -230px;
  }
  .steps-parallax-img {
    width: 116%;
    top: auto;
    bottom: 0;
    transform: none;
    max-width: 116%;
    margin-left: -7%;
  }
  .steps-pic-restart {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 4;
  }
  /* Pass */
  .pm-box {
    padding: 36px 24px 28px;
  }
  /* Countdown 數字縮小防溢出 */
  .cd-sep {
    opacity: .3;
  }
  .cd-chara {
    height: 80px;
    left: -10px;
  }
  .cd-btn {
    padding: 14px 28px 14px 52px;
    font-size: 1.05rem;
  }
  .cd-cta .btn-yellow {
    font-size: 1.5rem;
    padding: 14px 35px 14px 110px;
  }
  .cd-cta .btn-chara {
    height: 130px;
    left: 32px;
    bottom: -53px;
  }
  .countdown-section {
    padding: 60px 0 0;
  }
  .cd-bye {
    width: 150vw;
    margin-top: 60px;
  }
  .footer-cols {
    gap: 20px;
    margin-bottom: 6rem;
  }
  .footer-mobile-deco {
    display: block;
    width: 90%;
    margin-top: 16px;
    margin: 0 auto 1rem;
  }
  .footer-watermark {
    display: none;
  }
  .fc-line {
    font-size: 1rem;
  }
  .footer-col {
    gap: 2px;
  }
  .fc-svg-icon {
    width: 66px;
    height: 66px;
  }
  .cd-n, .cd-sep {
    font-size: clamp(2.4rem, 12vw, 4rem);
  }
  .cd-script {
    font-size: clamp(1.6rem, 5.5vw, 2.4rem);
  }
  .teaser-subtitle {
    font-size: clamp(1.2rem, 5vw, 1.7rem);
  }
  .cd-sub {
    transform: none;
  }
  /* 手機固定底部 CTA bar */
  .strip-label {
    letter-spacing: .01rem;
  }
  .strip-item[data-bubble].bubble-open {
    z-index: 20;
  }
  .strip-item[data-bubble].bubble-open::before {
    display: flex;
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
  /* Sections 垂直間距 */
  .pass-section {
    padding: 48px 0;
  }
  /* Pass 置中 */
  .pass-inner {
    padding: 0 24px;
    text-align: center;
  }
  .ps-head-img {
    margin: 0 auto 12px;
  }
  .ps-badge {
    display: block;
    margin: 0 auto 12px;
    width: fit-content;
  }
  .benefit-grid {
    justify-items: center;
  }
  .benefit-item {
    justify-content: center;
    width: 100%;
  }
  .pass-cta-btn {
    margin-left: auto;
    margin-right: auto;
  }
  .q-schedule-row {
    justify-content: center;
    text-align: center;
  }
  .venue-section {
    padding: 70px 0 80px;
  }
  .schools-section {
    padding: 70px 0 70px;
  }
  .teaser-section {
    padding: 0 0 56px;
  }
  .footer {
    padding: 48px 0 28px;
  }
  /* Schools 泡泡：絕對定位散落構圖 */
  .schools-bubbles {
    position: relative;
    width: 100%;
    height: 700px;
    padding: 0;
    margin: 20px 0 0;
    overflow: visible;
  }
  .sc-b {
    position: absolute;
    left: var(--mx, 50%);
    top: var(--my, 50%);
    width: clamp(68px, calc(var(--bs, 150px) * .48), 155px);
    height: clamp(68px, calc(var(--bs, 150px) * .48), 155px);
    transform: translate(-50%, -50%) !important;
    animation: none !important;
    margin: 0;
    z-index: 1;
  }
  /* 個別定位：散落交錯構圖 */
  .sc-b:nth-child(1) {
    --mx: 16%;
    --my: 12%;
    z-index: 3;
  } /* 頂級國立 */
  .sc-b:nth-child(2) {
    --mx: 54%;
    --my: 12%;
    z-index: 2;
  } /* 常春藤 */
  .sc-b:nth-child(3) {
    --mx: 90%;
    --my: 16%;
    z-index: 3;
  } /* 升學語言 */
  .sc-b:nth-child(4) {
    --mx: 8%;
    --my: 24%;
    z-index: 2;
  } /* 寄宿家庭 */
  .sc-b:nth-child(5) {
    --mx: 40%;
    --my: 34%;
    z-index: 4;
  } /* 畢業就業 */
  .sc-b:nth-child(6) {
    --mx: 80%;
    --my: 34%;
    z-index: 3;
  } /* 聲優動漫 */
  .sc-b:nth-child(7) {
    --mx: 16%;
    --my: 44%;
    z-index: 2;
  } /* 製菓料理 */
  .sc-b:nth-child(8) {
    --mx: 74%;
    --my: 54%;
    z-index: 4;
  } /* 英語授課 */
  .sc-b:nth-child(9) {
    --mx: 8%;
    --my: 58%;
    z-index: 3;
  } /* 日本生活 */
  .sc-b:nth-child(10) {
    --mx: 88%;
    --my: 70%;
    z-index: 2;
  } /* 房屋租賃 */
  .sc-b:nth-child(11) {
    --mx: 34%;
    --my: 62%;
    z-index: 3;
  } /* 藝術升學 */
  .sc-b:nth-child(12) {
    --mx: 78%;
    --my: 87%;
    z-index: 2;
  } /* 會話專業 */
  .sc-b:nth-child(13) {
    --mx: 16%;
    --my: 80%;
    z-index: 3;
  } /* 求職超強 */
  .sc-b:nth-child(14) {
    --mx: 50%;
    --my: 80%;
    z-index: 4;
  } /* 建築設計 */
  .sc-b.rv {
    opacity: 0;
    transform: translate(-50%, -50%) translateY(20px) !important;
  }
  .sc-b.rv.on {
    opacity: 1;
    transform: translate(-50%, -50%) !important;
  }
  .sc-b-text, .sc-b:nth-child(3) .sc-b-text, .sc-b:nth-child(11) .sc-b-text {
    font-size: .85rem;
    line-height: 1.4;
  }
  .sc-b-text br {
    display: none;
  }
  .sch-heading {
    font-size: 1.4rem;
  }
  .sch-ref {
    margin-top: 0;
    font-size: 1rem;
  }
  /* Stories 縮小高度 */
  .stories-head {
    padding: 0;
  }
  .stories-head-img {
    width: 100%;
  }
  .stories-grid {
    grid-template-columns: 1fr;
    grid-template-rows: 350px 350px 350px;
  }
  .story-card:nth-child(1), .story-card:nth-child(2), .story-card:nth-child(3) {
    grid-column: 1;
  }
  .story-body {
    padding: 16px 20px 30px;
  }
  .story-badge-row {
    margin-bottom: 4px;
  }
  .story-desc {
    line-height: 1.5;
    margin-top: 4px;
    font-size: .9rem;
  }
  .sb-trail {
    letter-spacing: 0rem;
  }
  .sb-title {
    font-size: 1.5rem;
    letter-spacing: .3rem;
  }
  .teaser-head-img {
    width: 90%;
    max-width: 100%;
  }
  .cd-head-img {
    width: 90%;
    max-width: 100%;
    transform: translateX(-15px);
  }
  .stories-bottom {
    padding: 50px 24px 16px;
  }
  .teaser-subtitle, .cd-sub {
    margin: -.5rem 0 0 1.7rem;
  }
  .teaser-title {
    font-size: 1.2rem;
  }
  .teaser-check {
    width: 30px;
    height: 30px;
  }
  .teaser-row {
    gap: 8px;
  }
  .teaser-grid {
    gap: 22px;
  }
  .vn-head-img {
    width: 90%;
    display: block;
    margin: 0 auto;
  }
  .vn-fly3 {
    width: 100%;
    left: -1rem;
    top: 0rem;
    bottom: 5px;
  }
  .venue-top {
    margin-bottom: 20px;
  }
  /* Quota */
  .q-months {
    gap: 12px;
    width: 86%;
    margin-left: auto;
    margin-right: auto;
  }
  .q-month {
    padding: 8px;
    background: rgba(255, 255, 255, .8);
    margin: 0 5px;
  }
  .q-month-n {
    font-size: 2.2rem;
  }
  .q-month-t {
    font-size: .9rem;
  }
  /* Steps */
  .steps-photo-wrap {
    height: 670px;
  }
  /* 表單 */
  .cta-section {
    background-color: #00a0e6;
  }
  .reg-inner {
    grid-template-columns: 1fr;
    padding: 35px 0px 20rem;
    gap: 30px;
    margin: 0 2rem;
  }
  .teaser-stamp {
    right: 2rem;
    padding: 10px 10px;
    font-size: 1rem;
    gap: 4px;
  }
  .reg-left {
    text-align: center;
  }
  .reg-left .cta-title, .reg-left .cta-sub {
    text-align: center;
  }
  .reg-tips {
    align-items: center;
  }
  .reg-form {
    padding: 28px 20px;
    margin: 0;
  }
  .rf-row {
    flex-direction: column;
  }
  .rf-row .rf-field {
    width: 100%;
  }
  .rf-row .rf-field[style*="max-width"] {
    max-width: 100% !important;
  }
  .rf-row--dob {
    flex-direction: row;
    align-items: stretch;
  }
  .rf-row--dob .rf-field:first-child {
    flex: 0 0 74%;
    max-width: 74% !important;
  }
  .rf-row--dob .rf-field:last-child {
    flex: 0 0 24%;
    max-width: 24% !important;
  }
  .rf-row--dob .rf-field input {
    height: 100%;
  }
  /* 手機版：年/月/日下拉縮小間距與內距，避免太擠 */
  .rf-dob-row { gap: 5px; }
  .rf-dob-row select {
    padding-left: 8px;
    padding-right: 18px;
    background-position: right 4px center;
    background-size: 12px;
  }
  .rf-btn-otp {
    font-size: .82rem;
    padding: 13px 12px;
  }
  .pm-box--otp {
    padding: 32px 24px 40px;
  }
  .pm-box--otp .pm-title {
    font-size: 1.3rem;
  }
  .pm-box--otp .pm-body {
    font-size: 1rem;
  }
  .rf-phone-row {
    flex-direction: column;
  }
  .rf-phone-row .rf-country-code, .rf-phone-row input, .rf-phone-row .rf-btn-otp {
    width: 100%;
  }
  /* 加購彈窗：付款方式與信箱改回上下堆疊、兩欄滿版 */
  .pass-pay-email-row {
    flex-direction: column;
    gap: 14px;
    align-items: stretch;
  }
  .pass-pay-grid {
    grid-template-columns: 1fr 1fr;
  }
  /* 信箱說明與「前往付款」按鈕之間多留間距 */
  .pass-email-hint {
    margin-bottom: 14px;
  }
  .pass-slot-title {
    margin-top: 4px;
  }
  /* 圖形驗證碼：輸入框獨佔一行，圖片＋更換按鈕排下一行 */
  .rf-captcha-row {
    flex-wrap: wrap;
  }
  .rf-captcha-row input {
    flex: 1 1 100%;
  }
  .rf-captcha-img {
    height: 46px;
  }
  .rf-submit {
    font-size: 1.2rem !important;
    padding: 14px 28px 14px 110px !important;
    width: 100%;
    box-sizing: border-box;
  }
  .rf-submit.btn-yellow--chara .btn-chara {
    height: 120px;
    bottom: -48px;
    left: 32px;
  }
  .pass-cta-btn {
    font-size: 1.2rem !important;
    padding: 14px 28px 14px 120px !important;
    width: 100%;
    box-sizing: border-box;
    justify-content:flex-start !important;
 }
  .pass-cta-btn.btn-yellow--chara .btn-chara {
    height: 120px;
    bottom: -48px;
    left: 35px;
  }
  .pass-inner {
    padding: 0 25px;
  }
  .benefit-grid {
    grid-template-columns: 1fr;
    margin-right: .5rem;
    margin-left: .5rem;
  }
  .price-list {
    gap: 8px;
    flex-direction: column;
    align-items: center;
    margin-right: .5rem;
    margin-left: .5rem;
  }
  .price-row {
    width: 100%;
  }
  .quota-card {
    margin: 0;
    padding: 38px 20px 18rem;
    background-position: center bottom;
    background-size: 150% auto;
  }
  .q-schedule-row {
    margin-bottom: 20px;
  }
  .q-desc {
    margin-bottom: 20px;
  }
  .q-title {
    font-size: 1.2rem;
  }
  .q-title-sub {
    font-size: 1rem;
  }
  .q-badge {
    padding: 10px 20px;
    line-height: 1.4;
    font-size: 1rem;
    text-align: center;
  }
  .qc-spark--lg {
    left: auto;
    right: .5rem;
    top: .6rem;
  }
  .qc-spark--sm {
    left: auto;
    right: -.2rem;
    top: 2.8rem;
  }
  .pr-label {
    font-size: 1.5rem;
  }
  .pr-num {
    font-size: 3.2rem;
  }
  .pr-price {
    font-size: 2.6rem;
  }
  .story-name {
    font-size: 1.7rem;
  }
  .venue-top {
    padding: 0 20px;
  }
  .venue-inner {
    padding: 0 25px;
    gap: 10px;
  }
  .venue-map-card {
    border-radius: 20px;
  }
  .sm-overlay {
    padding: 16px 12px;
  }
  .sm-header {
    padding: 28px 20px 20px;
    background-position: center -130px;
    background-size: 120% auto;
  }
  .sm-title {
    font-size: 1.4rem;
  }
  .sm-reg-badge span {
    font-size: 1.5rem;
    letter-spacing: .06em;
  }
  .sm-reg-badge {
    padding: 6px 16px;
    border-radius: 8px;
  }
  .up-reg-prefix {
    font-size: 1.6rem;
  }
  .up-reg-input {
    font-size: 1.6rem;
    width: 7.5ch;
    max-width: 7.5ch;
  }
  .up-reg-input::placeholder {
    font-size: 1.3rem;
  }
  .reg-inner {
    margin: 0 1rem;
  }

  /* 手機版 price-row：圓圈 + 校名 + 價格同一行 */
  .up-price-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 8px;
  }
  .up-price-list .price-row {
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    padding: 5px 16px 3px 16px;
    gap:8px;
    text-align: left;
  }
  /* 圓圈：改為 flex 項目，自動垂直置中 */
  .up-price-list .price-row::before {
    position: static;
    flex-shrink: 0;
    top: auto;
    left: auto;
    transform: none;
  }
  /* 勾：置於圓圈中心，translate(-50%,-50%) 確保在螢幕座標系置中後再旋轉 */
  .up-price-list .price-row--sel::after {
    top: 50%;
    left: 32px;   /* padding-left(12) + circle-radius(16) = 圓圈中心 */
    transform: translate(-50%, -50%) rotate(45deg);
  }
  /* 校名去掉底線，margin 清零 */
  .up-price-list .price-row .pr-label {
    flex: 1;
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 0;
    font-size: 1rem;
    text-align: left;
    width: auto;
  }
  /* 價格靠右 */
  .up-price-list .price-row .pr-price {
    font-size: 1.6rem;
    white-space: nowrap;
    margin-bottom: 0;
  }

  .sm-body {
    padding: 20px 16px 16px;
  }
  .sm-msg {
    font-size: .9rem;
    margin-bottom: .2rem;
  }
  .sm-line-box {
    width: 100%;
    padding: 10px 20px;
    gap: 0px;
  }
  .sm-qr-wrap {
    gap: 0px;
    align-items: flex-start;
  }
  .sm-qr-item img {
    width: 100px;
  }
  .sm-upsell {
    padding: 2px 16px 24px;
  }
  .ps-head-img {
    width: 100%;
    max-width: 100%;
    display: block;
    margin-left: 0;
  }
  .footer-col {
    flex: 0 0 100%;
  }
  .footer-logo-img {
    height: 48px;
  }
  .sm-msg br {
    display: none;
  }
}
/* ════════════════════════════════════════
   ≤ 640px
════════════════════════════════════════ */
@media (max-width: 640px) {
  .hero-bar-inner {
    margin-top: -2.4rem;
    z-index: 2;
    position: relative;
  }
  .steps-photo-wrap {
    height: 260px;
  }
  .q-months {
    grid-template-columns: repeat(2, 1fr);
    max-width: 100%;
    gap: 12px;
  }
  #go-top {
    right: 15px;
  }
}
/* ════════════════════════════════════════
   ≤ 540px
════════════════════════════════════════ */
@media (max-width: 540px) {
  .steps-photo-wrap {
    height: 580px;
  }
  .hero-icon-free-inner {
    width: 100px;
    left: auto;
    right: 3.5rem;
    top: 0rem;
  }
}
/* ════════════════════════════════════════
   ≤ 480px
════════════════════════════════════════ */
@media (max-width: 480px) {
  .hero-icon-free-inner {
    width: 70px;
    left: auto;
    right: 3.5rem;
    top: .3rem;
  }
  .steps-photo-wrap {
    height: 580px;
  }
  .hero-bar-btns {
    gap: 8px;
  }
  .hero-bar-btns .btn-yellow {
    flex: 1;
    justify-content: center;
  }
  .hero-bar-btns .btn-yellow--chara {
    flex: 1;
    justify-content: center;
    padding-left: 45px;
    padding-right: 8px;
  }
  .btn-yellow--chara .btn-chara {
    bottom: -29px;
  }
  .hero-bar-btns .btn-yellow--chara:first-child .btn-chara {
    left: 11%;
  }
  .cd-cta .btn-yellow--chara .btn-chara {
    height: 140px;
    bottom: -57px;
    left: 8%;
  }
  .schools-inner {
    padding: 0 22px;
  }
}
/* ════════════════════════════════════════
   極小螢幕 (≤ 390px)
════════════════════════════════════════ */
@media (max-width: 390px) {
  .pass-section {
    padding: 40px 0;
  }
  .footer {
    padding: 40px 0 24px;
  }
  .q-month-label {
    font-size: .6rem;
  }
  .btn-yellow--chara .btn-chara {
    left: 3%;
    height: 66px;
    bottom: -26px;
  }
  .hero-bar-btns .btn-yellow--chara:first-child .btn-chara {
    left: 8%;
  }
  .rf-submit.btn-yellow--chara .btn-chara {
    left: 20px;
  }
  .teaser-stamp {
    right: 1rem;
  }
  .hero-icon-free-inner {
    right: 3.2rem;
    top: 0rem;
  }

}
@media (max-width: 350px) {
  .hero-icon-free-inner {
    max-width: 10%;
  }
  .hero-bar-btns .btn-yellow--chara:first-child .btn-chara {
    left: 5%;
}
 }
/* ════════════════════════════════════════
   學校名單 — RWD（從 style.css 整理移入）
════════════════════════════════════════ */

@media (max-width: 1440px) {
  .sch-table-wrap { max-width: 1300px; }
}

@media (max-width: 1380px) {
  .sch-table-wrap { max-width: 92%; }
}

@media (max-width: 1280px) {
  .sch-th-name,
  .sch-td-name {
    width: 340px;
    min-width: 340px;
  }
}

@media (max-width: 991px) {
  .sch-table-wrap {
    max-width: 100%;
    border-radius: 0;
  }
}

@media (max-width: 768px) {
  /* 表格容器 */
  .sch-table-wrap {
    border-radius: 0;
    box-shadow: none;
  }

  /* 表格布局 */
  .sch-table {
    table-layout: fixed !important;
  }

  /* 學校名稱欄 */
  .sch-th-name,
  .sch-td-name {
    width: 150px;
    min-width: 150px;
  }
  .sch-th-name {
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.1em;
  }
  .sch-td-name {
    font-size: 0.82rem;
  }
  .sch-td-name span {
    word-break: normal;
    overflow-wrap: break-word;
  }

  /* 縮略圖 */
  .sch-row-thumb,
  .sch-row-thumb--ph {
    display: none;
  }

  /* 副標題欄 */
  .sch-th-sub {
    white-space: normal;
    word-break: break-all;
    font-size: 0.72rem;
    padding: 4px 3px;
    width: 62px !important;
    min-width: unset;
  }
  .sch-th-group {
    font-size: 1rem;
  }

  /* 更多學校行 */
  .sch-tr-more td {
    text-align: left;
    padding-left: 16px;
  }

  /* 捲動提示 */
  .sch-scroll-hint {
    display: block;
  }

  /* 換行輔助 */
  .m-br {
    display: block;
  }

  /* 篩選器：按鈕群隱藏，改用 select */
  .sch-filters {
    display: none;
  }
  .sch-filter-select {
    display: block;
    width: auto;
    min-width: 260px;
    padding: 12px 16px;
    font-size: 1rem;
    font-family: var(--font-ja);
    font-weight: 600;
    color: #fff;
    background-color: rgba(255,255,255,0.18);
    border: 1.5px solid rgba(255,255,255,0.45);
    border-radius: 100px;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    cursor: pointer;
  }
  .sch-filter-select option {
    background: var(--navy);
    color: #fff;
  }
  .sch-filter-wrap {
    display: flex;
    justify-content: center;
    margin-top: 20px;
  }

  /* 分隔線 */
  .sch-divider {
    margin: 30px 0 0;
  }

  /* 解鎖標籤 */
  .sch-unlock-badge {
    margin-left: 0;
    white-space: nowrap;
    font-size: 0.9rem;
  }
}

@media (max-width: 768px) {
  p.sch-td-more {
    font-size: 1.20rem;
    padding: 0px 0px 15px;
  }
}
@media (max-width: 600px) {
  .pass-slot-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
  }
  .pass-slot-wrap {
    margin: 5px 0 5px;
  }
}
