@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800;900&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{--navy:#101d31;--blue:#087bc4;--red:#e43f36;--ink:#1b2b3c;--muted:#546475;--line:#dce5ec}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font:16px/1.5 'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}.wrap{max-width:1240px;margin:auto;padding-left:30px;padding-right:30px}.topline{background:var(--navy);color:#d6e2ec;font-size:12px;font-weight:700;letter-spacing:.09em}.topline .wrap{display:flex;justify-content:space-between;padding-top:9px;padding-bottom:9px}.topline a{color:#fff}header{background:#fff;position:relative;z-index:5;box-shadow:0 2px 12px #101d3112}.header-inner{min-height:84px;display:flex;align-items:center;gap:26px}.brand{display:flex;align-items:center;gap:10px;margin-right:auto;font:900 25px/.85 'Barlow Condensed',Impact,sans-serif;letter-spacing:.04em}.brand img{width:57px;height:57px;object-fit:cover;border-radius:6px}.brand small{display:block;font-size:15px;letter-spacing:.12em;margin-top:7px}nav{display:flex;gap:22px;align-items:center;font-size:14px;font-weight:700}nav a{padding:12px 0;border-bottom:3px solid transparent}nav a:hover,nav a[aria-current]{border-color:var(--red)}.header-call,.button{display:inline-flex;align-items:center;justify-content:center;background:var(--red);color:#fff;padding:15px 23px;font-weight:800;border-radius:4px}.header-call:hover,.button:hover{background:#ba2d27}.menu{display:none}.hero{background:linear-gradient(115deg,#101d31 0%,#142a45 67%,#0a385a 100%);color:#fff}.hero-layout{min-height:500px;display:grid;grid-template-columns:1.14fr .86fr;align-items:center;gap:55px;padding-top:65px;padding-bottom:65px}.eyebrow{color:var(--red);font-size:13px;font-weight:800;letter-spacing:.12em}.hero .eyebrow{color:#ffb7b1}.hero h1,h2,h3{font-family:'Barlow Condensed',Impact,sans-serif;text-transform:uppercase}.hero h1{font-size:clamp(54px,6.4vw,88px);line-height:.97;letter-spacing:0;margin:22px 0;max-width:700px}.lead{font-size:clamp(19px,2vw,24px);line-height:1.3;font-weight:700;max-width:580px;margin:0 0 14px}.support{color:#c4d2dd;max-width:580px;margin:0 0 27px}.actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.text-link{font-weight:700;border-bottom:1px solid #a3b7c8;padding:10px 0}.hero-tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}.hero-tile{background:#f7f9fb;color:var(--navy);border-top:6px solid var(--red);min-height:255px;padding:25px 20px;display:flex;flex-direction:column;align-items:start}.hero-tile.cooling{border-color:var(--blue)}.hero-tile strong{font:800 40px/.95 'Barlow Condensed',sans-serif;text-transform:uppercase;margin-top:36px}.hero-tile>span:last-child{font-size:13px;font-weight:800;color:var(--muted);margin-top:auto}.hero-tile:hover{background:#eaf2f8}.service-icon{display:inline-flex;color:var(--red)}.cooling .service-icon{color:var(--blue)}.service-icon svg{width:54px;height:54px}.ribbon{background:#e9eef2;color:var(--navy);font:800 18px 'Barlow Condensed',sans-serif;letter-spacing:.07em}.ribbon .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:14px;padding-bottom:14px}.ribbon span{display:flex;align-items:center;gap:10px}.ribbon svg{width:26px;height:26px;color:var(--blue)}.ribbon span:first-child svg{color:var(--red)}.services{padding-top:75px;padding-bottom:80px}.section-top{display:flex;align-items:end;justify-content:space-between}.services h2,.split h2,.contact-panel h2{font-size:clamp(39px,4.7vw,62px);line-height:1;margin:12px 0 28px;max-width:650px}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.service-card{background:#fff;border:1px solid var(--line);border-top:5px solid var(--red);padding:28px;min-height:280px;display:flex;flex-direction:column}.service-card.cooling{border-top-color:var(--blue)}.service-card.installation{border-top-color:var(--navy)}.service-card.installation .service-icon{color:var(--navy)}.service-card:hover{box-shadow:0 10px 26px #102c451c}.service-card h3{font-size:38px;line-height:1;margin:24px 0 7px}.service-card p{color:var(--muted);margin:0}.card-link{color:var(--red);font-size:14px;font-weight:800;margin-top:auto;padding-top:24px}.split{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:60px;padding-top:65px;padding-bottom:75px}.split p{font-size:18px;color:var(--muted);align-self:center}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.detail{background:#f0f4f7;border-left:4px solid var(--blue);padding:24px}.detail span{font-size:12px;color:var(--blue);font-weight:800;letter-spacing:.1em}.detail h3{font-size:28px;margin:18px 0 6px}.detail p{color:var(--muted);margin:0}.contact-panel{background:#102b48;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:30px;padding-top:45px;padding-bottom:45px}.contact-panel .eyebrow{color:#ffb7b1}.contact-panel h2{margin:9px 0}.contact-panel p{margin:0;color:#c5d4e1}.button.light{background:#fff;color:var(--navy);white-space:nowrap}.button.light:hover{background:#dceaf4}footer{background:var(--navy);color:#c5d2dd;padding:60px 0 22px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:35px}.footer-grid strong{color:#fff;font:900 30px 'Barlow Condensed',sans-serif}.footer-grid strong span{color:#ff746b}.footer-grid b{color:#fff;font-size:13px;letter-spacing:.12em;margin-bottom:12px}.footer-grid>div{display:flex;flex-direction:column;align-items:start;gap:7px}.footer-grid p{margin:0}.footnote{border-top:1px solid #ffffff22;margin-top:48px;padding-top:18px;font-size:12px;color:#93aabd}@media(max-width:900px){.menu{display:block;border:0;background:#eaf0f4;color:var(--navy);font-weight:800;padding:12px}.header-call{display:none}header nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;gap:0;padding:12px 30px 24px;box-shadow:0 16px 25px #0002}header nav.open{display:flex}header nav a{padding:12px 0}.hero-layout{gap:25px}.hero-tile{min-height:220px}}@media(max-width:700px){.wrap{padding-left:20px;padding-right:20px}.topline .wrap{font-size:10px;gap:10px}.header-inner{min-height:72px}.brand img{width:48px;height:48px}.brand{font-size:22px}.brand small{font-size:13px}.hero-layout{grid-template-columns:1fr;padding-top:55px;padding-bottom:50px}.hero h1{font-size:clamp(52px,12vw,75px)}.hero-tiles{max-width:520px}.hero-tile{min-height:180px}.hero-tile strong{font-size:31px;margin-top:15px}.hero-tile .service-icon svg{width:42px;height:42px}.ribbon .wrap{display:grid;grid-template-columns:1fr 1fr;font-size:15px}.services{padding-top:60px;padding-bottom:65px}.card-grid,.detail-grid,.split,.footer-grid{grid-template-columns:1fr}.service-card{min-height:230px}.split{padding-top:55px;padding-bottom:60px}.contact-panel{display:block}.contact-panel .button{margin-top:22px}.footer-grid{gap:35px}}

.footer-logo{width:115px;height:115px;object-fit:contain;background:white;border-radius:8px;padding:4px}.footer-more{border-top:1px solid #ffffff22;margin-top:30px;padding-top:20px;display:flex;gap:22px;align-items:center;flex-wrap:wrap}.footer-more a{text-decoration:underline}.content-section{padding-top:50px;padding-bottom:75px;min-height:350px}.content-section>p,.article-body{font-size:18px;max-width:780px;line-height:1.7}.content-section h2{font-size:36px;margin-top:45px}.breadcrumbs{font-size:14px;color:#546475;margin-bottom:35px}.breadcrumbs a{text-decoration:underline}.link-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:22px 0 35px}.link-card{border:1px solid var(--line);border-top:4px solid var(--blue);padding:22px;display:flex;flex-direction:column;gap:20px;min-height:150px}.link-card strong{font:800 27px 'Barlow Condensed',sans-serif;text-transform:uppercase}.link-card span{font-size:14px;color:#36566d}.link-card:hover{background:#eff7fb}.gallery-empty{background:#f1f5f8;padding:45px;max-width:780px}.gallery-empty h2{margin:10px 0}.gallery-empty a{display:inline-block;margin:12px 20px 0 0;text-decoration:underline}.gallery-symbol{font-size:52px;color:var(--blue)}.site-tools{position:fixed;right:20px;bottom:20px;z-index:20;display:flex;gap:8px}.tool-launch{border:2px solid #fff;box-shadow:0 3px 18px #0005;border-radius:40px;background:#087bc4;color:white;min-width:56px;height:56px;padding:0 13px;font-weight:800;cursor:pointer}.access-launch{font-size:26px}.tool-panel{position:fixed;right:20px;bottom:88px;width:min(390px,calc(100vw - 40px));max-height:min(620px,calc(100vh - 110px));overflow:auto;background:#fff;color:var(--ink);border:2px solid var(--navy);box-shadow:0 12px 35px #0004;z-index:21;padding:18px;border-radius:8px}.tool-panel[hidden]{display:none}.tool-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:10px}.tool-head strong{font:800 25px 'Barlow Condensed',sans-serif;text-transform:uppercase}.tool-head button{border:0;background:transparent;font-size:26px;cursor:pointer}.chat-history{height:240px;overflow:auto;padding:12px 0}.chat-history>div{padding:10px 12px;border-radius:8px;margin:8px 0;white-space:pre-wrap;font-size:14px}.chat-answer{background:#eef4f8}.chat-question{background:#dceefa;margin-left:35px}.chat-history a{text-decoration:underline;color:#075e9b}.chat-prompts{display:flex;gap:5px;flex-wrap:wrap}.chat-prompts button,.access-panel>button{border:1px solid var(--blue);background:#fff;color:var(--navy);padding:8px;cursor:pointer}.chat-form{display:flex;margin:12px 0;gap:6px}.chat-form input{flex:1;min-width:0;padding:11px;border:1px solid #7b8f9f}.chat-form button{background:var(--red);color:#fff;border:0;padding:10px;cursor:pointer}.tool-panel small{font-size:12px}.access-panel>button{display:block;width:100%;margin-top:10px;text-align:left;padding:11px}.access-panel>button[aria-pressed=true]{background:var(--navy);color:#fff}.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}.larger-text{font-size:120%}.larger-text body{font-size:1.15rem}.high-contrast body{background:#fff;color:#000}.high-contrast .hero,.high-contrast footer,.high-contrast .contact-panel,.high-contrast .topline{background:#000;color:#fff}.high-contrast a,.high-contrast button{outline-offset:2px}.underline-links a{text-decoration:underline!important}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #f58416;outline-offset:3px}@media(max-width:1000px){header nav{gap:10px;font-size:12px}}@media(max-width:900px){.link-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.link-grid{grid-template-columns:1fr}.site-tools{right:12px;bottom:12px}.tool-panel{right:12px;bottom:80px;width:calc(100vw - 24px)}.footer-more{display:grid;gap:12px}}

/* Full-bleed call band with centered, responsive content. */
.contact-panel{width:100%;max-width:none;padding:0;display:block;background:#102b48}
.contact-panel-inner{display:flex;align-items:center;justify-content:space-between;gap:clamp(24px,5vw,80px);padding-top:clamp(42px,5vw,72px);padding-bottom:clamp(42px,5vw,72px)}
.contact-panel-inner>div{min-width:0;max-width:760px}
.contact-panel-inner .button{flex-shrink:0}
@media(max-width:700px){.contact-panel-inner{display:flex;flex-direction:column;align-items:flex-start;gap:22px}.contact-panel-inner .button{margin-top:0;white-space:normal;text-align:center;max-width:100%}}
@media(max-width:420px){.contact-panel-inner .button{width:100%}}

/* Keep the accessibility control on the opposite side from chat. */
.access-launch{position:fixed;left:20px;right:auto;bottom:20px}
.access-panel{left:20px;right:auto}
.chat-launch{min-width:150px}
@media(max-width:600px){.access-launch{left:12px;bottom:12px}.access-panel{left:12px;right:auto}.chat-launch{min-width:140px}}

/* Widget interaction and contrast refinements. */
.tool-panel button{min-height:44px}.tool-head button{min-width:44px}.chat-prompts button{min-height:44px}.chat-form button{min-height:44px}
.high-contrast .tool-launch{background:#000;color:#fff;border-color:#fff}.high-contrast .tool-panel{border-color:#000}.high-contrast .tool-panel button:focus-visible{outline-color:#000;box-shadow:0 0 0 2px #fff}
@media(max-width:600px){.tool-panel{max-height:calc(100dvh - 100px)}}

.reviews-band{background:#f2f6f9;padding:55px 0 40px;overflow:hidden}
.reviews-heading{display:flex;align-items:end;justify-content:space-between;gap:25px}
.reviews-heading h2{font-size:clamp(36px,4vw,54px);line-height:1;margin:8px 0 24px}
.reviews-rating{font-weight:800;white-space:nowrap;padding:10px 0 25px;text-decoration:underline}
.review-stars{color:#e14a33;letter-spacing:2px;font-size:19px}
.reviews-viewport{overflow:hidden;width:100%;mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent)}
.reviews-track{display:flex;align-items:stretch;gap:16px;width:max-content;animation:review-scroll 38s linear infinite;padding:5px 0 18px}
.reviews-repeat{display:flex;gap:16px}
.review-item{width:340px;min-height:168px;background:#fff;border:1px solid #d6e2ea;border-top:4px solid #087bc4;padding:20px 23px;display:flex;flex-direction:column;gap:8px;white-space:normal}
.review-quote{font-size:17px;line-height:1.35;font-weight:700}
.review-author{font-size:13px;color:#435769;margin-top:auto}
.reviews-track:hover,.reviews-track:focus-within{animation-play-state:paused}
.reviews-source{font-size:14px;font-weight:800;text-align:right}.reviews-source a{text-decoration:underline}
@keyframes review-scroll{to{transform:translateX(calc(-50% - 8px))}}
@media(max-width:700px){.reviews-heading{display:block}.reviews-rating{display:inline-block;padding:0 0 22px}.review-item{width:min(300px,80vw)}.reviews-band{padding-top:44px}.reviews-source{text-align:left}}
@media(prefers-reduced-motion:reduce){.reviews-track{animation:none;overflow-x:auto;width:auto}.reviews-viewport{mask-image:none;overflow-x:auto}.reviews-repeat{display:none}}

.policy-content{max-width:1240px}.policy-content h2{font-size:32px;line-height:1.12;margin:35px 0 9px}.policy-content p{max-width:850px;font-size:17px;line-height:1.7;margin:0 0 15px}.policy-content a{text-decoration:underline;color:#075e9b}.policy-links{border-top:1px solid #ffffff22;margin-top:28px;padding-top:20px;display:flex;gap:22px;flex-wrap:wrap;font-size:14px}.policy-links a{text-decoration:underline;color:#e0ebf3}.policy-links a:hover{color:#fff}@media(max-width:600px){.policy-links{display:grid;gap:12px}}

.service-area-band{padding:64px 0}.service-area-band h2,.map-section h2{margin:12px 0 15px;font-size:clamp(32px,3vw,48px)}.service-area-band p{max-width:660px}.area-links{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0}.area-links a{border:1px solid #bfd3df;border-radius:999px;padding:10px 16px;font-weight:700;text-decoration:none}.area-links a:hover,.area-links a:focus-visible{background:#0a1526;color:white}.nearby-towns{margin-top:46px}.nearby-towns h2{margin-bottom:10px}.map-section{display:grid;grid-template-columns:minmax(260px,1fr) minmax(0,1.3fr);gap:40px;align-items:center;padding:70px 0}.map-frame{aspect-ratio:4/3;min-height:300px;border-radius:18px;overflow:hidden;background:#e5edf2}.map-frame iframe{display:block;width:100%;height:100%}@media(max-width:750px){.map-section{grid-template-columns:1fr;gap:22px;padding:48px 0}.map-frame{min-height:280px}.service-area-band{padding:48px 0}}

.expanded-service .section-intro{font-size:18px;max-width:850px;margin:0 0 30px;color:#435769}.expanded-service .detail{min-height:220px}.expanded-service .detail h3{margin-top:0}.faq-title{font-size:clamp(31px,3vw,42px)!important;margin:44px 0 15px!important}.faq-list{max-width:900px;border-top:1px solid #ccdce6}.faq-list details{border-bottom:1px solid #ccdce6;padding:0 6px}.faq-list summary{cursor:pointer;padding:17px 30px 17px 0;font-weight:800;font-size:17px;position:relative}.faq-list summary:focus-visible{outline:3px solid #f58416}.faq-list p{font-size:16px;line-height:1.6;margin:0 0 19px}.article-body{max-width:850px}.article-body h2{font-size:32px;margin:32px 0 12px}.article-body li{margin:9px 0}.article-body a{text-decoration:underline;color:#075e9b}.source-note{font-size:14px;color:#435769}@media(max-width:700px){.expanded-service .detail{min-height:0}}
