/* === ELEVATE POLISH (UI/UX audit 2026-10-23): override layer on top of the generated design system in
   Customizer → Additional CSS. Loaded by the plugin as its own stylesheet right after Additional CSS
   (inlined into Additional CSS it made the largest pages come out empty). Several footer/menu selectors carry
   an extra "body" because every page also prints the same rules in inline <style> blocks in its body. */

/* ---------- 1. Shared chrome ---------- */

/* Sticky header: the cookie-scroll snippet's html,body{overflow:auto!important} turned <body> into a scroll
   container, so nav.main (and every other sticky element) never stuck. html keeps overflow:auto so the page
   still scrolls while the cookie banner is open; body goes back to visible, clipped sideways. */
html body{overflow:visible!important;overflow-x:clip!important;}
/* ...widget parts that were written sticky but never stuck must now clear the 73px nav */
body #elevate-service .esd-sum{top:89px;}
body #elevate-locations .el-jumps{top:72px;}
body #elevate-gift-cards .egc-sticky{position:static;}
/* ...the /nearby-gym/ Mixed / Ladies-only tabs are a child of the whole page, so once sticky they stayed pinned over
   the closing band and the footer: keep them in the flow, as live today */
body .grouptabs{position:static;}
/* ...coach page photo: --etm-host-top is measured where the top bar sits at scroll 0, so the photo stuck under the
   73px header while scrolling */
body #elevate-team-marketplace .etm-p-media{top:max(var(--etm-host-top,24px),89px);}
@container etm (max-width:639px){body #elevate-team-marketplace .etm-p-media{top:0;}} /* phones: the photo is in the flow there */

/* "SERVICES" was the only nav item in caps with 2px tracking (Astra button style) */
body .navlinks .navdrop > button{text-transform:none;letter-spacing:normal;}

/* Hero copy sits on the 1180 column with the logo and breadcrumb (.wrap is a flex item of .hero, so
   margin:auto shrink-wrapped and centred it at a different x on every page). Centred heroes stay centred. */
.hero > .wrap{width:100%;}

/* Footer: Astra's .ast-hfb-header .site-footer adds 90px top and 30px side padding. Keep room under the legal
   line so the WhatsApp button no longer sits on Privacy Policy / Cookie Settings / Sitemap at the page end. */
body .site-footer.site-footer:has(> .ft-main){padding:0;}
body:has(.wa-float) .site-footer.site-footer:has(> .ft-main){padding-bottom:84px;}

/* Footer 901-1100px: 4 link columns left the 5th grid track empty and the brand CTA stretched 976px */
@media(min-width:901px) and (max-width:1100px){
  body .site-footer .ft-main{grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 24px;}
  body .site-footer .ft-brand{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1fr);
    grid-template-areas:"logo addr soc" "text addr cta";column-gap:32px;align-items:start;}
  body .site-footer .ft-brand > a:first-child{grid-area:logo;}
  body .site-footer .ft-brand > p{grid-area:text;}
  body .site-footer .ft-brand > address{grid-area:addr;margin:0;}
  body .site-footer .ft-brand > .ft-social{grid-area:soc;margin:0;}
  body .site-footer .ft-brand > .ft-cta{grid-area:cta;margin-top:16px;}
}
@media(min-width:901px){body .site-footer .ft-brand .ft-cta{display:inline-block;justify-self:start;width:auto;}}
/* tablet: accordion columns in 2 grid columns left a tall empty column beside the open one */
@media(max-width:900px){body .site-footer.has-acc .ft-main{grid-template-columns:1fr;gap:18px;}}
@media(max-width:560px){body .site-footer .ft-bottom{text-align:center;}}
/* footer links were all forced white by an old Astra rule: no hover, orange accents lost */
body .site-footer .ft-col ul a:not(.ft-all),body .site-footer .ft-bottom a{color:var(--muted)!important;}
body .site-footer .ft-col ul a:not(.ft-all):hover,body .site-footer .ft-bottom a:hover,body .site-footer .ft-col ul a:focus-visible{color:#fff!important;}
body .site-footer .ft-all,body .site-footer .ft-region a{color:#ff6b62!important;}
body .site-footer address a{color:#fff!important;}
body .site-footer .ft-region{text-wrap:balance;} /* the wider line left a lone "·" on the Arabic second line */

/* Phone menu: the page's inline <style> re-declares .mobile-menu and drops the slide-out transition,
   the 100dvh height and the safe-area padding */
.mobile-menu.mobile-menu{transition:transform .25s,visibility .25s;}
@media(max-width:900px){.mobile-menu.mobile-menu{height:100dvh;padding-bottom:calc(24px + env(safe-area-inset-bottom,0px));}}
@media(prefers-reduced-motion:reduce){.mobile-menu.mobile-menu{transition:none;}}

/* Breadcrumb bar was 65px tall on desktop (44px touch rows only needed for touch; iPads stay 44px) */
@media(min-width:901px) and (hover:hover) and (pointer:fine){.crumb .wrap a,.crumb .wrap span{min-height:0;} .crumb .wrap{padding-top:13px;padding-bottom:13px;}}
/* "عربي" sat ~2px above "EN" in the language pill */
.lang [lang="ar"]{padding-bottom:0;padding-top:3px;}

/* Pages with no phone CTA bar (plugin pages): the WhatsApp bubble was still lifted 86px for it */
@media(max-width:900px){body:not(:has(.mobile-cta)) .wa-float{bottom:calc(18px + env(safe-area-inset-bottom,0px));}}
/* Pages that embed the booking form: the CTA bar and WhatsApp bubble sat on the form's Continue button */
@media(max-width:900px){
  body:has(.elevate-book-form) .mobile-cta,
  body:has(.elevate-book-form) a.wa-float{display:none!important;}
  body:has(.elevate-book-form){padding-bottom:env(safe-area-inset-bottom,0px)!important;}
}
/* /gift-cards/: hide the bottom bar while typing in the gift-card widget (the custom amount sits outside its form) */
@media(max-width:900px){
  body:has(#elevate-gift-cards :is(input,textarea,select):focus) .mobile-cta,
  body:has(#elevate-gift-cards :is(input,textarea,select):focus) a.wa-float{display:none!important;}
}
/* Landscape phones: sticky header + CTA bar left 248 of 390px, so the header scrolls away there */
@media(max-height:500px) and (max-width:900px){
  html body nav.main{position:relative;}
  body #elevate-locations .el-jumps{top:0;}
}

/* Single-button heroes on phones are full width like the two-button ones */
@media(max-width:420px){.hero-inner > .btn{display:block;width:100%;text-align:center;}}
/* Centred page-title heroes used two H1 sizes (56px / 42px) */
@media(min-width:1200px){.hero:not(.wide-scrim) h1:not([class]),.hero:not(.wide-scrim) h1.h1-md{font-size:48px;line-height:1.04;}}
/* Studio heroes: badges touched the H1 */
.hero h1 + .badges{margin-top:18px;}
@media(max-width:560px){.hero h1 + .badges{margin-top:14px;}}

/* Stat bars (7 Studios / 40+ Coaches ...) kept a 44px gap between wrapped rows on some pages */
@media(max-width:560px){.infobar .wrap:not(:has(> .info > .ic)){gap:16px 28px!important;}}

/* Privacy policy H1 inherited Astra's global 144px / 72px */
.article > h1.h1-xs{font-size:clamp(32px,4.2vw,46px)!important;line-height:1.05!important;}

/* Forms: radio dots sat under their caps labels (refer, careers, BMI + calorie calculators EN/AR) */
.cfield .radios{gap:4px 22px;}
.cfield .radios label{display:inline-flex;flex-direction:row;align-items:center;gap:10px;min-height:44px;margin:0;
  text-transform:none;letter-spacing:0;font-size:15px;font-weight:500;color:#e7e9ec;}
.cfield .radios input[type="radio"]{flex:0 0 auto;width:20px;height:20px;margin:0;padding:0;border:0;border-radius:50%;
  background:none;accent-color:var(--orange);color-scheme:dark;}
.cfield label span[style]{text-transform:none;letter-spacing:0;}

/* ---------- 2. Grids and galleries ---------- */

/* Odd card counts in 2-column grids (561-900px) left one card alone on the last row: centre it */
@media(min-width:561px) and (max-width:900px){
  :is(.grid3,.lcards,.grid4,.blog-post .rel-grid) > :last-child:nth-child(odd):not(:first-child){grid-column:1 / -1;justify-self:center;width:calc(50% - 10px);}
}
/* 4 cards in a 3-column grid ("Training available" on mixed studios) went 3 + 1 */
@media(min-width:1101px){.grid3:has(> :nth-child(4):last-child){grid-template-columns:repeat(4,minmax(0,1fr));}}
@media(min-width:901px) and (max-width:1100px){.grid3:has(> :nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr));}}

/* 7 service cards (home, services): centre the incomplete last row; one "Learn more" line per row */
.svc-list > .svc{display:flex;flex-direction:column;}
.svc-list > .svc .go{margin-top:auto;padding-top:14px;}
.svc-list > .svc .svc-tag{align-self:flex-start;justify-self:start;}
@media(min-width:901px){
  .svc-list:has(> :nth-child(7):last-child){grid-template-columns:repeat(8,minmax(0,1fr));}
  .svc-list:has(> :nth-child(7):last-child) > *{grid-column:span 2;}
  .svc-list:has(> :nth-child(7):last-child) > :nth-child(5){grid-column:2 / span 2;}
}
@media(min-width:561px) and (max-width:900px){
  .svc-list:has(> :nth-child(7):last-child){grid-template-columns:repeat(4,minmax(0,1fr));}
  .svc-list:has(> :nth-child(7):last-child) > *{grid-column:span 2;}
  .svc-list:has(> :nth-child(7):last-child) > :last-child{grid-column:2 / span 2;}
}
/* ...compact icon-left service cards on phones (the homepage was 13,500px long) */
@media(max-width:560px){
  .svc-list{gap:12px;}
  .svc-list > .svc{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:14px;row-gap:0;align-items:start;padding:18px;}
  .svc-list > .svc > *{grid-column:2;}
  .svc-list > .svc > .ic{grid-column:1;grid-row:1 / span 5;width:44px;height:44px;margin:0;border-radius:11px;}
  .svc-list > .svc > .ic svg{width:22px;height:22px;}
  .svc-list > .svc h3{font-size:18px;margin-bottom:4px;}
  .svc-list > .svc > p{margin-bottom:0;}
  .svc-list > .svc .go{padding-top:10px;}
}

/* "Inside Elevate" photo gallery: the 3-photo variant filled 10 of 12 columns and dropped photo 3 onto its
   own row; portraits lost their heads */
@media(min-width:901px){
  .pgal.n3{grid-auto-rows:300px;}
  .pgal.n3 > .pg:first-child{grid-column:span 6;}
  .pgal.n3 > .pg:not(:first-child){grid-column:span 3;}
}
@media(min-width:561px) and (max-width:900px){
  .pgal.n3{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:300px;}
  .pgal.n3 > figure,.pgal.n3 > figure:first-child{grid-column:span 1 !important;}
  .pgal.n4 > figure:first-child{grid-column:span 1 !important;}
}
.pgal .pg.r4-5 img{object-position:50% 20%;}
@media(max-width:560px){.pgal > figure:first-child{grid-column:1 / -1 !important;} .pgal > figure.r4-5{grid-row:span 2;}}

/* Instagram feed: 1 column on phones stacked six squares to ~2,200px */
@media(max-width:560px){.ig-feed #sb_instagram #sbi_images{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;}}
/* Testimonial photo wall (16 tiles) went 5x3+1 on tablets */
@media(min-width:561px) and (max-width:900px){.gallery:has(> .gtile img){grid-template-columns:repeat(4,1fr);}}
/* Homepage: the coach strip's own "View all coaches" line duplicated the button below it */
body.home #elevate-team-marketplace .etm-more{display:none;}
/* /blogs/ on phones: 15 text-only cards ~170px tall each: icon beside the title */
@media(max-width:560px){
  .grid3:has(> a.card:nth-child(10)){gap:12px;}
  .grid3:has(> a.card:nth-child(10)) > a.card{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:14px;align-items:center;padding:16px 18px;}
  .grid3:has(> a.card:nth-child(10)) > a.card .ic{width:44px;height:44px;margin:0;grid-row:1 / span 2;}
  .grid3:has(> a.card:nth-child(10)) > a.card h3{margin:0 0 4px;align-self:end;}
  .grid3:has(> a.card:nth-child(10)) > a.card .go{align-self:start;}
}

/* ---------- 3. CRM widgets in the page ---------- */

/* Widgets render client-side into empty mounts: hold a screen of space so the footer no longer paints in
   the first screen and then jumps ~2000px (desktop CLS 0.11-0.77) */
#elevate-service:empty,#elevate-gift-cards:empty,#elevate-compare:empty{min-height:100vh;min-height:100svh;}
body.elevate-locations-page #elevate-locations:not([data-el-ready]){min-height:100vh;}
/* /the-trainers/: hold the space from "Loading coaches…" until the coach list has drawn (the swap goes through an
   empty widget root, which let the closing band flash into view) */
body.page-id-6702 :is(#tgrid:has(> #tloading),#elevate-team-marketplace:not(:has(*))){min-height:100vh;min-height:100svh;}
/* Service pages: the buy/plan widget sat outside any .wrap, so it ran edge to edge (0-1440 on desktop,
   touching the glass on phones) and its first heading touched the hero */
#svc.svc-widget{max-width:1180px;margin-inline:auto;padding:64px 24px 0;box-sizing:border-box;}
@media(max-width:560px){#svc.svc-widget{padding:44px 16px 0;}}
@media(min-width:1200px){body:has(#svc > #elevate-service) .hero-inner{max-width:720px;}}
body:has(#svc > #elevate-service) .hero h1{text-wrap:balance;}
/* ...price matrix: at 700-980px it got ~430px beside the summary card and cut prices off ("182.700 O…") */
@container esd (min-width:700px) and (max-width:979.98px){
  .svc-widget #elevate-service .esd-pick-body{grid-template-columns:minmax(0,1fr);}
  .svc-widget #elevate-service .esd-sum{position:static;}
}
#svc #elevate-service .esd-buy{padding-bottom:0;}
#svc #elevate-service .esd-pick-note{text-align:center;margin-top:-12px;}
/* ...section rhythm and heading scale = the site's .sec-head / section.block */
#svc #elevate-service .esd-sec{margin-bottom:72px;}
#svc #elevate-service .esd-sec-head{margin-bottom:32px;max-width:640px;}
#svc #elevate-service .esd-sec-head h3{font-size:clamp(24px,6vw,34px);line-height:1.06;}
#svc #elevate-service .esd-sec-head p{font-size:15px;}
#svc #elevate-service .esd-blurb{margin-bottom:56px;}
#svc #elevate-service .esd-blurb p{font-size:16px;max-width:640px;margin-inline:auto;}
#svc #elevate-service .esd-card p{font-size:14.5px;}
#svc #elevate-service .esd-step p{font-size:14px;}
#svc #elevate-service .esd-why-tag{font-size:12px;}
@media(min-width:1200px){#svc #elevate-service .esd-sec-head h3{font-size:40px;}}
@media(max-width:560px){#svc #elevate-service .esd-sec{margin-bottom:56px;}#svc #elevate-service .esd-blurb{margin-bottom:44px;}}
/* ...closing "Ready to start?" band = the site's full-bleed red band (was a rounded card glued to the screen
   edges, text at 3.3:1) */
#svc #elevate-service .esd-final{margin-top:0;border-radius:0;padding:88px 24px;background:linear-gradient(135deg,#B9241F,var(--red));border-image:linear-gradient(135deg,#B9241F,var(--red)) fill 0//0 100vmax;}
#svc #elevate-service .esd-final h3{font-size:clamp(26px,6.5vw,36px);}
#svc #elevate-service .esd-final p{color:#fff;font-size:16px;max-width:600px;}
@media(max-width:900px){#svc #elevate-service .esd-final{padding:60px 24px;}}
#svc #elevate-service[data-slug="corporate-wellness"] .esd-final{display:none;} /* the proposal form below is the close */
/* ...currency readable inside the green Save pill and the Buy button */
#svc #elevate-service .esd-save .esd-cur,#svc #elevate-service .esd-cta .esd-cur{color:inherit;opacity:.85;}
#svc #elevate-service .esd-cta{column-gap:.35em;}
/* ...phone: "How it works" as a compact numbered list instead of four centred blocks (~640px) */
@container esd (max-width:520px){
  #svc #elevate-service .esd-steps{gap:20px;}
  #svc #elevate-service .esd-step{display:grid;grid-template-columns:36px minmax(0,1fr);column-gap:14px;text-align:start;padding:0;}
  #svc #elevate-service .esd-step-num{grid-row:1 / span 2;margin:0;}
  #svc #elevate-service .esd-step h4{align-self:center;}
  #svc #elevate-service .esd-step p{margin-top:4px;}
}
/* ...type floor: the widget sizes in rem and Astra sets html{font-size:91.2%}, so labels fell to 9-10px */
.svc-widget #elevate-service .esd-best{font-size:11px !important;}
.svc-widget #elevate-service[dir="rtl"] .esd-best{font-size:12px !important;}
.svc-widget #elevate-service :is(.esd-seg label small,.esd-save,.esd-tile-per,.esd-tile-sub,.esd-mrowhead small){font-size:12px;}
.svc-widget #elevate-service .esd-cur{font-size:max(.85em,11px);}

/* /services/ compare table needs ~910px: show the cards up to 959px, 2 per row on tablets */
@media(max-width:959px){
  body #elevate-compare .ecmp-tablewrap{display:none;}
  body #elevate-compare .ecmp-cards{display:grid;}
}
@media(min-width:600px) and (max-width:959px){
  body #elevate-compare .ecmp-cards{grid-template-columns:repeat(2,minmax(0,1fr));}
  body #elevate-compare .ecmp-card-link{height:100%;align-content:start;}
}
@media(min-width:700px) and (max-width:959px){ /* prices split over two lines in the 2-up cards */
  body #elevate-compare .ecmp-card-from:has(> b > bdi){max-width:none;flex:none;}
  body #elevate-compare .ecmp-card-from > b:has(> bdi){white-space:nowrap;}
}
/* ...the 4-answer "Help me choose" quiz went 3 + 1 */
@media(min-width:481px){#elevate-compare .ecmp-opts:has(> :nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr));}}
/* ...sub-heads bigger than the section title on phones; 168px gap before Compare */
@media(max-width:560px){.sec-head h2[style*="font-size:26px"]{font-size:20px!important;}}
section.block + section#compare.block{padding-top:16px;}

/* /free-consultation/ phones: shorter hero so the form starts on the first screen */
@media(max-width:560px){
  body:has(.elevate-book-form) header.hero{min-height:0!important;}
  body:has(.elevate-book-form) header.hero .hero-inner{padding:26px 0 30px;}
  body:has(.elevate-book-form) header.hero .hero-inner p{font-size:15px;}
  body:has(.elevate-book-form) section.block:has(.elevate-book-form){padding-top:20px;}
}

/* ---------- 4. Service pages ---------- */

/* Pilates + weight-loss long-form pages: readable measure, real H2 scale, same hero as the other service pages,
   FAQ questions in sentence case */
.page-id-7822 .article,.page-id-7824 .article{max-width:680px;}
.page-id-7822 .article p,.page-id-7824 .article p,.page-id-7822 .article li,.page-id-7824 .article li{font-size:16px;}
.page-id-7822 .article h2,.page-id-7824 .article h2{font-size:clamp(24px,5vw,30px);margin:44px 0 12px;}
.page-id-7822 header.hero,.page-id-7824 header.hero{min-height:440px!important;}
.page-id-7822 .hero h1.h1-md,.page-id-7824 .hero h1.h1-md{font-size:clamp(28px,7.5vw,48px);text-wrap:balance;}
@media(max-width:560px){.page-id-7822 .hero h1.h1-md,.page-id-7824 .hero h1.h1-md{font-size:clamp(32px,8.6vw,48px);}}
@media(min-width:1200px){.page-id-7822 .hero h1.h1-md,.page-id-7824 .hero h1.h1-md{font-size:56px;line-height:1.02;}}
.page-id-7822 .qa h3,.page-id-7824 .qa h3{font-family:'Inter',sans-serif;text-transform:none;letter-spacing:0;font-weight:700;font-size:15.5px;line-height:1.4;}

/* Corporate: client logos centre their last row; proposal-form checkboxes as 44px sentence-case rows */
@media(max-width:1100px){.cl-grid{display:flex;flex-wrap:wrap;justify-content:center;}.cl-grid > .cl-tile{flex:0 0 calc((100% - 36px) / 4);}}
@media(max-width:560px){.cl-grid > .cl-tile{flex-basis:calc((100% - 10px) / 2);}}
.cfield .checks{display:grid;gap:2px;}
.cfield .checks label{display:flex;align-items:center;gap:12px;min-height:44px;margin:0;font-size:15px;font-weight:500;text-transform:none;letter-spacing:0;color:var(--txt);cursor:pointer;}
.cfield .checks input[type="checkbox"]{width:20px;height:20px;margin:0;padding:0;flex:none;accent-color:var(--orange);}

/* ---------- 5. Studio and location pages ---------- */

/* Studio coach grid: centred rows (2 coaches left half a row empty, 5 left an orphan); 3 per row on tablets
   instead of 600px-tall cards */
#loc-coaches{display:flex;flex-wrap:wrap;justify-content:center;gap:18px;}
#loc-coaches > .tcard{flex:0 1 calc((100% - 54px) / 4);min-width:0;display:flex;flex-direction:column;}
#loc-coaches > .tcard .nm{flex:1;display:flex;flex-direction:column;align-items:center;}
#loc-coaches > .tcard .vp{margin-top:auto;}
@media(min-width:1101px){#loc-coaches:has(> :nth-child(5):last-child) > .tcard{flex-basis:calc((100% - 72px) / 5);}}
@media(max-width:1100px){#loc-coaches{gap:14px;} #loc-coaches > .tcard{flex-basis:calc((100% - 28px) / 3);}}
@media(max-width:560px){#loc-coaches > .tcard{flex-basis:calc((100% - 14px) / 2);}}

/* Studio info bar (address / hours / WhatsApp / parking) zig-zagged on tablet and phone; WhatsApp number was
   a 17px tap target */
@media(max-width:900px){
  body:has(#loc-coaches) .infobar .wrap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;justify-content:stretch;align-items:start;padding-top:16px;padding-bottom:16px;}
  body:has(#loc-coaches) .infobar .info{align-items:flex-start;min-width:0;}
  body:has(#loc-coaches) .infobar .info .ic{margin-top:2px;}
  body:has(#loc-coaches) .infobar .info a{display:inline-block;padding:12px 0;margin:-12px 0;}
}
@media(max-width:560px){body:has(#loc-coaches) .infobar .info:nth-child(-n+2){grid-column:1 / -1;}}
/* two adjacent dark bands (FAQ + quote) read as one band with a 168px hole */
body:has(#loc-coaches) section.block[style*="--ink2"] + section.block[style*="--ink2"],
body:has(#loc-coaches) section.block[style*="--ink2"] + script + section.block[style*="--ink2"]{padding-top:0;}
/* studio hero text width and height were different on every studio page */
@media(min-width:901px){body:has(#loc-coaches) .hero-inner{width:600px;max-width:100%;} body:has(#loc-coaches) .hero{min-height:540px;}}

/* /locations/: every studio photo was squashed to a 52px strip on phones */
@container el (max-width:520px){
  #elevate-locations .el-card-top.el-card-photo{height:172px;height:clamp(150px,46cqi,190px);}
}
/* ...4-up cards at a 976px container wrapped "Open in Google Maps": 2 x 2 until there is room */
@container el (min-width:901px) and (max-width:1100px){
  #elevate-locations .el-grid:not(.el-grid-3):not(.el-grid-1){grid-template-columns:repeat(2,minmax(0,1fr));}
}
/* ...ladies grid (3 cards) on a 2-column tablet left Shatti alone */
@container el (min-width:521px) and (max-width:900px){
  #elevate-locations .el-grid-3 > .el-card:last-child:nth-child(odd){grid-column:1 / -1;}
  #elevate-locations .el-grid-3 > .el-card:last-child:nth-child(odd) .el-card-photo{height:220px;}
}
body.elevate-locations-page .navlinks > a[href="/locations/"]::after{transform:scaleX(1);}
#elevate-locations #el-dubai .el-sec-head{text-align:start;max-width:none;margin:0 0 22px;padding-inline-start:14px;border-inline-start:3px solid #3678b4;}
#elevate-locations #el-dubai .el-grid-1{margin:0;}
body.elevate-locations-page #elevate-locations .el-final{margin-inline:calc(50% - 50vw);margin-bottom:-64px;border-radius:0;margin-top:44px;padding:64px 24px;background:linear-gradient(135deg,#B9241F,var(--red,#C81A20));}
@media(max-width:480px){body.elevate-locations-page #elevate-locations .el-final{margin-bottom:-48px;padding:48px 18px;}}
body.elevate-design-shell .crumb a{color:#EA2027;}
body.elevate-design-shell .crumb a:hover{color:#fff;}

/* ---------- 6. Articles, blog posts and tools ---------- */

/* Table-of-contents jumps stopped thousands of px short (smooth scroll + dimensionless lazy images) */
html:has(.blog-post){scroll-behavior:auto;}
.blog-post .article :is(h2,h3,h4){scroll-margin-top:12px;}
/* Invisible h3 in plain .article (BMI calculator, Arabic exercise articles): theme colour #1a1a1a at 32px */
.article > h3{color:#fff;font-size:20px;line-height:1.2;margin:26px 0 10px;}
/* Reading measure: 87 characters a line at 15.5px -> ~71 at 17px in 660px */
.blog-post .article,
:is(.page-id-6876,.page-id-6878,.page-id-6870,.page-id-7722,.postid-3659) .article{max-width:660px;}
.blog-post .article > p,.blog-post .article > ul > li,.blog-post .article > ol > li,
:is(.page-id-6876,.page-id-6878,.page-id-6870,.page-id-7722,.postid-3659) .article > p,:is(.page-id-6876,.page-id-6878,.page-id-6870,.page-id-7722,.postid-3659) .article > :is(ul,ol) > li{font-size:17px;line-height:1.7;}
@media(max-width:560px){
  .blog-post .article > p,.blog-post .article > ul > li,.blog-post .article > ol > li,
  :is(.page-id-6876,.page-id-6878,.page-id-6870,.page-id-7722,.postid-3659) .article > p,:is(.page-id-6876,.page-id-6878,.page-id-6870,.page-id-7722,.postid-3659) .article > :is(ul,ol) > li{font-size:16px;}
}
.blog-post .article h2,.article > h2{line-height:1.15;}
.blog-post .article h3{line-height:1.2;}
/* h4 fell back to the theme's Teko 16px, smaller than the body text */
.blog-post .article h4{font-family:'Inter',sans-serif;font-weight:700;font-size:17px;line-height:1.35;
  letter-spacing:0;text-transform:none;color:#fff;margin:24px 0 8px;}
/* buttons inside articles inherited the article link underline */
.article .btn{text-decoration:none;color:#fff;}
/* Calculator results: sentence answers were 14px condensed caps; phone stacks 3 short stats */
#rNext,#rMacros{font-family:'Inter',sans-serif;font-weight:700;text-transform:none;letter-spacing:0;line-height:1.45;}
@media(max-width:560px){
  #bmiResults .grid3,#calcResults .grid3{grid-template-columns:1fr 1fr;gap:12px;}
  #bmiResults .grid3 > :last-child,#calcResults .grid3 > :last-child{grid-column:1 / -1;}
  #bmiResults .grid3 .card,#calcResults .grid3 .card{padding:18px 14px;}
}
/* Post byline on phones ended in a dangling "·" */
@media(max-width:560px){
  .blog-post .bmeta{gap:4px 14px;}
  .blog-post .bmeta > span[aria-hidden="true"]{display:none;}
}
/* Featured images with a logo tab at the bottom edge: crop higher */
.blog-post .hero-bg:is([style*="How-to-lose-weight-fast.webp"],[style*="Gym-Workout-Plans.webp"],[style*="Gym-Equipment.png.webp"],[style*="Healthy-and-Unhealthy-Foods.png.webp"]){background-position:center 12%!important;}
@media(max-width:900px){
  .blog-post .hero-bg:is([style*="How-to-lose-weight-fast.webp"],[style*="Gym-Workout-Plans.webp"],[style*="Gym-Equipment.png.webp"],[style*="Healthy-and-Unhealthy-Foods.png.webp"]){background-size:auto 128%!important;background-position:center top!important;}
}

/* ---------- 7. Arabic pages (scoped to .ar-root / dir=rtl) ---------- */

/* CRM widget headings fell back to the system Arabic face at 400 (Anton has no Arabic): use Tajawal 800 */
.ar-root #elevate-service :is(.esd-intro h2,.esd-blurb h3,.esd-sec-head h3,.esd-step h4,.esd-final h3,.esd-buy-group-head h4,.esd-buy-form-head h4,.esd-sheet-head h4),
.ar-root #elevate-gift-cards :is(.egc-intro h2,.egc-amounts h3,.egc-sec-head h3,.egc-step h4,.egc-occ h4){font-family:'Tajawal',system-ui,sans-serif;font-weight:800;letter-spacing:0;text-transform:none;line-height:1.35;}
.ar-root #elevate-gift-cards :is(button,input,select,textarea){font-family:inherit;}
.ar-root #elevate-service :is(em,i,blockquote,.esd-quote,.esd-best){font-style:normal;}
/* Phone numbers (WhatsApp and tel links) read backwards in RTL ("8729 528 58 971+") */
.ar-root :is(a[href^="tel:"],a[href^="https://wa.me/"]){direction:ltr;unicode-bidi:isolate;}
/* WhatsApp bubble mirrors to bottom-left (it covered the start of Arabic headings and tags) */
.ar-root .wa-float{right:auto;left:22px;flex-direction:row;}
@media(max-width:900px){.ar-root .wa-float{right:auto;left:14px;}}
@media(min-width:901px){html[dir="rtl"] .cmplz-manage-consent{left:auto!important;right:16px!important;}}
/* Breadcrumb: the flipped separator grew the bar 12px and pushed the text up */
.ar-root .crumb .sep{display:inline-flex;}
/* Arabic is never tracked (cursive joins) and never upper-cased */
.ar-root :not(svg,svg *){letter-spacing:0!important;}
.ar-root :is(h1,h2,h3,h4,.display,.eyebrow,.badge,.btn,.go,.tag,.vp,.svc-tag,.gt,th,legend,.navdrop > button,.site-footer h3,.ft-tog),
.ar-root #elevate-service :is(.esd-best,.esd-why-tag,.esd-cta,legend){text-transform:none;}
/* Arabic type one step up from the Latin sizes; body line-height 1.75 */
.ar-root .eyebrow{font-size:14px;}
.ar-root .badge{font-size:13.5px;}
.ar-root .lcard .top .tag,.ar-root .svc-tag{font-size:13px;}
.ar-root :is(.svc .go,.body2 .go,.tcard .vp,.gt,.ghead span){font-size:14px;}
.ar-root .infobar .info span{font-size:14px!important;}
@media(max-width:560px){.ar-root .infobar .wrap:not(:has(> .info > .ic)):has(> .info:nth-child(4):last-child){display:grid!important;grid-template-columns:repeat(4,auto);justify-content:space-between;column-gap:8px!important;}} /* ...4 stats stay on one row */
.ar-root :is(.cfield label,.flabel){font-size:14px;}
.ar-root :is(.svc p,.body2 p,.stepc p,.card p){font-size:14.5px;}
.ar-root :is(p,li,blockquote){line-height:1.75;}
.ar-root .site-footer :is(h3,.ft-tog){font-weight:800;font-size:15px;color:#fff;}
.ar-root .site-footer :is(.ft-col a,li a){font-size:14px;}
@media(min-width:1200px){.ar-root .hero h1:not([class]){line-height:1.2;}}
/* service widget small print >= 12px in Arabic */
.ar-root #elevate-service .esd-tile-per,.ar-root #elevate-service .esd-tile-sub{font-size:max(12.5px,.8rem);}
.ar-root #elevate-service :is(.esd-trust,.esd-save){font-size:max(12px,.72rem);}
.ar-root #elevate-service .esd-best{font-size:max(12px,.74rem)!important;}
.ar-root #elevate-service .esd-seg label small{font-size:max(12px,.7rem);}
.ar-root #elevate-service .esd-why-tag{font-size:13px;}
.ar-root #elevate-service .esd-save .esd-cur{font-size:1em;}
/* Arabic articles: h3 colour/size, list numbers inside the text column */
.ar-root .article h3{color:#fff;font-size:19px;line-height:1.45;margin:28px 0 10px;}
.ar-root .article ol{color:#c9ccd2;margin:0 22px 16px 0;}
/* Arabic home "Meet the team" (3 static cards): no empty 4th column, no orphan on phones */
.ar-root .tgrid:has(> .tcard:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr));max-width:880px;margin-inline:auto;}
@media(max-width:560px){.ar-root .tgrid:has(> .tcard:nth-child(3):last-child){grid-template-columns:repeat(2,minmax(0,1fr));} .ar-root .tgrid:has(> .tcard:nth-child(3):last-child) > .tcard:last-child{grid-column:1 / -1;justify-self:center;width:calc(50% - 9px);}}

/* ---------- 8. Company, trust and trainer pages ---------- */

/* Consent checkbox and file picker on the dark forms (careers, ebooks): inherited the text-field styles */
.cfield.checks label{display:flex;align-items:flex-start;gap:10px;min-height:44px;margin:0;padding-block:12px;
  text-transform:none;letter-spacing:0;font-size:14px;font-weight:500;color:#e7e9ec;line-height:1.45;cursor:pointer;}
.cfield.checks input{flex:none;width:20px;height:20px;min-height:0;margin:1px 0 0;padding:0;border:0;background:none;accent-color:var(--orange);}
.cfield input[type="file"]{padding:9px 12px;color:#cfd3d9;font-size:14px;cursor:pointer;}
.cfield input[type="file"]::file-selector-button{margin-inline-end:14px;padding:9px 18px;border:1px solid var(--line);
  border-radius:999px;background:#272220;color:#fff;font:600 13px/1.2 'Inter',sans-serif;cursor:pointer;transition:border-color .15s;}
.cfield input[type="file"]::file-selector-button:hover{border-color:var(--orange);}

/* Privacy policy: ~99-character lines */
.article:has(> h1.h1-xs){max-width:680px;}
.article:has(> h1.h1-xs) > p,.article:has(> h1.h1-xs) li{font-size:16px;}
.article:has(> h1.h1-xs) h2{margin-top:40px;scroll-margin-top:96px;}

/* About: the H2 was bigger than the phone H1; the CTA was centred inside the left text column;
   4 number cards stacked one per row on phones */
.about h2{font-size:clamp(24px,6vw,32px);}
.about > div[style*="text-align:center"]{text-align:start!important;}
@media(max-width:560px){
  .grid4:has(> .card > h3[style*="Anton"]){grid-template-columns:1fr 1fr;gap:12px;}
  .grid4 .card:has(> h3[style*="Anton"]){padding:20px 10px;}
  .grid4 .card > h3[style*="Anton"]{font-size:30px!important;}
  .infobar .wrap[style*="gap:44px"]{display:grid;grid-template-columns:1fr 1fr;gap:18px 12px!important;} /* careers, franchise */
}
/* Astra's p{margin-bottom:1em} left 14px of dead space under the last line of every card */
:is(.card,.stepc,.qa,.nap,.ctabox,.oc-cat) > p:last-child{margin-bottom:0;}
.sec-head p{margin-bottom:0;}

/* Testimonials: the 16 review screenshots were unreadable at 2 columns on phones: a swipe strip instead */
@media(max-width:900px){.gallery:has(> .gtile[style*="aspect-ratio:auto"]){display:grid;grid-template-columns:none;
  grid-auto-flow:column;grid-auto-columns:min(46%,340px);gap:14px;overflow-x:auto;overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:10px;scrollbar-width:thin;}
  .gallery:has(> .gtile[style*="aspect-ratio:auto"]) > .gtile{scroll-snap-align:start;}}
@media(max-width:560px){.gallery:has(> .gtile[style*="aspect-ratio:auto"]){grid-auto-columns:84%;}}
.quote .body{padding-inline-end:30px;} /* the quote mark sat on the first line */

/* Photo crops that cut heads off */
.about-img img[src*="elevate-coach-on-the-training-floor"]{object-position:center 2%;}
.hero-bg[style*="coach-spotting-a-client-on-the-incline-bench"]{background-position:center 6%!important;}
/* E-books hero: a 729px image of two covers stretched across 1440px, the covers' lettering under the H1 */
.hero-bg[style*="Ebooks.webp"]{background-repeat:no-repeat!important;background-size:100% 100%,auto 92%!important;
  background-position:0 0,right max(24px,calc((100vw - 1180px) / 2 + 24px)) center!important;background-color:#181513;}
@media(max-width:900px){.hero-bg[style*="Ebooks.webp"]{background-size:100% 100%,auto 58%!important;background-position:0 0,right 16px bottom 18px!important;opacity:.6;}}
@media(max-width:560px){.hero-bg[style*="Ebooks.webp"]{background-size:100% 100%,0 0!important;opacity:1;}}

/* /the-trainers/ at 901-1100px: 3 columns of 493px-tall cards (list 44% taller than on desktop) */
@media(min-width:901px) and (max-width:1100px){#elevate-team-marketplace.etm-index .etm-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;}}
section.block > .wrap > p:has(> #tcount){display:none;} /* leftover "Filter by gender or studio" caption */
/* Coach pages sat 6px off the site column */
body #elevate-team-marketplace[data-theme="dark"].etm-page.etm-flush{padding-inline:24px;}
@media(max-width:560px){body #elevate-team-marketplace[data-theme="dark"].etm-page.etm-flush{padding-inline:16px;}}
/* Coach page with no photo: the empty 4:5 box filled the first phone screen */
@container etm (max-width:639px){
  #elevate-team-marketplace .etm-p-media:not(:has(img)){aspect-ratio:16/7;width:100%;}
  #elevate-team-marketplace .etm-p-media:not(:has(img)) .etm-d-initials{font-size:56px;}
}
#elevate-team-marketplace .etm-p:has(.etm-d-initials){align-items:center;}
/* Coach page phone bar: "BOOK A CONSULTATION" wrapped to two lines (bar 91px tall) */
@media(max-width:900px){
  #elevate-team-marketplace .etm-p-bar{flex-wrap:nowrap;}
  #elevate-team-marketplace .etm-p-bar .etm-btn{flex:1 1 auto;min-width:0;padding-inline:12px;white-space:nowrap;letter-spacing:.02em;}
  #elevate-team-marketplace .etm-p-bar .etm-btn:first-child{flex-grow:1.6;}
}
/* Coach page phone: the round WhatsApp bubble sat on the pinned bar's own WhatsApp button */
@media(max-width:900px){
  body.elevate-coach-page:has(.etm-p-bar:not(.is-off)) .wa-float{opacity:0;visibility:hidden;pointer-events:none;}
  body.elevate-coach-page .wa-float{transition:opacity .2s,visibility .2s;}
}

/* Website lead forms (.cform: corporate, careers, franchise, refer, e-books): hide the phone CTA bar and the WhatsApp
   bubble while typing; the bar repeated the page CTA under the form's own Send button and covered its last 69px */
@media(max-width:900px){
  body:has(form.cform :is(input,textarea,select):focus) .mobile-cta,
  body:has(form.cform :is(input,textarea,select):focus) a.wa-float{display:none!important;}
}
