/* Reference image: 793 × 2048. Mobile proportions are reproduced with vw units. */
@media (max-width: 760px) {
  html, body { width: 100%; overflow-x: hidden; }
  body { padding: 0; }
  .wrap { width: calc(100% - 10.5vw); }

  .site-header {
    height: 11.35vw;
    min-height: 0;
    padding: 0 5.2vw;
  }
  .logo { width: 10.2vw; height: 10.6vw; flex: 0 0 10.2vw; }
  .logo img { width: 10.2vw; max-height: 10.2vw; }
  .header-actions { gap: 3.2vw; margin-left: auto; }
  .phone { display: block; min-width: 20vw; }
  .phone b { font-size: 2.35vw; line-height: 1.05; }
  .phone small { display: block; font-size: .85vw; line-height: 1.3; }
  .header-cta {
    display: inline-flex;
    width: 21vw;
    min-height: 5.6vw;
    padding: 0 1vw;
    font-size: 1.35vw;
    white-space: nowrap;
  }
  .menu-button { display: none; }

  .global-nav {
    position: static;
    display: flex;
    height: 4.42vw;
    flex-direction: row;
    align-items: stretch;
    gap: 0;
    box-shadow: none;
  }
  .global-nav a {
    display: flex;
    flex: 1;
    align-items: center;
    justify-content: center;
    padding: 0 .2vw;
    border: 0;
    color: #fff;
    font-size: 1.05vw;
    line-height: 1.1;
    text-align: center;
  }

  .hero {
    height: 52.33vw;
    min-height: 0;
    max-height: none;
  }
  .hero > img {
    width: 100%;
    height: 100%;
    max-height: none;
    object-position: 67% center;
  }
  .hero-overlay {
    background: linear-gradient(90deg,#fff 0%,rgba(255,255,255,.97) 37%,rgba(255,255,255,.55) 65%,rgba(255,255,255,.03) 100%);
  }
  .hero-copy {
    top: 5.3vw;
    width: calc(100% - 10.5vw);
  }
  .hero-lead { margin: 0; font-size: 2.05vw; line-height: 1.35; }
  .hero h1 {
    margin: .7vw 0 1.5vw;
    font-size: 5.1vw;
    line-height: 1.28;
    letter-spacing: .02em;
  }
  .hero h1 em { white-space: nowrap; }
  .hero-sub {
    width: 49vw;
    max-width: 49vw;
    margin: 0 0 1.2vw;
    font-size: 1.55vw;
    line-height: 1.45;
  }
  .hero ul {
    margin: 0;
    font-size: 1.38vw;
    line-height: 1.85;
  }
  .hero li:before { margin-right: .8vw; }
  .hero-badges {
    left: auto;
    right: 5.2vw;
    bottom: 2.5vw;
    transform: none;
    gap: 1.8vw;
  }
  .hero-badges div { width: 13.7vw; height: 13.7vw; }
  .hero-badges small { font-size: 1vw; line-height: 1.25; }
  .hero-badges b { font-size: 1.75vw; line-height: 1.25; }

  .cta-band .wrap {
    align-items: center;
    min-height: 9.2vw;
    flex-direction: row;
    padding: 0;
    text-align: left;
  }
  .cta-band .wrap > div {
    display: flex;
    align-items: center;
    line-height: 1.15;
  }
  .cta-band b { font-size: 3vw; line-height: 1; }
  .cta-band small { display: inline; margin-left: 3.8vw; font-size: 1.2vw; line-height: 1.2; }
  .cta-band .gold-button {
    min-height: 5.6vw;
    padding: 0 3vw;
    font-size: 1.35vw;
    line-height: 1;
  }

  .section { padding: 4vw 0; }
  .section h2,
  .teacher h2 {
    margin: 0 0 3vw;
    font-size: 3vw;
    line-height: 1.3;
  }
  .section h2:before,
  .section h2:after { width: 6vw; margin: 0 2vw; }

  #strengths { min-height: 36vw; }
  .strength-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1.5vw; }
  .strength-grid article:last-child { grid-column: auto; }
  .strength-grid article { min-height: 22.7vw; padding: 3vw 1.4vw 1.8vw; }
  .strength-grid span { font-size: 5.6vw; line-height: 1; }
  .strength-grid .feature-icon {
    display: block;
    width: 6.4vw;
    height: 6.4vw;
    margin: 0 auto;
    color: #062d63;
  }
  .strength-grid .feature-icon svg {
    display: block;
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.65;
    stroke-linecap: round;
    stroke-linejoin: round;
  }
  .strength-grid h3 { min-height: 3.4vw; margin: 1.8vw 0 1.1vw; font-size: 1.25vw; line-height: 1.35; }
  .strength-grid p { display: block; margin: 0; font-size: .95vw; line-height: 1.55; }

  .courses { min-height: 45.5vw; padding: 3.6vw 0 2.8vw; }
  .course-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2.3vw; }
  .course-card {
    display: grid;
    min-height: 18.2vw;
    grid-template-columns: 43% 57%;
  }
  .course-card img {
    width: 100%;
    height: 18.2vw;
    min-height: 18.2vw;
    object-fit: cover;
  }
  .course-card > div { display: block; padding: 1.5vw; }
  .course-card h3 { min-height: 0; margin: 0 0 .7vw; font-size: 1.8vw; line-height: 1.3; }
  .course-card p { margin: .5vw 0; font-size: 1.05vw; line-height: 1.45; }
  .course-card dl { grid-template-columns: 4.2vw 1fr; margin: .7vw 0; font-size: .95vw; }
  .course-card dt,
  .course-card dd { margin: .2vw 0; padding: .2vw .4vw; }
  .course-card strong { margin-top: .4vw; font-size: 1vw; white-space: nowrap; }
  .course-card strong b { font-size: 2.4vw; }
  .online-card { min-height: 9.2vw; grid-template-columns: 27% 73%; margin-top: 1.5vw; }
  .online-image { height: 9.2vw; }
  .online-card > div:last-child { padding: 1.4vw 3vw; }
  .online-card h3 { font-size: 1.8vw; line-height: 1.25; }
  .online-card p { margin: .5vw 0; font-size: 1.05vw; line-height: 1.45; }
  .courses:after {
    content: "※料金は税込価格です。詳しくはお問い合わせください。";
    display: block;
    margin-top: 1.5vw;
    text-align: center;
    font-size: .95vw;
  }

  .home-blog { display: none; }

  .teacher {
    width: calc(100% - 10.5vw);
    min-height: 25.4vw;
    grid-template-columns: 40% 60%;
    margin: 2.8vw auto;
  }
  .teacher img { width: 100%; height: 100%; min-height: 25.4vw; object-fit: cover; }
  .teacher > div { padding: 3.2vw 3.8vw; }
  .teacher h2 { margin-bottom: 1.5vw; text-align: left; font-size: 2.7vw; }
  .teacher p { margin: .8vw 0; font-size: 1.12vw; line-height: 1.6; }
  .teacher .outline-button { padding: .8vw 2vw; font-size: 1.05vw; }

  /* 合格実績 */
.results {
  min-height: 0;
  padding: 2vw 0;
  background: #062d63;
  color: #fff;
}

.results .results-inner {
  display: grid !important;
  width: calc(100% - 10.5vw);
  grid-template-columns: 47fr 53fr !important;
  grid-template-areas: "copy photo";
  align-items: center;
  gap: 2vw;
  margin: 0 auto;
}

.results-copy {
  grid-area: copy;
  min-width: 0;
  text-align: left;
}

.results-copy h2 {
  margin: 0 0 1vw;
  color: #e1c36f;
  font-size: 3vw;
  line-height: 1.3;
  text-align: left;
}

.results-copy p {
  margin: 0.55vw 0;
  color: #fff;
  font-size: 1.2vw;
  line-height: 1.5;
}

.results .results-inner .results-schools {
  font-size: 1.35vw !important;
  line-height: 1.5;
  font-weight: 700;
  white-space: nowrap;
}

.results .results-inner .results-photo {
  grid-area: photo;
  display: block !important;
  width: 100% !important;
  height: auto !important;
  min-width: 0;
  object-fit: contain !important;
  object-position: center;
}

.result-stats {
  display: none;
}

  .price { min-height: 31.5vw; padding: 4vw 0 3vw; }
  .price-grid { grid-template-columns: repeat(3,1fr); }
  .price-grid article { border-right: 1px solid #b8c4d0; border-bottom: 0; }
  .price-grid article:last-child { border-right: 0; }
  .price-grid h3 { padding: 1.2vw .5vw; font-size: 1.65vw; line-height: 1.3; }
  .price-grid p { margin: 2.1vw 0; font-size: 1.2vw; }
  .price-grid strong { font-size: 3.4vw; }
  .price-grid small { padding: 1vw .5vw; font-size: 1.15vw; }
  .notes { margin: 1.4vw 0 0; font-size: .9vw; line-height: 1.55; }

  .faq { display: none; }
  .final-cta {
    display: flex;
    min-height: 13.8vw;
    padding: 2vw 9vw;
  }
  .final-cta b { font-size: 3.2vw; }
  .final-cta small { font-size: 1.1vw; }
  .final-cta .gold-button { min-height: 5.6vw; padding: 0 3vw; font-size: 1.35vw; }
  .mobile-fixed { display: none; }
}

/* Keep the campaign headline on one line and loop it on mobile. */
.campaign-repeat { display: none; }
@media (max-width: 760px) {
  .cta-band .wrap > .campaign-copy {
    display: block;
    flex: 1;
    min-width: 0;
  }
  .campaign-marquee {
    display: block;
    overflow: hidden;
    width: 100%;
    white-space: nowrap;
  }
  .campaign-track {
    display: flex;
    width: max-content;
    animation: campaign-scroll 14s linear infinite;
  }
  .campaign-item {
    display: block;
    flex-shrink: 0;
    padding-right: 2rem;
    font-size: 14px;
    line-height: 1.6;
  }
  .cta-band .campaign-item b { font-size: 16px; }
  .cta-band .campaign-copy small { display: block; margin-left: 0; }
  .cta-band .gold-button { flex-shrink: 0; }
  .campaign-marquee:hover .campaign-track,
  .campaign-marquee:focus .campaign-track { animation-play-state: paused; }
}
@keyframes campaign-scroll {
  to { transform: translateX(-50%); }
}
@media (max-width: 760px) and (prefers-reduced-motion: reduce) {
  .campaign-marquee { overflow-x: auto; }
  .campaign-track { animation: none; }
  .campaign-repeat { display: none; }
}
