/* Components adapted from the TalenDear InfoCard, Spotlight and pill buttons. */
:root{--ink:#202c35;--muted:#5d6d77;--paper:#f7f9fa;--line:#dce5e9;--blue:#367b9f;--lightblue:#e2eff6;--dark:#202522}body{background:var(--paper)}h1,h2,h3{letter-spacing:-.045em}h2{font-weight:550}h2 span{color:#768a97}.kicker{letter-spacing:.065em;font-size:.72rem;font-weight:550}.kicker:before{border-radius:50%;width:6px;height:6px}.tiny{letter-spacing:.07em}.section-tag{font-size:.69rem;letter-spacing:.05em;text-transform:none}.small-no{letter-spacing:.07em}.section{padding-block:90px}.lead,.body-copy{color:var(--muted)}
.button{border-radius:99px;min-height:56px;font-size:.88rem;padding:13px 16px 13px 25px;gap:28px;border:1px solid #283e49;background:#283e49;box-shadow:0 5px 16px #307d9117;font-weight:550;transition:background .25s,border-color .25s,box-shadow .25s,transform .25s}.button>span{width:31px;height:31px;display:grid;place-items:center;border-radius:50%;background:#ffffff16;color:#b7ddeb;flex-shrink:0;transition:background .25s,color .25s,transform .25s;font-size:1.1rem}.button:hover{background:#337b99;border-color:#337b99;box-shadow:0 9px 25px #246d8a25;transform:translateY(-2px)}.button:hover>span{background:#d6edf7;color:#244d60;transform:rotate(0deg)}.text-link{border-bottom:0;border-radius:99px;padding:0;gap:13px;min-height:42px;font-size:.83rem;color:#2e627d;font-weight:550;transition:color .2s,gap .2s}.text-link>span{width:30px;height:30px;display:grid;place-items:center;border:1px solid #ccdde7;background:#edf4f8;border-radius:50%;font-size:.95rem;transition:background .2s,transform .2s,color .2s}.text-link:hover{gap:18px}.text-link:hover>span{background:#367b9f;color:#fff;transform:translate(1px,-1px)}.header-tel{border:1px solid #ffffff35;border-radius:40px;padding:10px 18px;background:#ffffff08;transition:background .25s}.header-tel:hover{background:#ffffff18}.menu{border-radius:30px}
.hero{background:linear-gradient(125deg,#f9fbfc 15%,#eff4f7 100%);padding-top:33px;padding-bottom:45px}.hero-top{border:0;padding-bottom:0}.hero-title{margin-top:33px;margin-bottom:34px}.hero-title h1{font-weight:550;line-height:1.1;font-size:clamp(2.6rem,4.8vw,4.7rem)}.hero-title h1 span{color:#647f90}.hero-title>p{width:280px;font-size:.95rem;line-height:1.75}.hero-bottom{gap:30px;grid-template-columns:.85fr 1.15fr}.hero-photo{border-radius:24px;height:375px;box-shadow:0 18px 40px -28px #243e5966}.hero-photo:after{border-radius:inherit}.hero-photo figcaption{bottom:22px;left:25px;right:25px}.hero-photo figcaption>span:first-child{padding:4px 10px;background:#ffffffeb;color:#304e5e;border-radius:99px;font-size:.62rem}.hero-photo figcaption>span:last-child{padding-top:5px}.route-group{gap:14px;padding:0;justify-content:center}.route,.route:first-child{--pointer-x:50%;--pointer-y:50%;--rotation:0rad;--card-base:#fff;--card-line:#d8e4ec;position:relative;isolation:isolate;border:1px solid transparent;border-radius:20px;background-origin:border-box;background-clip:padding-box,border-box;background-image:linear-gradient(var(--card-base),var(--card-base)),conic-gradient(from var(--rotation),#a3cee3 0deg,#d9eaf4 90deg,var(--card-line) 90deg,var(--card-line) 360deg);padding:24px 25px;box-shadow:0 8px 25px -18px #18385235;transition:box-shadow .3s,transform .3s}.route:hover{padding:24px 25px;transform:translateY(-2px);box-shadow:0 14px 28px -17px #18385250}.route-title{font-size:1.4rem;margin-top:9px;margin-bottom:8px}.route-title b{display:grid;place-items:center;background:#eaf3f8;width:34px;height:34px;border-radius:50%;font-size:1.1rem;flex-shrink:0;transition:background .25s,color .25s}.route:hover .route-title b{color:#fff;background:var(--blue)}.route-no{font-size:.65rem;letter-spacing:.06em;text-transform:none}.route-text{font-size:.8rem}.hero-link{margin-top:0;margin-left:6px}.availability{background:#eef4f7;border-color:#e0e8ec}.availability-inner{font-size:.78rem;padding-block:18px}.availability-inner p:last-child{color:#657c8a}.buildings{background:#fff}.split-heading{gap:85px;margin-bottom:43px}.maintenance-grid{gap:30px;grid-template-columns:.8fr 1.2fr}.maintenance-intro{background:#ecf3f7;border:1px solid #dde8ed;border-radius:23px;padding:35px}.maintenance-intro h3{font-size:2rem;margin:35px 0 20px}.maintenance-intro p{font-size:.9rem;color:#617885}.maintenance-list{gap:18px}.maintenance-list>div{padding:23px;border:1px solid #dfe8ed;border-radius:18px;background:#f9fbfc;transition:box-shadow .25s,border-color .25s,transform .25s}.maintenance-list>div>span{display:none}.maintenance-list h3{margin:0 0 13px;font-size:1.12rem;line-height:1.3}.maintenance-list p{font-size:.84rem}.maintenance-list>div:hover{border-color:#a3c8dc;box-shadow:0 12px 25px -22px #204c7377;transform:translateY(-2px)}
.boiler{background:#f1f5f7;border-color:#e2e9ed}.building-diagram{border-radius:22px;background:#f9fbfc;border-color:#d9e4e9;overflow:hidden;padding:23px}.diagram-key{border-color:#d9e4e9}.rule-note{border:1px solid #d8e4eb;border-radius:18px;background:#e8f0f5;padding:25px}.rule-note h3{font-size:1.23rem}.ownership article{padding:0 5px}.guarantee{border-radius:24px;background:#23353e;padding:34px 34px 23px;box-shadow:0 20px 40px -30px #1c3e5880}.guarantee-title>.tiny{color:#b5cbd6}.guarantee-title h3{font-size:1.45rem;font-weight:450}.guarantee-item>p{color:#c9dae2}.guarantee-condition{color:#b8cbd5}.guarantee-item>strong{font-weight:500}.offer-row{gap:22px;margin-top:30px}.offer-row>div{border:1px solid #dbe5eb;border-radius:18px;padding:24px;background:#ffffffa1}.offer-row h3{font-size:1.15rem;margin:15px 0 12px}.offer-row .small-no{font-size:.64rem}.savings{border-color:#d5e1e8;padding-top:28px}.savings p span{max-width:36ch}.savings strong{color:#2f6683}
.home-services{background:#fff}.service-rows{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.service-rows>article,.service-rows>article:last-child{--rotation:0rad;--card-base:#fff;--card-line:#dce6ed;position:relative;padding:30px;min-width:0;border:2px solid transparent;border-radius:23px;background-origin:border-box;background-clip:padding-box,border-box;background-image:linear-gradient(var(--card-base),var(--card-base)),conic-gradient(from var(--rotation),#a3cce1 0deg,#d4e8f4 90deg,var(--card-line) 90deg,var(--card-line) 360deg);box-shadow:0 13px 25px -22px #18385255;display:flex;flex-direction:column;gap:0;transition:box-shadow .3s,transform .3s}.service-rows>article>.small-no{display:none}.service-rows h3{font-size:1.6rem;line-height:1.18;margin:24px 0 20px;letter-spacing:-.035em;position:relative;width:fit-content}.service-rows h3 br{display:none}.service-rows>article>div{display:flex;flex-direction:column;flex:1}.service-rows p{font-size:.91rem;line-height:1.75}.service-rows .text-link{margin-top:auto;padding-top:22px;font-size:.78rem;justify-content:space-between;align-self:stretch}.service-icon{display:grid;order:-1;place-items:center;width:58px;height:58px;border:1px solid #dae9f1;border-radius:16px;background:#eef6fa;color:#377b9e;transition:background .3s,transform .3s}.service-icon svg{width:31px;height:31px}.service-rows>article:hover,.service-rows>article:focus-within{box-shadow:0 17px 35px -22px #18385265;transform:translateY(-4px)}.service-rows>article:hover .service-icon{background:#dfedf6;transform:rotate(-3deg)}
.geothermal{background:#263a44}.geothermal h2 span{color:#a1c4d8}.geo-flow{border-color:#668291}.geo-flow p,.geothermal .lead{color:#c1d2db}.geo-flow span{color:#a7d0e4}.geothermal .text-link{color:#e6f2fa}.geothermal .text-link>span{background:#ffffff0a;border-color:#7897a6}.faq details{padding-inline:21px;border:1px solid #ffffff26;border-radius:15px;background:#ffffff04;margin-bottom:12px;transition:background .25s}.faq details:last-child{border:1px solid #ffffff26}.faq details[open]{background:#ffffff09;border-color:#ffffff38}.faq summary{font-size:.94rem;padding-block:21px}.faq summary:after{top:17px}.faq details p{color:#c3d4dd}.faq>.tiny{color:#c2d4dd;letter-spacing:.06em}.geothermal .kicker{color:#d2e1e8}
.work{background:#f8fafb}.gallery{gap:22px}.gallery .photo-open{border-radius:18px;overflow:hidden;box-shadow:0 13px 28px -23px #14385180}.photo-open>span{border-radius:50%;width:34px;height:34px;box-shadow:0 3px 12px #15253a15}.gallery figcaption{font-size:.7rem;margin-top:13px}.project-grid{padding-top:0;border-top:0;margin-top:55px;gap:26px}.project-grid article{--rotation:0rad;--card-base:#f2f6f9;--card-line:#d9e4ec;border:2px solid transparent;background-origin:border-box;background-clip:padding-box,border-box;background-image:linear-gradient(var(--card-base),var(--card-base)),conic-gradient(from var(--rotation),#a3cee3 0deg,#d4e8f4 90deg,var(--card-line) 90deg,var(--card-line) 360deg);padding:8px;border-radius:23px;box-shadow:0 12px 24px -21px #18385240;overflow:hidden;transition:box-shadow .3s}.project-photo{border-radius:15px;overflow:hidden}.project-copy{padding:25px 23px 24px}.project-copy h3{font-size:1.5rem;margin:16px 0 13px}.project-copy p{font-size:.9rem;line-height:1.75}.project-copy .tiny{font-size:.67rem;color:#507b92}.project-grid article:hover{box-shadow:0 18px 35px -22px #18385266}.project-photo img{transition:transform .55s}.project-grid article:hover .project-photo img{transform:scale(1.025)}.about{background:#eaf1f5}.about h2 span{color:#6a889b}.about .lead{color:#4d6775}.about p:not(.kicker):not(.lead){color:#627986}.contact{background:#fff}.contact-grid{gap:90px}.contact h2{font-size:clamp(2.4rem,3.6vw,3.6rem)}form{border-radius:24px;background:#f5f8fa;border-color:#dce7ed;padding:35px;box-shadow:0 16px 40px -35px #173d6370}input,select,textarea{border-radius:10px;background:#fff;border-color:#d0dfe7;padding:12px;transition:border-color .2s,box-shadow .2s}input:focus,select:focus,textarea:focus{border-color:#7dafc9;box-shadow:0 0 0 3px #b2d9ed30}.fields label{font-size:.78rem}form h3{font-size:1.6rem}form .button{padding-left:24px}.preview-note>span{border-radius:99px;background:#e4eef5;color:#43667d}.contact-note{border-color:#8eb4c8}.contact-details>a{border-color:#d7e2e9}.contact .email{font-size:1rem}footer{border-radius:26px 26px 0 0}.mobile-contact a{border-radius:99px}.mobile-contact a:last-child{background:#e5eff5;color:#294f65}.mobile-contact{background:#f9fbfc;border-color:#d6e4ec}.close-photo{border-radius:99px;background:#ffffff13;padding-inline:15px}dialog{border-radius:20px}.back-top{border-radius:30px}
@media(hover:hover) and (pointer:fine){.route:after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(230px circle at var(--pointer-x) var(--pointer-y),#a2cce720,transparent 75%);opacity:0;transition:opacity .3s}.route.pointer-active:after{opacity:1}}
@media(max-width:1100px){.hero-title>p{width:240px;font-size:.86rem}.hero-title h1{font-size:4.9vw}.hero-photo{height:365px}.route,.route:first-child,.route:hover{padding:23px 21px}.route-title{font-size:1.25rem}.service-rows{gap:16px}.service-rows>article{padding:25px 22px}.service-rows h3{font-size:1.4rem}.service-rows .text-link{font-size:.72rem}.split-heading{gap:45px}.maintenance-list>div{padding:20px}.contact-grid{gap:55px}}
@media(max-width:760px){.section{padding-block:65px}.hero{padding-top:27px}.hero-title{margin-top:27px;margin-bottom:27px}.hero-title h1{font-size:clamp(2.3rem,8.4vw,3.7rem)}.hero-title>p{width:auto;font-size:.92rem;margin-top:20px}.hero-bottom{gap:25px}.hero-photo{height:280px;border-radius:20px}.route-group{gap:12px}.route,.route:first-child,.route:hover{padding:22px;border-radius:18px}.route-title{font-size:1.3rem}.route-text{font-size:.78rem}.hero-link{margin-left:3px}.hero-photo figcaption{left:20px;right:20px}.availability-inner{font-size:.71rem}.split-heading{gap:23px;margin-bottom:30px}.maintenance-grid{gap:23px}.maintenance-intro{padding:27px;display:block}.maintenance-intro h3{font-size:1.9rem;margin:22px 0 18px}.maintenance-intro p{max-width:none;font-size:.86rem}.maintenance-list{gap:13px}.maintenance-list>div{border-radius:16px;padding:20px 17px}.maintenance-list h3{font-size:1.03rem}.maintenance-list p{font-size:.8rem}.boiler-layout{gap:24px}.guarantee{padding:26px 20px 21px;border-radius:21px}.guarantee-title h3{font-size:1.1rem}.offer-row{gap:13px}.offer-row>div{display:block;padding:23px;border-radius:16px}.offer-row h3{margin:12px 0 9px;font-size:1.12rem}.offer-row p{font-size:.85rem}.savings .button{width:auto;min-width:270px;font-size:.82rem}.service-rows{grid-template-columns:1fr;gap:18px}.service-rows>article,.service-rows>article:last-child{padding:28px;border-radius:22px;display:flex}.service-rows>article>.small-no{display:none}.service-rows h3{font-size:1.65rem;margin:24px 0 17px}.service-rows p{font-size:.94rem}.service-rows .text-link{font-size:.83rem;margin-top:10px}.service-rows .service-icon{display:grid}.service-icon{width:57px;height:57px}.service-rows>article>div{width:100%}.geo-grid{gap:37px}.faq details{padding-inline:19px}.faq summary{font-size:.9rem}.gallery{gap:12px}.gallery .photo-open{border-radius:12px}.gallery figcaption{font-size:.61rem}.project-grid{gap:20px;margin-top:34px;grid-template-columns:1fr}.project-copy{padding:25px 20px}.project-copy h3{font-size:1.5rem}.project-copy p{font-size:.89rem}.project-grid article{border-radius:22px}.project-photo{border-radius:14px}.about h2{font-size:2.2rem}.contact-grid{gap:35px}.contact h2{font-size:2.65rem}form{padding:29px 23px;border-radius:21px}.fields label{font-size:.77rem}.header-tel{padding:6px 8px;border:0;background:transparent}.header-tel:before{font-size:.73rem}.button{font-size:.82rem;min-height:54px}.kicker{font-size:.67rem}.footer-top{padding-top:5px}}
@media(max-width:380px){.maintenance-list{grid-template-columns:1fr}.hero-title h1{font-size:8.2vw}.service-rows>article{padding:26px 23px}.project-grid article{display:block}.hero-photo{height:250px}.savings p{gap:14px}.savings .button{min-width:0;width:100%}}
@media(prefers-reduced-motion:reduce){.route,.service-rows>article,.project-grid article{background-image:linear-gradient(var(--card-base),var(--card-base)),linear-gradient(#c8dce8,#c8dce8)}.route:after{display:none}.route:hover,.service-rows>article:hover,.button:hover{transform:none}.project-grid article:hover .project-photo img,.service-rows>article:hover .service-icon{transform:none}}
.service-rows h3{background-image:linear-gradient(#e0eff7,#e0eff7);background-size:0 100%;background-repeat:no-repeat;transition:background-size .35s,color .35s}.service-rows>article.pointer-active h3,.service-rows>article:focus-within h3{background-size:100% 100%;color:#244e64}@media(prefers-reduced-motion:reduce){.service-rows h3{transition:none}}
