:root{--navy:#0f1a33;--navy-2:#18264a;--red:#c8102e;--red-d:#a00d25;--steel:#e6e9ee;--steel-2:#c9ced6;--ink:#151a22;--muted:#4b5563;--white:#fff;--max:1160px;--r:6px}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:#f5f6f8}
img{max-width:100%;height:auto;display:block}
a{color:var(--red-d)}a:hover{color:var(--red)}
:focus-visible{outline:3px solid #f5b301;outline-offset:2px}
.skip{position:absolute;left:-999px;top:0;background:#fff;color:#000;padding:.6rem 1rem;z-index:100}.skip:focus{left:.5rem}
.wrap{max-width:var(--max);margin:0 auto;padding:0 1.1rem}
h1,h2,h3{font-family:"Arial Narrow","Roboto Condensed","Helvetica Neue",Arial,sans-serif;font-stretch:condensed;text-transform:uppercase;letter-spacing:.02em;line-height:1.1;margin:0 0 .6em}
h1{font-size:clamp(2rem,6.5vw,3.6rem)}h2{font-size:clamp(1.6rem,4.5vw,2.4rem)}h3{font-size:1.15rem}
.eyebrow{display:inline-block;font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;color:var(--red);margin-bottom:.6rem}
/* top bar */
.topbar{background:var(--navy);color:#cfd6e4;font-size:.85rem}
.topbar .wrap{display:flex;gap:1rem;justify-content:space-between;align-items:center;padding-top:.4rem;padding-bottom:.4rem;flex-wrap:wrap}
.topbar a{color:#fff;text-decoration:none}.topbar a:hover{text-decoration:underline}
.topbar .tag{display:none}
/* header */
.site-header{background:linear-gradient(180deg,#1b2a52,#0f1a33);color:#fff;position:sticky;top:0;z-index:50;border-bottom:4px solid var(--red);box-shadow:0 2px 10px rgba(0,0,0,.25)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:68px}
.brand img{width:150px;height:auto}
.nav-toggle{background:none;border:2px solid rgba(255,255,255,.5);color:#fff;border-radius:var(--r);padding:.45rem .7rem;font:inherit;font-weight:700;cursor:pointer}
.nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--navy);border-bottom:4px solid var(--red)}
.nav.open{display:block}
.nav ul{list-style:none;margin:0;padding:.4rem 1.1rem 1rem}
.nav a{display:block;color:#fff;text-decoration:none;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:.8rem 0;border-bottom:1px solid rgba(255,255,255,.1)}
.nav a[aria-current=page]{color:#ff8a9a}
.nav .cta-call{display:none}
/* buttons */
.btn{display:inline-flex;align-items:center;gap:.5rem;justify-content:center;font-weight:800;text-transform:uppercase;letter-spacing:.06em;text-decoration:none;border-radius:var(--r);padding:.85rem 1.25rem;border:2px solid transparent;min-height:48px;cursor:pointer;font-size:.95rem}
.btn-red{background:var(--red);color:#fff}.btn-red:hover{background:var(--red-d);color:#fff}
.btn-ghost{border-color:#fff;color:#fff}.btn-ghost:hover{background:#fff;color:var(--navy)}
.btn-navy{background:var(--navy);color:#fff}.btn-navy:hover{background:var(--navy-2);color:#fff}
.btn svg{width:1.1em;height:1.1em;fill:currentColor}
.btn-row{display:flex;flex-wrap:wrap;gap:.7rem}
/* hero */
.hero{position:relative;color:#fff;background:var(--navy);overflow:hidden}
.hero picture img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,16,32,.9) 0%,rgba(10,16,32,.7) 50%,rgba(10,16,32,.2) 100%)}
.hero .wrap{position:relative;z-index:1;padding-top:4.5rem;padding-bottom:4.5rem}
.hero p.lead{font-size:1.15rem;max-width:40rem;color:#e7ebf3}
.hero .since{display:inline-block;background:var(--red);color:#fff;font-weight:800;letter-spacing:.12em;text-transform:uppercase;font-size:.8rem;padding:.35rem .7rem;border-radius:3px;margin-bottom:1rem}
.page-hero{background:linear-gradient(135deg,#1b2a52,#0f1a33);color:#fff;border-bottom:1px solid #000}
.page-hero .wrap{padding-top:3rem;padding-bottom:2.6rem}
.page-hero p{color:#d6dcea;max-width:44rem;margin:0}
/* sections */
section{padding:3.4rem 0}
.steel{background:linear-gradient(180deg,#eef0f3,#dfe3e8);border-top:1px solid #cfd4db;border-bottom:1px solid #cfd4db}
.dark{background:var(--navy);color:#e7ebf3}.dark h2{color:#fff}
.grid{display:grid;gap:1.1rem}
.g2{grid-template-columns:1fr}.g3{grid-template-columns:1fr}.g4{grid-template-columns:repeat(2,1fr)}
.card{background:#fff;border:1px solid #d7dbe2;border-radius:var(--r);padding:1.3rem;box-shadow:0 1px 2px rgba(0,0,0,.05);border-top:4px solid var(--navy)}
.card p{margin:.2rem 0 0;color:var(--muted)}
.svc-list{list-style:none;padding:0;margin:0;display:grid;gap:.6rem;grid-template-columns:1fr}
.svc-list li{background:#fff;border:1px solid #d7dbe2;border-left:5px solid var(--red);border-radius:var(--r);padding:.85rem 1rem;font-weight:700}
.svc-group h3{margin-top:1.6rem;color:var(--navy);border-bottom:2px solid var(--steel-2);padding-bottom:.35rem}
.check{list-style:none;padding:0;margin:0}.check li{padding-left:1.7rem;position:relative;margin:.45rem 0}
.check li::before{content:"";position:absolute;left:0;top:.45rem;width:.9rem;height:.9rem;background:var(--red);clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0,43% 62%)}
figure{margin:0}
.photo{border-radius:var(--r);overflow:hidden;background:#000;border:1px solid #c9ced6}
.photo img{width:100%;height:100%;object-fit:cover}
figcaption{font-size:.85rem;color:var(--muted);padding:.5rem .1rem 0}
.thumbs figure .photo{aspect-ratio:4/3}
.thumbs img{image-rendering:auto}
.split{display:grid;gap:1.8rem;align-items:center}
.callband{background:var(--red);color:#fff}
.callband .wrap{display:flex;flex-direction:column;gap:1rem;align-items:flex-start;padding-top:2rem;padding-bottom:2rem}
.callband h2{margin:0}.callband a.tel{color:#fff;font-size:clamp(1.8rem,6vw,2.6rem);font-weight:900;text-decoration:none;letter-spacing:.02em}
.brands{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem}
.brands li{list-style:none;background:#fff;border:1px solid #d7dbe2;border-radius:var(--r);display:flex;align-items:center;justify-content:center;padding:1rem;min-height:110px}
.brands img{max-height:70px;width:auto}
.people{display:grid;gap:1rem}
.person{background:#fff;border:1px solid #d7dbe2;border-radius:var(--r);padding:1.3rem;border-left:5px solid var(--navy)}
.person h3{color:var(--navy);margin-bottom:.3rem}
.nap{font-style:normal;line-height:1.9}
.nap strong{display:inline-block;min-width:5.5rem;color:var(--navy)}
.map-card{background:#fff;border:1px solid #d7dbe2;border-radius:var(--r);overflow:hidden}
.pay{display:flex;flex-wrap:wrap;gap:.4rem;margin:.4rem 0 0;padding:0;list-style:none}
.pay li{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:3px;padding:.15rem .5rem;font-size:.8rem}
.placeholder{border:2px dashed #b45309;background:#fffbeb;color:#78350f;border-radius:var(--r);padding:.8rem 1rem;font-size:.9rem}
form.quote{display:grid;gap:.9rem;background:#fff;border:1px solid #d7dbe2;border-radius:var(--r);padding:1.3rem;border-top:4px solid var(--red)}
form.quote label{font-weight:700;font-size:.92rem;display:block;margin-bottom:.25rem}
form.quote input,form.quote textarea,form.quote select{width:100%;font:inherit;padding:.7rem .8rem;border:1px solid #9aa3b2;border-radius:var(--r);background:#fff}
form.quote textarea{min-height:120px}
/* footer */
.site-footer{background:#0a1124;color:#b9c2d4;font-size:.93rem;padding:2.6rem 0 1.2rem}
.site-footer a{color:#fff}
.site-footer h2{font-size:1rem;color:#fff;letter-spacing:.12em}
.site-footer .cols{display:grid;gap:1.8rem}
.site-footer ul.links{list-style:none;padding:0;margin:0}.site-footer ul.links li{margin:.3rem 0}
.fine{border-top:1px solid rgba(255,255,255,.1);margin-top:2rem;padding-top:1rem;font-size:.8rem;color:#8b95aa}
/* sticky mobile CTA */
.mobile-cta{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:1fr 1fr 1fr;background:var(--navy);border-top:3px solid var(--red)}
.mobile-cta a{color:#fff;text-decoration:none;text-align:center;font-weight:800;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;padding:.7rem .2rem;display:flex;flex-direction:column;align-items:center;gap:.15rem}
.mobile-cta a:first-child{background:var(--red)}
.mobile-cta svg{width:20px;height:20px;fill:currentColor}
body{padding-bottom:64px}
@media (min-width:640px){.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(2,1fr)}.svc-list{grid-template-columns:1fr 1fr}.brands{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}.callband .wrap{flex-direction:row;align-items:center;justify-content:space-between}}
@media (min-width:900px){
 .topbar .tag{display:inline}
 .nav-toggle{display:none}
 .nav{display:block;position:static;background:none;border:0}
 .nav ul{display:flex;gap:1.3rem;padding:0;align-items:center}
 .nav a{border:0;padding:.4rem 0;font-size:.9rem;border-bottom:3px solid transparent}
 .nav a:hover{border-bottom-color:var(--red)}
 .nav a[aria-current=page]{color:#fff;border-bottom-color:var(--red)}
 .nav .cta-call{display:block}.nav .cta-call a{background:var(--red);padding:.55rem .9rem;border-radius:var(--r);border:0}
 .brand img{width:180px}
 .g3{grid-template-columns:repeat(3,1fr)}
 .split{grid-template-columns:1.1fr .9fr}
 .split.rev{grid-template-columns:.9fr 1.1fr}
 .people{grid-template-columns:repeat(3,1fr)}
 .brands{grid-template-columns:repeat(5,1fr)}
 .site-footer .cols{grid-template-columns:1.3fr 1fr 1fr}
 .mobile-cta{display:none}body{padding-bottom:0}
 .hero .wrap{padding-top:7rem;padding-bottom:7rem}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* brand links */
.brands li{padding:0}
.brands li>picture{padding:1rem}
.brands a{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:110px;padding:1rem;border-radius:var(--r);transition:box-shadow .15s,transform .15s}
.brands a:hover,.brands a:focus-visible{box-shadow:0 0 0 2px var(--red);transform:translateY(-2px)}
.brands a img{transition:opacity .15s}.brands a:hover img{opacity:.85}
/* quote form */
form.quote .g2f{display:grid;gap:.9rem}
@media (min-width:640px){form.quote .g2f{grid-template-columns:1fr 1fr}}
form.quote .hint{margin:-.4rem 0 0;font-size:.85rem;color:var(--muted)}
form.quote .req{color:var(--red)}
form.quote .hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
form.quote{position:relative}
form.quote .ts{min-height:65px}
form.quote button[disabled]{opacity:.6;cursor:wait}
.form-status{padding:.8rem 1rem;border-radius:var(--r);background:#eef1f6;font-weight:600}
.form-status.ok{background:#e8f6ec;color:#14532d;border:1px solid #86c99a}
.form-status.err{background:#fdecee;color:#7f1d1d;border:1px solid #f0a3ad}
/* anchored sections clear the 72px sticky header */
[id]{scroll-margin-top:88px}
