:root{--cream:#fbf5ea;--cream2:#f3e9d5;--plum:#5e1738;--plum2:#7a2149;--teal:#1fa9a5;--teal-d:#0d5c62;--beak:#f08a24;--beak-d:#b85f08;--ink:#2a1420;--mute:#5f4a53;--line:#e3d5bd;--display:'Alfa Slab One',Georgia,serif;--body:'Nunito Sans',system-ui,sans-serif}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{font-family:var(--body);color:var(--ink);background:var(--cream);font-size:1.05rem;line-height:1.6}
h1,h2,h3,h4{font-family:var(--display);font-weight:400;letter-spacing:.01em;line-height:1.08}
a{color:var(--teal-d)}
.eyebrow{font-weight:800;letter-spacing:.16em;text-transform:uppercase;font-size:.78rem;color:var(--beak-d);display:flex;align-items:center;gap:.6rem}
.eyebrow::before{content:"";width:34px;height:4px;border-radius:2px;background:linear-gradient(90deg,var(--teal),var(--beak))}
/* utility bar */
.utility{background:var(--plum);color:#fff;font-size:.88rem;font-weight:600}
.utility a{color:#fff;text-decoration:none}
.utility .badge-247{background:var(--beak);color:#2a1420;font-weight:800;border-radius:99px;padding:.1rem .7rem;font-size:.75rem;letter-spacing:.06em}
.navbar{background:var(--cream);border-bottom:3px solid var(--plum)}
.navbar-brand{display:flex;align-items:center;gap:.6rem;font-family:var(--display);color:var(--plum);font-size:1.25rem;line-height:1}
.navbar-brand img{height:46px;width:auto}
.navbar-brand small{display:block;font-family:var(--body);font-weight:800;font-size:.62rem;letter-spacing:.14em;color:var(--teal-d);text-transform:uppercase;margin-top:3px}
.nav-link{font-weight:800;color:var(--ink);font-size:.95rem}
.nav-link:hover{color:var(--teal-d)}
.btn-call{background:var(--plum);color:#fff;font-weight:800;border-radius:99px;padding:.55rem 1.2rem;border:0;box-shadow:0 4px 0 var(--ink)}
.btn-call:hover{background:var(--plum2);color:#fff;transform:translateY(1px);box-shadow:0 3px 0 var(--ink)}
.btn-beak{background:var(--beak);color:var(--ink);font-weight:800;border-radius:99px;padding:.8rem 1.6rem;box-shadow:0 4px 0 var(--ink);border:0}
.btn-beak:hover{background:#ffa23f;color:var(--ink)}
.btn-line{border:2px solid var(--plum);color:var(--plum);font-weight:800;border-radius:99px;padding:.75rem 1.5rem}
.btn-line:hover{background:var(--plum);color:#fff}
/* hero */
.hero{padding:3.5rem 0 4.5rem;position:relative;overflow:hidden}
.hero h1{font-size:clamp(2.5rem,6.4vw,5rem);color:var(--plum)}
.hero h1 em{font-style:normal;color:var(--teal-d);background:linear-gradient(transparent 72%,rgba(240,138,36,.45) 72%)}
.hero .lead{max-width:34rem;color:var(--mute)}
.hero-photo{position:relative;border-radius:46% 46% 18px 18px/36% 36% 18px 18px;overflow:hidden;border:6px solid var(--plum);box-shadow:14px 14px 0 var(--teal);aspect-ratio:4/4.4;background:var(--cream2)}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:62% 40%}
.hero-pen{position:absolute;left:-10px;bottom:-30px;width:130px;filter:drop-shadow(0 6px 0 rgba(42,20,32,.18));transform:rotate(-4deg);z-index:2}
.stats{display:flex;flex-wrap:wrap;gap:1.8rem;margin-top:2rem}
.stats div{border-left:4px solid var(--beak);padding-left:.8rem}
.stats b{display:block;font-family:var(--display);font-weight:400;font-size:1.7rem;color:var(--plum);line-height:1}
.stats span{font-size:.82rem;font-weight:700;color:var(--mute)}
/* thermostat scale divider */
.scale{height:58px;position:relative;background:linear-gradient(90deg,var(--teal-d),var(--teal) 35%,var(--cream2) 50%,var(--beak) 70%,#d8441d);}
.scale::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(42,20,32,.55) 0 2px,transparent 2px 14px) bottom/100% 14px no-repeat,repeating-linear-gradient(90deg,rgba(42,20,32,.8) 0 3px,transparent 3px 70px) bottom/100% 26px no-repeat}
.scale span{position:absolute;top:6px;font-family:var(--display);font-size:.9rem;color:var(--ink)}
.scale .l{left:2%;color:#fff}.scale .m{left:50%;transform:translateX(-50%)}.scale .r{right:2%;color:#fff}
.scale-sm{height:34px}
/* sections */
section{padding:5rem 0}
.section-title{font-size:clamp(2rem,4.4vw,3.2rem);color:var(--plum);margin:.6rem 0 1rem}
.tile{background:#fff;border:3px solid var(--plum);border-radius:18px;height:100%;overflow:hidden;box-shadow:7px 7px 0 var(--plum);display:flex;flex-direction:column;transition:transform .2s}
.tile:hover{transform:translate(-2px,-2px)}
.tile img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;border-bottom:3px solid var(--plum)}
.tile .body{padding:1.3rem 1.4rem 1.5rem}
.tile h3{font-size:1.45rem;color:var(--plum);margin-bottom:.5rem}
.tile ul{padding-left:1.1rem;margin:.6rem 0 0;color:var(--mute);font-size:.96rem}
.tile .ico{width:46px;height:46px;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center;font-size:1.3rem;margin-bottom:.8rem}
.tile.alt .ico{background:var(--beak);color:var(--ink)}
.trade-band{background:var(--plum);color:#fff}
.trade-band h2,.trade-band .section-title{color:#fff}
.trade-band .eyebrow{color:#ffc27a}
.trade{background:rgba(255,255,255,.07);border:2px solid rgba(255,255,255,.22);border-radius:16px;padding:1.5rem;height:100%}
.trade h3{font-size:1.5rem;color:#fff}
.trade h3 i{color:var(--beak);margin-right:.4rem}
.trade ul{list-style:none;padding:0;margin:1rem 0 0}
.trade li{padding:.35rem 0;border-top:1px dashed rgba(255,255,255,.25);color:#f3e6e9}
.trade li::before{content:"\2022";color:var(--beak);margin-right:.6rem}
/* warranty */
.warranty{background:var(--teal-d);color:#fff}
.seal{width:210px;height:210px;border-radius:50%;background:var(--beak);color:var(--ink);display:grid;place-items:center;text-align:center;font-family:var(--display);border:6px double var(--ink);transform:rotate(-8deg);margin:auto;box-shadow:0 8px 0 rgba(0,0,0,.25)}
.seal b{display:block;font-size:4.2rem;font-weight:400;line-height:.9}
.seal span{font-size:1rem;line-height:1.1;display:block}
/* reviews */
.rev{background:#fff;border:2px solid var(--line);border-radius:16px;padding:1.4rem;height:100%;position:relative}
.rev .stars{color:var(--beak);letter-spacing:.1em}
.rev p{margin:.5rem 0 .8rem;font-size:.98rem}
.rev cite{font-style:normal;font-weight:800;color:var(--plum);font-size:.9rem}
.rev-strip{display:flex;gap:1.2rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.4rem .4rem 1.4rem}
.rev-strip .rev{min-width:min(340px,82vw);scroll-snap-align:start;height:auto}
/* area */
.chip{display:inline-block;background:#fff;border:2px solid var(--plum);border-radius:99px;padding:.25rem .9rem;margin:.22rem;font-weight:700;font-size:.92rem;color:var(--plum)}
.chip.home{background:var(--plum);color:#fff}
/* faq */
.accordion{--bs-accordion-bg:#fff;--bs-accordion-border-color:var(--plum);--bs-accordion-active-bg:var(--cream2);--bs-accordion-active-color:var(--plum);--bs-accordion-btn-focus-box-shadow:0 0 0 .2rem rgba(31,169,165,.35)}
.accordion-button{font-weight:800}
.faq-h{font-family:var(--display);color:var(--teal-d);font-size:1.3rem;margin:2rem 0 .8rem}
/* contact */
.contact-card{background:#fff;border:3px solid var(--plum);border-radius:18px;padding:2rem;box-shadow:8px 8px 0 var(--teal)}
.hours td{padding:.25rem 1.2rem .25rem 0;font-weight:700}
.map{border:3px solid var(--plum);border-radius:18px;overflow:hidden;min-height:340px;height:100%}
.map iframe{width:100%;height:100%;min-height:340px;border:0;display:block}
.big-phone{font-family:var(--display);font-size:clamp(1.9rem,5vw,2.8rem);color:var(--plum);text-decoration:none;display:inline-block;line-height:1}
footer{background:var(--ink);color:#d9c9cf;padding:3rem 0 1.5rem}
footer a{color:#fff}
footer .chipfoot{background:var(--cream);border-radius:12px;padding:.5rem .8rem;display:inline-block}
footer .chipfoot img{height:52px;width:auto;display:block}
.lic{font-size:.85rem;color:#b9a4ad}
.social a{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.1);margin-right:.35rem;text-decoration:none}
.social a:hover{background:var(--beak);color:var(--ink)}
@media(max-width:991px){.hero-pen{width:96px;left:-4px}.hero-photo{box-shadow:9px 9px 0 var(--teal);max-width:460px;margin:2rem auto 0}.tile{box-shadow:5px 5px 0 var(--plum)}}
@media(max-width:575px){section{padding:3.5rem 0}.navbar-brand{font-size:1.05rem}.navbar-brand img{height:38px}.seal{width:170px;height:170px}.seal b{font-size:3.3rem}}
