/* 420 Global Supply — static site styles. No external fonts or libraries. */
:root{
  --ink:#0d1812; --ink2:#15271d; --forest:#1c3a2b; --leaf:#2f6b47; --leaf-d:#245538; --leaf-l:#e3eee7; --mint:#8fd1a8;
  --sand:#f4f1ea; --paper:#fff; --line:#ddd7ca; --text:#1b2620; --muted:#55615a; --gold:#e0b64a;
  --focus:#1c3a2b;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --r:10px; --wrap:1160px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font:400 1.0625rem/1.62 var(--sans);color:var(--text);background:var(--paper);overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--leaf-d)}
h1,h2,h3{margin:0;line-height:1.15;color:inherit}
h1,h2{font-family:var(--serif);font-weight:600;letter-spacing:-.012em}
h1{font-size:clamp(1.85rem,1.25rem + 2.1vw,2.7rem);text-wrap:balance}
h2{font-size:clamp(1.45rem,1.1rem + 1.15vw,2.05rem);text-wrap:balance}
h3{font:650 1.075rem/1.3 var(--sans);letter-spacing:0}
p{margin:0 0 1em}
.wrap{width:min(100% - 2.5rem,var(--wrap));margin-inline:auto}
.narrow{width:min(100% - 2.5rem,820px)}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:3px}
.site-header :focus-visible,.site-footer :focus-visible,.hero :focus-visible,.page-hero :focus-visible,.cta-band :focus-visible,.sec-dark :focus-visible{outline-color:var(--gold)}
.skip{position:absolute;left:-999px;top:0;background:var(--gold);color:#000;padding:.7rem 1rem;z-index:100;font-weight:600}
.skip:focus{left:0}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem 1.4rem;border-radius:7px;background:var(--leaf);color:#fff;font:600 .98rem/1.2 var(--sans);text-decoration:none;border:2px solid var(--leaf);cursor:pointer;transition:background .2s,border-color .2s,transform .2s}
.btn:hover{background:var(--leaf-d);border-color:var(--leaf-d)}
.btn:active{transform:translateY(1px)}
.btn-sm{padding:.55rem 1rem;font-size:.92rem}
.btn-ghost{background:transparent;border-color:rgba(255,255,255,.55);color:#fff}
.btn-ghost:hover{background:rgba(255,255,255,.12);border-color:#fff}
.cta-band .btn,.sec-dark .btn{background:#fff;color:var(--forest);border-color:#fff}
.cta-band .btn:hover{background:var(--leaf-l);border-color:var(--leaf-l)}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:var(--ink);color:#fff;border-bottom:1px solid rgba(255,255,255,.08);transition:box-shadow .25s}
.site-header.scrolled{box-shadow:0 6px 24px rgba(0,0,0,.28)}
.bar{display:flex;align-items:center;gap:1.5rem;min-height:68px}
.brand{display:inline-flex;align-items:baseline;gap:.5rem;color:#fff;text-decoration:none;white-space:nowrap}
.b-num{font:700 1.55rem/1 var(--serif);color:var(--mint);letter-spacing:.01em}
.b-txt{font:600 .78rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#e6efe9}
.nav{margin-left:auto}
.nav ul{display:flex;align-items:center;gap:.2rem;list-style:none;margin:0;padding:0}
.nav a:not(.btn){display:block;padding:.55rem .8rem;color:#dbe6df;text-decoration:none;font-weight:500;font-size:.95rem;border-radius:6px;position:relative}
.nav a:not(.btn):hover{color:#fff}
.nav a[aria-current=page]{color:#fff}
.nav a[aria-current=page]::after{content:"";position:absolute;left:.8rem;right:.8rem;bottom:.2rem;height:2px;background:var(--mint)}
.nav-cta{display:none}
.tools{display:flex;align-items:center;gap:.9rem}
.lang{display:flex;gap:.1rem;font-size:.78rem;font-weight:600;letter-spacing:.06em}
.lang a{color:#b7c6bc;text-decoration:none;padding:.35rem .45rem;border-radius:5px}
.lang a:hover{color:#fff}
.lang a[aria-current]{color:var(--ink);background:var(--mint)}
.menu-btn{display:none;align-items:center;gap:.5rem;background:transparent;border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:7px;padding:.5rem .8rem;font:600 .9rem var(--sans);cursor:pointer}
.menu-ico,.menu-ico::before,.menu-ico::after{display:block;width:16px;height:2px;background:#fff;border-radius:2px;position:relative;transition:transform .2s,opacity .2s}
.menu-ico::before,.menu-ico::after{content:"";position:absolute;left:0}
.menu-ico::before{top:-5px}.menu-ico::after{top:5px}
.menu-open .menu-ico{background:transparent}
.menu-open .menu-ico::before{transform:translateY(5px) rotate(45deg)}
.menu-open .menu-ico::after{transform:translateY(-5px) rotate(-45deg)}

/* hero */
.hero{position:relative;background:var(--ink);color:#fff;min-height:min(78vh,640px);display:flex;align-items:center;overflow:hidden}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:45% 40%;transform:scaleX(-1)}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,17,12,.9) 0%,rgba(9,17,12,.72) 36%,rgba(9,17,12,.2) 68%,rgba(9,17,12,.05) 100%)}
.hero-in{position:relative;padding-block:4.5rem}
.hero h1{font-size:clamp(2rem,1.3rem + 2.6vw,3.05rem);max-width:17ch;margin:.5rem 0 1.1rem}
.eyebrow{font:600 .78rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--mint);margin:0}
.hero-sub{font-size:clamp(1.05rem,.95rem + .5vw,1.28rem);max-width:34rem;color:#f0f5f2;margin-bottom:.9rem}
.hero-support{font-size:.98rem;color:#b9c9bf;max-width:30rem;margin-bottom:1.8rem;border-left:2px solid var(--mint);padding-left:.9rem}
.hero-cta{display:flex;flex-wrap:wrap;gap:.8rem;margin:0}
.facts{background:var(--forest);color:#e6f0ea}
.facts ul{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;list-style:none;margin:0;padding:1.15rem 0}
.facts li{display:flex;gap:.65rem;align-items:flex-start;font-size:.95rem;line-height:1.4}
.ico{flex:none;color:var(--mint);margin-top:.05rem}

/* sections */
.sec{padding-block:clamp(3rem,6vw,5rem)}
.sec-alt{background:var(--sand)}
.sec-dark{background:var(--ink2);color:#e8f0eb}
.sec-h{margin-bottom:2rem;max-width:44rem}
.sec-h h2{margin-bottom:.6rem}
.sec-h p{color:var(--muted);margin:0}
.fineprint{font-size:.9rem;color:var(--muted);margin:1.6rem 0 0;max-width:46rem}

/* cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.card{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s}
.card:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(13,24,18,.12)}
.card-img{aspect-ratio:3/2;overflow:hidden;background:var(--sand)}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.card:hover .card-img img{transform:scale(1.035)}
.card-b{padding:1.3rem 1.4rem 1.5rem;display:flex;flex-direction:column;flex:1}
.card-b h3{font-size:1.2rem;margin-bottom:.55rem}
.card-b h3 a{color:var(--text);text-decoration:none}
.card-b h3 a::after{content:"";position:absolute;inset:0}
.card-b p{color:var(--muted);font-size:.97rem}
.more{margin-top:auto;display:inline-flex;align-items:center;gap:.35rem;font-weight:600;font-size:.93rem;color:var(--leaf-d)}
.arr{transition:transform .2s}.card:hover .arr{transform:translateX(3px)}

/* flow / steps */
.flow,.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem;counter-reset:s}
.flow li,.steps li{position:relative;padding-top:1rem;border-top:2px solid var(--leaf)}
.flow .n{display:inline-block;font:700 .82rem var(--sans);color:var(--leaf-d);letter-spacing:.1em;margin-bottom:.45rem}
.steps li{counter-increment:s}
.steps li::before{content:counter(s,decimal-leading-zero);display:block;font:700 .82rem var(--sans);color:var(--leaf-d);letter-spacing:.1em;margin-bottom:.45rem}
.flow h3,.steps h3{margin-bottom:.35rem}
.flow p,.steps p{color:var(--muted);font-size:.96rem;margin:0}
.steps.v{grid-template-columns:1fr;gap:1.2rem}

/* benefit grids */
.bgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem}
.bgrid.b3{grid-template-columns:repeat(3,1fr)}
.ben,.diff{background:#fff;border:1px solid var(--line);border-left:4px solid var(--leaf);border-radius:8px;padding:1.3rem 1.4rem}
.sec-alt .ben{background:#fff}
.ben h3,.diff h3{margin-bottom:.45rem}
.ben p,.diff p{margin:0;color:var(--muted);font-size:.97rem}
.dgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem}

/* network */
.net-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:3rem;align-items:center}
.net-text h2{margin-bottom:.9rem}
.net-text>p{color:#c7d6cd}
.regions{list-style:none;margin:1.2rem 0 1.6rem;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.regions li{border:1px solid rgba(255,255,255,.25);border-radius:99px;padding:.3rem .85rem;font-size:.88rem;color:#e8f0eb}
.stat{display:flex;align-items:baseline;gap:.9rem;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.18);padding-top:1.3rem}
.stat-n{font:600 2.6rem/1 var(--serif);color:var(--mint)}
.stat-l{font-weight:600;max-width:20rem;line-height:1.35}
.stat-note{font-size:.88rem;color:#a9bbb0;margin:.7rem 0 0;max-width:34rem}
.net-photos{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:.8rem}
.net-photos figure{margin:0;border-radius:8px;overflow:hidden;background:#000}
.net-photos img{width:100%;height:100%;object-fit:cover}
.np1{grid-column:1/3;aspect-ratio:16/9}
.np2,.np3{aspect-ratio:4/3}

/* CTA band */
.cta-band{background:var(--forest);color:#fff;padding-block:clamp(2.6rem,5vw,4rem)}
.cta-in{display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.cta-in h2{margin-bottom:.5rem;max-width:28ch}
.cta-p{margin:0;color:#c9d9cf;max-width:36rem}
.cta-lead{font:500 clamp(1.3rem,1rem + 1.1vw,1.75rem)/1.3 var(--serif);max-width:34ch;margin:0}

/* page hero */
.page-hero{background:var(--ink);color:#fff;padding-block:clamp(2.6rem,5vw,4rem)}
.page-hero.compact{padding-block:clamp(2.4rem,4vw,3.4rem)}
.ph-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:3rem;align-items:center}
.page-hero h1{margin:.7rem 0 1rem;max-width:20ch}
.page-hero .lead{font-size:1.1rem;color:#cbd9d0;max-width:40rem;margin-bottom:1.5rem}
.page-hero .lead.small{font-size:.95rem;margin:.6rem 0 0;color:#9fb2a7}
.page-hero.compact h1{max-width:none}
.page-hero.compact .lead{margin-bottom:0}
.ph-cta{margin:0}
.ph-img{border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;background:#000}
.ph-img img{width:100%;height:100%;object-fit:cover}

/* photos */
.band-photos{padding-block:0 clamp(3rem,6vw,5rem)}
.photos{display:grid;gap:1rem}
.photos.n2{grid-template-columns:1fr 1fr}
.photos.n3{grid-template-columns:repeat(3,1fr)}
.photos figure,.split-img{margin:0;border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;background:var(--sand)}
.photos img,.split-img img{width:100%;height:100%;object-fit:cover}
.split{display:grid;grid-template-columns:1.1fr 1fr;gap:3rem;align-items:center}

/* callout */
.note{display:flex;gap:1rem;background:#fff;border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:8px;padding:1.4rem 1.5rem}
.sec:not(.sec-alt) .note{background:var(--sand)}
.note .ico{color:#8a6a1b;margin-top:.2rem}
.note h2{font:650 1.15rem/1.3 var(--sans);margin-bottom:.5rem;letter-spacing:0}
.note p{margin:0;color:var(--text);font-size:.99rem}

/* timeline / terms / panels */
.timeline{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:1rem;position:relative}
.timeline li{background:#fff;border:1px solid var(--line);border-radius:8px;padding:1rem 1rem 1.1rem;position:relative}
.timeline .n{display:inline-grid;place-items:center;width:1.8rem;height:1.8rem;border-radius:50%;background:var(--leaf);color:#fff;font:700 .82rem var(--sans);margin-bottom:.6rem}
.timeline h3{margin-bottom:.35rem;font-size:1rem}
.timeline p{margin:0;font-size:.88rem;color:var(--muted);line-height:1.5}
.terms{margin:0;border-top:1px solid var(--line)}
.trow{display:grid;grid-template-columns:200px 1fr;gap:1.5rem;padding:1.05rem 0;border-bottom:1px solid var(--line)}
.trow dt{font-weight:650}
.trow dd{margin:0;color:var(--text)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.5rem}
.panel h3{margin-bottom:1rem;font-size:1.1rem}
.ticks{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
.ticks li{display:flex;gap:.65rem;align-items:flex-start}
.ticks .ico{color:var(--leaf)}
.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.chips li{background:var(--sand);border:1px solid var(--line);border-radius:99px;padding:.35rem .9rem;font-size:.92rem}

/* about points */
.points{list-style:none;margin:0;padding:0}
.points li{display:grid;grid-template-columns:3.2rem 1fr;gap:1rem;padding:1.5rem 0;border-bottom:1px solid var(--line)}
.points li:first-child{border-top:1px solid var(--line)}
.points .n{font:600 1.5rem/1 var(--serif);color:var(--leaf)}
.points h3{margin-bottom:.35rem;font-size:1.12rem}
.points p{margin:0;color:var(--muted)}

/* form */
.form-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:3rem;align-items:start}
.form{display:grid;gap:1.15rem}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:1.15rem}
.fld label{display:block;font-weight:600;font-size:.93rem;margin-bottom:.35rem}
.opt{font-weight:400;color:var(--muted)}
.fld input,.fld select,.fld textarea{width:100%;font:inherit;color:var(--text);background:#fff;border:1.5px solid #b9b3a4;border-radius:7px;padding:.7rem .8rem;transition:border-color .15s,box-shadow .15s}
.fld textarea{resize:vertical;min-height:7rem}
.fld input:hover,.fld select:hover,.fld textarea:hover{border-color:#7d8a82}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--leaf);box-shadow:0 0 0 3px rgba(47,107,71,.25)}
.fld.invalid input,.fld.invalid select,.fld.invalid textarea{border-color:#b3261e;background:#fff8f7}
.err{margin:.35rem 0 0;font-size:.86rem;color:#b3261e;min-height:0}
.err:empty{display:none}
.check{display:grid;grid-template-columns:auto 1fr;gap:.2rem .7rem;align-items:start}
.check input{width:1.2rem;height:1.2rem;margin-top:.2rem;accent-color:var(--leaf)}
.check label{font-weight:400;font-size:.93rem;margin:0}
.check .err{grid-column:2}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-foot{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap}
.form .btn[disabled]{opacity:.6;cursor:progress}
.status{margin:0;font-weight:600;font-size:.95rem}
.status:empty{display:none}
.status.ok{color:var(--leaf-d);background:var(--leaf-l);border-radius:7px;padding:.8rem 1rem;flex:1 1 100%}
.status.bad{color:#8e1d17;background:#fdecea;border-radius:7px;padding:.8rem 1rem;flex:1 1 100%}
.side{background:var(--sand);border:1px solid var(--line);border-radius:var(--r);padding:1.6rem}
.side h2{font:650 1.1rem var(--sans);margin-bottom:1rem;letter-spacing:0}
.b2b{margin:1.4rem 0 0;padding-top:1.1rem;border-top:1px solid var(--line);font-size:.92rem;color:var(--muted)}

/* legal */
.legal section{margin-bottom:2rem}
.legal h2{font:650 1.2rem var(--sans);margin-bottom:.6rem;letter-spacing:0}
.legal p{color:#2d3a33}

/* 404 */
.nf-wrap{min-height:46vh;display:flex;align-items:center}

/* footer */
.site-footer{background:var(--ink);color:#c3d1c8;padding-top:3rem;font-size:.95rem}
.f-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:2rem;padding-bottom:2.2rem}
.f-brand p{margin:.9rem 0 0;max-width:24rem;color:#9fb0a5}
.f-h{font:600 .78rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--mint);margin:0 0 .9rem}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.site-footer a{color:#c3d1c8;text-decoration:none}
.site-footer a:hover{color:#fff;text-decoration:underline}
.site-footer .brand{color:#fff}
.f-bottom{border-top:1px solid rgba(255,255,255,.1);padding-block:1.4rem 2rem;display:grid;gap:.4rem;font-size:.84rem;color:#8a9b90}
.f-bottom p{margin:0;max-width:62rem}

/* motion */
.js .reveal{opacity:0;transform:translateY(12px);transition:opacity .5s ease,transform .5s ease}
.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .reveal{opacity:1;transform:none;transition:none}
  .card,.card-img img,.arr,.btn{transition:none}
}

/* responsive */
@media (max-width:1020px){
  .cards{grid-template-columns:1fr 1fr}
  .flow,.steps{grid-template-columns:1fr 1fr}
  .timeline{grid-template-columns:repeat(3,1fr)}
  .bgrid.b3{grid-template-columns:1fr 1fr}
  .f-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .menu-btn{display:inline-flex}
  .hide-sm{display:none}
  .nav{position:absolute;left:0;right:0;top:100%;background:var(--ink);border-top:1px solid rgba(255,255,255,.1);margin:0;display:none;box-shadow:0 18px 30px rgba(0,0,0,.35)}
  .menu-open .nav{display:block}
  .nav ul{flex-direction:column;align-items:stretch;gap:0;padding:.6rem 1.25rem 1.2rem}
  .nav a:not(.btn){padding:.9rem .2rem;border-bottom:1px solid rgba(255,255,255,.08);font-size:1.02rem}
  .nav a[aria-current=page]::after{display:none}
  .nav-cta{display:block;padding-top:1rem}
  .nav-cta .btn{width:100%}
  .tools{margin-left:auto}
  .bar{gap:.8rem}
  .hero{min-height:0}
  .hero-shade{background:linear-gradient(180deg,rgba(9,17,12,.8) 0%,rgba(9,17,12,.88) 100%)}
  .hero-in{padding-block:3.2rem 3.4rem}
  .facts ul{grid-template-columns:1fr;gap:.8rem}
  .net-grid,.ph-grid,.split,.form-grid{grid-template-columns:1fr;gap:2rem}
  .ph-img{aspect-ratio:16/10}
  .dgrid,.two{grid-template-columns:1fr}
  .photos.n3{grid-template-columns:1fr 1fr}
  .photos.n3 figure:last-child{grid-column:1/3;aspect-ratio:16/9}
}
@media (max-width:640px){
  body{font-size:1rem}
  .cards,.flow,.steps,.bgrid,.bgrid.b3,.row2{grid-template-columns:1fr}
  .timeline{grid-template-columns:1fr}
  .photos.n2,.photos.n3{grid-template-columns:1fr}
  .photos.n3 figure:last-child{grid-column:auto;aspect-ratio:4/3}
  .trow{grid-template-columns:1fr;gap:.2rem}
  .f-grid{grid-template-columns:1fr}
  .b-txt{letter-spacing:.14em;font-size:.7rem}
  .lang a{padding:.35rem .35rem}
  .cta-in .btn{width:100%}
  .menu-txt{display:none}
  .menu-btn{padding:.6rem .7rem}
}
@media (max-width:380px){.b-txt{display:none}}

/* logos (supplied artwork on a light plate; proportions untouched) */
.brand{display:inline-flex;align-items:center;background:transparent;border-radius:0;padding:0}
.logo-h{height:42px;width:auto}
.logo-s{height:42px;width:auto}
.site-footer .brand{padding:0}

/* production roadmap */
.roadmap{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:0 1.1rem;counter-reset:rm}
.roadmap li{position:relative;padding-top:2.7rem;display:flex;flex-direction:column;align-items:flex-start}
.roadmap .n{position:absolute;top:0;left:0;width:2rem;height:2rem;border-radius:50%;display:grid;place-items:center;background:var(--leaf);color:#fff;font:700 .88rem var(--sans);z-index:1;box-shadow:0 0 0 5px var(--sand)}
.roadmap li::after{content:"";position:absolute;top:calc(1rem - 1px);left:2rem;right:-1.1rem;height:2px;background:var(--leaf);opacity:.35}
.roadmap li:last-child::after{display:none}
.roadmap h3{font-size:1.02rem;margin-bottom:.4rem}
.roadmap p{margin:0 0 .8rem;font-size:.9rem;line-height:1.5;color:var(--muted)}
.tag{margin-top:auto;display:inline-block;font:600 .76rem/1.25 var(--sans);padding:.3rem .6rem;border-radius:99px;background:#fff;border:1px solid #c9d3cc;color:var(--forest)}
.tag.pay{background:var(--forest);border-color:var(--forest);color:#fff}

@media (max-width:1020px){
  .roadmap{grid-template-columns:1fr;gap:0}
  .roadmap li{padding:0 0 1.6rem 3.2rem;min-height:3rem}
  .roadmap li:last-child{padding-bottom:0}
  .roadmap li::after{top:2.1rem;bottom:.1rem;left:calc(1rem - 1px);right:auto;width:2px;height:auto}
  .roadmap li:last-child::after{display:none}
  .roadmap h3{padding-top:.3rem}
}
@media (max-width:640px){
  .logo-h{height:34px}
  .brand{padding:.28rem .5rem}
  .logo-s{height:72px}
}

/* logos: transparent artwork straight on the dark header/footer (replaces the earlier light plate) */
.brand,.site-footer .brand{background:none;padding:0;border-radius:0}
.logo-h{height:42px;width:auto}
.logo-s{height:62px;width:auto}
@media (max-width:640px){
  .brand{padding:0}
  .logo-h{height:35px}
  .logo-s{height:56px}
}


/* Refined service-page composition for desktop and tablet */
@media (min-width: 1021px) {
  .page-hero .wrap, .sec .wrap, .cta-band .wrap { max-width: 1240px; }
  .ph-grid { grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr); gap: clamp(2rem, 4vw, 4.25rem); }
  .page-hero { padding-block: clamp(3.4rem, 5.2vw, 5.2rem); }
  .ph-img { aspect-ratio: 5 / 4; min-height: 390px; }
  .sec { padding-block: clamp(3.4rem, 5vw, 5rem); }
  .photos.n3 { grid-template-columns: 1.15fr 1fr 1fr; }
  .photos.n3 figure { aspect-ratio: 4 / 3; }
  .photos.n3 figure:first-child { aspect-ratio: 4 / 3; }
  .split { gap: clamp(2rem, 4vw, 4rem); }
}
@media (min-width: 641px) and (max-width: 1020px) {
  .wrap { width: min(100% - 2.5rem, 900px); }
  .page-hero { padding-block: 2.6rem 3rem; }
  .ph-grid { grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); gap: 1.75rem; }
  .page-hero h1 { font-size: clamp(2.2rem, 4.2vw, 3.2rem); line-height: 1.05; }
  .page-hero .lead { font-size: 1rem; line-height: 1.65; }
  .ph-img { aspect-ratio: 4 / 5; min-height: 310px; }
  .sec { padding-block: 2.8rem; }
  .sec-h { max-width: 58rem; }
  .photos.n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; }
  .photos.n3 figure { aspect-ratio: 3 / 4; }
  .split { grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); gap: 1.5rem; }
  .split-img { aspect-ratio: 4 / 3; }
  .cta-in { align-items: flex-start; }
}
@media (min-width: 641px) and (max-width: 820px) {
  .ph-grid, .split { grid-template-columns: 1fr 1fr; gap: 1.25rem; }
  .page-hero h1 { font-size: clamp(2rem, 4vw, 2.6rem); }
  .page-hero .lead { font-size: .94rem; }
  .ph-img { min-height: 280px; aspect-ratio: 3 / 4; }
  .photos.n3 { grid-template-columns: 1fr 1fr; }
  .photos.n3 figure:last-child { grid-column: auto; }
}
@media (max-width: 640px) {
  .ph-img { aspect-ratio: 16 / 10; }
}


/* Desktop/tablet visual refinement: consistent image framing and calmer editorial rhythm */
@media (min-width: 1021px) {
  .page-hero .wrap, .sec .wrap, .cta-band .wrap { max-width: 1280px; }
  .ph-grid { align-items: center; }
  .ph-text { max-width: 40rem; }
  .ph-img { aspect-ratio: 5 / 4; overflow: hidden; border-radius: 4px; }
  .ph-img img, .split-img img, .photos img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .sec { padding-block: clamp(3.5rem, 5vw, 5.25rem); }
  .photos.n3 { gap: 1rem; }
  .photos.n3 figure { overflow: hidden; border-radius: 3px; }
}
@media (min-width: 821px) and (max-width: 1020px) {
  .wrap { width: min(100% - 3rem, 900px); }
  .ph-grid { grid-template-columns: minmax(0, 1fr) minmax(0, .85fr); gap: 1.5rem; align-items: center; }
  .page-hero { padding-block: 2.5rem; }
  .page-hero h1 { font-size: clamp(2rem, 3.6vw, 2.75rem); line-height: 1.08; }
  .page-hero .lead { font-size: .96rem; line-height: 1.65; }
  .ph-img { aspect-ratio: 4 / 5; min-height: 300px; overflow: hidden; }
  .sec { padding-block: 2.75rem; }
  .photos.n3 { grid-template-columns: repeat(3, minmax(0,1fr)); gap: .75rem; }
  .photos.n3 figure { aspect-ratio: 4 / 3; overflow: hidden; }
  .split { gap: 1.5rem; align-items: center; }
  .split-img { aspect-ratio: 4 / 3; overflow: hidden; }
}
@media (min-width: 641px) and (max-width: 820px) {
  .wrap { width: min(100% - 2.5rem, 720px); }
  .ph-grid { grid-template-columns: 1fr; gap: 1.5rem; }
  .page-hero { padding-block: 2.25rem 2.5rem; }
  .page-hero h1 { max-width: 15ch; font-size: clamp(2.2rem, 5vw, 3rem); line-height: 1.04; }
  .page-hero .lead { max-width: 62ch; font-size: 1rem; }
  .ph-img { aspect-ratio: 16 / 9; min-height: 0; max-height: 390px; overflow: hidden; }
  .sec { padding-block: 2.5rem; }
  .photos.n3 { grid-template-columns: repeat(2, minmax(0,1fr)); gap: .75rem; }
  .photos.n3 figure { aspect-ratio: 4 / 3; overflow: hidden; }
  .photos.n3 figure:first-child { grid-column: 1 / -1; aspect-ratio: 16 / 7; }
  .split { grid-template-columns: 1fr 1fr; gap: 1.25rem; align-items: center; }
  .split-img { aspect-ratio: 4 / 3; overflow: hidden; }
}

/* Service-page editorial system: restrained layouts, strong hierarchy, and stable desktop/tablet proportions. */
.service-hero .ph-grid{grid-template-columns:minmax(0,1.02fr) minmax(340px,.98fr);gap:clamp(2rem,4vw,4.5rem)}
.service-hero h1{max-width:16ch;font-size:clamp(2.45rem,3.7vw,4.1rem);line-height:1.02;letter-spacing:-.035em}
.service-hero .lead{max-width:57ch;font-size:clamp(1rem,1.15vw,1.15rem);line-height:1.7}
.service-hero-img{aspect-ratio:5/4;min-height:300px;border-radius:3px;position:relative}
.service-hero-img img{width:100%;height:100%;object-fit:cover}
.service-section .sec-h{max-width:48rem}
.service-section .sec-h h2,.service-network h2,.service-agreement h2{font-size:clamp(1.8rem,2.3vw,2.65rem);letter-spacing:-.025em}
.service-kicker{margin-bottom:.9rem;color:var(--leaf-d);font-size:.72rem;letter-spacing:.19em}
.service-section .sec-h p,.service-section p{max-width:67ch}
.service-split{grid-template-columns:minmax(0,1fr) minmax(320px,.86fr);gap:clamp(2rem,5vw,5.5rem)}
.service-split h3{margin:.8rem 0 .5rem}
.service-split .split-img{aspect-ratio:5/4;border-radius:3px}
.service-network{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);align-items:center;gap:clamp(2rem,6vw,6rem)}
.service-network>div{max-width:36rem}
.service-network h2{margin-bottom:1rem}
.service-network p{color:var(--muted)}
.service-network .service-note{font-size:.94rem;border-left:2px solid var(--leaf);padding-left:1rem;color:var(--text);margin-top:1.4rem}
.service-network-img{margin:0;aspect-ratio:5/4;overflow:hidden;border-radius:3px;background:var(--line)}
.service-network-img img{width:100%;height:100%;object-fit:cover}
.service-agreement{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);gap:clamp(2rem,7vw,7rem);align-items:center}
.service-agreement>div:first-child{max-width:42rem}
.service-agreement h2{margin-bottom:1rem}
.agreement-visual{background:#f8f7f3;border:1px solid var(--line);padding:clamp(1.4rem,3vw,2.5rem);min-height:230px;box-shadow:10px 10px 0 var(--leaf-l)}
.agreement-line{display:block;width:78%;height:7px;background:#d9ddd8;margin:0 0 13px}
.agreement-line.long{width:100%}.agreement-line.medium{width:54%}
.agreement-rule{height:1px;background:#aab6ac;margin:1.5rem 0}
.agreement-sign{display:block;text-align:right;color:var(--leaf-d);font-size:.68rem;font-weight:700;letter-spacing:.18em;margin-top:1.7rem}
.service-section figure img{transition:transform .35s ease}
.service-section figure{background:#e9e9e2}
.service-section figure:hover img{transform:scale(1.015)}
@media(max-width:1020px){
 .service-hero .ph-grid{grid-template-columns:minmax(0,1fr) minmax(280px,.9fr);gap:1.5rem}
 .service-hero h1{font-size:clamp(2.2rem,4vw,3.2rem)}
 .service-hero .lead{font-size:.98rem}
 .service-network{gap:2rem}
 .service-split{gap:1.75rem}
}
@media(min-width:641px) and (max-width:820px){
 .service-hero .ph-grid{grid-template-columns:1fr 1fr;gap:1.2rem}
 .service-hero h1{font-size:clamp(2rem,3.8vw,2.65rem)}
 .service-hero-img{min-height:260px}
 .service-network{grid-template-columns:1fr 1fr;gap:1.2rem}
 .service-split{grid-template-columns:1fr 1fr;gap:1.2rem}
 .service-agreement{grid-template-columns:1fr 1fr;gap:1.5rem}
}
@media(max-width:640px){
 .service-hero .ph-grid,.service-network,.service-agreement{grid-template-columns:1fr}
 .service-hero h1{font-size:clamp(2.2rem,9vw,3.1rem)}
 .service-hero-img{min-height:0;aspect-ratio:4/3}
 .service-network{gap:1.5rem}
 .service-split{grid-template-columns:1fr;gap:1.4rem}
 .service-split .split-img{order:2;aspect-ratio:4/3}
 .agreement-visual{min-height:190px}
 .service-section .sec-h{margin-bottom:1.35rem}
}


/* Homepage refinement — 420 Global Supply */
.home-hero{min-height:min(76vh,680px)}
.home-hero .hero-in{max-width:var(--max,1200px);padding-block:clamp(3.2rem,7vw,6.5rem)}
.home-hero h1{max-width:12ch;font-size:clamp(2.5rem,4.4vw,4.6rem);line-height:1.02;letter-spacing:-.035em;text-wrap:balance;margin:.65rem 0 1.15rem}
.home-hero .hero-sub{max-width:48ch;font-size:clamp(1.05rem,1.3vw,1.25rem);line-height:1.65}
.home-hero .hero-cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.7rem}
.sec-h{max-width:850px;margin-bottom:2rem}
.sec-h h2,.approach-head h2,.net-text h2,.cta-in h2{font-size:clamp(1.8rem,3vw,3rem);line-height:1.12;letter-spacing:-.025em;text-wrap:balance}
.sec-h p{max-width:68ch;color:var(--muted,var(--text));margin:.8rem 0 0;line-height:1.7}
.services-home .cards{gap:1.1rem}
.services-home .card{border-radius:10px;border-color:rgba(11,27,19,.12);box-shadow:0 2px 10px rgba(11,27,19,.025)}
.services-home .card-img{aspect-ratio:1.38/1;background:#e9ece5}
.services-home .card-b{padding:1.25rem 1.35rem 1.5rem}
.card-index{display:block;font-size:.75rem;letter-spacing:.15em;font-weight:700;color:var(--leaf);margin-bottom:.65rem}
.services-home .card-b h3{font-size:clamp(1.12rem,1.5vw,1.35rem);line-height:1.25}
.services-home .card-b p{line-height:1.65;color:#59635d}
.services-home .more{display:inline-flex;align-items:center;gap:.5rem;margin-top:auto;padding-top:.6rem;color:var(--forest);font-weight:650;text-decoration:none}
.services-home .more:hover{text-decoration:underline;text-underline-offset:4px}
.approach-home{background:#f6f6f0}
.approach-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.72fr);column-gap:3rem;align-items:end;margin-bottom:2.5rem}
.approach-head .eyebrow{grid-column:1/-1;color:var(--leaf);margin-bottom:.75rem}
.approach-head h2{margin:0;max-width:14ch}
.approach-head>p:last-child{margin:0;max-width:46ch;color:#59635d;line-height:1.7}
.approach-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid rgba(11,27,19,.18)}
.approach-grid article{padding:1.45rem 1.6rem 0 0;margin-right:1.6rem;border-right:1px solid rgba(11,27,19,.14)}
.approach-grid article:last-child{border-right:0;margin-right:0}
.approach-no{display:inline-block;color:var(--leaf);font-size:.78rem;font-weight:700;letter-spacing:.15em;margin-bottom:1.05rem}
.approach-grid h3{font-size:1.2rem;line-height:1.25;margin:0 0 .6rem}
.approach-grid p{color:#59635d;line-height:1.65;margin:0;max-width:36ch}
.network-home .net-grid{align-items:center;gap:clamp(2rem,5vw,5rem)}
.network-home .net-text h2{max-width:13ch;margin:.7rem 0 1rem}
.network-home .net-text>p:not(.eyebrow){max-width:52ch;line-height:1.75;color:#d1ded5}
.network-home .net-photos{min-height:390px;grid-template-columns:1.15fr .85fr;grid-template-rows:1fr 1fr;gap:12px}
.network-home .net-photos figure{border-radius:8px;overflow:hidden}
.network-home .net-photos .np1{grid-row:1/3}
.network-home .net-photos .np2,.network-home .net-photos .np3{min-height:0}
.network-home .net-photos img{width:100%;height:100%;object-fit:cover;display:block}
.cta-band .cta-in{gap:2rem}
.cta-band .cta-p{max-width:62ch;line-height:1.7}
/* Transparent supplied logos include the slogan; keep them legible on the dark header/footer. */
.logo-h{width:205px;height:auto;max-height:68px;object-fit:contain}
.logo-s{width:190px;height:auto;max-height:110px;object-fit:contain}
@media(max-width:980px){
 .home-hero{min-height:560px}
 .home-hero h1{font-size:clamp(2.4rem,5.8vw,3.6rem);max-width:12ch}
 .services-home .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
 .services-home .card:last-child{grid-column:1/-1;display:grid;grid-template-columns:.9fr 1.1fr}
 .services-home .card:last-child .card-img{height:100%;aspect-ratio:auto}
 .network-home .net-grid{grid-template-columns:1fr;}
 .network-home .net-photos{min-height:350px}
 .logo-h{width:175px;max-height:60px}
}
@media(max-width:640px){
 .home-hero{min-height:610px;align-items:flex-end}
 .home-hero .hero-in{padding-block:3rem 3.25rem}
 .home-hero .hero-img{object-position:62% center;transform:none}
 .home-hero .hero-shade{background:linear-gradient(0deg,rgba(9,17,12,.93) 0%,rgba(9,17,12,.76) 48%,rgba(9,17,12,.18) 100%)}
 .home-hero h1{font-size:clamp(2.45rem,10vw,3.4rem);max-width:11ch}
 .home-hero .hero-cta{display:grid;grid-template-columns:1fr;max-width:330px}
 .home-hero .hero-cta .btn{width:100%}
 .services-home .cards{grid-template-columns:1fr;gap:1rem}
 .services-home .card:last-child{grid-column:auto;display:flex}
 .services-home .card:last-child .card-img{height:auto;aspect-ratio:1.38/1}
 .approach-head{display:block;margin-bottom:1.8rem}
 .approach-head h2{margin:.5rem 0 .9rem;max-width:16ch}
 .approach-grid{grid-template-columns:1fr}
 .approach-grid article{padding:1.2rem 0;border-right:0;border-bottom:1px solid rgba(11,27,19,.14);margin:0}
 .approach-grid article:last-child{border-bottom:0}
 .network-home .net-photos{min-height:0;grid-template-columns:1fr 1fr;grid-template-rows:180px 140px}
 .network-home .net-photos .np1{grid-row:auto;grid-column:1/-1}
 .network-home .net-photos .np2,.network-home .net-photos .np3{height:140px}
 .logo-h{width:148px;max-height:52px}
 .logo-s{width:170px;max-height:100px}
}
/* Keep the selected personal photo unmirrored; position copy in the open space on the right. */
@media(min-width:641px){
 .home-hero .hero-img{transform:none;object-position:center center}
 .home-hero .hero-shade{background:linear-gradient(90deg,rgba(9,17,12,.04) 0%,rgba(9,17,12,.12) 34%,rgba(9,17,12,.62) 55%,rgba(9,17,12,.92) 100%)}
 .home-hero .hero-in{width:min(46%,550px);margin-left:auto;margin-right:max(calc((100% - var(--wrap))/2),1.25rem);padding-block:4rem}
 .home-hero h1{max-width:11ch}
}
@media(max-width:640px){
 .home-hero .hero-img{object-position:35% center;transform:none}
}
