/* Shared surfaces and controls, loaded after page-specific styling. */
html body{--yellow:#ffd700;--tf-radius-pill:10px;--tf-radius:16px}
html body :is(button,.button,.btn,.btn-primary,.btn-secondary,.cta-button,.badge,.chip,.pill,.tag,.card-chip,.status-pill,.filter-pill,.credential-chip,.member-rate-pill,.bag-switch,.apple-bag-badge,[class*="rounded-full"],[class*="badge-"],[class*="pill-"],[class*="chip-"],a[class*="px-"]){border-radius:10px!important}
html body :is(.product-card,.profile-header-card,.summary-action-box,.order-row,.trainer-card,.facility-card,.equipment-card,.feature-card,.lead-panel,.auth-card,.preview-card,.interactive-deck-card){background:#000!important;background-image:none!important;color:#fff!important;box-shadow:none!important}
html body :is(.product-card,.profile-header-card,.summary-action-box,.order-row,.trainer-card,.facility-card,.equipment-card,.feature-card,.lead-panel,.auth-card,.preview-card,.interactive-deck-card) :is(h1,h2,h3,h4,p,small,label,li,time,address,figcaption){color:#fff!important;-webkit-text-fill-color:#fff!important}
html body :is(.price,.eyebrow,.kicker,.text-accent,[class*="text-emerald"],[class*="text-green"],.status-pill){color:#ffd700!important;-webkit-text-fill-color:#ffd700!important}
html body :is(.member-card,.need-card,.tf-plan,.account-intro,.stats-card,.class-card,.testimonial-slide,.review-card){background:#ffd700!important;background-image:none!important;color:#000!important;box-shadow:none!important}
html body :is(.member-card,.need-card,.tf-plan,.account-intro,.stats-card,.class-card,.testimonial-slide,.review-card) :is(h1,h2,h3,h4,h5,p,li,span,small,strong,label,a,time){color:#000!important;-webkit-text-fill-color:#000!important}
html body :is(.member-card,.need-card,.tf-plan,.account-intro,.stats-card,.class-card,.review-card) :is(.button,.btn,.btn-primary,[class*="bg-black"]){background:#000!important;color:#ffd700!important;-webkit-text-fill-color:#ffd700!important}
html body :is(.button,.btn-primary,[class*="bg-[#ffd700]"],[class*="bg-yellow"]) {color:#000!important;-webkit-text-fill-color:#000!important}
html body :is(.profile-header-card,.product-card,.order-row) a{color:#ffd700!important;-webkit-text-fill-color:#ffd700!important}
html body :is(.card-chip,.status-pill,.member-rate-pill,.empty-credits-box,.empty-membership-box,.credit-item){background:transparent!important;box-shadow:none!important;border-color:currentColor!important}
html body :is(.ledger-badge,.rev-preview-remove){background:#000!important;color:#ffd700!important}
html body .member-grid{gap:20px}
html body .member-card{padding:28px!important}
html body .points-hero-balance h2{font-size:clamp(36px,5vw,56px);line-height:1.05}
html body .member-card .credits-scroll-list{max-height:210px;overflow:auto}
html body .member-card :is(.card-head,.credits-breakdown,.memberships-breakdown){margin-bottom:20px}
/* Branch pages retain their bento content with one consistent vertical rhythm. */
html body[data-gym-page] #hero{padding:calc(var(--header-bottom,80px) + 36px) 0 40px!important;min-height:0!important}
html body[data-gym-page] #hero>.max-w-6xl{max-width:1200px!important}
html body[data-gym-page] #hero>.max-w-6xl>.grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)!important;gap:48px!important;align-items:center!important}
html body[data-gym-page] #hero .grid>div{grid-column:auto!important;min-width:0}
html body[data-gym-page] #hero h1{font-size:clamp(38px,4.4vw,62px)!important;line-height:1.04!important;letter-spacing:-.045em!important;max-width:620px;margin:16px 0 20px!important;font-weight:500!important}
html body[data-gym-page] #hero p{font-size:16px!important;line-height:1.65!important;max-width:540px;margin-bottom:24px!important}
html body[data-gym-page] .gym-gallery--hero .gym-gallery__viewport{height:430px!important;min-height:0!important;aspect-ratio:auto!important}
html body[data-gym-page] .gym-gallery--hero .gym-gallery__slide{height:430px!important;min-height:0!important}
html body[data-gym-page] .gym-gallery__caption{background:#000!important;background-image:none!important;color:#fff!important;padding:14px 18px!important;font-size:13px!important}
html body[data-gym-page] main>section:not(#hero),html body[data-gym-page]>section:not(#hero){padding-top:48px!important;padding-bottom:48px!important}
html body[data-gym-page] :is(.membership-section,#memberships){padding:48px 24px!important;margin:0 auto!important}
html body[data-gym-page] :is(#about,#features,#gallery,#equipment,#trainers,#reviews,#contact) h2{font-size:clamp(28px,3vw,40px)!important;line-height:1.15!important;letter-spacing:-.035em!important;margin-bottom:20px!important}
html body[data-gym-page] :is(#about,#features,#gallery,#equipment,#trainers,#reviews,#contact) .grid{gap:20px!important}
html body[data-gym-page] :is(#about,#features,#gallery,#equipment,#trainers,#reviews,#contact) [class*="rounded-3xl"]{border-radius:16px!important}
html body[data-gym-page] nav.sticky{position:relative!important;top:auto!important;overflow-x:auto;white-space:nowrap}
@media(max-width:800px){html body[data-gym-page] #hero{padding-top:calc(var(--header-bottom,80px) + 24px)!important}html body[data-gym-page] #hero>.max-w-6xl>.grid{grid-template-columns:1fr!important;gap:28px!important}html body[data-gym-page] .gym-gallery--hero :is(.gym-gallery__viewport,.gym-gallery__slide){height:300px!important}html body[data-gym-page] main>section:not(#hero),html body[data-gym-page]>section:not(#hero){padding-top:32px!important;padding-bottom:32px!important}html body .member-card{padding:22px!important}}
html body[data-gym-page] .gym-gallery__slide{position:relative}
html body[data-gym-page] .gym-gallery__caption{position:absolute!important;bottom:0!important;left:0!important;right:0!important;z-index:3!important;opacity:1!important}
html body[data-gym-page] .gym-gallery__dots{bottom:52px!important}
html body.tf-site-page :is([class*="bg-white/"],[class*="bg-gray-"],[class*="bg-slate-"],[class*="bg-zinc-"]){background:#000!important;background-image:none!important;color:#fff!important}
html body.tf-site-page :is([class*="bg-[#ffd700]"],[class*="bg-yellow"]){background:#ffd700!important;color:#000!important}
html body :is(.status-pill,.card-chip){border:1px solid currentColor!important}

/* Keep captions inside the same bounds as their images. */
html body[data-gym-page] .gym-gallery--hero{max-height:none!important}
/* Compact directory introductions without changing the homepage story. */
html body[data-layout="brand-directory"] .tf-page-hero{align-items:start;gap:40px;padding:36px 0 40px}
html body[data-layout="brand-directory"] .tf-page-hero h1{margin-top:16px;line-height:1.06}
html body[data-layout="gym-directory"] main>section:first-child{margin-top:0!important;padding-top:0!important}
html body[data-layout="gym-directory"] main>section:first-child>.relative{padding-top:36px!important;padding-bottom:40px!important}
/* Content must shrink within grids rather than push outside the viewport. */
html body :is(.member-grid,.tf-page-hero,.product-layout,.tf-plan-grid)>*{min-width:0}
html body :is(h1,h2,h3,.product-name,.order-row,.member-card){overflow-wrap:break-word}
html body :is(button,.button,.btn,.tf-page-button,.cta-button){box-shadow:none!important;white-space:normal}
html body :is(input,select,textarea){max-width:100%}
@media(max-width:800px){
 html body[data-layout="brand-directory"] .tf-page-hero{gap:24px;padding:28px 0 32px}
 html body[data-layout="gym-directory"] main>section:first-child>.relative{padding-top:28px!important;padding-bottom:32px!important}
}
html body.tf-site-page main :is(h1,h2,h3,h4){color:#fff;-webkit-text-fill-color:#fff}
html body.tf-site-page main :is(.class-card,.stats-card,.tf-plan,.review-card,.member-card,[class*="bg-yellow"],[class*="bg-[#ffd700]"]) :is(h1,h2,h3,h4){color:#000!important;-webkit-text-fill-color:#000!important}
html body.tf-site-page a[class*="px-"]{box-shadow:none!important}
/* Policy sections are content within the yellow surface, not black page bands. */
html body.tf-site-page .tf-policy-content{box-shadow:none!important}
html body.tf-site-page .tf-policy-content section{background:transparent!important;background-image:none!important;color:#000!important;-webkit-text-fill-color:#000!important}
html body.tf-site-page .tf-policy-content :is(h2,h3,h4,h5,h6,p,li,strong,b,span,label,address){color:#000!important;-webkit-text-fill-color:#000!important}
html body.tf-site-page .tf-policy-content :is(.p-4,[style*="background: #1a1a1a"],[style*="background:#1a1a1a"],[style*="background: #141713"],[style*="background:#141713"],[style*="background: #181818"],[style*="background:#181818"],[style*="background: var(--surface)"],[style*="border-left: 4px solid"]) :is(h2,h3,h4,h5,h6,p,li,strong,b,span,label,address){color:#fff!important;-webkit-text-fill-color:#fff!important}
html body.tf-site-page .tf-policy-content a{color:#000!important;-webkit-text-fill-color:#000!important}
/* Pair text with its actual surface, including nested homepage cards. */
html body .preview-card{background:#000!important;background-color:#000!important}
html body .preview-card :is(.preview-title,.preview-desc){color:#fff!important;-webkit-text-fill-color:#fff!important}
html body .testimonial-slide :is(.testimonial-text,.testimonial-name,.testimonial-role){color:#000!important;-webkit-text-fill-color:#000!important}
html body .tf-location-card a{color:#000!important;-webkit-text-fill-color:#000!important}
html body :is(.btn-shimmer,.back-store){color:#000!important;-webkit-text-fill-color:#000!important}
html body .tf-home-refined.tf-home-refined .interactive-deck-card{background:#ffd700!important;background-color:#ffd700!important}
html body .tf-home-refined.tf-home-refined .interactive-deck-card :is(.preview-title,.preview-desc,.preview-feature,.preview-category,.preview-counter,.preview-feature-icon){color:#000!important;-webkit-text-fill-color:#000!important}
html body .tf-home-refined.tf-home-refined .testimonial-slide :is(.testimonial-text,.testimonial-name,.testimonial-role,.testimonial-stars){color:#000!important;-webkit-text-fill-color:#000!important}
/* Nested black policy callouts override the surrounding yellow article. */
html body.tf-site-page .tf-policy-content :is(.p-4,[style*="background: var(--surface)"],[style*="background: #1a1a1a"],[style*="background:#1a1a1a"],[style*="border-left: 4px solid"]) :is(p,li,strong,b,span,label,address,h2,h3,h4,h5,h6){color:#fff!important;-webkit-text-fill-color:#fff!important}
html body.tf-site-page .tf-policy-content :is(.p-4,[style*="background: var(--surface)"],[style*="background: #1a1a1a"],[style*="background:#1a1a1a"],[style*="border-left: 4px solid"]) a{color:#ffd700!important;-webkit-text-fill-color:#ffd700!important}
html body.tf-site-page.tf-site-page.tf-site-page .tf-policy-content :is(.p-4,[style*="background: var(--surface)"],[style*="background: #1a1a1a"],[style*="background:#1a1a1a"],[style*="border-left: 4px solid"]) :is(p,li,strong,b,span,label,address,h2,h3,h4,h5,h6){color:#fff!important;-webkit-text-fill-color:#fff!important}
html body.tf-site-page.tf-site-page.tf-site-page .tf-policy-content :is(.p-4,[style*="background: var(--surface)"],[style*="background: #1a1a1a"],[style*="background:#1a1a1a"],[style*="border-left: 4px solid"]) a{color:#ffd700!important;-webkit-text-fill-color:#ffd700!important}
html body.tf-site-page.tf-site-page .tf-policy-content :is(.p-4,[style*="background: var(--surface)"],[style*="border-left: 4px solid"]){box-shadow:none!important}
html body.tf-site-page .tf-directory-card .tf-plan-cta span{color:#ffd700!important;-webkit-text-fill-color:#ffd700!important}
html body.tf-site-page main [style*="color: #6b7280"]{color:#fff!important;-webkit-text-fill-color:#fff!important}
html body.tf-site-page main [style*="width: 40px; height: 40px"]{background:#ffd700!important;color:#000!important;-webkit-text-fill-color:#000!important}

html body .tf-home-refined.tf-home-refined .interactive-deck-card :is(span,.preview-art-badge){color:#000!important;-webkit-text-fill-color:#000!important}
html body .tf-home-refined.tf-home-refined .testimonial-slide span{color:#000!important;-webkit-text-fill-color:#000!important}
html body.tf-site-page .tf-directory-card a[class*="bg-black"] span{color:#ffd700!important;-webkit-text-fill-color:#ffd700!important}

html body .tf-home-refined.tf-home-refined .interactive-deck-card .preview-cta,html body .tf-home-refined.tf-home-refined .interactive-deck-card .preview-cta span{background:#000!important;color:#ffd700!important;-webkit-text-fill-color:#ffd700!important}
html body .tf-home-refined.tf-home-refined .tf-milestone span{color:#000!important;-webkit-text-fill-color:#000!important}
html body.tf-site-page .tf-location-card .tf-page-button,html body.tf-site-page .tf-directory-card .tf-page-button span{color:#ffd700!important;-webkit-text-fill-color:#ffd700!important}
html body.tf-site-page [class*="bg-black"][class*="text-[#ffd700]"]{color:#ffd700!important;-webkit-text-fill-color:#ffd700!important}
html body.tf-site-page [class*="bg-transparent"][class*="text-black"]{color:#ffd700!important;-webkit-text-fill-color:#ffd700!important;border-color:#ffd700!important}
/* Important rules in this layer take precedence over legacy unlayered theme
   overrides. Each rule describes an actual surface, including nested controls. */
@layer tf-readable-surfaces {
 html body .tf-policy-content :is(.p-4,[style*="background: var(--surface)"],[style*="background: #1a1a1a"],[style*="background:#1a1a1a"],[style*="border-left: 4px solid"]) :is(p,li,strong,b,span,label,address,h2,h3,h4,h5,h6){color:#fff!important;-webkit-text-fill-color:#fff!important}
 html body .tf-policy-content :is(.p-4,[style*="background: var(--surface)"],[style*="background: #1a1a1a"],[style*="background:#1a1a1a"],[style*="border-left: 4px solid"]) a{color:#ffd700!important;-webkit-text-fill-color:#ffd700!important}
 html body :is(.tf-branch-card,.tf-location-card,.tf-point-card,.tf-milestone,.testimonial-slide,.interactive-deck-card) :is(h2,h3,p,span,small,strong,label,address){color:#000!important;-webkit-text-fill-color:#000!important}
 html body .interactive-deck-card .preview-cta :is(span),html body .interactive-deck-card .preview-cta{background:#000!important;color:#ffd700!important;-webkit-text-fill-color:#ffd700!important}
 html body .interactive-deck-card .preview-cta-btn,html body .interactive-deck-card .preview-cta-btn span{background:#000!important;color:#ffd700!important;-webkit-text-fill-color:#ffd700!important}
 html body .tf-location-card .tf-page-button,html body .tf-branch-card .tf-page-button,html body .tf-branch-card .tf-page-button span{color:#ffd700!important;-webkit-text-fill-color:#ffd700!important}
 html body .tf-policy-content [class*="bg-[#ffd700]"]{color:#000!important;-webkit-text-fill-color:#000!important}
}
@layer tf-readable-surfaces {
 html body .tf-policy-content :is([style*="background: #181818"],[style*="background:#181818"],[style*="background: #141713"],[style*="background:#141713"]) a{color:#ffd700!important;-webkit-text-fill-color:#ffd700!important}
 html body .tf-milestone time{color:#000!important;-webkit-text-fill-color:#000!important}
 html body .seo-content-block .tf-scroll-word{color:#fff!important;-webkit-text-fill-color:#fff!important}
}
@layer tf-readable-surfaces {
 html body .tf-policy-content :is(.p-4,[style*="background: var(--surface)"],[style*="background: #181818"],[style*="background: #1a1a1a"]) a[class*="bg-[#ffd700]"]{color:#000!important;-webkit-text-fill-color:#000!important}
}
@layer tf-readable-surfaces {
 html body .tf-policy-content.tf-policy-content.tf-policy-content a[class*="bg-[#ffd700]"]{color:#000!important;-webkit-text-fill-color:#000!important}
}
