/* Scoped Public Web surface; no Coach selectors or global typography overrides. */
.gym-web,.gym-preview{--gym-accent:#ff5cbd;--gym-accent-ink:#160b13}
.gym-web{--gw-bg:#09090e;--gw-ink:#f2f0f4;--gw-muted:#b7b4c1;--gw-line:#36353e;--gw-accent:var(--gym-accent);background:var(--gw-bg);color:var(--gw-ink);font-family:Manrope,Arial,sans-serif;min-height:100svh;isolation:isolate;overflow:clip}
.gym-web *{box-sizing:border-box}.gym-web :is(h1,h2,h3,h4,p,figure){margin:0}.gym-web a{color:inherit;text-decoration:none}.gym-web button{font:inherit;cursor:pointer}.gym-web :is(a,button):focus-visible{outline:3px solid var(--gw-accent);outline-offset:5px}.gym-web :is(button,a){-webkit-tap-highlight-color:transparent}.gym-web p{color:var(--gw-muted);line-height:1.8}.gym-web img{max-width:100%}.gym-web [hidden]{display:none!important}
.gym-web .gw-skip{position:fixed;left:16px;top:-90px;padding:16px;background:var(--gw-accent);color:#111;z-index:5}.gym-web .gw-skip:focus{top:12px}.gym-web .gw-preview{padding:12px 6%;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;background:#201b2b;border-bottom:1px solid #655678;font:11px/1.5 'DM Mono',monospace;color:#dfd6ec}.gym-web .gw-header{display:flex;align-items:center;flex-wrap:wrap;gap:22px;padding:28px 6%;border-bottom:1px solid var(--gw-line);position:relative;z-index:2}.gym-web .gw-wordmark{font-size:15px;font-weight:800;letter-spacing:-.02em}.gym-web .gw-header nav{display:flex;flex-wrap:wrap;gap:12px 22px;flex:1;justify-content:center}.gym-web .gw-header nav a{font-size:12px;padding-block:10px;color:var(--gw-muted)}.gym-web .gw-header nav a[aria-current]{color:var(--gw-accent)}.gym-web .gw-locales{display:flex;gap:8px}.gym-web .gw-locales a{font:12px 'DM Mono',monospace;padding:10px 7px}.gym-web .gw-locales a[aria-current]{border-bottom:2px solid var(--gw-accent)}
.gym-web .gw-hero{min-height:min(810px,95svh);padding:110px 6%;position:relative;display:flex;align-items:center;gap:4%;background:radial-gradient(ellipse at 85% 35%,#b6a1ee13,transparent 60%)}.gym-web .gw-hero-copy{position:relative;z-index:1;max-width:850px;flex:1}.gym-web .gw-kicker{font:11px/1.6 'DM Mono',monospace;letter-spacing:.15em;text-transform:uppercase;color:var(--gw-muted);margin-bottom:26px}.gym-web h1{font-size:clamp(66px,9.3vw,156px);font-weight:800;letter-spacing:-.075em;line-height:.93;max-width:9ch;overflow-wrap:break-word}.gym-web h2{font-size:clamp(34px,4.8vw,76px);font-weight:750;letter-spacing:-.055em;line-height:1.06;max-width:17ch}.gym-web h3{font-size:clamp(23px,3vw,42px);font-weight:650;letter-spacing:-.04em;line-height:1.2}.gym-web .gw-hero-copy>p:not(.gw-kicker){font-size:clamp(16px,1.6vw,23px);max-width:38ch;margin-top:32px}.gym-web .gw-logo{height:auto;width:30%;max-width:420px;position:relative;filter:drop-shadow(0 0 65px #b5b3f922);animation:gw-float 10s ease-in-out infinite}.gym-web .gw-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px}.gym-web .gw-button{display:inline-flex;gap:18px;align-items:center;justify-content:center;padding:17px 24px;background:var(--gw-accent);border:1px solid var(--gw-accent);color:var(--gym-accent-ink);font-size:13px;font-weight:700;min-height:48px}.gym-web .gw-secondary{background:#101018aa;color:var(--gw-ink);border-color:#787580}.gym-web button:disabled{opacity:.6;cursor:default}.gym-web .gw-motion{position:absolute;bottom:22px;right:6%;z-index:2;border:0;background:transparent;color:var(--gw-muted);font-size:11px;padding:12px}
.gym-web .gw-section{padding:100px 6%}.gym-web .gw-intro{border-top:1px solid var(--gw-line)}.gym-web .gw-intro>p:not(.gw-kicker){max-width:50ch;font-size:clamp(18px,2vw,27px);margin-top:34px}.gym-web .gw-program-list{margin-top:50px}.gym-web .gw-program-list article{display:grid;grid-template-columns:65px 1fr;gap:20px;border-top:1px solid var(--gw-line);padding:35px 0}.gym-web .gw-program-list article:last-child{border-bottom:1px solid var(--gw-line)}.gym-web .gw-program-list p{max-width:70ch;margin-top:14px}.gym-web .gw-index{font:12px 'DM Mono',monospace;color:var(--gw-accent);padding-top:8px}.gym-web .gw-program-list h3 span{color:var(--gw-accent);font-weight:400}.gym-web .gw-page-head{min-height:65svh}.gym-web .gw-page-head h1{font-size:clamp(52px,7.4vw,120px);max-width:14ch}.gym-web .gw-page-head h2{margin-top:80px}.gym-web .gw-lead{font-size:clamp(18px,2vw,25px);max-width:48ch;margin-block:35px}.gym-web .gw-note{font-size:13px;margin-block:28px}.gym-web .gw-week{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:32px}.gym-web .gw-day{border-top:2px solid #9185ac;min-width:0}.gym-web .gw-day>h3{font:13px 'DM Mono',monospace;padding:22px 0}.gym-web .gw-slot{background:#17171e;border-bottom:1px solid var(--gw-line);padding:24px 18px;overflow-wrap:anywhere}.gym-web .gw-time{font:12px 'DM Mono',monospace;color:var(--gw-accent);margin-bottom:18px}.gym-web .gw-slot h4{font-size:18px;line-height:1.3;margin-bottom:12px;letter-spacing:-.025em}.gym-web .gw-slot>p:not(.gw-time){font-size:12px}.gym-web .gw-slot .gw-slot-meta{font-size:10px;margin-top:18px}
.gym-web .gw-team{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:45px;margin-top:60px}.gym-web .gw-person{border-top:1px solid var(--gw-line);padding-top:30px}.gym-web .gw-person p{font-size:14px;margin-top:20px;max-width:48ch}.gym-web .gw-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.gym-web .gw-chips span{padding:8px;border:1px solid #494354;color:#ded4ed;font-size:11px}.gym-web .gw-rank{display:inline-block;font:11px 'DM Mono',monospace;margin-top:20px;color:#ccc}.gym-web .gw-portrait{width:100%;max-width:480px;aspect-ratio:4/5;object-fit:cover;display:block;margin-bottom:24px}.gym-web .gw-contact{border-top:1px solid var(--gw-line);background:radial-gradient(ellipse at 100% 100%,#b29df010,transparent 65%);padding:95px 6%}.gym-web .gw-contact p:not(.gw-kicker){max-width:50ch;font-size:14px;margin-top:24px}.gym-web address{font-size:13px;color:var(--gw-muted);font-style:normal;margin-top:20px}.gym-web .gw-footer{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:32px 6%;border-top:1px solid var(--gw-line);font:11px 'DM Mono',monospace;color:var(--gw-muted)}
.gym-web .gw-photo{background:#15151b;overflow:hidden}.gym-web .gw-photo img:not([hidden]){width:100%;height:100%;object-fit:cover;display:block}.gym-web .gw-wide-photo{aspect-ratio:16/9;margin-top:50px;max-height:680px}.gym-web .gw-hero-media{position:absolute;inset:0}.gym-web .gw-hero-media:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#09090ed9,#09090e35),linear-gradient(0deg,#09090ec0,transparent 45%);pointer-events:none}.gym-web .gw-hero-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.gym-web .gw-hero:has(.gw-hero-media img:not([hidden])) .gw-logo{position:absolute;width:160px;right:6%;bottom:80px;opacity:.9}.gym-web .gw-paused *{animation-play-state:paused!important}.gym-web.gw-unavailable{padding:15svh 8%;min-height:100svh}.gym-web.gw-unavailable h1{font-size:clamp(40px,6vw,80px);max-width:18ch}.gym-web.gw-unavailable :is(p,a,button){display:block;margin-top:30px}.gym-web.gw-unavailable button{background:var(--gw-accent);color:#111;border:0;padding:16px}
@keyframes gw-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@media(max-width:1050px){.gym-web .gw-header nav{order:3;flex-basis:100%;justify-content:flex-start}.gym-web .gw-locales{margin-left:auto}.gym-web .gw-week{grid-template-columns:repeat(2,minmax(0,1fr))}.gym-web .gw-hero{min-height:650px;padding-block:90px}}
@media(max-width:650px){.gym-web .gw-header{padding:20px 6%;gap:12px}.gym-web .gw-wordmark{font-size:13px;max-width:70%;overflow-wrap:anywhere}.gym-web .gw-header nav{gap:2px 17px}.gym-web .gw-header nav a{font-size:11px;min-height:44px;display:flex;align-items:center}.gym-web .gw-hero{min-height:720px;align-items:flex-start;padding:70px 7% 250px}.gym-web h1{font-size:clamp(62px,17vw,105px)}.gym-web .gw-logo{position:absolute;width:170px;right:7%;bottom:55px}.gym-web .gw-section,.gym-web .gw-contact{padding:65px 7%}.gym-web .gw-week,.gym-web .gw-team{grid-template-columns:1fr}.gym-web .gw-program-list article{grid-template-columns:30px 1fr;gap:12px;padding-block:26px}.gym-web .gw-actions{gap:10px}.gym-web .gw-button{padding:15px;font-size:12px}.gym-web .gw-preview{padding:12px 7%;font-size:9px}.gym-web .gw-wide-photo{aspect-ratio:4/3}.gym-web .gw-hero-media:after{background:linear-gradient(90deg,#09090ebf,#09090e75),linear-gradient(0deg,#09090ec9,transparent 65%)}.gym-web .gw-page-head h1{font-size:clamp(46px,12vw,74px)}.gym-web .gw-footer{font-size:10px}.gym-web .gw-motion{font-size:10px}}
@media(prefers-reduced-motion:reduce){.gym-web *{animation:none!important;transition:none!important;scroll-behavior:auto!important}.gym-web [data-gw-video]{display:none}.gym-web .gw-motion{display:none}}

.gym-web .gw-arrow{width:1em;height:1em;display:inline-block;vertical-align:baseline;flex:none}
/* Dated timetable: local wall-clock time is the vertical axis; mobile remains a daily list. */
.gym-web .gw-week-controls{margin-top:40px;display:flex;gap:22px;flex-wrap:wrap;align-items:center;justify-content:space-between}.gym-web .gw-week-controls h3{font-size:20px;letter-spacing:-.02em}.gym-web .gw-week-controls>div{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.gym-web .gw-week-controls button,.gym-web .gw-week-controls input{background:#18171f;border:1px solid #65616f;color:#eeeaf4;min-height:44px;padding:10px;font-size:12px;color-scheme:dark}.gym-web .gw-week-controls label{font-size:11px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.gym-web .gw-calendar-desktop{display:grid;grid-template-columns:56px repeat(7,minmax(0,1fr));margin-top:28px;border-top:1px solid #66616f}.gym-web .gw-calendar-heading{font:11px/1.5 'DM Mono',monospace;text-align:center;padding:20px 4px;border-left:1px solid var(--gw-line)}.gym-web .gw-time-axis{position:relative;font:10px 'DM Mono',monospace;color:#ccc5d7}.gym-web .gw-time-axis span{position:absolute;transform:translateY(-50%)}.gym-web .gw-calendar-column{position:relative;border-left:1px solid #44404c;background:repeating-linear-gradient(to bottom,transparent 0,transparent 107px,#44404c 107px,#44404c 108px)}.gym-web .gw-calendar-column .gw-slot{position:absolute;padding:8px 6px;border:1px solid #6e637b;background:#24202d;overflow:auto;scrollbar-width:thin}.gym-web .gw-calendar-column .gw-time{font-size:10px;margin-bottom:6px;line-height:1.4}.gym-web .gw-calendar-column .gw-slot h4{font-size:12px;margin-bottom:5px;line-height:1.3}.gym-web .gw-calendar-column .gw-slot>p:not(.gw-time){font-size:10px;line-height:1.4}.gym-web .gw-calendar-column .gw-slot .gw-slot-meta{font-size:9px;margin-top:6px}.gym-web .gw-occurrence-status{font:10px 'DM Mono',monospace;color:#e6cba6;display:block;margin-bottom:6px}.gym-web .gw-slot[data-status=cancelled]{background:#262327;border-color:#78646a}.gym-web .gw-slot[data-status=cancelled] h4{text-decoration:line-through}.gym-web .gw-calendar-mobile{display:none}
@media(max-width:1000px){.gym-web .gw-calendar-desktop{display:none}.gym-web .gw-calendar-mobile{display:grid;gap:24px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:28px}.gym-web .gw-calendar-mobile .gw-day h3{font-size:13px;line-height:1.5}.gym-web .gw-week-controls>div{width:100%}}
@media(max-width:650px){.gym-web .gw-calendar-mobile{grid-template-columns:1fr}.gym-web .gw-week-controls h3{font-size:18px}.gym-web .gw-week-controls button{font-size:11px}.gym-web .gw-week-controls label{width:100%;margin-top:8px}}

/* Academy-controlled editorial prices; no purchase controls or operational memberships. */
.gym-web .gw-pricing-copy{max-width:880px;margin:40px 0}.gym-web .gw-pricing-copy p{padding:22px 0;border-top:1px solid var(--gw-line);font-size:clamp(16px,2vw,24px);line-height:1.6;color:#eeeaf4;overflow-wrap:anywhere}.gym-web .gw-person h3{overflow-wrap:anywhere}

.gym-web .gw-bio{margin-top:22px}.gym-web .gw-bio summary{display:flex;align-items:center;gap:10px;width:fit-content;min-height:44px;cursor:pointer;list-style:none;color:var(--gw-accent);font-size:13px;border-bottom:1px solid #494354}.gym-web .gw-bio summary::-webkit-details-marker{display:none}.gym-web .gw-bio summary:focus-visible{outline:2px solid var(--gw-accent);outline-offset:4px}.gym-web .gw-bio-close{display:none}.gym-web .gw-bio[open] .gw-bio-read{display:none}.gym-web .gw-bio[open] .gw-bio-close{display:inline}.gym-web .gw-bio-symbol::before{content:'+'}.gym-web .gw-bio[open] .gw-bio-symbol::before{content:'−'}.gym-web .gw-bio p{margin-top:18px;white-space:pre-line;font-size:14px;line-height:1.75;max-width:48ch}.gym-web .gw-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

/* Cinematic hero: poster stays underneath until the first playing frame. */
.gym-web .gw-hero:has([data-gw-video]){min-height:calc(100svh - 140px);padding:80px 6% 110px}
.gym-web .gw-hero:has([data-gw-video]) h1{font-size:clamp(48px,7.4vw,112px);max-width:13ch;letter-spacing:-.055em;line-height:1.02;text-wrap:balance}
.gym-web .gw-hero:has([data-gw-video]) .gw-kicker,.gym-web .gw-hero:has([data-gw-video]) .gw-hero-copy>p{color:#f5f4f7;text-shadow:0 2px 12px #0008}
.gym-web .gw-hero:has([data-gw-video]) .gw-hero-media:after{background:linear-gradient(90deg,#09090e8c,#09090e26),linear-gradient(0deg,#09090e70,transparent 45%)}
.gym-web [data-gw-video]{opacity:0;pointer-events:none}
.gym-web.gw-video-playing [data-gw-video]{opacity:1}
@media(max-width:650px){.gym-web .gw-hero:has([data-gw-video]){min-height:calc(100svh - 155px);padding:65px 7% 130px;align-items:center}.gym-web .gw-hero:has([data-gw-video]) h1{font-size:clamp(44px,11.5vw,70px)}.gym-web .gw-hero:has([data-gw-video]) .gw-logo{width:95px;bottom:25px;right:7%}.gym-web .gw-hero:has([data-gw-video]) .gw-motion{bottom:32px;left:7%;right:auto}}

/* Homepage Programs: replaceable photography, editorial scale, no app-card shell. */
.gym-web .gw-programs-home{padding:100px 6% 110px;background:#0c0c10;border-top:1px solid var(--gw-line)}
.gym-web .gw-programs-heading{display:grid;grid-template-columns:1fr 1fr;gap:20px 6%;align-items:end;margin-bottom:64px}
.gym-web .gw-programs-heading .gw-kicker{grid-column:1/-1;margin:0}
.gym-web .gw-programs-heading h2{max-width:12ch;font-size:clamp(44px,5.6vw,80px);line-height:1.02}
.gym-web .gw-programs-heading>p:last-child{justify-self:end;max-width:26ch;font-size:16px;line-height:1.6}
.gym-web .gw-programs-editorial{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:76px 40px;align-items:start}
.gym-web .gw-program-editorial{grid-column:span 5;min-width:0}
.gym-web .gw-program-editorial:nth-child(4n+1),.gym-web .gw-program-editorial:nth-child(4n){grid-column:span 7}
.gym-web .gw-program-editorial:nth-child(4n+2),.gym-web .gw-program-editorial:nth-child(4n){margin-top:90px}
.gym-web .gw-program-editorial>a{display:block;border-bottom:1px solid #45434c;padding-bottom:28px}
.gym-web .gw-program-photo{position:relative;aspect-ratio:4/3;background:#18181d;overflow:hidden}
.gym-web .gw-program-photo img:not([hidden]){position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;display:block;transition:transform .5s ease}
.gym-web .gw-program-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:26px;color:#b8b5c0;border:1px solid #34323b}
.gym-web .gw-program-placeholder>span{font:500 clamp(90px,12vw,185px)/1 Manrope,Arial,sans-serif;letter-spacing:-.07em;color:#49464f}
.gym-web .gw-program-placeholder small,.gym-web .gw-program-photo figcaption{font:10px/1.5 'DM Mono',monospace;letter-spacing:.09em;text-transform:uppercase}
.gym-web .gw-program-photo figcaption{position:absolute;bottom:14px;left:16px;background:#0c0c10dc;padding:7px 9px;color:#f2f0f4}
.gym-web .gw-program-heading{display:grid;grid-template-columns:24px 1fr 28px;gap:14px;align-items:start;margin-top:24px}
.gym-web .gw-program-heading h3{font-size:clamp(30px,3.6vw,52px);max-width:20ch;line-height:1.06;letter-spacing:-.045em;overflow-wrap:break-word}
.gym-web .gw-program-number{font:11px/1.5 'DM Mono',monospace;color:var(--gw-muted);padding-top:7px}
.gym-web .gw-program-arrow{font-size:26px;line-height:1;color:var(--gw-accent);transition:transform .25s ease}
.gym-web .gw-program-description{max-width:52ch;font-size:15px;line-height:1.75;margin:22px 0 22px 38px}
.gym-web .gw-program-discover{display:inline-block;margin-left:38px;min-height:32px;font-size:12px;line-height:2;letter-spacing:.02em;color:var(--gw-ink)}
.gym-web .gw-programs-photo-note{max-width:58ch;margin-top:64px;font:11px/1.8 'DM Mono',monospace;color:var(--gw-muted)}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.gym-web .gw-program-editorial>a:hover .gw-program-photo img{transform:scale(1.025)}.gym-web .gw-program-editorial>a:hover .gw-program-arrow{transform:translate(3px,-3px)}}
@media(max-width:800px){.gym-web .gw-programs-heading{grid-template-columns:1fr;gap:18px}.gym-web .gw-programs-heading>p:last-child{justify-self:start}.gym-web .gw-programs-editorial{grid-template-columns:minmax(0,1fr);gap:52px}.gym-web .gw-program-editorial:nth-child(n){grid-column:auto;margin-top:0}.gym-web .gw-programs-home{padding:64px 7% 75px}.gym-web .gw-programs-heading{margin-bottom:36px}.gym-web .gw-programs-heading h2{font-size:clamp(40px,11vw,62px)}.gym-web .gw-program-heading{gap:10px;grid-template-columns:20px 1fr 24px}.gym-web .gw-program-heading h3{font-size:clamp(29px,8vw,42px)}.gym-web .gw-program-description,.gym-web .gw-program-discover{margin-left:30px}.gym-web .gw-program-description{font-size:14px}.gym-web .gw-program-placeholder{padding:20px}.gym-web .gw-program-placeholder>span{font-size:110px}}

/* Current-week homepage rhythm: editorial day columns, not an embedded calendar. */
.gym-web .gw-week-snapshot{padding:100px 6% 110px;border-top:1px solid var(--gw-line);background:#111115}
.gym-web .gw-snapshot-heading{display:grid;grid-template-columns:2fr 1fr;gap:20px 6%;align-items:end;margin-bottom:60px}
.gym-web .gw-snapshot-heading .gw-kicker{grid-column:1/-1;margin:0}
.gym-web .gw-snapshot-heading h2{max-width:17ch;font-size:clamp(42px,5.3vw,76px);line-height:1.04;text-wrap:balance}
.gym-web .gw-snapshot-range{font:12px/1.8 'DM Mono',monospace;max-width:28ch;justify-self:end}
.gym-web .gw-snapshot-days{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:56px 48px}
.gym-web .gw-snapshot-day{min-width:0}
.gym-web .gw-snapshot-day header{border-top:2px solid var(--gw-ink);padding:18px 0 22px;display:flex;flex-wrap:wrap;gap:10px 16px;align-items:baseline;justify-content:space-between}
.gym-web .gw-snapshot-day h3{font-size:28px;letter-spacing:-.035em;text-transform:capitalize}
.gym-web .gw-snapshot-day header time{font:11px/1.5 'DM Mono',monospace;color:var(--gw-muted)}
.gym-web .gw-snapshot-day ol{list-style:none;margin:0;padding:0}
.gym-web .gw-snapshot-class{border-top:1px solid var(--gw-line);padding:20px 0;overflow-wrap:anywhere}
.gym-web .gw-snapshot-time{font:14px/1.6 'DM Mono',monospace;color:var(--gw-accent);font-variant-numeric:tabular-nums}
.gym-web .gw-snapshot-class h4{font-size:20px;line-height:1.3;letter-spacing:-.02em;margin:10px 0 8px}
.gym-web .gw-snapshot-program{font-size:12px;line-height:1.6}
.gym-web .gw-snapshot-coach,.gym-web .gw-snapshot-location{font-size:12px;line-height:1.6}
.gym-web .gw-snapshot-class .gw-snapshot-status{font:11px/1.8 'DM Mono',monospace;color:#e1d1ff;margin:0 0 8px}
.gym-web .gw-snapshot-class[data-status=cancelled] h4{text-decoration:line-through;text-decoration-thickness:1px}
.gym-web .gw-snapshot-class[data-status=cancelled] .gw-snapshot-time{color:var(--gw-muted)}
.gym-web .gw-snapshot-class[data-status=cancelled] .gw-snapshot-status{color:#ffbdc4}
.gym-web .gw-snapshot-footer{margin-top:52px;display:flex;justify-content:flex-end}
.gym-web .gw-snapshot-footer .gw-button{min-height:48px}
@media(max-width:1000px){.gym-web .gw-snapshot-days{grid-template-columns:repeat(2,minmax(0,1fr));gap:42px 32px}}
@media(max-width:650px){.gym-web .gw-week-snapshot{padding:64px 7% 75px}.gym-web .gw-snapshot-heading{grid-template-columns:1fr;gap:20px;margin-bottom:36px}.gym-web .gw-snapshot-heading h2{font-size:clamp(38px,10vw,62px)}.gym-web .gw-snapshot-range{justify-self:start;max-width:none;font-size:11px}.gym-web .gw-snapshot-days{grid-template-columns:minmax(0,1fr);gap:34px}.gym-web .gw-snapshot-day h3{font-size:26px}.gym-web .gw-snapshot-class{padding:18px 0}.gym-web .gw-snapshot-footer{justify-content:flex-start;margin-top:36px}.gym-web .gw-snapshot-footer .gw-button{font-size:12px}}

/* Product accent emphasis uses the same token without changing layout or motion. */
@media(hover:hover){.gym-web .gw-button:hover,.gym-web .gw-week-controls button:hover{border-color:var(--gw-accent)}.gym-web .gw-header nav a:hover,.gym-web .gw-program-editorial>a:hover .gw-program-discover{color:var(--gw-accent)}}

.gym-web .gw-week-controls input:focus-visible{outline:3px solid var(--gw-accent);outline-offset:5px}

/* Informational pricing: editorial groups, not checkout cards. */
.gym-web .gw-home-pricing{padding:100px 6% 110px;border-top:1px solid var(--gw-line);background:#0c0c10}
.gym-web .gw-price-heading{display:grid;grid-template-columns:2fr 1fr;gap:20px 6%;align-items:end;margin-bottom:56px}
.gym-web .gw-price-heading .gw-kicker{grid-column:1/-1;margin:0}
.gym-web .gw-price-heading h2{font-size:clamp(42px,5.3vw,76px);max-width:14ch;line-height:1.04}
.gym-web .gw-price-heading>p:last-child{font-size:14px;max-width:28ch;justify-self:end}
.gym-web .gw-monthly-prices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}
.gym-web .gw-monthly-option{border-top:1px solid var(--gw-line);padding:26px 0 22px;min-width:0}
.gym-web .gw-monthly-option h3{font-size:clamp(25px,2.4vw,35px);line-height:1.2;letter-spacing:-.035em;min-height:2.4em;max-width:18ch;overflow-wrap:break-word}
.gym-web .gw-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 12px;margin-top:24px;line-height:1.1}
.gym-web .gw-price-value{font-size:clamp(44px,5vw,72px);font-weight:650;line-height:1.1;letter-spacing:-.055em;color:var(--gw-ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.gym-web .gw-price-period{font:12px/1.6 'DM Mono',monospace;white-space:nowrap;color:var(--gw-accent)}
.gym-web .gw-price-home-footer{display:grid;grid-template-columns:2fr 1fr;gap:42px;align-items:end;margin-top:48px}
.gym-web .gw-price-home-footer>.gw-button{justify-self:end;white-space:nowrap}
.gym-web .gw-price-initiative{max-width:70ch;border-left:2px solid var(--gw-accent);padding-left:22px}
.gym-web .gw-price-initiative h3{font-size:22px;line-height:1.3;letter-spacing:-.025em}
.gym-web .gw-price-initiative>p{font-size:15px;line-height:1.7;margin-top:14px}
.gym-web .gw-price-initiative .gw-initiative-note{font-size:12px;line-height:1.6;margin-top:12px}
.gym-web .gw-pricing-page{max-width:1500px;margin:auto}
.gym-web .gw-pricing-page .gw-price-group{margin-top:80px}
.gym-web .gw-pricing-page .gw-price-group h2{margin:0 0 32px;font-size:clamp(30px,3.4vw,48px);line-height:1.15;max-width:none}
.gym-web .gw-access-prices{margin:0;padding:0}
.gym-web .gw-access-price{display:grid;grid-template-columns:1fr 1fr;gap:24px;border-top:1px solid var(--gw-line);padding:26px 0;align-items:baseline}
.gym-web .gw-access-price dt{font-size:clamp(22px,2.5vw,32px);line-height:1.25;letter-spacing:-.03em;overflow-wrap:anywhere}
.gym-web .gw-access-price dd{margin:0;min-width:0}
.gym-web .gw-access-price .gw-price{margin:0}
.gym-web .gw-access-price .gw-price-value{font-size:clamp(36px,4vw,52px)}
.gym-web .gw-pack-expiry{font-size:14px;line-height:1.6;margin-top:12px}
.gym-web .gw-pricing-contact{margin-top:64px}
@media(max-width:900px){.gym-web .gw-price-heading{grid-template-columns:1fr}.gym-web .gw-price-heading>p:last-child{justify-self:start;max-width:none}.gym-web .gw-monthly-prices{gap:22px}.gym-web .gw-price-home-footer{grid-template-columns:1fr}.gym-web .gw-price-home-footer>.gw-button{justify-self:start}}
@media(max-width:650px){.gym-web .gw-home-pricing{padding:64px 7% 75px}.gym-web .gw-price-heading{margin-bottom:32px}.gym-web .gw-price-heading h2{font-size:clamp(38px,10vw,62px)}.gym-web .gw-monthly-prices{grid-template-columns:1fr;gap:14px}.gym-web .gw-monthly-option h3{font-size:28px;min-height:0}.gym-web .gw-price-value{font-size:56px}.gym-web .gw-price-home-footer{margin-top:28px;gap:32px}.gym-web .gw-access-price{grid-template-columns:1fr;gap:16px}.gym-web .gw-access-price .gw-price-value{font-size:44px}.gym-web .gw-pricing-page .gw-price-group{margin-top:56px}.gym-web .gw-pricing-page .gw-price-group h2{font-size:30px;margin-bottom:26px}}

/* Public roster: editorial portraits and text, independent of app permissions. */
.gym-web .gw-home-team{padding:100px 6% 110px;border-top:1px solid var(--gw-line)}
.gym-web .gw-team-heading{margin-bottom:56px;max-width:780px}
.gym-web .gw-team-heading h2{font-size:clamp(44px,6vw,86px);line-height:1.04}
.gym-web .gw-team-selected{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}
.gym-web .gw-staff-feature{min-width:0}
.gym-web .gw-staff-visual{position:relative;aspect-ratio:4/5;overflow:hidden;margin:0;background:#141419;border-top:1px solid #494354;display:grid;place-items:center}
.gym-web .gw-staff-visual:after{content:'';position:absolute;bottom:22px;left:22px;width:34px;border-bottom:2px solid var(--gw-accent);pointer-events:none}
.gym-web .gw-staff-monogram{font-size:clamp(110px,15vw,230px);font-weight:600;line-height:1;letter-spacing:-.08em;color:#494954;user-select:none}
.gym-web .gw-staff-visual .gw-portrait{position:absolute;inset:0;width:100%;height:100%;max-width:none;margin:0;object-fit:cover;object-position:center;aspect-ratio:auto}
.gym-web .gw-staff-visual .gw-portrait[hidden]{display:none}
.gym-web .gw-staff-feature h3{font-size:clamp(34px,3.8vw,54px);line-height:1.12;overflow-wrap:anywhere;margin-top:26px}
.gym-web .gw-staff-title{font-size:14px;line-height:1.7;color:var(--gw-ink);margin-top:14px;max-width:42ch}
.gym-web :is(.gw-staff-feature,.gw-staff-content) .gw-chips{gap:6px 16px}
.gym-web :is(.gw-staff-feature,.gw-staff-content) .gw-chips span{border:0;padding:0;font-size:11px;line-height:1.8;color:var(--gw-muted)}
.gym-web :is(.gw-staff-feature,.gw-staff-content) .gw-chips span:before{content:'·';margin-right:7px;color:var(--gw-accent)}
.gym-web .gw-staff-summary{font-size:15px;line-height:1.75;margin-top:20px;max-width:46ch}
.gym-web .gw-team-home-footer{margin-top:44px}
.gym-web .gw-team-page{max-width:1500px;margin:auto}
.gym-web .gw-team-page .gw-team{display:block;margin-top:80px}
.gym-web .gw-team-page .gw-person{display:grid;grid-template-columns:minmax(180px,280px) minmax(0,1fr);gap:7%;padding:48px 0;border-top:1px solid var(--gw-line);align-items:start}
.gym-web .gw-team-page .gw-person:nth-child(even){grid-template-columns:minmax(0,1fr) minmax(180px,280px)}
.gym-web .gw-team-page .gw-person:nth-child(even) .gw-staff-visual{grid-column:2;grid-row:1}
.gym-web .gw-team-page .gw-person:nth-child(even) .gw-staff-content{grid-column:1;grid-row:1}
.gym-web .gw-team-page .gw-staff-content{min-width:0;padding-top:6px}
.gym-web .gw-team-page .gw-staff-content h2{font-size:clamp(42px,5.5vw,76px);line-height:1.1;max-width:none;overflow-wrap:anywhere}
.gym-web .gw-team-page .gw-person .gw-staff-title{color:var(--gw-ink);font-size:16px;margin-top:18px}
.gym-web .gw-team-page .gw-person .gw-staff-summary{font-size:16px;margin-top:24px}
.gym-web .gw-team-page .gw-rank{margin-top:16px;font-size:10px;color:var(--gw-muted)}
.gym-web .gw-team-page .gw-bio p{max-width:65ch;font-size:15px}
.gym-web .gw-team-page .gw-staff-monogram{font-size:170px}
@media(max-width:900px){.gym-web .gw-team-selected{gap:24px}.gym-web .gw-team-page .gw-person,.gym-web .gw-team-page .gw-person:nth-child(even){grid-template-columns:200px minmax(0,1fr);gap:6%}.gym-web .gw-team-page .gw-person:nth-child(even) .gw-staff-visual{grid-column:1}.gym-web .gw-team-page .gw-person:nth-child(even) .gw-staff-content{grid-column:2}}
@media(max-width:650px){.gym-web .gw-home-team{padding:64px 7% 75px}.gym-web .gw-team-heading{margin-bottom:36px}.gym-web .gw-team-heading h2{font-size:clamp(38px,10vw,62px)}.gym-web .gw-team-selected{grid-template-columns:1fr;gap:44px}.gym-web .gw-staff-feature .gw-staff-visual{aspect-ratio:5/4}.gym-web .gw-staff-monogram{font-size:160px}.gym-web .gw-staff-feature h3{font-size:42px;margin-top:24px}.gym-web .gw-team-page .gw-team{margin-top:48px}.gym-web .gw-team-page .gw-person,.gym-web .gw-team-page .gw-person:nth-child(even){grid-template-columns:1fr;gap:24px;padding:34px 0}.gym-web .gw-team-page .gw-person:nth-child(even) .gw-staff-visual,.gym-web .gw-team-page .gw-person:nth-child(even) .gw-staff-content{grid-column:auto;grid-row:auto}.gym-web .gw-team-page .gw-staff-visual{aspect-ratio:5/4}.gym-web .gw-team-page .gw-staff-content h2{font-size:clamp(40px,12vw,64px)}}

/* Approved source-photo framing, independent of the Team layout. */
.gym-web [data-staff-portrait=staff-thierry] .gw-portrait,.gym-web [data-staff-portrait=staff-sarah] .gw-portrait{object-position:50% 20%}
.gym-web [data-staff-portrait=staff-kyle] .gw-portrait{object-position:50% 10%}
.gym-web [data-staff-portrait=staff-frederick] .gw-portrait{object-position:50% 55%}
.gym-web [data-staff-portrait=staff-nicolas] .gw-portrait{object-position:50% 40%}
.gym-web [data-staff-portrait=staff-hugo] .gw-portrait{object-position:50% 25%}
.gym-web [data-staff-portrait=staff-levis] .gw-portrait{object-position:0 0;transform:scale(1.6);transform-origin:0 45%}


/* First Class is a public contact handoff, separate from future Gym trial/People workflows. */
.gym-web .gw-first-home{padding:100px 6% 110px;border-top:1px solid var(--gw-line);background:#0c0c10}
.gym-web .gw-first-home>.gw-kicker{margin-bottom:44px}
.gym-web .gw-first-closing{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:end;gap:8%}
.gym-web .gw-first-closing h2{font-size:clamp(56px,7.5vw,108px);line-height:.98;max-width:12ch}
.gym-web .gw-first-invite>p{font-size:17px;max-width:42ch}
.gym-web .gw-first-invite .gw-button{margin-top:32px}
.gym-web .gw-first-phone{display:block;width:fit-content;font-size:12px;line-height:1.8;margin-top:22px;padding-block:10px;color:var(--gw-muted)}
.gym-web .gw-first-page{max-width:1500px;margin:auto}
.gym-web .gw-first-head{max-width:920px}
.gym-web .gw-first-head h1{max-width:15ch}
.gym-web .gw-first-head .gw-lead{max-width:45ch}
.gym-web .gw-first-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:8%;margin-top:72px;align-items:start}
.gym-web .gw-first-step{display:grid;grid-template-columns:30px minmax(0,1fr);gap:18px;border-top:1px solid var(--gw-line);padding:30px 0 38px}
.gym-web .gw-first-index{font:11px/1.8 'DM Mono',monospace;color:var(--gw-accent);padding-top:5px}
.gym-web .gw-first-step h2{font-size:clamp(28px,3vw,40px);line-height:1.15;max-width:none;margin:0}
.gym-web .gw-first-step p{font-size:15px;line-height:1.8;margin-top:20px;max-width:50ch}
.gym-web .gw-first-step .gw-button{margin-top:24px}
.gym-web .gw-first-programs{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-direction:column;align-items:start}
.gym-web .gw-first-programs a{display:inline-flex;align-items:center;gap:16px;min-height:44px;font-size:14px;line-height:1.6}
.gym-web .gw-first-programs .gw-arrow{color:var(--gw-accent)}
.gym-web .gw-first-contact{border-top:2px solid var(--gw-accent);padding-top:30px;min-width:0}
.gym-web .gw-first-contact h2{font-size:clamp(32px,3.8vw,54px);line-height:1.08;margin:0;max-width:16ch}
.gym-web .gw-first-methods{display:flex;flex-direction:column;gap:26px;margin-top:34px}
.gym-web .gw-contact-label{font:11px/1.7 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.1em}
.gym-web .gw-first-number{display:block;width:fit-content;font-size:clamp(24px,2.5vw,34px);line-height:1.5;letter-spacing:-.045em;font-variant-numeric:tabular-nums;padding-block:10px}
.gym-web .gw-first-number .gw-arrow{color:var(--gw-accent);font-size:18px}
.gym-web .gw-first-email{display:block;width:fit-content;font-size:17px;line-height:1.7;padding-block:10px;overflow-wrap:anywhere}
.gym-web .gw-first-methods .gw-first-pending{font-size:12px}
.gym-web .gw-first-location{border-top:1px solid var(--gw-line);padding-top:28px;margin-top:38px}
.gym-web .gw-first-location h3{font-size:22px;line-height:1.3}
.gym-web .gw-first-location address{font-size:14px;line-height:1.8;margin-top:18px;max-width:40ch}
.gym-web .gw-first-location address span{display:block}
.gym-web .gw-first-pricing{border-top:1px solid var(--gw-line);margin-top:48px;padding-top:32px;display:flex;flex-wrap:wrap;gap:22px 48px;justify-content:space-between;align-items:center}
.gym-web .gw-first-pricing p{max-width:40ch;font-size:15px}
@media(hover:hover){.gym-web :is(.gw-first-phone,.gw-first-number,.gw-first-email,.gw-first-programs a):hover{color:var(--gw-accent)}}
@media(max-width:900px){.gym-web .gw-first-closing{grid-template-columns:1fr;gap:32px}.gym-web .gw-first-grid{grid-template-columns:1fr;gap:32px}.gym-web .gw-first-contact{max-width:600px}}
@media(max-width:650px){.gym-web .gw-first-home{padding:64px 7% 75px}.gym-web .gw-first-home>.gw-kicker{margin-bottom:32px}.gym-web .gw-first-closing h2{font-size:clamp(46px,13vw,72px)}.gym-web .gw-first-invite>p{font-size:16px}.gym-web .gw-first-invite .gw-button{margin-top:26px}.gym-web .gw-first-grid{margin-top:48px}.gym-web .gw-first-step{grid-template-columns:22px minmax(0,1fr);gap:12px;padding-block:26px 32px}.gym-web .gw-first-step h2{font-size:28px}.gym-web .gw-first-step p{font-size:14px}.gym-web .gw-first-contact h2{font-size:38px}.gym-web .gw-first-number{font-size:27px;overflow-wrap:anywhere}.gym-web .gw-first-pricing{margin-top:40px}}

.gym-web .gw-first-gear{margin:24px 0 0;padding:0}
.gym-web .gw-first-gear>div{padding:20px 0;border-top:1px solid var(--gw-line)}
.gym-web .gw-first-gear dt{font-size:18px;font-weight:650;letter-spacing:-.02em;color:var(--gw-ink)}
.gym-web .gw-first-gear dd{margin:0}
.gym-web .gw-first-gear p{margin-top:10px;font-size:14px}

/* Shared Public Web chrome and accessibility polish; approved sections retain their geometry. */
.gym-web .gw-navigation{flex:1;min-width:0}.gym-web .gw-navigation>summary{display:none}.gym-web .gw-locales a{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.gym-web .gw-header nav a{min-height:44px;display:flex;align-items:center}.gym-web .gw-preview a{min-height:44px;display:flex;align-items:center}.gym-web .gw-program-list h2{margin:0;font-size:clamp(23px,3vw,42px);font-weight:650;letter-spacing:-.04em;line-height:1.2;max-width:none}.gym-web .gw-program-list h2 span{color:var(--gw-accent);font-weight:400}.gym-web summary:focus-visible{outline:3px solid var(--gw-accent);outline-offset:5px}
.gym-web .gw-footer{display:grid;grid-template-columns:1fr 2fr;align-items:start;gap:16px 40px}.gym-web .gw-footer-brand{font-family:'DM Sans',sans-serif;font-size:15px;font-weight:800}.gym-web .gw-footer nav{display:flex;flex-wrap:wrap;gap:0 24px}.gym-web .gw-footer a{min-height:44px;display:flex;align-items:center;overflow-wrap:anywhere}.gym-web .gw-footer-contact{display:flex;flex-wrap:wrap;gap:0 24px}.gym-web .gw-footer-credit{align-self:center}.gym-web .gw-footer a:hover{color:var(--gw-accent)}
@media(max-width:1050px){.gym-web .gw-navigation{order:3;flex-basis:100%}.gym-web .gw-navigation>summary{display:flex;justify-content:space-between;align-items:center;min-height:44px;border-top:1px solid var(--gw-line);cursor:pointer;font:12px 'DM Mono',monospace}.gym-web .gw-navigation[open]>summary span{transform:rotate(45deg)}.gym-web .gw-navigation nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;padding-block:8px}.gym-web .gw-navigation:not([open])>nav{display:none}}
@media(max-width:650px){.gym-web .gw-footer{grid-template-columns:1fr;padding:32px 7%;gap:12px}.gym-web .gw-footer nav{gap:0 20px}.gym-web .gw-footer-brand{font-size:13px}.gym-web .gw-footer-contact{display:block}}
.gym-web .gw-week-controls h2{margin:0;max-width:none;font-size:20px;font-weight:650;letter-spacing:-.02em;line-height:1.2}
@media(max-width:650px){.gym-web .gw-header{padding-inline:7%}}

/* Shared equipment lists: existing First Class typography and rhythm, native list semantics. */
.gym-web .gw-first-gear ul{margin:14px 0 0;padding-left:20px;font-size:14px;line-height:1.8;max-width:50ch}
.gym-web .gw-first-gear li+li{margin-top:6px}

/* Coach base-category accents, restrained for the dark public/Owner timetable.
   Palette follows theme.css and schedule-categories.css; no private lesson data. */
.gym-web .gw-timetable .gw-slot{--gw-slot-accent:#a5a7b6;border-left:3px solid var(--gw-slot-accent);background:linear-gradient(100deg,color-mix(in srgb,var(--gw-slot-accent) 5%,transparent),transparent 65%),#201e27}
.gym-web .gw-timetable .gw-slot[data-category=kids]{--gw-slot-accent:#a8ff3e}
.gym-web .gw-timetable .gw-slot[data-category=foundational]{--gw-slot-accent:#38a8ff}
.gym-web .gw-timetable .gw-slot[data-category=focus]{--gw-slot-accent:#d8d0ef}
.gym-web .gw-timetable .gw-slot[data-status=cancelled]{--gw-slot-accent:#9a5660;background:#262327}
.gym-web .gw-timetable .gw-slot[data-status=open_mat]{--gw-slot-accent:#487f9c}
.gym-web .gw-timetable .gw-slot[data-status=substitute]{--gw-slot-accent:#7d6bb0}

.gym-web .gw-timetable .gw-slot[data-category=kickboxing]{--gw-slot-accent:#ff9a4d}
