/* Intrinsic sizing keeps content usable between breakpoints and at text zoom. */
:root{--gutter:clamp(1.25rem,5vw,7rem)}
body{overflow-wrap:break-word}
.header{height:auto;min-height:100px;padding-block:20px}
.brand,.header-call,.menu-toggle{flex-shrink:0}
.header nav{flex-wrap:wrap;justify-content:center;column-gap:clamp(18px,2.5vw,34px);row-gap:8px}
.header nav a{display:inline-flex;align-items:center;min-height:44px}
.hero,.studio,.approach,.faq,.contact,.trial{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.hero{grid-template-columns:minmax(0,47fr) minmax(0,53fr)}
.hero-copy,.studio-copy,.approach-copy,.trial-right,.address,.questions,.team-name,.class-card{min-width:0}
h1{font-size:clamp(2.8rem,5.25vw,5.25rem);letter-spacing:-.05em;line-height:1.12}
h2{font-size:clamp(2.2rem,3.7vw,3.625rem);letter-spacing:-.04em}
.intro,.approach-copy p,.studio-copy>p:not(.eyebrow),.class-card p,.team-list p,details p{font-size:1rem}
.eyebrow,.hero-bottom,.photo-top,.photo-bottom,.hero-visual figcaption,.studio figcaption,.class-number span,.class-meta,.team-name>span,.credential,.stats>div>span,.trial-fine,footer>div>span{font-size:.75rem}
.hero-bottom{letter-spacing:1px;gap:15px}
.hero-bottom a{flex:0 0 44px;width:44px;height:44px}
.dot,.trust-strip i,.note-icon,summary>span{flex-shrink:0}
.hero-note{font-size:.875rem}
.button{max-width:100%;font-size:.875rem;gap:clamp(16px,3vw,42px)}
.button>span,.text-link>span,.phone-number>span{flex-shrink:0}
.text-link,.class-card>a{min-height:44px;font-size:.875rem;max-width:100%}
.trust-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));font-size:.875rem;gap:20px}
.trust-strip>span{justify-content:center;min-width:0}
.class-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.class-card{padding:26px clamp(18px,1.8vw,25px)}
.class-number{gap:12px;flex-wrap:wrap}
.class-number span{letter-spacing:1px}
.class-meta{gap:8px}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.stats strong{font-size:clamp(2rem,3.2vw,3rem);letter-spacing:-.04em}
.amenities{font-size:.875rem}
.team-list article{grid-template-columns:74px minmax(0,1.3fr) minmax(0,1fr) auto}
.team-name h3{font-size:clamp(1.5rem,2.3vw,1.8rem);line-height:1.3}
.team-name>span{letter-spacing:1px}
.trial h2{font-size:clamp(3.25rem,5.4vw,4.625rem)}
.phone-number{font-size:clamp(1.5rem,3vw,2.625rem);letter-spacing:-.045em;max-width:100%;gap:clamp(12px,2vw,30px);flex-wrap:wrap}
.address address{font-size:clamp(1rem,1.6vw,1.25rem)}
footer{flex-wrap:wrap}
footer>div{min-width:0}
.hero-visual figcaption,.studio figcaption{max-width:calc(100% - 30px)}
@media(min-width:1600px){
 .header,.hero,.trust-strip,.studio,.trial,footer{max-width:1800px;margin-inline:auto}
 .hero-copy{padding-top:85px;padding-bottom:35px}
 .hero,.hero-visual{min-height:780px}
}
@media(max-width:1199px){
 .class-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .class-card{min-height:320px;padding:26px}
 .class-number{margin-bottom:32px}
 .hero-copy{padding:50px 7% 25px 9%}
 .hero,.hero-visual{min-height:640px}
 .section{padding:75px 6%}
 .studio-copy{padding:55px 8%}
 .studio figure{min-height:580px}
 .team-list article{grid-template-columns:64px minmax(0,1.2fr) minmax(0,1fr);gap:20px}
 .team-initial{width:60px;height:60px}
 .credential{grid-column:2;justify-self:start}
 .trial{padding:65px 7%;gap:35px}
 .faq,.contact{gap:35px}
}
@media(max-width:959px){
 .header{min-height:84px;padding:15px var(--gutter);gap:20px}
 .brand{font-size:40px}
 .header-call{margin-left:auto;gap:20px}
 .menu-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:0;background:none;width:44px;height:44px;padding:10px}
 .menu-toggle span{width:24px;height:2px;background:var(--ink);transition:transform .2s}
 .menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}
 .menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}
 .header nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);padding:18px var(--gutter);border-bottom:1px solid var(--line);flex-direction:column;gap:4px;font-size:1.125rem;max-height:calc(100dvh - 100px);overflow-y:auto}
 .header nav.open{display:flex}
 .header nav a{padding-block:8px}
 .trust-strip{grid-template-columns:repeat(2,minmax(0,1fr));padding:22px var(--gutter)}
 .trust-strip>span{justify-content:flex-start}
 .hero-copy{padding:42px 7% 25px 9%}
 h1{font-size:clamp(2.5rem,5.4vw,3.4rem)}
 .eyebrow{letter-spacing:1px}
 .hero-note{align-items:flex-start}
 .desktop{display:none}
 .approach,.faq{grid-template-columns:1fr;gap:30px}
 .approach-copy{max-width:680px;padding-top:0}
 .studio{grid-template-columns:1fr}
 .studio figure{min-height:0;aspect-ratio:16/9}
 .studio-copy{padding:55px var(--gutter)}
 .stats{max-width:550px}
 .stats strong{font-size:3rem}
 .section-heading>p{max-width:40%}
}
@media(max-width:699px){
 html{scroll-padding-top:24px;scroll-padding-bottom:110px}
 .header{gap:12px}
 .header-call{font-size:.875rem;gap:12px}
 .header-call span{font-size:22px}
 .hero{display:flex;flex-direction:column;min-height:0}
 .hero-copy{padding:38px var(--gutter) 24px}
 h1{font-size:clamp(2.6rem,9.5vw,4rem);margin:26px 0 22px}
 .hero-bottom{padding-top:30px}
 .hero-visual{min-height:0;aspect-ratio:4/3;width:100%}
 .hero-visual>img{object-position:50% center}
 .photo-top,.photo-bottom{left:20px;right:20px}
 .photo-top{top:20px;letter-spacing:1px}
 .photo-bottom{bottom:42px;letter-spacing:1px}
 .round-mark{width:44px;height:44px;font-size:30px;flex-shrink:0}
 .trust-strip{gap:18px}
 .trust-strip span{gap:9px}
 .trust-strip i{font-size:20px}
 .section{padding:60px var(--gutter)}
 h2{font-size:clamp(2rem,7vw,2.8rem)}
 .section-heading{display:block;margin-bottom:30px}
 .section-heading>p{margin-top:22px;max-width:none;font-size:1rem}
 .class-grid{grid-template-columns:1fr;gap:16px}
 .class-card{min-height:0;padding:26px}
 .class-card h3{font-size:1.65rem}
 .class-card p{max-width:45ch}
 .class-meta{margin-bottom:25px}
 .team-list article{grid-template-columns:55px minmax(0,1fr);gap:12px 16px;padding:25px 0}
 .team-initial{height:50px;width:50px;font-size:30px}
 .team-list p,.credential{grid-column:2}
 .team-list p{margin:0}
 .trial,.contact{grid-template-columns:1fr;gap:28px}
 .trial{padding:55px var(--gutter)}
 .trial-right{padding-top:0}
 .trial h2{font-size:clamp(3rem,13vw,4rem)}
 .trial-right p{font-size:1rem}
 .trial-fine{max-width:40ch}
 .contact{gap:20px}
 .address{padding-top:10px}
 .address address{font-size:1.125rem}
 .phone-number{font-size:clamp(1.6rem,7vw,2.3rem)}
 .questions{padding:0}
 summary{font-size:1rem;gap:16px}
 details p{padding-right:0}
 footer{padding:40px var(--gutter) calc(125px + env(safe-area-inset-bottom));gap:32px}
 .footer-brand{font-size:60px}
 footer>div{text-align:left;font-size:.875rem}
 footer>a:last-child{min-height:44px;display:flex;align-items:center;font-size:.875rem}
 .mobile-call{position:fixed;z-index:15;bottom:calc(12px + env(safe-area-inset-bottom));left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));display:flex;justify-content:space-between;align-items:center;gap:20px;background:var(--ink);color:white;padding:15px 21px;min-height:56px;font-size:1rem;border:1px solid #818b76}
 .mobile-call span{font-size:22px;flex-shrink:0}
}
@media(max-width:379px){
 .header-call{display:none}
 .menu-toggle{margin-left:auto}
 .trust-strip{grid-template-columns:1fr}
 .hero-note{font-size:.8125rem}
 .hero-bottom{flex-wrap:wrap}
 .stats{gap:12px}
 .stats strong{font-size:2.25rem}
 .button{width:100%;padding:16px 18px}
 .team-list article{grid-template-columns:44px minmax(0,1fr);gap:12px}
 .team-initial{width:40px;height:40px}
}
@media(max-height:500px) and (orientation:landscape){
 .mobile-call{position:static;margin:0 20px 20px;width:auto}
 footer{padding-bottom:35px}
}
@media(hover:none){.button:hover,.class-card:hover{transform:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
