/* ============================================================
   TOKENS
   ============================================================ */
:root{
  --paper:#0A0A0B;       /* dominant page background (near-black) */
  --ecru:#141416;        /* lifted charcoal for alternating sections/panels */
  --navy:#0A0A0B;        /* navy retired: aliased to black */
  --gold:#C9A84C;        /* elegant gold accent */
  --gold-text:#D4B65E;   /* slightly brighter gold for small labels on black */
  --espresso:#F4F1EA;    /* PRIMARY TEXT: warm white / ivory on black */
  --cream:#F7F4EF;       /* light text on dark */
  --ivory:#F4F1EA;       /* warm white, primary text and light surfaces */
  --charcoal:#1C1C1F;    /* raised surface / card background on black */
  --warm-gray:#9A968C;   /* muted secondary text on black */
  --line:rgba(201,168,76,0.22); /* hairline gold rules on black */
  --ease:cubic-bezier(0.22, 1, 0.36, 1);
  --radius:4px;
  --container:1320px;
}

/* ============================================================
   BASE
   ============================================================ */
*,*::before,*::after{ box-sizing:border-box; }

html{ -webkit-text-size-adjust:100%; }

body{
  margin:0;
  background:var(--paper);
  color:var(--espresso);
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

img{ display:block; max-width:100%; }

a{ color:inherit; }

.container{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:32px;
}


/* ============================================================
   BUTTONS - one global component
   ============================================================ */
.btn{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  isolation:isolate;
  border-radius:var(--radius);
  padding:16px 32px;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:500;
  font-size:15px;
  letter-spacing:0.02em;
  line-height:1;
  text-decoration:none;
  cursor:pointer;
  border:1.5px solid transparent;
  background:transparent;
  color:var(--espresso);
  transition:color 420ms var(--ease);
}
.btn::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform 420ms var(--ease);
}
.btn--primary{
  background:var(--gold);
  color:var(--paper);
  border-color:var(--gold);
}
.btn--primary::before{ background:var(--gold-text); }
.btn--primary:hover::before{ transform:scaleX(1); }

.btn--secondary{
  background:transparent;
  color:var(--gold-text);
  border-color:var(--gold);
}
.btn--secondary::before{ background:var(--gold); }
.btn--secondary:hover{ color:var(--paper); }
.btn--secondary:hover::before{ transform:scaleX(1); }

.btn:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:3px;
}

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:sticky;
  top:0;
  z-index:100;
  height:76px;
  background:color-mix(in srgb, var(--paper) 92%, transparent);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
  border-bottom:1px solid transparent;
  transition:border-color 420ms var(--ease);
}
.nav.is-scrolled{
  border-bottom-color:var(--line);
}
.nav__inner{
  height:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.nav__logo{ display:inline-flex; align-items:center; background:none; border:0; }
/* Full "Knowledge for Generations" lockup as a TRANSPARENT PNG (alpha background),
   so there is no black rectangle behind it in any scroll state or over any section.
   No background/border/shadow/blend, in default, scrolled, or hover. */
.nav__logo-mark{
  height:58px;
  width:auto;
  background:none;
  border:0;
  box-shadow:none;
  outline:none;
  mix-blend-mode:normal;
}

.nav__actions{
  display:flex;
  align-items:center;
  gap:28px;
}
.nav__link{
  position:relative;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:15px;
  text-decoration:none;
  color:color-mix(in srgb, var(--espresso) 80%, transparent);
  transition:color 280ms var(--ease);
}
.nav__link::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-4px;
  height:1px;
  background:var(--gold);
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform 280ms var(--ease);
}
.nav__link:hover{ color:var(--gold-text); }
.nav__link:hover::after{ transform:scaleX(1); }

/* Hamburger - hidden on desktop */
.nav__burger{
  display:none;
  width:44px;
  height:44px;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
  position:relative;
}
.nav__burger-bar{
  position:absolute;
  left:50%;
  width:18px;
  height:2px;
  background:var(--gold);
  transform:translateX(-50%);
  transition:transform 280ms var(--ease), opacity 280ms var(--ease);
}
.nav__burger-bar:nth-child(1){ top:18px; }
.nav__burger-bar:nth-child(2){ bottom:18px; }
.nav__burger.is-active .nav__burger-bar:nth-child(1){
  top:50%;
  transform:translate(-50%, -50%) rotate(45deg);
}
.nav__burger.is-active .nav__burger-bar:nth-child(2){
  bottom:auto;
  top:50%;
  transform:translate(-50%, -50%) rotate(-45deg);
}

/* ============================================================
   MOBILE MENU OVERLAY
   ============================================================ */
/* Dimmed, blurred backdrop — you can still see the page behind it. */
.mobile-menu{
  position:fixed;
  inset:0;
  z-index:200;
  background:rgba(10,10,11,0.55);
  -webkit-backdrop-filter:blur(4px);
          backdrop-filter:blur(4px);
  opacity:0;
  visibility:hidden;
  transition:opacity 320ms var(--ease), visibility 0s linear 320ms;
}
.mobile-menu.is-open{
  opacity:1;
  visibility:visible;
  transition:opacity 320ms var(--ease);
}
/* The drawer panel slides in from the right. */
.mobile-menu__inner{
  position:absolute;
  top:0;
  right:0;
  height:100%;
  width:min(86vw, 380px);
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  gap:0;
  padding:92px 30px 40px;
  background:var(--charcoal);
  border-left:1px solid var(--gold);
  box-shadow:-30px 0 70px rgba(0,0,0,0.55);
  transform:translateX(100%);
  transition:transform 380ms var(--ease);
  overflow-y:auto;
}
.mobile-menu.is-open .mobile-menu__inner{ transform:translateX(0); }
/* Close (X) button, injected by main.js, top-right of the panel. */
.mobile-menu__close{
  position:absolute;
  top:22px;
  right:24px;
  width:40px;
  height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:transparent;
  border:0;
  border-radius:4px;
  color:var(--gold);
  font-size:30px;
  line-height:1;
  cursor:pointer;
  transition:color 200ms var(--ease);
}
.mobile-menu__close:hover{ color:var(--gold-text); }
.mobile-menu__close:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }
.mobile-menu__link{
  font-family:"Fraunces", Georgia, serif;
  font-variation-settings:"opsz" 72;
  font-weight:500;
  font-size:21px;
  text-decoration:none;
  color:color-mix(in srgb, var(--espresso) 86%, transparent);
  padding:14px 2px;
  border-bottom:1px solid var(--line);
  transition:color 220ms var(--ease);
}
.mobile-menu__link:hover{ color:var(--gold); }
.mobile-menu__link.is-current,
.mobile-menu__link[aria-current="page"]{ color:var(--gold-text); }
.mobile-menu__link:focus{ outline:none; }
.mobile-menu__link:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; border-radius:2px; }
.mobile-menu__enroll{ margin-top:26px; width:100%; text-align:center; }
@media (prefers-reduced-motion:reduce){
  .mobile-menu{ transition:opacity 1ms, visibility 0s !important; }
  .mobile-menu__inner{ transition:none !important; }
}

/* ============================================================
   HERO - typographic poster, no product image
   ============================================================ */
.hero{
  position:relative;
  overflow:hidden;
  min-height:86vh;
  background:var(--paper);
  display:flex;
  align-items:flex-start;
}
.hero-building{
  position:absolute;
  right:-3%;
  bottom:-6%;
  width:min(78%, 1250px);
  height:auto;
  aspect-ratio:1400 / 720;
  opacity:0.22;
  -webkit-mask:linear-gradient(180deg, #000 0%, #000 38%, rgba(0,0,0,0.45) 70%, rgba(0,0,0,0.15) 100%);
          mask:linear-gradient(180deg, #000 0%, #000 38%, rgba(0,0,0,0.45) 70%, rgba(0,0,0,0.15) 100%);
  pointer-events:none;
  user-select:none;
  z-index:0;
  stroke:var(--gold);
}
/* Draw-in: hidden only while JS is present, then main.js draws + fades it in.
   No-JS shows it static at rest; reduced-motion forces it static too. */
.js .hero-building{ opacity:0; }
@media (prefers-reduced-motion:reduce){
  .hero-building{ opacity:0.22 !important; }
  .bld-stroke{ stroke-dasharray:none !important; stroke-dashoffset:0 !important; }
}
.hero-scrim{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:radial-gradient(ellipse 46% 52% at 30% 44%,
    var(--paper) 0%,
    rgba(10,10,11,0.90) 40%,
    rgba(10,10,11,0.40) 64%,
    rgba(10,10,11,0) 80%);
}
.hero__content{
  position:relative;
  z-index:2;
  max-width:900px;
  padding-top:140px;
}
.hero__eyebrow{
  margin:0 0 26px;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:500;
  font-size:clamp(15px, 1.5vw, 19px);
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--gold-text);
}
.hero__title{
  margin:0;
  max-width:18ch;
  font-family:"Fraunces", Georgia, serif;
  font-variation-settings:"opsz" 144;
  font-weight:600;
  font-size:clamp(2.8rem, 5.5vw, 4.8rem);
  line-height:1.05;
  letter-spacing:-0.02em;
  color:var(--espresso);
}
/* Glowing gold accent phrases inside the H1 ("Next Level", "Here"). */
.accent{
  color:var(--gold);
  text-shadow:0 0 24px rgba(201,168,76,0.45), 0 1px 0 rgba(26,15,0,0.18);
}
/* With JS the glow starts flat and blooms in once, right after the line appears. */
.js .accent{
  text-shadow:0 0 0 rgba(201,168,76,0), 0 1px 0 rgba(26,15,0,0.18);
}
.hero.is-loaded .accent{
  text-shadow:0 0 24px rgba(201,168,76,0.45), 0 1px 0 rgba(26,15,0,0.18);
  transition:text-shadow 700ms var(--ease) 250ms;
}
/* Staged hero load-in. Only active when JS is present (.js on <html>); if JS is
   off, none of this applies and the hero renders fully visible. */
.js .hero__eyebrow,
.js .hero__title,
.js .hero__lede,
.js .hero__actions,
.js .hero__cred{
  opacity:0;
  transform:translateY(18px);
  transition:opacity 650ms var(--ease), transform 650ms var(--ease);
}
.hero.is-loaded .hero__eyebrow{ opacity:1; transform:none; transition-delay:0ms; }
.hero.is-loaded .hero__title{ opacity:1; transform:none; transition-delay:90ms; }
.hero.is-loaded .hero__lede{ opacity:1; transform:none; transition-delay:180ms; }
.hero.is-loaded .hero__actions{ opacity:1; transform:none; transition-delay:270ms; }
.hero.is-loaded .hero__cred{ opacity:1; transform:none; transition-delay:360ms; }
.hero__lede{
  margin:32px 0 0;
  max-width:56ch;
  font-weight:300;
  font-size:20px;
  line-height:1.6;
  color:color-mix(in srgb, var(--espresso) 88%, transparent);
}
.hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  margin-top:40px;
}
.hero__cred{
  margin:32px 0 0;
  max-width:65ch;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:14px;
  line-height:1.7;
  color:color-mix(in srgb, var(--espresso) 65%, transparent);
}
.hero__cred .sep{
  display:inline-block;
  margin:0 12px;
  color:color-mix(in srgb, var(--gold) 80%, transparent);
}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{
  background:var(--navy);
  padding-block:72px;
  color:var(--cream);
}
.footer__inner{ text-align:center; }
.footer__lockup{
  width:280px;
  height:auto;
  margin:0 auto 28px;
}
.footer__contact{
  max-width:60ch;
  margin:0 auto;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:14px;
  line-height:1.8;
  color:var(--cream);
}
.footer__contact p{ margin:0; }
.footer__contact a{
  color:var(--cream);
  text-decoration:none;
  transition:color 280ms var(--ease);
}
.footer__contact a:hover{ color:var(--gold); }
.footer__rule{
  height:1px;
  border:0;
  margin-block:40px;
  background:var(--line);
}
.footer__fine{
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:12.5px;
  line-height:1.7;
  color:color-mix(in srgb, var(--cream) 55%, transparent);
}
.footer__fine p{ margin:0 0 6px; }
.footer__fine p:last-child{ margin-bottom:0; }

/* Intro/warp overlay removed: the site now loads directly to the hero. */

/* ============================================================
   RESPONSIVE - composed desktop-first, adapted down
   ============================================================ */

/* mobile nav: hide text links, show hamburger */
@media (max-width:900px){
  .nav__link{ display:none; }
  .nav__burger{ display:block; }
}

@media (max-width:768px){
  .container{ padding-inline:24px; }
  .hero{ min-height:84vh; }
  .hero__title{ font-size:clamp(2.2rem, 8vw, 3.2rem); }
  .hero-building{ left:auto; right:-45%; transform:none; bottom:-3%; width:235%; opacity:0.20; }
  .hero-scrim{
    background:linear-gradient(180deg,
      var(--paper) 0%,
      var(--paper) 48%,
      rgba(10,10,11,0) 100%);
  }
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    transition-duration:0.01ms !important;
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
  }
  /* never leave the staged hero hidden, and hold the accent glow static */
  .js .hero__eyebrow,
  .js .hero__title,
  .js .hero__lede,
  .js .hero__actions,
  .js .hero__cred{
    opacity:1 !important;
    transform:none !important;
  }
  .accent{ transition:none !important; }
}

/* ============================================================
   NAV ACTIVE STATE - used by subpages to mark the current link.
   Only matches when a link carries .is-current, so index is unaffected.
   ============================================================ */
.nav__link.is-current{ color:var(--gold-text); }
.nav__link.is-current::after{ transform:scaleX(1); }

/* ============================================================
   GENERIC REVEAL - opt-in via [data-reveal] on subpages.
   Content is visible by default; hidden only when JS is present, then
   revealed (staggered) by the IntersectionObserver in main.js.
   ============================================================ */
.js [data-reveal] > *{
  opacity:0;
  transform:translateY(18px);
  transition:opacity 650ms var(--ease), transform 650ms var(--ease);
}
[data-reveal].is-revealed > *{ opacity:1; transform:none; }
[data-reveal].is-revealed > *:nth-child(1){ transition-delay:0ms; }
[data-reveal].is-revealed > *:nth-child(2){ transition-delay:90ms; }
[data-reveal].is-revealed > *:nth-child(3){ transition-delay:180ms; }
[data-reveal].is-revealed > *:nth-child(4){ transition-delay:270ms; }
[data-reveal].is-revealed > *:nth-child(5){ transition-delay:360ms; }
@media (prefers-reduced-motion:reduce){
  .js [data-reveal] > *{ opacity:1 !important; transform:none !important; }
}

/* ============================================================
   PAGE: CURRICULUM (scoped under .page-curriculum)
   ============================================================ */
.page-curriculum .page-head{
  background:var(--paper);
  padding-top:120px;
  padding-bottom:24px;
}
.page-curriculum .page-head__kicker{
  margin:0 0 18px;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:500;
  font-size:13px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--gold-text);
}
.page-curriculum .page-head__title{
  margin:0;
  max-width:16ch;
  font-family:"Fraunces", Georgia, serif;
  font-variation-settings:"opsz" 144;
  font-weight:600;
  font-size:clamp(2.5rem, 5vw, 4rem);
  line-height:1.05;
  letter-spacing:-0.02em;
  color:var(--espresso);
}
.page-curriculum .page-head__sub{
  margin:24px 0 0;
  max-width:60ch;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:300;
  font-size:20px;
  line-height:1.6;
  color:color-mix(in srgb, var(--espresso) 88%, transparent);
}

/* modules - numbered vertical sequence, alternating number side */
.page-curriculum .modules{
  background:var(--paper);
  padding-block:32px 72px;
}
.page-curriculum .mod{
  display:grid;
  column-gap:clamp(24px, 5vw, 72px);
  align-items:center;
  padding-block:clamp(40px, 6vw, 56px);
}
.page-curriculum .mod + .mod{
  border-top:1px solid var(--line);
}
.page-curriculum .mod--odd{ grid-template-columns:minmax(150px, 0.7fr) minmax(0, 1fr); }
.page-curriculum .mod--even{ grid-template-columns:minmax(0, 1fr) minmax(150px, 0.7fr); }
.page-curriculum .mod--odd .mod__num{ grid-column:1; grid-row:1 / span 2; }
.page-curriculum .mod--odd .mod__head{ grid-column:2; grid-row:1; }
.page-curriculum .mod--odd .mod__points{ grid-column:2; grid-row:2; }
.page-curriculum .mod--even .mod__num{ grid-column:2; grid-row:1 / span 2; }
.page-curriculum .mod--even .mod__head{ grid-column:1; grid-row:1; }
.page-curriculum .mod--even .mod__points{ grid-column:1; grid-row:2; }
.page-curriculum .mod__num{
  font-family:"Fraunces", Georgia, serif;
  font-variation-settings:"opsz" 144;
  font-weight:600;
  font-size:clamp(4rem, 9vw, 8rem);
  line-height:0.9;
  text-align:center;
  align-self:center;
  color:color-mix(in srgb, var(--gold) 22%, transparent);
}
.page-curriculum .mod__label{
  margin:0 0 12px;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:500;
  font-size:12px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--gold-text);
}
.page-curriculum .mod__title{
  margin:0;
  font-family:"Fraunces", Georgia, serif;
  font-variation-settings:"opsz" 96;
  font-weight:600;
  font-size:clamp(1.6rem, 2.6vw, 2.4rem);
  line-height:1.1;
  letter-spacing:-0.01em;
  color:var(--espresso);
}
.page-curriculum .mod__intro{
  margin:16px 0 0;
  max-width:60ch;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:300;
  font-size:18px;
  line-height:1.6;
  color:color-mix(in srgb, var(--espresso) 88%, transparent);
}
.page-curriculum .mod__points{
  margin:20px 0 0;
  max-width:65ch;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:16px;
  line-height:1.7;
  color:color-mix(in srgb, var(--espresso) 80%, transparent);
}
.page-curriculum .mod__points .dot{
  margin:0 12px;
  color:color-mix(in srgb, var(--gold) 80%, transparent);
}

/* two bonuses - deliberately different layout, ecru band */
.page-curriculum .bonuses{
  background:var(--ecru);
  padding-block:clamp(56px, 8vw, 88px);
}
.page-curriculum .bonuses__inner{
  display:grid;
  grid-template-columns:0.8fr 1.2fr;
  gap:clamp(32px, 5vw, 64px);
  align-items:start;
}
.page-curriculum .bonuses__title{
  margin:0;
  max-width:14ch;
  font-family:"Fraunces", Georgia, serif;
  font-variation-settings:"opsz" 96;
  font-weight:600;
  font-size:clamp(1.8rem, 3vw, 2.6rem);
  line-height:1.1;
  color:var(--espresso);
}
.page-curriculum .bonuses__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(24px, 3vw, 40px);
}
.page-curriculum .bonus{
  background:var(--paper);
  border:1px solid color-mix(in srgb, var(--gold) 20%, transparent);
  border-radius:var(--radius);
  padding:clamp(24px, 3vw, 32px);
}
.page-curriculum .bonus__label{
  margin:0 0 10px;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:500;
  font-size:12px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--gold-text);
}
.page-curriculum .bonus__title{
  margin:0 0 10px;
  font-family:"Fraunces", Georgia, serif;
  font-weight:600;
  font-size:1.4rem;
  color:var(--espresso);
}
.page-curriculum .bonus__line{
  margin:0;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:16px;
  line-height:1.6;
  color:color-mix(in srgb, var(--espresso) 80%, transparent);
}

/* closing cta */
.page-curriculum .cta{
  background:var(--paper);
  padding-block:96px;
}
.page-curriculum .cta__inner{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.page-curriculum .cta__line{
  margin:0 auto;
  max-width:20ch;
  font-family:"Fraunces", Georgia, serif;
  font-variation-settings:"opsz" 96;
  font-weight:600;
  font-size:clamp(1.8rem, 3.2vw, 2.8rem);
  line-height:1.1;
  color:var(--espresso);
}
.page-curriculum .cta__actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:16px;
  margin-top:32px;
}

/* curriculum responsive */
@media (max-width:768px){
  .page-curriculum .page-head{ padding-top:96px; }
  .page-curriculum .mod,
  .page-curriculum .mod--odd,
  .page-curriculum .mod--even{
    grid-template-columns:1fr;
    row-gap:6px;
  }
  .page-curriculum .mod--odd .mod__num,
  .page-curriculum .mod--even .mod__num{
    grid-column:1;
    grid-row:auto;
    text-align:left;
    font-size:clamp(3rem, 16vw, 4.5rem);
    line-height:1;
  }
  .page-curriculum .mod--odd .mod__head,
  .page-curriculum .mod--even .mod__head{ grid-column:1; grid-row:auto; }
  .page-curriculum .mod--odd .mod__points,
  .page-curriculum .mod--even .mod__points{ grid-column:1; grid-row:auto; }
  .page-curriculum .bonuses__inner{ grid-template-columns:1fr; }
  .page-curriculum .bonuses__grid{ grid-template-columns:1fr; }
}

/* ============================================================
   PRICING / ENROLL (index.html only; matches the .pricing section)
   ============================================================ */
.pricing{
  background:var(--ecru);
  border-top:3px solid var(--gold);
  padding-block:112px 96px;
}
.pricing__kicker{
  margin:0 0 18px;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:500;
  font-size:13px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--gold-text);
}
.pricing__title{
  margin:0;
  max-width:18ch;
  font-family:"Fraunces", Georgia, serif;
  font-variation-settings:"opsz" 144;
  font-weight:600;
  font-size:clamp(2.2rem, 4vw, 3.2rem);
  line-height:1.05;
  letter-spacing:-0.02em;
  color:var(--espresso);
}
.pricing__sub{
  margin:20px 0 0;
  max-width:60ch;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:300;
  font-size:19px;
  line-height:1.6;
  color:color-mix(in srgb, var(--espresso) 88%, transparent);
}

/* what's included */
.pricing__included{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(32px, 5vw, 64px);
  align-items:center;
  margin-top:clamp(48px, 6vw, 72px);
}
.pricing__mockup img{ width:100%; height:auto; }
.pricing__includes-label{
  margin:0 0 18px;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:500;
  font-size:15px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--gold-text);
}
.incl{ list-style:none; margin:0; padding:0; }
.incl li{
  position:relative;
  padding-left:36px;
  margin-bottom:24px;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:22px;
  line-height:1.5;
  color:color-mix(in srgb, var(--espresso) 90%, transparent);
}
.incl li:last-child{ margin-bottom:0; }
.incl li::before{
  content:"";
  position:absolute;
  left:3px;
  top:0.32em;
  width:11px;
  height:18px;
  border-right:2.5px solid var(--gold);
  border-bottom:2.5px solid var(--gold);
  transform:rotate(45deg);
}

/* two ways to pay */
.pricing__plans{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(20px, 3vw, 32px);
  align-items:stretch;
  margin-top:clamp(48px, 6vw, 72px);
}
.plan{
  display:flex;
  flex-direction:column;
  border-radius:var(--radius);
  padding:clamp(28px, 3vw, 40px);
}
.plan--primary{
  background:var(--paper);
  border:1.5px solid var(--gold);
}
.plan--secondary{
  background:var(--paper);
  border:1.5px solid color-mix(in srgb, var(--gold) 45%, transparent);
}
.plan__ribbon{
  margin:0 0 18px;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:500;
  font-size:12px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--gold-text);
}
.plan__name{
  margin:0 0 8px;
  font-family:"Fraunces", Georgia, serif;
  font-weight:600;
  font-size:1.4rem;
  color:var(--espresso);
}
.plan__price{
  margin:0 0 8px;
  font-family:"Fraunces", Georgia, serif;
  font-weight:700;
  font-size:clamp(2.4rem, 4vw, 3.2rem);
  line-height:1;
  color:var(--espresso);
}
.plan__note{
  margin:0 0 24px;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:15px;
  line-height:1.5;
  color:color-mix(in srgb, var(--espresso) 75%, transparent);
}
.plan__btn{
  width:100%;
  margin-top:auto;
}

.pricing__disclaimer{
  margin:clamp(28px, 3vw, 40px) auto 0;
  max-width:60ch;
  text-align:center;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:13px;
  line-height:1.6;
  color:color-mix(in srgb, var(--espresso) 55%, transparent);
}

@media (max-width:900px){
  .pricing__included{ grid-template-columns:1fr; }
}
@media (max-width:768px){
  .pricing__plans{ grid-template-columns:1fr; }
  .incl li{ font-size:20px; }
}

/* ============================================================
   PAGE: ABOUT (scoped under .page-about)
   ============================================================ */
.page-about .about-hero{
  position:relative;
  overflow:hidden;
  min-height:70vh;
  background:var(--paper);
  display:flex;
  align-items:center;
  padding-top:120px;
}
.page-about .about-hero__watermark{
  position:absolute;
  height:150%;
  width:auto;
  right:-8%;
  bottom:-30%;
  opacity:0.06;
  pointer-events:none;
  z-index:0;
}
.page-about .about-hero__content{
  position:relative;
  z-index:1;
  max-width:900px;
}
.page-about .about-hero__kicker{
  margin:0 0 18px;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:500;
  font-size:13px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--gold-text);
}
.page-about .about-hero__title{
  margin:0;
  max-width:16ch;
  font-family:"Fraunces", Georgia, serif;
  font-variation-settings:"opsz" 144;
  font-weight:600;
  font-size:clamp(2.6rem, 5.5vw, 4.5rem);
  line-height:1.02;
  letter-spacing:-0.02em;
  color:var(--espresso);
}
.page-about .about-hero__sub{
  margin:28px 0 0;
  max-width:58ch;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:300;
  font-size:20px;
  line-height:1.6;
  color:color-mix(in srgb, var(--espresso) 88%, transparent);
}

/* credentials band - aligned figures, not cards */
.page-about .creds{
  background:var(--ecru);
  padding-block:64px;
}
.page-about .creds__row{
  display:flex;
  flex-wrap:wrap;
  align-items:stretch;
  justify-content:center;
  gap:0;
}
.page-about .stat{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:10px;
  padding-inline:clamp(20px, 2.6vw, 40px);
  padding-block:8px;
}
.page-about .stat + .stat{
  border-left:1px solid var(--line);
}
.page-about .stat__num{
  font-family:"Fraunces", Georgia, serif;
  font-variation-settings:"opsz" 96;
  font-weight:600;
  font-size:clamp(1.8rem, 2.4vw, 2.6rem);
  line-height:1;
  color:var(--espresso);
}
.page-about .stat__label{
  max-width:16ch;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:13px;
  line-height:1.35;
  color:color-mix(in srgb, var(--espresso) 70%, transparent);
}

/* her story - draft */
.page-about .story{
  background:var(--paper);
  padding-block:88px;
}
.page-about .story__inner{
  max-width:68ch;
}
.page-about .story__flag{
  margin:0 0 40px;
  padding:14px 18px;
  background:var(--ecru);
  border-left:3px solid var(--gold);
  border-radius:0 var(--radius) var(--radius) 0;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:500;
  font-size:13px;
  line-height:1.5;
  color:var(--espresso);
}
.page-about .story__title{
  margin:0 0 24px;
  font-family:"Fraunces", Georgia, serif;
  font-variation-settings:"opsz" 96;
  font-weight:600;
  font-size:clamp(1.8rem, 3vw, 2.6rem);
  line-height:1.1;
  letter-spacing:-0.01em;
  color:var(--espresso);
}
.page-about .story__body p{
  margin:0 0 22px;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:18px;
  line-height:1.7;
  color:color-mix(in srgb, var(--espresso) 90%, transparent);
}
.page-about .story__body p:last-child{ margin-bottom:0; }

/* what she stands on */
.page-about .stands{
  background:var(--ecru);
  padding-block:72px;
}
.page-about .stands__inner{
  display:grid;
  grid-template-columns:0.9fr 1.1fr;
  gap:clamp(32px, 5vw, 64px);
  align-items:start;
}
.page-about .stands__title{
  margin:0;
  max-width:14ch;
  font-family:"Fraunces", Georgia, serif;
  font-variation-settings:"opsz" 96;
  font-weight:600;
  font-size:clamp(1.6rem, 2.6vw, 2.2rem);
  line-height:1.1;
  color:var(--espresso);
}
.page-about .stands__body{
  margin:0;
  max-width:65ch;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:16px;
  line-height:1.7;
  color:color-mix(in srgb, var(--espresso) 85%, transparent);
}

/* closing cta */
.page-about .cta{
  background:var(--paper);
  padding-block:96px;
}
.page-about .cta__inner{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.page-about .cta__line{
  margin:0 auto;
  max-width:22ch;
  font-family:"Fraunces", Georgia, serif;
  font-variation-settings:"opsz" 96;
  font-weight:600;
  font-size:clamp(1.8rem, 3.2vw, 2.8rem);
  line-height:1.1;
  color:var(--espresso);
}
.page-about .cta__actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:16px;
  margin-top:32px;
}

/* about responsive */
@media (max-width:768px){
  .page-about .about-hero{ padding-top:96px; min-height:64vh; }
  .page-about .about-hero__watermark{ right:-30%; opacity:0.05; }
  .page-about .stat + .stat{ border-left:0; }
  .page-about .stat{ flex-basis:44%; }
  .page-about .stands__inner{ grid-template-columns:1fr; }
}

/* ============================================================
   WIDE NAV (index.html: many links in one row, collapse < 1100px)
   ============================================================ */
/* Balanced full-width bar: logo left, the link cluster centered, gold CTA far right.
   The two auto left-margins split the free space evenly, so the links sit in the
   middle instead of clustering against the button. */
.nav--wide .nav__actions{
  flex:1 1 auto;                       /* fill the width between the logo and the right edge */
  gap:clamp(20px, 1.9vw, 36px);        /* even, comfortable spacing between links */
}
.nav--wide .nav__link{
  font-size:14px;
  letter-spacing:0.015em;
  white-space:nowrap;
}
.nav--wide .nav__link:first-child{ margin-left:auto; }   /* centers the link cluster */
.nav--wide .nav__enroll{
  margin-left:auto;                    /* pushes the CTA to the far right, clear of the links */
  padding:11px 24px;
  font-size:13px;
  letter-spacing:0.02em;
  align-self:center;
  white-space:nowrap;
}
/* 9 links + the button do not fit at 1100px, so collapse a bit earlier to
   avoid overflow; below this the mobile overlay menu takes over. */
@media (max-width:1200px){
  .nav--wide .nav__link{ display:none; }
  .nav--wide .nav__burger{ display:block; }
}

/* ============================================================
   HOME (B2B) SECTIONS - reusable helpers
   ============================================================ */
.section{ background:var(--paper); padding-block:clamp(64px, 8vw, 104px); }
.section--alt{ background:var(--ecru); }
.kicker{
  margin:0 0 18px;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:500;
  font-size:13px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--gold-text);
}
.section-title{
  margin:0;
  max-width:22ch;
  font-family:"Fraunces", Georgia, serif;
  font-variation-settings:"opsz" 144;
  font-weight:600;
  font-size:clamp(1.9rem, 3.4vw, 2.9rem);
  line-height:1.12;
  letter-spacing:-0.01em;
  color:var(--espresso);
}
.section-lead{
  margin:24px 0 0;
  max-width:65ch;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:300;
  font-size:19px;
  line-height:1.6;
  color:color-mix(in srgb, var(--espresso) 85%, transparent);
}
.prose{
  margin:24px 0 0;
  max-width:68ch;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:18px;
  line-height:1.7;
  color:color-mix(in srgb, var(--espresso) 88%, transparent);
}

/* who we serve - typographic list */
.serve__list{
  margin:34px 0 0;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:clamp(1rem, 1.5vw, 1.22rem);
  line-height:2.1;
  color:var(--espresso);
}
.serve__list .dot{ margin:0 14px; color:var(--gold); }

/* services - editorial two-column rows */
.svc-list{ margin-top:44px; border-top:1px solid var(--line); }
.svc{
  display:grid;
  grid-template-columns:minmax(0, 0.42fr) minmax(0, 0.58fr);
  gap:clamp(12px, 3vw, 48px);
  align-items:baseline;
  padding-block:clamp(20px, 2.4vw, 28px);
  padding-inline:clamp(8px, 1.5vw, 16px);
  border-bottom:1px solid var(--line);
  text-decoration:none;
  color:inherit;
  transition:background 280ms var(--ease);
}
.svc:hover{ background:color-mix(in srgb, var(--gold) 7%, transparent); }
.svc:focus-visible{ outline:2px solid var(--gold); outline-offset:-2px; }
.svc__name{
  font-family:"Fraunces", Georgia, serif;
  font-weight:600;
  font-size:1.3rem;
  line-height:1.2;
  color:var(--espresso);
  transition:color 280ms var(--ease);
}
.svc:hover .svc__name{ color:var(--gold-text); }
.svc__desc{
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:16px;
  line-height:1.6;
  color:color-mix(in srgb, var(--espresso) 80%, transparent);
}

/* what you'll learn - gold-tick multi-column list */
.learn__list{
  list-style:none;
  margin:38px 0 0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:16px 44px;
}
.learn__list li{
  position:relative;
  padding-left:28px;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:16px;
  line-height:1.5;
  color:color-mix(in srgb, var(--espresso) 88%, transparent);
}
.learn__list li::before{
  content:"";
  position:absolute;
  left:2px;
  top:0.3em;
  width:8px;
  height:13px;
  border-right:2px solid var(--gold);
  border-bottom:2px solid var(--gold);
  transform:rotate(45deg);
}

/* testimonials - luxury rotating pull-quotes */
.testi .container{ text-align:center; }
.testi__stage{
  margin:30px auto 0;
  max-width:62ch;
}
.testi__stage:not(.is-rotating) .tq + .tq{ margin-top:44px; }
.tq{ margin:0; }
.tq__quote{
  margin:0;
  font-family:"Fraunces", Georgia, serif;
  font-style:italic;
  font-weight:400;
  font-size:clamp(1.5rem, 3vw, 2.15rem);
  line-height:1.36;
  color:var(--espresso);
  text-wrap:balance;
}
.tq__cite{
  display:block;
  margin-top:22px;
  font-style:normal;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:500;
  font-size:14px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--gold-text);
}
.testi__stage.is-rotating{ position:relative; }
.testi__stage.is-rotating .tq{
  position:absolute;
  inset:0;
  opacity:0;
  pointer-events:none;
  transition:opacity 700ms var(--ease);
}
.testi__stage.is-rotating .tq.is-active{ opacity:1; pointer-events:auto; }
.testi__controls{ display:flex; justify-content:center; gap:16px; margin-top:34px; }
.tq-btn{
  width:44px;
  height:44px;
  padding:0;
  background:transparent;
  border:1px solid var(--line);
  border-radius:var(--radius);
  color:var(--gold-text);
  font-size:18px;
  cursor:pointer;
  transition:border-color 280ms var(--ease), color 280ms var(--ease);
}
.tq-btn:hover{ border-color:var(--gold); color:var(--gold); }
.tq-btn:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }

/* closing cta - gold-hairline framed band */
.home-cta__inner{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:clamp(40px, 6vw, 76px);
}
.home-cta__title{ max-width:24ch; }
.home-cta__actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:16px;
  margin-top:30px;
}

/* ============================================================
   HOME FOOTER (deepest black, brand + contact + newsletter)
   ============================================================ */
.footer--home{
  background:var(--paper);
  padding-block:64px 40px;
  color:var(--espresso);
  text-align:left;
}
.footer--home .footer__top{
  display:grid;
  grid-template-columns:1.4fr 1fr 1.2fr;
  gap:clamp(32px, 5vw, 64px);
  align-items:start;
}
.footer__mark{ height:52px; width:auto; margin:0 0 14px; }
/* Footer lockup logo (replaces the old tree mark + wordmark + tagline text).
   Transparent PNG, so no background box, no blend needed. */
.footer__logo{
  display:block;
  width:min(260px, 72%);
  height:auto;
  margin:0;
  mix-blend-mode:normal;
}
.footer__wordmark{
  margin:0;
  font-family:"Fraunces", Georgia, serif;
  font-weight:600;
  font-size:1.15rem;
  letter-spacing:0.01em;
  color:var(--espresso);
}
.footer__tagline{
  margin:6px 0 0;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:12px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--gold-text);
}
.footer__heading{
  margin:0 0 14px;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:500;
  font-size:12px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--gold-text);
}
.footer__col p{
  margin:0 0 8px;
  font-family:"Outfit", Georgia, sans-serif;
  font-size:15px;
  line-height:1.6;
  color:color-mix(in srgb, var(--espresso) 85%, transparent);
}
.footer__col a{ color:var(--espresso); text-decoration:none; transition:color 280ms var(--ease); }
.footer__col a:hover{ color:var(--gold); }
.footer__social{
  list-style:none;
  margin:16px 0 0;
  padding:0;
  display:flex;
  gap:20px;
}
.footer__social a{
  display:inline-flex;
  align-items:center;
  color:var(--gold);
  transition:color 220ms var(--ease);
}
.footer__social a:hover{ color:var(--gold-text); }
.footer__social a:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; border-radius:2px; }
.footer__social svg{ width:20px; height:20px; display:block; }
.footer__form-label{
  display:block;
  margin-bottom:8px;
  font-family:"Outfit", Georgia, sans-serif;
  font-size:12px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--warm-gray);
}
.footer__form-row{ display:flex; gap:10px; flex-wrap:wrap; }
.footer__input{
  flex:1 1 180px;
  min-width:0;
  padding:12px 14px;
  background:var(--charcoal);
  border:1px solid var(--line);
  border-radius:var(--radius);
  color:var(--espresso);
  font-family:"Outfit", Georgia, sans-serif;
  font-size:15px;
}
.footer__input::placeholder{ color:var(--warm-gray); }
.footer__input:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }
.footer__subscribe{ padding:12px 22px; }
.footer--home .footer__fine{
  display:flex;
  flex-wrap:wrap;
  gap:6px 26px;
  align-items:center;
  font-family:"Outfit", Georgia, sans-serif;
  font-size:12.5px;
  line-height:1.7;
  color:color-mix(in srgb, var(--espresso) 55%, transparent);
}
.footer--home .footer__fine p{ margin:0; }
.footer--home .footer__fine a{ color:var(--gold-text); text-decoration:none; }
.footer--home .footer__fine a:hover{ color:var(--gold); }

/* home responsive */
@media (max-width:900px){
  .footer--home .footer__top{ grid-template-columns:1fr; }
  .svc{ grid-template-columns:1fr; gap:6px; }
  .learn__list{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width:768px){
  .learn__list{ grid-template-columns:1fr; }
}

/* ============================================================
   CORPORATE TRAINING - two formats + process steps
   ============================================================ */
.prose--muted{ color:var(--warm-gray); font-size:15px; }

.formats{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(20px, 3vw, 32px);
  margin-top:44px;
  align-items:stretch;
}
.format{
  background:var(--charcoal);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:clamp(28px, 3vw, 40px);
}
.format__name{
  margin:0 0 12px;
  font-family:"Fraunces", Georgia, serif;
  font-weight:600;
  font-size:1.4rem;
  color:var(--espresso);
}
.format__desc{
  margin:0;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:16px;
  line-height:1.65;
  color:color-mix(in srgb, var(--espresso) 82%, transparent);
}
.formats__note{
  margin:26px auto 0;
  max-width:60ch;
  text-align:center;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:14px;
  color:var(--warm-gray);
}

/* process steps: connected numbered sequence, hairline connectors, not boxes */
.steps{
  list-style:none;
  margin:44px 0 0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(3, 1fr);
}
.step{
  padding:0 clamp(18px, 2.6vw, 36px);
}
.step:first-child{ padding-left:0; }
.step + .step{ border-left:1px solid var(--line); }
.step__num{
  display:block;
  margin-bottom:16px;
  font-family:"Fraunces", Georgia, serif;
  font-variation-settings:"opsz" 144;
  font-weight:600;
  font-size:clamp(2.4rem, 4vw, 3.4rem);
  line-height:1;
  color:var(--gold);
}
.step__name{
  margin:0 0 10px;
  font-family:"Fraunces", Georgia, serif;
  font-weight:600;
  font-size:1.2rem;
  line-height:1.2;
  color:var(--espresso);
}
.step__desc{
  margin:0;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:15px;
  line-height:1.6;
  color:color-mix(in srgb, var(--espresso) 82%, transparent);
}

@media (max-width:768px){
  .formats{ grid-template-columns:1fr; }
  .steps{ grid-template-columns:1fr; gap:0; }
  .step{ padding:24px 0; }
  .step:first-child{ padding-top:0; }
  .step + .step{ border-left:0; border-top:1px solid var(--line); }
}

/* ============================================================
   CONTACT PAGE - compact hero, choice bar, forms
   ============================================================ */
/* smooth in-page scrolling (disabled for reduced motion) */
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }

.hero--compact{ min-height:50vh; }
.hero--compact .hero__content{ padding-top:120px; padding-bottom:24px; }
.contact-direct{
  margin:24px 0 0;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:16px;
  color:var(--espresso);
}
.contact-direct a{ color:var(--espresso); text-decoration:none; transition:color 280ms var(--ease); }
.contact-direct a:hover{ color:var(--gold); }
.contact-direct .dot{ margin:0 12px; color:var(--gold); }

/* choice bar - hairline-separated jump links */
.choicebar-sec{ padding-block:0; background:var(--paper); }
.choicebar{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  border-block:1px solid var(--line);
}
.choice{
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:24px clamp(12px, 2vw, 26px);
  text-decoration:none;
  color:var(--espresso);
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:500;
  font-size:clamp(14px, 1.4vw, 16px);
  transition:color 280ms var(--ease), background 280ms var(--ease);
}
.choice + .choice{ border-left:1px solid var(--line); }
.choice:hover{ color:var(--gold); background:color-mix(in srgb, var(--gold) 6%, transparent); }
.choice:focus-visible{ outline:2px solid var(--gold); outline-offset:-2px; }

/* the form sections clear the sticky nav when jumped to */
.page-contact section[id]{ scroll-margin-top:88px; }

/* forms */
.form{ max-width:660px; margin-top:36px; }
.form__hp{ display:none; }
.form__row{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.form__field{ margin-bottom:20px; }
.form__label{
  display:block;
  margin-bottom:8px;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:500;
  font-size:12px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--warm-gray);
}
.req{ color:var(--gold-text); }
.form__input,
.form__select,
.form__textarea{
  width:100%;
  padding:12px 14px;
  background:var(--charcoal);
  border:1px solid var(--line);
  border-radius:var(--radius);
  color:var(--espresso);
  font-family:"Outfit", Georgia, sans-serif;
  font-size:15px;
  line-height:1.4;
}
.form__textarea{ min-height:140px; resize:vertical; }
.form__input::placeholder,
.form__textarea::placeholder{ color:var(--warm-gray); }
.form__input:focus-visible,
.form__select:focus-visible,
.form__textarea:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:2px;
  border-color:var(--gold);
}
.form__select{ appearance:none; -webkit-appearance:none; cursor:pointer; }
.form__error{
  margin:0 0 16px;
  font-family:"Outfit", Georgia, sans-serif;
  font-size:14px;
  line-height:1.5;
  color:var(--gold-text);
}
.form__actions{ margin-top:4px; }

/* success confirmation that replaces the form */
.form__success{
  max-width:660px;
  margin-top:36px;
  border:1px solid var(--gold);
  border-radius:var(--radius);
  padding:clamp(28px, 4vw, 44px);
  background:color-mix(in srgb, var(--gold) 7%, transparent);
}
.form__success-title{
  margin:0 0 10px;
  font-family:"Fraunces", Georgia, serif;
  font-weight:600;
  font-size:clamp(1.5rem, 3vw, 2rem);
  color:var(--gold-text);
}
.form__success-text{
  margin:0;
  font-family:"Outfit", Georgia, sans-serif;
  font-size:16px;
  line-height:1.6;
  color:color-mix(in srgb, var(--espresso) 85%, transparent);
}

@media (max-width:640px){
  .choicebar{ grid-template-columns:1fr; }
  .choice + .choice{ border-left:0; border-top:1px solid var(--line); }
  .form__row{ grid-template-columns:1fr; gap:0; }
}

/* ============================================================
   SPEAKING - static topic rows, speaker split, text link
   ============================================================ */
/* topic rows reuse .svc styling but are not links */
.topics .svc{ cursor:default; }
.topics .svc:hover{ background:transparent; }
.topics .svc:hover .svc__name{ color:var(--espresso); }

.split{
  display:grid;
  grid-template-columns:0.8fr 1.2fr;
  gap:clamp(32px, 5vw, 64px);
  align-items:start;
}
.split__body .prose{ margin-top:0; }
.split__link{ margin:22px 0 0; }

.textlink{
  position:relative;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:500;
  color:var(--gold-text);
  text-decoration:none;
}
.textlink::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-3px;
  height:1px;
  background:var(--gold);
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform 280ms var(--ease);
}
.textlink:hover{ color:var(--gold); }
.textlink:hover::after{ transform:scaleX(1); }
.textlink:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }

@media (max-width:768px){
  .split{ grid-template-columns:1fr; }
}

/* non-clickable editorial rows (reuse .svc visuals without link affordances) */
.svc-list--static .svc{ cursor:default; }
.svc-list--static .svc:hover{ background:transparent; }
.svc-list--static .svc:hover .svc__name{ color:var(--espresso); }

/* ============================================================
   INTERIOR HERO - shared identity for non-home pages.
   No building illustration: a subtle depth gradient, a gold-rule "corner
   bracket" motif, and a very faint gold tree mark bleeding off the top-right.
   ============================================================ */
.hero--interior{
  min-height:62vh;
  background:linear-gradient(180deg, var(--ecru) 0%, var(--paper) 55%);
}
.hero--interior.hero--compact{ min-height:48vh; }
.hero--interior .hero-mark{
  position:absolute;
  top:-10%;
  right:-6%;
  width:min(44%, 600px);
  height:auto;
  opacity:0.05;
  pointer-events:none;
  user-select:none;
  z-index:0;
}
.hero--interior .hero__content{ position:relative; padding-bottom:clamp(48px, 7vh, 96px); }
/* the signature: a hairline across the top of the content with a short vertical
   drop at its left, forming an editorial corner bracket just above the kicker */
.hero--interior .hero-bracket{
  position:relative;
  height:64px;
  margin-bottom:14px;
}
.hero--interior .hero-bracket::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:1px;
  background:var(--gold);
}
.hero--interior .hero-bracket::after{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:1px;
  height:64px;
  background:var(--gold);
}

/* ============================================================
   ABOUT - executive bio with a photo-free portrait slot
   ============================================================ */
.page-about .creds__row{ margin-top:40px; }

.about-bio{
  display:grid;
  grid-template-columns:minmax(0, 0.44fr) minmax(0, 0.56fr);
  gap:clamp(32px, 5vw, 56px);
  align-items:start;
  margin-top:38px;
}
.about-bio__text .prose{ margin-top:0; }
.about-bio__text .prose + .prose{ margin-top:20px; }

/* portrait slot: an intentional framed placeholder; a real photo drops in as
   .portrait__img and the mark/name below are removed. Never a blank box. */
.portrait{
  position:relative;
  aspect-ratio:4 / 5;
  background:var(--charcoal);
  border:1px solid var(--line);
  border-radius:var(--radius);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:18px;
  overflow:hidden;
}
.portrait__mark{ width:44%; height:auto; opacity:0.18; }
.portrait__name{
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:500;
  font-size:13px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--gold-text);
}
.portrait__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }

@media (max-width:768px){
  .about-bio{ grid-template-columns:1fr; }
  .portrait{ max-width:340px; }
}

/* ============================================================
   ABOUT - two-column portrait hero + framed executive portrait
   ============================================================ */
.hero--about .hero-about__grid{
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:clamp(40px, 6vw, 80px);
  align-items:center;
  padding-top:140px;
  padding-bottom:48px;
}
.hero--about .hero__content{ padding-top:0; max-width:none; }

/* framed portrait: gold hairline + charcoal matte; controlled size, never upscaled */
.portrait-frame{
  margin:0 auto;
  max-width:380px;
  padding:10px;
  background:var(--charcoal);
  border:1px solid var(--gold);
  border-radius:var(--radius);
}
.portrait-frame__img{
  display:block;
  width:100%;
  height:auto;
  border-radius:2px;
}

/* the short-version band has four stats, some wordy: size the numeral to fit */
.page-about .stat__num{ font-size:clamp(1.45rem, 2vw, 2.1rem); }

@media (max-width:900px){
  .hero--about .hero-about__grid{
    grid-template-columns:1fr;
    padding-top:120px;
  }
  .hero--about .hero-about__portrait{ order:2; }
  .portrait-frame{ max-width:320px; }
}

/* ============================================================
   TESTIMONIALS - large editorial pull-quotes + honest trust strip
   ============================================================ */
.quotes .container{ max-width:1080px; }
.quote{
  margin:0;
  padding-block:clamp(40px, 6vw, 68px);
}
.quote + .quote{ border-top:1px solid var(--line); }
.quote__text{
  margin:0;
  max-width:34ch;
  font-family:"Fraunces", Georgia, serif;
  font-style:italic;
  font-weight:400;
  font-size:clamp(1.5rem, 2.6vw, 2.2rem);
  line-height:1.4;
  letter-spacing:-0.005em;
  color:var(--espresso);
  text-wrap:balance;
}
.quote__cite{
  display:block;
  margin-top:22px;
  font-style:normal;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:500;
  font-size:15px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--gold-text);
}

/* honest trust strip: known facts only, hairline-separated */
.trust-row{
  display:flex;
  flex-wrap:wrap;
  align-items:stretch;
  justify-content:center;
  gap:0;
}
.trust-stat{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:10px;
  padding-inline:clamp(20px, 3vw, 44px);
  padding-block:8px;
}
.trust-stat + .trust-stat{ border-left:1px solid var(--line); }
.trust-stat__num{
  font-family:"Fraunces", Georgia, serif;
  font-variation-settings:"opsz" 96;
  font-weight:600;
  font-size:clamp(1.6rem, 2.2vw, 2.3rem);
  line-height:1;
  color:var(--espresso);
}
.trust-stat__label{
  max-width:16ch;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:13px;
  line-height:1.35;
  color:color-mix(in srgb, var(--espresso) 70%, transparent);
}
@media (max-width:640px){
  .trust-stat{ flex-basis:100%; }
  .trust-stat + .trust-stat{ border-left:0; border-top:1px solid var(--line); padding-top:22px; margin-top:6px; }
}

/* ============================================================
   LEGAL / UTILITY PAGES (privacy, terms) - simple readable single column
   ============================================================ */
.legal-head{ padding-top:120px; }
.legal__wrap{ max-width:74ch; }
.legal__h1{
  margin:16px 0 0;
  font-family:"Fraunces", Georgia, serif;
  font-variation-settings:"opsz" 144;
  font-weight:600;
  font-size:clamp(2.2rem, 4vw, 3.2rem);
  line-height:1.1;
  letter-spacing:-0.01em;
  color:var(--espresso);
}
.legal__updated{
  margin:14px 0 0;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:14px;
  color:var(--warm-gray);
}
.legal__note{
  margin:28px 0 0;
  padding:14px 18px;
  background:var(--ecru);
  border-left:3px solid var(--gold);
  border-radius:0 var(--radius) var(--radius) 0;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:14px;
  line-height:1.6;
  color:var(--warm-gray);
}
.legal__body{ margin-top:44px; }
.legal__body h2{
  margin:40px 0 12px;
  font-family:"Fraunces", Georgia, serif;
  font-weight:600;
  font-size:1.4rem;
  line-height:1.2;
  color:var(--espresso);
}
.legal__body h2:first-child{ margin-top:0; }
.legal__body p,
.legal__body li{
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:17px;
  line-height:1.7;
  color:color-mix(in srgb, var(--espresso) 90%, transparent);
}
.legal__body p{ margin:0 0 16px; }
.legal__body ul{ margin:0 0 16px; padding-left:22px; }
.legal__body li{ margin-bottom:8px; }
.legal__body a{ color:var(--gold-text); text-decoration:none; }
.legal__body a:hover{ color:var(--gold); text-decoration:underline; }

/* ============================================================
   HOME HERO (index only) — bold, type-only. A large centered headline,
   subhead, and two buttons on a clean near-black background. No building,
   no watermark, no illustration. Scoped to .hero--home.
   ============================================================ */
.hero--home{
  min-height:calc(100vh - 72px);   /* fills the viewport under the 72px sticky nav */
  background:var(--paper);
  flex-direction:column;
  align-items:center;
  justify-content:center;          /* vertically centered */
  text-align:center;
}
.hero--home .hero__content{
  max-width:var(--container);
  padding-block:clamp(80px, 12vh, 160px);   /* generous negative space, top and bottom */
  padding-inline:0;
  text-align:center;
}
.hero--home .hero__eyebrow{ margin:0 0 20px; }
.hero--home .hero__title{
  max-width:16ch;
  margin-inline:auto;
  font-size:clamp(3rem, 8vw, 7rem);   /* dominates the screen; scales down on mobile */
  line-height:1.02;
  letter-spacing:-0.02em;
  text-wrap:balance;
}
.hero--home .hero__lede{
  max-width:60ch;
  margin:28px auto 0;
  font-weight:300;
  font-size:clamp(17px, 1.5vw, 20px);
  line-height:1.6;
  color:color-mix(in srgb, var(--espresso) 82%, transparent);
}
.hero--home .hero__actions{
  justify-content:center;
  gap:16px;
  margin-top:40px;
}
@media (max-width:600px){
  .hero--home .hero__actions{ flex-direction:column; align-items:stretch; }
}

/* ============================================================
   DESIGN PASS — asymmetric section system + interior-hero variants
   Black-primary, gold accents, Fraunces + Outfit. Editorial, NO cards.
   Fills the wide canvas with intentional asymmetry; raises hierarchy on
   the previously-flat text lists; differentiates the six interior heroes.
   ============================================================ */

/* ---------- Asymmetric section layout ----------
   Splits a section into a narrow label column (kicker + title) and a wider
   body column, so wide screens read as a composed spread, not a lone left
   column with dead black on the right. */
.layout{
  display:grid;
  grid-template-columns:minmax(0, 0.40fr) minmax(0, 0.60fr);
  gap:clamp(28px, 5vw, 76px);
  align-items:start;
}
.layout--wide-main{ grid-template-columns:minmax(0, 0.34fr) minmax(0, 0.66fr); }
.layout--even{ grid-template-columns:1fr 1fr; }
.layout--main-first .layout__main{ order:-1; }   /* body left, label right */
.layout__aside{ position:relative; }
.layout__aside .kicker{ margin-bottom:16px; }
.layout__aside .section-title{ max-width:15ch; }
.layout__note{
  margin:22px 0 0; max-width:36ch;
  font-family:"Outfit", Georgia, sans-serif; font-weight:300;
  font-size:15px; line-height:1.65; color:var(--warm-gray);
}
.layout__main > :first-child{ margin-top:0; }
.layout__main .prose{ max-width:64ch; }
/* body-side lists sit flush to the top of their column */
.layout__main > .svc-list,
.layout__main > .learn__list,
.layout__main > .roster,
.layout__main > .steps{ margin-top:0; }
@media (max-width:900px){
  .layout,
  .layout--wide-main,
  .layout--even{ grid-template-columns:1fr; gap:26px; }
  .layout--main-first .layout__main{ order:0; }
  .layout__aside .section-title{ max-width:22ch; }
}

/* ---------- Audience roster ----------
   Replaces the inline dot-separated serve list. Each audience is its own
   hairline-topped row with a gold rule marker, so a long name like
   "Independent Mortgage Banks" can never wrap into a misleading "Banks".
   Editorial list, not cards. */
.roster{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:1fr 1fr;
  column-gap:clamp(24px, 4vw, 60px);
}
.roster--single{ grid-template-columns:1fr; }
.roster--tri{ grid-template-columns:repeat(3, 1fr); }
.roster li{
  display:flex; align-items:baseline; gap:14px;
  padding:15px 0;
  border-top:1px solid var(--line);
  font-family:"Fraunces", Georgia, serif; font-weight:600;
  font-size:1.06rem; line-height:1.25; color:var(--espresso);
}
.roster li::before{
  content:""; flex:0 0 16px; height:1px; background:var(--gold);
  position:relative; top:0.62em;
}
.roster--lg li{ font-size:clamp(1.15rem, 1.7vw, 1.5rem); padding:20px 0; }
@media (max-width:900px){
  .roster,
  .roster--tri{ grid-template-columns:1fr; }
}

/* ---------- Pulled quote (real testimonials only) ---------- */
.pull{ margin:0; padding-left:28px; border-left:2px solid var(--gold); }
.pull__q{
  margin:0; font-family:"Fraunces", Georgia, serif; font-style:italic;
  font-weight:400; font-size:clamp(1.35rem, 2.4vw, 2rem);
  line-height:1.34; color:var(--espresso);
}
.pull__c{
  display:block; margin-top:20px; font-style:normal;
  font-family:"Outfit", Georgia, sans-serif; font-weight:500;
  font-size:13px; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold-text);
}

/* ---------- Facts / credential list (known facts only) ---------- */
.facts{ list-style:none; margin:0; padding:0; }
.facts li{ padding:20px 0; border-top:1px solid var(--line); }
.facts li:first-child{ border-top:0; padding-top:0; }
.fact__n{
  display:block; font-family:"Fraunces", Georgia, serif;
  font-variation-settings:"opsz" 144; font-weight:600;
  font-size:clamp(2rem, 3.4vw, 2.9rem); line-height:1; color:var(--gold);
}
.fact__l{
  display:block; margin-top:10px; font-family:"Outfit", Georgia, sans-serif;
  font-weight:400; font-size:15px; line-height:1.5; color:var(--warm-gray);
}

/* ---------- Large faint background word bleeding off an edge ----------
   Fills the opposite side of an asymmetric section without a card. */
.bleedword{
  position:absolute; z-index:0; pointer-events:none; user-select:none;
  font-family:"Fraunces", Georgia, serif; font-weight:600;
  letter-spacing:-0.02em; line-height:0.78; white-space:nowrap;
  color:var(--espresso); opacity:0.05;
}
.section{ position:relative; overflow:hidden; }
.section > .container{ position:relative; z-index:1; }

/* ============================================================
   Interior-hero composition variants (Part A) — one distinct
   treatment per page, still one brand family.
   ============================================================ */
.hero--interior .hero__content{ z-index:1; }

/* openers (vary the eyebrow lead) */
.hero-rule{ display:block; width:58px; height:2px; background:var(--gold); margin:0 0 24px; }
.hero-tick{ display:block; width:2px; height:36px; background:var(--gold); margin:0 0 20px; }

/* CENTERED hero (Corporate Training, Testimonials) */
.hero--interior.hero--center{ text-align:center; }
.hero--interior.hero--center .hero__content{ max-width:820px; margin-inline:auto; }
.hero--interior.hero--center .hero__title{ margin-inline:auto; }
.hero--interior.hero--center .hero__lede{ margin-inline:auto; }
.hero--interior.hero--center .hero__actions{ justify-content:center; }
.hero--interior.hero--center .hero-rule{ margin-inline:auto; }

/* LEFT-SPLIT hero (Live Training, Consulting) — text in a column, accent fills the rest */
.hero--interior.hero--split .hero__content{ max-width:min(62%, 740px); }
@media (max-width:900px){ .hero--interior.hero--split .hero__content{ max-width:none; } }

/* Accent: large faint Fraunces word bleeding off the right (Consulting) */
.hero-word{
  position:absolute; right:-2.5%; top:52%; transform:translateY(-50%);
  z-index:0; pointer-events:none; user-select:none;
  font-family:"Fraunces", Georgia, serif; font-weight:600; letter-spacing:-0.02em;
  font-size:clamp(6rem, 17vw, 15rem); line-height:0.8; white-space:nowrap;
  color:var(--espresso); opacity:0.06;
}

/* Accent: vertical gold-hairline "signal" system (Live Training) */
.hero-bars{
  position:absolute; right:6%; bottom:14%; z-index:0; pointer-events:none;
  display:flex; align-items:flex-end; gap:16px; height:min(48%, 340px);
}
.hero-bars span{ width:1px; background:linear-gradient(to top, var(--gold), rgba(201,168,76,0)); }
.hero-bars span:nth-child(1){ height:42%; opacity:0.35; }
.hero-bars span:nth-child(2){ height:76%; opacity:0.6; }
.hero-bars span:nth-child(3){ height:58%; opacity:0.45; }
.hero-bars span:nth-child(4){ height:100%; opacity:0.8; }
.hero-bars span:nth-child(5){ height:66%; opacity:0.5; }
.hero-bars span:nth-child(6){ height:34%; opacity:0.3; }
@media (max-width:900px){ .hero-bars{ display:none; } }

/* Accent: oversized faint quotation glyph (Testimonials) */
.hero-glyph{
  position:absolute; left:50%; top:8%; transform:translateX(-50%);
  z-index:0; pointer-events:none; user-select:none;
  font-family:"Fraunces", Georgia, serif; font-weight:600;
  font-size:clamp(12rem, 30vw, 30rem); line-height:0.6;
  color:var(--espresso); opacity:0.05;
}
/* Testimonials hero: taller compact hero + more top padding + the glyph dropped down,
   so the oversized quotation mark clears the nav and isn't clipped at the top. */
.page-testimonials .hero--compact{ min-height:60vh; }
.page-testimonials .hero__content{ padding-top:clamp(150px, 20vh, 200px); }
.page-testimonials .hero-glyph{ top:20%; }

/* Accent: feature the tree mark (Speaking) — larger/brighter than the ghost mark */
.hero-mark--feature{ opacity:0.08 !important; width:min(48%, 640px) !important; top:-4% !important; right:-4% !important; }

/* Corporate Training credential strip under a centered hero (known facts) */
.hero-cred{
  list-style:none; margin:44px 0 0; padding:28px 0 0;
  border-top:1px solid var(--line);
  display:flex; flex-wrap:wrap; justify-content:center;
  gap:clamp(22px, 5vw, 60px);
}
.hero-cred li{ text-align:center; }
.hero-cred__n{
  display:block; font-family:"Fraunces", Georgia, serif; font-weight:600;
  font-size:clamp(1.5rem, 2.4vw, 2.1rem); line-height:1; color:var(--gold);
}
.hero-cred__l{
  display:block; margin-top:10px; font-family:"Outfit", Georgia, sans-serif;
  font-weight:400; font-size:13px; letter-spacing:0.06em; color:var(--warm-gray);
}

/* Contact hero: text left, a small real-contact aside on the right (compact) */
.hero--contact .container{ position:relative; }
.hero-aside{
  margin:34px 0 0; padding-top:24px; border-top:1px solid var(--line);
  max-width:44ch;
}
.hero-aside__label{
  margin:0 0 10px; font-family:"Outfit", Georgia, sans-serif; font-weight:500;
  font-size:12px; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold-text);
}
.hero-aside__row{
  margin:0; font-family:"Outfit", Georgia, sans-serif; font-weight:400;
  font-size:17px; line-height:1.9; color:var(--espresso);
}
.hero-aside__row a{ color:var(--espresso); text-decoration:none; transition:color 280ms var(--ease); }
.hero-aside__row a:hover{ color:var(--gold); }

/* On wide screens give split heroes a taller stage so the accent has room */
@media (min-width:901px){
  .hero--interior.hero--split{ min-height:66vh; }
}

/* ---------- design-pass refinements ---------- */
/* a list that IS the layout main column sits flush with the aside top */
.layout__main.svc-list,
.layout__main.learn__list,
.layout__main.roster{ margin-top:0; }

/* skill list: two comfortable columns inside an asymmetric main column */
.layout .learn__list,
.learn__list--two{ grid-template-columns:1fr 1fr; }
@media (max-width:600px){
  .learn__list,
  .learn__list--two,
  .layout .learn__list{ grid-template-columns:1fr; }
}

/* formats: editorial columns led by a gold rule, NOT bordered cards */
.formats{ gap:clamp(30px, 5vw, 64px); }
.format{
  background:transparent;
  border:0;
  border-top:2px solid var(--gold);
  border-radius:0;
  padding:26px 0 0;
}

/* keep the faint hero accents from crowding small screens */
@media (max-width:900px){
  .hero-word{ display:none; }
  .hero-glyph{ font-size:clamp(9rem, 26vw, 14rem); }
  .hero--interior .hero-mark--feature{ opacity:0.05 !important; width:min(60%, 380px) !important; }
}

/* ============================================================
   SITEWIDE CONTACT MODAL — one reusable dialog injected by main.js.
   Black-primary panel, gold hairline, reuses .form__* field styles.
   ============================================================ */
.modal{
  position:fixed;
  inset:0;
  z-index:2000;
  visibility:hidden;
  pointer-events:none;
}
.modal.is-open{ visibility:visible; pointer-events:auto; }

.modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(10,10,11,0.72);
  -webkit-backdrop-filter:blur(4px);
          backdrop-filter:blur(4px);
  opacity:0;
  transition:opacity 150ms var(--ease);
}
.modal.is-open .modal__backdrop{ opacity:1; }

.modal__panel{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%, -50%) scale(0.96);
  opacity:0;
  width:min(520px, calc(100vw - 40px));
  max-height:calc(100vh - 48px);
  overflow-y:auto;
  background:var(--charcoal);
  border:1px solid var(--gold);
  border-radius:var(--radius);
  padding:clamp(26px, 4vw, 42px);
  box-shadow:0 30px 90px rgba(0,0,0,0.55);
  transition:opacity 150ms var(--ease), transform 150ms var(--ease);
}
.modal.is-open .modal__panel{ opacity:1; transform:translate(-50%, -50%) scale(1); }

.modal__close{
  position:absolute;
  top:12px;
  right:12px;
  width:40px;
  height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:transparent;
  border:0;
  border-radius:4px;
  color:var(--warm-gray);
  font-size:26px;
  line-height:1;
  cursor:pointer;
  transition:color 200ms var(--ease);
}
.modal__close:hover{ color:var(--gold); }
.modal__close:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }

.modal__mark{ width:38px; height:auto; opacity:0.9; display:block; margin-bottom:16px; }
.modal__rule{ display:block; width:44px; height:2px; background:var(--gold); margin:0 0 16px; }
.modal__eyebrow{
  margin:0 0 8px;
  font-family:"Outfit", Georgia, sans-serif; font-weight:500;
  font-size:12px; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold-text);
}
.modal__title{
  margin:0;
  font-family:"Fraunces", Georgia, serif; font-weight:600;
  font-size:clamp(1.6rem, 3vw, 2.1rem); line-height:1.1; color:var(--espresso);
}
.modal__sub{
  margin:12px 0 0; max-width:44ch;
  font-family:"Outfit", Georgia, sans-serif; font-weight:300;
  font-size:15px; line-height:1.6; color:var(--warm-gray);
}
.modal__form{ margin-top:26px; }
.modal__form .form__field{ margin-bottom:16px; }
.modal__form .form__textarea{ min-height:96px; }
.modal__submit{ width:100%; margin-top:6px; }
.modal__success .form__success-title{
  margin:0; font-family:"Fraunces", Georgia, serif; font-weight:600;
  font-size:1.5rem; color:var(--espresso);
}
.modal__success .form__success-text{
  margin:12px 0 0; font-family:"Outfit", Georgia, sans-serif; font-weight:300;
  font-size:15px; line-height:1.6; color:var(--warm-gray);
}
.modal__success .btn{ margin-top:22px; }

@media (prefers-reduced-motion:reduce){
  .modal__backdrop,
  .modal__panel{ transition:none !important; }
  .modal__panel{ transform:translate(-50%, -50%); }
}

/* ============================================================
   HOMEPAGE TRIM + SPACING (index only: .page-home / .serve-lite)
   ============================================================ */
/* condensed "Who We Serve" — one tight centered line, items never fragment */
.serve-lite__inner{ text-align:center; }
.serve-lite .kicker{ margin-bottom:20px; }
.serve-line{
  display:flex;
  flex-wrap:wrap;                 /* items wrap onto centered lines instead of overflowing */
  justify-content:center;
  align-items:baseline;
  row-gap:10px;
  max-width:1040px;
  margin:0 auto;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:clamp(0.95rem, 1.15vw, 1.12rem);
  line-height:1.5;
  color:var(--espresso);
}
.serve-line span{ white-space:nowrap; }   /* keep each name intact (e.g. "Independent Mortgage Banks") */
/* gold dot separators via ::after so they always trail their item and never orphan */
.serve-line span:not(:last-child)::after{
  content:"·";
  color:var(--gold);
  margin:0 clamp(16px, 1.8vw, 28px);
}

/* more generous section rhythm + CTA breathing room, homepage only */
.page-home .section{ padding-block:clamp(84px, 10vw, 150px); }
.page-home .serve-lite{ padding-block:clamp(52px, 6vw, 88px); }   /* the condensed line stays tighter */
.page-home .hero--home .hero__actions{ margin-top:40px; }
.page-home .home-cta__inner{ padding-block:clamp(8px, 2vw, 24px); }
.page-home .home-cta__actions{ margin-top:42px; }

/* ============================================================
   POLISH PASS
   ============================================================ */
/* Corporate hero: content left + credentials as a right-side balancing block */
.hero--figs .hero-figs__grid{
  display:grid;
  grid-template-columns:minmax(0, 1.4fr) minmax(0, 0.6fr);
  gap:clamp(32px, 5vw, 72px);
  align-items:center;
}
.hero-cred--stack{
  margin:0;
  padding:0 0 0 clamp(24px, 3vw, 48px);
  border-top:0;
  border-left:1px solid var(--line);
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:clamp(20px, 2.4vw, 30px);
}
.hero-cred--stack li{ text-align:left; }
@media (max-width:900px){
  .hero--figs .hero-figs__grid{ grid-template-columns:1fr; gap:30px; }
  .hero-cred--stack{
    border-left:0;
    border-top:1px solid var(--line);
    padding:28px 0 0;
    flex-direction:row;
    flex-wrap:wrap;
    gap:22px 40px;
  }
}

/* FIX 4: clean testimonial accent — a short gold hairline above each quote (no tree),
   Fraunces italic quote, gold attribution. Applies to the testimonials page and the
   homepage rotator. */
.quote__text::before,
.tq__quote::before{
  content:"";
  display:block;
  width:44px;
  height:2px;
  background:var(--gold);
  margin:0 auto 24px;
}
/* testimonials page: center the quotes so they are not a lonely left column */
.quotes .quote{ text-align:center; }
.quotes .quote__text{ margin-inline:auto; max-width:46ch; }

/* contact page: center the form sections so they are not lonely left columns
   (fields stay left-aligned inside the centered form block) */
.page-contact .form-sec .container{ text-align:center; }
.page-contact .form-sec .kicker,
.page-contact .form-sec .section-title,
.page-contact .form-sec .section-lead{ margin-inline:auto; }
.page-contact .form-sec .form{ margin-inline:auto; text-align:left; }

/* footer contact CTA (replaces the old newsletter form) */
.footer__cta-text{ margin:0 0 16px; max-width:34ch; }
.footer__cta{ display:inline-flex; }

/* ============================================================
   TESTIMONIALS — featured native video + supporting pull-quotes
   ============================================================ */
.testi-head .container{ text-align:center; }
.testi-head__kicker{
  margin:0 0 16px;
  font-family:"Outfit", Georgia, sans-serif; font-weight:500;
  font-size:13px; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold-text);
}
.testi-head__title{
  margin:0 auto; max-width:20ch;
  font-family:"Fraunces", Georgia, serif; font-variation-settings:"opsz" 144; font-weight:600;
  font-size:clamp(2.4rem, 4.5vw, 3.8rem); line-height:1.08; letter-spacing:-0.01em; color:var(--espresso);
}
.testi-head__sub{
  margin:20px auto 0; max-width:56ch;
  font-family:"Outfit", Georgia, sans-serif; font-weight:300;
  font-size:clamp(16px, 1.4vw, 19px); line-height:1.6;
  color:color-mix(in srgb, var(--espresso) 85%, transparent);
}
/* pull the video up tight under the header */
.vid-section{ padding-top:clamp(20px, 3vw, 40px); }

/* the video frame: 16/9, gold hairline, soft gold glow, on near-black */
.video-frame{
  position:relative;
  max-width:880px;
  margin:0 auto;
  aspect-ratio:16 / 9;
  border:1px solid var(--gold);
  border-radius:4px;
  overflow:hidden;
  background:#000;
  box-shadow:0 0 60px rgba(201,168,76,0.20), 0 26px 70px rgba(0,0,0,0.55);
}
.video-frame video{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  background:#000;
}
/* our own gold play button — the only play affordance (no third-party chrome) */
.video-play{
  position:absolute;
  left:50%; top:50%;
  transform:translate(-50%, -50%);
  width:84px; height:84px;
  display:flex; align-items:center; justify-content:center;
  border:0; border-radius:50%;
  background:var(--gold);
  cursor:pointer;
  box-shadow:0 0 0 10px rgba(201,168,76,0.16), 0 12px 34px rgba(0,0,0,0.45);
  transition:transform 220ms var(--ease), filter 220ms var(--ease), opacity 260ms var(--ease);
}
.video-play svg{ width:30px; height:30px; margin-left:5px; fill:var(--paper); }
.video-play:hover{ transform:translate(-50%, -50%) scale(1.06); filter:brightness(1.06); }
.video-play:focus-visible{ outline:2px solid var(--espresso); outline-offset:4px; }
.video-play.is-hidden{ opacity:0; pointer-events:none; }
@media (max-width:600px){
  .video-play{ width:64px; height:64px; }
  .video-play svg{ width:24px; height:24px; }
}
@media (prefers-reduced-motion:reduce){
  .video-play,
  .video-play:hover{ transform:translate(-50%, -50%); transition:opacity 120ms linear; }
}

/* supporting pull-quotes (two-up on desktop, stacked on mobile), no tree */
.quote-pair{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(32px, 5vw, 76px);
  max-width:1000px;
  margin:0 auto;
}
.pquote{ margin:0; }
.pquote__mark{
  display:block;
  font-family:"Fraunces", Georgia, serif; font-weight:600;
  font-size:4rem; line-height:0.5;
  color:var(--gold); opacity:0.9;
  margin-bottom:14px;
}
.pquote__text{
  margin:0;
  font-family:"Fraunces", Georgia, serif; font-style:italic; font-weight:400;
  font-size:clamp(1.3rem, 2vw, 1.7rem); line-height:1.42; color:var(--espresso);
}
.pquote__cite{
  display:block; margin-top:18px;
  font-style:normal; font-family:"Outfit", Georgia, sans-serif; font-weight:500;
  font-size:14px; letter-spacing:0.06em; text-transform:uppercase; color:var(--gold-text);
}
@media (max-width:760px){
  .quote-pair{ grid-template-columns:1fr; gap:48px; }
}

/* ============================================================
   THE ACCELERATOR (accelerator.html) — nav highlight, hero detail
   line, editorial point list, two-day agenda timeline. No cards.
   ============================================================ */
/* "The Accelerator" — highlighted as a boxed pill in the nav */
.nav__link--accent{
  color:var(--gold-text);
  font-weight:500;
  padding:8px 16px;
  border:1px solid color-mix(in srgb, var(--gold) 55%, transparent);
  border-radius:999px;
  background:color-mix(in srgb, var(--gold) 8%, transparent);
  transition:background 280ms var(--ease), border-color 280ms var(--ease), color 280ms var(--ease);
}
.nav__link--accent::after{ display:none; }
.nav__link--accent:hover{
  color:var(--paper);
  background:var(--gold);
  border-color:var(--gold);
}
/* Boxed pill in the mobile drawer. Its own border replaces the row divider and
   vertical margin keeps it clear of the lines above and below (no bleed). */
.mobile-menu__link--accent{
  color:var(--gold-text);
  font-weight:500;
  align-self:flex-start;
  margin:10px 0;
  padding:11px 22px;
  border:1px solid color-mix(in srgb, var(--gold) 55%, transparent);
  border-radius:999px;
  background:color-mix(in srgb, var(--gold) 8%, transparent);
}

/* hero detail line: date / time / Zoom */
.accel-detail{
  margin:24px auto 0;
  max-width:66ch;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:500;
  font-size:clamp(13px, 1.25vw, 15px);
  letter-spacing:0.02em;
  line-height:1.9;
  color:var(--gold-text);
}
.accel-detail__dot{ margin:0 12px; color:var(--gold); }

/* editorial point list (who it's for / how to show up) */
.point-list{
  list-style:none;
  margin:0;
  padding:0;
  border-top:1px solid var(--line);
}
.point-list li{
  position:relative;
  margin:0;
  padding:22px 0 22px 36px;
  border-bottom:1px solid var(--line);
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:300;
  font-size:clamp(1.05rem, 1.5vw, 1.3rem);
  line-height:1.5;
  color:color-mix(in srgb, var(--espresso) 90%, transparent);
}
.point-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:calc(22px + 0.72em);
  width:22px;
  height:2px;
  background:var(--gold);
}

/* two-day agenda: distinct blocks, gold-hairline rows, not cards */
.agenda{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(36px, 5vw, 80px);
  margin-top:48px;
}
.agenda-day__label{
  margin:0 0 8px;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:500;
  font-size:12px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--gold-text);
}
.agenda-day__title{
  margin:0;
  font-family:"Fraunces", Georgia, serif;
  font-weight:600;
  font-size:clamp(1.3rem, 2vw, 1.7rem);
  line-height:1.2;
  color:var(--espresso);
}
.agenda-list{ list-style:none; margin:20px 0 0; padding:0; }
.agenda-row{
  display:grid;
  grid-template-columns:64px 1fr;
  gap:18px;
  align-items:baseline;
  padding:14px 0;
  border-top:1px solid var(--line);
}
.agenda-row:last-child{ border-bottom:1px solid var(--line); }
.agenda-row__time{
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:600;
  font-size:13px;
  letter-spacing:0.02em;
  color:var(--gold);
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.agenda-row__item{
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:15px;
  line-height:1.5;
  color:color-mix(in srgb, var(--espresso) 88%, transparent);
}
.agenda-row--break .agenda-row__item{ color:var(--warm-gray); font-style:italic; }
.agenda-row--break .agenda-row__time{ color:var(--warm-gray); }

/* closing CTA: the conversion moment — a focused gold band with one big,
   directional, pulsing button */
.accel-final{
  text-align:center;
  border-top:1px solid var(--gold);
  background:radial-gradient(120% 120% at 50% 0%, color-mix(in srgb, var(--gold) 9%, var(--paper)) 0%, var(--paper) 62%);
  padding-block:clamp(76px, 10vw, 132px);
}
.accel-final__inner{ max-width:760px; margin-inline:auto; }
.accel-final__kicker{
  margin:0 0 16px;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:600;
  font-size:12px;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--gold-text);
}
.accel-final__title{
  margin:0 auto;
  max-width:16ch;
  font-family:"Fraunces", Georgia, serif;
  font-variation-settings:"opsz" 144;
  font-weight:600;
  font-size:clamp(2.5rem, 5.5vw, 4.2rem);
  line-height:1.03;
  letter-spacing:-0.015em;
  color:var(--espresso);
}
.accel-final__sub{
  margin:20px auto 0;
  max-width:54ch;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:300;
  font-size:clamp(16px, 1.4vw, 19px);
  line-height:1.6;
  color:color-mix(in srgb, var(--espresso) 85%, transparent);
}
/* the one CTA on the accelerator page: big, gold, glowing, directional */
.btn--reserve{
  gap:12px;
  padding:21px 46px;
  font-size:17px;
  letter-spacing:0.01em;
  animation:accel-pulse 2.6s var(--ease) infinite;
}
.reserve-arrow{ width:20px; height:20px; flex:0 0 auto; transition:transform 240ms var(--ease); }
.btn--reserve:hover .reserve-arrow{ transform:translateX(5px); }
.accel-final__btn{ margin-top:38px; }
.accel-final__note{
  margin:20px 0 0;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:500;
  font-size:13px;
  letter-spacing:0.04em;
  color:var(--warm-gray);
}
.accel-final__note::first-line{ color:var(--warm-gray); }
@keyframes accel-pulse{
  0%, 100%{ box-shadow:0 0 0 0 rgba(201,168,76,0.0); }
  50%{ box-shadow:0 0 0 12px rgba(201,168,76,0.10); }
}
@media (prefers-reduced-motion:reduce){
  .btn--reserve{ animation:none; }
  .btn--reserve:hover .reserve-arrow{ transform:none; }
}

@media (max-width:820px){
  .agenda{ grid-template-columns:1fr; gap:44px; }
}

/* Accelerator "Who It's For": vertical section — message on top, then
   distinct numbered blocks stacked full-width (not a side-by-side layout). */
.who__head{ max-width:30ch; margin:0 auto clamp(40px, 5vw, 68px); text-align:center; }
.who__title{ max-width:24ch; margin-inline:auto; }
.who-list{ list-style:none; margin:0 auto; max-width:780px; padding:0; border-top:1px solid var(--line); }
.who-item{
  text-align:center;
  padding:clamp(32px, 4.5vw, 56px) 0;
  border-bottom:1px solid var(--line);
}
.who-item__num{
  display:block;
  margin-bottom:16px;
  font-family:"Fraunces", Georgia, serif;
  font-variation-settings:"opsz" 144;
  font-weight:600;
  font-size:clamp(2.2rem, 5vw, 3.6rem);
  line-height:1;
  color:var(--gold);
  font-variant-numeric:tabular-nums;
}
.who-item__text{
  margin:0 auto;
  max-width:34ch;
  font-family:"Fraunces", Georgia, serif;
  font-weight:400;
  font-size:clamp(1.25rem, 2.3vw, 1.95rem);
  line-height:1.3;
  letter-spacing:-0.005em;
  color:var(--espresso);
  text-wrap:balance;
}

/* "What You'll Gain": lead-in label above the skills checklist + the
   "Every program includes" deliverables block */
.gain-lead{
  margin:0 0 22px;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:500;
  font-size:13px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--gold-text);
}
.includes{
  margin-top:clamp(38px, 4vw, 56px);
  padding-top:clamp(28px, 3vw, 38px);
  border-top:1px solid var(--line);
}
.includes__label{
  margin:0 0 20px;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:500;
  font-size:13px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--gold-text);
}
.includes__list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:12px 44px;
}
.includes__list li{
  position:relative;
  padding-left:26px;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:16px;
  line-height:1.5;
  color:color-mix(in srgb, var(--espresso) 88%, transparent);
}
.includes__list li::before{
  content:"";
  position:absolute;
  left:0;
  top:0.58em;
  width:14px;
  height:2px;
  background:var(--gold);
}
@media (max-width:640px){
  .includes__list{ grid-template-columns:1fr; }
}

/* Homepage featured Accelerator band — gold-bordered, high-emphasis */
.accel-feature{ padding-block:clamp(48px, 6vw, 84px); }
.accel-feature__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:clamp(28px, 5vw, 72px);
  padding:clamp(34px, 4vw, 54px);
  border:1px solid color-mix(in srgb, var(--gold) 40%, transparent);
  border-radius:20px;
  background:
    radial-gradient(120% 160% at 100% 0%, color-mix(in srgb, var(--gold) 12%, transparent), transparent 60%),
    color-mix(in srgb, var(--gold) 4%, transparent);
}
.accel-feature__kicker{
  margin:0 0 14px;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:500;
  font-size:13px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--gold-text);
}
.accel-feature__title{
  margin:0;
  font-family:"Fraunces", Georgia, serif;
  font-weight:600;
  font-size:clamp(30px, 4.4vw, 46px);
  line-height:1.04;
  color:var(--espresso);
}
.accel-feature__sub{
  margin:16px 0 0;
  max-width:52ch;
  font-family:"Outfit", Georgia, sans-serif;
  font-size:16px;
  line-height:1.6;
  color:color-mix(in srgb, var(--espresso) 82%, transparent);
}
.accel-feature__detail{
  margin:20px 0 0;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  font-family:"Outfit", Georgia, sans-serif;
  font-size:14px;
  letter-spacing:0.04em;
  color:var(--gold-text);
}
.accel-feature__dot{ color:color-mix(in srgb, var(--gold) 60%, transparent); }
.accel-feature__actions{
  flex-shrink:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:16px;
}
.accel-feature__link{
  font-family:"Outfit", Georgia, sans-serif;
  font-size:14px;
  letter-spacing:0.04em;
  color:color-mix(in srgb, var(--espresso) 70%, transparent);
  text-decoration:none;
  border-bottom:1px solid color-mix(in srgb, var(--gold) 45%, transparent);
  padding-bottom:2px;
  transition:color 260ms var(--ease), border-color 260ms var(--ease);
}
.accel-feature__link:hover{ color:var(--gold-text); border-color:var(--gold); }
@media (max-width:820px){
  .accel-feature__inner{ flex-direction:column; align-items:flex-start; text-align:left; }
  .accel-feature__actions{ align-items:flex-start; width:100%; }
}

/* Featured single quote — accelerator graduate, centered lead treatment */
.feature-quote-section{ padding-block:clamp(40px, 5vw, 64px); }
.feature-quote{
  margin:0 auto;
  max-width:900px;
  text-align:center;
}
.feature-quote__mark{
  display:block;
  font-family:"Fraunces", Georgia, serif; font-weight:600;
  font-size:5rem; line-height:0.5;
  color:var(--gold); opacity:0.9;
  margin-bottom:24px;
}
.feature-quote__text{
  margin:0;
  font-family:"Fraunces", Georgia, serif; font-style:italic; font-weight:400;
  font-size:clamp(1.5rem, 2.8vw, 2.15rem); line-height:1.4;
  color:var(--espresso);
  text-wrap:balance;
}
.feature-quote__cite{
  display:block; margin-top:26px;
  font-style:normal; font-family:"Outfit", Georgia, sans-serif; font-weight:500;
  font-size:14px; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold-text);
}

/* ==========================================================
   TRAINING FORMAT TABS — segmented toggle + swappable panels
   ========================================================== */
.train-toggle{
  display:inline-flex;
  gap:4px;
  margin-top:38px;
  padding:5px;
  border:1px solid color-mix(in srgb, var(--gold) 32%, transparent);
  border-radius:999px;
  background:color-mix(in srgb, var(--gold) 6%, transparent);
}
.train-toggle__btn{
  appearance:none;
  -webkit-appearance:none;
  border:0;
  cursor:pointer;
  padding:12px 28px;
  border-radius:999px;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:500;
  font-size:15px;
  letter-spacing:0.01em;
  color:color-mix(in srgb, var(--espresso) 72%, transparent);
  background:transparent;
  transition:color 260ms var(--ease), background 260ms var(--ease);
}
.train-toggle__btn:hover{ color:var(--gold-text); }
.train-toggle__btn.is-active{
  color:var(--paper);
  background:var(--gold);
}
.train-toggle__btn.is-active:hover{ color:var(--paper); }

.train-panel[hidden]{ display:none; }
@media (prefers-reduced-motion: no-preference){
  .train-panel--in{ animation:train-fade 460ms var(--ease) both; }
}
@keyframes train-fade{
  from{ opacity:0; transform:translateY(10px); }
  to{ opacity:1; transform:none; }
}
@media (max-width:520px){
  .train-toggle{ display:flex; width:100%; }
  .train-toggle__btn{ flex:1; padding:12px 14px; font-size:14px; }
}

/* ==========================================================
   CONTACT FORM PICKER — pick one inquiry, its form drops down
   ========================================================== */
.choicebar-sec{ padding-block:clamp(40px, 5vw, 62px); }
.form-picker__lead{
  text-align:center;
  margin:0 0 26px;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:500;
  font-size:13px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--gold-text);
}
.form-picker{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:16px;
  max-width:1000px;
  margin:0 auto;
}
.form-picker__btn{
  position:relative;
  appearance:none; -webkit-appearance:none;
  cursor:pointer;
  text-align:left;
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:22px 24px;
  border:1px solid color-mix(in srgb, var(--espresso) 16%, transparent);
  border-radius:16px;
  background:transparent;
  transition:border-color 260ms var(--ease), background 260ms var(--ease);
}
.form-picker__btn:hover{
  border-color:color-mix(in srgb, var(--gold) 55%, transparent);
  background:color-mix(in srgb, var(--gold) 5%, transparent);
}
.form-picker__btn.is-active{
  border-color:var(--gold);
  background:color-mix(in srgb, var(--gold) 11%, transparent);
  box-shadow:inset 0 0 0 1px var(--gold);
}
/* gold pointer under the active card, aimed at the form below */
.form-picker__btn.is-active::after{
  content:"";
  position:absolute;
  left:50%; bottom:-11px;
  transform:translateX(-50%);
  border-left:10px solid transparent;
  border-right:10px solid transparent;
  border-top:11px solid var(--gold);
}
.form-picker__title{
  font-family:"Fraunces", Georgia, serif;
  font-weight:600;
  font-size:19px;
  line-height:1.2;
  color:var(--espresso);
}
.form-picker__btn.is-active .form-picker__title{ color:var(--gold-text); }
.form-picker__desc{
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:400;
  font-size:13px;
  line-height:1.45;
  color:color-mix(in srgb, var(--espresso) 62%, transparent);
}
.form-picker__btn:focus{ outline:none; }
.form-picker__btn:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }

.form-sec[hidden]{ display:none; }
@media (prefers-reduced-motion: no-preference){
  .form-sec--in{ animation:train-fade 440ms var(--ease) both; }
}
@media (max-width:760px){
  .form-picker{ grid-template-columns:1fr; gap:12px; }
  .form-picker__btn.is-active::after{ display:none; }
}

/* ==========================================================
   TESTIMONIAL CARD CAROUSEL — gold-hairline cards on charcoal.
   No JS or reduced motion: cards render as a static readable grid (fallback).
   JS turns it into a sliding carousel (1 card mobile, up to 3 desktop) with
   gold arrows + dots, auto-advance, pause on hover/focus, and keyboard support.
   ========================================================== */
.tcarousel{ max-width:1120px; margin:0 auto; }
.tcarousel__viewport{ overflow:hidden; }

/* Fallback (no JS / reduced motion): a static responsive grid of all cards. */
.tcarousel__track{
  list-style:none; margin:0; padding:0;
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
  gap:22px;
}

.tcard{
  display:flex; flex-direction:column;
  background:var(--charcoal);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:clamp(26px, 3vw, 36px);
  text-align:left;
}
.tcard__mark{
  display:block;
  font-family:"Fraunces", Georgia, serif; font-weight:600;
  font-size:3rem; line-height:0.5; height:0.5em;
  color:var(--gold); opacity:0.85;
  margin-bottom:22px;
}
.tcard__quote{
  margin:0;
  font-family:"Fraunces", Georgia, serif; font-style:italic; font-weight:400;
  font-size:clamp(1.05rem, 1.5vw, 1.2rem); line-height:1.55;
  color:var(--espresso);
}
.tcard__cite{
  display:block; margin-top:20px;
  font-style:normal;
  font-family:"Outfit", Georgia, sans-serif;
  font-weight:500; font-size:13px; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--gold-text);
}

/* Live carousel (JS + motion allowed): a sliding flex track. */
.tcarousel.is-live .tcarousel__track{
  display:flex; flex-wrap:nowrap;
  gap:22px;
  transition:transform 620ms var(--ease);
  will-change:transform;
}
.tcarousel.is-live .tcard{
  flex:0 0 auto;   /* width is set inline by JS per cards-per-view */
}
/* reduced motion: still auto-advances, but swaps instantly (no sliding glide) */
.tcarousel.is-reduced .tcarousel__track{ transition:none; }

.tcarousel__nav{
  display:flex; align-items:center; justify-content:center;
  gap:22px; margin-top:40px;
}
.tcarousel__arrow{
  appearance:none; -webkit-appearance:none; cursor:pointer;
  width:44px; height:44px; border-radius:50%;
  border:1px solid color-mix(in srgb, var(--gold) 45%, transparent);
  background:transparent; color:var(--gold-text);
  display:inline-flex; align-items:center; justify-content:center;
  transition:background 260ms var(--ease), border-color 260ms var(--ease), color 260ms var(--ease);
}
.tcarousel__arrow:hover{
  background:color-mix(in srgb, var(--gold) 12%, transparent);
  border-color:var(--gold); color:var(--gold);
}
.tcarousel__arrow svg{ width:17px; height:17px; display:block; }
.tcarousel__arrow:focus{ outline:none; }
.tcarousel__arrow:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }
.tcarousel__dots{ display:flex; align-items:center; gap:10px; }
.tcarousel__dot{
  appearance:none; -webkit-appearance:none; cursor:pointer;
  width:9px; height:9px; padding:0; border-radius:50%;
  border:1px solid color-mix(in srgb, var(--gold) 50%, transparent);
  background:transparent;
  transition:background 240ms var(--ease), border-color 240ms var(--ease);
}
.tcarousel__dot.is-active{ background:var(--gold); border-color:var(--gold); }
.tcarousel__dot:focus{ outline:none; }
.tcarousel__dot:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }

/* ==========================================================
   FRAMED PHOTO — gold hairline + charcoal matte + inner edge-darkening so
   bright, light-background photos of Tanya blend into the near-black page
   instead of punching a white block. Used on consulting + speaking pages.
   ========================================================== */
.photo-frame{
  position:relative;
  margin:0;
  padding:10px;
  background:var(--charcoal);
  border:1px solid var(--gold);
  border-radius:var(--radius);
}
.photo-frame__img{
  display:block;
  width:100%;
  height:auto;
  border-radius:2px;
}
/* vignette + inner shadow darken the photo's edges into the page */
.photo-frame::after{
  content:"";
  position:absolute;
  inset:10px;
  border-radius:2px;
  pointer-events:none;
  background:radial-gradient(120% 120% at 50% 42%, rgba(10,10,11,0) 50%, rgba(10,10,11,0.5) 100%);
  box-shadow:inset 0 0 46px 12px rgba(10,10,11,0.5);
}
/* editorial portrait: controlled width, centered when it stacks */
.photo-frame--portrait{ max-width:460px; margin-inline:auto; }
