:root{--navy:#08233d;--navy2:#061a2c;--blue:#198bee;--red:#ff342f;--ink:#0c2a49;--muted:#536779;--soft:#eef8ff;--white:#fff;--max:1180px;--shadow:0 12px 30px rgba(6,28,48,.09)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink);background:#fff;line-height:1.45}img{display:block;max-width:100%}a{text-decoration:none;color:inherit}.container{width:min(var(--max),calc(100% - 48px));margin:auto}.eyebrow{margin:0 0 7px;text-transform:uppercase;letter-spacing:.14em;font-size:.74rem;font-weight:900;color:var(--red)}.eyebrow.light{color:#fff}h1,h2,h3,p{margin-top:0}h2{font-size:clamp(1.9rem,3.2vw,2.8rem);line-height:1.05;letter-spacing:-.035em;margin-bottom:0}.site-header{position:relative;z-index:20}.topbar{height:40px;background:var(--navy2);color:#fff;font-size:.77rem}.topbar-inner{height:100%;display:flex;align-items:center;justify-content:flex-end;gap:25px}.topbar a{opacity:.95}.topbar a:hover{opacity:1}.topbar-spacer{flex:1}.socials{display:flex;gap:11px}.socials a{font-size:.95rem;font-weight:800}.nav-shell{background:#fff;box-shadow:0 1px 0 rgba(0,0,0,.08)}.nav-wrap{height:65px;display:flex;align-items:center;gap:24px}.brand{align-self:stretch;width:300px;background:linear-gradient(135deg,#092641 0%,#092641 82%,transparent 82.4%);display:flex;align-items:center;padding:0 38px 0 0;margin-top:-40px;height:105px;position:relative;z-index:5}.brand img{width:245px;height:85px;object-fit:contain;background:#08233d}.nav{display:flex;align-items:center;gap:21px;margin-left:auto;font-size:.82rem;font-weight:800}.nav a{height:65px;display:flex;align-items:center;border-bottom:3px solid transparent}.nav a:hover,.nav a.active{color:var(--red);border-bottom-color:var(--red)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border-radius:6px;color:#fff;font-weight:800;transition:.18s ease;white-space:nowrap}.btn:hover{transform:translateY(-1px);filter:brightness(1.03)}.btn-red{background:var(--red)}.btn-blue{background:var(--blue)}.nav-cta{min-height:42px;padding:0 18px;font-size:.81rem}.menu-toggle{display:none;background:#fff;border:1px solid #d7e0e8;border-radius:6px;font-size:1.3rem;padding:6px 10px}
.hero{position:relative;overflow:hidden;background:linear-gradient(90deg,rgba(5,27,47,.98) 0%,rgba(5,27,47,.82) 42%,rgba(5,27,47,.15) 78%),url('assets/hero-clean.jpg') center 52%/cover no-repeat;color:#fff;min-height:390px}.hero-inner{position:relative;min-height:365px;padding:38px 0 34px;display:flex;align-items:center;justify-content:space-between}.hero-copybox{max-width:650px}.hero h1{font-size:clamp(3rem,5vw,4.65rem);line-height:.92;letter-spacing:-.045em;margin:0 0 15px}.hero h1 .red{color:var(--red)}.hero h1 .blue{color:#169bff}.hero-copybox>p:not(.eyebrow){font-size:1.22rem;line-height:1.45;max-width:650px;margin-bottom:17px}.hero-actions{display:flex;gap:14px}.alt-phone{font-size:1.05rem;margin-top:8px}.hero-tagline{align-self:center;margin-top:90px;margin-right:14px;background:rgba(255,255,255,.76);color:#111;font-size:1.3rem;font-weight:900;font-style:italic;line-height:1.3;padding:10px 13px;transform:rotate(-3deg);box-shadow:0 4px 14px rgba(0,0,0,.16)}.trust-strip{position:relative;background:rgba(5,27,47,.94);border-top:1px solid rgba(255,255,255,.14);box-shadow:0 -8px 24px rgba(0,0,0,.08)}.trust-grid{min-height:82px;display:grid;grid-template-columns:repeat(4,1fr);align-items:center}.trust-grid>div{display:flex;align-items:center;justify-content:center;gap:14px;border-right:1px solid rgba(255,255,255,.16);font-size:.9rem;line-height:1.2;padding:12px 20px}.trust-grid>div:last-child{border-right:0}.trust-icon{font-size:2rem;color:#fff}.section{padding:34px 0}.section-intro{margin-bottom:18px}.two-col{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:end}.two-col>p{color:var(--muted);font-size:.96rem;margin:0 0 4px}.service-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.service-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 10px 28px rgba(7,36,63,.08);border:1px solid #e7eef4;transition:transform .2s ease,box-shadow .2s ease}.service-card>img,.thermostat-art{width:100%;height:150px;object-fit:cover;display:block}.service-card:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(7,36,63,.13)}.card-body{padding:16px 16px 18px;min-height:145px}.card-body h3{font-size:1.03rem;line-height:1.15;margin-bottom:8px}.card-body p{font-size:.85rem;color:var(--muted);line-height:1.45;margin-bottom:8px}.card-body a{color:var(--red);font-size:1.35rem;font-weight:900}.thermostat-art{display:grid;place-items:center;background:linear-gradient(135deg,#efefee,#c8c9ca)}.thermostat{width:83px;height:83px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#19232d 0 42%,#0a0f14 44% 100%);display:grid;place-items:center;border:7px solid #eff0f0;box-shadow:0 8px 18px rgba(0,0,0,.26)}.thermostat span{color:#fff;font-size:1.6rem}.quality{padding:40px 0 42px;background:linear-gradient(90deg,#f3f9fd,#e7f5ff)}.quality-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:22px;margin-top:24px}.quality-item{text-align:center;padding:8px 14px}.line-icon{font-size:2.25rem;line-height:1;color:#0866c5;height:48px;margin-bottom:10px;font-family:Arial,sans-serif}.quality-item h3{font-size:.92rem;line-height:1.25;margin-bottom:7px}.quality-item p{font-size:.78rem;color:var(--muted);line-height:1.4;margin:0}.work{padding-bottom:16px}.work-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:13px}.work-head>a{font-weight:800;font-size:.82rem}.work-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.work-grid img{height:167px;width:100%;object-fit:cover}.reviews{padding:15px 0 28px;background:#f8fbfd}.reviews h2{margin-bottom:13px}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.review-grid blockquote{margin:0;background:#fff;padding:15px 22px 17px;border-radius:10px;box-shadow:var(--shadow)}.stars{color:#ffb000;letter-spacing:.08em;font-size:1rem}.review-grid blockquote p{font-size:.79rem;font-style:italic;color:#43576b;line-height:1.45;margin:8px 0}.review-grid footer{font-weight:900;font-size:.8rem}.cta{padding:20px 0;background:linear-gradient(90deg,rgba(4,29,53,.96),rgba(4,58,94,.80)),url('assets/project-6.jpg') center 62%/cover no-repeat;color:#fff}.cta-grid{display:grid;grid-template-columns:1.65fr .55fr;gap:30px;align-items:center}.cta h2{font-size:1.85rem;margin-bottom:5px}.cta p{font-size:.9rem;margin-bottom:12px}.cta-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.cta-actions .btn{min-height:42px;font-size:.83rem}.cta-actions span,.cta-actions>a:not(.btn){font-size:.8rem}.cta-checks{display:grid;gap:8px;font-size:.78rem;font-weight:700}.cta-checks span{display:block}.cta-checks span::first-letter{background:var(--red)}.footer{background:#04192c;color:#fff;padding:15px 0}.footer-row{display:grid;grid-template-columns:240px 1fr auto 230px;gap:22px;align-items:center}.footer-logo img{width:200px;height:58px;object-fit:contain;background:#04192c}.footer nav{display:flex;gap:25px;font-size:.78rem}.footer-socials{display:flex;gap:14px;font-weight:900}.footer small{font-size:.68rem;text-align:right;color:#bcc8d1}.mobile-call{display:none}
@media(max-width:1020px){.container{width:min(var(--max),calc(100% - 32px))}.topbar{display:none}.nav-wrap{height:72px}.brand{margin-top:0;height:72px;width:235px;background:none;padding:0}.brand img{width:210px;height:62px}.nav,.nav-cta{display:none}.menu-toggle{display:block;margin-left:auto}.nav.open{display:flex;position:absolute;top:72px;left:0;right:0;background:#fff;flex-direction:column;gap:0;padding:10px 18px 18px;box-shadow:0 12px 20px rgba(0,0,0,.12)}.nav.open a{height:44px}.hero{min-height:auto}.hero-inner{min-height:430px}.hero-tagline{display:none}.service-grid{grid-template-columns:repeat(3,1fr)}.quality-grid{grid-template-columns:repeat(3,1fr)}.footer-row{grid-template-columns:1fr}.footer nav{flex-wrap:wrap}.footer small{text-align:left}}
@media(max-width:700px){body{padding-bottom:0}.container{width:min(100% - 24px,var(--max))}.hero{background:linear-gradient(180deg,rgba(5,27,47,.73),rgba(5,27,47,.97)),url('assets/hero-clean.jpg') center/cover no-repeat;min-height:590px}.hero-inner{padding:34px 0 38px;min-height:470px}.hero h1{font-size:3.3rem}.hero-copybox>p:not(.eyebrow){font-size:1.05rem}.hero-actions{display:grid}.hero-actions .btn{width:100%}.trust-grid{height:auto;grid-template-columns:repeat(2,1fr);padding:10px 0;gap:0}.trust-grid>div{border-right:0;justify-content:flex-start;font-size:.75rem}.trust-icon{font-size:1.4rem}.two-col{grid-template-columns:1fr;gap:10px}.service-grid{grid-template-columns:1fr 1fr}.quality-grid{grid-template-columns:1fr 1fr}.work-grid{grid-template-columns:1fr 1fr}.work-grid img{height:150px}.review-grid{grid-template-columns:1fr}.cta-grid{grid-template-columns:1fr}.footer nav{gap:16px}.mobile-call{display:flex;position:fixed;z-index:100;left:10px;right:10px;bottom:10px;height:50px;align-items:center;justify-content:center;border-radius:8px;background:var(--red);color:#fff;font-weight:900;box-shadow:0 10px 24px rgba(0,0,0,.28)}}
@media(max-width:460px){.brand{width:195px}.brand img{width:180px}.hero h1{font-size:2.85rem}.service-grid,.quality-grid{grid-template-columns:1fr}.work-grid{grid-template-columns:1fr 1fr}.work-head{align-items:flex-start;gap:12px}.work-head>a{margin-top:25px}.footer-logo img{width:190px}}

/* Proud-of-our-work gallery */
.showcase-work{padding-top:46px;padding-bottom:42px;background:#fff}
.showcase-intro{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:end;margin-bottom:24px}
.showcase-intro h2{font-size:clamp(2.2rem,4vw,3.35rem);max-width:620px}
.showcase-copy{color:var(--muted);font-size:1rem;line-height:1.65}
.showcase-copy p{margin-bottom:8px}
.showcase-copy strong{color:var(--ink)}
.featured-work-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:12px}
.work-photo{position:relative;margin:0;overflow:hidden;border-radius:10px;background:#dfe8ef;box-shadow:0 10px 26px rgba(6,28,48,.08)}
.work-photo-wide{grid-column:span 2}
.work-photo-tall{grid-row:span 2}
.work-photo img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease,filter .35s ease}
.work-photo:hover img{transform:scale(1.035);filter:contrast(1.03)}
.work-photo figcaption{position:absolute;left:0;right:0;bottom:0;padding:28px 16px 12px;color:#fff;font-weight:850;font-size:.9rem;background:linear-gradient(transparent,rgba(4,25,44,.88))}
.gallery-expand{display:flex;justify-content:center;margin-top:22px}
.btn-outline{background:#fff;color:var(--ink);border:2px solid #c9d7e3;min-height:46px;cursor:pointer}
.btn-outline:hover{border-color:var(--blue);color:var(--blue);filter:none}
.more-work-grid{margin-top:14px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.more-work-grid .work-photo{height:235px}
.more-work-grid[hidden]{display:none}
@media(max-width:900px){.showcase-intro{grid-template-columns:1fr;gap:12px}.featured-work-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:200px}.work-photo-wide{grid-column:span 2}.more-work-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.showcase-work{padding-top:34px}.featured-work-grid{grid-template-columns:1fr;grid-auto-rows:235px}.work-photo-wide,.work-photo-tall{grid-column:auto;grid-row:auto}.more-work-grid{grid-template-columns:1fr}.more-work-grid .work-photo{height:235px}.showcase-copy{font-size:.94rem}}

/* Emergency service text CTA */
.btn-emergency{background:#ff7a00;color:#fff;box-shadow:0 8px 18px rgba(0,0,0,.16)}
.btn-emergency:hover{background:#e96f00;color:#fff}
.hero-actions{flex-wrap:wrap}
@media (max-width:760px){.hero-actions .btn-emergency{width:100%}}


/* Floating urgent-service actions */
.urgent-float-group{position:fixed;right:22px;bottom:22px;z-index:120;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.emergency-float{display:flex;align-items:center;gap:9px;min-height:52px;padding:0 18px;border-radius:999px;color:#fff;font-weight:900;font-size:.9rem;box-shadow:0 12px 28px rgba(0,0,0,.28);border:2px solid rgba(255,255,255,.9);transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.urgent-call{background:#d92525}
.urgent-call:hover{background:#b91919;color:#fff;transform:translateY(-2px);box-shadow:0 15px 32px rgba(0,0,0,.32)}
.urgent-text{background:#198bee}
.urgent-text:hover{background:#0874cc;color:#fff;transform:translateY(-2px);box-shadow:0 15px 32px rgba(0,0,0,.32)}
.urgent-icon{font-size:1.25rem;line-height:1}
.emergency-float:focus-visible{outline:3px solid #fff;outline-offset:3px}
@media(max-width:700px){.urgent-float-group{right:14px;bottom:72px;gap:8px}.emergency-float{min-height:48px;padding:0 15px;font-size:.82rem}}
@media(max-width:420px){.emergency-float span{display:inline}}


/* Regular maintenance — authentic project-photo treatment */
.maintenance-card{overflow:hidden}
.maintenance-photo{position:relative;height:220px;overflow:hidden;background:#0d2a43}
.maintenance-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.maintenance-card:hover .maintenance-photo img{transform:scale(1.035)}
.maintenance-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,24,40,.04) 35%,rgba(5,24,40,.88) 100%)}
.maintenance-photo-label{position:absolute;left:18px;right:18px;bottom:16px;z-index:2;color:#fff;display:flex;flex-direction:column;gap:2px}
.maintenance-photo-label span{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#dcecf8}
.maintenance-photo-label strong{font-size:1.05rem;line-height:1.2}
.maintenance-points{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px;margin-bottom:2px}
.maintenance-points span{font-size:.72rem;font-weight:800;padding:7px 9px;border:1px solid #dce8f1;border-radius:999px;background:#f5f9fc;color:#163b5a;white-space:nowrap}
@media(max-width:700px){.maintenance-photo{height:210px}.maintenance-points span{font-size:.7rem}}


/* Local SEO service-area section */
.service-areas { background: #f7f8fa; }
.area-highlight-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:32px; }
.area-highlight-grid article { background:#fff; border:1px solid rgba(0,0,0,.08); border-radius:14px; padding:24px; box-shadow:0 8px 24px rgba(0,0,0,.05); }
.area-highlight-grid h3 { margin:0 0 10px; line-height:1.25; }
.area-highlight-grid p { margin:0; line-height:1.7; }
.area-note { margin:28px 0 0; text-align:center; }
@media (max-width:900px){ .area-highlight-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:620px){ .area-highlight-grid{grid-template-columns:1fr;} }

/* Local SEO landing pages */
.local-hero{padding:70px 0;background:#f3f7fa}.local-hero h1{max-width:850px;font-size:clamp(2.2rem,5vw,4.2rem);line-height:1.04;margin:.2em 0}.local-hero p{max-width:820px;line-height:1.75}.local-hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:40px;align-items:center}.local-hero-grid>img{width:100%;height:360px;object-fit:cover;border-radius:14px}.local-content{display:grid;grid-template-columns:1fr 340px;gap:55px;align-items:start}.local-content h2{margin-top:34px}.local-content p{line-height:1.8}.local-card{background:#fff;border:1px solid #dce6ee;border-radius:14px;padding:24px;box-shadow:0 8px 24px rgba(0,0,0,.05)}.local-card ul{padding-left:20px;line-height:2}.local-card a:not(.btn){font-weight:800;color:var(--blue)}.local-area-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.local-faq{background:#f7f8fa}.local-faq details{background:#fff;border:1px solid #dce6ee;border-radius:10px;padding:18px 20px;margin:12px 0}.local-faq summary{font-weight:850;cursor:pointer}.local-faq details p{line-height:1.7}.service-areas a{font-weight:750;color:var(--blue)}@media(max-width:900px){.local-hero-grid,.local-content{grid-template-columns:1fr}.local-area-grid{grid-template-columns:1fr 1fr}.local-hero-grid>img{height:280px}}@media(max-width:620px){.local-area-grid{grid-template-columns:1fr}.local-hero{padding:45px 0}}
