/* ============================================================================
   THOYZ TRANSIT — shared site styles
   Sampled from the existing .dc.html theme (Home + Company).
   Two families in play: Plus Jakarta Sans (the Home hero), Archivo (deep pages).
   Palette: navy #1F2058, lime #8CC63F (data only), off-white #F6F6F4.
   ========================================================================== */

:root{
  --navy:#1F2058; --navy-deep:#2A2065; --ink:#14151F; --ink-deeper:#0C0D20;
  --lime:#8CC63F; --lime-data:#6DB429; --slate:#5B5D6E; --paper:#F6F6F4;
  --paper-2:#ECECE8; --line:#D4D4CE; --white:#FFFFFF;
  --rail:clamp(52px,7.2vw,92px); --gut:clamp(20px,3vw,44px); --max:1520px; --measure:68ch;
  --font:'Plus Jakarta Sans',system-ui,-apple-system,sans-serif;
  --font-ed:'Archivo',system-ui,sans-serif;
  --mono:ui-monospace,Menlo,'SF Mono',monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);overflow-x:clip;
  font-family:var(--font-ed);font-synthesis-weight:none;-webkit-font-smoothing:antialiased;text-wrap:pretty}
h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
img,svg{display:block}
table{border-collapse:collapse}
a{color:var(--navy)} a:hover{color:var(--ink)}
/* Film nav links live inside @layer tzfilm, which unlayered `a` above would override —
   these unlayered rules restore their intended white-on-film colour. */
a.tz-nav__link{color:#fff !important} a.tz-nav__link:hover{color:#fff !important;opacity:1}
/* Drawer CTA is an <a> inside @layer tzfilm; the unlayered `a{color:navy}` above
   would make it navy-on-navy (invisible). Restore white. */
a.tz-drawer__cta{color:#fff !important} a.tz-drawer__cta:hover{color:#fff !important}
::selection{background:var(--navy);color:var(--paper)}

/* ── shared NAV (injected by site.js) ── */
.nv{position:sticky;top:0;z-index:60;background:var(--paper);border-bottom:1px solid var(--line);font-family:var(--font-ed)}
.nv__in{display:flex;align-items:center;height:78px;padding-left:var(--rail);padding-right:clamp(20px,3vw,44px);gap:clamp(16px,2vw,32px)}
.nv__brand{display:flex;align-items:center;gap:11px;text-decoration:none;flex:none}
.nv__brand img{display:block;height:26px;width:auto}
.nv__lockup{display:flex;flex-direction:column;gap:3px}
.nv__wmrow{display:flex;align-items:flex-end;gap:4px}
.nv__wm{font-size:21px;font-weight:600;font-variation-settings:'wdth' 125,'wght' 600;letter-spacing:-0.01em;line-height:.82;color:var(--navy)}
.nv__sq{width:6px;height:6px;background:var(--lime);display:block;margin-bottom:1px}
.nv__tag{display:flex;align-items:center;gap:6px;font-size:8.5px;font-weight:700;letter-spacing:.14em;color:var(--navy);opacity:.72}
.nv__tag i{width:4px;height:4px;background:var(--lime);display:block;flex:none}
@media (max-width:520px){ .nv__tag{display:none} }
.nv__menu{margin-left:auto;display:flex;align-items:center;gap:clamp(14px,2.1vw,30px)}
.nv__item{position:relative;display:block}
.nv__link{display:flex;align-items:center;gap:7px;font-size:15px;font-weight:500;letter-spacing:.005em;color:var(--ink);text-decoration:none;padding:6px 0;cursor:pointer;background:none;border:0;font-family:inherit}
.nv__link .car{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid var(--slate);display:block}
.nv__item.is-active>.nv__link{color:var(--navy)}
.nv__item.is-active>.nv__link::after{content:"";position:absolute;left:0;right:14px;bottom:-2px;height:2px;background:var(--navy)}
.nv__cta{display:block;background:var(--navy);color:#fff;font-size:15px;font-weight:500;text-decoration:none;padding:13px 24px;margin-left:clamp(4px,1vw,14px)}
.nv__cta:hover{background:var(--ink);color:#fff}
/* dropdown — floating elevated card anchored under the item. */
.nv__drop{position:absolute;left:50%;transform:translateX(-50%) translateY(6px);top:calc(100% + 18px);
  background:var(--white);border:1px solid var(--line);border-radius:16px;padding:10px;display:none;
  min-width:560px;box-shadow:0 1px 0 rgba(20,21,31,.02),0 18px 44px -12px rgba(20,21,31,.22);
  opacity:0;transition:opacity .18s ease, transform .18s ease;z-index:72}
.nv__drop::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;border-radius:16px 16px 0 0;
  background:linear-gradient(90deg,var(--navy),var(--lime))}
/* Desktop-only hover behaviour. A hover-bridge (::after) fills the gap between the
   link and the card so the cursor never crosses dead space, and the card stays open
   while the item OR the card is hovered. Scoped to wide screens with a real pointer,
   so a tap on a phone can never trigger the absolute-positioned desktop dropdown. */
@media (min-width:1081px){
  .nv__item[data-drop]::after{content:"";position:absolute;left:-24px;right:-24px;top:100%;height:26px;display:none;z-index:71}
  .nv__item[data-drop]:hover::after,.nv__item.open::after{display:block}
  .nv__item[data-drop]:hover .nv__drop,.nv__item.open .nv__drop,.nv__drop:hover{display:block;opacity:1;transform:translateX(-50%) translateY(0)}
}
.nv__dropgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:4px}
.nv__da{position:relative;background:transparent;padding:15px 18px;text-decoration:none;display:block;border-radius:11px;transition:background .15s ease}
.nv__da:hover{background:var(--paper)}
.nv__da b{display:flex;align-items:center;gap:7px;font-size:15.5px;font-weight:600;color:var(--navy);margin-bottom:5px}
.nv__da b::after{content:"→";font-size:13px;color:var(--lime-data);opacity:0;transform:translateX(-4px);transition:opacity .15s ease, transform .15s ease}
.nv__da:hover b::after{opacity:1;transform:translateX(0)}
.nv__da span{display:block;font-size:13px;line-height:1.5;color:var(--slate)}
.nv__burger{display:none;margin-left:auto;background:none;border:0;cursor:pointer;padding:10px;flex-direction:column;gap:5px}
.nv__burger span{width:24px;height:2px;background:var(--navy);display:block}
@media (max-width:1080px){
  .nv__menu{display:none}
  .nv__burger{display:flex}
  .nv__menu.is-open{display:flex;position:fixed;left:0;right:0;top:78px;bottom:0;height:calc(100dvh - 78px);
    overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
    flex-direction:column;align-items:stretch;z-index:70;
    background:var(--paper);border-bottom:1px solid var(--line);padding:12px var(--rail) 48px;gap:2px;margin:0}
  .nv__menu.is-open .nv__item{border-bottom:1px solid var(--line)}
  .nv__menu.is-open .nv__link{padding:16px 0}
  .nv__menu.is-open .nv__drop{position:static;transform:none;display:block;padding:0 0 12px;border:0;border-radius:0;box-shadow:none;min-width:0;opacity:1;background:transparent}
  .nv__menu.is-open .nv__drop::before{display:none}
  .nv__menu.is-open .nv__dropgrid{margin:0;grid-template-columns:1fr;gap:2px}
  .nv__menu.is-open .nv__cta{text-align:center;margin:12px 0 0}
}

/* ── page header block (deep pages) — left rail with hairline + dots ── */
.ph{position:relative;padding:clamp(40px,4.4vw,64px) var(--gut) clamp(34px,3.6vw,54px) var(--rail)}
.rail-line{position:absolute;left:calc(var(--rail)/2);top:0;bottom:0;width:1px;background:var(--navy);display:block}
.rail-dot{position:absolute;left:calc(var(--rail)/2 - 3px);width:7px;height:7px;background:var(--navy);display:block}
.crumb{margin-bottom:clamp(26px,3vw,42px)}
.crumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;color:var(--slate)}
.crumb a{color:var(--slate);text-decoration:none} .crumb a:hover{color:var(--navy)}
.crumb .sep{color:var(--line)} .crumb [aria-current]{color:var(--ink)}
.ph h1{font-size:clamp(42px,5.6vw,74px);font-variation-settings:'wdth' 125,'wght' 600;font-weight:600;letter-spacing:-.022em;line-height:.95;color:var(--navy);max-width:18ch;margin:0 0 clamp(22px,2.2vw,30px)}
.ph .stand{font-size:clamp(18px,1.35vw,21px);line-height:1.55;color:var(--slate);max-width:60ch;margin:0}

/* editorial content sections */
.wrap{position:relative}
.sec{position:relative;padding:clamp(48px,5vw,80px) var(--gut) clamp(48px,5vw,80px) var(--rail);max-width:var(--max)}
.sec--split{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(28px,3.6vw,64px)}
.sec--border{border-top:1px solid var(--line)}
.sec h2{font-size:clamp(31px,3.4vw,45px);font-variation-settings:'wdth' 118,'wght' 500;font-weight:500;letter-spacing:-.015em;line-height:1.04;color:var(--navy);max-width:14ch;margin:0}
.sec .body{max-width:var(--measure)}
.sec .body p{font-size:clamp(17px,1.2vw,19px);line-height:1.6;margin:0 0 20px}
.sec .body p:last-child{margin-bottom:0}
.sec .body a,.sec h2 a{color:var(--navy);text-decoration:none;border-bottom:1px solid var(--navy)}
.lede{font-size:clamp(19px,1.5vw,23px);line-height:1.5;color:var(--ink);max-width:var(--measure)}

/* callout with navy left border ("the honest paragraph") */
.callout{border-left:3px solid var(--navy);padding:clamp(6px,1vw,10px) 0 clamp(6px,1vw,10px) clamp(22px,2.4vw,38px);max-width:78ch}
.callout h2{margin:0 0 20px;font-size:clamp(26px,2.6vw,34px)}
.callout p{font-size:clamp(17px,1.2vw,19px);line-height:1.6;margin:0 0 18px;max-width:var(--measure)}
.callout p:last-child{margin-bottom:0}

/* data table */
.tbl{width:100%;max-width:960px;border-collapse:collapse;font-variant-numeric:tabular-nums}
.tbl caption{text-align:left;font-size:13.5px;color:var(--slate);padding-bottom:14px}
.tbl thead tr{border-top:2px solid var(--navy);border-bottom:1px solid var(--line)}
.tbl th[scope=col]{text-align:left;font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--navy);padding:12px 20px 12px 0}
.tbl tbody tr{border-bottom:1px solid var(--line)}
.tbl th[scope=row]{text-align:left;font-size:16px;font-weight:500;color:var(--ink);padding:16px 20px 16px 0;vertical-align:top}
.tbl td{font-size:16px;line-height:1.55;color:var(--ink);padding:16px 0;vertical-align:top}
.tbl a{color:var(--navy);border-bottom:1px solid var(--navy);text-decoration:none}
.slot{font-family:var(--mono);font-size:12px;color:var(--slate)}

/* three-column hairline grid (no cards) */
.cols3{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1px;background:var(--line)}
.cols3>div{background:var(--paper);padding:26px clamp(20px,2.2vw,34px) 8px 0}
.cols3>div+div{padding-left:clamp(20px,2.2vw,34px)}
.cols3 h3{font-size:19px;font-weight:600;letter-spacing:-.01em;color:var(--navy);margin:0 0 10px}
.cols3 p{font-size:16px;line-height:1.6;color:var(--ink);margin:0;max-width:40ch}

/* band on paper-2 */
.band-2{background:var(--paper-2);border-top:1px solid var(--line);width:100%}
.band-2 .sec{max-width:var(--max)}

/* full-bleed image slot (placeholder look, matches dc source) */
.imgslot{margin:0;width:100%;position:relative}
.imgslot .box{width:100%;background-color:var(--paper-2);background-image:repeating-linear-gradient(135deg,#E3E3DE 0 12px,#ECECE8 12px 24px);display:flex;align-items:center;justify-content:center}
.imgslot .tag{font-family:var(--mono);font-size:12.5px;letter-spacing:.04em;color:var(--slate);background:var(--paper);border:1px solid var(--line);padding:10px 16px;text-align:center;line-height:1.7}
.imgslot img{width:100%;height:auto;display:block}

/* navy close band */
.close{position:relative;background:var(--navy);color:#fff;padding:clamp(56px,6vw,96px) var(--gut) clamp(56px,6vw,96px) var(--rail)}
.close .rail-line{background:rgba(255,255,255,.32)}
.close__in{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:clamp(26px,3vw,48px);max-width:var(--max)}
.close h2{font-size:clamp(31px,3.6vw,48px);font-variation-settings:'wdth' 118,'wght' 500;font-weight:500;letter-spacing:-.018em;line-height:1.04;color:#fff;max-width:17ch;margin:0}
.close a.btn{background:#fff;color:var(--navy);font-size:16px;font-weight:500;text-decoration:none;padding:16px 30px;flex:none}
.close a.btn:hover{background:var(--paper-2)}

/* buttons / chips */
.btn-navy{display:inline-flex;align-items:center;gap:12px;background:var(--navy);color:#fff;font-size:14.5px;font-weight:500;text-decoration:none;padding:6px 6px 6px 22px;border-radius:999px}
.btn-navy:hover{background:var(--ink);color:#fff}
.btn-navy .arr{width:34px;height:34px;border-radius:50%;background:#fff;color:var(--navy);display:flex;align-items:center;justify-content:center;font-size:15px}
.chip{display:inline-flex;align-items:center;font-size:11.5px;font-weight:700;padding:6px 11px;border-radius:999px;letter-spacing:.02em}
.chip--on{background:var(--navy);color:#fff}
.chip--ready{background:rgba(31,32,88,.08);color:var(--navy)}

/* FAQ (details/summary) */
.faq{display:flex;flex-direction:column;gap:10px;max-width:900px}
.faq details{background:var(--white);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.faq summary{list-style:none;cursor:pointer;padding:20px 24px;font-size:16.5px;font-weight:600;color:var(--ink);display:flex;justify-content:space-between;align-items:center;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:20px;color:var(--navy);flex:none}
.faq details[open] summary::after{content:"\2212"}
.faq details p{padding:0 24px 22px;font-size:15.5px;line-height:1.65;color:var(--slate);max-width:64ch}

/* utility bar (home) */
.util{max-width:var(--max);margin:0 auto;padding:12px var(--gut) 0;display:flex;flex-wrap:wrap;gap:8px 26px;align-items:center;font-size:13px;color:var(--slate)}
.util a{color:var(--slate);text-decoration:none} .util a:hover{color:var(--navy)}
.dotmark{width:6px;height:6px;border-radius:50%;background:var(--navy);display:inline-block}

/* footer (injected) */
.ft{background:var(--paper);border-top:1px solid var(--line);font-family:var(--font-ed);color:var(--ink)}
.ft__grid{padding:clamp(48px,6vw,80px) clamp(20px,3vw,44px) 40px var(--rail);display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:clamp(28px,3.4vw,56px);max-width:var(--max)}
.ft h2{font-size:12px;font-weight:600;letter-spacing:.06em;color:var(--slate);margin:0 0 18px}
.ft ul{display:flex;flex-direction:column;gap:9px}
.ft a{font-size:14px;color:var(--ink);text-decoration:none} .ft a:hover{color:var(--navy)}
.ft__cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px 22px}
.ft p{font-size:14px;line-height:1.65;color:var(--ink);margin:0 0 14px}
.ft .mono{font-family:var(--mono);font-size:11.5px;letter-spacing:.02em;color:var(--slate)}
.ft__bar{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;padding:20px clamp(20px,3vw,44px) 28px var(--rail);border-top:1px solid var(--line)}
.ft__bar .tag{font-size:12.5px;letter-spacing:.02em;color:var(--slate)}
.ft__bar .cr{margin-left:auto;font-variant-numeric:tabular-nums}

/* generic prose page (legal) */
.prose{max-width:760px;margin:0 auto;padding:clamp(40px,5vw,72px) var(--gut) clamp(56px,7vw,96px)}
.prose h1{font-size:clamp(32px,4vw,52px);font-variation-settings:'wdth' 120,'wght' 600;font-weight:600;letter-spacing:-.02em;color:var(--navy);margin:0 0 24px}
.prose h2{font-size:22px;font-weight:600;color:var(--navy);margin:36px 0 12px}
.prose p,.prose li{font-size:16px;line-height:1.7;color:var(--ink)}
.prose p{margin:0 0 16px} .prose ul{margin:0 0 16px;padding-left:20px;list-style:disc}
.note{background:#FFF6D6;border:1px solid #F0DFA0;border-radius:14px;padding:16px 20px;margin:0 0 28px}
.note b{color:#7A5B00} .note{color:#8A6D2E;font-size:14px;line-height:1.55}

/* ============================================================================
   PREMIUM COMPONENTS v2 — richer, image-forward blocks (deep-page redesign)
   ========================================================================== */

/* — hero band: full-bleed photo with an overlaid headline + optional floating card — */
.hero-b{position:relative;margin:0;padding:0}
.hero-b__media{position:relative;border-radius:0;overflow:hidden;isolation:isolate}
.hero-b__media img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:21/9}
.hero-b__media::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(12,13,32,.82) 0%,rgba(12,13,32,.5) 42%,rgba(12,13,32,.12) 72%,rgba(12,13,32,0) 100%)}
/* overlay content stays aligned to the page rail and capped in width, so the
   image can run edge to edge while the text lines up with everything below it */
.hero-b__in{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:center;
  padding:clamp(28px,4vw,60px) var(--gut) clamp(28px,4vw,60px) var(--rail);max-width:calc(60ch + var(--rail))}
/* MOBILE: the hero height follows its content (long headlines fit, the CTA is never
   clipped) and the image fills whatever height results, behind a readable scrim. */
/* MOBILE: show the WHOLE hero image (never cropped) by letting it keep its natural
   aspect ratio at full width, then place the headline + CTA in a navy band beneath it. */
@media (max-width:760px){
  .hero-b__media{position:relative;display:block;min-height:0;background:var(--navy)}
  .hero-b__media img{position:static;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;display:block;z-index:0}
  .hero-b__media::after{display:none}
  .hero-b__in{position:static;inset:auto;z-index:2;width:100%;max-width:none;justify-content:flex-start;
    background:var(--navy);padding:clamp(22px,6vw,34px) var(--gut) clamp(26px,7vw,40px) var(--rail)}
}
.hero-b__chip{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;font-size:11.5px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:#fff;background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.24);border-radius:999px;padding:7px 14px;margin-bottom:18px;backdrop-filter:blur(6px)}
.hero-b__chip::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--lime);box-shadow:0 0 8px 1px rgba(140,198,63,.7)}
.hero-b h1{font-family:var(--font-ed);font-size:clamp(34px,5vw,64px);font-variation-settings:'wdth' 120,'wght' 600;
  font-weight:600;letter-spacing:-.022em;line-height:.98;color:#fff;margin:0 0 clamp(16px,1.8vw,24px);max-width:16ch}
.hero-b p.stand{font-size:clamp(16px,1.3vw,20px);line-height:1.55;color:rgba(255,255,255,.86);max-width:52ch;margin:0}
.hero-b__cta{display:inline-flex;align-items:center;gap:11px;align-self:flex-start;margin-top:clamp(22px,2.4vw,32px);
  background:var(--lime);color:var(--navy);font-size:15px;font-weight:700;text-decoration:none;padding:7px 8px 7px 22px;border-radius:999px;transition:transform .18s,box-shadow .18s}
.hero-b__cta:hover{transform:translateY(-1px);box-shadow:0 12px 30px rgba(0,0,0,.3);color:var(--navy)}
.hero-b__cta .a{width:32px;height:32px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px}

/* — stat band: big numbers on navy — */
.statband{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.statband__in{max-width:var(--max);margin:0 auto;padding:clamp(40px,4.4vw,64px) var(--gut) clamp(40px,4.4vw,64px) var(--rail);
  display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:clamp(24px,3vw,48px)}
.statband .st{position:relative;padding-left:20px}
.statband .st::before{content:"";position:absolute;left:0;top:5px;bottom:5px;width:3px;border-radius:2px;background:var(--lime)}
.statband .st b{display:block;font-family:var(--font-ed);font-size:clamp(34px,3.6vw,50px);font-variation-settings:'wght' 700;
  font-weight:700;letter-spacing:-.03em;line-height:1;color:#fff;font-variant-numeric:tabular-nums}
.statband .st span{display:block;margin-top:9px;font-size:14px;line-height:1.45;color:rgba(255,255,255,.7);max-width:26ch}

/* — feature grid: icon + title + text cards — */
.feat{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.feat .f{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:clamp(22px,2vw,30px);
  transition:transform .18s,box-shadow .18s,border-color .18s}
.feat .f:hover{transform:translateY(-3px);box-shadow:0 16px 36px -14px rgba(20,21,31,.2);border-color:#C9CAD2}
.feat .f .ic{width:46px;height:46px;border-radius:13px;background:rgba(31,32,88,.07);color:var(--navy);
  display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.feat .f .ic svg{width:23px;height:23px}
.feat .f h3{font-size:18px;font-weight:700;letter-spacing:-.015em;color:var(--navy);margin:0 0 8px}
.feat .f p{font-size:14.5px;line-height:1.6;color:var(--slate);margin:0}
.feat .f a{color:var(--navy);font-weight:600;text-decoration:none;font-size:14px;display:inline-flex;align-items:center;gap:6px;margin-top:12px}
.feat .f a::after{content:"→";color:var(--lime-data)}

/* — alternating media + text row — */
.mediarow{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:clamp(28px,3.4vw,56px);align-items:center;max-width:var(--max)}
.mediarow__img{border-radius:22px;overflow:hidden;border:1px solid var(--line)}
.mediarow__img img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:4/3}
.mediarow--rev .mediarow__img{order:2}
@media (max-width:760px){ .mediarow--rev .mediarow__img{order:0} }
.mediarow h2{font-size:clamp(28px,3vw,42px);font-variation-settings:'wdth' 118,'wght' 500;font-weight:500;letter-spacing:-.018em;line-height:1.05;color:var(--navy);margin:0 0 18px;max-width:15ch}
.mediarow .body p{font-size:16px;line-height:1.62;color:var(--slate);margin:0 0 16px;max-width:52ch}
.mediarow .body p:last-child{margin-bottom:0}

/* — quote / testimonial card — */
.quote{background:var(--white);border:1px solid var(--line);border-radius:20px;padding:clamp(26px,2.6vw,38px);position:relative;max-width:760px}
.quote::before{content:"\201C";position:absolute;top:6px;left:22px;font-family:Georgia,serif;font-size:88px;line-height:1;color:var(--lime);opacity:.35}
.quote p{font-size:clamp(17px,1.5vw,21px);line-height:1.5;color:var(--ink);margin:0 0 20px;position:relative;font-weight:500}
.quote .by{font-size:14px;color:var(--slate)} .quote .by b{color:var(--navy);font-weight:600}

/* — small overline used above section headings — */
.overline{display:flex;align-items:center;gap:10px;font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--lime-data);margin:0 0 14px}
.overline::before{content:"";width:24px;height:2px;background:var(--lime);display:block}

/* rounded image utility */
.rimg{border-radius:20px;overflow:hidden;border:1px solid var(--line);display:block}
.rimg img{width:100%;height:auto;display:block}

/* ============================================================================
   PREMIUM COMPONENTS v3 — carded, layered, reference-grade blocks
   Goal: no more flat prose columns. Every content unit is a contained card,
   sections alternate tint, and there is real depth. Matches logistics refs.
   ========================================================================== */

/* section rhythm — a full-width band with a tint + inner max-width */
.band{width:100%}
.band > .in{max-width:var(--max);margin:0 auto;padding:clamp(52px,6vw,96px) var(--gut) clamp(52px,6vw,96px) var(--rail)}
.band--paper{background:var(--paper)}
.band--soft{background:var(--paper-2)}
.band--white{background:var(--white)}
.band--navy{background:var(--navy);color:#fff}
.band--soft + .band--soft, .band--white + .band--white{border-top:1px solid var(--line)}

/* section head (overline + big heading + optional lede), centered or left */
.shead{max-width:70ch;margin:0 0 clamp(34px,3.6vw,52px)}
.shead .overline{margin-bottom:16px}
.shead h2{font-size:clamp(30px,3.4vw,46px);font-variation-settings:'wdth' 118,'wght' 500;font-weight:500;letter-spacing:-.02em;line-height:1.05;color:var(--navy);margin:0;max-width:20ch}
.band--navy .shead h2{color:#fff}
.shead p{font-size:clamp(16px,1.2vw,18px);line-height:1.6;color:var(--slate);margin:16px 0 0;max-width:58ch}
.band--navy .shead p{color:rgba(255,255,255,.72)}
.shead--split{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(24px,3vw,56px);align-items:end;max-width:var(--max)}
@media (max-width:820px){ .shead--split{grid-template-columns:1fr;align-items:start} }
.shead--split p{margin-top:0}

/* numbered process steps — cards with a big index */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;counter-reset:st}
.steps .s{position:relative;background:var(--white);border:1px solid var(--line);border-radius:18px;padding:clamp(24px,2.2vw,32px);overflow:hidden}
.steps .s::before{counter-increment:st;content:"0" counter(st);position:absolute;top:14px;right:18px;
  font-family:var(--font-ed);font-size:44px;font-weight:800;font-variation-settings:'wght' 800;letter-spacing:-.04em;
  color:var(--paper-2);line-height:1;z-index:0}
.steps .s > *{position:relative;z-index:1}
.steps .s .k{display:inline-flex;width:34px;height:34px;border-radius:10px;background:var(--navy);color:#fff;
  align-items:center;justify-content:center;font-weight:700;font-size:14px;margin-bottom:16px}
.steps .s h3{font-size:17.5px;font-weight:700;letter-spacing:-.015em;color:var(--navy);margin:0 0 8px}
.steps .s p{font-size:14.5px;line-height:1.6;color:var(--slate);margin:0}
.band--navy .steps .s{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.14)}
.band--navy .steps .s::before{color:rgba(255,255,255,.08)}
.band--navy .steps .s h3{color:#fff}
.band--navy .steps .s p{color:rgba(255,255,255,.7)}
.band--navy .steps .s .k{background:var(--lime);color:var(--navy)}

/* split card: heading/blurb on the left, a bordered content card on the right */
.splitcard{display:grid;grid-template-columns:0.85fr 1.15fr;gap:clamp(28px,3.4vw,56px);align-items:start;max-width:var(--max)}
@media (max-width:820px){ .splitcard{grid-template-columns:1fr;gap:24px} }
.splitcard__l h2{font-size:clamp(26px,2.8vw,38px);font-variation-settings:'wdth' 118,'wght' 500;font-weight:500;letter-spacing:-.018em;line-height:1.06;color:var(--navy);margin:0 0 14px;max-width:14ch}
.splitcard__l p{font-size:15.5px;line-height:1.6;color:var(--slate);margin:0;max-width:38ch}
.splitcard__l .overline{margin-bottom:14px}
.card{background:var(--white);border:1px solid var(--line);border-radius:20px;padding:clamp(26px,2.6vw,38px)}
.card--accent{border-top:3px solid transparent;background:
  linear-gradient(var(--white),var(--white)) padding-box,
  linear-gradient(90deg,var(--navy),var(--lime)) border-box;border:1px solid transparent;border-top-width:3px}
.card p{font-size:15.5px;line-height:1.62;color:var(--ink);margin:0 0 14px}
.card p:last-child{margin-bottom:0}
.card p.slot{color:var(--slate)}
.card a{color:var(--navy);text-decoration:none;border-bottom:1px solid var(--line)}

/* checklist rows inside a card */
.clist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.clist li{display:grid;grid-template-columns:26px 1fr;gap:12px;align-items:start;font-size:15px;line-height:1.55;color:var(--ink)}
.clist li::before{content:"";width:22px;height:22px;border-radius:7px;background:rgba(109,180,41,.14);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236DB429' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;margin-top:1px}
.clist li b{color:var(--navy);font-weight:600}

/* carded table — wraps .tbl in a rounded bordered surface */
.tblcard{background:var(--white);border:1px solid var(--line);border-radius:20px;padding:clamp(22px,2vw,30px) clamp(22px,2vw,32px);overflow-x:auto}
.tblcard .tbl{max-width:none}
.tblcard .tbl caption{margin-bottom:16px}

/* dark CTA band with a highlight card (references' bottom band) */
.ctaband{position:relative;background:var(--navy);color:#fff;overflow:hidden}
.ctaband::after{content:"";position:absolute;right:-120px;top:-120px;width:380px;height:380px;border-radius:50%;
  background:radial-gradient(circle,rgba(140,198,63,.18),rgba(140,198,63,0) 70%)}
.ctaband__in{position:relative;max-width:var(--max);margin:0 auto;padding:clamp(52px,6vw,88px) var(--gut) clamp(52px,6vw,88px) var(--rail);
  display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,4vw,64px);align-items:center}
@media (max-width:820px){ .ctaband__in{grid-template-columns:1fr} }
.ctaband h2{font-size:clamp(30px,3.4vw,46px);font-variation-settings:'wdth' 118,'wght' 500;font-weight:500;letter-spacing:-.02em;line-height:1.05;color:#fff;margin:0 0 16px;max-width:16ch}
.ctaband p{font-size:16px;line-height:1.6;color:rgba(255,255,255,.76);margin:0 0 26px;max-width:46ch}
.ctaband .btn{display:inline-flex;align-items:center;gap:11px;background:var(--lime);color:var(--navy);font-size:15px;font-weight:700;text-decoration:none;padding:7px 8px 7px 24px;border-radius:999px;transition:transform .18s,box-shadow .18s}
.ctaband .btn:hover{transform:translateY(-1px);box-shadow:0 12px 30px rgba(0,0,0,.3)}
.ctaband .btn .a{width:34px;height:34px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center}
.ctacard{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);border-radius:20px;padding:clamp(24px,2.4vw,32px)}
.ctacard .row{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.ctacard .row:last-child{border-bottom:0}
.ctacard .row .ic{width:40px;height:40px;border-radius:11px;background:rgba(140,198,63,.16);color:var(--lime);display:flex;align-items:center;justify-content:center;flex:none}
.ctacard .row .ic svg{width:20px;height:20px}
.ctacard .row b{display:block;font-size:15px;color:#fff;font-weight:600}
.ctacard .row span{display:block;font-size:13px;color:rgba(255,255,255,.6);margin-top:2px}

/* generic 2-col prose card row for "the model" style sections */
.prosecard{display:grid;grid-template-columns:0.85fr 1.15fr;gap:clamp(28px,3.4vw,56px);align-items:start;max-width:var(--max)}
@media (max-width:820px){ .prosecard{grid-template-columns:1fr;gap:22px} }
.prosecard__l h2{font-size:clamp(26px,2.8vw,38px);font-variation-settings:'wdth' 118,'wght' 500;font-weight:500;letter-spacing:-.018em;line-height:1.06;color:var(--navy);margin:0;max-width:13ch}
.prosecard__r p{font-size:16px;line-height:1.64;color:var(--slate);margin:0 0 16px;max-width:56ch}
.prosecard__r p:last-child{margin-bottom:0}
.prosecard__r a{color:var(--navy);font-weight:600;text-decoration:none;border-bottom:1px solid var(--navy)}

/* ══════════════════════════════════════════════════════════════════
   INSIGHTS index + ARTICLE pages
   ══════════════════════════════════════════════════════════════════ */
/* — insights index grid — */
.ins{max-width:var(--max);margin:0 auto;padding:clamp(30px,4vw,56px) var(--gut) clamp(60px,7vw,100px) var(--rail)}
.ins__head{max-width:60ch;margin-bottom:clamp(34px,4vw,54px)}
.ins__eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:12.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--lime-data);margin:0 0 14px}
.ins__eyebrow span{width:22px;height:2px;background:currentColor;display:block}
.ins__h1{font-family:var(--font-ed);font-size:clamp(32px,4.4vw,58px);font-weight:700;letter-spacing:-.03em;line-height:1.02;color:var(--navy);margin:0 0 16px}
.ins__lead{font-size:clamp(16px,1.3vw,19px);line-height:1.6;color:var(--slate);max-width:60ch;margin:0}
.ins__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:26px}
.icard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s}
.icard:hover{transform:translateY(-3px);box-shadow:0 20px 44px -18px rgba(20,21,31,.28);border-color:#C9C9C2}
.icard__media{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--paper-2)}
.icard__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}
.icard:hover .icard__media img{transform:scale(1.04)}
.icard__cat{position:absolute;left:14px;top:14px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:rgba(31,32,88,.86);backdrop-filter:blur(4px);padding:6px 12px;border-radius:999px}
.icard__body{display:flex;flex-direction:column;flex:1;padding:22px 24px 24px}
.icard__title{font-size:19px;font-weight:700;letter-spacing:-.015em;line-height:1.25;color:var(--navy);margin:0 0 10px}
.icard__ex{font-size:14.5px;line-height:1.58;color:var(--slate);margin:0 0 18px;flex:1}
.icard__meta{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--slate);border-top:1px solid var(--line);padding-top:14px}
.icard__meta b{color:var(--ink);font-weight:600}
.icard__more{margin-left:auto;color:var(--lime-data);font-weight:700}

/* — single article — */
.art{max-width:var(--max);margin:0 auto}
.art__hero{position:relative;margin:0}
.art__hero-media{position:relative;overflow:hidden;isolation:isolate}
.art__hero-media img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:21/8}
@media (max-width:760px){ .art__hero-media img{aspect-ratio:3/2} }
.art__hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(12,13,32,.9) 0%,rgba(12,13,32,.55) 45%,rgba(12,13,32,.25) 100%)}
.art__hero-in{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;
  max-width:var(--max);margin:0 auto;padding:clamp(28px,4vw,56px) var(--gut) clamp(30px,4vw,54px) var(--rail)}
.art__cat{display:inline-flex;align-self:flex-start;font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--navy);background:var(--lime);padding:6px 13px;border-radius:999px;margin-bottom:16px}
.art__title{font-family:var(--font-ed);font-size:clamp(28px,4vw,52px);font-weight:700;letter-spacing:-.03em;line-height:1.04;color:#fff;margin:0;max-width:22ch}
.art__meta{margin-top:18px;font-size:14px;color:rgba(255,255,255,.82);display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}
.art__meta .dot{width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,.5)}
.art__wrap{max-width:760px;margin:0 auto;padding:clamp(40px,5vw,68px) var(--gut) clamp(56px,7vw,92px)}
.art__lead{font-size:clamp(18px,1.5vw,21px);line-height:1.6;color:var(--ink);font-weight:500;margin:0 0 28px}
.art__wrap h2{font-family:var(--font-ed);font-size:clamp(23px,2.2vw,30px);font-weight:700;letter-spacing:-.02em;color:var(--navy);margin:40px 0 14px;line-height:1.15}
.art__wrap h3{font-size:19px;font-weight:700;color:var(--ink);margin:28px 0 10px}
.art__wrap p{font-size:17px;line-height:1.72;color:var(--ink);margin:0 0 18px}
.art__wrap ul,.art__wrap ol{margin:0 0 20px;padding-left:22px}
.art__wrap li{font-size:17px;line-height:1.66;color:var(--ink);margin:0 0 9px}
.art__wrap ul{list-style:none;padding-left:0}
.art__wrap ul>li{position:relative;padding-left:26px}
.art__wrap ul>li::before{content:"";position:absolute;left:2px;top:11px;width:7px;height:7px;border-radius:2px;background:var(--lime-data);transform:rotate(45deg)}
.art__wrap a{color:var(--navy);font-weight:600;border-bottom:1px solid var(--line)}
.art__wrap a:hover{border-color:var(--navy)}
.art__wrap strong{font-weight:700;color:var(--ink)}
.art__key{background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--lime);border-radius:0 14px 14px 0;padding:22px 26px;margin:26px 0}
.art__key b{display:block;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--lime-data);margin-bottom:8px}
.art__key p{font-size:16px;line-height:1.62;color:var(--ink);margin:0}
.art__tbl{width:100%;border-collapse:collapse;margin:8px 0 26px;font-size:15px}
.art__tbl th,.art__tbl td{text-align:left;padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.5}
.art__tbl thead th{font-size:12.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--slate);border-bottom:2px solid var(--line)}
.art__tbl tbody th{font-weight:600;color:var(--navy)}
.art__note{font-size:14px;color:var(--slate);font-style:italic;margin:22px 0}
.art__cta{margin-top:40px;padding:clamp(26px,3vw,38px);border-radius:20px;background:linear-gradient(150deg,#23245F,var(--ink-deeper,#0C0D20));color:#fff;position:relative;overflow:hidden}
.art__cta h3{font-size:clamp(20px,2vw,26px);font-weight:700;letter-spacing:-.02em;margin:0 0 10px;color:#fff}
.art__cta p{font-size:15.5px;line-height:1.6;color:rgba(255,255,255,.75);margin:0 0 20px;max-width:52ch}
.art__cta a{display:inline-flex;align-items:center;gap:11px;background:var(--lime);color:var(--navy);font-weight:700;font-size:15px;text-decoration:none;padding:11px 12px 11px 22px;border-radius:999px;border:0}
.art__cta a span.a{width:30px;height:30px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center}
.art__author{display:flex;align-items:center;gap:14px;margin:40px 0 0;padding-top:26px;border-top:1px solid var(--line)}
.art__avatar{width:52px;height:52px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;flex:none}
.art__author b{display:block;font-size:15px;color:var(--ink)}
.art__author span{display:block;font-size:13.5px;color:var(--slate);margin-top:2px}
.art__related{max-width:760px;margin:0 auto;padding:0 var(--gut) clamp(56px,7vw,92px)}
.art__related h2{font-size:15px;letter-spacing:.04em;text-transform:uppercase;color:var(--slate);margin:0 0 18px;font-weight:700}
.art__related-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:640px){ .art__related-grid{grid-template-columns:1fr} }
.art__related a{display:block;text-decoration:none;border:1px solid var(--line);border-radius:14px;padding:18px 20px;transition:border-color .2s,transform .2s}
.art__related a:hover{border-color:var(--navy);transform:translateY(-2px)}
.art__related a b{display:block;font-size:15.5px;color:var(--navy);font-weight:700;line-height:1.3;margin-bottom:6px}
.art__related a span{font-size:13px;color:var(--slate)}
