/* =====================================================================
   HARD MONEY SCOTT — GLOBAL STYLE GUIDE
   ---------------------------------------------------------------------
   The master stylesheet for hardmoneyscott.com. Loads on EVERY page.
   This file is the single source of truth for the brand system.

   WHERE THIS LIVES
     /wp-content/plugins/hardmoneyscott/hms-global.css
     Enqueued site-wide by hard-truths-portal.php.

   RELATIONSHIP TO THE PORTAL
     hms-global.css  → tokens + components + header/footer. Every page.
     htt-portal.css  → portal-only components. Inherits these tokens.
                       Loads only on the six portal pages.

   MIGRATION NOTE
     This replaces Appearance > Customize > Additional CSS. Upload this
     file FIRST, confirm the site is unchanged, THEN empty Additional CSS.
     Never run both — you'll have two copies of the same rules competing.

   HOW IT'S ORGANIZED
     1. Fonts
     2. Tokens          ← TUNE HERE. Everything else references these.
     3. Base
     4. Components      (chips · buttons · dot)
     5. Nav
     6. Layout          (wrap · sections · eyebrow)
     7. Page blocks     (hero · proofbar · press · pillars · bands ·
                         ledger · handoff · newsletter)
    7b. Tour blocks     (ticker · cities · hundred · modules · day ·
                         operator · reviews · final)
    7c. Academy page    (thin — reuses existing components)
    7d. Ground safety   ← light cards must declare their own text colour
     8. Footer
    8b. WPBakery overrides   ← kills the 15px column padding on full-bleed pages
     9. Motion
    10. Utilities
   ===================================================================== */


/* ---------------------------------------------------------------------
   1. FONTS
   Inter, weights 400–700. Nothing here uses 800/900 — the brand tops
   out at 700. A metric-matched Arial fallback prevents layout shift
   while Inter loads.
   --------------------------------------------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

@font-face{
  font-family:'Inter Fallback';
  src:local('Arial');
  ascent-override:90.49%; descent-override:22.56%; line-gap-override:0%; size-adjust:107.06%;
}


/* ---------------------------------------------------------------------
   2. TOKENS
   The whole palette. Change a value here and it propagates everywhere,
   including the portal.

   NAMING — read this before adding anything:
     --volt   = the lime accent  (#C6F135)   ← the brand green
     --signal = red, for loss / walk / error ← NOT the green
   That is deliberate and long-standing. The portal follows it.
   --------------------------------------------------------------------- */
:root{
  /* surfaces */
  --carbon:#0C0C0D;        /* primary dark ground */
  --carbon-2:#1A1A1E;      /* raised dark surface — cards on dark */
  --carbon-3:#26262A;      /* dark borders / hairlines */
  --paper:#F7F6F3;         /* primary light ground */
  --white:#FFFFFF;         /* cards on paper */
  --line:#E2E0D9;          /* light borders */
  --line-dark:#26262A;     /* dark-on-dark divider */

  /* text */
  --graphite:#55554F;      /* strong body text on light */
  --muted:#7A7A76;         /* muted body / sub-copy */
  --faint:#9A9892;         /* faint captions, least emphasis */
  --read-dark:#B8B7B0;     /* readable body text ON dark */

  /* accents */
  --volt:#C6F135;          /* THE accent. CTAs, eyebrows on dark, active */
  --volt-hi:#B4E024;       /* volt hover */
  --volt-deep:#4F6B00;     /* volt as TEXT on light — the readable green */
  --volt-tint:#F0FAD3;     /* volt background wash — win/funded chips */
  --signal:#E0492B;        /* RED. Loss, walk-away, error. Never decorative */
  --signal-tint:#FCEDE9;   /* red wash — walk chips */

  /* type */
  --sans:'Inter','Inter Fallback',-apple-system,BlinkMacSystemFont,sans-serif;

  /* layout */
  --wrap:1120px;
  --wrap-pad:24px;
}


/* ---------------------------------------------------------------------
   3. BASE
   --------------------------------------------------------------------- */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
/* Guard: nothing full-bleed should ever push the page sideways. */
html,body{overflow-x:hidden;max-width:100%}
body{
  font-family:var(--sans);
  background:var(--paper);
  color:var(--carbon);
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}

/* The single, consistent focus signal across the whole site. */
:focus-visible{outline:2px solid var(--volt);outline-offset:3px;border-radius:6px}

/* FONT ENFORCEMENT
   The7 sets a serif on headings. This USED to be a hand-listed set of block
   classes — which rotted the moment a new component was added (a serif
   "NEXT STOP" is what that looks like). Now: wrap the page markup in
   .hms-page and everything inside inherits Inter, forever, no list to update.

   The WPBakery row / page markup should carry class="hms-page hms-full".
   The three fallbacks below cover pages not yet wrapped. */
.hms-page, .hms-page *,
body.home .vc_row, body.home .vc_row *,
.hms-full, .hms-full *{
  font-family:var(--sans) !important;
}


/* ---------------------------------------------------------------------
   4. COMPONENTS
   --------------------------------------------------------------------- */

/* Dot — the small leading marker on eyebrows and chips */
.dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}

/* Chips — pill labels */
.chip{
  display:inline-flex;align-items:center;gap:7px;
  font-weight:600;font-size:11px;letter-spacing:1.5px;
  padding:7px 15px;border-radius:999px;white-space:nowrap;
}
.chip--outline{background:var(--white);border:1px solid var(--line);color:var(--graphite)}
.chip--volt{background:var(--volt);color:var(--carbon)}
.chip--ghost{background:rgba(247,246,243,.1);color:var(--paper)}
.chip--signal{background:var(--signal-tint);color:var(--signal)}

/* Mini-chips — the data variant, for deal figures */
.minichip{
  font-weight:600;font-size:10px;letter-spacing:.8px;
  padding:5px 10px;border-radius:999px;
  background:#EFEEEA;color:var(--graphite);
}
.minichip--win{background:var(--volt-tint);color:var(--volt-deep)}
.minichip--walk{background:var(--signal-tint);color:var(--signal)}

/* Buttons — weight 500, 14px. One --volt CTA per view; everything else
   primary / outline / ghost. */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-weight:500;font-size:14px;
  padding:13px 28px;border-radius:999px;border:1px solid transparent;cursor:pointer;
  transition:transform .15s ease,background .15s ease,border-color .15s ease;
}
.btn:active{transform:scale(.98)}
.btn--primary{background:var(--carbon);color:var(--paper)}
.btn--primary:hover{background:#222226}
.btn--volt{background:var(--volt);color:var(--carbon)}
.btn--volt:hover{background:var(--volt-hi)}
.btn--outline{background:var(--white);border-color:var(--line);color:var(--carbon)}
.btn--outline:hover{border-color:var(--graphite)}
.btn--ghost{background:transparent;border-color:var(--carbon-3);color:var(--paper)}
.btn--ghost:hover{border-color:var(--faint)}


/* ---------------------------------------------------------------------
   5. NAV
   Forced solid carbon — the theme was overriding the background to light
   and hiding the white logo.
   --------------------------------------------------------------------- */
.nav{
  position:sticky;top:0;z-index:50;
  background:var(--carbon) !important;
  backdrop-filter:none !important;-webkit-backdrop-filter:none !important;
  border-bottom:1px solid var(--carbon-3) !important;
}
.nav__in{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:center;gap:11px}
.brand__sig{height:26px !important;width:auto !important;display:block !important}
.brand__name{font-weight:600;font-size:15px;letter-spacing:-.3px;color:var(--paper) !important}
.nav__links{display:flex;align-items:center;gap:26px;font-size:13.5px;font-weight:500}
.nav__links a:not(.btn){color:var(--read-dark) !important}
.nav__links a:not(.btn):hover{color:var(--paper) !important}
.nav__cta{padding:9px 20px;font-size:13px}
.nav .nav__cta{color:var(--carbon) !important}   /* dark text on the green pill */
@media(max-width:820px){.nav__links a:not(.btn){display:none}}


/* ---------------------------------------------------------------------
   6. LAYOUT
   --------------------------------------------------------------------- */
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--wrap-pad)}

.sec{padding:88px 0}
.sec--dark{background:var(--carbon);color:var(--paper)}
.sec--paper{background:var(--paper)}
@media(max-width:640px){.sec{padding:60px 0}}

.sec__head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:44px;flex-wrap:wrap}
.sec__head h2{font-weight:700;font-size:clamp(28px,4vw,40px);letter-spacing:-.028em;line-height:1.1}
.sec__sub{font-size:15px;color:var(--muted);max-width:440px}
.sec--dark .sec__sub{color:var(--faint)}

/* Eyebrow — 600 / 11px / 2.5px tracking. volt-deep on light, volt on dark. */
.eyebrow{font-weight:600;font-size:11px;letter-spacing:2.5px;color:var(--volt-deep);display:block;margin-bottom:14px}
.sec--dark .eyebrow{color:var(--volt)}


/* ---------------------------------------------------------------------
   7. PAGE BLOCKS
   --------------------------------------------------------------------- */

/* ---- HERO ----
   .hero MUST stay position:relative. Without it, .hero__media (absolute)
   anchors to the viewport instead of the hero — right:0 measures past the
   page edge, overflow:hidden can't clip it, and the page scrolls sideways. */
.hero{position:relative !important;background:var(--carbon);color:var(--paper);overflow:hidden !important}
.hero__in{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;min-height:600px}
.hero__copy{padding:72px 0;position:relative;z-index:2}
.hero__eyebrow{font-weight:600;font-size:11px;letter-spacing:2.5px;color:var(--volt);margin-bottom:20px;display:flex;align-items:center;gap:9px}
.hero__eyebrow .dot{background:var(--volt)}
.hero h1{font-weight:700;font-size:clamp(40px,5.4vw,62px);letter-spacing:-.035em;line-height:1.02}
.hero h1 .volt{color:var(--volt)}
.hero__sub{font-size:17px;color:var(--read-dark);max-width:440px;margin-top:22px}
.hero__ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.hero__proof{display:flex;gap:8px;flex-wrap:wrap;margin-top:36px}
.hero__media{position:absolute !important;top:0 !important;right:0 !important;left:auto !important;width:42% !important;height:100% !important;z-index:1}
.hero__media img{width:100% !important;height:100% !important;object-fit:cover !important;object-position:50% 22% !important;display:block}
.hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--carbon) 0%,transparent 22%,transparent 80%,rgba(12,12,13,.35) 100%)}
@media(max-width:860px){
  .hero__in{grid-template-columns:1fr;min-height:0}
  .hero__media{position:relative !important;width:100% !important;height:340px !important;order:-1}
  .hero__copy{padding:40px 0 8px}
  .hero__media::after{background:linear-gradient(0deg,var(--carbon) 0%,transparent 40%)}
}

/* ---- PROOF BAR ----
   The credibility anchor. Keep it factual and un-decorated. */
.proofbar{background:var(--carbon-2);border-top:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark)}
.proofbar__in{display:flex;flex-wrap:wrap}
.proofbar__stat{flex:1;min-width:150px;padding:26px 22px;border-right:1px solid var(--line-dark)}
.proofbar__stat:last-child{border-right:none}
.proofbar__n{font-weight:600;font-size:30px;letter-spacing:-1.2px;color:var(--paper)}
.proofbar__l{font-weight:600;font-size:10px;letter-spacing:1.6px;color:var(--muted);margin-top:5px}
@media(max-width:640px){.proofbar__stat{min-width:50%;border-bottom:1px solid var(--line-dark)}}

/* ---- PRESS ---- */
.press{padding:40px 0;background:var(--paper);border-bottom:1px solid var(--line)}
.press__row{display:flex;align-items:center;justify-content:center;gap:14px 40px;flex-wrap:wrap}
.press__label{font-weight:600;font-size:10.5px;letter-spacing:2px;color:var(--faint)}
.press__name{font-weight:600;font-size:15px;letter-spacing:-.3px;color:var(--graphite)}

/* ---- PILLARS ---- */
.pillars{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
@media(max-width:880px){.pillars{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.pillars{grid-template-columns:1fr}}
.pillar{background:var(--carbon-2);border:1px solid var(--line-dark);border-radius:18px;padding:26px;transition:border-color .18s ease,transform .18s ease}
.pillar:hover{border-color:#3A3A40;transform:translateY(-3px)}
.pillar__ic{width:40px;height:40px;border-radius:11px;background:rgba(198,241,53,.12);color:var(--volt);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;letter-spacing:.5px;margin-bottom:18px}
.pillar h3{font-weight:600;font-size:18px;letter-spacing:-.4px;color:var(--paper)}
.pillar p{font-size:13.5px;color:var(--faint);margin-top:9px;line-height:1.6}

/* ---- SPLIT BANDS ---- */
.band{display:grid;grid-template-columns:1fr 1fr;gap:0;border-radius:24px;overflow:hidden;border:1px solid var(--line)}
.band__l{background:var(--carbon);color:var(--paper);padding:52px 44px}
.band__r{background:var(--white);padding:52px 44px;display:flex;flex-direction:column;justify-content:center}
.band h3{font-weight:700;font-size:clamp(24px,3.2vw,32px);letter-spacing:-.025em;line-height:1.12}
.band__l h3{color:var(--paper)}
.band p{font-size:14.5px;color:var(--muted);margin-top:14px;line-height:1.6}
.band__l p{color:var(--read-dark)}
.band ul{list-style:none;margin:22px 0 0;display:flex;flex-direction:column;gap:11px}
.band li{display:flex;gap:12px;align-items:flex-start;font-size:14px;color:#CFCEC7}
.band li b{color:var(--paper);font-weight:600}
.band__check{width:22px;height:22px;border-radius:7px;background:rgba(198,241,53,.14);color:var(--volt);display:flex;align-items:center;justify-content:center;font-size:12px;flex:none;margin-top:1px}
.band__cta{margin-top:28px}
.band__chip{margin-bottom:18px}
.band__h--dark{color:var(--carbon)}
.band__next{font-weight:600;color:var(--carbon);margin-top:12px}
.band__cities{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}
@media(max-width:780px){.band{grid-template-columns:1fr}.band__l,.band__r{padding:36px 28px}}

/* ---- LEDGER CARDS ---- */
.ledger{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media(max-width:820px){.ledger{grid-template-columns:1fr}}
.lcard{background:var(--white);border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:transform .18s ease,border-color .18s ease}
.lcard:hover{transform:translateY(-3px);border-color:#CFCCC2}
.lcard__top{background:var(--carbon);padding:20px;display:flex;align-items:center;justify-content:space-between}
.lcard__ep{font-weight:600;font-size:10.5px;letter-spacing:1.5px;color:var(--volt)}
.lcard__play{width:34px;height:34px;border-radius:50%;background:var(--volt);color:var(--carbon);display:flex;align-items:center;justify-content:center;font-size:13px}
.lcard__body{padding:20px}
.lcard h3{font-weight:600;font-size:16.5px;letter-spacing:-.3px;line-height:1.3}
.lcard__chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px}

/* ---- HANDOFF ---- */
.handoff{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:780px){.handoff{grid-template-columns:1fr}}
.hcard{border:1px solid var(--line);border-radius:20px;padding:34px;background:var(--white)}
.hcard__tag{font-weight:600;font-size:10.5px;letter-spacing:2px;color:var(--faint)}
.hcard h3{font-weight:700;font-size:23px;letter-spacing:-.5px;margin-top:10px}
.hcard p{font-size:14px;color:var(--muted);margin-top:10px;line-height:1.6}
.hcard__link{display:inline-flex;align-items:center;gap:7px;margin-top:18px;font-weight:600;font-size:13.5px;color:var(--carbon);border-bottom:2px solid var(--volt);padding-bottom:2px}

/* ---- NEWSLETTER ---- */
.news{background:var(--carbon);border-radius:24px;padding:56px 44px;text-align:center}
.news h2{font-weight:700;font-size:clamp(26px,3.6vw,38px);letter-spacing:-.028em;color:var(--paper);max-width:480px;margin:0 auto;line-height:1.1}
.news p{font-size:15px;color:var(--faint);margin:16px auto 0;max-width:420px}
.news__chip{margin-bottom:20px;background:rgba(12,12,13,.06);color:var(--graphite)}
.news__chip .dot{background:var(--volt-deep)}
.news__form{display:flex;gap:10px;justify-content:center;margin-top:28px;flex-wrap:wrap}
.news__input{background:var(--carbon-2);border:1px solid var(--carbon-3);border-radius:999px;padding:13px 22px;color:var(--paper);font-family:var(--sans);font-size:16px;width:300px;max-width:100%}
.news__input::placeholder{color:var(--muted)}
.news__input:focus{outline:none;border-color:var(--volt)}
@media(max-width:640px){.news{padding:40px 24px}}


/* ---------------------------------------------------------------------
   7b. TOUR PAGE BLOCKS
   ticker · cities · hundred · modules · day/walkout · operator · reviews · final
   --------------------------------------------------------------------- */

/* ---- TICKER ---- */
.ticker{background:var(--carbon);overflow:hidden;padding:13px 0;border-top:1px solid var(--carbon);border-bottom:1px solid var(--carbon)}
.ticker__track{display:flex;gap:48px;white-space:nowrap;font-weight:600;font-size:12px;letter-spacing:2.5px;color:var(--volt);animation:htt-scroll 36s linear infinite;width:max-content}
.ticker__track span{display:inline-flex;align-items:center;gap:48px}
@keyframes htt-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.ticker__track{animation:none}}

/* ---- NEXT-STOP STRIP ----
   Shown under the hero. Carries the ticker's job when the route is too short
   to scroll: states the next stop plainly and sends people to register. */
.nextstrip{background:var(--carbon-2);border-bottom:1px solid var(--carbon-3)}
.nextstrip__in{display:flex;align-items:center;justify-content:center;gap:18px;padding:16px 24px;flex-wrap:wrap}
.nextstrip__label{font-weight:600;font-size:10.5px;letter-spacing:2px;text-transform:uppercase;color:var(--volt)}
.nextstrip__val{font-weight:600;font-size:14.5px;letter-spacing:-.2px;color:var(--paper)}
.nextstrip__btn{padding:9px 20px;font-size:12.5px}
@media(max-width:640px){
  .nextstrip__in{flex-direction:column;gap:10px;text-align:center}
  .nextstrip__val{font-size:13.5px}
}

/* ---- TOUR HERO (image ground, centered) ---- */
.hero--tour{
  position:relative;
  padding:120px 0 84px;text-align:center;color:var(--paper);
  background:var(--carbon);
  overflow:hidden;
}
/* The photo sits in its own layer so the scrim can be tuned without
   fighting a background shorthand. Was washed out and unreadable. */
.hero--tour::before{
  content:"";position:absolute;inset:0;z-index:0;
  background:url(https://hardmoneyscott.com/wp-content/uploads/2026/06/Scott-Lurie.jpg) center 22%/cover no-repeat;
  opacity:.42;
}
.hero--tour::after{
  content:"";position:absolute;inset:0;z-index:1;
  background:
    radial-gradient(120% 90% at 50% 42%, rgba(12,12,13,.30) 0%, rgba(12,12,13,.86) 70%, var(--carbon) 100%),
    linear-gradient(180deg, rgba(12,12,13,.55) 0%, rgba(12,12,13,.55) 55%, var(--carbon) 100%);
}
.hero--tour > .wrap{ position:relative; z-index:2; }
.hero--tour h1{color:var(--paper);font-weight:700;font-size:clamp(42px,7vw,76px);letter-spacing:-.035em;line-height:1.02;max-width:820px;margin:26px auto 0}
.hero--tour h1 .tour-tag{display:block;color:var(--volt);margin-top:6px}
.hero--tour p{font-size:17px;color:var(--faint);max-width:520px;margin:22px auto 0}
.hero__ctas--center{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:34px}
.hero__chips{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;margin-top:46px}
@media(max-width:640px){.hero--tour{padding:80px 0 60px}}

/* ---- CITIES ---- */
.cities{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.city{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:24px;display:flex;flex-direction:column;gap:18px;transition:transform .18s ease,border-color .18s ease}
.city:hover{transform:translateY(-3px);border-color:#CFCCC2}
.city__top{display:flex;justify-content:space-between;align-items:center}
.city__stop{font-weight:600;font-size:11px;letter-spacing:2px;color:var(--faint)}
.city h3{font-weight:600;font-size:27px;letter-spacing:-.8px;line-height:1.05}
.city__meta{font-weight:600;font-size:12px;letter-spacing:1.5px;color:var(--graphite)}
.city__foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:16px;margin-top:auto}
.city__venue{font-size:12.5px;color:var(--faint)}
.city__btn{padding:8px 18px;font-size:12.5px}
/* A stop that isn't selling shows its state, not a dead button. */
.city__state{font-weight:600;font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--faint)}
.city--past{opacity:.6}
/* the small status chip on a city card */
.city__tag{font-size:9.5px;padding:5px 12px}

/* ---- $100 BACK ---- */
.hundred{background:var(--white);border:1px solid var(--line);border-radius:24px;padding:52px 44px;display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center}
.hundred h2{font-weight:600;font-size:clamp(26px,3.4vw,36px);letter-spacing:-.025em;line-height:1.12}
.hundred p{font-size:15px;color:var(--muted);margin-top:16px;max-width:420px}
.hundred__steps{display:flex;flex-direction:column;gap:12px}
.step{display:flex;align-items:center;gap:16px;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:16px 20px}
.step__num{font-weight:600;font-size:13px;color:var(--carbon);background:var(--volt);width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:none}
.step b{display:block;font-weight:600;font-size:14.5px;letter-spacing:-.2px}
.step span{font-size:13px;color:var(--muted)}
@media(max-width:860px){.hundred{grid-template-columns:1fr;padding:36px 28px}}

/* ---- MODULES ---- */
.modules{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}
.module{background:var(--carbon-2);border:1px solid var(--line-dark);border-radius:18px;padding:26px;transition:border-color .18s ease}
.module:hover{border-color:#3A3A40}
.module__tag{font-weight:600;font-size:10.5px;letter-spacing:2px;color:var(--volt);display:block;margin-bottom:12px}
.module h3{font-weight:600;font-size:18.5px;letter-spacing:-.4px;color:var(--paper);line-height:1.25}
.module p{font-size:13.5px;color:var(--faint);margin-top:9px;line-height:1.6}

/* ---- THE DAY ---- */
.daygrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:stretch}
.panel{background:var(--white);border:1px solid var(--line);border-radius:20px;padding:30px}
.panel h3{font-weight:600;font-size:19px;letter-spacing:-.4px;margin-bottom:20px}
.sched{display:flex;flex-direction:column}
.sched__row{display:flex;gap:20px;padding:11px 0;border-bottom:1px solid var(--line);font-size:14px}
.sched__row:last-child{border-bottom:none}
.sched__time{font-weight:600;font-size:12px;letter-spacing:1px;color:var(--volt-deep);width:58px;flex:none;padding-top:2px}
.walk{display:flex;flex-direction:column;gap:14px}
.walk__item{display:flex;gap:14px;align-items:flex-start}
.walk__check{width:24px;height:24px;border-radius:8px;background:var(--volt-tint);color:var(--volt-deep);display:flex;align-items:center;justify-content:center;font-size:13px;flex:none;margin-top:2px}
.walk__item b{display:block;font-weight:600;font-size:14.5px;letter-spacing:-.2px}
.walk__item span{font-size:13px;color:var(--muted)}
@media(max-width:860px){.daygrid{grid-template-columns:1fr}}

/* ---- OPERATOR BAND ---- */
.op{display:grid;grid-template-columns:1.2fr 1fr;gap:56px;align-items:center}
.op h2{font-weight:600;font-size:clamp(28px,4vw,42px);letter-spacing:-.03em;line-height:1.08;color:var(--paper)}
.op p{font-size:15.5px;color:var(--faint);margin-top:18px;max-width:480px}
.op__quote{font-weight:500;font-style:italic;font-size:16.5px;letter-spacing:-.2px;color:var(--volt);margin-top:26px;line-height:1.7}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.stat{background:var(--carbon-2);border:1px solid var(--line-dark);border-radius:16px;padding:24px 22px}
.stat__n{font-weight:600;font-size:32px;letter-spacing:-1.2px;color:var(--paper)}
.stat__l{font-weight:600;font-size:10px;letter-spacing:1.8px;color:var(--muted);margin-top:6px}
@media(max-width:860px){.op{grid-template-columns:1fr;gap:36px}}

/* ---- REVIEWS ---- */
.reviews{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}
.reviews--four{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:740px){.reviews--four{grid-template-columns:1fr}}
.review{position:relative;background:var(--white);border:1px solid var(--line);border-radius:18px;padding:26px;display:flex;flex-direction:column;gap:18px}
.review__flag{position:absolute;top:14px;right:14px;font-weight:600;font-size:9px;letter-spacing:1.5px;color:var(--signal);background:var(--signal-tint);padding:4px 9px;border-radius:999px}
.review__stars{color:var(--volt-deep);font-size:13px;letter-spacing:3px}
.review__quote{font-size:15.5px;letter-spacing:-.2px;line-height:1.55;color:var(--carbon)}
.review__quote b{font-weight:600}
.review__by{display:flex;align-items:center;gap:13px;margin-top:auto;border-top:1px solid var(--line);padding-top:18px}
.review__who b{display:block;font-weight:600;font-size:14px;letter-spacing:-.2px;color:var(--faint)}
.review__who span{font-size:12.5px;color:var(--faint)}
.reviews__note{margin-top:22px;font-size:12.5px;font-weight:500;color:var(--signal);text-align:center}

/* ---- FINAL CTA ---- */
.final{text-align:center;padding:104px 0}
.final h2{font-weight:700;font-size:clamp(34px,5.4vw,58px);letter-spacing:-.032em;line-height:1.04;max-width:680px;margin:24px auto 0}
.final p{font-size:16px;color:var(--muted);margin:20px auto 0;max-width:440px}
.final__ctas{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:34px}
@media(max-width:640px){.final{padding:64px 0}}

/* chip variant used on the tour page */
.chip--carbon{background:var(--carbon);color:var(--volt)}

/* Tour page uses a light sticky nav rather than the carbon one */
.nav--light{background:rgba(247,246,243,.88) !important;border-bottom:1px solid var(--line) !important}
.nav--light .brand__name{color:var(--carbon) !important}
.nav--light .nav__links a:not(.btn){color:var(--graphite) !important}
.nav--light .nav__links a:not(.btn):hover{color:var(--carbon) !important}


/* ---------------------------------------------------------------------
   7c. ACADEMY PAGE
   Deliberately thin. The Academy page is built from components that already
   exist — .hero, .sec, .modules/.module, .ledger/.lcard, .band, .hcard,
   .minichip, .final. The old version shipped a parallel .ac-* / .track /
   .lib / .tier / .faq set that duplicated all of it; that's been purged.

   Only these three additions survive, because nothing else does their job:
   --------------------------------------------------------------------- */

/* Academy hero — shorter than the homepage hero so the auth card clears the
   fold on a laptop without scrolling. The copy column centres against it. */
.hero--academy .hero__in{ min-height:0; align-items:center; gap:40px; }
.hero--academy .hero__copy{ padding:56px 0; }
.hero--academy .hero__sub{ font-size:16px; margin-top:16px; }
.hero--academy .hero__proof{ margin-top:24px; }
.hero--academy h1{ font-size:clamp(34px,4.2vw,50px); }
@media(max-height:860px) and (min-width:880px){
  .hero--academy .hero__copy{ padding:40px 0; }
  .hero--academy h1{ font-size:clamp(30px,3.6vw,42px); }
  .hero--academy .hero__sub{ font-size:15px; }
}
@media(max-width:880px){
  .hero--academy .hero__copy{ padding:44px 0 8px; }
}

/* An embedded auth card sitting in a dark hero column. */
.hcard--embed{padding:28px;box-shadow:0 24px 60px -28px rgba(0,0,0,.55)}
.hcard--embed .hcard__tag{color:var(--volt-deep)}

/* Free-tier marker on a resource row. Uses the existing minichip system:
   --win (volt tint) = free, plain = Academy. */
.lcard__tier{margin-left:auto}

/* Resource row inside a .lcard body. */
.access__note{font-size:12px;color:var(--faint);text-align:center;line-height:1.5}
.access__note a{color:var(--volt-deep);font-weight:600;text-decoration:underline}
.lcard__meta{font-size:12.5px;color:var(--muted);margin-top:6px;line-height:1.5}


/* ---------------------------------------------------------------------
   7d. GROUND SAFETY
   A card with a WHITE ground can be dropped into a DARK section — the
   Academy hero does exactly that. Headings that never declared a colour just
   inherited --paper from the dark parent and rendered white-on-white.

   These components own a light ground, so they must own their text colour
   too. Never rely on inheritance for text sitting on a fixed background.
   --------------------------------------------------------------------- */
.hcard, .lcard, .panel, .city, .hundred, .review, .tier:not(.tier--prem),
.step, .lrow, .auth, .access{
  color:var(--carbon);
}
.hcard h1, .hcard h2, .hcard h3, .hcard h4,
.lcard h1, .lcard h2, .lcard h3, .lcard h4,
.panel h1, .panel h2, .panel h3, .panel h4,
.city h1, .city h2, .city h3, .city h4,
.hundred h1, .hundred h2, .hundred h3,
.review h1, .review h2, .review h3,
.access h1, .access h2, .access h3{
  color:var(--carbon);
}
/* bolded labels inside light cards */
.step b, .walk__item b, .lrow b, .drow b{ color:var(--carbon); }
/* sub-copy inside light cards */
.hcard p, .panel p, .hundred p{ color:var(--muted); }
.step span, .walk__item span, .lrow span{ color:var(--muted); }

/* The dark-ground exceptions keep paper text. */
.tier--prem, .tier--prem h1, .tier--prem h2, .tier--prem h3{ color:var(--paper); }
.module h3, .pillar h3{ color:var(--paper); }
.dcard h3, .drow b{ color:var(--paper); }


/* ---- SOCIAL ----
   Sits under the sign-up form. Text links, not icon soup — the brand doesn't
   do decoration, and three platforms don't need a sprite sheet. */
.social{margin-top:34px;padding-top:26px;border-top:1px solid var(--carbon-3)}
.social__label{display:block;font-weight:600;font-size:10.5px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.social__links{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.social__link{
  font-weight:600;font-size:13px;letter-spacing:-.1px;color:var(--read-dark);
  border:1px solid var(--carbon-3);border-radius:999px;padding:9px 18px;
  transition:border-color .15s ease,color .15s ease,background .15s ease;
}
.social__link:hover{color:var(--carbon);background:var(--volt);border-color:var(--volt)}

/* ---------------------------------------------------------------------
   8. FOOTER
   --------------------------------------------------------------------- */
footer{background:var(--carbon);color:var(--faint);padding:54px 0 40px;border-top:1px solid var(--carbon-3)}
.foot__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;padding-bottom:36px;border-bottom:1px solid var(--carbon-3)}
@media(max-width:780px){.foot__grid{grid-template-columns:1fr 1fr}}
.foot__brand{display:flex;align-items:center;gap:10px;color:var(--paper);font-weight:600;font-size:15px}
.foot__logo{height:42px;width:auto;display:block;margin-bottom:4px}
.foot__tag{font-size:13px;color:var(--faint);margin-top:14px;max-width:240px;line-height:1.6}
.foot__col h4{font-weight:600;font-size:11px;letter-spacing:1.5px;color:var(--muted);margin-bottom:14px}
.foot__col a{display:block;font-size:13.5px;color:var(--read-dark);margin-bottom:10px}
.foot__col a:hover{color:var(--paper)}
.foot__legal{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-top:28px}
.foot__legal p{font-size:11.5px;line-height:1.7;color:var(--muted);max-width:620px}
.foot__powered{font-weight:600;font-size:10px;letter-spacing:2px;color:var(--muted)}


/* ---------------------------------------------------------------------
   8b. WPBAKERY OVERRIDES
   WPBakery wraps every column in .vc_column-inner and hard-codes
   padding-left/right:15px. Our blocks are full-bleed and handle their own
   gutters via .wrap, so that 15px shows up as a stripe down both edges.

   SCOPED ON PURPOSE — this does NOT zero out every column site-wide, which
   would wreck any page actually built with WPBakery's grid. It only applies
   where our markup lives:

     body.home            → the homepage, automatically
     .hms-full            → opt-in. Add "hms-full" to a Row's
                            "Extra class name" field (Row settings > General)
                            on any other page using these blocks.
   --------------------------------------------------------------------- */
/* WHY THIS IS SHAPED LIKE THIS
   The markup gets pasted INSIDE a WPBakery column, so our wrapper (.hms-page)
   is a DESCENDANT of .vc_column_container — not an ancestor. Selectors like
   ".hms-full .vc_column_container" can therefore never match. The reliable
   move is :has() — "the column that CONTAINS our markup" — which reads up the
   tree from where the wrapper actually sits.

   WPBakery's own rule is  .vc_column_container>.vc_column-inner  (0,2,0).
   Everything below is more specific AND !important, so it wins outright. */

/* --- PRIMARY: any column/row that contains our markup --- */
.vc_column_container > .vc_column-inner:has(.hms-page),
.vc_column_container > .vc_column-inner:has(.hero--tour),
.vc_column_container > .vc_column-inner:has(.proofbar),
.vc_column_container > .vc_column-inner:has(.nextstrip){
  padding-left:0 !important;
  padding-right:0 !important;
}
.vc_column_container:has(.hms-page),
.vc_column_container:has(.hero--tour){
  padding-left:0 !important;
  padding-right:0 !important;
}
.vc_row:has(.hms-page),
.vc_row:has(.hero--tour),
.vc_row:has(.proofbar){
  margin-left:0 !important;
  margin-right:0 !important;
}

/* --- FALLBACK: class on the row itself (WPBakery > Row > Extra class name).
       Use this if :has() is ever unavailable. --- */
body.home .vc_row,
.vc_row.hms-full{
  margin-left:0 !important;
  margin-right:0 !important;
}
body.home .vc_column_container,
.vc_row.hms-full .vc_column_container{
  padding-left:0 !important;
  padding-right:0 !important;
}
body.home .vc_column_container > .vc_column-inner,
.vc_row.hms-full .vc_column_container > .vc_column-inner{
  padding-left:0 !important;
  padding-right:0 !important;
}

/* --- LAST RESORT: cancel the inset from inside our own wrapper.
       If a column's padding still gets through, .hms-page pulls itself back
       out by the same 15px. Works with no parent selector at all. --- */
.hms-page{
  margin-left:-15px;
  margin-right:-15px;
}
/* WPBakery's text/raw wrappers also add their own bottom margin. */
.wpb_text_column:has(.hms-page),
.wpb_raw_code:has(.hms-page),
.wpb_content_element:has(.hms-page){ margin-bottom:0 !important; }

/* The7 pads the main content area and constrains .wf-wrap. Our sections own
   their own spacing and gutters, so on full-bleed pages both must go. */
body.home #main,
body:has(.hms-full) #main,
body:has(.hero--tour) #main{ padding:0 !important; }

body.home .wf-wrap,
body:has(.hms-full) .wf-wrap,
body:has(.hero--tour) .wf-wrap{ max-width:100% !important; padding:0 !important; }

body.home .wf-container-main,
body:has(.hms-full) .wf-container-main,
body:has(.hero--tour) .wf-container-main{ width:100% !important; }


/* ---------------------------------------------------------------------
   9. MOTION
   --------------------------------------------------------------------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none}
}


/* ---------------------------------------------------------------------
   10. UTILITIES
   --------------------------------------------------------------------- */
.volt{color:var(--volt)}
.u-center{text-align:center}
.u-mt-0{margin-top:0 !important}
.u-pt-0{padding-top:0 !important}
.u-mb-0{margin-bottom:0 !important}

/* Shortcode output (see shortcodes.php) */
.htt-sc-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.htt-sc-list li{font-size:14px;line-height:1.5}
.htt-sc-checks{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-direction:column;gap:11px}
.htt-sc-checks li{display:flex;gap:12px;align-items:flex-start;font-size:14px;color:#CFCEC7}
.htt-sc-soon{
  display:inline-block;font-weight:600;font-size:9px;letter-spacing:1.2px;text-transform:uppercase;
  color:var(--volt-deep);background:rgba(198,241,53,.14);
  border:1px solid rgba(198,241,53,.3);border-radius:999px;padding:2px 7px;margin-left:7px;
  vertical-align:middle;
}
