@import "tailwindcss";
@import "tw-animate-css";
@import "../vendor/shadcn-tailwind-4.13.0.css";

:root {
  --navy:#062a49;
  --navy-2:#031d34;
  --navy-3:#0b3d65;
  --red:#df181c;
  --red-dark:#bd1014;
  --ink:#102c43;
  --muted:#607080;
  --paper:#f5f7f8;
  --line:#dce3e8;
  --white:#fff;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--ink);font-family:Arial,Helvetica,sans-serif;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.shell{width:min(1240px,calc(100% - 48px));margin-inline:auto}
.section{padding:112px 0}
h2{display:flex;align-items:center;gap:10px;margin:0 0 18px;font-size:.76rem;font-weight:800;letter-spacing:.2em;color:var(--navy-3)}
.eyebrowLight{color:#d6e5f0}
#about h3{max-width:780px;margin:0;font-family:Impact,"Arial Narrow",sans-serif;font-size:clamp(2.6rem,4.6vw,4.8rem);font-weight:400;line-height:.98;letter-spacing:.01em;color:var(--navy);text-transform:uppercase}
.sectionTitle{max-width:780px;margin:0;font-family:Impact,"Arial Narrow",sans-serif;font-size:clamp(2.6rem,4.6vw,4.8rem);font-weight:400;line-height:.98;letter-spacing:.01em;color:var(--navy);text-transform:uppercase}
.sectionTitle.light{color:#fff}
.button{display:inline-flex;align-items:center;justify-content:center;gap:11px;min-height:56px;padding:0 25px;border-radius:3px;font-weight:800;font-size:.88rem;letter-spacing:.055em;text-transform:uppercase;transition:transform .2s,background .2s,color .2s}
.button:hover{transform:translateY(-2px)}
.button svg,.textLink svg{width:18px;height:18px}
.buttonPrimary{background:var(--red);color:#fff;box-shadow:0 12px 25px rgba(223,24,28,.18)}
.buttonPrimary:hover{background:var(--red-dark)}
.buttonOutline{border:1px solid var(--navy);color:var(--navy);background:#fff}
.buttonOutline:hover{background:var(--navy);color:#fff}
.buttonGhost{border:1px solid rgba(255,255,255,.55);color:#fff;background:rgba(0,0,0,.08);backdrop-filter:blur(7px)}
.buttonGhost:hover{background:#fff;color:var(--navy)}
.buttonWhite{background:#fff;color:var(--navy)}
.textLink{display:inline-flex;align-items:center;gap:10px;color:var(--red);font-weight:800;text-transform:uppercase;letter-spacing:.05em;font-size:.83rem}

.utilityBar{height:45px;background:var(--navy-2);color:#fff}
.utilityInner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px;font-size:.76rem;letter-spacing:.035em}
.utilityInner p,.utilityInner a{display:flex;align-items:center;gap:8px;margin:0}
.utilityInner svg{width:16px;height:16px;color:#fff}
.utilityLeft{display:flex;align-items:center;gap:24px}
.emergencyLabel{text-transform:uppercase;letter-spacing:.08em}
.utilityPhone{padding-left:24px;border-left:1px solid rgba(255,255,255,.24);font-weight:800;font-size:.86rem}
.socialLinks{display:flex;align-items:center;gap:6px;margin-left:auto}
.socialLinks a{display:grid;width:29px;height:29px;place-items:center;border:1px solid rgba(255,255,255,.28);border-radius:50%;transition:background .2s,border-color .2s}
.socialLinks a:hover{background:var(--red);border-color:var(--red)}
.socialLinks a img{width:14px;height:14px;object-fit:contain}
.siteHeader {
    position: relative;
    z-index: 40;
    background: rgba(255,255,255);
    border-bottom: 1px solid var(--line);
    backdrop-filter: blur(12px);
    box-shadow: 0 8px 30px rgba(3,29,52,.04);
}

@media (max-width: 450px) {

    .siteHeader {
        position: sticky;
        top: 0;
        z-index: 40;
    }

}

.headerInner {
    min-height: 96px;
    display: flex;
    align-items: center;
    gap: 18px;
}

.brand {
    width: 220px;
    flex: 0 0 220px;
    margin-right: auto;
}

.brand img {
    width: 100%;
    height: auto;
}

.desktopNav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 13px;
}

.desktopNav a {
    position: relative;
    padding: 14px 0;
    font-size: .80rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .025em;
    text-transform: uppercase;
    white-space: nowrap;
}

.desktopNav a:after {
    content: "";
    position: absolute;
    left: 0;
    right: 100%;
    bottom: 5px;
    height: 2px;
    background: var(--red);
    transition: right .2s;
}

.desktopNav a:hover:after {
    right: 0;
}

.headerActions {
    display: flex;
    align-items: center;
    flex: none;
    gap: 8px;
}

.headerCta {
    min-height: 46px;
    padding-inline: 15px;
    font-size: .68rem;
    font-weight: 700;
    white-space: nowrap;
}

.mobileMenu,
.mobilePhone {
    display: none;
}

@media (min-width: 651px) and (max-width: 1210px) {

    .siteHeader {
        position: relative;
        height: auto;
    }

    .headerInner {
        width: min(1240px, calc(100% - 48px));
        height: auto;
        min-height: 0;

        display: grid;
        grid-template-columns: 1fr;
        grid-template-rows: auto auto auto;

        justify-items: center;
        align-items: center;

        gap: 0;

        padding-top: 22px;
        padding-bottom: 22px;
    }

    /* ROW 1 - LOGO */

    .brand {
        grid-column: 1;
        grid-row: 1;

        display: block;
        width: 240px;
        flex: none;

        margin: 0 0 18px;
    }

    .brand img {
        display: block;
        width: 100%;
        height: auto;
    }


    /* ROW 2 - NAVIGATION */

    .desktopNav {
        grid-column: 1;
        grid-row: 2;

        display: flex;
        align-items: center;
        justify-content: center;
        flex-wrap: nowrap;

        width: 100%;

        gap: 20px;

        margin: 0 0 20px;
    }

    .desktopNav a {
        display: block;

        padding: 5px 0;

        
        font-weight: 700;
        line-height: 1;

        white-space: nowrap;
    }


    /* ROW 3 - BUTTONS */

    .headerActions {
        grid-column: 1;
        grid-row: 3;

        display: flex;
        align-items: center;
        justify-content: center;

        width: 100%;

        gap: 12px;

        margin: 0;
    }

    .headerCta {
        min-width: 164px;
        min-height: 52px;

        padding: 0 22px;

        font-size: .68rem;
        font-weight: 700;

        white-space: nowrap;
    }


    /* MOBILE ELEMENTS STILL HIDDEN */

    .mobileMenu,
    .mobilePhone {
        display: none;
    }

}

@media (max-width: 650px) {

    .utilityBar {
        display: none;
    }

    .headerInner {
        position: relative;
        display: grid;
        grid-template-columns: 50px 1fr 50px;
        align-items: center;
        width: 100%;
        height: 76px;
        min-height: 76px;
        padding: 0 16px;
        gap: 0;
    }

    .desktopNav,
    .headerActions {
        display: none;
    }

    .brand {
        grid-column: 2;
        justify-self: center;
        width: min(220px, 65vw);
        margin: 0;
        flex: none;
    }

    .mobileMenu {
        display: block;
        grid-column: 1;
        grid-row: 1;
        justify-self: start;
        position: relative;
    }

    .mobileMenu summary {
        display: grid;
        place-items: center;
        width: 44px;
        height: 44px;
        padding: 0;
        border: 0;
        background: transparent;
        cursor: pointer;
        list-style: none;
    }

    .mobileMenu summary::-webkit-details-marker {
        display: none;
    }

    .mobileMenu summary svg {
        width: 32px;
        height: 32px;
        color: #000;
        stroke-width: 2.5;
    }

    .mobileMenu nav {
        position: absolute;
        left: 0;
        top: 58px;
        z-index: 100;
        width: 260px;
        padding: 10px;
        background: #fff;
        border: 1px solid var(--line);
        box-shadow: 0 20px 40px rgba(3,29,52,.15);
    }

    .mobileMenu nav a {
        display: block;
        padding: 13px 14px;
        border-bottom: 1px solid #edf0f2;
        font-size: .78rem;
        font-weight: 700;
        text-transform: uppercase;
    }

    .mobileMenu nav a:last-child {
        border-bottom: 0;
    }

    .mobilePhone {
        display: grid;
        grid-column: 3;
        grid-row: 1;
        justify-self: end;
        place-items: center;
        width: 44px;
        height: 44px;
        color: #000;
    }

    .mobilePhone svg {
        width: 30px;
        height: 30px;
    }

}
.hero{height:min(790px,calc(100vh - 153px));min-height:690px;position:relative;isolation:isolate;overflow:hidden;background:var(--navy)}
.heroImage{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 48%;z-index:-3}
.heroShade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(3,25,45,.96) 0%,rgba(3,25,45,.83) 32%,rgba(3,25,45,.34) 58%,rgba(3,25,45,.02) 82%)}
.heroInner{height:100%;display:flex;align-items:center;padding:78px 0 104px}
.heroCopy{width:min(690px,58%);color:#fff}
.heroHeading{margin:0;padding:0;border:0}
.heroCopy h1{margin:0;font-family:Impact,"Arial Narrow",sans-serif;font-size:clamp(3.9rem,5.4vw,6.1rem);font-weight:400;line-height:.92;letter-spacing:.005em;text-transform:uppercase;text-wrap:balance}
.heroLead{max-width:620px;margin:24px 0 20px;color:#dfe9f0;font-size:1.05rem;line-height:1.65}
.googleRating{display:inline-flex;align-items:center;gap:13px;margin:0 0 22px;padding:10px 15px;border:1px solid rgba(255,255,255,.36);border-radius:999px;background:rgba(3,29,52,.24);color:#eef5f8;font-size:.81rem;line-height:1.3;backdrop-filter:blur(7px)}
.ratingStars{display:flex;gap:3px;color:#ffc928}
.ratingStars svg{width:15px;height:15px;fill:currentColor;stroke-width:1.5}
.googleRating strong{color:#fff}
.heroActions{display:flex;flex-wrap:wrap;gap:13px}
.heroTrust{display:flex;align-items:center;gap:25px;margin-top:24px;color:#eef5f8;font-size:.8rem;font-weight:700;letter-spacing:.02em}
.heroTrust span{display:flex;align-items:center;gap:7px}
.heroTrust svg{width:16px;height:16px;color:#ff5558;stroke-width:3}
.heroZigzag{position:absolute;left:0;bottom:0;z-index:3;width:43%;height:5px;background:var(--red)}

.factStrip{position:relative;z-index:5;padding:38px 0 42px;background:#fff;border-bottom:1px solid #e7ecef}
.factGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;min-height:0}
.fact{position:relative;display:grid;grid-template-columns:52px 1fr;grid-template-rows:auto auto;align-items:center;column-gap:16px;row-gap:4px;min-height:118px;padding:20px 28px;background:transparent}
.fact+.fact:before{content:"";position:absolute;display:block;left:0;top:15px;bottom:15px;width:1px;background:#dbe3e8}
.fact>svg{grid-row:1/3;width:52px;height:52px;padding:13px;color:var(--red);background:#f1f5f7;border:1px solid #e3eaee;border-radius:12px;stroke-width:1.8}
.fact>strong{grid-column:2;font-family:Impact,"Arial Narrow",sans-serif;font-size:2rem;font-weight:400;line-height:1;color:var(--navy);letter-spacing:.02em}
.fact>div{grid-column:2}
.fact h2{margin:0 0 5px;font-size:.74rem;line-height:1.22;text-transform:uppercase;letter-spacing:.055em}
.fact p{margin:0;color:var(--muted);font-size:.72rem;line-height:1.35}

.intro{background:#eef2f4;border-block:1px solid var(--line)}
.introOverview{padding:106px 0 56px;background:#fff}
.introServicesArea{padding:52px 0 106px;background:#eef2f4;border-top:1px solid var(--line)}
.introTop{display:grid;grid-template-columns:1.08fr .92fr;column-gap:110px;align-items:start}
.introCopy{border-left:1px solid var(--line);padding-left:55px}
.introCopy p{margin:0 0 22px;color:var(--muted);font-size:1.03rem;line-height:1.78}
.introCopy .button{margin-top:10px}
.introAudienceGrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:46px 0 0}
.introAudienceGrid article{display:flex;align-items:flex-start;gap:20px;min-height:164px;padding:28px 30px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--navy);box-shadow:0 12px 28px rgba(3,29,52,.055)}
.introAudienceGrid svg{width:46px;height:46px;padding:10px;flex:none;color:#fff;background:var(--red);stroke-width:1.8}
.introAudienceGrid div{display:flex;flex-direction:column;gap:7px}
.introAudienceGrid strong{color:var(--navy);font-size:.85rem;line-height:1.3;text-transform:uppercase;letter-spacing:.055em}
.introAudienceGrid span{color:var(--muted);font-size:.95rem;line-height:1.68}
.introPhone svg{width:19px;height:19px}
.introServices{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.introServicesHead{margin-bottom:42px}
.introServicesHead .sectionTitle{max-width:760px;font-size:clamp(2.2rem,3.2vw,3.35rem)}
.introServiceCard{display:flex;flex-direction:column;min-width:0;background:#fff;border:1px solid var(--line);border-bottom:4px solid var(--navy);box-shadow:0 16px 38px rgba(3,29,52,.08);transition:transform .25s,box-shadow .25s,border-color .25s}
.introServiceCard:hover{transform:translateY(-6px);border-bottom-color:var(--red);box-shadow:0 24px 48px rgba(3,29,52,.13)}
.introServiceImage{position:relative;display:block;height:205px;overflow:hidden;background:#d5dde2}
.introServiceImage img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.introServiceCard:hover .introServiceImage img{transform:scale(1.04)}
.introServiceBody{display:flex;flex:1;flex-direction:column;padding:28px 27px 26px}
.introServiceBody h3{margin:0 0 13px;color:var(--navy);font-family:Impact,"Arial Narrow",sans-serif;font-size:2.05rem;font-weight:400;line-height:1;text-transform:uppercase;letter-spacing:.035em}
.introServiceBody p{margin:0 0 24px;color:var(--muted);font-size:.92rem;line-height:1.65}
.introServiceBody .textLink{margin-top:auto}

.sectionHead{display:flex;align-items:end;justify-content:space-between;gap:60px;margin-bottom:54px}
.sectionHead>p{max-width:430px;margin:0;color:var(--muted);font-size:1rem;line-height:1.7}
.serviceDirectory{scroll-margin-top:105px;background:#fff}
.serviceDirectory.section{padding:72px 0}
.serviceDirectoryAlt{background:var(--paper)}
.serviceDirectoryGrid{display:grid;grid-template-columns:.7fr 1.3fr;gap:0;align-items:stretch;min-height:720px;background:#fff;border:1px solid var(--line);box-shadow:0 24px 60px rgba(3,29,52,.09);overflow:hidden}
.serviceDirectoryVisual{position:relative;min-height:100%;overflow:hidden;background:#d7e0e5}
.serviceDirectoryVisual:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(3,29,52,.04) 40%,rgba(3,29,52,.78) 100%)}
.serviceDirectoryVisual:after{content:"";position:absolute;left:0;top:0;z-index:2;width:7px;height:112px;background:var(--red)}
.serviceDirectoryVisual img{width:100%;height:100%;object-fit:cover;transition:transform .45s}
.serviceDirectoryGrid:hover .serviceDirectoryVisual img{transform:scale(1.025)}
.serviceDirectoryAlt .serviceDirectoryVisual{order:2}
.serviceBadge{position:absolute;left:27px;bottom:27px;z-index:3;display:flex;align-items:center;gap:14px;min-width:220px;padding:13px 18px 13px 13px;background:rgba(3,29,52,.9);color:#fff;border:1px solid rgba(255,255,255,.24);box-shadow:0 16px 30px rgba(0,0,0,.2);backdrop-filter:blur(8px)}
.serviceBadge>span{display:grid;place-items:center;width:48px;height:48px;flex:none;background:var(--red)}
.serviceBadge svg{width:25px;height:25px;stroke-width:1.8}
.serviceBadge div{display:flex;flex-direction:column;gap:3px}
.serviceBadge small{color:#bcd0de;font-size:.63rem;font-weight:900;letter-spacing:.15em;text-transform:uppercase}
.serviceBadge strong{font-family:Impact,"Arial Narrow",sans-serif;font-size:1.45rem;font-weight:400;line-height:1;text-transform:uppercase;letter-spacing:.05em}
.serviceDirectoryContent{display:flex;min-width:0;flex-direction:column;padding:42px 44px 36px}
.serviceDirectoryLead{max-width:680px;margin:20px 0 24px;color:var(--muted);font-size:1rem;line-height:1.68}
.serviceColumns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:26px;border-block:1px solid var(--line)}
.serviceColumns ul{display:grid;align-content:start;margin:0;padding:16px 24px 16px 0;list-style:none}
.serviceColumns ul+ul{padding-left:27px;border-left:1px solid var(--line)}
.serviceColumns li{display:flex;align-items:flex-start;gap:10px;min-height:36px;padding:7px 0;border-bottom:1px solid #edf1f3;color:#29465c;font-size:.88rem;font-weight:700;line-height:1.35}
.serviceColumns li:last-child{border-bottom:0}
.serviceColumns li svg{width:15px;height:15px;margin-top:1px;flex:none;color:var(--red);stroke-width:3}
.serviceDirectoryCta{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-top:auto;padding-top:26px;border-top:1px solid var(--line)}
.serviceDirectoryCta p{display:flex;flex-direction:column;gap:5px;max-width:265px;margin:0}
.serviceDirectoryCta strong{color:var(--navy);font-size:.82rem;line-height:1.35;text-transform:uppercase;letter-spacing:.04em}
.serviceDirectoryCta span{color:var(--muted);font-size:.77rem;line-height:1.45}
.serviceDirectoryCta .button{min-height:52px;padding-inline:20px;white-space:nowrap;font-size:.76rem}

.offers{background:#edf2f5;position:relative;overflow:hidden}
.offers:before{content:"";position:absolute;left:0;right:0;top:0;height:7px;background:linear-gradient(90deg,var(--navy) 0 72%,var(--red) 72%)}
.offersHead{margin-bottom:52px}
.offersHead>p:last-child{max-width:620px;margin:22px auto 0;color:var(--muted);font-size:1rem;line-height:1.7}
.couponGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.couponCard{position:relative;display:flex;flex-direction:column;min-height:440px;padding:38px 35px 31px;background:#f7f9fa;border:1px solid var(--line);border-top:5px solid var(--navy);overflow:hidden}
.couponCard:before,.couponCard:after{content:"";position:absolute;top:50%;width:24px;height:24px;border-radius:50%;background:#edf2f5;border:1px solid var(--line)}
.couponCard:before{left:-13px}.couponCard:after{right:-13px}
.couponFeatured{background:var(--navy);border-color:var(--navy);border-top-color:var(--red);color:#fff;box-shadow:0 22px 48px rgba(3,29,52,.18)}
.couponFeatured:before,.couponFeatured:after{border-color:#fff}
.couponIcon{position:absolute;right:28px;top:28px;display:grid;place-items:center;width:52px;height:52px;background:var(--red);color:#fff;border-radius:50%}
.couponIcon svg{width:27px;height:27px}
.couponKicker{margin:0 0 32px;color:var(--red);font-size:.74rem;font-weight:900;letter-spacing:.17em}
.couponFeatured .couponKicker{color:#ff6568}
.couponValue{display:flex;align-items:flex-end;gap:12px;line-height:.82}
.couponValue strong{font-family:Impact,"Arial Narrow",sans-serif;font-size:6.4rem;font-weight:400;letter-spacing:-.025em}
.couponValue span{padding-bottom:8px;font-family:Impact,"Arial Narrow",sans-serif;font-size:2.4rem;letter-spacing:.04em}
.couponName{min-height:110px;font-family:Impact,"Arial Narrow",sans-serif;font-size:3.35rem;line-height:.9;letter-spacing:.02em;text-transform:uppercase;color:var(--navy)}
.couponCard h3{margin:17px 0 0;font-family:Impact,"Arial Narrow",sans-serif;font-size:2rem;font-weight:400;letter-spacing:.09em;text-transform:uppercase;color:var(--red)}
.couponTerms{margin:auto 0 24px;padding-top:28px;color:var(--muted);font-size:.8rem;line-height:1.55;border-top:1px dashed #bcc7ce}
.couponFeatured .couponTerms{color:#bdd0dd;border-top-color:rgba(255,255,255,.28)}
.couponCard>a{display:flex;align-items:center;justify-content:space-between;font-size:.76rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--navy)}
.couponFeatured>a{color:#fff}.couponCard>a svg{width:18px;color:var(--red)}

.emergencySection{position:relative;isolation:isolate;min-height:720px;overflow:hidden;background:var(--navy-2);color:#fff}
.emergencySection:after{content:"24/7";position:absolute;left:-18px;bottom:-70px;z-index:-1;color:rgba(255,255,255,.035);font-family:Impact,"Arial Narrow",sans-serif;font-size:15rem;line-height:1;letter-spacing:.02em}
.emergencyInner{min-height:720px;padding-block:100px}
.emergencyTop{display:grid;grid-template-columns:1.07fr .93fr;gap:72px;align-items:stretch}
.emergencyCopy{width:auto}
.emergencyCopy>.sectionTitle{max-width:700px;font-size:clamp(3.1rem,4.6vw,5rem)}
.emergencyCopy>p:not(.eyebrow){max-width:670px;margin:24px 0 0;color:#cad9e3;font-size:1rem;line-height:1.72}
.emergencyCopy>p strong{color:#fff}
.emergencyCopy ul{display:grid;grid-template-columns:1fr 1fr;gap:14px 28px;max-width:650px;margin:30px 0 34px;padding:24px 0;border-block:1px solid rgba(255,255,255,.17);list-style:none}
.emergencyCopy li{display:flex;align-items:center;gap:10px;color:#eff6fa;font-size:.87rem;font-weight:800}
.emergencyCopy li svg{width:17px;height:17px;color:#ff5558;stroke-width:3}
.emergencyActions{display:flex;flex-wrap:wrap;gap:12px}
.emergencyVisual{position:relative;min-height:620px;margin:0;overflow:hidden;background:#183d58;border:1px solid rgba(255,255,255,.15);box-shadow:0 28px 60px rgba(0,0,0,.24)}
.emergencyVisual:before{content:"";position:absolute;left:-1px;top:-1px;z-index:2;width:96px;height:96px;border-left:5px solid var(--red);border-top:5px solid var(--red)}
.emergencyVisual img{width:100%;height:100%;object-fit:cover;object-position:center}
.leakGuide{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:58px}
.leakGuide article{position:relative;padding:30px 28px 27px;background:rgba(3,29,52,.9);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(8px)}
.leakGuide article>span{position:absolute;right:22px;top:18px;color:rgba(255,255,255,.18);font-family:Impact,"Arial Narrow",sans-serif;font-size:3rem;line-height:1}
.leakGuide h3{position:relative;margin:0 0 20px;padding-bottom:16px;color:#fff;font-family:Impact,"Arial Narrow",sans-serif;font-size:1.55rem;font-weight:400;line-height:1.08;letter-spacing:.035em;text-transform:uppercase}
.leakGuide h3:after{content:"";position:absolute;left:0;bottom:0;width:34px;height:3px;background:var(--red)}
.leakGuide ul{display:grid;gap:12px;margin:0;padding:0;list-style:none}
.leakGuide li{display:flex;align-items:flex-start;gap:9px;color:#cbd9e2;font-size:.82rem;line-height:1.45}
.leakGuide li svg{width:15px;height:15px;margin-top:2px;flex:none;color:#ff5558;stroke-width:3}

.whyGrid{display:grid;grid-template-columns:.86fr 1.14fr;gap:75px;align-items:stretch}
.whyVisual{position:relative;min-height:780px;background:#dce3e7}
.whyVisual:before{content:"";position:absolute;left:-18px;top:-18px;width:105px;height:105px;border-left:4px solid var(--red);border-top:4px solid var(--red);z-index:2}
.whyVisual img{width:100%;height:100%;object-fit:cover}
.experienceStamp{position:absolute;right:-34px;bottom:37px;display:flex;align-items:center;gap:13px;width:235px;padding:20px 24px;background:var(--navy);color:#fff;border-left:5px solid var(--red);box-shadow:0 16px 30px rgba(3,29,52,.2)}
.experienceStamp strong{font-family:Impact,"Arial Narrow",sans-serif;font-size:3.7rem;font-weight:400;line-height:1}
.experienceStamp span{font-size:.72rem;font-weight:900;letter-spacing:.1em;line-height:1.45}
.whyLead{margin:25px 0 32px;color:var(--muted);font-size:1.02rem;line-height:1.72}
.benefitGrid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.benefitGrid article{position:relative;padding:21px 20px 19px 44px;border-bottom:1px solid var(--line)}
.benefitGrid article:nth-child(even){padding-left:64px;border-left:1px solid var(--line)}
.benefitGrid svg{position:absolute;left:0;top:22px;width:26px;height:26px;color:var(--red)}
.benefitGrid article:nth-child(even) svg{left:22px}
.benefitGrid h3{margin:0 0 7px;font-size:.82rem;line-height:1.35;text-transform:uppercase;letter-spacing:.04em}
.benefitGrid p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.5}

.projects{background:var(--navy-2);color:#fff}
.sectionHead.compact>p{color:#b9cbd8}
.projectGrid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:245px;gap:10px}
.project{position:relative;margin:0;overflow:hidden;background:#183b56}
.project.featured{grid-column:span 2}
.project img{width:100%;height:100%;object-fit:cover;transition:transform .45s,filter .3s}
.project:hover img{transform:scale(1.04);filter:brightness(.72)}
.project:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(3,20,35,.86))}
.project figcaption{position:absolute;left:20px;right:20px;bottom:18px;z-index:2;display:flex;align-items:center;gap:11px;font-size:.77rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase; color: #fff}
.project figcaption span{color:#ff4b4e}

.process{background:#fff}
.centerHead{text-align:center;margin-bottom:60px}
.centerHead .eyebrow{justify-content:center}
.centerHead .sectionTitle{margin-inline:auto}
.processGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:48px;counter-reset:steps}
.processGrid article{position:relative;padding:38px 30px 0;border-top:3px solid var(--navy)}
.processGrid article:after{content:"";position:absolute;top:-5px;left:0;width:32%;height:7px;background:var(--red)}
.processGrid span{position:absolute;right:15px;top:15px;font-family:Impact,"Arial Narrow",sans-serif;font-size:5rem;color:#eef2f4;line-height:1}
.processGrid h3{position:relative;margin:0 0 15px;font-family:Impact,"Arial Narrow",sans-serif;font-size:1.65rem;font-weight:400;text-transform:uppercase;letter-spacing:.03em}
.processGrid p{position:relative;margin:0;color:var(--muted);font-size:.95rem;line-height:1.7}

.reviews{background:var(--paper)}
.reviewHeading{margin-bottom:42px}
.reviewHeading .sectionTitle{max-width:900px}
.reviewProofGrid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:38px;border-block:1px solid var(--line)}
.reviewProofGrid article{position:relative;display:grid;grid-template-columns:42px auto;grid-template-rows:auto auto;align-items:center;column-gap:14px;min-height:105px;padding:20px 22px}
.reviewProofGrid article+article{border-left:1px solid var(--line)}
.reviewProofGrid svg{grid-row:1/3;width:38px;height:38px;padding:9px;color:var(--red);background:#fff;border:1px solid var(--line)}
.reviewProofGrid article:first-child svg{color:#f6b51d}
.reviewProofGrid strong{font-family:Impact,"Arial Narrow",sans-serif;color:var(--navy);font-size:2.1rem;font-weight:400;line-height:1}
.reviewProofGrid span{color:var(--muted);font-size:.7rem;font-weight:800;line-height:1.35;text-transform:uppercase;letter-spacing:.04em}
.reviewGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.reviewCard{display:flex;flex-direction:column;min-height:310px;padding:31px;background:#fff;border:1px solid var(--line);box-shadow:0 15px 34px rgba(3,29,52,.055)}
.reviewTop{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}
.stars{display:flex;gap:3px;color:#f6b51d}
.stars svg{width:16px;height:16px}
.reviewTop>svg{width:35px;height:35px;color:#dce4e8}
.reviewCard blockquote{margin:0;color:#334c60;font-size:1rem;line-height:1.75}
.reviewCard footer{display:flex;flex-direction:column;gap:5px;margin-top:auto;padding-top:24px;border-top:1px solid var(--line)}
.reviewCard footer strong{font-size:.9rem;text-transform:uppercase;letter-spacing:.05em}
.reviewCard footer span{color:var(--red);font-size:.73rem;font-weight:800;text-transform:uppercase}
.reviewActions{display:flex;justify-content:center;gap:13px;margin-top:38px}

.faq{position:relative;background:var(--navy-2);color:#fff;overflow:hidden}
.faq:before{content:"FAQ";position:absolute;left:-18px;top:24px;color:rgba(255,255,255,.05);font-family:Impact,"Arial Narrow",sans-serif;font-size:17rem;line-height:.8;letter-spacing:.04em}
.faqGrid{position:relative;z-index:1;display:grid;grid-template-columns:.74fr 1.26fr;gap:90px;align-items:start}
.faqIntro{position:sticky;top:125px;margin-top:-18px}
.faqIntro>p:not(.eyebrow){max-width:470px;margin:24px 0 31px;color:#bacbd7;font-size:1rem;line-height:1.72}
.faqAccordion{background:#fff;color:var(--ink);border-top:5px solid var(--red);box-shadow:0 24px 55px rgba(0,0,0,.2)}
.faqAccordion [data-slot="accordion-item"]{border-color:#e2e8ec}
.faqAccordion [data-slot="accordion-trigger"]{padding:23px 26px;border-radius:0;color:var(--navy);font-size:.96rem;font-weight:800;line-height:1.45;text-decoration:none}
.faqAccordion [data-slot="accordion-trigger"]:hover{text-decoration:none;color:var(--red)}
.faqAccordion [data-slot="accordion-trigger"] svg{width:20px;height:20px;color:var(--red)}
.faqAccordion [data-slot="accordion-content"]>div{padding:0 58px 23px 26px}
.faqAccordion [data-slot="accordion-content"] p{margin:0;color:var(--muted);font-size:.91rem;line-height:1.7}

.areas{position:relative;background:#f4f7f9;color:var(--ink);overflow:hidden;border-top:1px solid var(--line)}
.areas:before{content:"LONG ISLAND";position:absolute;right:-25px;top:20px;font-family:Impact,"Arial Narrow",sans-serif;font-size:12rem;line-height:1;color:rgba(6,42,73,.035);letter-spacing:.03em}
.areaHeader{position:relative;display:grid;grid-template-columns:1.12fr .88fr;gap:90px;align-items:end;margin-bottom:48px}
.areaHeader>p{max-width:520px;margin:0;color:var(--muted);font-size:1rem;line-height:1.72}
.areaMap{position:relative;height:auto;aspect-ratio:1983/793;overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:0 18px 42px rgba(3,29,52,.1)}
.areaMap:before{content:"";position:absolute;left:0;top:0;z-index:2;width:7px;height:112px;background:var(--red)}
.areaMap>img{width:100%;height:100%;object-fit:cover}
.coverageMarker{position:absolute;z-index:3;display:flex;align-items:center;gap:10px;padding:9px 14px 9px 9px;background:#fff;color:var(--navy);border:2px solid var(--red);border-radius:999px;box-shadow:0 10px 25px rgba(3,29,52,.28);pointer-events:none}
.coverageMarker:after{content:"";position:absolute;inset:-11px;border:2px solid rgba(223,24,28,.32);border-radius:999px}
.coverageMarker>span{display:grid;place-items:center;width:34px;height:34px;color:#fff;background:var(--red);border-radius:50%}
.coverageMarker svg{width:18px;height:18px}
.coverageMarker strong{font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}
.markerNassau{left:20%;top:55%}
.markerSuffolk{left:61%;top:34%}
.mapCoverage{position:absolute;left:20px;right:20px;bottom:20px;z-index:3;display:flex;align-items:center;gap:13px;padding:17px 18px;background:rgba(3,29,52,.92);border:1px solid rgba(255,255,255,.2);box-shadow:0 12px 28px rgba(0,0,0,.2);backdrop-filter:blur(8px)}
.mapCoverage>svg{width:26px;height:26px;flex:none;color:#ff4d50}
.mapCoverage div{display:flex;flex-direction:column;gap:3px}
.mapCoverage strong{font-size:.83rem;text-transform:uppercase;letter-spacing:.06em}
.mapCoverage span{color:#bfd0db;font-size:.73rem;line-height:1.35}
.countyGrid {
    position: relative;

    display: grid;
    grid-template-columns: 1fr;

    gap: 30px;

    margin-top: 24px;
}


.countyCoverage {
    width: 100%;
height:500px;
    overflow: auto;

    background: #fff;
    color: var(--ink);

    border-top: 5px solid var(--red);

    box-shadow: 0 22px 48px rgba(0,0,0,.18);
}


/* COUNTY HEADING */

.countyHeading {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    padding: 28px 30px;

    background: #f4f7f9;

    border-bottom: 1px solid var(--line);
}

.countyHeading > div {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.countyHeading small {
    color: var(--red);

    font-size: .64rem;
    font-weight: 900;

    letter-spacing: .14em;
    text-transform: uppercase;
}

.countyHeading h4 {
    margin: 0;

    color: var(--navy);

    font-family: Impact, "Arial Narrow", sans-serif;
    font-size: 2rem;
    font-weight: 400;
    line-height: 1;

    text-transform: uppercase;
    letter-spacing: .035em;
}

.countyHeading > span {
    flex: none;

    padding: 7px 10px;

    color: var(--navy-3);
    background: #e7eef2;

    font-size: .67rem;
    font-weight: 900;

    text-transform: uppercase;
    letter-spacing: .04em;
}


/* TOWN LIST */

.townList {
    padding: 8px 30px 25px;
}


/* INDIVIDUAL TOWN */

.townGroup {
    padding: 23px 0;

    border-bottom: 1px solid var(--line);
}

.townGroup:last-child {
    border-bottom: 0;
}


/* TOWN TITLE */

.townHeading {
    display: flex;
    align-items: center;

    gap: 9px;

    margin-bottom: 15px;
}

.townHeading h5 {
    margin: 0;

    color: var(--navy);

    font-size: .86rem;
    font-weight: 900;
    line-height: 1.3;

    text-transform: uppercase;
    letter-spacing: .035em;
}

.townHeading h5:before {
    content: "";

    display: inline-block;

    width: 0;
    height: 0;

    margin-right: 8px;

    border-top: 5px solid transparent;
    border-bottom: 5px solid transparent;
    border-left: 7px solid var(--navy);
}

.townHeading span {
    color: var(--muted);

    font-size: .62rem;
    font-weight: 800;

    text-transform: uppercase;
    letter-spacing: .04em;
}


/* COMMUNITY LIST */

.townGroup ul {
    display: block;

    margin: 0;
    padding: 0;

    list-style: none;
}


/* EACH COMMUNITY */

.townGroup li {
    position: relative;

    display: inline-block;

    margin: 4px 24px 4px 0;
    padding-left: 18px;

    color: #415a6c;

    font-size: .76rem;
    font-weight: 700;
    line-height: 1.4;

    vertical-align: top;
}


/* CSS CHECKMARK */

.townGroup li:before {
    content: "✓";

    position: absolute;
    left: 0;
    top: 0;

    color: var(--red);

    font-size: .78rem;
    font-weight: 900;
    line-height: 1.4;
}
.countyCoverage{background:#fff;color:var(--ink);border-top:5px solid var(--red);box-shadow:0 22px 48px rgba(0,0,0,.18)}
.countyHeading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:28px 30px;background:#f4f7f9;border-bottom:1px solid var(--line)}
.countyHeading div{display:flex;flex-direction:column;gap:5px}
.countyHeading small{color:var(--red);font-size:.64rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.countyHeading h3{margin:0;color:var(--navy);font-family:Impact,"Arial Narrow",sans-serif;font-size:2rem;font-weight:400;line-height:1;text-transform:uppercase;letter-spacing:.035em}
.countyHeading>span{flex:none;padding:7px 10px;color:var(--navy-3);background:#e7eef2;font-size:.67rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.countyHeading h6 {
    margin: 0;

    color: var(--navy);

    font-family: Impact, "Arial Narrow", sans-serif;
    font-size: 2rem;
    font-weight: 400;
    line-height: 1;

    text-transform: uppercase;
    letter-spacing: .035em;
}
.areaCta{padding:24px 10px 0}
.areaCta>div{display:flex;max-width:500px;flex-direction:column;align-items:flex-start}
.areaCta p{margin:0 0 13px;color:var(--red);font-size:.68rem;font-weight:900;letter-spacing:.15em}
.areaCta h3{max-width:460px;margin:0;color:var(--navy);font-family:Impact,"Arial Narrow",sans-serif;font-size:2.2rem;font-weight:400;line-height:1.06;letter-spacing:.025em;text-transform:uppercase}
.areaCta span{max-width:470px;margin:15px 0 23px;color:var(--muted);font-size:.9rem;line-height:1.65}

.contact{background:var(--navy-2)}
.contactCard{display:grid;grid-template-columns:.82fr 1.18fr;gap:0;align-items:stretch;padding:0;background:#062844;border:1px solid rgba(255,255,255,.14);border-left:6px solid var(--red);box-shadow:0 24px 60px rgba(0,0,0,.24)}
.contactIntro{display:flex;flex-direction:column;justify-content:center;padding:58px 54px;color:#fff}
.contactIntro>p:not(.eyebrow){margin:24px 0 30px;color:#bfd0db;font-size:1rem;line-height:1.75}
.contactPhone{display:flex;align-items:center;gap:17px;padding:20px 22px;background:#fff;border:1px solid var(--line)}
.contactPhone>span{display:grid;place-items:center;width:50px;height:50px;background:var(--navy);color:#fff;border-radius:50%}
.contactPhone svg{width:22px}
.contactPhone div{display:flex;flex-direction:column;gap:4px}
.contactPhone small{color:var(--muted);font-size:.7rem;font-weight:800;letter-spacing:.12em}
.contactPhone strong{font-size:1.3rem;color:var(--navy)}
.estimateForm{display:grid;grid-template-columns:1fr 1fr;gap:20px 18px;padding:48px;background:#fff}
.formField{display:flex;flex-direction:column;gap:9px}
.formWide{grid-column:1/-1}
.formField label{color:var(--navy);font-size:.75rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.formField input,.formField select,.formField textarea{width:100%;min-height:52px;padding:13px 14px;color:var(--ink);background:#f7f9fa;border:1px solid #d7e0e6;border-radius:2px;font:inherit;font-size:.95rem;outline:none;transition:border-color .2s,box-shadow .2s}
.formField textarea{min-height:132px;resize:vertical}
.formField input:focus,.formField select:focus,.formField textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(223,24,28,.1)}
.formSubmit{width:100%;border:0;cursor:pointer}
.formHeading{padding-bottom:19px;border-bottom:1px solid var(--line)}
.formHeading span{display:block;margin-bottom:8px;color:var(--red);font-size:.68rem;font-weight:900;letter-spacing:.16em}
.formHeading h3{margin:0;color:var(--navy);font-family:Impact,"Arial Narrow",sans-serif;font-size:2rem;font-weight:400;line-height:1;text-transform:uppercase;letter-spacing:.03em}

.certifications{background:#f4f7f9;border-block:1px solid var(--line)}
.certificationsGrid{display:grid;gap:38px}
.certificationsCopy{display:grid;grid-template-columns:.92fr 1.08fr;gap:18px 70px;align-items:end}
.certificationsCopy>.eyebrow{grid-column:1/-1}
.certificationsCopy>.sectionTitle{font-size:clamp(2.45rem,3.6vw,3.75rem)}
.certificationsCopy>p:not(.eyebrow){max-width:610px;margin:0;color:var(--muted);font-size:1rem;line-height:1.75}
.certificationsPanel{position:relative;padding:32px 44px 30px;background:#fff;border-top:5px solid var(--red);box-shadow:0 22px 48px rgba(3,29,52,.12)}
.certificationsPanel small{display:block;margin-bottom:17px;color:var(--red);font-size:.65rem;font-weight:900;letter-spacing:.15em}
.certificationsPanel img{display:block;width:100%;height:auto;object-fit:contain;mix-blend-mode:multiply}

.footer{padding:80px 0 26px;background:var(--navy-2);color:#fff}
.footerGrid{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:70px;padding-bottom:55px}
.footerBrand img{width:260px;padding:11px;background:#fff;border-radius:3px}
.footerBrand p{max-width:330px;margin:22px 0 0;color:#aebfca;font-size:.9rem;line-height:1.7}
.footerSocialLinks{display:flex;gap:9px;margin-top:22px}
.footerSocialLinks a{display:grid;width:38px;height:38px;place-items:center;border:1px solid rgba(255,255,255,.25);border-radius:50%;transition:background .2s,border-color .2s}
.footerSocialLinks a:hover{background:var(--red);border-color:var(--red)}
.footerSocialLinks img{width:16px;height:16px;padding:0;background:transparent;border-radius:0;object-fit:contain}
.footer h2{margin:0 0 21px;color:#fff;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}
.footerGrid>div:not(.footerBrand){display:flex;flex-direction:column;align-items:flex-start;gap:13px}
.footerGrid a,.footerGrid span{color:#adbec9;font-size:.85rem}
.footerGrid a:hover{color:#fff}
.footerGrid strong{color:#ff4c4f;font-size:.77rem;letter-spacing:.08em;text-transform:uppercase}
.footerBottom{display:flex;justify-content:space-between;gap:24px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12);color:#7f96a5;font-size:.74rem}
.footerBottom a{color:#fff;font-weight:800}
.footerBottom a:hover{color:#ff6265}
.floatingCall{display:none}
.footerBottom h1 {color:#7f96a5;font-size:.74rem; font-weight: 100; padding: 0; margin: 0}
@media(max-width:560px){
    .footerBottom {padding-bottom:100px; } 
}
@media(max-width:1120px){
  .mobileMenu summary{display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--line);cursor:pointer;list-style:none}.mobileMenu summary::-webkit-details-marker{display:none}.mobileMenu nav{position:absolute;right:0;top:58px;width:250px;padding:10px;background:#fff;border:1px solid var(--line);box-shadow:0 20px 40px rgba(3,29,52,.15)}.mobileMenu nav a{display:block;padding:13px 14px;border-bottom:1px solid #edf0f2;font-size:.78rem;font-weight:800;text-transform:uppercase}.fact{padding-inline:14px}.fact>strong{font-size:1.65rem}.fact h2{font-size:.7rem}.introGrid,.whyGrid,.areaGrid{gap:55px}.heroCopy{width:62%}.introServices{grid-template-columns:1fr 1fr}.emergencyTop{gap:42px}.serviceDirectoryContent{padding-inline:38px}.serviceColumns ul{padding-right:16px}.serviceColumns ul+ul{padding-left:18px}.serviceDirectoryCta{align-items:stretch;flex-direction:column}.serviceDirectoryCta p{max-width:none}.serviceDirectoryCta .button{width:100%}
}
@media(max-width:860px){
  .section{padding:82px 0}.shell{width:min(100% - 32px,720px)}.utilityMeta{display:none}.desktopNav a{text-transform: none}.hero{height:650px;min-height:0}.heroShade{background:linear-gradient(90deg,rgba(3,25,45,.94),rgba(3,25,45,.69) 70%,rgba(3,25,45,.25))}.heroCopy{width:82%}.heroCopy h1{font-size:clamp(4rem,11vw,6.2rem)}.heroSideLabel{display:none}.factGrid{grid-template-columns:1fr 1fr}.fact:nth-child(3):before{display:none}.fact:nth-child(n+3){border-top:1px solid var(--line)}.introGrid,.whyGrid,.areaGrid,.contactCard{grid-template-columns:1fr}.introGrid{gap:35px}.introCopy{padding-left:0;border-left:0}.introServices{margin-top:12px}.sectionHead{display:block}.sectionHead>p{margin-top:22px}.reviewGrid{grid-template-columns:1fr}.emergencySection,.emergencyInner{min-height:0}.emergencyTop{grid-template-columns:1fr}.emergencyCopy{width:100%}.emergencyInner{padding-block:88px}.emergencyVisual{min-height:460px}.leakGuide{grid-template-columns:1fr}.serviceDirectoryGrid{grid-template-columns:1fr;gap:0;min-height:0}.serviceDirectoryVisual,.serviceDirectoryAlt .serviceDirectoryVisual{order:0;min-height:410px}.serviceDirectoryContent{padding:42px 40px 36px}.whyVisual{min-height:520px;width:90%}.whyVisual img{height:520px}.benefitGrid{max-width:680px}.projectGrid{grid-template-columns:1fr 1fr}.project.featured{grid-column:span 1}.processGrid{grid-template-columns:1fr;gap:35px}.processGrid article{padding-bottom:10px}.reviewCard{min-height:300px}.contactCard{gap:35px;padding:44px}.footerGrid{grid-template-columns:1.5fr 1fr 1fr}.footerGrid>div:last-child{grid-column:2/4}.footerBottom{gap:20px}
}
@media(max-width:560px){
  .shell{width:calc(100% - 28px)}.section{padding:68px 0}.sectionTitle{font-size:2.75rem}.utilityBar{height:42px}.utilityInner{font-size:.7rem}.utilityInner p strong{display:none}.utilityInner a{font-size:.76rem}.siteHeader{top:0}.headerInner{height:80px}.brand{width:160px}.headerCta{display:none}.mobileMenu summary{width:42px;height:42px}.hero{height:610px}.heroImage{object-position:63% center}.heroShade{background:linear-gradient(90deg,rgba(3,25,45,.93),rgba(3,25,45,.66) 100%)}.heroCopy{width:100%;padding-top:40px}.heroCopy h1{font-size:4.05rem}.heroLead{font-size:1rem;line-height:1.58}.heroActions{align-items:stretch;flex-direction:column}.heroActions .button{width:100%}.heroTrust{flex-wrap:wrap}.heroTrust i{display:none}.factGrid{grid-template-columns:1fr}.fact+.fact:before{display:none}.fact:nth-child(n+2){border-top:1px solid var(--line)}.fact{min-height:88px}.introGrid{gap:28px}.introServices{grid-template-columns:1fr}.introServiceImage{height:190px}.emergencyInner{padding-block:70px}.emergencyCopy>.sectionTitle{font-size:2.9rem}.emergencyCopy ul{grid-template-columns:1fr}.emergencyActions{flex-direction:column}.emergencyActions .button{width:100%;margin:0}.emergencyVisual{min-height:340px}.leakGuide{margin-top:42px}.leakGuide article{padding:26px 22px}.serviceDirectoryVisual{min-height:310px}.serviceBadge{left:18px;bottom:18px;min-width:205px}.serviceDirectoryContent{padding:34px 24px 28px}.serviceColumns{grid-template-columns:1fr}.serviceColumns ul{padding-right:0}.serviceColumns ul+ul{padding-left:0;border-left:0;border-top:1px solid var(--line)}.serviceDirectoryCta{align-items:stretch;flex-direction:column}.serviceDirectoryCta p{max-width:none}.serviceDirectoryCta .button{width:100%}.whyVisual{width:calc(100% - 18px);min-height:430px}.whyVisual img{height:430px}.experienceStamp{right:-18px;width:205px}.benefitGrid{grid-template-columns:1fr}.benefitGrid article:nth-child(even){padding-left:0;border-left:0}.projectGrid{grid-template-columns:1fr;grid-auto-rows:230px}.processGrid article{padding-inline:20px}.reviewCard{padding:26px}.areaGrid{gap:42px}.areas:before{font-size:7rem}.countyList article{padding:24px 22px}.contactCard{padding:34px 25px;border-left-width:4px}.footerGrid{grid-template-columns:1fr 1fr;gap:38px}.footerBrand{grid-column:1/3}.footerGrid>div:last-child{grid-column:1/3}.footerBottom{flex-direction:column}
    
.floatingCall {
    position: fixed;
    left: 50%;
    right: auto;
    bottom: 12px;
    transform: translateX(-50%);

    width: 90%;
    max-width: 380px;
    height: 52px;

    z-index: 60;

    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;

    padding: 0 15px;

    background: var(--red);
    color: #fff;
    border-radius: 3px;
    box-shadow: 0 15px 30px rgba(81,0,3,.28);

    font-size: .85rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.floatingCall svg {
    width: 18px;
    height: 18px;
    flex: none;
}
}

@media (max-width: 400px) {

    .floatingCall {
        width: 86%;
        height: 48px;
        padding: 0 12px;
        font-size: .78rem;
    }

    .floatingCall svg {
        width: 16px;
        height: 16px;
    }

}

@media (max-width: 340px) {

    .floatingCall {
        width: 84%;
        height: 46px;
        font-size: .74rem;
        letter-spacing: .04em;
    }

}
@media(min-width:861px){
  .serviceDirectoryGrid{grid-template-columns:minmax(310px,.66fr) 1.34fr;align-items:stretch}
  .serviceDirectoryAlt .serviceDirectoryGrid{grid-template-columns:1.34fr minmax(310px,.66fr)}
  .serviceDirectoryVisual{height:auto;min-height:100%}
  .serviceDirectoryContent{min-width:0}
}
@media(min-width:1121px){.serviceDirectoryGrid{height:760px;min-height:760px}}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

@media(max-width:860px){.couponGrid{grid-template-columns:1fr 1fr}.couponFeatured{grid-column:1/3}}
@media(max-width:560px){.couponGrid{grid-template-columns:1fr}.couponFeatured{grid-column:auto}.couponCard{min-height:400px;padding:32px 26px}.couponName{font-size:3rem}}

/* Bright architectural redesign */
:root{--paper:#f6f8f9;--line:#d9e2e7;--ink:#173247;--muted:#607384}
body{background:#f8fafb}
.section{padding:106px 0}
.sectionTitle,.heroCopy h1{font-family:Arial,Helvetica,sans-serif;font-weight:800;line-height:1.02;letter-spacing:-.045em;text-transform:none;text-wrap:balance}
.sectionTitle{font-size:clamp(2.55rem,4.2vw,4.35rem)}
.sectionTitle.light{color:var(--navy)}
.eyebrowLight{color:var(--navy-3)}
.button{border-radius:999px}
.buttonGhost{border:1px solid var(--navy);color:var(--navy);background:#fff;backdrop-filter:none}
.buttonGhost:hover{background:var(--navy);color:#fff}
.buttonOutline{background:transparent}

.utilityBar{height:48px;background:#f2f6f8;color:var(--navy);border-bottom:1px solid var(--line)}
.utilityInner svg{color:var(--red)}
.utilityPhone{border-left-color:var(--line)}
.socialLinks a{background:var(--navy);border-color:var(--navy)}
.siteHeader{background:rgba(255,255,255);box-shadow:0 8px 30px rgba(3,29,52,.04)}


.hero{height:auto;min-height:720px;background:#eef3f6;border-bottom:1px solid var(--line)}
.heroImage{inset:42px max(24px,calc((100vw - 1240px)/2)) 42px auto;z-index:0;width:min(46%,610px);height:calc(100% - 84px);border-radius:28px;box-shadow:0 28px 65px rgba(3,29,52,.18);object-position:center}
.heroShade{display:none}
.heroInner{position:relative;z-index:1;min-height:720px;height:auto;padding:70px 0}
.heroCopy{width:49%;color:var(--ink)}
.heroCopy h1{color:var(--navy);font-size:clamp(3.8rem,5.1vw,5.65rem)}
.heroLead{color:var(--muted)}
.googleRating{background:#fff;color:var(--muted);border-color:var(--line);box-shadow:0 10px 28px rgba(3,29,52,.07);backdrop-filter:none}
.googleRating strong{color:var(--navy)}
.heroTrust{color:var(--navy)}
.heroZigzag{display:none}

.factStrip{padding:24px 0;background:#f8fafb;border-bottom:1px solid var(--line)}
.factGrid{gap:12px}
.fact{min-height:112px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 10px 26px rgba(3,29,52,.045)}
.fact+.fact:before{display:none}
.fact>svg{border-radius:50%;background:#f8fafb}

.intro,.serviceDirectory,.serviceDirectoryAlt,.why,.process{background:#f8fafb;border:0}
.introTop{column-gap:90px}
.introAudienceGrid article,.introServiceCard{border-radius:18px;overflow:hidden;border-color:#dfe6ea;box-shadow:0 14px 35px rgba(3,29,52,.065)}
.introAudienceGrid article{border-left:1px solid var(--line)}
.introAudienceGrid svg{border-radius:12px}
.introServiceCard{border-bottom:1px solid var(--line)}
.introServiceImage{height:225px}

.emergencySection{min-height:0;background:#eef3f6;color:var(--ink);border-block:1px solid var(--line)}
.emergencySection:after{color:rgba(6,42,73,.035)}
.emergencyInner{min-height:0;padding-block:106px}
.emergencyCopy>.sectionTitle{color:var(--navy)}
.emergencyCopy>p:not(.eyebrow){color:var(--muted)}
.emergencyCopy>p strong{color:var(--navy)}
.emergencyCopy ul{border-color:var(--line)}
.emergencyCopy li{color:var(--ink)}
.emergencyVisual{min-height:610px;border:0;border-radius:24px;box-shadow:0 25px 55px rgba(3,29,52,.13)}
.emergencyVisual:before{border-width:0}
.leakGuide{gap:18px}
.leakGuide article{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 14px 34px rgba(3,29,52,.055);backdrop-filter:none}
.leakGuide article>span{color:#e7edf0}
.leakGuide h3{color:var(--navy)}
.leakGuide li{color:var(--muted)}

.serviceDirectories{background:#f8fafb}
.serviceDirectoryGrid{border:1px solid #dbe4e9;border-radius:24px;box-shadow:0 18px 48px rgba(3,29,52,.075)}
.serviceDirectoryVisual:after{display:none}
.serviceBadge{background:rgba(255,255,255,.94);color:var(--navy);border-color:rgba(255,255,255,.85);border-radius:14px;box-shadow:0 14px 34px rgba(3,29,52,.18)}
.serviceBadge>span{border-radius:10px}
.serviceBadge small{color:var(--muted)}
.serviceBadge strong{font-family:Arial,Helvetica,sans-serif;font-weight:800;text-transform:none;letter-spacing:-.02em}
.serviceDirectoryContent{background:#fff}

.offers{background:#f1f5f7;border-block:1px solid var(--line)}
.offers:before{display:none}
.couponCard,.couponFeatured{background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:20px;box-shadow:0 14px 34px rgba(3,29,52,.06)}
.couponFeatured{border-top:5px solid var(--red);box-shadow:0 22px 48px rgba(3,29,52,.1)}
.couponCard:before,.couponCard:after{display:none}
.couponFeatured .couponKicker{color:var(--red)}
.couponFeatured .couponTerms{color:var(--muted);border-top-color:#bcc7ce}
.couponFeatured>a{color:var(--navy)}
.couponValue,.couponName{color:var(--navy)}

.whyVisual{min-height:730px;border-radius:24px;overflow:hidden;box-shadow:0 24px 55px rgba(3,29,52,.12)}
.whyVisual:before{display:none}
.experienceStamp{right:24px;bottom:24px;background:rgba(255,255,255,.95);color:var(--navy);border-left:5px solid var(--red);border-radius:14px;box-shadow:0 14px 34px rgba(3,29,52,.16)}
.experienceStamp strong{font-family:Arial,Helvetica,sans-serif;font-weight:800;letter-spacing:-.06em}

.projects{background:#eef3f6;color:var(--ink);border-block:1px solid var(--line)}
.projects .sectionTitle.light{color:var(--navy)}
.projects .eyebrowLight{color:var(--navy-3)}
.sectionHead.compact>p{color:var(--muted)}
.projectGrid{gap:16px}
.project{border-radius:16px;background:#dce4e8;box-shadow:0 14px 34px rgba(3,29,52,.1)}

.processGrid{gap:22px}
.processGrid article{padding:34px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 14px 32px rgba(3,29,52,.05)}
.processGrid article:after{display:none}
.processGrid span{right:24px;top:22px;color:#eaf0f3}
.processGrid h3{font-family:Arial,Helvetica,sans-serif;font-weight:800;text-transform:none;letter-spacing:-.02em}

.reviews{background:#f3f6f8;border-block:1px solid var(--line)}
.reviewProofGrid{gap:12px;border:0}
.reviewProofGrid article{background:#fff;border:1px solid var(--line)!important;border-radius:14px}
.reviewProofGrid svg{border-radius:50%}
.reviewGrid{gap:16px}
.reviewCard{border-radius:18px;box-shadow:0 14px 34px rgba(3,29,52,.05)}

.faq{background:#eef3f6;color:var(--ink);border-block:1px solid var(--line)}
.faq:before{color:rgba(6,42,73,.035)}
.faqIntro>p:not(.eyebrow){color:var(--muted)}
.faqAccordion{border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 18px 46px rgba(3,29,52,.08)}

.areas{background:#f8fafb;border-top:0}
.areaMap{border-radius:22px;box-shadow:0 18px 42px rgba(3,29,52,.075)}
.areaMap:before{display:none}
.countyCoverage{border:1px solid var(--line);border-radius:18px;box-shadow:0 16px 38px rgba(3,29,52,.07)}
.countyHeading{background:#f7f9fa}

.contact{background:#eef3f6;border-block:1px solid var(--line)}
.contactCard{background:#fff;border:1px solid var(--line);border-radius:24px;overflow:hidden;box-shadow:0 22px 55px rgba(3,29,52,.09)}
.contactIntro{background:#fff;color:var(--ink)}
.contactIntro .sectionTitle.light{color:var(--navy)}
.contactIntro>p:not(.eyebrow){color:var(--muted)}
.contactPhone{border-radius:16px;background:#f7f9fa}
.estimateForm{background:#f7f9fa;border-left:1px solid var(--line)}
.formField input,.formField select,.formField textarea{background:#fff;border-radius:10px}

.d-none {display: none}

.certifications{background:#f8fafb;border-block:0}
.certificationsPanel{border:1px solid var(--line);border-radius:20px;box-shadow:0 16px 40px rgba(3,29,52,.07)}

.footer{background:#e8eef2;color:var(--ink);border-top:1px solid var(--line)}
.footerBrand img{box-shadow:0 10px 28px rgba(3,29,52,.07)}
.footerBrand p,.footerGrid a,.footerGrid span{color:var(--muted)}
.footer h2{color:var(--navy)}
.footerGrid a:hover{color:var(--red)}
.footerSocialLinks a{background:var(--navy);border-color:var(--navy)}
.footerGrid strong{color:var(--red)}
.footerBottom{border-top-color:#ccd8df;color:#728493}
.footerBottom a{color:var(--navy)}

@media(max-width:1120px){
  .heroImage{right:24px;width:47%}
  .heroCopy{width:50%}
}
@media(max-width:860px){
  .section{padding:82px 0}
  .hero{min-height:890px}
  .heroImage{inset:auto 16px 34px;width:calc(100% - 32px);height:310px;border-radius:22px}
  .heroInner{min-height:890px;align-items:flex-start;padding:62px 0 380px}
  .heroCopy{width:100%}
  .heroCopy h1{font-size:clamp(3.65rem,10vw,5rem)}
  .emergencyInner{padding-block:82px}
  .whyVisual{min-height:520px}
  .contactCard{gap:0;padding:0}
  .estimateForm{border-top:1px solid var(--line);border-left:0}
}
@media(max-width:560px){
  .section{padding:68px 0}
  .sectionTitle{font-size:2.55rem}
  .hero{min-height:900px}
  .heroImage{bottom:24px;height:285px;border-radius:18px}
  .heroInner{min-height:900px;padding:48px 0 340px}
  .heroCopy h1{font-size:3.45rem}
  .googleRating{align-items:flex-start;border-radius:16px}
  .fact{border-radius:14px}
  .emergencyVisual{border-radius:18px}
  .leakGuide article,.serviceDirectoryGrid,.couponCard,.reviewCard,.faqAccordion,.contactCard,.certificationsPanel{border-radius:16px}
  .whyVisual{width:100%;min-height:430px;border-radius:18px}
  .experienceStamp{right:14px;bottom:14px;width:195px}
  .project{border-radius:12px}
  .contactIntro{padding:40px 26px}
}

@media(max-width:860px){
  .utilityInner{gap:18px}
  .hero{height:720px;min-height:720px}
  .heroInner{padding:72px 0 92px}
  .heroCopy h1{font-size:clamp(3.7rem,9vw,5.25rem)}
  .googleRating{max-width:100%;flex-wrap:wrap;border-radius:18px}
  .heroTrust{flex-wrap:wrap;gap:12px 22px}
}
@media(max-width:560px){
  .utilityBar{height:43px}
  .utilityInner{gap:9px;font-size:.61rem;letter-spacing:0}
  .utilityLeft{gap:8px}
  .utilityInner p,.utilityInner a{gap:5px}
  .utilityInner .emergencyLabel strong{display:inline;font-size:.6rem;letter-spacing:.025em}
  .emergencyLabel svg{display:none}
  .utilityInner .utilityPhone{padding-left:8px;font-size:.66rem}
  .utilityPhone svg{width:13px;height:13px}
  .socialLinks{gap:4px}
  .socialLinks a{display:grid;width:25px;height:25px}
  .socialLinks a img{width:12px;height:12px}
  .hero{height:auto;min-height:760px}
  .heroInner{padding:72px 0 82px}
  .heroCopy{padding-top:0}
  .heroCopy h1{font-size:3.45rem;line-height:.93}
  .heroLead{margin:21px 0 18px;font-size:.96rem}
  .googleRating{gap:8px;margin-bottom:20px;padding:9px 12px;font-size:.73rem}
  .heroTrust{margin-top:22px;font-size:.75rem}
}

@media(max-width:1120px){
  .reviewGrid{grid-template-columns:1fr 1fr}
  .reviewProofGrid{grid-template-columns:1fr 1fr}
  .reviewProofGrid article:nth-child(3){border-left:0;border-top:1px solid var(--line)}
  .reviewProofGrid article:nth-child(4){border-top:1px solid var(--line)}
  .faqGrid{gap:52px}
  .areaHeader{gap:50px}
  .areaMap{height:auto}
  .contactIntro{padding:48px 40px}
  .estimateForm{padding:40px 36px}
}
@media(max-width:860px){
  .introTop{grid-template-columns:1fr;gap:30px}
  .areaHeader{grid-template-columns:1fr;gap:22px}
  .areaHeader>p{max-width:680px}
  .areaMap{height:auto}
  .countyGrid{grid-template-columns:1fr}
  .faqGrid{grid-template-columns:1fr;gap:42px}
  .faqIntro{position:static;margin-top:0}
  .faqIntro>p:not(.eyebrow){max-width:650px}
  .contactCard{gap:0;padding:0}
  .contactIntro{padding:48px 44px}
  .estimateForm{padding:42px 44px}
  .certificationsGrid{gap:30px}
  .certificationsCopy{grid-template-columns:1fr;gap:18px}
  .certificationsCopy>.eyebrow{grid-column:auto}
}
@media(min-width:561px) and (max-width:860px){
  .reviewGrid{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .introAudienceGrid{grid-template-columns:1fr}
  .benefitGrid article,.benefitGrid article:nth-child(even){padding-left:44px}
  .benefitGrid article:nth-child(even) svg{left:0}
  .reviewProofGrid article{grid-template-columns:34px auto;column-gap:9px;min-height:94px;padding:14px}
  .reviewProofGrid svg{width:34px;height:34px;padding:8px}
  .reviewProofGrid strong{font-size:1.75rem}
  .reviewProofGrid span{font-size:.62rem}
  .reviewActions{align-items:stretch;flex-direction:column}
  .reviewActions .button{width:100%}
  .areas:before{font-size:7rem}
  .areaMap{height:auto}
  .coverageMarker{gap:6px;padding:6px 9px 6px 6px}
  .coverageMarker:after{inset:-7px}
  .coverageMarker>span{width:28px;height:28px}
  .coverageMarker svg{width:15px;height:15px}
  .coverageMarker strong{font-size:.58rem}
  .markerNassau{left:10%;top:47%}
  .markerSuffolk{left:53%;top:24%}
  .mapCoverage{left:14px;right:14px;bottom:14px;padding:14px}
  .countyHeading{align-items:flex-start;padding:23px 20px}
  .countyHeading h3{font-size:1.65rem}
  .countyHeading>span{display:none}
  .townAccordion [data-slot="accordion-trigger"]{padding:18px 17px;font-size:.78rem}
  .townAccordion [data-slot="accordion-trigger"]>small{display:none}
  .townAccordion [data-slot="accordion-content"]>div{padding:0 17px 20px}
  .townAccordion ul{gap:9px 12px}
  .contactIntro{padding:40px 26px}
  .contactPhone{padding:16px}
  .estimateForm{grid-template-columns:1fr;padding:32px 24px}
  .formField{grid-column:1/-1}
  .areaCta{padding:18px 0 0}
  .areaCta h3{font-size:2.05rem}
  .certificationsPanel{padding:30px 22px 26px}
  .faqAccordion [data-slot="accordion-trigger"]{padding:20px 18px;font-size:.9rem}
  .faqAccordion [data-slot="accordion-content"]>div{padding:0 46px 21px 18px}
}
@media(max-width:390px){.townAccordion ul{grid-template-columns:1fr}}
@media(max-width:1120px){
  .fact{padding:21px 18px}
}
@media(max-width:560px){
  .fact{min-height:112px;padding:20px}
}

/* Slightly tighter heading scale */
.sectionTitle{font-size:clamp(2.35rem,3.75vw,3.9rem)}
.heroCopy h1{font-size:clamp(3.55rem,4.85vw,5.5rem)}
.emergencyCopy>.sectionTitle{font-size:clamp(2.85rem,4.05vw,4.45rem)}
.introServiceBody h3{font-size:1.9rem}

@media(max-width:860px){
  .introOverview{padding:82px 0 42px}
  .introServicesArea{padding:42px 0 82px}
  .heroCopy h1{font-size:clamp(3.35rem,8.2vw,4.8rem)}
}
@media(max-width:560px){
  .serviceDirectory.section{padding:48px 0}
  .introOverview{padding:68px 0 34px}
  .introServicesArea{padding:34px 0 68px}
  .sectionTitle{font-size:2.35rem}
  .heroCopy h1{font-size:3.15rem}
  .emergencyCopy>.sectionTitle{font-size:2.65rem}
}

/* Common exterior problems */
.commonProblems{background:#fff;border-top:1px solid var(--line)}
.commonProblemsHead{display:grid;grid-template-columns:1.05fr .95fr;gap:90px;align-items:end;margin-bottom:48px}
.commonProblemsHead .sectionTitle{max-width:650px}
.commonProblemsIntro{padding-left:46px;border-left:1px solid var(--line)}
.commonProblemsIntro p{margin:0 0 23px;color:var(--muted);font-size:1rem;line-height:1.75}
.commonProblemsGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.commonProblemCard{position:relative;min-height:290px;padding:28px 25px 26px;overflow:hidden;background:#f7f9fa;border:1px solid var(--line);border-radius:18px;transition:transform .25s,box-shadow .25s,border-color .25s}
.commonProblemCard:hover{transform:translateY(-4px);border-color:#cbd7de;box-shadow:0 18px 38px rgba(3,29,52,.08)}
.commonProblemIcon{display:grid;width:48px;height:48px;place-items:center;margin-bottom:28px;color:#fff;background:var(--red);border-radius:12px}
.commonProblemIcon svg{width:24px;height:24px;stroke-width:1.9}
.commonProblemNumber{position:absolute;right:19px;top:18px;color:#dfe7eb;font-size:2.15rem;font-weight:900;letter-spacing:-.06em}
.commonProblemCard h3{max-width:230px;margin:0 0 13px;color:var(--navy);font-size:1.12rem;line-height:1.2;letter-spacing:-.015em}
.commonProblemCard p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.62}
.commonProblemCta{grid-column:span 1;display:flex;min-height:290px;flex-direction:column;justify-content:space-between;padding:29px 26px 27px;background:var(--navy);color:#fff;border-radius:18px;box-shadow:0 18px 38px rgba(3,29,52,.14)}
.commonProblemCta small{display:block;margin-bottom:13px;color:#ff6b6e;font-size:.66rem;font-weight:900;letter-spacing:.15em}
.commonProblemCta h3{margin:0 0 12px;font-size:1.55rem;line-height:1.12;letter-spacing:-.035em}
.commonProblemCta p{margin:0;color:#c6d6e1;font-size:.87rem;line-height:1.6}
.commonProblemCta .button{width:100%;min-height:50px;margin-top:25px;padding-inline:16px;font-size:.73rem}

@media(max-width:1120px){
  .commonProblemsGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .commonProblemCta{grid-column:span 2;min-height:0;display:grid;grid-template-columns:1fr auto;align-items:center;gap:30px}
  .commonProblemCta .button{width:auto;min-width:225px;margin-top:0}
}
@media(max-width:860px){
  .commonProblemsHead{grid-template-columns:1fr;gap:28px;margin-bottom:38px}
  .commonProblemsIntro{padding-left:0;border-left:0}
}
@media(max-width:560px){
  .commonProblemsGrid{grid-template-columns:1fr}
  .commonProblemCard{min-height:0;padding:25px 23px}
  .commonProblemIcon{margin-bottom:22px}
  .commonProblemCta{grid-column:auto;display:flex;min-height:0;padding:28px 24px}
  .commonProblemCta .button{width:100%;min-width:0;margin-top:24px}
}

@media (max-width: 650px) {

    .reviewGrid {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
        gap: 18px;
    }

    .reviewCard {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        min-height: 0;
        padding: 26px 22px;
        box-sizing: border-box;
    }

    .reviewCard blockquote {
        width: 100%;
        max-width: 100%;
        overflow-wrap: break-word;
        word-wrap: break-word;
    }

}

@media (max-width: 350px) {

    .reviewProofGrid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .reviewProofGrid article {
        width: 100%;
        min-width: 0;
    }

    .reviewProofGrid article + article {
        border-left: 0;
    }

}

@media (max-width: 350px) {
        .projects .sectionTitle {
        font-size: 1.95rem;
    }
    .couponValue strong {
        font-size: 4.5rem;
    }

    .couponValue span {
        font-size: 1.7rem;
        padding-bottom: 5px;
    }

    .couponValue {
        gap: 7px;
    }

    .button {
        white-space: normal !important;
        text-align: center;
        line-height: 1.25;
        padding: 10px 18px;
    }
    .headerCta {
        white-space: normal;
        text-align: center;
        line-height: 1.25;
        padding: 10px 18px;
    }

    .certificationsCopy > .sectionTitle {
        font-size: 2rem;
        line-height: 1.02;
        letter-spacing: -.025em;
    }
    .heroCopy h1 {
        font-size: 2.5rem;
        line-height: .95;
        letter-spacing: -.03em;
    }
    .couponName {
        font-size: 2.35rem;
        line-height: .95;
        letter-spacing: 0;
        overflow-wrap: break-word;
    }

    .couponKicker {
        font-size: .62rem;
        letter-spacing: .12em;
    }

    .couponCard h3 {
        font-size: 1.65rem;
    }

    .couponCard {
        padding-left: 20px;
        padding-right: 20px;
    }

}

@media (max-width: 650px) {

    .townHeading {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 5px;
        margin-bottom: 12px;
    }

    .townHeading h5 {
        width: 100%;
        margin: 0;
    }

    .townHeading span {
        display: block;
        margin-left: 15px;
        font-size: .62rem;
        line-height: 1.2;
    }

}


@media (max-width: 460px) {

    .hero {
        display: flex;
        flex-direction: column;
        height: auto;
        min-height: 0; padding-left: 20px; padding-right: 20px;
    }

    .heroInner {
        position: relative;
        order: 1;
        width: 100%;
        height: auto;
        min-height: 0;
        padding-bottom: 20px;
    }

    .heroImage {
        position: relative;
        order: 2;
        top: auto;
        right: auto;
        bottom: auto;
        left: auto;

        display: block;
        width: 100%;
        height: auto;
        min-height: 260px;

        object-fit: cover;
        object-position: center;
    }

    .heroShade {
        display: none;
    }

}
/* Hero stacked layout - tablet and mobile */
@media (max-width: 860px) {

    .hero {
        display: flex;
        flex-direction: column;
        height: auto;
        min-height: 0;
        overflow: visible;
        background: #eef3f6;
    }

    /* Put hero wording first */
.heroInner {
    order: 1;
    height: auto;
    min-height: 0;
    width: min(1240px, calc(100% - 48px));
    margin-inline: auto;
    padding-top: 60px;
    padding-bottom: 30px;
}

    .heroCopy {
        width: 100%;
        max-width: none;
        height: auto;
        min-height: 0;
        color: var(--navy);
    }

    .heroCopy h1 {
        color: var(--navy);
    }

    .eyebrowLight {
        color: var(--navy);
    }

    .heroLead {
        color: var(--muted);
    }

    .googleRating {
        color: var(--muted);
        background: #fff;
        border-color: var(--line);
    }

    .googleRating strong {
        color: var(--navy);
    }

    .hero .buttonGhost {
        color: var(--navy);
        background: #fff;
        border-color: var(--navy);
    }

    .heroTrust {
        color: var(--navy);
        flex-wrap: wrap;
    }

    /* Remove desktop overlay */
    .heroShade {
        display: none;
    }

    /* Picture becomes second row */
    .hero > picture {
     order: 2;
    display: block;
    position: relative;
    width: calc(100% - 48px);
    margin: 0 auto 48px;
    }

    /* Image is no longer absolute */
    .heroImage {
        position: relative;
        inset: auto;
        z-index: auto;
        display: block;
        width: 100%;
        height: auto;
        max-height: none;
        object-fit: cover;
        object-position: center;
        border-radius: 20px;
    }

    .heroZigzag {
        display: none;
    }

}

@media (max-width: 650px) {

    .heroInner {
        padding-top: 55px;
        padding-bottom: 25px;
    }

    .hero > picture {
        width: calc(100% - 32px);
    }

    .heroImage {
        width: 100%;
        height: auto;
        border-radius: 18px;
    }

}

@media (max-width: 460px) {

    .heroInner {
        width: calc(100% - 5px);
        max-width: none;
        margin-left: auto;
        margin-right: auto;
        padding-left: 0;
        padding-right: 0;
    }

    .heroCopy {
        width: 100%;
        max-width: none;
        margin-left: 0;
        margin-right: 0;
        padding-left: 0;
        padding-right: 0;
    }

    .hero > picture {
        width: calc(100% - 32px);
        margin-left: auto;
        margin-right: auto;
    }

}