/* A shared, bounded reading canvas. Original images remain available on click. */
html[data-theme] main{min-width:0}
html[data-theme] .standalone-main{padding-top:0}
html[data-theme] main>.section,html[data-theme] .program-story>.section{max-width:1240px;margin-inline:auto;padding:56px 40px;min-width:0}
html[data-theme] .section-title{max-width:780px;margin-bottom:30px}
html[data-theme] .section-title h2,html[data-theme] .fp-heading h2,html[data-theme] .trainer-copy h2,html[data-theme] .bm-heading h2{font-size:clamp(26px,2.5vw,36px);line-height:1.5;letter-spacing:0;overflow-wrap:anywhere}
html[data-theme] .section-title>p,html[data-theme] .eyebrow{margin-bottom:12px}
html[data-theme] .section-title>span{font-size:16px;line-height:1.8}
html[data-theme] main :is(h1,h2,h3,p,li,dd){overflow-wrap:anywhere}
html[data-theme] .btn{max-width:100%;min-height:44px;white-space:normal;text-align:center}
html[data-theme] main>.section :is(.goal-grid,.branch-grid,.overview-grid,.membership-grid,.gallery-grid,.fp-service-grid,.fp-club-grid){max-width:100%;min-width:0}
/* Modest hero proportions, with room for longer administrator-written text. */
html[data-theme] .fp-hero.hero,html[data-theme] body.branch-profile-page .branch-profile-shell{max-width:1240px;margin-inline:auto;min-height:0;padding:0}
html[data-theme] .fp-hero .hero-content,html[data-theme] body.branch-profile-page .branch-profile-shell .branch-cover-content{padding:40px;min-width:0}
html[data-theme] .fp-hero .hero-slides,html[data-theme] body.branch-profile-page .branch-profile-photo{min-height:0;height:auto;align-self:stretch}
html[data-theme] .fp-hero .hero-content h1,html[data-theme] body.branch-profile-page .branch-cover-content h1{font-size:clamp(30px,3vw,42px);line-height:1.45;margin:18px 0;letter-spacing:0}
html[data-theme] .fp-hero .fp-hero-copy{font-size:17px;line-height:1.85}
html[data-theme] .fp-hero .hero-content .buttons{margin-top:22px}
/* Full posters at a comfortable viewing height; no crop. */
html[data-theme] #updates .updates-grid{gap:28px;max-width:1000px}
html[data-theme] #updates .updates-grid>.update-card{flex:0 1 420px;width:420px;max-width:100%}
html[data-theme] #updates .news-poster-open{display:flex;justify-content:center;align-items:center;overflow:hidden;background:var(--fp-soft)}
html[data-theme] #updates .update-card .update-image{width:auto;height:auto;max-width:100%;max-height:min(52svh,460px);object-fit:contain}
html[data-theme] #updates .update-body{padding:20px;gap:0}
html[data-theme] #updates .update-body h3{font-size:22px;line-height:1.5;margin-bottom:12px}
html[data-theme] #updates .update-description{font-size:16px;line-height:1.85;margin-bottom:16px}
html[data-theme] #updates .update-body .text-link{font-size:16px;line-height:1.7}
html[data-theme] #updates .update-body .card-label{margin-bottom:12px}
html[data-theme] #updates .update-video,html[data-theme] #updates .youtube-holder{max-height:56svh;object-fit:contain}
/* Schedule previews and gallery views fit inside the browser; click opens the original. */
html[data-theme] #scheduleCurrent,html[data-theme] #scheduleFallback{max-width:1000px;margin-inline:auto}
html[data-theme] .schedule-open{display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in}
html[data-theme] .schedule-image{display:block;width:auto;height:auto;max-width:100%;max-height:min(62svh,600px);object-fit:contain;margin-inline:auto}
html[data-theme] .schedule-range{margin-bottom:22px;text-align:center;font-size:15px}
html[data-theme] .branch-gallery-host{max-width:1000px;margin-inline:auto}
html[data-theme] .branch-gallery-large img{height:auto;max-height:min(58svh,520px);width:100%;object-fit:contain}
html[data-theme] .trainer-service>img{max-height:460px;object-fit:cover}
/* Video and photo collections retain their independent order and pagination. */
html[data-theme] .branch-profile-page #clientTraining{max-width:1240px;padding:0 40px 56px}
.bm-videos,.bm-photos{padding-top:44px}
.bm-photos{margin-top:44px}
.bm-heading{margin-bottom:28px}
.bm-video-grid{gap:28px 24px}
.bm-video-card{flex:0 1 min(240px,32svh);width:min(240px,32svh);max-width:100%}
.bm-video-frame{max-height:60svh}
.bm-video-card h3{font-size:17px;margin:15px 16px 18px}
.bm-photo-grid{gap:24px 20px}
/* Program pages and profiles use the same type scale. */
html[data-theme] .program-story .ps-hero h1{font-size:clamp(32px,3.5vw,48px);line-height:1.2;letter-spacing:0}
html[data-theme] .program-story h2{font-size:clamp(25px,2.5vw,34px)}
html[data-theme] .program-story .ps-hero-photo img{max-height:400px}
html[data-theme] .program-story .ps-start,html[data-theme] .program-story .ps-cta{max-width:1160px}
html[data-theme] .trainer-editorial-page #trainerProfile .trainer-editorial>.trainer-photo{max-height:min(58svh,480px)}
html[data-theme] .trainer-editorial-page #trainerProfile .trainer-profile-body h1{font-size:clamp(30px,3.3vw,44px)}
html[data-theme] .registration{padding:48px 32px}
html[data-theme] .registration-shell{max-width:1160px}
html[data-theme] .registration-heading{padding:36px 30px}
html[data-theme] footer{padding-top:48px;padding-bottom:28px}
/* Header controls stay readable without consuming an oversized strip. */
@media(min-width:1001px){html[data-theme] .navbar{padding-block:10px;min-height:72px}html[data-theme] .navbar .brand img{width:48px;height:48px}}
@media(max-width:1100px){html[data-theme] .fp-hero .hero-slides,html[data-theme] body.branch-profile-page .branch-profile-photo{height:300px;min-height:0}}
@media(max-width:760px){
 html[data-theme] main>.section,html[data-theme] .program-story>.section{padding:38px 22px}
 html[data-theme] .section-title{margin-bottom:24px}
 html[data-theme] .section-title h2,html[data-theme] .fp-heading h2,html[data-theme] .trainer-copy h2,html[data-theme] .bm-heading h2{font-size:27px}
 html[data-theme] .fp-hero .hero-content,html[data-theme] body.branch-profile-page .branch-profile-shell .branch-cover-content{padding:28px 22px}
 html[data-theme] .fp-hero .hero-content h1,html[data-theme] body.branch-profile-page .branch-cover-content h1{font-size:32px}
 html[data-theme] .fp-hero .hero-slides,html[data-theme] body.branch-profile-page .branch-profile-photo{height:240px}
 html[data-theme] body.branch-profile-page .branch-profile-shell{padding:0}
 html[data-theme] #updates .updates-grid>.update-card{flex-basis:420px;width:100%;max-width:420px}
 html[data-theme] #updates .update-card .update-image{max-height:48svh}
 html[data-theme] #updates .update-body{padding:18px}
 html[data-theme] .branch-profile-page #clientTraining{padding:0 22px 38px}
 .bm-videos,.bm-photos{padding-top:32px}.bm-photos{margin-top:32px}.bm-video-card{flex-basis:min(230px,32svh);width:min(230px,32svh)}
 html[data-theme] .registration{padding:32px 20px}
 html[data-theme] .registration-heading,html[data-theme] .registration form{padding:26px 22px}
 html[data-theme] .program-story .ps-start,html[data-theme] .program-story .ps-cta{max-width:calc(100% - 44px)}
 html[data-theme] .trainer-editorial-page .standalone-main>.section{padding:24px 0 40px}
}
@media(max-width:380px){html[data-theme] .fp-hero .hero-content h1,html[data-theme] body.branch-profile-page .branch-cover-content h1{font-size:29px}}
