/* Single type family and a fixed, role-based scale for every public page. */
:root{
 --body:Manrope,Arial,sans-serif;
 --display:Manrope,Arial,sans-serif;
 --type-body:16px;
 --type-label:12px;
 --type-action:14px;
 --type-h1:56px;
 --type-h2:40px;
 --type-h3:24px;
 --type-line:1.75;
}
body,button,input,textarea,select{font-family:var(--body);font-size:var(--type-body);font-weight:500}
main h1,main h2,main h3{font-family:var(--body);font-weight:800;letter-spacing:-.04em;word-break:normal;overflow-wrap:normal;hyphens:none;text-wrap:balance}
main h1,.hero h1,.inner-page>h1,.article-heading h1,.prose>h1,.not-found>h1,.contact-grid h1,.page-contacts .contacts-section h1{font-size:var(--type-h1);line-height:1.12}
main h2,.section h2,.contact-grid h2,.page-contacts .contacts-section h2,.trial-section h2,.faq-grid h2,.gallery-heading h2,.price-aside h2,.contact-dialog h2{font-size:var(--type-h2);line-height:1.18}
main h3,.group-card h3,.program-cards h3,.trainer-card h3,.news-card h3,.trial-steps h3,.empty-state h3{font-size:var(--type-h3);line-height:1.3;font-weight:800;text-transform:none;letter-spacing:-.035em}
main p,.hero-intro,.lead,.body-text,.group-card>p,.groups-copy .lead,.trial-steps p,.section-intro>p,.gallery-heading p,.news-card p,.faq-grid>div>p,.faq-list details p,.contact-grid .lead,.contact-block p,.price-aside>p,.page-intro,.article-heading .page-intro,.article-body p,.prose p,.trainer-card p,.group-details,.empty-state p,.contact-dialog>p{font-size:var(--type-body);font-weight:500;line-height:var(--type-line)}
.hero-offer span:not(.offer-star),.hero-photo-footer,.photo-source,.about-photo figcaption,.gallery-photo figcaption,.schedule-day p,.schedule-place,.schedule-place>span,.contact-block .text-link,.trainer-card li,.benefit-list li,.contact-dialog .contact-option,.footer-top>p,.footer-bottom,.footer-bottom a{font-family:var(--body);font-size:var(--type-body);font-weight:500;line-height:var(--type-line)}
.eyebrow,.hero-eyebrow,.group-top .eyebrow,.contact-block .eyebrow,.dialog-head .eyebrow,.section-code,.small-index,.hero-location>span:first-child,.hero-location .small-index,.photo-coordinate,.group-price>span,.news-category,.news-card-copy time,.article-heading time,.filter-button{font-family:var(--body);font-size:var(--type-label);font-weight:700;line-height:1.6;letter-spacing:.045em}
.button,.button--small,.text-link,.hero-actions>.text-link,.hero-actions>.button,.schedule-row>.button,.news-card .text-link,.location-bar>.text-link,.contact-block .text-link,.floating-contact,.desktop-nav>a,.header-phone,.mobile-nav>a,.contact-option{font-family:var(--body);font-size:var(--type-action);font-weight:700;line-height:1.5;letter-spacing:0}
.hero-offer strong,.trial-offer strong,.group-price strong,.contact-block strong,.contact-phone,.schedule-time,.schedule-day h3{font-family:var(--body);font-size:var(--type-h3);font-weight:800;letter-spacing:-.035em;line-height:1.35}
.schedule-time span,.group-price small,.contact-block p,.footer-top>p,.footer-bottom,.footer-bottom a,.location-bar{font-family:var(--body);font-size:var(--type-body);font-weight:500;line-height:var(--type-line);letter-spacing:0}
.brand-words strong,.brand--footer .brand-words strong{font-family:var(--body);font-size:27px;font-weight:800;line-height:1.1;letter-spacing:-.05em}
.brand-words small,.brand--footer .brand-words small{font-family:var(--body);font-size:8px;font-weight:700;letter-spacing:0;line-height:1.5}
.hero-photo-word,.hero-stamp strong,.day-badge,.principle-index,.trial-steps article>span{font-family:var(--body);font-weight:800}
.hero-photo-word{font-size:clamp(50px,6.5vw,88px);letter-spacing:-.07em}
.hero-stamp strong{font-size:28px;letter-spacing:-.06em}.hero-stamp span{font-family:var(--body);font-size:11px;font-weight:700}
.values-strip>div{font-family:var(--body);font-size:18px;font-weight:800;letter-spacing:-.02em;gap:40px}
.program-cards article{gap:18px}.program-cards h3{max-width:100%}
.program-heading>.lead{font-size:var(--type-body);font-weight:500;line-height:var(--type-line)}
.hero-actions{gap:24px}.hero-intro{max-width:530px}.hero-offer{max-width:530px}.hero-location{margin-bottom:32px}
.hero-offer span:not(.offer-star){font-size:var(--type-body)}
.hero-photo-footer{font-size:var(--type-label)}.photo-source{font-size:var(--type-label)}
.group-card h3{max-width:none}.contact-phone{white-space:nowrap}.benefit-list li,.trainer-card li{align-items:flex-start}.benefit-list .icon,.trainer-card li .icon{margin-top:3px;flex-shrink:0}
.schedule-row{grid-template-columns:56px .8fr 1fr 1.7fr auto;gap:20px}.schedule-day h3{font-size:var(--type-h3)}.schedule-place strong{font-size:var(--type-body);font-weight:700}.schedule-time{font-size:var(--type-h3)}.schedule-time span{font-size:var(--type-body)}
.footer-bottom{flex-wrap:wrap}.footer-bottom>div{flex-wrap:wrap;gap:20px}.faq-list summary{font-size:var(--type-body);font-weight:700;line-height:1.65}
@media(max-width:1250px){:root{--type-h1:48px}.desktop-nav{gap:17px}.desktop-nav>a{font-size:12px}.header-phone{font-size:13px}.hero h1{font-size:var(--type-h1)}.schedule-place{display:none}.schedule-row{grid-template-columns:50px 1fr 1fr auto}.program-cards article{flex-direction:column}.program-cards h3{font-size:var(--type-h3)}}
@media(max-width:1000px){:root{--type-h1:44px;--type-h2:36px;--type-h3:23px}.hero h1{font-size:var(--type-h1)}.hero-actions{gap:15px}.hero-actions>.button,.hero-actions>.text-link{font-size:13px}.hero-offer strong{font-size:21px}.hero-photo-word{font-size:58px}.hero-stamp strong{font-size:25px}.group-top{flex-wrap:wrap}.contact-grid{grid-template-columns:1fr 1fr;gap:40px}}
@media(max-width:700px){
 :root{--type-body:15px;--type-label:12px;--type-action:14px;--type-h1:36px;--type-h2:28px;--type-h3:22px;--type-line:1.75}
 main{text-align:center}.hero h1{font-size:var(--type-h1);line-height:1.15;letter-spacing:-.045em}.hero h1>.red-text{white-space:nowrap}.hero-intro,.hero-offer span:not(.offer-star){max-width:340px}.hero-eyebrow{font-size:var(--type-label);max-width:340px;margin-inline:auto}.hero-location>span:first-child{font-size:var(--type-label)}
 .hero-actions{gap:18px;flex-direction:column}.hero-actions>.button,.hero-actions>.text-link{font-size:var(--type-action)}.hero-actions>.button{width:100%;max-width:330px;justify-content:center;gap:20px}.hero-actions>.text-link{min-height:44px}.hero-offer{padding-top:23px;margin-top:20px}.hero-offer strong{font-size:var(--type-h3)}.photo-coordinate{font-size:var(--type-label);letter-spacing:.02em}.hero-visual{padding-top:27px}.hero-photo-word{font-size:56px}.hero-photo-footer,.photo-source{font-size:var(--type-label)}
 .section-heading>.eyebrow{font-size:var(--type-label);max-width:340px}.section h2,.inner-page>h1,.page-contacts .contacts-section h1,.page-contacts .contacts-section h2{font-size:var(--type-h2);max-width:100%;margin-inline:auto}.inner-page>h1,.article-heading h1{font-size:32px}.section h2 br,.inner-page>h1 br,.trial-section h2 br,.contact-grid h1 br{display:none}.lead,.section-intro>p,.groups-copy .lead,.contact-grid .lead{font-size:var(--type-body);max-width:340px}.program-heading>.lead{font-size:var(--type-body)}.program-cards article{align-items:center;gap:16px}.program-cards h3,.group-card h3,.trainer-card h3,.news-card h3{font-size:var(--type-h3);line-height:1.35;max-width:340px}.group-top{flex-direction:column;gap:15px}.group-top .eyebrow{font-size:var(--type-label)}.age-tag{font-family:var(--body);font-size:var(--type-h3);font-weight:800}
 .benefit-list li,.trainer-card li{font-size:var(--type-body);line-height:var(--type-line);justify-content:center}.group-price strong{font-size:var(--type-h3)}.trial-offer strong{font-size:var(--type-h3)}.trial-steps h3{font-size:var(--type-h3)}.trial-steps p{font-size:var(--type-body)}.trial-steps article>span{font-size:var(--type-h3)}.trial-section h2{font-size:var(--type-h2)}
 .schedule-row{display:flex;gap:13px;padding:23px 10px}.schedule-day h3{font-size:20px}.schedule-day p,.schedule-time span{font-size:var(--type-body)}.schedule-time{font-size:var(--type-h3)}.schedule-row>.button{font-size:12px;padding:10px 8px;gap:5px}.location-bar{font-size:var(--type-body)}.location-bar>.text-link{font-size:var(--type-action)}.day-badge{font-size:20px}.trainer-card li .icon{margin-top:5px}.trainer-card p{font-size:var(--type-body)}.trainer-card .eyebrow{max-width:340px;margin-inline:auto}
 .gallery-heading p,.news-card p,.faq-grid>div>p,.faq-list details p,.contact-grid .lead,.contact-block p,.contact-block strong{font-size:var(--type-body)}.gallery-photo figcaption{font-size:var(--type-label)}.faq-list summary{font-size:var(--type-body)}.contact-grid{grid-template-columns:minmax(0,1fr)}.contact-phone{font-size:25px}.footer-top>p,.footer-bottom,.footer-bottom a{font-size:var(--type-label)}.footer-bottom>div{gap:16px}.brand-words strong,.brand--footer .brand-words strong{font-size:25px}.brand-words small,.brand--footer .brand-words small{font-size:7px}.footer-top{gap:23px}.article-body p,.prose p{font-size:var(--type-body)}.contact-dialog h2{font-size:var(--type-h2)}.contact-dialog>p{font-size:var(--type-body)}.contact-option{font-size:var(--type-action)}.dialog-offer{font-size:var(--type-body)}.contact-grid h1{line-height:1.18}.empty-state h3{font-size:var(--type-h3)}.price-aside h2{font-size:var(--type-h2)}
}
@media(max-width:700px){.schedule-day h3{font-size:var(--type-h3)}.inner-page>h1,.article-heading h1,.prose>h1,.contact-grid h1,.page-contacts .contacts-section h1{font-size:var(--type-h1)}}
@media(max-width:359px){:root{--type-h1:32px;--type-h2:25px;--type-h3:21px}.hero h1{font-size:var(--type-h1)}.hero-eyebrow,.hero-location>span:first-child{font-size:11px}.brand-words strong{font-size:22px}.brand-words small{font-size:6px}.hero-actions>.button,.hero-actions>.text-link{font-size:var(--type-action)}.program-cards h3{font-size:var(--type-h3)}.contact-grid h2,.trial-section h2{font-size:var(--type-h2)}.schedule-list{grid-template-columns:minmax(0,1fr)}.schedule-row>.button{font-size:var(--type-action)}}
/* A time range is one indivisible value, with identical type on both sides. */
.schedule-time{display:flex;flex-wrap:nowrap;align-items:baseline;justify-content:center;gap:6px;white-space:nowrap;font-size:var(--type-h3);font-weight:800;line-height:1.35}
.schedule-time span{display:inline;margin:0;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit}
@media(max-width:700px){.schedule-list{grid-template-columns:minmax(0,1fr)}.schedule-row{padding:25px 16px}.schedule-time span{display:inline;margin:0;font-size:inherit;font-weight:inherit}.schedule-time{gap:7px}}
