/* ============================================================
@font-face{font-family:"Cormorant Fallback";src:local("Georgia");size-adjust:105%;ascent-override:80%;descent-override:32%;line-gap-override:0%}
@font-face{font-family:"DM Sans Fallback";src:local("Arial");size-adjust:97%;ascent-override:92%;descent-override:29%;line-gap-override:0%}
   A2Z PRACTICE HUB - "digital calibre" dark theme (v45)
   Standalone software brand: electric violet + coral/amber ignite
   Layered ON TOP of foundation.css. Loaded after it on every page.
   ============================================================ */
:root{
  --v1:#12B5A5;      /* primary violet */
  --v2:#3FE0C4;      /* light violet */
  --v3:#0A7E77;      /* deep violet */
  --ig1:#FFB43D;     /* ignite coral */
  --ig2:#FF8A3D;     /* ignite pink */
  --am:#FFC24B;      /* amber accent */
  --ok:#7BE38F;      /* live green */
  --bad:#FF6B6B;     /* problem red */
  --bg0:#05141a;     /* deepest */
  --bg1:#0a1f28;     /* panel base */
  --bg2:#12303a;     /* raised */
  --tx:#EAF0F7;      /* primary text */
  --tx2:#AFC0CD;     /* secondary text */
  --tx3:#7E90A0;     /* muted */
  --hair:rgba(255,255,255,.08);
  --hair2:rgba(18,181,165,.22);
  /* redefine legacy gold vars -> teal so ANY leftover reference (eyebrows, tags, borders, accents) renders on-brand everywhere */
  --gold:#12B5A5;
  --goldd:#3FE0C4;
  --goldl:#0A7E77;
  --navy:#0a1f28;
  --navy2:#05141a;
  --navy3:#12303a;
}
/* ---- shell ---- */
body{background:var(--bg0);color:var(--tx)}
.wrap{max-width:1200px}
a{color:var(--v2)}
h1,h2,h3,.serif{color:var(--tx)}
.lede{color:var(--tx2)}
.eyebrow{color:var(--v2)}

/* ---- navbar (dark glass) ---- */
.navbar{background:rgba(6,16,28,.98);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--hair)}
nav.main a{color:var(--tx2)}
nav.main a:hover{color:#fff}
nav.main a.cta,.btn.gold{background:linear-gradient(120deg,var(--v1),var(--v2));color:#fff;box-shadow:0 12px 30px -12px rgba(18,181,165,.7)}
nav.main a.cta:hover,.btn.gold:hover{background:linear-gradient(120deg,var(--v2),var(--v1));color:#fff}
.wordmark b{color:var(--v2)}

/* ---- shared button system ---- */
.btn{background:var(--bg2);color:#fff;border-radius:11px;font-weight:700}
.btn.primary,.btn.grad{background:linear-gradient(120deg,var(--v1),var(--v2));color:#fff;box-shadow:0 16px 36px -14px rgba(18,181,165,.75);border:none}
.btn.primary:hover,.btn.grad:hover{transform:translateY(-2px)}
.btn.ghost{background:transparent;border:1px solid rgba(255,255,255,.2);color:#fff}
.btn.ghost:hover{border-color:var(--v2);color:#fff}

/* ---- reusable "ignite" second-line headline ---- */
.ignite{background:linear-gradient(100deg,var(--ig1),var(--ig2));-webkit-background-clip:text;background-clip:text;color:transparent}
.ignite-v{background:linear-gradient(100deg,var(--v2),var(--v1));-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---- HERO (Truedge-calibre) ---- */
header.site{background:radial-gradient(680px 380px at 88% 2%,rgba(18,181,165,.16),transparent 62%),linear-gradient(160deg,var(--bg1),var(--bg0));color:#fff}
header.site::before{display:none!important}
.heroGrid{display:grid;grid-template-columns:1.05fr .95fr;grid-template-areas:"text mock" "cta mock";gap:0 44px;align-items:center;padding:64px 0 72px}
.heroText{grid-area:text}
.heroMock{grid-area:mock}
.heroCtaWrap{grid-area:cta;align-self:start}
.heroGrid .eyebrow{margin-bottom:16px}
.livepill{display:inline-flex;align-items:center;gap:9px;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;
  color:#BFF3EA;background:rgba(18,181,165,.12);border:1px solid var(--hair2);padding:8px 15px;border-radius:99px;margin-bottom:22px}
.livepill .dot{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 0 rgba(123,227,143,.6);animation:pulseDot 2.4s ease-out infinite}
@keyframes pulseDot{0%{box-shadow:0 0 0 0 rgba(123,227,143,.55)}70%{box-shadow:0 0 0 9px rgba(123,227,143,0)}100%{box-shadow:0 0 0 0 rgba(123,227,143,0)}}
.heroH{font-family:"Cormorant Garamond","Cormorant Fallback",Georgia,serif;font-weight:700;color:#fff;line-height:1.08;letter-spacing:-.015em;
  font-size:clamp(2.4rem,5.4vw,4rem);margin:0 0 18px}
.heroSub{color:var(--tx2);font-size:1.08rem;line-height:1.62;max-width:46ch;margin:0 0 22px}
.heroPick{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--v2);font-weight:700;margin:0 0 12px}
.heroCta{display:flex;gap:14px;flex-wrap:wrap}
.btn.lg{padding:15px 30px;font-size:1rem}
/* two-audience hero buttons: bold "who you are" label + small descriptor, so the two groups are unmistakable */
.heroCta .btn.lg{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:15px 24px;text-align:left;line-height:1.2;min-width:230px}
.heroCta .btn.lg b{font-size:1.02rem;font-weight:700}
.heroCta .btn.lg small{font-size:.8rem;font-weight:400}
.heroCta .btn.primary small{color:#eafffb}
.heroCta .btn.ghost small{color:var(--tx2)}
.typeline{display:inline;color:transparent;background:linear-gradient(100deg,var(--ig1),var(--ig2));-webkit-background-clip:text;background-clip:text}
.caret{display:inline-block;width:3px;height:.92em;background:var(--ig1);margin-left:4px;transform:translateY(2px);animation:caretBlink 1s steps(1) infinite;border-radius:2px}
@keyframes caretBlink{50%{opacity:0}}

/* ---- HERO MOCK-UP (live app panel) ---- */
.heroMock{position:relative}
.mockGlow{position:absolute;inset:-30px;background:radial-gradient(closest-side,rgba(18,181,165,.18),transparent 72%);filter:blur(26px);z-index:0}
.mockPanel{position:relative;z-index:1;border-radius:20px;padding:20px;
  background:linear-gradient(165deg,rgba(255,255,255,.10),rgba(255,255,255,.03));
  border:1px solid var(--hair2);box-shadow:0 60px 120px -40px rgba(0,0,0,.7),0 8px 30px -12px rgba(0,0,0,.5);transform:perspective(1400px) rotateY(-6deg) rotateX(2deg)}
.mockBar{display:flex;align-items:center;gap:6px;margin-bottom:18px}
.mockBar span{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.28)}
.mockBar em{margin-left:10px;color:var(--tx3);font-size:.74rem;font-style:normal;letter-spacing:.04em}
.mockRow{display:flex;align-items:center;gap:12px;margin:13px 0}
.mockRow .l{color:#C9D4DD;font-size:.82rem;width:118px;flex:none}
.mockRow .b{flex:1;height:8px;border-radius:6px;background:rgba(255,255,255,.09);overflow:hidden}
.mockRow .b i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--v1),var(--v2));width:0;animation:growW 1.4s cubic-bezier(.2,.7,.2,1) forwards}
.mockRow .b.warn i{background:linear-gradient(90deg,var(--ig1),var(--ig2))}
.mockRow .v{color:#fff;font-size:.82rem;font-weight:700;width:52px;text-align:right;flex:none}
@keyframes growW{from{width:0}}
.mockChip{position:absolute;bottom:16px;right:16px;font-size:.64rem;font-weight:700;letter-spacing:.06em;color:var(--ok);
  background:rgba(123,227,143,.12);border:1px solid rgba(123,227,143,.32);padding:5px 11px;border-radius:99px;z-index:2}
@media(prefers-reduced-motion:reduce){.mockRow .b i{animation:none;width:var(--w,60%)}}

/* ---- SECTION HEADER (ignite pattern) ---- */
.bigHead{text-align:center;max-width:820px;margin:0 auto 40px}
.bigHead h2{font-family:"Cormorant Garamond","Cormorant Fallback",Georgia,serif;font-weight:700;font-size:clamp(2rem,4.6vw,3.1rem);line-height:1.12;letter-spacing:-.01em;color:#fff;margin:0 0 14px}
.bigHead p{color:var(--tx2);font-size:1.06rem;line-height:1.6;max-width:60ch;margin:0 auto}

/* ---- A2Z "one record" lifecycle rail (original signature device) ---- */
.oneRecord{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:34px}
.orLead{text-align:center;max-width:640px;margin:0 auto}
.kicker{display:inline-block;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:#8FE9DA;margin-bottom:14px}
.orLead h2,.secLead h2{font-family:"Cormorant Garamond","Cormorant Fallback",Georgia,serif;font-weight:700;font-size:clamp(2rem,4.4vw,3rem);line-height:1.12;letter-spacing:-.01em;color:#fff;margin:0 0 14px}
.orLead p,.secLead p{color:var(--tx2);font-size:1.05rem;line-height:1.6;max-width:56ch;margin:0 auto}
.lifecycle{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-top:10px;padding:20px 0}
.lcLine{position:absolute;left:8%;right:8%;top:34px;height:2px;background:rgba(255,255,255,.1);border-radius:2px;overflow:hidden}
.lcLine i{position:absolute;inset:0;background:linear-gradient(90deg,var(--v1),var(--v2));transform-origin:left;animation:lcFill 3s ease-out forwards}
@keyframes lcFill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.lcStep{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 8px;
  opacity:0;animation:lcPop .5s ease forwards;animation-delay:var(--d)}
@keyframes lcPop{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.lcDot{width:16px;height:16px;border-radius:50%;background:var(--bg2);border:2px solid var(--v1);margin-bottom:16px;position:relative;z-index:1;box-shadow:0 0 0 5px rgba(18,181,165,.08)}
.lcDot.on{background:var(--v1);box-shadow:0 0 0 5px rgba(18,181,165,.2),0 0 20px rgba(18,181,165,.6)}
.lcName{color:#fff;font-weight:700;font-size:.98rem;margin-bottom:4px}
.lcMeta{color:var(--tx3);font-size:.8rem;line-height:1.4;max-width:16ch}
@media(prefers-reduced-motion:reduce){.lcLine i{animation:none;transform:scaleX(1)}.lcStep{animation:none;opacity:1}}

/* ---- sector tiles (original A2Z, our real product range) ---- */
.secLead{text-align:center;max-width:640px;margin:0 auto 40px}
.sectorGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;max-width:1080px;margin:0 auto}
.sector{display:flex;flex-direction:column;text-decoration:none;background:linear-gradient(165deg,rgba(255,255,255,.05),rgba(255,255,255,.015));
  border:1px solid var(--hair);border-radius:16px;padding:26px 24px 22px;transition:transform .25s cubic-bezier(.2,.7,.2,1),border-color .25s ease,background .25s ease}
.sector:hover{transform:translateY(-5px);border-color:var(--hair2);background:linear-gradient(165deg,rgba(18,181,165,.09),rgba(255,255,255,.02))}
.sIco{width:46px;height:46px;border-radius:12px;background:rgba(18,181,165,.13);border:1px solid var(--hair2);display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.sector h3{font-family:"Cormorant Garamond","Cormorant Fallback",Georgia,serif;font-weight:700;font-size:1.4rem;color:#fff;margin:0 0 8px}
.sector p{color:var(--tx2);font-size:.9rem;line-height:1.5;margin:0 0 16px;flex:1}
.sGo{color:var(--v2);font-weight:700;font-size:.88rem;transition:color .2s ease}
.sector:hover .sGo{color:#fff}

/* ---- generic dark section rules ---- */
.sectionDark{padding:72px 0}
.sectionDark.alt{background:linear-gradient(180deg,var(--bg0),var(--bg1) 50%,var(--bg0))}
.rule{background:linear-gradient(90deg,transparent,var(--hair2),transparent)}
.footline,.firmline{color:var(--tx3)}
.firmline a{color:var(--v2)}
footer.site{background:var(--bg1);border-top:1px solid var(--hair)}

@media(max-width:820px){
  .lifecycle{grid-template-columns:1fr;gap:20px}
  .lcLine{display:none}
  .lcStep{flex-direction:row;gap:14px;text-align:left;align-items:center}
  .lcDot{margin-bottom:0}
  .lcMeta{max-width:none}
  .sectorGrid{grid-template-columns:1fr 1fr}

  .heroGrid{display:flex;flex-direction:column;gap:20px;padding:24px 0 44px}
  /* MOBILE HERO IMPACT: headline -> glowing product mock -> audience buttons, so the first screen looks like real software not just text */
  .heroText{order:1}
  .heroMock{order:2;max-width:420px;margin:0 auto;width:100%}
  .heroCtaWrap{order:3}
  .heroSub{margin-bottom:4px}
  .mockPanel{transform:none;padding:16px}
  .mockRow{margin:10px 0}
  .mockGlow{inset:-18px;filter:blur(30px);background:radial-gradient(closest-side,rgba(18,181,165,.28),transparent 70%)}
  .mockDetail{display:none}
  .vs{grid-template-columns:1fr;gap:16px}
  .exCard,.exCard.rev{grid-template-columns:1fr;gap:22px}
  .exCard.rev .exText{order:0}
}

/* ---- PM workflow mock-up rows ---- */
.wfRow{display:flex;align-items:center;gap:12px;margin:11px 0}
.wfDot{width:12px;height:12px;border-radius:50%;background:rgba(255,255,255,.14);border:2px solid rgba(255,255,255,.25);flex:none}
.wfDot.done{background:var(--ok);border-color:var(--ok);box-shadow:0 0 8px rgba(123,227,143,.5)}
.wfDot.run{background:var(--v1);border-color:var(--v2);box-shadow:0 0 0 0 rgba(18,181,165,.5);animation:pulseDot 2s ease-out infinite}
.wfName{color:#D6E0E6;font-size:.9rem;flex:1}
.wfTag{font-size:.64rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:4px 9px;border-radius:99px;color:var(--tx3);background:rgba(255,255,255,.05);border:1px solid var(--hair)}
.wfTag.auto{color:var(--ok);background:rgba(123,227,143,.1);border-color:rgba(123,227,143,.28)}
.wfTag.run{color:var(--v2);background:rgba(18,181,165,.12);border-color:var(--hair2)}

/* ---- PM workflow grid ---- */
.wfGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:1080px;margin:0 auto}
.wfCard{background:linear-gradient(165deg,rgba(255,255,255,.05),rgba(255,255,255,.015));border:1px solid var(--hair);border-radius:16px;padding:26px 24px;transition:transform .25s ease,border-color .25s ease}
.wfCard:hover{transform:translateY(-4px);border-color:var(--hair2)}
.wfNum{font-family:"Cormorant Garamond","Cormorant Fallback",Georgia,serif;font-weight:700;font-size:1.3rem;color:var(--v2)}
.wfCard h3{font-family:"Cormorant Garamond","Cormorant Fallback",Georgia,serif;font-weight:700;font-size:1.35rem;color:#fff;margin:6px 0 8px}
.wfCard p{color:var(--tx2);font-size:.94rem;line-height:1.55;margin:0}
.wfNote{max-width:70ch;margin:34px auto 0;text-align:center;color:var(--tx3);font-size:.98rem;line-height:1.6}
@media(max-width:820px){.wfGrid{grid-template-columns:1fr}}

/* ===== MOTION SYSTEM (restrained, scroll-driven) ===== */
/* base reveal: subtle rise + fade, longer easing = calmer/expensive */
.rv{opacity:0;transform:translateY(20px);transition:opacity .9s cubic-bezier(.16,.7,.2,1),transform .9s cubic-bezier(.16,.7,.2,1)}
.rv.in{opacity:1;transform:none}
/* staggered children */
.stagger > *{opacity:0;transform:translateY(22px);transition:opacity .8s cubic-bezier(.16,.7,.2,1),transform .8s cubic-bezier(.16,.7,.2,1)}
.stagger.in > *{opacity:1;transform:none}
.stagger.in > *:nth-child(1){transition-delay:.02s}
.stagger.in > *:nth-child(2){transition-delay:.10s}
.stagger.in > *:nth-child(3){transition-delay:.18s}
.stagger.in > *:nth-child(4){transition-delay:.26s}
.stagger.in > *:nth-child(5){transition-delay:.34s}
.stagger.in > *:nth-child(6){transition-delay:.42s}
/* hero enters on load, gently */
.heroText > *{opacity:1;transform:translateY(10px);animation:heroRise2 .7s cubic-bezier(.16,.7,.2,1) forwards}
.heroText > *:nth-child(1){animation-delay:.05s}
.heroText > *:nth-child(2){animation-delay:.15s}
.heroText > *:nth-child(3){animation-delay:.27s}
.heroText > *:nth-child(4){animation-delay:.39s}
@keyframes heroRise2{from{transform:translateY(10px)}to{transform:none}}
@keyframes heroRise{to{opacity:1;transform:none}}
.heroMock{opacity:0;transform:translateY(24px) scale(.985);animation:heroRise 1.1s cubic-bezier(.16,.7,.2,1) .35s forwards}
/* subtle parallax drift on the mock (JS sets --py) */
.mockPanel{will-change:transform}
/* scroll-progress lifecycle: line fills by --p (0..1), set by JS as you scroll through */
.lifecycle.scrollfill .lcLine i{animation:none;transform:scaleX(var(--p,0));transition:transform .1s linear}
.lifecycle.scrollfill .lcStep{opacity:.72;transition:opacity .4s ease}
.lifecycle.scrollfill .lcStep.lit{opacity:1}
.lifecycle.scrollfill .lcStep.lit .lcDot{border-color:var(--v2);box-shadow:0 0 0 5px rgba(18,181,165,.14),0 0 16px rgba(18,181,165,.4)}
/* count-up numbers */
.tick{font-variant-numeric:tabular-nums}
@media(prefers-reduced-motion:reduce){
  .rv,.stagger > *,.heroText > *,.heroMock{opacity:1;transform:none;animation:none;transition:none}
  .lifecycle.scrollfill .lcLine i{transform:scaleX(1)}
  .lifecycle.scrollfill .lcStep{opacity:1}
}

/* ===== IMAGERY (moody, on-brand, graceful fallback) ===== */
/* sector tiles: dark photo behind, heavy teal-ink overlay keeps it on-brand */
.sector.has-img{position:relative;overflow:hidden}
.sector.has-img::before{content:"";position:absolute;inset:0;z-index:0;
  background-image:linear-gradient(180deg,rgba(5,20,26,.72),rgba(5,20,26,.92)),var(--img);
  background-size:cover;background-position:center;opacity:.9;transition:opacity .4s ease,transform .5s cubic-bezier(.2,.7,.2,1)}
.sector.has-img:hover::before{opacity:1;transform:scale(1.04)}
.sector.has-img > *{position:relative;z-index:1}
/* if the image 404s the gradient still paints a solid dark - fallback is automatic */

/* founder / team photo frame */
.photoFrame{position:relative;border-radius:18px;overflow:hidden;border:1px solid var(--hair2);
  box-shadow:0 40px 90px -40px rgba(0,0,0,.7);background:#0a1f28 url(/img/founder.jpg?v=2) center/cover no-repeat;min-height:280px}
.photoFrame img{display:block;width:100%;height:auto;position:relative;z-index:1}
.photoFrame.duotone::after{content:"";position:absolute;left:0;right:0;bottom:0;height:40%;background:linear-gradient(180deg,transparent,rgba(5,20,26,.4));pointer-events:none}
.founderRow{display:grid;grid-template-columns:.85fr 1.15fr;gap:38px;align-items:center;max-width:1000px;margin:0 auto}
.founderCap{position:absolute;left:20px;bottom:16px;z-index:2;color:#fff}
.founderCap b{display:block;font-size:1.05rem}
.founderCap span{font-size:.85rem;color:var(--tx2)}
@media(max-width:760px){.founderRow{grid-template-columns:1fr;gap:24px}}

/* ===== INTERACTIVE HERO MOCK (the "is this the real product?" moment) ===== */
.heroMock{perspective:1400px}
.mockPanel{transform-style:preserve-3d;transition:transform .18s ease-out}
/* cursor spotlight that tracks the mouse across the panel */
.mockSpot{position:absolute;inset:0;z-index:2;border-radius:20px;pointer-events:none;opacity:0;transition:opacity .3s ease;
  background:radial-gradient(240px 240px at var(--mx,50%) var(--my,50%),rgba(63,224,196,.14),transparent 60%)}
.heroMock:hover .mockSpot{opacity:1}
/* hoverable rows */
.mockRow{border-radius:9px;padding:3px 8px;margin-left:-8px;margin-right:-8px;cursor:default;
  transition:background .2s ease,transform .2s ease}
.mockRow:hover{background:rgba(63,224,196,.08);transform:translateX(3px)}
.mockRow:hover .b i{filter:brightness(1.15)}
.mockRow.warn-row:hover{background:rgba(255,138,61,.09)}
/* live detail line that updates on hover */
.mockDetail{margin-top:14px;padding-top:12px;border-top:1px solid var(--hair);
  font-size:.78rem;color:var(--tx3);letter-spacing:.02em;min-height:1.2em;transition:color .2s ease}
.mockDetail.active{color:var(--v2)}
@media(max-width:820px){.mockPanel{transform:none!important}.mockSpot{display:none}}
@media(prefers-reduced-motion:reduce){.mockPanel{transform:none!important;transition:none}}

/* ===== LOGO LOCKUP (flexbox - browser-aligned, reliable) ===== */
.lockup{display:inline-flex;align-items:center;gap:8px;text-decoration:none;line-height:1}
.lockup .mark{height:52px;width:auto;display:block;flex:none}
.lockup .lk-txt{display:flex;flex-direction:column;justify-content:center}
.lockup .lk-1{font-family:'DM Sans',Arial,sans-serif;font-weight:800;font-size:1.6rem;letter-spacing:.02em;color:#fff;line-height:1.02}
.lockup .lk-2{font-family:'DM Sans',Arial,sans-serif;font-weight:600;font-size:.72rem;letter-spacing:.04em;color:var(--v2);margin-top:3px}
.lockup.foot{flex-direction:row;align-items:center}.lockup.foot .mark{height:46px}
.lockup.foot .lk-1{font-size:1.25rem}
.lockup.foot .lk-2{font-size:.62rem}
@media(max-width:560px){.lockup .mark{height:44px}.lockup .lk-1{font-size:1.3rem}.lockup .lk-2{font-size:.64rem}}

/* ---- mark in a bordered box (his requested placement) ---- */
.lockup .markbox{flex:none;display:flex;align-items:center;justify-content:center;
  width:58px;height:58px;border:2px solid var(--v1);border-radius:12px;background:rgba(18,181,165,.06)}
.lockup .markbox .mark{height:56px;width:auto;display:block}
.lockup.foot .markbox{width:46px;height:46px;border-radius:10px}
.lockup.foot .markbox .mark{height:44px}
@media(max-width:560px){.lockup .markbox{width:50px;height:50px}.lockup .markbox .mark{height:48px}}

/* ---- separate the nav menu from the logo when it stacks (narrow widths) so it doesn't read as part of the logo ---- */
@media(max-width:759px){
  .topbar{gap:0}
  nav.main{margin-top:12px;padding-top:12px;border-top:1px solid var(--hair);width:100%}
}

/* ---- course: text that sits directly on the DARK page must be light (was --ink dark-navy, invisible) ---- */
.lessonbody p{color:var(--tx2)}
.lessonbody h2,.lessonbody h3,.lessonh{color:var(--tx)}
.ci-lead{color:var(--tx2)}
.progtext{color:var(--tx3)}
.lessonbody strong,.lessonbody b{color:var(--tx)}
/* remember/quiz/tool boxes keep their own light backgrounds so their dark text stays correct - not touched */

/* ---- blog articles: body prose sits on the DARK page, must be light (was --ink dark, invisible) ---- */
.post p{color:var(--tx2)}
.post h2,.post h3{color:var(--tx)}
.post strong,.post b{color:var(--tx)}
.post em{color:var(--v2)}
.post a{color:var(--v2)}

/* ===== FIX: leftover light-background cards from the old theme -> dark panels (were white bg + light text = invisible) ===== */
.card,.reason,.notice,.tier,.feat div,.chip,
.pricecard,.postcard,.choosecard,.door,
.cmpWrap,.quizbox,.remember,.keytake,.courseintro,.tooladvert,.firmad{
  background:var(--bg1);border-color:var(--hair)}
/* text inside them light */
.card,.reason,.notice,.tier,.feat div,.pricecard,.postcard,.choosecard,.door{color:var(--tx2)}
.card b,.reason b,.tier b,.notice b,.pricecard b,.postcard b,.door b,
.card strong,.reason strong,.pricecard strong{color:var(--tx)}
.card h3,.tier h3,.pricecard h3,.postcard h3,.door h3,.choosecard h3{color:var(--tx)}
.card p,.tier p,.pricecard p,.postcard p,.door p,.choosecard p,.pcnote,.doorwho{color:var(--tx2)}
/* comparison table dark */
.cmpWrap,table.cmp td:first-child,table.cmp td{background:var(--bg1);color:var(--tx2)}
table.cmp th{background:var(--bg2);color:var(--tx)}
table.cmp td:first-child{color:var(--tx)}
/* quiz/remember/course boxes -> dark panel with light text */
.quizbox,.remember,.keytake,.courseintro,.tooladvert,.firmad{color:var(--tx2)}
.quizopt{background:var(--bg2);border-color:var(--hair);color:var(--tx)}
.quizopt:hover{border-color:var(--v1)}
.quizwhy{background:var(--bg2);color:var(--tx2)}
.chip{background:var(--bg2);color:var(--tx);border-color:var(--hair)}
.logo-slide{background:#f4f7fa;border:1px solid var(--hair2);box-shadow:0 6px 18px -10px rgba(0,0,0,.6)}
.logo-slide img{mix-blend-mode:normal}

/* comparison table: override the striped white rows + cream "us" column that leaked light bg */
table.cmp tr:nth-child(odd) td,table.cmp tr:nth-child(odd) td:first-child{background:var(--bg2)}
table.cmp td{background:var(--bg1);color:var(--tx2);border-bottom-color:var(--hair)}
table.cmp td:first-child{background:var(--bg1);color:var(--tx)}
table.cmp td.us{background:rgba(18,181,165,.14)!important;color:var(--tx)}
table.cmp th.us{background:var(--v3)}

/* prices, titles + labels that used --navy (now a dark bg colour) -> light/teal so they show on dark cards */
.pcprice,.price,.doorprice b,.priceflag b{color:var(--v2)}
.priceflag span{color:var(--tx2)}
.priceflag{background:rgba(18,181,165,.08);border:1px solid var(--hair2);border-radius:12px;padding:12px 18px}
.pcprice small,.price small{color:var(--tx3)}
.tier b,.reason b,.feat b,.keytake b{color:var(--tx)}
.chtitle,.quizq,.doorprice{color:var(--tx)}
.chgo,.cc-foot .chgo,.pclink{color:var(--v2)}
.firmline a{color:var(--v2)}
.btn.ghost,.ghostbtn{color:var(--tx);border-color:var(--hair)}
.logo-fallback{color:var(--tx2)}

/* ===== MOBILE OPTIMISATION: prevent horizontal overflow + tighten spacing on phones ===== */
@media(max-width:560px){
  /* statband: single column on phones (was 2-col, caused 43px overflow) + less padding */
  .statband{grid-template-columns:1fr;gap:20px;padding:28px 22px}
  .stat b{font-size:2.1rem}
  /* stop any long unbreakable strings forcing overflow */
  .stat,.reason,.card,.tier,.pricecard,.wfCard{overflow-wrap:break-word;word-break:break-word}
}

/* ===== MOBILE tap targets: comfortable 44px+ hit areas (Apple HIG) ===== */
@media(max-width:759px){
  nav.main a{min-height:44px;display:flex;align-items:center;padding-top:10px;padding-bottom:10px}
  footer.site a{display:inline-block;padding:8px 0;min-height:20px}
  .footgrid a,.footline a{padding:9px 0}
  /* buttons comfortable to tap */
  .btn,.btn.gold,.btn.ghost,nav.main a.cta,.jumps a,.quizopt,.choosecard{min-height:44px}
}

/* ===== FINAL READABILITY: fix inner dark text in firmad/courseintro cards + lift muted grey ===== */
/* --grey (#6E747A) is too dim on dark - lift to a readable muted tone everywhere it's used as text */
:root{--grey:#9CACBA}
/* firmad + courseintro: inner heading/body/cred used --navy/--ink (dark) - force light on their now-dark cards */
.firmad h3,.courseintro h3{color:var(--tx)}
.firmad p,.courseintro p{color:var(--tx2)}
.firmad .cred,.firmad .cred b{color:var(--tx2)}
.firmad .cred b{color:var(--tx)}
.firmad .eyebrow,.courseintro .eyebrow{color:var(--v2)}

/* ===== badges: were mint text on WHITE bg (washed out, ratio 1.66) -> teal-tinted dark pill ===== */
.badge{background:rgba(18,181,165,.14);border-color:rgba(18,181,165,.35);color:var(--v2)}
.badge.now{background:var(--v1);border-color:var(--v1);color:#05141a;font-weight:700}
.badge.soon{background:rgba(255,255,255,.05);border-color:var(--hair);color:var(--tx2)}

/* ===== MAXIMUM TEXT SHARPNESS on the dark theme (crisp light-on-dark rendering) ===== */
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
h1,h2,h3,h4,p,a,span,li,td,th,b,strong,em,.heroSub,.lede{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
/* keep body text on the SOLID deep ink base under content so no gradient haze sits behind it */
main,section:not(.sectionDark):not(.alt){background:var(--bg0)}

/* ===== FIRMS HERO: digitally-smart "Practice control" dashboard device ===== */
.firmHero{display:grid;grid-template-columns:1.02fr .98fr;gap:48px;align-items:center}
.firmHeroText{min-width:0}
.firmMockWrap{position:relative}
.firmMockGlow{position:absolute;inset:-24px;background:radial-gradient(closest-side,rgba(18,181,165,.20),transparent 72%);filter:blur(30px);z-index:0}
.firmMock{position:relative;z-index:1;background:linear-gradient(158deg,#0c2732,#081a22);border:1px solid rgba(63,224,196,.16);border-radius:18px;padding:18px 18px 16px;box-shadow:0 30px 70px -30px rgba(0,0,0,.75),inset 0 1px 0 rgba(255,255,255,.04)}
.fmBar{display:flex;align-items:center;gap:6px;margin-bottom:16px}
.fmBar span{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.24)}
.fmBar em{margin-left:10px;color:var(--tx3);font-size:.74rem;font-style:normal;letter-spacing:.04em}
.fmHead{display:grid;grid-template-columns:1.25fr 1.1fr .9fr;gap:10px;padding:0 4px 8px;border-bottom:1px solid rgba(255,255,255,.07);color:var(--tx3);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700}
.fmRow{display:grid;grid-template-columns:1.25fr 1.1fr .9fr;gap:10px;align-items:center;padding:11px 4px;border-bottom:1px solid rgba(255,255,255,.05)}
.fmC{color:var(--tx);font-size:.86rem;font-weight:600}
.fmS{color:var(--tx2);font-size:.82rem;display:flex;align-items:center;gap:8px}
.fmDot{width:8px;height:8px;border-radius:50%;flex:none}
.fmDot.ok{background:var(--ok);box-shadow:0 0 8px rgba(123,227,143,.6)}
.fmDot.run{background:var(--v2);box-shadow:0 0 8px rgba(63,224,196,.6);animation:fmpulse 1.6s ease-in-out infinite}
.fmDot.warn{background:var(--am);box-shadow:0 0 8px rgba(255,194,75,.55)}
.fmT{font-size:.76rem;font-weight:700;text-align:right;justify-self:end}
.fmT.auto{color:var(--ok)}
.fmT.run{color:var(--v2)}
.fmT.warn{color:var(--am)}
.fmFoot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-top:4px}
.fmChip{display:inline-flex;align-items:center;gap:7px;font-size:.72rem;font-weight:700;color:var(--v2);background:rgba(18,181,165,.12);border:1px solid rgba(63,224,196,.22);padding:6px 11px;border-radius:999px}
.fmChip i{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 8px rgba(123,227,143,.7)}
.fmMuted{color:var(--tx3);font-size:.72rem;text-align:right}
@keyframes fmpulse{0%,100%{opacity:1}50%{opacity:.4}}
@media(prefers-reduced-motion:reduce){.fmDot.run{animation:none}}
@media(max-width:900px){
  .firmHero{display:flex;flex-direction:column;gap:26px}
  .firmHeroText{display:contents}
  .firmHeroText .eyebrow{order:1}
  .firmHeroText h1{order:2}
  .firmMockWrap{order:3;max-width:520px;margin:2px auto 0;width:100%}
  .firmHeroText .lede{order:4}
  .firmHeroText .jumps{order:5}
  .fmMuted{display:none}
}

/* ===== FIRMS: clarity & peace band (bespoke duotone imagery) ===== */
.clarityBand{margin:8px 0 4px}
.clarityIntro{max-width:760px;margin-bottom:30px}
.clarityIntro h2{font-family:'Cormorant Garamond',Georgia,serif;font-weight:700;font-size:clamp(1.8rem,3.6vw,2.6rem);color:#fff;line-height:1.14;margin:10px 0 14px}
.clarityIntro .ig{background:linear-gradient(90deg,var(--ig1),var(--ig2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.clarityGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.clarityCard{margin:0;background:var(--bg1);border:1px solid rgba(63,224,196,.12);border-radius:16px;overflow:hidden;transition:transform .3s ease,border-color .3s ease}
.clarityCard:hover{transform:translateY(-4px);border-color:rgba(63,224,196,.28)}
.clarityImg{position:relative;height:200px;background-image:linear-gradient(180deg,rgba(5,20,26,.30),rgba(5,20,26,.72)),var(--img);background-size:cover;background-position:center}
.clarityCard figcaption{padding:16px 18px 18px}
.clarityCard figcaption b{display:block;color:var(--v2);font-size:1.05rem;font-weight:800;letter-spacing:.02em;margin-bottom:5px}
.clarityCard figcaption span{color:var(--tx2);font-size:.9rem;line-height:1.5}
@media(max-width:820px){
  .clarityGrid{grid-template-columns:1fr;gap:14px}
  .clarityImg{height:180px}
}

/* ===== PM PERFORMANCE section: department/people scorecard device ===== */
.perfWrap{position:relative;max-width:820px;margin:8px auto 40px;overflow:hidden;padding:26px 0}
.perfGlow{position:absolute;inset:0;background:radial-gradient(closest-side,rgba(18,181,165,.16),transparent 72%);filter:blur(34px);z-index:0}
.perfPanel{position:relative;z-index:1;background:linear-gradient(158deg,#0c2732,#081a22);border:1px solid rgba(63,224,196,.16);border-radius:18px;padding:18px 18px 16px;box-shadow:0 30px 70px -30px rgba(0,0,0,.75),inset 0 1px 0 rgba(255,255,255,.04)}
.perfBar{display:flex;align-items:center;gap:6px;margin-bottom:16px}
.perfBar span{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.24)}
.perfBar em{margin-left:10px;color:var(--tx3);font-size:.74rem;font-style:normal;letter-spacing:.04em}
.perfBar b{margin-left:auto;color:var(--tx3);font-size:.72rem;font-weight:600}
.perfHead{display:grid;grid-template-columns:1.3fr 1.3fr .7fr .8fr;gap:10px;padding:0 4px 8px;border-bottom:1px solid rgba(255,255,255,.07);color:var(--tx3);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700}
.perfRow{display:grid;grid-template-columns:1.3fr 1.3fr .7fr .8fr;gap:10px;align-items:center;padding:12px 4px;border-bottom:1px solid rgba(255,255,255,.05)}
.pfD{color:var(--tx);font-size:.86rem;font-weight:600}
.pfMeter{position:relative;height:7px;border-radius:4px;background:rgba(255,255,255,.08);overflow:hidden}
.pfMeter i{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--v3),var(--v2));border-radius:4px}
.pfMeter i.warn{background:linear-gradient(90deg,#c96a1e,var(--am))}
.pfM{font-size:.8rem;font-weight:700;text-align:right;justify-self:end}
.pfM.up{color:var(--ok)}
.pfM.flat{color:var(--tx2)}
.pfM.down{color:var(--am)}
.pfFlag{font-size:.68rem;font-weight:700;text-align:right;justify-self:end;padding:3px 9px;border-radius:999px}
.pfFlag.ok{color:var(--ok);background:rgba(123,227,143,.12)}
.pfFlag.watch{color:var(--am);background:rgba(255,194,75,.12)}
.pfFlag.warn{color:var(--bad);background:rgba(255,107,107,.14)}
.perfRow.low{background:rgba(255,107,107,.05);border-radius:8px}
.perfFoot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-top:4px}
.perfChip{display:inline-flex;align-items:center;gap:7px;font-size:.72rem;font-weight:700;color:var(--v2);background:rgba(18,181,165,.12);border:1px solid rgba(63,224,196,.22);padding:6px 11px;border-radius:999px}
.perfChip i{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 8px rgba(123,227,143,.7)}
.perfMuted{color:var(--tx3);font-size:.72rem;text-align:right}
.perfPoints{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:0 auto 26px;max-width:1040px}
.perfPoint{position:relative;background:linear-gradient(168deg,var(--bg1),var(--bg0));border:1px solid var(--hair2);border-radius:16px;padding:26px 22px 24px;overflow:hidden;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.perfPoint::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--v2),var(--v3));opacity:.9}
.perfPoint:hover{transform:translateY(-4px);border-color:rgba(63,224,196,.3);box-shadow:0 22px 46px -26px rgba(0,0,0,.7)}
.ppIco{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--v2);background:rgba(18,181,165,.12);border:1px solid rgba(63,224,196,.2);margin-bottom:14px}
.ppIco svg{width:20px;height:20px}
.ppEyebrow{display:block;color:var(--v2);font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:7px}
.perfPoint h3{color:var(--tx);font-size:1.12rem;line-height:1.25;margin:0 0 11px;font-weight:700}
.perfPoint p{color:var(--tx2);font-size:.93rem;line-height:1.58;margin:0}
@media(max-width:820px){
  .perfWrap{max-width:100%}
  .perfHead,.perfRow{grid-template-columns:1.2fr 1fr .7fr .8fr}
  .perfMuted{display:none}
  .perfPoints{grid-template-columns:1fr;gap:14px}
  .pfD{font-size:.8rem}
  .perfPanel{padding:14px 12px 12px}
  .perfPoint{padding:22px 18px 20px}
}

/* v100 readability: light-island fixes - bands that kept light bg on the dark theme */
.doortop{background:linear-gradient(135deg,#0f2630,#0a1f28);border-bottom:1px solid var(--hair)}
.doortag{color:var(--v2)}
.doorwho{color:var(--tx2)}
.doorprice b{color:var(--tx)}
.doorprice span{color:var(--tx2)}
.lp-ico{background:var(--bg2)}
.cc-top{background:linear-gradient(135deg,#0f2630,#0a1f28);border-bottom:1px solid var(--hair)}
.quizopt.wrong{background:rgba(255,107,107,.14);border-color:var(--bad)}

/* v103 neutral hero panel - three pillars (Software/Training/People) - audience-neutral */
.pillarRow{display:flex;align-items:center;gap:14px;margin:14px 0;padding:10px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.02);transition:border-color .15s,background .15s,transform .15s;cursor:default}
.pillarRow:hover{border-color:var(--v2);background:rgba(18,181,165,.08);transform:translateX(3px)}
.pillarIco{width:34px;height:34px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:8px;background:linear-gradient(135deg,rgba(18,181,165,.22),rgba(63,224,196,.12));color:var(--v2);font-size:1rem;border:1px solid rgba(63,224,196,.25)}
.pillarTxt{display:flex;flex-direction:column;gap:2px;min-width:0}
.pillarTxt b{color:#F2F6FA;font-size:.98rem;font-weight:700;line-height:1.1}
.pillarTxt small{color:#C3D0DB;font-size:.78rem;line-height:1.25}
@media(max-width:760px){.pillarTxt small{font-size:.72rem}.pillarRow{margin:10px 0;padding:8px 10px}}
/* v104 fix: neutral-panel detail line + chip spacing (were overlapping) */
.mockPanel .mockDetail{display:block;margin-top:16px;padding-right:150px;color:#AFC0CD;font-size:.8rem;min-height:1.2em}
.mockPanel .mockChip{bottom:14px;right:14px}

/* v108 clean panel footer - detail line + chip on one tidy row, no overlap */
.mockFoot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.08)}
.mockFootTxt{color:#AFC0CD;font-size:.82rem;line-height:1.3}
.mockPanel .mockFoot .mockChip{position:static;bottom:auto;right:auto;flex:none;white-space:nowrap}

/* FAILSAFE: if the reveal JS never fires, .rv elements still become visible (never permanently hidden) */
.rv{animation:rv-failsafe .01s linear 1.5s forwards}
@keyframes rv-failsafe{to{opacity:1;transform:none}}
.rv.in{animation:none;opacity:1;transform:none}
