:root{
  --cream:#fbf4e8; --paper:#fffaf1; --ink:#12203a; --ink-2:#1c2f52; --muted:#4d5870;
  --ember:#e4501c; --ember-d:#b23a0d; --ember-l:#fde2d3;
  --ice:#cfe9f4; --ice-d:#17688c; --ice-l:#e8f5fa;
  --rule:rgba(18,32,58,.18);
  --display:'Big Shoulders Display','Arial Narrow',sans-serif; --body:'Barlow',system-ui,sans-serif;
}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{font-family:var(--body);background:var(--cream);color:var(--ink);font-size:1.0625rem;line-height:1.65;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--display);font-weight:800;line-height:.98;letter-spacing:.005em;text-transform:uppercase;color:var(--ink)}
h2{font-size:clamp(2.4rem,5.2vw,3.9rem);margin-bottom:1rem}
h3{font-size:1.7rem}
a{color:var(--ice-d)}
.eyebrow{font-family:var(--body);font-weight:600;font-size:.82rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ember-d);display:block;margin-bottom:.7rem}
.lead-text{font-size:1.18rem;color:var(--muted);max-width:44rem}
section{padding:5.5rem 0;position:relative}
.btn{font-family:var(--display);font-weight:800;font-size:1.2rem;letter-spacing:.06em;text-transform:uppercase;border-radius:6px;padding:.7rem 1.6rem;border-width:3px}
.btn-ember{background:var(--ember-d);border-color:var(--ember-d);color:#fff}
.btn-ember:hover,.btn-ember:focus{background:var(--ink);border-color:var(--ink);color:#fff}
.btn-ink{background:transparent;border-color:var(--ink);color:var(--ink)}
.btn-ink:hover,.btn-ink:focus{background:var(--ink);color:#fff}
.btn-light-o{background:transparent;border-color:#fff;color:#fff}
.btn-light-o:hover{background:#fff;color:var(--ink)}

/* Signature: thermostat temperature scale (hot → cold) */
.scale{height:46px;background:
  repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 14px) 0 0/100% 14px no-repeat,
  repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 70px) 0 0/100% 26px no-repeat,
  linear-gradient(90deg,var(--ember),#f3b27a 45%,#bfe1ee 70%,var(--ice-d)) 0 100%/100% 12px no-repeat;
  position:relative}
.scale::after{content:"72°";position:absolute;left:62%;top:28px;font-family:var(--display);font-weight:800;font-size:1rem;background:var(--ink);color:#fff;padding:0 .5rem;border-radius:3px;line-height:1.35;transform:translateY(-4px)}
.scale-sm{height:30px;opacity:.9}
.scale-sm::after{content:none}

/* Navbar (centered logo stacked above links) */
.mainnav{background:var(--paper);border-bottom:3px solid var(--ink);padding:.5rem 0}
.mainnav .navbar-brand{margin:0;padding:0;display:flex;align-items:center;gap:.8rem}
.mainnav .navbar-brand img{height:58px;width:auto}
.brand-text{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:1.05rem;line-height:1;color:var(--ink);letter-spacing:.04em}
.brand-text small{display:block;font-family:var(--body);font-weight:600;font-size:.68rem;letter-spacing:.16em;color:var(--ember-d);margin-top:.25rem}
.mainnav .nav-link{font-family:var(--display);font-weight:700;font-size:1.12rem;letter-spacing:.07em;text-transform:uppercase;color:var(--ink);padding:.45rem .7rem}
.mainnav .nav-link:hover,.mainnav .nav-link:focus{color:var(--ember-d)}
.nav-call{font-family:var(--display);font-weight:800;font-size:1.2rem;letter-spacing:.05em;background:var(--ember-d);color:#fff!important;border-radius:6px;padding:.35rem 1rem;text-decoration:none;white-space:nowrap}
.nav-call:hover{background:var(--ink)}
@media (min-width:992px){
  .navbar.navbar-expand-lg .container{flex-direction:column;gap:.4rem}
  .navbar.navbar-expand-lg .navbar-collapse{justify-content:center;width:100%;flex-grow:0;border-top:1px solid var(--rule);padding-top:.35rem}
  .navbar.navbar-expand-lg .navbar-nav{align-items:center;flex-wrap:wrap;justify-content:center}
  .mainnav .navbar-brand img{height:64px}
}
@media (max-width:991.98px){
  .navbar-collapse{padding:.8rem 0}
  .brand-text{font-size:.95rem}
  .mainnav .navbar-brand img{height:46px}
}

/* Hero */
.hero{padding:3.5rem 0 4.5rem;background:var(--cream);overflow:hidden}
.hero .container{position:relative}
.hero h1{font-size:clamp(3.4rem,8.6vw,7rem);margin-bottom:1.1rem}
.hero h1 .hot{color:var(--ember-d)}
.hero h1 .cold{color:var(--ice-d)}
.hero-sub{font-size:1.25rem;color:var(--muted);max-width:34rem;margin-bottom:1.8rem}
.hero-badges{display:flex;flex-wrap:wrap;gap:1.4rem;margin-top:2rem;font-weight:600;font-size:.95rem;color:var(--ink)}
.hero-badges i{color:var(--ember-d);margin-right:.35rem}
.arches{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:end}
.arch{position:relative;border-radius:999px 999px 14px 14px;overflow:hidden;border:4px solid var(--ink);background:var(--ink)}
.arch img{width:100%;height:100%;object-fit:cover;display:block}
.arch-heat{aspect-ratio:3/5;box-shadow:10px 10px 0 var(--ember)}
.arch-cool{aspect-ratio:3/5.8;margin-bottom:0;box-shadow:10px 10px 0 var(--ice-d)}
.arch .tag{position:absolute;left:50%;bottom:.8rem;transform:translateX(-50%);font-family:var(--display);font-weight:800;font-size:1.15rem;letter-spacing:.14em;text-transform:uppercase;padding:.15rem .9rem;border-radius:4px;color:#fff}
.arch-heat .tag{background:var(--ember-d)}
.arch-cool .tag{background:var(--ice-d)}
@media (max-width:575.98px){.hero{padding-top:2.2rem}.arches{gap:.7rem}.arch-heat,.arch-cool{box-shadow:6px 6px 0 var(--ember)}.arch-cool{box-shadow:6px 6px 0 var(--ice-d)}}

/* Quick help */
.quick{background:var(--ink);color:#fff;padding:2.2rem 0}
.quick h2{font-size:1.6rem;color:#fff;margin:0 0 1rem}
.quick .pills{display:flex;flex-wrap:wrap;gap:.7rem}
.quick a{font-family:var(--display);font-weight:700;font-size:1.15rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);background:var(--ice);text-decoration:none;padding:.4rem 1.1rem;border-radius:999px;border:2px solid var(--ice)}
.quick a:hover,.quick a:focus{background:transparent;color:#fff}
.quick a i{margin-right:.4rem}

/* Services index */
.svc-list{list-style:none;padding:0;margin:2rem 0 0;border-top:3px solid var(--ink)}
.svc-list li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:1.5rem;padding:1.4rem 0;border-bottom:1px solid var(--rule);align-items:baseline}
.svc-list h3{margin:0;font-size:clamp(1.9rem,3.6vw,2.6rem)}
.svc-list h3 i{color:var(--ember-d);margin-right:.5rem;font-size:.8em}
.svc-list p{margin:0;color:var(--muted)}
@media (max-width:767.98px){.svc-list li{grid-template-columns:1fr;gap:.4rem}}
.emergency{background:var(--ember-d);color:#fff;padding:2.6rem 0}
.emergency h2{color:#fff;margin:0;font-size:clamp(2.2rem,5vw,3.6rem)}
.emergency p{margin:.4rem 0 0;color:#fff;font-size:1.15rem}
.install-photo{border:4px solid var(--ink);border-radius:14px;box-shadow:10px 10px 0 var(--ice-d);width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}

/* Products: hot / cold */
.products{background:var(--paper)}
.panel{border-radius:18px;padding:2.2rem 2rem;height:100%;position:relative}
.panel h3{font-size:2.5rem;margin-bottom:.3rem}
.panel-hot{background:var(--ember-l);border:3px solid var(--ember-d)}
.panel-hot h3{color:var(--ember-d)}
.panel-cold{background:var(--ice-l);border:3px solid var(--ice-d)}
.panel-cold h3{color:var(--ice-d)}
.chips{list-style:none;padding:0;margin:1rem 0 0;display:flex;flex-wrap:wrap;gap:.5rem}
.chips li{background:#fff;border:2px solid var(--ink);border-radius:999px;padding:.15rem .95rem;font-weight:600;font-size:1rem}
.panel .blurb{color:var(--ink);margin:0}
.mini{background:#fff;border:3px solid var(--ink);border-radius:14px;padding:1.5rem;height:100%}
.mini h3{font-size:1.9rem}
.mini ul{padding-left:1.1rem;margin:.6rem 0 0}
.rooftop{width:72px;height:auto;position:absolute;right:1.4rem;top:1.4rem}
.dealer{display:flex;align-items:center;gap:1.2rem;background:#fff;border:3px solid var(--ink);border-radius:14px;padding:1rem 1.4rem}
.dealer img{width:80px;height:auto}
.dealer p{margin:0}

/* Agreements */
.agree{background:var(--ink);color:#fff}
.agree h2,.agree h3{color:#fff}
.agree .eyebrow{color:#ffb28a}
.agree .lead-text{color:#d6deee}
.perk{border-top:4px solid var(--ember);padding-top:1rem;height:100%}
.perk h3{font-size:1.55rem;margin-bottom:.4rem}
.perk p{margin:0;color:#d6deee;font-size:1rem}
.accordion{--bs-accordion-bg:transparent;--bs-accordion-border-color:rgba(255,255,255,.25);--bs-accordion-btn-bg:transparent;--bs-accordion-active-bg:rgba(255,255,255,.08);--bs-accordion-btn-color:#fff;--bs-accordion-active-color:#fff;--bs-accordion-color:#fff;--bs-accordion-btn-focus-box-shadow:0 0 0 .2rem rgba(255,178,138,.5)}
.accordion-button{font-family:var(--display);font-weight:800;font-size:1.35rem;letter-spacing:.05em;text-transform:uppercase}
.accordion-button::after{filter:invert(1)}
.accordion-button:not(.collapsed)::after{filter:invert(1)}
.checks{columns:2;column-gap:2rem;list-style:none;padding:0;margin:0}
.checks li{padding:.15rem 0 .15rem 1.6rem;position:relative;break-inside:avoid}
.checks li::before{content:"\F26A";font-family:"bootstrap-icons";position:absolute;left:0;color:#ffb28a}
@media (max-width:575.98px){.checks{columns:1}}

/* Offers: coupon tickets */
.coupon{background:#fff;border:3px dashed var(--ink);border-radius:14px;padding:1.5rem 1.4rem;height:100%;position:relative;display:flex;flex-direction:column}
.coupon .amt{font-family:var(--display);font-weight:800;font-size:3.6rem;line-height:.9;color:var(--ember-d);text-transform:uppercase}
.coupon .amt small{font-size:1.4rem;letter-spacing:.08em;color:var(--ink);display:block;margin-top:.2rem}
.coupon h3{font-size:1.45rem;margin:.9rem 0 .3rem}
.coupon p{margin:0;color:var(--muted);font-size:1rem}
.coupon .fine{margin-top:auto;padding-top:.9rem;font-size:.85rem;color:var(--muted)}
.coupon-cta{background:var(--ice);border-color:var(--ice-d)}
.coupon-cta .amt{color:var(--ice-d);font-size:2.4rem;line-height:1}
.featured{background:var(--paper);border:3px solid var(--ink);border-radius:14px;padding:1.3rem 1.5rem;height:100%}
.featured h3{font-size:1.6rem;margin-bottom:.3rem}
.featured p{margin:0;color:var(--muted)}

/* Financing */
.finance{background:var(--ice)}
.finance ul{list-style:none;padding:0;margin:1rem 0}
.finance li{padding:.25rem 0 .25rem 1.8rem;position:relative;font-weight:500}
.finance li::before{content:"\F26A";font-family:"bootstrap-icons";position:absolute;left:0;color:var(--ice-d)}
.fineprint{font-size:.85rem;color:var(--muted);margin-top:1.2rem}

/* Reviews */
.stars{color:var(--ember-d);letter-spacing:.15em}
.rating-big{font-family:var(--display);font-weight:800;font-size:1.5rem;text-transform:uppercase}
.quote{background:#fff;border:3px solid var(--ink);border-radius:14px;padding:1.5rem;height:100%;display:flex;flex-direction:column}
.quote p{margin:0 0 1rem}
.quote cite{margin-top:auto;font-style:normal;font-weight:700}
.quote cite span{display:block;font-weight:500;color:var(--muted);font-size:.9rem}
.pull{background:var(--ember-d);color:#fff;padding:3.5rem 0;text-align:center}
.pull p{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(1.9rem,4.6vw,3.4rem);line-height:1.02;margin:0 auto;max-width:56rem}
.pull cite{display:block;margin-top:1rem;font-style:normal;font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:.9rem}

/* About */
.about{background:var(--paper)}
.stat-strip{display:flex;flex-wrap:wrap;gap:1.5rem 2.5rem;margin-top:1.8rem}
.stat-strip b{display:block;font-family:var(--display);font-weight:800;font-size:3.2rem;line-height:1;color:var(--ember-d)}
.stat-strip span{font-weight:600;font-size:.95rem}
.cred{border-left:6px solid var(--ember-d);padding:.2rem 0 .2rem 1.1rem;margin-bottom:1.4rem}
.cred h3{font-size:1.5rem;margin-bottom:.3rem}
.cred p{margin:0;color:var(--muted)}

/* Area + contact */
.towns{list-style:none;padding:0;margin:1.2rem 0 0;display:flex;flex-wrap:wrap;gap:.45rem}
.towns li{background:var(--ice-l);border:2px solid var(--ice-d);border-radius:999px;padding:.05rem .85rem;font-weight:600;font-size:.98rem}
.map-wrap{border:4px solid var(--ink);border-radius:14px;overflow:hidden;box-shadow:10px 10px 0 var(--ember);aspect-ratio:4/3}
.map-wrap iframe{width:100%;height:100%;border:0;display:block}
.contact{background:var(--ink);color:#fff}
.contact h2,.contact h3{color:#fff}
.contact .eyebrow{color:#ffb28a}
.contact a{color:#fff}
.big-phone{font-family:var(--display);font-weight:800;font-size:clamp(2.8rem,7vw,5rem);line-height:1;text-decoration:none;display:inline-block;border-bottom:5px solid var(--ember)}
.contact dl{margin:0}
.contact dt{font-family:var(--body);font-weight:600;letter-spacing:.16em;text-transform:uppercase;font-size:.8rem;color:#ffb28a;margin-top:1.2rem}
.contact dd{margin:.15rem 0 0}

/* Footer */
footer{background:var(--paper);border-top:3px solid var(--ink);padding:2.2rem 0 1.6rem;font-size:.95rem}
.logo-chip{display:inline-block;background:#fff;border:2px solid var(--ink);border-radius:10px;padding:.4rem .8rem}
.logo-chip img{height:48px;width:auto;display:block}
footer a{color:var(--ink);font-weight:600}
.powered{font-family:var(--display);font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:1rem}
.powered a{color:var(--ember-d);text-decoration:none;border-bottom:2px solid var(--ember)}
