/* Membership-first refinement, preserving the existing Gym of Foley identity. */
.home-page .membership-hero{min-height:0}.home-page .membership-hero .hero-image{background-position:center;background-image:linear-gradient(90deg,#10151cf7,#10151ca8 70%,#10151c8c),linear-gradient(0deg,#10151c,transparent 35%),url('/assets/strength-lab-red-1280.webp')}
.home-page .membership-hero .hero-content{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(30px,5vw,72px);align-items:center;max-width:1500px;margin:auto;text-align:left;padding:52px 6% 65px}
.home-page .membership-hero h1{font-size:clamp(44px,4.9vw,76px);line-height:1.02;letter-spacing:-.015em;text-wrap:balance;margin:20px 0 22px;max-width:760px}.home-page .membership-hero h1 em{background:none;color:var(--accent);-webkit-text-fill-color:currentColor}
.home-page .membership-hero .hero-copy>p{font-size:18px;line-height:1.7;color:#d5dce5;max-width:580px}.hero-membership{margin:22px 0 24px;padding-left:18px;border-left:3px solid var(--brand-red)}.hero-membership>span{font-size:14px;font-weight:600;color:#dce2e9}.hero-membership>p{line-height:1.2!important;margin:7px 0;color:#fff!important}.hero-membership strong{font-size:46px;letter-spacing:-.035em}.hero-membership p>span{font-size:18px;color:#dce2e9}.hero-membership small{display:block;max-width:420px;font-size:13px;line-height:1.65;color:#c4cbd5}
.home-page .membership-hero .hero-actions{justify-content:flex-start;max-width:none;margin:0;gap:12px;flex-wrap:wrap}.membership-hero .hero-actions .button{font-size:14px;min-height:52px;padding:15px 21px}
.membership-hero .hero-media{min-width:0;align-self:center}.membership-hero .hero-video{width:100%;max-width:500px;margin:0 auto}.membership-hero .hero-video h2{font-size:30px;line-height:1.15;margin:0 0 17px;letter-spacing:0}.membership-hero .hero-video-frame{min-height:0}.membership-hero .hero-video figcaption{text-align:left!important;font-size:13px}.membership-hero .hero-media-note{font-size:14px;line-height:1.65;margin:14px auto 0;max-width:500px}.hero-media-note a{text-decoration:underline;text-underline-offset:3px}.home-page .membership-hero .hero-bottom{left:6%;right:6%;bottom:18px}.home-page .membership-hero .hero-bottom>span{font-size:11px;line-height:1.5}
.nav-assistant{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:6px 9px;background:transparent;border:1px solid #657080;border-radius:5px;color:#fff;font-size:14px;font-weight:600;white-space:nowrap}.nav-assistant img{border-radius:50%;flex-shrink:0}.nav-assistant:hover{background:#29323f}.nav-assistant[hidden]{display:none}
.home-page .passes{padding-top:65px}.home-page .passes .section-heading{margin-bottom:30px}.home-page .passes .section-intro{font-size:18px;line-height:1.7;max-width:740px;margin-top:23px;color:#c4cbd5}.plan-group+.plan-group{margin-top:40px}.plan-group-heading{display:flex;justify-content:space-between;align-items:baseline;gap:24px;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:24px}.plan-group-heading h3{font-size:31px;line-height:1.2;letter-spacing:0}.plan-group-heading>p{font-size:14px;line-height:1.65;max-width:390px;color:#c4cbd5}
.home-page .pass-card{padding:25px}.pass-card h4{font-family:'Barlow Condensed','Arial Narrow',Impact,sans-serif;font-size:31px;line-height:1.12;margin:15px 0 0;font-weight:700;letter-spacing:0}.pass-card>.eyebrow{font-size:11px;line-height:1.6;letter-spacing:.11em}.home-page .pass-card .plan-price{flex:0;display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;color:#fff;font-size:16px;line-height:1.3;margin:19px 0 18px}.plan-price strong{font-size:38px;line-height:1.05;letter-spacing:-.025em}.plan-price span{font-size:14px;color:#c4cbd5}.home-page .pass-card>p:not(.plan-price){font-size:16px;line-height:1.75;margin:0 0 24px}.home-page .pass-card .button{font-size:14px;line-height:1.45;min-height:50px;justify-content:center;padding:14px 12px;letter-spacing:0;text-align:center}.plan-terms{font-size:14px;line-height:1.8;color:#c4cbd5;margin:20px 0 0;max-width:1000px}.plan-terms a,.pass-note a{color:#ff989c;text-decoration:underline;text-underline-offset:3px}
.prepaid-options{margin:32px 0 40px;border:1px solid #515c6b;background:#151c25}.prepaid-options>summary{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:24px 26px;cursor:pointer;list-style:none}.prepaid-options>summary::-webkit-details-marker{display:none}.prepaid-options>summary>span:first-child{display:flex;flex-direction:column;gap:7px}.prepaid-options>summary strong{font-family:'Barlow Condensed','Arial Narrow',Impact,sans-serif;font-size:31px;line-height:1.15}.prepaid-options>summary>span:first-child>span{font-size:15px;line-height:1.7;color:#c4cbd5}.prepaid-options>summary>span[aria-hidden]{font-size:27px;color:var(--accent)}.prepaid-options[open]>summary>span[aria-hidden]{transform:rotate(45deg)}.prepaid-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;padding:5px 26px 16px}.prepaid-grid>article{border-top:1px solid var(--line);padding-top:22px;min-width:0}.prepaid-grid h4{font-size:18px;margin:0 0 15px}.prepaid-grid .plan-price{margin-bottom:13px;display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}.prepaid-grid .plan-price strong{font-size:32px}.prepaid-grid a{display:inline-flex;align-items:center;min-height:44px;color:#ff989c;font-size:14px;text-decoration:underline;text-underline-offset:4px}.prepaid-options>.plan-terms{padding:0 26px 24px;margin-top:0}.guest-options .pass-card h4{margin-top:0}.guest-options .duration-warning{border-left:2px solid #e07d84;padding-left:13px;color:#e4ced2;font-size:14px!important;line-height:1.8!important}.plan-conflict{font-size:15px;line-height:1.8;padding:20px 23px;margin:22px 0 0;background:#292029;border:1px solid #72505b;color:#e4dce2}.plan-conflict a{color:#ffb0b4;text-decoration:underline;text-underline-offset:3px}.pass-note{font-size:14px;line-height:1.8}
.amenity-strip{margin-top:38px;padding:27px;border:1px solid var(--line);background:#151b24}.amenity-strip>h3{font-size:30px;line-height:1.2;margin:0 0 20px}.amenity-strip>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.amenity-strip>div>p{font-size:14px;line-height:1.8;color:#c4cbd5}.amenity-strip strong{font-size:16px;color:#fff}
.home-page .journey-section{display:block;padding-top:70px}.journey-section .section-heading{align-items:end;margin-bottom:32px}.journey-section .section-heading>p{max-width:380px}.journey-section h2{margin-top:16px}.journey-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.journey-card{display:flex;flex-direction:column;align-items:stretch;border:1px solid #465362;padding:26px;background:#171e28;min-width:0}.journey-card.booking-card{border-color:#ab5a68;background:linear-gradient(145deg,#32232e,#1a2029)}.journey-card>.eyebrow{font-size:11px;line-height:1.6;color:#d1b6bd;letter-spacing:.09em}.journey-card h3{font-size:34px;line-height:1.08;margin:17px 0 20px;letter-spacing:0}.journey-card>p{font-size:16px;line-height:1.8;color:#d1d8e2;margin-bottom:25px}.journey-card>.button{min-height:50px;font-size:14px;line-height:1.45;letter-spacing:0;text-align:center;justify-content:center;margin-top:auto;padding:14px 13px}.journey-card>.button[hidden]{display:none}.journey-card>.button:disabled{opacity:.65;cursor:wait}.journey-card .journey-status{font-size:13px;line-height:1.7;color:#d1d8e2;margin:14px 0 0}
.visit-details{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;margin-top:48px;padding-top:40px;border-top:1px solid var(--line)}.visit-details h3{font-size:34px;line-height:1.2;margin:17px 0 10px}.visit-details address{font-style:normal;font-size:18px;color:#d1d8e2;margin-bottom:22px}.visit-details>div>p:not(.plan-terms){font-size:16px;line-height:1.9;margin-bottom:20px;color:#d1d8e2}.visit-details .button{margin-top:24px;font-size:14px;min-height:48px}.visit-contact{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.visit-contact>img{width:150px;height:auto;max-width:100%;margin:0 0 5px}.visit-contact>h3{margin-top:12px}.visit-contact>a{font-size:16px;line-height:1.7;min-height:44px;display:inline-flex;align-items:center;text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}.visit-contact>.location-phone{font-size:23px;font-weight:600;margin-top:7px}.visit-contact>.plan-terms{margin:13px 0}.visit-contact>.inline-link{font-size:14px}.fitness-invitation{background:#151b24}.fitness-invitation .button{white-space:normal;justify-content:center;text-align:center}
/* Desktop help is in normal header/content flow, never above a conversion target. */
@media(min-width:901px){.contact-bar{display:none!important}.desktop-nav{gap:16px}.desktop-nav .nav-cta{padding:11px 16px}.brand-location{display:none}}
@media(max-width:1000px){.home-page .membership-hero .hero-content{gap:28px}.membership-hero .hero-actions .button{font-size:13px;padding:14px 16px}.hero-membership strong{font-size:42px}.journey-grid{gap:15px}.journey-card{padding:22px}.journey-card h3{font-size:31px}.visit-details{gap:40px}.plan-group-heading{align-items:flex-start}.pass-card h4{font-size:29px}.home-page .pass-card{padding:22px}}
@media(max-width:800px){.home-page .membership-hero .hero-content{grid-template-columns:1fr;padding:36px 6% 56px;gap:32px}.home-page .membership-hero h1{font-size:clamp(39px,7.5vw,60px);max-width:650px;margin-top:16px}.home-page .membership-hero .hero-copy>p{font-size:17px}.membership-hero .hero-media{max-width:540px;width:100%;margin:auto}.membership-hero .hero-video h2{font-size:28px}.home-page .passes{padding-top:48px}.plan-group-heading{display:block}.plan-group-heading>p{margin-top:12px;max-width:none}.prepaid-grid{grid-template-columns:1fr;gap:15px}.prepaid-grid>article{display:grid;grid-template-columns:1fr auto;gap:8px 20px;align-items:center}.prepaid-grid h4{margin:0}.prepaid-grid .plan-price{margin:0}.prepaid-grid>a,.prepaid-grid article>a{grid-column:1/-1}.amenity-strip>div{grid-template-columns:1fr;gap:18px}.journey-grid{grid-template-columns:1fr}.journey-card{padding:25px}.journey-card h3{font-size:32px;margin-bottom:16px}.journey-card>p{margin-bottom:23px}.journey-card>.button{max-width:420px}.visit-details{grid-template-columns:1fr;gap:35px}.visit-contact{border-top:1px solid var(--line);padding-top:25px}.visit-contact>img{display:none}.home-page .journey-section{padding-top:52px}}
@media(max-width:540px){.home-page .membership-hero h1{font-size:clamp(35px,9vw,46px);line-height:1.05}.home-page .membership-hero .hero-content{padding-top:25px}.home-page .membership-hero .hero-actions{display:grid;grid-template-columns:1fr;width:100%;gap:10px}.membership-hero .hero-actions .button{font-size:14px;width:100%;min-height:50px}.hero-membership{margin:18px 0 21px}.hero-membership strong{font-size:42px}.membership-hero .hero-video h2{font-size:26px}.membership-hero .hero-media-note{font-size:14px}.prepaid-options>summary{padding:21px}.prepaid-options>summary strong{font-size:28px}.prepaid-options>summary>span:first-child>span{font-size:14px}.prepaid-grid{padding-inline:21px}.prepaid-grid .plan-price strong{font-size:28px}.prepaid-grid .plan-price span{font-size:13px}.prepaid-options>.plan-terms{padding-inline:21px}.amenity-strip{padding:22px}.plan-conflict{padding:18px;font-size:14px}.visit-details h3{font-size:32px}.home-page .section-top .micro{display:none}.journey-status{font-size:13px!important}.contact-bar>a,.contact-bar .gym-chat-launcher{font-size:13px}}
@media(prefers-reduced-motion:reduce){.membership-hero .button{transition:none}}

.prepaid-options p{padding:0}.prepaid-options>.plan-terms{padding:0 26px 24px}@media(max-width:540px){.prepaid-options>.plan-terms{padding-inline:21px}}
/* Native validation/focus scrolling must account for the persistent dialog heading. */
#gym-chat{scroll-padding-block-start:110px;scroll-padding-block-end:20px}
#gym-chat :is(input,select,textarea,button,[tabindex="-1"]){scroll-margin-block-start:12px;scroll-margin-block-end:12px}
/* Keep keyboard-focused page controls above the fixed mobile quick-action bar. */
@media(max-width:900px){html{scroll-padding-block-end:calc(100px + env(safe-area-inset-bottom))}main :is(a,button,input,select,textarea,summary){scroll-margin-block-end:12px}}

/* Center public marketing content on phones while keeping working surfaces readable. */
@media(max-width:800px){
 .home-page .membership-hero .hero-content,
 .home-page .hero-copy,
 .home-page .section-top,
 .home-page .section-heading,
 .home-page .plan-group-heading,
 .home-page .pass-card,
 .home-page .prepaid-options,
 .home-page .amenity-strip,
 .home-page .journey-card,
 .home-page .visit-details,
 .home-page .fitness-invitation,
 .home-page .manifesto,
 .blog-page .blog-intro,
 .blog-page .article-heading,
 .fitness-page .fitness-intro{text-align:center}
 .home-page .membership-hero :is(h1,.hero-copy>p,.hero-membership small),
 .home-page .section-heading>p,
 .home-page .passes .section-intro,
 .home-page .plan-group-heading>p,
 .home-page .fitness-invitation p,
 .home-page .manifesto p,
 .home-page .pass-card p,
 .home-page :is(.plan-terms,.pass-note,.plan-conflict),
 .home-page .visit-details :is(p,address),
 .fitness-page .fitness-intro p{margin-inline:auto;text-align:center}
 .home-page .membership-hero .hero-actions,
 .home-page .section-top,
 .home-page .plan-price,
 .fitness-page .widget-nav{justify-content:center}
 .home-page .hero-membership{border-left:0;padding-left:0;margin-inline:auto}
 .home-page .membership-hero .hero-video figcaption{text-align:center!important}
 .home-page .hero-media-note,
 .home-page .video-title{text-align:center}
 .home-page .hero-bottom{justify-content:center}
 .home-page .hero-bottom>span{max-width:none;text-align:center}
 .home-page .plan-group-heading{display:block}
 .home-page .plan-group-heading>p{margin-top:14px}
 .home-page .pass-card{display:flex;flex-direction:column;align-items:center}
 .home-page .pass-card>.button{width:100%;max-width:420px;margin-inline:auto}
 .home-page .pass-card .duration-warning{border-left:0;border-top:2px solid #e07d84;padding:12px 0 0}
 .home-page .prepaid-options>summary{position:relative;justify-content:center;padding-inline:48px;text-align:center}
 .home-page .prepaid-options>summary>span:first-child{align-items:center}
 .home-page .prepaid-options>summary>span[aria-hidden]{position:absolute;inset-inline-end:18px}
 .home-page .prepaid-grid>article{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}
 .home-page .prepaid-grid .plan-price{justify-content:center}
 .home-page .journey-card>.button,
 .home-page .visit-details .button,
 .home-page .fitness-invitation .button{margin-inline:auto}
 .home-page .visit-contact{align-items:center;text-align:center}
 .home-page .faq details>summary{position:relative;justify-content:center;padding-inline:34px;text-align:center}
 .home-page .faq details>summary>span[aria-hidden]{position:absolute;inset-inline-end:0;width:30px;text-align:center}
 .home-page .faq details>p{padding-inline:12px;text-align:center}
 .home-page .blog-card-copy,
 .blog-page .blog-card-copy{align-items:center;text-align:center}
 .home-page .blog-card-copy>p,
 .blog-page .blog-card-copy>p{text-align:center}
 .blog-page .breadcrumbs,
 .blog-page .blog-search-controls{justify-content:center}
 .blog-page .blog-intro p{margin-inline:auto}
 .blog-page .blog-search{margin-inline:auto}
 .blog-page .blog-search>label,
 .blog-page .blog-search-status{text-align:center}
 .home-page footer,.blog-page footer,.fitness-page footer{justify-content:center;align-items:center;text-align:center}
 .home-page .footer-nav,.blog-page .footer-nav,.fitness-page .footer-nav{justify-content:center;text-align:center}
}
@media(max-width:900px){.mobile-menu>nav>a{justify-content:center;text-align:center}}
@media(max-width:800px){
 .home-page .map-options{justify-content:center}
 .home-page .art-label{left:6%;right:6%;text-align:center}
}

@media(max-width:800px){.home-page .journey-section .section-heading>p{text-align:center;margin-inline:auto}}
