/* ============================================================
   NORTHLINE PLATFORM — shared site framework
   Loads AFTER brand.css (reuses its tokens, buttons, tags)
   ============================================================ */

/* ---- per-site accent hook: each site sets --site on <body> ---- */
:root{ --site: var(--orange-500); --site-ink: var(--orange-700); }

body{ background:var(--white); }
.u-wrap{ max-width:1200px; margin:0 auto; padding:0 40px; }
@media (max-width:760px){ .u-wrap{ padding:0 22px; } }

/* ============================================================
   OUR COMPANIES BAR  (platform integration — top of every site)
   ============================================================ */
.companies-bar{ background:#0B0F1C; color:var(--n-400); border-bottom:1px solid rgba(255,255,255,.07); }
.companies-bar__in{ max-width:1200px; margin:0 auto; padding:0 40px; height:42px;
  display:flex; align-items:center; gap:8px; overflow-x:auto; }
.companies-bar .lbl{ font-family:var(--font-mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--n-600); white-space:nowrap; margin-right:6px; }
.companies-bar a{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.02em; color:var(--n-400);
  white-space:nowrap; padding:5px 10px; border-radius:3px; transition:.14s; }
.companies-bar a:hover{ color:#fff; background:rgba(255,255,255,.06); }
.companies-bar a.is-current{ color:#fff; }
.companies-bar a.is-current::before{ content:"●"; color:var(--site); font-size:8px; margin-right:6px; vertical-align:1px; }
@media (max-width:760px){ .companies-bar .lbl{ display:none; } .companies-bar__in{ padding:0 16px; } }

/* ============================================================
   SITE HEADER / NAV
   ============================================================ */
.siteheader{ position:sticky; top:0; z-index:50; background:rgba(11,15,28,.92); backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(255,255,255,.08); }
.siteheader__in{ max-width:1200px; margin:0 auto; padding:0 40px; height:68px;
  display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brandlock{ display:flex; align-items:center; gap:12px; min-width:0; }
.brandlock img{ height:34px; width:auto; }
.brandlock .wm{ font-family:var(--font-display); font-weight:800; color:#fff; letter-spacing:-.01em; line-height:1;
  font-size:19px; white-space:nowrap; }
.brandlock .wm b{ color:var(--site); }
.brandlock .wm small{ display:block; font-family:var(--font-mono); font-weight:500; font-size:9px;
  letter-spacing:.18em; color:var(--n-400); text-transform:uppercase; margin-top:4px; }
.sitenav{ display:flex; align-items:center; gap:4px; }
.sitenav a{ font-size:13.5px; color:var(--n-300); padding:8px 12px; border-radius:4px; font-weight:500; transition:.14s; white-space:nowrap; }
.sitenav a:hover{ color:#fff; background:rgba(255,255,255,.07); }
.sitehdr-cta{ display:flex; align-items:center; gap:12px; }
@media (max-width:980px){ .sitenav{ display:none; } }

/* ---- mobile nav (burger + slide-down panel, injected by platform.js) ---- */
.nav-burger{ display:none; width:44px; height:44px; border:1px solid rgba(255,255,255,.25); border-radius:6px;
  background:transparent; cursor:pointer; align-items:center; justify-content:center; flex-direction:column; gap:5px; padding:0; }
.nav-burger span{ display:block; width:18px; height:2px; background:#fff; border-radius:1px; transition:.25s ease; }
.nav-burger.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-burger.open span:nth-child(2){ opacity:0; }
.nav-burger.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
@media (max-width:980px){ .nav-burger{ display:flex; } .sitehdr-cta .btn{ display:none; } }
.mobilenav{ display:none; background:#0B0F1C; border-bottom:1px solid rgba(255,255,255,.1); }
.mobilenav.open{ display:block; }
.mobilenav__in{ max-width:1200px; margin:0 auto; padding:10px 22px 22px; display:flex; flex-direction:column; gap:2px; }
.mobilenav a{ color:var(--n-200); font-size:16px; font-weight:500; padding:13px 10px; border-radius:6px; border-bottom:1px solid rgba(255,255,255,.06); }
.mobilenav a:active{ background:rgba(255,255,255,.07); }
.mobilenav .btn{ margin-top:14px; justify-content:center; }

/* ============================================================
   HERO  (full-bleed media + overlay)
   ============================================================ */
.hero{ position:relative; background:var(--navy-950); color:#fff; overflow:hidden; }
.hero__media{ position:absolute; inset:0; z-index:0; }
.hero__media img,.hero__media video{ width:100%; height:100%; object-fit:cover; }
.hero__scrim{ position:absolute; inset:0; z-index:1;
  background:linear-gradient(105deg, rgba(11,15,28,.96) 0%, rgba(11,15,28,.82) 42%, rgba(11,15,28,.45) 100%); }
.hero__grid{ position:absolute; inset:0; z-index:1; opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:54px 54px; mask-image:radial-gradient(ellipse 60% 80% at 80% 30%,#000,transparent 75%); }
.hero__in{ position:relative; z-index:2; max-width:1200px; margin:0 auto; padding:118px 40px 104px; }
.hero .eyebrow{ color:var(--site); }
.hero .eyebrow::before{ background:var(--site); }
.hero h1{ font-family:var(--font-display); font-weight:800; letter-spacing:-.035em; line-height:.98; color:#fff;
  font-size:clamp(40px,6vw,76px); margin:24px 0 0; max-width:16ch; }
.hero h1 em{ font-style:normal; color:var(--site); }
.hero .lead{ font-size:clamp(17px,2vw,21px); color:var(--n-300); max-width:60ch; margin:26px 0 0; line-height:1.55; }
.hero .cta-row{ display:flex; flex-wrap:wrap; gap:14px; margin-top:38px; }
@media (max-width:760px){ .hero__in{ padding:84px 22px 72px; } .hero__scrim{ background:linear-gradient(180deg,rgba(11,15,28,.86),rgba(11,15,28,.92)); } }

/* button accent override to per-site color */
.btn--site{ background:var(--site); color:#fff; border-color:var(--site); }
.btn--site:hover{ filter:brightness(.92); }

/* ============================================================
   SECTIONS
   ============================================================ */
.s{ padding:96px 0; }
.s--alt{ background:var(--n-50); }
.s--ink{ background:var(--navy-950); color:var(--n-300); }
.s--ink h2,.s--ink h3,.s--ink h4{ color:#fff; }
.s--ink .eyebrow{ color:var(--site); } .s--ink .eyebrow::before{ background:var(--site); }
.s-head{ max-width:780px; margin-bottom:52px; }
.s-head .eyebrow{ color:var(--site-ink); } .s-head .eyebrow::before{ background:var(--site); }
.s--ink .s-head .eyebrow{ color:var(--site); }
.s-head h2{ font-size:clamp(28px,3.6vw,44px); font-weight:800; letter-spacing:-.02em; margin:16px 0 14px; }
.s-head p{ font-size:18px; color:var(--ink-soft); max-width:64ch; }
.s--ink .s-head p{ color:var(--n-300); }
.lead-link{ display:inline-flex; align-items:center; gap:8px; font-family:var(--font-display); font-weight:600;
  font-size:15px; color:var(--site-ink); margin-top:6px; }
.s--ink .lead-link{ color:var(--site); }
.lead-link .ar{ transition:transform .15s; } .lead-link:hover .ar{ transform:translateX(4px); }

/* ---- value chain (platform integration) ---- */
.chain{ display:grid; grid-template-columns:repeat(6,1fr); gap:1px; background:var(--navy-600);
  border:1px solid var(--navy-600); border-radius:var(--r-md); overflow:hidden; }
.chain .lnk{ background:var(--navy-900); padding:26px 20px; min-height:168px; display:flex; flex-direction:column;
  text-decoration:none; transition:.15s; }
.chain .lnk:hover{ background:var(--navy-800); }
.chain .lnk .n{ font-family:var(--font-mono); font-size:11px; color:var(--site); letter-spacing:.1em; }
.chain .lnk h4{ font-size:16px; color:#fff; margin:10px 0 8px; letter-spacing:-.01em; }
.chain .lnk p{ font-size:12.5px; color:var(--n-400); margin-top:auto; }
@media (max-width:980px){ .chain{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:560px){ .chain{ grid-template-columns:1fr 1fr; } }

/* ---- stat band ---- */
.statband{ display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden; background:#fff; }
.statband.on-ink{ border-color:var(--navy-600); background:transparent; }
.statband .st{ padding:32px 28px; border-right:1px solid var(--line); }
.statband.on-ink .st{ border-right-color:var(--navy-600); }
.statband .st:last-child{ border-right:none; }
.statband .st .v{ font-family:var(--font-display); font-weight:800; font-size:clamp(34px,4vw,46px); letter-spacing:-.02em; color:var(--navy-700); }
.statband.on-ink .st .v{ color:#fff; }
.statband .st .v em{ font-style:normal; color:var(--site); }
.statband .st .l{ font-size:13px; color:var(--ink-soft); margin-top:6px; }
.statband.on-ink .st .l{ color:var(--n-400); }
@media (max-width:760px){ .statband,.statband.on-ink{ grid-template-columns:1fr 1fr; } .statband .st:nth-child(2){ border-right:none; } }

/* ---- card grids ---- */
.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.grid-2{ display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.grid-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
@media (max-width:900px){ .grid-3,.grid-4{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .grid-2,.grid-3,.grid-4{ grid-template-columns:1fr; } }

/* feature card (service / market) */
.fcard{ background:#fff; border:1px solid var(--line); border-radius:var(--r-md); padding:30px; transition:.15s; }
.fcard:hover{ border-color:var(--n-300); box-shadow:var(--shadow); }
.s--ink .fcard{ background:var(--navy-900); border-color:var(--navy-600); }
.fcard .n{ font-family:var(--font-mono); font-size:12px; color:var(--site-ink); letter-spacing:.08em; }
.s--ink .fcard .n{ color:var(--site); }
.fcard h3{ font-size:21px; font-weight:700; margin:10px 0 10px; letter-spacing:-.01em; }
.fcard p{ font-size:14.5px; color:var(--ink-soft); }
.s--ink .fcard p{ color:var(--n-400); }
.fcard ul{ margin:14px 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:8px; }
.fcard li{ font-size:13.5px; color:var(--ink-soft); padding-left:18px; position:relative; }
.fcard li::before{ content:""; position:absolute; left:0; top:8px; width:7px; height:7px; background:var(--site); transform:rotate(45deg); }
.s--ink .fcard li{ color:var(--n-300); }

/* project card with image */
.pcard{ border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden; background:#fff; transition:.15s; }
.s--ink .pcard{ background:var(--navy-900); border-color:var(--navy-600); }
.pcard:hover{ box-shadow:var(--shadow-lg); transform:translateY(-2px); }
.pcard__img{ aspect-ratio:4/3; width:100%; object-fit:cover; display:block; }
.pcard__b{ padding:20px 22px; }
.pcard__b .tag{ margin-bottom:12px; }
.pcard__b h3{ font-size:19px; font-weight:700; letter-spacing:-.01em; }
.pcard__b p{ font-family:var(--font-mono); font-size:12px; color:var(--ink-muted); margin-top:5px; }
.s--ink .pcard__b p{ color:var(--n-500); }

/* leadership */
.leader{ background:transparent; }
.leader .ph{ aspect-ratio:4/5; border-radius:var(--r-md); overflow:hidden; filter:grayscale(1) contrast(1.04);
  background:repeating-linear-gradient(135deg,var(--navy-800) 0 12px,var(--navy-700) 12px 24px); display:flex; align-items:flex-end; }
.leader .ph img{ width:100%; height:100%; object-fit:cover; }
.leader .ph span{ font-family:var(--font-mono); font-size:10px; color:var(--n-400); margin:10px; }
.leader h4{ font-size:17px; margin:14px 0 2px; }
.leader p{ font-family:var(--font-mono); font-size:11.5px; color:var(--site); letter-spacing:.04em; text-transform:uppercase; }
.s--ink .leader h4{ color:#fff; }

/* split feature (image + text) */
.split{ display:grid; grid-template-columns:1.05fr 1fr; gap:0; border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden; }
.split.s--ink, .s--ink .split{ border-color:var(--navy-600); }
.split__img{ min-height:380px; }
.split__img img{ width:100%; height:100%; object-fit:cover; display:block; }
.split__b{ padding:48px; display:flex; flex-direction:column; justify-content:center; }
.split__b h2{ font-size:clamp(26px,3vw,38px); font-weight:800; letter-spacing:-.02em; margin-bottom:16px; }
.split__b p{ font-size:16px; color:var(--ink-soft); line-height:1.6; }
.s--ink .split__b p{ color:var(--n-300); }
@media (max-width:820px){ .split{ grid-template-columns:1fr; } .split__img{ min-height:240px; } .split__b{ padding:32px; } }

/* CTA band */
.ctaband{ position:relative; overflow:hidden; border-radius:var(--r-lg); background:var(--navy-700); color:#fff; padding:56px; }
.ctaband::after{ content:""; position:absolute; right:-6%; top:-40%; width:42%; height:180%;
  background:linear-gradient(180deg,var(--site),transparent); transform:skewX(-12deg); opacity:.22; }
.ctaband__in{ position:relative; z-index:2; max-width:680px; }
.ctaband h2{ font-size:clamp(26px,3.4vw,40px); font-weight:800; letter-spacing:-.02em; color:#fff; }
.ctaband p{ font-size:17px; color:var(--n-300); margin:14px 0 28px; }
@media (max-width:600px){ .ctaband{ padding:36px 26px; } }

/* ============================================================
   FOOTER  (with Our Companies)
   ============================================================ */
.sitefooter{ background:#0B0F1C; color:var(--n-400); padding:72px 0 40px; }
.sitefooter__top{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:48px; padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,.1); }
.sitefooter img.flogo{ height:42px; margin-bottom:18px; }
.sitefooter .wm{ font-family:var(--font-display); font-weight:800; font-size:26px; color:#fff; letter-spacing:-.01em; margin-bottom:16px; }
.sitefooter .wm b{ color:var(--site); }
.sitefooter p{ font-size:14px; line-height:1.6; max-width:42ch; }
.sitefooter h5{ font-family:var(--font-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--n-500); margin-bottom:16px; }
.sitefooter ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px; }
.sitefooter ul a{ color:var(--n-300); font-size:14px; }
.sitefooter ul a:hover{ color:#fff; }
.sitefooter ul a .dot{ color:var(--site); margin-right:8px; font-size:8px; vertical-align:1px; }
.sitefooter__bot{ display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; padding-top:28px;
  font-family:var(--font-mono); font-size:12px; color:var(--n-600); }
@media (max-width:820px){ .sitefooter__top{ grid-template-columns:1fr; gap:32px; } }

/* ============================================================
   MOTION  (scroll reveal, header, hero spotlight)  — all gated
   ============================================================ */
.siteheader{ transition:background .3s ease, box-shadow .3s ease; }
.siteheader.scrolled{ background:rgba(8,11,20,.98); box-shadow:0 10px 34px rgba(0,0,0,.4); }

/* cursor-follow spotlight on dark heroes / cta */
.hero__spot{ position:absolute; inset:0; z-index:1; pointer-events:none; opacity:0; transition:opacity .4s ease;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,40%), rgba(229,114,0,.18), transparent 62%); }
.hero:hover .hero__spot{ opacity:1; }

/* link underline sweep */
.sitenav a{ position:relative; }
.sitenav a::after{ content:""; position:absolute; left:10px; right:10px; bottom:3px; height:1.5px; background:var(--site);
  transform:scaleX(0); transform-origin:left; transition:transform .26s cubic-bezier(.16,.84,.44,1); }
.sitenav a:hover::after{ transform:scaleX(1); }

/* button arrow + lift */
.btn{ transition:transform .16s ease, filter .16s ease, background .16s ease, border-color .16s ease, box-shadow .16s ease; }
.btn--site:hover, .btn--accent:hover{ box-shadow:0 8px 24px rgba(229,114,0,.32); }

@media (prefers-reduced-motion: no-preference){
  .reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s cubic-bezier(.16,.84,.44,1), transform .7s cubic-bezier(.16,.84,.44,1); }
  .reveal.is-in{ opacity:1; transform:none; }
  .hero h1{ animation:nlRise .9s cubic-bezier(.16,.84,.44,1) both; }
  .hero .lead{ animation:nlRise .9s cubic-bezier(.16,.84,.44,1) .12s both; }
  .hero .cta-row{ animation:nlRise .9s cubic-bezier(.16,.84,.44,1) .22s both; }
  .hero .eyebrow{ animation:nlRise .9s cubic-bezier(.16,.84,.44,1) both; }
  .pcard,.fcard{ transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }

  /* Ken Burns — cinematic drift on hero media (video fallback included) */
  .hero__media img{ animation:nlKenBurns 26s ease-in-out infinite alternate; will-change:transform; }
  @keyframes nlKenBurns{
    from{ transform:scale(1) translate(0,0); }
    to{ transform:scale(1.09) translate(-1.6%, -1.2%); }
  }

  /* eyebrow rule draws in when its block reveals */
  .s-head .eyebrow::before{ transform:scaleX(0); transform-origin:left; transition:transform .8s cubic-bezier(.16,.84,.44,1) .15s; }
  .s-head.is-in .eyebrow::before{ transform:scaleX(1); }
}
@keyframes nlRise{ from{ opacity:0; transform:translateY(26px); } to{ opacity:1; transform:none; } }

/* ============================================================
   CLIENT LOGO MARQUEE
   ============================================================ */
.logo-strip{ padding:54px 0 58px; background:#fff; border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft); overflow:hidden; }
.logo-strip .u-wrap{ margin-bottom:26px; }
.logo-strip .eyebrow{ color:var(--ink-muted); }
.logo-strip .eyebrow::before{ background:var(--site); }
.logo-marquee{ overflow:hidden; position:relative;
  mask-image:linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); }
.logo-marquee__track{ display:flex; align-items:center; gap:72px; width:max-content; padding:0 36px; }
.logo-marquee img{ height:44px; width:auto; max-width:150px; object-fit:contain; flex:0 0 auto; }
@media (prefers-reduced-motion: no-preference){
  .logo-marquee__track{ animation:nlMarquee 46s linear infinite; }
  .logo-marquee:hover .logo-marquee__track{ animation-play-state:paused; }
}
@media (prefers-reduced-motion: reduce){
  .logo-marquee{ overflow-x:auto; }
}
@keyframes nlMarquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (max-width:760px){ .logo-marquee img{ height:34px; } .logo-marquee__track{ gap:48px; } }

/* ============================================================
   CONTACT FORM
   ============================================================ */
.contact-block{ display:grid; grid-template-columns:1fr 1.2fr; gap:48px; align-items:start; }
.contact-block h3{ font-size:26px; letter-spacing:-.01em; margin-bottom:12px; }
.contact-block .sub{ font-size:15.5px; color:var(--ink-soft); margin-bottom:26px; max-width:46ch; }
.contact-block .cinfo{ display:flex; flex-direction:column; gap:18px; }
.contact-block .cinfo > div{ padding-left:18px; border-left:2px solid var(--site); }
.contact-block .cinfo .k{ font-family:var(--font-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-muted); }
.contact-block .cinfo .v{ font-size:15.5px; color:var(--ink); margin-top:3px; line-height:1.5; }
.cform{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:30px; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:14px; }
.cform .row2{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.cform input,.cform textarea{ width:100%; padding:13px 14px; border:1.5px solid var(--n-300); border-radius:var(--r);
  font-family:var(--font-body); font-size:15px; color:var(--ink); background:#fff; resize:vertical; }
.cform input:focus,.cform textarea:focus{ outline:none; border-color:var(--site); box-shadow:0 0 0 3px color-mix(in srgb, var(--site) 14%, transparent); }
.cform button{ align-self:flex-start; }
@media (max-width:820px){ .contact-block{ grid-template-columns:1fr; } .cform .row2{ grid-template-columns:1fr; } }

/* ============================================================
   POLISH LAYER — progress bar, spotlight cards, micro-details
   ============================================================ */
::selection{ background:var(--site); color:#fff; }
html{ scrollbar-width:thin; scrollbar-color:var(--n-500) transparent; }
::-webkit-scrollbar{ width:9px; }
::-webkit-scrollbar-track{ background:transparent; }
::-webkit-scrollbar-thumb{ background:rgba(120,135,160,.45); border-radius:9px; }
::-webkit-scrollbar-thumb:hover{ background:rgba(120,135,160,.7); }
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{
  outline:2px solid var(--site); outline-offset:2px; border-radius:3px; }

/* scroll progress bar */
.scroll-progress{ position:fixed; top:0; left:0; height:3px; width:0; z-index:200;
  background:linear-gradient(90deg, var(--site), color-mix(in srgb, var(--site) 55%, #fff)); 
  box-shadow:0 0 12px color-mix(in srgb, var(--site) 60%, transparent); pointer-events:none; }

/* back to top */
.to-top{ position:fixed; right:26px; bottom:26px; z-index:120; width:46px; height:46px; border-radius:50%;
  background:var(--site); color:#fff; border:none; cursor:pointer; display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 30px rgba(0,0,0,.35); opacity:0; transform:translateY(14px); pointer-events:none;
  transition:opacity .3s ease, transform .3s ease, filter .15s ease; }
.to-top.show{ opacity:1; transform:none; pointer-events:auto; }
.to-top:hover{ filter:brightness(1.1); }
.to-top svg{ width:20px; height:20px; }

/* cursor spotlight on cards (set via --mx/--my by platform.js) */
@media (hover:hover) and (prefers-reduced-motion: no-preference){
  .fcard,.pcard,.cmpx__col,.leadc,.unit,.cocard,.eco-card{ position:relative; overflow:hidden; }
  .fcard::before,.pcard::before,.cmpx__col::before,.leadc::before,.unit::before,.cocard::before,.eco-card::before{
    content:""; position:absolute; inset:0; z-index:1; pointer-events:none; opacity:0; transition:opacity .35s ease;
    background:radial-gradient(380px circle at var(--mx,50%) var(--my,50%),
      color-mix(in srgb, var(--site) 9%, transparent), transparent 65%); }
  .fcard:hover::before,.pcard:hover::before,.cmpx__col:hover::before,.leadc:hover::before,.unit:hover::before,.cocard:hover::before,.eco-card:hover::before{ opacity:1; }
}

/* shine sweep on primary CTAs */
.btn--site,.btn--accent,.nbtn--solid{ position:relative; overflow:hidden; }
.btn--site::after,.btn--accent::after,.nbtn--solid::after{
  content:""; position:absolute; top:0; bottom:0; left:-80%; width:50%;
  background:linear-gradient(105deg, transparent, rgba(255,255,255,.35), transparent);
  transform:skewX(-20deg); transition:none; }
@media (prefers-reduced-motion: no-preference){
  .btn--site:hover::after,.btn--accent:hover::after,.nbtn--solid:hover::after{ left:130%; transition:left .6s ease; }
}

/* ============================================================
   PER-SITE IDENTITY  (accent + badge + hero marking via data-site)
   Each <body data-site="..."> overrides the orange ramp to its hue,
   so buttons, tags, eyebrows, links + --site all recolor together.
   ============================================================ */

/* colored top rule on header = instant wayfinding */
.siteheader{ position:relative; }
.siteheader::after{ content:""; position:absolute; left:0; right:0; top:0; height:3px; background:var(--site); z-index:3; }

/* header badge pill next to the wordmark */
.brandlock{ position:relative; }
.brandlock::after{ font-family:var(--font-mono); font-size:9.5px; font-weight:600; letter-spacing:.13em; text-transform:uppercase;
  color:#fff; background:var(--site); padding:4px 8px; border-radius:3px; margin-left:2px; line-height:1; white-space:nowrap; align-self:center; }
body[data-site="nig"]     .brandlock::after{ content:"Invest"; }
body[data-site="mlgcm"]   .brandlock::after{ content:"Owner Rep"; }
body[data-site="dc"]      .brandlock::after{ content:"DC · CBE"; }
body[data-site="ncg"]     .brandlock::after{ content:"Build"; color:var(--navy-950); }
body[data-site="waverly"] .brandlock::after{ content:"Federal"; color:var(--navy-950); }
body[data-site="cna"]     .brandlock::after{ content:"Finish"; }
body[data-site="platform"] .brandlock::after{ content:"Platform"; }
@media (max-width:600px){ .brandlock::after{ display:none; } }

/* current company in the Our-Companies bar gets a stronger marker */
.companies-bar a.is-current{ background:rgba(255,255,255,.05); }

/* ---- signature hero markings ---- */
/* NCG — safety hazard stripe along the hero base */
body[data-site="ncg"] .hero::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:14px; z-index:2;
  background:repeating-linear-gradient(135deg, var(--site) 0 18px, var(--navy-950) 18px 36px); }

/* MLG-CM — corporate vertical accent bar beside the hero copy */
body[data-site="mlgcm"] .hero__in::before{ content:""; position:absolute; left:40px; top:130px; bottom:112px; width:4px; background:var(--site); }
body[data-site="mlgcm"] .hero__in{ padding-left:72px; }

/* MLG-DC — DC-flag stars above the headline */
body[data-site="dc"] .hero__in::before{ content:"★ ★ ★"; display:block; color:var(--site); font-size:17px; letter-spacing:9px; margin-bottom:14px; }

/* CNA — material swatch strip above the headline */
body[data-site="cna"] .hero__in::before{ content:""; display:block; width:148px; height:14px; border-radius:2px; margin-bottom:20px;
  background:linear-gradient(90deg,#C9B79C 0 25%,#8A8F98 25% 50%,#6B4F3A 50% 75%,#243B36 75% 100%); box-shadow:0 0 0 1px rgba(255,255,255,.12); }

/* Waverly — federal coordinate / classification stamp */
body[data-site="waverly"] .hero__in::after{ content:"// FEDERAL · DEFENSE · INDUSTRIAL"; position:absolute; top:74px; right:40px;
  font-family:var(--font-mono); font-size:11px; letter-spacing:.16em; color:var(--site); opacity:.85; }
@media (max-width:760px){ body[data-site="waverly"] .hero__in::after{ display:none; }
  body[data-site="mlgcm"] .hero__in{ padding-left:40px; } body[data-site="mlgcm"] .hero__in::before{ left:22px; } }
