:root {
  --navy: #050505;
  --navy-2: #111111;
  --slate: #1b1b1b;
  --chalk: #f4f1e8;
  --paper: #fbf8ef;
  --red: #d4af37;
  --red-dark: #a7811d;
  --ink: #0a0a0a;
  --muted-dark: #68645a;
  --muted-light: #b9b4a8;
  --line-dark: rgba(10, 10, 10, .14);
  --line-light: rgba(255, 255, 255, .14);
  --display: "Barlow Condensed", Impact, sans-serif;
  --body: Inter, Arial, sans-serif;
  --container: 1240px;
  --gutter: clamp(1.25rem, 5vw, 5rem);
  --section-space: clamp(5.5rem, 10vw, 10rem);
  --ease: cubic-bezier(.22, 1, .36, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 78px; }
body { margin: 0; overflow-x: hidden; background: var(--navy); color: var(--paper); font: 400 16px/1.65 var(--body); }
body.dialog-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
img { display: block; max-width: 100%; }
:focus-visible { outline: 3px solid #e7c75c; outline-offset: 4px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.skip-link { position: fixed; z-index: 200; left: 1rem; top: -5rem; padding: .8rem 1rem; background: var(--paper); color: var(--ink); }
.skip-link:focus { top: 1rem; }

.scroll-progress { position: fixed; z-index: 100; top: 0; left: 0; width: 100%; height: 3px; pointer-events: none; }
.scroll-progress span { display: block; width: 100%; height: 100%; background: var(--red); transform: scaleX(0); transform-origin: left; }
.whatsapp-button { position: fixed; z-index: 120; right: 1rem; bottom: 1rem; width: 54px; height: 54px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 50%; background: #25d366; color: white; box-shadow: 0 10px 30px rgba(0,0,0,.28); }
.whatsapp-button svg { width: 29px; height: 29px; fill: currentColor; }
.whatsapp-button:disabled { cursor: default; opacity: 1; }
@media(max-width:720px){.whatsapp-button{right:.65rem;bottom:calc(70px + env(safe-area-inset-bottom));width:50px;height:50px}.whatsapp-button svg{width:27px;height:27px}}
.site-header { position: absolute; z-index: 90; inset: 0 0 auto; height: 90px; display: flex; align-items: center; gap: 2.5rem; padding-inline: var(--gutter); border-bottom: 1px solid var(--line-light); transition: height .25s ease, background .25s ease; }
.site-header.scrolled { position: fixed; height: 72px; background: rgba(5,5,5,.94); backdrop-filter: blur(14px); box-shadow: 0 10px 30px rgba(0,0,0,.28); }
.brand { flex: none; font: 600 1rem/.78 var(--display); letter-spacing: .12em; }
.brand span, .brand strong { display: block; }
.brand strong { font-size: 1.65rem; }
.site-header nav { display: flex; align-items: center; gap: clamp(1.2rem, 2.3vw, 2.8rem); margin-left: auto; }
.site-header nav a { position: relative; font-size: .72rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.site-header nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -.6rem; height: 2px; background: var(--red); transition: right .2s ease; }
.site-header nav a:hover::after, .site-header nav a:focus-visible::after { right: 0; }
.menu-toggle { display: none; border: 0; background: transparent; color: white; }

.button { position: relative; display: inline-flex; align-items: center; justify-content: space-between; min-height: 52px; gap: 2.5rem; padding: .95rem 1.25rem; overflow: hidden; border: 1px solid var(--red); background: var(--red); color: white; font-size: .7rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; cursor: pointer; transition: transform .2s ease, background-color .2s ease, border-color .2s ease, color .2s ease; }
.button::before { display:none; }
.button:hover, .button:focus-visible { background:var(--red-dark); border-color:var(--red-dark); color:white; transform:translateY(-2px); }
.button-small { min-height: 48px; padding: .75rem 1rem; }
.dark-button { background: var(--navy); border-color: var(--navy); color:white; }
.dark-button:hover, .dark-button:focus-visible { background:var(--red); border-color:var(--red); color:white; }
.text-link { display: inline-flex; align-items: center; gap: 1.3rem; padding-bottom: .35rem; border-bottom: 1px solid currentColor; font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.text-link span { transition: transform .2s ease; }
.text-link:hover span { transform: translateX(4px); }

.hero { position: relative; min-height: 760px; height: 100svh; display: flex; align-items: center; overflow: hidden; isolation: isolate; }
.hero-media { position: absolute; z-index: -3; inset: 0; background: url("assets/nieky-2025-27.jpg") center 42% / cover no-repeat; transform: scale(1.02); animation: heroImage 1.2s var(--ease) both; }
.hero-media video { width:100%; height:100%; display:block; object-fit:cover; object-position:center; }
.hero-shade { position: absolute; z-index: -2; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.98) 0%, rgba(3,3,3,.88) 36%, rgba(3,3,3,.2) 68%), linear-gradient(0deg, rgba(0,0,0,.72), transparent 50%); }
.hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: clamp(70px, 9vw, 135px); background: var(--chalk); clip-path: polygon(0 82%, 100% 0, 100% 100%, 0 100%); }
.hero-content { width: min(720px, 58%); margin-left: max(var(--gutter), calc((100vw - var(--container)) / 2)); padding-top: 4rem; }
.hero .eyebrow, .hero h1, .hero-copy, .hero .button-row { opacity: 0; animation: heroCopy .65s var(--ease) forwards; }
.hero h1 { animation-delay: .08s; }
.hero-copy { animation-delay: .16s; }
.hero .button-row { animation-delay: .24s; }
.eyebrow { margin: 0 0 1.25rem; color: var(--red); font-size: .66rem; font-weight: 800; letter-spacing: .22em; text-transform: uppercase; }
.eyebrow::before { content: ""; display: inline-block; width: 34px; height: 2px; margin-right: .85rem; vertical-align: middle; background: var(--red); }
.eyebrow.light { color: white; }
h1, h2, h3, blockquote { text-wrap: balance; }
.hero h1, .section h2, dialog h2 { margin: 0; font: 800 clamp(4.6rem, 7.5vw, 7.6rem)/.84 var(--display); letter-spacing: -.025em; text-transform: uppercase; }
.hero-line { display:block; width:max-content; max-width:100%; transform-origin:left center; }
.hero h1 em, .section h2 em, dialog h2 em { color: var(--red); font-style: normal; }
.hero-copy { max-width: 520px; margin: 2rem 0; color: #d3d9e0; font-size: 1rem; }
.button-row { display: flex; align-items: center; gap: 2.2rem; }
.hero-index { position: absolute; right: var(--gutter); bottom: 4rem; display: flex; align-items: end; gap: 1rem; }
.hero-index span { color: rgba(255,255,255,.08); font: 800 5rem/.8 var(--display); }
.hero-index small { font-size: .52rem; font-weight: 700; letter-spacing: .18em; }
.scroll-cue { position: absolute; z-index: 2; left: var(--gutter); bottom: 2.25rem; display: flex; align-items: center; gap: .75rem; font-size: .52rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.scroll-cue span { width: 1px; height: 28px; background: white; animation: cue 1.6s ease-in-out infinite; }
.rope { position: absolute; z-index: -1; left: -15%; width: 45%; height: 1px; background: rgba(212,175,55,.72); transform: rotate(24deg); }
.rope-one { top: 40%; }.rope-two { top: 45%; opacity: .45; }

.section { position: relative; padding: var(--section-space) max(var(--gutter), calc((100vw - var(--container)) / 2)); }
.light-section, .steps, .pricing, .contact, .team-section { color: var(--ink); background: var(--chalk); }
.section-label { display: flex; gap: .65rem; margin-bottom: clamp(2.5rem, 5vw, 5rem); font-size: .56rem; font-weight: 800; letter-spacing: .19em; text-transform: uppercase; }
.section-label span { color: var(--red); }
.on-dark { color: white; }

.intro { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(280px,.8fr) 150px; gap: clamp(2rem, 6vw, 6rem); align-items: end; }
.intro .section-label { grid-column: 1/-1; margin-bottom: 0; }
.intro h2 { font-size: clamp(3.8rem, 6.7vw, 6.8rem); }
.intro-copy { color: #515e6b; }
.intro-copy p:first-child { color: var(--ink); font-size: 1.05rem; }
.intro-copy .text-link { margin-top: 1rem; }
.stat { padding-left: 2rem; border-left: 1px solid var(--line-dark); text-align: right; }
.stat strong { display: block; color: var(--red); font: 800 6rem/.8 var(--display); }
.stat span { display: block; margin-top: 1rem; font-size: .62rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }

.training-section { background: var(--navy); }
.section-head, .steps-head { display: flex; align-items: end; justify-content: space-between; gap: 4rem; margin-bottom: clamp(3rem, 6vw, 5rem); }
.section-head .section-label { margin-bottom: 2.5rem; }
.section-head h2, .steps-head h2 { font-size: clamp(3.8rem, 6.4vw, 6.5rem); }
.section-head > p, .steps-head > p { max-width: 390px; margin-bottom: .7rem; color: var(--muted-light); }
.training-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.training-card { min-width: 0; overflow: hidden; background: var(--navy-2); border: 1px solid rgba(255,255,255,.06); transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease; }
.training-card:hover { transform: translateY(-6px); border-color: rgba(212,175,55,.52); box-shadow: 0 24px 60px rgba(0,0,0,.38); }
.card-visual { position: relative; height: 310px; overflow: hidden; background-image: linear-gradient(180deg, transparent 50%, rgba(0,0,0,.72)), url("assets/nieky-padwork.jpg"); background-size: cover; background-position:center; transition: transform .55s var(--ease); }
.training-card:hover .card-visual { transform: scale(1.025); }
.visual-kickboxing { background-position: 60% center; }.visual-boxing { background-image:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.72)),url("assets/nieky-one-ring.jpg");background-position:center; }
.visual-youth { background-image: linear-gradient(180deg, transparent 50%, rgba(0,0,0,.72)), url("assets/team-holzken-fighters.jpg"); }
.visual-pt { background-image: linear-gradient(180deg, transparent 50%, rgba(0,0,0,.72)), url("assets/nieky-sjef-gym.jpg"); }
.visual-youth { background-position: 70% center; }.visual-pt { background-position: 25% center; }
.figure { display: none; }
.card-number { position: absolute; top: 1rem; left: 1.1rem; color: rgba(255,255,255,.8); font: 700 3rem/1 var(--display); text-shadow: 0 3px 20px rgba(0,0,0,.5); }
.card-body { min-height: 200px; display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding: 1.3rem; background: var(--navy-2); }
.card-body small { color: var(--muted-light); font-size: .53rem; letter-spacing: .13em; }
.card-body h3, .step-grid h3, .schedule h3, .pricing h3 { margin: .3rem 0; font: 800 1.5rem/1 var(--display); }
.card-body p { color: var(--muted-light); font-size: .75rem; line-height: 1.55; }
.card-body > a { flex: none; width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid #506076; transition: background .2s ease, border-color .2s ease; }
.card-body > a:hover, .card-body > a:focus-visible { background: var(--red); border-color: var(--red); }

.team-section { display: grid; grid-template-columns: 1.08fr .92fr; padding: 0; overflow: hidden; }
.team-portrait { position: relative; min-height: 760px; overflow: hidden; clip-path: polygon(0 0, 100% 0, 87% 100%, 0 100%); background: var(--navy-2); }
.team-portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform 1s var(--ease); }
.team-portrait.is-visible img { transform: scale(1.03); }
.portrait-caption { position: absolute; left: 3rem; bottom: 3rem; display: flex; flex-direction: column; padding: 1rem 1.2rem; background: rgba(5,5,5,.88); color: white; backdrop-filter: blur(10px); }
.portrait-caption span { font: 800 1.4rem/1 var(--display); }.portrait-caption small { font-size: .62rem; }
.team-story { display: flex; flex-direction: column; justify-content: center; padding: clamp(5rem, 8vw, 9rem) clamp(2rem, 7vw, 8rem) clamp(5rem, 8vw, 9rem) clamp(3rem, 6vw, 7rem); }
.team-story .section-label { margin-bottom: clamp(2.5rem, 5vw, 5rem); }
.team-story h2 { font-size: clamp(3.8rem, 5.6vw, 5.8rem); }
.team-story > p:not(.eyebrow) { max-width: 560px; color: #56616d; }
.team-story blockquote { margin: 2.2rem 0; padding-left: 1.4rem; border-left: 3px solid var(--red); font: 700 1.55rem/1.25 var(--display); }
.team-story .button { align-self: flex-start; }

.steps { background: var(--paper); }
.steps-head > p { color: var(--muted-dark); }
.step-grid { display: grid; grid-template-columns: repeat(3, 1fr); margin-bottom: 3rem; border-block: 1px solid var(--line-dark); }
.step-grid article { position: relative; padding: 2.5rem; border-right: 1px solid var(--line-dark); }
.step-grid article:last-child { border: 0; }
.step-grid article > span { position: absolute; right: 1.2rem; top: 1rem; color: #b9bec4; font: 700 2rem var(--display); }
.step-icon { width: 62px; height: 62px; display: grid; place-items: center; margin-bottom: 1.5rem; border-radius: 50%; background: var(--navy); color: white; }
.step-grid p { color: #5d6873; font-size: .84rem; }

.schedule { display: grid; grid-template-columns: .75fr 1.35fr; gap: clamp(3rem, 8vw, 8rem); background: var(--navy); }
.schedule-title h2 { font-size: clamp(4rem, 6vw, 6.3rem); }
.schedule-panel { padding: clamp(1.3rem, 3vw, 2.5rem); border: 1px solid rgba(255,255,255,.08); background: rgba(255,255,255,.025); }
.filters { display: flex; flex-wrap: wrap; gap: .45rem; margin-bottom: 1rem; }
.filters button { min-height: 40px; padding: .55rem .9rem; border: 1px solid #4b596c; background: transparent; color: #b9c2cd; font-size: .61rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; transition: .2s ease; }
.filters button:hover, .filters button:focus-visible, .filters button.active { border-color: var(--red); background: var(--red); color: white; }
.class-list article { display: grid; grid-template-columns: 100px 1fr auto; align-items: center; padding: 1.25rem .5rem; border-bottom: 1px solid var(--line-light); transition: background .2s ease; }
.class-list article:hover { background: rgba(255,255,255,.025); }
.class-list article[hidden] { display: none; }
.class-list time { color: var(--muted-light); font-size: .55rem; letter-spacing: .1em; }
.class-list time strong { display: block; color: white; font: 800 2rem var(--display); }
.class-list small { color: var(--red); font-size: .53rem; letter-spacing: .1em; }.class-list h3 { margin: 0; }.class-list p { margin: 0; color: var(--muted-light); font-size: .68rem; }
.class-book { min-height: 42px; border: 0; background: transparent; color: white; font-size: .6rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }.class-book span { margin-left: .7rem; color: var(--red); }
.schedule-note { color: #8390a0; font-size: .64rem; }

.quote-section { min-height: 540px; display: flex; flex-direction: column; align-items: center; justify-content: center; overflow: hidden; text-align: center; background: linear-gradient(rgba(0,0,0,.76),rgba(0,0,0,.92)), url("assets/team-holzken-champions.jpg") center 48% / cover no-repeat; }
.quote-section blockquote { max-width: 980px; margin: 0 0 2.5rem; font: 800 clamp(3rem, 6vw, 6rem)/.95 var(--display); text-transform: uppercase; }
.quote-section blockquote em { color: var(--red); font-style: normal; }

.pricing { display: grid; grid-template-columns: 1fr minmax(360px,.75fr); gap: clamp(3rem, 9vw, 9rem); align-items: center; }
.pricing-copy h2 { font-size: clamp(3.8rem, 6vw, 6rem); }.pricing-copy > p { max-width: 540px; color: #5e6873; }.pricing-copy .text-link { margin-top: 1.5rem; }
.pricing-card { position: relative; padding: clamp(2rem, 4vw, 3.5rem); border-top: 4px solid var(--red); background: white; box-shadow: 0 24px 65px rgba(17,27,41,.11); }
.pricing-card .tag { position: absolute; top: 0; right: 0; padding: .45rem .8rem; background: var(--red); color: white; font-size: .52rem; letter-spacing: .1em; }
.pricing-card > small { color: #707b86; font-size: .58rem; letter-spacing: .14em; }.pricing-card h3 { font-size: 2.1rem; }
.price { display: flex; align-items: center; gap: 1rem; padding-bottom: 1.8rem; border-bottom: 1px solid var(--line-dark); }.price strong { color: var(--red); font: 800 5rem/.8 var(--display); }.price span { font-size: .62rem; text-transform: uppercase; }
.pricing-card ul { list-style: none; padding: 1rem 0; color: #59646f; font-size: .78rem; line-height: 2.2; }

.faq { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(3rem, 8vw, 8rem); background: var(--navy); }
.faq-title h2 { font-size: clamp(3.8rem, 5.6vw, 5.8rem); }
.accordion details { padding: 1.35rem 0; border-top: 1px solid var(--line-light); }.accordion details:last-child { border-bottom: 1px solid var(--line-light); }
.accordion summary { display: flex; justify-content: space-between; gap: 1rem; list-style: none; cursor: pointer; font: 700 1.2rem var(--display); }.accordion summary::-webkit-details-marker { display: none; }.accordion summary span { color: var(--red); font-size: 1.5rem; transition: transform .2s ease; }.accordion details[open] summary span { transform: rotate(45deg); }.accordion p { max-width: 650px; color: var(--muted-light); font-size: .82rem; }

.contact { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem, 8vw, 8rem); align-items: center; background: var(--paper); }
.contact h2 { font-size: clamp(3.8rem, 5.8vw, 5.8rem); }.contact-copy > p:not(.eyebrow) { max-width: 520px; color: #5c6671; }
.contact-details { display: flex; gap: 4rem; margin-top: 2.5rem; }.contact-details div { display: flex; flex-direction: column; }.contact-details small { color: #828b94; font-size: .53rem; letter-spacing: .13em; }.contact-details strong { font-size: .78rem; }
.contact-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; padding: clamp(1.5rem, 4vw, 3rem); background: var(--chalk); box-shadow: 12px 14px 0 rgba(212,175,55,.12); }
.contact-form label, .contact-form label:last-of-type { grid-column: 1/-1; }.contact-form label:nth-child(-n+2) { grid-column: auto; }
label { display: flex; flex-direction: column; gap: .35rem; color: var(--ink); font-size: .61rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
input, select, textarea { width: 100%; min-height: 46px; padding: .7rem .1rem; border: 0; border-bottom: 1px solid #b8bdc2; border-radius: 0; background: transparent; color: var(--ink); outline: none; font-size: 16px; text-transform: none; }.contact-form textarea { min-height: 90px; resize: vertical; }input:focus, select:focus, textarea:focus { border-color: var(--red); }
.contact-form .button, .contact-form .form-status { grid-column: 1/-1; }.form-status { margin: 0; color: #27623d; font-size: .72rem; }.form-status.is-error { color: #a51f1f; }.button:disabled { cursor: wait; opacity: .65; transform: none; }

footer { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 3rem; padding: 5rem max(var(--gutter), calc((100vw - var(--container)) / 2)) 2rem; background: #000; }
.footer-brand { font: 600 1.3rem/.8 var(--display); }.footer-brand span,.footer-brand strong { display: block; }.footer-brand strong { font-size: 3rem; }.footer-brand p { margin-top: 1.5rem; color: var(--red); font: 700 .62rem var(--body); letter-spacing: .18em; }
footer > div:not(.footer-brand,.footer-bottom) { display: flex; flex-direction: column; gap: .6rem; font-size: .72rem; }footer small { margin-bottom: .4rem; color: #6f7d8d; font-size: .52rem; letter-spacing: .16em; }.footer-bottom { grid-column: 1/-1; display: flex; justify-content: space-between; gap: 1rem; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--line-light); color: #718091; font-size: .58rem; }
.mobile-book { display: none; }
body.dialog-open .mobile-book { display: none !important; }

dialog { width: min(560px, calc(100% - 2rem)); max-height: 92vh; padding: clamp(2rem,5vw,4rem); border: 0; background: var(--chalk); color: var(--ink); box-shadow: 0 30px 100px rgba(0,0,0,.55); }dialog::backdrop { background: rgba(3,8,15,.82); backdrop-filter: blur(5px); }dialog h2 { font-size: clamp(3rem,8vw,5rem); }dialog > p:not(.eyebrow) { color: #5f6972; font-size: .84rem; }dialog form { display: grid; gap: 1rem; }.dialog-close { position: absolute; right: 1rem; top: 1rem; width: 42px; height: 42px; border: 0; background: transparent; font-size: 2rem; cursor: pointer; }.consent { flex-direction: row; align-items: flex-start; font-weight: 400; letter-spacing: 0; text-transform: none; }.consent input { width: auto; min-height: 0; margin-top: .3rem; }

/* Motion: content remains readable without JavaScript. JS only adds the prepared state. */
.motion-ready .reveal, .motion-ready .is-section > :is(.section-head,.steps-head,.schedule-title,.schedule-panel,.pricing-copy,.pricing-card,.faq-title,.accordion,.contact-copy,.contact-form,.intro-title,.intro-copy,.stat,.team-portrait,.team-story) { opacity: 0; transform: translateY(24px); transition: opacity .58s var(--ease), transform .62s var(--ease); }
.motion-ready .reveal.is-visible, .motion-ready .is-section.is-visible > :is(.section-head,.steps-head,.schedule-title,.schedule-panel,.pricing-copy,.pricing-card,.faq-title,.accordion,.contact-copy,.contact-form,.intro-title,.intro-copy,.stat,.team-portrait,.team-story) { opacity: 1; transform: none; }
.motion-ready .is-section.is-visible > :is(.schedule-panel,.pricing-card,.accordion,.contact-form,.team-story) { transition-delay: .08s; }

@keyframes heroImage { from { opacity: .35; transform: scale(1.09); } to { opacity: 1; transform: scale(1.035); } }
@keyframes heroCopy { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
@keyframes cue { 50% { transform: scaleY(.35); transform-origin: bottom; } }

@media (max-width: 1050px) {
  .site-header nav,.header-cta { display: none; }
  .menu-toggle { width: 44px; height: 44px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; margin-left: auto; padding: 8px; }
  .menu-toggle span:not(.sr-only) { width: 25px; height: 2px; background: white; transition: transform .22s ease, opacity .22s ease; }
  .site-header.open { position: fixed; height: 100svh; align-items: flex-start; padding-top: 1.25rem; background: var(--navy); }
  .site-header.open nav { position: absolute; top: 105px; left: var(--gutter); right: var(--gutter); display: flex; flex-direction: column; align-items: flex-start; gap: 0; }
  .site-header.open nav a { width: 100%; padding: .8rem 0; border-bottom: 1px solid var(--line-light); font: 700 clamp(2rem,7vw,3.5rem)/1 var(--display); }
  .site-header.open .menu-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }.site-header.open .menu-toggle span:nth-child(2) { opacity: 0; }.site-header.open .menu-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .hero-content { width: min(650px, 72%); }
  .training-grid { grid-template-columns: repeat(2,1fr); }
  .team-section { grid-template-columns: 1fr; }.team-portrait { min-height: 600px; clip-path: polygon(0 0,100% 0,100% 91%,0 100%); }.team-story { padding: 5rem var(--gutter); }
  .schedule,.faq { grid-template-columns: 1fr; }.schedule-title,.faq-title { max-width: 660px; }
  .pricing { gap: 3rem; }.contact { gap: 3rem; }
}

@media (max-width: 720px) {
  :root { --section-space: 5rem; }
  body { padding-bottom: calc(62px + env(safe-area-inset-bottom)); }
  .site-header,.site-header.scrolled { height: 66px; padding-inline: 1.25rem; }.site-header.open { height: 100svh; }.brand strong { font-size: 1.45rem; }
  .hero { min-height: 700px; height: 100svh; align-items: flex-end; }.hero-media { background-position: 62% center; }.hero-shade { background: linear-gradient(0deg,rgba(0,0,0,.98) 8%,rgba(0,0,0,.78) 50%,rgba(0,0,0,.12) 92%); }
  .hero-content { width: 100%; margin: 0; padding: 0 1.25rem max(7.2rem,calc(6rem + env(safe-area-inset-bottom))); }.hero h1 { font-size: clamp(3.25rem,15vw,4.35rem); }.hero-copy { max-width: 94%; margin: 1.4rem 0; font-size: .88rem; }.hero .button-row { max-width: 390px; flex-direction: column; align-items: stretch; gap: 1rem; }.hero .button { width: 100%; }.hero-index,.scroll-cue,.rope { display: none; }.hero::after { height: 45px; }
  .section { padding-inline: 1.25rem; }.section-label { margin-bottom: 2.5rem; }.section h2 { font-size: clamp(3.15rem,14vw,4.2rem); }
  .intro { grid-template-columns: 1fr; gap: 1.5rem; }.intro .section-label { grid-column: auto; }.stat { display: none; }
  .section-head,.steps-head { flex-direction: column; align-items: flex-start; gap: 1.2rem; }.section-head > p,.steps-head > p { margin: 0; }
  .training-grid { grid-template-columns: 1fr; }.card-visual { height: min(92vw,380px); }.card-body { min-height: 170px; }
  .team-portrait { min-height: 500px; }.portrait-caption { left: 1.25rem; bottom: 3.5rem; }.team-story { padding: 4.5rem 1.25rem 5rem; }.team-story .section-label { margin-bottom: 2.5rem; }
  .step-grid { grid-template-columns: 1fr; }.step-grid article { padding: 2rem 1rem; border-right: 0; border-bottom: 1px solid var(--line-dark); }.step-grid article:last-child { border-bottom: 0; }
  .schedule { gap: 2rem; }.schedule-panel { padding: 1rem; }.filters { display: grid; grid-template-columns: 1fr 1fr; }.filters button { min-height: 44px; }.class-list article { grid-template-columns: 70px 1fr; padding: 1.1rem .2rem; }.class-book { grid-column: 2; justify-self: start; padding: 0; }.class-list time strong { font-size: 1.6rem; }
  .quote-section { min-height: 430px; }.quote-section blockquote { font-size: clamp(2.8rem,13vw,4rem); }
  .pricing { grid-template-columns: 1fr; }.pricing-card { padding: 2rem 1.35rem; }
  .faq { gap: 2rem; }.accordion summary { font-size: 1.08rem; }
  .contact { grid-template-columns: 1fr; gap: 2rem; }.contact-details { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }.contact-form { grid-template-columns: 1fr; padding: 1.35rem; }.contact-form label:nth-child(-n+2) { grid-column: 1/-1; }
  footer { grid-template-columns: 1fr 1fr; padding: 4rem 1.25rem 2rem; }.footer-brand { grid-column: 1/-1; }.footer-bottom { flex-wrap: wrap; }
  .mobile-book { position: fixed; z-index: 80; left: 0; right: 0; bottom: 0; min-height: calc(62px + env(safe-area-inset-bottom)); display: flex; align-items: center; justify-content: space-between; padding: 0 1.25rem env(safe-area-inset-bottom); background: var(--red); color: white; font-size: .68rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
  dialog { width: calc(100% - 1rem); max-height: calc(100svh - 1rem); padding: 2rem 1.25rem; }dialog h2 { font-size: 3.1rem; }
  .motion-ready .reveal, .motion-ready .is-section > :is(.section-head,.steps-head,.schedule-title,.schedule-panel,.pricing-copy,.pricing-card,.faq-title,.accordion,.contact-copy,.contact-form,.intro-title,.intro-copy,.stat,.team-portrait,.team-story) { transform: translateY(16px); transition-duration: .45s; }
}

@media (max-width: 390px) {
  .hero h1 { font-size: 3rem; }.eyebrow { font-size: .6rem; letter-spacing: .15em; }.eyebrow::before { width: 26px; margin-right: .6rem; }.section h2 { font-size: 3rem; }
  .contact-details { grid-template-columns: 1fr; }footer { grid-template-columns: 1fr; }.footer-brand,.footer-bottom { grid-column: auto; }.footer-bottom { flex-direction: column; }.button { gap: 1rem; }
}

html[data-motion="reduced"] { scroll-behavior:auto; }
html[data-motion="reduced"] *,html[data-motion="reduced"] *::before,html[data-motion="reduced"] *::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
html[data-motion="reduced"] .motion-ready .reveal,html[data-motion="reduced"] .motion-ready .is-section > * { opacity:1!important; transform:none!important; }
@media (prefers-reduced-motion: reduce) {
  html:not([data-motion="full"]) { scroll-behavior: auto; }
  html:not([data-motion="full"]) *,html:not([data-motion="full"]) *::before,html:not([data-motion="full"]) *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  html:not([data-motion="full"]) .motion-ready .reveal,html:not([data-motion="full"]) .motion-ready .is-section > * { opacity: 1 !important; transform: none !important; }
}

@media (max-width: 720px) {
  .hero h1 { max-width: 100%; font-size: clamp(2.9rem, 12vw, 3.8rem); }
}

/* Editorial scroll choreography, inspired by the pacing of the reference. */
@media (min-width: 1060px) {
  .motion-enhanced .training-section { height: 190vh; padding-block: 0; }
  .motion-enhanced .training-stage { position: sticky; top: 0; min-height: 100vh; display: flex; flex-direction: column; justify-content: center; padding-block: 7rem 4rem; overflow: hidden; }
  .motion-enhanced .training-stage::before { content: "TRAIN TOGETHER"; position: absolute; left: 50%; top: 49%; z-index: 0; white-space: nowrap; color: rgba(255,255,255,.025); font: 800 23vw/.7 var(--display); letter-spacing: -.04em; transform: translate3d(calc(-50% + (var(--progress,0) - .5) * -12vw),-50%,0); }
  .motion-enhanced .training-stage > * { position: relative; z-index: 1; }
  .motion-enhanced .training-stage .section-head { transform: translate3d(0,calc((var(--progress,0) - .5) * -35px),0); opacity: calc(1 - max(0,var(--progress,0) - .72) * 3); }
  .motion-enhanced .training-card { --delay: 0; opacity: clamp(0,calc(var(--progress,0) * 5 - var(--delay)),1)!important; transform: translate3d(0,calc((1 - clamp(0,calc(var(--progress,0) * 5 - var(--delay)),1)) * 150px),0) rotate(calc((1 - clamp(0,calc(var(--progress,0) * 5 - var(--delay)),1)) * 2deg))!important; transition: box-shadow .22s ease,border-color .22s ease!important; }
  .motion-enhanced .training-card:nth-child(1) { --delay: .15; }.motion-enhanced .training-card:nth-child(2) { --delay: .45; }.motion-enhanced .training-card:nth-child(3) { --delay: .75; }.motion-enhanced .training-card:nth-child(4) { --delay: 1.05; }
  .motion-enhanced .training-card:nth-child(even) { transform: translate3d(0,calc((1 - clamp(0,calc(var(--progress,0) * 5 - var(--delay)),1)) * 210px),0) rotate(calc((1 - clamp(0,calc(var(--progress,0) * 5 - var(--delay)),1)) * -2deg))!important; }
  .motion-enhanced .training-card:hover { transform: translateY(-6px)!important; }

  .motion-enhanced .team-section { min-height: 150vh; align-items: start; }
  .motion-enhanced .team-portrait { position: sticky; top: 72px; width: 100%; height: calc(100vh - 72px); min-height: 0; clip-path: polygon(0 0,100% 0,calc(100% - var(--progress,0) * 10%) 100%,0 100%); }
  .motion-enhanced .team-portrait img { transform: scale(1.08) translate3d(0,calc((var(--progress,0) - .5) * 28px),0)!important; }
  .motion-enhanced .team-story { min-height: 150vh; justify-content: center; }
  .motion-enhanced .team-story > * { transform: translate3d(0,calc((1 - var(--progress,0)) * 35px),0); opacity: clamp(.15,calc(var(--progress,0) * 2.2),1); }

  .motion-enhanced .quote-section { background-position: center calc(34% + var(--progress,0) * 18%); }
  .motion-enhanced .quote-section blockquote { transform: scale(calc(.92 + var(--progress,0) * .08)); }
  .motion-enhanced .quote-section .button { transform: translateY(calc((1 - var(--progress,0)) * 24px)); opacity: clamp(.2,calc(var(--progress,0) * 1.8),1); }

  .motion-enhanced .step-grid article { --step: 0; opacity: clamp(.12,calc(var(--progress,0) * 4 - var(--step)),1); transform: translateY(calc((1 - clamp(0,calc(var(--progress,0) * 4 - var(--step)),1)) * 55px)); }
  .motion-enhanced .step-grid article:nth-child(1) { --step: .1; }.motion-enhanced .step-grid article:nth-child(2) { --step: .45; }.motion-enhanced .step-grid article:nth-child(3) { --step: .8; }
}

/* Unified GSAP motion system */
.gsap-motion .reveal { opacity:1; transform:none; }
.motion-divider { position:absolute; z-index:8; top:clamp(1.25rem,3vw,2.5rem); left:var(--gutter); width:clamp(54px,7vw,110px); height:3px; background:var(--red); pointer-events:none; }
.gsap-motion .section-label,.gsap-motion .eyebrow,.gsap-motion h2,.gsap-motion .training-card,.gsap-motion .team-portrait,.gsap-motion .team-story,.gsap-motion .step-grid article,.gsap-motion .schedule-panel,.gsap-motion .pricing-card,.gsap-motion .accordion details,.gsap-motion .contact-form { will-change:transform,opacity; }
.gsap-motion .section h2 em { display:inline-block; }
.gsap-motion .button span,.gsap-motion .text-link span,.gsap-motion .training-card a { animation:actionNudge 1.8s cubic-bezier(.22,1,.36,1) infinite; }
@keyframes actionNudge { 0%,65%,100%{transform:translateX(0)} 78%{transform:translateX(5px)} }
@media(max-width:767px){.motion-divider{left:1.25rem;width:48px}.gsap-motion .button span,.gsap-motion .text-link span,.gsap-motion .training-card a{animation:none}}
.gsap-motion .section,.gsap-motion footer { position:relative; }
.gsap-motion main > .section { overflow:clip; }
.gsap-motion .hero .eyebrow,.gsap-motion .hero h1,.gsap-motion .hero-copy,.gsap-motion .hero .button-row { opacity:1; animation:none; }
.scene-word { position:absolute; z-index:0; left:-8vw; top:46%; width:max-content; color:rgba(128,145,164,.055); font:800 clamp(9rem,22vw,23rem)/.72 var(--display); letter-spacing:-.045em; white-space:nowrap; pointer-events:none; user-select:none; }
.light-section .scene-word,.steps .scene-word,.pricing .scene-word { color:rgba(10,10,10,.045); }
.gsap-motion .training-scroll-card .training-card,.gsap-motion .pricing-card,.gsap-motion .step-grid article { transform-style:preserve-3d; transform-origin:center; }
.gsap-motion .training-grid,.gsap-motion .step-grid,.gsap-motion .pricing { perspective:1100px; }
@media(max-width:1059px){.scene-word{font-size:24vw;opacity:.65}.hero-line{width:auto}}
.photo-wall-stage { position:relative; padding-inline:max(var(--gutter),calc((100vw - var(--container))/2)); overflow:hidden; background:var(--navy); color:white; }
.photo-wall-pin { position:relative; width:100%; min-height:100svh; display:flex; flex-direction:column; justify-content:center; padding-block:clamp(4.5rem,7vh,7rem); isolation:isolate; }
.photo-wall-heading { position:relative; z-index:5; width:min(900px,92vw); margin:0 auto clamp(2rem,4vh,3.5rem); text-align:center; pointer-events:none; text-shadow:0 4px 30px rgba(0,0,0,.92); }
.photo-wall-heading h2 { margin: 0; font: 800 clamp(3.5rem,7vw,7rem)/.84 var(--display); text-transform: uppercase; }.photo-wall-heading h2 em { color: var(--red); font-style: normal; }
.photo-wall-grid { position:relative; z-index:2; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); grid-auto-flow:dense; gap:clamp(.65rem,1.1vw,1.15rem); perspective:1200px; }
.wall-card { position:relative; width:100%; aspect-ratio:4/3; margin:0; overflow:hidden; border-radius:clamp(12px,1.2vw,20px); background:var(--slate); box-shadow:0 18px 44px rgba(0,0,0,.24); }
.wall-card img { width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }.wall-card:hover img{transform:scale(1.045)}
.wall-feature { grid-column:3 / span 2; grid-row:1 / span 2; }
.wall-feature::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.82),transparent 60%); }
.wall-feature figcaption { position:absolute; z-index:2; left:1.5rem; bottom:1.35rem; color:white; font:800 clamp(2rem,4vw,4.2rem)/.86 var(--display); text-transform:uppercase; }.wall-feature figcaption::first-line{color:var(--red)}
.photo-wall-edge { display:none; }

.marquee-band { position:relative; overflow:hidden; padding:1.15rem 0; border-block:1px solid rgba(255,255,255,.12); background:var(--red); color:white; }
.marquee-track { width:max-content; display:flex; gap:2.5rem; will-change:transform; }.marquee-group { flex:none; white-space:nowrap; font:800 clamp(2.8rem,6vw,6.2rem)/.85 var(--display); letter-spacing:-.02em; }.marquee-group i { padding-inline:1.1rem; color:var(--navy); font-style:normal; }
.marquee-toggle { position:absolute; z-index:2; right:1rem; top:50%; width:42px; height:42px; border:1px solid rgba(255,255,255,.6); border-radius:50%; background:rgba(0,0,0,.86); color:white; transform:translateY(-50%); cursor:pointer; }

.training-grid { position:relative; grid-template-columns:repeat(4,minmax(0,1fr)); align-items:stretch; gap:clamp(.7rem,1vw,1rem); padding-block:3rem 5rem; }
.training-grid::before{content:"";position:absolute;z-index:0;left:0;right:0;top:3rem;height:1px;background:linear-gradient(90deg,transparent,var(--red) 12%,rgba(255,255,255,.18) 50%,var(--red) 88%,transparent)}
.training-scroll-card { position:relative;z-index:1;min-width:0;will-change:transform;padding-top:0!important; }.training-scroll-card .training-card { height:100%;display:flex;flex-direction:column;border-color:rgba(255,255,255,.11);box-shadow:0 24px 60px rgba(0,0,0,.14) }.training-scroll-card .card-media-hover{flex:none}.training-scroll-card .card-visual{height:auto;aspect-ratio:4/4.25}.training-scroll-card .card-body{flex:1;min-height:205px}.personal-scroll-card .training-card{transform:none!important}
.card-media-hover { overflow:hidden; }.card-media-hover .card-visual { transition:transform .35s cubic-bezier(.22,1,.36,1); }.training-card:hover .card-media-hover .card-visual,.training-card:focus-within .card-media-hover .card-visual { transform:scale(1.035); }

.community-layers { min-height:760px; display:grid; grid-template-columns:repeat(12,1fr); grid-template-rows:auto 1fr auto; gap:1.25rem; overflow:hidden; isolation:isolate; background:radial-gradient(circle at 50% 48%,#211b0a 0,var(--navy) 55%); color:white; }
.community-layers::before,.community-layers::after{content:"";position:absolute;z-index:0;left:50%;top:50%;width:min(72vw,1050px);aspect-ratio:1;border:1px solid rgba(212,175,55,.25);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}.community-layers::after{width:min(50vw,720px);border-color:rgba(255,255,255,.08)}
.community-layers h2 { position:relative; z-index:1; grid-column:1/-1; margin:0 0 1rem; color:rgba(255,255,255,.14); font:800 clamp(5rem,11vw,10rem)/.76 var(--display); letter-spacing:-.035em; text-align:center; text-transform:uppercase; }.community-layers h2 em{color:rgba(212,175,55,.48);font-style:normal}
.community-photo { position:relative; z-index:2; width:100%; aspect-ratio:4/3; margin:0; overflow:hidden; border:1px solid rgba(255,255,255,.12); border-radius:20px; box-shadow:0 24px 70px rgba(0,0,0,.3); will-change:transform; }.community-photo img{width:100%;height:100%;object-fit:cover}.community-photo-1{grid-column:1/4;grid-row:2;transform:rotate(-2deg)}.community-photo-2{grid-column:4/7;grid-row:2;transform:translateY(2rem) rotate(1deg)}.community-photo-3{grid-column:7/10;grid-row:2;transform:rotate(-1deg)}.community-photo-4{grid-column:10/13;grid-row:2;transform:translateY(2rem) rotate(2deg)}
.community-layer-copy { position:relative; z-index:4; grid-column:4/10; grid-row:3; width:100%; margin-top:1.5rem; padding:1.8rem 2.2rem; border:1px solid rgba(212,175,55,.25); background:rgba(5,5,5,.94); box-shadow:0 24px 80px rgba(0,0,0,.38); text-align:center; backdrop-filter:blur(12px); }.community-layer-copy p:not(.eyebrow){color:#ded9cc;font-size:1.02rem}

@media(max-width:1059px){
  .photo-wall-stage{padding-block:6rem}.photo-wall-pin{min-height:0;padding-block:0}.photo-wall-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.wall-feature{grid-column:span 2;grid-row:span 2}.photo-wall-edge{display:none}.training-grid{grid-template-columns:repeat(2,1fr)}.training-scroll-card{transform:none!important;padding-top:0!important}.community-layers{min-height:auto;grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto;gap:1rem;padding-block:6rem}.community-layers h2{grid-column:1/-1;width:auto;font-size:clamp(5rem,15vw,9rem)}.community-photo{grid-column:auto!important;grid-row:auto!important;width:100%;transform:none!important}.community-layer-copy{grid-column:1/-1;grid-row:auto;width:100%;margin-top:1rem}.marquee-group{font-size:clamp(2.5rem,8vw,4.5rem)}}
@media(max-width:720px){.photo-wall-stage{padding-block:5.5rem}.photo-wall-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.wall-card{border-radius:12px}.wall-feature{grid-column:span 2}.photo-wall-heading h2{font-size:3.2rem}.training-grid{grid-template-columns:1fr;padding-block:1rem}.training-grid>.training-card{grid-column:auto}.community-layers{grid-template-columns:1fr 1fr;padding-block:5rem}.community-photo{border-radius:12px}.community-layer-copy{padding:1.3rem}.marquee-toggle{width:38px;height:38px}.photo-wall-edge{display:none}}
html[data-motion="reduced"] .photo-wall-stage{height:auto!important}html[data-motion="reduced"] .photo-wall-pin{height:auto!important;min-height:0;padding-block:5rem}html[data-motion="reduced"] :is(.wall-card,.wall-message,.training-scroll-card,.community-photo,.marquee-track){opacity:1!important;transform:none!important}html[data-motion="reduced"] .wall-message-one{display:none}html[data-motion="reduced"] .wall-message-two{opacity:1!important}html[data-motion="reduced"] .marquee-toggle{display:none}
@media(prefers-reduced-motion:reduce){html:not([data-motion="full"]) .photo-wall-stage{height:auto!important}html:not([data-motion="full"]) .photo-wall-pin{height:auto!important;min-height:0;padding-block:5rem}html:not([data-motion="full"]) :is(.wall-card,.wall-message,.training-scroll-card,.community-photo,.marquee-track){opacity:1!important;transform:none!important}html:not([data-motion="full"]) .wall-message-one{display:none}html:not([data-motion="full"]) .wall-message-two{opacity:1!important}html:not([data-motion="full"]) .marquee-toggle{display:none}}
