:root{
  --night:#0d1620; --night-2:#142231; --night-3:#1b2d40;
  --frost:#eef4f7; --paper:#f6f9fa; --ink:#0d1620; --muted:#9fb3c4; --muted-d:#4c6176;
  --hot:#ff6a2b; --warm:#ffb627; --cold:#35c4e8; --violet:#7a4dff; --leaf:#5fd08a;
  --rule:rgba(238,244,247,.16);
  --thermal:linear-gradient(90deg,#2b2fd6 0%,#7a4dff 20%,#d63a8a 42%,#ff6a2b 64%,#ffb627 82%,#fff3b0 100%);
  --display:'Bricolage Grotesque',system-ui,sans-serif; --body:'DM Sans',system-ui,sans-serif; --mono:'DM Mono',ui-monospace,Menlo,monospace;
}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{font-family:var(--body);background:var(--night);color:var(--frost);font-size:1.0625rem;line-height:1.65;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--display);font-weight:800;line-height:1.04;letter-spacing:-.02em}
a{color:var(--warm)}
img{max-width:100%;height:auto}
.mono,.eyebrow{font-family:var(--mono);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase}
.eyebrow{color:var(--warm);display:inline-flex;align-items:center;gap:.6rem;margin-bottom:1rem}
.eyebrow::before{content:"";width:34px;height:6px;border-radius:3px;background:var(--thermal)}
.section{padding:5.5rem 0;position:relative}
.section-light{background:var(--paper);color:var(--ink)}
.section-light a{color:#c24a10}
.section-light .eyebrow{color:#c24a10}
.section-mid{background:var(--night-2)}
.lead-muted{color:var(--muted)}
.section-light .lead-muted{color:var(--muted-d)}
.thermal-bar{height:12px;background:var(--thermal)}
.thermal-bar.thin{height:6px}
.display-xl{font-size:clamp(2.1rem,4.6vw,3.9rem)}
.display-lg{font-size:clamp(1.7rem,3.2vw,2.6rem)}

/* utility bar + nav */
.topbar{background:#070d14;font-size:.88rem;border-bottom:1px solid var(--rule)}
.topbar .container{display:flex;flex-wrap:wrap;gap:.25rem 1.5rem;justify-content:space-between;padding-top:.4rem;padding-bottom:.4rem}
.topbar a{color:var(--frost);text-decoration:none}
.topbar a:hover{color:var(--warm)}
.topbar .mono{font-size:.72rem;color:var(--muted)}
.navbar{background:rgba(13,22,32,.96);backdrop-filter:blur(6px);border-bottom:1px solid var(--rule)}
.navbar-brand{display:flex;align-items:center;gap:.75rem;color:var(--frost)}
.brand-chip{background:var(--frost);border-radius:10px;padding:4px 8px;display:inline-flex}
.brand-chip img{height:38px;width:auto}
.brand-name{font-family:var(--display);font-weight:800;font-size:1.05rem;line-height:1.05;letter-spacing:-.01em}
.brand-name small{display:block;margin-top:.3rem;font-family:var(--mono);font-weight:400;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.navbar .nav-link{color:var(--frost);font-weight:500;font-size:.95rem}
.navbar .nav-link:hover{color:var(--warm)}
.navbar-toggler{border-color:var(--rule)}
.navbar-toggler-icon{filter:invert(1)}
.btn-heat{background:var(--hot);color:#0d1620;font-weight:700;border:0;border-radius:999px;padding:.7rem 1.4rem}
.btn-heat:hover{background:var(--warm);color:#0d1620}
.btn-ghost{border:2px solid var(--frost);color:var(--frost);border-radius:999px;font-weight:600;padding:.62rem 1.3rem}
.btn-ghost:hover{background:var(--frost);color:var(--ink)}
.section-light .btn-ghost{border-color:var(--ink);color:var(--ink)}
.section-light .btn-ghost:hover{background:var(--ink);color:var(--frost)}

/* hero */
.hero{padding:4.5rem 0 0;background:radial-gradient(ellipse 60% 70% at 85% 30%,rgba(255,106,43,.16),transparent 70%),var(--night);position:relative;overflow:hidden}
.hero h1{margin:.4rem 0 1.2rem}
.hero h1 .heat{background:var(--thermal);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p.lead{color:var(--muted);max-width:34rem}
.hero-photo{position:relative;border-radius:22px;overflow:hidden;box-shadow:14px 14px 0 var(--hot)}
.hero-photo img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover}
.hero-photo .readout{position:absolute;left:14px;bottom:14px;background:rgba(7,13,20,.82);border:1px solid var(--rule);border-radius:10px;padding:.5rem .8rem;font-family:var(--mono);font-size:.78rem}
.hero-photo .readout b{color:var(--warm);font-weight:500}
.hero-strip{margin-top:4rem}
.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--rule)}
.stat{padding:1.4rem 1rem 1.6rem;border-right:1px solid var(--rule)}
.stat:last-child{border-right:0}
.stat .n{font-family:var(--display);font-weight:800;font-size:clamp(1.7rem,3.2vw,2.6rem);line-height:1}
.stat .l{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:.4rem}

/* services index */
.svc-list{list-style:none;padding:0;margin:0;border-top:2px solid var(--ink)}
.svc{display:grid;grid-template-columns:150px 1fr auto;gap:1.5rem;align-items:center;padding:1.3rem 0;border-bottom:1px solid rgba(13,22,32,.2)}
.svc img{width:150px;height:100px;object-fit:cover;border-radius:12px;display:block}
.svc h3{font-size:clamp(1.3rem,2.4vw,1.9rem);margin:0 0 .25rem}
.svc p{margin:0;color:var(--muted-d)}
.svc .tag{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--ink);border-radius:999px;padding:.25rem .7rem;white-space:nowrap}

/* process */
.step{border-top:6px solid;border-image:var(--thermal) 1;padding-top:1rem}
.step .num{font-family:var(--mono);color:var(--warm);font-size:.85rem}
.step h3{font-size:1.25rem;margin:.3rem 0 .5rem}
.step p{color:var(--muted);margin:0}
.framed{border-radius:18px;overflow:hidden;box-shadow:10px 10px 0 var(--cold)}
.framed img{display:block;width:100%;height:auto}
.framed.hot{box-shadow:10px 10px 0 var(--hot)}

/* money band */
.money{background:var(--thermal);color:#0d1620}
.money .inner{padding-top:3.2rem;padding-bottom:3.2rem}
.money h2{font-size:clamp(2rem,4.6vw,3.6rem)}
.money .big{font-family:var(--display);font-weight:800;font-size:clamp(2.6rem,6vw,5rem);line-height:1}
.money ul{padding-left:1.1rem;margin:0}
.money .btn-dark{border-radius:999px;font-weight:700;padding:.7rem 1.4rem;background:#0d1620}

/* why */
.why{border:1px solid var(--rule);border-radius:16px;padding:1.5rem;height:100%;background:var(--night-2)}
.why h3{font-size:1.15rem;margin-bottom:.5rem;color:var(--warm)}
.why p{margin:0;color:var(--muted)}

/* quotes */
.quote{border-left:4px solid var(--hot);padding:.2rem 0 .2rem 1.2rem;font-size:1.05rem;margin:0}
.quote.big{font-family:var(--display);font-weight:700;font-size:clamp(1.3rem,2.4vw,1.9rem);line-height:1.25}
.quote cite{display:block;margin-top:.6rem;font-style:normal;font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}

/* towns marquee */
.marquee{overflow:hidden;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);background:var(--night-2);padding:.9rem 0}
.marquee-track{display:flex;gap:2.2rem;width:max-content;animation:scroll 80s linear infinite;font-family:var(--display);font-weight:700;font-size:1.3rem;white-space:nowrap}
.marquee-track span::after{content:"•";color:var(--hot);margin-left:2.2rem}
@keyframes scroll{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.marquee-track{animation:none;flex-wrap:wrap;width:auto}}
.towns{columns:3;column-gap:1.5rem;list-style:none;padding:0;margin:0;font-size:.98rem}
.towns li{break-inside:avoid;padding:.12rem 0;border-bottom:1px dotted var(--rule)}

/* faq */
.accordion{--bs-accordion-bg:transparent;--bs-accordion-border-color:var(--rule);--bs-accordion-btn-color:var(--frost);--bs-accordion-active-bg:var(--night-2);--bs-accordion-active-color:var(--warm);--bs-accordion-color:var(--muted);--bs-accordion-btn-focus-box-shadow:0 0 0 .2rem rgba(255,182,39,.35)}
.accordion-button{font-family:var(--display);font-weight:700;background:transparent}
.accordion-button::after{filter:invert(1)}
.accordion-item{background:transparent;border-color:var(--rule)}

/* jobs */
.job{border:1px solid var(--rule);border-radius:16px;padding:1.4rem;height:100%;background:var(--night-2)}
.job h3{font-size:1.2rem}
.job ul{padding-left:1.1rem;color:var(--muted);margin:.6rem 0 0;font-size:.98rem}

/* contact */
.contact-card{background:var(--night-2);border:1px solid var(--rule);border-radius:18px;padding:2rem;height:100%}
.contact-card .big-phone{font-family:var(--display);font-weight:800;font-size:clamp(1.9rem,4vw,3rem);color:var(--warm);text-decoration:none;display:block;line-height:1}
.hours{list-style:none;padding:0;margin:0}
.hours li{display:flex;justify-content:space-between;border-bottom:1px dotted var(--rule);padding:.35rem 0}
.map{border:0;width:100%;height:100%;min-height:340px;border-radius:18px;filter:grayscale(.3)}

footer{background:#070d14;padding:3.5rem 0 2rem;border-top:1px solid var(--rule);font-size:.95rem}
footer a{color:var(--frost)}
footer a:hover{color:var(--warm)}
footer .chip{background:var(--frost);border-radius:12px;padding:8px 12px;display:inline-flex;align-items:center;margin:0 .5rem .5rem 0}
footer .chip img{height:44px;width:auto}
footer .fine{color:var(--muted);font-size:.85rem}
.powered{font-family:var(--mono);font-size:.78rem;letter-spacing:.08em}

@media (max-width:991px){
  .svc{grid-template-columns:110px 1fr}
  .svc .tag{display:none}
  .svc img{width:110px;height:84px}
  .towns{columns:2}
}
@media (max-width:575px){
  .stat-strip{grid-template-columns:repeat(2,1fr)}
  .stat:nth-child(2){border-right:0}
  .stat:nth-child(-n+2){border-bottom:1px solid var(--rule)}
  .section{padding:4rem 0}
  .hero-photo{box-shadow:8px 8px 0 var(--hot);margin-right:8px}
  .framed{box-shadow:6px 6px 0 var(--cold);margin-right:6px}
  .svc{grid-template-columns:1fr}
  .svc img{width:100%;height:150px}
  .topbar .mono{display:none}
}
a{overflow-wrap:anywhere}
.hero-photo img,.framed img,.svc img{object-fit:cover}
.framed img{height:auto}
