html{scroll-behavior:auto}
.hero-caption{align-items:center;gap:16px;background:white;position:relative;z-index:2}
/* Every frame stays in document flow; no pinning or scroll interception. */
.photo-story{margin:0;background:#111;color:#fff}
.story-intro{background:#fff;color:#191919;padding:80px var(--gutter) 70px;display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:end}
.story-intro>.overline{grid-column:1/-1;font-size:10px;letter-spacing:.18em}
.story-intro h2{font-size:clamp(58px,7vw,106px);line-height:.95;font-weight:400;letter-spacing:-.035em}
.story-intro h2 em{font-weight:400}.story-intro>p:last-child{font-size:17px;line-height:1.8;justify-self:end;padding:0 8vw 5px 0}
.story-frames{display:grid;grid-template-columns:1fr 1fr;gap:2px}
.story-frame{position:relative;overflow:hidden;margin:0;height:78svh;min-height:540px}
.story-frame:first-child{grid-column:1/-1;height:82svh;min-height:560px}
.story-scene{position:absolute;inset:0;overflow:hidden}
.story-scene>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1)}
.story-frame:first-child img{object-position:50% 43%}.story-frame:nth-child(2) img{object-position:50% 30%}.story-frame:nth-child(3) img{object-position:60% center}
.story-scene:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#000b,transparent 75%);pointer-events:none}
.story-frame figcaption{position:absolute;left:var(--gutter);right:32px;bottom:54px;z-index:1}
.story-frame figcaption .overline{margin-bottom:20px;font-size:10px;letter-spacing:.18em}
.story-frame h2{font-size:clamp(44px,4.8vw,74px);line-height:1.02;font-weight:400;letter-spacing:-.025em}
.story-frame:first-child h2{font-size:clamp(58px,6.5vw,98px)}
.story-frame figcaption>p:last-child{font-size:14px;line-height:1.6;color:#eee;margin-top:20px}
.photo-story+.programme{padding-top:90px}
/* A white editorial sheet rises naturally over the tail of the opening film. */
.training{position:relative;z-index:2;background:#fff;margin-top:-22px;padding-top:74px}
.training .section-intro{display:grid;grid-template-columns:1.3fr 1fr;text-align:left;gap:24px;align-items:end;margin-bottom:52px}
.training .section-intro>.overline{grid-column:1/-1}.training .section-intro h2{font-size:clamp(55px,6vw,90px);line-height:1.02;letter-spacing:-.035em;max-width:650px}
.training .section-intro>p:last-child{margin:0;max-width:380px;justify-self:end;text-align:left}
.reveal-ready{transition:opacity .8s ease,transform 1s cubic-bezier(.22,1,.36,1)}
.reveal-ready:not(.is-visible){opacity:0;transform:translateY(24px)}
@media(max-width:700px){.cinema-top>span:nth-child(2){display:none}.training{padding-top:52px}.training .section-intro{display:block}.training .section-intro h2{margin:20px 0 25px}.training .section-intro>p:last-child{max-width:none}.story-intro{display:block;padding:58px var(--gutter)}.story-intro h2{margin:22px 0 30px}.story-intro>p:last-child{font-size:15px;padding:0}.story-frames{grid-template-columns:1fr}.story-frame,.story-frame:first-child{height:76svh;min-height:520px;grid-column:auto}.story-frame figcaption{left:var(--gutter);bottom:40px}.story-frame h2,.story-frame:first-child h2{font-size:54px}.hero-caption{flex-wrap:wrap;gap:6px;padding-top:12px;padding-bottom:34px}.photo-story+.programme{padding-top:60px}}
@media(prefers-reduced-motion:reduce){.reveal-ready,.reveal-ready:not(.is-visible){opacity:1;transform:none;transition:none}}

.training .section-intro{max-width:none;margin-left:0;margin-right:0}.class-photo img,.coach>img,.walk-photo img{filter:grayscale(1)}

/* The logo's arch becomes a quiet photographic signature. */
.coaches .section-heading h2{font-size:clamp(52px,6vw,84px);line-height:1}
.coach-grid{gap:clamp(40px,9vw,140px);max-width:1100px;margin:0 auto}
.coach{display:block}.coach-portrait{position:relative;padding:14px 14px 0;max-width:390px;margin:0 auto 32px}
.coach-portrait:before{content:'';position:absolute;inset:0 0 35px;border:1px solid #b9b9b2;border-bottom:0;border-radius:50% 50% 0 0 / 34% 34% 0 0;pointer-events:none}
.coach-portrait img{width:100%;height:auto;aspect-ratio:4/5;filter:grayscale(1);border-radius:50% 50% 0 0 / 34% 34% 0 0}
.portrait-index{display:block;padding-top:15px;font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.coach-copy{padding-top:0;max-width:440px;margin:auto}.coach h3{font-size:44px;margin:12px 0 22px}.coach p:not(.overline){font-size:15px;line-height:1.85}.coach summary{font-size:13px;min-height:44px;display:inline-flex;align-items:center}
.trial-dock{display:none}.trial-dock[hidden]{display:none!important}
@media(max-width:700px){
 .coach-grid{grid-template-columns:1fr;gap:56px}.coach-portrait{max-width:330px;margin-bottom:24px}.coach h3{font-size:38px}.coaches .section-heading h2{font-size:54px}
 body.dock-enabled footer{padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))}
 .trial-dock{display:flex;position:fixed;z-index:40;bottom:0;left:0;right:0;gap:16px;justify-content:space-between;align-items:center;padding:14px 20px calc(14px + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid #ddd;box-shadow:0 -6px 28px #0000000a;animation:dock-enter .3s ease both}
 .trial-dock>div{display:grid;gap:3px}.trial-dock span{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.trial-dock strong{font-size:13px;font-weight:500;white-space:nowrap}.trial-dock .button{min-height:46px;padding:12px 18px;font-size:12px;white-space:nowrap}
 body:has(#mobile-menu:not([hidden])) .trial-dock{display:none}
}
@keyframes dock-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.trial-dock{animation:none}}

.partners{text-align:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-top:64px;padding-bottom:64px}
.partners-heading{margin-bottom:36px}.partners-heading .overline{margin-bottom:15px}.partners-heading h2{font-size:clamp(40px,4.3vw,60px)}
.partner-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}
.partner{min-width:0}.partner-visual{max-width:360px;margin:auto}.partner-visual img{width:100%;height:auto;aspect-ratio:9/5;object-fit:contain;filter:none}
.partner figcaption{text-align:center;border-top:1px solid var(--line);padding-top:16px;margin-top:24px;font-size:12px;color:var(--muted)}
@media(max-width:700px){.partners{padding-top:48px;padding-bottom:48px}.partner-grid{grid-template-columns:1fr;gap:32px}.partner-visual{max-width:320px}.partners-heading h2{font-size:44px}.partner figcaption{margin-top:16px}}
