/*
  Theme Name:   Transform 180
  Description:  Custom theme for Transform 180 gym — Seattle
  Author:       Oncotton LTD
  Author URI:   https://oncotton.net
  Version:      3.0.2
*/

/* ── Reset ──────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
html{line-height:1.15;-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:hidden}
body{margin:0;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
img,svg,video{display:block;max-width:100%}
button,input,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}
button{cursor:pointer}
address{font-style:normal}
[hidden]{display:none}
::selection{background:var(--wp--preset--color--primary);color:#fff}

/* ── Design tokens ───────────────────────────────────── */
:root{
  --pad:clamp(20px,4vw,56px);
  --line:#0d0d0d;
  --soft:#f4f4f4;
  --chalk:#ededed;
  --mono:var(--wp--preset--font-family--geist-mono);
  --sans:var(--wp--preset--font-family--geist);
  /* WCAG AA-safe muted text — black at 60% opacity clears 4.5:1 on every
     background this theme uses text on (white #fff, soft #f4f4f4, footer
     #f9f8f6): 5.74:1 / 5.58:1 / 5.64:1 respectively. Replaces the various
     rgba(0,0,0,.3–.5) "muted label" values that were failing contrast. */
  --muted-ink:rgba(0,0,0,.6);
  /* WCAG AA-safe red for small/thin text. The brand primary (#e83f44) is
     fine for large text, fills, and buttons, but fails 4.5:1 as small
     text on white/soft/footer. This is #e83f44 darkened ~11%: 4.56–5.25:1
     across every background it's used on (incl. the pale-pink tag chip). */
  --primary-text-safe:#d51a1f;
}

/* ── Typography classes ──────────────────────────────── */
body{font-family:var(--wp--preset--font-family--geist);color:var(--wp--preset--color--black);background:var(--wp--preset--color--white)}
.font-mono,.tnum-el{font-family:var(--wp--preset--font-family--geist-mono)}

/* Display type — weight 900, super-tight tracking, uppercase, tight leading */
.display-type{font-weight:900;letter-spacing:-0.045em;line-height:0.86;text-transform:uppercase}
.display-type-mixed{font-weight:900;letter-spacing:-0.045em;line-height:0.9}

/* Tabular numbers */
.tnum{font-variant-numeric:tabular-nums}

/* ── Headings ────────────────────────────────────────── */
h1,h2,h3,h4,h5,h6{font-family:var(--wp--preset--font-family--geist);word-break:keep-all;hyphens:none;-webkit-hyphens:none;margin:0;padding:0}
h1{font-size:var(--wp--preset--font-size--xxl);font-weight:900;letter-spacing:-0.045em;line-height:0.86;text-transform:uppercase}
h2{font-size:var(--wp--preset--font-size--xl);font-weight:900;letter-spacing:-0.045em;line-height:0.86}
h3{font-size:var(--wp--preset--font-size--lg);font-weight:700}
h4{font-size:var(--wp--preset--font-size--md);font-weight:700}
h5{font-size:var(--wp--preset--font-size--sm);font-weight:600}
h6{font-size:var(--wp--preset--font-size--xs);font-weight:600}
h1 a,h2 a,h3 a,h4 a,h5 a{text-decoration:none}
p{margin:0 0 1em;padding:0}
p:last-child{margin-bottom:0}
b,strong{font-weight:700}

/* ── Site logo (text fallback) ───────────────────────── */
.site-title{font-family:var(--wp--preset--font-family--geist);font-weight:900;font-size:1.3rem;letter-spacing:-0.04em;color:inherit;display:inline-block;text-transform:uppercase}
.site-logo{color:inherit;text-decoration:none;display:inline-flex;align-items:center;flex-shrink:0}
.site-branding{display:flex;align-items:center;flex-shrink:0;min-width:0}
/* Prevent SVG logo from being squashed by flex layout */
.site-branding svg,.site-logo svg{flex-shrink:0;height:64px;width:auto}
@media(max-width:820px){.site-branding svg,.site-logo svg{height:36px}}

/* ── Header — utility strip + main bar ──────────────── */
.site-header{position:sticky;top:0;z-index:100;background:var(--wp--preset--color--white);border-bottom:1px solid var(--wp--preset--color--black);transition:transform .3s ease}
body.nav-hide .site-header{transform:translateY(-110%)}
/* transform:none (not translateY(0)) — any transform here makes the fixed
   off-canvas nav/search positioned relative to the header box instead of the
   viewport, so it can't fill the screen. */
body.nav-open .site-header,body.search-open .site-header{transform:none!important}
body.nav-open,body.search-open{overflow:hidden}
body.admin-bar .site-header{top:0}
body.admin-bar.scrolled .site-header{top:32px}
@media(max-width:820px){body.admin-bar .site-header{top:46px}}
@media(prefers-reduced-motion:reduce){.site-header{transition:none;transform:none}}

/* Utility strip */
.header-utility{background:var(--wp--preset--color--black);color:rgba(255,255,255,.82)}
.header-utility-inner{max-width:var(--wp--style--global--wide-size);margin:0 auto;padding:0 var(--pad);height:36px;display:flex;align-items:center;justify-content:space-between;font-family:var(--wp--preset--font-family--geist-mono);font-size:11.5px;text-transform:uppercase;letter-spacing:.18em;gap:16px}
.header-utility a{color:rgba(255,255,255,.7);text-decoration:none;transition:color .2s ease}
.header-utility a:hover{color:var(--wp--preset--color--primary)}
.header-utility-left{display:flex;align-items:center;gap:20px}
.header-utility-right{display:flex;align-items:center;gap:16px}
@media(max-width:600px){
  /* Utility strip — condensed mobile version: drop the live-status group and
     Member Login, keep phone + Book a Tour on a single non-wrapping line. */
  .header-utility-inner{height:34px;gap:18px;font-size:10px;letter-spacing:.1em;justify-content:flex-end}
  .header-utility-left{display:none}
  .header-utility-right{gap:18px;white-space:nowrap}
  .header-utility-right a:nth-child(2){display:none}
}

/* Live dot */
.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--wp--preset--color--primary);flex-shrink:0;animation:livepulse 2s ease-out infinite}
@keyframes livepulse{0%{box-shadow:0 0 0 0 rgba(232,63,68,.55)}70%{box-shadow:0 0 0 12px rgba(232,63,68,0)}100%{box-shadow:0 0 0 0 rgba(232,63,68,0)}}

/* Main header bar */
.header-container{display:flex;align-items:center;justify-content:space-between;gap:24px;height:92px;padding:0 var(--pad);max-width:var(--wp--style--global--wide-size);margin:0 auto}
.header-actions{display:flex;align-items:center;gap:8px}

/* Logo image — constrain to header height */
.site-logo img,
img.custom-logo,
.custom-logo-link img,
.site-branding img{height:64px;width:auto;display:block;max-height:64px}
@media(max-width:820px){
  .site-logo img,img.custom-logo,.custom-logo-link img,.site-branding img{height:36px;max-height:36px}
  .header-container{height:64px}
}

/* Nav links always dark — header is always solid white */
#site-navigation .menu>li>a,
.site-title,
.header-actions a:not(.btn),
.floating-search{color:var(--wp--preset--color--black)}
.mobile-menu .bar{background:var(--wp--preset--color--black)}

/* ── Desktop nav ─────────────────────────────────────── */
/* ── Desktop nav — matches JS breakpoint 1081px ─────── */
@media(min-width:1081px){
  #site-navigation{flex:1;margin:0 32px;font-size:13px}
  #site-navigation .menu{display:flex;align-items:center;gap:4px;justify-content:flex-end;margin:0;padding:0;list-style:none}
  #site-navigation .menu>li{position:relative;list-style:none}
  #site-navigation .menu>li>a{display:inline-block;padding:8px 14px;text-decoration:none;color:inherit;font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:12.5px;transition:color .2s ease}
  #site-navigation .menu>li>a:hover{color:var(--wp--preset--color--primary)}
  .mobile-menu{display:none!important}
  .nav-close{display:none!important}

  /* + indicator on parent link */
  #site-navigation .menu > .menu-item-has-children > a::after{
    content:'+';
    font-family:var(--wp--preset--font-family--geist-mono);
    font-size:14px;
    font-weight:400;
    line-height:1;
    margin-left:4px;
    vertical-align:middle;
    color:var(--wp--preset--color--primary);
    transition:transform .15s ease
  }
  #site-navigation .menu > .menu-item-has-children:hover > a::after,
  #site-navigation .menu > .menu-item-has-children:focus-within > a::after{
    display:inline-block;transform:rotate(45deg)
  }

  /* Dropdown panel — brutalist: white bg, red top border, hard black offset shadow */
  #site-navigation .menu > .menu-item-has-children > .sub-menu{
    display:block;
    position:absolute;
    top:100%;
    right:0;
    min-width:200px;
    background:#fff;
    border:1px solid var(--wp--preset--color--black);
    box-shadow:4px 4px 0 0 var(--wp--preset--color--black);
    list-style:none;
    margin:0;padding:0;
    visibility:hidden;
    opacity:0;
    transition:opacity .12s ease,visibility 0s .12s;
    z-index:300
  }
  #site-navigation .menu > .menu-item-has-children:hover > .sub-menu,
  #site-navigation .menu > .menu-item-has-children:focus-within > .sub-menu{
    visibility:visible;opacity:1;
    transition:opacity .12s ease,visibility 0s 0s
  }

  /* Dropdown items */
  #site-navigation .menu > .menu-item-has-children > .sub-menu > li{
    list-style:none;
    border-bottom:1px solid rgba(0,0,0,.08)
  }
  #site-navigation .menu > .menu-item-has-children > .sub-menu > li:last-child{border-bottom:none}
  #site-navigation .menu > .menu-item-has-children > .sub-menu > li > a{
    display:flex;
    align-items:center;
    gap:8px;
    padding:16px 22px;
    font-size:11px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.12em;
    color:var(--wp--preset--color--black);
    text-decoration:none;
    white-space:nowrap;
    transition:color .1s,background .1s
  }
  #site-navigation .menu > .menu-item-has-children > .sub-menu > li > a::before{
    content:'→';
    font-family:var(--wp--preset--font-family--geist-mono);
    font-size:12px;
    color:var(--wp--preset--color--primary);
    flex-shrink:0;
    transition:transform .1s ease
  }
  #site-navigation .menu > .menu-item-has-children > .sub-menu > li > a:hover{
    color:var(--wp--preset--color--primary);
    background:rgba(0,0,0,.03)
  }
  #site-navigation .menu > .menu-item-has-children > .sub-menu > li > a:hover::before{
    transform:translateX(3px)
  }
}

/* ── Mobile hamburger (< 1081px) ─────────────────────── */
.mobile-menu{display:inline-flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:44px;height:44px;border:none;background:transparent;padding:0;color:inherit}
.mobile-menu .bar{width:22px;height:2px;border-radius:0;background:currentColor;transition:transform .35s cubic-bezier(.16,1,.3,1),opacity .2s ease;display:block}
body.nav-open .mobile-menu .bar:nth-child(1){transform:translateY(8px) rotate(45deg)}
body.nav-open .mobile-menu .bar:nth-child(2){opacity:0;transform:scaleX(0)}
body.nav-open .mobile-menu .bar:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* ── Full-screen mobile nav ──────────────────────────── */
@media(max-width:1080px){
  /* Full-screen overlay — dark, bold */
  #site-navigation.offcanvas{
    position:fixed;
    inset:0;
    width:100%;
    height:100dvh;
    transform:translateX(100%);
    transition:transform .5s cubic-bezier(.16,1,.3,1);
    background:var(--wp--preset--color--black);
    overflow-y:auto;
    overflow-x:hidden;
    z-index:200;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:clamp(60px,10vh,100px) clamp(24px,7vw,80px)
  }
  #site-navigation.offcanvas.is-open{transform:translateX(0)}

  /* Close button — top-right corner of full-screen nav */
  .nav-close{
    position:absolute;
    top:clamp(16px,4vw,28px);
    right:clamp(20px,6vw,40px);
    width:48px;height:48px;
    display:inline-flex;align-items:center;justify-content:center;
    border:1px solid rgba(255,255,255,.25);
    background:transparent;
    color:#fff;
    padding:0;
    transition:border-color .2s,color .2s,background .2s
  }
  .nav-close:hover{
    border-color:#fff;
    background:rgba(255,255,255,.08);
    color:var(--wp--preset--color--primary)
  }

  /* Sub-menu — inline secondary links beneath the parent.
     Real tap targets: ≥40px tall via padding, clear row/column gaps
     so wrapped lines never sit on top of each other. */
  /* 2-column grid: four subpages sit as a tidy 2×2 instead of one
     cramped or wrapping row */
  #site-navigation .sub-menu{
    display:grid;grid-template-columns:repeat(2,minmax(0,max-content));
    gap:2px 28px;
    list-style:none;margin:6px 0 14px;padding:0
  }
  #site-navigation .sub-menu > li{list-style:none}
  #site-navigation .sub-menu > li > a{
    display:inline-block;
    font-size:clamp(.75rem,3.2vw,.9rem);
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.07em;
    color:rgba(255,255,255,.55);
    text-decoration:none;
    padding:10px 0;
    transition:color .2s ease
  }
  #site-navigation .sub-menu > li > a:hover{color:rgba(255,255,255,.9)}

  /* Nav list */
  #site-navigation .menu{
    list-style:none;
    margin:0;
    padding:0;
    display:flex;
    flex-direction:column;
    gap:4px
  }

  /* Each nav link — large, bold, display style */
  #site-navigation .menu>li>a{
    display:block;
    padding:10px 0;
    font-size:clamp(2rem,8.5vw,5rem);
    font-weight:900;
    letter-spacing:-0.04em;
    text-transform:uppercase;
    line-height:1;
    color:#fff;
    text-decoration:none;
    transition:color .2s ease
  }
  #site-navigation .menu>li>a:hover,
  #site-navigation .menu>li.current-menu-item>a{
    color:var(--wp--preset--color--primary)
  }

  /* Footer strip inside mobile nav */
  #site-navigation .menu::after{
    content:'';
    display:block;
    width:40px;
    height:2px;
    background:var(--wp--preset--color--primary);
    margin-top:clamp(28px,5vh,48px)
  }

  /* CTAs inside the off-canvas — stacked, full-width */
  #site-navigation .nav-cta-mobile{
    display:flex;
    flex-direction:column;
    gap:12px;
    margin-top:clamp(28px,5vh,48px);
    width:100%;
    max-width:360px;
  }
  #site-navigation .nav-cta-mobile .btn{
    width:100%;
    justify-content:center;
    height:50px;
    font-size:13px;
  }
  /* Size the arrow icon — the inline SVG has no width/height and was
     ballooning to the full button width on the taller mobile buttons. */
  #site-navigation .nav-cta-mobile .btn .arrow{
    width:18px;height:18px;flex-shrink:0
  }
  /* Outline CTA on the dark slideout: white instead of black-on-black */
  #site-navigation .nav-cta-mobile .btn-v-secondary{
    color:#fff!important;
    border-color:#fff!important;
    background-image:linear-gradient(135deg,transparent calc(50% - .75px),#fff calc(50% - .75px),#fff calc(50% + .75px),transparent calc(50% + .75px))!important;
  }
  #site-navigation .nav-cta-mobile .btn-v-secondary:hover{
    background-color:#fff!important;
    color:var(--wp--preset--color--black)!important;
  }
}

/* Mobile-only CTAs — hidden on desktop (shown only inside off-canvas) */
.nav-cta-mobile{display:none}

/* ── Nav overlay ─────────────────────────────────────── */
.nav-overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:150;height:100vh}
.nav-overlay.is-active{opacity:1;pointer-events:auto}
.nav-overlay[hidden]{display:block}

/* ── Nav CTA ─────────────────────────────────────────── */
.nav-cta{display:flex;align-items:center;gap:8px}
@media(max-width:480px){.nav-cta{display:none}}

/* ── Search button ───────────────────────────────────── */
.floating-search{background:transparent;width:32px;height:32px;padding:0;border:0;display:inline-flex;align-items:center;justify-content:center;line-height:0;color:inherit}
.floating-search svg{width:18px;height:18px;display:block}

/* ── Search overlay ──────────────────────────────────── */
.search-overlay{position:fixed;inset:0;z-index:300;display:grid;place-items:start center;padding:clamp(24px,4vw,48px);visibility:hidden;opacity:0;transition:opacity .25s ease,visibility 0s linear .25s;background:rgba(0,0,0,.7);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);pointer-events:none}
.search-overlay.is-open{visibility:visible;opacity:1;pointer-events:auto;transition:opacity .25s ease,visibility 0s}
.search-overlay__box{width:min(900px,92vw);margin-top:clamp(8vh,14vh,24vh)}
.search-overlay__form{position:relative;background:#fff;border:none;display:flex;align-items:center;min-height:70px;padding:0 60px 0 24px}
.search-overlay__input{appearance:none;border:0;outline:0;width:100%;font-size:clamp(18px,1.6vw,22px);background:transparent;color:#0d0d0d;font-family:inherit}
.search-overlay__submit{position:absolute;right:0;display:inline-grid;place-items:center;width:56px;height:100%;border:0;background:#0d0d0d;color:#fff}
.search-overlay__close{position:fixed;top:14px;right:14px;width:44px;height:44px;border:1px solid rgba(255,255,255,.5);color:#fff;background:transparent;display:grid;place-items:center;font-size:22px;line-height:1}
.search-overlay__results{margin-top:2px}
.search-overlay__list{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.search-item{position:relative}
.search-item__link{display:grid;gap:3px;padding:12px 16px;text-decoration:none;color:inherit;background:rgba(255,255,255,.95);border:none}
.search-item__link:hover{background:#fff}
.search-item__title{font-weight:700;font-size:15px}
.search-item__type{font-size:.82rem;opacity:.55;font-family:var(--wp--preset--font-family--geist-mono);text-transform:uppercase;letter-spacing:.1em}
.search-overlay__empty,.search-overlay__hint{color:#fff;padding:6px 2px;font-size:.92rem}
body.search-open .floating-search,body.search-open .mobile-menu{opacity:0;visibility:hidden;pointer-events:none}
.search-open .header-container{display:none}

/* ── BUTTON SYSTEM — chamfered corner ────────────────── */
/*
  All buttons get a chamfered (clipped) bottom-right corner.
  The diagonal border line is a background-image gradient that
  "draws" the diagonal stroke in the cut area.
  --notch = corner cut size
  --border-col = colour of the diagonal line (matches border/surface)
*/
.btn-tri,.btn-tri-sm,.btn-tri-lg,
.wp-block-button__link,
.btn {
  --notch: 10px;
  --border-col: transparent;
  position:relative;
  white-space:nowrap;
  border-radius:0!important;
  clip-path:polygon(0 0,100% 0,100% calc(100% - var(--notch)),calc(100% - var(--notch)) 100%,0 100%);
  /* Diagonal edge line — drawn ~1px INSIDE the clip diagonal. At 50% the
     clip cuts straight through the line's middle, leaving a sub-pixel
     sliver that reads as "no border" on the chamfer. */
  background-image:linear-gradient(135deg,transparent calc(50% - 2.25px),var(--border-col) calc(50% - 2.25px),var(--border-col) calc(50% - .25px),transparent calc(50% - .25px));
  background-position:bottom right;
  background-size:var(--notch) var(--notch);
  background-repeat:no-repeat;
  font-family:var(--wp--preset--font-family--geist);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:12.5px;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:8px;
  transition:clip-path .4s cubic-bezier(0.16,1,0.3,1),background-color .25s ease,color .25s ease,border-color .25s ease;
  cursor:pointer;
  border:none;
  padding:0 20px;
  height:44px;
  line-height:1;
}
.btn-tri-sm,.btn-sm{--notch:8px;height:36px;padding:0 14px;font-size:11.5px}
.btn-tri-lg{--notch:14px;height:56px;padding:0 24px;font-size:14px;gap:12px}

/* Hover: unravel chamfer → full square corner */
.btn-tri:hover,.btn-tri-sm:hover,.btn-tri-lg:hover,
.wp-block-button__link:hover,
.btn:hover{
  clip-path:polygon(0 0,100% 0,100% 100%,100% 100%,0 100%)!important;
  background-image:none!important
}
@media(prefers-reduced-motion:reduce){
  .btn-tri,.btn-tri-sm,.btn-tri-lg,.wp-block-button__link,.btn{transition:background-color .2s ease,color .2s ease}
  .btn-tri:hover,.btn-tri-sm:hover,.btn-tri-lg:hover,.wp-block-button__link:hover,.btn:hover{clip-path:none!important}
}

/* Primary: red fill */
.btn-v-primary,.btn-primary,.wp-block-button:not(.is-style-outline) .wp-block-button__link{
  background-color:var(--wp--preset--color--primary)!important;color:#fff!important;--border-col:transparent
}
.btn-v-primary:hover,.btn-primary:hover{background-color:#c92d34!important;color:#fff!important}

/* Black fill, hover red */
.btn-v-black{background-color:var(--wp--preset--color--black);color:#fff;--border-col:transparent}
.btn-v-black:hover{background-color:var(--wp--preset--color--primary);color:#fff}

/* Secondary: outline — force chamfer, background-origin:border-box aligns
   the diagonal gradient with the outer clip edge (not the inner padding edge) */
.btn-v-secondary,.is-style-outline .wp-block-button__link{
  background-color:transparent!important;
  color:var(--wp--preset--color--black)!important;
  border:1.5px solid var(--wp--preset--color--black)!important;
  --notch:10px;
  clip-path:polygon(0 0,100% 0,100% calc(100% - var(--notch)),calc(100% - var(--notch)) 100%,0 100%)!important;
  background-image:linear-gradient(135deg,transparent calc(50% - 2.25px),var(--wp--preset--color--black) calc(50% - 2.25px),var(--wp--preset--color--black) calc(50% - .25px),transparent calc(50% - .25px))!important;
  background-origin:border-box!important;
  background-position:bottom right!important;
  background-size:var(--notch) var(--notch)!important;
  background-repeat:no-repeat!important;
  transition:clip-path .4s cubic-bezier(0.16,1,0.3,1),background-color .25s ease,color .25s ease,border-color .25s ease!important
}
.btn-v-secondary:hover,.is-style-outline .wp-block-button__link:hover{
  clip-path:polygon(0 0,100% 0,100% 100%,100% 100%,0 100%)!important;
  background-color:var(--wp--preset--color--black)!important;
  background-image:none!important;
  color:#fff!important
}

/* On-dark modifier: white outline — cover blocks, black/primary backgrounds, and explicit modifier class */
.btn-on-dark.btn-v-secondary,
.wp-block-cover .is-style-outline .wp-block-button__link,
.has-black-background-color .is-style-outline .wp-block-button__link,
.has-primary-background-color .is-style-outline .wp-block-button__link{
  color:#fff!important;
  border-color:#fff!important;
  background-image:linear-gradient(135deg,transparent calc(50% - 2.25px),#fff calc(50% - 2.25px),#fff calc(50% - .25px),transparent calc(50% - .25px))!important;
  background-origin:border-box!important
}
.btn-on-dark.btn-v-secondary:hover,
.wp-block-cover .is-style-outline .wp-block-button__link:hover,
.has-black-background-color .is-style-outline .wp-block-button__link:hover,
.has-primary-background-color .is-style-outline .wp-block-button__link:hover{
  clip-path:polygon(0 0,100% 0,100% 100%,100% 100%,0 100%)!important;
  background-color:#fff!important;
  background-image:none!important;
  color:var(--wp--preset--color--black)!important
}

/* WP block button resets */
.wp-block-buttons{margin:1.5rem 0;gap:12px!important;flex-wrap:wrap}
.wp-block-button{display:inline-block}
.wp-block-button__link:hover{opacity:1!important}

/* Cover: primary buttons are red, outline buttons are white */
.wp-block-cover .wp-block-button:not(.is-style-outline) .wp-block-button__link{
  background-color:var(--wp--preset--color--primary)!important;color:#fff!important
}

/* ── Announce bar ────────────────────────────────────── */
.announce-bar{background:var(--wp--preset--color--black);color:rgba(255,255,255,.8);font-family:var(--wp--preset--font-family--geist-mono);font-size:11px;text-transform:uppercase;letter-spacing:.18em;padding:8px var(--pad);overflow:hidden}
.announce-inner{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.announce-dot,.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--wp--preset--color--primary);flex-shrink:0;animation:livepulse 2s ease-out infinite}
.announce-text{color:#fff;font-weight:500}
.announce-phone{color:inherit;text-decoration:none;font-weight:500}
.announce-phone:hover{color:var(--wp--preset--color--primary)}
.announce-divider{opacity:.3}
@media(max-width:600px){.announce-bar{display:none}}

/* ── Marquee animation ───────────────────────────────── */
@keyframes marquee{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
.marquee-track{animation:marquee 38s linear infinite;will-change:transform;display:flex;white-space:nowrap}

/* ── Block layout ────────────────────────────────────── */
.wp-block-cover{position:relative;z-index:2}
.wp-block-cover:not(.alignwide):not(.alignfull),.wp-block-columns:not(.alignwide):not(.alignfull),.wp-block-heading:not(.alignwide):not(.alignfull){max-width:var(--wp--style--global--wide-size);margin-left:auto;margin-right:auto;border-radius:0}
.wp-block-cover.alignfull .wp-block-cover__inner-container{max-width:var(--wp--style--global--wide-size);margin-left:auto;margin-right:auto}
.wp-block-cover__inner-container{margin:0 auto!important}
.wp-block-group{margin:0 auto!important}
.wp-block-columns{gap:30px}

/* Scroll reveal */
.transform180-js .wp-block-cover .wp-block-cover__inner-container{opacity:0;transform:translateY(32px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
.transform180-js .wp-block-columns{opacity:0;transform:translateY(32px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
.transform180-js .wp-block-cover .wp-block-columns{opacity:1;transform:none}
.transform180-js .wp-block-cover.is-visible .wp-block-cover__inner-container.is-visible{opacity:1;transform:none}
.transform180-js .wp-block-columns.is-visible{opacity:1;transform:none}

/* ── .border-box ─────────────────────────────────────── */
.border-box{
  border:1px solid rgba(255,255,255,.15);
  padding:16px;
  margin: clamp(24px,3vw,40px) !important
}

/* ── .key-icon ───────────────────────────────────────── */
/* Flex container: red key square (::before) + text content inline */
.key-icon{
  display:inline-flex;
  align-items:center;
  gap:14px
}
.key-icon::before{
  content:'';
  flex-shrink:0;
  width:44px;
  height:44px;
  background-color:var(--wp--preset--color--primary);
  background-image:url("data:image/svg+xml,%3Csvg fill='white' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m20.902 50.105c5.6367-5.6367 13.695-7.3945 20.836-5.2812l30.074-30.074 13.434-0.70703-2.1211 17.676h-8.4844v8.4844h-8.4844v8.4844l-10.273 10.273c2.1133 7.1445 0.35547 15.199-5.2812 20.836-8.1992 8.1992-21.496 8.1992-29.699 0-8.1992-8.1992-8.1992-21.496 0-29.699zm5.6562 15.555c-2.3438 2.3438-2.3438 6.1406 0 8.4844s6.1406 2.3438 8.4844 0 2.3438-6.1406 0-8.4844-6.1406-2.3438-8.4844 0z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:center;
  background-size:55%
}

/* ── .scroll-down ────────────────────────────────────── */
.scroll-down a{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:var(--wp--preset--font-family--geist-mono);
  font-size:11px;
  font-weight:400;
  text-transform:uppercase;
  letter-spacing:.22em;
  color:rgba(255,255,255,.6);
  text-decoration:none;
  transition:color .2s ease,gap .2s ease
}
.scroll-down a::after{
  content:'\2193';
  font-size:13px;
  line-height:1;
  transition:transform .3s cubic-bezier(.16,1,.3,1)
}
.scroll-down a:hover{color:rgba(255,255,255,.9);gap:12px}
.scroll-down a:hover::after{transform:translateY(3px)}

/* ═══════════════════════════════════════════════════════
   [location-slider]
═══════════════════════════════════════════════════════ */

/* ── Wrapper ─────────────────────────────────────────── */
.t180-ls{overflow:hidden;max-width:100%}

/* ── Tab nav ─────────────────────────────────────────── */
.t180-ls__tab-wrap{overflow-x:auto;scrollbar-width:none}
.t180-ls__tab-wrap::-webkit-scrollbar{display:none}
.t180-ls__tabs{display:flex;align-items:center;flex-wrap:nowrap;gap:clamp(20px,3vw,48px);padding:clamp(16px,2vw,24px) var(--pad) clamp(12px,1.5vw,18px);min-width:max-content;justify-content: space-evenly;width: calc(100% - 120px)}
.t180-ls__tab{display:inline-flex;align-items:baseline;gap:8px;background:none;border:none;cursor:pointer;padding:0;color:var(--muted-ink, rgba(0,0,0,.6));transition:color .2s ease;font-family:var(--wp--preset--font-family--geist)}
.t180-ls__tab.is-active{color:var(--wp--preset--color--black)}
.t180-ls__tab-num{font-family:var(--wp--preset--font-family--geist-mono);font-size:11px;letter-spacing:.18em;color:var(--muted-ink, rgba(0,0,0,.6));flex-shrink:0;transition:inherit}
.t180-ls__tab.is-active .t180-ls__tab-num{color:var(--primary-text-safe)}
.t180-ls__tab-name{font-size:clamp(14px,1.4vw,19px);font-weight:900;letter-spacing:-.03em;transition:inherit}
.t180-ls__tab-dot{opacity:.3;font-size:12px}
.t180-ls__tab-status{font-size:11px;font-family:var(--wp--preset--font-family--geist-mono);text-transform:uppercase;letter-spacing:.14em;opacity:.45;white-space:nowrap}
.t180-ls__tab-status--soon{color:var(--primary-text-safe);opacity:1}

/* ── Progress bar row ────────────────────────────────── */
.t180-ls__prog-row{display:flex;align-items:center;gap:14px;padding:0 var(--pad) clamp(16px,2vw,24px)}
.t180-ls__prog{display:flex;flex:1;gap:5px}
.t180-ls__seg{position:relative;flex:1;height:2px;background:rgba(0,0,0,.12);overflow:hidden;border:none;padding:0;cursor:pointer}
.t180-ls__seg:hover{background:rgba(0,0,0,.25)}
/* Fill bar — GPU-accelerated scaleX instead of width */
.t180-ls__seg-fill{
  position:absolute;inset:0;
  background:var(--wp--preset--color--primary);
  transform:scaleX(0);
  transform-origin:left center;
  transition:none
}
/* Past slides: fully filled, dimmed */
.t180-ls__seg--past .t180-ls__seg-fill{
  transform:scaleX(1);
  opacity:.25
}
/* Active slide: animate scaleX 0→1 over 6s */
.t180-ls__seg--active .t180-ls__seg-fill{
  animation:t180-prog 6s linear forwards
}
/* Hovered/engaged slider: freeze the fill exactly where the JS timer
   paused; both resume together on mouse-leave */
.is-paused .t180-ls__seg--active .t180-ls__seg-fill{
  animation-play-state:paused
}
@keyframes t180-prog{
  from{transform:scaleX(0)}
  to  {transform:scaleX(1)}
}
/* Active segment track is slightly brighter */
.t180-ls__seg--active{background:rgba(0,0,0,.08)}
.t180-ls__counter{font-family:var(--wp--preset--font-family--geist-mono);font-size:11px;letter-spacing:.18em;color:var(--muted-ink);white-space:nowrap}
.t180-ls__arrow-wrap{display:flex;gap:4px}
.t180-ls__arrow{width:44px;height:44px;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .2s ease,color .2s ease;flex-shrink:0}
.t180-ls__arrow--prev{background:var(--soft);color:var(--wp--preset--color--black)}
.t180-ls__arrow--prev:hover{background:var(--wp--preset--color--black);color:#fff}
.t180-ls__arrow--next{background:var(--wp--preset--color--black);color:#fff}
.t180-ls__arrow--next:hover{background:var(--wp--preset--color--primary)}

/* ── Swiper override ─────────────────────────────────── */
.t180-ls .swiper{overflow:hidden}

/* ── Slide grid ──────────────────────────────────────── */
.t180-ls__slide{display:grid;grid-template-columns:58fr 42fr;min-height:560px;align-items:stretch}
@media(max-width:900px){.t180-ls__slide{grid-template-columns:1fr;min-height:0}}

/* ── Image panel ─────────────────────────────────────── */
.t180-ls__img-panel{position:relative;overflow:hidden;background:var(--wp--preset--color--black);min-height:480px}
.t180-ls__imgs{position:absolute;inset:0}
.t180-ls__img-item{position:absolute;inset:0;opacity:0;transition:opacity .4s ease;pointer-events:none}
.t180-ls__img-item.is-active{opacity:1;pointer-events:auto}
.t180-ls__img-item img{width:100%;height:100%;object-fit:cover;display:block}
.t180-ls__img-placeholder{width:100%;height:100%;background:linear-gradient(160deg,#1a1a1a 0%,#2a2a2a 100%)}

/* Barricade stripe for "Opening Soon" */
.t180-ls__barricade-top,
.t180-ls__barricade-bot{position:absolute;left:0;right:0;height:6px;z-index:3;background:repeating-linear-gradient(135deg,var(--wp--preset--color--black) 0 10px,var(--wp--preset--color--primary) 10px 20px)}
.t180-ls__barricade-top{top:0}
.t180-ls__barricade-bot{bottom:0}
.t180-ls__img-panel--soon .t180-ls__img-item{opacity:.5}
.t180-ls__img-panel--soon .t180-ls__img-item.is-active{opacity:.55}

/* Status badge */
.t180-ls__badge{position:absolute;top:20px;left:20px;z-index:4;display:inline-flex;align-items:center;gap:7px;background:var(--wp--preset--color--white);color:var(--wp--preset--color--black);font-family:var(--wp--preset--font-family--geist-mono);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.18em;padding:0 12px;height:34px}
.t180-ls__badge--soon{background:var(--primary-text-safe, #d51a1f);color:#fff}

/* Slide index (top-right) */
.t180-ls__img-idx{position:absolute;top:20px;right:20px;z-index:4;font-family:var(--wp--preset--font-family--geist-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.22em;color:rgba(255,255,255,.75)}

/* Abbreviation overlay (bottom-left) */
.t180-ls__abbr{position:absolute;bottom:20px;left:20px;z-index:4;font-family:var(--wp--preset--font-family--geist-mono);font-weight:700;font-size:clamp(72px,11vw,160px);line-height:1;letter-spacing:-.04em;color:#fff;opacity:.85;text-transform:uppercase}

/* Gallery navigation (bottom-right) */
.t180-ls__gnav{position:absolute;bottom:20px;right:20px;z-index:4;display:flex;align-items:center;gap:3px}
.t180-ls__garrow{width:36px;height:36px;background:rgba(255,255,255,.9);color:#111;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .2s ease}
.t180-ls__garrow:hover{background:#fff}
.t180-ls__gcount{font-family:var(--wp--preset--font-family--geist-mono);font-size:11px;color:rgba(255,255,255,.9);background:rgba(0,0,0,.55);padding:0 10px;height:36px;display:inline-flex;align-items:center;letter-spacing:.1em}

/* ── Detail panel ────────────────────────────────────── */
.t180-ls__detail{padding:clamp(28px,3.5vw,52px);background:var(--soft);display:flex;flex-direction:column;gap:0;overflow-y:auto}
.t180-ls__sub{font-family:var(--wp--preset--font-family--geist-mono);font-size:11px;text-transform:uppercase;letter-spacing:.22em;color:var(--primary-text-safe);margin:0 0 10px;padding:0}
.t180-ls__name{font-size:clamp(26px,3vw,48px);font-weight:900;letter-spacing:-.045em;line-height:.95;margin:0 0 16px;padding:0;text-transform:uppercase}
.t180-ls__name a{color:var(--wp--preset--color--black);text-decoration:none;transition:color .2s ease}
.t180-ls__name a:hover{color:var(--wp--preset--color--primary)}
.t180-ls__address{font-size:15px;color:rgba(0,0,0,.7);line-height:1.55;margin:0 0 20px;font-style:normal}

/* Stats grid */
.t180-ls__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-bottom:22px}
.t180-ls__stat{background:#fff;padding:10px 12px}
.t180-ls__stat-label{font-family:var(--wp--preset--font-family--geist-mono);font-size:10px;text-transform:uppercase;letter-spacing:.18em;color:var(--muted-ink);margin-bottom:5px}
.t180-ls__stat-val{font-size:18px;font-weight:900;letter-spacing:-.03em}
@media(max-width:1100px){.t180-ls__stats{grid-template-columns:repeat(2,1fr)}}

/* Google rating bar */
.t180-ls__gr{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:20px}
.t180-ls__gr-stars{display:flex;gap:1px;line-height:1}
.t180-ls__gr-star{font-size:14px;color:rgba(0,0,0,.12)}
.t180-ls__gr-star--full{color:#F59E0B}
.t180-ls__gr-star--half{color:#F59E0B;opacity:.55}
.t180-ls__gr-score{font-family:var(--wp--preset--font-family--geist-mono);font-size:13px;font-weight:700;letter-spacing:.04em;color:#000}
.t180-ls__gr-count{font-family:var(--wp--preset--font-family--geist-mono);font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted-ink);text-decoration:none;transition:color .15s}
.t180-ls__gr-count:hover{color:var(--wp--preset--color--primary)}
.t180-ls__gr-logo{display:inline-block;vertical-align:middle;flex-shrink:0;margin-left:2px;opacity:.85}

/* Section label */
.t180-ls__section{margin-bottom:20px}
.t180-ls__section-lbl{font-family:var(--wp--preset--font-family--geist-mono);font-size:11px;text-transform:uppercase;letter-spacing:.22em;color:var(--muted-ink);margin:0 0 10px;padding:0}

/* Amenities list */
.t180-ls__amenity-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:5px 16px}
.t180-ls__amenity-list li{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:rgba(0,0,0,.8);line-height:1.35}
.t180-ls__amenity-list li::before{content:'';width:6px;height:6px;background:var(--wp--preset--color--primary);flex-shrink:0;margin-top:4px}
@media(max-width:1200px){.t180-ls__amenity-list{grid-template-columns:1fr}}

/* Equipment pills */
.t180-ls__pills{display:flex;flex-wrap:wrap;gap:4px}
.t180-ls__pill{font-family:var(--wp--preset--font-family--geist-mono);font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;color:rgba(0,0,0,.65);background:#fff;padding:0 12px;height:30px;display:inline-flex;align-items:center;white-space:nowrap}

/* CTAs */
.t180-ls__ctas{display:flex;flex-wrap:wrap;gap:6px;margin:clamp(18px,2vw,28px) 0 14px}
.t180-ls__cta{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 18px;font-family:var(--wp--preset--font-family--geist);font-weight:700;font-size:12.5px;text-transform:uppercase;letter-spacing:.1em;text-decoration:none;white-space:nowrap;transition:background .2s ease,color .2s ease,border-color .2s ease;--notch:10px;clip-path:polygon(0 0,100% 0,100% calc(100% - var(--notch)),calc(100% - var(--notch)) 100%,0 100%)}
.t180-ls__cta--primary{background:var(--wp--preset--color--black);color:#fff}
.t180-ls__cta--primary:hover{background:var(--wp--preset--color--primary);color:#fff}
.t180-ls__cta--outline{
  background:transparent;color:var(--wp--preset--color--black);border:1.5px solid var(--wp--preset--color--black);
  /* diagonal edge line on the chamfer — same inset technique as .btn */
  background-image:linear-gradient(135deg,transparent calc(50% - 2.25px),var(--wp--preset--color--black) calc(50% - 2.25px),var(--wp--preset--color--black) calc(50% - .25px),transparent calc(50% - .25px));
  background-origin:border-box;
  background-position:bottom right;
  background-size:var(--notch) var(--notch);
  background-repeat:no-repeat;
}
.t180-ls__cta--outline:hover{background:var(--wp--preset--color--black);color:#fff;background-image:none}

/* Parking / transit */
.t180-ls__transport{font-family:var(--wp--preset--font-family--geist-mono);font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:var(--muted-ink);margin:0;line-height:1.6;padding:0}

/* ── Responsive ──────────────────────────────────────── */
@media(max-width:900px){
  .t180-ls__img-panel{min-height:320px}
  .t180-ls__abbr{font-size:clamp(60px,16vw,100px)}
}
@media(max-width:600px){
  .t180-ls__tab-wrap{display:none} /* Hidden on very small — arrows still work */
  .t180-ls__stats{grid-template-columns:repeat(2,1fr)}
}

/* ── [current-time] CLOCK WIDGET ────────────────────── */
/* container-type so child elements can use cqi (container query inline) units
   and the digits always scale to fit — no matter how wide the column is       */
.t180-clock{
  background:var(--wp--preset--color--black);
  color:#fff;
  padding:clamp(24px,3vw,40px);
  width:100%;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  /* container-type lets child elements use cqi units relative to THIS box */
  container-type:inline-size
}


.t180-clock__header{display:flex;align-items:center;justify-content:space-between;font-family:var(--wp--preset--font-family--geist-mono);font-size:11px;text-transform:uppercase;letter-spacing:.22em;color:rgba(255,255,255,.6);margin-bottom:clamp(16px,4cqi,36px)}
.t180-clock__header-left{display:flex;align-items:center;gap:10px}
/* cqi = % of the container's inline (horizontal) size */
.t180-clock__time{display:flex;align-items:flex-start;line-height:1;gap:0;white-space:nowrap;flex-wrap:nowrap;width:100%;position:relative}
.t180-clock__num{font-family:var(--wp--preset--font-family--geist);font-size:clamp(36px,25cqi,148px);font-weight:200;color:#fff;letter-spacing:-.04em;line-height:.88;font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0}
.t180-clock__colon{display:flex;flex-direction:column;gap:clamp(4px,1.6cqi,13px);align-self:center;padding:0 clamp(4px,2cqi,14px);flex-shrink:0}
.t180-clock__colon span{display:block;width:clamp(6px,1.4cqi,12px);height:clamp(6px,1.4cqi,12px);background:var(--wp--preset--color--primary)}
/* AM/PM sits in the top-right corner — absolute so digits can fill full width */
.t180-clock__ampm{font-family:var(--wp--preset--font-family--geist);font-size:clamp(12px,6cqi,38px);font-weight:300;color:rgba(255,255,255,.4);letter-spacing:-.02em;line-height:1;align-self:flex-start;margin-top:.1em;margin-left:clamp(3px,1cqi,8px);flex-shrink:0}
.t180-clock__sub{margin:clamp(12px,2vw,20px) 0 0;font-family:var(--wp--preset--font-family--geist-mono);font-size:11px;text-transform:uppercase;letter-spacing:.22em;color:rgba(255,255,255,.5);padding:0;display:flex;align-items:center;gap:8px}
.t180-clock__sub--open{color:rgba(255,255,255,.7)}
.t180-clock__key{flex-shrink:0;color:var(--wp--preset--color--primary)}
/* Location switcher */
.t180-clock__loc{display:flex;align-items:center;gap:10px;margin-top:clamp(14px,2vw,22px)}
.t180-clock__loc-btn{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.75);width:24px;height:24px;line-height:1;font-size:15px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;transition:all .15s ease}
.t180-clock__loc-btn:hover{background:var(--wp--preset--color--primary);border-color:var(--wp--preset--color--primary);color:#fff}
.t180-clock__loc-label{font-family:var(--wp--preset--font-family--geist-mono);font-size:11px;text-transform:uppercase;letter-spacing:.18em;color:rgba(255,255,255,.85);min-width:150px;text-align:center}
/* Chart */
.t180-clock__chart{margin-top:clamp(20px,3vw,40px)}
.t180-clock__axis{display:flex;justify-content:space-between;font-family:var(--wp--preset--font-family--geist-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.2em;color:rgba(255,255,255,.45);margin-bottom:5px}
.t180-clock__bars{position:relative;height:60px;background:rgba(255,255,255,.06);overflow:hidden;display:flex;align-items:flex-end;gap:1.5px;padding:0 2px}
.t180-clock__bar{flex:1;height:var(--v);background:rgba(255,255,255,.3);min-width:1px;border-radius:0}
.t180-clock__bar--active{background:var(--wp--preset--color--primary)}
.t180-clock__chart-labels{display:flex;justify-content:space-between;margin-top:6px;font-family:var(--wp--preset--font-family--geist-mono);font-size:11px;color:rgba(255,255,255,.5)}
.t180-clock__chart-labels span:last-child{color:rgba(255,255,255,.9);font-weight:700}


.wp-block-group .wp-block-heading:not(.alignwide):not(.alignfull), .wp-block-group .wp-block-list {margin-left: 0 !important}

/* ── LOCATIONS STRIP [locations-list-simple] ─────────── */
.locations-strip{
  display: flex;
  gap: 20px;
  font-family:var(--wp--preset--font-family--geist-mono);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.22em;
  color:rgba(255,255,255,.65);

}
.hero {min-height: 80vh; align-items: stretch}
.hero .wp-block-cover__inner-container .wp-block-columns:first-child {margin-top: 13vh}
body.home .hero .wp-block-cover__inner-container .wp-block-columns:first-child {margin-top: 0}
.hero-bottom {
 position: absolute;
 bottom: 0;
 left: 0;
 right: 0;
 gap:clamp(16px,3vw,40px);
 flex-wrap:wrap;
 width:100%;
 padding-top:14px;
 border-top:1px solid rgba(255,255,255,.15);
 display:flex;
 align-items:center;
 justify-content: space-between;
}

.locations-strip__count{
  display:flex;
  align-items:center;
  gap:8px;
  white-space:nowrap;
  color:rgba(255,255,255,.9)
}
.locations-strip__names{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap
}
.locations-strip__dot{opacity:.3}
.locations-strip__name{color:rgba(255,255,255,.65)}
.locations-strip__name--soon{
  color:var(--wp--preset--color--primary);
  font-weight:700
}

/* ══ HOME PAGE ══════════════════════════════════════════ */
body.home{background:var(--wp--preset--color--white);color:var(--wp--preset--color--black)}
body.home.transform180-js .wp-block-columns{opacity:1;transform:none}


/* Non-alignfull sections: constrained, with padding */
.wp-block-columns:not(.alignfull){max-width:var(--wp--style--global--wide-size);margin-left:auto!important;margin-right:auto!important;border-left:none;border-right:none}

/* Cover inner container: side padding only */
.wp-block-cover .wp-block-cover__inner-container, .wp-block-columns:not(.wp-block-cover__inner-container .wp-block-columns) {padding-block:clamp(60px,8vw,100px);padding-inline:clamp(60px,8vw,100px)}
/* Home page: groups contain section columns — reset the big padding above */
.wp-block-group .wp-block-columns {padding: 0 !important}

/* ── Interior page content rail ──────────────────────────────────
   Every direct child of an interior alignfull section group shares ONE
   rail: wideSize wide, centered, with --pad side gutters. This puts the
   hero columns, label paragraphs, pricing cards and chip rows on the
   exact same left/right edge at every viewport — small screens get --pad
   gutters, large screens hit the wide max-width. Children explicitly
   marked .alignfull still break out to full bleed. */
body:not(.home) .wp-block-group.alignfull > :not(.alignfull) {
  max-width: var(--wp--style--global--wide-size) !important;
  margin-inline: auto !important;
  padding-inline: var(--pad) !important;
  box-sizing: border-box;
}
body:not(.home) .wp-block-group.alignfull > .alignfull {
  max-width: none !important;
  padding-inline: 0 !important;
}
.wp-block-cover.hero .wp-block-cover__inner-container{padding-top: 5.5vh}


/* Vertically-bottom columns */
.wp-block-column.is-vertically-aligned-bottom{display:flex;flex-direction:column;justify-content:flex-end}

/* ── Eyebrow headings (has-sm-font-size) ─────────────── */
/* Section labels like "— 01 / Open-Gym · 24-Hour Access Membership" */
.wp-block-heading.has-sm-font-size{
  font-family:var(--wp--preset--font-family--geist-mono)!important;
  font-size:11px!important;
  font-weight:400;
  letter-spacing:.22em;
  text-transform:uppercase;
  line-height:1.3;
  color:var(--primary-text-safe);
  padding:0!important;
  margin:0 0 1.5rem!important;
  opacity:1
}
.wp-block-cover .wp-block-heading.has-sm-font-size{color:var(--wp--preset--color--primary)}

/* ── Display headings (has-xxl-font-size) ────────────── */
.wp-block-heading.has-xxl-font-size{
  font-size:var(--wp--preset--font-size--xxl)!important;
  font-weight:900;
  letter-spacing:-0.045em;
  line-height:0.86;
  text-transform:uppercase;
  padding:0!important;
  margin:0!important;
  color:inherit;
  white-space:nowrap;
}
/* em (italic accent) = red */
.wp-block-heading.has-xxl-font-size em, .wp-block-heading em{
  font-style:normal;
  color:var(--wp--preset--color--primary);
  font-weight:900
}
.has-primary-background-color .wp-block-heading em{color:var(--wp--preset--color--black)}
.wp-block-cover .wp-block-heading.has-xxl-font-size{color:#fff}

/* ── CTA paragraph (p.cta) ───────────────────────────── */
p.cta,p.cta.wp-block-paragraph{margin:1.25rem 0 0!important;padding:0!important;font-size:12.5px}
p.cta a{display:inline-flex;align-items:center;gap:.6em;font-family:var(--wp--preset--font-family--geist);font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:inherit;transition:color .2s ease}
p.cta a::before{
  content:'\25B7';
  font-size:.9em;
  line-height:1;
  flex-shrink:0;
  transition:transform .25s cubic-bezier(.16,1,.3,1)
}
p.cta a:hover{color:var(--wp--preset--color--primary)}
p.cta a:hover::before{transform:translateX(3px)}
.wp-block-cover p.cta a{color:rgba(255,255,255,.75)}
.wp-block-cover p.cta a:hover{color:#fff}

/* ── HERO (first alignfull cover) ────────────────────── */
.wp-block-cover.alignfull:first-of-type{background:var(--wp--preset--color--black);color:#fff;min-height:100vh!important;border-bottom:1px solid transparent}
.wp-block-cover.alignfull:first-of-type .wp-block-paragraph{color:rgba(255,255,255,.82);font-size:16px;line-height:1.65;max-width:48ch}
.wp-block-cover.alignfull:first-of-type .wp-block-buttons{margin:2rem 0 0!important}

/* ── STATS BAR (alignfull white bg) ─────────────────── */
.wp-block-columns.alignfull.has-white-background-color{
  padding:clamp(48px,5vw,72px) var(--pad)!important;
  margin:0!important;max-width:100%!important;
  width:100%;border-radius:0!important;
  background:var(--wp--preset--color--white);
  border-top:none;
  border-bottom:1px solid var(--wp--preset--color--black)
}
.wp-block-columns.alignfull.has-white-background-color .wp-block-column{
  padding:0 clamp(20px,3vw,48px);
  border-left:1px solid rgba(0,0,0,.12)
}
.wp-block-columns.alignfull.has-white-background-color .wp-block-column:first-child{border-left:none;padding-left:0}
.wp-block-columns.alignfull.has-white-background-color .wp-block-column p:first-child{
  font-family:var(--wp--preset--font-family--geist-mono);
  font-size:clamp(28px,3.5vw,44px);font-weight:400;line-height:1;
  font-variant-numeric:tabular-nums;letter-spacing:-.01em;
  color:var(--wp--preset--color--black);margin:0;padding:0
}
.wp-block-columns.alignfull.has-white-background-color .wp-block-column p:nth-child(2){
  font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;
  color:var(--wp--preset--color--black);margin:.75rem 0 0;padding:0
}
.wp-block-columns.alignfull.has-white-background-color .wp-block-column p:nth-child(3){
  font-size:12px;color:var(--muted-ink, rgba(0,0,0,.6));
  font-family:var(--wp--preset--font-family--geist-mono);
  margin:.25rem 0 0;padding:0;letter-spacing:.02em
}
@media(max-width:599px){
  .wp-block-columns.alignfull.has-white-background-color{
    flex-wrap:wrap!important;
    padding:clamp(24px,5vw,36px) 0!important;
    gap:0!important;
  }
  .wp-block-columns.alignfull.has-white-background-color > .wp-block-column{
    flex:0 0 50%!important;
    border-left:none!important;
    padding:clamp(18px,4vw,26px) var(--pad)!important;
    border-bottom:1px solid rgba(0,0,0,.12);
    box-sizing:border-box;
  }
  .wp-block-columns.alignfull.has-white-background-color > .wp-block-column:nth-child(odd){
    border-right:1px solid rgba(0,0,0,.12);
  }
  .wp-block-columns.alignfull.has-white-background-color > .wp-block-column:nth-last-child(-n+2){
    border-bottom:none;
  }
}

/* ── NEWS TICKER (marquee bar) ───────────────────────── */
ul.wp-block-list.news-ticker{
  list-style:none!important;padding:0!important;margin:0!important;
  display:flex;align-items:center;
  background:var(--wp--preset--color--black);color:#fff;
  overflow:hidden;width:100%;
  border-bottom:1px solid transparent
}
ul.wp-block-list.news-ticker li{
  display:inline-flex;align-items:center;
  flex-shrink:0;padding:20px 48px;
  font-family:var(--wp--preset--font-family--geist);
  font-size:clamp(20px,2.5vw,36px);font-weight:900;
  letter-spacing:-0.045em;text-transform:uppercase;
  color:inherit;margin:0;white-space:nowrap;
  animation:marquee 38s linear infinite
}
ul.wp-block-list.news-ticker li::before{content:none!important}
ul.wp-block-list.news-ticker li::after{
  content:'/';margin-left:48px;
  color:var(--wp--preset--color--primary);font-weight:900
}
@media(prefers-reduced-motion:reduce){ul.wp-block-list.news-ticker li{animation:none}}

/* ── SECTION STRUCTURE (paper bg) ────────────────────── */
.wp-block-column.has-paper-background-color{
  background:var(--soft)!important;
  padding:clamp(32px,4vw,56px)!important;border-radius:0
}
.wp-block-column.has-paper-background-color .has-xl-font-size{
  font-size:clamp(20px,2vw,26px)!important;line-height:1.35;
  font-weight:700;letter-spacing:-.02em;
  margin:0 0 2rem;padding:0
}
/* Numbered list — /01 left, title + description stacked right */
.wp-block-column.has-paper-background-color .wp-block-list{
  list-style:none!important;padding:0!important;margin:0 0 2rem!important;
  counter-reset:inc;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 48px
}
@media(max-width:700px){.wp-block-column.has-paper-background-color .wp-block-list{grid-template-columns:1fr}}
.wp-block-column.has-paper-background-color .wp-block-list li{
  counter-increment:inc;
  display:block;
  position:relative;
  padding:20px 0 20px 3rem;
  border-top:1px solid rgba(0,0,0,.1);
  font-size:13px;
  line-height:1.55;
  color:var(--muted-ink, rgba(0,0,0,.6));
  margin:0
}
/* /01 — absolutely positioned so content flows freely below title */
.wp-block-column.has-paper-background-color .wp-block-list li::before{
  content:'/' counter(inc,decimal-leading-zero);
  position:absolute;
  left:0;
  top:20px;
  font-family:var(--wp--preset--font-family--geist-mono);
  font-size:11px;font-weight:400;
  color:var(--primary-text-safe);
  letter-spacing:.1em;
  line-height:1.8
}
/* bold title inside each item */
.wp-block-column.has-paper-background-color .wp-block-list li strong{
  font-weight:700;
  font-size:14.5px;
  color:var(--wp--preset--color--black);
  line-height:1.3;
  margin-bottom:3px
}



/* ── INLINE GROUP (space-between row) ────────────────── */
.wp-block-group.is-content-justification-space-between.is-nowrap{
  padding:13px var(--pad) 0;

  margin:0!important;max-width:100%!important;
  font-family:var(--wp--preset--font-family--geist-mono);
  font-size:12px;text-transform:uppercase;letter-spacing:.18em
}
.wp-block-group.is-content-justification-space-between.is-nowrap p{margin:0;padding:0}

/* ── COACHING COVER (black alignfull) ────────────────── */
.wp-block-cover.alignfull.has-black-background-color{background:var(--wp--preset--color--black)!important}
.wp-block-cover.alignfull.has-black-background-color .wp-block-heading.has-sm-font-size{color:rgba(255,255,255,.5)}
.wp-block-cover.alignfull.has-black-background-color .wp-block-heading.has-xxl-font-size{color:#fff}
.wp-block-cover.alignfull.has-black-background-color .wp-block-paragraph{color:rgba(255,255,255,.72)}
.wp-block-cover.alignfull.has-black-background-color .has-lg-font-size{font-size:clamp(18px,2vw,26px)!important;line-height:1.35;color:rgba(255,255,255,.9)}
.wp-block-cover.alignfull.has-black-background-color .has-xs-font-size{
  font-family:var(--wp--preset--font-family--geist-mono)!important;
  font-size:11px!important;font-weight:400;letter-spacing:.18em;text-transform:uppercase;
  color:rgba(255,255,255,.45)
}

/* ── TRAINER CARDS (bottom-positioned cover blocks) ─── */
.wp-block-cover.has-custom-content-position.is-position-bottom-center{
  min-height:480px;border-radius:0;overflow:hidden;cursor:pointer
}
/* Image zoom on hover */
.wp-block-cover.has-custom-content-position.is-position-bottom-center .wp-block-cover__image-background{
  transition:transform .7s cubic-bezier(0.16,1,0.3,1);
  transform:scale(1)
}
.wp-block-cover.has-custom-content-position.is-position-bottom-center:hover .wp-block-cover__image-background{
  transform:scale(1.06)
}
@media(prefers-reduced-motion:reduce){
  .wp-block-cover.has-custom-content-position.is-position-bottom-center .wp-block-cover__image-background{transition:none}
}
.wp-block-cover.has-custom-content-position.is-position-bottom-center .wp-block-cover__inner-container{
  padding:24px!important;margin:0!important;max-width:100%;text-align:left
}
.wp-block-cover.has-custom-content-position.is-position-bottom-center .wp-block-heading{
  color:#fff!important;font-size:clamp(28px,3vw,44px)!important;
  font-weight:900;letter-spacing:-.045em;margin:0!important;padding:0!important;
  text-transform:uppercase;line-height:.9
}
.wp-block-cover.has-custom-content-position.is-position-bottom-center .wp-block-paragraph{
  color:rgba(255,255,255,.72)!important;font-size:13px!important;
  font-family:var(--wp--preset--font-family--geist-mono);
  letter-spacing:.1em;text-transform:uppercase;
  margin:.4rem 0 0!important;padding:0!important
}
.wp-block-cover.has-custom-content-position.is-position-bottom-center .wp-block-buttons{margin:1rem 0 0!important}
.wp-block-cover.has-custom-content-position.is-position-bottom-center .wp-block-button .wp-block-button__link{
  background-color:var(--wp--preset--color--primary)!important;color:#fff!important;
  height:44px;padding:0 16px;font-size:12px!important
}

/* Font size helpers */
.has-lg-font-size{font-size:clamp(18px,2vw,26px)!important;line-height:1.35;font-weight:400;letter-spacing:-.02em}
.has-xs-font-size{font-family:var(--wp--preset--font-family--geist-mono)!important;font-size:11px!important;letter-spacing:.18em;text-transform:uppercase}

/* ── FOOTER ──────────────────────────────────────────── */
.site-footer{background:#f9f8f6;color:var(--wp--preset--color--black);border-top:1px solid rgba(0,0,0,.1);font-size:.875rem;line-height:1.6}
/* Main panel */
.footer-main__inner{max-width:var(--wp--style--global--wide-size);margin-inline:auto;padding:clamp(48px,6vw,80px) var(--pad);display:grid;grid-template-columns:1.6fr 1fr 1fr 1.5fr;gap:clamp(32px,4vw,60px);align-items:start}
/* Column heading label */
.footer-col__label{font-family:var(--wp--preset--font-family--geist-mono);font-size:10px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--muted-ink);margin:0 0 20px;line-height:1}
/* Brand column */
.footer-col--brand .site-logo{display:inline-block;margin-bottom:14px;color:var(--wp--preset--color--black)}
.footer-tagline{font-size:13px;color:var(--muted-ink);margin:0 0 22px;line-height:1.65;max-width:280px}
.footer-social{display:flex;gap:8px}
.footer-social__icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid rgba(0,0,0,.2);color:rgba(0,0,0,.6);text-decoration:none;transition:border-color .18s,background .18s,color .18s}
.footer-social__icon:hover{border-color:rgba(0,0,0,.7);background:rgba(0,0,0,.05);color:var(--wp--preset--color--black)}
/* Nav columns */
.footer-col--nav ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}
.footer-col--nav li a{display:block;padding:5px 0;font-size:14px;color:rgba(0,0,0,.65);text-decoration:none;transition:color .15s}
.footer-col--nav li a:hover{color:var(--wp--preset--color--black)}
/* Contact column */
.footer-address{font-style:normal;display:flex;flex-direction:column;gap:4px;margin-bottom:20px}
.footer-address__name{font-weight:600;font-size:14px;color:var(--wp--preset--color--black);margin-bottom:4px;display:block}
.footer-address>span{font-size:13px;color:rgba(0,0,0,.55);display:block}
.footer-address__map{display:flex;flex-direction:column;gap:4px;text-decoration:none}
.footer-address__map span{font-size:13px;color:rgba(0,0,0,.55);display:block;transition:color .15s ease}
.footer-address__map:hover span{color:var(--wp--preset--color--black);text-decoration:underline;text-underline-offset:2px}
.footer-contact-item{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:rgba(0,0,0,.6);text-decoration:none;transition:color .15s;padding:2px 0}
.footer-contact-item:hover{color:var(--wp--preset--color--primary)}
.footer-login-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border:1.5px solid rgba(0,0,0,.85);font-family:var(--wp--preset--font-family--geist-mono);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--wp--preset--color--black);transition:background .18s,color .18s;margin-top:4px}
.footer-login-btn:hover{background:var(--wp--preset--color--black);color:#fff}
.footer-login-btn svg{transition:transform .2s}
.footer-login-btn:hover svg{transform:translateX(3px)}
/* Locations bar */
.footer-locations{border-top:1px solid rgba(0,0,0,.1);border-bottom:1px solid rgba(0,0,0,.1)}
.footer-locations__inner{max-width:var(--wp--style--global--wide-size);margin-inline:auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.footer-loc{padding:clamp(18px,2.5vw,28px) var(--pad);border-right:1px solid rgba(0,0,0,.08);display:flex;gap:clamp(10px,1.4vw,16px);align-items:flex-start;text-decoration:none;color:inherit;transition:background-color .18s ease}
.footer-loc:hover,.footer-loc:focus-visible{background-color:rgba(0,0,0,.045)}
.footer-loc:last-child{border-right:none}
.footer-loc__abbr{font-family:var(--wp--preset--font-family--geist-mono);font-size:clamp(.85rem,1.5vw,1.05rem);font-weight:800;color:var(--primary-text-safe);flex-shrink:0;line-height:1.2;padding-top:1px;letter-spacing:.02em}
.footer-loc__details{display:flex;flex-direction:column;gap:2px;min-width:0}
.footer-loc__name{font-size:clamp(.78rem,1.1vw,.88rem);font-weight:700;color:var(--wp--preset--color--black);display:block}
.footer-loc__addr{font-size:11px;color:var(--muted-ink);display:block;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.footer-loc__status{font-family:var(--wp--preset--font-family--geist-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--muted-ink);display:block;margin-top:3px}
.footer-loc__status--soon{color:var(--primary-text-safe)}
/* Bottom bar */
.footer-bottom__inner{max-width:var(--wp--style--global--wide-size);margin-inline:auto;padding:clamp(14px,2vw,20px) var(--pad);display:flex;justify-content:space-between;align-items:center;gap:24px}
.footer-bottom__copy{margin:0;font-family:var(--wp--preset--font-family--geist-mono);font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted-ink)}
.footer-bottom__nav ul{list-style:none;padding:0;margin:0;display:flex;gap:24px}
.footer-bottom__nav li a{font-family:var(--wp--preset--font-family--geist-mono);font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted-ink);text-decoration:none;transition:color .15s}
.footer-bottom__nav li a:hover{color:var(--primary-text-safe)}

/* ── Testimonial Slider ──────────────────────────────── */
.t180-ts{
  position:relative;
  max-width:var(--wp--style--global--wide-size);
  margin-inline:auto;
  overflow:hidden
}

/* Slide: 2-col row */
.t180-ts__slide{
  display:flex;
  min-height:clamp(480px,55vw,640px)
}

/* LEFT panel */
.t180-ts__left{
  flex:0 0 58%;
  background:var(--wp--preset--color--soft);
  padding:clamp(80px,8vw,100px) clamp(32px,5vw,72px) clamp(80px,8vw,100px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
  overflow:hidden
}

/* Decorative oversized quotation marks — top-right corner */
.t180-ts__deco::before{
  content:'\201C';
  position:absolute;
  top:clamp(16px,3vw,32px);
  right:clamp(20px,3vw,40px);
  font-size:clamp(60px,8vw,100px);
  font-weight:900;
  line-height:1;
  letter-spacing:-.05em;
  color:rgba(0,0,0,.07);
  pointer-events:none;
  font-family:var(--wp--preset--font-family--geist)
}

/* Quote text */
.t180-ts__quote{
  margin:0 0 clamp(28px,4vw,48px);
  font-size:clamp(1.15rem,2.2vw,1.55rem);
  font-weight:700;
  line-height:1.35;
  letter-spacing:-.02em;
  color:var(--wp--preset--color--black)
}

/* Attribution row */
.t180-ts__attribution{
  display:flex;
  align-items:center;
  gap:14px
}
.t180-ts__photo{
  width:56px;height:56px;
  object-fit:cover;
  flex-shrink:0
}
.t180-ts__photo--placeholder{
  background:rgba(0,0,0,.12)
}
.t180-ts__name{
  margin:0 0 3px;
  font-weight:700;
  font-size:15px;
  letter-spacing:-.01em
}
.t180-ts__meta{
  margin:0;
  font-family:var(--wp--preset--font-family--geist-mono);
  font-size:10px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted-ink)
}

/* RIGHT panel */
.t180-ts__right{
  flex:0 0 42%;
  position:relative;
  overflow:hidden;
  background:var(--wp--preset--color--black)
}

/* Full-bleed background image */
.t180-ts__bg{
  position:absolute;
  inset:0;
  width:100%;height:100%;
  object-fit:cover;
  display:block
}
.t180-ts__bg--placeholder{
  position:absolute;
  inset:0;
  background:#1a1a1a
}

/* Dark gradient overlay so stats are readable */
.t180-ts__right::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(
    to top,
    rgba(0,0,0,.75) 0%,
    rgba(0,0,0,.25) 50%,
    rgba(0,0,0,.1)  100%
  );
  pointer-events:none
}

/* "MEMBER · 01" badge — top-left */
.t180-ts__badge{
  position:absolute;
  top:clamp(16px,2.5vw,28px);
  left:clamp(16px,2.5vw,28px);
  z-index:2;
  display:inline-flex;
  align-items:center;
  gap:7px;
  background:#fff;
  color:var(--wp--preset--color--black);
  font-family:var(--wp--preset--font-family--geist-mono);
  font-size:10px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  padding:6px 12px;
  line-height:1
}
.t180-ts__badge-dot{
  width:7px;height:7px;
  border-radius:50%;
  background:var(--wp--preset--color--primary);
  flex-shrink:0
}

/* Result stat — bottom-left */
.t180-ts__stat{
  position:absolute;
  bottom:clamp(48px,6vw,72px);
  left:clamp(20px,3vw,36px);
  z-index:2;
  color:#fff
}
.t180-ts__stat-num{
  font-size:clamp(3rem,7vw,5.5rem);
  font-weight:900;
  line-height:.88;
  letter-spacing:-.04em;
  display:flex;
  align-items:baseline;
  gap:.15em
}
.t180-ts__stat-unit{
  font-size:clamp(1.5rem,3.5vw,2.8rem);
  font-weight:300;
  letter-spacing:-.02em
}
.t180-ts__stat-lbl{
  margin:8px 0 0;
  font-family:var(--wp--preset--font-family--geist-mono);
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:rgba(255,255,255,.6)
}

/* ── Navigation overlays (position absolute on .t180-ts) ── */

/* Counter — top-left, over left panel */
.t180-ts__counter-wrap{
  position:absolute;
  top:clamp(28px,4vw,48px);
  left:clamp(32px,5vw,72px);
  z-index:3;
  pointer-events:none
}
.t180-ts__counter{
  font-family:var(--wp--preset--font-family--geist-mono);
  font-size:10px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--primary-text-safe);
  /* Solid backing — this sits directly over an arbitrary photo with only
     a light gradient scrim at this position (near the top), so contrast
     against the photo itself can't be guaranteed. Same solid-chip
     treatment as .t180-ts__badge just below, for the same reason. */
  display:inline-block;
  background:#fff;
  padding:6px 10px;
  line-height:1;
}

/* Arrows — bottom-left, over left panel */
.t180-ts__arrows{
  position:absolute;
  bottom:clamp(28px,4vw,48px);
  left:clamp(32px,5vw,72px);
  z-index:3;
  display:flex;
  gap:4px
}
.t180-ts__arrow{
  width:44px;height:44px;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--wp--preset--color--black);
  color:#fff;
  border:none;
  cursor:pointer;
  transition:background .2s,color .2s
}
.t180-ts__arrow:hover{
  background:var(--wp--preset--color--primary)
}

/* Dots — bottom-right, over right panel */
.t180-ts__dots{
  position:absolute;
  bottom:clamp(24px,3vw,36px);
  right:clamp(20px,3vw,36px);
  z-index:3;
  display:flex;
  gap:5px;
  align-items:center
}
.t180-ts__dot{
  width:28px;height:3px;
  border:none;
  background:rgba(255,255,255,.35);
  padding:0;
  cursor:pointer;
  transition:background .25s,width .25s
}
.t180-ts__dot.is-active{
  background:var(--wp--preset--color--primary);
  width:40px
}

/* Mobile */
@media(max-width:1080px){
  .t180-ts__slide{flex-direction:column;min-height:auto}
  .t180-ts__left{flex:none;padding:clamp(64px,10vw,80px) clamp(24px,6vw,40px) clamp(28px,6vw,40px)}
  .t180-ts__right{flex:none;min-height:300px}
  .t180-ts__counter-wrap{top:clamp(20px,4vw,28px);left:clamp(24px,6vw,40px)}
  .t180-ts__arrows{left:clamp(24px,6vw,40px);bottom:clamp(20px,4vw,28px)}
  .t180-ts__stat-num{font-size:clamp(2.2rem,10vw,3.5rem)}
}

/* ── Program Blocks ──────────────────────────────────── */
.program-blocks.wp-block-columns{
  gap:16px!important;
  padding:0!important;
  align-items:stretch
}
/* Left column: soft bg, full padding */
.program-blocks>.wp-block-column:first-child{
  padding:clamp(28px,4vw,52px)!important
}
/* Right column: flex column so cards stack and fill height */
.program-blocks>.wp-block-column:last-child{
  padding:0!important;
  display:flex;
  flex-direction:column
}
/* Inner cards — more generous padding, especially vertical */
.program-blocks .wp-block-group{
  padding:clamp(32px,4.5vw,56px)
}
/* Bottom black card fills remaining height */
.program-blocks .wp-block-group.has-black-background-color{
  flex:1
}
/* All h2 section labels — small red mono eyebrow
   Targets both has-sm-font-size (left col) and plain h2s (inner cards) */
.program-blocks h2.wp-block-heading{
  color:var(--wp--preset--color--primary)!important;
  font-family:var(--wp--preset--font-family--geist-mono)!important;
  font-size:11px!important;
  font-weight:500!important;
  letter-spacing:.18em;
  text-transform:uppercase;
  line-height:1.4;
  margin:0 0 clamp(16px,2.5vw,28px)
}
/* Main section headings — large, heavy, tight */
.program-blocks h3.wp-block-heading{
  font-size:clamp(2.2rem,5.5vw,4.2rem);
  font-weight:900;
  line-height:.88;
  letter-spacing:-.035em;
  margin:0 0 clamp(20px,3vw,36px)
}
/* Nutrition list — 2-col grid with red square bullets */
.program-blocks .wp-block-list{
  list-style:none!important;
  padding:0!important;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px 16px;
  margin:clamp(14px,2vw,24px) 0 0!important
}
.program-blocks .wp-block-list li{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:14px;
  line-height:1.3;
  padding:0
}
.program-blocks .wp-block-list li::before{
  content:'';
  display:block;
  width:10px;height:10px;
  flex-shrink:0;
  background:var(--wp--preset--color--primary)
}
/* 24/7 — giant display, red slash, more vertical breathing room */
.program-blocks .has-xxl-font-size{
  font-size:clamp(4rem,13vw,10rem)!important;
  line-height:.82;
  letter-spacing:-.05em;
  margin:clamp(24px,4vw,48px) 0 clamp(16px,2.5vw,28px)
}
.program-blocks .has-xxl-font-size em{
  color:var(--wp--preset--color--primary);
  font-style:normal
}
@media(max-width:860px){
  .program-blocks.wp-block-columns{flex-direction:column!important}
  .program-blocks>.wp-block-column:first-child,
  .program-blocks .wp-block-group{padding:clamp(28px,6vw,48px)}
  .program-blocks .wp-block-group.has-black-background-color{flex:none}
  .program-blocks .wp-block-list{grid-template-columns:1fr}
  .program-blocks .has-xxl-font-size{font-size:clamp(4.5rem,18vw,9rem)!important}
}

/* ── Package Grid ─────────────────────────────────────── */
/* Kill the global column padding on this specific grid */
.package-grid.wp-block-columns{
  gap:16px!important;
  padding:0!important;
  align-items:stretch
}
/* Each card gets its own padding; relative so the badge can be absolute */
.package-grid .wp-block-column{
  padding:clamp(28px,4vw,52px)!important;
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:flex-start  /* prevent flex cross-axis centering */
}
/* Eyebrow label — mono, dimmed */
.package-grid .wp-block-column>p.has-xs-font-size:first-child{
  margin:0 0 14px;
  opacity:.45
}
/* "Most Popular" corner badge */
.package-grid .red-pill{
  position:absolute;
  top:0;right:0;
  background:var(--primary-text-safe, #d51a1f);
  color:#fff!important;
  padding:8px 16px;
  font-size:10px!important;
  font-weight:700;
  font-family:var(--wp--preset--font-family--geist-mono)!important;
  letter-spacing:.14em;
  text-transform:uppercase;
  line-height:1;
  margin:0!important
}
/* Large display heading — force left on ALL heading tags and the WP class */
.package-grid .wp-block-column h1,
.package-grid .wp-block-column h2,
.package-grid .wp-block-column h3,
.package-grid .wp-block-column h4,
.package-grid .wp-block-column .wp-block-heading,
.package-grid .wp-block-heading{
  font-size:clamp(2.6rem,6vw,4.5rem)!important;
  line-height:.88;
  letter-spacing:-.03em;
  margin:0 0 clamp(24px,3vw,40px);
  text-align:left!important;
  width:100%!important;
  align-self:stretch!important
}
/* Checklist */
.package-grid .wp-block-list{
  list-style:none!important;
  padding:0!important;
  margin:0 0 clamp(28px,3vw,44px)!important;
  display:flex;
  flex-direction:column;
  gap:12px
}
.package-grid .wp-block-list li{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:15px;
  line-height:1.45;
  padding:0
}
/* Red checkbox icon via ::before */
.package-grid .wp-block-list li::before{
  content:'';
  display:block;
  width:18px;height:18px;
  flex-shrink:0;
  margin-top:2px;
  background:
    var(--wp--preset--color--primary)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpolyline points='1,5 4.5,8.5 11,1.5' fill='none' stroke='%23ffffff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
    center/10px no-repeat
}

.access-dark-box h2 {margin: 0 !important}
.access-dark-box h3 {margin: 0 !important}
.access-dark-box .has-xxl-font-size {margin: 0 !important}
/* Push CTA button to bottom of card */
.package-grid .wp-block-buttons{
  margin-top:auto
}
/* Stack cards on mobile */
@media(max-width:860px){
  .package-grid.wp-block-columns{flex-direction:column!important}
  .package-grid .wp-block-column{padding:clamp(28px,6vw,48px)!important}
}

/* ── FAQ Accordion ───────────────────────────────────── */
.t180-faq{
  width:100%
}
/* Each row */
.t180-faq__item{
  border-top:1px solid rgba(0,0,0,.12)
}
.t180-faq__item:last-child{
  border-bottom:1px solid rgba(0,0,0,.12)
}
/* Clickable header row */
.t180-faq__header{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
  padding:clamp(18px,2vw,26px) 0;
  background:transparent;
  border:none;
  text-align:left;
  cursor:pointer;
  color:inherit;
  -webkit-tap-highlight-color:transparent
}
.t180-faq__header:focus-visible{
  outline:2px solid var(--wp--preset--color--primary);
  outline-offset:2px
}
/* Question text */
.t180-faq__question{
  font-size:clamp(1rem,1.4vw,1.15rem);
  font-weight:700;
  line-height:1.3;
  letter-spacing:-.018em
}
/* Toggle icon — square with + */
.t180-faq__toggle{
  flex-shrink:0;
  width:40px;height:40px;
  border:1.5px solid rgba(0,0,0,.18);
  display:flex;align-items:center;justify-content:center;
  color:inherit;
  /* spring-like spin using overshoot cubic-bezier */
  transition:
    transform .5s cubic-bezier(.34,1.56,.64,1),
    background .28s ease,
    border-color .28s ease,
    color .28s ease
}
/* Open: rotate 45° → diamond shape; + becomes × automatically */
.t180-faq__item.is-open .t180-faq__toggle{
  transform:rotate(45deg);
  background:var(--wp--preset--color--primary);
  border-color:var(--wp--preset--color--primary);
  color:#fff
}
/* Answer panel — CSS grid trick for smooth height animation */
.t180-faq__body{
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows .42s cubic-bezier(.16,1,.3,1)
}
.t180-faq__item.is-open .t180-faq__body{
  grid-template-rows:1fr
}
.t180-faq__inner{
  overflow:hidden;
  padding-bottom:0;
  transition:padding-bottom .42s cubic-bezier(.16,1,.3,1)
}
.t180-faq__item.is-open .t180-faq__inner{
  padding-bottom:clamp(20px,3vw,32px)
}
/* Answer text */
.t180-faq__answer{
  margin:0;
  color:rgba(0,0,0,.6);
  font-size:clamp(.9rem,1.1vw,1rem);
  line-height:1.7;
  max-width:720px
}
/* On dark backgrounds — invert borders and text */
.has-black-background-color .t180-faq__item,
.has-black-background-color .t180-faq__item:last-child{
  border-color:rgba(255,255,255,.15)
}
.has-black-background-color .t180-faq__answer{
  color:rgba(255,255,255,.6)
}
@media(max-width:600px){
  .t180-faq__toggle{width:36px;height:36px}
  .t180-faq__header{gap:16px}
}
@media(prefers-reduced-motion:reduce){
  .t180-faq__toggle,
  .t180-faq__body,
  .t180-faq__inner{transition:none}
}

/* ── Gravity Forms — global brand style ──────────────── */

/* Wrapper */
.gform_wrapper{
  background:#fff!important;padding:clamp(28px,4vw,52px)!important;
  width:100%!important;max-width:100%!important;
  box-sizing:border-box!important;overflow:hidden!important;margin:0!important;
  --gf-color-primary:var(--wp--preset--color--primary);
  --gf-radius:0;--gf-ctrl-border-color:rgba(0,0,0,.2);font-family:inherit
}
.gform_wrapper .gform-body,
.gform_wrapper .gform_body{width:100%!important;max-width:100%!important;overflow:hidden!important}

/* Fields grid — 2 cols; half-width fields use one col, everything else spans both */
.gform_wrapper .gform_fields{
  display:grid!important;grid-template-columns:1fr 1fr!important;
  gap:0 24px!important;width:100%!important;max-width:100%!important;
  align-items:start!important
}
.gform_wrapper .gfield{
  grid-column:span 2;padding:0!important;margin-bottom:18px!important;box-sizing:border-box!important
}
.gform_wrapper .gfield--width-half{grid-column:span 1}

/* Hide clutter */
.gform_wrapper .gform_required_legend,
.gform_wrapper .gfield--type-honeypot,
.gform_wrapper .gform_heading{display:none!important}

/* Labels */
.gform_wrapper .gfield_label{font-family:var(--wp--preset--font-family--geist-mono)!important;font-size:11px!important;font-weight:500!important;letter-spacing:.18em!important;text-transform:uppercase!important;color:var(--muted-ink, rgba(0,0,0,.6))!important;margin:0 0 8px!important;line-height:1!important;display:block}
.gform_wrapper .ginput_container{margin-top:0!important;padding-top:0!important}
.gform_wrapper .ginput_container_text,
.gform_wrapper .ginput_container_phone,
.gform_wrapper .ginput_container_email,
.gform_wrapper .ginput_container_select,
.gform_wrapper .ginput_container_textarea{margin-top:0!important;padding-top:0!important}

/* Required — hide "(Required)" text, show red * */
.gform_wrapper .gfield_required_text{display:none!important}
.gform_wrapper .gfield_required::after{content:'*';color:var(--wp--preset--color--primary);margin-left:1px;font-size:13px}

/* Sub-labels & fieldsets */
.gform_wrapper .gform-field-label--type-sub{display:none!important}
.gform_wrapper fieldset{border:none!important;padding:0!important;margin:0!important;min-width:0!important}
.gform_wrapper legend{padding:0!important;margin:0 0 6px!important}

/* Name field internal grid */
.gform_wrapper .ginput_container--name{display:grid!important;grid-template-columns:1fr 1fr!important;gap:16px!important;background:transparent!important;border:none!important;padding:0!important;box-shadow:none!important}
.gform_wrapper .ginput_container--name .gform-grid-col{background:transparent!important;border:none!important;padding:0!important}
.gform_wrapper .ginput_container--name input[type="text"]{width:100%!important;display:block!important}

/* Text / tel / email — underline */
.gform_wrapper input[type="text"],
.gform_wrapper input[type="tel"],
.gform_wrapper input[type="email"]{background:#fff!important;border:none!important;border-bottom:1.5px solid rgba(0,0,0,.22)!important;border-radius:0!important;box-shadow:none!important;padding:10px 0!important;font-size:17px!important;font-family:inherit!important;color:#0d0d0d!important;width:100%!important;max-width:100%!important;box-sizing:border-box!important;outline:none!important;transition:border-color .2s!important}
.gform_wrapper input[type="text"]:focus,
.gform_wrapper input[type="tel"]:focus,
.gform_wrapper input[type="email"]:focus{border-bottom-color:#0d0d0d!important;outline:none!important}
.gform_wrapper input::placeholder{color:rgba(0,0,0,.28)!important;font-size:17px!important}

/* Select — full border + custom chevron */
.gform_wrapper .ginput_container_select{position:relative}
.gform_wrapper select.gfield_select{-webkit-appearance:none!important;appearance:none!important;background-color:#fff!important;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 16px center!important;border:1.5px solid rgba(0,0,0,.2)!important;border-radius:0!important;padding:14px 44px 14px 16px!important;font-size:16px!important;font-family:inherit!important;color:#0d0d0d!important;width:100%!important;cursor:pointer!important;transition:border-color .2s!important;box-shadow:none!important}
.gform_wrapper select.gfield_select:focus{border-color:#0d0d0d!important;outline:none!important}

/* Textarea — full border */
.gform_wrapper textarea{background:#fff!important;border:1.5px solid rgba(0,0,0,.2)!important;border-radius:0!important;box-shadow:none!important;padding:14px 16px!important;font-size:16px!important;font-family:inherit!important;color:#0d0d0d!important;width:100%!important;max-width:100%!important;box-sizing:border-box!important;outline:none!important;resize:vertical;min-height:120px;transition:border-color .2s!important}
.gform_wrapper textarea:focus{border-color:#0d0d0d!important;outline:none!important}

/* File upload */
/* Single file upload input */
.gform_wrapper .ginput_container_fileupload input[type="file"]{width:100%!important;box-sizing:border-box!important;background:#fff!important;border:1.5px solid rgba(0,0,0,.2)!important;border-radius:0!important;font-family:var(--wp--preset--font-family--geist-mono)!important;font-size:13px!important;color:rgba(0,0,0,.55)!important;cursor:pointer!important;padding:0!important;transition:border-color .2s!important}
.gform_wrapper .ginput_container_fileupload input[type="file"]:focus{outline:none!important;border-color:#0d0d0d!important}
.gform_wrapper .ginput_container_fileupload input[type="file"]::file-selector-button{background:#0d0d0d!important;color:#fff!important;border:none!important;border-right:1.5px solid rgba(0,0,0,.2)!important;padding:12px 18px!important;font-family:var(--wp--preset--font-family--geist-mono)!important;font-size:10px!important;font-weight:700!important;letter-spacing:.14em!important;text-transform:uppercase!important;cursor:pointer!important;transition:background .15s!important;margin-right:14px!important}
.gform_wrapper .ginput_container_fileupload input[type="file"]::-webkit-file-upload-button{background:#0d0d0d!important;color:#fff!important;border:none!important;border-right:1.5px solid rgba(0,0,0,.2)!important;padding:12px 18px!important;font-family:var(--wp--preset--font-family--geist-mono)!important;font-size:10px!important;font-weight:700!important;letter-spacing:.14em!important;text-transform:uppercase!important;cursor:pointer!important;transition:background .15s!important;margin-right:14px!important}
.gform_wrapper .ginput_container_fileupload input[type="file"]::file-selector-button:hover,.gform_wrapper .ginput_container_fileupload input[type="file"]::-webkit-file-upload-button:hover{background:var(--wp--preset--color--primary,#b31515)!important}

/* File upload drop zone */
.gform_wrapper .gform_drop_area{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:12px!important;
  padding:36px 24px!important;
  border:2px dashed rgba(0,0,0,.18)!important;
  background:#fafafa!important;
  border-radius:0!important;
  box-shadow:none!important;
  text-align:center!important;
  transition:border-color .2s, background .2s!important;
  cursor:pointer!important;
}
.gform_wrapper .gform_drop_area:hover{
  border-color:rgba(0,0,0,.45)!important;
  background:#f5f5f5!important;
}
/* Upload icon via ::before pseudo */
.gform_wrapper .gform_drop_area::before{
  content:'';
  display:block;
  width:40px;
  height:40px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 24 24' fill='none' stroke='rgba(0,0,0,0.3)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='17 8 12 3 7 8'/%3E%3Cline x1='12' y1='3' x2='12' y2='15'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-size:contain;
  flex-shrink:0;
}
.gform_wrapper .gform_drop_instructions{
  display:block!important;
  font-family:var(--wp--preset--font-family--geist-mono)!important;
  font-size:11px!important;
  letter-spacing:.16em!important;
  text-transform:uppercase!important;
  color:rgba(0,0,0,.4)!important;
  margin:0!important;
}
/* "Select Files" button — outlined secondary style */
.gform_wrapper .gform_button_select_files{
  display:inline-block!important;
  background:transparent!important;
  color:#0d0d0d!important;
  border:1.5px solid #0d0d0d!important;
  border-radius:0!important;
  padding:10px 20px!important;
  font-family:var(--wp--preset--font-family--geist-mono)!important;
  font-size:11px!important;
  font-weight:700!important;
  letter-spacing:.18em!important;
  text-transform:uppercase!important;
  cursor:pointer!important;
  box-shadow:none!important;
  transition:background .18s, color .18s!important;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%)!important;
  position:relative!important;
  z-index:1!important;
}
.gform_wrapper .gform_button_select_files:hover{
  background:#0d0d0d!important;
  color:#fff!important;
}
/* Accepted types caption */
.gform_wrapper .gform_fileupload_rules{
  display:block!important;
  font-family:var(--wp--preset--font-family--geist-mono)!important;
  font-size:10px!important;
  letter-spacing:.12em!important;
  text-transform:uppercase!important;
  color:rgba(0,0,0,.32)!important;
  margin-top:8px!important;
}
/* Uploaded file preview list */
.gform_wrapper .ginput_preview_list{margin-top:8px!important}
.gform_wrapper .ginput_preview_list .ginput_preview{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  padding:10px 14px!important;
  border:1.5px solid rgba(0,0,0,.12)!important;
  margin-bottom:6px!important;
  font-family:var(--wp--preset--font-family--geist-mono)!important;
  font-size:11px!important;
  letter-spacing:.08em!important;
  color:#0d0d0d!important;
  background:#fff!important;
}
.gform_wrapper .ginput_preview_list .ginput_preview .gform_delete_file{
  color:var(--wp--preset--color--primary)!important;
  font-family:var(--wp--preset--font-family--geist-mono)!important;
  font-size:10px!important;
  letter-spacing:.12em!important;
  text-transform:uppercase!important;
  text-decoration:none!important;
  flex-shrink:0!important;
}
.gform_wrapper .ginput_preview_list .ginput_preview .gform_delete_file:hover{
  text-decoration:underline!important;
}

/* Submit button — full-width black, chamfer corner, arrow */
.gform_wrapper .gform_footer,
.gform_wrapper .gform-footer{padding:8px 0 0!important;margin:0!important;border:none!important}
.gform_wrapper .gform_button{display:block!important;width:100%!important;background:#0d0d0d!important;color:#fff!important;border:none!important;padding:20px 28px!important;font-family:var(--wp--preset--font-family--geist-mono)!important;font-size:12px!important;font-weight:700!important;letter-spacing:.2em!important;text-transform:uppercase!important;cursor:pointer!important;text-align:left!important;position:relative!important;border-radius:0!important;clip-path:polygon(0 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%)!important;transition:background .2s!important}
.gform_wrapper .gform_button::after{content:'→';position:absolute;right:28px;top:50%;transform:translateY(-50%);font-size:20px;letter-spacing:0;font-family:sans-serif;transition:transform .2s}
.gform_wrapper .gform_button:hover{background:var(--wp--preset--color--primary)!important}
.gform_wrapper .gform_button:hover::after{transform:translateY(-50%) translateX(4px)}

/* Confirmation message */
.gform_wrapper .gform_confirmation_message{font-family:var(--wp--preset--font-family--geist-mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:rgba(0,0,0,.6);padding:20px 0}

/* Validation errors */
.gform_wrapper .gfield_error input,
.gform_wrapper .gfield_error select,
.gform_wrapper .gfield_error textarea{border-color:var(--wp--preset--color--primary)!important}
.gform_wrapper .validation_message,
.gform_wrapper .gfield_validation_message{color:var(--wp--preset--color--primary)!important;font-size:11px!important;font-family:var(--wp--preset--font-family--geist-mono)!important;letter-spacing:.1em!important;text-transform:uppercase!important;margin-top:6px!important;background:transparent!important;border:none!important;padding:0!important}
.gform_wrapper .gform_validation_errors{background:transparent!important;border:none!important;box-shadow:none!important;padding:0 0 8px!important}
.gform_wrapper .gform_validation_errors>h2{font-family:var(--wp--preset--font-family--geist-mono)!important;font-size:11px!important;letter-spacing:.12em!important;text-transform:uppercase!important;color:var(--wp--preset--color--primary)!important;font-weight:700!important}

/* Form 1 only — response-time note below submit */
#gform_wrapper_1 .gform_footer::after{content:'WE RESPOND WITHIN 1 BUSINESS DAY';display:block;font-family:var(--wp--preset--font-family--geist-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(0,0,0,.35);margin-top:20px;text-align:center}

/* Mobile — all fields go full-width */
@media(max-width:640px){
  .gform_wrapper .gfield--width-half{grid-column:span 2}
}

/* ── Misc ────────────────────────────────────────────── */
.post-edit-link{position:fixed;left:10px;bottom:10px;background:#791919;padding:4px 10px;color:#fff;text-decoration:none;font-weight:700;font-size:10px;z-index:999;font-family:var(--wp--preset--font-family--geist-mono);letter-spacing:.1em;text-transform:uppercase}
#top{display:block}

/* ── Responsive ──────────────────────────────────────── */
@media(max-width:860px){
  /* Stack columns. flex-wrap MUST be nowrap here: with flex-direction:column +
     flex-wrap:wrap and an indefinite container height, the flex algorithm
     reserves phantom main-size on the tallest column (huge empty space below
     the busyness clock). nowrap + content-height basis = clean vertical stack. */
  .wp-block-columns:not(.alignfull){flex-direction:column!important;flex-wrap:nowrap!important}
  .wp-block-columns:not(.alignfull) > .wp-block-column{
    flex:0 1 auto!important;
    flex-basis:auto!important;
  }
  .wp-block-columns.alignfull.has-white-background-color .wp-block-column{
    border-left:none;border-top:1px solid rgba(0,0,0,.1);
    padding-left:0;padding-top:clamp(20px,3vw,28px)
  }
  .wp-block-columns.alignfull.has-white-background-color .wp-block-column:first-child{border-top:none;padding-top:0}
  /* Home stats row: 2×2 grid on mobile with vertical + horizontal dividers */
  body.home .wp-block-columns.alignfull.has-white-background-color{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    column-gap:0!important;
    row-gap:0!important;
  }
  body.home .wp-block-columns.alignfull.has-white-background-color > .wp-block-column{
    width:auto!important;max-width:none!important;
    border:none!important;
    padding:clamp(20px,5vw,26px) clamp(16px,4vw,22px)!important;
  }
  /* outer edges flush */
  body.home .wp-block-columns.alignfull.has-white-background-color > .wp-block-column:nth-child(odd){padding-left:0!important}
  /* vertical divider between the two columns */
  body.home .wp-block-columns.alignfull.has-white-background-color > .wp-block-column:nth-child(even){
    padding-right:0!important;
    border-left:1px solid rgba(0,0,0,.12)!important;
  }
  /* row 1 flush to top, horizontal divider above row 2 */
  body.home .wp-block-columns.alignfull.has-white-background-color > .wp-block-column:nth-child(-n+2){padding-top:0!important}
  body.home .wp-block-columns.alignfull.has-white-background-color > .wp-block-column:nth-child(n+3){border-top:1px solid rgba(0,0,0,.12)!important}
  .wp-block-cover.has-custom-content-position.is-position-bottom-center{min-height:360px}
  .wp-block-group.is-content-justification-space-between.is-nowrap{flex-wrap:wrap;gap:8px}
  /* Footer — tablet */
  .footer-main__inner{grid-template-columns:1fr 1fr;gap:32px}
  .footer-col--brand{grid-column:1/-1}
  /* minmax(0,1fr) lets the track shrink below the address's content width;
     plain 1fr (= minmax(auto,1fr)) was letting the nowrap address force the
     column wider than the viewport, so the right column got clipped. */
  .footer-locations__inner{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .footer-loc{border-right:none;border-bottom:1px solid rgba(0,0,0,.08)}
  .footer-loc:nth-child(odd){border-right:1px solid rgba(0,0,0,.08)}
  .footer-loc:nth-last-child(-n+2){border-bottom:none}
  /* let addresses wrap instead of clipping with an ellipsis */
  .footer-loc__addr{white-space:normal;overflow:visible;text-overflow:clip}
}
@media(max-width:600px){
  /* ALL blocks: left/right padding aligns to the header (--pad), never the
     desktop 60px+. Same selector as the desktop rule so covers AND columns
     share one consistent inline gutter on mobile. */
  .wp-block-cover .wp-block-cover__inner-container,
  .wp-block-columns:not(.wp-block-cover__inner-container .wp-block-columns){
    padding-inline:var(--pad)!important;
    padding-block:clamp(36px,9vw,56px)!important;
  }
  /* NESTED columns must NOT re-add the gutter: the content rail already
     pads every direct child of an alignfull section (search "content rail"),
     so a columns block inside such a child was indented twice — its parent's
     --pad plus its own from the rule above. One gutter, owned by the
     outermost padded wrapper; nested containers contribute none. */
  body:not(.home) .wp-block-group.alignfull > :not(.alignfull) .wp-block-columns:not(.wp-block-cover__inner-container .wp-block-columns){
    padding-inline:0!important;
    padding-block:clamp(10px,3vw,20px)!important;
  }
  /* Hero keeps its tighter top/bottom rhythm (set below) */
  .wp-block-cover.hero .wp-block-cover__inner-container{
    padding-block:clamp(24px,6vw,40px)!important;
  }
  /* Hero — pack to content height (no forced tall screen) and stop the bottom
     locations strip from being absolutely positioned (it was overlapping the
     paragraph/CTAs and reading as jumbled). Now it flows below the content. */
  .wp-block-cover.hero,
  .hero{min-height:calc(100vh - 100px)!important}
  .wp-block-cover.hero .wp-block-cover__inner-container{padding-top:clamp(24px,6vw,40px)}
  /* margin-top:auto + the margin-bottom:auto below center the top content in
     the free space, so on tall viewports the H1/H2 sit lower (smaller gap above
     the pinned bottom strip) instead of clinging to the top. */
  .hero .wp-block-cover__inner-container .wp-block-columns:first-child{margin-top:auto!important}
  body.home .hero .wp-block-cover__inner-container .wp-block-columns:first-child{margin-top:10vh!important}
  /* Full-height hero: top content packs at top, the bottom strip (locations +
     scroll) is pushed to the bottom edge via margin-bottom:auto on the columns. */
  .hero .wp-block-cover__inner-container{display:flex!important;flex-direction:column}
  /* Stack the 70/30 hero columns with plain block flow on mobile — avoids the
     flex-direction:column + align-items interactions that otherwise either push
     col 2's content below the fold or collapse the column to ~1 char wide.
     Block flow = each column full width, natural height, in document order. */
  .hero .wp-block-columns{display:block!important;width:100%!important;margin-bottom:auto!important}
  .hero .wp-block-columns > .wp-block-column{width:100%!important;max-width:100%!important}
  /* Breathing room around the intro paragraph (above and below) */
  .hero .wp-block-column.is-vertically-aligned-bottom{display:block!important;margin-top:clamp(26px,7vw,36px)}
  .hero .wp-block-column.is-vertically-aligned-bottom > p:first-child{margin-bottom:clamp(22px,6vw,30px)!important}
  .hero-bottom{
    position:static!important;
    flex-direction:column;
    align-items:flex-start;
    gap:12px;
    margin-top:22px;
    padding: 20px 0 0 !important
  }
  /* Locations strip: count on its own line, cities in one horizontal row
     (dot-separated) that wraps across the full width instead of stacking. */
  .hero-bottom .locations-strip{flex-direction:column;align-items:flex-start;gap:8px;width:100%}
  .hero-bottom .locations-strip__names{flex-wrap:wrap;gap:4px 8px;width:100%; display: none}
  .scroll-down {display: none}
  .hero .wp-block-group {width: 100%}
  /* Footer — mobile: compact. Brand + Contact span the full width; the two
     nav lists (Services / About) share a row; locations become a tight 2×2
     grid. Padding and gaps trimmed so the footer isn't a huge scroll. */
  .footer-main__inner{
    grid-template-columns:1fr 1fr;
    gap:22px 18px;
    padding:32px var(--pad) 26px;
  }
  .footer-col--brand{grid-column:1/-1}
  .footer-col--contact{grid-column:1/-1}
  .footer-tagline{max-width:46ch;margin-bottom:0;font-size:12.5px;line-height:1.55}
  .footer-col--brand .site-logo{margin-bottom:10px}
  .footer-col__label{margin-bottom:10px}
  .footer-col--nav li a{padding:3px 0;font-size:13px}
  .footer-address{margin-bottom:14px}

  /* Locations: 2×2 grid with cross dividers (was 4 stacked rows) */
  .footer-locations__inner{grid-template-columns:repeat(2,1fr)}
  .footer-loc{
    padding:14px var(--pad);
    border-right:none;
    border-bottom:1px solid rgba(0,0,0,.08);
  }
  .footer-loc:nth-child(odd){border-right:1px solid rgba(0,0,0,.08)}
  .footer-loc:nth-last-child(-n+2){border-bottom:none}
  .footer-loc__addr{white-space:normal;overflow:visible;text-overflow:clip}

  /* Bottom bar */
  .footer-bottom__inner{flex-direction:column;align-items:flex-start;gap:8px;padding-block:14px}
  .footer-bottom__nav ul{gap:16px}
}
@media(prefers-reduced-motion:reduce){
  .site-header{transition:none;transform:none}
  .live-dot,.announce-dot{animation:none}
  ul.wp-block-list.news-ticker li,.marquee-track{animation:none}
}

/* ═══════════════════════════════════════════════════════════════
   About Page — block pattern styles
   Classes used inside the [transform180/about-page] block pattern
═══════════════════════════════════════════════════════════════ */

/* ── Shared container & utility ──────────────────────────────── */
.t180-ab-container {
  max-width: var(--wp--style--global--wide-size);
  margin: 0 auto;
  padding: 0 clamp(20px,4vw,56px);
}
/* Full-width groups that hold .t180-ab-container need no inner padding */
.wp-block-group.alignfull > .t180-ab-container { padding-top: 0; padding-bottom: 0; }

.t180-ab-red { color: var(--wp--preset--color--primary); }

/* ── Eyebrow label ───────────────────────────────────────────── */
.t180-ab-eyebrow {
  font-family: var(--wp--preset--font-family--geist-mono, monospace);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .22em;
  color: var(--primary-text-safe);
  margin: 0 0 20px;
  padding: 0;
  display: block;
}
.t180-ab-eyebrow--dark { color: var(--wp--preset--color--primary); }

/* ── Hero eyebrow row ────────────────────────────────────────── */
.t180-ab-eyebrow-row {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: clamp(32px, 5vw, 60px);
}
.t180-ab-eyebrow-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--wp--preset--font-family--geist-mono, monospace);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .22em;
  color: var(--wp--preset--color--primary);
}
.t180-ab-live-dot {
  display: inline-block;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--wp--preset--color--primary);
  flex-shrink: 0;
  animation: livepulse 2s ease-out infinite;
}
.t180-ab-eyebrow-sep { color: rgba(255,255,255,.3); }
.t180-ab-eyebrow-sub {
  font-family: var(--wp--preset--font-family--geist-mono, monospace);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .22em;
  color: rgba(255,255,255,.65);
}

/* ── Hero — cover block ──────────────────────────────────────── */
.t180-ab-hero.wp-block-cover .wp-block-cover__inner-container {
  max-width: var(--wp--style--global--wide-size);
  margin: 0 auto;
  padding: clamp(64px,8vw,120px) clamp(20px,4vw,56px) clamp(48px,6vw,80px);
  width: 100%;
}
.t180-ab-hero.wp-block-cover .wp-block-columns { align-items: flex-end; }

/* ── Stat strip ──────────────────────────────────────────────── */
.t180-ab-stats-inner { /* uses .t180-ab-container inside */ }
.t180-ab-stats-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(24px,4vw,40px) clamp(20px,4vw,40px);
  padding: clamp(40px,5vw,56px) 0;
}
@media (min-width: 768px) { .t180-ab-stats-grid { grid-template-columns: repeat(4, 1fr); } }
.t180-ab-stat-num {
  font-family: var(--wp--preset--font-family--geist-mono, monospace);
  font-variant-numeric: tabular-nums;
  font-size: clamp(28px, 4vw, 44px);
  letter-spacing: -0.02em;
  line-height: 1;
  font-weight: 600;
}
.t180-ab-stat-label {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .12em;
  margin-top: 12px;
}
.t180-ab-stat-desc {
  font-size: 12px;
  color: var(--muted-ink, rgba(0,0,0,.6));
  margin-top: 4px;
}

/* ── Differentiator cards ────────────────────────────────────── */
.t180-ab-diff-grid.wp-block-columns {
  gap: 14px !important;
}
.t180-ab-diff-card.wp-block-column {
  background: #f4f4f4;
  padding: clamp(20px,2.5vw,24px) !important;
}
.t180-ab-diff-icon {
  width: 44px; height: 44px;
  background: var(--wp--preset--color--black);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
}
.t180-ab-diff-title.wp-block-heading {
  font-size: 16px !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em;
  margin: 0 0 8px !important;
  padding: 0 !important;
  line-height: 1.3 !important;
}
.t180-ab-diff-desc {
  font-size: 13.5px !important;
  line-height: 1.65 !important;
  color: rgba(13,13,13,.7) !important;
  margin: 0 !important;
}

/* ── Brand promise cards ─────────────────────────────────────── */
.t180-ab-promise-card.wp-block-group .wp-block-group {
  display: flex !important;
  flex-direction: column;
  gap: 16px;
}

.t180-ab-promise-card.wp-block-group .wp-block-group {
  align-items: start;
  padding-bottom: 30px;
}

.wp-block-group
.t180-ab-promise-header {
  display: flex;
  align-items: center;
  gap: 14px;
}
.t180-ab-promise-num {
  font-family: var(--wp--preset--font-family--geist-mono, monospace);
  font-size: 12px;
  letter-spacing: .18em;
  color: var(--wp--preset--color--primary);
}
.t180-ab-promise-icon {
  width: 48px; height: 48px;
  background: var(--wp--preset--color--primary);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.t180-ab-promise-title.wp-block-heading {
  margin: 0 !important;
  padding: 0 !important;
}

/* ── Careers barricade ───────────────────────────────────────── */
.t180-ab-careers-barricade {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 5px;
  background: repeating-linear-gradient(135deg, #0d0d0d 0 10px, #e83f44 10px 20px);
  opacity: .9;
}

/* ── Careers application box ─────────────────────────────────── */
.t180-ab-careers-box {
  border: 1px solid rgba(255,255,255,.15);
}
.t180-ab-careers-box-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  padding: clamp(16px,2vw,20px) clamp(20px,3vw,32px);
  border-bottom: 1px solid rgba(255,255,255,.15);
}
.t180-ab-careers-box-meta {
  font-family: var(--wp--preset--font-family--geist-mono, monospace);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .2em;
  color: rgba(255,255,255,.55);
}
.t180-ab-careers-box-email {
  font-family: var(--wp--preset--font-family--geist-mono, monospace);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .16em;
  color: var(--wp--preset--color--primary);
}
.t180-ab-careers-box-body {
  padding: clamp(24px,3vw,28px) clamp(20px,3vw,32px);
}
.t180-ab-careers-intro {
  font-size: 15px;
  line-height: 1.65;
  color: rgba(255,255,255,.8);
  max-width: 60ch;
  margin: 0 0 28px;
}
.t180-ab-careers-questions {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.t180-ab-careers-questions li {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  font-size: clamp(14px, 1.3vw, 16px);
  line-height: 1.65;
  color: rgba(255,255,255,.9);
}
.t180-ab-q-num {
  font-family: var(--wp--preset--font-family--geist-mono, monospace);
  font-size: 13px;
  letter-spacing: .1em;
  color: var(--wp--preset--color--primary);
  flex-shrink: 0;
  min-width: 28px;
  padding-top: 2px;
}
.t180-ab-careers-thanks {
  margin: 24px 0 0;
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,.15);
  font-size: 13.5px;
  color: rgba(255,255,255,.6);
}

/* ── Responsive ──────────────────────────────────────────────── */
@media (max-width: 768px) {
  .t180-ab-hero.wp-block-cover .wp-block-columns { flex-direction: column !important; }
  .t180-ab-diff-grid.wp-block-columns { flex-direction: column !important; }
}

/* ═══════════════════════════════════════════════════════════════
   MEMBERSHIPS & SERVICES PAGE  [t180_memberships]
═══════════════════════════════════════════════════════════════ */

/* ── Shared layout tokens ──
   Defined at :root because the memberships sections are standalone
   wp:html blocks with no common .t180-mem ancestor on the page. */
:root, .t180-mem { --mem-red:#e83f44; --mem-ink:#0d0d0d; --mem-paper:#fff; --mem-soft:#f4f4f4; --mem-chalk:#ededed; }
.t180-mem-wrap { max-width:var(--wp--style--global--wide-size); margin-left:auto; margin-right:auto; padding-left:var(--pad); padding-right:var(--pad); }
.t180-mem-red { color:var(--mem-red); }

/* ── Reveal animation ── */
.t180-mem-reveal { opacity:0; transform:translateY(16px); transition:opacity .75s cubic-bezier(.16,1,.3,1), transform .75s cubic-bezier(.16,1,.3,1); }
.t180-mem-reveal--in { opacity:1; transform:none; }

/* ── Shared eyebrow label ── */
.t180-mem-eyebrow { font-family:var(--wp--preset--font-family--geist-mono); font-size:11px; text-transform:uppercase; letter-spacing:.22em; color:var(--mem-red); margin-bottom:20px; }
.t180-mem-eyebrow--white { color:rgba(255,255,255,.8); }
.t180-mem-eyebrow--mini { font-size:11px; color:var(--mem-red); margin-bottom:16px; }
.t180-mem-eyebrow--center { text-align:center; }

/* ── Shared tag (small mono label) ── */
.t180-mem-tag { font-size:10.5px; text-transform:uppercase; letter-spacing:.2em; color:rgba(13,13,13,.5); margin-bottom:16px; }

/* ── Buttons row ── */
.t180-mem-btns { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:28px; }
.t180-mem-btns--mt { margin-top:32px; }
.t180-mem-btns--center { justify-content:center; margin-top:36px; }
.t180-mem-btn { display:inline-flex; align-items:center; gap:8px; }
.t180-mem-btn--full { width:100%; justify-content:center; }
.t180-mem-btn--mt { margin-top:28px; }

/* ── Check icon ── */
.t180-mem-check { flex-shrink:0; margin-top:2px; color:var(--mem-red); }
.t180-mem-check--dark { color:var(--mem-red); }
.t180-mem-check--red { color:var(--mem-red); }

/* ── Live indicator dot ── */
.t180-mem-live { display:inline-flex; align-items:center; gap:8px; font-family:var(--wp--preset--font-family--geist-mono); font-size:11px; text-transform:uppercase; letter-spacing:.22em; color:var(--mem-red); }
.t180-mem-sep { color:rgba(255,255,255,.3); margin:0 4px; }

/* ─────────────────────────────────
   HERO
───────────────────────────────── */
.t180-mem-hero { position:relative; overflow:hidden; background:var(--mem-ink); color:#fff; isolation:isolate; }
.t180-mem-hero__bg { position:absolute; inset:0; background-size:cover; background-position:center; transform:scale(1.03); }
.t180-mem-hero__grad-r { position:absolute; inset:0; background:linear-gradient(to right, rgba(13,13,13,1) 0%, rgba(13,13,13,.75) 50%, rgba(13,13,13,.25) 100%); }
.t180-mem-hero__grad-t { position:absolute; inset:0; background:linear-gradient(to top, rgba(13,13,13,1) 0%, rgba(13,13,13,.45) 50%, rgba(13,13,13,.1) 100%); }
.t180-mem-hero__inner { position:relative; z-index:1; min-height:88vh; display:flex; flex-direction:column; }
.t180-mem-hero__eyebrow { padding-top:clamp(40px,5vw,64px); display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.t180-mem-hero__sub { font-family:var(--wp--preset--font-family--geist-mono); font-size:11px; text-transform:uppercase; letter-spacing:.22em; color:rgba(255,255,255,.65); }
.t180-mem-hero__bottom { flex:1; display:flex; align-items:flex-end; padding-bottom:clamp(48px,7vw,96px); }
.t180-mem-hero__title { font-size:clamp(48px,9vw,148px); color:#fff; margin:0; padding:0; line-height:.86; }
.t180-mem-hero__copy-row { margin-top:clamp(28px,4vw,48px); display:grid; grid-template-columns:1fr; }
@media(min-width:900px){ .t180-mem-hero__copy-row { grid-template-columns:repeat(12,1fr); } .t180-mem-hero__copy-col { grid-column:7 / 13; } }
@media(min-width:1200px){ .t180-mem-hero__copy-col { grid-column:8 / 13; } }
.t180-mem-hero__body { font-size:clamp(15px,1.3vw,17px); line-height:1.65; color:rgba(255,255,255,.8); max-width:52ch; }
.t180-mem-hero__title span { color:var(--mem-red); }

/* ─────────────────────────────────
   STICKY SERVICE NAV
───────────────────────────────── */
.t180-mem-snav { position:sticky; top:0; z-index:25; background:rgba(255,255,255,.92); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); border-bottom:1px solid var(--mem-ink); }
.t180-mem-snav__inner { max-width:var(--wp--style--global--wide-size); margin:0 auto; padding:0 var(--pad); height:64px; display:flex; align-items:center; gap:8px; overflow-x:auto; scrollbar-width:none; }
.t180-mem-snav__inner::-webkit-scrollbar { display:none; }
.t180-mem-snav__item { flex-shrink:0; display:inline-flex; align-items:center; gap:8px; height:36px; padding:0 14px; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; border:1px solid rgba(13,13,13,.2); color:var(--mem-ink); text-decoration:none; transition:background .2s ease,color .2s ease; white-space:nowrap; }
.t180-mem-snav__item:hover { background:var(--mem-ink); color:#fff; }
.t180-mem-snav__num { font-family:var(--wp--preset--font-family--geist-mono); font-size:10px; letter-spacing:.12em; opacity:.5; }
.t180-mem-snav__order { flex-shrink:0; margin-left:auto; display:none; align-items:center; gap:8px; height:36px; padding:0 16px; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
@media(min-width:768px){ .t180-mem-snav__order { display:inline-flex; } }

/* ─────────────────────────────────
   NCO BANNER
───────────────────────────────── */
.t180-mem-nco { background:var(--mem-red); color:#fff; padding:clamp(64px,8vw,96px) 0; }
.t180-mem-nco__grid { display:grid; grid-template-columns:1fr; gap:clamp(32px,5vw,56px); align-items:center; }
@media(min-width:900px){ .t180-mem-nco__grid { grid-template-columns:7fr 5fr; } }
.t180-mem-nco__title { font-size:clamp(40px,7vw,88px); color:#fff; margin:0; padding:0; }
.t180-mem-nco__body { margin-top:24px; font-size:clamp(15px,1.2vw,17px); line-height:1.65; color:rgba(255,255,255,.9); max-width:54ch; }
.t180-mem-nco__feats { margin:28px 0 0; padding:0; list-style:none; display:grid; grid-template-columns:1fr; gap:10px; }
@media(min-width:560px){ .t180-mem-nco__feats { grid-template-columns:1fr 1fr; } }
.t180-mem-nco__feats li { display:flex; align-items:flex-start; gap:10px; font-size:14px; color:rgba(255,255,255,.95); }
.t180-mem-nco__footnote { margin-top:16px; font-size:11px; text-transform:uppercase; letter-spacing:.16em; color:rgba(255,255,255,.7); }
.t180-mem-nco__card { }
.t180-mem-nco__card-inner { background:#fff; color:var(--mem-ink); padding:clamp(28px,4vw,40px); }
.t180-mem-nco__card-inner .t180-mem-tag { color:var(--mem-red); font-weight:700; letter-spacing:.22em; }
.t180-mem-nco__price-row { display:flex; align-items:flex-end; gap:14px; margin-top:12px; }
.t180-mem-nco__price { font-size:clamp(72px,10vw,112px); line-height:.8; color:var(--mem-red); }
/* sub: "total" muted, "3 sessions" bold ink — second line carries the info */
.t180-mem-nco__price-sub { display:block; font-size:15px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--mem-ink); padding-bottom:8px; line-height:1.5; }
.t180-mem-nco__price-sub::first-line { font-size:11px; font-weight:400; letter-spacing:.16em; color:rgba(13,13,13,.5); }
.t180-mem-nco__locs { display:flex; flex-wrap:wrap; gap:8px; margin-top:28px; }
.t180-mem-nco__locs::before { content:"Available at"; flex-basis:100%; font-size:10px; text-transform:uppercase; letter-spacing:.18em; color:rgba(13,13,13,.45); margin-bottom:2px; }
.t180-mem-loc-chip { display:inline-flex; align-items:center; background:var(--mem-soft); padding:0 12px; height:32px; font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.06em; color:rgba(13,13,13,.8); }
.t180-mem-nco__secure { margin-top:12px; text-align:center; font-size:11px; text-transform:uppercase; letter-spacing:.14em; color:rgba(13,13,13,.45); }

/* ── Mini buy chips (live price + cart link, used in partner/passes) ── */
.t180-mem-minirow { display:flex; flex-wrap:wrap; gap:10px; flex-basis:100%; margin-top:24px; }
.t180-mem-minibuy { display:inline-flex; align-items:baseline; gap:10px; padding:13px 18px; border:1px solid rgba(13,13,13,.25); font-family:var(--wp--preset--font-family--geist-mono); font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; color:var(--wp--preset--color--black); text-decoration:none; transition:all .2s ease; }
.t180-mem-minibuy strong { font-weight:800; font-size:14px; color:var(--primary-text-safe, #d51a1f); transition:color .2s ease; }
/* Optional label detail — <span> inside a custom Mindbody Item label
   renders smaller + lighter, e.g. "5 Pack <span>2 month expiry</span>" */
.t180-mem-minibuy span { font-size:10px; font-weight:400; color:rgba(13,13,13,.6); letter-spacing:.06em; }
.t180-mem-minibuy:hover span { color:rgba(255,255,255,.6); }
.has-black-background-color .t180-mem-minibuy span { color:rgba(255,255,255,.5); }
.has-black-background-color .t180-mem-minibuy:hover span { color:rgba(13,13,13,.5); }
.t180-mem-minibuy:hover { background:var(--wp--preset--color--black); border-color:var(--wp--preset--color--black); color:#fff; }
.has-black-background-color .t180-mem-minibuy { border-color:rgba(255,255,255,.35); color:#fff; }
.has-black-background-color .t180-mem-minibuy:hover { background:#fff; border-color:#fff; color:var(--wp--preset--color--black); }
.has-black-background-color .t180-mem-minibuy:hover strong { color:var(--wp--preset--color--primary); }

/* ─────────────────────────────────
   SECTION LAYOUT (PT + Open-Gym)
───────────────────────────────── */
.t180-mem-section { padding:clamp(64px,8vw,112px) 0; }
.t180-mem-section__head { display:grid; grid-template-columns:1fr; gap:24px; margin-bottom:clamp(32px,4vw,48px); align-items:end; }
@media(min-width:768px){ .t180-mem-section__head { grid-template-columns:8fr 4fr; } }
.t180-mem-section__title { font-size:clamp(36px,5.5vw,64px); margin:0; padding:0; }
.t180-mem-section__blurb { font-size:15px; line-height:1.65; color:rgba(13,13,13,.7); max-width:42ch; }
.t180-mem-dot { display:inline-block; width:6px; height:6px; background:var(--mem-red); flex-shrink:0; margin-top:7px; }

/* ─────────────────────────────────
   PRICING TABS + CARDS
───────────────────────────────── */
.t180-mem-tabs__bar { display:flex; align-items:center; gap:4px; background:var(--mem-soft); padding:4px; width:max-content; margin-bottom:28px; }
.t180-mem-tabs__row { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:28px; }
.t180-mem-tabs__row .t180-mem-tabs__bar { margin-bottom:0; }
.t180-mem-tab-btn { background:none; border:none; height:44px; padding:0 20px; font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:rgba(13,13,13,.55); cursor:pointer; transition:background .2s ease,color .2s ease; font-family:var(--wp--preset--font-family--geist); }
.t180-mem-tab-btn:hover { color:var(--mem-ink); }
.t180-mem-tab-btn--active { background:var(--mem-ink); color:#fff !important; }

.t180-mem-cards { display:grid; gap:14px; }
.t180-mem-cards--1col { grid-template-columns:1fr; max-width:420px; }
.t180-mem-cards--2col { grid-template-columns:1fr; }
.t180-mem-cards--3col { grid-template-columns:1fr; }
.t180-mem-cards--4col { grid-template-columns:1fr; }
@media(min-width:560px){ .t180-mem-cards--2col,.t180-mem-cards--3col,.t180-mem-cards--4col { grid-template-columns:1fr 1fr; } }
@media(min-width:900px){ .t180-mem-cards--3col { grid-template-columns:repeat(3,1fr); } }
@media(min-width:900px){ .t180-mem-cards--4col { grid-template-columns:repeat(4,1fr); } }

/* Pricing card */
.t180-mem-card { position:relative; display:flex; flex-direction:column; padding:clamp(24px,3vw,32px); }
.t180-mem-card--light { background:var(--mem-soft); color:var(--mem-ink); }
.t180-mem-card--dark { background:var(--mem-ink); color:#fff; }
.t180-mem-card__badge { position:absolute; top:0; right:0; background:var(--mem-red); color:#fff; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.16em; padding:0 12px; height:28px; display:inline-flex; align-items:center; }
.t180-mem-card__term { font-size:10.5px; text-transform:uppercase; letter-spacing:.2em; color:rgba(13,13,13,.5); margin-bottom:12px; }
.t180-mem-card--dark .t180-mem-card__term { color:rgba(255,255,255,.55); }
.t180-mem-card__name { font-size:clamp(22px,2.5vw,30px); margin:0 0 16px; }
.t180-mem-card__price-row { display:flex; align-items:flex-end; gap:8px; margin-bottom:0; }
.t180-mem-card__price { font-size:clamp(40px,4vw,52px); line-height:.8; color:var(--mem-ink); }
.t180-mem-card--dark .t180-mem-card__price { color:var(--mem-red); }
.t180-mem-card__price-sub { font-size:12px; text-transform:uppercase; letter-spacing:.12em; color:rgba(13,13,13,.5); padding-bottom:6px; line-height:1.3; }
.t180-mem-card--dark .t180-mem-card__price-sub { color:rgba(255,255,255,.55); }
.t180-mem-card__feats { margin:24px 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:10px; flex:1; }
.t180-mem-card__feats li { display:flex; align-items:flex-start; gap:10px; font-size:13px; }
.t180-mem-card--light .t180-mem-card__feats li { color:rgba(13,13,13,.8); }
.t180-mem-card--dark .t180-mem-card__feats li { color:rgba(255,255,255,.85); }
.t180-mem-feat--off { opacity:.35; }
.t180-mem-feat-icon--off { opacity:.25; }
.t180-mem-card__cta { margin-top:28px; height:48px; font-size:12px; }

/* ─────────────────────────────────
   PT FOOTER: notes + quote
───────────────────────────────── */
.t180-mem-pt__footer { margin-top:clamp(40px,5vw,64px); display:grid; grid-template-columns:1fr; gap:32px; align-items:start; }
@media(min-width:900px){ .t180-mem-pt__footer { grid-template-columns:7fr 5fr; gap:48px; } }
.t180-mem-pt__notes-list { margin:0; padding:0; list-style:none; display:grid; grid-template-columns:1fr; gap:10px; }
@media(min-width:560px){ .t180-mem-pt__notes-list { grid-template-columns:1fr 1fr; } }
.t180-mem-pt__notes-list li { display:flex; align-items:flex-start; gap:10px; font-size:13.5px; color:rgba(13,13,13,.75); }
.t180-mem-quote { background:var(--mem-soft); padding:clamp(24px,3vw,32px); margin:0; }
.t180-mem-quote__text { font-size:clamp(22px,2.2vw,32px); line-height:1.05; }
.t180-mem-quote__attr { margin-top:16px; font-size:11px; text-transform:uppercase; letter-spacing:.18em; color:rgba(13,13,13,.55); }

/* ─────────────────────────────────
   PARTNER TRAINING
───────────────────────────────── */
.t180-mem-partner { background:var(--mem-soft); border-top:1px solid rgba(13,13,13,.1); border-bottom:1px solid rgba(13,13,13,.1); padding:clamp(64px,8vw,112px) 0; }
.t180-mem-partner__grid { display:grid; grid-template-columns:1fr; gap:16px; align-items:stretch; }
@media(min-width:900px){ .t180-mem-partner__grid { grid-template-columns:1fr 1fr; } }
.t180-mem-partner__img { position:relative; overflow:hidden; background:var(--mem-ink); min-height:360px; }
.t180-mem-partner__photo { position:absolute; inset:0; background-size:cover; background-position:center; }
.t180-mem-partner__grad { position:absolute; inset:0; background:linear-gradient(to top, rgba(13,13,13,.7) 0%, transparent 60%); }
.t180-mem-partner__badge { position:absolute; bottom:24px; left:24px; display:inline-flex; align-items:center; gap:8px; background:#fff; color:var(--mem-ink); height:36px; padding:0 12px; font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.18em; }
.t180-mem-partner__content { display:flex; flex-direction:column; justify-content:center; padding:clamp(32px,4vw,48px) 0; }
@media(min-width:900px){ .t180-mem-partner__content { padding:0 0 0 clamp(24px,3vw,40px); } }
.t180-mem-partner__body { margin-top:20px; font-size:clamp(15px,1.2vw,16px); line-height:1.65; color:rgba(13,13,13,.8); max-width:50ch; }
.t180-mem-feats { margin:24px 0 0; padding:0; list-style:none; display:grid; grid-template-columns:1fr; gap:8px; }
@media(min-width:560px){ .t180-mem-feats { grid-template-columns:1fr 1fr; } }
.t180-mem-feats li { display:flex; align-items:flex-start; gap:10px; font-size:13.5px; color:rgba(13,13,13,.8); }

/* ─────────────────────────────────
   OPEN-GYM NOTE
───────────────────────────────── */
.t180-mem-og__note { margin-top:28px; display:flex; align-items:flex-start; gap:10px; font-size:12.5px; color:rgba(13,13,13,.6); max-width:80ch; }

/* ─────────────────────────────────
   VISITOR + INBODY MINI CARDS
───────────────────────────────── */
.t180-mem-mini-wrap { background:var(--mem-soft); border-top:1px solid rgba(13,13,13,.1); border-bottom:1px solid rgba(13,13,13,.1); padding:clamp(64px,8vw,112px) 0; }
.t180-mem-mini__title { font-size:clamp(32px,4vw,56px); margin:0 0 clamp(32px,4vw,48px); }
.t180-mem-mini__grid { display:grid; grid-template-columns:1fr; gap:14px; }
@media(min-width:900px){ .t180-mem-mini__grid { grid-template-columns:1fr 1fr; } }
.t180-mem-mini { position:relative; overflow:hidden; background:var(--mem-ink); color:#fff; min-height:440px; display:flex; flex-direction:column; justify-content:flex-end; }
.t180-mem-mini__bg { position:absolute; inset:0; background-size:cover; background-position:center; opacity:.65; }
.t180-mem-mini__grad { position:absolute; inset:0; background:linear-gradient(to top, rgba(13,13,13,1) 0%, rgba(13,13,13,.55) 50%, rgba(13,13,13,.1) 100%); }
.t180-mem-mini__content { position:relative; z-index:1; padding:clamp(24px,3vw,40px); }
.t180-mem-mini__heading { font-size:clamp(28px,3vw,44px); margin:0 0 16px; }
.t180-mem-mini__body { font-size:15px; line-height:1.65; color:rgba(255,255,255,.8); max-width:44ch; }
.t180-mem-mini__feats { margin:20px 0 0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:8px 20px; }
.t180-mem-mini__feats li { display:flex; align-items:center; gap:8px; font-size:13px; color:rgba(255,255,255,.85); }

/* ─────────────────────────────────
   BOTTOM CTA
───────────────────────────────── */
.t180-mem-cta { background:var(--mem-ink); color:#fff; padding:clamp(64px,8vw,112px) 0; }
.t180-mem-cta__inner { text-align:center; }
.t180-mem-cta__title { font-size:clamp(44px,8vw,112px); color:#fff; margin:0; padding:0; }
.t180-mem-cta__title span { color:var(--mem-red); }
.t180-mem-cta__body { margin-top:28px; font-size:clamp(15px,1.2vw,17px); line-height:1.65; color:rgba(255,255,255,.8); max-width:52ch; margin-left:auto; margin-right:auto; }

/* ═══════════════════════════════════════════════════════
   CAREERS APPLICATION FORM  (Gravity Forms #2)
   Light editorial multi-step layout
═══════════════════════════════════════════════════════ */

/* ── Light shell ── */
#gform_wrapper_2,
.t180-careers-form {
  background: #fff;
  color: var(--wp--preset--color--black);
}

/* ── Form container ── */
#gform_2 {
  background: #fff;
  color: var(--wp--preset--color--black);
  max-width: 760px;
  margin: 0 auto;
  padding: 0 var(--pad) clamp(40px,5vw,56px);
}

#gform_2 .gform_body { padding: 0; margin: 0; }
#gform_2 .gform_fields { padding: 0; margin: 0; list-style: none; }

/* ─────────────────────────────────
   PROGRESS BAR
───────────────────────────────── */

#gf_progressbar_wrapper_2 {
  /* form already handles horizontal padding — no double-indent */
  padding: clamp(20px,2.5vw,28px) 0 16px;
}

/* "Step X of 6" — monospaced, minimal */
#gf_progressbar_wrapper_2 .gf_progressbar_title {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted-ink, rgba(0,0,0,.6));
  margin: 0 0 14px;
  line-height: 1;
}

#gf_progressbar_wrapper_2 .gf_step_current_page {
  color: var(--wp--preset--color--primary);
  font-size: 13px;
}

#gf_progressbar_wrapper_2 .gf_step_page_count { color: rgba(0,0,0,.35); }
#gf_progressbar_wrapper_2 .gf_step_page_name  { display: none; }

#gf_progressbar_wrapper_2 {
  position: relative;
}

/* Track */
#gf_progressbar_wrapper_2 .gf_progressbar,
#gf_progressbar_wrapper_2 .gf_progressbar_blue {
  height: 2px !important;
  background: rgba(0,0,0,.1) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: hidden;
  position: relative;
}

/* Red fill — animated by GF's inline width style */
#gf_progressbar_wrapper_2 .gf_progressbar_percentage {
  height: 100% !important;
  background: var(--wp--preset--color--primary) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  transition: width 0.45s cubic-bezier(0.4,0,0.2,1) !important;
  position: relative;
  z-index: 1;
}

/* Segment gap overlay — 1px white notches every 1/6th */
#gf_progressbar_wrapper_2 .gf_progressbar::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(to right,
    transparent calc(16.667% - 1px), #fff calc(16.667% - 1px), #fff 16.667%,
    transparent 16.667%, transparent calc(33.333% - 1px), #fff calc(33.333% - 1px), #fff 33.333%,
    transparent 33.333%, transparent calc(50% - 1px), #fff calc(50% - 1px), #fff 50%,
    transparent 50%, transparent calc(66.667% - 1px), #fff calc(66.667% - 1px), #fff 66.667%,
    transparent 66.667%, transparent calc(83.333% - 1px), #fff calc(83.333% - 1px), #fff 83.333%,
    transparent 83.333%
  );
}

/* Hide GF's default percentage text inside the bar */
#gf_progressbar_wrapper_2 .gf_progressbar_percentage span { display: none !important; }

/* ─────────────────────────────────
   PAGES
───────────────────────────────── */

#gform_2 .gform_page { padding: 0; }
#gform_2 .gform_page_fields { padding: clamp(20px,2.5vw,28px) 0 0; }

/* ─────────────────────────────────
   FIELDS — shared
───────────────────────────────── */

#gform_2 .gfield {
  margin: 0 0 clamp(16px,2vw,22px);
  border: none;
  padding: 0;
}

/* All labels — consistent mono uppercase throughout every step */
#gform_2 .gfield_label,
#gform_2 legend.gfield_label {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted-ink, rgba(0,0,0,.6));
  line-height: 1;
  margin: 0 0 10px;
  display: block;
  padding: 0;
  border: none;
}

/* Sub-labels (First / Last under Name) */
#gform_2 .gform-field-label--type-sub {
  font-family: var(--mono) !important;
  font-size: 10px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--muted-ink, rgba(0,0,0,.6)) !important;
  margin: 8px 0 0 !important;
  font-weight: 400 !important;
  display: block !important;
}

/* Hide required asterisk */
#gform_2 .gfield_required { display: none !important; }

/* ─────────────────────────────────
   STEP 1 — Contact info layout
───────────────────────────────── */

/* Name + Email/Phone on a 2-col grid */
#gform_page_2_1 .gform_fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(14px,1.8vw,20px) clamp(20px,3vw,40px);
}

/* Name field spans both columns */
#gform_page_2_1 #field_2_7 { grid-column: 1 / -1; }

/* Name sub-grid: First / Last */
#gform_2 .ginput_container_name {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 clamp(20px,3vw,40px);
}

/* ─────────────────────────────────
   TEXT / EMAIL / TEL INPUTS
───────────────────────────────── */

#gform_2 input[type="text"],
#gform_2 input[type="email"],
#gform_2 input[type="tel"] {
  display: block;
  width: 100%;
  background: transparent !important;
  border: none !important;
  border-bottom: 1.5px solid rgba(0,0,0,.15) !important;
  border-radius: 0 !important;
  color: var(--wp--preset--color--black) !important;
  font-family: var(--sans) !important;
  font-size: clamp(15px,1.2vw,18px) !important;
  line-height: 1.5;
  padding: 10px 0 12px !important;
  outline: none;
  box-shadow: none !important;
  transition: border-bottom-color .2s;
  -webkit-appearance: none;
}

#gform_2 input[type="text"]:focus,
#gform_2 input[type="email"]:focus,
#gform_2 input[type="tel"]:focus {
  border-bottom-color: var(--wp--preset--color--primary) !important;
}

/* ─────────────────────────────────
   TEXTAREA  (steps 2 – 6)
───────────────────────────────── */

#gform_2 textarea.textarea {
  display: block;
  width: 100%;
  min-height: 100px;
  background: transparent !important;
  border: none !important;
  border-bottom: 1.5px solid rgba(0,0,0,.15) !important;
  border-radius: 0 !important;
  color: var(--wp--preset--color--black) !important;
  font-family: var(--sans) !important;
  font-size: clamp(15px,1.2vw,17px) !important;
  line-height: 1.8;
  padding: 12px 0 16px !important;
  resize: vertical;
  outline: none;
  box-shadow: none !important;
  transition: border-bottom-color .2s;
  -webkit-appearance: none;
}

#gform_2 textarea.textarea:focus {
  border-bottom-color: var(--wp--preset--color--primary) !important;
}

/* ─────────────────────────────────
   PAGE FOOTER  (prev / next / submit)
───────────────────────────────── */

#gform_2 .gform_page_footer,
#gform_2 .gform_footer {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: clamp(20px,2.5vw,28px) 0 0;
  margin-top: clamp(20px,2.5vw,28px);
  border-top: 1px solid rgba(0,0,0,.08);
}

/* Base reset for all form buttons */
#gform_2 input[type="button"],
#gform_2 input[type="submit"] {
  font-family: var(--mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  border-radius: 0 !important;
  padding: 14px 36px !important;
  cursor: pointer;
  transition: background .2s, color .2s, border-color .2s;
  box-shadow: none !important;
  line-height: 1 !important;
  -webkit-appearance: none;
}

/* Next + Submit — solid black */
#gform_2 .gform_next_button,
#gform_2 .gform_button,
#gform_2 #gform_submit_button_2 {
  background: var(--wp--preset--color--black) !important;
  color: #fff !important;
  border: 1px solid var(--wp--preset--color--black) !important;
}

#gform_2 .gform_next_button:hover,
#gform_2 .gform_button:hover,
#gform_2 #gform_submit_button_2:hover {
  background: var(--wp--preset--color--primary) !important;
  border-color: var(--wp--preset--color--primary) !important;
  color: #fff !important;
}

/* Previous — ghost */
#gform_2 .gform_previous_button {
  background: transparent !important;
  color: rgba(0,0,0,.4) !important;
  border: 1px solid rgba(0,0,0,.2) !important;
}

#gform_2 .gform_previous_button:hover {
  color: var(--wp--preset--color--black) !important;
  border-color: rgba(0,0,0,.5) !important;
  background: transparent !important;
}

/* ─────────────────────────────────
   VALIDATION
───────────────────────────────── */

#gform_2 .gfield_error .gfield_label  { color: var(--wp--preset--color--primary) !important; }
#gform_2 .gfield_error input          { border-bottom-color: var(--wp--preset--color--primary) !important; }
#gform_2 .gfield_error textarea       { border-bottom-color: var(--wp--preset--color--primary) !important; }

#gform_2 .validation_message {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.05em;
  color: var(--wp--preset--color--primary);
  margin-top: 6px;
}

#gform_2 .gform_validation_errors {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 0 20px !important;
  color: var(--wp--preset--color--primary) !important;
  font-family: var(--mono) !important;
  font-size: 11px !important;
}

/* ─────────────────────────────────
   CONFIRMATION
───────────────────────────────── */

#gform_confirmation_wrapper_2 {
  background: #fff;
  color: rgba(0,0,0,.7);
  font-family: var(--sans);
  font-size: 16px;
  padding: clamp(40px,5vw,64px) var(--pad);
  max-width: 760px;
  margin: 0 auto;
}

/* ─────────────────────────────────
   ORBITAL THEME OVERRIDES
───────────────────────────────── */

#gform_2 .gform-field-label { color: var(--muted-ink, rgba(0,0,0,.6)) !important; }
#gform_2 .gfield input,
#gform_2 .gfield textarea { background: transparent !important; color: var(--wp--preset--color--black) !important; }

/* ─────────────────────────────────
   RESPONSIVE
───────────────────────────────── */

@media (max-width: 600px) {
  #gf_progressbar_wrapper_2 { padding-left: var(--pad); padding-right: var(--pad); }

  #gform_page_2_1 .gform_fields {
    grid-template-columns: 1fr;
    gap: clamp(20px,3vw,28px) 0;
  }

  #gform_page_2_1 #field_2_7 { grid-column: 1; }

  #gform_2 .ginput_container_name {
    grid-template-columns: 1fr;
    gap: clamp(20px,3vw,28px) 0;
  }
}


/* ═══════════════════════════════════════════════════════
   BOOK A TOUR FORM  (Gravity Forms #1)
   Light editorial — same design language as #2, white bg
═══════════════════════════════════════════════════════ */

/* ── Form shell ── */
#gform_1 {
  background: #fff;
  color: var(--wp--preset--color--black);
  padding: 0;
}

#gform_1 .gform_body { padding: 0; margin: 0; }
#gform_1 .gform_fields { padding: 0; margin: 0; list-style: none; }

/* ─────────────────────────────────
   FIELDS
───────────────────────────────── */

#gform_1 .gfield {
  margin: 0 0 clamp(20px,2.5vw,28px);
  border: none;
  padding: 0;
}

/* Labels — small mono uppercase, dark */
#gform_1 .gfield_label,
#gform_1 legend.gfield_label,
#gform_1 .gform-field-label:not(.gform-field-label--type-sub) {
  font-family: var(--mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: rgba(0,0,0,.45) !important;
  font-weight: 400 !important;
  margin: 0 0 10px !important;
  display: block;
  padding: 0;
  border: none;
  line-height: 1;
}

/* Required asterisk — red */
#gform_1 .gfield_required span {
  color: var(--wp--preset--color--primary) !important;
  font-family: var(--mono);
  font-size: 11px;
}

/* Sub-labels (First / Last) */
#gform_1 .gform-field-label--type-sub {
  font-family: var(--mono) !important;
  font-size: 10px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: rgba(0,0,0,.35) !important;
  font-weight: 400 !important;
  margin: 7px 0 0 !important;
  display: block !important;
}

/* ── Name sub-grid ── */
#gform_1 .ginput_container_name {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 clamp(16px,2.5vw,32px);
}

/* ─────────────────────────────────
   TEXT / EMAIL / TEL — underline only
───────────────────────────────── */

#gform_1 input[type="text"],
#gform_1 input[type="email"],
#gform_1 input[type="tel"] {
  display: block;
  width: 100%;
  background: transparent !important;
  border: none !important;
  border-bottom: 1.5px solid rgba(0,0,0,.15) !important;
  border-radius: 0 !important;
  color: var(--wp--preset--color--black) !important;
  font-family: var(--sans) !important;
  font-size: clamp(15px,1.2vw,17px) !important;
  line-height: 1.5;
  padding: 10px 0 11px !important;
  outline: none;
  box-shadow: none !important;
  transition: border-bottom-color .2s;
  -webkit-appearance: none;
}

#gform_1 input[type="text"]:focus,
#gform_1 input[type="email"]:focus,
#gform_1 input[type="tel"]:focus {
  border-bottom-color: var(--wp--preset--color--primary) !important;
}

/* ─────────────────────────────────
   SELECT / DROPDOWN — clean underline
───────────────────────────────── */

#gform_1 select,
#gform_1 .ginput_container_select select {
  display: block;
  width: 100%;
  background: transparent !important;
  border: none !important;
  border-bottom: 1.5px solid rgba(0,0,0,.15) !important;
  border-radius: 0 !important;
  color: var(--wp--preset--color--black) !important;
  font-family: var(--sans) !important;
  font-size: clamp(15px,1.2vw,17px) !important;
  line-height: 1.5;
  padding: 10px 28px 11px 0 !important;
  outline: none;
  box-shadow: none !important;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  /* Custom arrow */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23111' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 2px center !important;
  transition: border-bottom-color .2s;
}

#gform_1 select:focus {
  border-bottom-color: var(--wp--preset--color--primary) !important;
}

/* ─────────────────────────────────
   FOOTER / SUBMIT
───────────────────────────────── */

#gform_1 .gform_footer {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 14px;
  padding-top: clamp(24px,3vw,32px);
  margin-top: 0;
}

#gform_1 .gform_button,
#gform_1 input[type="submit"] {
  display: block;
  width: 100%;
  font-family: var(--mono) !important;
  font-size: 12px !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  background: var(--wp--preset--color--black) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 18px 24px !important;
  cursor: pointer;
  text-align: center;
  transition: background .2s;
  box-shadow: none !important;
  line-height: 1 !important;
  -webkit-appearance: none;
}

#gform_1 .gform_button:hover,
#gform_1 input[type="submit"]:hover {
  background: var(--wp--preset--color--primary) !important;
}

/* ─────────────────────────────────
   BELOW BUTTON — "WE RESPOND..." text
   (GF HTML block or description field)
───────────────────────────────── */

#gform_1 .gfield--type-html p,
#gform_1 .gfield--type-html,
#gform_1 .ginput_container_html {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(0,0,0,.35);
  text-align: center;
  margin: 0;
  padding: 0;
  border: none !important;
  background: none !important;
}

/* ─────────────────────────────────
   VALIDATION
───────────────────────────────── */

#gform_1 .gfield_error .gfield_label  { color: var(--wp--preset--color--primary) !important; }
#gform_1 .gfield_error input,
#gform_1 .gfield_error select         { border-bottom-color: var(--wp--preset--color--primary) !important; }

#gform_1 .validation_message {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.05em;
  color: var(--wp--preset--color--primary);
  margin-top: 5px;
  text-transform: uppercase;
}

#gform_1 .gform_validation_errors {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 0 16px !important;
  color: var(--wp--preset--color--primary) !important;
  font-family: var(--mono) !important;
  font-size: 10px !important;
  text-transform: uppercase !important;
}

/* ─────────────────────────────────
   ORBITAL THEME OVERRIDES
───────────────────────────────── */

#gform_1 .gform-field-label { color: rgba(0,0,0,.45) !important; }
#gform_1 .gfield input,
#gform_1 .gfield select,
#gform_1 .gfield textarea { background: transparent !important; }

/* ─────────────────────────────────
   RESPONSIVE
───────────────────────────────── */

@media (max-width: 500px) {
  #gform_1 .ginput_container_name {
    grid-template-columns: 1fr;
    gap: clamp(16px,3vw,24px) 0;
  }
}


/* ═══════════════════════════════════════════════════════
   GOOGLE REVIEWS  [t180_reviews]
═══════════════════════════════════════════════════════ */

/* ── Shared tokens ── */
.t180-reviews {
  --gr-star:    #F59E0B;
  --gr-star-e:  rgba(0,0,0,.12);
  --gr-radius:  2px;
  font-family: var(--sans);
  max-width: unset;
  padding-inline: clamp(60px, 8vw, 100px);
}

/* ── Light variant (default) ── */
.t180-reviews--light {
  --gr-bg:        #fff;
  --gr-card-bg:   #fff;
  --gr-card-bdr:  rgba(0,0,0,.1);
  --gr-text:      var(--wp--preset--color--black);
  --gr-muted:     var(--muted-ink);
  --gr-link:      var(--wp--preset--color--black);
  --gr-link-hov:  var(--wp--preset--color--primary);
  --gr-init-bg:   var(--wp--preset--color--primary);
  background: var(--gr-bg);
}

/* ── Dark variant ── */
.t180-reviews--dark {
  --gr-text:      #fff;
  /* .4 measured 3.80:1 on black — fails AA. .6 clears 7.27:1. Same fix
     as --gr-muted in the light variant above, proactively applied here
     too (not flagged by the audited page, but identical failure mode). */
  --gr-muted:     rgba(255,255,255,.6);
  --gr-link:      rgba(255,255,255,.75);
  --gr-link-hov:  #fff;
  --gr-star-e:    rgba(255,255,255,.12);
  --gr-init-bg:   var(--wp--preset--color--primary);
  background: var(--gr-bg);
  color: var(--gr-text);
  max-width: 600px
}

/* Bar-only variant — no cards, no padding at all */
.t180-reviews--bar {
  padding: 0;
}
.t180-reviews--bar .t180-reviews__header {
  margin-bottom: 0;
}

/* ─────────────────────────────────
   HEADER — score + "see all" link
───────────────────────────────── */

.t180-reviews__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 24px;
  margin-bottom: clamp(20px,2.5vw,32px);
}

.t180-reviews__score {
  display: flex;
  align-items: center;
  gap: 10px;
}

.t180-reviews__num {
  font-family: var(--wp--preset--font-family--dm-serif-display, serif);
  font-size: clamp(48px, 5vw, 72px);
  font-weight: 900;
  font-style: italic;
  line-height: 1;
  color: var(--gr-text);
  letter-spacing: -0.04em;
  white-space: nowrap
}

.t180-reviews__count {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gr-muted);
}

/* Stars — shared */
.t180-reviews__stars {
  display: flex;
  gap: 1px;
  line-height: 1;
}

.t180-reviews__star { font-size: 18px; color: var(--gr-star-e); }
.t180-reviews__star--full { color: var(--gr-star); }
.t180-reviews__star--half {
  position: relative;
  color: var(--gr-star-e);
}
.t180-reviews__star--half::before {
  content: '★';
  position: absolute;
  left: 0;
  width: 50%;
  overflow: hidden;
  color: var(--gr-star);
}

/* "See all reviews" link */
.t180-reviews__google-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gr-link);
  text-decoration: none;
  transition: color .2s;
}
.t180-reviews__google-link:hover { color: var(--gr-link-hov); }

/* ─────────────────────────────────
   GRID
───────────────────────────────── */

/* Swiper container */
.t180-reviews__swiper {
  overflow: hidden;
  margin: 0 -4px;
  padding: 0 4px 4px;
}
.t180-reviews__swiper .swiper-slide {
  height: auto; /* equal-height cards */
}
/* Equal-height cards across all slides */
.t180-reviews__swiper .swiper-wrapper {
  align-items: stretch;
}
.t180-reviews__swiper .swiper-slide {
  height: auto;
  display: flex;
}
.t180-reviews__swiper .t180-reviews__card {
  flex: 1;
}

/* Nav row: prev · bullets · next  (centred, not full-width) */
.t180-reviews__nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 24px;
}
.t180-reviews__btns {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.t180-reviews__btn {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 1px solid var(--gr-card-bdr);
  color: var(--gr-text, #0f0f0f);
  cursor: pointer;
  transition: background .15s, color .15s, border-color .15s;
}
.t180-reviews__btn:hover {
  background: var(--wp--preset--color--primary);
  border-color: var(--wp--preset--color--primary);
  color: #fff;
}
.t180-reviews--dark .t180-reviews__btn {
  color: #fff;
}
.t180-reviews__pag {
  display: flex;
  align-items: center;
  gap: 6px;
}
/* Override Swiper bullet colours */
.t180-reviews__pag .swiper-pagination-bullet {
  background: var(--gr-card-bdr);
  opacity: 1;
  transition: background .2s, transform .2s;
}
.t180-reviews__pag .swiper-pagination-bullet-active {
  background: var(--wp--preset--color--primary);
  transform: scale(1.25);
}

/* ─────────────────────────────────
   CARD
───────────────────────────────── */

.t180-reviews__card {
  background: var(--gr-card-bg);
  border: 1px solid var(--gr-card-bdr);
  border-radius: var(--gr-radius);
  padding: clamp(16px,2vw,24px);
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Author row */
.t180-reviews__author {
  display: flex;
  align-items: center;
  gap: 10px;
}

.t180-reviews__avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}

.t180-reviews__avatar--initial {
  background: var(--gr-init-bg);
  color: #fff;
  font-family: var(--mono);
  font-size: 15px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  user-select: none;
}

.t180-reviews__name {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: var(--gr-text);
  line-height: 1.2;
}

.t180-reviews__time {
  display: block;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gr-muted);
  margin-top: 2px;
}

/* Card stars (smaller than header) */
.t180-reviews__card .t180-reviews__stars { gap: 1px; }
.t180-reviews__card .t180-reviews__star  { font-size: 14px; }

/* Review text — clamp to 5 lines */
.t180-reviews__text {
  font-size: 14px;
  line-height: 1.65;
  color: var(--gr-text);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 5;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Footer — Google attribution */
.t180-reviews__footer {
  margin-top: auto;
  padding-top: 8px;
  border-top: 1px solid var(--gr-card-bdr);
  display: flex;
  align-items: center;
  gap: 8px;
}

.t180-reviews__g-logo { opacity: .65; margin-left: auto; }

/* Location tag — shown on each card in all-locations mode */
.t180-reviews__loc-tag {
  font-family: var(--wp--preset--font-family--geist-mono, monospace);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: var(--primary-text-safe);
  background: rgba(179,21,21,.08);
  padding: 3px 8px;
  white-space: nowrap;
}

/* Per-location score row in all-locations header */
.t180-reviews__loc-scores {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.t180-reviews__loc-score {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  text-decoration: none;
}
.t180-reviews__loc-score:hover .t180-reviews__loc-score-val {
  opacity: .75;
}
.t180-reviews__loc-score-name {
  font-family: var(--wp--preset--font-family--geist-mono, monospace);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: rgba(0,0,0,.55);
}
.t180-reviews--dark .t180-reviews__loc-score-name { color: rgba(255,255,255,.55); }
.t180-reviews__loc-score-val {
  font-family: var(--wp--preset--font-family--geist-mono, monospace);
  font-size: 12px;
  font-weight: 700;
  color: var(--primary-text-safe);
  transition: opacity .15s;
}
@media (max-width: 640px) {
  .t180-reviews {padding: 20px 0}
  .t180-reviews__loc-scores {gap: 0}
}
/* ═══════════════════════════════════════════════════════════════
   [t180_busy] — Live clock + popular times widget
═══════════════════════════════════════════════════════════════ */

.t180-busy {
  --bz-bg:      #0f0f0f;
  --bz-text:    #ffffff;
  --bz-muted:   rgba(255,255,255,0.35);
  --bz-bar:     rgba(255,255,255,0.18);
  --bz-bar-now: #b31515;
  --bz-dot:     #b31515;
  --bz-mono:    var(--wp--preset--font-family--geist-mono, monospace);
  --bz-serif:   var(--wp--preset--font-family--dm-serif-display, serif);
  max-width: unset;
  padding: clamp(40px,6vw,80px) clamp(40px,6vw,80px) clamp(32px,4vw,56px);
  background: var(--bz-bg);
  color: var(--bz-text);
}

.t180-busy--light {
  --bz-bg:      #f5f5f4;
  --bz-text:    #0f0f0f;
  --bz-muted:   rgba(0,0,0,0.4);
  --bz-bar:     rgba(0,0,0,0.12);
  --bz-bar-now: #b31515;
}

/* Eyebrow */
.t180-busy__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--bz-mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--bz-muted);
}

.t180-busy__live-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--bz-dot);
  flex-shrink: 0;
  animation: t180-busy-pulse 2s ease-in-out infinite;
}

@keyframes t180-busy-pulse {
  0%,100% { opacity: 1; transform: scale(1); }
  50%      { opacity: 0.55; transform: scale(0.85); }
}

/* Clock */
.t180-busy__clock {
  display: flex;
  align-items: baseline;
  gap: 0;
  margin: clamp(8px,1.5vw,16px) 0 0;
  line-height: 1;
}

.t180-busy__hh,
.t180-busy__sep,
.t180-busy__mm {
  font-family: var(--bz-serif);
  font-size: clamp(80px, 14vw, 180px);
  font-weight: 900;
  letter-spacing: -0.04em;
  color: var(--bz-text);
}

.t180-busy__sep {
  color: var(--bz-dot);
  margin: 0 2px;
  animation: t180-busy-blink 2s step-start infinite;
}

@keyframes t180-busy-blink {
  0%,49% { opacity: 1; }
  50%,100%{ opacity: 0.2; }
}

.t180-busy__ap {
  font-family: var(--bz-mono);
  font-size: clamp(18px, 2.5vw, 34px);
  font-weight: 400;
  letter-spacing: 0.06em;
  color: var(--bz-muted);
  align-self: flex-start;
  margin-top: clamp(14px,2vw,26px);
  margin-left: 10px;
}

/* Status line */
.t180-busy__status {
  font-family: var(--bz-mono);
  font-size: clamp(10px,1.1vw,13px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--bz-muted);
  margin: clamp(12px,2vw,20px) 0 clamp(28px,4vw,48px);
}

/* Chart */
.t180-busy__chart {
  width: 100%;
}

.t180-busy__axis {
  display: flex;
  justify-content: space-between;
  font-family: var(--bz-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  color: var(--bz-muted);
  margin-bottom: 8px;
}

.t180-busy__bars {
  display: flex;
  align-items: flex-end;
  gap: 3px;
  height: clamp(60px,8vw,110px);
}

.t180-busy__bar {
  flex: 1;
  height: var(--v);
  background: var(--bz-bar);
  border-radius: 2px 2px 0 0;
  transition: background 0.2s, height 0.4s ease;
  min-height: 3px;
}

.t180-busy__bar--now {
  background: var(--bz-bar-now);
}

.t180-busy__foot {
  display: flex;
  justify-content: space-between;
  font-family: var(--bz-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  color: var(--bz-muted);
  margin-top: 10px;
}

.t180-busy__foot strong {
  color: var(--bz-text);
  font-weight: 700;
}


/* ═══════════════════════════════════════════════════════════════
   BLOCK-EDITOR UTILITIES — equal-height cards, scroll reveals
   Used by native-block page content (className attribute on blocks)
═══════════════════════════════════════════════════════════════ */

/* equal-cards width is governed by the interior content-rail rule above
   (wideSize + --pad), keeping card rows aligned with the label paragraphs
   and chip groups on the same page. */

/* Equal-height, equal-width card rows */
.equal-cards > .wp-block-column {
  display: flex;
  flex-direction: column;
  flex-grow: 0;
}
.equal-cards > .wp-block-column > .wp-block-group {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  align-items: flex-start;
  width: 100%;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box;
}
/* Constrained layout auto-centers all direct children — override for card content */
.equal-cards .wp-block-group > * {
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: 100% !important;
  align-self: flex-start;
}
.equal-cards .cta-bottom {
  margin-top: auto;
}


/* Scroll-triggered section reveals (observer printed from functions.php) */
.animate-on-scroll {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.animate-on-scroll.is-visible {
  opacity: 1;
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  .animate-on-scroll {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* ── Book-a-Tour modal ──────────────────────────────────────────
   LeadConnector booking widget in an accessible popup. Iframe is
   lazy-loaded by JS on first open. */
html.t180-tour-lock { overflow: hidden; }
body.t180-tour-lock {
  position: fixed;
  overflow-y: scroll; /* keeps scrollbar visible so layout doesn't jump */
  width: 100%;
}

.t180-tour-modal {
  position: fixed;
  inset: 0;
  z-index: 400;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(12px, 3vw, 40px);
  opacity: 0;
  transition: opacity .25s ease;
}
.t180-tour-modal.is-open { opacity: 1; }
.t180-tour-modal[hidden] { display: none; }

.t180-tour-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(13,13,13,.78);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

.t180-tour-modal__dialog {
  position: relative;
  width: 100%;
  max-width: 640px;
  max-height: min(92vh, 860px);
  background: var(--wp--preset--color--white);
  box-shadow: 0 30px 70px -20px rgba(13,13,13,.5);
  transform: translateY(12px) scale(.985);
  transition: transform .28s cubic-bezier(.16,1,.3,1);
  overflow: hidden;
}
.t180-tour-modal.is-open .t180-tour-modal__dialog { transform: none; }

.t180-tour-modal__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 24px;
}
.t180-tour-modal__eyebrow {
  font-family: var(--wp--preset--font-family--geist-mono);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .22em;
  color: var(--wp--preset--color--primary, #b31515);
  padding-top: 10px;
}
.t180-tour-modal__close {
  appearance: none;
  border: none;
  background: #0d0d0d;
  color: #fff;
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  outline: none;
  transition: background .15s ease;
}
.t180-tour-modal__close:hover { background: var(--wp--preset--color--primary, #b31515); }
.t180-tour-modal__close:focus-visible { outline: none; }

.t180-tour-modal__body {
  position: relative;
  max-height: min(92vh, 860px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background: #fff;
  padding: clamp(28px, 4vw, 48px);
}
.t180-tour-modal__iframe {
  position: relative;
  z-index: 1;
  width: 100%;
  /* form_embed.js sets an explicit pixel height once the widget reports its
     content size; until then min-height fills the body. The body scrolls when
     the calendar is taller than the dialog. */
  min-height: 100%;
  height: auto;
  border: 0;
  display: block;
}
/* Spinner shows until the iframe finishes loading */
.t180-tour-modal__spinner {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 34px;
  height: 34px;
  margin: -17px 0 0 -17px;
  border: 3px solid rgba(13,13,13,.18);
  border-top-color: var(--wp--preset--color--primary);
  border-radius: 50%;
  animation: t180-tour-spin .7s linear infinite;
}
.t180-tour-modal.is-loaded .t180-tour-modal__spinner { display: none; }
@keyframes t180-tour-spin { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
  .t180-tour-modal, .t180-tour-modal__dialog, .t180-tour-modal__close { transition: none; }
  .t180-tour-modal__close:hover { transform: none; }
}

/* Tour modal — GF form mode */
.t180-tour-modal__gf {
  padding: 0;
  overflow: hidden;
}
.t180-tour-modal__gf .gform_wrapper {
  max-width: none;
  padding: 0 !important;
  font-family: var(--wp--preset--font-family--geist, sans-serif);
}

/* ── Progress bar ─────────────────────────────────────────────── */
.t180-tour-modal__gf .gf_progressbar_wrapper {
  padding: 0 0 20px;
  margin: 0;
}
.t180-tour-modal__gf .gf_progressbar_title {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--muted-ink, rgba(0,0,0,.6));
  margin: 0 0 10px;
  padding: 0;
}
.t180-tour-modal__gf .gf_progressbar {
  height: 3px;
  background: rgba(13,13,13,.1);
  border-radius: 0;
  overflow: visible;
  position: relative;
}
.t180-tour-modal__gf .gf_progressbar_percentage {
  height: 3px;
  background: var(--wp--preset--color--primary, #b31515);
  transition: width .35s cubic-bezier(.4,0,.2,1);
  position: relative;
}
/* hide the "75%" text inside the bar */
.t180-tour-modal__gf .gf_progressbar_percentage span { display: none !important; }

/* ── Page fields ──────────────────────────────────────────────── */
.t180-tour-modal__gf .gform_page { padding: 0; }
.t180-tour-modal__gf .gform_page_fields {
  padding: 20px 0 0;
}
.t180-tour-modal__gf .gform_fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 20px;
  list-style: none;
  margin: 0;
  padding: 0;
}
/* Full-width fields: location, date, time, notes, guests */
.t180-tour-modal__gf .gfield--type-select:has([id*="_4"]),
.t180-tour-modal__gf .gfield--type-date,
.t180-tour-modal__gf .gfield--type-select:has([id*="_6"]),
.t180-tour-modal__gf .gfield--type-select:has([id*="_8"]),
.t180-tour-modal__gf .gfield--type-textarea {
  grid-column: 1 / -1;
}
.t180-tour-modal__gf .gfield { margin-bottom: 0; }
.t180-tour-modal__gf .gfield_label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted-ink, rgba(0,0,0,.6));
  margin-bottom: 7px;
  display: block;
}
.t180-tour-modal__gf .gfield_required { color: var(--wp--preset--color--primary, #b31515); }

/* ── Inputs / selects / textarea ──────────────────────────────── */
.t180-tour-modal__gf input[type="text"],
.t180-tour-modal__gf input[type="email"],
.t180-tour-modal__gf input[type="tel"],
.t180-tour-modal__gf input[type="date"],
.t180-tour-modal__gf select,
.t180-tour-modal__gf textarea {
  width: 100%;
  padding: 11px 14px;
  border: 1.5px solid rgba(13,13,13,.14);
  border-radius: 0;
  background: #fafafa;
  font-size: 15px;
  color: var(--wp--preset--color--foreground, #0d0d0d);
  font-family: inherit;
  transition: border-color .15s, background .15s;
  box-sizing: border-box;
}
.t180-tour-modal__gf input[type="text"]:focus,
.t180-tour-modal__gf input[type="email"]:focus,
.t180-tour-modal__gf input[type="tel"]:focus,
.t180-tour-modal__gf input[type="date"]:focus,
.t180-tour-modal__gf select:focus,
.t180-tour-modal__gf textarea:focus {
  outline: none;
  border-color: var(--wp--preset--color--primary, #b31515);
  background: #fff;
}
.t180-tour-modal__gf select:disabled { opacity: .45; cursor: not-allowed; }
/* GF date picker placeholder — show a nice hint */
.t180-tour-modal__gf .gfield--type-date input[type="text"]::placeholder { color: rgba(13,13,13,.35); }
.t180-tour-modal__gf .gfield--type-date input[type="text"] { cursor: pointer; }
.t180-tour-modal__gf textarea { min-height: 80px; resize: vertical; }

/* jQuery UI datepicker — brutalist theme matching nav submenu.
   Bold + spacious: booking calendar, not a widget afterthought. */
#ui-datepicker-div { z-index: 100200 !important; position: fixed !important; }
.ui-datepicker {
  font-family: var(--wp--preset--font-family--geist, sans-serif) !important;
  font-size: 14px !important;
  background: #fff !important;
  border: 2px solid var(--wp--preset--color--black, #0d0d0d) !important;
  box-shadow: 6px 6px 0 0 var(--wp--preset--color--black, #0d0d0d) !important;
  border-radius: 0 !important;
  width: 340px !important;
  padding: 0 0 12px !important;
}
/* Header — black bar, position:relative required for absolute prev/next */
.ui-datepicker .ui-datepicker-header {
  position: relative !important;
  background: var(--wp--preset--color--black, #0d0d0d) !important;
  border: none !important;
  border-radius: 0 !important;
  color: #fff !important;
  padding: 16px 48px !important;
  text-align: center !important;
}
/* Static "July 2026" — month/year dropdowns are disabled in the picker
   options (book-tour-modal.php), so the title is plain text */
.ui-datepicker .ui-datepicker-title {
  font-family: var(--wp--preset--font-family--geist-mono, monospace) !important;
  color: #fff !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  text-transform: uppercase !important;
  letter-spacing: .18em !important;
  line-height: 1.4 !important;
}
/* Belt & braces: if GF ever re-adds the dropdowns, hide them and keep text */
.ui-datepicker .ui-datepicker-title select { display: none !important; }
/* Prev / Next buttons — absolutely positioned in header */
.ui-datepicker .ui-datepicker-prev,
.ui-datepicker .ui-datepicker-next {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 40px !important;
  height: 40px !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: none !important;
  background: none !important;
}
.ui-datepicker .ui-datepicker-prev { left: 4px !important; }
.ui-datepicker .ui-datepicker-next { right: 4px !important; }
.ui-datepicker .ui-datepicker-prev:hover,
.ui-datepicker .ui-datepicker-next:hover { background: rgba(255,255,255,.14) !important; }
/* CSS chevron arrows, hide the "Prev"/"Next" span text */
.ui-datepicker .ui-datepicker-prev span,
.ui-datepicker .ui-datepicker-next span {
  display: block !important; overflow: hidden !important;
  width: 0 !important; height: 0 !important;
  font-size: 0 !important; text-indent: -9999px !important;
}
.ui-datepicker .ui-datepicker-prev::before,
.ui-datepicker .ui-datepicker-next::before {
  content: '' !important;
  display: block !important;
  width: 9px !important; height: 9px !important;
  border-top: 2.5px solid #fff !important;
  border-right: 2.5px solid #fff !important;
}
.ui-datepicker .ui-datepicker-prev::before { transform: rotate(-135deg) !important; }
.ui-datepicker .ui-datepicker-next::before { transform: rotate(45deg) !important; }
/* Calendar table */
.ui-datepicker table {
  width: calc(100% - 24px) !important;
  margin: 4px 12px 0 !important;
  border-collapse: collapse !important;
}
.ui-datepicker th {
  font-family: var(--wp--preset--font-family--geist-mono, monospace) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: rgba(13,13,13,.4) !important;
  padding: 14px 2px 8px !important;
  text-align: center !important;
}
.ui-datepicker td { padding: 2px !important; text-align: center !important; }
.ui-datepicker td a,
.ui-datepicker td span {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 40px !important;
  height: 40px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  border-radius: 0 !important;
  border: none !important;
  text-decoration: none !important;
  cursor: pointer !important;
  line-height: 1 !important;
}
.ui-datepicker td .ui-state-default { background: transparent !important; color: #0d0d0d !important; }
.ui-datepicker td .ui-state-default:hover,
.ui-datepicker td .ui-state-hover { background: var(--wp--preset--color--black, #0d0d0d) !important; color: #fff !important; }
/* Selected day — solid red */
.ui-datepicker td .ui-state-active { background: var(--wp--preset--color--primary, #b31515) !important; color: #fff !important; }
/* Today — red ring + red bold number (ring survives hover) */
.ui-datepicker td.ui-datepicker-today .ui-state-default {
  color: var(--wp--preset--color--primary, #b31515) !important;
  font-weight: 800 !important;
  box-shadow: inset 0 0 0 2px var(--wp--preset--color--primary, #b31515) !important;
}
.ui-datepicker td.ui-datepicker-today .ui-state-default:hover,
.ui-datepicker td.ui-datepicker-today .ui-state-active {
  background: var(--wp--preset--color--primary, #b31515) !important;
  color: #fff !important;
}
/* Past days / beyond the 90-day window — clearly unavailable */
.ui-datepicker td.ui-state-disabled .ui-state-default,
.ui-datepicker td.ui-datepicker-unselectable .ui-state-default {
  color: rgba(13,13,13,.18) !important;
  font-weight: 400 !important;
  cursor: default !important;
  background: transparent !important;
}

/* Date field: calendar icon sits ON the input line, right-aligned,
   instead of wrapping underneath it */
.t180-tour-modal__gf .ginput_container_date { position: relative !important; }
.t180-tour-modal__gf .ginput_container_date input.datepicker { padding-right: 36px !important; }
.t180-tour-modal__gf .ginput_container_date img.ui-datepicker-trigger {
  position: absolute !important;
  right: 4px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 20px !important;
  height: 20px !important;
  margin: 0 !important;
  cursor: pointer !important;
}

/* ── Page footer (Previous / Next) ───────────────────────────── */
.t180-tour-modal__gf .gform_page_footer,
.t180-tour-modal__gf .gform_footer {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 20px 0 0;
  margin: 0;
}
.t180-tour-modal__gf .gform_next_button,
.t180-tour-modal__gf .gform_button {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  width: auto !important;
  padding: 13px 28px !important;
  background: var(--wp--preset--color--primary, #b31515) !important;
  color: #fff !important;
  font-family: var(--wp--preset--font-family--geist, sans-serif) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  border: none !important;
  border-radius: 0 !important;
  cursor: pointer !important;
  text-align: left !important;
  position: static !important;
  clip-path: polygon(0 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%) !important;
  transition: opacity .15s !important;
}
.t180-tour-modal__gf .gform_next_button::after {
  content: '';
  display: inline-block;
  width: 14px;
  height: 14px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M5 12h14M13 5l7 7-7 7'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M5 12h14M13 5l7 7-7 7'/%3E%3C/svg%3E") center/contain no-repeat;
}
.t180-tour-modal__gf .gform_next_button:hover,
.t180-tour-modal__gf .gform_button:hover { opacity: .85; }
.t180-tour-modal__gf .gform_previous_button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 12px 20px;
  background: transparent;
  color: rgba(13,13,13,.5);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  border: 1.5px solid rgba(13,13,13,.14);
  cursor: pointer;
  transition: border-color .15s, color .15s;
}
.t180-tour-modal__gf .gform_previous_button::before {
  content: '';
  display: inline-block;
  width: 12px;
  height: 12px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M19 12H5M11 19l-7-7 7-7'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M19 12H5M11 19l-7-7 7-7'/%3E%3C/svg%3E") center/contain no-repeat;
}
.t180-tour-modal__gf .gform_previous_button:hover {
  border-color: rgba(13,13,13,.35);
  color: #0d0d0d;
}

/* ── Validation / confirmation ────────────────────────────────── */
.t180-tour-modal__gf .gfield_error input,
.t180-tour-modal__gf .gfield_error select,
.t180-tour-modal__gf .gfield_error textarea {
  border-color: var(--wp--preset--color--primary, #b31515) !important;
  background: rgba(179,21,21,.04);
}
.t180-tour-modal__gf .validation_message {
  font-size: 11px;
  color: var(--wp--preset--color--primary, #b31515);
  margin-top: 4px;
}
.t180-tour-modal__gf .gform_confirmation_message {
  padding: 40px 32px;
  text-align: center;
  font-size: 17px;
  line-height: 1.6;
}

/* ── Mobile ───────────────────────────────────────────────────── */
@media (max-width: 600px) {
  .t180-tour-modal__gf .gf_progressbar_wrapper { padding: 20px 20px 0; }
  .t180-tour-modal__gf .gform_page_fields { padding: 20px 20px 0; }
  .t180-tour-modal__gf .gform_page_footer,
  .t180-tour-modal__gf .gform_footer { padding: 16px 20px 24px; }
  .t180-tour-modal__gf .gform_fields { grid-template-columns: 1fr; }
  .t180-tour-modal__gf .gfield--type-select:has([id*="_4"]),
  .t180-tour-modal__gf .gfield--type-date,
  .t180-tour-modal__gf .gfield--type-select:has([id*="_6"]),
  .t180-tour-modal__gf .gfield--type-select:has([id*="_8"]),
  .t180-tour-modal__gf .gfield--type-textarea { grid-column: 1; }
}

/* ── Time slot chip picker ─────────────────────────────────────── */
.t180-time-chips-wrap {
  margin-top: 6px;
}
.t180-time-chips--loading {
  opacity: .55;
  pointer-events: none;
  margin-top: 6px;
}
.t180-time-chips--loading span {
  font-family: var(--font-mono, 'Geist Mono', monospace);
  font-size: .8rem;
  letter-spacing: .04em;
  color: #555;
}
/* AM / PM period toggle */
.t180-ampm-toggle {
  display: inline-flex;
  margin-bottom: 12px;
  border: 1px solid #0d0d0d;
}
.t180-ampm-btn {
  padding: 6px 22px;
  font-family: var(--font-mono, 'Geist Mono', monospace);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  background: transparent;
  border: none;
  cursor: pointer;
  color: #0d0d0d;
  transition: background .12s, color .12s;
  outline: none;
}
.t180-ampm-btn + .t180-ampm-btn { border-left: 1px solid #0d0d0d; }
.t180-ampm-btn.is-active { background: #0d0d0d; color: #fff; }
/* Chip grid - equal width, 4-per-row */
.t180-chip-group {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 7px;
}
.t180-chip-group[hidden] { display: none; }
.t180-time-chip {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px 4px;
  font-family: var(--font-mono, 'Geist Mono', monospace);
  font-size: .78rem;
  font-weight: 500;
  letter-spacing: .03em;
  line-height: 1;
  color: #0d0d0d;
  cursor: pointer;
  outline: none;
  border: none;
  /* Chamfered border via background gradients — clip-path clips the border so
     we draw the 4 edges + diagonal as gradient lines instead */
  background:
    linear-gradient(to bottom right,
      transparent 60%,
      #0d0d0d 65%,
      transparent 70%
    ) bottom right / 10px 10px no-repeat,
    linear-gradient(#0d0d0d, #0d0d0d) top    left  / 100%            1px  no-repeat,
    linear-gradient(#0d0d0d, #0d0d0d) bottom left  / calc(100% - 7px) 1px  no-repeat,
    linear-gradient(#0d0d0d, #0d0d0d) top    left  / 1px             100% no-repeat,
    linear-gradient(#0d0d0d, #0d0d0d) top    right / 1px  calc(100% - 7px) no-repeat,
    transparent;
  transition: background .15s, color .15s;
}
.t180-time-chip:hover {
  background:
    linear-gradient(to bottom right,
      transparent 60%,
      #0d0d0d 65%,
      transparent 70%
    ) bottom right / 10px 10px no-repeat,
    linear-gradient(#0d0d0d, #0d0d0d) top    left  / 100%            1px  no-repeat,
    linear-gradient(#0d0d0d, #0d0d0d) bottom left  / calc(100% - 7px) 1px  no-repeat,
    linear-gradient(#0d0d0d, #0d0d0d) top    left  / 1px             100% no-repeat,
    linear-gradient(#0d0d0d, #0d0d0d) top    right / 1px  calc(100% - 7px) no-repeat,
    rgba(13,13,13,.06);
}
.t180-time-chip.is-active {
  background: var(--wp--preset--color--primary, #b31515);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 7px), calc(100% - 7px) 100%, 0 100%);
  color: #fff;
}
.t180-no-slots {
  font-size: .82rem;
  color: #888;
  margin: 0;
}

/* ── Booking summary (shown before submit) ─────────────────────── */
.t180-booking-summary {
  border: 1px solid #0d0d0d;
  padding: 14px 18px 10px;
  margin: 16px 0 0;
  background: #f5f5f5;
}
.t180-summary-heading {
  font-family: var(--font-mono, 'Geist Mono', monospace);
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #999;
  margin: 0 0 10px;
}
.t180-summary-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 6px 0;
  border-top: 1px solid rgba(0,0,0,.09);
}
.t180-summary-key {
  font-family: var(--font-mono, 'Geist Mono', monospace);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #666;
  flex-shrink: 0;
  margin-right: 12px;
}
.t180-summary-val {
  font-family: var(--font-mono, 'Geist Mono', monospace);
  font-size: .84rem;
  font-weight: 500;
  color: #0d0d0d;
  text-align: right;
}


/* ── .fix-subnav — sticky page subnav bar ───────────────────────
   Applied as a CSS class in the editor on any alignfull group.
   Sticks just below the site header (z-index 100). */
.fix-subnav {
  position: sticky;
  top: var(--header-h, 0px);
  z-index: 90;
  transition: top 0.3s ease;
}
.fix-subnav .wp-block-buttons {
  justify-content: flex-start !important;
  /* One line, horizontally scrollable — same pattern as the locations
     directory chips. WP's layout CSS forces flex-wrap:wrap, so override it. */
  flex-wrap: nowrap !important;
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.fix-subnav .wp-block-buttons::-webkit-scrollbar { display: none; }
.fix-subnav .wp-block-button { flex-shrink: 0; }
.fix-subnav .wp-block-button__link { white-space: nowrap; }

/* ── New Client Offer card ──────────────────────────────────────
   Rendered by [t180_nco] shortcode. Location chips activate the
   checkout link; button is inert until a location is chosen. */
.t180-nco {
  background: var(--wp--preset--color--white);
  color: var(--wp--preset--color--black);
  padding: var(--wp--preset--spacing--lg);
  display: flex;
  flex-direction: column;
  gap: 0;
  height: 100%;
}
/* When a Group block carries .nco-card, it becomes the white card.
   Add these classes to individual blocks inside the Group:
     nco-eyebrow  → "New Client Offer" label
     nco-type     → "1:1" / "2:1" label
     nco-desc     → "Total 3 Sessions" line
   The list and .t180-mbi-price are styled automatically. */
.nco-card {
  background: var(--wp--preset--color--white) !important;
  color: var(--wp--preset--color--black) !important;
  padding: clamp(1.25rem, 2vw + 0.5rem, 2rem) !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}
/* is-layout-constrained adds padding-inline + margin:auto to every child.
   The card is a flex column, so those auto inline-margins stop a child
   (e.g. the .t180-nco picker) from stretching and center it at content
   width. Zero all three so every card child fills the card, flush-left. */
.nco-card.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
  padding-inline: 0 !important;
  max-width: none !important;
  margin-inline: 0 !important;
}
.nco-card .t180-nco {
  background: none;
  padding: 0;
  height: auto;
  flex: 1;
}
/* Eyebrow paragraph — add class "nco-eyebrow" to the block */
.nco-card .nco-eyebrow {
  font-family: var(--wp--preset--font-family--geist-mono);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--primary-text-safe);
  margin: 0 0 1rem !important;
}
/* Training type — add class "nco-type" to the block */
.nco-card .nco-type {
  font-family: var(--wp--preset--font-family--geist-mono);
  font-size: clamp(2rem, 5vw, 2.75rem);
  font-weight: 900;
  letter-spacing: -.03em;
  line-height: 1;
  color: var(--wp--preset--color--black);
  margin: 0 0 .75rem !important;
}
/* Price — .t180-mbi-price already on the Mindbody Item block */
.nco-card .t180-mbi-price {
  display: block;
  font-size: var(--wp--preset--font-size--xl);
  font-weight: 900;
  line-height: 1;
  margin: 0 0 .25rem;
  text-align: left !important;
}
/* Mindbody Item block wrapper may also carry text-align:center */
.nco-card .wp-block-t180-mindbody-item,
.nco-card .t180-mbi-btn,
.nco-card .t180-mbi-card { text-align: left !important; }
/* Session count — add class "nco-desc" to the block */
.nco-card .nco-desc {
  font-size: var(--wp--preset--font-size--sm);
  font-weight: 600;
  margin: 0 0 1.25rem !important;
}
/* Feature list — no extra class needed, targets wp-block-list inside the card */
.nco-card .wp-block-list {
  list-style: none;
  margin: 0 0 1.25rem !important;
  padding: 0 !important;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.nco-card .wp-block-list li {
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-size: var(--wp--preset--font-size--sm);
  color: var(--wp--preset--color--black);
}
.nco-card .wp-block-list li::before {
  content: '\2192';
  font-family: var(--wp--preset--font-family--geist-mono);
  font-size: 11px;
  color: var(--wp--preset--color--primary);
  flex-shrink: 0;
}
.t180-nco__eyebrow {
  font-family: var(--wp--preset--font-family--geist-mono);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--wp--preset--color--primary);
  margin: 0 0 1rem;
}
.t180-nco__training-type {
  font-family: var(--wp--preset--font-family--geist-mono);
  font-size: clamp(2rem, 5vw, 2.75rem);
  font-weight: 900;
  letter-spacing: -.03em;
  line-height: 1;
  color: var(--wp--preset--color--black);
  margin: 0 0 .75rem;
}
.t180-nco__price {
  font-size: var(--wp--preset--font-size--xl);
  font-weight: 900;
  line-height: 1;
  margin: 0 0 .25rem;
}
.t180-nco__desc {
  font-size: var(--wp--preset--font-size--sm);
  font-weight: 600;
  margin: 0 0 1.25rem;
}
.t180-nco__prompt {
  font-size: var(--wp--preset--font-size--xs, .75rem);
  font-family: var(--wp--preset--font-family--geist-mono);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted-ink, rgba(0,0,0,.6));
  margin: auto 0 .5rem; /* auto top pushes CTA section to card bottom */
}
.t180-nco__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 1.25rem;
}
.t180-nco__chip {
  appearance: none;
  border: 1.5px solid var(--wp--preset--color--black);
  background: transparent;
  color: var(--wp--preset--color--black);
  font-family: var(--wp--preset--font-family--geist);
  font-size: var(--wp--preset--font-size--sm);
  font-weight: 600;
  padding: 6px 14px;
  cursor: pointer;
  transition: background-color .15s ease, color .15s ease;
}
.t180-nco__chip:hover {
  background: #f0f0f0;
}
.t180-nco__chip.is-active {
  background: var(--wp--preset--color--black);
  color: #fff;
}
.t180-nco__btn {
  display: block;
  width: 100%;
  padding: 12px 20px;
  background: var(--wp--preset--color--black);
  color: #fff;
  font-family: var(--wp--preset--font-family--geist);
  font-weight: 700;
  font-size: var(--wp--preset--font-size--sm);
  text-transform: uppercase;
  letter-spacing: .1em;
  text-align: center;
  text-decoration: none;
  margin-bottom: .75rem;
  transition: background-color .15s ease;
}
.t180-nco__btn[aria-disabled="true"] {
  opacity: .35;
  pointer-events: none;
  cursor: default;
}
.t180-nco__secure {
  font-size: var(--wp--preset--font-size--xs, .75rem);
  color: var(--muted-ink, rgba(0,0,0,.6));
  text-align: center;
  margin: 0;
}
.t180-nco__features {
  list-style: none;
  margin: 0 0 1.25rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.t180-nco__features li {
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-size: var(--wp--preset--font-size--sm);
  color: var(--wp--preset--color--black);
}
.t180-nco__features li::before {
  content: '→';
  font-family: var(--wp--preset--font-family--geist-mono);
  font-size: 11px;
  color: var(--wp--preset--color--primary);
  flex-shrink: 0;
}

/* ── Client offers layout ─────────────────────────────────────────
   GOAL: every direct child of each coloured panel — eyebrow heading,
   title heading, intro paragraph, the white card, footer line — shares
   ONE left edge at every viewport, with a consistent margin that never
   collapses on small screens.

   WHY this was hard: the coloured panels are .wp-block-group.alignfull,
   so the global "content rail" rule (search: ".wp-block-group.alignfull
   > :not(.alignfull)") catches their children and CENTERS them on the
   1600px rail. That rail is meant for full-bleed sections, but these
   panels are only HALF the viewport (a 2-up column), so the rail just
   pushes everything off-axis. Its specificity is (0,4,1); every override
   I scoped to .client-offers > … came in at (0,4,0) and lost. The rule
   below restores the structure of the rail selector but adds .client-offers
   → (0,5,1), so it wins, and OPTS these panels out of the rail entirely. */

.client-offers { padding: 0 20px !important; }
.client-offers > .wp-block-column { display: flex; flex-direction: column; }

/* The coloured panel owns the single shared margin (its own padding).
   Min 1.25rem so it never collapses to the white box on small screens. */
.client-offers > .wp-block-column > .wp-block-group {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding-inline: clamp(1.25rem, 2vw + 0.5rem, 2rem) !important;
}

/* OPT OUT of the global content rail: every direct child fills the panel
   and pins flush-left at the panel's padding edge. (0,5,1) beats the
   rail's (0,4,1). */
body:not(.home) .client-offers .wp-block-group.alignfull > :not(.alignfull) {
  max-width: none !important;
  margin-inline: 0 !important;
  padding-inline: 0 !important;
}
/* …EXCEPT the white card, which keeps interior side-padding so its content
   doesn't run to the white edge. Same (0,5,1) specificity as the opt-out,
   placed AFTER it, so this padding wins. The card's OUTER edge still sits
   on the shared line (margin-inline:0 above); only its content is inset. */
body:not(.home) .client-offers .wp-block-group.alignfull > .nco-card {
  padding-inline: clamp(1.25rem, 2vw + 0.5rem, 2rem) !important;
}
/* Headings: force left text too (the rail had also been centering it) */
.client-offers > .wp-block-column > .wp-block-group > .wp-block-heading,
.client-offers > .wp-block-column > .wp-block-group > p {
  text-align: left !important;
}

/* White card: fills the panel, its LEFT EDGE on the shared line. */
.client-offers .nco-card { flex: 1; margin: 0 !important; }

/* Price block — force left-align regardless of editor block alignment setting */
.nco-card .wp-block-t180-mindbody-item { text-align: left !important; width: 100% !important; }
.nco-card .t180-mbi-price { text-align: left !important; width: 100% !important; }

/* ── Hero display titles that must fit their column ──────────────
   The xxl preset (11.5vw) is sized for short words; long titles like
   "MEMBERSHIP." overflow the 70% hero column and collide with the
   right-hand column. Headings carrying the hero-fit class scale with
   the COLUMN width (container query units), not the viewport. */
.hero .wp-block-cover__inner-container > .wp-block-columns > .wp-block-column {
  container-type: inline-size;
}
/* !important needed — core emits .has-xxl-font-size with !important,
   which otherwise wins the cascade regardless of specificity */
.hero .hero-fit {
  /* floor must stay below 13.5cqi at the narrowest mobile column (~227px,
     after the cover's 60px padding-inline) or long words overflow again */
  font-size: clamp(1.75rem, 13.5cqi, 9rem) !important;
}
@supports not (font-size: 1cqi) {
  .hero .hero-fit {
    font-size: min(clamp(2.875rem, 11.5vw, 10.35rem), 7.25rem) !important;
  }
}

/* ══════════════════════════════════════════════════════════════
   What's Included — homepage section
   Add CSS class "t180-whats-included" to the outer wp:group block
   in the WordPress editor to activate these styles.
══════════════════════════════════════════════════════════════ */
.t180-whats-included {
  background: var(--wp--preset--color--soft, #f4f4f4);
  padding: clamp(40px, 6vw, 80px) clamp(20px, 4vw, 56px);
}

.t180-whats-included .wp-block-columns {
  gap: clamp(40px, 5vw, 72px);
  align-items: flex-start;
}

/* Eyebrow label */
.t180-whats-included h2.has-sm-font-size {
  font-family: var(--wp--preset--font-family--geist-mono, monospace) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .22em !important;
  text-transform: uppercase !important;
  color: var(--primary-text-safe) !important;
  margin: 0 0 20px !important;
  line-height: 1.4 !important;
}

/* Main heading paragraph */
.t180-whats-included p.has-xl-font-size {
  font-size: clamp(22px, 3vw, 34px) !important;
  font-weight: 900 !important;
  letter-spacing: -0.03em !important;
  line-height: 1.1 !important;
  color: var(--wp--preset--color--black, #0d0d0d) !important;
  margin: 0 0 36px !important;
}

/* Strip default ol styling */
.t180-whats-included ol.wp-block-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 36px !important;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}

@media (max-width: 680px) {
  .t180-whats-included ol.wp-block-list {
    grid-template-columns: 1fr;
  }
}

/* Each item */
.t180-whats-included ol.wp-block-list li {
  border-top: 1px solid rgba(13,13,13,.12);
  padding: 18px 24px 18px 0;
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 0 12px;
  align-items: start;
  counter-increment: t180-item;
  font-size: 14px;
  line-height: 1.5;
  color: rgba(13,13,13,.78);
}

/* The /01 counter */
.t180-whats-included ol.wp-block-list li::before {
  content: "/" counter(t180-item, decimal-leading-zero);
  font-family: var(--wp--preset--font-family--geist-mono, monospace);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .1em;
  color: var(--primary-text-safe);
  padding-top: 3px;
  line-height: 1.4;
}

/* Reset counter on the list */
.t180-whats-included ol.wp-block-list {
  counter-reset: t180-item;
}

/* Bold item title */
.t180-whats-included ol.wp-block-list li strong {
  font-weight: 700;
  font-size: 14px;
  color: var(--wp--preset--color--black, #0d0d0d);
}

/* Buttons row */
.t180-whats-included .wp-block-buttons {
  gap: 10px;
  flex-wrap: wrap;
}

/* Footer note below the section */
.t180-whats-included .t180-included-note {
  margin-top: 20px;
  font-family: var(--wp--preset--font-family--geist-mono, monospace);
  font-size: 10.5px;
  text-transform: uppercase;
  letter-spacing: .18em;
  color: rgba(13,13,13,.45);
}

/* ══════════════════════════════════════════════════════════════
   [t180-whats-included] shortcode — fully owned markup/styles,
   no conflict with WordPress block font-size presets.
══════════════════════════════════════════════════════════════ */
.t180-wi {
  background: var(--soft, #f4f4f4);
}
.t180-wi__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(48px, 7vw, 96px) var(--pad, clamp(20px, 4vw, 56px));
}

/* Eyebrow */
.t180-wi__eyebrow {
  font-family: var(--mono, monospace);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--wp--preset--color--primary, #b31515);
  margin: 0 0 18px;
  line-height: 1.4;
}

/* Lead paragraph */
.t180-wi__lead {
  font-size: clamp(20px, 2.6vw, 32px);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.15;
  color: #0d0d0d;
  margin: 0 0 40px;
  max-width: 640px;
}

/* Grid list */
.t180-wi__list {
  list-style: none;
  padding: 0;
  margin: 0 0 40px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  counter-reset: t180-wi-item;
}
@media (max-width: 680px) {
  .t180-wi__list { grid-template-columns: 1fr; }
}

/* Each row */
.t180-wi__item {
  border-top: 1px solid rgba(13,13,13,.12);
  padding: 18px 32px 18px 0;
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 0 10px;
  align-items: start;
  counter-increment: t180-wi-item;
}
.t180-wi__item:nth-child(even) {
  padding-right: 0;
  padding-left: 32px;
}
@media (max-width: 680px) {
  .t180-wi__item:nth-child(even) { padding-left: 0; }
}

/* /01 counter */
.t180-wi__item::before {
  content: "/" counter(t180-wi-item, decimal-leading-zero);
  font-family: var(--mono, monospace);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  color: var(--wp--preset--color--primary, #b31515);
  padding-top: 2px;
  line-height: 1.5;
}

/* Item text */
.t180-wi__item-title {
  display: block;
  font-weight: 700;
  font-size: 13.5px;
  color: #0d0d0d;
  margin-bottom: 2px;
  line-height: 1.4;
}
.t180-wi__item-desc {
  display: block;
  font-size: 13px;
  line-height: 1.55;
  color: rgba(13,13,13,.6);
}

/* CTA buttons */
.t180-wi__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 20px;
}
.t180-wi__btn {
  display: inline-flex;
  align-items: center;
  font-family: var(--mono, monospace);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-decoration: none;
  padding: 12px 22px;
  border-radius: 2px;
  transition: background .15s, color .15s, border-color .15s;
}
.t180-wi__btn--primary {
  background: var(--wp--preset--color--primary, #b31515);
  color: #fff;
  border: 2px solid var(--wp--preset--color--primary, #b31515);
}
.t180-wi__btn--primary:hover {
  background: #8f0f0f;
  border-color: #8f0f0f;
  color: #fff;
}
.t180-wi__btn--outline {
  background: transparent;
  color: #0d0d0d;
  border: 2px solid rgba(13,13,13,.25);
}
.t180-wi__btn--outline:hover {
  border-color: #0d0d0d;
  color: #0d0d0d;
}

/* Footer note */
.t180-wi__note {
  font-family: var(--mono, monospace);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .18em;
  color: rgba(13,13,13,.4);
  margin: 0;
}

/* ══════════════════════════════════════════════════════════════
   Booking guide — [t180_booking_guide]  (Book your appointment)
══════════════════════════════════════════════════════════════ */
.t180-book { display: flex; flex-direction: column; gap: clamp(40px, 6vw, 72px); }

/* Step frame */
.t180-book__step { transition: opacity .35s ease, filter .35s ease; }
.t180-book__step.is-locked { opacity: .3; filter: grayscale(1); pointer-events: none; user-select: none; }
.t180-book__step-head { display: flex; align-items: baseline; gap: 16px; margin-bottom: 10px; }
.t180-book__num {
  font-family: var(--wp--preset--font-family--geist-mono, monospace);
  font-size: 12px; font-weight: 700; letter-spacing: .2em;
  color: var(--primary-text-safe, #d51a1f);
}
.t180-book__title {
  font-family: var(--wp--preset--font-family--geist, sans-serif);
  font-size: clamp(1.4rem, 3vw, 2rem); font-weight: 900; letter-spacing: -.02em;
  margin: 0; line-height: 1.1;
}
.t180-book__optional {
  font-family: var(--wp--preset--font-family--geist-mono, monospace);
  font-size: 10px; font-weight: 400; letter-spacing: .18em; text-transform: uppercase;
  color: var(--muted-ink, rgba(0,0,0,.6)); margin-left: 8px;
}
.t180-book__lead { max-width: 60ch; margin: 0 0 22px; color: rgba(13,13,13,.75); }
.t180-book__gym { color: var(--primary-text-safe, #d51a1f); }

/* 01 · location chips */
.t180-book__chips { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; max-width: 860px; }
.t180-book__chip {
  display: flex; flex-direction: column; gap: 6px; text-align: left;
  padding: 18px 20px; background: #fff; cursor: pointer;
  border: 1.5px solid rgba(13,13,13,.25); border-radius: 0;
  font-family: var(--wp--preset--font-family--geist-mono, monospace);
  font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--wp--preset--color--black, #0d0d0d);
  transition: border-color .15s ease, background .15s ease, color .15s ease;
}
.t180-book__chip span {
  font-size: 10px; font-weight: 400; letter-spacing: .06em; text-transform: none;
  color: rgba(13,13,13,.6);
}
.t180-book__chip:hover { border-color: var(--wp--preset--color--black, #0d0d0d); }
.t180-book__chip.is-active {
  background: var(--wp--preset--color--black, #0d0d0d); color: #fff;
  border-color: var(--wp--preset--color--black, #0d0d0d);
  box-shadow: 4px 4px 0 0 var(--wp--preset--color--primary, #b31515);
}
.t180-book__chip.is-active span { color: rgba(255,255,255,.6); }

/* Numbered instruction lists */
.t180-book__list { list-style: none; counter-reset: bookstep; margin: 0; padding: 0; max-width: 62ch; }
.t180-book__list li {
  counter-increment: bookstep; position: relative;
  padding: 10px 0 10px 44px; line-height: 1.55;
  border-bottom: 1px solid rgba(13,13,13,.08);
}
.t180-book__list li:last-child { border-bottom: none; }
.t180-book__list li::before {
  content: counter(bookstep, decimal-leading-zero);
  position: absolute; left: 0; top: 12px;
  font-family: var(--wp--preset--font-family--geist-mono, monospace);
  font-size: 11px; font-weight: 700; letter-spacing: .08em;
  color: var(--wp--preset--color--primary, #b31515);
}

/* 02 · store badges */
.t180-book__badges { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.t180-book__badge {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 13px 22px; border: 1.5px solid var(--wp--preset--color--black, #0d0d0d);
  font-family: var(--wp--preset--font-family--geist-mono, monospace);
  font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: var(--wp--preset--color--black, #0d0d0d); text-decoration: none;
  transition: background .15s ease, color .15s ease;
}
.t180-book__badge:hover { background: var(--wp--preset--color--black, #0d0d0d); color: #fff; }

/* 03 · purchase-path accordion */
.t180-book__paths { display: flex; flex-direction: column; gap: 10px; max-width: 760px; }
.t180-book__path { border: 1.5px solid rgba(13,13,13,.2); background: #fff; transition: border-color .15s ease, box-shadow .15s ease; }
.t180-book__path.is-open {
  border-color: var(--wp--preset--color--black, #0d0d0d);
  box-shadow: 5px 5px 0 0 var(--wp--preset--color--black, #0d0d0d);
}
.t180-book__path-toggle {
  display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto; column-gap: 16px;
  width: 100%; text-align: left; padding: 18px 20px; background: none; border: none; cursor: pointer;
}
.t180-book__path-title {
  grid-column: 1; font-family: var(--wp--preset--font-family--geist, sans-serif);
  font-size: 16px; font-weight: 800; color: var(--wp--preset--color--black, #0d0d0d);
}
.t180-book__path-sub { grid-column: 1; font-size: 13px; color: var(--muted-ink, rgba(0,0,0,.6)); margin-top: 3px; }
.t180-book__path-arrow {
  grid-column: 2; grid-row: 1 / span 2; align-self: center;
  width: 10px; height: 10px; border-right: 2px solid var(--wp--preset--color--primary, #b31515);
  border-bottom: 2px solid var(--wp--preset--color--primary, #b31515);
  transform: rotate(45deg); transition: transform .2s ease;
}
.t180-book__path.is-open .t180-book__path-arrow { transform: rotate(225deg); }
.t180-book__path-body { padding: 0 20px 18px; }
.t180-book__note {
  font-family: var(--wp--preset--font-family--geist-mono, monospace);
  font-size: 11px; letter-spacing: .1em; text-transform: uppercase;
  color: var(--muted-ink, rgba(0,0,0,.6)); margin: 20px 0 0;
}

/* 04 · trainers */
.t180-book__trainers {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 14px;
  max-width: 860px;
}
.t180-book__trainer { display: flex; flex-direction: column; gap: 8px; }
.t180-book__trainer img,
.t180-book__trainer-initial {
  width: 100%; aspect-ratio: 1; object-fit: cover; display: block;
  border: 1.5px solid rgba(13,13,13,.15); filter: grayscale(1); transition: filter .2s ease;
}
.t180-book__trainer:hover img { filter: none; }
.t180-book__trainer-initial {
  display: flex; align-items: center; justify-content: center;
  background: var(--wp--preset--color--black, #0d0d0d); color: #fff;
  font-family: var(--wp--preset--font-family--geist, sans-serif); font-size: 28px; font-weight: 900;
}
.t180-book__trainer-name {
  font-family: var(--wp--preset--font-family--geist-mono, monospace);
  font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
}
@media (max-width: 600px) {
  .t180-book__chips { grid-template-columns: 1fr; }
  .t180-book__trainers { grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); }
}
/* Booking guide — browser-booking alternative under the app badges */
.t180-book__alt { margin: 18px 0 0; font-size: 13.5px; color: rgba(13,13,13,.65); max-width: 60ch; }
.t180-book__alt a { color: var(--primary-text-safe, #d51a1f); font-weight: 700; }
/* Mindbody Appointments widget container — reserve space while the
   async embed loads so the section doesn't jump */
.t180-book-widget { min-height: 520px; }
.t180-book-widget iframe { max-width: 100%; }

/* ══════════════════════════════════════════════════════════════
   Mobile: single-gutter guarantees.
   Principle: exactly ONE wrapper owns the horizontal gutter; anything
   nested inside it adds none. Complements the nested-columns rule in
   the main ≤600px block (search "NESTED columns"). Card-interior
   padding (nco-card, hover-invert) is intentional and NOT a gutter.
══════════════════════════════════════════════════════════════ */
@media(max-width:600px){
  /* NOTE: the blanket mobile columns rule carries (0,3,0) specificity via
     its :not() clause — these overrides must match it to win (they tie,
     and later file position breaks the tie). */
  /* .t180-whats-included pads itself — its columns must not re-pad */
  .t180-whats-included > .wp-block-columns.is-layout-flex{ padding-inline:0 !important; }
  /* Offer panels own their indent — the .client-offers columns wrapper
     must not add a second gutter around them */
  .wp-block-columns.alignfull.client-offers{ padding-inline:0 !important; }
}

/* Utility: hide an element on mobile — add class "sm-hide" to any block */
@media(max-width:600px){
  .sm-hide{ display:none !important; }
}

/* ══ Contrast: context-dependent red + panel/GF fixes ══════════════
   --primary-text-safe (#d51a1f) passes on LIGHT backgrounds but fails
   on black (3.6:1) where the brighter brand red passes (4.7:1) — so
   eyebrow labels flip back to the bright red on dark sections. */
.has-black-background-color .wp-block-heading.has-sm-font-size,
.wp-block-cover .wp-block-heading.has-sm-font-size {
  color: var(--wp--preset--color--primary) !important;
}
/* Brand-red content panels: white small text on #e83f44 is 4.02:1 —
   the ~11% darker red lifts every white label/paragraph on these
   panels to 5.24:1. Buttons are separate classes and unaffected. */
.has-primary-background-color {
  background-color: var(--primary-text-safe, #d51a1f) !important;
}
/* GF field labels (a later plugin rule was outranking the themed one) */
.gform_wrapper legend.gfield_label,
.gform_wrapper label.gfield_label,
.gform_wrapper .gform-field-label {
  color: var(--muted-ink, rgba(0,0,0,.6)) !important;
}
/* Review location scores: darker still on light, bright tint on dark */
.t180-reviews__loc-score-val { color: #b31212; }
.t180-reviews--dark .t180-reviews__loc-score-val { color: #ff7a7d; }
/* Editor-preset "primary" TEXT color: darken to the AA-safe red on light
   contexts (covers content-level red labels like "— Membership"); keep
   the bright brand red on dark sections where the dark red would fail. */
p.has-primary-color, .has-primary-color { color: var(--primary-text-safe, #d51a1f) !important; }
.has-black-background-color .has-primary-color,
.wp-block-cover .has-primary-color { color: var(--wp--preset--color--primary) !important; }

/* ══ Single location page (single-t180_location.php) ═══════════════ */
/* Give the lone row breathing room; the shared .t180-lp styles do the rest */
.t180-lp--single .t180-lp__rows-inner { padding-top: clamp(40px, 6vw, 72px); }
.t180-loc-single__others { background: var(--soft, #f4f4f4); }
.t180-loc-single__others-inner {
  max-width: var(--wp--style--global--wide-size);
  margin-inline: auto;
  padding: clamp(40px, 6vw, 72px) var(--pad);
}
.t180-loc-single__others-label {
  font-family: var(--wp--preset--font-family--geist-mono, monospace);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--primary-text-safe, #d51a1f);
  margin: 0 0 24px;
}

/* ── Reviews grid: score rail + masonry columns ─────────────────── */
.t180-loc-single__reviews {
  background: #fafafa;
  border-top: 1px solid rgba(0,0,0,.06);
}
.t180-reviews--grid {
  display: grid;
  grid-template-columns: minmax(230px, 300px) 1fr;
  gap: clamp(36px, 5vw, 72px);
  align-items: start;
  max-width: var(--wp--style--global--wide-size);
  margin-inline: auto;
  padding: clamp(48px, 7vw, 96px) var(--pad);
  background: transparent;
}
.t180-reviews__rail {
  position: sticky;
  top: 110px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.t180-reviews__eyebrow {
  font-family: var(--wp--preset--font-family--geist-mono, monospace);
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--primary-text-safe, #d51a1f);
  margin: 0 0 18px;
}
.t180-reviews--grid .t180-reviews__num {
  font-size: clamp(72px, 8vw, 116px);
  margin-bottom: 6px;
}
.t180-reviews--grid .t180-reviews__rail .t180-reviews__star { font-size: 21px; }
.t180-reviews--grid .t180-reviews__count { margin-top: 12px; }
.t180-reviews__rail-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 18px;
  margin-top: 28px;
}
.t180-reviews__masonry {
  columns: 2;
  column-gap: 20px;
}
.t180-reviews__masonry .t180-reviews__card {
  display: flex;
  flex-direction: column;
  break-inside: avoid;
  margin-bottom: 20px;
  padding: 26px 28px 22px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
}
/* Card reads editorial: stars → quote → author, Google mark bottom-right */
.t180-reviews__masonry .t180-reviews__card .t180-reviews__stars { order: 1; }
.t180-reviews__masonry .t180-reviews__card .t180-reviews__text  { order: 2; }
.t180-reviews__masonry .t180-reviews__card .t180-reviews__author{ order: 3; margin-bottom: 0; margin-top: 18px; padding-top: 16px; border-top: 1px solid rgba(0,0,0,.07); }
.t180-reviews__masonry .t180-reviews__card .t180-reviews__footer{ order: 4; margin-top: 10px; }
.t180-reviews__masonry .t180-reviews__text {
  font-size: 15px;
  line-height: 1.7;
  margin: 0;
}
.t180-reviews__masonry .t180-reviews__text::before {
  content: '\201C';
  display: block;
  font-family: var(--wp--preset--font-family--dm-serif-display, serif);
  font-style: italic;
  font-size: 44px;
  line-height: .55;
  color: var(--primary-text-safe, #d51a1f);
  margin: 14px 0 10px;
}
@media (max-width: 900px) {
  .t180-reviews--grid { grid-template-columns: 1fr; gap: 36px; }
  .t180-reviews__rail { position: static; }
  .t180-reviews__masonry { columns: 1; }
}
