/* ============================================================
   BeyondITL — Site stylesheet
   Tokens (authoritative) + base + components.
   Trust is the product. Restraint is the brand.
   ============================================================ */

/* ---------- Web fonts ---------- */
@font-face {
  font-family: "Archivo";
  src: url("../assets/fonts/Archivo-Variable.ttf") format("truetype");
  font-weight: 100 900; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Inter";
  src: url("../assets/fonts/Inter-Variable.ttf") format("truetype");
  font-weight: 100 900; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("../assets/fonts/IBMPlexMono-Regular.ttf") format("truetype");
  font-weight: 400; font-style: normal; font-display: swap;
}

/* ============================================================
   TOKENS
   ============================================================ */
:root {
  /* Ink */
  --ink-900:#0E1311; --ink-800:#1B221F; --ink-700:#2C3531; --ink-600:#404B46;
  --ink-500:#5A655F; --ink-400:#7C857F; --ink-300:#A7AEA9; --ink-200:#D2D6D2; --ink-100:#E7EAE6;
  /* Forest */
  --forest-900:#04401F; --forest-800:#05491F; --forest-700:#054E25; --forest-600:#045C2A; --forest-500:#006C32;
  /* Signal */
  --signal-700:#0A5E2E; --signal-600:#097A3C; --signal-500:#009246; --signal-400:#1BA557; --signal-300:#5BC487;
  /* Lime */
  --lime-500:#B5D334; --lime-400:#C4DE5C;
  /* Surfaces */
  --white:#FFFFFF; --bone-50:#F7F8F5; --bone-100:#F1F3EE; --bone-200:#E8EBE3;
  --chrome-500:#BFBCBC; --chrome-400:#D4D2D2;
  /* Status */
  --success-500:#009246; --warning-500:#B7791F; --danger-600:#B42318; --danger-500:#D92D20; --info-500:#0A5E2E;

  /* Semantic text */
  --text-strong:var(--ink-900); --text-body:var(--ink-800); --text-muted:var(--ink-500);
  --text-subtle:var(--ink-400); --text-on-dark:var(--white); --text-on-dark-muted:rgba(255,255,255,0.72);
  --text-link:var(--signal-700); --text-brand:var(--signal-500);
  /* Surfaces */
  --surface-page:var(--bone-100); --surface-card:var(--white); --surface-raised:var(--white);
  --surface-sunken:var(--bone-50); --surface-inverse:var(--ink-900); --surface-brand:var(--forest-500);
  /* Gradients */
  --gradient-hero:linear-gradient(150deg,#04401F 0%,#045C2A 52%,#006C32 100%);
  --gradient-signal:linear-gradient(135deg,#006C32 0%,#009246 100%);
  --gradient-bone:linear-gradient(180deg,#FFFFFF 0%,#F1F3EE 100%);
  /* Borders */
  --border-subtle:var(--ink-100); --border-default:var(--ink-200); --border-strong:var(--ink-300);
  --border-brand:var(--signal-500); --border-on-dark:rgba(255,255,255,0.16);
  /* Actions — signal-500 + white = 4.04:1 (sub-AA); deepen to signal-600 (5.4:1) so the CTA passes WCAG AA in every state */
  --action-primary:var(--signal-600); --action-primary-hover:var(--signal-700); --action-primary-active:var(--forest-600);
  --action-on-primary:var(--white); --action-secondary:var(--ink-900); --action-secondary-hover:var(--ink-700);
  --focus-ring:rgba(0,146,70,0.40); --accent-lime:var(--lime-500);

  /* Type families */
  --font-display:"Archivo","Archivo Expanded",system-ui,sans-serif;
  --font-body:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,monospace;
  /* Weights */
  --weight-regular:400; --weight-medium:500; --weight-semibold:600; --weight-bold:700; --weight-extrabold:800; --weight-black:900;
  /* Fluid display */
  --text-display-2xl:clamp(3.5rem,1.6rem + 7.2vw,6rem);
  --text-display-xl:clamp(2.75rem,1.6rem + 4.6vw,4.5rem);
  --text-display-lg:clamp(2.25rem,1.5rem + 3vw,3.5rem);
  --text-display-md:clamp(1.875rem,1.4rem + 1.9vw,2.75rem);
  /* Headings */
  --text-h1:2.5rem; --text-h2:2rem; --text-h3:1.5rem; --text-h4:1.25rem; --text-h5:1.0625rem;
  /* Body */
  --text-xl:1.375rem; --text-lg:1.125rem; --text-base:1rem; --text-sm:0.875rem; --text-xs:0.8125rem;
  /* Line heights */
  --leading-none:1; --leading-tight:1.1; --leading-snug:1.25; --leading-normal:1.5; --leading-relaxed:1.65;
  /* Tracking */
  --tracking-tighter:-0.03em; --tracking-tight:-0.02em; --tracking-snug:-0.01em; --tracking-normal:0; --tracking-wide:0.01em;

  /* Spacing */
  --space-0:0; --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem; --space-5:1.25rem;
  --space-6:1.5rem; --space-8:2rem; --space-10:2.5rem; --space-12:3rem; --space-16:4rem;
  --space-20:5rem; --space-24:6rem; --space-32:8rem;
  /* Radii */
  --radius-xs:4px; --radius-sm:8px; --radius-md:12px; --radius-lg:16px; --radius-xl:22px; --radius-2xl:28px; --radius-pill:999px;
  /* Shadows */
  --shadow-xs:0 1px 2px rgba(14,19,17,.06);
  --shadow-sm:0 1px 2px rgba(14,19,17,.05),0 2px 6px rgba(14,19,17,.05);
  --shadow-md:0 2px 4px rgba(14,19,17,.04),0 8px 20px rgba(14,19,17,.07);
  --shadow-lg:0 4px 8px rgba(14,19,17,.05),0 18px 40px rgba(14,19,17,.10);
  --shadow-xl:0 8px 16px rgba(14,19,17,.06),0 32px 64px rgba(14,19,17,.14);
  --shadow-brand:0 10px 30px rgba(0,108,50,.22);
  /* Glass */
  --glass-bg:rgba(255,255,255,.10); --glass-border:rgba(255,255,255,.18); --glass-blur:14px;
  /* Layout */
  --container-xl:1200px; --container-2xl:1320px; --grid-gutter:var(--space-6); --section-y:var(--space-24);
  /* Motion */
  --ease-standard:cubic-bezier(.4,0,.2,1); --ease-out:cubic-bezier(.16,1,.3,1); --ease-in:cubic-bezier(.4,0,1,1);
  --duration-fast:120ms; --duration-base:200ms; --duration-slow:360ms;
  --transition-base:all var(--duration-base) var(--ease-standard);
  /* Z */
  --z-sticky:100; --z-overlay:1000; --z-modal:1100; --header-h:76px;
  /* Logo sizing — set ONE dimension (height); width stays auto to preserve the native 1400:204 ratio */
  --logo-h-header:34px; --logo-h-footer:32px;
}

/* ============================================================
   BASE
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{
  margin:0;font-family:var(--font-body);font-weight:var(--weight-regular);font-size:var(--text-base);
  line-height:var(--leading-relaxed);color:var(--text-body);background:var(--surface-page);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;
  font-feature-settings:"cv05" 1,"ss01" 1;overflow-x:hidden;
}
h1,h2,h3,h4,h5,h6{
  margin:0;font-family:var(--font-display);font-weight:var(--weight-bold);color:var(--text-strong);
  line-height:var(--leading-snug);letter-spacing:var(--tracking-tight);text-wrap:balance;
}
h1{font-size:var(--text-h1);font-weight:var(--weight-extrabold);line-height:var(--leading-tight);}
h2{font-size:var(--text-h2);}
h3{font-size:var(--text-h3);}
h4{font-size:var(--text-h4);}
p{margin:0 0 1em;text-wrap:pretty;}
a{color:var(--text-link);text-decoration:none;transition:color var(--duration-fast) var(--ease-standard);}
a:hover{color:var(--signal-600);}
code,pre,kbd,samp{font-family:var(--font-mono);font-size:.92em;}
small{font-size:var(--text-sm);}
ul,ol{margin:0;padding:0;}
li{list-style:none;}
img,svg{display:block;max-width:100%;}
::selection{background:rgba(0,146,70,.18);color:var(--ink-900);}
:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring);border-radius:var(--radius-xs);}
hr{border:none;border-top:1px solid var(--border-subtle);margin:var(--space-8) 0;}
button{font-family:inherit;}

/* skip link */
.skip-link{position:absolute;left:-999px;top:0;z-index:var(--z-modal);background:var(--ink-900);color:#fff;
  padding:var(--space-3) var(--space-5);border-radius:0 0 var(--radius-md) 0;font-weight:600;}
.skip-link:focus{left:0;color:#fff;}

/* ============================================================
   LAYOUT PRIMITIVES
   ============================================================ */
.container{width:100%;max-width:var(--container-xl);margin-inline:auto;padding-inline:var(--space-6);}
.container--wide{max-width:var(--container-2xl);}
.container--narrow{max-width:820px;}
.section{padding-block:var(--section-y);}
.section--tight{padding-block:var(--space-16);}
.section--sunken{background:var(--surface-sunken);}
.section--bone{background:var(--bone-100);}
.section--white{background:var(--white);}
.section--ink{background:var(--surface-inverse);color:var(--text-on-dark);}
.section--forest{background:var(--gradient-hero);color:var(--text-on-dark);}
@media (max-width:720px){
  :root{--section-y:var(--space-16);}
  .container{padding-inline:var(--space-5);}
}

/* eyebrow */
.eyebrow{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-body);
  font-weight:var(--weight-semibold);font-size:var(--text-sm);letter-spacing:.04em;text-transform:none;
  color:var(--signal-700);margin-bottom:var(--space-4);}
.eyebrow::before{content:"";width:18px;height:2px;border-radius:2px;background:var(--lime-500);}
.section--ink .eyebrow,.section--forest .eyebrow{color:var(--lime-400);}
.section--ink .eyebrow::before,.section--forest .eyebrow::before{background:var(--lime-500);}

/* section header */
.sec-head{max-width:760px;margin-bottom:var(--space-12);}
.sec-head--center{margin-inline:auto;text-align:center;}
.sec-head h2,.sec-head .display{font-size:var(--text-display-md);line-height:var(--leading-tight);
  letter-spacing:var(--tracking-tight);color:inherit;}
.sec-head .lead{margin-top:var(--space-4);font-size:var(--text-xl);line-height:var(--leading-relaxed);
  color:var(--text-muted);}
.section--ink .lead,.section--forest .lead{color:var(--text-on-dark-muted);}
.display{font-family:var(--font-display);font-weight:var(--weight-black);}

.lead{font-size:var(--text-xl);line-height:var(--leading-relaxed);}
.measure{max-width:64ch;}
.text-muted{color:var(--text-muted);}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);
  font-family:var(--font-body);font-weight:var(--weight-semibold);font-size:var(--text-base);
  line-height:1;padding:var(--space-4) var(--space-6);border-radius:var(--radius-pill);
  border:1.5px solid transparent;cursor:pointer;transition:var(--transition-base),transform var(--duration-base) var(--ease-out);
  white-space:nowrap;text-align:center;}
.btn svg{width:1.1em;height:1.1em;flex:none;}
.btn--primary{background:var(--action-primary);color:var(--action-on-primary);}
.btn--primary:hover{background:var(--action-primary-hover);color:#fff;box-shadow:var(--shadow-brand);transform:translateY(-2px);}
.btn--primary:active{background:var(--action-primary-active);transform:translateY(0);}
.btn--secondary{background:transparent;color:var(--ink-900);border-color:var(--border-strong);}
.btn--secondary:hover{color:var(--ink-900);border-color:var(--ink-900);background:rgba(14,19,17,.04);transform:translateY(-2px);}
.btn--ghost{background:transparent;color:var(--signal-700);padding-inline:var(--space-2);}
.btn--ghost:hover{color:var(--signal-600);}
.btn--lg{font-size:var(--text-lg);padding:var(--space-5) var(--space-8);}
.btn--block{width:100%;}
/* on dark */
.on-dark .btn--secondary,.section--ink .btn--secondary,.section--forest .btn--secondary{
  color:#fff;border-color:var(--border-on-dark);}
.on-dark .btn--secondary:hover,.section--ink .btn--secondary:hover,.section--forest .btn--secondary:hover{
  color:#fff;border-color:#fff;background:rgba(255,255,255,.08);}
.on-dark .btn--ghost,.section--ink .btn--ghost,.section--forest .btn--ghost{color:var(--lime-400);}

.btn-row{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:center;}

/* arrow link */
.arrow-link{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:var(--weight-semibold);
  color:var(--signal-700);}
.arrow-link svg{transition:transform var(--duration-base) var(--ease-out);}
.arrow-link:hover svg{transform:translateX(4px);}
.section--ink .arrow-link,.section--forest .arrow-link{color:var(--lime-400);}

/* ============================================================
   CHIPS
   ============================================================ */
.chip-row{display:flex;flex-wrap:wrap;gap:var(--space-2);}
.chip{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);
  font-weight:var(--weight-medium);color:var(--ink-700);background:var(--white);
  border:1px solid var(--border-default);border-radius:var(--radius-pill);
  padding:var(--space-2) var(--space-4);line-height:1.2;}
.chip--brand{color:var(--signal-700);border-color:rgba(0,146,70,.30);background:rgba(0,146,70,.06);}
.chip--solid{background:var(--ink-900);color:#fff;border-color:transparent;}
.chip svg{width:14px;height:14px;color:var(--signal-500);}
.section--ink .chip,.section--forest .chip,.on-dark .chip{
  background:rgba(255,255,255,.07);border-color:var(--border-on-dark);color:rgba(255,255,255,.92);}
.section--ink .chip svg,.section--forest .chip svg{color:var(--lime-400);}
.chip--status{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:var(--space-1) var(--space-3);}

/* ============================================================
   HEADER / NAV
   ============================================================ */
.site-header{position:sticky;top:0;z-index:var(--z-modal);background:rgba(255,255,255,.86);
  backdrop-filter:saturate(140%) blur(14px);-webkit-backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid transparent;transition:border-color var(--duration-base) var(--ease-standard),
  background var(--duration-base),box-shadow var(--duration-base);}
.site-header.is-condensed{border-bottom-color:var(--border-subtle);box-shadow:var(--shadow-sm);background:rgba(255,255,255,.94);}
.nav{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);
  height:var(--header-h);max-width:var(--container-2xl);margin-inline:auto;padding-inline:var(--space-6);}
.nav__brand{display:flex;align-items:center;gap:var(--space-3);flex:none;}
.nav__brand img{height:var(--logo-h-header);width:auto;max-width:100%;object-fit:contain;}
.nav__menu{display:flex;align-items:center;gap:var(--space-1);}
.nav__item{position:relative;}
.nav__link{display:inline-flex;align-items:center;gap:6px;padding:var(--space-3) var(--space-4);
  font-weight:var(--weight-medium);font-size:var(--text-base);color:var(--ink-800);border-radius:var(--radius-sm);
  cursor:pointer;background:none;border:none;transition:color var(--duration-fast);}
.nav__link:hover,.nav__item:hover .nav__link,.nav__item.is-open .nav__link{color:var(--signal-700);}
.nav__link .caret{width:12px;height:12px;transition:transform var(--duration-base) var(--ease-out);color:var(--ink-400);}
.nav__item.is-open .nav__link .caret{transform:rotate(180deg);}
.nav__actions{display:flex;align-items:center;gap:var(--space-3);flex:none;}

/* mega menu */
.mega{position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(8px);
  min-width:520px;background:var(--white);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);
  box-shadow:var(--shadow-xl);padding:var(--space-4);opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity var(--duration-base) var(--ease-standard),transform var(--duration-base) var(--ease-out),visibility var(--duration-base);}
.nav__item.is-open .mega{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);}
.mega__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-1);}
.mega--single .mega__grid{grid-template-columns:1fr;min-width:0;}
.mega--single{min-width:340px;}
.mega__link{display:block;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);transition:background var(--duration-fast);}
.mega__link:hover{background:var(--bone-50);}
.mega__link strong{display:block;color:var(--ink-900);font-weight:var(--weight-semibold);font-size:var(--text-base);}
.mega__link span{display:block;color:var(--text-muted);font-size:var(--text-sm);line-height:var(--leading-normal);margin-top:2px;}
.mega__foot{margin-top:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--border-subtle);}

/* mobile toggle */
.nav__toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;
  background:none;border:none;cursor:pointer;border-radius:var(--radius-sm);}
.nav__toggle span{display:block;width:24px;height:2px;background:var(--ink-900);border-radius:2px;
  transition:transform var(--duration-base) var(--ease-out),opacity var(--duration-fast);margin-inline:auto;}
body.menu-open .nav__toggle span:nth-child(1){transform:translateY(7px) rotate(45deg);}
body.menu-open .nav__toggle span:nth-child(2){opacity:0;}
body.menu-open .nav__toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* mobile drawer */
.mobile-nav{position:fixed;inset:0;top:0;z-index:var(--z-overlay);background:var(--white);
  display:flex;flex-direction:column;padding:calc(var(--header-h) + var(--space-4)) var(--space-6) var(--space-10);
  overflow-y:auto;transform:translateY(-100%);opacity:0;visibility:hidden;
  transition:transform var(--duration-slow) var(--ease-out),opacity var(--duration-base),visibility var(--duration-slow);}
body.menu-open .mobile-nav{transform:translateY(0);opacity:1;visibility:visible;}
.mobile-nav__group{border-bottom:1px solid var(--border-subtle);}
.mobile-nav__head{display:flex;align-items:center;justify-content:space-between;width:100%;
  padding:var(--space-4) 0;font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-h4);
  color:var(--ink-900);background:none;border:none;cursor:pointer;text-align:left;}
.mobile-nav__head .caret{width:16px;height:16px;transition:transform var(--duration-base);color:var(--ink-400);}
.mobile-nav__group.is-open .mobile-nav__head .caret{transform:rotate(180deg);}
.mobile-nav__panel{max-height:0;overflow:hidden;transition:max-height var(--duration-slow) var(--ease-standard);}
.mobile-nav__group.is-open .mobile-nav__panel{max-height:600px;}
.mobile-nav__panel a{display:block;padding:var(--space-3) 0;color:var(--ink-700);font-weight:var(--weight-medium);}
.mobile-nav__panel a:hover{color:var(--signal-700);}
.mobile-nav__cta{margin-top:var(--space-8);}
.mobile-nav__simple{padding:var(--space-4) 0;font-family:var(--font-display);font-weight:var(--weight-bold);
  font-size:var(--text-h4);color:var(--ink-900);display:block;border-bottom:1px solid var(--border-subtle);}

@media (max-width:1024px){
  .nav__menu,.nav__actions .btn{display:none;}
  .nav__toggle{display:flex;}
}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;background:var(--gradient-hero);color:var(--text-on-dark);overflow:hidden;
  padding-block:calc(var(--space-24) + var(--space-4)) var(--space-24);}
.hero--full{min-height:calc(100svh - var(--header-h));display:flex;align-items:center;}
.hero__mesh{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.9;}
.hero__mark{position:absolute;right:-6%;top:50%;transform:translateY(-50%);width:min(54vw,720px);
  opacity:.06;z-index:0;pointer-events:none;filter:grayscale(1) brightness(3);}
.hero .container{position:relative;z-index:1;}
.hero__eyebrow{color:var(--lime-400);font-weight:var(--weight-semibold);font-size:var(--text-base);
  letter-spacing:.02em;display:inline-flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-5);}
.hero__eyebrow::before{content:"";width:22px;height:2px;background:var(--lime-500);border-radius:2px;}
.hero h1,.hero__title{font-family:var(--font-display);font-weight:var(--weight-black);
  font-size:var(--text-display-2xl);line-height:1.04;letter-spacing:var(--tracking-tighter);
  color:#fff;max-width:18ch;text-wrap:balance;}
.hero--inner h1,.hero--inner .hero__title{font-size:var(--text-display-xl);max-width:20ch;}
.hero__sub{margin-top:var(--space-6);font-size:var(--text-xl);line-height:var(--leading-relaxed);
  color:var(--text-on-dark-muted);max-width:58ch;}
.hero__cta{margin-top:var(--space-8);}
.hero__strip{margin-top:var(--space-10);padding-top:var(--space-6);border-top:1px solid var(--border-on-dark);
  display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-5);align-items:center;}
.hero__meta{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:rgba(255,255,255,.85);}
.hero__meta svg{width:16px;height:16px;color:var(--lime-400);}

/* page hero (lighter, for inner pages) */
.phero{position:relative;background:var(--gradient-hero);color:#fff;overflow:hidden;
  padding-block:var(--space-20) var(--space-16);}
.phero__mark{position:absolute;right:-4%;bottom:-30%;width:min(46vw,560px);opacity:.07;
  filter:grayscale(1) brightness(3);pointer-events:none;}
.phero .container{position:relative;z-index:1;}
.phero h1{font-family:var(--font-display);font-weight:var(--weight-black);font-size:var(--text-display-lg);
  line-height:1.05;letter-spacing:var(--tracking-tighter);color:#fff;max-width:20ch;}
.phero .lead{margin-top:var(--space-5);font-size:var(--text-xl);color:var(--text-on-dark-muted);max-width:62ch;}
.phero__kicker{color:var(--lime-400);font-weight:var(--weight-semibold);margin-bottom:var(--space-4);
  display:inline-flex;gap:var(--space-2);align-items:center;}
.phero__kicker::before{content:"";width:20px;height:2px;background:var(--lime-500);border-radius:2px;}

/* breadcrumb */
.crumbs{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;font-size:var(--text-sm);
  color:rgba(255,255,255,.7);margin-bottom:var(--space-5);}
.crumbs a{color:rgba(255,255,255,.7);}
.crumbs a:hover{color:#fff;}
.crumbs span.sep{opacity:.5;}

/* ============================================================
   GRID + BENTO
   ============================================================ */
.grid{display:grid;gap:var(--space-6);}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
@media (max-width:980px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr);}}
@media (max-width:640px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr;}}

/* Mobile-first responsive bento: never shrink a card below ~280px; wrap to 1 col on phones.
   auto-fit + minmax(min(100%,280px),1fr) → 1 col <≈600px, 2 up to ~1024px, 3–4 up beyond. */
.bento{display:grid;gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));}
.bento > *{width:100%;min-width:0;grid-column:auto;}
/* the "one standard" brand card spans the full row on wider screens only */
.bento .card--brand{grid-column:1/-1;}
@media (max-width:640px){.bento .card--brand{grid-column:auto;}}

/* card */
.card{position:relative;background:var(--surface-card);border:1px solid var(--border-subtle);
  border-radius:var(--radius-md);padding:var(--space-6);transition:transform var(--duration-base) var(--ease-out),
  box-shadow var(--duration-base),border-color var(--duration-base);display:flex;flex-direction:column;}
.card--link:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--border-default);}
.card__num{font-family:var(--font-display);font-weight:var(--weight-black);font-size:var(--text-sm);
  color:var(--signal-500);letter-spacing:.04em;margin-bottom:var(--space-3);}
.card__icon{width:44px;height:44px;border-radius:var(--radius-md);background:rgba(0,146,70,.08);
  display:grid;place-items:center;color:var(--signal-600);margin-bottom:var(--space-4);}
.card__icon svg{width:22px;height:22px;}
.card h3{font-size:var(--text-h4);margin-bottom:var(--space-2);}
.card h3.bigger{font-size:var(--text-h3);}
.card p{color:var(--text-muted);font-size:var(--text-base);margin-bottom:var(--space-4);}
.card__foot{margin-top:auto;}
.card--ink{background:var(--surface-inverse);color:#fff;border-color:transparent;}
.card--ink h3{color:#fff;}.card--ink p{color:rgba(255,255,255,.72);}
.card--brand{background:var(--gradient-hero);color:#fff;border-color:transparent;}
.card--brand h3{color:#fff;}.card--brand p{color:rgba(255,255,255,.8);}
.card__stretch::after{content:"";position:absolute;inset:0;}/* full-card link */

/* feature tile */
.tile{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);
  padding:var(--space-5);display:flex;gap:var(--space-4);align-items:flex-start;}
.tile__icon{width:40px;height:40px;border-radius:var(--radius-sm);background:rgba(0,146,70,.08);
  display:grid;place-items:center;color:var(--signal-600);flex:none;}
.tile__icon svg{width:20px;height:20px;}
.tile h4{font-size:var(--text-h5);margin-bottom:var(--space-1);}
.tile p{margin:0;color:var(--text-muted);font-size:var(--text-sm);}

/* ============================================================
   METRICS
   ============================================================ */
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-6);}
@media (max-width:880px){.metrics{grid-template-columns:repeat(2,1fr);gap:var(--space-8) var(--space-6);}}
@media (max-width:420px){.metrics{grid-template-columns:1fr;}}
.metric{text-align:left;}
.metric__val{font-family:var(--font-display);font-weight:var(--weight-black);font-size:var(--text-display-md);
  line-height:1;letter-spacing:var(--tracking-tight);color:var(--ink-900);}
.section--ink .metric__val,.section--forest .metric__val,.on-dark .metric__val{color:#fff;}
.metric__label{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--text-muted);line-height:var(--leading-normal);}
.section--ink .metric__label,.section--forest .metric__label{color:rgba(255,255,255,.72);}
.metric__val .unit{color:var(--signal-500);}
.section--forest .metric__val .unit{color:var(--lime-400);}

/* proof bar variant */
.proofbar{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-6);
  padding:var(--space-8);background:var(--white);border:1px solid var(--border-subtle);
  border-radius:var(--radius-xl);box-shadow:var(--shadow-md);}
.proofbar .metric+.metric{position:relative;}
@media (max-width:880px){.proofbar{grid-template-columns:repeat(2,1fr);gap:var(--space-8) var(--space-6);}}
@media (max-width:420px){.proofbar{grid-template-columns:1fr;}}

/* ============================================================
   PRODUCT / CASE CARDS
   ============================================================ */
.pcard{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--border-subtle);
  border-radius:var(--radius-lg);overflow:hidden;transition:transform var(--duration-base) var(--ease-out),box-shadow var(--duration-base);}
.pcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);}
.pcard__media{aspect-ratio:16/10;background:var(--bone-50);overflow:hidden;display:grid;place-items:center;
  border-bottom:1px solid var(--border-subtle);}
.pcard__media img{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform var(--duration-slow) var(--ease-out);}
.pcard:hover .pcard__media img{transform:scale(1.03);}
.pcard__body{padding:var(--space-6);display:flex;flex-direction:column;flex:1;}
.pcard__eyebrow{font-size:var(--text-sm);color:var(--text-muted);font-weight:var(--weight-medium);margin-bottom:var(--space-2);}
.pcard h3{font-size:var(--text-h3);margin-bottom:var(--space-3);}
.pcard p{color:var(--text-muted);margin-bottom:var(--space-4);}
.pcard__foot{margin-top:auto;display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:center;}

/* case card */
.case-card{position:relative;display:flex;flex-direction:column;background:var(--white);
  border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;
  transition:transform var(--duration-base) var(--ease-out),box-shadow var(--duration-base);}
.case-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);}
.case-card__media{aspect-ratio:16/11;overflow:hidden;background:var(--bone-50);border-bottom:1px solid var(--border-subtle);}
.case-card__media img{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform var(--duration-slow) var(--ease-out);}
.case-card:hover .case-card__media img{transform:scale(1.04);}
.case-card__body{padding:var(--space-6);display:flex;flex-direction:column;flex:1;}
.case-card__top{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-2);}
.case-card h3{font-size:var(--text-h3);}
.case-card__desc{color:var(--text-muted);font-size:var(--text-sm);margin-bottom:var(--space-4);}
.case-card__metrics{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-5);margin-bottom:var(--space-4);}
.case-card__metric{font-size:var(--text-sm);}
.case-card__metric b{font-family:var(--font-display);color:var(--ink-900);font-weight:var(--weight-bold);}
.case-card__foot{margin-top:auto;}

/* ============================================================
   SPLIT / FEATURE ROWS
   ============================================================ */
.split{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-16);align-items:center;}
.split--media-right{grid-template-columns:1.05fr .95fr;}
@media (max-width:900px){.split{grid-template-columns:1fr;gap:var(--space-10);}}
.split__media{position:relative;}

/* device frame */
.frame{border-radius:var(--radius-xl);overflow:hidden;border:1px solid var(--border-subtle);
  box-shadow:var(--shadow-lg);background:var(--white);}
.frame img{width:100%;height:auto;display:block;}
.frame--browser{padding-top:38px;position:relative;background:var(--bone-50);}
.frame--browser::before{content:"";position:absolute;top:14px;left:16px;width:10px;height:10px;border-radius:50%;
  background:var(--chrome-400);box-shadow:18px 0 0 var(--chrome-400),36px 0 0 var(--chrome-400);}
.frame--plain{padding:0;}
.frame--float{box-shadow:var(--shadow-xl);}

/* ============================================================
   SPEC TABLE
   ============================================================ */
.spec{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;background:var(--white);}
.spec__row{display:grid;grid-template-columns:minmax(160px,200px) 1fr;gap:var(--space-4);
  padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border-subtle);align-items:center;}
.spec__row:last-child{border-bottom:none;}
.spec__label{font-weight:var(--weight-semibold);color:var(--ink-900);font-size:var(--text-sm);}
.spec__val{display:flex;flex-wrap:wrap;gap:var(--space-2);color:var(--text-body);}
@media (max-width:560px){.spec__row{grid-template-columns:1fr;gap:var(--space-2);}}

/* checklist */
.checklist{display:grid;gap:var(--space-3);}
.checklist li{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-3) 0;
  border-bottom:1px solid var(--border-subtle);}
.checklist li:last-child{border-bottom:none;}
.checklist .ck{flex:none;width:22px;height:22px;border-radius:50%;background:rgba(0,146,70,.1);
  display:grid;place-items:center;color:var(--signal-600);margin-top:1px;}
.checklist .ck svg{width:13px;height:13px;}
.checklist b{color:var(--ink-900);font-weight:var(--weight-semibold);}
.section--ink .checklist li,.section--forest .checklist li{border-color:var(--border-on-dark);}
.section--ink .checklist b,.section--forest .checklist b{color:#fff;}

/* ============================================================
   FLOW DIAGRAM (interactive)
   ============================================================ */
.flow{background:var(--white);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);
  padding:var(--space-8);box-shadow:var(--shadow-md);}
.section--ink .flow,.section--forest .flow{background:rgba(255,255,255,.04);border-color:var(--border-on-dark);}
.flow__track{display:flex;align-items:stretch;gap:var(--space-2);flex-wrap:wrap;}
.flow__node{flex:1;min-width:140px;background:var(--bone-50);border:1.5px solid var(--border-default);
  border-radius:var(--radius-md);padding:var(--space-5);text-align:center;cursor:default;
  transition:transform var(--duration-base) var(--ease-out),box-shadow var(--duration-base),border-color var(--duration-base),background var(--duration-base);}
.flow__node:hover,.flow__node.is-active{transform:translateY(-4px);border-color:var(--signal-500);
  box-shadow:var(--shadow-brand);background:var(--white);}
.flow__node--gate{border-color:rgba(0,146,70,.5);background:rgba(0,146,70,.05);}
.flow__node--gate.is-active,.flow__node--gate:hover,
.section--ink .flow__node--gate.is-active,.section--ink .flow__node--gate:hover,
.section--forest .flow__node--gate.is-active,.section--forest .flow__node--gate:hover{
  background:var(--gradient-signal);border-color:transparent;}
.flow__node--gate.is-active h4,.flow__node--gate:hover h4,
.flow__node--gate.is-active p,.flow__node--gate:hover p{color:#fff !important;}
/* keep the icon visible: it sits in a white box, so it must stay green (not turn white) */
.flow__node--gate.is-active .flow__ico,.flow__node--gate:hover .flow__ico{background:#fff;}
.flow__node--gate.is-active .flow__ico svg,.flow__node--gate:hover .flow__ico svg{color:var(--signal-700) !important;}
.flow__ico{width:42px;height:42px;border-radius:var(--radius-sm);background:var(--white);border:1px solid var(--border-subtle);
  display:grid;place-items:center;margin:0 auto var(--space-3);color:var(--signal-600);}
.flow__ico svg{width:22px;height:22px;}
.flow__node h4{font-size:var(--text-h5);margin-bottom:var(--space-1);}
.flow__node p{font-size:var(--text-xs);color:var(--text-muted);margin:0;}
.section--ink .flow__node,.section--forest .flow__node{background:rgba(255,255,255,.05);border-color:var(--border-on-dark);}
.section--ink .flow__node h4,.section--forest .flow__node h4{color:#fff;}
.flow__arrow{flex:none;align-self:center;color:var(--ink-300);display:grid;place-items:center;width:28px;}
.flow__arrow svg{width:20px;height:20px;}
@media (max-width:760px){.flow__track{flex-direction:column;}.flow__node{min-width:0;}
  .flow__arrow{transform:rotate(90deg);margin:0 auto;}}
.flow__audit{margin-top:var(--space-5);padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);
  background:var(--ink-900);color:#fff;display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm);
  position:relative;overflow:hidden;}
.flow__audit svg{width:18px;height:18px;color:var(--lime-400);flex:none;}
.flow__audit .ticks{display:flex;gap:4px;margin-left:auto;}
.flow__audit .ticks i{width:6px;height:18px;border-radius:2px;background:rgba(181,211,52,.3);display:block;}
.flow__audit .ticks i.on{background:var(--lime-500);}

/* defense in depth (nested) */
.depth{display:grid;gap:0;}
.depth__layer{border:1.5px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-5);
  margin:0 auto;width:100%;background:var(--white);transition:var(--transition-base);}
.depth__layer:hover{border-color:var(--signal-500);box-shadow:var(--shadow-md);}
.depth__layer h4{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-h5);}
.depth__layer .n{width:26px;height:26px;border-radius:50%;background:var(--gradient-signal);color:#fff;
  display:grid;place-items:center;font-size:var(--text-xs);font-weight:var(--weight-bold);font-family:var(--font-display);}
.depth__layer p{margin:var(--space-2) 0 0 38px;font-size:var(--text-sm);color:var(--text-muted);}
.depth__layer+.depth__layer{margin-top:calc(-1 * var(--space-2));}

/* ============================================================
   TESTIMONIAL
   ============================================================ */
.quote{background:var(--white);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);
  padding:var(--space-10);box-shadow:var(--shadow-sm);}
.quote--ink{background:var(--surface-inverse);color:#fff;border-color:transparent;}
.quote__mark{font-family:var(--font-display);font-weight:var(--weight-black);font-size:4rem;line-height:.6;
  color:var(--signal-300);opacity:.5;height:2rem;}
.quote blockquote{margin:var(--space-4) 0 var(--space-6);font-family:var(--font-display);font-weight:var(--weight-medium);
  font-size:var(--text-h3);line-height:var(--leading-snug);letter-spacing:var(--tracking-snug);color:var(--ink-900);}
.quote--ink blockquote{color:#fff;}
.quote__by{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--text-muted);}
.quote--ink .quote__by{color:rgba(255,255,255,.7);}
.quote__by b{color:var(--ink-900);font-weight:var(--weight-semibold);}
.quote--ink .quote__by b{color:#fff;}

/* ============================================================
   CTA BAND
   ============================================================ */
.cta-band{background:var(--gradient-hero);color:#fff;position:relative;overflow:hidden;}
.cta-band__mark{position:absolute;right:-3%;top:50%;transform:translateY(-50%);width:min(40vw,460px);
  opacity:.08;filter:grayscale(1) brightness(3);pointer-events:none;}
.cta-band .container{position:relative;z-index:1;}
.cta-band h2{font-size:var(--text-display-md);color:#fff;max-width:18ch;line-height:1.08;}
.cta-band .lead{margin-top:var(--space-4);color:var(--text-on-dark-muted);max-width:56ch;font-size:var(--text-xl);}
.cta-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--space-16);align-items:center;}
@media (max-width:900px){.cta-grid{grid-template-columns:1fr;gap:var(--space-10);}}

/* ============================================================
   FORM
   ============================================================ */
.form{display:grid;gap:var(--space-5);}
.form__row{display:grid;gap:var(--space-5);grid-template-columns:1fr 1fr;}
@media (max-width:560px){.form__row{grid-template-columns:1fr;}}
.field{display:flex;flex-direction:column;gap:var(--space-2);}
.field label{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--ink-900);}
.field .req{color:var(--signal-600);}
.field input,.field select,.field textarea{
  font-family:var(--font-body);font-size:var(--text-base);color:var(--ink-900);background:var(--white);
  border:1.5px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);
  transition:border-color var(--duration-fast),box-shadow var(--duration-fast);width:100%;}
.field textarea{min-height:130px;resize:vertical;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--signal-500);
  box-shadow:0 0 0 3px var(--focus-ring);}
.field .err{font-size:var(--text-xs);color:var(--danger-600);display:none;}
.field.is-invalid input,.field.is-invalid select,.field.is-invalid textarea{border-color:var(--danger-500);}
.field.is-invalid .err{display:block;}
.form__note{font-size:var(--text-xs);color:var(--text-muted);}
.form-card{background:var(--white);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);
  padding:var(--space-8);box-shadow:var(--shadow-md);}
.on-dark .form-card{background:var(--white);}
.form__success{display:none;padding:var(--space-6);border-radius:var(--radius-md);background:rgba(0,146,70,.08);
  border:1px solid rgba(0,146,70,.3);color:var(--ink-900);}
.form__success.show{display:block;}
.form__success+.form{display:grid;}
.form.hide{display:none;}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{background:var(--ink-900);color:rgba(255,255,255,.72);padding-block:var(--space-20) var(--space-8);}
.footer__top{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:var(--space-10);
  padding-bottom:var(--space-12);border-bottom:1px solid var(--border-on-dark);}
@media (max-width:980px){.footer__top{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.footer__top{grid-template-columns:1fr;gap:var(--space-8);}}
.footer__brand img{height:var(--logo-h-footer);width:auto;max-width:100%;object-fit:contain;margin-bottom:var(--space-4);}
.footer__brand p{font-size:var(--text-sm);max-width:30ch;color:rgba(255,255,255,.6);}
.footer__col h4{color:#fff;font-size:var(--text-sm);font-family:var(--font-body);font-weight:var(--weight-semibold);
  letter-spacing:.04em;margin-bottom:var(--space-4);text-transform:uppercase;}
.footer__col a{display:block;color:rgba(255,255,255,.66);font-size:var(--text-sm);padding:var(--space-1) 0;}
.footer__col a:hover{color:#fff;}
.footer__trust{display:flex;flex-wrap:wrap;gap:var(--space-3);padding-block:var(--space-8);
  border-bottom:1px solid var(--border-on-dark);}
.footer__cred{padding-block:var(--space-8);font-size:var(--text-sm);color:rgba(255,255,255,.6);
  display:flex;flex-direction:column;gap:var(--space-5);border-bottom:1px solid var(--border-on-dark);}
.footer__cred .line{max-width:80ch;}
.footer__cred a{color:rgba(255,255,255,.8);}
.footer__standards{display:flex;align-items:center;gap:var(--space-4);padding-top:var(--space-8);}
.footer__standards img{width:38px;height:auto;opacity:.9;filter:grayscale(1) brightness(2.4);}
.footer__standards p{margin:0;font-size:var(--text-sm);color:rgba(255,255,255,.6);}
.footer__standards b{color:#fff;font-weight:var(--weight-semibold);}
.footer__legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-4);
  padding-top:var(--space-8);font-size:var(--text-sm);color:rgba(255,255,255,.5);}
.footer__legal .links{display:flex;gap:var(--space-5);flex-wrap:wrap;}
.footer__legal a{color:rgba(255,255,255,.6);}
.footer__legal a:hover{color:#fff;}

/* ============================================================
   MISC SECTIONS
   ============================================================ */
.industry-tile{position:relative;border-radius:var(--radius-lg);overflow:hidden;padding:var(--space-8);
  min-height:220px;display:flex;flex-direction:column;justify-content:flex-end;background:var(--gradient-hero);
  color:#fff;transition:transform var(--duration-base) var(--ease-out),box-shadow var(--duration-base);}
.industry-tile:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);}
.industry-tile::after{content:"";position:absolute;inset:0;}
.industry-tile h3{color:#fff;font-size:var(--text-h3);position:relative;}
.industry-tile p{color:rgba(255,255,255,.8);font-size:var(--text-sm);margin:var(--space-2) 0 0;position:relative;}
.industry-tile .tag{position:relative;font-size:var(--text-xs);color:var(--lime-400);font-weight:var(--weight-semibold);
  margin-bottom:var(--space-2);}
.industry-tile:nth-child(2){background:linear-gradient(150deg,#05491F,#045C2A);}
.industry-tile:nth-child(3){background:linear-gradient(150deg,#04401F,#054E25);}
.industry-tile:nth-child(4){background:linear-gradient(150deg,#054E25,#006C32);}

/* logo strip */
.logo-strip{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-10);}
.logo-strip img{height:34px;width:auto;opacity:.62;filter:grayscale(1);transition:opacity var(--duration-base),filter var(--duration-base);}
.logo-strip img:hover{opacity:1;filter:grayscale(0);}

/* pull quote / stat strip inline */
.statline{display:flex;flex-wrap:wrap;gap:var(--space-6) var(--space-12);padding:var(--space-6) 0;}
.statline .s b{font-family:var(--font-display);font-size:var(--text-h2);color:var(--ink-900);display:block;font-weight:var(--weight-black);}
.statline .s span{font-size:var(--text-sm);color:var(--text-muted);}

/* steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6);counter-reset:step;}
@media (max-width:820px){.steps{grid-template-columns:1fr;}}
.step{background:var(--white);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-8);position:relative;}
.step__n{font-family:var(--font-display);font-weight:var(--weight-black);font-size:var(--text-display-md);
  color:var(--bone-200);line-height:1;margin-bottom:var(--space-4);}
.step h3{font-size:var(--text-h4);margin-bottom:var(--space-2);}
.step p{color:var(--text-muted);margin:0;}

/* value list */
.values{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-1);}
@media (max-width:680px){.values{grid-template-columns:1fr;}}
.value{display:flex;gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-md);transition:background var(--duration-base);}
.value:hover{background:var(--bone-50);}
.value .vn{font-family:var(--font-display);font-weight:var(--weight-black);color:var(--signal-500);font-size:var(--text-h4);flex:none;}
.value h4{font-size:var(--text-h5);margin-bottom:2px;}
.value p{margin:0;color:var(--text-muted);font-size:var(--text-sm);}

/* the name / standards triad */
.triad{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6);}
@media (max-width:760px){.triad{grid-template-columns:1fr;}}
.triad .card h3{font-family:var(--font-display);}
.triad .latin{color:var(--signal-600);font-weight:var(--weight-black);font-size:var(--text-h3);
  font-family:var(--font-display);margin-bottom:var(--space-1);}

/* filter chips */
.filters{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-10);}
.filter-btn{font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-medium);
  padding:var(--space-2) var(--space-5);border-radius:var(--radius-pill);border:1px solid var(--border-default);
  background:var(--white);color:var(--ink-700);cursor:pointer;transition:var(--transition-base);}
.filter-btn:hover{border-color:var(--ink-900);}
.filter-btn.is-active{background:var(--ink-900);color:#fff;border-color:var(--ink-900);}

/* article */
.article{max-width:720px;margin-inline:auto;}
.article p{font-size:var(--text-lg);line-height:var(--leading-relaxed);color:var(--ink-800);margin-bottom:var(--space-6);}
.article h2{font-size:var(--text-h2);margin:var(--space-12) 0 var(--space-4);}
.article h3{margin:var(--space-8) 0 var(--space-3);}
.draft-banner{background:rgba(183,121,31,.1);border:1px solid rgba(183,121,31,.35);color:#7a5214;
  padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);font-size:var(--text-sm);margin-bottom:var(--space-8);}
.insight-card .pcard__media{aspect-ratio:16/9;background:var(--gradient-hero);position:relative;}
.insight-card .pcard__media .topic-mark{position:absolute;inset:0;display:grid;place-items:center;}
.insight-card .pcard__media .topic-mark span{font-family:var(--font-display);font-weight:var(--weight-black);
  font-size:var(--text-display-md);color:rgba(255,255,255,.16);}

/* 404 */
.error-page{min-height:70vh;display:grid;place-items:center;text-align:center;}
.error-page .code{font-family:var(--font-display);font-weight:var(--weight-black);
  font-size:clamp(6rem,20vw,12rem);line-height:.9;color:var(--bone-200);}

/* dl details list */
.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-6);}
@media (max-width:640px){.facts{grid-template-columns:1fr;}}

/* ============================================================
   SCROLL REVEAL
   ============================================================ */
[data-reveal]{opacity:0;transform:translateY(16px);transition:opacity var(--duration-slow) var(--ease-out),
  transform var(--duration-slow) var(--ease-out);}
[data-reveal].is-in{opacity:1;transform:none;}
[data-reveal][data-delay="1"]{transition-delay:80ms;}
[data-reveal][data-delay="2"]{transition-delay:160ms;}
[data-reveal][data-delay="3"]{transition-delay:240ms;}
[data-reveal][data-delay="4"]{transition-delay:320ms;}
[data-reveal][data-delay="5"]{transition-delay:400ms;}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important;scroll-behavior:auto !important;}
  [data-reveal]{opacity:1 !important;transform:none !important;}
  .hero__mesh{display:none;}
}

/* utility */
.mt-2{margin-top:var(--space-2);}.mt-4{margin-top:var(--space-4);}.mt-6{margin-top:var(--space-6);}
.mt-8{margin-top:var(--space-8);}.mt-10{margin-top:var(--space-10);}.mt-12{margin-top:var(--space-12);}
.mb-0{margin-bottom:0;}.mb-6{margin-bottom:var(--space-6);}
.center{text-align:center;}
.tac-row{display:flex;justify-content:center;}
.hide-sm{display:initial;}
@media (max-width:560px){.hide-sm{display:none;}}
.divider{height:1px;background:var(--border-subtle);border:none;margin:0;}
.prose p{color:var(--text-muted);}
.prose p strong,.prose b{color:var(--ink-900);}
.lead-block p{font-size:var(--text-xl);line-height:var(--leading-relaxed);color:var(--ink-800);}

/* ============================================================
   FINISHING PASS — added components & global contrast hardening
   ============================================================ */

/* ---------- Task 4: consolidated dark-surface tokens (root-cause) ----------
   Any element on a dark/brand/gradient surface gets light text tokens.
   .form-card is an explicit LIGHT island inside dark bands — it resets below. */
.on-dark{color:var(--text-on-dark);}
.on-dark .eyebrow{color:var(--lime-400);}
.on-dark .eyebrow::before{background:var(--lime-500);}
.on-dark > .container .lead,.cta-band .lead{color:var(--text-on-dark-muted);}
.on-dark .arrow-link{color:var(--lime-400);}
.on-dark .arrow-link:hover{color:var(--lime-500);}
.on-dark .metric__val{color:#fff;}
.on-dark .metric__label{color:rgba(255,255,255,.72);}
.on-dark .checklist li{border-color:var(--border-on-dark);}
.on-dark .checklist b{color:#fff;}
/* light island reset: form-card keeps ink text on its white surface */
.form-card,.form-card *{--text-on-dark:var(--ink-800);}
.form-card label,.form-card .form__success h3{color:var(--ink-900);}

/* ---------- Stars ---------- */
.stars{display:inline-flex;gap:2px;color:var(--signal-500);vertical-align:middle;}
.star svg{display:block;}
.star--empty{color:var(--ink-300);}

/* ---------- Testimonials carousel ---------- */
.carousel{position:relative;}
.carousel__track{display:flex;transition:transform var(--duration-slow) var(--ease-out);will-change:transform;}
.tcard{flex:0 0 100%;min-width:100%;padding:var(--space-2);}
.tcard__inner{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);
  box-shadow:var(--shadow-md);padding:var(--space-10);display:flex;flex-direction:column;gap:var(--space-5);min-height:100%;}
.tcard__rating{display:flex;align-items:center;gap:var(--space-3);}
.tcard__rnum{font-family:var(--font-display);font-weight:var(--weight-bold);color:var(--ink-800);font-size:var(--text-sm);}
.tcard__quote{margin:0;font-family:var(--font-display);font-weight:var(--weight-medium);
  font-size:var(--text-h3);line-height:var(--leading-snug);letter-spacing:var(--tracking-snug);color:var(--ink-900);text-wrap:pretty;}
.tcard__by{display:flex;align-items:center;gap:var(--space-4);margin-top:auto;}
.tcard__avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;border:2px solid var(--bone-200);flex:none;}
.tcard__meta{display:flex;flex-direction:column;line-height:1.3;}
.tcard__meta b{color:var(--ink-900);font-weight:var(--weight-semibold);}
.tcard__meta span{font-size:var(--text-sm);color:var(--text-muted);}
.tcard__co{color:var(--signal-700) !important;font-weight:var(--weight-medium);}
.carousel__controls{display:flex;align-items:center;justify-content:center;gap:var(--space-5);margin-top:var(--space-8);}
.carousel__btn{width:48px;height:48px;border-radius:50%;border:1.5px solid var(--border-strong);background:var(--white);
  color:var(--ink-900);display:grid;place-items:center;cursor:pointer;transition:var(--transition-base);}
.carousel__btn svg{width:20px;height:20px;transform:rotate(180deg);}
.carousel__btn--next svg{transform:none;}
.carousel__btn:hover{border-color:var(--ink-900);background:var(--bone-50);}
.carousel__dots{display:flex;gap:var(--space-2);}
.tdot{width:10px;height:10px;border-radius:50%;border:none;background:var(--ink-200);cursor:pointer;padding:0;transition:var(--transition-base);}
.tdot.is-active{background:var(--signal-500);width:28px;border-radius:var(--radius-pill);}
/* larger screens: show all three side by side, carousel still works */
@media (min-width:1000px){
  .carousel--static .carousel__track{transform:none !important;}
}
@media (max-width:600px){.tcard__inner{padding:var(--space-6);}.tcard__quote{font-size:var(--text-h4);}}

/* ---------- FAQ accordion ---------- */
.faq{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;background:var(--white);}
.faq__item{border-bottom:1px solid var(--border-subtle);}
.faq__item:last-child{border-bottom:none;}
.faq__q{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);cursor:pointer;
  padding:var(--space-5) var(--space-6);font-family:var(--font-display);font-weight:var(--weight-bold);
  font-size:var(--text-h4);color:var(--ink-900);list-style:none;}
.faq__q::-webkit-details-marker{display:none;}
.faq__icon{flex:none;color:var(--signal-600);transition:transform var(--duration-base) var(--ease-out);}
.faq__icon svg{width:18px;height:18px;}
.faq__item[open] .faq__icon{transform:rotate(180deg);}
.faq__a{padding:0 var(--space-6) var(--space-6);}
.faq__a p{margin:0;color:var(--text-muted);font-size:var(--text-lg);line-height:var(--leading-relaxed);}
.faq__q:focus-visible{box-shadow:inset 0 0 0 3px var(--focus-ring);}

/* ---------- Captcha + honeypot + form states ---------- */
.hp-field{position:absolute !important;left:-9999px !important;width:1px;height:1px;overflow:hidden;}
.captcha label{display:block;}
.form__error{display:none;padding:var(--space-5);border-radius:var(--radius-md);background:rgba(212,45,32,.08);
  border:1px solid rgba(180,35,24,.35);color:var(--danger-600);margin-bottom:var(--space-5);}
.form__error.show{display:block;}
.form__error a{color:var(--danger-600);text-decoration:underline;}
.form__next{counter-reset:n;display:grid;gap:var(--space-3);margin:var(--space-4) 0 0;padding:0;}
.form__next li{counter-increment:n;display:flex;gap:var(--space-3);align-items:flex-start;color:var(--text-muted);font-size:var(--text-sm);}
.form__next li::before{content:counter(n);flex:none;width:24px;height:24px;border-radius:50%;background:var(--gradient-signal);
  color:#fff;display:grid;place-items:center;font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-xs);}
.form__next b{color:var(--ink-900);}
/* iOS no-zoom: inputs already 16px (--text-base) */

/* ---------- Footer cookie button ---------- */
.footer__cookie{background:none;border:none;color:rgba(255,255,255,.6);font-size:var(--text-sm);
  font-family:var(--font-body);cursor:pointer;padding:0;}
.footer__cookie:hover{color:#fff;}

/* ---------- Legal pages ---------- */
.legal__updated{font-size:var(--text-sm);color:var(--text-muted);padding:var(--space-3) var(--space-4);
  background:var(--bone-50);border:1px solid var(--border-subtle);border-radius:var(--radius-md);display:inline-block;}
.legal h2{font-size:var(--text-h3);}
.article.legal p{font-size:var(--text-base);}

/* ---------- CookieConsent v3 — brand theming ---------- */
#cc-main{
  --cc-font-family:var(--font-body);
  --cc-btn-primary-bg:var(--signal-500);--cc-btn-primary-color:#fff;
  --cc-btn-primary-hover-bg:var(--signal-600);--cc-btn-primary-hover-color:#fff;
  --cc-btn-secondary-bg:var(--bone-100);--cc-btn-secondary-color:var(--ink-900);
  --cc-btn-secondary-hover-bg:var(--bone-200);--cc-btn-secondary-hover-color:var(--ink-900);
  --cc-bg:#fff;--cc-primary-color:var(--ink-900);--cc-secondary-color:var(--ink-500);
  --cc-separator-border-color:var(--border-subtle);
  --cc-toggle-on-bg:var(--signal-500);--cc-link-color:var(--signal-700);
  --cc-modal-border-radius:var(--radius-xl);--cc-btn-border-radius:var(--radius-pill);
  --cc-toggle-readonly-bg:var(--ink-200);
}
#cc-main .cm__title,#cc-main .pm__title{font-family:var(--font-display);}

/* ---------- Print styles (legal + FAQ) ---------- */
@media print{
  .site-header,.mobile-nav,.site-footer,.cta-band,#cc-main,.skip-link,.carousel__controls{display:none !important;}
  .phero{background:none !important;color:#000 !important;padding:0 0 var(--space-6) !important;}
  .phero h1,.phero .lead,.phero__kicker{color:#000 !important;}
  .phero__mark,.hero__mark,.cta-band__mark{display:none !important;}
  body{background:#fff;color:#000;}
  .section{padding-block:var(--space-6) !important;}
  .article,.container--narrow{max-width:none;}
  .faq__item[open] .faq__a,.faq__a{display:block !important;}
  .faq__item{break-inside:avoid;}
  a{color:#000;text-decoration:underline;}
  .legal__updated{border:1px solid #999;}
}

/* ---------- forced-colors (Windows High Contrast) safety ---------- */
@media (forced-colors:active){
  .btn,.chip,.card,.tcard__inner,.flow__node{border:1px solid;}
  .hero__mesh,.hero__mark,.phero__mark,.cta-band__mark{display:none;}
}

/* ============================================================
   Task 4 — dark-surface coverage for ALL dark contexts
   (heroes, brand/ink cards, footer were missing from on-dark rules)
   ============================================================ */
.hero .btn--secondary, .phero .btn--secondary, .cta-band .btn--secondary,
.card--ink .btn--secondary, .card--brand .btn--secondary, .industry-tile .btn--secondary,
.site-footer .btn--secondary{
  color:#fff; border-color:var(--border-on-dark); background:transparent;
}
.hero .btn--secondary:hover, .phero .btn--secondary:hover, .cta-band .btn--secondary:hover,
.card--ink .btn--secondary:hover, .card--brand .btn--secondary:hover, .industry-tile .btn--secondary:hover,
.site-footer .btn--secondary:hover{
  color:#fff; border-color:#fff; background:rgba(255,255,255,.10);
}
.hero .btn--ghost, .phero .btn--ghost, .cta-band .btn--ghost,
.card--ink .btn--ghost, .card--brand .btn--ghost, .site-footer .btn--ghost{ color:var(--lime-400); }
.hero .btn--ghost:hover, .phero .btn--ghost:hover, .cta-band .btn--ghost:hover{ color:var(--lime-500); }

/* arrow-links / eyebrows on brand cards */
.card--brand .arrow-link, .card--ink .arrow-link{ color:var(--lime-400); }
.card--brand .chip, .card--ink .chip{ background:rgba(255,255,255,.08); border-color:var(--border-on-dark); color:#fff; }

/* flow-node body text on dark flow surfaces (was ink-muted = 3.09:1) */
.section--ink .flow__node p, .section--forest .flow__node p, .on-dark .flow__node p{
  color:rgba(255,255,255,.74);
}
.section--ink .flow__node, .section--forest .flow__node{ border-color:var(--border-on-dark); }
/* gate node active/hover keeps forced white (already handled) */

/* footer download button label spans inherit white */
.site-footer .btn--secondary *{ color:inherit; }

/* ============================================================
   Task 7 QA fixes
   ============================================================ */
/* clip off-screen carousel slides (was causing webkit horizontal overflow) */
.carousel{overflow:hidden;}
.carousel__track{margin:0;padding:0;}

/* carousel dots: 24px+ touch target (WCAG 2.5.8) with 10px visible dot */
.tdot{width:24px;height:24px;padding:7px;background-clip:content-box;background-color:var(--ink-200);border-radius:var(--radius-pill);}
.tdot.is-active{width:40px;background-color:var(--signal-500);}

/* inline links in reading text must be distinguishable beyond color (WCAG 1.4.1) */
.article a:not(.btn),.legal a:not(.btn),.faq__a a,.footer__cred a,.form__note a,.form__error a,.form__success a{text-decoration:underline;text-underline-offset:2px;}

/* ---- overflow fixes (Task 7) ---- */
/* buttons wrap instead of forcing track width (long labels e.g. related-solution CTA) */
.btn{white-space:normal;}
/* let grid/flex children shrink below content min-width so tracks never exceed the container */
.split > *,.cta-grid > *,.grid > *,.bento > *{min-width:0;}
/* small-screen nav: tighter padding + smaller logo so brand+toggle fit ≤360px.
   Only the height variable changes — width stays auto, ratio preserved. */
@media (max-width:720px){
  .nav{padding-inline:var(--space-5);--logo-h-header:30px;}
}
@media (max-width:380px){
  .nav{padding-inline:var(--space-4);--logo-h-header:27px;}
}

/* ---- default inline icon size (bare icon() in text/links) ---- */
.ico{width:1.15em;height:1.15em;flex:none;vertical-align:-0.18em;}
/* contact "Direct" card inline icons sit beside text */
.card p .ico{margin-right:var(--space-2);color:var(--signal-600);}

/* ---- card text: break long tokens cleanly (e.g. HIPAA-compliant) ---- */
.card h3,.card p,.pcard h3,.pcard p,.case-card h3,.industry-tile h3,.industry-tile p{overflow-wrap:break-word;hyphens:auto;}
/* root horizontal-overflow guard (safety net; root cause fixed above) */
html{overflow-x:hidden;}
