/* Shared screen-size and input rules for marketing, courses and membership. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:110px;color-scheme:light}
body{overflow-wrap:break-word}
input,select,textarea{max-width:100%;min-width:0}
button,input,select,textarea{font:inherit}
button,a,summary{touch-action:manipulation}
button,a,summary,input,select,textarea{-webkit-tap-highlight-color:#c0a07040}
h1,h2,h3,h4{overflow-wrap:anywhere;hyphens:auto}
.wrap>* , .section-heading>* , .pricing-layout>* , .course-grid>* , .course-grid article>* , .contact-grid>* , .nutrition-teaser-layout>* , .nutrition-contact-layout>* , .app-features>* , .goal-picker>*{min-width:0}
.button,.text-link{max-width:100%;white-space:normal}
.text-link{min-height:44px;display:inline-flex;align-items:center}
.header .brand img{width:100%;height:auto}
.header .header-cta{min-height:44px}
.navigation a{min-height:44px;display:inline-flex;align-items:center}
.footer-inner>div,.footer-doc-links,.club-footer-links{flex-wrap:wrap}
.footer-inner>div>a,.m-legal-links>a{min-height:44px;display:inline-flex;align-items:center}
.header{padding-left:max(16px,4%,env(safe-area-inset-left));padding-right:max(16px,4%,env(safe-area-inset-right))}
.training-tabs{scrollbar-width:thin;scroll-padding-inline:12px}
.training-tabs button{min-height:48px}
.course-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.price-card .term-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
.price-card .term-picker button{min-width:0;min-height:48px;font-size:14px;white-space:normal;padding:10px 4px}
.week-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.week-days button{min-width:0;min-height:48px}
.week-days button>span{white-space:normal}
.drinks-feature .drinks-copy h3{font-size:clamp(34px,4vw,58px)}
.drinks-feature .drinks-cta{font-size:14px;min-height:50px}
dialog{max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overscroll-behavior:contain;scroll-padding-block:20px}
.trial-dialog,.drinks-dialog{max-width:calc(100% - 24px);max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px)}
dialog input:not([type=checkbox]),dialog select,dialog textarea,.inquiry-form select{font-size:16px}
.photo-dialog img{height:min(65vh,900px);height:min(65dvh,900px)}
body:has(dialog[open]){overflow:hidden}

/* A single compact menu pattern also covers the course and contract pages. */
.responsive-nav{display:flex;align-items:center;gap:24px}
.responsive-nav a{min-height:44px;display:inline-flex;align-items:center}
.responsive-menu-toggle{display:none}
.b-header,.m-site .m-header{position:sticky;top:0;z-index:20;min-height:80px;flex-wrap:nowrap}
.b-header>a,.m-header>a{flex-shrink:0}
.b-header img,.m-header img{width:130px;height:auto}
.b-main,.m-main{min-width:0;overflow-wrap:anywhere}
.b-main h1,.m-site .m-heading h1{hyphens:auto;overflow-wrap:anywhere}
.b-course>* , .b-title-row>* , .b-help>* , .b-form-grid>* , .m-fields>* , .m-plans>*{min-width:0}
.b-main [data-slot=button],.b-dialog [data-slot=button]{min-height:46px}
.b-main select,.b-dialog select,.b-main .b-select,.b-form-grid .b-select{font-size:16px}
.b-dialog{max-height:calc(100dvh - 24px)!important;overscroll-behavior:contain}
.b-dialog [data-slot=dialog-close]{width:44px;height:44px;top:6px;right:6px}
.b-dialog-title{padding-right:25px;overflow-wrap:anywhere}
.b-footer a,.m-footer a{display:inline-flex;align-items:center;min-height:44px}
.m-card p,.m-card li,.m-card summary,.m-banner,.b-info p{overflow-wrap:anywhere}
.m-site .m-card input:not([type=radio]):not([type=checkbox]),.m-site .m-card select,.m-site .m-card textarea{font-size:16px;min-width:0;max-width:100%}
.m-site .m-summary{top:104px}
.m-site .m-plans input{width:20px;height:20px;flex-shrink:0;margin-top:4px;accent-color:#17462e}
.m-site .m-steps span{flex-shrink:0}
.m-site .m-actions>*{max-width:100%;white-space:normal}
.m-site .m-check{min-height:44px}

@media(max-width:1100px){
  .header{padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right))}
  .b-header,.m-site .m-header{padding:12px max(20px,env(safe-area-inset-right)) 12px max(20px,env(safe-area-inset-left));gap:16px}
  .b-header .responsive-menu-toggle,.m-site .m-header .responsive-menu-toggle{display:flex;align-items:center;justify-content:center;gap:9px;margin-left:auto;background:transparent;color:#fff;border:1px solid #ffffff60;border-radius:3px;padding:9px 13px;min-height:46px;font-size:14px}
  .responsive-menu-toggle span{font-size:21px;line-height:1}
  .b-header .responsive-nav,.m-site .m-header .responsive-nav{display:none;position:absolute;left:0;right:0;top:100%;background:#111210;padding:12px max(24px,env(safe-area-inset-left)) 24px;border-top:1px solid #ffffff30;max-width:none;max-height:calc(100vh - 80px);max-height:calc(100dvh - 80px);overflow-y:auto;overscroll-behavior:contain;box-shadow:0 15px 30px #0004}
  .m-site .m-header .responsive-nav{background:#102c22}
  .b-header .responsive-nav.is-open,.m-site .m-header .responsive-nav.is-open{display:flex;flex-direction:column;align-items:stretch;gap:0}
  .b-header .responsive-nav a,.m-site .m-header .responsive-nav a{min-height:50px;padding:12px 0;border:0;border-bottom:1px solid #ffffff25;font-size:16px;line-height:1.5}
  .header .navigation{max-height:calc(100vh - 80px);max-height:calc(100dvh - 80px);padding-bottom:max(24px,env(safe-area-inset-bottom))}
}
@media(max-width:900px){
  .course-grid{grid-template-columns:1fr}
  .course-grid article,.course-grid article+article{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px 28px;padding:26px 0;border-left:0}
  .course-grid article+article{border-top:1px solid #44473f}
  .course-grid .course-index{grid-column:1/-1}
  .course-grid h3{font-size:clamp(32px,4.8vw,43px);margin:0}
  .course-grid p{font-size:15px;margin:0}
  .pricing-layout{grid-template-columns:minmax(0,1fr);gap:30px}
  .pricing-intro>p:not(.eyebrow),.mini-tariffs{max-width:none}
  .price-card .term-picker{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nutrition-contact-layout{grid-template-columns:minmax(0,1fr);gap:32px}
  .nutrition-contact-layout>div>p{max-width:650px}
  .m-site .m-layout{grid-template-columns:minmax(0,1fr)}
  .m-site .m-summary{position:static;order:-1;padding:22px}
  .m-site .m-summary img{display:none}
  .m-site .m-plans{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .training-panel{grid-template-columns:minmax(0,1fr)}
  .training-image{min-height:300px;height:300px}
  .start-steps,.nutrition-teaser-layout{grid-template-columns:minmax(0,1fr)}
  .start-steps{gap:24px}
  .nutrition-teaser-image{aspect-ratio:4/3}
  .section-heading{display:block}
  .section-heading>p,.section-heading>div:last-child:not(:first-child){max-width:none;margin-top:22px}
  .drinks-feature .drinks-photo img{max-height:none;width:100%;height:auto;object-fit:contain}
  .drinks-feature .drinks-copy h3{font-size:clamp(34px,8vw,50px)}
  .m-site .m-plans,.m-site .m-fields{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:480px){
  .wrap{width:calc(100% - 36px)}
  .header{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));gap:8px}
  .header .brand,.nutrition-page .header .brand{width:96px}
  .header .header-cta{padding:10px;font-size:12px}
  .nutrition-page .header .menu-toggle{width:44px}
  .hero .hero-content{padding-top:32px;padding-bottom:32px}
  .hero h1{font-size:clamp(36px,10.6vw,51px)}
  .hero .eyebrow{font-size:10px;letter-spacing:.1em}
  .hero .hero-actions .button{width:100%}
  .hero-proof{line-height:1.8}
  .hero-proof .divider{display:none}
  .training-text{padding:26px 22px}
  .training-tabs{display:grid;grid-template-columns:1fr;gap:0;border:1px solid var(--line)}
  .training-tabs button{text-align:left;padding:13px 16px;font-size:15px;white-space:normal;border-bottom:1px solid var(--line)}
  .training-tabs button[aria-selected=true]{background:#e9e4db;border-left:3px solid var(--bronze);border-bottom:1px solid var(--line);padding-left:13px}
  .course-grid article,.course-grid article+article{grid-template-columns:1fr;gap:12px}
  .course-grid h3{font-size:38px}
  .course-grid p{font-size:15px}
  .week-days{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
  .week-days button{border:1px solid #515447;padding:12px 4px;font-size:13px}
  .week-days button[aria-selected=true]{background:#c0a070;color:#111210;border-color:#c0a070}
  .studio-photo-grid{grid-template-columns:minmax(0,1fr);gap:28px}
  .studio-photo-frame img{aspect-ratio:4/3;object-position:center}
  .studio-photo-frame .photo-expand{width:44px;height:44px;font-size:22px}
  .club-teaser-offers a{flex-wrap:wrap;gap:8px 16px}
  .price-card{padding:26px 20px}
  .drinks-feature .drinks-copy{padding:28px 22px}
  .drinks-feature .drinks-price{flex-wrap:wrap;gap:12px 18px}
  .drinks-feature .drinks-price strong{font-size:74px}
  .drinks-feature .drinks-price>span{font-size:14px}
  .drinks-feature .drinks-terms{font-size:14px}
  .drinks-feature .drinks-cta{width:100%}
  .footer-inner{align-items:flex-start;flex-direction:column}
  .m-legal-links{justify-content:flex-start;gap:6px 18px}
  .trial-dialog{padding:38px 20px 24px}
  .trial-dialog h2{font-size:clamp(32px,10vw,42px)}
  .photo-dialog-controls{gap:8px;flex-wrap:wrap}
  .photo-dialog-controls button{padding:9px 12px}
  .b-main h1{font-size:clamp(36px,11vw,47px)}
  .b-course{grid-template-columns:58px minmax(0,1fr);gap:12px;padding:18px 14px}
  .b-main .b-course-title h3{font-size:27px;hyphens:auto}
  .b-form-grid{grid-template-columns:1fr}
  .m-site .m-steps{display:grid;grid-template-columns:1fr 1fr;gap:12px;font-size:13px}
  .m-site .m-steps li{align-items:flex-start;line-height:1.4}
  .m-site .m-heading h1{font-size:clamp(29px,8.8vw,40px);letter-spacing:-.7px}
  .m-site .m-actions>*{flex:1 1 100%;text-align:center}
  .m-site .m-summary .m-price small{display:block;margin-left:0}
  .m-site .m-card h2{font-size:24px;line-height:1.3}
}
@media(max-height:500px) and (max-width:1100px){
  html{scroll-padding-top:76px}
  .header,.b-header,.m-site .m-header{height:64px;min-height:64px;padding-top:6px;padding-bottom:6px}
  .header .brand,.b-header img,.m-header img{width:104px}
  .header .navigation{top:64px}
  .header .navigation,.b-header .responsive-nav,.m-site .m-header .responsive-nav{max-height:calc(100dvh - 64px)}
  .hero{min-height:0}
  .hero-content{padding-top:32px;padding-bottom:40px}
  .photo-dialog img{height:50dvh}
}
@media(hover:none){.button:hover{transform:none}.studio-photo-card:hover img{transform:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
