/* ============================================================
   Savur Enterprise Website — V2.15 design system
   One stylesheet for every public page. Sections:
   1 tokens · 2 base · 3 layout · 4 header · 5 buttons · 6 sections
   7 components · 8 page modules · 9 forms · 10 footer · 11 motion
   12 responsive
   ============================================================ */

/* 1. Tokens ------------------------------------------------- */
:root{
  --navy:#01284D;
  --navy-deep:#011B34;
  --navy-ink:#0B3560;
  --green:#29E050;
  --green-deep:#0B7A2B;
  --blue:#00BDFF;
  --blue-deep:#0077B6;
  --amber:#FFA000;
  --red:#C62828;
  --page:#F6F8FA;
  --white:#FFFFFF;
  --line:#DCE4EC;
  --line-strong:#7A8EA3;
  --ink:#122436;
  --ink-2:#3A4D62;
  --ink-3:#5C6F84;
  --on-navy:#FFFFFF;
  --on-navy-2:rgba(255,255,255,.78);
  --on-navy-3:rgba(255,255,255,.66);
  --on-navy-line:rgba(255,255,255,.16);
  --serif:"DM Serif Display",Georgia,"Times New Roman",serif;
  --sans:"DM Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --wrap:1264px;
  --gutter:24px;
  --read:72ch;
  --radius:6px;
  --radius-lg:10px;
  --header-h:72px;
  --ease:cubic-bezier(.2,.7,.2,1);
}

/* 2. Base --------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px)}
body{margin:0;font-family:var(--sans);font-size:17px;line-height:1.6;color:var(--ink);background:var(--white);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg,video{max-width:100%;height:auto;display:block}
h1,h2,h3,h4,h5{margin:0;font-weight:400;color:var(--navy);line-height:1.1;letter-spacing:-.01em}
h1,h2{font-family:var(--serif)}
h1{font-size:clamp(38px,5.2vw,66px);line-height:1.04;letter-spacing:-.02em;text-wrap:balance}
h2{font-size:clamp(30px,3.6vw,48px);line-height:1.08;text-wrap:balance}
h3{font-size:clamp(20px,2vw,24px);font-weight:600;line-height:1.25}
h4{font-size:17px;font-weight:600;line-height:1.3}
h1 em,h2 em{font-style:italic;color:var(--green-deep)}
.sec-navy h1 em,.sec-navy h2 em,.final h2 em{color:var(--green)}
p{margin:0}
p + p{margin-top:1em}
a{color:var(--navy);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{text-decoration-thickness:2px}
ul,ol{margin:0;padding:0}
strong,b{font-weight:600}
small{font-size:13px;color:var(--ink-3)}
hr{border:0;border-top:1px solid var(--line);margin:0}
:focus{outline:none}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:3px}
.sec-navy :focus-visible,.final :focus-visible,footer :focus-visible{outline-color:var(--green)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:16px;top:-60px;z-index:200;background:var(--navy);color:#fff;padding:12px 18px;border-radius:var(--radius);font-weight:600;text-decoration:none}
.skip-link:focus{top:12px}
::selection{background:rgba(41,224,80,.35)}

/* 3. Layout ------------------------------------------------- */
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding-inline:var(--gutter)}
.read{max-width:var(--read)}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 56px;align-items:start}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 40px}
.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px 72px;align-items:start}
.split.rev{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
.sticky{position:sticky;top:calc(var(--header-h) + 32px)}
main{display:block}

/* 4. Header ------------------------------------------------- */
.topbar{background:var(--navy-deep);color:var(--on-navy-2);font-size:13px}
/* V2.21: the topbar band is full-bleed navy, so its content row is fluid (gutters only) and the
   Customers & partners group sits against the viewport's right edge. The main header row keeps
   the 1264px .wrap column. Founder-directed; desktop only (the topbar hides at <=1240px). */
.topbar-in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;max-width:none}
.topbar-note{color:var(--on-navy-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* V2.15: Sign In / Accept an Invitation are real access actions, not utility text.
   Ghost (Sign In) and light-filled (Accept an Invitation) treatments sit below the
   two commercial CTAs in the main row: solid navy (Demo) > outline (Pilot) >
   light-filled (Invitation) > ghost (Sign In). */
.topbar-nav{display:flex;align-items:center;gap:8px;flex:none;padding-block:5px}
.topbar-label{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--on-navy-3);margin-right:4px;white-space:nowrap}
.tb-btn{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 14px;border-radius:var(--radius);font-size:13.5px;font-weight:600;line-height:1;text-decoration:none;white-space:nowrap;border:1.5px solid transparent;transition:background-color .18s,border-color .18s,color .18s}
.tb-ghost{color:#fff;border-color:rgba(255,255,255,.42)}
.tb-ghost:hover{border-color:#fff;background:rgba(255,255,255,.1)}
.tb-light{background:#fff;color:var(--navy);border-color:#fff}
.tb-light:hover{background:#E9F8EC;border-color:#E9F8EC}
.topbar :focus-visible{outline-color:var(--green)}
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid transparent;transition:border-color .25s,box-shadow .25s}
.site-header.scrolled{border-bottom-color:var(--line);box-shadow:0 1px 0 rgba(1,40,77,.04)}
.header-in{display:flex;align-items:center;gap:24px;min-height:var(--header-h)}
.brand{display:inline-flex;align-items:center;flex:none;text-decoration:none}
.brand img{width:148px;height:auto;aspect-ratio:2116/604}
.menu-panel{display:contents}
.nav{flex:1;display:flex;justify-content:center;min-width:0}
.nav-list{display:flex;gap:2px;list-style:none}
.nav-list a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;font-size:15px;font-weight:500;color:var(--ink-2);text-decoration:none;border-radius:var(--radius);white-space:nowrap;position:relative;transition:color .18s,background-color .18s}
.nav-list a:hover{color:var(--navy);background:rgba(1,40,77,.05)}
/* V2.15 active page: weight + navy + a 3px Savur-green indicator (not colour alone).
   Hover keeps its tint only; active keeps weight + indicator; focus is the blue ring. */
.nav-list a[aria-current="page"]{color:var(--navy);font-weight:600}
.nav-list a[aria-current="page"]::after{content:"";position:absolute;left:10px;right:10px;bottom:4px;height:3px;background:var(--green);border-radius:2px}
.nav-list a[aria-current="page"]:hover{background:transparent}
.utility{display:flex;align-items:center;gap:8px;flex:none}
.utility .u-mobile{display:none}
/* V2.15: the current route's own CTA (Pilot Access on pilot.html) reads as "you are here" */
.utility .btn[aria-current="page"]{background:rgba(1,40,77,.07);border-color:var(--navy);box-shadow:inset 0 -3px 0 var(--green)}
.nav-toggle{display:none;margin-left:auto;align-items:center;gap:10px;min-height:44px;padding:0 14px;border:1px solid var(--line-strong);border-radius:var(--radius);background:#fff;color:var(--navy);font:inherit;font-size:15px;font-weight:600;cursor:pointer}
.nav-toggle .bars{display:inline-block;width:18px;height:2px;background:currentColor;position:relative;border-radius:2px}
.nav-toggle .bars::before,.nav-toggle .bars::after{content:"";position:absolute;left:0;width:18px;height:2px;background:currentColor;border-radius:2px;transition:transform .2s}
.nav-toggle .bars::before{top:-6px}.nav-toggle .bars::after{top:6px}
.site-header.open .nav-toggle .bars{background:transparent}
.site-header.open .nav-toggle .bars::before{transform:translateY(6px) rotate(45deg)}
.site-header.open .nav-toggle .bars::after{transform:translateY(-6px) rotate(-45deg)}
.scroll-prog{position:fixed;top:0;left:0;height:3px;width:0;background:var(--green);z-index:101;pointer-events:none}

/* 5. Buttons ------------------------------------------------ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 24px;border-radius:var(--radius);border:1.5px solid transparent;font:inherit;font-size:15.5px;font-weight:600;line-height:1.2;text-decoration:none;text-align:center;cursor:pointer;transition:background-color .18s,color .18s,border-color .18s,transform .18s var(--ease);white-space:normal}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn svg{width:18px;height:18px;flex:none}
.btn-primary{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn-primary:hover{background:var(--navy-ink);border-color:var(--navy-ink)}
.btn-green{background:var(--green);color:var(--navy-deep);border-color:var(--green)}
.btn-green:hover{background:#3BEA5F}
.btn-quiet{background:transparent;color:var(--navy);border-color:var(--line-strong)}
.btn-quiet:hover{border-color:var(--navy);background:rgba(1,40,77,.04)}
.btn-soft{background:rgba(1,40,77,.07);color:var(--navy);border-color:rgba(1,40,77,.07)}
.btn-soft:hover{background:rgba(1,40,77,.12);border-color:rgba(1,40,77,.12)}
.btn-onnavy{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}
.btn-onnavy:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.btn-sm{min-height:42px;padding:9px 18px;font-size:14.5px}
.btn-lg{min-height:54px;padding:14px 30px;font-size:16.5px}
.btn-link{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--navy);text-decoration:none;min-height:44px}
.btn-link svg{width:18px;height:18px;transition:transform .2s var(--ease)}
.btn-link:hover svg{transform:translateX(3px)}
.sec-navy .btn-link{color:#fff}
.cta{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.cta-note{font-size:14px;color:var(--ink-3);margin-top:12px}
.sec-navy .cta-note,.final .cta-note{color:var(--on-navy-3)}
.cta-note a{font-weight:600}
.sec-navy .cta-note a,.final .cta-note a{color:#fff}

/* 6. Sections ----------------------------------------------- */
.sec{padding:clamp(72px,8.5vw,116px) 0}
.sec-tight{padding:clamp(48px,6vw,72px) 0}
.sec-page{background:var(--page)}
.sec-white{background:var(--white)}
.sec-navy{background:var(--navy);color:var(--on-navy)}
.sec-deep{background:var(--navy-deep);color:var(--on-navy)}
.sec-navy h2,.sec-navy h3,.sec-navy h4,.sec-deep h2,.sec-deep h3,.sec-deep h4{color:#fff}
.sec-navy p,.sec-deep p{color:var(--on-navy-2)}
.sec-navy a,.sec-deep a{color:#fff}
.sec-navy small,.sec-deep small{color:var(--on-navy-3)}
.sec + .sec-white,.sec-white + .sec-white,.sec-page + .sec-page{border-top:1px solid var(--line)}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--green-deep);margin-bottom:18px}
.eyebrow::before{content:"";width:22px;height:2px;background:currentColor;border-radius:2px}
.sec-navy .eyebrow,.sec-deep .eyebrow,.final .eyebrow{color:var(--green)}
.shead{max-width:820px;margin-bottom:clamp(40px,5vw,64px)}
.shead .lede{margin-top:18px}
.shead.center{margin-inline:auto;text-align:center}
.shead.center .eyebrow{justify-content:center}
.lede{font-size:clamp(17px,1.45vw,20px);line-height:1.55;color:var(--ink-2);max-width:62ch}
.sec-navy .lede,.final .lede,.sec-deep .lede{color:var(--on-navy-2)}
.sub{font-size:15.5px;color:var(--ink-3);max-width:60ch}

/* Hero (V2.15: light enterprise surface, flagship + interior variants).
   The outer field is warm white / pale blue-gray with a very restrained tint;
   the embedded artifact (record instrument) is a light data card since V2.17,
   so the headline is the only dominant element; navy returns in the bands,
   rail, final CTA and footer, so the page keeps its rhythm. */
.hero{position:relative;background:#F8FAFC;color:var(--ink);overflow:hidden;isolation:isolate;border-bottom:1px solid var(--line)}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(1100px 620px at 84% -10%,rgba(0,189,255,.07),transparent 60%),radial-gradient(800px 500px at -10% 110%,rgba(41,224,80,.06),transparent 60%);z-index:-1}
.hero h1{color:var(--navy)}
/* V2.12 B1: hero/framework add block padding only — .wrap owns the inline gutter at every width */
.hero-in{padding-block:clamp(64px,8vw,112px) clamp(64px,8vw,104px)}
.hero-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,6fr);gap:48px 64px;align-items:center}
.hero-copy .lede{margin-top:22px}
.hero-copy .cta{margin-top:32px}
.hero-utility{margin-top:26px;font-size:14.5px;color:var(--ink-3)}
.hero-utility a{color:var(--navy);font-weight:600;text-decoration:none;border-bottom:1.5px solid rgba(1,40,77,.3)}
.hero-utility a:hover{border-bottom-color:var(--navy)}
.hero-utility span{margin:0 10px}
.hero-media img{width:100%;border-radius:var(--radius-lg)}
.hero-media > .proof,.hero-media > .inst{box-shadow:0 28px 56px -36px rgba(1,40,77,.35),0 1px 0 rgba(1,40,77,.04)}
.hero-media .figure img.phone{border:0;border-radius:0;filter:drop-shadow(0 18px 28px rgba(1,40,77,.22))}
/* Editorial mission statement (About): not a product card */
.mission{padding-left:28px;border-left:3px solid var(--green)}
.mission .k{display:block;font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--green-deep);margin-bottom:16px}
.mission strong{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(36px,3.4vw,48px);line-height:1.08;color:var(--navy);letter-spacing:-.01em}
.mission p{margin-top:18px;font-size:16px;color:var(--ink-2);max-width:34ch}
.hero.compact .hero-in{padding-block:clamp(56px,7vw,92px)}

/* Page hero (light) */
.page-hero{background:var(--page);border-bottom:1px solid var(--line)}
.page-hero .hero-in{padding-block:clamp(56px,7vw,88px)}
.page-hero .lede{margin-top:20px}
.page-hero .cta{margin-top:28px}

/* Category strip / evidence framework */
.framework{background:var(--white);border-bottom:1px solid var(--line)}
.framework-in{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding-block:18px}
.framework .lead{font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-right:8px}
.framework .tag{display:inline-flex;align-items:center;min-height:32px;padding:4px 12px;border:1px solid var(--line);border-radius:999px;font-size:13.5px;font-weight:500;color:var(--ink-2);background:var(--page)}

/* 7. Components --------------------------------------------- */
/* Big numbers */
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.stat{padding-top:22px;border-top:2px solid var(--navy)}
.stat b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(44px,5vw,64px);line-height:1;color:var(--navy);letter-spacing:-.02em}
.stat p{margin-top:12px;font-size:16px;color:var(--ink-2);max-width:30ch}
.stat small{display:block;margin-top:10px}
.sec-navy .stat{border-top-color:var(--green)}
.sec-navy .stat b{color:#fff}

/* Numbered stages */
.stages{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--line)}
.stage{padding:28px 28px 32px 0;border-right:1px solid var(--line);margin-right:28px}
.stage:last-child{border-right:0;margin-right:0}
.stage .n{display:block;font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--green-deep);margin-bottom:14px}
.stage h3{margin-bottom:10px}
.stage p{font-size:15.5px;color:var(--ink-2)}
.sec-navy .stages{border-top-color:var(--on-navy-line)}
.sec-navy .stage{border-right-color:var(--on-navy-line)}
.sec-navy .stage .n{color:var(--green)}

/* Editorial rows (replaces small cards) */
.rows{list-style:none;border-top:1px solid var(--line)}
.rows > li{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:12px 48px;padding:26px 0;border-bottom:1px solid var(--line)}
.rows h3{font-size:19px;font-weight:600}
.rows p{font-size:16px;color:var(--ink-2);max-width:64ch}
.rows .k{font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--green-deep);display:block;margin-bottom:6px}
.rows.compact > li{padding:18px 0;grid-template-columns:minmax(0,3fr) minmax(0,9fr)}
.sec-navy .rows,.sec-navy .rows > li{border-color:var(--on-navy-line)}
.sec-navy .rows .k{color:var(--green)}
.sec-navy .rows p,.sec-navy .stage p,.sec-navy .roles p,.sec-navy .stat p,.sec-navy .segment li,.sec-navy .panel p{color:var(--on-navy-2)}
.sec-navy .rows h3,.sec-navy .roles h3,.sec-navy .segment h3{color:#fff}

/* Two-up editorial panels */
.panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.panel{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);padding:32px}
.panel h3{margin-bottom:10px}
.panel p{color:var(--ink-2);font-size:16px}
.panel .k{display:block;font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--green-deep);margin-bottom:12px}
.panel ul{margin-top:14px;padding-left:0;list-style:none}
.panel li{position:relative;padding-left:20px;font-size:15.5px;color:var(--ink-2);margin-top:8px}
.panel li::before{content:"";position:absolute;left:0;top:11px;width:8px;height:2px;background:var(--green-deep)}
.panel.navy{background:var(--navy);border-color:var(--navy);color:#fff}
.panel.navy h3,.panel.navy .k{color:#fff}.panel.navy .k{color:var(--green)}
.panel.navy p,.panel.navy li{color:var(--on-navy-2)}
.panel.navy li::before{background:var(--green)}
.panel.navy a,.panel.navy .btn-link,.panel.image a{color:#fff}
.panel.image{position:relative;min-height:420px;display:flex;align-items:flex-end;overflow:hidden;color:#fff;border:0}
.panel.image .bg{position:absolute;inset:0;background-size:cover;background-position:center}
.panel.image::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(1,27,52,.05) 0%,rgba(1,27,52,.86) 72%)}
.panel.image .in{position:relative;z-index:1}
.panel.image h3{color:#fff}.panel.image p{color:var(--on-navy-2)}.panel.image .k{color:var(--green)}
.panel.image li{color:var(--on-navy-2)}.panel.image li::before{background:var(--green)}

/* Checklist */
.checks{list-style:none;display:grid;gap:12px}
.checks li{position:relative;padding-left:32px;font-size:16px;color:var(--ink-2)}
.checks li::before{content:"";position:absolute;left:0;top:5px;width:18px;height:18px;border-radius:50%;background:var(--green);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='12'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='12'/%3E%3C/svg%3E") center/contain no-repeat}
.checks li::after{content:"";position:absolute;left:5px;top:9px;width:8px;height:5px;border-left:2px solid var(--navy-deep);border-bottom:2px solid var(--navy-deep);transform:rotate(-45deg)}
.sec-navy .checks li{color:var(--on-navy-2)}

/* Definition-style list for "what you don't have to do" */
.nots{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 48px}
.nots li{display:grid;grid-template-columns:32px 1fr;gap:14px;align-items:start}
.nots .x{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:1.5px solid rgba(255,255,255,.35);color:var(--green);font-weight:700;font-size:16px}
.nots h3{color:#fff;font-size:17px;margin-bottom:6px}
.nots p{font-size:15.5px}

/* Tags */
.tags{display:flex;flex-wrap:wrap;gap:8px}
.tags span{display:inline-flex;align-items:center;min-height:34px;padding:5px 13px;border-radius:999px;border:1px solid var(--line);background:var(--white);font-size:13.5px;font-weight:500;color:var(--ink-2)}
.sec-navy .tags span{border-color:var(--on-navy-line);background:rgba(255,255,255,.06);color:#fff}

/* Ledger / instrument (homepage hero). V2.17: light premium data card — white surface,
   navy/blue-gray border, narrow navy top rule as the single dark accent, navy/slate type,
   pale blue-gray track, deep-green (not neon) active state. Homepage-only classes. */
.inst{background:var(--white);border:1px solid #C5D2DF;border-top:3px solid var(--navy);border-radius:var(--radius-lg);padding:24px 26px 26px;font-size:14px;color:var(--ink)}
.inst-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.inst-id{font-weight:600;color:var(--navy)}
.inst-id span{font-weight:400;color:var(--ink-3)}
.inst-live{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:500;color:var(--green-deep)}
.inst-live .dot{width:9px;height:9px;border-radius:50%;background:var(--green);border:1.5px solid var(--green-deep);box-shadow:0 0 0 0 rgba(41,224,80,.6);animation:pulse 2s infinite}
.inst-meta{display:flex;gap:28px;margin-bottom:16px}
.inst-meta b{display:block;font-family:var(--serif);font-weight:400;font-size:34px;line-height:1;color:var(--navy)}
.inst-meta span{display:block;font-size:12.5px;color:var(--ink-3);margin-top:4px}
.track{position:relative;height:4px;background:#DCE4EC;border-radius:2px;margin:6px 0 14px}
.track .fill{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--green-deep);border-radius:2px}
.track .pound{position:absolute;top:50%;left:0;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:#fff;border:2px solid var(--green-deep);box-shadow:0 0 0 4px rgba(11,122,43,.16)}
.track .pound.done{background:var(--green-deep)}
.stops{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:18px}
.stop{padding-top:10px;border-top:2px solid #DCE4EC;transition:border-color .3s}
.stop.on{border-top-color:var(--green-deep)}
.stop-h{display:block;font-weight:500;color:var(--ink-2);font-size:13px;transition:color .3s}
.stop.on .stop-h{color:var(--navy);font-weight:600}
.stop-p{display:block;font-size:12px;color:var(--ink-3)}
.ledger{border-top:1px solid var(--line);padding-top:14px}
.ledger-h{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-bottom:10px}
.ledger .row{display:grid;grid-template-columns:70px 1fr;gap:12px;padding:6px 0;color:var(--ink-3);transition:color .4s}
.ledger .row.in{color:var(--ink)}
.ledger .row .t{font-variant-numeric:tabular-nums;color:var(--ink-3);font-size:13px}
.ledger .row b{color:inherit}
.ledger .row.in b{color:var(--green-deep)}
.seal{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;margin-top:12px;padding:12px 14px;border-radius:var(--radius);background:#F1F9F3;border:1px solid rgba(11,122,43,.3);opacity:0;transform:translateY(6px);transition:opacity .4s,transform .4s}
.seal.in{opacity:1;transform:none}
.seal b{color:var(--green-deep);font-size:13px;letter-spacing:.08em;text-transform:uppercase}
.seal span{font-size:13px;color:var(--ink-2)}

/* Weight ladder (data model) */
.ladder{list-style:none;border-top:1px solid var(--line)}
.ladder li{display:grid;grid-template-columns:22px 1fr auto;gap:18px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}
.ladder .pip{width:12px;height:12px;border-radius:50%;background:var(--line-strong)}
.ladder li:nth-child(1) .pip{background:var(--blue)}.ladder li:nth-child(2) .pip{background:#13C8B7}.ladder li:nth-child(3) .pip{background:#18D786}.ladder li:nth-child(4) .pip{background:var(--green)}
.ladder h3{font-size:17px}
.ladder p{font-size:14.5px;color:var(--ink-3)}
.ladder .val{font-family:var(--serif);font-size:26px;color:var(--navy);font-variant-numeric:tabular-nums;white-space:nowrap}
.flagnote{margin-top:28px;padding:20px 22px;border-left:3px solid var(--green-deep);background:var(--page);border-radius:0 var(--radius) var(--radius) 0}
.flagnote b{display:block;color:var(--navy);margin-bottom:6px}
.flagnote p{font-size:15px;color:var(--ink-2)}

/* Phase pipeline */
.pipe{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;counter-reset:phase}
.pnode{position:relative;padding:28px 28px 0 0;margin-right:28px;border-top:1px solid var(--on-navy-line)}
.pnode:last-child{margin-right:0;padding-right:0}
.pnode::before{content:"";position:absolute;top:-1px;left:0;width:56px;height:2px;background:var(--green)}
.pnode .n{display:block;font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--green);margin-bottom:12px}
.pnode h3{color:#fff;margin-bottom:10px}
.pnode p{font-size:15.5px}

/* Roles */
.roles{list-style:none;border-top:1px solid var(--line)}
.roles li{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:8px 32px;padding:18px 0;border-bottom:1px solid var(--line)}
.roles h3{font-size:17px}
.roles p{font-size:15.5px;color:var(--ink-2)}

/* Campaign band */
.campaign{background:var(--green);color:var(--navy-deep);padding:clamp(48px,6vw,80px) 0}
.campaign-in{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:24px 56px;align-items:stretch}
.campaign h2{color:var(--navy-deep);font-size:clamp(34px,4.6vw,60px)}
.campaign h2 em,.campaign-invite em{color:var(--navy-deep);font-style:italic}
.campaign .campaign-invite{margin-top:10px;max-width:none;font-family:var(--serif);font-size:clamp(22px,2.4vw,34px);line-height:1.15;color:var(--navy-deep);text-wrap:balance}
.campaign-pillars{list-style:none;margin:26px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 20px}
.campaign-pillars li{display:flex;align-items:center;gap:12px;font-family:var(--serif);font-size:clamp(17px,1.25vw,19px);line-height:1.2;color:var(--navy-deep);text-wrap:balance}
.campaign-pillars li em{font-style:italic}
.campaign-pillars .nb{white-space:nowrap}
.campaign-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#fff;color:var(--navy-deep);flex:none}
.campaign-icon svg{width:18px;height:18px}
.campaign p{font-size:18px;color:rgba(1,27,52,.82);max-width:44ch}
.campaign-copy > p{margin-top:24px}
.campaign .k{display:block;font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:rgba(1,27,52,.7);margin-bottom:14px}
.campaign-visual{position:relative;margin:0;padding-left:40px;min-height:220px;display:flex;flex-direction:column;gap:14px}
.campaign-primary{position:relative;flex:1;min-height:200px}
.campaign-primary > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%;border-radius:20px;box-shadow:0 18px 44px rgba(1,27,52,.18)}
.campaign-inset{position:absolute;left:-40px;bottom:-78px;width:50%;max-width:256px;aspect-ratio:3/2;border-radius:12px;border:3px solid #fff;overflow:hidden;box-shadow:0 12px 28px rgba(1,27,52,.28);background:#fff}
.campaign-inset img{display:block;width:100%;height:100%;object-fit:cover}
.campaign-caption{margin:0;padding:40px 0 0 calc(50% - 24px);min-height:82px;font-size:15px;line-height:1.4;color:rgba(1,27,52,.82)}
.campaign-caption strong{font-weight:700;color:var(--navy-deep)}
.campaign-arrow{position:absolute;left:calc(50% - 34px);bottom:-52px;width:56px;height:56px;color:#fff;pointer-events:none;filter:drop-shadow(0 1px 2px rgba(1,27,52,.3))}
.campaign-arrow svg{display:block;width:100%;height:100%}
.campaign-line{background:var(--navy-deep);color:#fff;padding:22px 0;text-align:center;font-size:18px;letter-spacing:-.005em}
.campaign-line strong{color:var(--green)}

/* Final CTA */
.final{background:var(--navy-deep);color:#fff;padding:clamp(72px,9vw,120px) 0;position:relative;overflow:hidden}
.final::before{content:"";position:absolute;inset:0;background:radial-gradient(900px 500px at 50% 120%,rgba(41,224,80,.16),transparent 60%);pointer-events:none}
.final .wrap{position:relative;text-align:center;max-width:860px}
.final h2{color:#fff}
.final p{margin-top:18px;font-size:19px;color:var(--on-navy-2)}
.final .cta{justify-content:center;margin-top:32px}
.final .fine{margin-top:22px;font-size:14.5px;color:var(--on-navy-3)}
.final .fine a{color:#fff}

/* Image/figure */
.figure{margin:0}
.figure img{border-radius:var(--radius-lg);border:1px solid var(--line)}
.figure figcaption{margin-top:12px;font-size:14px;color:var(--ink-3)}
.proof{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px}
.proof .k{display:block;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-bottom:14px}
.proof img{border-radius:var(--radius);border:1px solid var(--line)}
.proof strong{display:block;font-size:17px;color:var(--navy);margin-bottom:12px}
.proof small{display:block;margin-top:12px}
.proof-lines{display:grid;gap:0;border-top:1px solid var(--line)}
.proof-lines > div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);font-size:14.5px;align-items:center}
.proof-lines b{color:var(--navy)}
.proof-lines span{color:var(--ink-3);font-variant-numeric:tabular-nums}
.proof-lines em{font-style:normal;font-size:12.5px;font-weight:600;color:var(--green-deep)}
.hero .proof{padding:28px}
.hero .proof p{color:var(--ink-2);font-size:14.5px;margin-top:14px}

/* Journey (pilot) */
.journey{list-style:none;counter-reset:j;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;border-top:1px solid var(--line)}
.journey li{counter-increment:j;padding:22px 20px 0 0;position:relative}
.journey li::before{content:counter(j,decimal-leading-zero);display:block;font-size:12.5px;font-weight:600;letter-spacing:.12em;color:var(--green-deep);margin-bottom:10px}
.journey li::after{content:"";position:absolute;top:-1px;left:0;width:36px;height:2px;background:var(--green-deep)}
.journey h3{font-size:16px}
.journey p{font-size:14px;color:var(--ink-3);margin-top:4px}
.journey li.is-you h3::after{content:"You are here";display:inline-block;margin-left:8px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--navy);background:rgba(41,224,80,.25);padding:2px 8px;border-radius:999px;vertical-align:middle}

/* Diagram (platform) */
.diagram{width:100%;height:auto}
.diagram text{font-family:var(--sans)}
/* V2.12 B3: compact architecture projection. Hidden while the SVG is legible
   (>1024px); the responsive block below swaps the SVG out for this at <=1024px
   so exactly one representation is rendered and exposed at any width. */
.arch-stack{display:none}
.arch-layers{list-style:none;margin:0;padding:0;counter-reset:none}
.arch-layer{position:relative;padding-bottom:34px}
.arch-layer:not(:last-child)::after{content:"";position:absolute;left:50%;bottom:6px;height:22px;border-left:2px dashed #B9C7D4;transform:translateX(-1px)}
.arch-layer:not(:last-child)::before{content:"";position:absolute;left:50%;bottom:2px;width:8px;height:8px;border-radius:50%;background:var(--green);transform:translateX(-4px);z-index:1}
.arch-layer:last-child{padding-bottom:0}
.arch-k{display:block;font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-bottom:12px}
.arch-ws,.arch-base,.arch-core{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.arch-ws{grid-template-columns:repeat(2,minmax(0,1fr))}
.arch-ws li{display:flex;align-items:center;justify-content:center;text-align:center;min-height:56px;padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--white);font-size:16px;font-weight:600;color:var(--navy)}
.arch-record{text-align:center}
.arch-record::before,.arch-record::after{left:50%}
.arch-pill{display:inline-block;padding:14px 28px;border-radius:999px;background:var(--navy);color:#fff;font-size:17px;font-weight:600;position:relative}
.arch-record{padding-top:4px}
.arch-record .arch-pill::before{content:"";position:absolute;left:-24px;right:-24px;top:-14px;height:5px;border-radius:3px;background:linear-gradient(90deg,var(--blue),var(--green))}
.arch-core li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 14px;align-items:baseline;padding:14px 16px;border:1px solid var(--line);border-radius:8px;background:var(--page)}
.arch-n{grid-row:1/3;font-size:12.5px;font-weight:600;letter-spacing:.12em;color:var(--green-deep);align-self:start;padding-top:3px}
.arch-core b{font-size:18px;font-weight:600;color:var(--navy);line-height:1.2}
.arch-s{font-size:14.5px;color:var(--ink-2)}
.arch-base{grid-template-columns:repeat(2,minmax(0,1fr))}
.arch-base li{display:flex;align-items:center;justify-content:center;text-align:center;min-height:52px;padding:10px 14px;border-radius:8px;background:var(--navy);color:#fff;font-size:14.5px;font-weight:500}
.arch-note{margin-top:20px;font-size:14px;color:var(--ink-3)}

/* 8. Page modules ------------------------------------------- */
/* Operating environments rail (Solutions) */
.rail{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.rail::before{content:"";position:absolute;inset:0;background:url("enterprise-network.webp") center/cover no-repeat;opacity:.34}
.rail::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(1,40,77,.5),rgba(1,27,52,.92))}
.rail .wrap{position:relative;z-index:1}
.rail-stage{display:grid;grid-template-columns:minmax(0,5fr) auto minmax(0,5fr);gap:32px;align-items:stretch;margin-top:40px}
.rail-scene{border:1px solid rgba(255,255,255,.16);border-radius:var(--radius-lg);padding:28px;background:rgba(1,27,52,.55);backdrop-filter:blur(6px)}
/* V2.13: photo panel cropped from the approved Solutions series; text, gates and tiles stay HTML */
.rail-photo{position:relative;aspect-ratio:16/10;margin:-28px -28px 24px;border-radius:var(--radius-lg) var(--radius-lg) 0 0;overflow:hidden;background:var(--navy-deep);border-bottom:1px solid rgba(255,255,255,.16)}
.rail-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .55s var(--ease)}
.rail-photo img.is-on{opacity:1}
.rail-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(1,27,52,0) 60%,rgba(1,27,52,.55));pointer-events:none}
.rail-impact{display:flex;flex-direction:column;justify-content:center}
.rail-scene .k{display:block;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--green);margin-bottom:14px}
.rail-scene h3{color:#fff;font-family:var(--serif);font-weight:400;font-size:clamp(28px,3vw,40px);line-height:1.05}
.rail-scene .ctx{color:var(--on-navy-2);margin-top:8px;font-size:15px}
.rail-scene .stream{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.rail-scene .stream span{display:inline-flex;align-items:center;min-height:32px;padding:4px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.22);font-size:13px;color:#fff;background:rgba(255,255,255,.06)}
.rail-gate{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-width:120px}
.rail-gate span{display:inline-flex;align-items:center;justify-content:center;min-width:96px;min-height:40px;padding:6px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.28);font-size:13.5px;font-weight:600;color:var(--on-navy-2);transition:background-color .3s,color .3s,border-color .3s}
.rail-gate span.is-active{background:var(--green);border-color:var(--green);color:var(--navy-deep)}
.rail-gate i{width:1px;height:16px;background:rgba(255,255,255,.3)}
.rail-impact .k{display:block;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--green);margin-bottom:14px}
.rail-impact ul{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.rail-impact li{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 14px;border-radius:var(--radius);border:1px solid rgba(255,255,255,.14);font-size:14px;color:var(--on-navy-3);transition:background-color .3s,color .3s,border-color .3s}
.rail-impact li svg{width:18px;height:18px;flex:none;opacity:.7}
.rail-impact li.is-primary{background:rgba(41,224,80,.16);border-color:var(--green);color:#fff}
.rail-impact li.is-primary svg{opacity:1;color:var(--green)}
.rail-impact li.is-supporting{color:#fff;border-color:rgba(255,255,255,.35)}
.rail-paths{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:22px}
.rail-paths p{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--radius);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);font-size:13.5px;color:var(--on-navy-2)}
.rail-paths b{display:block;color:#fff}
.rail-paths svg{width:20px;height:20px;flex:none;color:var(--green)}
.rail-message{margin-top:32px;max-width:720px}
.rail-message p{font-size:17px;color:var(--on-navy-2);min-height:3.2em}
.rail-controls{display:flex;align-items:center;gap:14px;margin-top:28px}
.rail-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;cursor:pointer;transition:background-color .2s}
.rail-btn:hover{background:rgba(255,255,255,.12)}
.rail-btn svg{width:18px;height:18px}
.rail-progress{flex:1;max-width:260px;height:3px;background:rgba(255,255,255,.18);border-radius:2px;overflow:hidden}
.rail-progress span{display:block;height:100%;width:0;background:var(--green)}
.rail-progress span.counting{animation:railcount 3s linear forwards}
.rail.is-paused .rail-progress span{animation-play-state:paused}
.rail-count{font-size:13px;font-variant-numeric:tabular-nums;color:var(--on-navy-2);min-width:64px}
@keyframes railcount{from{width:0}to{width:100%}}

.rail h2,.pathway h2{color:#fff}
.rail .eyebrow,.pathway .eyebrow{color:var(--green)}
.rail .lede,.pathway .lede{color:var(--on-navy-2)}

/* Visual bands (V2.13) — approved marketing visuals, not evidence of customers or results */
.visual{margin:clamp(40px,5vw,64px) 0 0;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;background:var(--white)}
.visual img{display:block;width:100%;height:auto;aspect-ratio:2.25/1;object-fit:cover;object-position:50% 42%}
.visual figcaption{display:flex;gap:12px;align-items:baseline;padding:12px 18px;font-size:13.5px;line-height:1.45;color:var(--ink-3);border-top:1px solid var(--line)}
.visual figcaption b{flex:none;font-size:11.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--green-deep)}
.sec-navy .visual,.sec-deep .visual{border-color:var(--on-navy-line);background:transparent}
.sec-navy .visual figcaption,.sec-deep .visual figcaption{color:var(--on-navy-3);border-top-color:var(--on-navy-line);background:rgba(255,255,255,.04)}
.sec-navy .visual figcaption b,.sec-deep .visual figcaption b{color:var(--green)}

/* Segment grid (Solutions) */
.segments{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--line)}
.segment{padding:28px 28px 32px 0;margin-right:28px;border-right:1px solid var(--line)}
.segment:last-child{border-right:0;margin-right:0}
.segment .k{display:block;font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--green-deep);margin-bottom:12px}
.segment h3{margin-bottom:14px}
.segment ul{list-style:none;display:grid;gap:6px}
.segment li{font-size:15.5px;color:var(--ink-2);padding:6px 0;border-bottom:1px solid var(--line)}
.segment li:last-child{border-bottom:0}

/* Pathway stage (image split) */
.pathway{position:relative;background:var(--navy-deep);color:#fff;overflow:hidden}
.pathway .bg{position:absolute;inset:0;background:url("recovery-pathways.webp") center/cover no-repeat;opacity:.55}
.pathway::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(1,27,52,.4),rgba(1,27,52,.9))}
.pathway .wrap{position:relative;z-index:1;padding-block:clamp(72px,9vw,120px)}
.pathway h2{color:#fff}
.pathway-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:40px}
.pathway-grid article{padding:28px;border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-lg);background:rgba(1,27,52,.55);backdrop-filter:blur(6px)}
.pathway-grid svg{width:28px;height:28px;color:var(--green);margin-bottom:14px}
.pathway-grid h3{color:#fff;margin-bottom:8px}
.pathway-grid p{color:var(--on-navy-2);font-size:15.5px}

/* Scale statements */
.scale{position:relative;overflow:hidden}
.scale-statements{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:8px}
.scale-statements p{margin:0;font-family:var(--serif);font-size:clamp(26px,3vw,40px);line-height:1.1;color:var(--navy);padding-top:18px;border-top:2px solid var(--green)}
.scale-watermark{position:absolute;right:-40px;bottom:-60px;width:300px;opacity:.06;pointer-events:none}

/* Lifecycle scroll record (How it works) */
.flow{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:start}
.rec{background:var(--navy-deep);color:#fff;border-radius:var(--radius-lg);padding:22px 24px;font-size:14px;border:1px solid rgba(255,255,255,.1)}
.rec-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.rec-id{font-weight:600}.rec-id span{font-weight:400;color:var(--on-navy-3)}
.rec-status{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.1);color:var(--on-navy-2)}
.rec-status.done{background:rgba(41,224,80,.18);color:var(--green)}
.meter{display:flex;gap:28px;margin-bottom:12px}
.meter b{display:block;font-family:var(--serif);font-weight:400;font-size:32px;line-height:1}
.meter span{display:block;font-size:12.5px;color:var(--on-navy-3);margin-top:4px}
.prog{height:4px;background:rgba(255,255,255,.14);border-radius:2px;margin:6px 0 16px;overflow:hidden}
.prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--blue),var(--green));transition:width .6s var(--ease)}
.rlines{border-top:1px solid rgba(255,255,255,.12);padding-top:10px}
.rline{display:grid;grid-template-columns:70px 1fr;gap:12px;padding:6px 0;color:rgba(255,255,255,.62);transition:color .4s}
.rline.on{color:#fff}
.rline .k{font-variant-numeric:tabular-nums;color:rgba(255,255,255,.62);font-size:13px}
.rline b{color:inherit}
.rline.on b{color:var(--green)}
.rseal{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;margin-top:12px;padding:12px 14px;border-radius:var(--radius);background:rgba(41,224,80,.1);border:1px solid rgba(41,224,80,.3);opacity:0;transition:opacity .4s}
.rseal.on{opacity:1}
.rseal b{color:var(--green);font-size:13px;letter-spacing:.08em;text-transform:uppercase}
.rseal span{font-size:13px;color:var(--on-navy-2)}
.stack{display:grid;gap:8px}
.sc{padding:32px 0;border-top:1px solid var(--line);transition:opacity .3s}
.sc .n{display:block;font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--green-deep);margin-bottom:12px}
.sc h3{font-family:var(--serif);font-weight:400;font-size:clamp(26px,2.6vw,34px);margin-bottom:12px}
.sc > p{color:var(--ink-2)}
.sc ul{margin-top:16px}
.sc .why{margin-top:20px;padding:16px 18px;background:var(--page);border-left:3px solid var(--green-deep);border-radius:0 var(--radius) var(--radius) 0}
.sc .why b{display:block;color:var(--navy);font-size:14px;margin-bottom:4px}
.sc .why p{font-size:15px;color:var(--ink-2)}
.flow-progress .sc.on{border-top:2px solid var(--green-deep)}

/* Contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px;align-items:start}
.calendly-inline-widget{min-width:0!important;width:100%;height:700px;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;background:#fff}
.contact-card{background:var(--page);border:1px solid var(--line);border-radius:var(--radius-lg);padding:28px}
.contact-card h3{margin-bottom:16px}
.contact-card dl{display:grid;grid-template-columns:auto 1fr;gap:12px 20px;margin:0;font-size:15.5px}
.contact-card dt{font-weight:600;color:var(--navy)}
.contact-card dd{margin:0;color:var(--ink-2)}
.reasons{list-style:none;border-top:1px solid var(--line)}
.reasons li{border-bottom:1px solid var(--line)}
.reasons a{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr) auto;gap:10px 28px;align-items:center;padding:20px 0;text-decoration:none;color:inherit}
.reasons a:hover h3{color:var(--green-deep)}
.reasons h3{font-size:19px;transition:color .18s}
.reasons p{font-size:15px;color:var(--ink-3)}
.reasons svg{width:20px;height:20px;color:var(--navy);transition:transform .2s var(--ease)}
.reasons a:hover svg{transform:translateX(4px)}

/* Legal / prose */
.prose{max-width:var(--read)}
.prose h2{font-family:var(--sans);font-weight:600;font-size:22px;margin:44px 0 12px;scroll-margin-top:calc(var(--header-h) + 24px)}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:18px;margin:26px 0 8px}
.prose p{color:var(--ink-2);margin-top:12px}
.prose ul,.prose ol{margin:12px 0 0 22px;color:var(--ink-2)}
.prose li{margin-top:6px}
.prose li::marker{color:var(--green-deep)}
.prose .note{padding:18px 20px;border-left:3px solid var(--amber);background:#FFF8E8;border-radius:0 var(--radius) var(--radius) 0;color:var(--ink);font-size:15.5px;margin-bottom:28px}
.prose .meta{font-size:14px;color:var(--ink-3);margin-bottom:8px}
.legal-grid{display:grid;grid-template-columns:260px minmax(0,1fr);gap:64px;align-items:start}
.toc{font-size:14px}
/* V2.12 sweep (focus-not-obscured class): a sticky table of contents taller than the viewport could hold links that never scroll into view; cap it to the viewport and let it scroll internally */
@media(min-width:1241px){.toc.sticky{max-height:calc(100vh - var(--header-h) - 48px);overflow:auto;overscroll-behavior:contain;padding:4px 6px;margin:-4px -6px}}
.toc h2{font-family:var(--sans);font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-bottom:12px}
.toc ol{list-style:none;border-left:1px solid var(--line)}
.toc a{display:block;padding:6px 0 6px 14px;color:var(--ink-2);text-decoration:none;border-left:2px solid transparent;margin-left:-1px}
.toc a:hover,.toc a[aria-current="true"]{color:var(--navy);border-left-color:var(--green)}

/* Resources */
.resource-list{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 40px;border-top:1px solid var(--line)}
.resource-list li{padding:28px 0;border-bottom:1px solid var(--line)}
.resource-list .k{display:block;font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--green-deep);margin-bottom:10px}
.resource-list h3{margin-bottom:8px}
.resource-list p{font-size:15.5px;color:var(--ink-2)}
.resource-list .btn-link{margin-top:12px}

/* Access page */
.access-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
/* V2.18 Access opening: editorial headline + CTAs left, four pathway points right as one restrained light card
   (same surface language as the V2.17 homepage instrument). Scoped to .access-open / .paths — no shared rule changes. */
.access-open-in{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px 64px;align-items:center}
.access-open-copy .lede{margin-top:20px}
.access-open-copy .cta{margin-top:30px}
.paths{list-style:none;background:var(--white);border:1px solid #C5D2DF;border-top:3px solid var(--navy);border-radius:var(--radius-lg);box-shadow:0 28px 56px -36px rgba(1,40,77,.35),0 1px 0 rgba(1,40,77,.04);padding:8px 0}
.paths li{display:flex;align-items:center;gap:16px;padding:16px 22px;font-size:17px;font-weight:500;line-height:1.4;color:var(--navy)}
.paths li + li{border-top:1px solid var(--line)}
.paths li::before{content:"";flex:none;width:28px;height:28px;border-radius:50%;background:#F1F9F3;border:1px solid rgba(11,122,43,.28);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B7A2B' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h13M12 5l7 7-7 7'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:14px 14px}

/* 9. Forms -------------------------------------------------- */
.form{display:grid;gap:22px}
.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.field{display:grid;gap:8px}
.field label{font-size:14.5px;font-weight:600;color:var(--navy)}
.field .hint{font-size:13.5px;color:var(--ink-3)}
.field .req{color:var(--red);font-weight:600}
.input,select.input,textarea.input{width:100%;min-height:50px;padding:12px 14px;border:1.5px solid var(--line-strong);border-radius:var(--radius);background:#fff;font:inherit;font-size:16px;color:var(--ink);transition:border-color .18s,box-shadow .18s}
textarea.input{min-height:140px;resize:vertical}
.input:focus-visible{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(0,189,255,.35)}
.input[aria-invalid="true"]{border-color:var(--red)}
.field-error{display:none;font-size:13.5px;color:var(--red);font-weight:500}
.field.invalid .field-error{display:block}
.check{display:grid;grid-template-columns:22px 1fr;gap:12px;align-items:start;font-size:15px;color:var(--ink-2)}
.check input{width:22px;height:22px;margin:2px 0 0;accent-color:var(--navy)}
.form-status{display:none;padding:18px 20px;border-radius:var(--radius);font-size:15.5px;border:1px solid var(--line)}
.form-status.ok{display:block;background:#EEFBF1;border-color:#9BE3AE;color:#0F5A24}
.form-status.err{display:block;background:#FDECEC;border-color:#F0B4B4;color:#7A1C1C}
.form-status b{display:block;margin-bottom:4px}
.form-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.form-note{font-size:13.5px;color:var(--ink-3)}
.form-panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:36px}

/* 10. Footer ------------------------------------------------ */
.site-footer{background:var(--navy);color:var(--on-navy-2);padding:clamp(56px,7vw,88px) 0 36px}
.footer-grid{display:grid;grid-template-columns:minmax(0,5fr) repeat(3,minmax(0,2fr));gap:40px 48px}
.footer-brand .footer-logo{display:inline-block;width:176px;line-height:0;text-decoration:none;background:none;border:0;padding:0}
.footer-brand .footer-logo img{width:100%;height:auto;aspect-ratio:2048/584}
.footer-brand p{margin-top:20px;font-size:15px;line-height:1.6;max-width:36ch;color:var(--on-navy-2)}
.footer-social{list-style:none;display:flex;flex-wrap:wrap;gap:4px;margin:22px 0 0 -12px}
.footer-social a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius);color:var(--on-navy-2);text-decoration:none;transition:color .18s,background-color .18s}
.footer-social a:hover{color:#fff;background:rgba(255,255,255,.1)}
.footer-social svg{width:20px;height:20px;display:block}
.footer-col h2{font-family:var(--sans);font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#fff;margin-bottom:16px}
.footer-col ul{list-style:none;display:grid;gap:4px}
.footer-col a{display:inline-flex;align-items:center;min-height:36px;color:var(--on-navy-2);text-decoration:none;font-size:15px;transition:color .18s}
.footer-col a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;margin-top:56px;padding-top:24px;border-top:1px solid var(--on-navy-line);font-size:13.5px;color:var(--on-navy-3)}
.footer-bottom a{color:var(--on-navy-2);text-decoration:none}
.footer-bottom a:hover{color:#fff;text-decoration:underline}
.footer-bottom address{font-style:normal;display:inline}

/* 11. Motion ------------------------------------------------ */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal-stagger > *{opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.reveal-stagger.in > *{opacity:1;transform:none}
.reveal-stagger.in > :nth-child(2){transition-delay:.08s}
.reveal-stagger.in > :nth-child(3){transition-delay:.16s}
.reveal-stagger.in > :nth-child(4){transition-delay:.24s}
.reveal-stagger.in > :nth-child(5){transition-delay:.32s}
.reveal-stagger.in > :nth-child(6){transition-delay:.40s}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(41,224,80,.55)}70%{box-shadow:0 0 0 10px rgba(41,224,80,0)}100%{box-shadow:0 0 0 0 rgba(41,224,80,0)}}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .reveal,.reveal-stagger > *{opacity:1;transform:none}
  .scroll-prog{display:none}
  .btn:hover{transform:none}
}

/* 12. Responsive -------------------------------------------- */
@media(max-width:1340px){
  .nav-list a{padding:0 9px;font-size:14.5px}
  .utility .btn-sm{padding:8px 13px;font-size:14px}
  .header-in{gap:16px}
}
@media(max-width:1240px){
  :root{--header-h:64px}
  .nav-toggle{display:inline-flex}
  .site-header.open{background:#fff}
  .topbar{display:none}
  .menu-panel{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 24px 40px -24px rgba(1,40,77,.35);max-height:calc(100vh - var(--header-h));overflow:auto}
  .site-header.open .menu-panel{display:block}
  .menu-panel .nav,.menu-panel .utility{display:block;padding:8px var(--gutter)}
  .menu-panel .nav-list{flex-direction:column;gap:0}
  .menu-panel .nav-list a{width:100%;min-height:50px;padding:0 12px;font-size:17px;border-radius:var(--radius)}
  .menu-panel .nav-list a[aria-current="page"]{background:rgba(41,224,80,.12);border-radius:0 var(--radius) var(--radius) 0}
  .menu-panel .nav-list a[aria-current="page"]::after{left:0;right:auto;top:8px;bottom:8px;width:4px;height:auto;border-radius:0 2px 2px 0}
  .menu-panel .utility{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:16px;padding-bottom:24px}
  .menu-panel .utility .btn{width:100%}
  .menu-panel .utility .u-mobile{display:grid;gap:8px;margin-top:8px;padding-top:16px;border-top:1px solid var(--line)}
  .menu-panel .u-access-label{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
  .hero-grid{grid-template-columns:1fr;gap:40px}
  .access-open-in{grid-template-columns:1fr;gap:36px}
  .split,.split.rev{grid-template-columns:1fr;gap:36px}
  .flow{grid-template-columns:1fr}
  .flow .sticky{position:static}
  .stages,.segments{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stage,.segment{margin-right:0;border-right:0;padding-right:0}
  .stage:nth-child(odd),.segment:nth-child(odd){padding-right:28px;border-right:1px solid var(--line);margin-right:28px}
  .sec-navy .stage:nth-child(odd){border-right-color:var(--on-navy-line)}
  .rail-stage{grid-template-columns:1fr}
  .rail-photo{aspect-ratio:2/1}
  .rail-gate{flex-direction:row;flex-wrap:wrap;justify-content:flex-start}
  .rail-gate i{width:16px;height:1px}
  .footer-grid{grid-template-columns:1fr 1fr;gap:40px}
  .journey{grid-template-columns:repeat(3,minmax(0,1fr))}
  .legal-grid{grid-template-columns:1fr;gap:32px}
  .toc{position:static}
  .contact-grid{grid-template-columns:1fr}
  .resource-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:1024px){
  /* V2.12 B3: below this width the SVG labels fall under ~10.5px; show the semantic projection instead */
  .arch .diagram{display:none}
  .arch .arch-stack{display:block}
}
@media(max-width:820px){
  :root{--gutter:20px}
  body{font-size:16px}
  .grid-2,.grid-3,.grid-4,.panels,.nots,.pipe,.stats,.access-grid,.pathway-grid,.scale-statements{grid-template-columns:1fr}
  .pipe .pnode{margin-right:0;padding-right:0}
  .rows > li,.rows.compact > li,.roles li{grid-template-columns:1fr;gap:6px}
  .campaign-in{grid-template-columns:1fr;gap:28px}
  .campaign-pillars{grid-template-columns:1fr;gap:12px}
  .campaign-visual{min-height:0}
  .campaign-primary{flex:none;height:300px}
  .campaign-primary > img{border-radius:16px}
  .campaign-visual{padding-left:14px}
  .campaign-inset{left:-14px;bottom:-72px;width:min(42%,256px);max-width:256px}
  .campaign-caption{padding:38px 0 0 calc(min(42%,256px) - 2px);min-height:80px}
  .campaign-arrow{left:calc(min(42%,256px) - 12px);bottom:-50px}
  .form-row{grid-template-columns:1fr}
  .form-panel{padding:24px}
  /* V2.12 B2: heading + description stack in column 1; arrow sits in column 2 across both rows */
  .reasons a{grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;align-items:start}
  .reasons h3,.reasons p{grid-column:1}
  .reasons svg{grid-column:2;grid-row:1/3;align-self:center}
  .journey{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero-utility span{display:block;height:6px;margin:0}
  .rail-impact ul{grid-template-columns:1fr 1fr}
  .visual img{aspect-ratio:16/9}
  .visual figcaption{flex-direction:column;gap:4px}
  .footer-bottom{flex-direction:column}
}
@media(max-width:560px){
  :root{--gutter:16px}
  .brand img{width:124px}
  .stages,.segments{grid-template-columns:1fr}
  .stage:nth-child(odd),.segment:nth-child(odd){padding-right:0;border-right:0;margin-right:0}
  .stat b{font-size:44px}
  .footer-grid{grid-template-columns:1fr;gap:32px}
  .footer-brand .footer-logo{width:156px}
  .cta .btn{width:100%}
  .final .cta .btn{width:100%}
  .paths li{padding:14px 16px;font-size:16px;gap:14px}
  .inst{padding:18px}
  .stops{grid-template-columns:repeat(2,1fr)}
  .inst-meta,.meter{gap:18px}
  .ladder li{grid-template-columns:22px 1fr;gap:12px 14px}
  .ladder .val{grid-column:2}
  .rail-impact ul{grid-template-columns:1fr}
  .rail-paths{grid-template-columns:1fr}
  .rail-scene{padding:22px}
  .rail-photo{margin:-22px -22px 20px;aspect-ratio:4/3}
  .visual img{aspect-ratio:4/3}
  .journey{grid-template-columns:1fr}
  .journey li{padding-right:0}
  .resource-list{grid-template-columns:1fr}
  .campaign h2{font-size:34px}
  .campaign .campaign-invite{font-size:22px}
  .campaign-primary{height:220px}
  .campaign-visual{padding-left:10px}
  .campaign-inset{width:52%;left:-10px;bottom:-50px;border-width:2px}
  .campaign-caption{padding:12px 0 0 calc(52% + 2px);min-height:60px}
  .campaign-arrow{display:none}
  .calendly-inline-widget{height:640px}
  .arch-ws,.arch-base{grid-template-columns:1fr}
}
@media(max-width:400px){
  h1{font-size:34px}
  /* V2.12 sweep (narrow multi-column class): proof rows stack label over value/status so the columns never collide at 320 */
  .proof-lines > div{grid-template-columns:minmax(0,1fr) auto;gap:2px 12px}
  .proof-lines > div > b{grid-column:1/-1}
  .brand img{width:112px}
  .nav-toggle{padding:0 10px}
  .rail-controls{flex-wrap:wrap}
}
