/* =====================================================================
   EDS 2.0 — PHASE 3 PROTOTYPE — NOT PRODUCTION
   Grounded Intelligence prototype stylesheet.
   Tokens: docs/design/EDS-2.0-Design-Tokens.md (approved Phase 2).
   Additions proposed in Phase 3 are marked "+ P3 token".
   ===================================================================== */

/* ---------- 1. Tokens (from approved token file) ---------- */
:root{
  /* Colour — core */
  --c-ink-900:#12161C; --c-ink-800:#1C222B; --c-ink-700:#2B313A;
  --c-slate-500:#5A616B; --c-slate-300:#A3A9B2;
  --c-paper:#F7F4EF; --c-white:#FFFFFF; --c-sand:#EEE8DF;
  --c-border:#DCD5CA; --c-border-strong:#8E8678;
  --c-yellow-500:#FFBA00; --c-yellow-600:#E6A700; --c-yellow-700:#CC9500; --c-yellow-text:#8A6100;
  --c-blue-logo:#5DB4E7; --c-blue-600:#1E6497; --c-blue-300:#7CC4EE;
  --c-laterite-600:#9C4A2F; --c-laterite-300:#D9805F;
  --c-success:#1F7A4D; --c-warning:#9A5B00; --c-error:#B3261E; --c-info:#1E6497; --c-info-bg:#EAF3FA;
  --c-warning-bg:#FFF4D6; --c-error-bg:#FCE8E6;
  /* Semantic */
  --bg-page:var(--c-paper); --bg-surface:var(--c-white); --bg-elevated:var(--c-sand);
  --bg-inverse:var(--c-ink-900); --bg-inverse-elevated:var(--c-ink-800);
  --text-primary:var(--c-ink-900); --text-secondary:var(--c-ink-700); --text-muted:var(--c-slate-500);
  --text-inverse:#E9E4DC; --text-inverse-muted:var(--c-slate-300);
  --link:var(--c-blue-600); --link-inverse:var(--c-blue-300);
  --focus-ring:var(--c-blue-600); --focus-ring-inverse:var(--c-blue-300);
  --accent:var(--c-laterite-600); --accent-inverse:var(--c-laterite-300);
  --cta-bg:var(--c-yellow-500); --cta-bg-hover:var(--c-yellow-600); --cta-bg-active:var(--c-yellow-700); --cta-text:var(--c-ink-900);
  --border-subtle:var(--c-border); --border-ui:var(--c-border-strong);
  --c-disabled-bg:#E9E4DC; --c-disabled-text:#8E8678;

  /* Typography */
  --font-display:"Newsreader", Georgia, serif;
  --font-sans:"Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono:"IBM Plex Mono", ui-monospace, monospace;
  --t-display:clamp(2.5rem, 1.1rem + 4.4vw, 4.5rem);   /* 40 → 72 */
  --t-h1:clamp(2.25rem, 1.35rem + 2.8vw, 3.5rem);       /* 36 → 56 */
  --t-h2:clamp(1.875rem, 1.45rem + 1.3vw, 2.5rem);      /* 30 → 40 */
  --t-h3:clamp(1.3125rem, 1.2rem + .35vw, 1.5rem);      /* 21 → 24 */
  --t-h4:clamp(1.125rem, 1.1rem + .1vw, 1.1875rem);     /* 18 → 19 */
  --t-lead:clamp(1.125rem, 1.05rem + .25vw, 1.25rem);   /* 18 → 20 */
  --t-body:clamp(1rem, .97rem + .1vw, 1.0625rem);       /* 16 → 17 */
  --t-small:.875rem; --t-caption:.8125rem; --t-label:.75rem; --t-meta:.75rem;
  --t-stat:clamp(2.25rem, 1.8rem + 1.4vw, 3rem);        /* 36 → 48 */

  /* Spacing */
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:20px; --s-6:24px; --s-7:32px; --s-8:48px;
  --s-9:64px; --s-10:80px; --s-11:96px; --s-12:128px; --s-13:160px;
  --section-xl:160px; --section-l:128px; --section-m:80px;
  --card-pad:32px; --card-pad-compact:24px; --stack-heading-body:24px;

  /* Layout */
  --container-max:1280px; --container-wide:1440px; --container-text:720px; --container-narrow:600px;
  --page-margin:80px; --grid-gutter:32px;

  /* Shape / elevation */
  --radius-0:0; --radius-1:2px; --radius-2:4px; --radius-pill:999px;
  --shadow-menu:0 24px 48px -24px rgba(18,22,28,.28);
  --shadow-float:0 8px 24px -8px rgba(18,22,28,.20);

  /* Motion */
  --dur-instant:100ms; --dur-fast:160ms; --dur-base:240ms; --dur-slow:400ms;
  --ease-standard:cubic-bezier(.2,0,0,1); --ease-exit:cubic-bezier(.4,0,1,1); --reveal-distance:12px;

  /* Z-index */
  --z-base:0; --z-sticky:100; --z-header:200; --z-menu:300; --z-launcher:350; --z-modal:400; --z-toast:500;

  /* + P3 tokens (proposed additions, documented in Phase 3 report) */
  --header-h:76px;                 /* + P3 token */
  --proto-banner-h:28px;           /* + P3 token (prototype only) */
  --c-highlight:#FFF1C2;           /* + P3 token: yellow text-highlight tint (ink on it 16.08:1) */
  --ph-a:#D8CDBD; --ph-b:#A8998A;  /* + P3 token (prototype placeholder imagery only) */
}
@media (max-width:1439px){ :root{ --page-margin:48px; --grid-gutter:24px; } }
@media (max-width:1023px){ :root{ --page-margin:32px; --section-xl:112px; --section-l:96px; --section-m:64px; --card-pad:28px; --card-pad-compact:20px; --stack-heading-body:20px; } }
@media (max-width:767px){ :root{ --page-margin:20px; --grid-gutter:16px; --section-xl:80px; --section-l:72px; --section-m:48px; --card-pad:24px; --stack-heading-body:16px; --header-h:64px; } }

/* ---------- 2. Base ---------- */
body.eds2 *,body.eds2 *::before,body.eds2 *::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 16px)}
body.eds2{margin:0;background:var(--bg-page);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--t-body);line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
body.eds2 img{max-width:100%;height:auto;display:block}
body.eds2 a{color:var(--link);text-underline-offset:.18em;text-decoration-thickness:1px}
body.eds2 a:hover{text-decoration-thickness:2px}
body.eds2 h1,body.eds2 h2,body.eds2 h3,body.eds2 h4,body.eds2 h5,body.eds2 h6,body.eds2 p,body.eds2 ul,body.eds2 ol,body.eds2 figure,body.eds2 blockquote,body.eds2 dl,body.eds2 dd{margin:0}
body.eds2 ul[role="list"],body.eds2 ol[role="list"]{list-style:none;padding:0}
body.eds2 button,body.eds2 input,body.eds2 select,body.eds2 textarea{font:inherit;color:inherit}
body.eds2 :focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}
body.eds2 .bg-ink :focus-visible,body.eds2 .inverse :focus-visible{outline-color:var(--focus-ring-inverse)}
body.eds2 ::selection{background:var(--c-highlight);color:var(--c-ink-900)}
body.eds2 .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}
body.eds2 .skip-link{position:absolute;left:16px;top:-100px;z-index:var(--z-toast);background:var(--c-ink-900);color:#fff;padding:12px 16px;font-weight:600;text-decoration:none}
body.eds2 .skip-link:focus{top:12px}

/* Prototype banner */
body.eds2 .proto-banner{position:relative;z-index:calc(var(--z-header) + 1);min-height:var(--proto-banner-h);display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;background:var(--c-ink-900);color:var(--c-yellow-500);font:500 11px/1.4 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;padding:6px 16px;text-align:center}
body.eds2 .proto-banner a{color:var(--text-inverse)}

/* ---------- 3. Typography ---------- */
body.eds2 .display,body.eds2 h1,body.eds2 .h1,body.eds2 h2,body.eds2 .h2{font-family:var(--font-display);font-weight:500;color:inherit;text-wrap:balance}
body.eds2 .display{font-size:var(--t-display);line-height:1.05;letter-spacing:-.02em}
body.eds2 h1,body.eds2 .h1{font-size:var(--t-h1);line-height:1.07;letter-spacing:-.015em}
body.eds2 h2,body.eds2 .h2{font-size:var(--t-h2);line-height:1.15;letter-spacing:-.01em}
body.eds2 h3,body.eds2 .h3{font-family:var(--font-sans);font-size:var(--t-h3);line-height:1.25;font-weight:600;letter-spacing:-.005em}
body.eds2 h4,body.eds2 .h4{font-family:var(--font-sans);font-size:var(--t-h4);line-height:1.37;font-weight:600}
body.eds2 .serif{font-family:var(--font-display);font-weight:500}
body.eds2 .lead{font-size:var(--t-lead);line-height:1.6;color:var(--text-secondary);max-width:52ch}
body.eds2 .small{font-size:var(--t-small);line-height:1.57}
body.eds2 .caption{font-size:var(--t-caption);line-height:1.54;color:var(--text-muted)}
body.eds2 .muted{color:var(--text-muted)}
body.eds2 .eyebrow{display:inline-block;font:500 var(--t-label)/1.33 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
body.eds2 .meta{font:500 var(--t-meta)/1.5 var(--font-mono);letter-spacing:.04em;color:var(--text-muted)}
body.eds2 .stat{font:500 var(--t-stat)/1.08 var(--font-display);letter-spacing:-.02em}
body.eds2 .measure{max-width:var(--container-text)}
body.eds2 .balance{text-wrap:balance}
body.eds2 mark.hl{background:var(--c-highlight);color:inherit;padding:0 .15em}

/* ---------- 4. Layout ---------- */
body.eds2 .container{width:100%;max-width:calc(var(--container-max) + var(--page-margin)*2);margin-inline:auto;padding-inline:var(--page-margin)}
body.eds2 .container--wide{max-width:calc(var(--container-wide) + var(--page-margin)*2)}
body.eds2 .container--text{max-width:calc(var(--container-text) + var(--page-margin)*2)}
body.eds2 .section{padding-block:var(--section-l)}
body.eds2 .section--xl{padding-block:var(--section-xl)}
body.eds2 .section--m{padding-block:var(--section-m)}
body.eds2 .section--flush-top{padding-top:0}
body.eds2 .bg-paper{background:var(--c-paper)} body.eds2 .bg-white{background:var(--c-white)} body.eds2 .bg-sand{background:var(--c-sand)}
body.eds2 .bg-ink,body.eds2 .inverse{background:var(--bg-inverse);color:var(--text-inverse)}
body.eds2 .bg-ink .muted,body.eds2 .bg-ink .caption,body.eds2 .bg-ink .meta,body.eds2 .inverse .muted{color:var(--text-inverse-muted)}
body.eds2 .bg-ink .eyebrow,body.eds2 .inverse .eyebrow{color:var(--accent-inverse)}
body.eds2 .bg-ink .lead{color:var(--text-inverse)}
body.eds2 .bg-ink a:not(.btn){color:var(--link-inverse)}
body.eds2 .bg-yellow{background:var(--c-yellow-500);color:var(--c-ink-900)}
body.eds2 .grid-pattern{background-image:linear-gradient(rgba(233,228,220,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(233,228,220,.05) 1px,transparent 1px);background-size:48px 48px}
body.eds2 .stack>*+*{margin-top:var(--stack,16px)}
body.eds2 .stack-l>*+*{margin-top:var(--s-7)}
body.eds2 .section-head{display:grid;grid-template-columns:5fr 7fr;gap:var(--grid-gutter);align-items:end;margin-bottom:var(--s-9)}
body.eds2 .section-head .eyebrow{margin-bottom:var(--s-4)}
body.eds2 .section-head--stack{grid-template-columns:1fr;max-width:820px}
body.eds2 .rule{border:0;border-top:1px solid var(--c-ink-900);margin:0}
body.eds2 .rule--subtle{border-top-color:var(--border-subtle)}
body.eds2 .bg-ink .rule{border-top-color:rgba(233,228,220,.25)}
body.eds2 .split{display:grid;gap:var(--grid-gutter);grid-template-columns:7fr 5fr}
body.eds2 .split--5-7{grid-template-columns:5fr 7fr}
body.eds2 .split--6-6{grid-template-columns:1fr 1fr}
body.eds2 .split--4-8{grid-template-columns:4fr 8fr}
body.eds2 .split--8-4{grid-template-columns:8fr 4fr}
body.eds2 .cols-2{display:grid;gap:var(--grid-gutter);grid-template-columns:repeat(2,minmax(0,1fr))}
body.eds2 .cols-3{display:grid;gap:var(--grid-gutter);grid-template-columns:repeat(3,minmax(0,1fr))}
body.eds2 .cols-4{display:grid;gap:var(--grid-gutter);grid-template-columns:repeat(4,minmax(0,1fr))}
body.eds2 .align-center{align-items:center}
body.eds2 .flow-row{display:flex;flex-wrap:wrap;gap:var(--s-3);align-items:center}
@media (max-width:1023px){
  body.eds2 .split,body.eds2 .split--5-7,body.eds2 .split--6-6,body.eds2 .split--4-8,body.eds2 .split--8-4,body.eds2 .section-head{grid-template-columns:1fr}
  body.eds2 .cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.eds2 .cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.eds2 .section-head{margin-bottom:var(--s-8)}
}
@media (max-width:767px){
  body.eds2 .cols-2,body.eds2 .cols-3,body.eds2 .cols-4{grid-template-columns:1fr}
}

/* ---------- 5. Buttons ---------- */
body.eds2 .btn{--btn-h:48px;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:var(--btn-h);padding:12px 22px;border-radius:var(--radius-1);border:1.5px solid transparent;font:600 .9375rem/1.25 var(--font-sans);letter-spacing:.005em;text-decoration:none;cursor:pointer;text-align:center;transition:background-color var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard),transform var(--dur-instant)}
body.eds2 .btn:active{transform:translateY(1px)}
body.eds2 .btn .arrow{transition:transform var(--dur-fast) var(--ease-standard)}
body.eds2 .btn:hover .arrow{transform:translateX(2px)}
body.eds2 .btn--primary{background:var(--cta-bg);color:var(--cta-text)}
body.eds2 .btn--primary:hover{background:var(--cta-bg-hover)} body.eds2 .btn--primary:active{background:var(--cta-bg-active)}
body.eds2 .btn--secondary{background:transparent;color:var(--c-ink-900);border-color:var(--c-ink-900)}
body.eds2 .btn--secondary:hover{background:var(--c-ink-900);color:#fff}
body.eds2 .btn--text{min-height:44px;padding:10px 2px;border:0;border-bottom:1.5px solid currentColor;border-radius:0;color:var(--c-ink-900)}
body.eds2 .btn--text:hover{color:var(--accent);border-color:var(--accent)}
body.eds2 .btn--dark{background:var(--c-ink-900);color:#fff}
body.eds2 .btn--dark:hover{background:var(--c-ink-700)}
body.eds2 .btn--light{background:#fff;color:var(--c-ink-900)}
body.eds2 .btn--light:hover{background:var(--c-sand)}
body.eds2 .btn--icon{--btn-h:44px;width:44px;padding:0;border:1px solid var(--border-subtle);background:transparent;color:var(--c-ink-900)}
body.eds2 .btn--icon:hover{background:var(--c-sand)}
body.eds2 .btn--sm{--btn-h:40px;padding:8px 16px;font-size:.875rem}
body.eds2 .btn--lg{--btn-h:56px;padding:16px 26px;font-size:1rem}
body.eds2 .btn[disabled],body.eds2 .btn[aria-disabled="true"]{background:var(--c-disabled-bg);color:var(--c-disabled-text);border-color:transparent;cursor:not-allowed;transform:none}
body.eds2 .bg-ink .btn--secondary{color:var(--text-inverse);border-color:var(--text-inverse)}
body.eds2 .bg-ink .btn--secondary:hover{background:var(--text-inverse);color:var(--c-ink-900)}
body.eds2 .bg-ink .btn--text{color:var(--text-inverse)}
body.eds2 .bg-ink .btn--text:hover{color:var(--accent-inverse)}
body.eds2 .bg-yellow .btn--secondary{border-color:var(--c-ink-900)}
body.eds2 .btn-row{display:flex;flex-wrap:wrap;gap:var(--s-4) var(--s-6);align-items:center}
@media (max-width:767px){ body.eds2 .btn{--btn-h:48px;font-size:1rem} body.eds2 .btn--sm{--btn-h:44px} }

/* ---------- 6. Header ---------- */
body.eds2 .site-header{position:sticky;top:0;z-index:var(--z-header);background:rgba(247,244,239,.97);border-bottom:1px solid var(--border-subtle);backdrop-filter:saturate(1.2)}
body.eds2 .header-inner{display:flex;align-items:center;gap:var(--s-6);min-height:var(--header-h)}
body.eds2 .logo{display:inline-flex;align-items:center;flex-shrink:0;text-decoration:none}
body.eds2 .logo img{height:40px;width:auto}
body.eds2 .primary-nav{display:flex;align-items:stretch;gap:2px;margin:0 auto 0 var(--s-4);padding:0;list-style:none;height:var(--header-h)}
body.eds2 .primary-nav>li{display:flex;align-items:center;position:static}
body.eds2 .nav-item{display:flex;align-items:center;height:100%;position:relative}
body.eds2 .nav-link{display:flex;align-items:center;height:100%;padding:0 4px 0 10px;color:var(--c-ink-900);text-decoration:none;font-weight:500;font-size:.9375rem}
body.eds2 .nav-link:hover{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:6px}
body.eds2 .mm-toggle{display:inline-flex;align-items:center;justify-content:center;width:28px;height:44px;border:0;background:transparent;cursor:pointer;color:var(--c-ink-900);border-radius:var(--radius-1)}
body.eds2 .mm-toggle svg{transition:transform var(--dur-base) var(--ease-standard)}
body.eds2 .mm-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
body.eds2 .nav-item.is-current::after,body.eds2 .nav-item.is-open::after{content:"";position:absolute;left:10px;right:8px;bottom:0;height:2px;background:var(--c-ink-900)}
body.eds2 .nav-item.is-current::after{background:var(--c-yellow-500);height:3px}
body.eds2 .header-utils{display:flex;align-items:center;gap:var(--s-2);flex-shrink:0}
body.eds2 .util-link{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 10px;color:var(--c-ink-900);text-decoration:none;font-size:.875rem;font-weight:500;background:none;border:0;cursor:pointer}
body.eds2 .util-link:hover{text-decoration:underline}
body.eds2 .client-menu{position:relative}
body.eds2 .client-dropdown{position:absolute;right:0;top:calc(100% + 8px);width:260px;background:#fff;border:1px solid var(--border-subtle);box-shadow:var(--shadow-menu);padding:var(--s-3) 0;z-index:var(--z-menu)}
body.eds2 .client-dropdown a{display:flex;justify-content:space-between;padding:10px var(--s-5);color:var(--c-ink-900);text-decoration:none;font-size:.9375rem}
body.eds2 .client-dropdown a:hover{background:var(--c-paper)}
body.eds2 .client-dropdown .meta{display:block;padding:4px var(--s-5) 8px}
body.eds2 .cta-short{display:none}
body.eds2 .menu-toggle{display:none}
@media (max-width:1199px){
  body.eds2 .header-inner{gap:var(--s-3)}
  body.eds2 .primary-nav{margin-left:var(--s-2)}
  body.eds2 .nav-link{padding-left:7px;font-size:.875rem}
  body.eds2 .util-label{display:none}
  body.eds2 .cta-long{display:none} body.eds2 .cta-short{display:inline}
  body.eds2 .mega .mm-media{display:none}
}
@media (max-width:1023px){
  body.eds2 .primary-nav,body.eds2 .header-utils .util-search,body.eds2 .header-utils .client-menu{display:none}
  body.eds2 .menu-toggle{display:inline-flex}
  body.eds2 .header-utils{margin-left:auto}
  body.eds2 .logo img{height:34px}
}
@media (max-width:359px){ body.eds2 .header-cta{display:none} }

/* ---------- 7. Mega menus ---------- */
body.eds2 .mega{position:absolute;left:0;right:0;top:100%;background:#fff;border-top:1px solid var(--c-ink-900);box-shadow:var(--shadow-menu);max-height:calc(100vh - var(--header-h) - 24px);overflow:auto;opacity:0;transform:translateY(-8px);visibility:hidden;transition:opacity var(--dur-base) var(--ease-standard),transform var(--dur-base) var(--ease-standard),visibility 0s linear var(--dur-base)}
body.eds2 .mega.is-open{opacity:1;transform:none;visibility:visible;transition:opacity var(--dur-base) var(--ease-standard),transform var(--dur-base) var(--ease-standard),visibility 0s}
body.eds2 .mega-inner{padding-block:var(--s-8) var(--s-7)}
body.eds2 .mega-foot{display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-6);justify-content:space-between;align-items:center;border-top:1px solid var(--border-subtle);margin-top:var(--s-7);padding-top:var(--s-5);font-size:.9375rem}
body.eds2 .mega a{text-decoration:none;color:var(--c-ink-900)}
body.eds2 .mega a:hover{text-decoration:underline}
body.eds2 .mm-head{font:500 var(--t-label)/1.33 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--s-4)}
body.eds2 .mm-title{display:block;font:500 1.375rem/1.2 var(--font-display);margin-bottom:var(--s-3)}
body.eds2 .mm-links{list-style:none;padding:0;margin:0 0 var(--s-6)}
body.eds2 .mm-links a{display:block;padding:6px 0;font-size:.9375rem;color:var(--text-secondary)}
body.eds2 .mm-links a .meta{display:block;color:var(--text-muted);letter-spacing:0;font-family:var(--font-sans);font-size:.8125rem;font-weight:400}
body.eds2 .mm-desc{font-size:.875rem;color:var(--text-muted);margin:0 0 var(--s-3);max-width:34ch}
/* Solutions: capability map */
body.eds2 .mm-solutions .mm-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1.05fr;gap:0}
body.eds2 .mm-solutions .mm-col{padding-right:var(--s-6);margin-right:var(--s-6);border-right:1px solid var(--border-subtle)}
body.eds2 .mm-solutions .mm-col:nth-child(3){border-right:0}
body.eds2 .mm-feature{background:var(--c-sand);padding:var(--s-6);display:flex;flex-direction:column;gap:var(--s-4)}
body.eds2 .mm-feature .serif{font-size:1.25rem;line-height:1.25}
body.eds2 .mm-diagram{display:flex;align-items:center;gap:6px;font:500 11px/1 var(--font-mono);color:var(--text-muted);margin:var(--s-2) 0 var(--s-5);flex-wrap:wrap}
body.eds2 .mm-diagram span{border:1px solid var(--border-strong);padding:6px 8px}
/* Industries: sector gallery */
body.eds2 .mm-industries .mm-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-6)}
body.eds2 .mm-tile .ph{aspect-ratio:4/3;margin-bottom:var(--s-4)}
body.eds2 .mm-tile .mm-title{font-size:1.25rem}
body.eds2 .mm-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--s-3)}
body.eds2 .mm-proof{font:500 11px/1.4 var(--font-mono);color:var(--text-muted);margin-top:var(--s-3);letter-spacing:.04em}
/* Work: contact sheet */
body.eds2 .mm-work .mm-grid{display:grid;grid-template-columns:1.6fr 1fr .8fr;gap:var(--s-7)}
body.eds2 .mm-work .mm-featured .ph{aspect-ratio:16/9;margin-bottom:var(--s-4)}
body.eds2 .mm-work .mm-featured .serif{font-size:1.5rem;line-height:1.2;display:block;margin:6px 0}
body.eds2 .mm-work .mm-mini{display:grid;gap:var(--s-5)}
body.eds2 .mm-work .mm-mini a{display:grid;grid-template-columns:96px 1fr;gap:var(--s-4);align-items:start}
body.eds2 .mm-work .mm-mini .ph{aspect-ratio:4/3}
/* Insights: front page */
body.eds2 .mm-insights .mm-grid{display:grid;grid-template-columns:.9fr 1.4fr 1fr .9fr;gap:var(--s-7)}
body.eds2 .mm-topics a{display:block;padding:5px 0;font-size:.9375rem}
body.eds2 .mm-lead .ph{aspect-ratio:3/2;margin-bottom:var(--s-4)}
body.eds2 .mm-lead .serif{font-size:1.375rem;line-height:1.25;display:block;margin:6px 0}
body.eds2 .mm-headlines a{display:block;padding:var(--s-3) 0;border-top:1px solid var(--border-subtle);font-family:var(--font-display);font-size:1.0625rem;line-height:1.3}
body.eds2 .mm-news{border-left:1px solid var(--border-subtle);padding-left:var(--s-6)}
/* Products: dark shelf */
body.eds2 .mega.mm-products{background:var(--c-ink-900);color:var(--text-inverse);border-top-color:var(--c-ink-700)}
body.eds2 .mm-products a{color:var(--text-inverse)}
body.eds2 .mm-products .mm-head{color:var(--accent-inverse)}
body.eds2 .mm-products .mm-shelf{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-6)}
body.eds2 .mm-product{border:1px solid var(--c-ink-700);border-radius:var(--radius-2);padding:var(--s-5);background:var(--c-ink-800);display:flex;flex-direction:column;gap:var(--s-3);transition:border-color var(--dur-fast)}
body.eds2 .mm-product:hover{border-color:var(--c-blue-300)}
body.eds2 .mm-product .serif{font-size:1.375rem}
body.eds2 .mm-product p{color:var(--text-inverse-muted);font-size:.875rem}
body.eds2 .mm-products .mega-foot{border-top-color:var(--c-ink-700)}
/* Company: credentials */
body.eds2 .mm-company .mm-grid{display:grid;grid-template-columns:.9fr 1fr 1fr 1fr;gap:var(--s-7)}
body.eds2 .mm-company .ph{aspect-ratio:3/4}
body.eds2 .mm-facts{display:grid;gap:var(--s-4)}
body.eds2 .mm-facts div{border-top:1px solid var(--border-subtle);padding-top:var(--s-3)}
body.eds2 .mm-facts b{display:block;font:500 1.75rem/1.1 var(--font-display)}
body.eds2 .mm-facts span{font-size:.875rem;color:var(--text-muted)}
body.eds2 .mega--static{position:relative;top:auto;opacity:1;visibility:visible;transform:none;max-height:none;box-shadow:0 1px 0 var(--border-subtle)}
@media (max-width:1199px){
  body.eds2 .mm-solutions .mm-grid{grid-template-columns:1fr 1fr 1fr}
  body.eds2 .mm-solutions .mm-feature{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap}
  body.eds2 .mm-work .mm-grid{grid-template-columns:1.4fr 1fr}
  body.eds2 .mm-work .mm-browse{grid-column:1/-1}
  body.eds2 .mm-insights .mm-grid{grid-template-columns:1fr 1.4fr 1fr}
  body.eds2 .mm-insights .mm-news{grid-column:1/-1;border-left:0;padding-left:0;border-top:1px solid var(--border-subtle);padding-top:var(--s-5)}
  body.eds2 .mm-company .mm-grid{grid-template-columns:repeat(3,1fr)}
  body.eds2 .mm-industries .mm-tiles{grid-template-columns:repeat(2,1fr)}
}

/* ---------- 8. Mobile drawer ---------- */
body.eds2 .drawer{position:fixed;inset:0;z-index:var(--z-modal);background:var(--c-paper);display:flex;flex-direction:column;transform:translateX(100%);visibility:hidden;transition:transform var(--dur-base) var(--ease-standard),visibility 0s linear var(--dur-base)}
body.eds2 .drawer.is-open{transform:none;visibility:visible;transition:transform var(--dur-base) var(--ease-standard),visibility 0s}
body.eds2 .drawer-top{display:flex;align-items:center;justify-content:space-between;min-height:var(--header-h);padding-inline:var(--page-margin);border-bottom:1px solid var(--border-subtle)}
body.eds2 .drawer-top img{height:34px;width:auto}
body.eds2 .drawer-body{flex:1;overflow:auto;padding:var(--s-2) var(--page-margin) var(--s-7)}
body.eds2 .drawer-group{border-bottom:1px solid var(--border-subtle)}
body.eds2 .drawer-group>h2{margin:0;font:inherit}
body.eds2 .drawer-trigger{display:flex;width:100%;justify-content:space-between;align-items:center;min-height:60px;padding:var(--s-3) 0;background:none;border:0;font:500 1.375rem/1.2 var(--font-display);color:var(--c-ink-900);cursor:pointer;text-align:left}
body.eds2 .drawer-trigger .num{font:500 11px/1 var(--font-mono);color:var(--accent);margin-right:12px;letter-spacing:.08em}
body.eds2 .drawer-trigger svg{transition:transform var(--dur-base) var(--ease-standard);flex-shrink:0}
body.eds2 .drawer-trigger[aria-expanded="true"] svg{transform:rotate(45deg)}
body.eds2 .drawer-panel{padding:0 0 var(--s-5)}
body.eds2 .drawer-panel[hidden]{display:none}
body.eds2 .drawer-panel h3{font:500 var(--t-label)/1.33 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:var(--s-4) 0 var(--s-2)}
body.eds2 .drawer-panel a{display:flex;align-items:center;min-height:44px;color:var(--c-ink-900);text-decoration:none;font-size:1.0625rem}
body.eds2 .drawer-panel .view-all{font-weight:600;margin-top:var(--s-2)}
body.eds2 .drawer-util{display:grid;gap:var(--s-2);padding-top:var(--s-6)}
body.eds2 .drawer-util a{display:flex;align-items:center;justify-content:space-between;min-height:48px;color:var(--c-ink-900);text-decoration:none;border-bottom:1px solid var(--border-subtle)}
body.eds2 .drawer-cta{padding:var(--s-4) var(--page-margin) calc(var(--s-4) + env(safe-area-inset-bottom));border-top:1px solid var(--border-subtle);background:#fff;display:grid;gap:var(--s-3)}
body.eds2 .drawer-cta .btn{width:100%}
body.eds2.drawer-open{overflow:hidden}

/* ---------- 9. Placeholder imagery ---------- */
body.eds2 .ph{position:relative;overflow:hidden;background:linear-gradient(150deg,var(--ph-a) 0%,var(--ph-b) 100%);color:var(--c-ink-900);min-height:120px}
body.eds2 .ph::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.18) 1px,transparent 1px);background-size:32px 32px;opacity:.6}
body.eds2 .ph--dark{--ph-a:#3A3F47;--ph-b:#1C222B;color:var(--text-inverse)}
body.eds2 .ph--dark::before{opacity:.25}
body.eds2 .ph--warm{--ph-a:#C9B9A3;--ph-b:#7E6A57}
body.eds2 .ph--sand{--ph-a:#EEE8DF;--ph-b:#D8CDBD}
body.eds2 .ph-label{position:absolute;left:12px;bottom:12px;right:12px;font:500 10.5px/1.4 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;background:rgba(18,22,28,.82);color:#E9E4DC;padding:6px 8px;max-width:max-content}
body.eds2 .ph--dark .ph-label{background:rgba(247,244,239,.12)}
body.eds2 .ratio-4-5{aspect-ratio:4/5} body.eds2 .ratio-3-2{aspect-ratio:3/2} body.eds2 .ratio-16-10{aspect-ratio:16/10} body.eds2 .ratio-16-9{aspect-ratio:16/9} body.eds2 .ratio-4-3{aspect-ratio:4/3} body.eds2 .ratio-1-1{aspect-ratio:1/1} body.eds2 .ratio-3-4{aspect-ratio:3/4} body.eds2 .ratio-21-9{aspect-ratio:21/9}

/* Content flags (verified vs placeholder) */
body.eds2 .flag{display:inline-flex;align-items:center;gap:6px;font:500 10.5px/1.3 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;padding:3px 7px;border:1px solid currentColor;vertical-align:middle;white-space:nowrap}
body.eds2 .flag--verified{color:var(--c-success)}
body.eds2 .flag--placeholder{color:var(--c-warning)}
body.eds2 .flag--sample{color:var(--c-blue-600)}
body.eds2 .bg-ink .flag--verified{color:#7FD1A6} body.eds2 .bg-ink .flag--placeholder{color:#F2C46B} body.eds2 .bg-ink .flag--sample{color:var(--c-blue-300)}
body.eds2 .placeholder-text{background:repeating-linear-gradient(90deg,transparent 0 6px,rgba(154,91,0,.08) 6px 12px);outline:1px dashed rgba(154,91,0,.5);outline-offset:2px}

/* ---------- 10. Components ---------- */
/* Breadcrumbs */
body.eds2 .breadcrumbs ol{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:0;font:500 var(--t-meta)/1.5 var(--font-mono);letter-spacing:.04em;color:var(--text-muted)}
body.eds2 .breadcrumbs li+li::before{content:"/";margin-right:6px;color:var(--border-strong)}
body.eds2 .breadcrumbs a{color:var(--text-muted)}
body.eds2 .breadcrumbs [aria-current]{color:var(--c-ink-900)}
body.eds2 .bg-ink .breadcrumbs a,body.eds2 .bg-ink .breadcrumbs ol{color:var(--text-inverse-muted)}
body.eds2 .bg-ink .breadcrumbs [aria-current]{color:var(--text-inverse)}

/* Tags / chips */
body.eds2 .tag{display:inline-flex;align-items:center;min-height:28px;padding:2px 10px;border:1px solid var(--border-strong);border-radius:var(--radius-pill);font-size:.8125rem;color:var(--text-secondary);text-decoration:none;background:transparent}
body.eds2 a.tag:hover{border-color:var(--c-ink-900);color:var(--c-ink-900)}
body.eds2 .bg-ink .tag{border-color:var(--c-ink-700);color:var(--text-inverse-muted)}
body.eds2 .tag-list{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}

/* Hero (home) */
body.eds2 .hero-home{display:grid;grid-template-columns:7fr 5fr;min-height:min(760px,calc(100vh - var(--header-h) - var(--proto-banner-h)))}
body.eds2 .hero-home .copy{padding:var(--s-11) var(--s-9) var(--s-9) max(var(--page-margin), calc((100vw - var(--container-wide))/2 + var(--page-margin)));display:flex;flex-direction:column;justify-content:center;background:var(--c-paper)}
body.eds2 .hero-home .display{max-width:12ch;margin:var(--s-5) 0 var(--s-6)}
body.eds2 .hero-home .lead{margin-bottom:var(--s-7)}
body.eds2 .hero-home .media{background:var(--c-ink-900);padding:var(--s-7);display:flex;flex-direction:column;gap:var(--s-5)}
body.eds2 .hero-home .media .ph{flex:1;min-height:320px}
body.eds2 .proof-line{display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-5);font:500 12px/1.5 var(--font-mono);color:var(--text-inverse-muted);letter-spacing:.04em}
body.eds2 .proof-line span::before{content:"●";color:var(--c-yellow-500);margin-right:8px}
body.eds2 .grm-strip{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--c-ink-900);margin-top:var(--s-9)}
body.eds2 .grm-strip a{display:block;padding:var(--s-4) var(--s-4) 0 0;text-decoration:none;color:var(--text-muted);font-size:.9375rem}
body.eds2 .grm-strip b{display:block;font:500 12px/1 var(--font-mono);letter-spacing:.08em;color:var(--c-ink-900);margin-bottom:8px}
body.eds2 .grm-strip a:hover b{color:var(--accent)}
@media (max-width:1023px){
  body.eds2 .hero-home{grid-template-columns:1fr;min-height:0}
  body.eds2 .hero-home .copy{padding:var(--s-9) var(--page-margin) var(--s-8)}
  body.eds2 .hero-home .media{padding:var(--s-5) var(--page-margin) var(--s-6)}
  body.eds2 .hero-home .media .ph{aspect-ratio:4/3;min-height:0}
}
@media (max-width:767px){
  body.eds2 .grm-strip{grid-template-columns:1fr;margin-top:var(--s-8)}
  body.eds2 .grm-strip a{padding:var(--s-4) 0;border-bottom:1px solid var(--border-subtle)}
  body.eds2 .hero-home .media .ph{aspect-ratio:4/5}
}

/* Page hero (generic editorial) */
body.eds2 .page-hero{padding-block:var(--s-10) var(--s-9)}
body.eds2 .page-hero .breadcrumbs{margin-bottom:var(--s-7)}
body.eds2 .page-hero h1{max-width:18ch;margin:var(--s-4) 0 var(--s-6)}
body.eds2 .page-hero .lead{margin-bottom:var(--s-7)}

/* Problem statements (home "what we solve") */
body.eds2 .problems{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--c-ink-900)}
body.eds2 .problems a{display:block;padding:var(--s-6) var(--s-6) var(--s-6) 0;text-decoration:none;color:var(--c-ink-900);border-right:1px solid var(--border-subtle);margin-right:var(--s-6)}
body.eds2 .problems a:last-child{border-right:0;margin-right:0}
body.eds2 .problems .num{font:500 12px/1 var(--font-mono);color:var(--accent);letter-spacing:.08em}
body.eds2 .problems .serif{display:block;font-size:1.625rem;line-height:1.2;margin:var(--s-4) 0 var(--s-3)}
body.eds2 .problems p{color:var(--text-muted);font-size:.9375rem}
body.eds2 .problems .go{display:inline-block;margin-top:var(--s-4);font-weight:600;font-size:.9375rem;border-bottom:1.5px solid currentColor}
@media (max-width:767px){ body.eds2 .problems{grid-template-columns:1fr} body.eds2 .problems a{border-right:0;margin-right:0;border-bottom:1px solid var(--border-subtle);padding-right:0} }

/* Chapter (Grow/Run/Modernise) */
body.eds2 .chapter-label{display:flex;align-items:baseline;gap:var(--s-4);border-top:1px solid currentColor;padding-top:var(--s-4);margin-bottom:var(--s-8)}
body.eds2 .chapter-label .num{font:500 12px/1 var(--font-mono);letter-spacing:.1em}
body.eds2 .chapter-label .name{font:500 12px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
body.eds2 .bg-ink .chapter-label .name{color:var(--accent-inverse)}

/* Numbered service rows */
body.eds2 .svc-rows{list-style:none;padding:0;margin:0;border-top:1px solid var(--c-ink-900)}
body.eds2 .bg-ink .svc-rows{border-top-color:rgba(233,228,220,.3)}
body.eds2 .svc-rows li{border-bottom:1px solid var(--border-subtle)}
body.eds2 .bg-ink .svc-rows li{border-bottom-color:var(--c-ink-700)}
body.eds2 .svc-rows a{display:grid;grid-template-columns:56px minmax(0,4fr) minmax(0,6fr) 32px;gap:var(--s-5);align-items:baseline;padding:var(--s-5) 0;text-decoration:none;color:inherit}
body.eds2 .svc-rows .n{font:500 12px/1 var(--font-mono);color:var(--text-muted);letter-spacing:.06em}
body.eds2 .svc-rows .t{font:500 1.375rem/1.25 var(--font-display)}
body.eds2 .svc-rows .d{color:var(--text-muted);font-size:.9375rem}
body.eds2 .bg-ink .svc-rows .d,body.eds2 .bg-ink .svc-rows .n{color:var(--text-inverse-muted)}
body.eds2 .svc-rows .go{justify-self:end;transition:transform var(--dur-fast) var(--ease-standard)}
body.eds2 .svc-rows a:hover .t{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:5px}
body.eds2 .svc-rows a:hover .go{transform:translateX(4px)}
body.eds2 .svc-rows .price{display:block;font:500 11px/1.4 var(--font-mono);color:var(--text-muted);margin-top:6px;letter-spacing:.04em}
@media (max-width:767px){ body.eds2 .svc-rows a{grid-template-columns:36px minmax(0,1fr) 24px;gap:var(--s-3)} body.eds2 .svc-rows .d{grid-column:2/3} body.eds2 .svc-rows .go{grid-row:1;grid-column:3} }

/* Stats */
body.eds2 .stats{display:grid;grid-template-columns:repeat(var(--stat-cols,3),1fr);border-top:1px solid var(--c-ink-900)}
body.eds2 .stats>div{padding:var(--s-5) var(--s-5) 0 0}
body.eds2 .stats .stat{display:block;margin-bottom:6px}
body.eds2 .stats p{font-size:.875rem;color:var(--text-muted)}
body.eds2 .bg-ink .stats{border-top-color:rgba(233,228,220,.3)}
@media (max-width:767px){ body.eds2 .stats{grid-template-columns:1fr 1fr} body.eds2 .stats>div{padding-bottom:var(--s-4)} }

/* Work feature (large) */
body.eds2 .work-feature{display:grid;grid-template-columns:7fr 5fr;gap:var(--s-8);align-items:start}
body.eds2 .work-feature .ph{aspect-ratio:16/10}
body.eds2 .work-feature h3{font:500 var(--t-h2)/1.15 var(--font-display);margin:var(--s-4) 0 var(--s-5)}
body.eds2 .fact-rail{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--c-ink-900);margin:var(--s-6) 0}
body.eds2 .fact-rail div{padding:var(--s-3) var(--s-3) var(--s-3) 0;border-bottom:1px solid var(--border-subtle)}
body.eds2 .fact-rail dt{font:500 11px/1.4 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}
body.eds2 .fact-rail dd{font-size:.9375rem;margin-top:2px}
@media (max-width:1023px){ body.eds2 .work-feature{grid-template-columns:1fr;gap:var(--s-6)} }

/* Work card */
body.eds2 .work-card{display:block;text-decoration:none;color:inherit}
body.eds2 .work-card .ph{aspect-ratio:16/10;margin-bottom:var(--s-4);transition:transform var(--dur-slow) var(--ease-standard)}
body.eds2 .work-card .img-wrap{overflow:hidden;margin-bottom:var(--s-4)}
body.eds2 .work-card .img-wrap .ph{margin:0}
body.eds2 .work-card:hover .img-wrap .ph{transform:scale(1.02)}
body.eds2 .work-card h3{font:500 1.375rem/1.25 var(--font-display);margin:6px 0 8px}
body.eds2 .work-card:hover h3{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:5px}
body.eds2 .work-card p{color:var(--text-muted);font-size:.9375rem}

/* Insight card / headline list */
body.eds2 .insight-card{display:block;text-decoration:none;color:inherit;border-top:1px solid var(--c-ink-900);padding-top:var(--s-4)}
body.eds2 .insight-card .ph{aspect-ratio:3/2;margin-bottom:var(--s-4)}
body.eds2 .insight-card h3{font:500 1.375rem/1.25 var(--font-display);margin:8px 0}
body.eds2 .insight-card:hover h3{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:5px}
body.eds2 .insight-card p{color:var(--text-muted);font-size:.9375rem}
body.eds2 .headline-list{list-style:none;padding:0;margin:0}
body.eds2 .headline-list li{border-top:1px solid var(--border-subtle)}
body.eds2 .headline-list a{display:block;padding:var(--s-4) 0;text-decoration:none;color:inherit}
body.eds2 .headline-list .serif{display:block;font-size:1.1875rem;line-height:1.3;margin-top:4px}
body.eds2 .headline-list a:hover .serif{text-decoration:underline}

/* Product frame (Signal Grid UI) */
body.eds2 .product-frame{background:var(--c-ink-800);border:1px solid var(--c-ink-700);border-radius:var(--radius-2);color:var(--text-inverse);overflow:hidden}
body.eds2 .pf-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--c-ink-700);font:500 11px/1 var(--font-mono);color:var(--text-inverse-muted)}
body.eds2 .pf-bar i{width:8px;height:8px;border-radius:50%;background:var(--c-ink-700)}
body.eds2 .pf-bar .pf-title{margin-left:8px}
body.eds2 .pf-bar .flag{margin-left:auto}
body.eds2 .pf-body{padding:var(--s-5);display:grid;gap:var(--s-4)}
body.eds2 .pf-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--c-ink-700);border:1px solid var(--c-ink-700)}
body.eds2 .pf-kpis div{background:var(--c-ink-900);padding:12px}
body.eds2 .pf-kpis b{display:block;font:500 1.375rem/1.1 var(--font-sans);color:var(--text-inverse)}
body.eds2 .pf-kpis span{font:500 10.5px/1.3 var(--font-mono);color:var(--text-inverse-muted);letter-spacing:.04em}
body.eds2 .pf-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;font-size:.8125rem;padding:8px 0;border-bottom:1px solid var(--c-ink-700)}
body.eds2 .pf-bars{display:grid;gap:10px}
body.eds2 .pf-bars div{font:500 11px/1 var(--font-mono);color:var(--text-inverse-muted)}
body.eds2 .pf-bars s{display:block;height:8px;background:var(--c-ink-700);margin-top:6px;text-decoration:none}
body.eds2 .pf-bars s i{display:block;height:100%;background:var(--c-blue-logo)}
body.eds2 .pf-bars s i.y{background:var(--c-yellow-500)}
body.eds2 .pf-pill{display:inline-block;font:500 10.5px/1 var(--font-mono);padding:4px 6px;border:1px solid var(--c-ink-700);color:var(--text-inverse-muted)}
body.eds2 .pf-pill.ok{color:#7FD1A6;border-color:#2E5A44}

/* Industry tile */
body.eds2 .industry-tile{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:420px;color:#fff;text-decoration:none;overflow:hidden;isolation:isolate}
body.eds2 .industry-tile .ph{position:absolute;inset:0;z-index:-2;min-height:0}
body.eds2 .industry-tile .ph .ph-label{top:12px;bottom:auto}
body.eds2 .industry-tile::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(18,22,28,0) 20%,rgba(18,22,28,.88) 70%);transition:background var(--dur-base)}
body.eds2 .industry-tile:hover::after{background:linear-gradient(180deg,rgba(18,22,28,.15) 10%,rgba(18,22,28,.94) 65%)}
body.eds2 .industry-tile .body{padding:var(--s-6)}
body.eds2 .industry-tile .serif{display:block;font-size:1.625rem;line-height:1.15;margin:8px 0}
body.eds2 .industry-tile p{color:#E9E4DC;font-size:.9375rem}
body.eds2 .industry-tile .eyebrow{color:var(--c-laterite-300)}
body.eds2 .industry-tile .go{display:inline-block;margin-top:var(--s-4);font-weight:600;border-bottom:1.5px solid currentColor}

/* Testimonial */
body.eds2 .testimonial{max-width:920px}
body.eds2 .testimonial blockquote{font:500 clamp(1.5rem,1.1rem + 1.4vw,2.25rem)/1.3 var(--font-display);letter-spacing:-.01em}
body.eds2 .testimonial blockquote::before{content:"“";display:block;font-size:4rem;line-height:.6;color:var(--accent);margin-bottom:var(--s-4)}
body.eds2 .testimonial figcaption{margin-top:var(--s-6);display:flex;gap:var(--s-4);align-items:center;flex-wrap:wrap}

/* CTA band */
body.eds2 .cta-band{padding-block:var(--s-11)}
body.eds2 .cta-band .inner{display:grid;grid-template-columns:7fr 5fr;gap:var(--s-8);align-items:end}
body.eds2 .cta-band h2{font-size:var(--t-h1);max-width:14ch}
body.eds2 .next-steps{list-style:none;padding:0;margin:0;counter-reset:step;border-top:1px solid var(--c-ink-900)}
body.eds2 .next-steps li{counter-increment:step;display:grid;grid-template-columns:36px 1fr;padding:var(--s-3) 0;border-bottom:1px solid rgba(18,22,28,.2);font-size:.9375rem}
body.eds2 .next-steps li::before{content:"0" counter(step);font:500 12px/1.6 var(--font-mono)}
body.eds2 .cta-alt{display:flex;flex-wrap:wrap;gap:var(--s-5);margin-top:var(--s-5);font-size:.9375rem}
body.eds2 .cta-alt a{color:var(--c-ink-900);font-weight:600}
@media (max-width:1023px){ body.eds2 .cta-band .inner{grid-template-columns:1fr} }

/* Forms */
body.eds2 .form{display:grid;gap:var(--s-5)}
body.eds2 .form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-5)}
@media (max-width:767px){ body.eds2 .form-row{grid-template-columns:1fr} }
body.eds2 .field{display:grid;gap:6px}
body.eds2 .field label,body.eds2 .field legend,body.eds2 .label{font-weight:600;font-size:.875rem}
body.eds2 .field .opt{font-weight:400;color:var(--text-muted)}
body.eds2 .field .help{font-size:.8125rem;color:var(--text-muted)}
body.eds2 .input,body.eds2 .select,body.eds2 .textarea{width:100%;min-height:52px;padding:12px 14px;background:#fff;border:1.5px solid var(--border-ui);border-radius:var(--radius-1);font-size:1rem;color:var(--c-ink-900)}
body.eds2 .textarea{min-height:140px;resize:vertical;line-height:1.5}
body.eds2 .select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2312161C' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:40px}
body.eds2 .input:focus,body.eds2 .select:focus,body.eds2 .textarea:focus{border-color:var(--c-ink-900);outline:3px solid var(--focus-ring);outline-offset:1px}
body.eds2 .field.has-error .input,body.eds2 .field.has-error .select,body.eds2 .field.has-error .textarea{border-color:var(--c-error)}
body.eds2 .error-msg{display:none;align-items:center;gap:6px;color:var(--c-error);font-size:.8125rem;font-weight:500}
body.eds2 .field.has-error .error-msg{display:flex}
body.eds2 .error-msg::before{content:"!";display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--c-error);color:#fff;font-size:11px;font-weight:700}
body.eds2 fieldset{border:0;margin:0;padding:0;min-width:0}
body.eds2 .segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-3)}
body.eds2 .segmented label{display:block;position:relative;cursor:pointer}
body.eds2 .segmented input{position:absolute;opacity:0;inset:0;cursor:pointer}
body.eds2 .segmented span{display:flex;flex-direction:column;gap:4px;height:100%;min-height:76px;padding:var(--s-4);border:1.5px solid var(--border-ui);background:#fff;border-radius:var(--radius-1);font-weight:600;font-size:.9375rem}
body.eds2 .segmented span small{font-weight:400;color:var(--text-muted);font-size:.8125rem}
body.eds2 .segmented input:checked+span{border-color:var(--c-ink-900);box-shadow:inset 0 0 0 1.5px var(--c-ink-900);background:var(--c-paper)}
body.eds2 .segmented input:focus-visible+span{outline:3px solid var(--focus-ring);outline-offset:2px}
@media (max-width:767px){ body.eds2 .segmented{grid-template-columns:1fr} body.eds2 .segmented span{min-height:0} }
body.eds2 .checks{display:flex;flex-wrap:wrap;gap:var(--s-2)}
body.eds2 .check{position:relative}
body.eds2 .check input{position:absolute;opacity:0;inset:0;cursor:pointer}
body.eds2 .check span{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;border:1.5px solid var(--border-ui);border-radius:var(--radius-pill);background:#fff;font-size:.875rem;cursor:pointer}
body.eds2 .check input:checked+span{background:var(--c-ink-900);color:#fff;border-color:var(--c-ink-900)}
body.eds2 .check input:focus-visible+span{outline:3px solid var(--focus-ring);outline-offset:2px}
body.eds2 .consent{display:grid;grid-template-columns:24px 1fr;gap:var(--s-3);align-items:start;font-size:.875rem}
body.eds2 .consent input{width:22px;height:22px;margin:2px 0 0;accent-color:var(--c-ink-900)}
body.eds2 .form-note{font-size:.8125rem;color:var(--text-muted)}
body.eds2 .form-status{padding:var(--s-4);border-left:3px solid var(--c-success);background:#EAF5EF;font-size:.9375rem}
body.eds2 .form-status[hidden]{display:none}
body.eds2 .form-panel{background:#fff;padding:var(--s-8);border:1px solid var(--border-subtle)}
@media (max-width:767px){ body.eds2 .form-panel{padding:var(--s-6) var(--s-5)} }

/* Filters */
body.eds2 .filters{display:flex;flex-wrap:wrap;gap:var(--s-5) var(--s-8);align-items:flex-start;padding:var(--s-5) 0;border-top:1px solid var(--c-ink-900);border-bottom:1px solid var(--border-subtle)}
body.eds2 .filter-group{display:grid;gap:var(--s-2);min-width:0}
body.eds2 .filter-group .meta{text-transform:uppercase;letter-spacing:.08em}
body.eds2 .chip-row{display:flex;flex-wrap:wrap;gap:6px}
body.eds2 .chip{min-height:40px;padding:6px 14px;border:1.5px solid var(--border-ui);border-radius:var(--radius-pill);background:transparent;font-size:.875rem;cursor:pointer;color:var(--c-ink-900)}
body.eds2 .chip[aria-pressed="true"]{background:var(--c-ink-900);color:#fff;border-color:var(--c-ink-900)}
body.eds2 .chip:hover{border-color:var(--c-ink-900)}
body.eds2 .result-count{font:500 12px/1.5 var(--font-mono);color:var(--text-muted);margin-left:auto;align-self:center}
@media (max-width:767px){ body.eds2 .chip-row{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin} body.eds2 .chip{flex-shrink:0} body.eds2 .result-count{margin-left:0} }
body.eds2 .empty-state{padding:var(--s-9) 0;text-align:left;border-top:1px solid var(--border-subtle)}
body.eds2 .empty-state[hidden]{display:none}

/* Pagination */
body.eds2 .pagination{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:var(--s-8)}
body.eds2 .pagination a,body.eds2 .pagination span{display:inline-grid;place-items:center;min-width:44px;min-height:44px;padding:0 10px;border:1px solid var(--border-subtle);text-decoration:none;color:var(--c-ink-900);font-size:.9375rem}
body.eds2 .pagination [aria-current="page"]{background:var(--c-ink-900);color:#fff;border-color:var(--c-ink-900)}

/* FAQ */
body.eds2 .faq{border-top:1px solid var(--c-ink-900)}
body.eds2 .faq details{border-bottom:1px solid var(--border-subtle)}
body.eds2 .faq summary{display:flex;justify-content:space-between;gap:var(--s-5);align-items:center;min-height:64px;padding:var(--s-4) 0;cursor:pointer;list-style:none;font:500 1.1875rem/1.35 var(--font-display)}
body.eds2 .faq summary::-webkit-details-marker{display:none}
body.eds2 .faq summary::after{content:"+";font:400 1.5rem/1 var(--font-sans);flex-shrink:0;transition:transform var(--dur-base) var(--ease-standard)}
body.eds2 .faq details[open] summary::after{transform:rotate(45deg)}
body.eds2 .faq .answer{padding:0 0 var(--s-5);color:var(--text-secondary);max-width:68ch}

/* Timeline / process */
body.eds2 .process{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(var(--steps,4),1fr);border-top:1px solid var(--c-ink-900)}
body.eds2 .process li{padding:var(--s-5) var(--s-5) 0 0;position:relative}
body.eds2 .process li::before{content:"";position:absolute;top:-5px;left:0;width:9px;height:9px;background:var(--c-ink-900)}
body.eds2 .process .n{font:500 12px/1 var(--font-mono);color:var(--accent);letter-spacing:.08em}
body.eds2 .process h3{font-size:1.125rem;margin:var(--s-3) 0 var(--s-2)}
body.eds2 .process p{font-size:.9375rem;color:var(--text-muted)}
body.eds2 .bg-ink .process{border-top-color:rgba(233,228,220,.3)} body.eds2 .bg-ink .process li::before{background:var(--c-yellow-500)} body.eds2 .bg-ink .process p{color:var(--text-inverse-muted)}
@media (max-width:1023px){ body.eds2 .process{grid-template-columns:1fr 1fr;row-gap:var(--s-6)} }
@media (max-width:767px){ body.eds2 .process{grid-template-columns:1fr;border-top:0;border-left:1px solid var(--c-ink-900);padding-left:var(--s-5);row-gap:var(--s-5)} body.eds2 .process li{padding:0} body.eds2 .process li::before{left:calc(-1*var(--s-5) - 5px);top:2px} }

/* Deliverables list */
body.eds2 .deliverables{columns:2;column-gap:var(--s-8);list-style:none;padding:0;margin:0}
body.eds2 .deliverables li{break-inside:avoid;padding:var(--s-3) 0 var(--s-3) 28px;border-top:1px solid var(--border-subtle);position:relative}
body.eds2 .deliverables li::before{content:"";position:absolute;left:0;top:calc(var(--s-3) + .55em);width:14px;height:1.5px;background:var(--accent)}
@media (max-width:767px){ body.eds2 .deliverables{columns:1} }

/* Pricing */
body.eds2 .pricing{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-5);align-items:stretch}
body.eds2 .tier{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-2);padding:var(--card-pad-compact);display:flex;flex-direction:column;gap:var(--s-4)}
body.eds2 .tier.is-featured{border:2px solid var(--c-ink-900)}
body.eds2 .tier .price{font:500 1.75rem/1.1 var(--font-display)}
body.eds2 .tier .price small{font:500 12px/1 var(--font-mono);color:var(--text-muted);display:block;margin-top:6px}
body.eds2 .tier ul{list-style:none;padding:0;margin:0;font-size:.9375rem;display:grid;gap:6px}
body.eds2 .tier .btn{margin-top:auto}
@media (max-width:1199px){ body.eds2 .pricing{grid-template-columns:repeat(2,1fr)} }
@media (max-width:767px){ body.eds2 .pricing{grid-template-columns:1fr} }

/* Logo wall */
body.eds2 .logo-wall{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid var(--border-subtle);border-left:1px solid var(--border-subtle)}
body.eds2 .logo-wall li{list-style:none;min-height:96px;display:grid;place-items:center;text-align:center;padding:var(--s-4);border-right:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);font:500 .8125rem/1.3 var(--font-sans);color:var(--text-muted)}
body.eds2 .logo-wall li small{display:block;font:500 9.5px/1.3 var(--font-mono);letter-spacing:.06em;color:var(--c-warning);margin-top:4px;text-transform:uppercase}
@media (max-width:1023px){ body.eds2 .logo-wall{grid-template-columns:repeat(3,1fr)} }
@media (max-width:767px){ body.eds2 .logo-wall{grid-template-columns:repeat(2,1fr)} }

/* Diagram (G/R/M system) */
body.eds2 .system-map{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--c-ink-900)}
body.eds2 .system-map .layer{padding:var(--s-7);border-right:1px solid var(--c-ink-900);display:flex;flex-direction:column;gap:var(--s-5);min-height:100%}
body.eds2 .system-map .layer:last-child{border-right:0}
body.eds2 .system-map .layer.dark{background:var(--c-ink-900);color:var(--text-inverse)}
body.eds2 .system-map .layer.dark .muted{color:var(--text-inverse-muted)}
body.eds2 .system-map .layer h3{font:500 1.75rem/1.1 var(--font-display)}
body.eds2 .system-map .groups{display:grid;gap:var(--s-4);margin-top:auto}
body.eds2 .system-map .group{border-top:1px solid currentColor;padding-top:var(--s-3)}
body.eds2 .system-map .group a{font-weight:600;color:inherit;text-decoration:none}
body.eds2 .system-map .group a:hover{text-decoration:underline}
body.eds2 .system-map .group p{font-size:.875rem;margin-top:4px}
body.eds2 .system-flow{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);margin-top:var(--s-5);font:500 11px/1.4 var(--font-mono);letter-spacing:.06em;color:var(--text-muted);text-transform:uppercase}
body.eds2 .system-flow .line{flex:1;height:1px;background:var(--border-strong);position:relative}
body.eds2 .system-flow .line::after{content:"";position:absolute;right:0;top:-3px;border-left:6px solid var(--border-strong);border-top:3.5px solid transparent;border-bottom:3.5px solid transparent}
@media (max-width:1023px){ body.eds2 .system-map{grid-template-columns:1fr} body.eds2 .system-map .layer{border-right:0;border-bottom:1px solid var(--c-ink-900)} body.eds2 .system-map .layer:last-child{border-bottom:0} body.eds2 .system-flow{display:none} }

/* Workflow diagram (AI) */
body.eds2 .workflow{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-3);position:relative}
body.eds2 .wf-node{border:1px solid var(--c-ink-700);background:var(--c-ink-800);padding:var(--s-4);position:relative;min-height:120px}
body.eds2 .wf-node .meta{color:var(--accent-inverse);text-transform:uppercase;letter-spacing:.08em}
body.eds2 .wf-node b{display:block;margin:8px 0 4px;font-weight:600}
body.eds2 .wf-node p{font-size:.8125rem;color:var(--text-inverse-muted)}
body.eds2 .wf-node:not(:last-child)::after{content:"→";position:absolute;right:-14px;top:50%;transform:translateY(-50%);color:var(--c-yellow-500);font-family:var(--font-mono);z-index:1;background:var(--c-ink-900);padding:2px}
@media (max-width:1023px){ body.eds2 .workflow{grid-template-columns:1fr 1fr} body.eds2 .wf-node:nth-child(2)::after{display:none} }
@media (max-width:767px){ body.eds2 .workflow{grid-template-columns:1fr} body.eds2 .wf-node::after{display:none} }

/* Roadmap (IT) */
body.eds2 .roadmap{display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid var(--c-ink-900)}
body.eds2 .roadmap div{padding:var(--s-4) var(--s-4) 0 0}
body.eds2 .roadmap b{font:500 12px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase}
@media (max-width:767px){ body.eds2 .roadmap{grid-template-columns:1fr 1fr;row-gap:var(--s-4)} }

/* Article */
body.eds2 .article-head{padding-block:var(--s-10) var(--s-8)}
body.eds2 .article-head h1{max-width:20ch;margin:var(--s-5) 0}
body.eds2 .byline{display:flex;flex-wrap:wrap;gap:var(--s-4);align-items:center;margin-top:var(--s-6)}
body.eds2 .avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(150deg,var(--ph-a),var(--ph-b));flex-shrink:0}
body.eds2 .article-layout{display:grid;grid-template-columns:220px minmax(0,var(--container-text)) 1fr;gap:var(--s-8);align-items:start}
body.eds2 .toc{position:sticky;top:calc(var(--header-h) + 24px);font-size:.875rem}
body.eds2 .toc ol{list-style:none;padding:0;margin:var(--s-3) 0 0;border-left:1px solid var(--border-subtle)}
body.eds2 .toc a{display:block;padding:6px 0 6px var(--s-4);color:var(--text-muted);text-decoration:none;margin-left:-1px;border-left:2px solid transparent}
body.eds2 .toc a:hover,body.eds2 .toc a[aria-current="true"]{color:var(--c-ink-900);border-left-color:var(--c-ink-900)}
body.eds2 .prose{font-size:1.125rem;line-height:1.75;color:var(--text-secondary)}
body.eds2 .prose>*+*{margin-top:1.25em}
body.eds2 .prose h2{font-size:var(--t-h2);color:var(--c-ink-900);margin-top:1.8em}
body.eds2 .prose h3{color:var(--c-ink-900);margin-top:1.6em}
body.eds2 .prose ul,body.eds2 .prose ol{padding-left:1.2em}
body.eds2 .prose li+li{margin-top:.4em}
body.eds2 .prose figure .ph{aspect-ratio:16/9}
body.eds2 .prose figcaption{margin-top:var(--s-3)}
body.eds2 .prose blockquote{border-left:3px solid var(--accent);padding-left:var(--s-5);font:500 1.375rem/1.4 var(--font-display);color:var(--c-ink-900)}
body.eds2 .service-box{background:var(--c-sand);padding:var(--s-6);display:grid;gap:var(--s-3)}
body.eds2 .service-box .serif{font-size:1.375rem}
@media (max-width:1199px){ body.eds2 .article-layout{grid-template-columns:200px minmax(0,1fr)} body.eds2 .article-aside-empty{display:none} }
@media (max-width:1023px){ body.eds2 .article-layout{grid-template-columns:1fr} body.eds2 .toc{position:static;border:1px solid var(--border-subtle);padding:var(--s-4)} }

/* Product hero */
body.eds2 .product-stage{background:var(--c-ink-900);color:var(--text-inverse);padding-block:var(--s-10) var(--s-9);position:relative;overflow:hidden}
body.eds2 .product-stage::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--product-accent,var(--c-blue-logo))}
body.eds2 .endorse{display:inline-flex;align-items:center;gap:10px;font:500 11px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-inverse-muted)}
body.eds2 .endorse img{width:28px;height:28px}
body.eds2 .product-name{font:500 var(--t-display)/1 var(--font-display);letter-spacing:-.02em;margin:var(--s-5) 0 var(--s-4)}

/* Case study cover */
body.eds2 .cs-cover{padding-top:var(--s-10)}
body.eds2 .cs-cover h1{max-width:20ch;margin:var(--s-5) 0 var(--s-7);font-size:clamp(2.25rem,1.3rem + 3vw,4rem)}
body.eds2 .cs-facts{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--c-ink-900)}
body.eds2 .cs-facts div{padding:var(--s-4) var(--s-4) var(--s-4) 0}
body.eds2 .cs-facts dt{font:500 11px/1.4 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}
body.eds2 .cs-facts dd{margin-top:4px;font-size:.9375rem}
body.eds2 .cs-bleed .ph{aspect-ratio:21/9;min-height:280px}
@media (max-width:767px){ body.eds2 .cs-facts{grid-template-columns:1fr 1fr} body.eds2 .cs-bleed .ph{aspect-ratio:4/3} }
body.eds2 .cs-section{display:grid;grid-template-columns:3fr 9fr;gap:var(--grid-gutter);padding-block:var(--s-9);border-top:1px solid var(--border-subtle)}
body.eds2 .cs-section>.label-col .eyebrow{position:sticky;top:calc(var(--header-h) + 24px)}
body.eds2 .cs-statement{font:500 clamp(1.5rem,1.2rem + 1vw,2rem)/1.3 var(--font-display);color:var(--c-ink-900);max-width:30ch;margin-bottom:var(--s-6)}
body.eds2 .evidence-grid{display:grid;grid-template-columns:2fr 1fr;gap:var(--s-5)}
body.eds2 .evidence-grid .tall{grid-row:span 2}
body.eds2 .outcome-module{border:1px solid var(--border-subtle);background:#fff;padding:var(--card-pad)}
body.eds2 .outcome-list{list-style:none;padding:0;margin:var(--s-5) 0 0;display:grid;gap:0}
body.eds2 .outcome-list li{display:grid;grid-template-columns:28px 1fr;gap:var(--s-3);padding:var(--s-4) 0;border-top:1px solid var(--border-subtle)}
body.eds2 .outcome-list li::before{content:"✓";color:var(--c-success);font-weight:700}
@media (max-width:1023px){ body.eds2 .cs-section{grid-template-columns:1fr;gap:var(--s-4)} body.eds2 .cs-section>.label-col .eyebrow{position:static} }
@media (max-width:767px){ body.eds2 .evidence-grid{grid-template-columns:1fr} body.eds2 .evidence-grid .tall{grid-row:auto} }

/* Jobs */
body.eds2 .job-rows{list-style:none;padding:0;margin:0;border-top:1px solid var(--c-ink-900)}
body.eds2 .job-rows a{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,3fr) minmax(0,2fr) 32px;gap:var(--s-5);align-items:center;padding:var(--s-5) 0;border-bottom:1px solid var(--border-subtle);text-decoration:none;color:inherit}
body.eds2 .job-rows .serif{font-size:1.375rem}
body.eds2 .job-rows a:hover .serif{text-decoration:underline}
@media (max-width:767px){ body.eds2 .job-rows a{grid-template-columns:1fr 24px;gap:6px} body.eds2 .job-rows .meta{grid-column:1} }

/* Search */
body.eds2 .search-hero{padding-block:var(--s-10) var(--s-8)}
body.eds2 .search-box{display:flex;gap:0;border-bottom:2px solid var(--c-ink-900);margin-top:var(--s-6)}
body.eds2 .search-box input{flex:1;min-width:0;border:0;background:transparent;font:500 clamp(1.5rem,1.1rem + 1.6vw,2.5rem)/1.2 var(--font-display);padding:var(--s-4) 0;color:var(--c-ink-900)}
body.eds2 .search-box input:focus{outline:none}
body.eds2 .search-box:focus-within{box-shadow:0 3px 0 0 var(--focus-ring)}
body.eds2 .search-box button{min-width:56px;border:0;background:transparent;cursor:pointer}
body.eds2 .result-group{margin-top:var(--s-8)}
body.eds2 .result-group h2{font:500 var(--t-label)/1.33 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--s-3)}
body.eds2 .result{display:block;padding:var(--s-5) 0;border-top:1px solid var(--border-subtle);text-decoration:none;color:inherit}
body.eds2 .result .serif{font-size:1.375rem;display:block;margin:4px 0}
body.eds2 .result:hover .serif{text-decoration:underline}
body.eds2 .result p{color:var(--text-muted);font-size:.9375rem;max-width:72ch}

/* Footer */
body.eds2 .site-footer{background:var(--c-ink-900);color:var(--text-inverse);padding:var(--s-10) 0 var(--s-6)}
body.eds2 .footer-top{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:var(--s-7)}
body.eds2 .footer-brand img{width:44px;height:44px}
body.eds2 .footer-brand .serif{display:block;font-size:1.5rem;line-height:1.2;margin:var(--s-4) 0 var(--s-3);max-width:16ch}
body.eds2 .footer-brand address{font-style:normal;font-size:.875rem;color:var(--text-inverse-muted);line-height:1.6;margin-top:var(--s-4)}
body.eds2 .site-footer h2{font:500 var(--t-label)/1.33 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent-inverse);margin-bottom:var(--s-4)}
body.eds2 .site-footer ul{list-style:none;padding:0;margin:0}
body.eds2 .site-footer li a{display:inline-block;padding:5px 0;color:var(--text-inverse);text-decoration:none;font-size:.9375rem}
body.eds2 .site-footer li a:hover{text-decoration:underline}
body.eds2 .site-footer a{color:var(--text-inverse)}
body.eds2 .footer-contact{display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-6);margin-top:var(--s-8);padding-top:var(--s-6);border-top:1px solid var(--c-ink-700);font-size:.9375rem}
body.eds2 .footer-contact a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
body.eds2 .footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s-4);margin-top:var(--s-6);padding-top:var(--s-5);border-top:1px solid var(--c-ink-700);font-size:.8125rem;color:var(--text-inverse-muted)}
body.eds2 .footer-bottom nav{display:flex;flex-wrap:wrap;gap:var(--s-5)}
body.eds2 .footer-bottom a{color:var(--text-inverse-muted)}
@media (max-width:1023px){ body.eds2 .footer-top{grid-template-columns:1fr 1fr} body.eds2 .footer-brand{grid-column:1/-1} }
@media (max-width:767px){
  body.eds2 .footer-top{grid-template-columns:1fr;gap:0}
  body.eds2 .footer-col{border-top:1px solid var(--c-ink-700)}
  body.eds2 .footer-col h2{margin:0}
  body.eds2 .footer-col ul[hidden]{display:none}
  body.eds2 .footer-col ul{padding-bottom:var(--s-4)}
  body.eds2 .footer-brand{padding-bottom:var(--s-6)}
}

/* Sticky mobile CTA */
body.eds2 .sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:var(--z-launcher);display:none;gap:var(--s-2);padding:10px var(--page-margin) calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--border-subtle);box-shadow:var(--shadow-float);transform:translateY(110%);transition:transform var(--dur-base) var(--ease-standard)}
body.eds2 .sticky-cta.is-visible{transform:none}
body.eds2 .sticky-cta .btn--primary{flex:1}
@media (max-width:1023px){ body.eds2 .sticky-cta{display:flex} }

/* Proof flags legend & annotations (prototype only) */
body.eds2 .annot{font:500 11px/1.5 var(--font-mono);color:var(--c-blue-600);border-left:2px solid var(--c-blue-600);padding:4px 10px;background:var(--c-info-bg);letter-spacing:.02em}
body.eds2 .annot b{font-weight:600}

/* Reveal (progressive enhancement only) */
html.reveal-ready body.eds2 [data-reveal]{opacity:.001;transform:translateY(var(--reveal-distance));transition:opacity var(--dur-slow) var(--ease-standard),transform var(--dur-slow) var(--ease-standard)}
html.reveal-ready body.eds2 [data-reveal].is-in{opacity:1;transform:none}

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

/* Utility */
body.eds2 .mt-0{margin-top:0}body.eds2 .mt-2{margin-top:var(--s-2)}body.eds2 .mt-3{margin-top:var(--s-3)}body.eds2 .mt-4{margin-top:var(--s-4)}body.eds2 .mt-5{margin-top:var(--s-5)}body.eds2 .mt-6{margin-top:var(--s-6)}body.eds2 .mt-7{margin-top:var(--s-7)}body.eds2 .mt-8{margin-top:var(--s-8)}body.eds2 .mt-9{margin-top:var(--s-9)}
body.eds2 .mb-4{margin-bottom:var(--s-4)}body.eds2 .mb-6{margin-bottom:var(--s-6)}body.eds2 .mb-8{margin-bottom:var(--s-8)}
body.eds2 .text-right{text-align:right}
body.eds2 .hide-mobile{} @media (max-width:767px){ body.eds2 .hide-mobile{display:none!important} }
body.eds2 .show-mobile{display:none} @media (max-width:767px){ body.eds2 .show-mobile{display:block} }

/* ---------- Phase 3 fixes / modifiers ---------- */
body.eds2 .stat--word{font-size:clamp(1.5rem,1.2rem + .8vw,2rem);overflow-wrap:anywhere}
body.eds2 .stats--4{grid-template-columns:repeat(4,1fr)}
@media (max-width:1023px){ body.eds2 .stats--4{grid-template-columns:repeat(2,1fr)} }
body.eds2 .logo-wall--4{grid-template-columns:repeat(4,1fr)}
@media (max-width:767px){ body.eds2 .logo-wall--4{grid-template-columns:repeat(2,1fr)} }
body.eds2 .pricing--3{grid-template-columns:repeat(3,1fr)}
@media (max-width:1023px){ body.eds2 .pricing--3{grid-template-columns:1fr} }

/* QA fix 1: header fit (measured overflow at 1280 / 1024) */
@media (max-width:1439px){ body.eds2 .util-label{display:none} body.eds2 .header-inner{gap:var(--s-4)} }
@media (min-width:1200px) and (max-width:1439px){ body.eds2 .cta-long{display:inline} body.eds2 .cta-short{display:none} }
@media (min-width:1024px) and (max-width:1199px){
  body.eds2 .site-header .container{padding-inline:32px}
  body.eds2 .logo img{height:32px}
  body.eds2 .primary-nav{margin-left:var(--s-2)}
  body.eds2 .nav-link{padding-left:6px;font-size:.875rem}
  body.eds2 .mm-toggle{width:22px}
  body.eds2 .header-inner{gap:var(--s-2)}
}
/* QA fix 2: industry panorama on small screens */
@media (max-width:767px){ body.eds2 .panorama .ph{min-height:0} }
/* QA fix 3: touch targets ≥44px (found by harness) */
body.eds2 .system-map .group a,body.eds2 .footer-bottom a,body.eds2 .cta-alt a,body.eds2 .flow-row.small a{display:inline-flex;align-items:center;min-height:44px}
body.eds2 .proto-banner a{display:inline-flex;align-items:center;min-height:28px;padding:0 6px}
body.eds2 .consent input{width:24px;height:24px}
body.eds2 .consent{grid-template-columns:28px 1fr}
/* QA fix 4: buttons inside mega menus keep their own colours */
body.eds2 .mega a.btn{text-decoration:none}
body.eds2 .mega a.btn--dark{color:#fff} body.eds2 .mega a.btn--primary{color:var(--cta-text)} body.eds2 .mega a.btn--secondary{color:var(--c-ink-900)}
body.eds2 .mega a.btn--secondary:hover{color:#fff}
/* QA fix 5: aspect-ratio + min-height widened placeholders (Work menu thumbnails, panorama) */
body.eds2 .ph{min-height:0}
body.eds2 .hero-home .media .ph{min-height:320px}
@media (max-width:1023px){ body.eds2 .hero-home .media .ph{min-height:0} }
/* QA fix 6: rows on dark keep inverse text colour; compact mobile header CTA */
body.eds2 .bg-ink .svc-rows a,body.eds2 .bg-ink a.mm-product,body.eds2 .bg-ink .insight-card,body.eds2 .bg-ink .work-card{color:inherit}
@media (max-width:767px){ body.eds2 .header-cta.btn--sm{--btn-h:40px;padding:8px 12px;font-size:.875rem} }
/* QA fix 7: outcome list flags wrap inline with text */
body.eds2 .outcome-list li{display:block;position:relative;padding-left:36px}
body.eds2 .outcome-list li::before{position:absolute;left:0;top:var(--s-4)}
/* QA fix 8: footer accordion = heading text + mobile-only toggle; 44px footer links */
body.eds2 .fc-toggle{display:none}
body.eds2 .footer-col h2{position:relative}
@media (max-width:767px){
  body.eds2 .footer-col h2{display:flex;align-items:center;min-height:52px}
  body.eds2 .fc-toggle{display:flex;align-items:center;justify-content:flex-end;position:absolute;inset:0;width:100%;background:none;border:0;color:var(--accent-inverse);cursor:pointer;padding:0}
}
body.eds2 .site-footer li a{display:inline-flex;align-items:center;min-height:40px}
@media (max-width:1023px){ body.eds2 .site-footer li a{min-height:44px} }
/* Page-specific component styles collected from the Phase 3 prototypes */
/* --- about.html --- */
  body.eds2 .year{font:500 clamp(5rem,2rem + 12vw,13rem)/.85 var(--font-display);letter-spacing:-.04em;color:var(--c-ink-900)}
  body.eds2 .year span{color:var(--accent);font-size:.35em;vertical-align:top;margin-left:.1em}
  body.eds2 .timeline{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid var(--c-ink-900)}
  body.eds2 .timeline li{padding:var(--s-4) var(--s-5) 0 0}
  body.eds2 .timeline b{display:block;font:500 1.5rem/1.1 var(--font-display);margin-bottom:6px}
  body.eds2 .team{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--grid-gutter)}
  body.eds2 .team .ph{aspect-ratio:4/5;margin-bottom:var(--s-3)}
  @media (max-width:1023px){ body.eds2 .timeline{grid-template-columns:1fr 1fr;row-gap:var(--s-5)} body.eds2 .team{grid-template-columns:repeat(2,1fr)} }
  @media (max-width:767px){ body.eds2 .timeline{grid-template-columns:1fr} }
/* --- contact.html --- */
  body.eds2 .contact-grid{display:grid;grid-template-columns:5fr 7fr;gap:var(--s-9);align-items:start}
  body.eds2 .channels{list-style:none;padding:0;margin:var(--s-7) 0 0;border-top:1px solid var(--c-ink-900)}
  body.eds2 .channels a,body.eds2 .channels div{display:grid;grid-template-columns:110px 1fr auto;gap:var(--s-4);align-items:center;min-height:64px;padding:var(--s-3) 0;border-bottom:1px solid var(--border-subtle);color:var(--c-ink-900);text-decoration:none}
  body.eds2 .channels a:hover .v{text-decoration:underline}
  body.eds2 .channels .k{font:500 11px/1.4 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}
  body.eds2 .channels .v{font:500 1.1875rem/1.3 var(--font-display)}
  body.eds2 .map-ph{aspect-ratio:16/9;margin-top:var(--s-6)}
  @media (max-width:1023px){ body.eds2 .contact-grid{grid-template-columns:1fr;gap:var(--s-8)} }
  @media (max-width:767px){ body.eds2 .channels a,body.eds2 .channels div{grid-template-columns:1fr auto} body.eds2 .channels .k{grid-column:1/-1} }
/* --- industries.html --- */
  body.eds2 .ind-row{display:grid;grid-template-columns:5fr 7fr;gap:var(--s-8);padding-block:var(--s-9);border-top:1px solid var(--c-ink-900)}
  body.eds2 .ind-row:nth-of-type(even) .ph{order:2}
  body.eds2 .ind-row .ph{aspect-ratio:4/3}
  body.eds2 .ind-row h2{margin:var(--s-3) 0 var(--s-4)}
  body.eds2 .ind-problems{list-style:none;padding:0;margin:var(--s-5) 0;display:grid;gap:0}
  body.eds2 .ind-problems li{padding:var(--s-3) 0;border-top:1px solid var(--border-subtle);display:grid;grid-template-columns:120px 1fr;gap:var(--s-4)}
  body.eds2 .ind-problems b{font:500 11px/1.6 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}
  @media (max-width:1023px){ body.eds2 .ind-row{grid-template-columns:1fr;gap:var(--s-6)} body.eds2 .ind-row:nth-of-type(even) .ph{order:0} }
  @media (max-width:767px){ body.eds2 .ind-problems li{grid-template-columns:1fr;gap:2px} }
/* --- industry-detail.html --- */
  /* Hero: "Sector Panorama" — text never sits on the photo */
  body.eds2 .panorama .ph{aspect-ratio:21/8;min-height:300px}
  body.eds2 .panorama .block{background:var(--c-paper);margin-top:calc(-1 * var(--s-12));position:relative;padding:var(--s-8) var(--s-8) 0 0;max-width:860px}
  body.eds2 .panorama h1{max-width:18ch;margin:var(--s-4) 0 var(--s-5)}
  @media (max-width:1023px){ body.eds2 .panorama .ph{aspect-ratio:4/3;min-height:0} body.eds2 .panorama .block{margin-top:0;padding:var(--s-7) 0 0} }
  body.eds2 .essay{display:grid;grid-template-columns:80px minmax(0,1fr) minmax(0,1fr);gap:var(--s-6);padding-block:var(--s-7);border-top:1px solid var(--border-subtle)}
  body.eds2 .essay .n{font:500 12px/1.6 var(--font-mono);color:var(--accent)}
  body.eds2 .essay h3{font:500 1.625rem/1.2 var(--font-display)}
  body.eds2 .essay .fix{border-left:2px solid var(--c-ink-900);padding-left:var(--s-5)}
  body.eds2 .essay .fix .meta{display:block;margin-bottom:6px}
  @media (max-width:1023px){ body.eds2 .essay{grid-template-columns:48px 1fr} body.eds2 .essay .fix{grid-column:2} }
  @media (max-width:767px){ body.eds2 .essay{grid-template-columns:1fr} body.eds2 .essay .fix{grid-column:auto} }
/* --- insights.html --- */
  body.eds2 .front{display:grid;grid-template-columns:8fr 4fr;gap:var(--s-8);align-items:start}
  body.eds2 .front .lead-story .ph{aspect-ratio:16/9;margin-bottom:var(--s-5)}
  body.eds2 .front .lead-story h2{font-size:clamp(1.875rem,1.3rem + 1.8vw,2.75rem);line-height:1.12;margin:var(--s-3) 0 var(--s-4)}
  body.eds2 .front .lead-story a{color:inherit;text-decoration:none}
  body.eds2 .front .lead-story a:hover h2{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
  body.eds2 .topic-nav{display:flex;gap:var(--s-5);overflow-x:auto;border-bottom:1px solid var(--border-subtle);padding-bottom:2px;scrollbar-width:thin}
  body.eds2 .topic-nav a{white-space:nowrap;display:inline-flex;align-items:center;min-height:44px;color:var(--text-secondary);text-decoration:none;font-size:.9375rem;border-bottom:2px solid transparent}
  body.eds2 .topic-nav a[aria-current="page"],body.eds2 .topic-nav a:hover{color:var(--c-ink-900);border-bottom-color:var(--c-ink-900)}
  body.eds2 .news-strip{display:grid;grid-template-columns:3fr 9fr;gap:var(--grid-gutter);padding-block:var(--s-8);border-top:1px solid var(--c-ink-900)}
  body.eds2 .news-items{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--grid-gutter)}
  @media (max-width:1023px){ body.eds2 .front{grid-template-columns:1fr} body.eds2 .news-strip{grid-template-columns:1fr} body.eds2 .news-items{grid-template-columns:1fr 1fr} }
  @media (max-width:767px){ body.eds2 .news-items{grid-template-columns:1fr} }
/* --- job-detail.html --- */
  body.eds2 .job-aside{position:sticky;top:calc(var(--header-h) + 24px);background:#fff;border:1px solid var(--border-subtle);padding:var(--card-pad-compact);display:grid;gap:var(--s-4)}
  @media (max-width:1023px){ body.eds2 .job-aside{position:static} }
/* --- jobs.html --- */
  body.eds2 .team-wall{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
  body.eds2 .team-wall .ph{aspect-ratio:3/4;min-height:0}
  body.eds2 .team-wall .ph:nth-child(even){margin-top:32px}
  @media (max-width:767px){ body.eds2 .team-wall{grid-template-columns:repeat(3,1fr)} body.eds2 .team-wall .ph:nth-child(n+4){display:none} }
/* --- product-detail.html --- */
  body.eds2 .variant-switch{display:flex;gap:6px;flex-wrap:wrap}
  body.eds2 .variant-switch a{font:500 11px/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;padding:8px 10px;border:1px solid var(--c-ink-700);color:var(--text-inverse-muted);text-decoration:none;min-height:32px;display:inline-flex;align-items:center}
  body.eds2 .feature-trio{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--grid-gutter)}
  body.eds2 .feature-trio h3{margin:var(--s-4) 0 var(--s-2)}
  body.eds2 .feature-trio .product-frame{min-height:180px}
  @media (max-width:1023px){ body.eds2 .feature-trio{grid-template-columns:1fr} }
/* --- products.html --- */
  body.eds2 .product-row{display:grid;grid-template-columns:5fr 7fr;gap:var(--s-8);align-items:center;padding-block:var(--s-9);border-top:1px solid var(--c-ink-700)}
  body.eds2 .product-row .product-name{font-size:clamp(2.25rem,1.6rem + 2vw,3.5rem);margin:var(--s-3) 0}
  @media (max-width:1023px){ body.eds2 .product-row{grid-template-columns:1fr;gap:var(--s-6)} }
/* --- service-detail.html --- */
  /* Page-specific emphasis: SERP visual (service-detail variant "Search") */
  body.eds2 .serp{background:#fff;border:1px solid var(--border-subtle);padding:var(--s-6);font-family:var(--font-sans)}
  body.eds2 .serp-q{display:flex;align-items:center;gap:10px;border:1px solid var(--border-ui);border-radius:var(--radius-pill);padding:10px 16px;font-size:.9375rem;margin-bottom:var(--s-5)}
  body.eds2 .serp-item{padding:var(--s-4) 0;border-top:1px solid var(--border-subtle)}
  body.eds2 .serp-item .u{font-size:.8125rem;color:var(--c-success)}
  body.eds2 .serp-item .t{font-size:1.125rem;color:var(--c-blue-600);margin:2px 0}
  body.eds2 .serp-item p{font-size:.875rem;color:var(--text-muted)}
  body.eds2 .serp-item.is-you{background:var(--c-highlight);margin-inline:calc(-1*var(--s-3));padding-inline:var(--s-3);border-top-color:transparent}
  body.eds2 .problem-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--c-ink-900)}
  body.eds2 .problem-grid div{padding:var(--s-6) var(--s-6) 0 0}
  body.eds2 .problem-grid .serif{font-size:1.375rem;line-height:1.25;display:block;margin:var(--s-3) 0}
  @media (max-width:767px){ body.eds2 .problem-grid{grid-template-columns:1fr} body.eds2 .problem-grid div{padding:var(--s-5) 0;border-bottom:1px solid var(--border-subtle)} }
/* --- work.html --- */
  /* Editorial work index: alternating large + pair rhythm instead of an even grid */
  body.eds2 .work-index{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--s-9) var(--grid-gutter);margin-top:var(--s-8)}
  body.eds2 .work-index>*{grid-column:span 6}
  body.eds2 .work-index>.wide{grid-column:1 / span 8}
  body.eds2 .work-index>.narrow{grid-column:9 / span 4;align-self:end}
  body.eds2 .work-index>.wide .ph{aspect-ratio:16/9}
  body.eds2 .work-index>.narrow .ph{aspect-ratio:4/5}
  @media (max-width:1023px){ body.eds2 .work-index>*,body.eds2 .work-index>.wide,body.eds2 .work-index>.narrow{grid-column:span 6} body.eds2 .work-index>.narrow .ph{aspect-ratio:16/10} }
  @media (max-width:767px){ body.eds2 .work-index{grid-template-columns:1fr;gap:var(--s-8)} body.eds2 .work-index>*,body.eds2 .work-index>.wide,body.eds2 .work-index>.narrow{grid-column:auto} }
/* --- 404.html --- */
body.eds2 </head>
<body data-section="404">
<main id="main">
  <section class="section" data-hero aria-labelledby="h1">
    <div class="container container--wide split" style="align-items:end">
      <div>
        <p class="big404" aria-hidden="true">404</p>
        <p class="eyebrow mt-6">Page not found</p>
        <h1 id="h1" class="mt-4">This page has moved or no longer exists</h1>
        <p class="lead mt-5">We’ve reorganised our website. Search below,body.eds2 or go to one of our main areas.</p>
        <form class="mt-7" action="search.html" role="search" aria-label="Search the site"><div class="search-box" style="margin-top:0"><label for="q404" class="sr-only">Search</label><input id="q404" name="q" type="search" placeholder="Search EDS"><button type="submit" aria-label="Search"><svg width="24" height="24" viewBox="0 0 20 20" aria-hidden="true"><circle cx="8.5" cy="8.5" r="6" fill="none" stroke="currentColor" stroke-width="1.5"/><path d="M13 13l5 5" stroke="currentColor" stroke-width="1.5"/></svg></button></div></form>
      </div>
      <nav aria-labelledby="pop">
        <h2 id="pop" class="eyebrow" style="font-size:var(--t-label)">Popular destinations</h2>
        <ul class="svc-rows mt-4" role="list">
          <li><a href="solutions.html"><span class="n">01</span><span class="t">Digital Marketing</span><span class="go" aria-hidden="true">→</span></a></li>
          <li><a href="#"><span class="n">02</span><span class="t">Websites</span><span class="go" aria-hidden="true">→</span></a></li>
          <li><a href="#"><span class="n">03</span><span class="t">Microsoft 365</span><span class="go" aria-hidden="true">→</span></a></li>
          <li><a href="work.html"><span class="n">04</span><span class="t">Our work</span><span class="go" aria-hidden="true">→</span></a></li>
          <li><a href="contact.html"><span class="n">05</span><span class="t">Contact</span><span class="go" aria-hidden="true">→</span></a></li>
        </ul>
        <a class="btn btn--primary mt-7" href="contact.html?type=health-check">Get a Free Digital Health Check <span class="arrow" aria-hidden="true">→</span></a>
      </nav>
    </div>
  </section>
</main>
<script src="prototype.js"></script>
</body>
</html>
/* =====================================================================
   EDS 2.0 — WordPress / Elementor / Crocoblock integration layer
   (appended after the approved Phase 3 component CSS, then scoped to body.eds2)
   ===================================================================== */

/* Prototype-only elements never render in production */
.proto-banner,body.eds2 .annot{display:none!important}

/* Elementor wrappers: sections are full-bleed; spacing comes from EDS components */
body.eds2 .eds2-main .e-con,body.eds2 .eds2-main .e-con-inner,body.eds2 .site-header .e-con,body.eds2 .site-footer .e-con{padding:0;--padding-top:0;--padding-right:0;--padding-bottom:0;--padding-left:0;--gap:0;--row-gap:0;--column-gap:0;--content-width:100%;max-width:none;margin:0;min-height:0}
body.eds2 .eds2-main .e-con>.e-con-inner{max-width:none}
body.eds2 .elementor-widget:not(:last-child){margin-block-end:0;margin-bottom:0}
body.eds2 .elementor-widget-html,body.eds2 .elementor-widget-html .elementor-widget-container{width:100%}
body.eds2 .elementor-element{--widgets-spacing:0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px}

/* Hello Elementor defaults neutralised inside EDS 2.0 */
body.eds2 .site-main,body.eds2 .page-content{max-width:none;padding:0;margin:0}
body.eds2 .site-header,body.eds2 .site-footer{max-width:none!important;margin-inline:0;width:100%}
body.eds2 a:not(.btn){font-weight:inherit}

/* JetThemeCore header location: sticky must sit on the location wrapper */
body.eds2 .jet-theme-core-location--header-location,body.eds2 [data-elementor-type="jet_header"]{position:sticky;top:0;z-index:var(--z-header)}
body.eds2 .admin-bar .jet-theme-core-location--header-location,body.eds2 .admin-bar [data-elementor-type="jet_header"]{top:32px}
@media (max-width:782px){body.eds2 .admin-bar .jet-theme-core-location--header-location,body.eds2 .admin-bar [data-elementor-type="jet_header"]{top:46px}}
body.eds2 .site-header{position:relative}

/* Main focus target from the skip link */
body.eds2 .eds2-main:focus{outline:none}

/* ---------- Header row: Elementor widget wrappers must not take 100% width ---------- */
body.eds2 .site-header .header-inner{flex-wrap:nowrap;max-width:var(--container-wide,1440px);margin-inline:auto;padding-inline:var(--gutter);position:static}
body.eds2 .site-header .header-inner>.elementor-widget{width:auto;max-width:none;flex:0 0 auto}
body.eds2 .site-header .header-inner>.eds2-primary-nav{flex:1 1 auto;min-width:0;align-self:stretch;position:static}
body.eds2 .site-header .eds2-primary-nav>.elementor-widget-container,body.eds2 .site-header .header-inner>.e-con-inner{position:static}
body.eds2 .site-header .header-inner>.elementor-widget>.elementor-widget-container{width:auto}
body.eds2 .site-header .eds2-drawer-widget{width:100%;height:0}
/* The drawer lives inside the header in JetThemeCore; backdrop-filter would trap position:fixed */
body.eds2 .site-header{backdrop-filter:none;-webkit-backdrop-filter:none}

/* ---------- JetMenu (jet-mega-menu widget) mapped to the approved primary-nav ---------- */
body.eds2 .eds2-primary-nav .jet-mega-menu,body.eds2 .eds2-primary-nav .jet-mega-menu-container,body.eds2 .eds2-primary-nav .jet-mega-menu-list{height:100%;position:static;background:none}
body.eds2 .eds2-primary-nav .jet-mega-menu-toggle{display:none!important}
body.eds2 .eds2-primary-nav .jet-mega-menu-list{display:flex;align-items:stretch;gap:2px;margin:0 0 0 var(--s-4);padding:0;list-style:none;min-height:var(--header-h);flex-wrap:nowrap}
body.eds2 .eds2-primary-nav .jet-mega-menu-item--top-level{display:flex;align-items:center;position:static}
body.eds2 .eds2-primary-nav .jet-mega-menu-item--top-level>.jet-mega-menu-item__inner{display:flex;align-items:center;height:100%;position:relative;padding:0;background:none}
body.eds2 .eds2-primary-nav .jet-mega-menu-item__link--top-level{display:flex;align-items:center;height:100%;padding:0 4px 0 10px;color:var(--c-ink-900);text-decoration:none;font:500 .9375rem/1 var(--font-sans);background:none}
body.eds2 .eds2-primary-nav .jet-mega-menu-item__link--top-level:hover{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:6px}
body.eds2 .eds2-primary-nav .jet-mega-menu-item__label{color:inherit;font:inherit}
body.eds2 .eds2-primary-nav .jet-mega-menu-item__dropdown{display:inline-flex;align-items:center;justify-content:center;width:28px;height:44px;margin:0;padding:0;cursor:pointer;color:var(--c-ink-900);border-radius:var(--radius-1);background:none}
body.eds2 .eds2-primary-nav .jet-mega-menu-item__dropdown svg{width:10px;height:10px;fill:currentColor;transition:transform var(--dur-base) var(--ease-standard)}
body.eds2 .eds2-primary-nav .jet-mega-menu-item--hover .jet-mega-menu-item__dropdown svg{transform:rotate(180deg)}
body.eds2 .eds2-primary-nav .jet-mega-menu-item__dropdown:focus-visible{outline:2px solid var(--focus-ring,#1E6497);outline-offset:-2px}
body.eds2 .eds2-primary-nav .jet-mega-menu-item--hover>.jet-mega-menu-item__inner::after,body.eds2 .eds2-primary-nav .jet-mega-menu-item.current-menu-item>.jet-mega-menu-item__inner::after,body.eds2 .eds2-primary-nav .jet-mega-menu-item.current-menu-ancestor>.jet-mega-menu-item__inner::after{content:"";position:absolute;left:10px;right:8px;bottom:0;height:2px;background:var(--c-ink-900)}
body.eds2 .eds2-primary-nav .jet-mega-menu-item.current-menu-item>.jet-mega-menu-item__inner::after,body.eds2 .eds2-primary-nav .jet-mega-menu-item.current-menu-ancestor>.jet-mega-menu-item__inner::after{background:var(--c-yellow-500);height:3px}

/* Mega container: full header width, directly under the header (positioned against .site-header) */
body.eds2 .eds2-primary-nav .jet-mega-menu-mega-container{position:absolute;left:0!important;right:0;top:100%;width:100%!important;max-width:none;transform:none;margin:0;padding:0;background:none;box-shadow:none;border:0}
body.eds2 .eds2-primary-nav .jet-mega-menu-mega-container__inner{padding:0;background:none;border:0;box-shadow:none}
body.eds2 .mega-panel{background:#fff;border-top:1px solid var(--c-ink-900);box-shadow:var(--shadow-menu);max-height:calc(100vh - var(--header-h) - 24px);overflow:auto;text-align:left}
body.eds2 .mega-panel a{text-decoration:none;color:var(--c-ink-900)}
body.eds2 .mega-panel a:hover{text-decoration:underline}
body.eds2 .mega-panel a.btn{text-decoration:none}
body.eds2 .mega-panel a.btn--dark{color:#fff} body.eds2 .mega-panel a.btn--primary{color:var(--cta-text)} body.eds2 .mega-panel a.btn--secondary{color:var(--c-ink-900)}
body.eds2 .mega-panel a.btn--secondary:hover{color:#fff}
body.eds2 .mega-panel.mm-products{background:var(--c-ink-900);color:var(--text-inverse);border-top-color:var(--c-ink-700)}
body.eds2 .mega-panel.mm-products a{color:var(--text-inverse)}
@media (max-width:1199px){ body.eds2 .mega-panel .mm-media{display:none} body.eds2 .eds2-primary-nav .jet-mega-menu-item__link--top-level{padding-left:7px;font-size:.875rem} body.eds2 .eds2-primary-nav .jet-mega-menu-list{margin-left:var(--s-2)} }
/* Below 1024px the drawer replaces the primary nav */
@media (max-width:1023px){ body.eds2 .site-header .header-inner>.eds2-primary-nav{display:none} body.eds2 .site-header .header-inner>.eds2-utils-widget{margin-left:auto} }

/* Existing "Click to Chat" WhatsApp button (plugin ht-ctc): the EDS 2.0 sticky CTA already
   offers WhatsApp below 1024px, so the duplicate is hidden there and while the drawer is open */
@media (max-width:1023px){ body.eds2 .ht-ctc{display:none!important} }
body.eds2.drawer-open .ht-ctc{display:none!important}

/* ---------- JetFormBuilder enquiry form mapped to the approved form components (Phase 3 .form/.field) ---------- */
body.eds2 .eds2-form .jet-form-builder{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-5);margin:0}
body.eds2 .eds2-form .jet-form-builder>*{grid-column:1/-1}
body.eds2 .eds2-form .jet-form-builder__conditional:not([style*="none"]){display:contents!important}
body.eds2 .eds2-form .jet-form-builder-row{grid-column:1/-1;display:grid;gap:6px;margin:0;padding:0}
body.eds2 .eds2-form .jet-form-builder-row:has(.eds2-half){grid-column:auto}
body.eds2 .eds2-form .jet-form-builder__label{margin:0;padding:0}
body.eds2 .eds2-form .jet-form-builder__label-text{font-weight:600;font-size:.875rem;color:var(--c-ink-900)}
body.eds2 .eds2-form .jet-form-builder__required{color:var(--c-ink-900);font-weight:600}
body.eds2 .eds2-form .jet-form-builder__desc{font-size:.8125rem;color:var(--text-muted);margin:0}
body.eds2 .eds2-form input.jet-form-builder__field:not([type=radio]):not([type=checkbox]),body.eds2 .eds2-form select.jet-form-builder__field,body.eds2 .eds2-form textarea.jet-form-builder__field{width:100%;min-height:52px;padding:12px 14px;background:#fff;border:1.5px solid var(--border-ui);border-radius:var(--radius-1);font:inherit;font-size:1rem;color:var(--c-ink-900);box-shadow:none}
body.eds2 .eds2-form textarea.jet-form-builder__field{min-height:140px;resize:vertical;line-height:1.5}
body.eds2 .eds2-form select.jet-form-builder__field{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2312161C' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:40px}
body.eds2 .eds2-form .jet-form-builder__field:focus{border-color:var(--c-ink-900);outline:3px solid var(--focus-ring);outline-offset:1px}
body.eds2 .eds2-form .jet-form-builder-row.field-has-error .jet-form-builder__field,body.eds2 .eds2-form .jet-form-builder__field[aria-invalid="true"]{border-color:var(--c-error)}
body.eds2 .eds2-form .error-message,body.eds2 .eds2-form .jet-form-builder__field-error{color:var(--c-error);font-size:.8125rem;font-weight:500;margin-top:2px}
/* Enquiry type: segmented cards */
body.eds2 .eds2-form .field-type-radio-field .jet-form-builder__fields-group{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-3)}
body.eds2 .eds2-form .field-type-radio-field .jet-form-builder__field-wrap{margin:0}
body.eds2 .eds2-form .field-type-radio-field .jet-form-builder__field-label{display:block;position:relative;cursor:pointer;margin:0;height:100%}
body.eds2 .eds2-form .field-type-radio-field input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
body.eds2 .eds2-form .field-type-radio-field input+span{display:flex;flex-direction:column;gap:4px;height:100%;min-height:76px;padding:var(--s-4);border:1.5px solid var(--border-ui);background:#fff;border-radius:var(--radius-1);font-weight:600;font-size:.9375rem;line-height:1.3}
body.eds2 .eds2-form .field-type-radio-field input+span small{font-weight:400;color:var(--text-muted);font-size:.8125rem}
body.eds2 .eds2-form .field-type-radio-field input:checked+span{border-color:var(--c-ink-900);box-shadow:inset 0 0 0 1.5px var(--c-ink-900);background:var(--c-paper)}
body.eds2 .eds2-form .field-type-radio-field input:focus-visible+span{outline:3px solid var(--focus-ring);outline-offset:2px}
body.eds2 .eds2-form .field-type-radio-field input::before,body.eds2 .eds2-form .field-type-radio-field input+span::before{display:none}
/* Service interest: pill checks */
body.eds2 .eds2-form .jet-form-builder-row:has(.eds2-checks) .jet-form-builder__fields-group{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--s-2)}
body.eds2 .eds2-form .jet-form-builder-row:has(.eds2-checks) .jet-form-builder__field-wrap{margin:0}
body.eds2 .eds2-form .jet-form-builder-row:has(.eds2-checks) .jet-form-builder__field-label{position:relative;margin:0}
body.eds2 .eds2-form input.eds2-checks{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
body.eds2 .eds2-form input.eds2-checks+span{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;border:1.5px solid var(--border-ui);border-radius:var(--radius-pill);background:#fff;font-size:.875rem;cursor:pointer}
body.eds2 .eds2-form input.eds2-checks:checked+span{background:var(--c-ink-900);color:#fff;border-color:var(--c-ink-900)}
body.eds2 .eds2-form input.eds2-checks:focus-visible+span{outline:3px solid var(--focus-ring);outline-offset:2px}
body.eds2 .eds2-form input.eds2-checks+span::before{display:none}
/* Consent */
body.eds2 .eds2-form .jet-form-builder-row:has(.eds2-consent) .jet-form-builder__field-label{display:grid;grid-template-columns:28px 1fr;gap:var(--s-3);align-items:start;font-size:.875rem;margin:0}
body.eds2 .eds2-form input.eds2-consent{width:24px;height:24px;margin:2px 0 0;accent-color:var(--c-ink-900);position:static;opacity:1}
/* Submit */
body.eds2 .eds2-form .jet-form-builder__action-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:14px 28px;background:var(--c-yellow-500);color:var(--c-ink-900);border:0;border-radius:var(--radius-1);font:600 1.0625rem/1.2 var(--font-sans);cursor:pointer}
body.eds2 .eds2-form .jet-form-builder__action-button:hover{background:var(--c-yellow-600,#E6A700)}
body.eds2 .eds2-form .jet-form-builder__action-button:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}
body.eds2 .eds2-form .jet-form-builder-messages-wrap{grid-column:1/-1}
body.eds2 .eds2-form .jet-form-builder-message{padding:var(--s-4);font-size:.9375rem;border-left:3px solid var(--c-error);background:#FBEDEA}
body.eds2 .eds2-form .jet-form-builder-message--success{border-left-color:var(--c-success);background:#EAF5EF}
@media (max-width:767px){
  body.eds2 .eds2-form .jet-form-builder{grid-template-columns:1fr}
  body.eds2 .eds2-form .field-type-radio-field .jet-form-builder__fields-group{grid-template-columns:1fr}
  body.eds2 .eds2-form .field-type-radio-field input+span{min-height:0}
  body.eds2 .eds2-form .jet-form-builder__action-button{width:100%}
}
/* Grid items must be allowed to shrink below their min-content width (long form labels, selects) */
body.eds2 .contact-grid>*{min-width:0}
body.eds2 .eds2-form .jet-form-builder{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
body.eds2 .eds2-form .field-type-radio-field input+span{align-items:flex-start;text-align:left}
@media (max-width:767px){ body.eds2 .eds2-form .jet-form-builder{grid-template-columns:minmax(0,1fr)} }
/* Long owner-input flags and the long submit label must wrap on small screens */
body.eds2 .flag{white-space:normal;max-width:100%;overflow-wrap:anywhere;height:auto}
body.eds2 .eds2-form .jet-form-builder__action-button-wrapper{max-width:100%}
body.eds2 .eds2-form .jet-form-builder__action-button{white-space:normal;max-width:100%;text-align:center}

/* Elementor containers that carry the .container class keep the approved page margins */
body.eds2 .eds2-main .e-con.container{padding-inline:var(--page-margin);--padding-left:var(--page-margin);--padding-right:var(--page-margin);max-width:calc(var(--container-max) + var(--page-margin)*2);margin-inline:auto}
body.eds2 .eds2-main .e-con.container--wide{max-width:calc(var(--container-wide) + var(--page-margin)*2)}

/* JetSearch ajax search mapped to the approved search box */
body.eds2 .eds2-jetsearch-wrap{padding-block:0 var(--s-9)}
body.eds2 .eds2-jetsearch .jet-ajax-search__field{min-height:56px;border:1.5px solid var(--c-ink-900);border-radius:var(--radius-1);background:#fff;font:inherit;font-size:1.0625rem;padding:12px 16px;color:var(--c-ink-900)}
body.eds2 .eds2-jetsearch .jet-ajax-search__field:focus{outline:3px solid var(--focus-ring);outline-offset:1px}
body.eds2 .eds2-jetsearch .jet-ajax-search__submit{min-height:56px;background:var(--c-ink-900);color:#fff;border-radius:0 var(--radius-1) var(--radius-1) 0;font-weight:600;padding:0 22px}
body.eds2 .eds2-jetsearch .jet-ajax-search__results-area{border:1px solid var(--border-subtle);box-shadow:var(--shadow-menu);border-radius:0}
body.eds2 .eds2-jetsearch .jet-ajax-search__item-title{font-family:var(--font-display);font-size:1.0625rem;color:var(--c-ink-900)}

/* Contrast fix (Phase 3 defect): inverse text inside the dark product stage */
body.eds2 .product-stage .lead{color:var(--text-inverse)}
body.eds2 .product-stage .muted,body.eds2 .product-stage .meta,body.eds2 .product-stage .caption,body.eds2 .product-stage .breadcrumbs,body.eds2 .product-stage .breadcrumbs li,body.eds2 .product-stage .breadcrumbs a{color:var(--text-inverse-muted)}
body.eds2 .product-stage .breadcrumbs [aria-current]{color:var(--text-inverse)}
body.eds2 .product-stage .eyebrow,body.eds2 .product-stage .endorse{color:var(--accent-inverse)}
body.eds2 .product-stage :focus-visible{outline-color:var(--focus-ring-inverse)}
body.eds2 .product-stage .btn--secondary{color:var(--text-inverse);border-color:var(--text-inverse)}
body.eds2 .product-stage .btn--text{color:var(--text-inverse)}

/* Team portraits (About) */
body.eds2 .team img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;margin-bottom:var(--s-3);background:var(--c-sand,#EFE9DF)}
body.eds2 .team b{display:block;font:500 1.1875rem/1.3 var(--font-display);color:var(--c-ink-900)}
body.eds2 .team .meta{margin-top:4px}
/* Cookie consent banner: unscoped, appended to both eds2.css and eds2-chrome.css (works on every page) */
.eds2-consent{position:fixed;left:16px;right:16px;bottom:16px;z-index:1000;max-width:560px;margin-inline:auto;display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center;justify-content:space-between;padding:16px 18px;background:#12161C;color:#F7F4EF;border-radius:4px;box-shadow:0 12px 32px rgba(18,22,28,.28);font:400 .9375rem/1.5 "Instrument Sans",system-ui,sans-serif}
.eds2-consent[hidden]{display:none}
.eds2-consent p{margin:0;flex:1 1 260px;color:#F7F4EF}
.eds2-consent a{color:#FFBA00;text-decoration:underline}
.eds2-consent__btns{display:flex;gap:8px}
.eds2-consent__btn{min-height:44px;padding:10px 18px;border:1.5px solid #F7F4EF;border-radius:4px;background:transparent;color:#F7F4EF;font:600 .9375rem/1 "Instrument Sans",system-ui,sans-serif;cursor:pointer}
.eds2-consent__btn--primary{background:#FFBA00;border-color:#FFBA00;color:#12161C}
.eds2-consent__btn:focus-visible{outline:3px solid #FFBA00;outline-offset:2px}
@media (max-width:1023px){ body.eds2 .eds2-consent{bottom:84px} } /* above the sticky CTA bar */
