:root{--night:#0b1f2b;--night2:#12303f;--ember:#ff6a2a;--ember-d:#c8430f;--ice:#cfeaf6;--ice-d:#1f7fa8;--cream:#fbf7f1;--ink:#14232c;--mute:#52636d;--line:#dde5e9}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{font-family:'Barlow',system-ui,sans-serif;font-size:1.1rem;line-height:1.65;color:var(--ink);background:var(--cream)}
h1,h2,h3,h4,.brand-name{font-family:'Barlow Condensed',Impact,sans-serif;font-weight:700;text-transform:uppercase;line-height:.98;letter-spacing:.005em;color:var(--night)}
h2{font-size:clamp(2.4rem,5vw,3.8rem);margin-bottom:1rem}
h3{font-size:1.7rem}
a{color:var(--ice-d)}
section{padding:5.5rem 0}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:.5rem;z-index:99}
.eyebrow{font-weight:700;font-size:.82rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ember-d);margin-bottom:.6rem}
.eyebrow.on-dark{color:var(--ember)}
.btn-ember{background:var(--ember);color:#1a0c05;font-weight:700;border:2px solid var(--ember);border-radius:4px;padding:.8rem 1.6rem;text-transform:uppercase;letter-spacing:.06em}
.btn-ember:hover{background:#ff8450;border-color:#ff8450;color:#1a0c05}
.btn-ice{background:transparent;color:#fff;font-weight:700;border:2px solid var(--ice);border-radius:4px;padding:.8rem 1.6rem;text-transform:uppercase;letter-spacing:.06em}
.btn-ice:hover{background:var(--ice);color:var(--night)}
/* nav */
.navbar{background:transparent;transition:background .25s,box-shadow .25s;padding:.6rem 0;position:fixed;top:0;left:0;right:0;z-index:60}
.navbar.scrolled,.navbar.open{background:var(--night);box-shadow:0 2px 14px rgba(0,0,0,.35)}
.navbar .brand-name{color:#fff;font-size:1.6rem;margin-left:.7rem;line-height:1}
.navbar .brand-name small{display:block;font-size:.72rem;letter-spacing:.2em;color:var(--ice);font-family:'Barlow',sans-serif;font-weight:600}
.navbar-brand img{height:44px;width:auto;border-radius:3px}
.navbar .nav-link{color:#fff;font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.9rem;padding:.5rem .8rem}
.navbar .nav-link:hover{color:var(--ember)}
.navbar-toggler{border-color:rgba(255,255,255,.5)}
.navbar-toggler-icon{filter:invert(1)}
.nav-call{background:var(--ember);color:#1a0c05!important;border-radius:4px;margin-left:.5rem}
.nav-call:hover{background:#ff8450;color:#1a0c05!important}
@media(max-width:991px){.navbar-collapse{background:var(--night);padding:1rem;margin-top:.5rem;border-radius:6px}.nav-call{margin:.5rem 0 0;text-align:center}}
/* hero */
.hero{background:radial-gradient(ellipse 60% 80% at 8% 100%,rgba(255,106,42,.38),transparent 70%),radial-gradient(ellipse 60% 80% at 100% 0%,rgba(31,127,168,.5),transparent 70%),var(--night);color:#fff;padding:8.5rem 0 5rem;position:relative;overflow:hidden}
.hero h1{color:#fff;font-size:clamp(3.4rem,9vw,7rem);margin-bottom:1.2rem}
.hero h1 .hot{color:var(--ember)}.hero h1 .cold{color:var(--ice)}
.hero .lead{font-size:1.3rem;color:#dbe8ee;max-width:34rem}
.hero-photo{position:relative}
.hero-photo img{width:100%;height:auto;border-radius:6px;border:4px solid #fff;box-shadow:0 20px 50px rgba(0,0,0,.5);transform:rotate(1.5deg)}
.hero-photo figcaption{font-size:.85rem;color:var(--ice);margin-top:.9rem;letter-spacing:.06em;text-transform:uppercase;font-weight:600}
.badge-row{display:flex;gap:.6rem 1.4rem;flex-wrap:wrap;margin-top:2rem;font-weight:600;color:var(--ice);font-size:.95rem}
.badge-row span::before{content:"✔ ";color:var(--ember)}
/* thermometer scale signature */
.scale{height:26px;background:linear-gradient(90deg,var(--ice-d),var(--ice) 45%,#ffd2b6 55%,var(--ember));position:relative}
.scale::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(11,31,43,.55) 0 2px,transparent 2px 24px);-webkit-mask:linear-gradient(transparent 55%,#000 55%);mask:linear-gradient(transparent 55%,#000 55%)}
.scale-label{display:flex;justify-content:space-between;font-family:'Barlow Condensed',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:.9rem;background:var(--night);color:#fff;padding:.35rem 1rem}
.scale-label span:first-child{color:var(--ice)}.scale-label span:last-child{color:var(--ember)}
/* services split */
.split-card{border-radius:8px;padding:2.2rem;height:100%;position:relative}
.split-card.heat{background:linear-gradient(160deg,#ff8a50,var(--ember-d));color:#1c0b03}
.split-card.cool{background:linear-gradient(160deg,var(--ice),#8fcbe3);color:#07212d}
.split-card h3{color:inherit;font-size:2.6rem}
.split-card ul{padding-left:1.1rem;margin:1rem 0 0}
.split-card li{margin-bottom:.35rem;font-weight:500}
.split-card .glyph{font-size:2.6rem;line-height:1;margin-bottom:.4rem}
.feature{border-top:4px solid var(--night);padding-top:1rem;height:100%}
.feature h3{font-size:1.9rem}
.feature p{color:var(--mute)}
.geo{background:var(--night);color:#e4eff4;border-radius:8px;padding:2.4rem}
.geo h3{color:#fff;font-size:2.2rem}
.geo ul{columns:2;padding-left:1.1rem;margin:0}
@media(max-width:575px){.geo ul{columns:1}}
.geo .tag{color:var(--ember);font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:.8rem}
/* pricing */
.price-bg{background:var(--ice)}
.price-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;border-bottom:2px dashed rgba(11,31,43,.35);padding:1rem 0}
.price-row .nm{font-weight:600}
.price-row .nm small{display:block;font-weight:500;color:var(--night2)}
.price-row .amt{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:2.4rem;color:var(--ember-d);line-height:1}
/* reviews */
.reviews{background:var(--night);color:#fff}
.reviews h2{color:#fff}
.rev{background:var(--night2);border-left:5px solid var(--ember);border-radius:4px;padding:1.5rem;height:100%}
.rev .stars{color:#ffc247;letter-spacing:.15em}
.rev p{font-size:1.02rem;color:#e4eff4;margin:.5rem 0 .8rem}
.rev .who{font-weight:700;color:var(--ice);font-size:.95rem}
.rev .who span{font-weight:400;color:#97b0bc}
.awards{display:flex;flex-wrap:wrap;gap:1.2rem;align-items:center}
.awards img{height:96px;width:auto}
/* area */
.towns{columns:4;column-gap:1.5rem;font-weight:500;padding:0;list-style:none}
.towns li{break-inside:avoid;padding:.12rem 0;border-bottom:1px solid var(--line)}
@media(max-width:991px){.towns{columns:3}}@media(max-width:575px){.towns{columns:2;font-size:1rem}}
/* video */
.ratio iframe{border:0;border-radius:6px}
/* hiring */
.hire{background:var(--ember);color:#1a0c05;border-radius:8px;padding:2.4rem}
.hire h2{color:#1a0c05;margin-bottom:.4rem}
.hire a{color:#1a0c05;font-weight:700}
/* contact */
.contact{background:var(--ice)}
.phone-big{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:clamp(2.4rem,6vw,3.6rem);line-height:1;color:var(--night);text-decoration:none}
.contact dt{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--night2);margin-top:1rem}
.contact dd{margin:0;font-weight:600}
.contact iframe{width:100%;height:100%;min-height:340px;border:0;border-radius:8px}
.affil{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:center}
.affil img{height:70px;width:auto}
footer{background:var(--night);color:#b6c8d1;padding:3rem 0 1.5rem}
footer a{color:#fff}
footer img{height:56px;width:auto;border-radius:3px}
.powered{display:inline-block;margin-top:.5rem;padding:.35rem .9rem;border:1px solid var(--ember);border-radius:50rem;color:var(--ember)!important;text-decoration:none;font-weight:600;font-size:.9rem}
.powered:hover{background:var(--ember);color:#1a0c05!important}
.navbar .nav-link{white-space:nowrap}
@media(min-width:992px) and (max-width:1399px){.navbar .nav-link{font-size:.8rem;padding:.5rem .45rem;letter-spacing:.04em}.navbar .brand-name small{display:none}.navbar-brand img{height:38px;width:auto}.navbar .brand-name{font-size:1.35rem}}
@media(min-width:992px) and (max-width:1199px){.navbar .nav-item:nth-child(n+7):nth-child(-n+8){display:none}}
