:root{--ink:#0d2238;--ink2:#14314f;--blue:#2f6194;--amber:#ffb400;--paper:#f4f7fa;--mute:#5b6b7b}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{font-family:'Barlow',sans-serif;color:var(--ink);background:#fff;font-size:1.05rem}
h1,h2,h3,h4,.display{font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.01em;line-height:1}
.util{background:var(--amber);color:var(--ink);font-weight:600;font-size:.92rem}
.util a{color:var(--ink);text-decoration:none;font-weight:700}
.util .dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--ink);margin-right:.5rem;animation:pulse 1.6s infinite}
@keyframes pulse{50%{opacity:.25}}
@media(prefers-reduced-motion:reduce){.util .dot{animation:none}}
.navbar{background:var(--ink);padding:.6rem 0}
.navbar-brand{display:flex;align-items:center;gap:.7rem;color:#fff!important;font-family:'Barlow Condensed',sans-serif;font-size:1.55rem;text-transform:uppercase;font-weight:700;letter-spacing:.03em}
.navbar-brand img{height:44px;width:auto;border-radius:4px}
.navbar .nav-link{color:#d5e2ef;font-weight:600;text-transform:uppercase;font-size:.9rem;letter-spacing:.06em}
.navbar .nav-link:hover{color:var(--amber)}
.navbar-toggler{border-color:rgba(255,255,255,.4)}
.navbar-toggler-icon{filter:invert(1)}
.btn-amber{background:var(--amber);color:var(--ink);font-weight:700;text-transform:uppercase;letter-spacing:.05em;border:0;border-radius:2px;padding:.85rem 1.7rem}
.btn-amber:hover{background:#ffc832;color:var(--ink)}
.btn-line{border:2px solid #fff;color:#fff;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border-radius:2px;padding:.8rem 1.7rem}
.btn-line:hover{background:#fff;color:var(--ink)}
/* hero */
.hero{background:var(--ink);color:#fff;position:relative;padding:4.5rem 0 7rem;overflow:hidden}
.hero .eyebrow{font-family:'Barlow Condensed';text-transform:uppercase;letter-spacing:.2em;color:var(--amber);font-weight:600;font-size:1.05rem}
.hero h1{font-size:clamp(3.4rem,9vw,7.2rem);font-weight:800;margin:.6rem 0 1.2rem}
.hero h1 span{color:var(--amber)}
.hero p.lead{color:#cfdceb;max-width:34rem}
.hero .inset{position:relative}
.hero .inset img{width:100%;border:6px solid var(--blue);display:block;aspect-ratio:4/3;object-fit:cover}
.meter{position:absolute;left:-18px;bottom:-22px;background:var(--amber);color:var(--ink);font-family:'Barlow Condensed';text-transform:uppercase;font-weight:700;padding:.6rem 1rem;line-height:1.05;letter-spacing:.04em}
.meter small{display:block;font-weight:600;font-size:.75rem;letter-spacing:.12em}
.meter b{font-size:1.9rem}
.wave{position:absolute;left:0;right:0;bottom:-1px;height:70px;width:100%;display:block}
.wave-top{display:block;width:100%;height:60px;margin-bottom:-1px}
/* sections */
section{padding:5rem 0}
.sec-title{font-size:clamp(2.4rem,5vw,3.8rem);font-weight:800}
.sec-eyebrow{font-family:'Barlow Condensed';text-transform:uppercase;letter-spacing:.2em;color:var(--blue);font-weight:700}
.bg-paper{background:var(--paper)}
.svc-index{list-style:none;padding:0;margin:0;border-top:2px solid var(--ink)}
.svc-index li{border-bottom:1px solid #c9d4df;padding:1.3rem 0;display:grid;grid-template-columns:minmax(0,1fr);gap:.2rem}
@media(min-width:768px){.svc-index li{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:2rem;align-items:baseline}}
.svc-index h3{font-size:2.1rem;font-weight:700;margin:0}
.svc-index p{margin:0;color:var(--mute)}
.photo{width:100%;display:block;object-fit:cover}
.frame{box-shadow:12px 12px 0 var(--blue)}
.band{background:var(--blue);color:#fff;padding:3.2rem 0}
.band h2{font-size:clamp(2.2rem,5vw,3.6rem);font-weight:800;margin:0}
.energy .photo{aspect-ratio:3/2}
.cab-card{background:#fff;border-top:6px solid var(--amber);padding:1.6rem;height:100%}
.cab-card h3{font-size:1.8rem;font-weight:700}
.lic{display:flex;gap:1rem;align-items:flex-start;padding:.9rem 0;border-bottom:1px solid #c9d4df}
.lic i{font-style:normal;font-family:'Barlow Condensed';background:var(--ink);color:var(--amber);padding:.1rem .6rem;font-weight:700;letter-spacing:.08em;flex:none}
.badges{display:flex;gap:1.2rem;flex-wrap:wrap;align-items:center}
.badges img{height:84px;width:auto;background:#fff;padding:6px;border:1px solid #d5dfe8}
.areas span{display:inline-block;background:var(--ink);color:#fff;font-family:'Barlow Condensed';text-transform:uppercase;font-weight:600;letter-spacing:.06em;padding:.4rem 1rem;margin:0 .4rem .5rem 0;font-size:1.2rem}
.contact{background:var(--ink);color:#fff}
.contact a{color:var(--amber)}
.contact .big{font-family:'Barlow Condensed';font-size:clamp(2.6rem,7vw,4.6rem);font-weight:800;color:var(--amber);text-decoration:none;line-height:1}
.map{border:0;width:100%;height:100%;min-height:340px}
footer{background:#08141f;color:#9fb2c5;padding:1.8rem 0;font-size:.95rem}
footer a{color:#fff}
@media(max-width:575px){section{padding:3.5rem 0}.hero{padding:3rem 0 6rem}.meter{left:0}.navbar-brand{font-size:1.25rem}.navbar-brand img{height:36px}}
