:root{
  --navy:#0B1D33; --steel:#2F5D7C; --graphite:#282F33; --orange:#F26A21; --coolgray:#E8EDF2; --white:#FFFFFF;
  --ink-soft:#55606a;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Inter',Arial,sans-serif; color:var(--graphite); line-height:1.65; background:var(--white); font-size:16px;}
a{color:inherit;}
.wrap{max-width:1120px; margin:0 auto; padding:0 32px;}
img{max-width:100%; display:block;}

/* NAV */
header{position:sticky; top:0; z-index:20; background:rgba(255,255,255,0.96); backdrop-filter:blur(6px); border-bottom:1px solid #ececec;}
.nav{display:flex; align-items:center; justify-content:space-between; padding:18px 32px; max-width:1120px; margin:0 auto;}
.nav .brand{display:flex; align-items:center; gap:9px; text-decoration:none;}
.nav .brand svg{height:24px; width:auto;}
.nav .brand .name{font-weight:700; letter-spacing:0.5px; font-size:13px; color:var(--navy);}
.nav .brand .name span{color:var(--steel); font-weight:500;}
.nav ul{display:flex; gap:36px; list-style:none;}
.nav ul a{font-size:14px; font-weight:500; text-decoration:none; color:var(--graphite); padding-bottom:22px; margin-bottom:-22px; border-bottom:2px solid transparent; transition:color .15s, border-color .15s;}
.nav ul a:hover{color:var(--orange);}
.nav ul a.active{color:var(--navy); font-weight:700; border-bottom-color:var(--orange);}
.nav .cta{font-size:13px; font-weight:700; color:var(--navy); text-decoration:none; display:flex; align-items:center; gap:6px;}
.nav .cta:after{content:"→"; transition:transform .15s;}
.nav .cta:hover{color:var(--orange);}
.nav .cta:hover:after{transform:translateX(3px);}

/* BUTTONS */
.btn{display:inline-block; padding:14px 28px; border-radius:2px; font-weight:700; font-size:15px; text-decoration:none; transition:opacity .15s;}
.btn:hover{opacity:.85;}
.btn-primary{background:var(--orange); color:var(--white);}
.btn-outline{border:1.5px solid rgba(255,255,255,0.4); color:var(--white);}
.btn-outline:hover{border-color:var(--orange); color:var(--orange); opacity:1;}
.btn-outline-dark{border:1.5px solid #cfd6db; color:var(--navy);}
.btn-outline-dark:hover{border-color:var(--orange); color:var(--orange); opacity:1;}
.text-link{font-weight:700; font-size:14px; color:var(--orange); text-decoration:none;}
.text-link:after{content:" →"; transition:margin .15s;}
.text-link:hover:after{margin-left:4px;}

/* HERO (asymmetric: text left, big graphic right) */
.hero{background:var(--navy); color:var(--white); overflow:hidden; position:relative;}
.hero .wrap{display:grid; grid-template-columns:1.05fr 0.95fr; gap:20px; align-items:center; min-height:520px; padding-top:40px; padding-bottom:40px;}
.hero-graphic{position:relative; height:100%; display:flex; align-items:center; justify-content:center;}
.hero-graphic svg{width:115%; max-width:none; height:auto;}
.hero-copy .eyebrow{font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:2.5px; color:var(--orange); text-transform:uppercase;}
.hero-copy h1{font-size:46px; font-weight:800; line-height:1.12; margin-top:16px; letter-spacing:-0.5px;}
.hero-copy h1 .accent{color:var(--orange);}
.hero-copy p.sub{font-size:17px; color:#B9C6D1; max-width:480px; margin-top:20px;}
.hero-copy .btnrow{display:flex; gap:16px; margin-top:32px; flex-wrap:wrap;}

/* PAGE HERO (interior pages, smaller, left aligned) */
.page-hero{background:var(--navy); color:var(--white); padding:64px 0 56px; position:relative; overflow:hidden;}
.page-hero .eyebrow{font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:2.5px; color:var(--orange); text-transform:uppercase;}
.page-hero h1{font-size:38px; font-weight:800; margin-top:12px; letter-spacing:-0.5px;}
.page-hero p{font-size:16px; color:#B9C6D1; margin-top:14px; max-width:600px;}
.page-hero .corner-mark{position:absolute; right:-40px; top:50%; transform:translateY(-50%); opacity:0.12; width:280px;}

section{padding:88px 0;}
.section-head{display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:48px; flex-wrap:wrap;}
h2.section-title{font-size:30px; font-weight:800; color:var(--navy); letter-spacing:-0.3px;}
p.section-lede{font-size:16px; color:var(--ink-soft); max-width:520px;}
.index-tag{font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:2px; color:var(--steel); text-transform:uppercase; font-weight:600;}

/* HOME: index-style list instead of bordered cards */
.index-list{border-top:1px solid #e5e8ea;}
.index-row{display:grid; grid-template-columns:70px 1fr 1.4fr auto; gap:28px; align-items:center; padding:32px 0; border-bottom:1px solid #e5e8ea; text-decoration:none; color:inherit; transition:background .15s;}
.index-row:hover{background:#fafbfb;}
.index-row .num{font-family:'IBM Plex Mono',monospace; font-size:15px; color:#b7bec3; font-weight:500;}
.index-row h3{font-size:21px; color:var(--navy); font-weight:700;}
.index-row p{font-size:14.5px; color:var(--ink-soft);}
.index-row .arrow{font-size:22px; color:var(--orange); transition:transform .15s;}
.index-row:hover .arrow{transform:translateX(5px);}
@media (max-width:760px){ .index-row{grid-template-columns:40px 1fr; row-gap:6px;} .index-row .arrow, .index-row p{grid-column:2;} }

/* SERVICES: alternating full-width bands, no card borders */
.offer-band{padding:64px 0; border-bottom:1px solid #e5e8ea;}
.offer-band.tint{background:var(--coolgray);}
.offer-band .grid{display:grid; grid-template-columns:0.55fr 1fr; gap:56px; align-items:start;}
.offer-band .index-tag{display:block; margin-bottom:14px;}
.offer-band h3{font-size:30px; color:var(--navy); font-weight:800; letter-spacing:-0.3px;}
.offer-band .note{margin-top:20px; font-size:13px; color:#8a929a; font-family:'IBM Plex Mono',monospace;}
.offer-band p.lead{font-size:17px; color:var(--graphite); margin-bottom:20px;}
.offer-band ul{list-style:none;}
.offer-band ul li{font-size:15px; color:var(--ink-soft); padding:10px 0; border-top:1px solid #e5e8ea;}
.offer-band ul li:first-child{border-top:none;}
.offer-band ul li b{color:var(--navy);}
@media (max-width:760px){ .offer-band .grid{grid-template-columns:1fr; gap:20px;} }

/* REGION: diagram + running text, no stat boxes */
.region-layout{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;}
.region-copy p{font-size:16px; color:var(--ink-soft); margin-bottom:18px;}
.region-copy .callout{font-size:20px; color:var(--navy); font-weight:700; line-height:1.4; margin:28px 0; padding-left:20px; border-left:3px solid var(--orange);}
.region-diagram{width:100%;}
.city-pill{background:var(--white); border:1px solid #dfe6ea; border-radius:20px; padding:6px 14px; font-size:12.5px; font-weight:600; color:var(--navy); font-family:'IBM Plex Mono',monospace;}
.city-list{display:flex; flex-wrap:wrap; gap:8px; margin-top:20px;}
@media (max-width:760px){ .region-layout{grid-template-columns:1fr;} }

/* MISSION */
.mission-band{background:var(--coolgray); padding:72px 0; border-bottom:1px solid #dfe6ea;}
.mission-layout{display:grid; grid-template-columns:0.42fr 1fr; gap:56px; align-items:start;}
.mission-layout .index-tag{padding-top:8px;}
.mission-statement{font-size:26px; line-height:1.42; font-weight:700; color:var(--navy); letter-spacing:-0.3px; padding-left:22px; border-left:3px solid var(--orange);}
.mission-body{font-size:16px; color:var(--ink-soft); margin-top:22px; padding-left:25px; max-width:640px;}
@media (max-width:760px){ .mission-layout{grid-template-columns:1fr; gap:18px;} .mission-statement{font-size:21px;} }

/* ABOUT */
.about-grid{display:grid; grid-template-columns:0.8fr 1.2fr; gap:64px; align-items:flex-start;}
.headshot-frame{width:100%; max-width:280px; aspect-ratio:4/5; border-radius:4px; background:linear-gradient(160deg,var(--navy),var(--steel)); display:flex; align-items:center; justify-content:center; margin-bottom:16px; overflow:hidden;}
.headshot-frame img{width:100%; height:100%; object-fit:cover;}
.headshot-frame span{font-family:'IBM Plex Mono',monospace; font-size:56px; font-weight:600; color:var(--white); letter-spacing:2px;}
.headshot-caption{font-size:12px; color:#9aa2a8; font-family:'IBM Plex Mono',monospace;}
.about-copy p{font-size:16.5px; color:var(--graphite); margin-bottom:18px; max-width:620px;}
.credential-row{display:grid; grid-template-columns:1fr 2fr; gap:16px; padding:20px 0; border-top:1px solid #e5e8ea;}
.credential-row:first-child{border-top:none;}
.credential-row .label{font-weight:700; color:var(--navy); font-size:15px;}
.credential-row .detail{font-size:14.5px; color:var(--ink-soft);}
@media (max-width:760px){ .about-grid{grid-template-columns:1fr;} .credential-row{grid-template-columns:1fr;} }

/* CTA band */
.cta-band{background:var(--navy); color:var(--white); text-align:center;}
.cta-band h2{font-size:28px; font-weight:800;}
.cta-band p{color:#B9C6D1; margin:14px 0 28px; font-size:16px;}

footer{background:var(--navy); color:#9fb0bd; padding:44px 0; border-top:1px solid rgba(255,255,255,0.08);}
footer .wrap{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px;}
footer .brand{display:flex; align-items:center; gap:9px;}
footer .brand svg{height:20px; width:auto;}
footer a{color:#C7D3DE; text-decoration:none; font-size:13px;}
footer .tagline{font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:#7690a0; letter-spacing:0.5px;}

@media (max-width:900px){
  .hero .wrap{grid-template-columns:1fr; min-height:auto; text-align:left;}
  .hero-graphic{display:none;}
}
@media (max-width:760px){
  .nav ul{display:none;}
  .hero-copy h1, .page-hero h1{font-size:30px;}
}

.city-radio-list{margin-top:24px; display:flex; flex-direction:column; gap:2px; border-top:1px solid #e5e8ea; padding-top:16px;}
.city-radio{display:flex; align-items:center; gap:10px; font-size:14px; font-weight:600; color:var(--graphite); padding:9px 4px; cursor:pointer; border-radius:4px; transition:background .15s;}
.city-radio:hover{background:#f5f7f8;}
.city-radio input[type="radio"]{accent-color:#F26A21; width:15px; height:15px; cursor:pointer;}

.map-stage{position:relative; width:100%; line-height:0;}
.map-glow{position:absolute; width:56px; height:56px; margin-left:-28px; margin-top:-28px; border-radius:50%; pointer-events:none; opacity:0; transition:opacity .35s ease, transform .35s ease; transform:scale(0.6);}
.map-glow:before{content:""; position:absolute; inset:0; border-radius:50%; background:radial-gradient(circle, rgba(242,106,33,0.55) 0%, rgba(242,106,33,0.18) 55%, rgba(242,106,33,0) 75%);}
.map-glow:after{content:""; position:absolute; left:50%; top:50%; width:14px; height:14px; margin-left:-7px; margin-top:-7px; border-radius:50%; background:#F26A21; box-shadow:0 0 0 4px rgba(242,106,33,0.25);}
.map-glow.is-lit{opacity:1; transform:scale(1);}

.city-radio-pills{display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; border-top:1px solid #e5e8ea; padding-top:20px; justify-content:center;}
.pill-radio{position:relative; background:var(--white); border:1px solid #dfe6ea; border-radius:20px; padding:8px 18px; font-size:13.5px; font-weight:600; color:var(--navy); cursor:pointer; transition:background .15s, border-color .15s, color .15s;}
.pill-radio input{position:absolute; opacity:0; width:0; height:0;}
.pill-radio:hover{border-color:#F26A21;}
.pill-radio.is-active{background:#F26A21; border-color:#F26A21; color:var(--white);}

/* ---------- COVERAGE BAND (Region page) ---------- */
.coverage-band{background:var(--coolgray); border-top:1px solid #dfe6ea; border-bottom:1px solid #dfe6ea;}
.coverage-layout{display:grid; grid-template-columns:1.12fr 1fr; gap:56px; align-items:center;}
.coverage-map{width:100%;}
.us-inset{width:100%; height:auto; display:block;}
.us-inset .us-st{fill:#DCE3E9; stroke:var(--coolgray); stroke-width:1.1; stroke-linejoin:round;}
.us-inset .us-secondary{fill:#9CB2C4;}
.us-inset .us-core{fill:var(--orange);}
.us-legend{display:flex; flex-wrap:wrap; gap:8px 22px; margin-top:18px; padding-top:16px; border-top:1px solid #d5dee4;}
.legend-item{display:flex; align-items:center; gap:8px; font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:1.2px; text-transform:uppercase; font-weight:500; color:var(--ink-soft);}
.sw{width:11px; height:11px; border-radius:2px; flex:0 0 auto; display:inline-block;}
.sw-core{background:var(--orange);}
.sw-secondary{background:#9CB2C4;}
.sw-open{background:#DCE3E9; border:1px solid #c6d0d8;}
.coverage-tiers{display:flex; flex-direction:column;}
.tier{padding:22px 0; border-top:1px solid #d5dee4;}
.tier:first-child{border-top:none; padding-top:0;}
.tier:last-child{padding-bottom:0;}
.tier-head{display:flex; align-items:center; gap:10px;}
.tier-num{font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:600; letter-spacing:1.5px; color:var(--steel);}
.tier-head h3{font-size:19px; font-weight:700; color:var(--navy); letter-spacing:-0.2px;}
.tier-geo{font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:1px; text-transform:uppercase; color:var(--steel); margin:8px 0 8px 21px;}
.tier p{font-size:14.5px; color:var(--ink-soft); margin-left:21px;}
.coverage-note{margin-top:48px; padding:22px 26px; background:var(--white); border-left:3px solid var(--orange); border-radius:3px; font-size:15.5px; color:var(--graphite);}
@media (max-width:900px){
  .coverage-layout{grid-template-columns:1fr; gap:36px;}
  .coverage-note{margin-top:32px; padding:18px 20px; font-size:15px;}
  .tier-geo, .tier p{margin-left:0;}
}
.us-pins .pin-halo{fill:var(--orange); opacity:0.16;}
.us-pins .pin-dot{fill:var(--orange); stroke:#fff; stroke-width:0.9;}
.metro-block{margin-top:44px; padding-top:26px; border-top:1px solid #d5dee4;}
.metro-pills{display:flex; flex-wrap:wrap; gap:9px; margin-top:16px;}
.metro-pill{display:inline-flex; align-items:center; gap:7px; background:var(--white); border:1px solid #dfe6ea; border-radius:20px; padding:6px 15px; font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:500; color:var(--navy);}
.metro-pill:before{content:""; width:7px; height:7px; border-radius:50%; background:var(--orange); flex:0 0 auto;}
@media (max-width:900px){ .metro-block{margin-top:32px;} }

.us-socket{fill:#C4CFD8; stroke:#aab7c2; stroke-width:1; stroke-dasharray:3 3;}
.us-leader{stroke:var(--navy); stroke-width:1; stroke-dasharray:3 4; opacity:0.35;}
.us-popout .us-core{stroke:#fff; stroke-width:1.6; stroke-linejoin:round;}
.us-poplabel{font-family:'IBM Plex Mono',monospace; font-size:19px; font-weight:600; letter-spacing:2px; fill:var(--navy);}
.us-poplabel-sub{font-family:'IBM Plex Mono',monospace; font-size:12.5px; font-weight:500; letter-spacing:1.6px; fill:var(--orange);}
@media (max-width:900px){
  .us-poplabel{font-size:30px; letter-spacing:2.5px;}
  .us-poplabel-sub{display:none;}
}
