/* ============================================================
   MERIDIAN — an Auverant Solutions company
   Shared design system. Inherits the Auverant "Warm Sand" tokens
   so the sub-brand reads as family, not as a separate company.
   ============================================================ */
:root{
  --ink:#E9E3D5;          /* page background — warm sand */
  --ink-raised:#F2EEE3;   /* raised surfaces / cards */
  --ink-line:#CFC6B3;     /* hairlines — warm taupe */
  --porcelain:#242019;    /* primary text — deep warm ink */
  --slate:#635D51;        /* secondary text */
  --gold:#146A5E;         /* THE accent — deep teal */
  --gold-deep:#0C4A42;    /* accent pressed */
  --amber:#A65E24;        /* terracotta — data numerals only */
  --amber-deep:#844A1C;
  --verdigris:#3E6E63;
  --clay:#B0392E;         /* validation error */
  --glow:20,106,94;

  --font-display:"Archivo Expanded","Arial Narrow",system-ui,sans-serif;
  --font-body:"Inter",system-ui,-apple-system,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,monospace;

  --ease:cubic-bezier(0.65,0,0.15,1);
  --ease-out:cubic-bezier(0.16,1,0.3,1);

  --maxw:1280px;
  --margin:64px;
  --nav-h:76px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--nav-h) + 20px)}
body{
  background:var(--ink);
  color:var(--porcelain);
  font-family:var(--font-body);
  font-weight:400;
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
::selection{background:var(--gold);color:var(--ink)}
a{color:inherit;text-decoration:none}
img,svg,canvas{display:block;max-width:100%}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:3px}
.skip{position:absolute;left:16px;top:-70px;z-index:300;background:var(--ink-raised);border:1px solid var(--gold);color:var(--gold);
  font-family:var(--font-mono);font-size:12px;letter-spacing:0.06em;text-transform:uppercase;padding:12px 18px;border-radius:3px;transition:top 200ms var(--ease)}
.skip:focus{top:16px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- Typography ---------- */
.display-xl{font-family:var(--font-display);font-weight:500;font-size:clamp(40px,6.8vw,82px);line-height:1.03;letter-spacing:-0.022em}
.display-l{font-family:var(--font-display);font-weight:500;font-size:clamp(32px,4.4vw,54px);line-height:1.08;letter-spacing:-0.018em}
.display-m{font-family:var(--font-display);font-weight:500;font-size:clamp(25px,2.9vw,34px);line-height:1.2;letter-spacing:-0.015em}
.display-ms{font-family:var(--font-display);font-weight:500;font-size:clamp(20px,2.1vw,26px);line-height:1.18;letter-spacing:-0.012em}
.lead{font-size:clamp(17px,1.55vw,21px);line-height:1.58;color:var(--slate);max-width:54ch}
.caption{font-size:14px;line-height:1.5;color:var(--slate)}
.eyebrow{font-family:var(--font-mono);font-weight:500;font-size:12px;line-height:1.4;letter-spacing:0.08em;text-transform:uppercase;color:var(--gold)}
.eyebrow::before{content:"";display:inline-block;width:18px;height:1px;vertical-align:middle;
  background:linear-gradient(90deg,var(--gold),var(--amber));margin-right:11px;position:relative;top:-2px}
.eyebrow.slate{color:var(--slate)}
.mono{font-family:var(--font-mono);font-weight:400;font-size:13px;letter-spacing:0.02em;color:var(--slate)}
.mono-label{font-family:var(--font-mono);font-weight:500;font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:var(--slate)}
p{max-width:68ch}
h2,h3,h4{font-weight:500}

/* ---------- Layout ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--margin)}
.section{padding:clamp(72px,10vw,132px) 0}
.section-lg{padding:clamp(88px,13vw,168px) 0}
.section-raised{background:var(--ink-raised);border-top:1px solid var(--ink-line);border-bottom:1px solid var(--ink-line)}
.page-head{padding:calc(var(--nav-h) + clamp(56px,9vw,110px)) 0 clamp(30px,5vw,52px)}
.page-head h1{margin-bottom:28px;max-width:17ch}
.page-head .eyebrow{display:inline-flex;margin-bottom:24px}
.head-rule{max-width:320px;margin-bottom:34px}
.idx-head{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;flex-wrap:wrap}
.idx-head h2{max-width:17ch;margin-top:16px}

/* ---------- Meridian (signature line, inherited) ---------- */
.meridian{height:1px;width:100%;background:linear-gradient(90deg,var(--gold) 0%,var(--gold) 55%,var(--amber) 100%);
  transform:scaleX(0);transform-origin:left center}
.meridian.is-drawn{transform:scaleX(1);transition:transform 900ms var(--ease)}

/* ---------- Reveal system ---------- */
.reveal{opacity:0;transform:translateY(16px);transition:opacity 620ms var(--ease),transform 620ms var(--ease)}
.reveal.is-visible{opacity:1;transform:none}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-body);font-weight:500;font-size:15px;letter-spacing:0.01em;
  padding:16px 30px;border-radius:11px;cursor:pointer;border:1px solid transparent;position:relative;overflow:hidden;
  white-space:nowrap;
  transition:background 220ms var(--ease-out),color 220ms var(--ease-out),border-color 220ms var(--ease-out),transform 220ms var(--ease-out),box-shadow 220ms var(--ease-out),filter 220ms var(--ease-out);
}
.btn-outline{border-color:var(--gold);color:var(--gold);background:transparent}
.btn-outline:hover{background:var(--gold);color:#fff}
.btn-outline::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,0.30) 50%,transparent 60%);
  transform:translateX(-120%);opacity:0}
.btn-outline:hover::after{animation:sheen 1400ms var(--ease-out) forwards}
@keyframes sheen{0%{transform:translateX(-120%);opacity:1}100%{transform:translateX(120%);opacity:1}}
.btn-filled{background:linear-gradient(135deg,var(--gold),var(--gold-deep));color:#fff;border-color:var(--gold-deep)}
.btn-filled:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 12px 26px -14px rgba(var(--glow),0.7)}
.btn-quiet{border-color:var(--ink-line);color:var(--porcelain);background:transparent}
.btn-quiet:hover{border-color:var(--porcelain)}
.btn-nav{padding:11px 20px;font-size:14px}

.link{display:inline-flex;align-items:center;gap:8px;font-weight:500;color:var(--porcelain);position:relative;padding-bottom:3px}
.link .arw{transition:transform 200ms var(--ease-out)}
.link::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform 220ms var(--ease)}
.link:hover::after{transform:scaleX(1)}
.link:hover .arw{transform:translate(4px,-4px)}
.link.gold{color:var(--gold)}

/* ---------- Scroll progress indicator ---------- */
.progress{position:fixed;top:0;left:0;height:2px;z-index:140;width:100%;transform:scaleX(0);transform-origin:left;
  background:linear-gradient(90deg,var(--gold),var(--amber));will-change:transform}

/* ---------- Nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;height:var(--nav-h);z-index:100;display:flex;align-items:center;
  border-bottom:1px solid transparent;
  transition:background 300ms var(--ease-out),backdrop-filter 300ms var(--ease-out),box-shadow 300ms var(--ease-out),border-color 300ms var(--ease-out)}
.nav.scrolled{background:rgba(233,227,213,0.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  box-shadow:0 12px 40px -24px rgba(45,38,22,0.28);border-bottom-color:var(--ink-line)}
.nav-inner{max-width:var(--maxw);margin:0 auto;padding:0 var(--margin);width:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:inline-flex;align-items:center;gap:12px}
.brand-mark{width:26px;height:26px;flex:none;color:var(--gold)}
.brand-text{display:flex;flex-direction:column;line-height:1}
.brand-text .word{font-family:var(--font-display);font-weight:600;font-size:18px;letter-spacing:0.01em}
.brand-text .sub{font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.16em;text-transform:uppercase;color:var(--slate);margin-top:5px}
.nav-links{display:flex;align-items:center;gap:30px}
.nav-links a{font-size:15px;color:rgba(36,32,25,0.62);position:relative;padding:8px 0;transition:color 200ms}
.nav-links a::after{content:"";position:absolute;left:0;bottom:2px;height:1px;width:100%;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform 200ms var(--ease)}
.nav-links a:hover,.nav-links a.active{color:var(--porcelain)}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1)}
.nav-right{display:flex;align-items:center;gap:8px}
.hamburger{display:none;flex-direction:column;gap:6px;background:none;border:0;cursor:pointer;padding:10px;margin-right:-10px}
.hamburger span{width:22px;height:1.5px;background:var(--porcelain);transition:transform 250ms var(--ease),opacity 200ms}
.nav-phone{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:12.5px;letter-spacing:0.03em;
  color:var(--slate);padding:10px 14px;border-radius:10px;transition:color 200ms,background 200ms}
.nav-phone svg{width:15px;height:15px;color:var(--gold)}
.nav-phone:hover{color:var(--porcelain);background:rgba(var(--glow),0.06)}
.nav-links .chev{width:13px;height:13px;margin-left:5px;transition:transform 240ms var(--ease);opacity:0.7}
.nav-links a[aria-expanded="true"]{color:var(--porcelain)}
.nav-links a[aria-expanded="true"]::after{transform:scaleX(1)}
.nav-links a[aria-expanded="true"] .chev{transform:rotate(180deg);opacity:1}

/* ---------- Solutions mega panel ---------- */
.mega{position:fixed;left:0;right:0;top:var(--nav-h);z-index:99;background:var(--ink-raised);
  border-top:1px solid var(--ink-line);border-bottom:1px solid var(--ink-line);
  box-shadow:0 34px 60px -44px rgba(45,38,22,0.45);
  max-height:0;overflow:hidden;pointer-events:none;transition:max-height 280ms var(--ease)}
.mega.open{max-height:620px;pointer-events:auto}
.mega-inner{max-width:var(--maxw);margin:0 auto;padding:30px var(--margin) 26px}
.mega-head{display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin-bottom:22px;flex-wrap:wrap}
.mega-head .eyebrow{display:inline-flex}
.mega-head .mono{font-size:12px}
.mega-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--ink-line);
  border:1px solid var(--ink-line);border-radius:14px;overflow:hidden}
.mega-item{background:var(--ink-raised);padding:18px 20px 20px;display:block;position:relative;
  opacity:0;transform:translateY(10px);transition:background 220ms var(--ease-out)}
.mega.open .mega-item{animation:megaUp 400ms var(--ease) forwards}
@keyframes megaUp{to{opacity:1;transform:none}}
.mega-item .mi-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.mega-item .picon{width:34px;height:34px;border-radius:10px}
.mega-item .picon svg{width:17px;height:17px}
.mega-item .idx{font-family:var(--font-mono);font-size:11px;letter-spacing:0.07em;color:var(--slate)}
.mega-item .nm{display:block;font-family:var(--font-display);font-weight:500;font-size:15.5px;letter-spacing:-0.01em;
  line-height:1.25;margin-bottom:7px;transition:color 200ms}
.mega-item .ds{display:block;font-size:12.5px;line-height:1.5;color:var(--slate);max-width:28ch}
.mega-item .pr{display:block;margin-top:11px;font-family:var(--font-mono);font-size:11.5px;letter-spacing:0.03em;color:var(--amber)}
.mega-item::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;
  background:linear-gradient(90deg,var(--gold),var(--amber));transform:scaleX(0);transform-origin:left;transition:transform 260ms var(--ease)}
.mega-item:hover{background:#fff}
.mega-item:hover .nm{color:var(--gold)}
.mega-item:hover .idx{color:var(--gold)}
.mega-item:hover::after{transform:scaleX(1)}
.mega-foot{display:flex;gap:28px;flex-wrap:wrap;padding-top:20px;margin-top:20px;border-top:1px solid var(--ink-line)}
.mega-foot .link{font-size:13.5px}

/* ---------- Mobile menu ---------- */
.mobile-menu{position:fixed;inset:0;z-index:120;background:var(--ink);display:flex;flex-direction:column;
  padding:0;transform:translateY(-100%);transition:transform 380ms var(--ease);visibility:hidden;overflow-y:auto}
.mobile-menu.open{transform:none;visibility:visible}
.mobile-menu::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(600px circle at 80% 8%,rgba(var(--glow),0.12),transparent 60%)}
.m-head{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px 22px}
.m-head .brand{pointer-events:none}
.mobile-close{position:static;background:none;border:1px solid var(--ink-line);border-radius:100px;
  color:var(--slate);font-family:var(--font-mono);font-size:11px;letter-spacing:0.09em;text-transform:uppercase;
  cursor:pointer;padding:9px 15px;transition:color 200ms,border-color 200ms}
.mobile-close:hover{color:var(--gold);border-color:var(--gold)}
.mobile-menu .m-meridian{height:1px;background:linear-gradient(90deg,var(--gold),var(--amber));
  transform:scaleX(0);transform-origin:left;margin:0}
.mobile-menu.open .m-meridian{transform:scaleX(1);transition:transform 700ms var(--ease) 120ms}
.m-nav{position:relative;z-index:1;display:flex;flex-direction:column;flex:1}
.m-nav a{display:grid;grid-template-columns:34px 1fr 20px;align-items:center;gap:14px;
  padding:19px 24px;border-bottom:1px solid var(--ink-line);opacity:0;transform:translateY(12px);
  transition:background 200ms var(--ease-out),padding-left 220ms var(--ease-out)}
.mobile-menu.open .m-nav a{animation:mUp 420ms var(--ease) forwards}
@keyframes mUp{to{opacity:1;transform:none}}
.m-nav a:active,.m-nav a:hover{background:var(--ink-raised);padding-left:32px}
.m-idx{font-family:var(--font-mono);font-size:12px;letter-spacing:0.07em;color:var(--gold)}
.m-body{display:flex;flex-direction:column;gap:4px;min-width:0}
.m-label{font-family:var(--font-display);font-weight:500;font-size:clamp(21px,5.6vw,26px);letter-spacing:-0.012em;line-height:1.1}
.m-desc{font-family:var(--font-mono);font-size:11px;letter-spacing:0.05em;text-transform:uppercase;color:var(--slate)}
.m-arw{color:var(--ink-line);font-size:15px;text-align:right}
.m-nav a:hover .m-arw{color:var(--gold)}
.m-foot{position:relative;z-index:1;padding:26px 24px 30px;display:flex;flex-direction:column;gap:20px}
.m-foot .btn{justify-content:center}
.m-contact{display:flex;flex-direction:column;gap:9px;font-size:14px}
.m-contact a{color:var(--slate)}
.m-contact a:hover{color:var(--porcelain)}
.m-contact .mono{font-size:11.5px}

/* ---------- Back to top ---------- */
.to-top{position:fixed;right:26px;bottom:26px;z-index:110;width:46px;height:46px;border-radius:14px;
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;
  background:var(--ink-raised);border:1px solid var(--ink-line);color:var(--gold);
  opacity:0;visibility:hidden;transform:translateY(10px);
  box-shadow:0 12px 32px -20px rgba(60,50,30,0.55);
  transition:opacity 260ms var(--ease-out),transform 260ms var(--ease-out),visibility 260ms,border-color 200ms,background 200ms}
.to-top.show{opacity:1;visibility:visible;transform:none}
.to-top:hover{border-color:rgba(var(--glow),0.45);background:#fff}
.to-top svg{width:18px;height:18px}

/* ---------- Glow card ---------- */
.glow-card{
  position:relative;isolation:isolate;background:var(--ink-raised);
  border:1px solid var(--ink-line);border-radius:18px;
  box-shadow:0 1px 2px rgba(60,50,30,0.05),0 10px 30px -22px rgba(60,50,30,0.22),inset 0 1px 0 rgba(255,255,255,0.5);
  transition:border-color 300ms var(--ease-out),transform 350ms var(--ease-out),box-shadow 350ms var(--ease-out);
}
.glow-card::before{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;pointer-events:none;opacity:0;
  transition:opacity 300ms var(--ease-out);
  background:radial-gradient(360px circle at var(--mx,50%) var(--my,50%),rgba(var(--glow),0.22),transparent 60%)}
.glow-card::after{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;pointer-events:none;opacity:0;
  transition:opacity 300ms var(--ease-out);border:1px solid transparent;
  -webkit-mask:radial-gradient(220px circle at var(--mx,50%) var(--my,50%),#000 0%,transparent 70%);
          mask:radial-gradient(220px circle at var(--mx,50%) var(--my,50%),#000 0%,transparent 70%);
  box-shadow:inset 0 0 0 1px rgba(var(--glow),0.55)}
.glow-card:hover{border-color:rgba(var(--glow),0.42);transform:translateY(-3px);
  box-shadow:0 28px 66px -34px rgba(var(--glow),0.5),inset 0 1px 0 rgba(255,255,255,0.55)}
.glow-card:hover::before,.glow-card:hover::after{opacity:1}

/* ---------- Icon chips ---------- */
.picon{width:46px;height:46px;border-radius:13px;display:inline-flex;align-items:center;justify-content:center;flex:none;
  background:linear-gradient(150deg,rgba(var(--glow),0.15),rgba(166,94,36,0.10));color:var(--gold);
  border:1px solid rgba(var(--glow),0.20);transition:transform 300ms var(--ease-out)}
.picon svg{width:23px;height:23px}
.svc-icon{width:62px;height:62px;border-radius:18px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(150deg,rgba(var(--glow),0.15),rgba(166,94,36,0.10));color:var(--gold);
  border:1px solid rgba(var(--glow),0.20);margin-bottom:24px}
.svc-icon svg{width:30px;height:30px}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;padding-top:var(--nav-h);padding-bottom:30px;overflow:hidden}
#field{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.hero::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(720px circle at 22% 42%,rgba(var(--glow),0.12),transparent 58%)}
.hero .wrap{position:relative;z-index:2;width:100%;margin-top:auto;margin-bottom:auto;padding-top:28px;padding-bottom:28px}
.hero-eyebrow{margin-bottom:28px;opacity:0;display:inline-flex}
.h1-mask{overflow:hidden;display:block}
.h1-mask > span{display:block;transform:translateY(105%)}
.hero h1{margin-bottom:32px}
.hero-meridian{max-width:360px;margin-bottom:38px}
.hero-lead{opacity:0}
.hero-cta{display:flex;gap:16px;margin-top:38px;flex-wrap:wrap;opacity:0}
.hero-strip{position:relative;z-index:2;width:100%;flex:none;opacity:0}
.hero-strip .wrap{display:flex;gap:14px;align-items:baseline;flex-wrap:wrap}
.hero-strip .vals{font-family:var(--font-mono);font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:var(--slate)}
.hero-eyebrow{animation:fadeIn 600ms var(--ease) both}
.h1-mask.l1 > span{animation:lineRise 700ms var(--ease) 150ms both}
.h1-mask.l2 > span{animation:lineRise 700ms var(--ease) 250ms both}
.hero-meridian{animation:drawX 900ms var(--ease) 600ms both}
.hero-lead{animation:fadeIn 700ms var(--ease) 1000ms both}
.hero-cta{animation:fadeIn 700ms var(--ease) 1120ms both}
.hero-strip{animation:fadeIn 700ms var(--ease) 1300ms both}
@keyframes fadeIn{to{opacity:1}}
@keyframes lineRise{to{transform:none}}
@keyframes drawX{to{transform:scaleX(1)}}

@media (max-height:760px) and (min-width:861px){
  .hero{min-height:auto;padding-top:calc(var(--nav-h) + 40px);padding-bottom:44px}
  .hero .wrap{margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0}
  .hero-strip{margin-top:36px}
}

/* ---------- Client logo band ---------- */
.logos{border-top:1px solid var(--ink-line);border-bottom:1px solid var(--ink-line);background:var(--ink-raised);overflow:hidden}
.logos .wrap{padding-top:30px;padding-bottom:30px}
.logos-label{display:block;margin-bottom:22px}
.logo-track{display:flex;gap:56px;align-items:center;width:max-content;animation:marquee 46s linear infinite}
.logos:hover .logo-track{animation-play-state:paused}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.logo-item{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:500;font-size:17px;
  letter-spacing:-0.01em;color:var(--slate);opacity:0.72;white-space:nowrap;transition:opacity 200ms,color 200ms}
.logo-item:hover{opacity:1;color:var(--porcelain)}
.logo-item .dot{width:7px;height:7px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--amber));flex:none}
.logo-fade{position:relative}
.logo-fade::before,.logo-fade::after{content:"";position:absolute;top:0;bottom:0;width:80px;z-index:2;pointer-events:none}
.logo-fade::before{left:0;background:linear-gradient(90deg,var(--ink-raised),transparent)}
.logo-fade::after{right:0;background:linear-gradient(270deg,var(--ink-raised),transparent)}

/* ---------- Stat band ---------- */
.cred .wrap{padding-top:60px;padding-bottom:60px}
.cred-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--ink-line)}
.cred-cell{background:var(--ink-raised);padding:16px 28px 16px 0}
.cred-cell:not(:first-child){padding-left:40px}
.stat-num{font-family:var(--font-display);font-weight:500;font-size:clamp(40px,5vw,64px);line-height:1;color:var(--amber);
  font-variant-numeric:tabular-nums;letter-spacing:-0.02em}
.cred-cell .mono-label{margin-top:14px;display:block}
.cred-cell .stat-note{display:block;margin-top:8px;font-size:13px;color:var(--slate);max-width:26ch}

/* ---------- Service / capability cards ---------- */
.pcard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.pcard-grid.two{grid-template-columns:repeat(2,1fr)}
.pcard-grid.four{grid-template-columns:repeat(4,1fr)}
.pcard{position:relative;display:flex;flex-direction:column;padding:30px 28px 24px;overflow:hidden;min-height:250px}
.pcard .pbar{position:absolute;left:0;top:0;height:3px;width:100%;background:linear-gradient(90deg,var(--gold),var(--amber));
  transform:scaleX(0);transform-origin:left;transition:transform 420ms var(--ease)}
.pcard:hover .pbar{transform:scaleX(1)}
.pcard:hover .picon{transform:translateY(-2px) rotate(-3deg)}
.pcard-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}
.pnum{font-family:var(--font-mono);font-size:12px;letter-spacing:0.08em;color:var(--gold);border:1px solid var(--ink-line);
  border-radius:100px;padding:5px 13px;background:rgba(var(--glow),0.05)}
.pflag{font-family:var(--font-mono);font-size:10px;letter-spacing:0.09em;text-transform:uppercase;color:var(--amber);
  border:1px solid rgba(166,94,36,0.38);border-radius:100px;padding:4px 10px;background:rgba(166,94,36,0.07)}
.pname{font-family:var(--font-display);font-weight:500;font-size:clamp(20px,1.9vw,24px);letter-spacing:-0.015em;line-height:1.14;
  margin-bottom:12px;transition:color 220ms var(--ease-out)}
.pcard:hover .pname{color:var(--gold)}
.pdesc{color:var(--slate);font-size:14.5px;line-height:1.55;margin-bottom:20px;max-width:38ch}
.ptags{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:22px}
.ptag{font-family:var(--font-mono);font-size:11px;letter-spacing:0.03em;color:var(--slate);border:1px solid var(--ink-line);
  border-radius:100px;padding:4px 10px;background:rgba(255,255,255,0.35)}
.pcard-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:18px;border-top:1px solid var(--ink-line)}
.pprice{font-family:var(--font-mono);font-size:12px;letter-spacing:0.03em;color:var(--slate)}
.pprice b{font-family:var(--font-display);font-weight:600;font-size:19px;letter-spacing:-0.01em;color:var(--amber);margin-left:5px}
.pgo{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:var(--gold);white-space:nowrap}
.pgo .arw{transition:transform 200ms var(--ease-out)}
.pcard:hover .pgo .arw{transform:translate(3px,-3px)}

/* ---------- Benefits ---------- */
.benefit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--ink-line);border:1px solid var(--ink-line);border-radius:18px;overflow:hidden}
.benefit{background:var(--ink-raised);padding:32px 30px 34px}
.benefit .bnum{font-family:var(--font-mono);font-size:12px;letter-spacing:0.08em;color:var(--gold);display:block;margin-bottom:18px}
.benefit h3{font-family:var(--font-display);font-size:19px;letter-spacing:-0.01em;margin-bottom:10px;line-height:1.2}
.benefit p{font-size:14.5px;color:var(--slate);line-height:1.6;max-width:34ch}
.benefit .metric{display:block;margin-top:16px;font-family:var(--font-mono);font-size:12px;letter-spacing:0.04em;color:var(--amber)}

/* ---------- Split feature (AI solutions) ---------- */
.split{display:grid;grid-template-columns:minmax(280px,0.9fr) 1.25fr;gap:72px;align-items:start}
.split-left{position:sticky;top:calc(var(--nav-h) + 40px)}
.stack{display:flex;flex-direction:column;gap:1px;background:var(--ink-line);border:1px solid var(--ink-line);border-radius:18px;overflow:hidden}
.stack-row{background:var(--ink-raised);padding:26px 28px;display:grid;grid-template-columns:52px 1fr;gap:18px;align-items:start;
  transition:background 220ms var(--ease-out),padding-left 220ms var(--ease-out)}
.stack-row:hover{background:#fff;padding-left:34px}
.stack-row .pnum{padding:5px 9px;justify-self:start;font-size:11.5px}
.stack-row h3{font-family:var(--font-display);font-size:18.5px;letter-spacing:-0.01em;margin-bottom:8px;transition:color 200ms}
.stack-row:hover h3{color:var(--gold)}
.stack-row p{font-size:14.5px;color:var(--slate);line-height:1.6;max-width:52ch}

/* ---------- Process cards (Discover → Optimise) ---------- */
.process-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.pstep{position:relative;padding:28px 24px 26px;display:flex;flex-direction:column;min-height:224px}
.pstep .step-k{font-family:var(--font-mono);font-size:11.5px;letter-spacing:0.09em;text-transform:uppercase;color:var(--gold);margin-bottom:16px}
.pstep h3{font-family:var(--font-display);font-size:20px;letter-spacing:-0.012em;margin-bottom:10px;transition:color 220ms}
.pstep:hover h3{color:var(--gold)}
.pstep p{font-size:14px;color:var(--slate);line-height:1.58}
.pstep .step-dur{margin-top:auto;padding-top:16px;font-family:var(--font-mono);font-size:11.5px;letter-spacing:0.05em;color:var(--amber)}
.pstep .step-arrow{position:absolute;right:-13px;top:50%;transform:translateY(-50%);z-index:3;color:var(--ink-line);
  background:var(--ink);border-radius:50%;width:26px;height:26px;display:flex;align-items:center;justify-content:center}
.pstep:last-child .step-arrow{display:none}
.pstep .step-arrow svg{width:15px;height:15px}

/* ---------- Timeline (about / how we work) ---------- */
.timeline{position:relative;padding-left:40px}
.spine-track{position:absolute;left:5px;top:6px;bottom:6px;width:1px;background:rgba(36,32,25,0.14)}
.spine{position:absolute;left:5px;top:6px;width:1px;background:linear-gradient(180deg,var(--gold),var(--amber));height:100%;transform:scaleY(0);transform-origin:top}
.node{position:relative;padding-bottom:48px}
.node:last-child{padding-bottom:0}
.node .dot{position:absolute;left:-40px;top:5px;width:11px;height:11px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px rgba(var(--glow),0.12)}
.node .step{font-family:var(--font-mono);font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:var(--gold)}
.node h3{font-family:var(--font-display);font-size:22px;letter-spacing:-0.01em;margin:10px 0;line-height:1.2}
.node p{color:var(--slate);font-size:15.5px;line-height:1.62;max-width:46ch}

/* ---------- Industries ---------- */
.ind-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ind{padding:26px 26px 28px;display:flex;flex-direction:column;gap:12px;min-height:190px}
.ind .ind-top{display:flex;align-items:center;gap:14px}
.ind h3{font-family:var(--font-display);font-size:19px;letter-spacing:-0.012em;transition:color 220ms}
.ind:hover h3{color:var(--gold)}
.ind p{font-size:14px;color:var(--slate);line-height:1.58}
.ind ul{list-style:none;margin-top:auto;padding-top:16px;border-top:1px solid var(--ink-line);display:flex;flex-wrap:wrap;gap:6px}
.ind li{font-family:var(--font-mono);font-size:11px;letter-spacing:0.03em;color:var(--slate);border:1px solid var(--ink-line);border-radius:100px;padding:3px 9px}

/* ---------- Stage detail rows ---------- */
.node-meta{margin-top:18px;display:flex;flex-direction:column;gap:1px;background:var(--ink-line);
  border:1px solid var(--ink-line);border-radius:12px;overflow:hidden;max-width:52ch}
.nm-row{background:var(--ink-raised);padding:13px 16px;display:grid;grid-template-columns:96px 1fr;gap:14px;align-items:start}
.nm-k{font-family:var(--font-mono);font-size:10.5px;letter-spacing:0.09em;text-transform:uppercase;color:var(--gold);padding-top:2px}
.nm-v{font-size:14px;line-height:1.5;color:var(--slate)}
@media (max-width:560px){ .nm-row{grid-template-columns:1fr;gap:6px} }

/* ---------- Pricing tiers ---------- */
.tier-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch}
.tier{display:flex;flex-direction:column;padding:34px 32px 32px;position:relative;overflow:hidden}
.tier.featured{border-color:#0A3F39;color:#F2EFE6;
  background:linear-gradient(155deg,#187466 0%,#0F5449 55%,#0A3F39 100%);
  box-shadow:0 40px 84px -46px rgba(10,63,57,0.8),inset 0 1px 0 rgba(255,255,255,0.12)}
.tier.featured::before{background:radial-gradient(420px circle at 88% 4%,rgba(196,116,52,0.30),transparent 62%);opacity:1}
.tier.featured::after{display:none}
.tier.featured:hover{border-color:#0A3F39;box-shadow:0 46px 92px -46px rgba(10,63,57,0.85),inset 0 1px 0 rgba(255,255,255,0.14)}
.tier.featured .tier-name{color:#FFFFFF}
.tier.featured .tier-for{color:rgba(242,239,230,0.72)}
.tier.featured .tier-price{color:#F3C79E}
.tier.featured .tier-sub{color:rgba(242,239,230,0.62)}
.tier.featured ul{border-top-color:rgba(255,255,255,0.2)}
.tier.featured li{color:#F2EFE6}
.tier.featured li > span:first-child{color:#F3C79E}
.tier.featured .btn-filled{background:#F2EFE6;color:#0A3F39;border-color:#F2EFE6}
.tier.featured .btn-filled:hover{background:#FFFFFF;filter:none;box-shadow:0 14px 30px -16px rgba(0,0,0,0.5)}
.tier.featured .tier-flag{background:rgba(255,255,255,0.18);color:#FFFFFF}
.tier-flag{position:absolute;top:0;right:0;font-family:var(--font-mono);font-size:10px;letter-spacing:0.09em;text-transform:uppercase;
  color:#fff;background:linear-gradient(135deg,var(--gold),var(--gold-deep));padding:6px 14px;border-bottom-left-radius:12px}
.tier-name{font-family:var(--font-display);font-weight:500;font-size:23px;letter-spacing:-0.015em;margin-bottom:8px}
.tier-for{font-size:13.5px;color:var(--slate);margin-bottom:24px;max-width:32ch}
.tier-price{font-family:var(--font-display);font-weight:600;font-size:clamp(36px,4vw,48px);letter-spacing:-0.025em;color:var(--amber);
  line-height:1;font-variant-numeric:tabular-nums}
.tier-price .cur{font-size:0.6em;vertical-align:0.28em;margin-right:2px}
.tier-sub{font-family:var(--font-mono);font-size:11.5px;letter-spacing:0.05em;text-transform:uppercase;color:var(--slate);margin-top:12px;display:block}
.tier ul{list-style:none;margin:26px 0 28px;padding-top:24px;border-top:1px solid var(--ink-line);display:flex;flex-direction:column;gap:13px}
.tier li{display:flex;gap:12px;align-items:flex-start;font-size:14.5px;line-height:1.5;color:var(--porcelain)}
.tier li > span:first-child{width:16px;height:16px;flex:none;margin-top:3px;color:var(--gold);display:block}
.tier li svg{width:16px;height:16px;display:block}
.tier .btn{margin-top:auto;justify-content:center}

/* ---------- FAQ accordion ---------- */
.faq{border-top:1px solid var(--ink-line);max-width:920px}
.faq-item{border-bottom:1px solid var(--ink-line)}
.faq-q{width:100%;background:none;border:0;cursor:pointer;text-align:left;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;
  padding:26px 4px;font-family:var(--font-display);font-weight:500;font-size:clamp(17px,1.8vw,20px);letter-spacing:-0.01em;line-height:1.35;
  color:var(--porcelain);transition:color 200ms}
.faq-q:hover{color:var(--gold)}
.faq-icon{flex:none;width:26px;height:26px;border-radius:50%;border:1px solid var(--ink-line);display:flex;align-items:center;justify-content:center;
  position:relative;margin-top:2px;transition:border-color 220ms,background 220ms,transform 300ms var(--ease)}
.faq-icon::before,.faq-icon::after{content:"";position:absolute;background:var(--gold);transition:transform 280ms var(--ease),opacity 200ms}
.faq-icon::before{width:11px;height:1.5px}
.faq-icon::after{width:1.5px;height:11px}
.faq-item.open .faq-icon{background:var(--gold);border-color:var(--gold);transform:rotate(180deg)}
.faq-item.open .faq-icon::before{background:#fff}
.faq-item.open .faq-icon::after{transform:scaleY(0);opacity:0}
.faq-a{overflow:hidden;height:0;transition:height 320ms var(--ease)}
.faq-a-inner{padding:0 60px 28px 4px}
.faq-a p{font-size:15px;color:var(--slate);line-height:1.68;max-width:64ch}

/* outcome ticks in solution detail lists */
.split ul svg{width:16px;height:16px;display:block}

/* ---------- Contact ---------- */
.contact-split{display:grid;grid-template-columns:1fr 1.05fr;gap:80px;padding-top:calc(var(--nav-h) + clamp(52px,8vw,96px));padding-bottom:clamp(72px,10vw,120px)}
.c-left .eyebrow{display:inline-flex;margin-bottom:24px}
.c-left h1{margin-bottom:24px}
.c-left .lead{max-width:44ch;margin-bottom:38px}
/* deep-teal contact panel — the one solid block of colour on the site */
.c-panel{border-radius:20px;padding:30px 30px 10px;margin-bottom:26px}
.c-panel .cp-mark{position:absolute;right:-34px;bottom:-40px;width:190px;height:190px;
  color:#fff;opacity:0.07;pointer-events:none;z-index:-1}
.c-panel .cp-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:0.1em;text-transform:uppercase;
  color:rgba(242,239,230,0.62);display:block;margin-bottom:16px}
.c-panel .cp-rule{height:1px;width:100%;background:linear-gradient(90deg,rgba(255,255,255,0.55),rgba(214,132,66,0.75));
  transform:scaleX(0);transform-origin:left;margin-bottom:6px}
.c-panel.is-visible .cp-rule,.reveal.is-visible .cp-rule{transform:scaleX(1);transition:transform 800ms var(--ease) 150ms}
.c-direct{display:flex;flex-direction:column}
.c-direct > div{padding:16px 0;border-bottom:1px solid rgba(255,255,255,0.13)}
.c-direct > div:last-child{border-bottom:0}
.c-direct .k{color:rgba(242,239,230,0.55);font-size:10.5px;letter-spacing:0.11em;text-transform:uppercase;
  margin-bottom:6px;display:block}
.c-direct .v,.c-direct a{color:#FFFFFF;font-size:15px;line-height:1.5;display:inline-block;
  transition:color 180ms,border-color 180ms}
.c-direct a{border-bottom:1px solid rgba(255,255,255,0.28);padding-bottom:1px}
.c-direct a:hover{color:#F3C79E;border-bottom-color:#F3C79E}
.c-panel :focus-visible{outline:2px solid #F3C79E;outline-offset:3px}

.c-assure{padding:22px 24px;display:flex;flex-direction:column;gap:10px;max-width:440px}
.c-assure .ca-row{display:flex;gap:12px;align-items:flex-start;font-size:14px;color:var(--slate);line-height:1.5}
.c-assure .ca-row > span:first-child{width:16px;height:16px;flex:none;margin-top:3px;color:var(--gold);display:block}
.c-assure svg{width:16px;height:16px;display:block}
.c-form{display:flex;flex-direction:column}
.field{position:relative;padding-top:22px;margin-bottom:24px}
.field input,.field textarea,.field select{width:100%;background:transparent;border:0;border-bottom:1px solid var(--ink-line);
  color:var(--porcelain);font-family:var(--font-body);font-size:16px;padding:10px 0;outline:none;border-radius:0}
.field textarea{resize:vertical;min-height:96px;line-height:1.55}
.field select{appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--slate) 50%),linear-gradient(135deg,var(--slate) 50%,transparent 50%);
  background-position:calc(100% - 14px) 20px,calc(100% - 8px) 20px;background-size:6px 6px,6px 6px;background-repeat:no-repeat}
.field select option{background:var(--ink-raised);color:var(--porcelain)}
.field label{position:absolute;left:0;top:32px;font-size:16px;color:var(--slate);pointer-events:none;
  transition:transform 200ms var(--ease-out),color 200ms var(--ease-out),font-size 200ms var(--ease-out),letter-spacing 200ms var(--ease-out)}
.field input:focus + label,
.field input:not(:placeholder-shown) + label,
.field textarea:focus + label,
.field textarea:not(:placeholder-shown) + label,
.field.filled label,
.field select:focus + label{transform:translateY(-30px);font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--gold)}
/* selects always show a floated label; the empty option acts as the prompt */
.field select + label{transform:translateY(-30px);font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--slate)}
.field select:focus + label{color:var(--gold)}
.field .field-line{position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform 260ms var(--ease)}
.field input:focus ~ .field-line,.field textarea:focus ~ .field-line,.field select:focus ~ .field-line{transform:scaleX(1)}
.field.error input,.field.error textarea,.field.error select{border-bottom-color:var(--clay)}
.field.error label{color:var(--clay)}
.field-error{display:block;min-height:16px;margin-top:8px;font-size:12.5px;color:var(--clay);opacity:0;transform:translateY(-3px);transition:opacity 200ms,transform 200ms}
.field.error .field-error{opacity:1;transform:none}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}
.c-consent{display:flex;gap:12px;align-items:flex-start;font-size:13.5px;color:var(--slate);line-height:1.55;margin:6px 0 26px}
.c-consent{flex-wrap:wrap}
.c-consent input{width:17px;height:17px;flex:none;margin-top:3px;accent-color:var(--gold)}
.c-consent > span:not(.field-error){flex:1;min-width:220px}
.c-consent .field-error{width:100%;margin-top:4px}
.c-consent.error .field-error{opacity:1;transform:none}
.c-consent.error input{outline:2px solid var(--clay);outline-offset:2px;border-radius:3px}
.c-success{display:none}
.c-success.show{display:block}
.c-success .success-rule{height:1px;background:linear-gradient(90deg,var(--gold),var(--amber));width:100%;transform:scaleX(0);transform-origin:left;margin-bottom:32px}
.c-success.show .success-rule{transform:scaleX(1);transition:transform 800ms var(--ease) 80ms}
.c-success h2{margin-bottom:14px}
.c-success p{color:var(--slate);max-width:42ch}


/* ============================================================
   TEAL PANEL — the site's one solid block of colour, reused at
   each moment of commitment (CTA, chosen tier, the promise)
   ============================================================ */
.teal-panel{position:relative;overflow:hidden;isolation:isolate;color:#F2EFE6;
  background:linear-gradient(155deg,#187466 0%,#0F5449 55%,#0A3F39 100%);
  box-shadow:0 40px 90px -52px rgba(10,63,57,0.8),inset 0 1px 0 rgba(255,255,255,0.12)}
.teal-panel::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(520px circle at 88% 6%,rgba(196,116,52,0.32),transparent 62%)}
.tp-mark{position:absolute;right:-40px;bottom:-56px;width:230px;height:230px;color:#fff;opacity:0.07;pointer-events:none;z-index:-1}
.teal-panel h2,.teal-panel h3{color:#FFFFFF}
.teal-panel .lead,.teal-panel p{color:rgba(242,239,230,0.74)}
.teal-panel .meridian{background:linear-gradient(90deg,rgba(255,255,255,0.75),rgba(214,132,66,0.9))}
.teal-panel .btn-filled{background:#F2EFE6;color:#0A3F39;border-color:#F2EFE6}
.teal-panel .btn-filled:hover{background:#FFFFFF;filter:none;box-shadow:0 14px 30px -16px rgba(0,0,0,0.55)}
.teal-panel .btn-outline{border-color:rgba(255,255,255,0.5);color:#F2EFE6}
.teal-panel .btn-outline:hover{background:rgba(255,255,255,0.12);color:#FFFFFF}
.teal-panel .mono,.teal-panel .c-sub{color:rgba(242,239,230,0.62)}
.teal-panel a.mono:hover{color:#F3C79E}
.teal-panel .eyebrow{color:rgba(242,239,230,0.72)}
.teal-panel .eyebrow::before{background:linear-gradient(90deg,#FFFFFF,#E09A5C)}
.teal-panel :focus-visible{outline:2px solid #F3C79E;outline-offset:3px}

/* closing CTA rendered as the panel */
.cta-panel{border-radius:26px;padding:clamp(46px,6.5vw,80px) clamp(26px,5vw,68px);text-align:center}
.closing .cta-panel .c-meridian{width:min(420px,60%);margin:0 auto 40px}
.closing .cta-panel h2{margin:0 auto 22px}
.closing .cta-panel .lead{margin:0 auto 34px}

/* director quote rendered as the panel */
.quote-panel{border-radius:24px;padding:clamp(36px,5vw,56px) clamp(26px,4vw,54px)}
.quote-panel .display-m{color:#FFFFFF;margin-bottom:28px}
.quote-panel cite{border-left-color:#F3C79E}
.quote-panel .d-name{color:#FFFFFF}
.quote-panel .d-role{color:rgba(242,239,230,0.6)}

@media (max-width:680px){
  .cta-panel{border-radius:20px;padding:44px 22px}
  .quote-panel{border-radius:18px;padding:32px 22px}
  .tp-mark{width:170px;height:170px;right:-34px;bottom:-44px}
}

/* ---------- Closing CTA ---------- */
.closing{position:relative;overflow:hidden;min-height:84svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:var(--ink)}
.closing::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(760px circle at 50% 26%,rgba(var(--glow),0.10),transparent 58%)}
.closing .wrap{position:relative;z-index:1}
.closing .c-meridian{width:min(560px,72vw);margin:0 auto 44px}
.closing h2{max-width:17ch;margin:0 auto 24px}
.closing .lead{margin:0 auto 36px;text-align:center}
.closing .c-cta{display:flex;flex-direction:column;align-items:center;gap:22px}
.closing .c-sub{font-family:var(--font-mono);font-size:12px;letter-spacing:0.06em;color:var(--slate);margin-top:32px;text-transform:uppercase}
.closing.band{min-height:auto;padding:clamp(84px,12vw,148px) 0}
.closing.band h2{max-width:20ch}

/* ---------- Prose (legal pages) ---------- */
.prose{max-width:76ch}
.prose h2{font-family:var(--font-display);font-size:clamp(21px,2.3vw,27px);letter-spacing:-0.015em;margin:52px 0 16px;line-height:1.2}
.prose h3{font-family:var(--font-display);font-size:18px;letter-spacing:-0.01em;margin:32px 0 10px}
.prose p{color:var(--slate);font-size:15.5px;line-height:1.72;margin-bottom:16px}
.prose ul,.prose ol{color:var(--slate);font-size:15.5px;line-height:1.72;margin:0 0 18px 22px;display:flex;flex-direction:column;gap:9px}
.prose li{padding-left:4px}
.prose a{color:var(--gold);border-bottom:1px solid rgba(var(--glow),0.35)}
.prose strong{color:var(--porcelain);font-weight:500}
.prose .updated{font-family:var(--font-mono);font-size:12px;letter-spacing:0.05em;text-transform:uppercase;color:var(--slate)}
.legal-table{width:100%;border-collapse:collapse;margin:20px 0 26px;font-size:14.5px}
.legal-table th,.legal-table td{text-align:left;padding:14px 16px;border:1px solid var(--ink-line);vertical-align:top;color:var(--slate)}
.legal-table th{font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--porcelain);background:var(--ink-raised)}
.toc{background:var(--ink-raised);border:1px solid var(--ink-line);border-radius:14px;padding:24px 28px;margin-bottom:44px}
.toc h2{margin:0 0 14px;font-size:16px}
.toc ol{margin:0 0 0 20px;gap:7px}
.toc a{color:var(--slate);border:0}
.toc a:hover{color:var(--gold)}

/* ---------- Footer ---------- */
footer{position:relative;background:var(--ink);border-top:1px solid var(--gold);overflow:hidden}
.foot-watermark{position:absolute;left:0;right:0;bottom:-10px;text-align:center;font-family:var(--font-display);font-weight:600;
  font-size:clamp(74px,16vw,180px);letter-spacing:0.02em;color:var(--porcelain);opacity:0.055;pointer-events:none;line-height:1;white-space:nowrap}
.foot-inner{position:relative;z-index:2;padding:68px 0 38px}
.foot-tagline{padding-bottom:40px;margin-bottom:40px;border-bottom:1px solid var(--ink-line)}
.foot-tagline .ft-line{font-family:var(--font-display);font-weight:500;font-size:clamp(21px,2.9vw,32px);letter-spacing:-0.015em;max-width:22ch;margin-bottom:13px}
.foot-tagline .ft-sub{font-size:12px;letter-spacing:0.04em;color:var(--slate)}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:44px;padding-bottom:56px}
.foot-col h4{font-family:var(--font-mono);font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--gold);margin-bottom:20px;font-weight:500}
.foot-col ul{list-style:none;display:flex;flex-direction:column;gap:11px}
.foot-col li a{font-size:14.5px;color:var(--slate);transition:color 180ms;display:inline-flex;gap:10px}
.foot-col li a:hover{color:var(--porcelain)}
.foot-col li .fn{font-family:var(--font-mono);font-size:12px;color:rgba(99,93,81,0.6)}
.foot-office{display:flex;flex-direction:column;gap:12px}
.foot-office .loc{font-family:var(--font-mono);font-size:12.5px;letter-spacing:0.05em;color:var(--porcelain);line-height:1.7}
.foot-office a{font-size:14.5px;color:var(--slate)}
.foot-office a:hover{color:var(--porcelain)}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:28px;border-top:1px solid var(--ink-line);flex-wrap:wrap}
.foot-bottom .mono{font-size:12px;color:var(--slate)}
.foot-parent{display:inline-flex;align-items:center;gap:9px;color:var(--slate)}
.foot-parent b{color:var(--porcelain);font-weight:500}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1180px){
  .process-grid{grid-template-columns:repeat(3,1fr)}
  .pstep .step-arrow{display:none}
}
@media (max-width:1180px){
  .nav-phone span{display:none}
  .nav-phone{padding:10px}
}
@media (max-width:1080px){
  :root{--margin:40px}
  .mega-grid{grid-template-columns:repeat(2,1fr)}
  .pcard-grid,.pcard-grid.four{grid-template-columns:repeat(2,1fr)}
  .benefit-grid{grid-template-columns:repeat(2,1fr)}
  .ind-grid{grid-template-columns:repeat(2,1fr)}
  .tier-grid{grid-template-columns:1fr;max-width:640px}
  .split{grid-template-columns:1fr;gap:40px}
  .split-left{position:static}
  .foot-grid{grid-template-columns:1fr 1fr;gap:36px 28px}
}
@media (max-width:860px){
  .nav-links,.nav .btn-outline,.nav .btn-filled,.nav-phone{display:none}
  .hamburger{display:flex}
  .mega{display:none}
  .hero{min-height:auto;padding-top:calc(var(--nav-h) + 42px);padding-bottom:52px}
  .hero .wrap{margin-top:0;margin-bottom:0;padding-top:0}
  .hero-strip{margin-top:42px}
  .cred-grid{grid-template-columns:1fr 1fr}
  .contact-split{grid-template-columns:1fr;gap:52px}
  .faq-a-inner{padding-right:12px}
}
@media (max-width:680px){
  :root{--margin:22px}
  .pcard-grid,.pcard-grid.two,.pcard-grid.four{grid-template-columns:1fr}
  .benefit-grid{grid-template-columns:1fr}
  .ind-grid{grid-template-columns:1fr}
  .process-grid{grid-template-columns:1fr}
  .cred-grid{grid-template-columns:1fr;gap:0}
  .cred-cell{padding:22px 0 !important;border-bottom:1px solid var(--ink-line)}
  .cred-cell:last-child{border-bottom:0}
  .form-row{grid-template-columns:1fr;gap:0}
  .hero-cta{flex-direction:column;align-items:stretch;gap:12px}
  .hero-cta .btn{width:100%;justify-content:center}
  .foot-grid{grid-template-columns:1fr;gap:32px}
  .stack-row{grid-template-columns:1fr;gap:14px}
  .to-top{right:16px;bottom:16px}
  .logo-fade::before,.logo-fade::after{width:40px}
}

/* ============================================================
   REDUCED MOTION
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:0.001ms !important;animation-delay:0ms !important;animation-iteration-count:1 !important;transition-duration:150ms !important}
  .reveal{opacity:1 !important;transform:none !important}
  .h1-mask > span{transform:none !important}
  .hero-eyebrow,.hero-lead,.hero-cta,.hero-strip{opacity:1 !important}
  .meridian,.hero-meridian,.c-meridian,.m-meridian{transform:scaleX(1) !important}
  .spine{transform:scaleY(1) !important}
  .logo-track{animation:none !important}
  .mega-item{opacity:1 !important;transform:none !important}
  .btn-outline::after{display:none !important}
  .glow-card:hover{transform:none !important}
}

/* ============================================================
   TOUCH TARGETS — comfortable hit areas on small screens
   ============================================================ */
@media (max-width:860px){
  .hamburger{padding:14px;margin-right:-14px}
  .mobile-close{padding:12px 16px}
  /* standalone inline links get a real tap area */
  .idx-head .link,.section .link,.closing .c-cta .mono,.faq + .link{
    min-height:44px;display:inline-flex;align-items:center}
  .m-contact a{min-height:44px;display:inline-flex;align-items:center}
  .c-direct a{min-height:34px;display:inline-flex;align-items:center}
  .c-panel{padding:26px 22px 6px}
  .foot-col li a,.foot-office a{min-height:38px;display:inline-flex;align-items:center}
  /* consent row: bigger box and a label that is comfortable to hit */
  .c-consent{padding:10px 0;cursor:pointer}
  .c-consent input{width:22px;height:22px;margin-top:1px}
  .c-consent > span:not(.field-error){padding:2px 0}
  /* form controls sized so iOS does not zoom on focus */
  .field input,.field textarea,.field select{font-size:16px;padding:12px 0}
  .btn{padding:16px 26px;min-height:50px}
  .ptag{padding:6px 11px}
  .to-top{width:50px;height:50px}
}

/* iOS safe areas (home indicator / notch) and touch polish */
@media (max-width:680px){
  .to-top{right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));width:44px;height:44px}
  .m-foot{padding-bottom:calc(30px + env(safe-area-inset-bottom,0px))}
  .wrap,.nav-inner{padding-left:max(var(--margin),env(safe-area-inset-left));
                   padding-right:max(var(--margin),env(safe-area-inset-right))}
}
a,button{-webkit-tap-highlight-color:rgba(20,106,94,0.12)}

/* ---------- Print ---------- */
@media print{
  .nav,.mobile-menu,.to-top,.progress,footer,.hero canvas{display:none !important}
  body{background:#fff;color:#000}
}
