  :root {
    /* --- Ground & ink (warm-biased neutrals, never flat grey) --- */
    --paper:      #F3EFE8;   /* page ground, warm cream */
    --paper-2:    #FBF9F5;   /* raised cards / alt */
    --paper-3:    #ECE6DB;   /* subtle inset */
    --ink:        #2A2A28;   /* body text */
    --ink-soft:   #5E5C55;   /* muted text, warm grey */
    --ink-faint:  #8B877D;   /* captions */
    --line:       #E1D9CB;   /* hairlines on cream */

    /* --- Brand accents --- */
    --sage:       #8FAEA3;   /* primary — calm, care */
    --sage-deep:  #6E9184;
    --sage-tint:  #E7EEEA;
    --gold:       #C9A55C;   /* secondary — legacy, wealth */
    --gold-deep:  #A9863C;
    --gold-tint:  #F3E9D4;
    --navy:       #232B3D;   /* dark band ground */
    --navy-2:     #1B2130;   /* deepest */
    --navy-line:  #38425A;

    /* --- On-dark ink --- */
    --on-dark:      #F3EFE8;
    --on-dark-soft: #B7BDCB;
    --on-dark-faint:#7E869A;

    --shadow-sm: 0 2px 8px rgba(35,43,61,.06);
    --shadow-md: 0 18px 44px -22px rgba(35,43,61,.32);
    --shadow-lg: 0 46px 90px -40px rgba(35,43,61,.45);

    --display: "Century Gothic","CenturyGothic","URW Gothic","Futura","Twentieth Century",
               "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
    --sans: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, system-ui, sans-serif;

    --wrap: 100%;
    --pad-x: clamp(20px, 6vw, 88px);
    --band-y: clamp(68px, 9vw, 128px);
    --radius: 14px;
    --radius-sm: 9px;
  }

  * { box-sizing: border-box; }
  html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
  section[id] { scroll-margin-top: 90px; }  /* clear the sticky nav when jumping to anchors */
  @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

  body {
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font-family: var(--sans);
    font-weight: 400;
    font-size: 1.02rem;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
  }

  h1, h2, h3, h4 {
    font-family: var(--display);
    font-weight: 700;
    color: var(--navy);
    letter-spacing: -0.015em;
    line-height: 1.06;
    text-wrap: balance;
    margin: 0;
  }

  p { margin: 0; }
  a { color: var(--gold-deep); text-decoration: none; transition: color .2s ease; }
  a:hover { color: var(--navy); }
  img { max-width: 100%; display: block; }

  :focus-visible {
    outline: 3px solid var(--sage);
    outline-offset: 3px;
    border-radius: 4px;
  }

  .wrap {
    width: 100%;
    max-width: var(--wrap);
    margin-inline: auto;
    padding-inline: var(--pad-x);
  }

  /* ---------- Shared type helpers ---------- */
  .eyebrow {
    font-family: var(--sans);
    font-weight: 600;
    font-size: .74rem;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--gold-deep);
    display: inline-flex;
    align-items: center;
    gap: .6em;
  }
  .eyebrow::before {
    content: "";
    width: 26px; height: 1.5px;
    background: var(--gold);
    display: inline-block;
  }
  .on-dark .eyebrow { color: var(--gold); }

  .lead {
    font-size: clamp(1.06rem, 1.6vw, 1.24rem);
    color: var(--ink-soft);
    line-height: 1.66;
    max-width: 46ch;
  }
  .on-dark, .on-dark h1, .on-dark h2, .on-dark h3, .on-dark h4 { color: var(--on-dark); }
  .on-dark .lead { color: var(--on-dark-soft); }

  /* ---------- Buttons ---------- */
  .btn {
    --bg: var(--sage); --fg: #fff; --bd: transparent;
    display: inline-flex; align-items: center; justify-content: center; gap: .55em;
    font-family: var(--sans); font-weight: 600; font-size: .96rem;
    padding: .92em 1.5em;
    border-radius: 9px;
    background: var(--bg); color: var(--fg);
    border: 1.5px solid var(--bd);
    cursor: pointer;
    transition: transform .18s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
    white-space: nowrap;
  }
  .btn svg { width: 1.05em; height: 1.05em; }
  .btn:hover { transform: translateY(-2px); color: var(--fg); }
  .btn--primary { --bg: var(--sage); --fg:#fff; box-shadow: var(--shadow-md); }
  .btn--primary:hover { --bg: var(--navy); color:#fff; }
  .btn--gold { --bg: var(--gold); --fg: #2A2318; box-shadow: var(--shadow-md); }
  .btn--gold:hover { --bg: var(--gold-deep); --fg:#fff; }
  .btn--ghost { --bg: transparent; --fg: var(--navy); --bd: var(--line); }
  .btn--ghost:hover { --bg: var(--navy); --fg:#fff; --bd: var(--navy); }
  .btn--light { --bg: transparent; --fg: var(--on-dark); --bd: rgba(243,239,232,.28); }
  .btn--light:hover { --bg: var(--on-dark); --fg: var(--navy); --bd: var(--on-dark); }

  /* ============================================================= NAV */
  .nav {
    position: sticky; top: 0; z-index: 50;
    background: transparent;
    transition: background .3s ease, box-shadow .3s ease, border-color .3s ease;
    border-bottom: 1px solid transparent;
  }
  .nav.is-stuck {
    background: rgba(243,239,232,.86);
    backdrop-filter: saturate(140%) blur(12px);
    border-bottom-color: var(--line);
    box-shadow: 0 8px 30px -24px rgba(35,43,61,.5);
  }
  .nav__inner {
    display: flex; align-items: center; gap: 24px;
    height: 76px;
  }
  .brand { display: flex; align-items: center; gap: .6rem; margin-right: auto; }
  .brand__logo { height: 46px; width: auto; display: block; }
  .brand__mark {
    font-family: var(--display); font-weight: 700; font-size: 1.16rem;
    letter-spacing: .01em; color: var(--navy);
    line-height: 1;
  }
  .brand__mark b { color: var(--sage-deep); font-weight: 700; }
  .brand__tag {
    font-size: .6rem; letter-spacing: .34em; text-transform: uppercase;
    color: var(--gold-deep); font-weight: 600;
  }
  .nav__links { display: flex; gap: 30px; align-items: center; }
  .nav__links a {
    color: var(--ink); font-weight: 500; font-size: .95rem;
    position: relative; padding: 4px 0;
  }
  .nav__links a::after {
    content:""; position:absolute; left:0; right:100%; bottom:-2px; height:2px;
    background: var(--gold); transition: right .25s ease;
  }
  .nav__links a:hover { color: var(--navy); }
  .nav__links a:hover::after { right: 0; }
  .nav__cta { display: flex; gap: 12px; align-items: center; }
  .nav__cta .btn { padding: .62em 1.15em; font-size: .9rem; }
  .nav__toggle {
    display: none; background: none; border: none; cursor: pointer;
    color: var(--navy); padding: 6px;
  }

  /* ============================================================= HERO */
  .hero { position: relative; overflow: hidden; padding-top: clamp(8px, 1.6vw, 22px); }
  .hero::before {
    /* mesh gradient wash — sage · gold · cream · navy */
    content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
    background:
      radial-gradient(42% 48% at 80% 6%,   rgba(201,165,92,.26), transparent 60%),
      radial-gradient(48% 55% at 99% 40%,  rgba(143,174,163,.20), transparent 62%),
      radial-gradient(55% 62% at 4% 94%,   rgba(143,174,163,.28), transparent 64%),
      radial-gradient(38% 44% at 24% 4%,   rgba(201,165,92,.13), transparent 60%),
      radial-gradient(70% 80% at 50% 128%, rgba(35,43,61,.10),   transparent 60%);
  }
  .hero__bg { position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
  .hero__bg svg { position:absolute; inset:-12% -6%; width:112%; height:124%; }
  @keyframes heroDrift {
    0%,100% { transform: translate3d(0,0,0); }
    50%     { transform: translate3d(-16px,10px,0); }
  }
  .hero__bg .drift-a { animation: heroDrift 26s ease-in-out infinite; transform-origin:center; }
  .hero__bg .drift-b { animation: heroDrift 34s ease-in-out infinite reverse; transform-origin:center; }
  @media (prefers-reduced-motion: reduce) {
    .hero__bg .drift-a, .hero__bg .drift-b { animation: none; }
  }
  .hero__grid {
    position: relative; z-index: 1;
    display: grid; grid-template-columns: 1.08fr .92fr;
    gap: clamp(32px, 5vw, 72px);
    align-items: center;
    padding-block: clamp(16px, 3vw, 40px) clamp(40px, 6vw, 76px);
  }
  .hero h1 {
    font-size: clamp(2.7rem, 6.2vw, 4.7rem);
    letter-spacing: -0.028em;
    margin-top: 22px;
  }
  .hero h1 em {
    font-style: normal;
    color: var(--sage-deep);
    position: relative;
  }
  .hero h1 em::after {
    content:""; position:absolute; left:0; right:0; bottom:.07em; height:.16em;
    background: linear-gradient(90deg, var(--gold-tint), rgba(201,165,92,.55));
    z-index:-1; border-radius: 3px;
  }
  .hero__lead { margin-top: 26px; max-width: 44ch; }
  .hero__cta { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 34px; }
  .hero__trust {
    margin-top: 40px; padding-top: 26px; border-top: 1px solid var(--line);
    display: flex; align-items: center; gap: 22px; flex-wrap: wrap;
    color: var(--ink-faint); font-size: .82rem; letter-spacing: .02em;
  }
  .hero__trust b { color: var(--ink-soft); font-weight: 600; }
  .hero__trust .dot { width:5px;height:5px;border-radius:50%;background:var(--gold); }

  /* --- Coach + portal composition --- */
  .hero__stage {
    position: relative;
    display: flex; align-items: flex-end; justify-content: center;
  }
  .hero__stage > .portal {
    position: relative; z-index: 2;
    width: 100%; max-width: 510px; flex: 0 1 510px;
    margin-bottom: 14px;
  }
  .hero__coach {
    position: relative; z-index: 1; align-self: flex-end;
    height: clamp(500px, 52vw, 680px);
    margin-left: -40px; pointer-events: none;
  }
  .hero__coach img {
    position: relative; z-index: 1;
    height: 100%; width: auto; max-width: none; display: block;
    /* directional cast shadow — light from upper-right grounds her */
    filter: drop-shadow(-16px 22px 20px rgba(27,33,48,.34));
  }
  .hero__coach::after {
    /* contact shadow pooled under her feet for a 3D, grounded look */
    content: ""; position: absolute; z-index: 0;
    left: 48%; bottom: 4px; transform: translateX(-50%);
    width: 64%; height: 30px; border-radius: 50%;
    background: radial-gradient(ellipse at center, rgba(27,33,48,.55), rgba(27,33,48,0) 72%);
    filter: blur(5px);
  }

  /* --- Portal card mock (the product, shown as the hero image) --- */
  .portal {
    position: relative;
    background: var(--paper-2);
    border: 1px solid var(--line);
    border-radius: 22px;
    box-shadow: var(--shadow-lg);
    padding: 22px;
    transform: rotate(.6deg);
  }
  .portal::before {
    content:""; position:absolute; inset:0; border-radius:22px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.7); pointer-events:none;
  }
  .portal__top { display:flex; align-items:center; gap:8px; margin-bottom:18px; }
  .portal__top i { width:9px;height:9px;border-radius:50%;background:var(--paper-3);display:inline-block; }
  .portal__url {
    margin-left:8px; font-size:.72rem; color:var(--ink-faint);
    background:var(--paper); border:1px solid var(--line); border-radius:6px;
    padding:4px 10px; letter-spacing:.02em;
  }
  .portal__card {
    background: linear-gradient(160deg, var(--navy), var(--navy-2));
    color: var(--on-dark); border-radius: 16px; padding: 20px 20px 18px;
    position: relative; overflow: hidden;
  }
  .portal__card::after {
    content:""; position:absolute; right:-40px; top:-40px; width:150px;height:150px;
    background: radial-gradient(circle, rgba(143,174,163,.4), transparent 70%);
  }
  .portal__eyebrow { font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); font-weight:600; }
  .portal__title { font-family:var(--display); font-weight:700; font-size:1.24rem; margin:6px 0 0; color:#fff; letter-spacing:-.01em; }
  .portal__meta { color: var(--on-dark-faint); font-size:.8rem; margin-top:4px; }
  .ring-row { display:flex; align-items:center; gap:16px; margin-top:18px; }
  .ring {
    --p: 68;
    width: 66px; height: 66px; border-radius:50%; flex: none;
    background: conic-gradient(var(--sage) calc(var(--p)*1%), rgba(255,255,255,.12) 0);
    display:grid; place-items:center;
  }
  .ring span { width:48px;height:48px;border-radius:50%; background:var(--navy-2);
    display:grid;place-items:center; font-weight:600; font-size:.92rem; color:#fff; font-family:var(--display); }
  .ring-row div small { color: var(--on-dark-faint); font-size:.74rem; display:block; }
  .ring-row div b { color:#fff; font-weight:600; font-size:.98rem; }
  .portal__list { list-style:none; margin:16px 0 0; padding:14px 0 0; border-top:1px solid var(--navy-line); display:grid; gap:11px; }
  .portal__list li { display:flex; align-items:center; gap:11px; font-size:.86rem; color:var(--on-dark-soft); }
  .tick { width:19px;height:19px;border-radius:50%;flex:none;display:grid;place-items:center;
    background: var(--sage); color:var(--navy-2); }
  .tick svg{ width:11px;height:11px; }
  .tick.todo { background: transparent; border:1.5px solid var(--navy-line); }
  .portal__cta { margin-top:16px; }
  .portal__cta .btn { width:100%; }
  /* floating credential chip */
  .portal__chip {
    position:absolute; left:-18px; bottom:26px;
    background: var(--paper-2); border:1px solid var(--line); border-radius:12px;
    box-shadow: var(--shadow-md); padding:11px 15px; display:flex; align-items:center; gap:11px;
    transform: rotate(-1.5deg);
  }
  .portal__chip .seal { width:34px;height:34px;border-radius:9px; background:var(--gold-tint);
    display:grid;place-items:center; color:var(--gold-deep); }
  .portal__chip small { display:block; color:var(--ink-faint); font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; }
  .portal__chip b { font-family:var(--display); color:var(--navy); font-size:.92rem; }

  /* ============================================================= CREDENTIAL STRIP */
  .creds { border-block: 1px solid var(--line); background: var(--paper-2); }
  .creds__inner { display:flex; align-items:center; gap:clamp(20px,4vw,54px); flex-wrap:wrap; padding-block:26px; }
  .creds__label { font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-faint); font-weight:600; }
  .creds__logos { display:flex; align-items:center; gap:clamp(22px,4vw,48px); flex-wrap:wrap; margin-left:auto; }
  .creds__logos span { font-family:var(--display); font-weight:700; color:var(--ink-soft); font-size:1.02rem; letter-spacing:.01em; opacity:.75; }

  /* ============================================================= BANDS */
  .band { padding-block: var(--band-y); position: relative; }
  .band--navy { background: linear-gradient(180deg, var(--navy), var(--navy-2)); }
  .band--paper2 { background: var(--paper-2); }
  .band__head { max-width: 640px; margin-bottom: clamp(38px, 5vw, 58px); }
  .band__head.center { margin-inline:auto; text-align:center; }
  .band__head.center .eyebrow { justify-content:center; }
  .band__head.center .lead { margin-inline:auto; }
  /* Section header — text stacked left, abstract art right */
  .band__head--split {
    max-width: none;
    display: grid; grid-template-columns: 1fr clamp(230px, 28vw, 350px); gap: clamp(28px, 5vw, 72px);
    align-items: center;
  }
  .band__head-text { max-width: 1040px; }
  .band__head-text .lead { max-width: none; }
  .band__head-note {
    margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line);
    font-size: .95rem; color: var(--ink-faint); line-height: 1.6; max-width: none;
  }
  .band__head-visual { justify-self: end; width: 100%; max-width: 350px; }
  .band__head-visual svg { width: 100%; height: auto; display: block; }
  @media (max-width: 900px) {
    .band__head--split { grid-template-columns: 1fr; align-items: start; }
    .band__head-visual { display: none; }
    .band__head-note { border-top: none; padding-top: 0; margin-top: 8px; }
  }
  /* Framework section — subtle corner glow to fill the open space */
  #framework { position: relative; overflow: hidden; }
  #framework::before {
    content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
    background:
      radial-gradient(38% 46% at 96% 6%,  rgba(143,174,163,.16), transparent 62%),
      radial-gradient(32% 42% at 100% 96%, rgba(201,165,92,.10), transparent 60%);
  }
  #framework .wrap { position: relative; z-index: 1; }
  .band h2 { font-size: clamp(2rem, 4vw, 3.15rem); margin-top: 18px; }
  .band__head .lead { margin-top: 20px; }

  /* ---------- Stat band ---------- */
  .stats { display:grid; grid-template-columns: repeat(4, 1fr); gap: clamp(20px,3vw,40px); }
  .stat { text-align:left; }
  .stat__n {
    font-family: var(--display); font-weight: 700; color:#fff;
    font-size: clamp(2.6rem, 4.5vw, 3.7rem); letter-spacing:-.02em; line-height:1;
    font-variant-numeric: tabular-nums;
    display:flex; align-items:baseline; gap:.06em;
  }
  .stat__n em { font-style:normal; color: var(--sage); font-size:.7em; }
  .stat__l { margin-top:12px; color: var(--on-dark-soft); font-size:.92rem; line-height:1.5; }
  .stat + .stat { position:relative; }
  .stats .stat:not(:first-child)::before {
    content:""; position:absolute; left:calc(var(--gap,20px) * -0.5); top:6px; bottom:6px; width:1px;
    background: var(--navy-line);
  }

  /* ---------- Pillars (the framework) ---------- */
  .pillars { display:grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
  .pillar {
    background: var(--paper-2); border:1px solid var(--line); border-radius: var(--radius);
    padding: 28px 24px 26px; position:relative; overflow:hidden;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  }
  .pillar::before {
    content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--sage);
    transform: scaleY(0); transform-origin: top; transition: transform .3s ease;
  }
  .pillar:hover { transform: translateY(-5px); box-shadow: var(--shadow-md); border-color: var(--sage-tint); }
  .pillar:hover::before { transform: scaleY(1); }
  .pillar__n { font-family:var(--display); font-weight:700; font-size:.82rem; color:var(--gold-deep); letter-spacing:.1em; }
  .pillar h3 { font-size:1.3rem; margin:16px 0 10px; }
  .pillar p { color: var(--ink-soft); font-size:.92rem; line-height:1.6; }
  .pillar__icon { width:44px;height:44px;border-radius:11px; background:var(--sage-tint); color:var(--sage-deep);
    display:grid;place-items:center; margin-bottom:6px; }
  .pillar__icon svg{ width:22px;height:22px; }

  /* ---------- Programs / services grid ---------- */
  .programs { display:grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
  .prog {
    background: var(--paper-2); border:1px solid var(--line); border-radius: var(--radius);
    padding: 32px 30px 30px; display:flex; flex-direction:column; position:relative; overflow:hidden;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  }
  .prog::before {
    content:""; position:absolute; left:0; top:0; height:3px; width:100%;
    background: linear-gradient(90deg, var(--sage), transparent);
    transform: scaleX(0); transform-origin:left; transition: transform .3s ease;
  }
  .prog:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); border-color: var(--sage-tint); }
  .prog:hover::before { transform: scaleX(1); }
  .prog__icon {
    width:56px; height:56px; border-radius:15px; display:grid; place-items:center;
    background: var(--sage-tint); color: var(--sage-deep); margin-bottom:22px;
  }
  .prog__icon svg { width:28px; height:28px; }
  .prog__cat { font-size:.66rem; font-weight:600; letter-spacing:.11em; text-transform:uppercase; color:var(--sage-deep); margin:-4px 0 8px; }
  .prog--gold .prog__cat { color: var(--gold-deep); }
  .prog--gold::before { background: linear-gradient(90deg, var(--gold), transparent); }
  .prog--gold .prog__icon { background: var(--gold-tint); color: var(--gold-deep); }
  .prog h3 { font-size:1.3rem; line-height:1.2; }
  .prog p { color:var(--ink-soft); font-size:.94rem; margin-top:12px; line-height:1.62; flex:1; }
  .prog__link {
    margin-top:24px; font-weight:600; font-size:.9rem; color:var(--navy);
    display:inline-flex; align-items:center; gap:.5em; align-self:flex-start;
  }
  .prog__link svg { width:1.05em; height:1.05em; transition: transform .2s ease; }
  .prog__link:hover { color: var(--gold-deep); }
  .prog__link:hover svg { transform: translateX(3px); }

  /* ---------- Process / The Path ---------- */
  .path { display:grid; grid-template-columns: repeat(4,1fr); gap: 20px; counter-reset: step; }
  .step { position:relative; padding-top: 30px; }
  .step::before {
    content:""; position:absolute; top:12px; left:0; right:0; height:2px;
    background: repeating-linear-gradient(90deg, var(--navy-line) 0 7px, transparent 7px 14px);
  }
  .step:last-child::before { right: 46%; }
  .step__n {
    width:26px;height:26px;border-radius:50%; background:var(--gold); color:var(--navy-2);
    display:grid;place-items:center; font-family:var(--display); font-weight:700; font-size:.86rem;
    position:absolute; top:-1px; left:0; box-shadow:0 0 0 5px var(--navy);
  }
  .step h3 { color:#fff; font-size:1.16rem; margin-bottom:9px; }
  .step p { color:var(--on-dark-soft); font-size:.9rem; line-height:1.6; }

  /* ---------- Advisory split ---------- */
  .split { display:grid; grid-template-columns: 1fr 1fr; gap: clamp(30px,5vw,64px); align-items:center; }
  .advisory__list { list-style:none; margin:28px 0 0; padding:0; display:grid; gap:14px; }
  .advisory__list li { display:flex; gap:14px; align-items:flex-start; }
  .advisory__list .ic { width:40px;height:40px;border-radius:10px; flex:none; background:var(--sage-tint); color:var(--sage-deep); display:grid;place-items:center; }
  .advisory__list .ic svg{ width:20px;height:20px; }
  .advisory__list b { display:block; color:var(--navy); font-family:var(--display); font-weight:700; font-size:1.02rem; }
  .advisory__list span { color:var(--ink-soft); font-size:.9rem; line-height:1.55; }
  .advisory__panel {
    background: linear-gradient(160deg, var(--navy), var(--navy-2)); border-radius:22px;
    padding: clamp(28px,4vw,44px); color:var(--on-dark); box-shadow: var(--shadow-lg);
    position:relative; overflow:hidden;
  }
  .advisory__panel::after{ content:""; position:absolute; left:-50px; bottom:-50px; width:180px;height:180px;
    background: radial-gradient(circle, rgba(201,165,92,.32), transparent 70%); }
  .advisory__panel .eyebrow{ color:var(--gold); }
  .advisory__panel h3 { color:#fff; font-size:clamp(1.5rem,2.6vw,2rem); margin:14px 0 14px; }
  .advisory__panel p { color:var(--on-dark-soft); font-size:.98rem; }
  .advisory__panel .btn{ margin-top:26px; }
  .advisory__quote { margin-top:26px; padding-top:22px; border-top:1px solid var(--navy-line);
    font-size:.9rem; color:var(--on-dark-soft); }

  /* ---------- Reviews (Google-style, auto-scrolling) ---------- */
  .reviews__head { text-align:center; max-width:640px; margin:0 auto clamp(32px,4vw,48px); }
  .reviews__head .eyebrow { justify-content:center; }
  .reviews__head h2 { font-size: clamp(1.9rem, 3.6vw, 2.8rem); margin-top:16px; }
  .reviews__rating { display:inline-flex; align-items:center; gap:12px; margin-top:20px;
    background: var(--paper); border:1px solid var(--line); border-radius:999px; padding:8px 18px; }
  .reviews__rating .g { width:20px; height:20px; flex:none; }
  .reviews__rating b { font-family:var(--display); color:var(--navy); font-size:1.05rem; }
  .stars { color: var(--gold); letter-spacing:2px; font-size:1rem; line-height:1; white-space:nowrap; }
  .reviews__rating small { color:var(--ink-faint); font-size:.82rem; }
  .marquee { overflow:hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
  .marquee__track { display:flex; gap:22px; width:max-content; animation: marquee 64s linear infinite; }
  .marquee:hover .marquee__track { animation-play-state: paused; }
  @keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
  .review { flex:0 0 clamp(288px, 30vw, 358px); background:#fff; border:1px solid var(--line);
    border-radius:16px; padding:24px; box-shadow: var(--shadow-sm); }
  .review__top { display:flex; align-items:center; gap:12px; }
  .review__avatar { width:44px; height:44px; border-radius:50%; display:grid; place-items:center;
    color:#fff; font-family:var(--display); font-weight:700; font-size:1.05rem; flex:none; }
  .review__meta { margin-right:auto; min-width:0; }
  .review__name { font-weight:600; color:var(--navy); font-size:.96rem; line-height:1.2; }
  .review__date { color:var(--ink-faint); font-size:.78rem; margin-top:2px; }
  .review__g { width:22px; height:22px; flex:none; }
  .review .stars { display:block; margin:14px 0 10px; }
  .review__text { color:var(--ink-soft); font-size:.92rem; line-height:1.6; }
  @media (prefers-reduced-motion: reduce) {
    .marquee { overflow-x:auto; }
    .marquee__track { animation:none; }
  }

  /* ---------- Final CTA ---------- */
  .final { text-align:center; }
  .final h2 { font-size: clamp(2.2rem, 4.4vw, 3.5rem); }
  .final .lead { margin: 22px auto 0; text-align:center; }
  .final__cta { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top:34px; }
  .final__fine { margin-top:20px; color:var(--on-dark-faint); font-size:.82rem; }

  /* ============================================================= FOOTER */
  .foot { background: var(--navy-2); color: var(--on-dark-soft); padding-block: clamp(48px,6vw,72px) 28px; }
  .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0; }

  /* newsletter */
  .foot__news { display:grid; grid-template-columns: 1.05fr .95fr; gap: clamp(24px,4vw,60px); align-items:start;
    padding-bottom: clamp(34px,4vw,46px); margin-bottom: clamp(34px,4vw,46px); border-bottom:1px solid var(--navy-line); }
  .foot__news h3 { color:#fff; font-size: clamp(1.35rem,2.3vw,1.85rem); }
  .foot__news > div p { color:var(--on-dark-faint); font-size:.92rem; margin-top:10px; max-width:48ch; line-height:1.6; }
  .subscribe { display:flex; gap:10px; flex-wrap:wrap; }
  .subscribe__field { flex:1 1 240px; min-width:0; }
  .subscribe input[type=email] { width:100%; padding:.85em 1.1em; border-radius:9px;
    border:1.5px solid var(--navy-line); background: rgba(255,255,255,.05); color:#fff;
    font-family:var(--sans); font-size:.95rem; }
  .subscribe input[type=email]::placeholder { color: var(--on-dark-faint); }
  .subscribe input[type=email]:focus { outline:none; border-color: var(--sage); background: rgba(255,255,255,.08); }
  .subscribe__msg { flex-basis:100%; font-size:.85rem; margin:0; min-height:1.1em; }
  .subscribe__msg.ok { color: var(--sage); }
  .subscribe__msg.err { color: #E6A5A5; }
  .subscribe__consent { flex-basis:100%; display:flex; align-items:flex-start; gap:9px; margin-top:2px;
    font-size:.78rem; color:var(--on-dark-faint); line-height:1.5; }
  .subscribe__consent input { margin-top:3px; flex:none; accent-color: var(--sage); }
  .subscribe__consent a { color: var(--on-dark-soft); text-decoration: underline; }
  .hp-field { position:absolute !important; left:-9999px; width:1px; height:1px; overflow:hidden; }

  /* nav columns */
  .foot__grid { display:grid; grid-template-columns: 1.7fr 1fr 1fr 1fr 1fr; gap: clamp(22px,3vw,44px); }
  .foot__brand .brand__mark { color:#fff; }
  .foot__brand p { margin-top:16px; max-width:36ch; font-size:.9rem; color:var(--on-dark-faint); line-height:1.6; }
  .foot__contact { margin-top:18px; display:grid; gap:9px; font-size:.88rem; }
  .foot__contact a { color:var(--on-dark-soft); display:inline-flex; align-items:center; gap:9px; }
  .foot__contact a:hover { color:#fff; }
  .foot__contact svg { width:15px; height:15px; color:var(--sage); flex:none; }
  .foot__social { display:flex; gap:10px; margin-top:20px; }
  .foot__social a { width:36px; height:36px; border-radius:9px; border:1px solid var(--navy-line);
    display:grid; place-items:center; color:var(--on-dark-soft); }
  .foot__social a:hover { color:#fff; border-color:var(--sage); background: rgba(143,174,163,.12); }
  .foot__social svg { width:17px; height:17px; }
  .foot h4 { color:#fff; font-size:.76rem; letter-spacing:.16em; text-transform:uppercase; margin-bottom:16px; font-family:var(--sans); font-weight:600; }
  .foot ul { list-style:none; margin:0; padding:0; display:grid; gap:11px; }
  .foot ul a { color:var(--on-dark-soft); font-size:.9rem; }
  .foot ul a:hover { color:#fff; }
  .foot__bar { margin-top:clamp(36px,5vw,52px); padding-top:24px; border-top:1px solid var(--navy-line);
    display:flex; justify-content:space-between; gap:12px 22px; flex-wrap:wrap; font-size:.82rem; color:var(--on-dark-faint); }
  .foot__legal { display:flex; gap:8px 18px; flex-wrap:wrap; }
  .foot__bar a { color:var(--on-dark-faint); }
  .foot__bar a:hover { color:#fff; }
  @media (max-width: 1000px) { .foot__news { grid-template-columns: 1fr; } }
  @media (max-width: 760px) {
    .foot__grid { grid-template-columns: 1fr 1fr; }
    .subscribe { flex-direction: column; align-items: stretch; }
    .subscribe .btn { width: 100%; }
  }

  /* ============================================================= REVEAL / MOTION */
  .reveal { opacity:0; transform: translateY(22px); transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
  .reveal.in { opacity:1; transform:none; }
  @media (prefers-reduced-motion: reduce) {
    .reveal { opacity:1 !important; transform:none !important; transition:none; }
    .btn:hover, .pillar:hover, .prog:hover { transform:none; }
  }

  /* ============================================================= RESPONSIVE */
  @media (max-width: 1000px) {
    .hero__grid { grid-template-columns: 1fr; }
    .hero__portal { max-width: 460px; margin-inline:auto; width:100%; }
    .hero__coach { display: none; }
    .hero__stage > .portal { max-width: none; }
    .stats, .pillars, .path { grid-template-columns: repeat(2, 1fr); }
    .programs { grid-template-columns: repeat(2, 1fr); }
    .stats .stat:nth-child(3)::before { display:none; }
    .step::before, .step:last-child::before { display:none; }
    .foot__grid { grid-template-columns: 1fr 1fr; }
    .foot__brand { grid-column: 1 / -1; }
  }
  @media (max-width: 720px) {
    .nav__links { display:none; }
    .nav__cta .btn--ghost { display:none; }
    .nav__toggle { display:inline-flex; }
    .nav.is-open .nav__links {
      display:flex; position:absolute; top:76px; left:0; right:0; flex-direction:column;
      background: var(--paper-2); border-bottom:1px solid var(--line); padding:18px var(--pad-x) 24px; gap:14px;
      box-shadow: var(--shadow-md);
    }
    .split { grid-template-columns: 1fr; }
    .stats, .pillars, .programs, .path { grid-template-columns: 1fr; }
    .stats .stat::before { display:none !important; }
    .foot__grid { grid-template-columns: 1fr 1fr; }
    .hero__trust { gap:12px; }
  }

/* ============================================================= INNER PAGES (shared) */
.page-hero { position: relative; overflow: hidden; padding-block: clamp(52px, 8vw, 100px) clamp(38px, 5vw, 70px); }
.page-hero::before { content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(45% 55% at 88% 4%, rgba(201,165,92,.20), transparent 60%),
    radial-gradient(48% 60% at 4% 92%, rgba(143,174,163,.22), transparent 62%); }
.page-hero .wrap { position: relative; z-index: 1; }
.page-hero .eyebrow { justify-content: flex-start; }
.page-hero h1 { font-size: clamp(2.3rem, 5vw, 3.8rem); letter-spacing:-.02em; margin-top: 18px; }
.page-hero .lead { margin-top: 22px; max-width: 60ch; }
.page-hero.center { text-align:center; }
.page-hero.center .eyebrow { justify-content:center; }
.page-hero.center .lead { margin-inline:auto; }
.page-hero.center .page-hero__cta { justify-content:center; }
.page-hero__cta { display:flex; flex-wrap:wrap; gap:14px; margin-top:30px; }

/* On-dark inner hero */
.page-hero--navy { background: linear-gradient(180deg, var(--navy), var(--navy-2)); }
.page-hero--navy::before { background:
    radial-gradient(45% 55% at 88% 4%, rgba(201,165,92,.16), transparent 60%),
    radial-gradient(48% 60% at 4% 92%, rgba(143,174,163,.16), transparent 62%); }

/* Long-form / legal prose */
.prose { max-width: 76ch; }
.prose h2 { font-size: clamp(1.4rem, 2.4vw, 1.9rem); margin: 34px 0 12px; }
.prose h3 { font-size: 1.15rem; margin: 24px 0 10px; }
.prose p, .prose li { color: var(--ink-soft); line-height: 1.75; }
.prose p { margin: 0 0 16px; }
.prose ul, .prose ol { margin: 0 0 18px; padding-left: 22px; display:grid; gap:8px; }
.prose a { color: var(--gold-deep); text-decoration: underline; }
.prose a:hover { color: var(--navy); }
.prose__updated { color: var(--ink-faint); font-size:.85rem; margin-bottom: 18px; }

/* ============================================================= LIVE CATALOG CARDS (portal API) */
.prog__cover { margin: -32px -30px 20px; height: 168px; overflow: hidden;
  border-radius: 14px 14px 0 0; background: linear-gradient(135deg, var(--sage), var(--sage-deep)); }
.prog__cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.prog--gold .prog__cover { background: linear-gradient(135deg, var(--gold), var(--gold-deep)); }
.prog__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px;
  margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--line); }
.prog__foot .prog__link { margin-top: 0; }
.prog__price { font-family: var(--display); font-weight: 700; color: var(--navy); font-size: 1.02rem; white-space: nowrap; }
.prog__price small { font-family: var(--sans); font-weight: 400; color: var(--ink-faint); font-size: .72rem; }

.prose { margin-inline: auto; }

/* ===== Heading + supporting text share ONE measure (align to same width) ===== */
/* Inner-page heroes: constrain the h1 to the same width as its lead */
.page-hero h1 { max-width: 46rem; }
.page-hero .lead { max-width: 46rem; }
.page-hero.center h1 { margin-inline: auto; }   /* keep centered (legal/error) heroes centered */
/* Section headers: let the lead fill the same container width as the heading */
.band__head .lead { max-width: none; }
/* Closing CTA bands: heading + text share one centered measure */
.final h2 { max-width: 42rem; margin-inline: auto; }
.final .lead { max-width: 42rem; }
/* Community "What's inside": stack benefit cards in a single column */
.pillars--stack { grid-template-columns: 1fr; max-width: 760px; }
/* Community member quote: readable pull-quote (override the big .final h2 sizing) */
#voice h2 { font-size: clamp(1.4rem, 2.6vw, 2rem); max-width: 46rem; margin-inline: auto; line-height: 1.4; }

/* ============================================================= TITLE BARS: radiant green, full-spread */
.page-hero, .page-hero--navy {
  background: linear-gradient(135deg, #82A597 0%, #5F8073 55%, #4C6B5D 100%);
}
.page-hero::before, .page-hero--navy::before {
  background:
    radial-gradient(55% 65% at 88% 6%, rgba(255,255,255,.22), transparent 60%),
    radial-gradient(50% 60% at 5% 95%, rgba(255,255,255,.14), transparent 62%);
}
.page-hero .eyebrow { color: #F3EFE8; }
.page-hero h1 { color: #fff; max-width: none; }               /* spread full */
.page-hero .lead { color: rgba(243,239,232,.92); max-width: none; }
.page-hero .btn--primary { --bg: var(--gold); --fg: #2A2318; }
.page-hero .btn--primary:hover { --bg: #fff; --fg: var(--sage-deep); }
.page-hero .btn--ghost { --fg: #fff; --bd: rgba(255,255,255,.55); }
.page-hero .btn--ghost:hover { --bg: #fff; --fg: var(--sage-deep); --bd: #fff; }
.page-hero .btn--light { --bg: #fff; --fg: var(--sage-deep); --bd: #fff; }

/* 4-item grids fill a full row instead of orphaning one card */
.pillars--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1000px) { .pillars--4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px)  { .pillars--4 { grid-template-columns: 1fr; } }

/* Legal pages: full-width, left-aligned reading column (match the rest of the site) */
.prose { max-width: none; margin-inline: 0; }

/* ===== Consistent heading sizes on every page ===== */
.hero h1, .page-hero h1 { font-size: clamp(2.5rem, 5.2vw, 3.9rem); }
.band h2, .final h2, .reviews__head h2, .band__head h2 { font-size: clamp(1.9rem, 3.8vw, 2.95rem); }
/* CTA headings size to their content (no forced mid-line wrap) */
.final h2 { max-width: none; }
