/* ============================================================================
   Quantum Pension Solutions, institutional design system v8
   Palette: brand blue #1a6fb5 · navy #1a1f71 · teal #3bc4e8 · gold #c9982a
   Inter (UI) + Source Serif 4 (display). Dense, confident, every section earns
   its space. Zero dash punctuation in copy. No red anywhere.
   ========================================================================== */
:root{
  --navy:#1a1f71;
  --navy-deep:#12163f;
  --navy-panel:#0d1b2a;
  --brand:#1a6fb5;
  --brand-deep:#14508a;
  --teal:#3bc4e8;
  --teal-soft:#5eb3e4;
  --gold:#c9982a;
  --gold-bright:#e3b64a;
  --sky-pale:#eaf4fb;
  --ink:#161c2d;
  --body:#3a4356;
  --mut:#6a748c;
  --band:#f2f5f9;
  --line:#dde3ec;
  --good:#1f9d61;
  --white:#fff;
  --grad:linear-gradient(135deg,#14508a 0%,#1a6fb5 46%,#2f9fd4 78%,#3bc4e8 100%);
  --grad-deep:linear-gradient(150deg,#161c5a 0%,#1a3f8a 55%,#1a6fb5 100%);
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --sans:"Inter",-apple-system,"Segoe UI",Arial,sans-serif;
  --wrap:1160px;
  --shadow-1:0 1px 2px rgba(20,40,80,.10);
  --shadow-2:0 14px 40px rgba(20,40,80,.10);
  --shadow-3:0 28px 70px rgba(10,20,50,.22);
}
*{margin:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--sans);color:var(--body);background:var(--white);
  line-height:1.55;font-size:17px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;display:block}
a{color:var(--brand)}

/* ---------- type ---------- */
h1,h2,h3,h4{font-family:var(--serif);color:var(--navy);font-weight:600;line-height:1.1;letter-spacing:-.01em}
h1{font-size:clamp(36px,5vw,58px);line-height:1.05;letter-spacing:-.02em}
h2{font-size:clamp(27px,3.4vw,40px);letter-spacing:-.015em}
h3{font-size:22px}
p{margin:0 0 14px;max-width:68ch}
.lede{font-size:clamp(18px,1.6vw,20px);line-height:1.5}
.eyebrow{font-family:var(--sans);text-transform:uppercase;letter-spacing:.19em;
  font-size:12px;font-weight:700;color:var(--brand);margin-bottom:12px}
.mut{color:var(--mut)}
.small{font-size:14px}
strong,b{color:var(--ink);font-weight:600}

/* ---------- layout ---------- */
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 26px}
.narrow{max-width:840px;margin:0 auto}
section{padding:62px 0}
section.tight{padding:40px 0}
section.band{background:var(--band)}
section.pale{background:var(--sky-pale)}
.sec-head{max-width:46ch;margin-bottom:14px}
.sec-head.center{margin:0 auto 14px;text-align:center}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:42px;align-items:start}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:880px){.grid-2,.grid-3{grid-template-columns:1fr;gap:26px}}

/* ---------- nav ---------- */
.nav{position:sticky;top:0;z-index:80;background:rgba(255,255,255,.95);
  backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:68px;gap:22px}
.brand{display:inline-flex;align-items:center;text-decoration:none}
.brand img{height:38px;width:auto;display:block}
.navlinks{display:flex;align-items:center;gap:26px}
.navlinks a{font-size:15px;font-weight:500;color:var(--ink);text-decoration:none;padding:6px 0;position:relative}
.navlinks a:not(.btn):hover{color:var(--brand)}
.navlinks a.active:not(.btn){color:var(--brand)}
.navlinks a.active:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--teal)}
.navtoggle{display:none;background:none;border:0;cursor:pointer;padding:8px}
.navtoggle span{display:block;width:24px;height:2px;background:var(--navy);margin:5px 0;transition:.25s}
@media(max-width:980px){
  .navtoggle{display:block}
  .navlinks{position:fixed;inset:68px 0 auto 0;flex-direction:column;align-items:stretch;
    gap:0;background:var(--white);border-bottom:1px solid var(--line);
    padding:8px 0 16px;transform:translateY(-140%);transition:transform .3s;box-shadow:var(--shadow-2)}
  .navlinks.open{transform:translateY(0)}
  .navlinks a{padding:14px 26px;font-size:16px}
  .navlinks a.btn{margin:10px 26px 0;justify-content:center}
}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;background:var(--brand);color:#fff;
  font-family:var(--sans);font-weight:600;font-size:16px;padding:14px 26px;border-radius:3px;
  text-decoration:none;border:none;cursor:pointer;transition:background .16s,box-shadow .16s;
  box-shadow:var(--shadow-1)}
.btn:hover{background:var(--brand-deep);box-shadow:0 6px 18px rgba(20,80,138,.30)}
.btn::after{content:"→";font-weight:500;transition:transform .16s}
.btn:hover::after{transform:translateX(4px)}
.btn.noarrow::after{content:none}
.btn.small{font-size:14px;padding:10px 18px}
.btn.lg{font-size:17px;padding:16px 32px}
.btn.ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.55);box-shadow:none}
.btn.ghost:hover{background:rgba(255,255,255,.12);border-color:#fff}
.btn.gold{background:var(--gold);color:#0d1b2a;font-weight:700}
.btn.gold:hover{background:var(--gold-bright);box-shadow:0 6px 20px rgba(201,152,42,.4)}
.textlink{color:var(--brand);font-weight:600;text-decoration:none;border-bottom:2px solid var(--teal);padding-bottom:1px}
.textlink:hover{color:var(--brand-deep)}

/* ---------- hero ---------- */
.hero{position:relative;background:var(--grad);color:#fff;overflow:hidden;isolation:isolate;padding:0}
.hero canvas.qfield{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.5}
.hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(1200px 600px at 82% -10%,rgba(59,196,232,.35),transparent 60%)}
/* ==================================================================
   OPENING
   The mark resolves, holds a beat, and clears. Institutional restraint means
   this is a settling rather than a flourish: no spin, no bounce, no wipe.
   The rule drawing outward under the logo is the only flourish, and it is
   the same gesture as the teal hairline on the home screen.
   ================================================================== */
.intro{
  position:fixed;inset:0;z-index:400;display:grid;place-items:center;
  background:#000;pointer-events:none;
  animation:introOut .62s cubic-bezier(.4,0,.2,1) 1.55s forwards;
}
.intro-mark{display:flex;flex-direction:column;align-items:center;gap:0}
.intro-mark img{
  width:230px;height:auto;display:block;
  filter:brightness(0) invert(1);            /* the lockup is dark; knock it out */
  opacity:0;transform:translateY(9px);
  animation:introMark .82s cubic-bezier(.22,.7,.2,1) .12s forwards;
}
.intro-rule{
  display:block;height:1px;width:0;background:var(--teal);margin:20px 0 0;
  animation:introRule .72s cubic-bezier(.22,.7,.2,1) .52s forwards;
}
.intro-sub{
  font-size:10.5px;font-weight:600;letter-spacing:.34em;text-transform:uppercase;
  color:#7fbfe0;margin-top:16px;opacity:0;
  animation:introSub .6s ease .78s forwards;
}
@keyframes introMark{to{opacity:1;transform:none}}
@keyframes introRule{to{width:196px}}
@keyframes introSub{to{opacity:1}}
@keyframes introOut{to{opacity:0;visibility:hidden}}
/* returning visitors and reduced-motion never see it */
.intro.skip{display:none}
@media(prefers-reduced-motion:reduce){.intro{display:none}}



/* Legacy hero sizing, superseded by the three panel rotation above. Kept only
   for the inner pages that still use .hero as a plain banner. */
.hero .wrap{position:relative;z-index:2;padding:40px 26px 40px}
.hero.compact .wrap{padding:34px 26px 32px}
.hero .kicker{text-transform:uppercase;letter-spacing:.2em;font-size:12.5px;font-weight:700;color:#bfe6f7;margin-bottom:12px}
.hero h1{color:#fff;max-width:24ch;font-size:clamp(28px,3.5vw,42px)}
.hero .lede{color:rgba(255,255,255,.9);max-width:56ch;margin-top:18px}
.hero .actions{margin-top:22px;display:flex;gap:14px;flex-wrap:wrap}
.hero.center{text-align:center}
.hero.center h1,.hero.center .lede{margin-left:auto;margin-right:auto}
.hero.center .actions{justify-content:center}
/* hero market conditions panel: institutional card metrics, no indicators */
.mktpanel{margin-top:22px;max-width:900px;background:rgba(13,27,42,.44);
  border:1px solid rgba(191,230,247,.24);border-radius:6px;backdrop-filter:blur(8px);overflow:hidden}
.mkt-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  padding:12px 22px;border-bottom:1px solid rgba(191,230,247,.16);background:rgba(255,255,255,.04)}
.mkt-head .mkt-title{font-size:11.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#a8d8ef}
.mkt-head .mkt-date{font-size:12px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;
  color:#bfe6f7;font-variant-numeric:tabular-nums}
.mkt-grid{display:grid;grid-template-columns:1.12fr 1fr 1fr;align-items:stretch}
@media(max-width:760px){.mkt-grid{grid-template-columns:1fr}}
.mkt-cell{padding:20px 22px;border-left:1px solid rgba(191,230,247,.14)}
.mkt-cell:first-child{border-left:0}
@media(max-width:760px){
  .mkt-cell{border-left:0;border-top:1px solid rgba(191,230,247,.14)}
  .mkt-cell:first-child{border-top:0}
}
.mkt-cell .k{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.13em;color:#a8d8ef}
.mkt-cell .v,.mkt-cell .v b{font-family:var(--serif);font-size:clamp(26px,3vw,36px);font-weight:600;color:#fff;
  letter-spacing:-.01em;font-variant-numeric:tabular-nums;line-height:1.05;margin-top:9px}
.mkt-cell .s{font-size:12px;color:rgba(255,255,255,.58);margin-top:6px}
/* the treasury reading sits in its own boxed ticker */
.mkt-cell.ticker{margin:10px;padding:12px 16px;border:1px solid rgba(59,196,232,.5);border-radius:6px;
  background:rgba(59,196,232,.09)}
.mkt-cell.ticker .k{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#bfe6f7}
.mkt-cell.ticker .k .sym{font-size:10px;font-weight:800;letter-spacing:.1em;color:#0d1b2a;
  background:var(--teal);border-radius:3px;padding:2px 7px}
.mkt-cell.ticker .v{color:#fff}
@media(max-width:760px){.mkt-cell.ticker{margin:10px;border-top:1px solid rgba(59,196,232,.5)}}
/* funded status reading is the emphasized figure */
.mkt-cell.funded .k{color:#fff;font-weight:800}
.mkt-cell.funded .v{font-weight:700}

/* per section CTA */
.sec-cta{margin-top:28px;text-align:center}
.cta-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ---------- risk grid (2x2), institutional: figure, mechanism, exposure ---------- */
.risks{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:34px}
@media(max-width:760px){.risks{grid-template-columns:1fr}}
.risk{background:#fff;border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:6px;
  padding:28px 28px 24px;display:flex;flex-direction:column;
  box-shadow:var(--shadow-1);transition:box-shadow .2s,transform .2s}
.risk:hover{box-shadow:var(--shadow-2);transform:translateY(-3px)}
.risk .risk-top{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.risk .ic{width:46px;height:46px;border-radius:9px;background:var(--sky-pale);color:var(--brand);
  display:flex;align-items:center;justify-content:center;flex:none}
.risk .ic svg{width:24px;height:24px}
.risk h3{font-size:21px}
.risk p{font-size:15px;margin:0 0 18px;line-height:1.62}
.risk .minifig{margin-top:auto;border:1px solid var(--line);border-radius:6px;background:#fbfdff;
  padding:14px 16px 10px}
.risk .minifig svg{display:block;width:100%;height:auto}
.risk .exposure{display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.risk .exposure .k{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.11em;color:var(--mut)}
.risk .exposure .v{font-family:var(--serif);font-size:18px;font-weight:700;color:var(--brand);
  font-variant-numeric:tabular-nums;text-align:right;line-height:1.25}
.risk-tag{margin-top:28px;text-align:center;font-family:var(--serif);font-size:clamp(19px,2.2vw,24px);
  color:var(--navy);font-weight:600}
.risk-tag em{font-style:normal;color:var(--brand)}

/* ---------- cards (generic) ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-top:30px}
.card{background:#fff;border:1px solid var(--line);border-radius:5px;padding:28px 26px;
  transition:box-shadow .2s,transform .2s;border-top:3px solid var(--teal)}
.card:hover{box-shadow:var(--shadow-2);transform:translateY(-3px)}
.card .num{font-family:var(--serif);font-size:15px;font-weight:700;color:var(--teal);letter-spacing:.08em;
  text-transform:uppercase;margin-bottom:12px}
.card h3{margin-bottom:10px}
.card .tag{display:block;font-family:var(--serif);font-size:17.5px;color:var(--brand);font-weight:600;margin-bottom:10px}
.card p{font-size:15.5px;margin-bottom:0}
.card-wide{margin-top:20px;max-width:100%;text-align:center}
.card-wide p{max-width:72ch;margin:0 auto}
.card-wide .tag{max-width:72ch;margin:0 auto 10px}

/* ---------- figure / chart wrappers ---------- */
.figwrap{margin-top:30px;background:#fff;border:1px solid var(--line);border-radius:8px;
  padding:28px 28px;overflow-x:auto;box-shadow:var(--shadow-1)}
.figwrap.dark{background:var(--navy-panel);border-color:#1e3a55}
.figwrap svg{display:block;width:100%;height:auto;min-width:540px;margin:0 auto}
.figwrap.tight svg{min-width:0}
.figcap{font-size:13px;color:var(--mut);margin:16px auto 0;text-align:center;max-width:74ch}

/* ---------- stat trio (participants) ---------- */
.stattrio{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:32px}
@media(max-width:820px){.stattrio{grid-template-columns:1fr}}
.stattrio .s{background:#fff;border:1px solid var(--line);border-radius:5px;padding:28px 26px;text-align:center}
.stattrio .v{font-family:var(--serif);font-size:clamp(30px,3.6vw,44px);font-weight:600;color:var(--brand);
  line-height:1.05;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.stattrio .l{font-size:14.5px;color:var(--body);margin-top:12px;line-height:1.45}

/* ---------- who we are ---------- */
.whoband{background:var(--grad-deep);color:#fff;position:relative;overflow:hidden;isolation:isolate}
.whoband::after{content:"";position:absolute;inset:0;z-index:0;
  background:radial-gradient(900px 500px at 88% 115%,rgba(59,196,232,.35),transparent 55%)}
.whoband .wrap{position:relative;z-index:1}
.whoband h2{color:#fff}
.whoband .lede{color:rgba(255,255,255,.88)}
.who-names{display:flex;flex-wrap:wrap;gap:14px 34px;margin-top:28px}
.who-names .n{border-left:3px solid var(--teal);padding:2px 0 2px 14px}
.who-names .n b{display:block;font-family:var(--serif);font-size:18px;color:#fff;font-weight:600}
.who-names .n span{font-size:13px;color:rgba(255,255,255,.66);text-transform:uppercase;letter-spacing:.08em;font-weight:600}

/* ---------- CTA band ---------- */
.ctaband{background:var(--grad-deep);color:#fff;position:relative;overflow:hidden;isolation:isolate}
.ctaband::after{content:"";position:absolute;inset:0;z-index:0;
  background:radial-gradient(900px 500px at 90% 120%,rgba(59,196,232,.4),transparent 55%)}
.ctaband .wrap{position:relative;z-index:1;padding:58px 26px;text-align:center}
.ctaband h2{color:#fff;max-width:26ch;margin:0 auto 14px}
.ctaband p{color:rgba(255,255,255,.85);max-width:56ch;margin:0 auto 26px}
.ctaband .btn{background:#fff;color:var(--brand)}
.ctaband .btn:hover{background:var(--sky-pale)}

/* ---------- service tiers ---------- */
.tiers{display:grid;gap:24px;margin-top:34px}
.tier{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;
  display:grid;grid-template-columns:280px 1fr;box-shadow:var(--shadow-1)}
@media(max-width:820px){.tier{grid-template-columns:1fr}}
.tier .side{background:var(--navy);color:#fff;padding:32px 28px;display:flex;flex-direction:column;justify-content:center}
.tier.t1 .side{background:var(--grad-deep)}
.tier .side .tno{font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--teal);margin-bottom:10px}
.tier .side h3{color:#fff;font-size:clamp(22px,2.2vw,27px);line-height:1.15}
.tier .side .chip{margin-top:16px;display:inline-flex;align-self:flex-start;font-size:12px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:var(--navy);background:#fff;border-radius:100px;padding:6px 14px}
.tier .bodyc{padding:32px 34px}
.tier .bodyc p{font-size:16.5px;margin-bottom:12px}
.tier .bodyc p:last-child{margin-bottom:0}
.tier .bodyc .big{font-family:var(--serif);font-size:clamp(18px,1.9vw,22px);color:var(--navy);font-weight:600;line-height:1.35}

/* ---------- timeline compare bars ---------- */
.tl-compare{margin-top:26px;display:grid;gap:14px}
.tl-row{display:grid;grid-template-columns:120px 1fr;gap:16px;align-items:center}
@media(max-width:600px){.tl-row{grid-template-columns:1fr}}
.tl-row .lab{font-size:13.5px;font-weight:700;color:var(--ink);text-transform:uppercase;letter-spacing:.06em}
.tl-row .bar{height:34px;border-radius:4px;display:flex;align-items:center;padding:0 14px;
  color:#fff;font-size:13.5px;font-weight:700;white-space:nowrap}
.tl-row .bar.slow{background:#9aa6bd;width:100%}
.tl-row .bar.fast{background:var(--grad);width:18%;min-width:180px}

/* ---------- fork (participant options) ---------- */
.fork{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:30px}
@media(max-width:720px){.fork{grid-template-columns:1fr}}
.fork .opt{background:#fff;border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:6px;padding:28px}
.fork .opt h3{margin-bottom:8px}
.fork .opt .who{font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--brand);margin-bottom:12px}
.fork .opt p{font-size:15.5px;margin-bottom:0}

/* ---------- sequential case (why quantum) ---------- */
.seq{max-width:880px;margin:34px auto 0}
.seq-step{display:grid;grid-template-columns:76px 1fr;gap:30px;padding:40px 0}
.seq-step+.seq-step{border-top:1px solid var(--line)}
.seq-step .no{width:56px;height:56px;border-radius:50%;background:var(--grad-deep);color:#fff;
  display:flex;align-items:center;justify-content:center;font-family:var(--serif);
  font-size:22px;font-weight:700}
.seq-step .stage{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.16em;
  color:var(--brand);margin-bottom:9px}
.seq-step h3{font-size:clamp(22px,2.4vw,28px);line-height:1.2;margin-bottom:14px}
.seq-step p{font-size:16.5px;line-height:1.65;margin-bottom:13px}
.seq-step p:last-child{margin-bottom:0}
@media(max-width:640px){.seq-step{grid-template-columns:1fr;gap:14px}}
.proof{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-top:24px}
@media(max-width:880px){.proof{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.proof{grid-template-columns:1fr}}
.proof .p{background:#fff;padding:26px 20px;text-align:center}
.proof .v{font-family:var(--serif);font-size:clamp(28px,3vw,40px);font-weight:600;color:var(--brand);
  font-variant-numeric:tabular-nums;line-height:1.05}
.proof .l{font-size:13.5px;color:var(--body);margin-top:10px;line-height:1.45}

/* ---------- pull quote line ---------- */
.pull{margin-top:34px;text-align:center}
.pull p{font-family:var(--serif);font-size:clamp(20px,2.4vw,27px);color:var(--navy);font-weight:600;
  line-height:1.35;max-width:34ch;margin:0 auto}
.pull p em{font-style:normal;color:var(--brand)}
.pull .pull-sub{font-family:var(--sans);font-size:16px;font-weight:500;color:var(--body);
  max-width:52ch;margin:16px auto 0;line-height:1.55}

/* ---------- team, leadership grade ---------- */
.team{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:36px}
@media(max-width:1024px){.team{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.team{grid-template-columns:1fr}}
.member .photo{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;
  object-position:center top;border:0;border-radius:0;box-shadow:none;margin:0;background:#fff}
.member .bio-full[hidden]{display:none}
.readmore{background:none;border:0;color:var(--brand);font:600 14px var(--sans);cursor:pointer;
  padding:0;margin-top:12px;text-align:left;align-self:flex-start}
.readmore:hover{color:var(--brand-deep);text-decoration:underline}
/* leadership on navy */
.teamband{background:var(--grad-deep);position:relative;overflow:hidden;isolation:isolate}
.teamband::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(900px 500px at 88% -10%,rgba(59,196,232,.24),transparent 55%)}
.teamband .wrap{position:relative;z-index:1}
.teamband h2{color:#fff}
.teamband .eyebrow{color:var(--teal)}
.teamband .member{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14);
  border-top-color:var(--teal);box-shadow:0 22px 56px rgba(3,8,26,.45)}
.teamband .member:hover{box-shadow:0 28px 66px rgba(3,8,26,.55)}
.teamband .member .nm{color:#fff}
.teamband .member .rl{color:#8fd8f2;border-bottom-color:rgba(255,255,255,.16)}
.teamband .member .cred{background:rgba(59,196,232,.16);color:#8fd8f2}
.teamband .member p{color:#c2d2e2}
.teamband .readmore{color:var(--teal)}
.teamband .readmore:hover{color:#8fd8f2}
.teamband .member .photo{background:#fff}
.member{background:#fff;border:1px solid var(--line);border-radius:8px;padding:0;overflow:hidden;
  border-top:3px solid var(--brand);box-shadow:var(--shadow-1);
  transition:box-shadow .2s,transform .2s;display:flex;flex-direction:column}
.member:hover{box-shadow:var(--shadow-2);transform:translateY(-3px)}
.member .minfo{padding:22px 24px 26px;display:flex;flex-direction:column;flex:1}
.member .avatar{width:78px;height:78px;border-radius:50%;background:var(--grad-deep);color:#fff;
  display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:27px;
  font-weight:600;margin-bottom:20px;letter-spacing:.02em;
  box-shadow:0 0 0 4px var(--sky-pale)}
.member .nm{font-family:var(--serif);font-size:21px;color:var(--navy);font-weight:600;
  letter-spacing:-.01em;line-height:1.15}
.member .cred{display:inline-block;align-self:flex-start;font-size:10.5px;color:var(--brand-deep);
  background:var(--sky-pale);font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  border-radius:3px;padding:3px 9px;margin-top:8px}
.member .rl{font-size:11.5px;color:var(--mut);font-weight:700;text-transform:uppercase;
  letter-spacing:.13em;margin-top:7px;padding-bottom:14px;border-bottom:1px solid var(--line);
  margin-bottom:2px}
.member p{font-size:14px;margin:12px 0 0;line-height:1.64;color:var(--body)}

/* ---------- about page ---------- */
.about-lead{display:grid;grid-template-columns:1.55fr 1fr;gap:46px;align-items:start}
@media(max-width:880px){.about-lead{grid-template-columns:1fr;gap:30px}}
.about-lead .story p{font-size:16.5px;line-height:1.66}
.factlist{border:1px solid var(--line);border-radius:8px;overflow:hidden;box-shadow:var(--shadow-1)}
.factlist .fh{padding:14px 22px;background:var(--navy);color:#fff;font-size:11.5px;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase}
.factlist .f{display:flex;align-items:baseline;justify-content:space-between;gap:14px;
  padding:15px 22px;border-top:1px solid var(--line);background:#fff}
.factlist .f:nth-child(2){border-top:0}
.factlist .f .k{font-size:13.5px;font-weight:600;color:var(--mut)}
.factlist .f .v{font-family:var(--serif);font-size:19px;font-weight:700;color:var(--navy);
  font-variant-numeric:tabular-nums;text-align:right;line-height:1.25}
.oplist{margin-top:32px;display:grid;gap:14px;max-width:960px}
.op{display:grid;grid-template-columns:170px 1fr;gap:24px;background:#fff;border:1px solid var(--line);
  border-left:3px solid var(--brand);border-radius:6px;padding:24px 28px;align-items:start;
  box-shadow:var(--shadow-1)}
@media(max-width:680px){.op{grid-template-columns:1fr;gap:8px}}
.op .k{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.13em;color:var(--brand);padding-top:4px}
.op h3{font-size:18.5px;margin-bottom:7px}
.op p{font-size:15px;margin:0;line-height:1.6}

/* ---------- forms ---------- */
form.lead{background:#fff;border:1px solid var(--line);border-radius:8px;padding:32px;box-shadow:var(--shadow-1)}
form.lead .row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:600px){form.lead .row{grid-template-columns:1fr}}
form.lead label{display:block;font-size:13px;font-weight:600;color:var(--ink);margin:16px 0 6px}
form.lead input,form.lead select,form.lead textarea{width:100%;padding:12px 15px;
  border:1px solid var(--line);border-radius:4px;font:16px/1.5 var(--sans);color:var(--ink);background:#fff}
form.lead textarea{min-height:120px;resize:vertical}
form.lead input:focus,form.lead select:focus,form.lead textarea:focus{outline:none;
  border-color:var(--brand);box-shadow:0 0 0 3px rgba(26,111,181,.14)}
form.lead button{margin-top:24px;width:100%;justify-content:center}
.formnote{font-size:13px;color:var(--mut);margin-top:12px;text-align:center}

/* ============================================================
   FULL PAGE AI CHAT (analyze page)
   ============================================================ */
.chatfull{height:calc(100vh - 68px);display:flex;flex-direction:column;background:var(--navy-panel)}
@supports (height:100dvh){.chatfull{height:calc(100dvh - 68px)}}
.chat-scroll{flex:1;overflow-y:auto;padding:38px 22px 18px}
.chat-thread{max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
.chat-inputbar{flex:none;border-top:1px solid #1e3a55;background:rgba(13,27,42,.94);padding:16px 22px}
.chat-inputwrap{max-width:800px;margin:0 auto;display:flex;gap:12px;align-items:center}
.chat-inputwrap input{flex:1;background:#13293d;border:1px solid #1f425e;border-radius:10px;
  padding:15px 18px;color:#e8f1f8;font:16px/1.4 var(--sans)}
.chat-inputwrap input::placeholder{color:#5f7d97}
.chat-inputwrap input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(59,196,232,.15)}
.chat-inputwrap .sendbtn{width:50px;height:50px;border-radius:10px;background:#1f425e;color:#9fc4de;border:0;
  display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none;
  transition:background .15s,color .15s}
.chat-inputwrap .sendbtn:hover{background:var(--brand);color:#fff}
.chat-fine{max-width:800px;margin:9px auto 0;font-size:11.5px;color:#5f7d97;text-align:center;line-height:1.5}
/* inline manual estimate form, rendered inside an AI bubble */
.chat-manual{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}
@media(max-width:560px){.chat-manual{grid-template-columns:1fr}}
.chat-manual label{display:block;font-size:12px;font-weight:600;color:#9fc4de;margin-bottom:5px}
.chat-manual input,.chat-manual select{width:100%;background:#0d1b2a;border:1px solid #1f425e;border-radius:7px;
  padding:10px 12px;color:#e8f1f8;font:15px var(--sans)}
.chat-manual input:focus,.chat-manual select:focus{outline:none;border-color:var(--teal);
  box-shadow:0 0 0 3px rgba(59,196,232,.14)}
.chat-manual button{grid-column:1/-1;justify-content:center;margin-top:4px}
.chat-manual[data-done] input,.chat-manual[data-done] select{opacity:.55}
.chat-manual[data-done] button{display:none}
/* compact "what you get" strip under the chat viewport */
.whatyouget{background:#0a1521;border-top:1px solid #1e3a55;padding:46px 0 52px}
.msg{max-width:88%;opacity:0;transform:translateY(10px);transition:opacity .5s ease,transform .5s ease}
.msg.show{opacity:1;transform:none}
.msg.sys{align-self:center;text-align:center;max-width:100%;font-size:12.5px;color:#5f7d97;
  letter-spacing:.04em;padding:4px 0}
.msg.user{align-self:flex-end}
.msg.user .bubble{background:var(--brand);color:#fff;border-radius:14px 14px 3px 14px;
  padding:12px 18px;font-size:15.5px;font-weight:500}
.msg.ai{align-self:flex-start;display:grid;grid-template-columns:34px 1fr;gap:12px}
.msg.ai .avatar{width:34px;height:34px;border-radius:9px;background:var(--grad);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;flex:none;margin-top:2px}
.msg.ai .bubble{background:#13293d;border:1px solid #1f425e;color:#d7e5f0;border-radius:3px 14px 14px 14px;
  padding:16px 20px;font-size:15px;line-height:1.65}
.msg.ai .bubble b{color:#fff;font-weight:600}
.msg.ai .bubble .hl{color:var(--gold-bright);font-weight:600}
.msg.ai .bubble.caret::after{content:"\258B";display:inline-block;margin-left:2px;
  color:var(--teal);animation:caretblink 1s steps(2,start) infinite}
@keyframes caretblink{50%{opacity:0}}
.typing{display:inline-flex;gap:5px;align-items:center;padding:4px 0}
.typing i{width:7px;height:7px;border-radius:50%;background:#5f8fb5;animation:tbounce 1.2s infinite}
.typing i:nth-child(2){animation-delay:.15s}
.typing i:nth-child(3){animation-delay:.3s}
@keyframes tbounce{0%,60%,100%{transform:none;opacity:.5}30%{transform:translateY(-5px);opacity:1}}
.chat-cta{margin-top:6px;opacity:0;transform:translateY(10px);transition:opacity .5s ease,transform .5s ease}
.chat-cta.show{opacity:1;transform:none}

/* ============================================================
   MODAL + MOCK CALENDAR
   ============================================================ */
.modal{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:22px}
.modal.open{display:flex}
.modal .scrim{position:absolute;inset:0;background:rgba(13,22,38,.66);backdrop-filter:blur(3px)}
.modal .box{position:relative;z-index:1;background:#fff;border-radius:12px;max-width:920px;width:100%;
  max-height:92vh;overflow:auto;box-shadow:var(--shadow-3);animation:modalIn .3s cubic-bezier(.2,.8,.25,1)}
@keyframes modalIn{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}
.modal .box-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;
  padding:26px 30px 0}
.modal .box-head h3{font-size:24px}
.modal .box-head p{font-size:14.5px;color:var(--mut);margin:6px 0 0}
.modal .x{background:none;border:0;cursor:pointer;font-size:22px;line-height:1;color:var(--mut);
  padding:6px 10px;border-radius:6px}
.modal .x:hover{background:var(--band);color:var(--ink)}
.modal .box-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:0;margin-top:20px}
@media(max-width:820px){.modal .box-grid{grid-template-columns:1fr}}
.modal .cal-side{padding:6px 30px 30px;border-right:1px solid var(--line)}
@media(max-width:820px){.modal .cal-side{border-right:0;border-bottom:1px solid var(--line)}}
.modal .form-side{padding:6px 30px 30px}

/* calendar widget (shared with contact page) */
.cal{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}
.cal-head{display:flex;align-items:center;justify-content:space-between;background:var(--navy);color:#fff;padding:14px 18px}
.cal-head .mo{font-family:var(--serif);font-size:17px;font-weight:600}
.cal-head .navbtns{display:flex;gap:6px}
.cal-head button{background:rgba(255,255,255,.12);border:0;color:#fff;width:28px;height:28px;
  border-radius:5px;cursor:pointer;font-size:14px}
.cal-head button:hover{background:rgba(255,255,255,.24)}
.cal-days{display:grid;grid-template-columns:repeat(5,1fr);border-bottom:1px solid var(--line)}
.cal-days .d{padding:10px 4px;text-align:center;border-left:1px solid var(--line)}
.cal-days .d:first-child{border-left:0}
.cal-days .dow{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--mut)}
.cal-days .dnum{font-family:var(--serif);font-size:19px;font-weight:600;color:var(--navy);margin-top:2px}
.cal-days .d.today .dnum{color:var(--brand)}
.cal-days .d.today .dow{color:var(--brand)}
.cal-slots{display:grid;grid-template-columns:repeat(5,1fr);background:var(--line);gap:1px}
.cal-slots .col{background:#fff;display:flex;flex-direction:column;gap:8px;padding:12px 8px}
.slot{border:1px solid var(--brand);color:var(--brand);background:#fff;font:600 12.5px var(--sans);
  border-radius:4px;padding:8px 4px;text-align:center;cursor:pointer;transition:background .14s,color .14s}
.slot:hover{background:var(--sky-pale)}
.slot.sel{background:var(--brand);color:#fff}
.slot.taken{border-color:var(--line);color:#b6bfd0;background:var(--band);cursor:default;text-decoration:line-through}
.cal-note{font-size:12px;color:var(--mut);margin-top:10px;display:flex;align-items:center;gap:7px}
.cal-note .tz{display:inline-flex;align-items:center;gap:6px}
.cal-note .gdot{width:7px;height:7px;border-radius:50%;background:#37d67a}

/* compact form inside modal */
.miniform label{display:block;font-size:13px;font-weight:600;color:var(--ink);margin:14px 0 6px}
.miniform input{width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:4px;
  font:15.5px var(--sans);color:var(--ink)}
.miniform input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(26,111,181,.14)}
.miniform button{margin-top:22px;width:100%;justify-content:center}
.miniform .fine{font-size:12px;color:var(--mut);margin-top:10px;text-align:center}
.modal-done{padding:60px 40px;text-align:center}
.modal-done .ok{width:64px;height:64px;border-radius:50%;background:var(--sky-pale);color:var(--good);
  display:flex;align-items:center;justify-content:center;margin:0 auto 20px}
.modal-done h3{font-size:26px;margin-bottom:10px}
.modal-done p{max-width:44ch;margin:0 auto;color:var(--body)}

/* ============================================================
   ANALYZER (legacy dashboard styles, retained for analyzer.js consumers)
   ============================================================ */
.az{max-width:860px;margin:0 auto}
.az-search{position:relative}
.az-search label{display:block;font-size:13px;font-weight:600;color:var(--ink);margin-bottom:8px}
.az-search input{width:100%;padding:18px 20px;font:19px/1.4 var(--sans);color:var(--ink);
  border:1px solid var(--line);border-radius:6px;background:#fff;box-shadow:0 8px 30px rgba(20,40,80,.06)}
.az-search input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(26,111,181,.15)}
.az-list{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:20;list-style:none;padding:0;margin:0;
  background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 20px 44px rgba(20,40,80,.16);overflow:hidden}
.az-list li{padding:12px 20px;cursor:pointer;display:flex;justify-content:space-between;gap:16px;
  align-items:baseline;border-bottom:1px solid var(--line)}
.az-list li:last-child{border-bottom:0}
.az-list li:hover,.az-list li.on{background:var(--sky-pale)}
.az-list .co{font-weight:600;color:var(--ink);font-size:15.5px}
.az-list .meta{font-size:13px;color:var(--mut);white-space:nowrap}
.az-hint{font-size:13.5px;color:var(--mut);margin-top:12px;text-align:center}
.az-hint a{color:var(--brand);font-weight:600;cursor:pointer}

.az-result{margin-top:30px;opacity:0;transform:translateY(14px);transition:opacity .5s,transform .5s}
.az-result.in{opacity:1;transform:none}
.az-dash{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;box-shadow:var(--shadow-2)}
.az-dash-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  padding:20px 26px;background:var(--navy);color:#fff}
.az-dash-head .co{font-family:var(--serif);font-size:22px;font-weight:600;color:#fff;line-height:1.1}
.az-dash-head .loc{font-size:13px;color:rgba(255,255,255,.7);margin-top:3px}
.az-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(59,196,232,.16);
  border:1px solid rgba(59,196,232,.5);color:#bfe6f7;font-size:12.5px;font-weight:700;
  letter-spacing:.04em;text-transform:uppercase;padding:7px 13px;border-radius:100px}
.az-badge .dot{width:8px;height:8px;border-radius:50%;background:var(--teal)}
.az-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}
@media(max-width:640px){.az-grid{grid-template-columns:1fr 1fr}}
.az-card{background:#fff;padding:22px 22px}
.az-card .k{font-size:11.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--mut);font-weight:700}
.az-card .v{font-family:var(--serif);font-size:30px;font-weight:600;color:var(--navy);
  letter-spacing:-.01em;font-variant-numeric:tabular-nums;line-height:1;margin-top:9px}
.az-card .s{font-size:12.5px;color:var(--mut);margin-top:7px;line-height:1.4}
.az-card.accent{background:var(--sky-pale)}
.az-card.accent .v{color:var(--brand)}
.az-card.flag .v{color:var(--brand-deep)}
.az-card.score .v{color:var(--teal-soft)}
.az-readbar{padding:18px 26px;border-top:1px solid var(--line);background:#fbfdff}
.az-readbar .track{height:8px;border-radius:100px;background:var(--band);overflow:hidden;margin-top:10px}
.az-readbar .fill{height:100%;background:var(--grad);border-radius:100px;transition:width 1s ease .2s;width:0}
.az-readbar .lab{display:flex;justify-content:space-between;font-size:13px;color:var(--body)}
.az-readbar .lab b{color:var(--navy)}
.az-note{padding:16px 26px;border-top:1px solid var(--line);font-size:14px;color:var(--body);line-height:1.5}

.az-cta{margin-top:20px;background:var(--grad-deep);color:#fff;border-radius:8px;padding:30px 30px}
.az-cta h3{color:#fff;margin-bottom:8px}
.az-cta p{color:rgba(255,255,255,.86);max-width:60ch;margin-bottom:0}
.az-cta-row{display:flex;gap:14px;flex-wrap:wrap;margin:20px 0 6px}
.az-cta .btn{background:#fff;color:var(--brand)}
.az-cta .btn:hover{background:var(--sky-pale)}
.az-cta .btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}
.az-fine{font-size:12.5px;color:rgba(255,255,255,.62);margin-top:10px}

.az-manual{margin-top:32px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:30px;box-shadow:var(--shadow-1)}
.az-manual h3{margin-bottom:7px}
.az-manual .sub{color:var(--mut);font-size:15px;margin-bottom:18px}
.az-manual .row3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:640px){.az-manual .row3{grid-template-columns:1fr}}
.az-manual label{display:block;font-size:13px;font-weight:600;color:var(--ink);margin:0 0 6px}
.az-manual input,.az-manual select{width:100%;padding:11px 14px;border:1px solid var(--line);
  border-radius:4px;font:16px var(--sans);color:var(--ink)}
.az-manual input:focus,.az-manual select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(26,111,181,.14)}
.az-manual button{margin-top:20px}

/* ---------- contact layout: calendar first, form below ---------- */
.cal-primary{max-width:940px;margin:0 auto}
.cal-primary .cal-head{padding:18px 24px}
.cal-primary .cal-head .mo{font-size:20px}
.cal-primary .cal-days .d{padding:14px 4px}
.cal-primary .cal-slots .col{padding:16px 10px;gap:10px}
.cal-primary .slot{padding:12px 4px;font-size:13.5px}
.cal-primary .cal-note{justify-content:center}
.contact-info{display:grid;gap:2px;background:var(--line);border:1px solid var(--line);border-radius:6px;
  overflow:hidden;margin-top:26px}
.contact-info.row{grid-template-columns:repeat(3,1fr);max-width:940px;margin:30px auto 0}
@media(max-width:760px){.contact-info.row{grid-template-columns:1fr}}
.contact-info.row .ci{justify-content:center}
.contact-info .ci{background:#fff;padding:18px 22px;display:flex;align-items:center;gap:14px}
.contact-info .ci svg{width:20px;height:20px;color:var(--brand);flex:none}
.contact-info .ci a{color:var(--ink);text-decoration:none;font-weight:600}
.contact-info .ci a:hover{color:var(--brand)}
.contact-info .ci span{color:var(--ink);font-weight:600}

/* ---------- footer ---------- */
footer.site{background:var(--navy-deep);color:#aeb8d2;font-size:14px;padding:46px 0 32px}
footer.site .cols{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:34px;
  padding-bottom:28px;border-bottom:1px solid rgba(255,255,255,.1)}
@media(max-width:820px){footer.site .cols{grid-template-columns:1fr;gap:24px}}
footer.site .fbrand b{font-family:var(--serif);color:#fff;font-size:20px;font-weight:600;display:block}
footer.site .fbrand span{color:var(--teal-soft);font-size:9.5px;font-weight:700;
  letter-spacing:.34em;text-transform:uppercase;display:block;margin-top:3px}
footer.site p{color:#9aa6c6;max-width:44ch;margin-top:14px;font-size:14px;line-height:1.55}
footer.site h5{color:#fff;font-size:12px;text-transform:uppercase;letter-spacing:.14em;
  margin-bottom:14px;font-weight:700}
footer.site ul{list-style:none;padding:0;margin:0}
footer.site li{margin-bottom:10px}
footer.site a{color:#c3cbe4;text-decoration:none}
footer.site a:hover{color:#fff}
footer.site .disc{padding-top:22px;font-size:12.5px;color:#7d88a8;line-height:1.6}
footer.site .disc p{max-width:none;color:#7d88a8;font-size:12.5px}

/* ---------- claim bar (home) ---------- */
.claimbar{background:var(--navy);padding:30px 0;text-align:center}
.claimbar p{font-family:var(--serif);color:#fff;font-weight:600;font-size:clamp(18px,2.3vw,25px);
  line-height:1.45;max-width:none;margin:0}
.claimbar p em{font-style:normal;color:var(--teal)}

/* ---------- what you're seeing vs what you're not (home) ---------- */
.seenot{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:32px;align-items:stretch}
@media(max-width:860px){.seenot{grid-template-columns:1fr}}
.seecard{background:#fff;border:1px solid var(--line);border-top:4px solid #9aa6bd;border-radius:8px;
  padding:30px 30px 26px;box-shadow:var(--shadow-1);display:flex;flex-direction:column}
.seecard .sc-tag{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;
  color:var(--mut);margin-bottom:10px}
.seecard h3{font-size:clamp(20px,2vw,24px);margin-bottom:16px}
.seecard ul{list-style:none;padding:0;margin:0 0 20px}
.seecard li{position:relative;padding:11px 0 11px 30px;font-size:15.5px;line-height:1.5;border-top:1px solid var(--line)}
.seecard li:first-child{border-top:0}
.seecard li::before{content:"";position:absolute;left:4px;top:19px;width:8px;height:8px;border-radius:50%;background:#9aa6bd}
.seecard .sc-note{margin-top:auto;padding-top:16px;border-top:1px solid var(--line);
  font-family:var(--serif);font-size:16.5px;color:var(--navy);font-weight:600;line-height:1.5;margin-bottom:0}
.seecard.not{background:var(--grad-deep);border-color:transparent;border-top-color:var(--teal)}
.seecard.not .sc-tag{color:#8fd8f2}
.seecard.not h3{color:#fff}
.seecard.not li{border-top-color:rgba(255,255,255,.14);color:#e5f0fa}
.seecard.not li::before{background:var(--teal)}
.seecard.not .sc-note{border-top-color:rgba(255,255,255,.18);color:#fff}

/* ---------- conversion split: analyzer input + live calendar (home) ---------- */
.convert{display:grid;grid-template-columns:1fr 1.3fr;gap:22px;align-items:stretch}
@media(max-width:880px){.convert{grid-template-columns:1fr}}
.cv-card{background:#fff;border:1px solid var(--line);border-top:4px solid var(--brand);border-radius:8px;
  padding:30px 30px 24px;box-shadow:var(--shadow-1);display:flex;flex-direction:column}
.cv-card.cal{border-top-color:var(--teal)}
.cv-tag{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;
  color:var(--mut);margin-bottom:10px}
.cv-card h3{font-size:clamp(20px,2vw,24px);margin-bottom:10px}
.cv-card>p{font-size:15.5px;line-height:1.55}
.cv-form{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.cv-form input{flex:1;min-width:200px;padding:14px 16px;border:1px solid var(--line);border-radius:4px;
  font:16px/1.4 var(--sans);color:var(--ink);background:#fff}
.cv-form input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(26,111,181,.14)}
.cv-form .btn{white-space:nowrap}
.cv-calwrap{margin-top:6px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}
.cv-calwrap iframe{display:block;width:100%;height:560px;border:0;background:#fff}
.cv-fine{font-size:12.5px;color:var(--mut);margin:12px 0 0}

/* ---------- floating booking prompt (all pages without a calendar) ---------- */
.bookpop{position:fixed;right:22px;bottom:22px;z-index:150;display:flex;flex-direction:column;
  align-items:flex-end;gap:12px;opacity:0;transform:translateY(14px);
  transition:opacity .5s ease,transform .5s ease}
.bookpop.show{opacity:1;transform:none}
.bookpop .bp-chip{display:flex;align-items:center;gap:10px;background:var(--navy);color:#fff;border:0;
  border-radius:100px;padding:14px 20px;font:600 14.5px var(--sans);cursor:pointer;
  box-shadow:var(--shadow-3);transition:background .16s}
.bookpop .bp-chip:hover{background:var(--brand)}
.bookpop .bp-chip .gdot{width:8px;height:8px;border-radius:50%;background:#37d67a;flex:none}
.bookpop .bp-chip .bp-x{margin-left:4px;color:rgba(255,255,255,.6);font-size:16px;line-height:1;padding:2px}
.bookpop .bp-chip .bp-x:hover{color:#fff}
.bookpop .bp-panel{display:none;width:min(420px,calc(100vw - 32px));background:#fff;
  border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-3);overflow:hidden}
.bookpop.open .bp-panel{display:block}
.bookpop .bp-head{display:flex;align-items:center;justify-content:space-between;gap:10px;
  background:var(--navy);color:#fff;padding:13px 18px}
.bookpop .bp-head b{font-family:var(--serif);font-size:16px;font-weight:600}
.bookpop .bp-close{background:none;border:0;color:rgba(255,255,255,.7);font-size:20px;line-height:1;
  cursor:pointer;padding:4px 8px;border-radius:5px}
.bookpop .bp-close:hover{color:#fff;background:rgba(255,255,255,.12)}
.bookpop .bp-panel iframe{display:block;width:100%;height:min(520px,58vh);border:0;background:#fff}
.bookpop .bp-fine{font-size:12px;color:var(--mut);padding:10px 16px;text-align:center;margin:0;max-width:none}
@media(max-width:640px){
  .bookpop{right:12px;bottom:12px;left:12px}
  .bookpop .bp-panel{width:100%}
  .bookpop .bp-chip{align-self:flex-end}
}
/* analyze page: keep the prompt clear of the fixed chat input bar */
body.dark .bookpop{bottom:118px}

/* ---------- services: strategy / implementation labels ---------- */
.tier .bodyc .sl{font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--brand);margin:18px 0 6px}
.tier .bodyc .sl:first-of-type{margin-top:16px}

/* ---------- risk copy emphasis ---------- */
.risk h3{font-weight:700}
.risk p strong{color:var(--brand);font-weight:700}
.risk .headline{font-family:var(--serif);font-size:clamp(19px,2vw,23px);color:var(--navy);
  font-weight:600;line-height:1.35;margin:0 0 18px}

/* ---------- scroll reveal ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s ease}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.08s}
.reveal.d2{transition-delay:.16s}
.reveal.d3{transition-delay:.24s}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .hero canvas.qfield{display:none}
  html{scroll-behavior:auto}
  .msg,.chat-cta{opacity:1;transform:none;transition:none}
}

/* ============================================================
   DARK PAGE (analyze), full terminal treatment
   ============================================================ */
body.dark{background:var(--navy-panel);color:#b6c6d6}
body.dark .nav{background:rgba(13,27,42,.94);border-bottom:1px solid #1e3a55}
body.dark .navlinks a{color:#c9d8e6}
body.dark .navlinks a:not(.btn):hover{color:var(--teal)}
body.dark .navlinks a.active:not(.btn){color:var(--teal)}
body.dark .navtoggle span{background:#e8f1f8}
@media(max-width:980px){
  body.dark .navlinks{background:#0d1b2a;border-bottom-color:#1e3a55}
}
body.dark .hero{background:linear-gradient(150deg,#0d1b2a 0%,#0f2740 62%,#123a5e 100%)}
body.dark section.band{background:#0a1521}
body.dark h1,body.dark h2,body.dark h3,body.dark h4{color:#eef4fa}
body.dark .eyebrow{color:var(--teal)}
body.dark strong,body.dark b{color:#fff}
body.dark .mut,body.dark .figcap{color:#7d93a8}
body.dark .textlink{color:var(--teal)}
body.dark .chatpanel{border-color:#255172;box-shadow:0 34px 90px rgba(0,0,0,.55)}
body.dark .card{background:#0f2233;border-color:#1e3a55}
body.dark .card p{color:#a9bccd}
body.dark .az-search label{color:#c9d8e6}
body.dark .az-search input{background:#0f2233;border-color:#1e3a55;color:#e8f1f8;box-shadow:none}
body.dark .az-search input::placeholder{color:#5f7d97}
body.dark .az-search input:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(59,196,232,.16)}
body.dark .az-list{background:#0f2233;border-color:#1e3a55;box-shadow:0 20px 44px rgba(0,0,0,.5)}
body.dark .az-list li{border-bottom-color:#1e3a55}
body.dark .az-list li:hover,body.dark .az-list li.on{background:#13293d}
body.dark .az-list .co{color:#e8f1f8}
body.dark .az-list .meta{color:#7d93a8}
body.dark .az-hint{color:#7d93a8}
body.dark .az-hint a{color:var(--teal)}
body.dark .az-dash{background:#0f2233;border-color:#1e3a55;box-shadow:0 24px 60px rgba(0,0,0,.4)}
body.dark .az-grid{background:#1e3a55}
body.dark .az-card{background:#0f2233}
body.dark .az-card .k{color:#7d93a8}
body.dark .az-card .v{color:#eef4fa}
body.dark .az-card .s{color:#7d93a8}
body.dark .az-card.accent{background:#122c44}
body.dark .az-card.accent .v{color:var(--teal)}
body.dark .az-card.flag .v{color:#8fc4ea}
body.dark .az-readbar{background:#0c1d2d;border-top-color:#1e3a55}
body.dark .az-readbar .lab{color:#a9bccd}
body.dark .az-readbar .lab b{color:#fff}
body.dark .az-readbar .track{background:#13293d}
body.dark .az-note{border-top-color:#1e3a55;color:#a9bccd}
body.dark .az-manual{background:#0f2233;border-color:#1e3a55;box-shadow:none}
body.dark .az-manual .sub{color:#7d93a8}
body.dark .az-manual label{color:#c9d8e6}
body.dark .az-manual input,body.dark .az-manual select{background:#0d1b2a;border-color:#1e3a55;color:#e8f1f8}
body.dark .az-manual input:focus,body.dark .az-manual select:focus{border-color:var(--teal);
  box-shadow:0 0 0 3px rgba(59,196,232,.16)}
/* modal stays light on the dark page */
body.dark .modal h3{color:var(--navy)}
body.dark .modal .miniform label{color:var(--ink)}
body.dark .modal b,body.dark .modal strong{color:var(--ink)}
body.dark .modal-done p{color:var(--body)}

/* ============================================================
   V11: page rhythm, dark how-we-work, homepage split conversion,
   custom booking widget + contact funnel, services situation grid
   ============================================================ */

/* ---------- how we work on navy (the offer after the pain) ---------- */
.howwork{background:var(--grad-deep);position:relative;overflow:hidden;isolation:isolate}
.howwork::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(1000px 520px at 88% -10%,rgba(59,196,232,.26),transparent 55%)}
.howwork .wrap{position:relative;z-index:1}
.howwork h1,.howwork h2{color:#fff}
.howwork .eyebrow{color:var(--teal)}
.howwork .card{box-shadow:0 20px 54px rgba(3,8,26,.42)}
.howwork .card:hover{box-shadow:0 26px 64px rgba(3,8,26,.5)}

/* ---------- who we are, light band variant ---------- */
.wholight .who-names .n{border-left-color:var(--brand)}
.wholight .who-names .n b{color:var(--navy)}
.wholight .who-names .n span{color:var(--mut)}

/* ---------- homepage split: mini analyzer + booking widget ---------- */
.splitcta{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;padding:0}
@media(max-width:960px){.splitcta{grid-template-columns:1fr}}
.split-half{padding:64px 44px;display:flex}
.split-left{background:var(--navy-panel);color:#b6c6d6;justify-content:flex-end}
.split-right{background:var(--band);justify-content:flex-start}
@media(max-width:960px){.split-half{justify-content:center}}
.split-inner{width:100%;max-width:calc(var(--wrap)/2 - 26px)}
.split-left .eyebrow{color:var(--teal)}
.split-left h2{color:#eef4fa}
.split-left>.split-inner>p{color:#a9bccd;font-size:15.5px}

/* mini analyzer: a real chat window, analyze page treatment */
.mini-chat{background:#0e2032;border:1px solid #1e3a55;border-radius:12px;overflow:hidden;
  display:flex;flex-direction:column;margin-top:20px;box-shadow:0 24px 60px rgba(3,10,24,.45)}
.mini-chat-head{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:12px 16px;border-bottom:1px solid #1e3a55;background:rgba(13,27,42,.75);
  font-size:11.5px;color:#5f7d97;letter-spacing:.04em}
.mini-chat-head .live{display:inline-flex;align-items:center;gap:7px;font-size:10.5px;
  font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#8fd8f2}
.mini-chat-head .gdot{width:7px;height:7px;border-radius:50%;background:#37d67a;
  animation:softpulse 2.4s ease-in-out infinite}
.mini-thread{padding:18px 16px 14px;display:flex;flex-direction:column;gap:12px;
  max-height:330px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#1e3a55 transparent}
.mini-az-form{display:flex;gap:12px;align-items:center;margin:0;padding:12px 14px;
  border-top:1px solid #1e3a55;background:rgba(13,27,42,.9)}
.mini-az-form input{flex:1;min-width:0;background:#13293d;border:1px solid #1f425e;border-radius:10px;
  padding:13px 16px;color:#e8f1f8;font:15.5px/1.4 var(--sans)}
.mini-az-form input::placeholder{color:#5f7d97}
.mini-az-form input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(59,196,232,.15)}
.mini-send{width:46px;height:46px;border-radius:10px;background:#1f425e;color:#9fc4de;border:0;
  display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none;
  transition:background .15s,color .15s}
.mini-send:hover{background:var(--brand);color:#fff}
/* gentle system-is-alive signals */
@keyframes softpulse{0%,100%{opacity:1}50%{opacity:.35}}
.mini-msg.ai .avatar.pulse{position:relative}
.mini-msg.ai .avatar.pulse::after{content:"";position:absolute;inset:-3px;border-radius:11px;
  border:1px solid rgba(59,196,232,.55);animation:ringfade 2.8s ease-out infinite}
@keyframes ringfade{0%{opacity:.7;transform:scale(.92)}70%{opacity:0;transform:scale(1.28)}100%{opacity:0}}
.mini-msg.ai .avatar.ghost{visibility:hidden}
/* seeded live read visualization inside a bubble */
.bubble.mini-viz{padding:12px 14px 8px;width:100%}
.bubble.mini-viz svg{display:block;width:100%;height:auto}
.mviz-line{stroke-dasharray:300;stroke-dashoffset:300;animation:vizdraw 2.2s .5s ease-out forwards}
@keyframes vizdraw{to{stroke-dashoffset:0}}
.mviz-halo{transform-box:fill-box;transform-origin:center;animation:vizhalo 2.8s 2.7s ease-out infinite;opacity:0}
@keyframes vizhalo{0%{transform:scale(.5);opacity:.7}70%{transform:scale(1.7);opacity:0}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){
  .mini-chat-head .gdot,.mini-msg.ai .avatar.pulse::after,.mviz-halo{animation:none}
  .mviz-line{animation:none;stroke-dashoffset:0}
}
/* mini analyzer thread: the same AI chat bubbles as the analyze page */
.mini-az-out{margin-top:16px;display:flex;flex-direction:column;gap:12px}
.mini-msg{max-width:100%}
.mini-msg.user{align-self:flex-end;background:var(--brand);color:#fff;
  border-radius:14px 14px 3px 14px;padding:10px 16px;font-size:14.5px;font-weight:500}
.mini-msg.ai{align-self:stretch;display:grid;grid-template-columns:30px 1fr;gap:10px}
.mini-msg.ai .avatar{width:30px;height:30px;border-radius:8px;background:var(--grad);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;flex:none;margin-top:2px}
.mini-msg.ai .bubble{background:#13293d;border:1px solid #1f425e;color:#d7e5f0;
  border-radius:3px 12px 12px 12px;padding:13px 17px;font-size:14px;line-height:1.62}
.mini-msg.ai .bubble b{color:#fff;font-weight:600}
.mini-msg.ai .bubble .hl{color:var(--gold-bright);font-weight:600}
.mini-actions{margin-top:16px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.mini-full{display:inline-flex;align-items:center;gap:10px;background:var(--brand);color:#fff;
  font-weight:600;font-size:15px;text-decoration:none;border-radius:3px;padding:13px 24px;
  transition:background .16s,box-shadow .16s;box-shadow:var(--shadow-1)}
.mini-full:hover{background:var(--brand-deep);box-shadow:0 6px 18px rgba(20,80,138,.35)}
.mini-fine{font-size:12px;color:#5f7d97;margin:14px 0 0}

/* ---------- custom booking widget (the crown jewel) ---------- */
.qcal{background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-2);overflow:hidden}
.qcal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:var(--navy);color:#fff;padding:15px 22px}
.qcal-head .t{font-family:var(--serif);font-size:17px;font-weight:600}
.qcal-head .live{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:700;
  letter-spacing:.09em;text-transform:uppercase;color:#bfe6f7}
.qcal-head .live .gdot{width:7px;height:7px;border-radius:50%;background:#37d67a}
.qcal-body{padding:26px 26px 24px}
.qcal-q{font-family:var(--serif);font-size:clamp(20px,2.1vw,25px);font-weight:600;color:var(--navy);
  line-height:1.3;margin:0 0 8px;max-width:none}
.qcal-sub{font-size:14px;color:var(--mut);margin:0 0 20px}
.qcal-btns{display:flex;gap:12px;flex-wrap:wrap}
.qcal-alt{display:inline-flex;align-items:center;background:#fff;color:var(--brand);border:1.5px solid var(--brand);
  font:600 15px var(--sans);padding:12.5px 24px;border-radius:3px;cursor:pointer;transition:background .15s}
.qcal-alt:hover{background:var(--sky-pale)}
/* institutional calendar grid */
.qcal-month{font-family:var(--serif);font-size:17px;font-weight:600;color:var(--navy);
  text-align:center;letter-spacing:.01em;margin-bottom:12px}
.qcal-daysrow{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-bottom:18px;
  border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--line)}
.qcal-day{display:block;border:0;border-left:1px solid var(--line);background:#fff;padding:12px 4px 11px;
  text-align:center;cursor:pointer;transition:background .15s}
.qcal-day:first-child{border-left:0}
.qcal-day .dow{display:block;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--mut)}
.qcal-day .dnum{display:block;font-family:var(--serif);font-size:21px;font-weight:600;color:var(--navy);margin-top:3px;
  font-variant-numeric:tabular-nums}
.qcal-day .dmon{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;
  color:var(--mut);margin-top:2px}
.qcal-day:hover{background:var(--sky-pale)}
.qcal-day.on{background:var(--navy)}
.qcal-day.on:hover{background:var(--navy)}
.qcal-day.on .dow,.qcal-day.on .dmon{color:#8fd8f2}
.qcal-day.on .dnum{color:#fff}
.qcal-slotgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:9px}
.qcal-slot{border:1px solid var(--brand);color:var(--brand);background:#fff;font:600 13.5px var(--sans);
  border-radius:4px;padding:11px 4px;text-align:center;cursor:pointer;font-variant-numeric:tabular-nums;
  transition:background .13s,color .13s}
.qcal-slot:hover{background:var(--sky-pale)}
.qcal-slot.sel{background:var(--brand);color:#fff}
.qcal-slot.off{border-color:var(--line);color:#b6bfd0;background:var(--band);cursor:default;text-decoration:line-through}
.qcal-note{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--mut);margin-top:14px}
.qcal-note .gdot{width:7px;height:7px;border-radius:50%;background:#37d67a}
.qcal-back{background:none;border:0;color:var(--brand);font:600 14px var(--sans);cursor:pointer;padding:0;
  margin-bottom:14px;display:inline-flex;align-items:center;gap:6px}
.qcal-back:hover{color:var(--brand-deep)}
/* details + confirmation inside the widget */
.qcal-form label{display:block;font-size:13px;font-weight:600;color:var(--ink);margin:14px 0 6px}
.qcal-form input,.qcal-form textarea{width:100%;padding:12px 15px;border:1px solid var(--line);border-radius:4px;
  font:16px/1.5 var(--sans);color:var(--ink);background:#fff}
.qcal-form textarea{min-height:110px;resize:vertical}
.qcal-form input:focus,.qcal-form textarea:focus{outline:none;border-color:var(--brand);
  box-shadow:0 0 0 3px rgba(26,111,181,.14)}
.qcal-form .qcal-btns{margin-top:22px}
.qcal-chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}
.qcal-chip{border:1px solid var(--line);background:#fff;color:var(--body);font:600 14px var(--sans);
  border-radius:100px;padding:10px 18px;cursor:pointer;transition:border-color .14s,background .14s,color .14s}
.qcal-chip:hover{border-color:var(--brand)}
.qcal-chip.on{border-color:var(--brand);background:var(--sky-pale);color:var(--brand-deep)}
.qcal-picked{display:flex;align-items:center;gap:10px;background:var(--sky-pale);border:1px solid rgba(26,111,181,.25);
  border-radius:6px;padding:12px 16px;font-size:14.5px;color:var(--brand-deep);font-weight:600;margin-bottom:6px}
.qcal-picked svg{width:17px;height:17px;flex:none}
.qcal-done{text-align:center;padding:10px 0 4px}
.qcal-done .ok{width:60px;height:60px;border-radius:50%;background:var(--sky-pale);color:var(--good);
  display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.qcal-done h3{font-size:24px;margin-bottom:8px}
.qcal-done p{font-size:14.5px;color:var(--body);max-width:44ch;margin:0 auto 8px}
.qcal-meeting{margin:18px auto 6px;max-width:420px;text-align:left;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.qcal-meeting .mrow{display:flex;justify-content:space-between;gap:14px;padding:12px 18px;background:#fff;
  border-top:1px solid var(--line);font-size:14.5px}
.qcal-meeting .mrow:first-child{border-top:0;background:var(--navy);color:#fff;font-weight:600;
  font-family:var(--serif);font-size:16px}
.qcal-meeting .mk{color:var(--mut);font-weight:600;font-size:13px}
.qcal-meeting .mv{color:var(--ink);font-weight:600;text-align:right}
.qcal-fine{font-size:12.5px;color:var(--mut);margin-top:14px;text-align:center}
.qcal-fine a{color:var(--brand);font-weight:600}
.qcal-err{color:var(--brand-deep);background:var(--sky-pale);border:1px solid rgba(26,111,181,.3);
  border-radius:5px;font-size:13.5px;font-weight:600;padding:10px 14px;margin-top:14px}

/* ---------- contact page: premium typeform funnel ---------- */
.funnelpage{padding:46px 0 70px}
.funnel{max-width:840px;margin:0 auto}
.funnel-progress{display:flex;align-items:center;gap:10px;margin-bottom:26px}
.funnel-progress .fp-lab{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--brand);white-space:nowrap}
.funnel-progress .fp-track{flex:1;height:5px;border-radius:100px;background:var(--line);overflow:hidden}
.funnel-progress .fp-fill{height:100%;background:var(--grad);border-radius:100px;width:0;transition:width .45s ease}
.funnel .qcal{border-radius:14px}
.funnel .qcal-body{padding:52px 44px 44px}
@media(max-width:640px){.funnel .qcal-body{padding:32px 20px 28px}}
.funnel .funnel-step{text-align:center}
.funnel .qcal-q{font-size:clamp(30px,4.6vw,46px);line-height:1.12;letter-spacing:-.015em;
  max-width:22ch;margin:0 auto 14px}
.funnel .qcal-sub{font-size:15px;margin-bottom:28px}
.funnel .qcal-btns{justify-content:center}
.funnel .qcal-daysrow,.funnel .qcal-slotgrid{max-width:600px;margin-left:auto;margin-right:auto}
.funnel .qcal-daysrow{margin-bottom:18px}
.funnel .qcal-note{justify-content:center}
.funnel .qcal-form{max-width:460px;margin:0 auto;text-align:left}
.funnel .qcal-picked{max-width:460px;margin:0 auto 10px;justify-content:center}
.funnel .qcal-back{margin-bottom:18px}
.funnel-step{animation:fstepIn .4s ease}
@keyframes fstepIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.funnel-step{animation:none}}
/* pre-frame block inside the flow */
.qcal-preframe{font-family:var(--serif);font-size:clamp(16px,1.8vw,19px);color:var(--navy);font-weight:600;
  line-height:1.55;background:var(--sky-pale);border-radius:10px;padding:20px 26px;
  max-width:54ch;margin:0 auto 26px;text-align:center}
.qcal-preframe em{font-style:normal;color:var(--brand)}
/* inline widget: suggested slot banner above the live grid */
.qcal-suggestrow{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  background:var(--sky-pale);border:1px solid rgba(26,111,181,.25);border-radius:8px;
  padding:14px 18px;margin-bottom:18px}
.qcal-suggestrow .qs{font-family:var(--serif);font-weight:600;color:var(--navy);font-size:16.5px;line-height:1.35}
.qcal-suggestrow .btn{padding:11px 20px;font-size:14.5px}

/* ---------- small page bar (why quantum) ---------- */
.pagebar{background:var(--grad-deep);position:relative;overflow:hidden;isolation:isolate;
  padding:34px 0;text-align:center}
.pagebar::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(700px 300px at 85% -30%,rgba(59,196,232,.3),transparent 60%)}
.pagebar .wrap{position:relative;z-index:1}
.pagebar h1{color:#fff;font-size:clamp(26px,3.4vw,38px);margin:0}
.pagebar .pb-sub{color:#bfe6f7;font-size:14px;margin:8px auto 0;max-width:56ch}

/* why quantum: alternate step backgrounds for rhythm */
.seq-step.alt{background:var(--band);border-radius:12px;padding:40px 34px}
.seq-step.alt+.seq-step{border-top:0}
.seq-step+.seq-step.alt{border-top:0}
@media(max-width:640px){.seq-step.alt{padding:26px 20px}}

/* ---------- services: four situation visualizations ---------- */
.sitgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
@media(max-width:1100px){.sitgrid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.sitgrid{grid-template-columns:1fr}}
.sit{background:#fff;border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:8px;
  padding:24px 22px 22px;display:flex;flex-direction:column;box-shadow:var(--shadow-1);
  transition:box-shadow .2s,transform .2s}
.sit:hover{box-shadow:var(--shadow-2);transform:translateY(-3px)}
.sit .sit-tag{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.13em;
  color:var(--brand);margin-bottom:12px}
.sit .viz{border:1px solid var(--line);border-radius:6px;background:#fbfdff;padding:12px 12px 8px;margin-bottom:16px}
.sit .viz svg{display:block;width:100%;height:auto}
.sit h3{font-family:var(--serif);font-size:18.5px;line-height:1.3;margin-bottom:10px}
.sit p{font-size:14px;line-height:1.6;margin-bottom:14px}
.sit .sit-cta{margin-top:auto;font-size:14px;font-weight:600;color:var(--brand);text-decoration:none;
  border-top:1px solid var(--line);padding-top:14px;display:block}
.sit .sit-cta:hover{color:var(--brand-deep)}

/* ============================================================
   V13: The Quantum View blog
   ============================================================ */
.bloghead{text-align:left}
.bloghead .bh-row{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.bloghead .avatar-lg{width:92px;height:92px;border-radius:50%;background:var(--grad);color:#fff;
  display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:32px;
  font-weight:600;flex:none;margin:0;box-shadow:0 0 0 5px rgba(255,255,255,.16)}
.bloghead h1{text-align:left}
.bloghead .pb-sub{font-size:15px;margin:8px 0 0;max-width:none;text-align:left}
.bloghead .pb-by{color:#8fd8f2;font-size:12.5px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;margin:10px 0 0;max-width:none;text-align:left}
/* four per row card grid, visualization leading each card */
.postgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:34px}
@media(max-width:1100px){.postgrid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.postgrid{grid-template-columns:1fr}}
.postcard4{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);
  border-radius:8px;overflow:hidden;text-decoration:none;box-shadow:var(--shadow-1);
  transition:box-shadow .2s,transform .2s}
.postcard4:hover{box-shadow:var(--shadow-2);transform:translateY(-3px)}
.postcard4 .cardviz{background:#fbfdff;border-bottom:1px solid var(--line);padding:10px 12px}
.postcard4 .cardviz svg{display:block;width:100%;height:auto}
.postcard4 .inner{padding:16px 18px 18px;display:flex;flex-direction:column;flex:1}
.postcard4 h3{font-family:var(--serif);font-size:16px;line-height:1.35;color:var(--navy);margin:0 0 8px}
.postcard4 .pmeta{font-size:10.5px;color:var(--mut);font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;margin-bottom:8px}
.postcard4 p{color:var(--body);font-size:13px;line-height:1.55;margin:0;max-width:none}
.postcard4 .more{color:var(--brand);font-weight:600;font-size:13px;margin-top:12px}
/* article */
.post{max-width:760px;margin:0 auto}
.post .p-eyebrow{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--brand);margin-bottom:14px}
.post h1{font-size:clamp(28px,3.6vw,42px);line-height:1.12}
.post .dek{font-family:var(--serif);font-style:italic;font-size:clamp(17px,1.9vw,20px);
  color:var(--body);margin-top:14px;line-height:1.5}
.post .byline{display:flex;align-items:center;gap:14px;padding:18px 0;margin:24px 0 8px;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.post .byline .av{width:46px;height:46px;border-radius:50%;background:var(--grad-deep);color:#fff;
  display:flex;align-items:center;justify-content:center;font-family:var(--serif);
  font-size:16px;font-weight:600;flex:none}
.post .byline .who b{display:block;font-size:15px;color:var(--ink);font-weight:600}
.post .byline .who span{font-size:13px;color:var(--mut)}
.post .byline .when{margin-left:auto;font-size:13px;color:var(--mut);text-align:right;white-space:nowrap}
.post article{margin-top:26px}
.post article p{font-size:16.5px;line-height:1.72;margin-bottom:18px;max-width:none}
.post article h2{font-size:clamp(21px,2.4vw,27px);margin:36px 0 14px}
.post article h3{font-size:18px;margin:28px 0 10px;color:var(--ink)}
.post article ul{margin:0 0 20px;padding-left:24px}
.post article li{font-size:16px;line-height:1.65;margin-bottom:12px}
.post article blockquote{border-left:4px solid var(--teal);background:var(--band);
  border-radius:0 8px 8px 0;padding:18px 24px;margin:24px 0;max-width:none}
.post article blockquote p{font-family:var(--serif);font-size:17.5px;color:var(--navy);
  font-weight:600;line-height:1.5;margin:0}
.post .pviz{margin:28px 0;border:1px solid var(--line);border-radius:8px;background:#fbfdff;
  padding:22px 22px 14px}
.post .pviz svg{display:block;width:100%;height:auto}
.post .pviz .cap{font-size:12.5px;color:var(--mut);text-align:center;margin:10px 0 0;max-width:none}
.post .backrow{margin-top:40px;padding-top:22px;border-top:1px solid var(--line)}
.post .backrow a{font-weight:600;text-decoration:none;color:var(--brand)}
.post article table{width:100%;border-collapse:collapse;margin:0 0 10px;font-size:15px}
.post article th{background:var(--navy);color:#fff;text-align:left;padding:11px 16px;
  font-weight:600;font-size:13.5px;letter-spacing:.02em}
.post article td{border:1px solid var(--line);padding:11px 16px;font-variant-numeric:tabular-nums}
.post article .tfoot{font-size:12.5px;color:var(--mut);margin-bottom:20px}

/* ---------- services: where is your plan at, compact four up grid ---------- */
.bigopts{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:30px}
@media(max-width:860px){.bigopts{grid-template-columns:1fr}}
.bigopt{background:#fff;border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:8px;
  padding:24px 26px 22px;box-shadow:var(--shadow-1);transition:box-shadow .2s,transform .2s}
.bigopt:hover{box-shadow:var(--shadow-2);transform:translateY(-3px)}
.bigopt .word{font-family:var(--sans);font-weight:800;font-size:clamp(23px,2.4vw,31px);line-height:1;
  letter-spacing:-.01em;text-transform:uppercase;color:var(--navy);
  border-left:4px solid var(--teal);padding-left:14px;margin-bottom:14px}
.bigopt .big{font-family:var(--serif);font-size:clamp(16.5px,1.7vw,19px);color:var(--navy);font-weight:600;
  line-height:1.42;margin-bottom:10px;max-width:none}
.bigopt p{font-size:14.5px;line-height:1.58;margin-bottom:0;max-width:none}


/* ==================================================================
   HERO, three panel rotation  (review call)
   Panel 1 carries the field and the tagline. Panels 2 and 3 fall back to
   a subdued grey so the copy carries them on its own. The video is a hero
   level layer whose opacity follows data-slide, not something living in a
   panel, because it has to cross fade independently of the copy sliding
   over it. All three panels stay in the DOM in one grid cell, so the
   module never changes height and the h1 is always readable by search.
   ================================================================== */
.hero{position:relative;overflow:hidden;isolation:isolate;padding:0;color:#fff;
  background:linear-gradient(155deg,#2b323d 0%,#232932 55%,#1b2028 100%)}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;
  opacity:0;transition:opacity .9s ease}
.hero[data-slide="0"] .hero-video{opacity:1}
.hero::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(100deg,rgba(8,12,20,.90) 0%,rgba(8,12,20,.66) 42%,
    rgba(8,12,20,.24) 74%,rgba(8,12,20,.46) 100%)}
.hero .wrap{position:relative;z-index:2;padding:78px 26px 62px;width:100%}

.herorot{display:grid;min-height:290px}
.herorot>.hslide{grid-area:1/1;opacity:0;transform:translateY(8px);pointer-events:none;
  transition:opacity .6s cubic-bezier(.4,0,.2,1),transform .6s cubic-bezier(.4,0,.2,1);
  align-self:center}
.herorot>.hslide.on{opacity:1;transform:none;pointer-events:auto}

.hero-tag{font-family:var(--serif);font-style:italic;font-weight:700;
  font-size:clamp(30px,4.6vw,60px);line-height:1.07;letter-spacing:-.02em;color:#fff;
  max-width:19ch;text-wrap:balance;margin:0}
.hero-pos{margin:22px 0 0;font-size:clamp(11.5px,1.1vw,13.5px);font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;color:#8fd8f2}
.hero-pos::before{content:"";display:block;width:50px;height:2px;background:var(--teal);
  margin-bottom:20px;opacity:.9}
.hero .kicker{text-transform:uppercase;letter-spacing:.2em;font-size:12px;font-weight:700;
  color:#bfe6f7;margin-bottom:14px}
.hero h1{color:#fff;max-width:23ch;font-size:clamp(29px,3.7vw,46px);margin:0}
/* Slides 2 and 3 are a single statement each, so the type does the work:
   full content width, no kicker above it, and large enough to read from across
   a room. Scoped under .hero so it beats the generic .hero h1 sizing. */
.hero .hero-big{font-family:var(--serif);font-weight:700;color:#fff;margin:0;
  font-size:clamp(33px,5.2vw,68px);line-height:1.06;letter-spacing:-.022em;
  max-width:16ch;text-wrap:balance}
/* the full sentence needs a smaller size and a wider measure than the short
   statement, or it sets at display scale and runs to five cramped lines */
.hero .hero-big.hero-para{font-size:clamp(23px,3.2vw,42px);line-height:1.2;
  font-weight:600;max-width:24ch}

.hdots{display:flex;gap:9px;margin-top:34px}
.hdots button{width:26px;height:3px;padding:0;border:0;border-radius:2px;cursor:pointer;
  background:rgba(255,255,255,.26);transition:background .3s}
.hdots button[aria-selected="true"]{background:var(--teal)}
.hdots button:hover{background:rgba(255,255,255,.5)}
.hdots button:focus-visible{outline:2px solid var(--teal);outline-offset:3px}

/* market band: static, blue, directly under the rotation. Lifted out of the
   hero so it cannot move while the panels cycle. */
.mktband{background:var(--grad);color:#fff;padding:34px 0 38px}
.mkt-intro{max-width:900px;margin:0 auto 24px}
.mkt-intro .kicker{text-transform:uppercase;letter-spacing:.2em;font-size:11.5px;
  font-weight:700;color:#bfe6f7;margin-bottom:11px}
.mkt-intro h2{font-family:var(--serif);font-weight:700;color:#fff;margin:0;
  font-size:clamp(22px,2.5vw,32px);line-height:1.18;letter-spacing:-.015em;
  max-width:none;text-wrap:balance}
.mktband .mktpanel{margin:0 auto}
.mktband .actions{margin-top:24px;display:flex;gap:14px;flex-wrap:wrap}

@media(max-width:760px){
  .hero .wrap{padding:52px 22px 44px}
  .herorot{min-height:208px}
  .hero-tag{font-size:clamp(27px,8vw,38px);max-width:none}
  .hero .hero-big{font-size:clamp(28px,7.4vw,40px)}
  .herorot{min-height:230px}
  .mkt-intro{margin-bottom:18px}
  .hdots{margin-top:26px}
  .mktband{padding:22px 0 26px}
}
@media(prefers-reduced-motion:reduce){
  /* the only case where the field is genuinely suppressed. The poster frame
     carries the band instead, so the composition still reads. */
  .hero-video{display:none}
  .hero{background-image:linear-gradient(100deg,rgba(8,12,20,.90),rgba(8,12,20,.45)),
    url("hero/collision.jpg");background-size:cover;background-position:center}
  .herorot>.hslide{transition:none}
}

/* plan analysis as a full-width module (Caitlin #76: booking block removed) */
.splitcta.solo{grid-template-columns:1fr}
.splitcta.solo .split-left{justify-content:center}
.splitcta.solo .split-inner{max-width:760px}
.splitcta.solo .analysis-lede{margin-top:14px;margin-bottom:26px;max-width:62ch}

/* lean footer (Caitlin #170: blurb, headings and identity line removed,
   nav list shifted up to sit level with the brand) */
footer.site .cols.lean{grid-template-columns:1.6fr 1fr 1fr;align-items:start}
footer.site .cols.lean ul{margin-top:2px}
@media(max-width:820px){footer.site .cols.lean{grid-template-columns:1fr;gap:22px}}

/* analyze page: the chat sits under a page header now (Caitlin #385), so it
   can no longer claim the full viewport below the nav */
.chatfull.has-pagehead{height:clamp(420px,calc(100vh - 68px - 190px),720px)}
@supports (height:100dvh){
  .chatfull.has-pagehead{height:clamp(420px,calc(100dvh - 68px - 190px),720px)}
}
/* the real booking widget inside the analyze modal */
.modal-booking{margin-top:6px}

/* 404 */
.fourofour{list-style:none;padding:0;margin:0;display:grid;gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.fourofour a{display:flex;flex-direction:column;gap:3px;padding:16px 18px;
  background:#fff;text-decoration:none;transition:background .18s}
.fourofour a:hover{background:var(--band)}
.fourofour b{color:var(--navy);font-size:15.5px;font-weight:600}
.fourofour span{color:var(--mut);font-size:13.5px}

/* the proof line under the how-we-work heading sits on navy */
.howwork .sec-head .lede{color:#b9d3e8;margin-top:14px;max-width:56ch}
