/* One motion language: quick response, gentle arrival, native scrolling. */
:root{--motion-ease:cubic-bezier(.22,1,.36,1);--motion-return:cubic-bezier(.2,.8,.3,1.15)}
.hero-line{display:block}
.hero-copy{z-index:12}
.gym-entrance{pointer-events:none}
.entry-skip{pointer-events:auto}
.gym-entry-pending .hero-copy,.gym-entering .hero-copy{opacity:1!important;animation:none!important;transform:none!important;pointer-events:none}
.gym-entry-pending .hero-copy>:not(.trial-button),.gym-entering .hero-copy>:not(.trial-button){visibility:hidden}
.gym-entry-pending .hero-copy>.trial-button,.gym-entering .hero-copy>.trial-button{pointer-events:auto;visibility:visible;box-shadow:0 5px 0 #b5a900,0 8px 30px #082d2630}
.gym-entering .gym-doorway,.gym-entering .gym-entrance,.gym-entering .entry-thought,.gym-entering .entry-welcome,.gym-entering .entry-small{animation-duration:1500ms}
.gym-entering .hero-photo{animation-duration:550ms;animation-delay:950ms}
.gym-entering .hero-bottom{animation-duration:350ms;animation-delay:1150ms}
.trial-button,.entry-replay,.entry-skip,.benefit-columns a,.family-support a,summary{touch-action:manipulation;transition:transform 220ms var(--motion-return),box-shadow 200ms ease,background-color 180ms ease}
.trial-button:active,.entry-replay:active,.entry-skip:active{transform:scale(.97);transition-duration:100ms}
.trial-button:focus-visible{outline:3px solid #0072bb;outline-offset:5px}
.benefit-columns article{transition:transform 220ms var(--motion-ease),background-color 220ms ease}
.benefit-columns article:active{transform:translateY(2px)}
@media(hover:hover) and (pointer:fine){.benefit-columns article:hover{transform:translateY(-4px)}.family-support-image:hover{transform:translateY(-3px);box-shadow:0 12px 30px #123f3617}}
.site-header{transition:box-shadow 180ms ease,background-color 180ms ease}
.site-header.is-scrolled{background:#fafaf1f5;box-shadow:0 3px 20px #123c3112;backdrop-filter:blur(10px)}
.site-header nav a:after{transform:scaleX(0);transform-origin:left;transition:transform 200ms var(--motion-ease)}
.site-header nav a[aria-current=true]:after,.site-header nav a:hover:after{transform:scaleX(1)}
.motion-number{font-variant-numeric:tabular-nums;white-space:nowrap}
.motion-number .number-visual{display:inline-flex;overflow:hidden;vertical-align:bottom;font:inherit;color:inherit;line-height:1.2;margin:0}
.motion-number .number-digit{display:inline-block;font:inherit;color:inherit;margin:0}
.motion-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.motion-image{overflow:hidden}
.hero-audience{font-size:16px}.hero-audience strong{font-size:17px}
.site-header nav,.small-label,.per-lesson>span,.schedule-band p,.annual-prices dt,.annual-total span,.payment-details summary,.family-note .note{font-size:14px}
.payment-content p,.steps p,.faq-items details>div,.family-detail>p,.coach-introduction>p,.trial-insurance p{font-size:16px;line-height:1.95}
.faq-items summary{font-size:16px;line-height:1.75;min-height:64px}
.plus{display:inline-block;transition:transform 220ms var(--motion-ease)}
details[open] .plus{transform:rotate(45deg)}
.menu-toggle{display:none}
.family-viewer{border:0;padding:24px;background:var(--cream);color:var(--ink);width:min(1280px,94vw);max-width:94vw;max-height:94svh;overflow:auto;margin:auto;box-shadow:0 20px 80px #001c2270}
.family-viewer::backdrop{background:#052e24dc;backdrop-filter:blur(5px)}
.family-viewer[open]::backdrop{animation:viewerBackdrop 250ms ease both}
.viewer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}
.viewer-toolbar h2{font-size:20px;line-height:1.5;letter-spacing:0;margin:0}
.viewer-close,.viewer-zoom{font:inherit;font-size:14px;font-weight:700;min-height:44px;border:1px solid var(--green);color:var(--green);background:transparent;padding:8px 16px;cursor:pointer;touch-action:manipulation;transition:transform 220ms var(--motion-return),background-color 180ms}
.viewer-close span{font-size:24px;line-height:1;margin-left:10px;vertical-align:middle}
.viewer-close:active,.viewer-zoom:active,.menu-toggle:active{transform:scale(.97);transition-duration:100ms}
.viewer-stage{overflow:auto;max-height:calc(94svh - 175px);overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom;scrollbar-color:#39765a #e7e9df;background:#e8ece0}
.viewer-stage img{display:block;width:100%;max-width:none;height:auto;transform-origin:center}
.viewer-stage.is-zoomed img{width:max(1400px,160%)}
.viewer-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:16px}
.viewer-actions a{font-size:14px;text-underline-offset:4px;padding:10px 0}
.viewer-status{font-size:13px;line-height:1.6;margin-top:8px}
.viewer-status:empty{display:none}
@keyframes viewerBackdrop{from{background:#052e2400}to{background:#052e24dc}}
@media(max-width:700px){
 .hero-audience{font-size:15px}.hero-audience strong{font-size:16px}
 .hero-copy .cta-note{font-size:12px}.hero-bottom .entry-replay,.hero-bottom a{font-size:12px;min-height:44px;align-items:center}
 .hero-bottom-actions{gap:16px}.entry-small{font-size:12px}.entry-skip{font-size:12px}
 .bring-list,.schedule-band p,.annual-prices dt,.annual-total span,.payment-details summary,.trial-decisions,.form-hint,.last-copy .form-hint{font-size:14px}
 .coach-pictures figcaption strong{font-size:17px}.coach-pictures figcaption span{font-size:12px}
 .coach-message p:not(:first-child){font-size:15px;line-height:1.9}
 .enhanced-menu .menu-toggle{display:inline-flex;align-items:center;gap:10px;justify-content:center;border:1px solid var(--line);background:transparent;padding:8px 10px;min-height:44px;color:var(--green);font:inherit;font-size:13px;white-space:nowrap;cursor:pointer}
 .menu-toggle i{position:relative;display:block;width:16px;height:12px;border-top:2px solid currentColor;border-bottom:2px solid currentColor;transition:transform 220ms, border-color 220ms}
 .menu-toggle i:after{content:'';position:absolute;inset:3px 0 auto;height:2px;background:currentColor;transition:transform 220ms}
 .menu-toggle[aria-expanded=true] i{border-bottom-color:transparent;transform:translateY(4px) rotate(45deg)}
 .menu-toggle[aria-expanded=true] i:after{transform:translateY(-5px) rotate(90deg)}
 .enhanced-menu .site-header{gap:10px;padding-inline:16px}
 .enhanced-menu .school-brand{width:clamp(172px,52vw,215px)}
 .enhanced-menu .site-header nav{display:none}
 .enhanced-menu .site-header.nav-open nav{display:flex;position:absolute;top:calc(100% + 8px);left:16px;right:16px;padding:16px 22px 20px;background:var(--cream);box-shadow:0 18px 36px #052e2433;border:1px solid var(--line);flex-direction:column;gap:4px}
 .enhanced-menu .site-header.nav-open nav a{display:block;font-size:17px;padding:14px 0;border-bottom:1px solid var(--line);min-height:50px}
 .family-viewer{padding:16px;width:96vw;max-width:96vw;max-height:94svh}
 .viewer-toolbar{gap:10px}.viewer-toolbar h2{font-size:16px}.viewer-close{padding:8px 10px;font-size:13px}.viewer-close span{margin-left:4px}
 .viewer-stage{max-height:calc(94svh - 180px)}.viewer-stage img{min-height:120px;object-fit:contain}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.number-digit{transform:none!important}.gym-entry-pending .hero-copy>:not(.trial-button),.gym-entering .hero-copy>:not(.trial-button){visibility:visible}.benefit-columns article:hover,.family-support-image:hover{transform:none}}
