/* Approved compact public layout. Private owner screens do not load this stylesheet. */
:root{--public-bg:#10151c;--public-panel:#191f27;--public-line:#46515e;--dock-height:calc(65px + max(8px,env(safe-area-inset-bottom,0px)))}
body,body :is(h1,h2,h3,h4,h5,p,small,span,dt,dd,address,label,summary,button,a,input,textarea,select,th,td,li,caption,legend){text-align:center!important}
body .section-heading,body .plan-group-heading{justify-content:center;text-align:center}body .section-heading{flex-direction:column;align-items:center}body .section-heading>p,body .section-heading>div>p,body .pass-card p,body .plan-terms,body .pass-note,body .plan-conflict,body .article-body,body .article-related,body .blog-card-copy,body .fitness-intro{text-align:center}body .article-body :is(ul,ol){list-style-position:inside;padding-inline:0}body .article-heading,body .blog-intro,body .blog-search>label,body .breadcrumbs{justify-content:center;text-align:center}body .blog-card-copy{align-items:center}body .article-body p,body .article-deck,body .section-heading p{margin-inline:auto}body .map-options,body .footer-nav,body .policy-links,body .analytics-choice>div{justify-content:center}
body .site-header{max-width:1280px;margin-inline:auto;padding:14px 4%;gap:24px;background:#10151c;border-bottom:1px solid #303842}body .site-header .brand-location{display:none}body .site-header .official-logo{width:128px;height:auto}body .desktop-nav{gap:20px;font-size:14px}body .nav-assistant{min-height:44px;border:1px solid #a6aeb8;padding:9px 14px;justify-content:center}body .desktop-more nav a,body .mobile-menu nav a,body .mobile-menu nav button{text-align:center;justify-content:center}body .mobile-menu nav button{width:100%}body .concept{font-size:11px}
body .compact-hero{max-width:1280px;padding:48px 5%;margin:auto;display:grid;grid-template-columns:1.08fr 1fr;gap:64px;align-items:center;background:none;min-height:0}body .compact-hero .hero-copy{padding:0;text-align:center}body .compact-hero h1{font-size:clamp(38px,4.25vw,62px);line-height:1.05;letter-spacing:-.025em;margin:0}body .compact-hero .eyebrow{font-size:12px;margin-bottom:16px}body .compact-hero .hero-copy>p:not(.eyebrow){font-size:18px;margin:22px auto;color:#c7cbd0;max-width:none}body .compact-hero .hero-copy>.hero-note{font-size:14px;margin:14px auto 0}body .compact-hero .hero-video{width:100%;margin:0;background:transparent;border:0;padding:0}body .compact-hero .hero-video h2{font-size:30px;margin:0 0 14px}body .compact-hero .hero-video-frame{width:100%;aspect-ratio:16/9;min-height:0;max-height:none;background:#060606;border:1px solid #51545a}body .compact-hero .hero-video-poster{height:100%;position:relative}body .compact-hero .video-thumbnail{height:100%;width:100%;object-fit:cover}body .compact-hero .hero-video figcaption{padding:10px 0 0;text-align:center!important;font-size:14px}body .compact-hero .video-title{font-size:13px}body .compact-hero iframe{width:100%;height:100%;border:0}
body.compact-home main>.section{max-width:1280px;margin:auto;padding:46px 5%;border-top:1px solid #333c47;content-visibility:visible}body.compact-home main>.section h2{font-size:42px;margin:0 0 25px}body.compact-home .eyebrow{font-size:12px}body .entry-plans{display:grid;grid-template-columns:1fr 1fr;gap:24px}body .entry-plan{padding:26px;background:var(--public-panel);border:1px solid var(--public-line);display:flex;flex-direction:column;align-items:center}body .entry-plan.primary{border-top:3px solid #c4000a;padding-top:24px}body .entry-plan h3{font-size:31px}body .entry-plan .price{margin:16px 0 0;color:#c7cbd0;font-size:16px}body .entry-plan .price strong{color:white;font:800 44px/1.2 'DM Sans',sans-serif;letter-spacing:-.04em}body .entry-plan .price-label{margin:5px 0 18px}body .entry-plan .button{margin-top:auto;min-width:min(100%,260px)}body .entry-plan .terms{margin:0 0 22px}body.compact-home .terms{font-size:14px;line-height:1.65;color:#c7cbd0}body.compact-home .checkout{margin:18px auto 0}body .amenities{border-top:1px solid var(--public-line);margin-top:24px;padding-top:18px;font-size:15px}body .amenities span{display:block;color:#c7cbd0;font-size:14px;margin-top:5px}
body .compact-visit{background:#141b23}body .compact-visit .visit-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}body .compact-visit h3{font-size:31px}body .compact-visit p{margin:10px auto 20px}body .compact-visit dl{margin:22px auto;max-width:420px}body .compact-visit dl>div{display:grid;grid-template-columns:1fr 1.25fr;gap:18px;margin-bottom:12px}body .compact-visit dt{font-weight:700}body .compact-visit dd{margin:0}body .compact-visit dd span{font-size:14px;color:#c7cbd0}body .compact-visit .phone{display:block;font-size:26px;margin:22px auto 8px;text-decoration:none}body .compact-visit .visit-actions>.button{margin-top:17px}body .contact-links,body .review-links{display:flex;gap:12px 20px;flex-wrap:wrap;justify-content:center}body .contact-links a{display:inline-flex;align-items:center;justify-content:center;color:#ff8c94;min-height:44px;text-underline-offset:4px}body .reviews .terms{margin-top:14px}body.compact-home main>.compact-latest{padding-block:30px}body .compact-latest h2{font-size:30px!important;max-width:850px;margin-inline:auto!important}body .compact-latest .blog-date{margin:8px 0 0}body .compact-latest .contact-links{margin-top:8px}
body footer{max-width:1280px;margin:auto;justify-content:center;align-items:center;text-align:center;gap:22px;padding:28px 5%;flex-wrap:wrap}body footer nav{justify-content:center;align-items:center}body footer .brand{justify-content:center}body .footer-location p{margin-inline:auto}body.public-detail-page .section{max-width:1280px;margin-inline:auto}body.public-detail-page h1{font-size:clamp(40px,5vw,64px);margin-bottom:18px}body.public-detail-page .plan-group-heading{display:block}body.public-detail-page .plan-group-heading p{margin:12px auto}body.public-detail-page .pass-card{display:flex;flex-direction:column;align-items:center}body.public-detail-page .plan-price{justify-content:center}body.public-detail-page .pass-card>.button{margin-top:auto}body.public-detail-page .prepaid-options summary{justify-content:center;position:relative;padding-inline:48px}body.public-detail-page .prepaid-options summary>span:first-child{align-items:center}body.public-detail-page .prepaid-options summary>span[aria-hidden]{position:absolute;right:18px}body.public-detail-page .visit-contact{align-items:center}body.public-detail-page .faq summary{position:relative;justify-content:center;padding-inline:34px}body.public-detail-page .faq summary>span[aria-hidden]{position:absolute;right:0;width:30px}body.public-detail-page .faq details>p{padding-inline:12px;text-align:center}
/* Native dialog remains the working AI, follow-up and booking surface. */
#gym-chat{position:fixed;inset:calc(var(--visual-top,0px) + 12px) 12px auto auto;width:min(470px,calc(100vw - 24px));height:min(780px,calc(var(--visual-height,100dvh) - 24px));max-height:calc(var(--visual-height,100dvh) - 24px);margin:0;overflow:hidden;padding:0}#gym-chat[open]{display:flex;flex-direction:column}#gym-chat .chat-heading{position:static;flex:0 0 auto;gap:8px;padding:12px 16px;align-items:center}#gym-chat .chat-heading>div{flex:1;min-width:0}#gym-chat .chat-heading h2{font-size:28px}#gym-chat .chat-body{min-height:0;flex:1 1 auto;overflow:auto;overscroll-behavior:contain;scroll-padding-block:16px;padding:16px}#gym-chat .chat-body[hidden]{display:none!important}#gym-chat .chat-body :is(input,textarea,select,button,a){scroll-margin-block:18px}#gym-chat .chat-log{max-height:32dvh;min-height:80px;overflow:auto;scroll-padding:10px}#gym-chat .chat-message{margin-inline:auto;text-align:center}#gym-chat .chat-suggestions,#gym-chat .chat-handoff{justify-content:center}#gym-chat .chat-compose textarea,#gym-chat textarea::placeholder{text-align:center}#gym-chat .chat-compose{min-width:0}#gym-chat .chat-compose textarea{min-width:0}#gym-chat .chat-signup-footer{order:10;flex:0 0 auto;background:#1a2029;padding:12px 16px max(10px,env(safe-area-inset-bottom));border-top:1px solid #606975}#gym-chat .chat-signup-footer .button{width:100%;min-height:44px;font-size:15px}#gym-chat .chat-signup-footer p{font-size:12px;line-height:1.4;margin:7px 0 0}body.chat-is-open{overflow:hidden}body.chat-is-open .contact-bar{visibility:hidden;pointer-events:none}#gym-chat.keyboard-compact .chat-heading{padding:6px 12px}#gym-chat.keyboard-compact .chat-heading h2{font-size:22px}#gym-chat.keyboard-compact .chat-heading p{font-size:11px;line-height:1.3}#gym-chat.keyboard-compact .chat-signup-footer{padding:6px 10px}#gym-chat.keyboard-compact .chat-signup-footer p{display:none}#gym-chat.keyboard-compact .chat-body{padding:12px}#gym-chat.keyboard-compact .chat-log{max-height:180px}
body .contact-bar{display:none}body .analytics-choice{text-align:center}body.policy-page nav[aria-label="Site pages"]{display:flex;gap:18px;flex-wrap:wrap;justify-content:center}
@media(max-width:1100px) and (min-width:901px){body .desktop-nav{gap:10px;font-size:12px}body .site-header{gap:12px;padding-inline:3%}body .desktop-nav .nav-assistant{font-size:12px;padding-inline:8px}}
@media(max-width:900px){body{padding-bottom:var(--dock-height)}html{scroll-padding-bottom:calc(var(--dock-height) + 18px)}main :is(a,button,input,summary){scroll-margin-bottom:calc(var(--dock-height) + 18px)}body .site-header{padding:12px 6%}body .site-header .official-logo{width:104px}body .contact-bar{display:flex;position:fixed;inset:auto 0 0 0;z-index:60;min-height:var(--dock-height);align-items:center;gap:6px;padding:8px 12px max(8px,env(safe-area-inset-bottom));background:#10151c;border-top:1px solid #626b77}body .contact-bar>a,body .contact-bar>button.gym-chat-launcher{position:static;inset:auto;display:flex!important;flex:1;align-items:center;justify-content:center;min-width:0;min-height:48px;border:0;border-radius:0;padding:8px 4px;margin:0;box-shadow:none;font-size:13px;line-height:1.3;text-decoration:none;text-align:center}body .contact-bar>button.gym-chat-launcher{flex:1.8;background:#c4000a;color:#fff}body .contact-bar>button.gym-chat-launcher[hidden]{display:none!important}body .contact-bar .gym-chat-launcher img{display:none}body .contact-bar .gym-chat-launcher span{white-space:normal}body footer{padding-bottom:28px}body .compact-hero{display:block;padding:30px 6%}body .compact-hero .hero-video{max-width:520px;margin:27px auto 0}body .compact-hero .hero-copy>.button{width:100%;max-width:520px}body.compact-home main>.section{padding:32px 6%}body .compact-hero h1{font-size:40px}body.compact-home main>.section h2{font-size:35px}body .entry-plans{grid-template-columns:1fr;gap:16px}body .entry-plan{padding:22px}body .entry-plan>.button{width:100%}body .compact-visit .visit-grid{grid-template-columns:1fr;gap:25px}body .compact-visit .visit-actions{border-top:1px solid var(--public-line);padding-top:24px}body .compact-visit .button{width:100%}body.public-detail-page .prepaid-grid>article{display:flex;flex-direction:column;align-items:center;gap:12px}body .review-links .button{width:100%}#gym-chat{inset:calc(var(--visual-top,0px) + 6px) 6px auto 6px;width:calc(100vw - 12px);height:calc(var(--visual-height,100dvh) - 12px);max-height:calc(var(--visual-height,100dvh) - 12px)}body.chat-is-open .contact-bar{display:none!important}}
/* The same public quick actions stay reachable on desktop; mobile rules above are unchanged. */
@media(min-width:901px){
 body:has(>.contact-bar){padding-bottom:calc(var(--dock-height) + 24px)}
 html:has(body>.contact-bar){scroll-padding-bottom:calc(var(--dock-height) + 42px)}
 body:has(>.contact-bar) :is(main,footer,.analytics-choice) :is(a,button,input,textarea,select,summary){scroll-margin-bottom:calc(var(--dock-height) + 42px)}
 body .contact-bar{display:flex!important;position:fixed;inset:auto 0 12px 0;z-index:60;width:min(680px,calc(100% - 48px));min-height:var(--dock-height);margin-inline:auto;align-items:center;gap:8px;padding:8px 12px max(8px,env(safe-area-inset-bottom));background:#10151c;border:1px solid #626b77;border-radius:12px;box-shadow:0 8px 28px #0006}
 body .contact-bar>a,body .contact-bar>button.gym-chat-launcher{position:static;inset:auto;display:flex!important;flex:1;align-items:center;justify-content:center;min-width:0;min-height:48px;border:0;border-radius:4px;padding:8px 12px;margin:0;box-shadow:none;font-size:14px;font-weight:700;line-height:1.3;text-decoration:none;text-align:center}
 body .contact-bar>button.gym-chat-launcher{flex:1.8;background:#c4000a;color:#fff}
 body .contact-bar>button.gym-chat-launcher[hidden]{display:none!important}
 body .contact-bar .gym-chat-launcher img{display:none}
 body .contact-bar .gym-chat-launcher span{white-space:normal}
 body .contact-bar>a:hover{background:#29323f}
 body.chat-is-open .contact-bar{display:none!important}
}
@media print{body,body:has(>.contact-bar){padding-bottom:0}body .contact-bar,#gym-chat{display:none!important}}

#gym-chat #chat-view{display:flex;flex-direction:column;overflow:hidden;padding:0}#gym-chat .chat-scroll-area{min-height:0;flex:1 1 auto;overflow:auto;overscroll-behavior:contain;padding:16px;scroll-padding:16px}#gym-chat .chat-scroll-area .chat-log{max-height:none;overflow:visible}#gym-chat #chat-form{flex:0 0 auto;margin:0;padding:10px 16px;background:#171d26;border-top:1px solid #414b59}#gym-chat #chat-form label{margin-bottom:5px}#gym-chat .chat-compose textarea{min-height:52px;max-height:110px;resize:vertical}#gym-chat.keyboard-compact #chat-form{padding:6px 10px}#gym-chat.keyboard-compact #chat-form label{font-size:12px;margin-bottom:3px}#gym-chat.keyboard-compact .chat-compose textarea{min-height:44px;height:44px;max-height:70px}#gym-chat.keyboard-compact .chat-scroll-area{padding:10px}
/* Preserve a readable transcript in short visual viewports without shrinking touch targets. */
#gym-chat.keyboard-compact #chat-form>label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#gym-chat.keyboard-compact .chat-signup-footer .button{min-height:44px;padding:8px 10px;font-size:14px;line-height:1.3}
body .plan-terms,body .pass-note,body .faq details>p{margin-inline:auto}
body.public-detail-page .section-heading{align-items:center}

/* Three source-backed latest articles, with the same licensed photos as the journal. */
body .compact-latest .home-blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
body .compact-latest .home-blog-card{min-width:0;overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--public-line);background:var(--public-panel)}
body .compact-latest .home-blog-copy{display:flex;flex-direction:column;align-items:center;gap:14px;padding:20px;flex:1}
body .compact-latest .home-blog-copy .blog-date{margin:0}
body .compact-latest .home-blog-card h3{font-size:28px;line-height:1.15;margin:0;letter-spacing:0;text-transform:none;overflow-wrap:break-word}
body .compact-latest .home-blog-card h3 a:hover{color:var(--accent)}
body .compact-latest .home-blog-excerpt{font-size:15px;line-height:1.65;color:#c7cbd0;margin:0}
body .compact-latest .home-blog-copy>.inline-link{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;margin-top:auto;color:#ff8c94}
body .compact-latest .contact-links{margin-top:20px}
@media(max-width:800px){body .compact-latest .home-blog-grid{grid-template-columns:1fr;max-width:560px;margin-inline:auto}}

/* Approved conversion hierarchy: preserve the compact brand and existing assets. */
body.compact-home .compact-hero .hero-offer{font-weight:800;color:#fff;font-size:23px;margin:22px auto 16px}
body .hero-actions{display:flex;flex-direction:column;gap:10px;align-items:center}
body .hero-actions>.button{width:100%;max-width:360px;min-height:48px}
body .benefit-strip{max-width:1152px;margin:0 auto;padding:18px 20px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;border-top:1px solid var(--public-line);border-bottom:1px solid var(--public-line);gap:12px;font-size:13px;font-weight:700;letter-spacing:.04em}
body .tour-path{margin-top:28px;padding-top:24px;border-top:1px solid var(--public-line)}body .tour-path h3{font-size:30px}body .tour-path p{margin:10px auto 18px}body .tour-path .terms{margin-bottom:0}
body .personal-training{background:var(--public-panel)}body .personal-training>p:not(.eyebrow){max-width:700px;margin:0 auto 24px}body .personal-training>.terms{margin:14px auto 0}
body.compact-home main>.supporting-tools{padding-block:25px}body .supporting-tools p{margin-bottom:10px}body .supporting-tools a{color:#ff8c94;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px}
body .footer-nav>button{font:inherit;background:none;color:inherit;border:0;padding:8px;min-height:44px;text-decoration:underline;text-underline-offset:4px}
body .conversion-dock>a,body .conversion-dock>button{flex:1;min-width:0;min-height:48px;padding:8px 4px;font-size:13px;line-height:1.3;text-decoration:none;display:flex;align-items:center;justify-content:center;border:0;border-radius:4px;background:transparent;color:#fff;font-weight:700}
body .conversion-dock>button.gym-chat-launcher{flex:1;background:transparent}
body .conversion-dock>.contact-join{background:#c4000a}
body .conversion-dock>.contact-join:hover{background:#a8060c}
body .conversion-dock>button:disabled{opacity:.55;cursor:not-allowed}
body .conversion-dock>button[hidden]{display:none!important}
@media(max-width:600px){body .benefit-strip{margin-inline:6%;padding-inline:0;grid-template-columns:1fr 1fr;font-size:12px}body .hero-actions>.button{max-width:none}body.compact-home .compact-hero .hero-offer{font-size:20px}body .conversion-dock{gap:2px;padding-inline:4px}body .conversion-dock>a,body .conversion-dock>button,body .conversion-dock>button.gym-chat-launcher{font-size:11px;padding-inline:3px}}

/* Keep appointment steps above the keyboard and remove unrelated purchase chrome. */
#gym-chat:has(#booking-view:not([hidden])) .chat-signup-footer,#gym-chat:has(#tour-view:not([hidden])) .chat-signup-footer{display:none!important}
#gym-chat .chat-heading{height:auto;min-height:0}
#gym-chat #booking-view{scroll-behavior:auto;overflow-anchor:none}
#gym-chat #booking-view>p.tour-intro{font-size:13px;line-height:1.5}
#gym-chat #booking-guide-question{scroll-margin-top:12px}
#gym-chat .tour-calendar{margin:10px 0 16px;width:100%;min-width:0}
#gym-chat .tour-calendar-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
#gym-chat .tour-calendar-nav button{min-width:44px;min-height:44px;background:#252e3a;color:#fff;border:1px solid #687585;border-radius:4px}
#gym-chat .tour-calendar-week,#gym-chat .tour-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}
#gym-chat .tour-calendar-week{font-size:12px;color:#d5d9df;margin-bottom:5px}
#gym-chat .tour-calendar-days button{min-width:0;min-height:40px;padding:6px 0;font-size:15px;background:#252e3a;color:#fff;border:1px solid #8291a6;border-radius:4px}
#gym-chat .tour-calendar-days button:disabled{color:#7c8592;background:#171d26;border-color:#343c48;cursor:not-allowed;text-decoration:line-through}
#gym-chat .tour-calendar-days button[aria-pressed="true"]{background:#b91c1c;border:2px solid #fff;color:#fff}
#gym-chat .tour-calendar .tour-help{font-size:12px;line-height:1.5;margin-top:8px}
#gym-chat.keyboard-compact:has(#booking-view:not([hidden])) .chat-heading p{display:none}
#gym-chat.keyboard-compact #booking-view{scroll-padding-block:12px}
#gym-chat.keyboard-compact .booking-guide-tools{gap:6px}
#gym-chat.keyboard-compact .booking-guide-tools .button{padding:10px 14px}

/* Highlight the two standard choices; all other day passes use the prepaid-style disclosure. */
body.public-detail-page .standard-grid,body.public-detail-page .recurring-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
body.public-detail-page .guest-options>.guest-grid{padding:5px 26px 0}
body.public-detail-page .guest-options>.plan-conflict{margin:22px 26px}
body.public-detail-page .standard-grid .featured-pass-caution{font-size:14px;line-height:1.65;color:#e4ced2}
body.public-detail-page #guest-passes{scroll-margin-top:24px}
@media(max-width:800px){body.public-detail-page .standard-grid,body.public-detail-page .recurring-grid{grid-template-columns:1fr}}
@media(max-width:540px){body.public-detail-page .guest-options>.guest-grid{padding-inline:21px}body.public-detail-page .guest-options>.plan-conflict{margin-inline:21px}}
