@import url("vendor/cookieconsent.css");

/* Celeredge marketing site — enterprise consulting system.
   Single neo-grotesque typeface (Inter), Vanta / Palantir register.
   Class names are stable; only tokens and font stack changed, so the
   feature deep-dive pages inherit the new brand without HTML edits.
   Inter is loaded via <link> in each page <head> (see tools/_nav.py FONT and
   tools/apply_fonts.py) — not @import here, which is render-blocking. */

:root{
  /* Brand system: near-black ink emblem + signal-emerald accent, on clean white. */
  --brand:#0E9E6E; --brand-bright:#10B981; --brand-dark:#0B7E5B; --brand-deep:#0A6F4F; --brand-tint:#ECF8F2; --brand-tint-2:#D7F0E5;
  --ink:#0A0E17; --body:#2B3240; --muted:#677084;
  /* Enterprise neutrals — secondary text, metadata, borders, supporting UI only */
  --slate:#334155; --steel:#64748B; --navy:#0F172A;
  --line:rgba(15,23,42,0.10); --line-strong:rgba(15,23,42,0.16);
  --bg:#FFFFFF; --bg-alt:#F6F8FA; --bg-cool:#EEF3F1;
  --deep:#0F172A; --deep-2:#1E293B;
  --gold:#0EA5A5; --gold-pale:#E6F7F4;
  --slate-soft:#55636F;
  --radius:8px; --maxw:1180px;
  --shadow:0 24px 60px -20px rgba(9,9,22,0.22);
  --shadow-sm:0 1px 2px rgba(9,9,22,0.04);
  --serif:'Inter', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  --sans:'Inter', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--body);background:var(--bg);line-height:1.65;-webkit-font-smoothing:antialiased;font-size:17px}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
h1,h2,h3{color:var(--ink);font-family:var(--serif);letter-spacing:-.022em;line-height:1.07;font-weight:800}
h1{font-size:clamp(44px,5.6vw,70px);line-height:1.06}
h2{font-size:clamp(28px,3.4vw,40px);line-height:1.12}
h3{font-size:20px;letter-spacing:-.01em;font-weight:700}
h1 em,h2 em,h3 em{font-style:normal;color:var(--brand);font-weight:800}
.eyebrow{font-size:13px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--steel);font-family:var(--sans)}
.lead{font-size:clamp(18px,1.6vw,20px);color:var(--slate);line-height:1.65;font-weight:400}
.center{text-align:center}
.mono-accent{color:var(--brand);font-style:normal}

/* Header */
header.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.85);backdrop-filter:saturate(180%) blur(12px);border-bottom:.5px solid var(--line)}
.nav-in{display:flex;align-items:center;gap:24px;height:66px;max-width:var(--maxw);margin:0 auto;padding:0 24px;position:relative}
.brand{display:inline-flex;align-items:center;text-decoration:none;flex-shrink:0}
.brand img{height:24px;width:auto;display:block}
.brand .mark{width:28px;height:28px;border-radius:8px;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:800;font-size:15px;font-family:var(--sans)}
/* nav menu wrapper: links left, CTAs right (desktop) */
.nav-menu{display:flex;align-items:center;justify-content:space-between;flex:1;gap:24px}
.nav-links{display:flex;align-items:center;gap:2px;list-style:none}
.nav-links>li{position:relative}
.nav-links>li>a,.nav-top{display:inline-flex;align-items:center;gap:5px;font-family:var(--sans);font-size:14.5px;font-weight:500;color:var(--body);padding:8px 13px;border-radius:8px;background:transparent;border:0;cursor:pointer;line-height:1;white-space:nowrap}
.nav-links>li>a:hover,.nav-top:hover{color:var(--brand)}
.nav-caret{width:10px;height:10px;transition:transform .2s;opacity:.7}
.has-panel:hover .nav-caret,.nav-top[aria-expanded="true"] .nav-caret{transform:rotate(180deg)}
.nav-cta{display:flex;gap:10px;align-items:center;flex-shrink:0}
/* mega panels */
.mega{position:absolute;top:calc(100% + 14px);left:0;background:var(--bg);border:1px solid var(--line);border-radius:20px;box-shadow:0 32px 64px -24px rgba(9,14,23,.28),0 6px 18px -10px rgba(9,14,23,.12);padding:14px;display:grid;grid-template-columns:1fr auto;gap:14px;opacity:0;visibility:hidden;transform:translateY(8px) scale(.99);transform-origin:top;transition:opacity .18s ease,transform .18s ease;z-index:60}
.mega.mega-sm{grid-template-columns:1fr;min-width:230px}
.mega::before{content:"";position:absolute;bottom:100%;left:0;right:0;height:14px}/* hover bridge */
.has-panel:hover>.mega,.nav-top[aria-expanded="true"]+.mega{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
.mega-cols{display:flex;gap:8px}
.mega-col{display:flex;flex-direction:column;min-width:208px}
.mega-h{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--steel);margin:8px 12px 6px}
.mega-col a{display:flex;flex-direction:column;gap:2px;padding:9px 12px;border-radius:11px;transition:background .14s ease}
.mega-col a:hover{background:var(--bg-alt)}
.mega-col .ml-t{font-size:14.5px;font-weight:600;color:var(--ink);line-height:1.25}
.mega-col a:hover .ml-t{color:var(--brand-dark)}
.mega-col .ml-d{font-size:12.5px;color:var(--muted);line-height:1.3}
.mega-col a.mega-all{padding-top:11px;margin-top:4px;border-top:1px solid var(--line);border-radius:0 0 11px 11px}
.mega-col a.mega-all .ml-t{color:var(--brand-dark);font-weight:700;white-space:nowrap}
.mega-sm .mega-col{min-width:200px}
.mega-feat{display:flex;flex-direction:column;justify-content:flex-end;gap:8px;width:262px;background:linear-gradient(165deg,var(--bg-alt),var(--brand-tint));border:1px solid var(--line);border-radius:14px;padding:22px}
.mega-feat-ey{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--brand-dark)}
.mega-feat-h{font-size:16px;font-weight:700;color:var(--ink);line-height:1.34;letter-spacing:-.01em}
.mega-feat-link{font-size:13px;font-weight:600;color:var(--brand-dark);margin-top:4px}
.mega-feat:hover{border-color:var(--brand-tint-2)}
.mega-feat:hover .mega-feat-link{color:var(--brand)}
/* hamburger */
.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;border:0;background:transparent;cursor:pointer;margin-left:auto;padding:0}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--ink);border-radius:2px;transition:transform .2s,opacity .2s;margin:0 auto}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:900px){
  .nav-toggle{display:flex}
  .nav-menu{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;background:var(--bg);border-bottom:1px solid var(--line);box-shadow:var(--shadow);padding:8px 18px 22px;max-height:calc(100vh - 66px);overflow-y:auto;display:none}
  .nav-menu.open{display:flex}
  .nav-links{flex-direction:column;align-items:stretch;gap:0;width:100%}
  .nav-links>li{border-bottom:1px solid var(--line)}
  .nav-links>li>a,.nav-top{width:100%;justify-content:space-between;padding:15px 4px;font-size:16px;min-height:50px;border-radius:0;color:var(--ink)}
  .mega{position:static;opacity:1;visibility:visible;transform:none;display:none;min-width:0;width:100%;box-shadow:none;border:0;border-radius:0;padding:0 0 14px;grid-template-columns:1fr;gap:8px}
  .mega::before{display:none}
  .nav-top[aria-expanded="true"]+.mega{display:block}
  .mega-cols{flex-direction:column;gap:6px}
  .mega-col{min-width:0}
  .mega-h{margin:12px 4px 2px}
  .mega-col a{padding:11px 8px;white-space:normal}
  .mega-col a.mega-all{border-top:0;margin-top:0}
  .mega-col .ml-d{display:none}
  .mega-feat{display:none}
  .nav-cta{flex-direction:column;align-items:stretch;width:100%;margin-top:18px;gap:10px}
  .nav-cta .btn{justify-content:center;min-height:48px}
}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--sans);font-size:15px;font-weight:600;padding:11px 22px;border-radius:30px;border:1px solid transparent;white-space:nowrap;transition:transform .12s ease,background .2s ease,box-shadow .2s,border-color .2s}
.btn.pri{background:var(--brand-deep);color:#fff;box-shadow:0 4px 18px -6px rgba(16,185,129,.40)}
.btn.pri:hover{background:#08573F;transform:translateY(-1px)}
.btn.ghost{background:transparent;border-color:var(--line-strong);color:var(--ink)}
.btn.ghost:hover{border-color:var(--ink);background:var(--bg-alt)}
.btn.lg{padding:14px 28px;font-size:16px}
.btn.onDark{background:var(--bg);color:var(--ink)}
.btn.onDark.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.28)}

/* Sections */
section{padding:clamp(84px,9vw,128px) 0}
.sec-alt{background:var(--bg-alt)}
.sec-head{max-width:780px;margin:0 auto 64px}
.sec-head h1,.sec-head h2{text-wrap:balance}
.sec-head.left{margin-left:0}
.sec-head .lead{margin-top:18px}

/* Hero */
.hero{padding:clamp(72px,8vw,104px) 0 0;position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:
  radial-gradient(55% 55% at 82% -10%,var(--brand-tint-2) 0%,transparent 60%),
  radial-gradient(45% 45% at 0% 8%,var(--brand-tint) 0%,transparent 55%);z-index:-1;opacity:.7}
.hero h1{max-width:26ch;text-wrap:balance}
.hero h1 em{display:block}
.hero .lead{max-width:680px;margin-top:26px;font-size:clamp(19px,2.2vw,23px);line-height:1.6}
.hero-cta{display:flex;gap:14px;margin-top:36px;flex-wrap:wrap}
.hero-note{margin-top:18px;font-size:14px;color:var(--steel)}
.hero-shot{margin-top:64px;border-radius:14px;border:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden;background:#fff}
.hero-shot img,.hero-shot video{width:100%;display:block}

/* Logo / trust strip */
.trust{padding:40px 0;border-top:.5px solid var(--line);border-bottom:.5px solid var(--line);background:var(--deep);color:rgba(236,243,241,.65)}
.trust p{text-align:center;font-size:13px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:rgba(236,243,241,.55);margin-bottom:22px}
.logos{display:flex;flex-wrap:wrap;gap:18px 40px;justify-content:center;align-items:center}
.logos span{font-weight:500;color:rgba(236,243,241,.7);font-size:14px;letter-spacing:.06em;text-transform:uppercase}
.proof-metrics{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 56px;margin-top:30px;padding-top:26px;border-top:.5px solid rgba(236,243,241,.12)}
.proof-metrics div{display:flex;flex-direction:column;align-items:center;gap:2px}
.proof-metrics b{font-size:34px;font-weight:800;color:var(--brand-bright);line-height:1;letter-spacing:-.02em}
.proof-metrics span{font-size:12.5px;letter-spacing:.04em;color:rgba(236,243,241,.6)}

/* Feature rows */
.feat{display:grid;grid-template-columns:1fr 1fr;gap:clamp(48px,6vw,80px);align-items:center}
.feat+.feat{margin-top:clamp(80px,10vw,120px)}
.feat.rev .feat-text{order:2}
.feat-shot{border-radius:12px;border:1px solid var(--line);box-shadow:var(--shadow-sm);overflow:hidden;background:#fff}
.feat-shot img,.feat-shot video{width:100%;display:block}
.feat-text h2{font-size:clamp(28px,3.2vw,38px);text-wrap:balance}
.feat-text .lead{margin-top:16px;font-size:18px;line-height:1.65}
.ul{margin-top:22px;display:grid;gap:11px}
.ul li{list-style:none;display:flex;gap:11px;font-size:16px;line-height:1.55;color:var(--body)}
.ul li::before{content:"→";flex-shrink:0;color:var(--brand);font-weight:600;margin-top:0.05rem}
.feat-text .more{margin-top:22px;display:inline-flex;align-items:center;gap:7px;font-weight:600;color:var(--brand-dark);font-style:normal;font-family:var(--sans)}
.feat-text .more:hover{gap:11px}

/* Card grid */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5px;background:var(--line);border-radius:var(--radius);overflow:hidden}
/* Even-count sets (4 cards): flow to a single clean row, no orphaned 3-col cell.
   auto-fit collapses empty tracks so no grey gaps show; min(100%,…) → 1-col on mobile.
   Higher specificity than the .cards media queries, so it governs at every width. */
.cards.cards-even{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
.cards-note{text-align:center;max-width:760px;margin:28px auto 0;color:var(--muted);font-size:15px;line-height:1.6}
.card{background:var(--bg);border:none;padding:34px 30px;transition:background .2s}
a.card{text-decoration:none;display:block}
a.card:hover{background:var(--bg-alt)}
a.card:hover h3{color:var(--brand)}
.card:hover{background:var(--bg-alt)}
.card .ic{width:44px;height:44px;border-radius:11px;background:var(--brand-tint);display:grid;place-items:center;margin-bottom:20px}
.card .ic svg{width:21px;height:21px;stroke:var(--brand-dark)}
.card h3{margin-bottom:11px;font-size:22px;font-weight:700;letter-spacing:-.01em}
.card p{font-size:16px;color:var(--slate);line-height:1.65}
.card .tag{display:inline-block;margin-top:14px;font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:3px 10px;border-radius:20px;background:var(--brand-tint);color:var(--brand)}
.card .tag.soon{background:#EEF1F0;color:#6B7785}
.card a.tag{transition:background .15s,color .15s}
.card a.tag:hover{background:var(--brand);color:#fff}
.tag.uk{display:inline-block;font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:3px 10px;border-radius:20px;background:#E8ECF7;color:#2D3A82}
.tag.soon{display:inline-block;font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:3px 10px;border-radius:20px;background:#EEF1F0;color:#6B7785}
.crumbs{font-size:13px;color:var(--steel);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.crumbs a{color:var(--steel);font-weight:500}
.crumbs a:hover{color:var(--brand)}
.crumbs>span{color:var(--line-strong)}

/* Frameworks hub — practice sections + framework card grid */
.fw-practice{margin:0 0 56px}
.fw-practice-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px 24px;flex-wrap:wrap;margin-bottom:22px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.fw-practice-head h3{font-size:clamp(22px,2.4vw,27px);font-weight:800;letter-spacing:-.022em;line-height:1.07}
.fw-practice-head h3 a{color:inherit}
.fw-practice-head h3 a:hover{color:var(--brand)}
.fw-practice-meta{display:flex;align-items:center;gap:10px;margin-top:9px}
.fw-count{font-size:13px;font-weight:600;letter-spacing:.03em;color:var(--steel)}
.fw-pill{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:3px 9px;border-radius:20px;background:#E8ECF7;color:#2D3A82}
.fw-see{flex-shrink:0;font-weight:600;color:var(--brand-dark);font-style:italic;font-family:var(--serif);white-space:nowrap}
.fw-see:hover{color:var(--brand)}
.fw-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.fw-card{display:flex;flex-direction:column;background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:20px 22px;box-shadow:var(--shadow-sm);transition:border-color .15s,transform .15s,box-shadow .15s}
.fw-card:hover{border-color:var(--brand);transform:translateY(-3px);box-shadow:0 16px 34px -20px rgba(9,9,22,.34)}
.fw-card-top{display:flex;align-items:flex-start;gap:11px}
.fw-card-top::before{content:"";flex-shrink:0;margin-top:6px;width:9px;height:9px;border-radius:2px;background:var(--brand);transform:rotate(45deg);transition:transform .15s}
.fw-card:hover .fw-card-top::before{transform:rotate(45deg) scale(1.18)}
.fw-card h4{font-size:16px;font-weight:700;line-height:1.32;color:var(--ink);letter-spacing:-.01em}
.fw-card p{margin-top:10px;font-size:14px;line-height:1.55;color:var(--slate);flex-grow:1}
.fw-card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:15px}
.fw-card-tags .tag{margin-top:0;display:inline-block;font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border-radius:20px;background:var(--brand-tint);color:var(--brand)}
.fw-card-tags .tag.uk{background:#E8ECF7;color:#2D3A82}
.fw-card-tags .tag.soon{background:#EEF1F0;color:#6B7785}
@media(max-width:560px){.fw-cards{grid-template-columns:1fr}.fw-see{font-size:14px}}

/* Stats */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.stat{text-align:center;padding:10px}
.stat .n{font-size:52px;font-weight:900;color:var(--ink);letter-spacing:-.03em;line-height:1;font-family:var(--serif)}
.stat .n em{font-style:italic;color:var(--brand)}
.stat .l{margin-top:12px;font-size:14px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:500}

/* Quote / case */
.case{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:32px;transition:border-color .2s,transform .2s}
.case:hover{border-color:var(--brand);transform:translateY(-3px)}
.case .q{font-size:18px;color:var(--ink);line-height:1.5;font-weight:500;font-family:var(--sans);font-style:normal}
.case .by{margin-top:16px;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:500}
.case .res{margin-top:14px;font-weight:700;color:var(--brand-dark);font-family:var(--sans);font-style:normal}

/* CTA band */
.cta-band{background:var(--deep);color:#fff;border-radius:16px;padding:clamp(48px,6vw,76px) clamp(28px,5vw,56px);text-align:center;position:relative;overflow:hidden}
.cta-band::after{content:"";position:absolute;inset:0;background:radial-gradient(50% 80% at 90% 0%,rgba(16,185,129,.22),transparent 60%);pointer-events:none}
.cta-band h2{color:#fff;position:relative}
.cta-band h2 em{color:var(--brand-bright);font-style:italic}
.cta-band p{color:rgba(226,232,240,.72);max-width:60ch;margin:18px auto 0;position:relative;font-size:1.05rem;line-height:1.6}
.cta-band .hero-cta{justify-content:center;position:relative;margin-top:30px}

/* Page hero (sub-pages) */
.phero{padding:clamp(76px,8vw,116px) 0 clamp(52px,6vw,76px);background:var(--bg-alt);border-bottom:.5px solid var(--line)}
.phero h1{font-size:clamp(42px,5.6vw,68px);line-height:1.06;max-width:18ch}
.phero .lead{margin-top:24px;max-width:680px;font-size:clamp(19px,2.1vw,23px);line-height:1.6}

/* Footer */
footer{background:var(--deep);color:rgba(236,243,241,.6);padding:64px 0 36px}
.foot{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:32px}
.foot-wide{grid-template-columns:1.6fr 1fr 1fr 1fr 1fr}
footer .brand{color:#fff}
footer h4,footer .foot h3{color:#fff;font-size:13px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:14px;font-weight:600;font-family:var(--sans)}
footer a{display:block;font-size:14.5px;margin-bottom:9px;color:rgba(236,243,241,.55)}
footer a:hover{color:var(--brand)}
.foot-bot{margin-top:44px;padding-top:22px;border-top:.5px solid rgba(236,243,241,.1);display:flex;justify-content:space-between;font-size:13px;flex-wrap:wrap;gap:10px;color:rgba(236,243,241,.6)}
.foot-tag{max-width:36ch;font-size:14.5px;margin-top:14px;line-height:1.55;font-style:normal;font-family:var(--sans);color:rgba(226,232,240,.6)}
.foot-legal{margin-top:40px;font-size:12px;line-height:1.55;color:rgba(236,243,241,.6);max-width:none}
.foot-bot .foot-links,.foot-bottom .foot-links{display:flex;gap:18px;flex-wrap:wrap}
.foot-bot .foot-links a,.foot-bottom .foot-links a{display:inline;margin:0;font-size:13px;color:rgba(236,243,241,.6)}
.foot-bot .foot-links a:hover,.foot-bottom .foot-links a:hover{color:var(--brand)}

@media(max-width:860px){
  .feat,.cards,.stats,.foot{grid-template-columns:1fr}
  .feat.rev .feat-text{order:0}
  section{padding:72px 0}
  .sec-head{margin-bottom:44px}
  .cta-band{padding:48px 26px}
}
/* Tablet: keep two-up cards readable */
@media(min-width:861px) and (max-width:1024px){
  .cards{grid-template-columns:repeat(2,1fr)}
}

/* ── Motion (unchanged, gated on prefers-reduced-motion) ───────────────── */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}
.pulse{position:relative;display:inline-block;width:9px;height:9px;vertical-align:middle}
.pulse b{position:absolute;inset:0;border-radius:50%;background:var(--brand)}
.pulse::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--brand);opacity:.5}
@media (prefers-reduced-motion: no-preference){
  .pulse::after{animation:pulse-ring 2.2s cubic-bezier(.16,1,.3,1) infinite}
}
@keyframes pulse-ring{0%{transform:scale(1);opacity:.5}100%{transform:scale(3);opacity:0}}

/* Animated causal graph (in features/causal.html) — terracotta on paper */
.cz{max-width:760px;margin:0 auto;display:block}
.cz-edge{fill:none;stroke-width:2.4;stroke-linecap:round;stroke-dasharray:7 8}
@media (prefers-reduced-motion: no-preference){
  .cz-edge{animation:cz-flow 1.4s linear infinite}
  .cz-pulse{transform-origin:center;transform-box:fill-box;animation:cz-glow 2.4s ease-in-out infinite}
  .cz-node{transform-origin:center;transform-box:fill-box;animation:cz-bob 4s ease-in-out infinite}
}
@keyframes cz-flow{to{stroke-dashoffset:-30}}
@keyframes cz-glow{0%,100%{opacity:.25;transform:scale(1)}50%{opacity:.55;transform:scale(1.18)}}
@keyframes cz-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}

/* Assessment flow — numbered steps with connectors (homepage: how it runs) */
.flow{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin:44px 0 0;padding:0}
.flow-step{position:relative;background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:24px 20px;box-shadow:var(--shadow-sm)}
.flow-step .flow-n{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--brand-tint);color:var(--brand-dark);font-weight:800;font-size:15px;margin-bottom:14px}
.flow-step h3{font-size:1.05rem;margin:0 0 8px}
.flow-step p{font-size:14px;line-height:1.5;color:var(--muted);margin:0}
.flow-step:not(:last-child)::after{content:"\2192";position:absolute;right:-12px;top:50%;transform:translateY(-50%);color:var(--brand);font-weight:700;font-size:18px;z-index:1}
@media(max-width:980px){.flow{grid-template-columns:repeat(2,1fr)}.flow-step:not(:last-child)::after{display:none}}
@media(max-width:560px){.flow{grid-template-columns:1fr}}

/* Outcome stats strip + calculator note (homepage: outcomes) */
.outcome-stats{display:flex;flex-wrap:wrap;justify-content:center;gap:20px 56px;max-width:880px;margin:0 auto 40px;padding-bottom:4px}
.outcome-stats div{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;max-width:220px}
.outcome-stats b{font-size:40px;font-weight:800;color:var(--brand);line-height:1;letter-spacing:-.02em}
.outcome-stats span{font-size:13.5px;line-height:1.4;color:var(--muted)}
.outcome-note{text-align:center;margin-top:36px;font-size:14.5px;color:var(--muted)}
.outcome-note a{color:var(--brand-dark);font-weight:600;white-space:nowrap}

/* Comparison table (homepage: why consulting firms choose Celeredge) */
.compare{max-width:920px;margin:44px auto 0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--bg)}
.compare-row{display:grid;grid-template-columns:1fr 1fr}
.compare-row>div{padding:15px 22px;font-size:15.5px;border-top:1px solid var(--line);line-height:1.45}
.compare-row>div:first-child{color:var(--muted);border-right:1px solid var(--line)}
.compare-row>div:last-child{color:var(--ink);font-weight:600;background:var(--brand-tint)}
.compare-head>div{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-top:none}
.compare-head>div:first-child{color:var(--muted)}
.compare-head>div:last-child{color:var(--brand-dark)}
@media(max-width:640px){.compare-row{grid-template-columns:1fr}.compare-row>div:first-child{border-right:none;padding-bottom:4px}.compare-row>div:last-child{padding-top:4px}}

/* Framework finder entry banner (frameworks.html, index.html) */
.finder-banner{display:flex;gap:28px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--brand-tint);border:1px solid var(--brand-tint-2);border-radius:16px;padding:clamp(24px,3vw,34px) clamp(24px,4vw,40px)}
.finder-banner .fb-copy{max-width:660px}
.finder-banner h2{font-size:clamp(23px,2.6vw,30px);line-height:1.15;margin-top:8px}
.finder-banner .lead{margin-top:10px}
.finder-banner .btn{flex:0 0 auto}
@media(max-width:640px){.finder-banner{padding:24px}.finder-banner .btn{width:100%;justify-content:center}}

/* ---- Cookie consent banner theme (maps to site tokens) ---- */
#cc-main {
  --cc-font-family: var(--sans, system-ui, -apple-system, sans-serif);
  --cc-bg: var(--bg, #ffffff);
  --cc-primary-color: var(--ink, #0a0e17);
  --cc-secondary-color: var(--body, #2b3240);
  --cc-btn-primary-bg: var(--brand, #0e9e6e);
  --cc-btn-primary-color: #ffffff;
  --cc-btn-primary-hover-bg: var(--brand-dark, #0b7e5b);
  --cc-btn-secondary-bg: var(--bg-alt, #f4f7f6);
  --cc-btn-secondary-color: var(--ink, #0a0e17);
  --cc-btn-secondary-hover-bg: var(--line, #e2e8e5);
  --cc-toggle-on-bg: var(--brand, #0e9e6e);
  --cc-separator-border-color: var(--line, rgba(10,14,23,0.12));
  --cc-cookie-category-block-bg: var(--bg-alt, #f4f7f6);
  --cc-link-color: var(--brand-dark, #0b7e5b);
}
#cc-main .cm__btn,
#cc-main .pm__btn { border-radius: var(--radius, 12px); }
