:root{--ink:#062a35;--green:#458a4f;--green-dark:#367540;--teal:#078c98;--blue-soft:#e8f3f8;--shadow:0 24px 70px rgba(3,38,50,.12);}
*{box-sizing:border-box;}html{scroll-behavior:smooth;}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#fff;overflow-x:hidden;}img{max-width:100%;display:block;}a{text-decoration:none;color:inherit;}.container-xxl{max-width:1460px;}.section-pad{padding:110px 0;}.section-pad-sm{padding:70px 0;}.topbar{background:var(--ink);color:#fff;font-size:14px;font-weight:600;}.topbar-inner{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:20px;}.topbar a{text-decoration:underline;}.site-header{background:#fff;position:relative;z-index:30;transition:.3s;}.site-header.sticky{position:fixed;top:0;left:0;right:0;box-shadow:0 8px 30px rgba(6,42,53,.08);}.navbar{min-height:82px;padding:0;}.brand{display:inline-flex;align-items:center;gap:11px;color:var(--ink);width: 18%;}.brand img{margin: 2% 0 -14% 0;}.brand>span:last-child{display:flex;flex-direction:column;line-height:1.05;}.brand strong{font-size:20px;}.brand small{font-size:10px;letter-spacing:.08em;text-transform:uppercase;}.brand-symbol{width:42px;height:42px;background:var(--ink);border-radius:12px;display:grid;place-items:center;position:relative;}.brand-symbol:before{content:"";width:17px;height:24px;border:2px solid #fff;border-radius:9px 9px 5px 5px;position:absolute;}.brand-symbol span{width:7px;height:7px;border-radius:50%;background:#76c684;position:absolute;bottom:8px;}.navbar-nav{gap:18px;}.nav-link{font-weight:700;color:var(--ink)!important;padding:29px 9px!important;}.main-btn,.dark-btn,.ghost-btn{border:0;display:inline-flex;align-items:center;justify-content:center;gap:14px;padding:15px 24px;border-radius:4px;font-weight:800;transition:.25s;}.main-btn{background:var(--green);color:#000;}.main-btn:hover{background:var(--green-dark);color:#fff;transform:translateY(-2px);}.main-btn.large{padding:17px 28px;}.dark-btn{background:var(--ink);color:#fff;}.dark-btn:hover{color:#fff;transform:translateY(-2px);}.ghost-btn{background:#fff;color:var(--ink);border:1px solid rgba(6,42,53,.2);}.pill{display:inline-flex;align-items:center;border:1px solid rgba(6,42,53,.22);border-radius:999px;padding:7px 16px;font-size:13px;font-weight:800;background:#fff;}.pill.light{background:#fff;border-color:#fff;color:var(--ink);}h1,h2,h3{letter-spacing:-.045em;}h2{font-size:clamp(38px,3.2vw,60px);line-height:1.04;margin:16px 0 22px;}.section-kicker{font-weight:700;color:#244c66;}.hero{position:relative;max-height:750px;overflow:hidden;border-radius:0 0 34px 34px;background:var(--blue-soft);}.hero-bg{position:absolute;inset:-45px -15px -55px 36%;background:url(../images/water-heater-technician.webp) 90%/cover no-repeat;will-change:transform;}.hero-wash{position:absolute;inset:0;background:linear-gradient(90deg,#eaf5fa 0%,#eaf5fa 31%,rgba(234, 245, 250, 0.84) 42%,rgba(234, 245, 250, 0.38) 58%,rgba(234, 245, 250, 0.04) 78%);}.hero-inner{position:relative;min-height:760px;display:flex;align-items:center;}.hero-copy{width:min(690px,58%);padding:90px 0 110px;position:relative;}.hero h1{font-size:clamp(52px,4.3vw,91px);line-height:1;margin:18px 0 26px;}.hero p{font-size:17px;line-height:1.75;color:#234e68;max-width:650px;}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px;}.hours-line{display:flex;align-items:center;gap:10px;margin-top:24px;font-size:15px;font-weight:700;}.hours-line span{width:9px;height:9px;background:#6fc983;border-radius:50%;box-shadow:0 0 0 5px rgba(111,201,131,.15);}.benefit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:80px;}.benefit-box{background:#fff;border-radius:28px;padding:0 36px 34px;box-shadow:0 20px 60px rgba(5,31,43,.08);text-align:center;}.icon-arch{display:grid;place-items:center;background:var(--blue-soft);}.benefit-box .h3{font-size:21px;}.benefit-box p{color:#34556b;line-height:1.65;min-height:80px;}.benefit-box a{font-weight:800;}.diagnosis-panel{position:relative;background:var(--teal);border-radius:44px;min-height:590px;display:grid;grid-template-columns:.9fr 1.1fr ;align-items:center;padding:20px 50px;color:#fff;}.diag-visual{align-self:stretch;}.diag-image-wrap{position:absolute;}.diag-image-wrap img{width:100%;height:115%;object-fit:cover;}.floating-data{position:absolute;background:#fff;color:var(--ink);border-radius:16px;box-shadow:var(--shadow);}.bottom-card{display:flex;align-items:center;}.floating-data small{display:block;font-size:11px;color:#527083;}.floating-data strong{font-size:15px;}.meter{height:7px;border-radius:10px;background:#dfe7dd;margin-top:13px;overflow:hidden;}.meter span{display:block;width:62%;height:100%;background:var(--green);}.round-check{width:42px;height:42px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;}.diag-copy{padding-left:50px;}.diag-copy h2{color:#fff;}.diag-copy p{font-size:16px;line-height:1.75;color:#e7fbfd;}.brands{overflow:hidden;}.brands-track-wrap{overflow:hidden;margin-top:30px;}.brands-track{display:flex;gap:20px;width:max-content;animation:brandScroll 34s linear infinite;}.brands-track:hover{animation-play-state:paused;}.brand-tile{width:190px;height:118px;border:1px solid #cfd6d9;border-radius:22px;display:grid;place-items:center;background:#fff;padding:26px;}.brand-tile img{max-width:50%;height:auto;}.services-head{display:grid;grid-template-columns:1fr .75fr;gap:80px;align-items:end;margin-bottom:44px;}.services-head p{font-size:17px;line-height:1.75;color:#385b70;}.service-accordion{display:flex;gap:20px;height:570px;}.service-panel{position:relative;flex:.56;border-radius:28px;overflow:hidden;transition:flex .65s cubic-bezier(.22,.78,.2,1);background:var(--ink);min-width:0;}.service-panel.active{flex:3.8;}.service-panel img{width:100%;height:100%;object-fit:cover;filter:brightness(.68);transition:transform .7s;}.service-panel.active img{transform:scale(1.03);}.service-panel button{position:absolute;inset:0;border:0;background:transparent;color:#fff;cursor:pointer;}.service-panel button span{position:absolute;white-space:nowrap;font-size:19px;font-weight:800;}.service-panel.active button{pointer-events:none;}.service-overlay{position:absolute;left:44px;bottom:42px;color:#fff;max-width:520px;opacity:0;transform:translateY(20px);transition:.35s;z-index:3;}.service-panel.active .service-overlay{opacity:1;transform:none;transition-delay:.25s;}.service-overlay h3{font-size:38px;margin:18px 0 14px;}.service-overlay p{line-height:1.7;color:#f2f6f7;}.service-overlay a{display:inline-block;margin-top:10px;font-weight:800;}.why-grid{display:grid;grid-template-columns: 1.1fr .9fr;gap:80px;align-items:start;}.why-sticky{position:sticky;top:120px;}.why-sticky p{font-size:17px;line-height:1.8;color:#34586c;}.why-actions{display:flex;gap:14px;margin-top:28px;}.why-cards{display:grid;gap:30px;}.why-card{background:#fff;border-radius:28px;display:grid;grid-template-columns:70px 1fr;gap:25px;box-shadow:0 20px 60px rgba(5,31,43,.06);align-items:center;}.line-icon{font-size:34px;}.why-card h3{font-size:20px;}.why-card p{margin:0;color:#31566b;}.section-title{max-width:850px;margin-bottom:48px;}.problem-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}.problem-card{background:#f3f5f5;border-radius:18px;transition:.3s;}.problem-card:hover{transform:translateY(-5px);}.problem-card>span{font-size:12px;color:var(--green);font-weight:900;}.problem-card h3{font-size:20px;margin:34px 0 12px;}.problem-card p{color:#385d70;line-height:1.6;}.rr-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center;}.before-after{position:relative;}.ba-image{position:absolute;overflow:hidden;border-radius:26px;}.ba-image img{width:100%;height:100%;object-fit:cover;}.ba-image span{position:absolute;left:18px;top:18px;background:#fff;border-radius:999px;padding:7px 12px;font-size:11px;font-weight:900;}.ba-image.before{left:0;top:0;width:62%;height:78%;}.ba-image.after{right:0;bottom:0;width:55%;height:70%;border:10px solid #f4f6f6;}.ba-card{position:absolute;background:#fff;border-radius:15px;box-shadow:var(--shadow);z-index:4;}.ba-card small{display:block;color:#43844C;font-weight:900;text-transform:uppercase;font-size:10px;}.rr-copy>p{font-size:16px;line-height:1.8;color:#35596d;}.point-list{display:grid;gap:22px;margin:30px 0;}.point-list>div{display:grid;grid-template-columns:38px 1fr;gap:16px;}.point-list>div>span{width:28px;height:28px;border:1px solid var(--green);border-radius:50%;display:grid;place-items:center;color:var(--green);}.point-list h3{font-size:18px;margin:0 0 4px;}.point-list p{margin:0;color:#426278;}.commercial-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center;}.commercial-copy p{font-size:17px;line-height:1.8;color:#385c70;}.commercial-points{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:30px;}.commercial-points span{border:1px solid #d7dfe2;padding:16px 18px;border-radius:12px;font-weight:800;}.commercial-image{height:610px;position:relative;border-radius:28px;overflow:visible;}.commercial-image>img{width:100%;height:100%;object-fit:cover;border-radius:28px;}.commercial-card{left:-70px!important;right:auto!important;top:100px;padding:20px 24px;}.faq-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:90px;}.faq-intro{position:sticky;top:120px;align-self:start;}.faq-intro h2{font-size:44px;}.faq-tags{color:#1f506c;font-weight:700;}.faq-list details{border-bottom:1px solid #bdc8cc;padding:0;}.faq-list summary{list-style:none;cursor:pointer;font-size:19px;font-weight:800;padding:26px 0;display:flex;justify-content:space-between;gap:30px;align-items:center;}.faq-list summary::-webkit-details-marker{display:none;}.faq-list p{max-width:850px;color:#31546a;line-height:1.75;padding:0 45px 25px 0;margin:0;}.faq-arrow{font-size:24px;color:#1461b5;transition:.3s;}.faq-list details[open] .faq-arrow{transform:rotate(180deg);}.closing-cta{overflow:hidden;color:#fff;}.closing-bg{position:absolute;background:url("../images/water-heater-cta.webp") center/cover no-repeat;}.closing-shade{position:absolute;inset:0;}.closing-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;}.closing-center h2{font-size:clamp(44px,5vw,74px);color:#fff;}.closing-center p{max-width:720px;margin:0 auto 26px;line-height:1.7;}.closing-panel{position:absolute;z-index:4;display:flex;flex-direction:column;justify-content:center;transition:none;will-change:transform;}.closing-panel.left-panel{left:0;transform:translateX(-103%);}.closing-panel.right-panel{right:0;transform:translateX(103%);}.closing-panel > span{
    display:inline-flex;
    align-items:center;
    width:max-content;
    padding:8px 15px;
    border-radius:999px;
    background:rgba(255,255,255,.10);
    border:1px solid rgba(255,255,255,.16);
    color:#b9df6a;
    font-size:12px;
    font-weight:800;
    letter-spacing:.08em;
}.closing-panel h3{margin:25px 0;}.footer-grid{display:grid;grid-template-columns:1.3fr .8fr 1.1fr 1fr;gap:55px;}.footer-brand{color:#fff;margin-bottom:20px;}.footer-grid h3{color:#fff;font-size:16px;}.footer-grid a,.footer-grid p{display:block;margin:9px 0;color:#cfe0e4;font-size:14px;line-height:1.65;}.coupon-modal{position:fixed;inset:0;background:rgba(2,18,24,.72);display:none;place-items:center;z-index:1000;padding:20px;}.coupon-modal.open{display:grid;}.coupon-value{display:block;font-size:34px;color:var(--green);margin:20px 0;}.coupon-dialog p{color:#426174;line-height:1.7;}.reveal{opacity:0;transform:translateY(28px);transition:opacity .75s ease,transform .75s ease;}.reveal.in-view{opacity:1;transform:none;}.delay-1{transition-delay:.12s;}.delay-2{transition-delay:.24s;}.parallax-frame{will-change:transform;}
@keyframes brandScroll{to{transform:translateX(-35%);}}
@media(max-width:1355px){.diag-copy {
  padding-left: 17%;
}}@media(max-width:991px){.brand{width: 25%;}.topbar-inner{justify-content:center;}.topbar-inner>span{display:none;}.site-header .navbar{padding:12px 0;}.nav-link{padding:10px 0!important;}.hero{min-height:740px;}.hero-bg{inset:-20px;background-position:80% center;}.hero-wash{background:linear-gradient(90deg,rgba(234,245,250,.98) 0%,rgba(234, 245, 250, 0.73) 58%,rgba(234, 245, 250, 0.35) 100%)}.hero-inner{min-height:740px;}.hero-copy{width:82%;padding:70px 0 190px;}.claim-repair{left:4%;right:auto;bottom:82px;}.claim-install{right:4%;bottom:35px;}.benefit-grid,.problem-grid{grid-template-columns:repeat(2,1fr);}.diagnosis-panel{grid-template-columns:1fr;padding:55px 38px;margin-top:80px;}.diag-visual{min-height:540px;}.diag-image-wrap{left:50%;transform:translateX(-50%)!important;}.services-head,.why-grid,.rr-grid,.commercial-grid,.faq-grid{grid-template-columns:1fr;gap:50px;}.why-sticky,.faq-intro{position:relative;top:auto;}.service-accordion{height:520px;overflow-x:auto;}.service-panel{min-width:88px;}.service-panel.active{min-width:68vw;}.footer-grid{grid-template-columns:1fr 1fr;}.closing-panel{width:40%;padding:50px 25px;}.closing-panel h3{font-size:27px;}}
@media(max-width:767px){.brand{width: 35%;}.section-pad{padding:75px 0;}.hero{min-height:790px;}.hero-copy{width:100%;padding:55px 0 220px;}.hero h1{font-size:52px;}.hero p{font-size:15px;}.claim-card{width:245px;}.claim-repair{bottom:105px;}.claim-install{bottom:20px;}.benefit-grid,.problem-grid{grid-template-columns:1fr;}.benefit-box{min-height:auto;}.diagnosis-panel{padding:40px 22px;}.diag-visual{min-height:430px;}.rotating-blob{width:280px;height:280px;left:5%;top:-70px;}.diag-image-wrap{width:82%;height:470px;top:-70px;}.top-card{width:240px;}.bottom-card{width:230px;right:0;}.service-accordion{height:auto;display:grid;}.service-panel,.service-panel.active{min-width:0;height:100px;flex:none;}.service-panel.active{height:470px;}.service-panel button span{transform:none;left:25px;bottom:36px;}.service-overlay{left:24px;right:24px;bottom:25px;}.service-overlay h3{font-size:30px;}.why-card{grid-template-columns:1fr;padding:28px;}.rr-grid{gap:35px;}.before-after{height:500px;}.ba-card{width:230px;}.commercial-image{height:450px;}.faq-intro h2{font-size:38px;}.closing-cta{height:850px;}.closing-center{top:36%;width:90%;}.closing-panel{top:auto;height:42%;width:50%;padding:30px 18px;}.closing-panel.left-panel{bottom:0;}.closing-panel.right-panel{bottom:0;}.closing-panel h3{font-size:21px;}.footer-grid{grid-template-columns:1fr;}.footer-bottom{display:grid;gap:8px;}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;}.reveal{opacity:1;transform:none;transition:none;}.brands-track{animation:none;}.parallax-frame,.hero-bg,.closing-bg,.closing-panel,.rotating-blob{transform:none!important;}}


.hero-line{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;opacity:.44;}.hero-line path{fill:none;stroke:rgba(6,42,53,.23);stroke-width:2.2;stroke-dasharray:7 13;}.hero-line-dot{fill:var(--green);filter:drop-shadow(0 0 8px rgba(69,138,79,.45));}.hero-copy{z-index:3;}.hero-offer{position:absolute;right:7.5%;bottom:78px;z-index:4;border:0;background:rgba(255,255,255,.94);box-shadow:var(--shadow);backdrop-filter:blur(14px);border-radius:18px;padding:17px 20px;display:flex;align-items:center;gap:14px;text-align:left;transition:.3s;}.hero-offer:hover{transform:translateY(-6px);}.offer-copy{display:grid;}.offer-copy small{text-transform:uppercase;font-size:10px;letter-spacing:.11em;color:#506e7f;font-weight:800;}.offer-copy strong{font-size:22px;line-height:1.1;}.offer-copy em{font-style:normal;font-size:12px;color:var(--green);font-weight:900;margin-top:3px;}.offer-bloom{width:48px;height:48px;display:grid;place-items:center;position:relative;flex:0 0 48px;}.offer-bloom:before,.offer-bloom:after{content:"";position:absolute;inset:3px;background:#e4f4e7;clip-path:polygon(50% 0,61% 11%,76% 7%,82% 22%,98% 27%,91% 43%,100% 56%,86% 66%,87% 82%,70% 84%,60% 100%,47% 91%,32% 98%,25% 82%,8% 79%,13% 62%,0 51%,14% 38%,8% 22%,25% 18%,35% 3%);animation:bloomPulse 2.2s ease-in-out infinite;}.offer-bloom:after{inset:8px;background:var(--green);animation-delay:.2s;}.offer-bloom>span{position:relative;z-index:2;color:#fff;font-weight:900;font-size:19px;}.offer-bloom.small{width:38px;height:38px;flex-basis:38px;}.offer-bloom.small>span{font-size:15px;}@keyframes bloomPulse{0%,100%{transform:scale(.94) rotate(0);}50%{transform:scale(1.08) rotate(4deg);}}
.phone-btn{position:relative;overflow:hidden;isolation:isolate;}.phone-btn:before{content:"";position:absolute;left:50%;top:50%;width:14px;height:14px;border-radius:50%;background:var(--ink);transform:translate(-50%,-50%) scale(0);transition:transform .55s cubic-bezier(.2,.75,.25,1);z-index:-1;}.phone-btn:hover:before{transform:translate(-50%,-50%) scale(20);}.phone-btn:hover{background:var(--green);transform:none;}.phone-btn .btn-arrow{transition:.3s;}.phone-btn:hover .btn-arrow{transform:rotate(45deg) translate(2px,-2px);}


.service-panel button span{left:50%;transition:.35s;}.service-panel:hover:not(.active) img{transform:scale(1.025);}.service-panel:hover:not(.active) button span{letter-spacing:.04em;}.service-panel.active button span{display:none;}


.why-card.why-active{
    background:#cbd8de;
}

.why-card .line-icon{
    transition:
        background-color .35s ease,
        color .35s ease,
        transform .35s ease;
}

.why-card.why-active .line-icon{
    background:#fff;
    color:var(--green);
    transform:scale(1.04);
}.diagnostic-followup{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;align-items:center;}.followup-image{height:520px;}.followup-image img{width:100%;height:100%;object-fit:cover;}.followup-copy p{font-size:16px;line-height:1.8;color:#34586c;}
.before-after{height:610px;}.ba-card{width:245px;right:13%;top:20%;padding:17px 18px;}.ba-card strong{font-size:14px;line-height:1.45;}.ba-image.after span{top:auto;bottom:18px;}.rr-tags{display:flex;gap:10px;flex-wrap:wrap;margin:26px 0 30px;}.rr-tags span{padding:9px 13px;border:1px solid #d2dde0;border-radius:999px;font-size:12px;font-weight:800;color:#3c6174;}.rr-copy>p{margin-bottom:16px;}
.process-head{margin-bottom:45px;}.process-head p{color:#385d70;line-height:1.75;}.process-grid{display:grid;grid-template-columns:repeat(5,1fr);}.process-step{border-radius:22px;padding:28px;min-height:235px;transition:.3s;}.process-step:after{content:"→";position:absolute;top:50%;transform:translateY(-50%);width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-weight:900;z-index:2;}.process-step:last-child:after{display:none;}.process-step>span{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--blue-soft);font-weight:900;color:var(--green);}.process-step h3{margin:35px 0 9px;}.process-step p{color:#3d6074;line-height:1.6;}
.coupon-layout{display:grid;grid-template-columns:.72fr 1.28fr;gap:70px;align-items:center;}.coupon-heading p{color:#416377;line-height:1.7;}.coupon-tickets{display:grid;grid-template-columns:1fr 1fr;gap:22px;}.coupon-ticket{background:#fff;border-radius:26px;display:grid;grid-template-columns:1fr 155px;overflow:hidden;box-shadow:0 18px 55px rgba(4,34,45,.07);transition:transform .3s ease, box-shadow .3s ease;
}

.coupon-ticket:hover{
    transform:translateY(-5px);
    box-shadow:0 24px 65px rgba(4,34,45,.11);
}.ticket-main{padding:30px;}.ticket-main small{text-transform:uppercase;letter-spacing:.1em;color:#557285;font-weight:900;}.ticket-main strong{display:block;font-size:28px;margin:8px 0;}.ticket-main strong span{font-size:52px;color:var(--green);letter-spacing:-.05em;}.ticket-main p{margin:0;color:#47677a;line-height:1.55;}.ticket-claim{border:0;border-left:1px dashed #cad5d9;background:var(--ink);color:#fff;font-weight:900;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:20px;transition:.3s;}.ticket-claim:hover{background:var(--green);}
.contact-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:28px;}.contact-form-panel,.map-panel{border-radius:30px;overflow:hidden;}.contact-form-panel{background:var(--blue-soft);padding:52px;}.contact-form-panel h2{font-size:48px;}.contact-form-panel>p{color:#355b70;line-height:1.7;}.service-form{display:grid;gap:16px;margin-top:28px;}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}.service-form label{display:grid;gap:7px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;font-weight:900;color:#395f72;}.service-form input,.service-form select,.service-form textarea{width:100%;border:1px solid #cad8dd;border-radius:10px;background:#fff;padding:14px 15px;color:var(--ink);font:inherit;text-transform:none;letter-spacing:0;outline:none;}.service-form input:focus,.service-form select:focus,.service-form textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(69,138,79,.1);}.map-panel{position:relative;min-height:650px;background:#eef2f3;}.map-panel iframe{width:100%;height:100%;min-height:650px;border:0;filter:saturate(.75) contrast(.96);}.map-card{position:absolute;left:24px;bottom:24px;background:#fff;border-radius:18px;padding:20px 22px;box-shadow:var(--shadow);display:grid;gap:4px;}.map-card strong{font-size:16px;}.map-card span,.map-card a{font-size:13px;color:#426579;}.map-card a{color:var(--green);font-weight:900;margin-top:4px;}
.closing-center{transition:opacity .3s;}.closing-center>span{display:block;font-size:12px;font-weight:900;letter-spacing:.14em;margin-bottom:10px;}.closing-center h2{max-width:900px;margin-inline:auto;}.closing-panel{top:0;bottom:0;}.closing-panel p{line-height:1.7;}.closing-panel > a{
    display:inline-flex;
    align-items:center;
    gap:10px;
    width:max-content;
    margin-top:22px;
    padding:12px 18px;
    border:1px solid rgba(255,255,255,.35);
    border-radius:4px;
    color:#fff;
    text-decoration:none;
    font-weight:700;
    transition:.3s ease;
}

.closing-panel > a:hover{
    background:#fff;
    color:#073442;
    border-color:#fff;
}
@media(max-width:991px){.hero-line{opacity:.28;}.hero-offer{right:4%;bottom:40px;}.diagnostic-followup,.coupon-layout,.contact-grid{grid-template-columns:1fr;}.process-grid{grid-template-columns:repeat(2,1fr);}.process-step:after{display:none;}.coupon-tickets{grid-template-columns:1fr 1fr;}.closing-stage{height:190vh;}.closing-panel{width:38%;padding:45px 28px;}.contact-form-panel h2{font-size:42px;}}
@media(max-width:767px){.hero-offer{left:18px;right:auto;bottom:26px;}.benefit-grid{margin-top:78px;}.rotating-blob{left:50%;top:-78px;width:82%;height:470px;transform:translateX(-50%);}.diag-image-wrap{left:50%;top:-64px;width:76%;height:455px;transform:translateX(-50%);}.diagnostic-followup{margin-top:65px;gap:30px;}.followup-image{height:360px;}.service-panel button span{transform:translate(-50%,-50%);white-space:normal;text-align:center;}.process-grid,.coupon-tickets{grid-template-columns:1fr;}.coupon-ticket{grid-template-columns:1fr;}.ticket-claim{border-left:0;border-top:1px dashed #cad5d9;flex-direction:row;}.contact-form-panel{padding:32px 22px;}.contact-form-panel h2{font-size:36px;}.form-row{grid-template-columns:1fr;}.map-panel,.map-panel iframe{min-height:480px;}.closing-stage{height:180vh;}.closing-center{top:42%;}.closing-panel{top:auto;bottom:0;height:40%;width:50%;padding:25px 16px;border-radius:20px 20px 0 0!important;}.closing-panel h3{font-size:20px;}.closing-panel p{font-size:13px;}.closing-panel.left-panel{left:0;}.closing-panel.right-panel{right:0;}}


:root{--sage:#dfe8e1;--mist:#edf5f7;--mist-deep:#dfecef;}
/* Consistent center-circle button hover */
.main-btn,.dark-btn,.ghost-btn,.ticket-claim,.service-overlay a,.closing-panel a{position:relative;overflow:hidden;isolation:isolate;transition:color .35s ease,transform .3s ease,border-color .3s ease;}
.main-btn::before,.dark-btn::before,.ghost-btn::before,.ticket-claim::before{content:"";position:absolute;left:50%;top:50%;width:12px;height:12px;border-radius:50%;transform:translate(-50%,-50%) scale(0);transition:transform .5s cubic-bezier(.2,.75,.25,1);z-index:-1;}
.main-btn::before,.ticket-claim::before{background:var(--ink);}
.dark-btn::before{background:var(--green);}
.ghost-btn::before{background:var(--ink);}
.main-btn:hover,.dark-btn:hover,.ghost-btn:hover,.ticket-claim:hover{transform:translateY(-2px);color:#fff;background:initial;}
.main-btn:hover::before,.dark-btn:hover::before,.ghost-btn:hover::before,.ticket-claim:hover::before{transform:translate(-50%,-50%) scale(24);}


/* Benefits: raised light-blue tabs like reference */
.benefit-strip{padding-top:86px;}
.benefit-box{position:relative;padding-top:72px;overflow:visible;}
.icon-arch{position:absolute;left:50%;top:-58px;transform:translateX(-50%);width:118px;height:116px;border-radius:0 0 56px 56px;margin:0;font-size:0;box-shadow:none;}
.icon-arch i{font-size:40px;color:var(--ink);    line-height:1;}


/* Diagnosis parallax scene */


.diag-image-wrap{will-change:transform;transform:translateZ(0);}

.top-card{left:0;top:-16px;width:350px;padding:16px 18px;display:grid;grid-template-columns:82px 1fr;gap:16px;align-items:center;}
.data-icon-disc,.round-check{width:74px;height:74px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;position:relative;flex:0 0 auto;}
.data-icon-disc::before,.round-check::before{content:"";position:absolute;inset:-7px;border:1px solid rgba(6,42,53,.14);border-radius:44% 56% 50% 50% / 54% 44% 56% 46%;transform:rotate(12deg);}
.data-icon-disc i{font-size: 2vw;}
.bottom-card{right:-4px;bottom:20px;width:330px;padding:18px;gap:16px;}
.data-copy{min-width:0;}

/* Services accordion */

.service-panel button span{top:50%;bottom:auto;transform:translate(-50%,-50%) rotate(-90deg);}
.service-panel:not(.active):hover button span{transform:translate(-50%,-50%) rotate(-90deg) scale(1.05);}

/* Why / sticky cards */
.why{padding-bottom:100px;}
.why-card{transition:background .35s ease,transform .35s ease,color .35s ease;}
.line-icon{width:62px;height:62px;border-radius:50%;background:#eef3f4;display:grid;place-items:center;transition:transform .35s ease,background .35s ease,color .35s ease;}
.why-card:hover{background:#c9d4d9;transform:translateY(-4px);}
.why-card:hover .line-icon{background:#fff;transform:translateY(-5px) rotate(-6deg) scale(1.06);}
.why-card:hover p{color:#294c5f;}

/* moved parallax CTA */
.closing-stage{height:265vh;position:relative;}
.closing-cta{position:sticky;top:0;height:100vh;min-height:700px;}
.closing-bg{inset:-90px;background-position:center;transform:scale(1.08);will-change:transform;}
.closing-shade{background:rgba(1,15,21,.5);}
.closing-center{width:min(980px,82%);z-index:3;}
.closing-center h2{text-align:center;}
.closing-panel{padding:72px 56px;background:rgba(241,245,245,.97);backdrop-filter:blur(16px);}
.closing-panel.left-panel{border-radius:0 38px 38px 0;}
.closing-panel.right-panel{border-radius:38px 0 0 38px;}
.closing-panel::before{content:"";position:absolute;top:42px;border-radius:10px;}
.closing-panel.left-panel::before{right:48px;}.closing-panel.right-panel::before{left:48px;}
.closing-panel h3{font-size:34px;line-height:1.08;}

/* Follow-up now deliberately different from sticky section */

.diagnostic-followup{margin-top:0!important;}
.followup-image{border-radius:30px;overflow:hidden;box-shadow:0 24px 70px rgba(6,42,53,.12);}
.followup-copy .pill{background:#fff;}

/* Problem cards with animated icons */

.problem-card{position:relative;padding:26px 28px 30px;min-height:255px;overflow:hidden;}
.problem-card small{position:absolute;right:22px;top:20px;font-size:11px;font-weight:900;color:#86a0ad;}
.problem-icon{width:60px;height:60px;border-radius:17px;background:#fff;box-shadow:0 10px 24px rgba(6,42,53,.07);display:grid;place-items:center;transition:transform .4s cubic-bezier(.2,.8,.2,1),background .3s ease;}
.problem-icon i{
    font-size:30px;
    color:var(--ink);
    line-height:1;
    transition:transform .4s ease,color .3s ease;
}

.problem-card:hover .problem-icon i{
    transform:scale(1.08);
    color:#fff;
}
.problem-card h3{margin-top:34px;}
.problem-card:hover .problem-icon{transform:translateY(-6px) rotate(-5deg) scale(1.07);background:var(--ink);}
.problem-card:hover .problem-icon svg{transform:scale(1.08);stroke:#fff;}

/* Repair / Replace visual rhythm */


/* Process with icons and connector arrows */


.process-step{
    position:relative;
}

.process-step small{
    position:absolute;
    right:24px;
    top:22px;
    font-size:11px;
    font-weight:900;
    color:#87a0ac;
}

.process-icon{
    width:66px!important;
    height:66px!important;
    border-radius:20px!important;
    background:#fff!important;
    box-shadow:0 10px 26px rgba(6,42,53,.08);
    display:grid!important;
    place-items:center!important;
    transition:transform .35s ease,background .35s ease!important;
}

.process-icon i{
    font-size:28px;
    line-height:1;
    color:var(--ink);
    transition:color .35s ease,transform .35s ease;
    position: relative; z-index: 9;
}

.process-step:hover .process-icon{
    transform:translateY(-6px) rotate(-4deg);
    background:var(--ink)!important;
}

.process-step:hover .process-icon i{
    color:#fff;
    transform:scale(1.06);
}

/* connector */
.process-step::after{
    content:"";
    font-family:"bootstrap-icons";
    position:absolute;
    right:-34px!important;
    top:50%;
    transform:translateY(-50%);
    width:44px!important;
    height:44px!important;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:#fff!important;
    border:1px solid #b8d3d5;
    box-shadow:0 8px 22px rgba(4,31,42,.08);
    color:var(--ink);
    font-size:19px!important;
    font-weight:400;
    line-height:1;
    z-index:10;
    transition:
        background .3s ease,
        color .3s ease,
        transform .3s ease,
        border-color .3s ease;
}

.process-step:hover::after{
    background:var(--ink)!important;
    color:#fff;
    border-color:var(--ink);
    transform:translateY(-50%) translateX(3px);
}

.process-step:last-child::after{
    display:none;
}
.process-step:hover{
    
    
    
    z-index:5;
}
/* Coupons with subtle dollar field */
.coupons{position:relative;overflow:hidden;}
.coupon-layout{position:relative;z-index:2;}
.coupon-dollars{position:absolute;inset:0;pointer-events:none;overflow:hidden;color:var(--green);font-weight:900;}
.coupon-dollars span{position:absolute;line-height:1;transform:rotate(-15deg);}
.coupon-dollars span:nth-child(2){left:19%;bottom:-2%;transform:rotate(17deg);}.coupon-dollars span:nth-child(4){right:36%;bottom:2%;transform:rotate(-10deg);}.coupon-dollars span:nth-child(6){right:-2%;bottom:-8%;transform:rotate(-18deg);}


@media(max-width:991px){.rotating-blob{left:50%;width:72%;height:520px;transform:translateX(-50%);}.diag-image-wrap{width:72%;height:520px;}.closing-stage{height:210vh;}.closing-panel{width:39%;padding:45px 28px;}.diagnostic-followup-section{padding-top:85px;}}
@media(max-width:767px){.benefit-grid{margin-top:82px;}.rotating-blob{width:84%;height:440px;}.diag-image-wrap{width:78%;height:440px;}.top-card{width:260px;grid-template-columns:58px 1fr;}.data-icon-disc,.round-check{width:54px;height:54px;}.closing-stage{height:190vh;}.closing-panel{width:50%;height:100%;padding:26px 16px;}.problem-card{min-height:220px;}.process-step:after{display:none!important;}}


/* Page rhythm: strong, deliberate background transitions */
.benefit-strip{background:#ffffff;}
.diagnosis{background:#f6f9f8;padding-top:150px;padding-bottom:128px;}
.brands{background:#ffffff;}

.why{background:#f7f8f6;}
.diagnostic-followup-section{background:#dfecef;}
.problems{background:#ffffff;}
.repair-replace{background:#f2f6f2;}
.process{background:#e8f2f5;}
.coupons{background:#f2f7f1;}

.faq{background:#f4f6f3;}
.contact-map{background:#e8f1f4;}

/* Diagnosis: the blue plate begins exactly hidden behind the image.
   Scroll only reveals it by rotating slightly to the right. */
.diagnosis-panel{overflow:visible;isolation:isolate;}
.diag-visual{min-height:660px;overflow:visible;position:relative;}
.rotating-blob{
  position:absolute;
  left:95px!important;
  top:-114px!important;
  width:500px!important;
  height:750px!important;
  border-radius:95px!important;
  background:#61efffa3 !important;
  transform-origin:50% 70%!important;
  will-change:transform;
  z-index:1;
}
.diag-image-wrap{
  left:95px!important;
  top:-114px!important;
  width:500px!important;
  height:750px!important;
  border-radius:95px!important;
  z-index:2;
  overflow:hidden;
  box-shadow:0 30px 75px rgba(2,53,65,.16);
}
.diag-parallax-image{
  width:100%!important;
  height:100%!important;
  object-fit:cover;
  object-position:center 45%;
  transform:translate3d(0,-42px,0);
  will-change:transform;
}
/* keep cards clearly above both layers */
.floating-data{z-index:5;}


/* Cleaner brand / service transition */
.brands{border-top:1px solid rgba(6,42,53,.045);border-bottom:1px solid rgba(6,42,53,.045);}
.services{padding-top:120px;padding-bottom:125px;}

/* CTA remains a distinct full-screen motion moment */
.closing-stage{margin:0;background:#06171d;}

/* Give the follow-up room so it reads as a new chapter after the CTA */
.diagnostic-followup-section{padding-top:125px;padding-bottom:125px;}

/* Problems are intentionally compact diagnostic shortcuts */
.problem-card p{max-width:260px;}

/* Coupons: fewer, larger ambient dollar forms for a more premium field */
.coupon-dollars{opacity:.075;}
.coupon-dollars span{font-size:clamp(125px,15vw,245px);}
.coupon-dollars span:nth-child(2),
.coupon-dollars span:nth-child(4),
.coupon-dollars span:nth-child(6){display:none;}
.coupon-dollars span:nth-child(1){left:-2%;top:-8%;transform:rotate(-16deg);}
.coupon-dollars span:nth-child(3){left:43%;top:-18%;transform:rotate(8deg);}
.coupon-dollars span:nth-child(5){right:-2%;top:24%;transform:rotate(14deg);}

@media(max-width:1250px){
  .rotating-blob,.diag-image-wrap{left:50px!important;width:440px!important;height:590px!important;}  .floating-data{display: none;}
}
@media (max-width: 1078px) {
  .diag-copy {
    padding-left: 23%;
  }

}
@media(max-width:991px){
  .diagnosis{padding-top:100px;}
  .diag-visual{min-height:565px;}
  .rotating-blob,.diag-image-wrap{
    left:50%!important;top:-60px!important;width:72%!important;height:520px!important;
    margin-left:-36%!important;
  }
  .diag-copy {
    padding-left:0%;
  }
}
@media(max-width:767px){
  .diag-visual{min-height:490px;}
  .rotating-blob,.diag-image-wrap{
    left:50%!important;top:-42px!important;width:80%!important;height:455px!important;
    margin-left:-40%!important;border-radius:62px!important;
  }
  .diag-parallax-image{height:116%!important;}
}

/* Stronger background rhythm */
.services{
  background:#0b3438!important;
  color:#fff;
}
.services .services-head h2,
.services .services-head p{color:#fff;}
.services .services-head .pill{
  background:rgba(255,255,255,.12);
  color:#bdeef0;
  border-color:rgba(255,255,255,.16);
}

.commercial{
  background:#14565a!important;
  color:#fff;
}
.commercial .commercial-copy h2,
.commercial .commercial-copy p{color:#fff;}
.commercial .commercial-copy .pill{
  background:rgba(255,255,255,.12);
  color:#d9fbf5;
  border-color:rgba(255,255,255,.18);
}
.commercial .commercial-points span{
  background:rgba(255,255,255,.11);
  color:#fff;
  border-color:rgba(255,255,255,.16);
}
.script-source-extra{margin-top:14px;}

/* Component refinements */
/* Service dropdown: compact service panel rather than a default Bootstrap menu */
.site-header .dropdown-menu{min-width:320px;padding:12px;background:rgba(255,255,255,.98);border:1px solid #dbe6e8;border-radius:22px;box-shadow:0 24px 70px rgba(5,31,43,.14);overflow:hidden;}
.site-header .dropdown-menu::before{content:"WATER HEATER SERVICES";display:block;padding:8px 14px 10px;color:var(--green);font-size:10px;font-weight:900;letter-spacing:.14em;}
.site-header .dropdown-item{position:relative;border-radius:13px;padding:12px 42px 12px 15px;font-size:14px;font-weight:800;color:var(--ink);transition:background .25s,transform .25s,color .25s;}
.site-header .dropdown-item::after{content:"↗";position:absolute;right:15px;top:50%;transform:translateY(-50%);color:var(--green);transition:transform .25s;}
.site-header .dropdown-item:hover,.site-header .dropdown-item:focus{background:var(--blue-soft);color:var(--ink);transform:translateX(3px);}
.site-header .dropdown-item:hover::after{transform:translate(3px,-4px);}

/* A diagnostic approach: content remains source-led; cards are intentionally concise */
.why-card{min-height:145px;padding:28px 34px;}.why-card p{line-height:1.55;}.why-card h3{margin-bottom:7px;}

/* CTA closes fully and has a stronger two-tone identity */
.closing-panel{width:50%!important;color:#fff;overflow:hidden;border-radius:0!important;box-shadow:none!important;}
.closing-panel.left-panel{background:linear-gradient(145deg,#071f2b 0%,#0a3541 100%);}
.closing-panel.right-panel{background:linear-gradient(145deg,#0b5d60 0%,#128071 100%);}
.closing-panel::before{width:74px!important;height:6px!important;background:#8fca66!important;z-index:2;}
.closing-panel::after{content:"";position:absolute;width:260px;height:260px;border:1px solid rgba(255,255,255,.14);border-radius:50%;right:-95px;bottom:-85px;box-shadow:0 0 0 38px rgba(255,255,255,.035),0 0 0 76px rgba(255,255,255,.025);}
.closing-panel.right-panel::after{right:auto;left:-95px;top:-85px;bottom:auto;}
.closing-panel p{color:#d9eaeb!important;}

/* Common symptoms now carries the sticky-scroll composition */
.problems>.container-xxl{display:grid;grid-template-columns:.72fr 1.28fr;gap:76px;align-items:start;}
.problems .section-title{position:sticky;top:175px;margin:0;max-width:560px;}
.problems .problem-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;}
.problem-card{border:1px solid transparent;}
.problem-card:hover{border-color:#b7d5d7;background:#eef7f7;}
.problems .section-title > p{
    max-width:430px;
    margin:24px 0 22px;
    color:#385d70;
    line-height:1.7;
    font-size:16px;
}

.problems .section-title .main-btn{
    width:max-content;
}
/* Center the post-repair heading and keep the process cards visually separate */
.process-head{max-width:920px;margin:0 auto 50px;text-align:center;}.process-head p{max-width:850px;margin-left:auto;margin-right:auto;}
.process-grid{gap:22px;}
.process-step{background:#fff;border:1px solid rgba(7,48,61,.08);overflow:visible;}
.process-step:hover{background:#fff;border-color:#9bc7c9;transform:translateY(-6px);}
.process-step:after{right:-34px!important;background:#fff!important;border:1px solid #b8d3d5;box-shadow:0 8px 22px rgba(4,31,42,.08);}

/* Reliable performance points */
.commercial-points span{position:relative;background:rgba(255,255,255,.72);transition:transform .3s,background .3s,border-color .3s,box-shadow .3s;}
.commercial-points span:hover{transform:translateY(-4px);background:#ffffff21;border-color:#94c6c3;box-shadow:0 14px 30px rgba(5,31,43,.08);}
.commercial-points span::after{float:right;
    content:"";
    font-family:"bootstrap-icons";
    font-size:14px;
    font-weight:900;
    line-height:1.7;
    color:#90c141;
    transition:transform .3s ease;
}


.commercial-points span:hover::after{transform:translate(3px,-3px);}

/* FAQ service switcher */
.faq-tags{display:flex!important;flex-wrap:wrap;gap:9px!important;margin-top:38px!important;}
.faq-tab{border:1px solid #cbd9dc;background:transparent;color:#1f506c;border-radius:999px;padding:10px 15px;font:inherit;font-size:13px;font-weight:800;cursor:pointer;transition:.25s;}
.faq-tab:hover{border-color:var(--green);transform:translateY(-2px);}
.faq-tab.active{background:var(--ink);border-color:var(--ink);color:#fff;}
.faq-panel{display:none;}.faq-panel.active{display:block;animation:faqFade .35s ease;}
@keyframes faqFade{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}

/* =========================
   FOOTER
========================= */

.footer {
    padding: 78px 0 25px;
    background: linear-gradient(
        145deg,
        #061f2a 0%,
        #082f37 58%,
        #0a3c40 100%
    );
    color: #d8e8ec;
    overflow: hidden;
}

.footer .container-xxl {
    position: relative;
}


/* Main Layout */

.footer-layout {
    display: grid !important;
    grid-template-columns: 1.2fr .9fr .9fr;
    grid-template-areas:
        "intro services contact"
        "location location location";
    gap: 28px !important;
}

.footer-layout > div {
    position: relative;
    border: 1px solid rgba(255,255,255,.11);
    border-radius: 25px;
    padding: 32px;
    overflow: hidden;
}


/* Intro */

.footer-intro {
    grid-area: intro;
    padding: 38px !important;
    background: rgba(255,255,255,.055);
}

.footer-layout .footer-brand {
    position: relative;
    z-index: 2;
    display: block;
    width: 250px;
    max-width: 70%;
    margin: 0 0 34px;
}

.footer-layout .footer-brand img {
    width: 100%;
    height: auto;
    margin: 0;
}

.footer-intro > p {
    max-width: 470px;
    margin: 0;
    font-size: 15px !important;
    line-height: 1.8 !important;
    color: #d4e6e8;
}


/* Headings */

.footer-label {
    display: block;
    color: #8fd09a;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.footer-layout h3 {
    margin: 8px 0 18px;
    color: #fff;
    font-size: 22px;
}

.footer-layout p,
.footer-layout a {
    position: relative;
    z-index: 2;
    color: #d4e6e8;
}


/* Phone CTA */

.footer-main-phone {
    display: grid !important;
    grid-template-columns: 1fr auto;
    gap: 2px 22px;
    align-items: center;

    width: max-content;
    min-width: 285px;

    margin-top: 32px !important;
    padding: 17px 20px;

    border-radius: 16px;
    background: #fff;
    color: var(--ink) !important;

    transition:
        transform .3s ease,
        box-shadow .3s ease;
}

.footer-main-phone small {
    color: #55717b;
}

.footer-main-phone strong {
    font-size: 24px;
}

.footer-main-phone > i {
    grid-column: 2;
    grid-row: 1 / 3;

    width: 42px;
    height: 42px;

    display: grid;
    place-items: center;

    border-radius: 50%;
    background: rgba(69,138,79,.11);
    color: var(--green);

    font-size: 18px;
    transition:
        background .3s ease,
        color .3s ease,
        transform .3s ease;
}

.footer-main-phone:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 40px rgba(0,0,0,.14);
}

.footer-main-phone:hover > i {
    background: var(--green);
    color: #fff;
    transform: rotate(-8deg);
}


/* Services */

.footer-services {
    grid-area: services;
    background: rgba(255,255,255,.035);
}

.footer-service-links {
    display: grid;
    gap: 4px;
}

.footer-service-links a {
    display: flex !important;
    justify-content: space-between;
    align-items: center;

    gap: 15px;
    padding: 11px 0;
    margin: 0 !important;

    border-bottom: 1px solid rgba(255,255,255,.09);

    transition:
        color .25s ease,
        padding .25s ease;
}

.footer-service-links a:last-child {
    border-bottom: 0;
}

.footer-service-links a i {
    color: #8fd09a;
    font-size: 13px;
    transition: transform .25s ease;
}

.footer-service-links a:hover {
    color: #fff;
    padding-left: 5px;
}

.footer-service-links a:hover i {
    transform: translate(3px,-3px);
}


/* Contact */

.footer-contact {
    grid-area: contact;
    background: rgba(255,255,255,.035);
}

.footer-contact > a,
.footer-contact > p {
    display: flex;
    align-items: flex-start;
    gap: 10px;

    margin: 13px 0;
    line-height: 1.6;
}

.footer-contact > a {
    overflow-wrap: anywhere;
}

.footer-contact i {
    flex: 0 0 18px;
    margin-top: 2px;
    color: #8fd09a;
    font-size: 15px;
}


/* Full-width service areas */

.footer-location {
    grid-area: location;

    display: grid;
    grid-template-columns: minmax(250px, .85fr) 1.7fr auto;
    align-items: center;

    column-gap: 70px;

    padding: 28px 34px !important;

    background: rgba(120,204,139,.08);
}

.footer-location h3 {
    margin-bottom: 0;
}

.footer-area-links {
    display: flex;
    align-items: center;
    flex-wrap: wrap;

    gap: 10px 0;
}

.footer-area-links span {
    display: inline-flex;
    align-items: center;

    color: #d4e6e8;
    font-size: 13px;
    line-height: 1.4;
    white-space: nowrap;
}

.footer-area-links span:not(:last-child)::after {
    content: "";
    width: 4px;
    height: 4px;

    margin: 0 13px;

    border-radius: 50%;
    background: #8fd09a;
    opacity: .75;
}

.footer-area-links i {
    margin-right: 7px;
    color: #8fd09a;
}


/* Back to top */

.footer-top-link {
    justify-self: end;

    display: inline-flex !important;
    align-items: center;
    gap: 12px;

    margin: 0 !important;
    padding: 13px 18px;

    border: 1px solid rgba(255,255,255,.14);
    border-radius: 999px;

    white-space: nowrap;

    transition:
        background .3s ease,
        color .3s ease,
        transform .3s ease;
}

.footer-top-link i {
    color: #8fd09a;
    font-size: 17px;
    transition: transform .3s ease;
}

.footer-top-link:hover {
    background: #fff;
    color: var(--ink) !important;
    transform: translateY(-2px);
}

.footer-top-link:hover i {
    color: var(--green);
    transform: translateY(-3px);
}


/* Bottom */

.footer-bottom {
    border-top: 1px solid rgba(255,255,255,.15);

    margin-top: 24px;
    padding-top: 22px;

    display: flex;
    justify-content: space-between;
    gap: 20px;

    font-size: 12px;
}


/* =========================
   TABLET
========================= */

@media (max-width: 991px) {

    .footer-layout {
        grid-template-columns: 1fr 1fr;
        grid-template-areas:
            "intro intro"
            "services contact"
            "location location";
    }

    .footer-location {
        grid-template-columns: 1fr 1fr;
        gap: 24px 40px;
    }

    .footer-top-link {
        grid-column: 1 / -1;
        justify-self: start;
    }

}


/* =========================
   MOBILE
========================= */

@media (max-width: 767px) {

    .footer {
        padding-top: 52px;
    }

    .footer-layout {
        grid-template-columns: 1fr;
        grid-template-areas:
            "intro"
            "services"
            "contact"
            "location";

        gap: 16px !important;
    }

    .footer-layout > div {
        padding: 26px;
    }

    .footer-intro {
        padding: 30px !important;
    }

    .footer-layout .footer-brand {
        max-width: 210px;
    }

    .footer-main-phone {
        min-width: 0;
        width: 100%;
    }

    .footer-location {
        grid-template-columns: 1fr;
        align-items: start;
        gap: 24px;
    }

    .footer-area-links {
        display: grid;
        gap: 10px;
    }

    .footer-area-links span:not(:last-child)::after {
        display: none;
    }

    .footer-top-link {
        grid-column: auto;
        justify-self: start;
    }

    .footer-bottom {
        display: grid;
        gap: 8px;
    }

}
.process-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 14px;
    font-weight: 700;
    font-size: 15px;
    color: var(--ink);
}

.process-label i {
    color: var(--green);
    font-size: 16px;
}
.service-form input.main-btn[type="submit"] {
    background: var(--green);
    color: #fff;
    border-color: var(--green);
    font-weight: 700;
    cursor: pointer;
}

.service-form input.main-btn[type="submit"]:hover {
  background:transparent;
  border-color: #02263d;
  color: #02263d;
}
.read-more{display:inline-flex;align-items:center;gap:9px;transition:.3s;}
.process-label:hover{color:var(--green);}.process-label:hover i{transform:translate(-5px,-5px);}
.process-label i{transition:transform .3s ease;}
.coupon-dialog{
    position:relative;
    background:transparent;
    border-radius:24px;
    padding:0;
    max-width:1050px;
    width:min(94vw,1050px);
    text-align:center;
    box-shadow:var(--shadow);
}

.coupon-popup-image{
    display:block;
    width:100%;
    height:auto;
    max-height:88vh;
    object-fit:contain;
    border-radius:24px;
}

.coupon-close{
    position:absolute;
    right:14px;
    top:14px;
    z-index:3;

    width:42px;
    height:42px;

    display:grid;
    place-items:center;

    border:0;
    border-radius:50%;
    background:#fff;
    color:var(--ink);

    font-size:28px;
    line-height:1;
    box-shadow:0 8px 24px rgba(0,0,0,.18);
    cursor:pointer;
}
/* ===== 404 PAGE ===== */
.error-page{position:relative;overflow:hidden;min-height:720px;padding:110px 0 120px;background:linear-gradient(135deg,#edf6f7 0%,#f8fbfb 45%,#e4f0eb 100%)}
.error-wrap{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:80px;min-height:520px}
.error-copy{max-width:720px}.error-code{margin:24px 0 4px;font-size:clamp(100px,12vw,190px);line-height:.78;font-weight:900;letter-spacing:-.08em;color:transparent;-webkit-text-stroke:2px rgba(6,42,53,.18);text-shadow:0 20px 60px rgba(6,42,53,.06)}
.error-copy h1{margin:28px 0 18px;font-size:clamp(48px,5vw,78px);line-height:1.02}.error-copy>p{max-width:680px;margin:0;color:#385d70;font-size:17px;line-height:1.8}.error-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.error-links{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:34px}.error-links a{position:relative;color:#31596c;font-size:13px;font-weight:800}.error-links a::after{content:"";position:absolute;left:0;right:100%;bottom:-4px;height:1px;background:var(--green);transition:right .25s ease}.error-links a:hover::after{right:0}
.error-visual{position:relative;display:grid;place-items:center;min-height:520px}.error-heater{position:relative;width:min(340px,72vw);height:440px;filter:drop-shadow(0 30px 45px rgba(6,42,53,.14))}.heater-body{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:265px;height:355px;border:1px solid rgba(6,42,53,.12);border-radius:36px 36px 46px 46px;background:linear-gradient(145deg,#fff 0%,#eaf3f5 72%,#dbe9ec 100%);box-shadow:inset -18px -18px 40px rgba(6,42,53,.05)}.heater-top{position:absolute;left:50%;top:61px;transform:translateX(-50%);width:195px;height:35px;border-radius:50%;background:#dbe9ec;border:1px solid rgba(6,42,53,.10);z-index:2}.heater-display{position:absolute;left:50%;top:112px;transform:translateX(-50%);display:grid;place-items:center;width:112px;height:72px;border-radius:18px;background:var(--ink);color:#fff;font-size:34px;font-weight:900;letter-spacing:.04em;box-shadow:0 14px 30px rgba(6,42,53,.18)}.heater-alert{position:absolute;left:50%;bottom:52px;transform:translateX(-50%);display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#fff;color:var(--green);font-size:24px;box-shadow:0 10px 26px rgba(6,42,53,.10)}.heater-pipe{position:absolute;top:0;width:22px;height:96px;border-radius:12px;background:linear-gradient(90deg,#cdd9dc,#f7fbfc 45%,#b8c8cc);z-index:1}.pipe-left{left:108px}.pipe-right{right:108px}.heater-pipe::before{content:"";position:absolute;top:0;left:-10px;width:42px;height:14px;border-radius:999px;background:#b9c9cc}.error-bubble{position:absolute;display:grid;place-items:center;width:76px;height:76px;border-radius:24px;background:#fff;color:var(--ink);font-size:28px;box-shadow:0 18px 46px rgba(6,42,53,.12);animation:errorFloat 5s ease-in-out infinite}.bubble-one{left:4%;top:16%;color:var(--teal)}.bubble-two{right:1%;top:34%;animation-delay:.8s;color:var(--green)}.bubble-three{left:8%;bottom:10%;animation-delay:1.5s}.error-orb{position:absolute;border-radius:50%;pointer-events:none}.error-orb-one{width:420px;height:420px;right:-160px;top:-130px;background:rgba(7,140,152,.10)}.error-orb-two{width:330px;height:330px;left:-120px;bottom:-140px;background:rgba(69,138,79,.10)}
@keyframes errorFloat{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-12px) rotate(3deg)}}
@media(max-width:991px){.error-page{padding:85px 0 95px}.error-wrap{grid-template-columns:1fr;gap:35px;text-align:center}.error-copy{margin:auto}.error-actions,.error-links{justify-content:center}.error-visual{min-height:440px}.error-code{margin-top:18px}}
@media(max-width:767px){.error-page{padding:65px 0 75px}.error-wrap{gap:18px}.error-copy h1{font-size:44px}.error-copy>p{font-size:15px}.error-actions{display:grid}.error-actions a{width:100%}.error-links{display:grid;gap:10px}.error-visual{min-height:390px}.error-heater{transform:scale(.82)}.error-bubble{width:60px;height:60px;border-radius:18px;font-size:22px}.bubble-one{left:2%}.bubble-two{right:2%}}
/* =========================================
   Diagnosis / Turquoise Section Responsive Fix
   ========================================= */

@media (max-width: 991px) {

    .diagnosis {
        padding-top: 90px;
        padding-bottom: 80px;
    }

    .diagnosis-panel {
        grid-template-columns: 1fr;
        padding: 42px 38px 50px;
        margin-top: 55px;
        min-height: auto;
    }

    .diag-visual {
        position: relative;
        min-height: 520px;
        width: 100%;
    }

    .rotating-blob,
    .diag-image-wrap {
        left: 50% !important;
        top: -70px !important;
        width: min(72%, 460px) !important;
        height: 540px !important;

        margin-left: 0 !important;
        transform: translateX(-50%) !important;
    }


    .top-card {
        left: 50%;
        transform: translateX(-50%);
    }
}


@media (max-width: 767px) {

    .diagnosis {
        padding-top: 70px;
        padding-bottom: 65px;
    }

    .diagnosis-panel {
        padding: 32px 20px 40px;
        border-radius: 30px;
        margin-top: 45px;
    }

    .diag-visual {
        min-height: 430px;
    }

    .rotating-blob,
    .diag-image-wrap {
        left: 50% !important;
        top: -48px !important;
        width: min(84%, 330px) !important;
        height: 420px !important;

        margin-left: 0 !important;
        transform: translateX(-50%) !important;

        border-radius: 58px !important;
    }

    .diag-parallax-image {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover;
    }

    .top-card {
        width: min(250px, 82%);
        left: 50%;
        right: auto;
        transform: translateX(-50%);
    }

    .diag-copy h2 {
        font-size: clamp(30px, 9vw, 40px);
    }

    .diag-copy p {
        font-size: 15px;
        line-height: 1.7;
    }
}


@media (max-width: 480px) {

    .diagnosis-panel {
        padding-left: 16px;
        padding-right: 16px;
    }

    .diag-visual {
        min-height: 395px;
    }

    .rotating-blob,
    .diag-image-wrap {
        width: 88% !important;
        height: 385px !important;
        top: -38px !important;
        border-radius: 48px !important;
    }

    .top-card {
        width: 230px;
    }
}
/* =========================================
   Closing CTA Responsive Fix
   ========================================= */

@media (max-width: 991px) {

    .closing-stage {
        height: auto !important;
        min-height: 0 !important;
    }

    .closing-cta {
        position: relative !important;
        top: auto !important;
        height: auto !important;
        min-height: 0 !important;
        padding: 90px 28px 40px;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 18px;
        overflow: hidden;
    }

    .closing-bg {
        inset: 0 !important;
        transform: none !important;
        background-position: center;
    }

    .closing-center {
        position: relative;
        width: 100% !important;
        grid-column: 1 / -1;
        padding: 30px 20px 55px;
        z-index: 3;
    }

    .closing-panel {
        position: relative !important;
        inset: auto !important;
        width: 100% !important;
        min-height: 100%;
        padding: 38px 30px !important;
        border-radius: 24px !important;
        z-index: 4;
    }

    .closing-panel.left-panel,
    .closing-panel.right-panel {
        border-radius: 24px !important;
    }

    .closing-panel::before {
        top: 24px !important;
    }

    .closing-panel.left-panel::before,
    .closing-panel.right-panel::before {
        left: 30px !important;
        right: auto !important;
    }

    .closing-panel h3 {
        font-size: 27px !important;
    }
}


@media (max-width: 767px) {

    .closing-cta {
        padding: 70px 18px 24px;
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .closing-center {
        grid-column: 1;
        padding: 20px 4px 38px;
    }

    .closing-center > span {
        font-size: 10px;
        letter-spacing: .11em;
    }

    .closing-center h2 {
        font-size: clamp(31px, 9vw, 42px);
        line-height: 1.05;
        max-width: 100%;
    }

    .closing-center p {
        max-width: 100%;
        font-size: 15px;
        line-height: 1.65;
        margin-inline: auto;
    }

    .closing-center .phone-btn {
        width: auto;
        max-width: 100%;
    }

    .closing-panel {
        padding: 42px 24px 28px !important;
        min-height: 0;
    }

    .closing-panel h3 {
        font-size: 25px !important;
        line-height: 1.12;
    }

    .closing-panel p {
        font-size: 14px;
        line-height: 1.6;
    }

    .closing-panel > a {
        width: fit-content;
        margin-top: 16px;
    }
}


@media (max-width: 480px) {

    .closing-cta {
        padding-left: 14px;
        padding-right: 14px;
    }

    .closing-center h2 {
        font-size: 30px;
    }

    .closing-center .phone-btn {
        font-size: 14px;
    }

    .closing-panel {
        padding: 40px 20px 26px !important;
        border-radius: 20px !important;
    }

    .closing-panel.left-panel,
    .closing-panel.right-panel {
        border-radius: 20px !important;
    }

    .closing-panel h3 {
        font-size: 23px !important;
    }
}
/* =========================================
   Problems Section Responsive Fix
   ========================================= */

@media (max-width: 991px) {

    .problems .container-xxl {
        display: block;
    }

    .problems .section-title {
        position: relative !important;
        top: auto !important;
        margin-bottom: 38px;
        max-width: 100%;
    }

    .problem-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 18px;
    }

    .problem-card {
        min-height: 230px;
    }
}


@media (max-width: 767px) {

    .problems {
        padding-top: 70px;
        padding-bottom: 70px;
    }

    .problems .section-title {
        margin-bottom: 30px;
    }

    .problems .section-title h2 {
        font-size: clamp(30px, 9vw, 40px);
        line-height: 1.08;
    }

    .problem-grid {
        grid-template-columns: 1fr !important;
        gap: 14px;
    }

    .problem-card {
        width: 100%;
        min-height: 0;
        padding: 28px 24px;
    }

    /* Disable scroll animation on mobile */
    .problem-card.reveal,
    .problem-card.reveal.delay-1,
    .problem-card.reveal.delay-2 {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}


@media (max-width: 480px) {

    .problem-card {
        padding: 24px 20px;
        border-radius: 22px;
    }

    .problem-card h3 {
        font-size: 22px;
    }

    .problem-card p {
        font-size: 14px;
        line-height: 1.6;
    }
}