/*
=====================================================================
  AN HVAC COMPANY  —  "HOT & COLD" DESIGN SYSTEM (shared stylesheet)
=====================================================================
  Built on a literal warm<->cool duality. Cool ground (#F6F8FA) +
  white cards, ink #11202B. The signature is the HOT (#FF6A3D ->
  #FFB020) <-> COOL (#0EA5E9 -> #38BDF8) gradient pairing and a
  hand-built THERMOSTAT-DIAL SVG that anchors a split hero.
  Type: Outfit (display/headings) / Plus Jakarta Sans (body).
  Shared across every page so the whole site reads as one site.
=====================================================================
*/
:root{
  --ground: #F6F8FA;   /* neutral cool ground */
  --card:   #FFFFFF;   /* white cards */
  --ink:    #11202B;   /* deep ink */
  --ink2:   #1B2E3B;   /* panel ink */
  --muted:  #5B6B78;   /* AA muted on ground */
  --line:   #E2E8EE;
  --line2:  rgba(255,255,255,.14);

  --hot1:  #FF6A3D;
  --hot2:  #FF8A3D;
  --hot3:  #FFB020;
  --hotdk: #C9461C;    /* AA text on warm-tint */

  --cool1: #0EA5E9;
  --cool2: #1E9BD7;
  --cool3: #38BDF8;
  --cooldk:#0B6E9E;    /* AA text on cool-tint */

  --hotgrad:  linear-gradient(135deg, var(--hot1) 0%, var(--hot2) 48%, var(--hot3) 100%);
  --coolgrad: linear-gradient(135deg, var(--cool1) 0%, var(--cool2) 50%, var(--cool3) 100%);

  --disp: 'Outfit', system-ui, sans-serif;
  --body: 'Plus Jakarta Sans', system-ui, sans-serif;

  --shell: 1180px;
  --gut: clamp(1.15rem, 4.5vw, 3rem);
  --sec: clamp(3.6rem, 7vw, 5.4rem);   /* unified section padding-block */
  --ease: cubic-bezier(.22,.7,.2,1);
  --rad: 22px;
}

*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
body{
  margin:0; background:var(--ground); color:var(--ink);
  font-family:var(--body); font-size:1.02rem; line-height:1.62; letter-spacing:-.004em;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img{ display:block; max-width:100%; }
a{ color:inherit; }
h1,h2,h3{ margin:0; }
::selection{ background:var(--hot1); color:#fff; }
:focus-visible{ outline:3px solid var(--cool1); outline-offset:3px; border-radius:3px; }
.shell{ max-width:var(--shell); margin:0 auto; padding-inline:var(--gut); }
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.skip{ position:absolute; left:12px; top:-60px; z-index:200; background:var(--ink); color:#fff; font-family:var(--disp); font-weight:600; font-size:13px; padding:11px 18px; text-decoration:none; border-radius:10px; }
.skip:focus{ top:10px; }

.kick{ font-family:var(--disp); font-weight:600; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); display:inline-flex; align-items:center; gap:.6rem; margin-bottom:.95rem; }
.kick::before{ content:""; width:30px; height:3px; border-radius:3px; background:var(--hotgrad); }
.kick.cool::before{ background:var(--coolgrad); }

/* reveal */
html.js [data-rise]{ opacity:0; transform:translateY(24px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
html.js [data-rise].in{ opacity:1; transform:none; }
html.js [data-rise][data-d="1"]{ transition-delay:.08s; }
html.js [data-rise][data-d="2"]{ transition-delay:.16s; }
html.js [data-rise][data-d="3"]{ transition-delay:.24s; }
@media (prefers-reduced-motion: reduce){ html.js [data-rise]{ opacity:1 !important; transform:none !important; transition:none !important; } }

/* ---------- TOP STRIP ---------- */
.strip{ background:var(--ink); color:#cdd8e0; font-family:var(--disp); font-weight:500; font-size:.76rem; letter-spacing:.02em; }
.strip .shell{ display:flex; align-items:center; gap:.6rem 1.4rem; flex-wrap:wrap; padding-block:.6rem; }
.strip .live{ display:inline-flex; align-items:center; gap:.5rem; color:#fff; text-transform:uppercase; letter-spacing:.14em; font-weight:600; font-size:.7rem; }
.strip .dot{ width:9px; height:9px; border-radius:50%; background:var(--hot1); box-shadow:0 0 0 0 rgba(255,106,61,.7); animation:pulse 2.3s infinite; }
@keyframes pulse{ 70%{ box-shadow:0 0 0 7px rgba(255,106,61,0); } 100%{ box-shadow:0 0 0 0 rgba(255,106,61,0); } }
@media (prefers-reduced-motion: reduce){ .strip .dot{ animation:none; } }
.strip .sep{ opacity:.3; }
.strip a{ color:var(--cool3); text-decoration:none; font-weight:600; margin-left:auto; }
.strip a:hover{ color:#fff; }
@media (max-width:700px){ .strip .hide-sm{ display:none; } .strip a{ margin-left:0; } }

/* ---------- NAV ---------- */
.nav{ position:sticky; top:0; z-index:60; background:rgba(246,248,250,.86); backdrop-filter:blur(12px); border-bottom:1px solid var(--line); transition:box-shadow .2s var(--ease); }
.nav .shell{ display:flex; align-items:center; justify-content:space-between; gap:1rem; height:72px; }
.brand{ display:inline-flex; align-items:center; gap:.7rem; text-decoration:none; color:var(--ink); }
.brand .mk{ width:44px; height:44px; flex:none; display:block; transition:transform .25s var(--ease); }
.brand .mk svg{ width:100%; height:100%; display:block; }
.brand:hover .mk{ transform:rotate(-8deg); }
@media (prefers-reduced-motion: reduce){ .brand:hover .mk{ transform:none; } }
.brand .bwm{ display:block; }
.brand b{ display:block; font-family:var(--disp); font-weight:800; font-size:1.14rem; letter-spacing:-.025em; line-height:1; }
.brand small{ display:block; font-family:var(--disp); font-weight:600; font-size:.585rem; letter-spacing:.135em; text-transform:uppercase; color:var(--muted); margin-top:5px; }
.nlinks{ display:none; gap:1.9rem; list-style:none; margin:0; padding:0; }
@media (min-width:940px){ .nlinks{ display:flex; } }
.nlinks a{ font-family:var(--disp); font-weight:600; font-size:.85rem; letter-spacing:.01em; text-decoration:none; color:var(--ink2); position:relative; }
.nlinks a::after{ content:""; position:absolute; left:0; right:100%; bottom:-7px; height:2.5px; border-radius:3px; background:var(--hotgrad); transition:right .25s var(--ease); }
.nlinks a:hover::after{ right:0; }
.nlinks a[aria-current="page"]{ color:var(--ink); }
.nlinks a[aria-current="page"]::after{ right:0; }
.btn{ display:inline-flex; align-items:center; gap:.5rem; font-family:var(--disp); font-weight:700; letter-spacing:.01em; text-decoration:none; cursor:pointer; border:0; border-radius:999px; transition:transform .14s var(--ease), box-shadow .14s var(--ease), filter .14s var(--ease); }
.btn--hot{ background:var(--hotgrad); color:#fff; padding:.78rem 1.3rem; font-size:.9rem; box-shadow:0 12px 26px -14px rgba(255,106,61,.85); }
.btn--hot:hover{ transform:translateY(-2px); box-shadow:0 18px 34px -14px rgba(255,106,61,.9); filter:saturate(1.08); }
.btn--cool{ background:var(--coolgrad); color:#fff; padding:.78rem 1.3rem; font-size:.9rem; box-shadow:0 12px 26px -14px rgba(14,165,233,.85); }
.btn--cool:hover{ transform:translateY(-2px); box-shadow:0 18px 34px -14px rgba(14,165,233,.9); }
.btn--ghost{ background:var(--card); color:var(--ink); border:1.5px solid var(--line); padding:.78rem 1.3rem; font-size:.9rem; }
.btn--ghost:hover{ border-color:var(--ink); transform:translateY(-2px); }
.nav .btn--hot{ display:none; }
@media (min-width:940px){ .nav .btn--hot{ display:inline-flex; } }
.burger{ display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px; background:var(--card); border:1.5px solid var(--line); color:var(--ink); cursor:pointer; border-radius:14px; }
@media (min-width:940px){ .burger{ display:none; } }
.burger span, .burger span::before, .burger span::after{ display:block; width:22px; height:2.5px; border-radius:3px; background:currentColor; }
.burger span{ position:relative; }
.burger span::before, .burger span::after{ content:""; position:absolute; left:0; transition:transform .25s var(--ease), top .25s var(--ease); }
.burger span::before{ top:-7px; } .burger span::after{ top:7px; }
.nav.open .burger span{ background:transparent; }
.nav.open .burger span::before{ top:0; transform:rotate(45deg); }
.nav.open .burger span::after{ top:0; transform:rotate(-45deg); }
/* drawer */
.drawer{ position:fixed; inset:72px 0 0; z-index:55; background:var(--ground); transform:translateY(-12px); opacity:0; visibility:hidden; transition:opacity .25s var(--ease), transform .25s var(--ease); padding:2rem var(--gut) 2.5rem; display:flex; flex-direction:column; gap:.3rem; }
.drawer.open{ opacity:1; visibility:visible; transform:none; }
body.lock{ overflow:hidden; }
.drawer a.dl{ font-family:var(--disp); font-weight:700; font-size:1.85rem; letter-spacing:-.02em; text-decoration:none; color:var(--ink); padding:.6rem 0; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; }
.drawer a.dl span{ font-size:1rem; color:var(--muted); }
.drawer a.dl:hover{ color:var(--hot1); }
.drawer a.dl[aria-current="page"]{ color:var(--hot1); }
.drawer .dfoot{ margin-top:auto; display:flex; flex-direction:column; gap:.9rem; }
.drawer .dcall{ font-family:var(--disp); font-weight:600; font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); text-decoration:none; }
.drawer .dcall b{ display:block; font-family:var(--disp); font-weight:800; font-size:1.9rem; letter-spacing:-.02em; color:var(--ink); margin-top:.25rem; }
@media (min-width:940px){ .drawer{ display:none; } }

/* ---------- HERO ---------- */
.hero{ position:relative; overflow:hidden; }
.hero__split{ position:absolute; inset:0; z-index:0; }
.hero__split .warm{ position:absolute; inset:0 50% 0 0; background:linear-gradient(150deg, var(--hot1) 0%, #F0641E 55%, #D9531A 100%); }
.hero__split .cold{ position:absolute; inset:0 0 0 50%; background:linear-gradient(150deg, var(--cool3) 0%, var(--cool1) 55%, #0A6FA0 100%); }
.hero__split .seam{ position:absolute; top:0; bottom:0; left:50%; width:120px; transform:translateX(-50%); background:linear-gradient(90deg, rgba(255,138,61,0) 0%, rgba(255,180,32,.5) 42%, rgba(56,189,248,.5) 58%, rgba(14,165,233,0) 100%); filter:blur(8px); }
.hero__split::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(17,32,43,.46) 0%, rgba(17,32,43,.4) 38%, rgba(17,32,43,.66) 100%); }
.hero .shell{ position:relative; z-index:2; }
.hero__grid{ display:grid; grid-template-columns:1fr; gap:2.2rem; align-items:center; padding-block:clamp(2.6rem,6vw,4.6rem) clamp(3rem,7vw,5rem); }
@media (min-width:900px){ .hero__grid{ grid-template-columns:1.06fr .94fr; gap:3rem; } }
.hero__copy{ color:#fff; }
.hero__tag{ display:inline-flex; align-items:center; gap:.55rem; font-family:var(--disp); font-weight:600; font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:#fff; background:rgba(17,32,43,.42); backdrop-filter:blur(4px); border:1px solid rgba(255,255,255,.28); padding:.45rem .9rem; border-radius:999px; margin-bottom:1.5rem; }
.hero h1{ font-family:var(--disp); font-weight:800; font-size:clamp(2.7rem,8.5vw,5.3rem); line-height:.98; letter-spacing:-.035em; text-shadow:0 2px 26px rgba(17,32,43,.35); }
.hero h1 .hot{ color:#FFE3B0; }
.hero h1 .cl{ color:#CDEEFF; }
.hero__sub{ max-width:42ch; color:rgba(255,255,255,.94); font-size:1.1rem; line-height:1.55; margin:1.4rem 0 2rem; text-shadow:0 1px 14px rgba(17,32,43,.4); }
.hero__cta{ display:flex; flex-wrap:wrap; gap:.85rem; align-items:center; }
.hero__cta .btn--hot{ background:#fff; color:var(--hotdk); box-shadow:0 16px 34px -16px rgba(17,32,43,.7); }
.hero__cta .btn--hot:hover{ color:var(--hot1); }
.hero__emerg{ display:inline-flex; align-items:center; gap:.6rem; font-family:var(--disp); font-weight:700; font-size:.92rem; color:#fff; text-decoration:none; padding:.78rem 1.2rem; border-radius:999px; border:1.5px solid rgba(255,255,255,.55); }
.hero__emerg:hover{ background:rgba(255,255,255,.16); }
.hero__emerg svg{ flex:none; }
.hero__stats{ display:flex; gap:2rem; margin-top:2.4rem; flex-wrap:wrap; }
.hero__stats .s b{ font-family:var(--disp); font-weight:800; font-size:1.9rem; color:#fff; line-height:1; letter-spacing:-.02em; display:block; }
.hero__stats .s span{ font-family:var(--disp); font-weight:500; font-size:.66rem; letter-spacing:.13em; text-transform:uppercase; color:rgba(255,255,255,.82); }

/* compact page hero (interior pages) */
.phero{ position:relative; overflow:hidden; }
.phero__split{ position:absolute; inset:0; z-index:0; }
.phero__split .warm{ position:absolute; inset:0 50% 0 0; background:linear-gradient(150deg, var(--hot1) 0%, #F0641E 55%, #D9531A 100%); }
.phero__split .cold{ position:absolute; inset:0 0 0 50%; background:linear-gradient(150deg, var(--cool3) 0%, var(--cool1) 55%, #0A6FA0 100%); }
.phero__split .seam{ position:absolute; top:0; bottom:0; left:50%; width:120px; transform:translateX(-50%); background:linear-gradient(90deg, rgba(255,138,61,0) 0%, rgba(255,180,32,.5) 42%, rgba(56,189,248,.5) 58%, rgba(14,165,233,0) 100%); filter:blur(8px); }
.phero__split::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(17,32,43,.5) 0%, rgba(17,32,43,.6) 100%); }
.phero .shell{ position:relative; z-index:2; padding-block:clamp(2.6rem,6vw,4rem); color:#fff; }
.phero__tag{ display:inline-flex; align-items:center; gap:.55rem; font-family:var(--disp); font-weight:600; font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:#fff; background:rgba(17,32,43,.42); backdrop-filter:blur(4px); border:1px solid rgba(255,255,255,.28); padding:.45rem .9rem; border-radius:999px; margin-bottom:1.3rem; }
.phero h1{ font-family:var(--disp); font-weight:800; font-size:clamp(2.3rem,7vw,4rem); line-height:1; letter-spacing:-.035em; text-shadow:0 2px 26px rgba(17,32,43,.35); }
.phero h1 .hot{ color:#FFE3B0; }
.phero h1 .cl{ color:#CDEEFF; }
.phero p{ max-width:50ch; color:rgba(255,255,255,.94); font-size:1.08rem; margin:1.1rem 0 0; text-shadow:0 1px 14px rgba(17,32,43,.4); }
.crumb{ font-family:var(--disp); font-weight:600; font-size:.74rem; letter-spacing:.05em; color:rgba(255,255,255,.85); margin-bottom:1rem; }
.crumb a{ text-decoration:none; color:rgba(255,255,255,.85); }
.crumb a:hover{ color:#fff; }

/* THERMOSTAT DIAL */
.dialwrap{ display:flex; justify-content:center; }
.dial{ width:min(82vw, 380px); aspect-ratio:1; filter:drop-shadow(0 30px 60px rgba(17,32,43,.4)); }
.dial .glass{ animation:floaty 7s ease-in-out infinite; transform-origin:center; }
@keyframes floaty{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-10px); } }
@media (prefers-reduced-motion: reduce){ .dial .glass{ animation:none; } }
.dial .needle{ transform-origin:200px 200px; animation:swing 9s ease-in-out infinite; }
@keyframes swing{ 0%,100%{ transform:rotate(-28deg); } 50%{ transform:rotate(28deg); } }
@media (prefers-reduced-motion: reduce){ .dial .needle{ animation:none; transform:rotate(0deg); } }
.dial .temp{ font-family:var(--disp); font-weight:800; font-variant-numeric:tabular-nums; }

/* ---------- TRUST STRIP ---------- */
.trust{ background:var(--card); border-bottom:1px solid var(--line); }
.trust .shell{ display:grid; grid-template-columns:repeat(2,1fr); gap:0; }
@media (min-width:760px){ .trust .shell{ grid-template-columns:repeat(4,1fr); } }
.trust .t{ display:flex; align-items:center; gap:.8rem; padding:1.2rem clamp(.5rem,2vw,1.4rem); border-right:1px solid var(--line); }
.trust .t:nth-child(2n){ border-right:0; }
@media (min-width:760px){ .trust .t:nth-child(2n){ border-right:1px solid var(--line); } .trust .t:last-child{ border-right:0; } }
.trust .ic{ width:40px; height:40px; flex:none; border-radius:12px; display:grid; place-items:center; color:#fff; }
.trust .ic.hot{ background:var(--hotgrad); }
.trust .ic.cool{ background:var(--coolgrad); }
.trust .t b{ display:block; font-family:var(--disp); font-weight:700; font-size:.92rem; letter-spacing:-.01em; line-height:1.1; }
.trust .t span{ font-size:.78rem; color:var(--muted); }

/* ---------- TWO PATHS (summer / winter) ---------- */
.paths .shell{ padding-block:var(--sec); }
.paths__head{ text-align:center; max-width:30ch; margin:0 auto 2.8rem; }
.paths__head h2{ font-family:var(--disp); font-weight:800; font-size:clamp(2rem,5.5vw,3.4rem); letter-spacing:-.035em; line-height:1.02; margin:0; }
.paths__grid{ display:grid; grid-template-columns:1fr; gap:1.4rem; }
@media (min-width:880px){ .paths__grid{ grid-template-columns:1fr 1fr; } }
.path{ position:relative; border-radius:var(--rad); overflow:hidden; color:#fff; min-height:480px; display:flex; flex-direction:column; justify-content:flex-end; padding:clamp(1.6rem,3vw,2.4rem); isolation:isolate; }
.path img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.path .ov{ position:absolute; inset:0; z-index:-1; }
.path.summer .ov{ background:linear-gradient(180deg, rgba(14,165,233,.25) 0%, rgba(11,110,158,.55) 48%, rgba(8,40,58,.92) 100%); }
.path.winter .ov{ background:linear-gradient(180deg, rgba(255,138,61,.28) 0%, rgba(201,70,28,.58) 48%, rgba(48,20,8,.92) 100%); }
.path__season{ position:absolute; top:1.4rem; left:1.4rem; z-index:1; display:inline-flex; align-items:center; gap:.5rem; font-family:var(--disp); font-weight:700; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; padding:.45rem .85rem; border-radius:999px; backdrop-filter:blur(4px); }
.path.summer .path__season{ background:rgba(255,255,255,.92); color:var(--cooldk); }
.path.winter .path__season{ background:rgba(255,255,255,.92); color:var(--hotdk); }
.path__big{ position:absolute; top:.6rem; right:1.2rem; z-index:0; font-family:var(--disp); font-weight:800; font-size:clamp(4rem,12vw,7rem); line-height:1; letter-spacing:-.04em; color:rgba(255,255,255,.14); }
.path h3{ font-family:var(--disp); font-weight:800; font-size:clamp(1.7rem,3.6vw,2.5rem); letter-spacing:-.03em; line-height:1; }
.path p{ margin:.7rem 0 1.1rem; max-width:36ch; color:rgba(255,255,255,.92); font-size:1rem; }
.path ul{ list-style:none; margin:0 0 1.4rem; padding:0; display:flex; flex-wrap:wrap; gap:.5rem; }
.path li{ font-family:var(--disp); font-weight:600; font-size:.74rem; letter-spacing:.01em; padding:.35rem .8rem; border-radius:999px; background:rgba(255,255,255,.18); border:1px solid rgba(255,255,255,.32); }
.path .go{ display:inline-flex; align-items:center; gap:.55rem; font-family:var(--disp); font-weight:700; font-size:.92rem; text-decoration:none; color:#fff; align-self:flex-start; padding:.72rem 1.2rem; border-radius:999px; }
.path.summer .go{ background:#fff; color:var(--cooldk); }
.path.winter .go{ background:#fff; color:var(--hotdk); }
.path .go:hover{ transform:translateX(3px); }
.path__inner{ position:relative; z-index:1; }

/* ---------- PROCESS ---------- */
.proc{ background:var(--ink); color:#fff; }
.proc .shell{ padding-block:var(--sec); }
.proc__head{ display:flex; align-items:flex-end; justify-content:space-between; gap:1.4rem; flex-wrap:wrap; margin-bottom:2.8rem; }
.proc__head .kick{ color:#9fb2bf; }
.proc__head .kick::before{ background:var(--coolgrad); }
.proc__head h2{ font-family:var(--disp); font-weight:800; font-size:clamp(1.9rem,5vw,3.2rem); letter-spacing:-.035em; line-height:1.02; margin:0; }
.proc__head p{ margin:0; color:#9fb2bf; max-width:30ch; font-size:.96rem; }
.proc__row{ display:grid; grid-template-columns:1fr; gap:1px; background:var(--line2); border:1px solid var(--line2); border-radius:var(--rad); overflow:hidden; }
@media (min-width:760px){ .proc__row{ grid-template-columns:repeat(4,1fr); } }
.pstep{ background:var(--ink2); padding:1.7rem 1.4rem; position:relative; }
.pstep .no{ font-family:var(--disp); font-weight:800; font-variant-numeric:tabular-nums; font-size:2.4rem; line-height:1; background:var(--hotgrad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.pstep:nth-child(odd) .no{ background:var(--coolgrad); -webkit-background-clip:text; background-clip:text; }
.pstep h3{ font-family:var(--disp); font-weight:700; font-size:1.08rem; letter-spacing:-.01em; margin:.7rem 0 .35rem; }
.pstep p{ margin:0; font-size:.9rem; color:#9fb2bf; line-height:1.55; }

/* ---------- SERVICES GRID (services page) ---------- */
.svcs .shell{ padding-block:var(--sec); }
.svcs__head{ max-width:44ch; margin:0 0 2.6rem; }
.svcs__head h2{ font-family:var(--disp); font-weight:800; font-size:clamp(1.9rem,5vw,3rem); letter-spacing:-.035em; line-height:1.04; margin:0 0 .8rem; }
.svcs__head p{ margin:0; color:var(--muted); font-size:1.04rem; }
.svcs__grid{ display:grid; grid-template-columns:1fr; gap:1.2rem; }
@media (min-width:640px){ .svcs__grid{ grid-template-columns:1fr 1fr; } }
@media (min-width:980px){ .svcs__grid{ grid-template-columns:1fr 1fr 1fr; } }
.svc{ background:var(--card); border:1px solid var(--line); border-radius:var(--rad); padding:1.7rem; display:flex; flex-direction:column; }
.svc .ic{ width:46px; height:46px; flex:none; border-radius:13px; display:grid; place-items:center; color:#fff; margin-bottom:1.1rem; }
.svc .ic.hot{ background:var(--hotgrad); }
.svc .ic.cool{ background:var(--coolgrad); }
.svc h3{ font-family:var(--disp); font-weight:700; font-size:1.18rem; letter-spacing:-.02em; margin:0 0 .5rem; }
.svc p{ margin:0 0 1.1rem; color:var(--muted); font-size:.95rem; line-height:1.55; }
.svc ul{ list-style:none; margin:0 0 1.2rem; padding:0; display:grid; gap:.4rem; }
.svc li{ font-size:.9rem; display:flex; align-items:flex-start; gap:.55rem; color:var(--ink2); }
.svc li svg{ flex:none; margin-top:3px; }
.svc .go{ margin-top:auto; font-family:var(--disp); font-weight:700; font-size:.88rem; text-decoration:none; color:var(--hotdk); display:inline-flex; align-items:center; gap:.4rem; }
.svc .go.cool{ color:var(--cooldk); }
.svc .go:hover{ gap:.7rem; }

/* ---------- COMFORT CLUB ---------- */
.club .shell{ padding-block:var(--sec); }
.club__lead{ display:grid; grid-template-columns:1fr; gap:2.2rem; align-items:center; }
@media (min-width:900px){ .club__lead{ grid-template-columns:.95fr 1.05fr; gap:3.4rem; } }
.club__copy h2{ font-family:var(--disp); font-weight:800; font-size:clamp(2rem,5.5vw,3.4rem); letter-spacing:-.035em; line-height:1.02; margin:0 0 1rem; }
.club__copy p{ color:var(--muted); max-width:46ch; margin:0 0 1.3rem; font-size:1.04rem; }
.club__copy .perks{ list-style:none; margin:0; padding:0; display:grid; gap:.7rem; }
.club__copy .perks li{ display:flex; align-items:flex-start; gap:.7rem; font-size:.98rem; }
.club__copy .perks svg{ flex:none; margin-top:3px; }
/* membership card */
.cardm{ position:relative; border-radius:24px; padding:clamp(1.6rem,3vw,2.4rem); color:#fff; overflow:hidden; box-shadow:0 36px 70px -34px rgba(17,32,43,.6); }
.cardm::before{ content:""; position:absolute; inset:0; background:linear-gradient(135deg, var(--hot1) 0%, #E85A22 28%, #0E7FB8 72%, var(--cool1) 100%); z-index:-2; }
.cardm::after{ content:""; position:absolute; inset:0; background:linear-gradient(160deg, rgba(17,32,43,.42) 0%, rgba(17,32,43,.58) 100%); z-index:-1; }
.cardm__top{ display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1.6rem; }
.cardm__top .nm{ font-family:var(--disp); font-weight:800; font-size:1.25rem; letter-spacing:-.02em; line-height:1; }
.cardm__top .nm span{ display:block; font-weight:500; font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; opacity:.85; margin-top:.35rem; }
.cardm__top .seal{ width:46px; height:46px; flex:none; }
.cardm__price{ display:flex; align-items:baseline; gap:.5rem; margin-bottom:.2rem; }
.cardm__price b{ font-family:var(--disp); font-weight:800; font-variant-numeric:tabular-nums; font-size:3.2rem; line-height:1; letter-spacing:-.03em; }
.cardm__price span{ font-family:var(--disp); font-weight:600; font-size:.9rem; opacity:.9; }
.cardm__sub{ font-size:.86rem; opacity:.92; margin:0 0 1.4rem; }
.cardm__list{ list-style:none; margin:0 0 1.6rem; padding:1.3rem 0 0; border-top:1px solid rgba(255,255,255,.32); display:grid; gap:.7rem; }
.cardm__list li{ display:flex; align-items:flex-start; gap:.6rem; font-family:var(--disp); font-weight:500; font-size:.92rem; }
.cardm__list svg{ flex:none; margin-top:2px; }
.cardm .btn{ width:100%; justify-content:center; background:#fff; color:var(--ink); padding:.95rem; font-size:.98rem; }
.cardm .btn:hover{ transform:translateY(-2px); }
.cardm__fine{ margin:.9rem 0 0; font-size:.72rem; opacity:.85; text-align:center; }

/* ---------- EMERGENCY ---------- */
.emerg{ position:relative; overflow:hidden; }
.emerg .bg{ position:absolute; inset:0; background:linear-gradient(125deg, #C9461C 0%, #C13F18 50%, #B23914 100%); z-index:-2; }
.emerg .bg::after{ content:""; position:absolute; inset:0; background:radial-gradient(115% 130% at 96% -18%, rgba(255,176,32,.30) 0%, rgba(255,176,32,0) 46%); }
.emerg .shell{ padding-block:clamp(2.8rem,6vw,4rem); display:grid; grid-template-columns:1fr; gap:1.6rem; align-items:center; color:#fff; }
@media (min-width:820px){ .emerg .shell{ grid-template-columns:1fr auto; gap:2.4rem; } }
.emerg h2{ font-family:var(--disp); font-weight:800; font-size:clamp(1.8rem,5vw,2.9rem); letter-spacing:-.03em; line-height:1.02; }
.emerg p{ margin:.6rem 0 0; max-width:48ch; color:rgba(255,255,255,.94); font-size:1.02rem; }
.emerg__call{ display:inline-flex; flex-direction:column; gap:.2rem; text-decoration:none; background:rgba(17,32,43,.22); border:1.5px solid rgba(255,255,255,.5); border-radius:18px; padding:1.1rem 1.5rem; backdrop-filter:blur(4px); }
.emerg__call .l{ font-family:var(--disp); font-weight:600; font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.92); }
.emerg__call .n{ font-family:var(--disp); font-weight:800; font-size:clamp(1.6rem,4vw,2.3rem); letter-spacing:-.02em; color:#fff; }
.emerg__call:hover{ background:rgba(17,32,43,.34); }

/* ---------- TESTIMONIAL + FINANCING ---------- */
.proof .shell{ padding-block:var(--sec); display:grid; grid-template-columns:1fr; gap:1.4rem; }
@media (min-width:900px){ .proof .shell{ grid-template-columns:1.4fr .9fr; gap:1.6rem; align-items:stretch; } }
.qcard{ background:var(--card); border:1px solid var(--line); border-radius:var(--rad); padding:clamp(1.8rem,4vw,3rem); position:relative; overflow:hidden; }
.qcard::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:6px; background:var(--coolgrad); }
.qcard .stars{ color:var(--hot1); letter-spacing:.22em; font-size:1.05rem; margin-bottom:1rem; }
.qcard blockquote{ margin:0; font-family:var(--disp); font-weight:700; font-size:clamp(1.3rem,2.8vw,1.9rem); line-height:1.28; letter-spacing:-.02em; color:var(--ink); }
.qcard cite{ display:flex; align-items:center; gap:.8rem; margin-top:1.6rem; font-style:normal; }
.qcard cite .av{ width:44px; height:44px; border-radius:50%; flex:none; background:var(--coolgrad); display:grid; place-items:center; color:#fff; font-family:var(--disp); font-weight:800; font-size:1.05rem; }
.qcard cite b{ display:block; font-family:var(--disp); font-weight:700; font-size:.96rem; }
.qcard cite span{ font-size:.82rem; color:var(--muted); }
.finance{ background:var(--ink); color:#fff; border-radius:var(--rad); padding:clamp(1.8rem,4vw,2.6rem); display:flex; flex-direction:column; }
.finance .kick{ color:#9fb2bf; }
.finance .kick::before{ background:var(--hotgrad); }
.finance h3{ font-family:var(--disp); font-weight:800; font-size:clamp(1.5rem,3.4vw,2.1rem); letter-spacing:-.03em; line-height:1.05; margin:0 0 .8rem; }
.finance p{ color:#9fb2bf; font-size:.96rem; margin:0 0 1.4rem; }
.finance .big{ font-family:var(--disp); font-weight:800; font-variant-numeric:tabular-nums; font-size:clamp(2.4rem,6vw,3.4rem); line-height:1; letter-spacing:-.03em; background:var(--hotgrad); -webkit-background-clip:text; background-clip:text; color:transparent; margin-top:auto; }
.finance .big small{ font-family:var(--disp); font-weight:600; font-size:.9rem; -webkit-text-fill-color:#9fb2bf; color:#9fb2bf; }

/* ---------- SERVICE AREA ---------- */
.area .shell{ padding-block:var(--sec); }
.area__lead{ display:grid; grid-template-columns:1fr; gap:2.4rem; align-items:center; }
@media (min-width:900px){ .area__lead{ grid-template-columns:1.05fr .95fr; gap:3.4rem; } }
.area__copy h2{ font-family:var(--disp); font-weight:800; font-size:clamp(2rem,5.5vw,3.2rem); letter-spacing:-.035em; line-height:1.03; margin:0 0 1rem; }
.area__copy p{ color:var(--muted); max-width:48ch; margin:0 0 1.4rem; font-size:1.04rem; }
.area__towns{ list-style:none; margin:0 0 1.6rem; padding:0; display:flex; flex-wrap:wrap; gap:.6rem; }
.area__towns li{ font-family:var(--disp); font-weight:600; font-size:.86rem; padding:.55rem 1rem; border-radius:999px; background:var(--card); border:1.5px solid var(--line); }
.area__towns li.more{ background:var(--ink); color:#fff; border-color:var(--ink); }
.area__map{ position:relative; border-radius:var(--rad); overflow:hidden; border:1px solid var(--line); background:var(--card); }
.area__map img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; }
.area__map .pin{ position:absolute; inset:0; display:grid; place-items:center; pointer-events:none; }
.area__map .pin svg{ filter:drop-shadow(0 10px 20px rgba(17,32,43,.45)); }

/* ---------- BOOK / FORM ---------- */
.book{ background:var(--card); border-top:1px solid var(--line); }
.book .shell{ padding-block:var(--sec); display:grid; grid-template-columns:1fr; gap:2.6rem; }
@media (min-width:940px){ .book .shell{ grid-template-columns:1fr 1.02fr; gap:4rem; align-items:start; } }
.book h2{ font-family:var(--disp); font-weight:800; font-size:clamp(2.2rem,6vw,3.6rem); letter-spacing:-.035em; line-height:1; }
.book__p{ color:var(--muted); max-width:42ch; margin:1.1rem 0 1.8rem; font-size:1.06rem; }
.book__call{ display:inline-flex; align-items:center; gap:.85rem; text-decoration:none; color:var(--ink); margin-bottom:1.6rem; }
.book__call .ic{ width:50px; height:50px; border-radius:14px; flex:none; background:var(--hotgrad); display:grid; place-items:center; color:#fff; }
.book__call .n{ font-family:var(--disp); font-weight:800; font-size:clamp(1.5rem,4vw,2rem); letter-spacing:-.02em; display:block; line-height:1; }
.book__call .l{ font-family:var(--disp); font-weight:600; font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.book__hrs{ list-style:none; margin:0; padding:1.4rem 0 0; border-top:1px solid var(--line); display:grid; gap:.45rem; max-width:340px; }
.book__hrs li{ display:flex; justify-content:space-between; font-size:.92rem; }
.book__hrs li span:first-child{ color:var(--muted); }
.book__hrs li b{ font-family:var(--disp); font-weight:600; }

.form{ background:var(--ground); border:1px solid var(--line); border-radius:var(--rad); padding:clamp(1.5rem,3.5vw,2.3rem); box-shadow:0 30px 60px -38px rgba(17,32,43,.4); }
.form .ft{ font-family:var(--disp); font-weight:800; font-size:1.4rem; letter-spacing:-.02em; margin:0 0 .25rem; }
.form .fk{ font-size:.84rem; color:var(--muted); margin:0 0 1.4rem; }
/* heat/cool toggle */
.toggle{ display:grid; grid-template-columns:1fr 1fr; gap:.7rem; margin-bottom:1.2rem; }
.toggle label{ position:relative; cursor:pointer; }
.toggle input{ position:absolute; opacity:0; width:1px; height:1px; }
.toggle .opt{ display:flex; align-items:center; justify-content:center; gap:.55rem; padding:.95rem; border-radius:14px; border:1.6px solid var(--line); background:var(--card); font-family:var(--disp); font-weight:700; font-size:.95rem; transition:border-color .15s var(--ease), background-color .15s var(--ease), color .15s var(--ease); }
.toggle .opt svg{ flex:none; }
.toggle label.cool input:checked ~ .opt{ border-color:var(--cool1); background:rgba(14,165,233,.08); color:var(--cooldk); }
.toggle label.hot input:checked ~ .opt{ border-color:var(--hot1); background:rgba(255,106,61,.08); color:var(--hotdk); }
.toggle input:focus-visible ~ .opt{ outline:3px solid var(--cool1); outline-offset:2px; }
.field{ margin-bottom:1rem; }
.field label{ display:block; font-family:var(--disp); font-weight:600; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:.4rem; }
.field input, .field select{ width:100%; background:var(--card); border:1.6px solid var(--line); color:var(--ink); font-family:var(--body); font-size:1rem; padding:.85rem .95rem; border-radius:13px; transition:border-color .15s var(--ease); }
.field input::placeholder{ color:#9aa7b1; }
.field input:focus, .field select:focus{ outline:none; border-color:var(--cool1); }
.fields-2{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media (max-width:480px){ .fields-2{ grid-template-columns:1fr; } }
.form .btn--hot{ width:100%; justify-content:center; padding:1.05rem; font-size:1.02rem; margin-top:.4rem; }
.form .ftrust{ margin-top:.95rem; font-family:var(--disp); font-weight:500; font-size:.74rem; color:var(--muted); display:flex; gap:.5rem; align-items:center; justify-content:center; }
.form .ftrust svg{ color:var(--cool1); flex:none; }
.form.done .form__in{ display:none; }
.form__ok{ display:none; text-align:center; padding:1.6rem 0; }
.form.done .form__ok{ display:block; }
.form__ok .seal{ width:72px; height:72px; margin:0 auto 1.1rem; }
.form__ok h3{ font-family:var(--disp); font-weight:800; font-size:1.7rem; letter-spacing:-.02em; }
.form__ok p{ color:var(--muted); max-width:34ch; margin:.5rem auto 0; }

/* ---------- FOOTER ---------- */
.foot{ background:var(--ink); color:#cdd8e0; }
.foot .shell{ padding-block:clamp(2.8rem,6vw,4rem); }
.foot__top{ display:flex; justify-content:space-between; align-items:flex-end; gap:1.6rem; flex-wrap:wrap; padding-bottom:1.8rem; border-bottom:1px solid var(--line2); }
.foot__mk{ display:inline-flex; align-items:center; gap:.8rem; }
.foot__mk .mk{ width:48px; height:48px; flex:none; }
.foot__wm{ display:block; }
.foot__mk b{ display:block; font-family:var(--disp); font-weight:800; font-size:clamp(1.4rem,4vw,1.95rem); letter-spacing:-.025em; line-height:1; color:#fff; }
.foot__wm small{ display:block; font-family:var(--disp); font-weight:600; font-size:.62rem; letter-spacing:.135em; text-transform:uppercase; color:#8aa0ad; margin-top:6px; }
.foot__call{ text-decoration:none; text-align:right; }
.foot__call .l{ font-family:var(--disp); font-weight:600; font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:#8aa0ad; display:block; }
.foot__call .n{ font-family:var(--disp); font-weight:800; font-size:1.7rem; letter-spacing:-.02em; color:#fff; }
.foot__cols{ display:grid; grid-template-columns:1fr 1fr; gap:1.8rem; padding-top:2rem; }
@media (min-width:720px){ .foot__cols{ grid-template-columns:2fr 1fr 1fr 1fr; } }
.foot__cols h4{ font-family:var(--disp); font-weight:700; font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--cool3); margin:0 0 .9rem; }
.foot__cols p, .foot__cols li{ color:#9fb2bf; font-size:.92rem; line-height:1.7; }
.foot__cols ul{ list-style:none; margin:0; padding:0; }
.foot__cols a{ color:#9fb2bf; text-decoration:none; }
.foot__cols a:hover{ color:#fff; }
.colo{ margin-top:2.2rem; padding-top:1.4rem; border-top:1px solid var(--line2); display:flex; flex-wrap:wrap; gap:12px 18px; align-items:center; justify-content:space-between; font-family:var(--disp); font-weight:500; font-size:.72rem; color:#8aa0ad; }
.colo p{ margin:0; max-width:54ch; }
.gwc-chip{ background:#fff; padding:7px 12px; display:inline-flex; border-radius:10px; }

/* ---------- DEMO CHIP ---------- */
.specimen{ position:fixed; left:14px; bottom:14px; z-index:50; display:inline-flex; align-items:center; gap:10px; padding:9px 13px; background:rgba(17,32,43,.96); border:1px solid rgba(56,189,248,.5); color:#fff; text-decoration:none; border-radius:14px; box-shadow:0 18px 40px -22px rgba(0,0,0,.7); }
.specimen:hover{ border-color:var(--cool3); }
.specimen .stx b{ display:block; font-family:var(--disp); font-weight:700; font-size:10px; letter-spacing:.05em; text-transform:uppercase; color:var(--cool3); }
.specimen .stx small{ font-family:var(--disp); font-weight:500; font-size:9px; color:rgba(255,255,255,.72); }
@media (max-width:560px){ .specimen{ left:10px; bottom:70px; } .specimen .stx small{ display:none; } }
@media print{ .specimen, .gwc-chip{ display:none; } }

/* ---------- STICKY CTA BAR ---------- */
.callbar{ display:none; }
@media (max-width:760px){
  .callbar{ display:grid; grid-template-columns:1fr 1fr; position:fixed; bottom:0; left:0; right:0; z-index:55; box-shadow:0 -6px 22px -8px rgba(17,32,43,.4); }
  .callbar a{ display:flex; align-items:center; justify-content:center; gap:.5rem; padding:.95rem .6rem; text-decoration:none; font-family:var(--disp); font-weight:700; font-size:.92rem; letter-spacing:.01em; color:#fff; }
  .callbar a.c1{ background:var(--hotgrad); }
  .callbar a.c2{ background:var(--ink); }
  body{ padding-bottom:54px; }
}
