/* ============================================================
   TNT SCAFFOLDING — shared site stylesheet (hi-fi V1)
   Charcoal-led. Red carries the CTAs. Inter throughout.
   ============================================================ */
:root{
  --color-charcoal:#2B333C; --color-charcoal-deep:#1B2127;
  --color-steel:#566173; --color-steel-light:#B7BFCB;
  --color-navy:#242D7A;
  --color-red:#AF2428; --color-red-dark:#8E1D20;
  --color-ink:#1E242B; --color-text-muted:#5B6675;
  --color-surface:#FFFFFF; --color-surface-alt:#F4F5F7; --color-on-dark:#D7DBE0;
  --color-border:#DCE0E5;
  --color-success:#1E9E5A; --color-warning:#E0902F;
  --font-display:"Inter","Helvetica Neue",Arial,sans-serif;
  --font-body:"Inter","Helvetica Neue",Arial,sans-serif;
  --font-mono:"SF Mono",ui-monospace,"JetBrains Mono",Menlo,monospace;
  --text-xs:.75rem; --text-sm:.875rem; --text-base:1rem; --text-lg:1.125rem;
  --text-xl:1.5rem; --text-2xl:2rem; --text-3xl:2.5rem; --text-4xl:3.5rem; --text-5xl:4.5rem;
  --w-regular:400; --w-medium:500; --w-bold:700; --w-black:900;
  --s1:.25rem; --s2:.5rem; --s3:.75rem; --s4:1rem; --s5:1.25rem; --s6:1.5rem;
  --s8:2rem; --s10:2.5rem; --s12:3rem; --s16:4rem; --s20:5rem; --s24:6rem;
  --r-sm:4px; --r-md:8px; --r-lg:16px; --r-xl:24px; --r-full:9999px;
  --shadow-sm:0 1px 2px rgba(27,33,39,.06);
  --shadow-md:0 6px 18px rgba(27,33,39,.10);
  --shadow-lg:0 18px 44px rgba(27,33,39,.18);
  --brace-stripe:repeating-linear-gradient(45deg, var(--color-steel-light) 0 14px, var(--color-charcoal) 14px 28px);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;font-family:var(--font-body);color:var(--color-ink);background:#fff;line-height:1.55;-webkit-font-smoothing:antialiased;}
h1,h2,h3,h4,h5{font-family:var(--font-display);color:var(--color-charcoal);margin:0;}
p{margin:0;} a{color:inherit;text-decoration:none;} img{max-width:100%;display:block;}
ul{margin:0;padding:0;list-style:none;}
.wrap{max-width:1320px;margin:0 auto;padding:0 var(--s6);}
.wrap-narrow{max-width:980px;margin:0 auto;padding:0 var(--s6);}

/* Eyebrow / strapline */
.eyebrow{display:inline-flex;align-items:center;gap:var(--s2);font-weight:var(--w-black);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-red);}
.eyebrow::before{content:"";width:22px;height:3px;background:var(--color-red);display:inline-block;}
.eyebrow.light{color:var(--color-steel-light);}
.strapline{font-family:var(--font-display);font-weight:var(--w-bold);text-transform:uppercase;letter-spacing:.2em;font-size:.8rem;color:var(--color-text-muted);margin:0;}
.strapline .i{color:var(--color-red);font-weight:var(--w-black);}
.strapline.light{color:var(--color-steel-light);}
.hero-strap{font-family:var(--font-display);font-weight:var(--w-medium);font-size:1.1rem;letter-spacing:.01em;color:var(--color-steel-light);margin:0 0 var(--s4);}
.hero-strap .i{color:var(--color-red);font-weight:var(--w-black);}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);font-family:var(--font-display);font-weight:var(--w-bold);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em;padding:15px 26px;border-radius:var(--r-md);border:2px solid transparent;cursor:pointer;transition:transform .08s,background .15s,box-shadow .15s,color .15s;text-align:center;line-height:1;}
.btn:active{transform:translateY(1px);}
.btn-accent{background:var(--color-red);color:#fff;}
.btn-accent:hover{background:var(--color-red-dark);box-shadow:var(--shadow-md);}
.btn-dark{background:var(--color-charcoal);color:#fff;}
.btn-dark:hover{background:#1f262e;box-shadow:var(--shadow-md);}
.btn-steel{background:var(--color-steel);color:#fff;}
.btn-steel:hover{background:#44505f;box-shadow:var(--shadow-md);}
.btn-outline{background:transparent;color:var(--color-charcoal);border-color:var(--color-charcoal);}
.btn-outline:hover{background:var(--color-charcoal);color:#fff;}
.btn-outline.light{color:#fff;border-color:rgba(255,255,255,.5);}
.btn-outline.light:hover{background:#fff;color:var(--color-charcoal);border-color:#fff;}
.btn-ghost{background:transparent;color:var(--color-charcoal);border-color:var(--color-border);}
.btn-ghost:hover{background:var(--color-surface-alt);border-color:var(--color-charcoal);}
.btn-ghost.active{border-color:var(--color-red);color:var(--color-red);}
.btn-lg{padding:18px 32px;font-size:var(--text-base);}
/* responsive CTA labels: full text on desktop, short ("Quote"/"Call") on phones */
.lbl-tight{display:none;}
@media(max-width:560px){.lbl-full{display:none;}.lbl-tight{display:inline;}}
.btn-block{width:100%;}

/* Utility bar */
.util{background:var(--color-charcoal-deep);color:var(--color-on-dark);font-size:var(--text-sm);}
.util .wrap{display:flex;justify-content:space-between;align-items:center;min-height:42px;gap:var(--s4);padding-top:6px;padding-bottom:6px;}
.util a{color:#fff;font-weight:var(--w-medium);}
.util .right{display:flex;gap:var(--s6);align-items:center;flex-wrap:wrap;}
.util svg{vertical-align:-2px;margin-right:5px;}
.util .areas{color:var(--color-steel-light);}
@media(max-width:780px){.util .areas{display:none;}.util .wrap{justify-content:center;}}

/* Header / nav */
header.nav{position:sticky;top:0;z-index:60;background:#fff;border-bottom:1px solid var(--color-border);}
header.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:78px;gap:var(--s4);}
.brand-logo{height:50px;width:auto;}
.menu{display:flex;align-items:center;gap:var(--s8);}
.menu .item{position:relative;}
.menu .top,.menu .link{font-weight:var(--w-bold);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--color-charcoal);cursor:pointer;display:inline-flex;align-items:center;gap:6px;height:78px;background:none;border:0;font-family:inherit;}
.menu a.link.active,.menu .item.active .top{color:var(--color-red);}
.menu .top::after{content:"";width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);}
.menu .item:hover .top,.menu .link:hover{color:var(--color-red);}
.dropdown{position:absolute;top:72px;left:-14px;min-width:280px;background:#fff;border:1px solid var(--color-border);border-top:3px solid var(--color-red);border-radius:0 0 10px 10px;box-shadow:var(--shadow-lg);padding:var(--s2);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .15s,transform .15s,visibility .15s;z-index:70;}
.dropdown.wide{min-width:460px;}
.menu .item:hover .dropdown{opacity:1;visibility:visible;transform:translateY(0);}
.dropdown a{display:block;padding:10px 12px;border-radius:6px;font-size:var(--text-sm);font-weight:var(--w-bold);color:var(--color-charcoal);text-transform:none;letter-spacing:0;}
.dropdown a small{display:block;font-weight:var(--w-regular);font-size:.72rem;color:var(--color-text-muted);margin-top:1px;}
.dropdown a:hover{background:var(--color-surface-alt);color:var(--color-red);}
.dropdown .cols{display:grid;grid-template-columns:1fr 1fr;gap:2px;}
.dropdown .colhd{font-size:.66rem;font-weight:var(--w-black);text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted);padding:8px 12px 4px;}
.nav-cta{display:flex;align-items:center;gap:var(--s3);}
.nav-cta .btn{white-space:nowrap;}
.nav-phone{font-family:var(--font-display);font-weight:var(--w-black);color:var(--color-charcoal);font-size:var(--text-lg);white-space:nowrap;line-height:1.05;}
.nav-phone span{display:block;font-size:10px;font-weight:var(--w-bold);letter-spacing:.12em;color:var(--color-text-muted);text-transform:uppercase;}
.burger{display:none;background:none;border:0;cursor:pointer;padding:8px;}
.burger span{display:block;width:24px;height:2.5px;background:var(--color-charcoal);margin:5px 0;border-radius:2px;}
@media(max-width:1080px){
  .util{display:none;}
  .menu{display:none;}
  .burger{display:block;}
  .nav-cta .btn{display:none;}
  .menu.open{display:flex;position:absolute;top:78px;left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;padding:var(--s2) var(--s6) var(--s6);gap:0;box-shadow:var(--shadow-lg);border-bottom:3px solid var(--color-red);max-height:82vh;overflow:auto;}
  .menu .item{width:100%;}
  .menu .top,.menu .link{height:auto;padding:14px 0;border-bottom:1px solid var(--color-border);width:100%;}
  .menu .top::after{margin-left:auto;}
  .dropdown{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;border-radius:0;padding:2px 0 12px 14px;min-width:0;}
  .dropdown.wide{min-width:0;}
  .dropdown .cols{grid-template-columns:1fr;}
  .dropdown a{padding:8px 0;}
}
@media(max-width:560px){.nav-phone{display:none;}}
.brace-bar{height:8px;background:var(--brace-stripe);}

/* ---------- HERO (homepage) ---------- */
.hero{position:relative;overflow:hidden;background:linear-gradient(120deg,var(--color-charcoal),var(--color-charcoal-deep));color:#fff;}
.hero::after{content:"";position:absolute;right:-90px;top:-60px;width:460px;height:460px;background:var(--brace-stripe);opacity:.08;transform:rotate(8deg);}
.hero .wrap{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:var(--s12);padding:var(--s16) var(--s6) var(--s12);align-items:center;}
.hero h1{color:#fff;font-weight:var(--w-black);font-size:clamp(2.4rem,5.2vw,var(--text-5xl));line-height:1.04;letter-spacing:-.02em;text-transform:uppercase;margin:var(--s4) 0 var(--s5);}
.hero h1 .accent{color:var(--color-steel-light);}
.hero p.lede{color:var(--color-on-dark);font-size:var(--text-lg);max-width:52ch;margin-bottom:var(--s8);}
.hero-cta{display:flex;gap:var(--s4);flex-wrap:wrap;margin-bottom:0;}
.hero-cta .btn{min-width:220px;white-space:nowrap;}
.hero-trust{display:flex;gap:var(--s5) var(--s10);flex-wrap:wrap;align-items:flex-start;}
.hero-trust .t{display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px;line-height:1.15;font-size:var(--text-sm);color:#fff;font-weight:var(--w-medium);}
.hero-trust .t b{font-weight:var(--w-black);font-size:var(--text-base);letter-spacing:.01em;}
.hero-trust .t span{color:var(--color-steel-light);text-transform:uppercase;letter-spacing:.05em;font-size:var(--text-xs);font-weight:var(--w-bold);}
.hero-img{position:relative;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-lg);aspect-ratio:4/3;background:#cfd6dd;}
.hero-img img{width:100%;height:100%;object-fit:cover;}
.hero-img .hero-slide{position:absolute;inset:0;opacity:0;transition:opacity .9s ease;}
.hero-img .hero-slide.active{opacity:1;}
.hero-dots{position:absolute;right:14px;bottom:16px;display:flex;gap:7px;z-index:3;}
.hero-dots button{width:9px;height:9px;padding:0;border:0;border-radius:50%;cursor:pointer;background:rgba(255,255,255,.55);box-shadow:0 1px 2px rgba(0,0,0,.25);transition:background .2s,transform .2s;}
.hero-dots button:hover{background:rgba(255,255,255,.85);}
.hero-dots button.active{background:#fff;transform:scale(1.3);}
.hero-badge{position:absolute;left:16px;bottom:16px;background:#fff;border-radius:var(--r-md);padding:10px 14px;box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:2px;}
.hero-badge .stars{color:var(--color-warning);letter-spacing:2px;font-size:.9rem;}
.hero-badge small{font-size:.7rem;color:var(--color-text-muted);font-weight:var(--w-bold);text-transform:uppercase;letter-spacing:.05em;}
@media(max-width:920px){.hero .wrap{grid-template-columns:1fr;padding-bottom:var(--s10);}.hero-cta .btn{min-width:auto;flex:1 1 0;padding-left:18px;padding-right:18px;}}

/* ---------- SUBHERO (inner pages) ---------- */
.subhero{position:relative;overflow:hidden;background:linear-gradient(120deg,var(--color-charcoal),var(--color-charcoal-deep));color:#fff;}
.subhero::after{content:"";position:absolute;right:-90px;top:-60px;width:420px;height:420px;background:var(--brace-stripe);opacity:.08;transform:rotate(8deg);}
.subhero .wrap{position:relative;z-index:1;display:grid;grid-template-columns:1.1fr .9fr;gap:var(--s12);padding:var(--s12) var(--s6) var(--s16);align-items:center;}
.subhero.compact .wrap{grid-template-columns:1fr;padding-bottom:var(--s12);}
.crumbs{display:flex;gap:8px;align-items:center;font-size:var(--text-xs);color:var(--color-steel-light);font-weight:var(--w-bold);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--s4);flex-wrap:wrap;}
.crumbs a{color:var(--color-steel-light);}
.crumbs a:hover{color:#fff;}
.crumbs .sep{opacity:.5;}
.subhero h1{color:#fff;font-weight:var(--w-black);font-size:clamp(2rem,4.4vw,var(--text-4xl));line-height:1.05;letter-spacing:-.02em;text-transform:uppercase;margin:0 0 var(--s4);}
.subhero p.lede{color:var(--color-on-dark);font-size:var(--text-lg);max-width:54ch;margin-bottom:var(--s6);}
.subhero .hero-cta{margin-bottom:0;}
.subhero-img{position:relative;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-lg);aspect-ratio:4/3;background:#cfd6dd;}
.subhero-img img{width:100%;height:100%;object-fit:cover;}
@media(max-width:920px){.subhero .wrap{grid-template-columns:1fr;padding-bottom:var(--s12);}.subhero-img{aspect-ratio:16/9;}}

/* ---------- TRUST BAR ---------- */
.trust-bar{background:var(--color-surface-alt);border-bottom:1px solid var(--color-border);}
.trust-bar .wrap{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s5);justify-content:center;align-items:center;padding:var(--s4) var(--s6);}
.trust-bar .t{display:inline-flex;align-items:center;gap:8px;font-size:var(--text-sm);font-weight:var(--w-bold);color:var(--color-charcoal);}
.trust-bar .t .dot{width:8px;height:8px;border-radius:50%;background:var(--color-red);flex:none;}
.trust-bar .t.sep{color:var(--color-border);font-weight:400;}

/* ---------- SECTIONS ---------- */
section.sec{padding:var(--s20) 0;}
section.sec.tight{padding:var(--s16) 0;}
section.sec.alt{background:var(--color-surface-alt);}
section.sec.dark{background:var(--color-charcoal);color:#fff;}
.sec-head{margin-bottom:var(--s10);max-width:70ch;}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.sec-head h2{font-size:clamp(1.8rem,3.6vw,var(--text-3xl));font-weight:var(--w-black);text-transform:uppercase;letter-spacing:-.01em;line-height:1.08;margin:var(--s3) 0 var(--s4);}
.sec-head p{color:var(--color-text-muted);font-size:var(--text-lg);}
section.dark .sec-head h2{color:#fff;}
section.dark .sec-head p{color:var(--color-on-dark);}

/* Two-column text+image */
.text-img{display:grid;grid-template-columns:1fr 1fr;gap:var(--s12);align-items:center;}
.text-img.flip > .ti-media{order:-1;}
.text-img h2{font-size:clamp(1.6rem,3.2vw,var(--text-3xl));font-weight:var(--w-black);text-transform:uppercase;line-height:1.1;margin:var(--s3) 0 var(--s5);}
.text-img p{color:var(--color-text-muted);font-size:var(--text-base);margin-bottom:var(--s4);}
.text-img p:last-child{margin-bottom:0;}
.ti-media{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-lg);aspect-ratio:4/3;background:#cfd6dd;}
.ti-media img{width:100%;height:100%;object-fit:cover;}
@media(max-width:860px){.text-img{grid-template-columns:1fr;gap:var(--s8);}.text-img.flip > .ti-media{order:0;}}

/* ---------- CARDS (services / sectors) ---------- */
.grid{display:grid;gap:var(--s6);}
.g-2{grid-template-columns:repeat(2,1fr);}
.g-3{grid-template-columns:repeat(3,1fr);}
.g-4{grid-template-columns:repeat(4,1fr);}
@media(max-width:980px){.g-4{grid-template-columns:repeat(2,1fr);}.g-3{grid-template-columns:repeat(2,1fr);}}
@media(max-width:680px){.g-2,.g-3,.g-4{grid-template-columns:1fr;}}

.card{border:1px solid var(--color-border);border-radius:var(--r-lg);overflow:hidden;background:#fff;box-shadow:var(--shadow-sm);transition:transform .12s,box-shadow .12s;display:flex;flex-direction:column;}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);}
.card .media-bar{height:6px;background:var(--color-red);}
.card .card-img{aspect-ratio:16/10;background:#cfd6dd;overflow:hidden;}
.card .card-img img{width:100%;height:100%;object-fit:cover;}
.card .pad{padding:var(--s6);display:flex;flex-direction:column;flex:1;}
.card .icon{width:52px;height:52px;border-radius:var(--r-md);background:var(--color-surface-alt);display:flex;align-items:center;justify-content:center;margin-bottom:var(--s4);}
.card h3,.card h4{margin:0 0 var(--s2);font-size:var(--text-xl);text-transform:uppercase;letter-spacing:-.01em;}
.card p{margin:0 0 var(--s5);color:var(--color-text-muted);font-size:var(--text-sm);flex:1;}
.card .link{font-weight:var(--w-bold);color:var(--color-red);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em;display:inline-flex;gap:6px;align-items:center;}
.card .link:hover{gap:10px;}

/* Sector / use-case chips */
.usecases{display:flex;flex-wrap:wrap;gap:var(--s3);}
.usecase{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1.5px solid var(--color-border);border-radius:var(--r-full);padding:9px 16px;font-size:var(--text-sm);font-weight:var(--w-bold);color:var(--color-charcoal);}
.usecase .k{width:8px;height:8px;background:var(--color-red);border-radius:2px;flex:none;}
section.alt .usecase{background:#fff;}

/* Checklist (what's included) */
.checklist{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s3) var(--s8);}
.checklist li{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--color-border);font-size:var(--text-base);color:var(--color-ink);font-weight:var(--w-medium);}
.checklist li::before{content:"";width:22px;height:22px;flex:none;border-radius:50%;background:var(--color-success);margin-top:1px;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='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;}
@media(max-width:680px){.checklist{grid-template-columns:1fr;}}

/* Feature list (what we scaffold for — title + description per item) */
.featlist{display:grid;grid-template-columns:repeat(2,1fr);gap:0 var(--s10);}
.feat{display:flex;gap:var(--s4);align-items:flex-start;padding:var(--s5) 0;border-top:1px solid var(--color-border);}
.feat .tick{width:24px;height:24px;flex:none;border-radius:var(--r-sm);background:var(--color-red) 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='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") no-repeat center;margin-top:2px;}
.feat .ft-t{font-size:var(--text-base);font-weight:var(--w-bold);color:var(--color-charcoal);line-height:1.25;}
.feat .ft-d{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:5px;line-height:1.5;}
a.feat{text-decoration:none;transition:border-color .12s;}
a.feat:hover .ft-t{color:var(--color-red);}
@media(max-width:680px){.featlist{grid-template-columns:1fr;}}

/* Spec rows (Best for / Pairs with) */
.specrows{margin-top:var(--s6);display:flex;flex-direction:column;gap:var(--s4);}
.specrow{display:grid;grid-template-columns:110px 1fr;gap:var(--s4);align-items:start;}
.specrow .k{font-size:var(--text-xs);font-weight:var(--w-black);text-transform:uppercase;letter-spacing:.08em;color:var(--color-red);padding-top:3px;}
.specrow .v{font-size:var(--text-base);color:var(--color-ink);}
@media(max-width:520px){.specrow{grid-template-columns:1fr;gap:2px;}}

/* Coverage place list (town + drive time) */
.place-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 var(--s8);margin:var(--s5) 0;}
.place-row{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s3);padding:11px 0;border-bottom:1px solid var(--color-border);}
.place-row .pn{font-weight:var(--w-bold);color:var(--color-charcoal);font-size:var(--text-base);}
.place-row .pmeta{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:var(--w-bold);font-family:var(--font-mono);white-space:nowrap;}
@media(max-width:680px){.place-grid{grid-template-columns:1fr;}}

/* ---------- STATS BAND ---------- */
.stats-band{background:var(--color-charcoal);color:#fff;position:relative;overflow:hidden;}
.stats-band::before{content:"";position:absolute;inset:0;background:var(--brace-stripe);opacity:.06;}
.stats-band .wrap{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s6);padding:var(--s12) var(--s6);}
.stat{border-left:4px solid var(--color-red);padding:var(--s2) var(--s5);}
.stat .n{font-family:var(--font-display);font-weight:var(--w-black);font-size:clamp(2.2rem,4vw,3.2rem);line-height:1;color:#fff;}
.stat .l{font-size:var(--text-sm);color:var(--color-steel-light);margin-top:var(--s2);text-transform:uppercase;letter-spacing:.05em;font-weight:var(--w-bold);}
@media(max-width:760px){.stats-band .wrap{grid-template-columns:repeat(2,1fr);}}
.stats-band.s4 .wrap{grid-template-columns:repeat(4,1fr);}
@media(max-width:760px){.stats-band .wrap,.stats-band.s4 .wrap{grid-template-columns:1fr;gap:var(--s4);}.stat{min-width:0;}}

/* ---------- PROCESS STRIP ---------- */
.process{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--s5);counter-reset:step;}
.process.s4{grid-template-columns:repeat(4,1fr);}
.process.s3{grid-template-columns:repeat(3,1fr);}
.pstep{position:relative;padding-top:var(--s8);}
.pstep::before{counter-increment:step;content:counter(step,decimal-leading-zero);position:absolute;top:0;left:0;font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--w-bold);color:var(--color-red);}
.pstep::after{content:"";position:absolute;top:8px;left:34px;right:0;height:2px;background:var(--color-border);}
.pstep:last-child::after{display:none;}
.pstep h4{font-size:var(--text-lg);text-transform:uppercase;margin:0 0 var(--s2);letter-spacing:-.01em;}
.pstep p{color:var(--color-text-muted);font-size:var(--text-sm);}
section.dark .pstep h4{color:#fff;}
section.dark .pstep p{color:var(--color-on-dark);}
section.dark .pstep::after{background:rgba(255,255,255,.15);}
@media(max-width:860px){.process,.process.s4,.process.s3{grid-template-columns:repeat(2,1fr);}.pstep::after{display:none;}}
@media(max-width:480px){.process,.process.s4,.process.s3{grid-template-columns:1fr;}}

/* ---------- TESTIMONIALS ---------- */
.reviews{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s6);}
@media(max-width:760px){.reviews{grid-template-columns:1fr;}}
.review{background:#fff;border:1px solid var(--color-border);border-radius:var(--r-lg);padding:var(--s8);box-shadow:var(--shadow-sm);}
.review .stars{color:var(--color-warning);font-size:var(--text-lg);letter-spacing:2px;margin-bottom:var(--s4);}
.review blockquote{margin:0 0 var(--s5);font-size:var(--text-lg);color:var(--color-ink);line-height:1.45;}
.review .by{display:flex;align-items:center;gap:var(--s3);}
.review .av{width:44px;height:44px;border-radius:50%;background:var(--color-charcoal);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:var(--w-black);flex:none;}
.review .nm{font-weight:var(--w-bold);color:var(--color-charcoal);font-size:var(--text-sm);}
.review .ro{font-size:var(--text-xs);color:var(--color-text-muted);}

/* ---------- AREAS ---------- */
.areas-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s12);align-items:start;}
@media(max-width:860px){.areas-grid{grid-template-columns:1fr;gap:var(--s8);}}
.area-cols{display:grid;grid-template-columns:1fr 1fr;gap:var(--s8);}
.area-col h4{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin:0 0 var(--s4);padding-bottom:var(--s2);border-bottom:2px solid var(--color-red);display:inline-block;}
.area-col a{display:block;padding:10px 0;border-bottom:1px solid var(--color-border);font-weight:var(--w-bold);color:var(--color-charcoal);font-size:var(--text-base);}
.area-col a:hover{color:var(--color-red);}
.map-ph{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-md);aspect-ratio:4/3;background:var(--color-charcoal);position:relative;}
.map-ph iframe{width:100%;height:100%;border:0;filter:grayscale(.3) contrast(1.05);}
/* Google Maps placeholder mock */
.map-mock{position:absolute;inset:0;background:#e9ebee;overflow:hidden;font-family:var(--font-body);}
.mm-field{position:absolute;inset:0;background:#edeff1;}
.mm-water{position:absolute;left:-12%;bottom:-22%;width:62%;height:58%;background:#a9d3ec;transform:rotate(-18deg);border-radius:42%;}
.mm-park{position:absolute;background:#cfe7d2;border-radius:34%;}
.mm-park-a{left:7%;top:12%;width:27%;height:31%;}
.mm-park-b{right:5%;top:8%;width:26%;height:30%;}
.mm-road{position:absolute;background:#fff;box-shadow:0 0 0 1px #dadce0;}
.mm-road-h{left:0;right:0;top:54%;height:14px;}
.mm-road-v{top:0;bottom:0;left:45%;width:12px;}
.mm-road-d{left:-10%;top:62%;width:140%;height:9px;background:#fbe7a3;box-shadow:0 0 0 1px #e8cf78;transform:rotate(-23deg);transform-origin:left center;}
.map-pin{position:absolute;left:50%;top:50%;transform:translate(-50%,-100%);z-index:3;}
.map-pin .head{position:relative;width:28px;height:28px;background:#ea4335;border-radius:50% 50% 50% 0;transform:rotate(45deg);box-shadow:0 3px 8px rgba(0,0,0,.4);}
.map-pin .head::after{content:"";position:absolute;left:50%;top:50%;width:10px;height:10px;background:#fff;border-radius:50%;transform:translate(-50%,-50%);}
.mm-card{position:absolute;left:14px;bottom:14px;z-index:4;background:#fff;border-radius:8px;box-shadow:0 1px 4px rgba(0,0,0,.28);padding:9px 13px;display:flex;flex-direction:column;gap:1px;}
.mm-card strong{font-size:.82rem;color:#202124;font-weight:700;}
.mm-card span{font-size:.7rem;color:#5f6368;}
.mm-larger{position:absolute;right:12px;top:12px;z-index:4;background:#fff;color:#1a73e8;font-size:.72rem;font-weight:600;padding:6px 10px;border-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,.28);}
.mm-note{position:absolute;right:12px;bottom:12px;z-index:4;background:rgba(32,33,36,.8);color:#fff;font-size:.6rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:5px 9px;border-radius:4px;}

/* ---------- FAQ ACCORDION ---------- */
.faq{max-width:860px;}
.faq-item{border-bottom:1px solid var(--color-border);}
.faq-q{width:100%;background:none;border:0;text-align:left;font-family:var(--font-display);font-weight:var(--w-bold);font-size:var(--text-lg);color:var(--color-charcoal);padding:var(--s5) 44px var(--s5) 0;cursor:pointer;position:relative;display:block;}
.faq-q::after{content:"";position:absolute;right:6px;top:50%;width:12px;height:12px;border-right:2.5px solid var(--color-red);border-bottom:2.5px solid var(--color-red);transform:translateY(-70%) rotate(45deg);transition:transform .2s;}
.faq-item.open .faq-q::after{transform:translateY(-30%) rotate(225deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .25s ease;}
.faq-a div{padding:0 0 var(--s5);color:var(--color-text-muted);font-size:var(--text-base);max-width:70ch;}
.faq-item.open .faq-a{max-height:400px;}

/* ---------- CTA BAND ---------- */
.cta-band{background:linear-gradient(120deg,var(--color-charcoal),var(--color-charcoal-deep));color:#fff;position:relative;overflow:hidden;}
.cta-band::after{content:"";position:absolute;left:-60px;bottom:-80px;width:380px;height:380px;background:var(--brace-stripe);opacity:.09;transform:rotate(10deg);}
.cta-band .wrap{position:relative;z-index:1;padding:var(--s16) var(--s6);text-align:center;display:flex;flex-direction:column;align-items:center;}
.cta-band .kick{font-family:var(--font-display);font-weight:var(--w-bold);text-transform:uppercase;letter-spacing:.2em;font-size:.85rem;color:var(--color-steel-light);margin-bottom:var(--s4);}
.cta-band .kick .i{color:var(--color-red);font-weight:var(--w-black);}
.cta-band h2{color:#fff;font-size:clamp(1.9rem,4vw,var(--text-4xl));font-weight:var(--w-black);text-transform:uppercase;line-height:1.05;letter-spacing:-.02em;margin:0 0 var(--s4);max-width:18ch;}
.cta-band p{color:var(--color-on-dark);font-size:var(--text-lg);max-width:54ch;margin:0 0 var(--s8);}
.cta-band .row{display:flex;gap:var(--s4);flex-wrap:wrap;justify-content:center;}
.cta-band .row .btn{white-space:nowrap;}

/* ---------- QUOTE FORM ---------- */
.quote-form{background:#fff;border:1px solid var(--color-border);border-radius:var(--r-lg);box-shadow:var(--shadow-md);padding:var(--s8);}
.quote-form h3{font-size:var(--text-2xl);text-transform:uppercase;margin:0 0 var(--s2);}
.quote-form .sub{color:var(--color-text-muted);font-size:var(--text-sm);margin-bottom:var(--s6);}
.field{margin-bottom:var(--s4);}
.field label{display:block;font-weight:var(--w-bold);font-size:var(--text-sm);margin-bottom:6px;color:var(--color-charcoal);}
.field input,.field select,.field textarea{width:100%;font-family:var(--font-body);font-size:var(--text-base);color:var(--color-ink);padding:12px 14px;border:1.5px solid var(--color-border);border-radius:var(--r-md);background:#fff;transition:border-color .15s,box-shadow .15s;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--color-charcoal);box-shadow:0 0 0 3px rgba(43,51,60,.14);}
.field textarea{min-height:110px;resize:vertical;}
.field.two{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4);margin-bottom:0;}
.field.two > div{margin-bottom:var(--s4);}
.check{display:flex;align-items:flex-start;gap:10px;font-size:var(--text-sm);margin-bottom:var(--s5);color:var(--color-text-muted);line-height:1.45;}
.check input{width:20px;height:20px;accent-color:var(--color-charcoal);flex:none;margin-top:1px;}
.check a{color:inherit;font-weight:var(--w-bold);text-decoration:underline;text-underline-offset:2px;}
.form-note{font-size:var(--text-xs);color:var(--color-text-muted);text-align:center;margin-top:var(--s3);}
.form-ok{display:none;background:rgba(30,158,90,.1);border:1px solid var(--color-success);color:#0f6b3a;border-radius:var(--r-md);padding:var(--s4);font-size:var(--text-sm);font-weight:var(--w-bold);margin-top:var(--s4);}
@media(max-width:520px){.field.two{grid-template-columns:1fr;gap:0;}}

/* Reassurance rail */
.rail{display:flex;flex-direction:column;gap:var(--s5);}
.rail-step{display:flex;gap:var(--s4);}
.rail-step .num{width:40px;height:40px;border-radius:50%;background:var(--color-charcoal);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:var(--w-black);flex:none;}
.rail-step h4{font-size:var(--text-lg);text-transform:uppercase;margin:0 0 4px;}
.rail-step p{color:var(--color-text-muted);font-size:var(--text-sm);}

/* Chips */
.chips{display:flex;flex-wrap:wrap;gap:var(--s3);}
.chip-tag{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);font-weight:var(--w-bold);text-transform:uppercase;letter-spacing:.05em;padding:7px 13px;border-radius:var(--r-full);white-space:nowrap;}
.chip-charcoal{background:var(--color-charcoal);color:#fff;}
.chip-red{background:var(--color-red);color:#fff;}
.chip-steel{background:var(--color-steel);color:#fff;}
.chip-outline{background:#fff;color:var(--color-charcoal);border:1.5px solid var(--color-border);}

/* ---------- SIDEBAR (service pages) ---------- */
.with-aside{display:grid;grid-template-columns:1fr 320px;gap:var(--s12);align-items:start;}
@media(max-width:960px){.with-aside{grid-template-columns:1fr;}}
.aside-card{border:1px solid var(--color-border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm);margin-bottom:var(--s6);position:sticky;top:96px;}
.aside-card .hd{background:var(--color-charcoal);color:#fff;padding:var(--s4) var(--s5);font-weight:var(--w-black);text-transform:uppercase;font-size:var(--text-sm);letter-spacing:.06em;}
.aside-card .bd{padding:var(--s3) var(--s5) var(--s5);}
.aside-card a.svc{display:flex;justify-content:space-between;align-items:center;padding:11px 0;border-bottom:1px solid var(--color-border);font-weight:var(--w-bold);font-size:var(--text-sm);color:var(--color-charcoal);}
.aside-card a.svc:last-child{border-bottom:0;}
.aside-card a.svc:hover{color:var(--color-red);}
.aside-contact{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--r-lg);padding:var(--s6);}
.aside-contact .ph{font-family:var(--font-display);font-weight:var(--w-black);font-size:var(--text-2xl);color:var(--color-charcoal);margin:var(--s2) 0;}
.aside-contact p{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--s4);}

/* ---------- PROJECTS ---------- */
.filters{display:flex;flex-wrap:wrap;gap:var(--s3);margin-bottom:var(--s8);}
.filter{background:#fff;border:1.5px solid var(--color-border);border-radius:var(--r-full);padding:9px 18px;font-weight:var(--w-bold);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--color-charcoal);cursor:pointer;transition:all .15s;}
.filter:hover{border-color:var(--color-charcoal);}
.filter.active{background:var(--color-charcoal);border-color:var(--color-charcoal);color:#fff;}
.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s6);}
@media(max-width:960px){.project-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.project-grid{grid-template-columns:1fr;}}
.project{border:1px solid var(--color-border);border-radius:var(--r-lg);overflow:hidden;background:#fff;box-shadow:var(--shadow-sm);transition:transform .12s,box-shadow .12s;display:flex;flex-direction:column;}
.project:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);}
.project .pimg{aspect-ratio:4/3;background:#cfd6dd;overflow:hidden;position:relative;}
.project .pimg img{width:100%;height:100%;object-fit:cover;}
.project .tag{position:absolute;top:12px;left:12px;background:var(--color-red);color:#fff;font-size:var(--text-xs);font-weight:var(--w-bold);text-transform:uppercase;letter-spacing:.05em;padding:5px 11px;border-radius:var(--r-full);}
.project .pbody{padding:var(--s5);display:flex;flex-direction:column;flex:1;}
.project h3{font-size:var(--text-lg);text-transform:uppercase;margin:0 0 4px;letter-spacing:-.01em;}
.project .loc{font-size:var(--text-xs);color:var(--color-red);font-weight:var(--w-bold);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--s3);}
.project p{font-size:var(--text-sm);color:var(--color-text-muted);}

/* ---------- NEWS ---------- */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s6);}
@media(max-width:960px){.news-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.news-grid{grid-template-columns:1fr;}}
.post{border:1px solid var(--color-border);border-radius:var(--r-lg);overflow:hidden;background:#fff;box-shadow:var(--shadow-sm);transition:transform .12s,box-shadow .12s;display:flex;flex-direction:column;}
.post:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);}
.post .pimg{aspect-ratio:16/9;background:#cfd6dd;overflow:hidden;}
.post .pimg img{width:100%;height:100%;object-fit:cover;}
.post .pbody{padding:var(--s6);display:flex;flex-direction:column;flex:1;}
.post .meta{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:var(--w-bold);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--s2);}
.post h3{font-size:var(--text-lg);text-transform:uppercase;margin:0 0 var(--s2);letter-spacing:-.01em;}
.post p{font-size:var(--text-sm);color:var(--color-text-muted);flex:1;margin-bottom:var(--s4);}

/* ---------- CONTACT ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s12);align-items:start;}
@media(max-width:860px){.contact-grid{grid-template-columns:1fr;gap:var(--s8);}}
.contact-block{display:flex;flex-direction:column;gap:var(--s5);}
.steps-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s8);align-items:start;margin-top:var(--s6);}
@media(max-width:860px){.steps-row{grid-template-columns:1fr;gap:var(--s6);}}

/* ---------- HERO REVIEW ROTATOR (on dark) ---------- */
.hero-reviews{margin-top:var(--s9);max-width:460px;}
.hr-stage{display:grid;}
.hr-item{grid-area:1/1;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .45s ease;}
.hr-item.active{opacity:1;visibility:visible;pointer-events:auto;}
@media(prefers-reduced-motion:reduce){.hr-item{transition:none;}}
.hr-stars{color:#F5B301;letter-spacing:3px;font-size:var(--text-base);line-height:1;margin-bottom:var(--s3);}
.hr-quote{color:#fff;font-size:var(--text-lg);line-height:1.45;margin:0;font-weight:var(--w-medium);text-wrap:pretty;}
.hr-by{display:flex;align-items:center;gap:var(--s3);}
.hr-av{width:42px;height:42px;border-radius:50%;background:var(--color-red);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:var(--w-black);font-size:var(--text-sm);flex:none;}
.hr-nm{color:#fff;font-weight:var(--w-bold);font-size:var(--text-sm);}
.hr-ro{color:var(--color-steel-light);font-size:var(--text-xs);}
.hr-dots{display:flex;gap:8px;margin-top:var(--s5);}
.hr-dots button{width:8px;height:8px;border-radius:var(--r-full);border:0;background:rgba(255,255,255,.3);cursor:pointer;padding:0;transition:width .25s,background .25s;}
.hr-dots button.active{background:var(--color-red);width:22px;}

/* Hero contact lines (phone / email on dark) */
.hero-contact{display:flex;flex-direction:column;gap:var(--s4);margin-top:var(--s9);}
.hero-contact a{display:inline-flex;align-items:center;gap:var(--s3);color:#fff;text-decoration:none;font-weight:var(--w-bold);font-size:var(--text-lg);width:fit-content;}
.hero-contact .hc-ic{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;flex:none;transition:border-color .2s;}
.hero-contact a:hover{color:var(--color-steel-light);}
.hero-contact a:hover .hc-ic{border-color:var(--color-red);}

/* Hero copy column rhythm */
.hero-copy{display:flex;flex-direction:column;gap:var(--s10);align-items:flex-start;}
.subhero .hero-intro{display:flex;flex-direction:column;gap:var(--s5);}
.subhero .hero-intro h1{margin:0;text-wrap:balance;}
.subhero .hero-intro .lede{margin:0;max-width:46ch;}
.hero-copy .crumbs{margin-bottom:0;white-space:nowrap;}
.hero-copy .chips{margin-top:0;gap:var(--s3);}
.hero-copy .hero-reviews,.hero-copy .hero-contact{margin-top:0;}
.contact-row{display:flex;gap:var(--s4);align-items:flex-start;}
.contact-row .ic{width:46px;height:46px;border-radius:var(--r-md);background:var(--color-surface-alt);display:flex;align-items:center;justify-content:center;flex:none;}
.contact-row h4{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin:0 0 2px;}
.contact-row .big{font-family:var(--font-display);font-weight:var(--w-black);font-size:var(--text-xl);color:var(--color-charcoal);}
.contact-row p{font-size:var(--text-base);color:var(--color-ink);}

/* ---------- CONFIRM FLAG (client to confirm) ---------- */
.flag{display:inline-flex;align-items:center;gap:6px;background:repeating-linear-gradient(45deg,#fff4e0 0 8px,#ffe9c7 8px 16px);border:1.5px dashed var(--color-warning);color:#8a5600;border-radius:6px;padding:3px 9px;font-size:.72rem;font-weight:var(--w-bold);font-family:var(--font-mono);text-transform:none;letter-spacing:0;vertical-align:middle;}
.flag::before{content:"\26A0";font-size:.8rem;}
.flag-block{background:repeating-linear-gradient(45deg,#fff8ee 0 12px,#fff2dd 12px 24px);border:1.5px dashed var(--color-warning);border-radius:var(--r-md);padding:var(--s4) var(--s5);color:#7a4d00;font-size:var(--text-sm);margin:var(--s4) 0;}
.flag-block b{color:#8a5600;font-family:var(--font-mono);}

/* ---------- FOOTER ---------- */
footer.site{background:var(--color-charcoal-deep);color:#9aa3b2;}
footer.site .ftbrace{height:8px;background:var(--brace-stripe);opacity:.85;}
footer.site .wrap{padding:var(--s16) var(--s6) var(--s8);display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:var(--s10);}
@media(max-width:900px){footer.site .wrap{grid-template-columns:1fr 1fr;gap:var(--s8);}}
@media(max-width:560px){footer.site .wrap{grid-template-columns:1fr;}}
.ft-plate{background:#fff;border-radius:10px;padding:14px 16px;display:inline-block;box-shadow:var(--shadow-sm);}
.ft-plate img{height:64px;width:auto;}
.ft-blurb{font-size:var(--text-sm);margin:var(--s5) 0 var(--s4);max-width:34ch;line-height:1.6;}
.ft-strap{font-family:var(--font-display);font-weight:var(--w-bold);text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;color:var(--color-steel-light);}
.ft-strap .i{color:var(--color-red);font-weight:var(--w-black);}
footer.site h4{color:#fff;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.08em;margin:0 0 var(--s4);}
footer.site a{color:#9aa3b2;display:block;padding:6px 0;font-size:var(--text-sm);}
footer.site a:hover{color:#fff;}
.ft-contact p{font-size:var(--text-sm);margin-bottom:var(--s3);line-height:1.6;}
.ft-contact a{display:inline;padding:0;color:#fff;font-weight:var(--w-bold);}
.ft-bottom{border-top:1px solid rgba(255,255,255,.1);}
.ft-bottom .wrap{padding:var(--s5) var(--s6);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--s4);font-size:var(--text-xs);}
.ft-bottom .badges{display:flex;gap:var(--s3);flex-wrap:wrap;}
.ft-badge{border:1px solid rgba(255,255,255,.2);border-radius:6px;padding:5px 10px;font-weight:var(--w-bold);letter-spacing:.05em;color:var(--color-steel-light);}

/* ---------- STICKY MOBILE BAR ---------- */
.mobile-bar{display:none;position:fixed;bottom:0;left:0;right:0;z-index:80;}
.mobile-bar a{flex:1;text-align:center;padding:16px;font-weight:var(--w-bold);text-transform:uppercase;letter-spacing:.05em;font-size:var(--text-sm);color:#fff;}
.mobile-bar .c-call{background:var(--color-charcoal);}
.mobile-bar .c-quote{background:var(--color-red);}
@media(max-width:1080px){.mobile-bar{display:flex;}body{padding-bottom:54px;}}

/* ---------- ARTICLE (news detail) ---------- */
.article-hero-img{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-lg);aspect-ratio:16/8;background:#cfd6dd;margin-bottom:var(--s12);}
.article-hero-img img{width:100%;height:100%;object-fit:cover;}
.article-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s4);margin-top:var(--s5);font-size:var(--text-sm);color:var(--color-steel-light);font-weight:var(--w-bold);}
.article-meta .am-by{color:#fff;}
.article-meta .dot{width:4px;height:4px;border-radius:50%;background:var(--color-steel-light);flex:none;}
.prose{max-width:68ch;}
.prose > p{font-size:var(--text-lg);line-height:1.7;color:var(--color-ink);margin-bottom:var(--s6);}
.prose > p:first-of-type{font-size:var(--text-xl);line-height:1.55;color:var(--color-charcoal);font-weight:var(--w-medium);}
.prose h2{font-size:clamp(1.5rem,3vw,var(--text-2xl));font-weight:var(--w-black);text-transform:uppercase;letter-spacing:-.01em;line-height:1.12;margin:var(--s12) 0 var(--s4);}
.prose h2 + p{margin-top:0;}
.prose h3{font-size:var(--text-xl);font-weight:var(--w-bold);text-transform:uppercase;letter-spacing:-.01em;margin:var(--s8) 0 var(--s3);}
.prose ul.bullets{margin:0 0 var(--s6);display:flex;flex-direction:column;gap:var(--s2);}
.prose ul.bullets li{position:relative;padding-left:var(--s6);font-size:var(--text-lg);line-height:1.6;color:var(--color-ink);}
.prose ul.bullets li::before{content:"";position:absolute;left:0;top:.62em;width:9px;height:9px;border-radius:2px;background:var(--color-red);}
.prose ol.steps{margin:0 0 var(--s6);counter-reset:s;display:flex;flex-direction:column;gap:var(--s4);}
.prose ol.steps li{position:relative;padding-left:var(--s12);font-size:var(--text-lg);line-height:1.6;color:var(--color-ink);counter-increment:s;}
.prose ol.steps li::before{content:counter(s,decimal-leading-zero);position:absolute;left:0;top:0;font-family:var(--font-mono);font-weight:var(--w-bold);font-size:var(--text-sm);color:var(--color-red);}
.prose a:not(.btn){color:var(--color-red);font-weight:var(--w-bold);text-decoration:underline;text-underline-offset:3px;}
.prose strong{color:var(--color-charcoal);}
.article-quote{border-left:4px solid var(--color-red);background:var(--color-surface-alt);border-radius:0 var(--r-md) var(--r-md) 0;padding:var(--s6) var(--s8);margin:var(--s8) 0;}
.article-quote p{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--w-bold);color:var(--color-charcoal);line-height:1.4;margin:0;}
.article-key{background:var(--color-charcoal);color:#fff;border-radius:var(--r-lg);padding:var(--s8);margin:var(--s10) 0;}
.article-key h3{color:#fff;font-size:var(--text-lg);text-transform:uppercase;letter-spacing:.04em;margin:0 0 var(--s4);}
.article-key ul{display:flex;flex-direction:column;gap:var(--s3);}
.article-key li{display:flex;gap:12px;align-items:flex-start;font-size:var(--text-base);color:var(--color-on-dark);line-height:1.5;}
.article-key li::before{content:"";width:22px;height:22px;flex:none;border-radius:50%;background:var(--color-red);margin-top:1px;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='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;}
.article-figure{margin:var(--s8) 0;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-md);}
.article-figure img{width:100%;display:block;aspect-ratio:16/9;object-fit:cover;background:#cfd6dd;}
.article-figure figcaption{font-size:var(--text-sm);color:var(--color-text-muted);padding:var(--s3) var(--s4);background:var(--color-surface-alt);}
.article-share{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap;margin-top:var(--s10);padding-top:var(--s6);border-top:1px solid var(--color-border);}
.article-share .lbl{font-size:var(--text-xs);font-weight:var(--w-black);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);}
.article-share a{width:40px;height:40px;border-radius:var(--r-md);border:1.5px solid var(--color-border);display:flex;align-items:center;justify-content:center;color:var(--color-charcoal);transition:all .15s;}
.article-share a:hover{background:var(--color-charcoal);color:#fff;border-color:var(--color-charcoal);}
.toc{border:1px solid var(--color-border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm);margin-bottom:var(--s6);position:sticky;top:96px;}
.toc .hd{background:var(--color-charcoal);color:#fff;padding:var(--s4) var(--s5);font-weight:var(--w-black);text-transform:uppercase;font-size:var(--text-sm);letter-spacing:.06em;}
.toc .bd{padding:var(--s3) var(--s5) var(--s5);}
.toc a{display:block;padding:9px 0;border-bottom:1px solid var(--color-border);font-weight:var(--w-bold);font-size:var(--text-sm);color:var(--color-charcoal);line-height:1.35;}
.toc a:last-child{border-bottom:0;}
.toc a:hover{color:var(--color-red);}
.article-author{display:flex;gap:var(--s4);align-items:center;background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--r-lg);padding:var(--s6);margin-top:var(--s10);}
.article-author .av{width:56px;height:56px;border-radius:50%;background:var(--color-charcoal);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:var(--w-black);font-size:var(--text-lg);flex:none;}
.article-author .nm{font-weight:var(--w-black);color:var(--color-charcoal);font-size:var(--text-base);}
.article-author .ro{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:2px;}

/* utility */
.center{text-align:center;}
.mt-0{margin-top:0;}
.lead-narrow{max-width:60ch;}
.compliance{background:var(--color-surface-alt);border-left:4px solid var(--color-charcoal);border-radius:var(--r-md);padding:var(--s6) var(--s8);}
.compliance h3{font-size:var(--text-xl);text-transform:uppercase;margin:0 0 var(--s3);}
.compliance p{color:var(--color-text-muted);}

/* ---------- SPLIT LAYOUT: heading + copy left, two columns of list items right ---------- */
.wrap:has(> .sec-head + .featlist),
.wrap:has(> .sec-head + .checklist){display:grid;grid-template-columns:minmax(240px,0.85fr) 1.55fr;gap:var(--s6) var(--s10);align-items:start;}
.wrap:has(> .sec-head + .featlist) > .sec-head,
.wrap:has(> .sec-head + .checklist) > .sec-head{margin-bottom:0;max-width:34ch;}
/* Align the list block's top with the H2 (not the eyebrow above it) */
.wrap:has(> .sec-head + .featlist) > .featlist,
.wrap:has(> .sec-head + .checklist) > .checklist{margin-top:2.35rem;}
@media(max-width:860px){
  .wrap:has(> .sec-head + .featlist),
  .wrap:has(> .sec-head + .checklist){grid-template-columns:1fr;gap:var(--s6);}
  .wrap:has(> .sec-head + .featlist) > .featlist,
  .wrap:has(> .sec-head + .checklist) > .checklist{margin-top:0;}
}

/* ---------- CENTRED FAQ ---------- */
.faq{margin-left:auto;margin-right:auto;}
.sec-head:has(+ .faq){text-align:center;margin-left:auto;margin-right:auto;}

/* ---------- PROCESS as vertical numbered steps (anywhere it follows a heading) ---------- */
.sec-head + .process{display:block;margin-top:var(--s6);counter-reset:step;}
.sec-head + .process > .pstep{display:grid;grid-template-columns:auto 1fr;column-gap:var(--s6);align-items:start;padding:var(--s5) 0;border-top:1px solid var(--color-border);}
.sec-head + .process > .pstep:first-child{border-top:none;padding-top:0;}
.sec-head + .process > .pstep::before{position:static;grid-column:1;grid-row:1 / span 2;font-size:var(--text-xl);line-height:1.05;}
.sec-head + .process > .pstep::after{display:none;}
.sec-head + .process > .pstep > h4{grid-column:2;grid-row:1;margin:0 0 6px;}
.sec-head + .process > .pstep > p{grid-column:2;grid-row:2;font-size:var(--text-base);}

/* When the heading + process pair are direct children of a content .wrap, lay them out 50/50 */
.wrap:has(> .sec-head + .process){display:grid;grid-template-columns:1fr 1fr;gap:var(--s4) var(--s12);align-items:start;}
.wrap:has(> .sec-head + .process) > .sec-head{margin:0;max-width:62ch;text-align:left;}
.wrap:has(> .sec-head + .process) > .process{margin-top:0;}
@media(max-width:860px){
  .wrap:has(> .sec-head + .process){grid-template-columns:1fr;gap:var(--s6);}
}

/* Process left-column supporting image (under heading + copy) */
.proc-media{margin-top:var(--s4);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-md);aspect-ratio:3/2;}
.proc-media img{width:100%;height:100%;object-fit:cover;display:block;}
