/* Shared reading scale. Keep display headings and the approved timetable intact. */
:root{--reading-size:17px;--support-size:15px;--label-size:13px}
body{font-size:var(--reading-size);line-height:1.75}
.hero-intro-copy .hero-lead,.section-heading>p,.path-copy>p,
.coach-story>p:not(.eyebrow),.first-visit .section-heading>div:last-child>p,
.first-steps p,.social-card>p:not(.small-label),.member-note-layout>div>p:not(.eyebrow),
.class-copy p,.detail-card p,.gym-copy>p:not(.eyebrow),.start-intro>p:not(.eyebrow),
.steps p,.faq-layout>div>p:not(.eyebrow),.faq-list details p,
.find-layout>div>p:not(.eyebrow),.contact-intro p:not(.eyebrow),
.news-card-copy>p:not(.news-meta),.news-instagram p:not(.eyebrow),
.prose,.page-lead{font-size:var(--reading-size);line-height:1.75}
.hero-intro-copy>p:first-child{font-size:22px;line-height:1.5}
.hero-intro-copy .hero-lead{max-width:460px}
.section-heading>p{max-width:430px}
.path-copy>p,.class-copy p,.social-card>p:not(.small-label){min-height:0}
.path-voice>p,.coach-quote blockquote{font-size:18px;line-height:1.7}
.more-training p:not(.eyebrow),.coach-principles p,.gym-values p,
.price-card p:not(.price),.price-card li,.price-card ul,.membership-note,
.fine-print,.week-grid p,.compact-price-grid p,.pt-note,
.faq-page aside nav a,.enquiry-status{font-size:15px;line-height:1.75}
.coach-principles b,.gym-values b{font-size:17px;line-height:1.5}
.faq-list summary,.faq-page .faq-list summary{font-size:18px;line-height:1.55}
.contact-links{font-size:17px;line-height:1.8}
.button,.hero-actions>.button,.page-hero .button,.page-cta .button,
.price-card .button,.find-layout .button,.news-instagram .button{
 font-size:14px;line-height:1.5;min-height:52px;white-space:normal
}
.text-link,.hero-actions>.text-link,.path-copy .card-link,.more-training .text-link,
.social-card>.text-link,.news-card .text-link,.carousel-footer .text-link{
 font-size:15px;line-height:1.5
}
.card-link{font-size:15px}
.desktop-nav a{font-size:14px}
.desktop-nav{gap:22px}
.header-cta{font-size:13px;min-height:48px;gap:14px;white-space:nowrap}
.topline{font-size:12px}
.eyebrow,.hero .eyebrow,.page-hero .eyebrow,.coach-story .eyebrow,
.more-training .eyebrow,.small-label,.social-card>.small-label,
.price-card .small-label,.path-label,.image-tag,.facts-strip span{
 font-size:var(--label-size);line-height:1.6;letter-spacing:.07em
}
.welcome-rating strong{font-size:17px}
.welcome-rating small,.welcome-proof figcaption,.review-citation,
.review-citation b,.review-citation small,.excerpt-note{
 font-size:var(--label-size);line-height:1.6
}
.welcome-proof{grid-template-columns:350px 1fr}
.welcome-proof blockquote{font-size:22px;line-height:1.5}
.review-citation{flex-wrap:wrap}
.hero-photo-label,.hero-photo-label>span,.coach-image>span,.photo-label>span,
.photo-label small,.social-type,.visit-planning small,.hero-slide-count,
.detail-number,.first-steps article>span,.coach-principles>div>span{
 font-size:var(--label-size);line-height:1.5
}
.visit-planning b{font-size:17px;line-height:1.5}
.ig-profile{font-size:14px;overflow-wrap:anywhere}
.social-bottom,.breadcrumb,.article-heading .breadcrumb,.article-byline,
.news-meta,.legal-aside>a,.map-frame>a{font-size:14px;line-height:1.7}
.news-meta{flex-wrap:wrap}
.social-bottom{flex-wrap:wrap}
.price span{font-size:14px;line-height:1.5}
.facts-strip strong{font-size:17px;line-height:1.5}
.enquiry-form label,.faq-page label{font-size:15px;line-height:1.6}
.enquiry-form input,.enquiry-form select,.enquiry-form textarea{font-size:16px;line-height:1.6}
.enquiry-form .form-privacy{font-size:14px;line-height:1.7}
.migration-notice{font-size:14px!important;line-height:1.75}
.related-stories a{font-size:16px;line-height:1.6}
.footer-main nav{font-size:14px;line-height:1.7;flex-wrap:wrap;gap:16px 24px}
.footer-main{gap:40px}
.footer-bottom{font-size:13px;line-height:1.6;flex-wrap:wrap}
.mobile-book>span{font-size:12px}
.mobile-book .button{font-size:13px;min-height:44px}
/* Reviews retain the four-line preview at the larger reading size. */
.carousel-track .review-card .review-quote{font-size:17px;line-height:1.7}
.carousel-track .review-person b{font-size:15px;line-height:1.5}
.carousel-track .review-person small{font-size:13px;line-height:1.6}
.review-toggle{font-size:15px}
.carousel-toolbar>p,.carousel-count,.reviews-status,.review-providers,
.carousel-footer p,.google-rating-card>small,.rating-provider,
.review-card-footer .text-link,.review-card-footer small.maps-attribution{
 font-size:14px;line-height:1.7
}
.review-card-footer{flex-wrap:wrap;gap:12px}
/* Open the menu sooner so larger navigation labels never collide with the CTA. */
@media(max-width:1380px){
 .desktop-nav{display:none}.header-cta{margin-left:auto}
 .menu-button{display:flex;flex-direction:column;gap:7px;padding:12px 2px;width:32px;justify-content:center;min-height:44px}
 .mobile-nav:not([hidden]){display:flex;position:absolute;top:100%;left:0;right:0;padding:24px 36px;flex-direction:column;gap:20px}
 .mobile-nav a{font-size:18px;line-height:1.5}
}
@media(max-width:900px){
 .welcome-proof{grid-template-columns:1fr;gap:22px}
 .welcome-proof figure{border-left:2px solid #afcde6;padding-left:20px}
 .hero-intro{gap:32px}
 .hero-actions{gap:18px}
}
@media(max-width:650px){
 :root{--reading-size:16px;--support-size:15px;--label-size:12px}
 .hero-intro-copy>p:first-child{font-size:20px;line-height:1.5}
 .hero .eyebrow{font-size:12px;line-height:1.6}
 .hero-actions>.button,.page-cta .button,.news-instagram .button{font-size:14px}
 .hero-actions>.text-link{font-size:15px}
 .header{gap:12px}.header-cta{font-size:12px;padding:10px 12px;gap:8px;min-height:44px}
 .mobile-nav:not([hidden]){padding:24px 20px}
 .hero-photo-label{font-size:11px}
 .welcome-rating strong{font-size:16px}
 .welcome-proof blockquote{font-size:20px}
 .path-voice>p,.coach-quote blockquote{font-size:17px}
 .coach-image>span{font-size:12px}
 .visit-planning small{font-size:12px}
 .visit-planning b{font-size:17px}
 .carousel-track .review-card .review-quote{font-size:16px}
 .carousel-toolbar{gap:16px;flex-wrap:wrap}
 .footer-main nav{font-size:14px;gap:16px 24px}
 .footer-bottom{font-size:12px}
 .ig-profile{font-size:13px}
 .news-meta{font-size:13px}
 .enquiry-form input,.enquiry-form select,.enquiry-form textarea{font-size:16px}
 .enquiry-form label{font-size:15px}
 .enquiry-form .form-privacy{font-size:14px}
 .faq-list summary,.faq-page .faq-list summary{font-size:17px}
}

.mobile-nav:not([hidden]){max-height:calc(100dvh - 90px);overflow-y:auto}
