:root {
  --paper: #f3f0e8;
  --paper-2: #e8e4da;
  --court: #0b352e;
  --court-deep: #06231f;
  --chalk: #f8f5ed;
  --clay: #d85b32;
  --clay-dark: #b94525;
  --ball: #d7ef38;
  --green: var(--clay);
  --ink: #0b352e;
  --muted: #5f6f68;
  --rule: rgba(11, 53, 46, .28);
  --rule-light: rgba(248, 245, 237, .28);
  --font: "Apple SD Gothic Neo", "Pretendard", "Noto Sans KR", system-ui, -apple-system, sans-serif;
  --header-h: 76px;
  --gutter: clamp(24px, 5vw, 84px);
  --section-y: clamp(92px, 10vw, 156px);
  color-scheme: light;
}

* { box-sizing: border-box; }

html,
body { overflow-x: clip; }

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-h) + 20px);
  background: var(--paper);
  color: var(--ink);
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body.mh-nav-open { overflow: hidden; }

main,
section,
section > *,
.program-layout,
.program-list,
.method-copy,
.method-media,
.facility-copy,
.coaches-heading,
.coaches-media,
.booking-copy,
.booking-form,
.location-info { min-width: 0; }

figure,
h1,
h2,
h3,
p,
dl,
dd,
ul { margin: 0; }

ul { padding: 0; }

a { color: inherit; text-decoration: none; }

button,
input,
select,
textarea { color: inherit; font: inherit; }

button,
select { cursor: pointer; }

img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

::selection { color: var(--chalk); background: var(--clay); }

:focus-visible {
  outline: 3px solid var(--clay);
  outline-offset: 4px;
}

.skip-link {
  position: fixed;
  z-index: 300;
  top: 12px;
  left: 12px;
  padding: 12px 16px;
  color: var(--chalk);
  background: var(--court-deep);
  transform: translateY(-160%);
  transition: transform 180ms ease;
}

.skip-link:focus { transform: none; }

.site-header[data-navigation-pattern] {
  position: fixed;
  z-index: 90;
  top: 0;
  right: 0;
  left: 0;
  display: grid;
  min-height: var(--header-h);
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: clamp(24px, 3.8vw, 68px);
  padding: 0 var(--gutter);
  border-bottom: 1px solid rgba(248, 245, 237, .14);
  color: var(--chalk);
  background: rgba(6, 35, 31, .08);
  transition: color 180ms ease, background 180ms ease, border-color 180ms ease;
}

.site-header[data-navigation-pattern].is-scrolled {
  color: var(--ink);
  border-color: var(--rule);
  background: rgba(243, 240, 232, .96);
  backdrop-filter: blur(18px);
}

.brand {
  display: grid;
  min-height: 48px;
  align-content: center;
  gap: 2px;
  white-space: nowrap;
}

.brand strong {
  font-size: clamp(18px, 1.7vw, 25px);
  font-weight: 850;
  letter-spacing: -.04em;
  line-height: 1;
}

.brand span {
  font-size: 9px;
  font-weight: 750;
  letter-spacing: .08em;
}

.primary-nav,
.site-header .mh-customer-nav-source {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(20px, 2.6vw, 40px);
}

.primary-nav a,
.site-header .mh-customer-nav-source > a {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
}

.site-header[data-navigation-pattern="conversion-action"] .header-action {
  min-height: 48px;
  padding: 0 21px;
  border: 1px solid var(--clay);
  border-radius: 0;
  color: var(--chalk);
  background: var(--clay);
  box-shadow: none;
  font-size: 14px;
  font-weight: 800;
  white-space: nowrap;
}

.site-header.is-scrolled .header-action { color: var(--chalk); }

.hero {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  color: var(--chalk);
  background: var(--court-deep);
}

.hero-media {
  position: absolute;
  inset: -2%;
  animation: hero-drift 24s ease-in-out infinite alternate;
}

.hero-media::after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(90deg, rgba(6, 35, 31, .98) 0%, rgba(6, 35, 31, .9) 27%, rgba(6, 35, 31, .44) 52%, rgba(6, 35, 31, .16) 100%);
}

@keyframes hero-drift {
  from { transform: translate3d(-.4%, .15%, 0) scale(1.025); }
  to { transform: translate3d(.55%, -.25%, 0) scale(1.05); }
}

.hero-brand {
  position: absolute;
  z-index: 1;
  top: clamp(136px, 17vh, 186px);
  left: var(--gutter);
  max-width: 58vw;
  font-size: clamp(82px, 12.4vw, 188px);
  font-weight: 850;
  letter-spacing: -.075em;
  line-height: .82;
  white-space: nowrap;
}

.hero-copy {
  position: relative;
  z-index: 2;
  display: grid;
  width: min(620px, 46vw);
  min-height: 100svh;
  align-content: end;
  gap: 20px;
  padding: calc(var(--header-h) + 200px) var(--gutter) clamp(72px, 8vh, 98px);
}

.eyebrow,
.section-index {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
}

.hero .eyebrow,
.section-index-light { color: rgba(248, 245, 237, .62); }

.hero h1 {
  max-width: 600px;
  font-size: clamp(42px, 4.2vw, 68px);
  font-weight: 740;
  letter-spacing: -.055em;
  line-height: 1.08;
  word-break: keep-all;
}

.hero-copy > p:not(.eyebrow) {
  max-width: 500px;
  color: rgba(248, 245, 237, .78);
  font-size: clamp(16px, 1.3vw, 19px);
  line-height: 1.7;
  word-break: keep-all;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 24px;
}

.button,
.submit-button,
.outline-button {
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  padding: 0 26px;
  border: 1px solid transparent;
  border-radius: 0;
  font-weight: 800;
  white-space: nowrap;
  transition: color 160ms ease, background 160ms ease, transform 160ms ease;
}

.button-clay,
.submit-button { color: var(--chalk); background: var(--clay); }

.button:active,
.submit-button:active,
.outline-button:active,
.program-row:active { transform: scale(.985); }

.text-link {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  border-bottom: 1px solid currentColor;
  font-size: 14px;
  font-weight: 800;
  justify-self: start;
}

.text-link-light { color: var(--chalk); }
.text-link-clay { color: #ff7b52; }

.hero-baseline {
  position: absolute;
  z-index: 2;
  right: -3vw;
  bottom: 3.2vh;
  left: -3vw;
  height: clamp(34px, 4.5vw, 72px);
  border-top: 1px solid rgba(248, 245, 237, .8);
  background: var(--clay);
  transform: rotate(-2.2deg) translateY(74%);
}

.section-reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 620ms ease, transform 620ms cubic-bezier(.2, .8, .2, 1);
}

.section-reveal.is-visible { opacity: 1; transform: none; }

.section-heading h2,
.method h2,
.facility h2,
.coaches h2,
.booking h2,
.location h2 {
  font-size: clamp(46px, 6.2vw, 96px);
  font-weight: 760;
  letter-spacing: -.06em;
  line-height: 1.02;
  word-break: keep-all;
}

.programs {
  display: grid;
  gap: clamp(48px, 6vw, 86px);
  padding: var(--section-y) var(--gutter);
  background: var(--paper);
}

.programs-heading {
  display: grid;
  grid-template-columns: 1fr minmax(260px, .52fr);
  align-items: end;
  gap: 48px;
}

.programs-heading .section-index { grid-column: 1 / -1; }
.programs-heading h2 { max-width: 840px; }

.programs-heading > p:last-child {
  color: var(--muted);
  font-size: 17px;
  line-height: 1.75;
  word-break: keep-all;
}

.program-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(360px, .88fr);
  align-items: stretch;
  gap: clamp(28px, 4vw, 64px);
}

.program-list { border-top: 1px solid var(--ink); }

.program-row {
  display: grid;
  width: 100%;
  min-height: 112px;
  grid-template-columns: 56px minmax(180px, 1fr) minmax(190px, .9fr) 130px 28px;
  align-items: center;
  gap: 20px;
  padding: 18px 0;
  border: 0;
  border-bottom: 1px solid var(--rule);
  color: var(--ink);
  background: transparent;
  text-align: left;
  transition: color 160ms ease, padding 160ms ease;
}

.program-row strong {
  font-size: clamp(24px, 2.1vw, 36px);
  letter-spacing: -.045em;
}

.program-no { font-size: 18px; font-weight: 850; }
.program-for { color: var(--muted); font-size: 14px; line-height: 1.55; word-break: keep-all; }
.program-time { font-size: 14px; font-weight: 700; white-space: nowrap; }
.program-arrow { font-size: 24px; }

.program-row.is-active,
.program-row:hover { color: var(--clay); }

.program-row.is-active { padding-left: 10px; }

.program-detail {
  padding: 18px 0 22px 76px;
  border-bottom: 1px solid var(--rule);
  color: var(--muted);
  font-size: 15px;
  line-height: 1.7;
}

.program-media {
  min-height: 520px;
  overflow: hidden;
  background: var(--court);
}

.program-media img { object-position: 73% center; transition: transform 500ms ease; }

.method {
  display: grid;
  grid-template-columns: minmax(320px, .76fr) minmax(0, 1.44fr);
  gap: clamp(24px, 3vw, 48px);
  padding: var(--section-y) var(--gutter);
  color: var(--chalk);
  background: var(--court-deep);
}

.method-copy {
  display: grid;
  align-content: center;
  gap: 26px;
  padding-right: clamp(14px, 2vw, 38px);
  border-right: 1px solid var(--rule-light);
}

.method h2 { font-size: clamp(44px, 4.7vw, 76px); }

.method-copy > p:not(.section-index) {
  max-width: 520px;
  color: rgba(248, 245, 237, .72);
  font-size: 16px;
  line-height: 1.8;
  word-break: keep-all;
}

.method ul { display: grid; list-style: none; }

.method li {
  position: relative;
  min-height: 44px;
  padding: 11px 0 11px 30px;
  border-bottom: 1px solid rgba(248, 245, 237, .12);
  font-weight: 700;
}

.method li::before {
  position: absolute;
  top: 16px;
  left: 0;
  width: 12px;
  height: 6px;
  border-bottom: 1px solid var(--chalk);
  border-left: 1px solid var(--chalk);
  content: "";
  transform: rotate(-45deg);
}

.method-media { min-height: 640px; overflow: hidden; }
.method-media img { object-position: center; }

.facility {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(380px, 1.06fr);
  min-height: 760px;
  background: var(--paper);
}

.facility-media { min-height: 700px; overflow: hidden; }

.facility-copy {
  position: relative;
  display: grid;
  align-content: center;
  gap: 28px;
  padding: var(--section-y) var(--gutter);
  overflow: hidden;
}

.facility-number {
  position: absolute;
  z-index: 0;
  top: 5%;
  right: 1%;
  color: rgba(11, 53, 46, .06);
  font-size: clamp(190px, 25vw, 390px);
  font-weight: 300;
  line-height: 1;
}

.facility-copy > *:not(.facility-number) { position: relative; z-index: 1; }
.facility h2 { font-size: clamp(38px, 4vw, 66px); }
.facility dl { border-top: 1px solid var(--ink); }

.facility dl div {
  display: grid;
  min-height: 92px;
  grid-template-columns: 72px 1fr;
  align-items: center;
  border-bottom: 1px solid var(--rule);
}

.facility dt { color: var(--muted); font-size: 12px; font-weight: 800; }
.facility dd { font-size: clamp(26px, 2.5vw, 42px); letter-spacing: -.04em; }

.demo-note {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.7;
}

.coaches {
  display: grid;
  grid-template-columns: .72fr 1.28fr;
  grid-template-areas: "heading media" "roles roles" "note note";
  gap: 44px clamp(36px, 5vw, 82px);
  padding: var(--section-y) var(--gutter);
  border-top: 1px solid var(--rule);
  background: var(--paper);
}

.coaches-heading {
  grid-area: heading;
  display: grid;
  align-content: center;
  gap: 26px;
  padding-right: 34px;
  border-right: 2px solid var(--clay);
}

.coaches h2 { font-size: clamp(44px, 5.1vw, 80px); }

.coaches-heading > p:last-child {
  max-width: 440px;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.75;
}

.coaches-media { grid-area: media; min-height: 560px; overflow: hidden; }

.coach-roles {
  grid-area: roles;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--ink);
}

.coach-roles article {
  display: grid;
  min-height: 126px;
  grid-template-columns: 42px 1fr;
  align-content: center;
  gap: 7px 14px;
  padding: 22px clamp(18px, 3vw, 42px);
  border-right: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}

.coach-roles article:last-child { border-right: 0; }
.coach-roles span { grid-row: 1 / 3; color: var(--clay); font-size: 12px; font-weight: 850; }
.coach-roles h3 { font-size: 24px; }
.coach-roles p { color: var(--muted); font-size: 14px; }
.coaches > .demo-note { grid-area: note; }

.booking {
  position: relative;
  display: grid;
  grid-template-columns: minmax(320px, .8fr) minmax(0, 1.2fr);
  gap: clamp(48px, 7vw, 116px);
  padding: var(--section-y) var(--gutter);
  overflow: hidden;
  color: var(--chalk);
  background: var(--court);
}

.booking::before,
.booking::after {
  position: absolute;
  right: 0;
  left: 0;
  height: 1px;
  content: "";
  background: rgba(248, 245, 237, .62);
}

.booking::before { top: 34px; }
.booking::after { bottom: 34px; }

.booking-copy,
.booking-form { position: relative; z-index: 2; }

.booking-copy {
  display: grid;
  align-content: start;
  gap: 28px;
}

.booking h2 { font-size: clamp(58px, 7.2vw, 112px); }

.booking-copy > p:not(.section-index):not(.trial-fact) {
  max-width: 450px;
  color: rgba(248, 245, 237, .76);
  font-size: 18px;
  line-height: 1.75;
}

.trial-fact {
  justify-self: start;
  padding: 16px 0;
  border-top: 1px solid var(--rule-light);
  border-bottom: 1px solid var(--rule-light);
  font-size: 15px;
  font-weight: 750;
}

.booking-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: start;
  gap: 28px 32px;
}

.form-help {
  grid-column: 1 / -1;
  color: rgba(248, 245, 237, .6);
  font-size: 12px;
  text-align: right;
}

.form-help strong,
.form-field em,
.consent-field em { color: #ff8b68; font-style: normal; }

.form-field {
  display: grid;
  gap: 10px;
}

.form-field > span { font-size: 14px; font-weight: 750; }

.form-field input,
.form-field select,
.form-field textarea {
  width: 100%;
  min-height: 56px;
  padding: 10px 0;
  border: 0;
  border-bottom: 1px solid rgba(248, 245, 237, .62);
  border-radius: 0;
  outline: 0;
  color: var(--chalk);
  background: transparent;
}

.form-field textarea { min-height: 96px; resize: vertical; }

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus { border-bottom: 2px solid var(--clay); }

.form-field select option { color: var(--ink); background: var(--paper); }

.form-field-wide { grid-column: 1 / -1; }

.consent-field {
  display: flex;
  min-height: 44px;
  align-items: center;
  gap: 12px;
  color: rgba(248, 245, 237, .78);
  font-size: 13px;
  line-height: 1.5;
}

.consent-field input { width: 22px; height: 22px; margin: 0; accent-color: var(--clay); }
.submit-button { width: 100%; min-height: 60px; border: 0; font-size: 17px; }
.booking-status { min-height: 24px; color: var(--chalk); font-size: 13px; }
.booking-status[data-state="error"] { color: #ffb9a4; }

.booking-ball {
  position: absolute;
  right: -110px;
  bottom: -190px;
  width: 390px;
  height: 390px;
  border: 18px solid rgba(6, 35, 31, .9);
  border-radius: 50%;
  background: var(--ball);
  opacity: .96;
}

.booking-ball::before,
.booking-ball::after {
  position: absolute;
  width: 210px;
  height: 300px;
  border: 7px solid var(--court);
  border-top-color: transparent;
  border-bottom-color: transparent;
  border-radius: 50%;
  content: "";
}

.booking-ball::before { top: 26px; left: -62px; }
.booking-ball::after { top: 26px; right: -62px; }

.location {
  display: grid;
  grid-template-columns: minmax(0, .94fr) minmax(420px, 1.06fr);
  gap: clamp(46px, 7vw, 108px);
  padding: var(--section-y) var(--gutter) clamp(72px, 8vw, 120px);
  background: var(--paper);
}

.location-info { display: grid; align-content: start; gap: 28px; }
.location h2 { font-size: clamp(54px, 6.8vw, 104px); }
.location dl { border-top: 1px solid var(--ink); }

.location dl div {
  display: grid;
  min-height: 68px;
  grid-template-columns: 96px 1fr;
  align-items: center;
  border-bottom: 1px solid var(--rule);
}

.location dt { color: var(--muted); font-size: 12px; font-weight: 800; }
.location dd { font-size: 16px; font-weight: 650; word-break: keep-all; }

.outline-button {
  width: min(100%, 320px);
  justify-content: space-between;
  border-color: var(--ink);
  background: transparent;
}

.map-art {
  position: relative;
  min-height: 560px;
  overflow: hidden;
  border: 1px solid var(--rule);
  background:
    linear-gradient(90deg, transparent 49.8%, rgba(11, 53, 46, .12) 50%, transparent 50.2%),
    linear-gradient(0deg, transparent 49.8%, rgba(11, 53, 46, .12) 50%, transparent 50.2%),
    var(--paper-2);
}

.map-road { position: absolute; height: 2px; background: rgba(11, 53, 46, .26); transform-origin: left; }
.road-a { top: 18%; left: -3%; width: 112%; transform: rotate(8deg); }
.road-b { top: 44%; left: 4%; width: 96%; transform: rotate(-7deg); }
.road-c { top: 70%; left: -8%; width: 116%; transform: rotate(4deg); }
.road-d { top: -4%; left: 29%; width: 84%; transform: rotate(87deg); }
.road-e { top: 2%; left: 68%; width: 78%; transform: rotate(99deg); }

.map-marker {
  position: absolute;
  top: 38%;
  left: 56%;
  display: grid;
  width: 82px;
  height: 82px;
  place-items: center;
  color: var(--chalk);
  background: var(--court);
  font-size: 17px;
  line-height: 1;
  text-align: center;
}

.map-station {
  position: absolute;
  bottom: 13%;
  left: 10%;
  padding: 9px 12px;
  color: var(--chalk);
  background: var(--court);
  font-size: 13px;
  font-weight: 800;
}

.news {
  display: grid;
  grid-template-columns: minmax(170px, .35fr) 1fr;
  align-items: stretch;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
  background: var(--paper);
}

.news h2 {
  display: flex;
  align-items: center;
  padding: 30px var(--gutter);
  border-right: 1px solid var(--rule);
  font-size: clamp(22px, 2vw, 34px);
}

.news-list { display: grid; grid-template-columns: repeat(2, 1fr); }

.news-list a {
  display: grid;
  min-height: 110px;
  grid-template-columns: 110px 1fr 30px;
  align-items: center;
  gap: 16px;
  padding: 24px clamp(22px, 3vw, 42px);
  border-right: 1px solid var(--rule);
}

.news-list a:last-child { border-right: 0; }
.news-list time { color: var(--muted); font-size: 12px; }
.news-list strong { font-size: 16px; }
.news-list span { font-size: 22px; }

.site-footer {
  display: grid;
  grid-template-columns: .55fr 1fr auto;
  align-items: start;
  gap: 48px;
  padding: 72px var(--gutter) 30px;
  color: var(--chalk);
  background: var(--court-deep);
}

.footer-brand { display: grid; gap: 10px; justify-self: start; }
.footer-brand strong { font-size: clamp(38px, 4vw, 64px); letter-spacing: -.06em; line-height: .8; }
.footer-brand span { font-size: 10px; letter-spacing: .2em; }

.site-footer nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(100px, 1fr));
  gap: 8px 28px;
  padding: 10px 0;
}

.site-footer nav a { display: flex; min-height: 44px; align-items: center; color: rgba(248, 245, 237, .74); font-size: 14px; }
.site-footer > p { grid-column: 1 / -1; padding-top: 24px; border-top: 1px solid var(--rule-light); color: rgba(248, 245, 237, .5); font-size: 11px; }

.mobile-booking { display: none; }

@media (hover: hover) and (pointer: fine) {
  .button:hover,
  .submit-button:hover { background: var(--clay-dark); transform: translateY(-2px); }
  .outline-button:hover { color: var(--chalk); background: var(--ink); }
  .program-layout:has(.program-row:hover) .program-media img { transform: scale(1.025); }
  .news-list a:hover strong { color: var(--clay); }
}

@media (max-width: 1100px) {
  .program-row { grid-template-columns: 44px minmax(160px, 1fr) minmax(150px, .8fr) 100px 24px; gap: 12px; }
  .program-layout { grid-template-columns: 1fr; }
  .program-media { min-height: 440px; order: -1; }
  .method { grid-template-columns: .88fr 1.12fr; }
  .facility-copy { padding-right: 44px; padding-left: 44px; }
  .location { grid-template-columns: 1fr 1fr; gap: 42px; }
  .site-footer { grid-template-columns: .5fr 1fr; }
  .site-footer > .button { grid-column: 1 / -1; width: 100%; }
}

@media (max-width: 900px) {
  :root { --header-h: 64px; --gutter: clamp(20px, 6vw, 34px); --section-y: clamp(76px, 18vw, 112px); }

  .site-header[data-navigation-pattern] {
    color: var(--chalk);
    border-color: rgba(248, 245, 237, .18);
    background: rgba(6, 35, 31, .86);
  }

  .site-header[data-navigation-pattern].is-scrolled { color: var(--ink); background: rgba(243, 240, 232, .97); }
  .mh-customer-nav-toggle { border-radius: 0; }

  .mh-customer-nav-layer[data-navigation-pattern="conversion-action"] { align-items: stretch; padding: 0; background: var(--court); }
  .mh-customer-nav-layer[data-navigation-pattern="conversion-action"] .mh-customer-nav-panel {
    display: grid;
    max-height: none;
    align-content: start;
    padding: max(22px, env(safe-area-inset-top)) 24px max(28px, env(safe-area-inset-bottom));
    border: 0;
    border-radius: 0;
    color: var(--chalk);
    background: var(--court);
    box-shadow: none;
  }
  .mh-customer-nav-layer[data-navigation-pattern="conversion-action"] .mh-customer-nav-panel-head { border-color: var(--rule-light); }
  .mh-customer-nav-layer[data-navigation-pattern="conversion-action"] .mh-customer-nav-panel-head button { color: var(--chalk); border-color: var(--rule-light); border-radius: 0; }
  .mh-customer-nav-layer[data-navigation-pattern="conversion-action"] .mh-customer-nav-panel-head button span { background: var(--chalk); }
  .mh-customer-nav-layer[data-navigation-pattern="conversion-action"] .mh-customer-nav-mobile { margin-top: 7vh; }
  .mh-customer-nav-layer[data-navigation-pattern="conversion-action"] .mh-customer-nav-mobile > a:not(.mh-customer-nav-action) { min-height: 76px; border-color: var(--rule-light); font-size: clamp(25px, 8vw, 36px); }
  .mh-customer-nav-layer[data-navigation-pattern="conversion-action"] .mh-customer-nav-mobile > a small { color: #ff7b52; font-size: 20px; }
  .mh-customer-nav-layer[data-navigation-pattern="conversion-action"] .mh-customer-nav-action { min-height: 62px; margin-top: 24px; border-radius: 0; background: var(--clay); font-size: 17px; }

  .hero { min-height: 844px; }
  .hero-media { inset: 0; animation: none; }
  .hero-media img { object-position: 69% center; }
  .hero-media::after { background: linear-gradient(180deg, rgba(6, 35, 31, .42) 0%, rgba(6, 35, 31, .08) 34%, rgba(6, 35, 31, .88) 70%, rgba(6, 35, 31, .98) 100%); }
  .hero-brand { top: 102px; left: var(--gutter); max-width: 92vw; font-size: clamp(56px, 18.5vw, 86px); }
  .hero-copy { width: 100%; min-height: 844px; gap: 16px; padding: 300px var(--gutter) 84px; }
  .hero h1 { max-width: 360px; font-size: clamp(40px, 11.6vw, 54px); }
  .hero-copy > p:not(.eyebrow) { max-width: 350px; font-size: 15px; line-height: 1.65; }
  .hero-actions .button { display: none; }
  .hero-baseline { bottom: 20px; height: 42px; }

  .programs-heading { grid-template-columns: 1fr; gap: 20px; }
  .programs-heading > p:last-child { font-size: 15px; }
  .section-heading h2,
  .method h2,
  .facility h2,
  .coaches h2,
  .booking h2,
  .location h2 { font-size: clamp(40px, 11vw, 58px); }

  .program-media { min-height: auto; aspect-ratio: 4 / 3; }
  .program-row {
    min-height: 82px;
    grid-template-columns: 36px 1fr 26px;
    gap: 10px;
    padding: 14px 0;
  }
  .program-row strong { font-size: 23px; }
  .program-for,
  .program-time { display: none; }
  .program-detail { padding: 16px 0 20px 46px; font-size: 14px; }

  .method { grid-template-columns: 1fr; gap: 44px; }
  .method-copy { padding: 0; border-right: 0; }
  .method-media { min-height: auto; aspect-ratio: 4 / 3; }

  .facility { grid-template-columns: 1fr; min-height: auto; }
  .facility-media { min-height: auto; aspect-ratio: 4 / 3; }
  .facility-copy { padding: var(--section-y) var(--gutter); }
  .facility-number { top: 2%; font-size: 190px; }
  .facility dl div { min-height: 84px; grid-template-columns: 58px 1fr; }
  .facility dd { font-size: clamp(24px, 7vw, 34px); }

  .coaches { grid-template-columns: 1fr; grid-template-areas: "heading" "media" "roles" "note"; }
  .coaches-heading { padding: 0 0 32px; border-right: 0; border-bottom: 2px solid var(--clay); }
  .coaches-media { min-height: auto; aspect-ratio: 16 / 9; }
  .coach-roles { grid-template-columns: 1fr; }
  .coach-roles article { min-height: 92px; border-right: 0; }

  .booking { grid-template-columns: 1fr; gap: 58px; padding-bottom: 130px; }
  .booking-form { grid-template-columns: 1fr; gap: 24px; }
  .form-field-wide,
  .form-help { grid-column: auto; }
  .form-help { text-align: left; }
  .booking-ball { right: -110px; bottom: -210px; width: 320px; height: 320px; }

  .location { grid-template-columns: 1fr; }
  .map-art { min-height: 420px; }

  .news { grid-template-columns: 1fr; }
  .news h2 { min-height: 86px; border-right: 0; border-bottom: 1px solid var(--rule); }
  .news-list { grid-template-columns: 1fr; }
  .news-list a { min-height: 94px; grid-template-columns: 86px 1fr 24px; border-right: 0; border-bottom: 1px solid var(--rule); }

  .site-footer { grid-template-columns: 1fr; padding-bottom: 110px; }
  .site-footer nav { grid-template-columns: repeat(2, 1fr); }

  .mobile-booking {
    position: fixed;
    z-index: 84;
    right: 12px;
    bottom: max(12px, env(safe-area-inset-bottom));
    left: 12px;
    display: flex;
    min-height: 58px;
    align-items: center;
    justify-content: space-between;
    padding: 0 22px;
    color: var(--chalk);
    background: var(--clay);
    font-size: 16px;
    font-weight: 850;
    box-shadow: 0 16px 40px rgba(6, 35, 31, .24);
    transition: opacity 180ms ease, transform 180ms ease;
  }

  body.mh-nav-open .mobile-booking { opacity: 0; pointer-events: none; transform: translateY(20px); }
}

@media (max-width: 430px) {
  .brand strong { font-size: 18px; }
  .brand span { font-size: 8px; }
  .hero { min-height: 100svh; }
  .hero-copy { min-height: 100svh; }
  .hero-brand { white-space: normal; line-height: .9; }
  .section-index { letter-spacing: .09em; }
  .map-art { min-height: 340px; }
  .map-marker { width: 68px; height: 68px; font-size: 14px; }
  .news-list a { grid-template-columns: 1fr 24px; gap: 8px; }
  .news-list time { grid-column: 1 / -1; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .hero-media { animation: none; transform: scale(1.025); }
  .section-reveal { opacity: 1; transform: none; transition: none; }
  *,
  *::before,
  *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
