:root{--navy:#102c47;--red:#d82332;--blue:#158db4;--ink:#172b3d;--muted:#526475;--pale:#f1f5f8;--line:#d8e0e7}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65}a{color:inherit}button{font:inherit}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.08;letter-spacing:-.04em}h1{font-size:clamp(3rem,5.5vw,5.5rem);margin-bottom:28px}h2{font-size:clamp(2.3rem,3.8vw,3.7rem);margin-bottom:24px}h3{font-size:1.55rem;letter-spacing:-.025em}p{color:var(--muted)}.wrap{width:min(1200px,calc(100% - 80px));margin:auto}.topbar{background:var(--navy);color:#fff;font-size:.8rem;letter-spacing:.08em}.topbar .wrap{display:flex;justify-content:space-between;padding:10px 0}.topbar a{text-decoration:none;letter-spacing:0}header{background:#fff;position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line)}.navigation{display:flex;align-items:center;justify-content:space-between;min-height:98px}.brand img{width:165px;height:88px;object-fit:contain}nav{display:flex;align-items:center;gap:32px}nav a{text-decoration:none;font-weight:600;font-size:.94rem}nav a:hover,.textlink:hover{color:var(--red)}.button{display:inline-flex;align-items:center;justify-content:center;padding:16px 26px;background:var(--red);color:white;text-decoration:none;font-weight:700;border:1px solid transparent;border-radius:3px;letter-spacing:0;line-height:1.4;transition:background .2s}.button:hover{background:#b41625;color:#fff}.button.small{padding:13px 19px}.menu{display:none}.eyebrow{font-size:.78rem;letter-spacing:.16em;font-weight:700;color:var(--blue);margin-bottom:20px}.hero{background:var(--pale);overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.07fr 1fr;gap:48px;align-items:center}.hero-copy{padding:72px 0}.hero em{font-style:normal;color:var(--blue)}.intro{max-width:480px;font-size:1.13rem;line-height:1.65}.actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.textlink{font-weight:700;text-decoration:underline;text-underline-offset:5px}.hero-details{display:flex;gap:22px;border-top:1px solid var(--line);margin-top:38px;padding-top:22px;font-size:.83rem;font-weight:600}.hero-photo{height:620px;align-self:stretch;position:relative}.hero-photo>img{width:100%;height:100%;object-fit:cover;object-position:center 38%}.photo-tag{position:absolute;bottom:32px;left:-24px;background:white;border-left:5px solid var(--red);padding:18px 28px;box-shadow:0 8px 24px #102c4722}.photo-tag strong,.photo-tag span{display:block}.photo-tag span{font-size:.85rem;color:var(--muted)}.truststrip{background:var(--navy);color:#fff}.truststrip .wrap{display:flex;justify-content:space-between;gap:20px;padding:24px 0;font-size:.88rem}.section{padding-top:96px;padding-bottom:96px}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:35px;margin-bottom:38px}.section-head h2{margin-bottom:0}.section-head>p{max-width:330px;margin-bottom:5px}.services{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.services article{padding:32px;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}.number{color:var(--blue);font-size:.85rem;font-weight:700;display:block;margin-bottom:30px}.services h3{margin-bottom:17px}.services p{font-size:.96rem}.services details{font-size:.88rem}.services summary{font-weight:700;color:var(--navy);cursor:pointer}.services details p{padding-top:14px;font-size:.9rem}.about{background:var(--pale);padding:80px 0}.about-grid{display:grid;grid-template-columns:1fr 1.05fr;align-items:center;gap:72px}.about-photo img{width:100%;height:480px;object-fit:cover;object-position:center}.about-values{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:22px;padding-top:25px;margin:26px 0}.about-values strong,.about-values span{display:block}.about-values span{font-size:.88rem;color:var(--muted);margin-top:6px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.gallery-item{background:transparent;padding:0;border:0;text-align:left;cursor:pointer;color:var(--ink)}.gallery-item img{width:100%;height:350px;object-fit:cover;transition:filter .2s}.gallery-item:hover img{filter:brightness(.9)}.gallery-item>span{font-size:1.1rem;font-weight:700;display:block;margin-top:17px}.gallery-item small{display:block;color:var(--muted);font-weight:400;font-size:.86rem;margin-top:5px}.community{background:var(--navy);color:#fff;padding:72px 0}.community-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:60px;align-items:center}.community .eyebrow{color:#75d6ed}.community p{color:#c2cfda;max-width:540px}.discount{text-align:center;border:1px solid #ffffff40;padding:32px}.discount strong{font-size:7.5rem;line-height:1;font-weight:800;letter-spacing:-.06em}.discount strong span{font-size:3.5rem}.discount>p{font-size:1.3rem;letter-spacing:.25em;color:#fff;margin:10px auto 22px}.discount>div{border-top:1px solid #ffffff40;padding-top:20px;font-size:.95rem}.area{display:grid;grid-template-columns:1fr 1fr;gap:80px}.area>div>p{max-width:480px}.area-labels{display:flex;gap:10px;flex-wrap:wrap}.area-labels span{background:var(--pale);padding:8px 14px;font-size:.85rem}.review-panel{background:var(--pale);padding:40px;align-self:center;border-top:4px solid var(--red)}.review-panel h3{font-size:2.15rem}.outline{background:transparent;border-color:var(--navy);color:var(--navy)}.outline:hover{background:var(--navy)}.faq{padding-top:0;max-width:900px}.faq details{border-bottom:1px solid var(--line);padding:22px 0}.faq summary{cursor:pointer;font-weight:700;font-size:1.08rem}.faq details p{margin:20px 0 0}.contact{background:var(--pale);padding:80px 0}.contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:70px;align-items:center}.bigphone{font-size:clamp(2rem,3.5vw,3rem);font-weight:700;letter-spacing:-.04em;text-decoration:none;display:block;margin:22px 0}.contact .light{background:white;color:var(--navy);border-color:var(--line)}.contact-card{background:#fff;padding:35px 40px;border-top:4px solid var(--red)}.contact-card>div{padding:16px 0;border-bottom:1px solid var(--line)}.contact-card>div:last-child{border:0}.contact-card span{display:block;font-size:.75rem;color:var(--muted);letter-spacing:.12em;margin-bottom:4px}.contact-card a{font-weight:700;text-decoration:none;overflow-wrap:anywhere}.contact-card p{margin:0;color:var(--ink)}footer{background:var(--navy);color:#fff;padding:50px 0 24px;font-size:.9rem}.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px}footer p{color:#c2cfda;margin-top:13px}footer a{text-underline-offset:3px}.copyright{border-top:1px solid #ffffff25;padding-top:20px;margin-top:35px;color:#c2cfda;font-size:.8rem}.mobile-call{display:none}dialog{padding:22px;border:0;max-width:min(850px,92vw);max-height:92vh;color:var(--ink)}dialog::backdrop{background:#061525cf}dialog img{max-height:72vh;width:auto;margin:auto;object-fit:contain}dialog p{margin:15px 0 0}.close-dialog{display:block;margin:0 0 15px auto;background:var(--navy);color:white;border:0;padding:9px 18px;cursor:pointer}:focus-visible{outline:3px solid var(--blue);outline-offset:5px}@media(min-width:1600px){.hero-photo{height:650px}}@media(max-width:1000px){.wrap{width:calc(100% - 48px)}nav{gap:18px}.hero-grid{gap:30px}.hero-photo{height:590px}.hero-details{flex-direction:column;gap:6px}.about-grid{gap:35px}.services article{padding:25px}.area,.contact-grid{gap:40px}}@media(max-width:760px){html{scroll-padding-top:85px}.wrap{width:calc(100% - 36px)}.topbar .wrap{justify-content:center;font-size:.7rem}.topbar a{display:none}.navigation{min-height:78px}.brand img{width:135px;height:70px}.menu{display:block;border:1px solid var(--line);background:white;padding:8px 15px;font-weight:700}nav{display:none;position:absolute;top:78px;left:0;right:0;background:white;padding:24px;box-shadow:0 12px 20px #102c4720;flex-direction:column;align-items:stretch}nav.open{display:flex}.hero-grid{grid-template-columns:1fr;gap:0}.hero-copy{padding:45px 0 35px}h1{font-size:3.3rem}.hero-photo{height:420px; margin:0 -18px}.photo-tag{left:18px;bottom:22px}.hero-details{flex-direction:row;flex-wrap:wrap;gap:12px 22px;margin-top:25px;padding-top:20px}.truststrip .wrap{display:grid;grid-template-columns:1fr 1fr;font-size:.78rem;gap:12px 16px}.section{padding-top:60px;padding-bottom:60px}.section-head{display:block}.section-head>p{margin-top:22px}.services{grid-template-columns:1fr}.services article{padding:26px}.number{margin-bottom:20px}.about{padding:60px 0}.about-grid{grid-template-columns:1fr;gap:32px}.about-photo img{height:300px}.gallery{grid-template-columns:1fr;gap:30px}.gallery-item img{height:360px}.community{padding:60px 0}.community-grid{grid-template-columns:1fr;gap:30px}.discount{padding:25px}.discount strong{font-size:6rem}.area,.contact-grid{grid-template-columns:1fr;gap:35px}.review-panel{padding:28px}.faq{padding-top:0}.contact{padding:60px 0}.contact-card{padding:20px 26px}.footer-grid{grid-template-columns:1fr;gap:25px}footer{padding-bottom:90px}.mobile-call{display:block;position:fixed;bottom:0;left:0;right:0;z-index:30;background:var(--red);text-align:center;box-shadow:0 -3px 15px #102c4722}.mobile-call a{color:#fff;display:block;padding:15px;font-weight:700;text-decoration:none}.actions{gap:17px}.about-values{grid-template-columns:1fr}h2{font-size:2.5rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Keep the supplied van photograph and product label fully visible. */
.hero-grid{grid-template-columns:.9fr 1.1fr}
.hero h1{font-size:clamp(2.8rem,4.8vw,4.65rem)}
.hero-photo{height:auto;align-self:center;margin:48px 0 70px}
.hero-photo>img{height:auto;object-fit:contain;object-position:center;border-radius:4px}
.photo-tag{bottom:-32px;left:24px;padding:16px 24px}
.about-photo img{height:530px;object-position:center 40%}
.gallery{grid-template-columns:repeat(4,1fr)}
.gallery-item img{height:auto;aspect-ratio:3/4;object-fit:cover}
.drain-care{background:var(--pale);padding:80px 0}
.product-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.product-image{padding:22px;background:#fff;border:1px solid var(--line);border-radius:4px}
.product-photo{display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in}
.product-photo img{width:100%;height:auto;object-fit:contain}
.product-note{font-size:.8rem;margin:18px 0 0}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:5px}
@media(max-width:1100px){.hero-grid{gap:30px}.hero h1{font-size:3.9rem}.gallery{grid-template-columns:repeat(2,1fr)}.product-grid{gap:35px}.photo-tag{left:16px;padding:14px 18px}.photo-tag strong{font-size:.94rem}}
@media(max-width:760px){.hero-grid{grid-template-columns:1fr;gap:0}.hero h1{font-size:clamp(2.75rem,11vw,3.5rem)}.hero-photo{margin:0 0 60px}.photo-tag{left:16px;right:16px;bottom:-32px}.about-photo img{height:auto;max-height:530px;aspect-ratio:3/4}.gallery{grid-template-columns:1fr}.gallery-item img{height:auto;aspect-ratio:3/4}.drain-care{padding:60px 0}.product-grid{grid-template-columns:1fr;gap:32px}.product-image{padding:12px}.topbar span{text-align:center}}
/* Camera inspections and sewer scopes. */
.inspections{background:var(--navy);color:#fff;padding:80px 0}
.inspection-grid{display:grid;grid-template-columns:.85fr 1.3fr;gap:60px;align-items:center}
.inspections .eyebrow{color:#75d6ed}
.inspections p{color:#c2cfda;font-size:1rem}
.inspection-intro>p:not(.eyebrow){margin-bottom:28px}
.inspection-services{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #ffffff35;border-left:1px solid #ffffff35}
.inspection-services article{padding:28px;border-right:1px solid #ffffff35;border-bottom:1px solid #ffffff35}
.inspection-services h3{font-size:1.35rem;line-height:1.2;letter-spacing:-.02em;margin-bottom:16px}
.inspection-services p{margin-bottom:0}
@media(max-width:1100px){.inspection-grid{grid-template-columns:1fr;gap:35px}.inspection-intro{max-width:680px}}
@media(max-width:760px){.inspections{padding:60px 0}.inspection-services{grid-template-columns:1fr}.inspection-services article{padding:26px}.inspection-intro .button{width:100%}}
/* Service visit value and the expanded project gallery. */
.included-visit{display:grid;grid-template-columns:1fr auto;gap:42px;align-items:center;padding:40px 0;border-bottom:1px solid var(--line)}
.included-visit>div{border-left:4px solid var(--red);padding-left:26px}
.included-visit .eyebrow{margin-bottom:12px}
.included-visit h2{font-size:2rem;line-height:1.18;margin-bottom:16px}
.included-visit p:last-child{max-width:700px;margin-bottom:0}
.gallery{grid-template-columns:repeat(3,1fr);gap:30px 24px}
.gallery-item img{aspect-ratio:4/3;height:auto;object-fit:cover;object-position:center}
.gallery-item>span{font-size:1.05rem}
.gallery-item small{font-size:.875rem}
@media(max-width:1100px){.included-visit{grid-template-columns:1fr;gap:24px}.included-visit .button{justify-self:start}.gallery{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.included-visit{padding:32px 0}.included-visit>div{padding-left:20px}.included-visit h2{font-size:1.8rem}.gallery{grid-template-columns:1fr}.gallery-item img{aspect-ratio:4/3}}
.service-contact{display:flex;flex-direction:column;align-items:center;gap:15px}
.inspections .textlink{color:#fff}
@media(max-width:1100px){.service-contact{align-items:flex-start}}
@media(max-width:760px){.service-contact{align-items:stretch}.service-contact .textlink{text-align:center}}
.financing{display:grid;grid-template-columns:1.6fr 1fr;gap:50px;align-items:center;padding:65px 0}
.financing h2{font-size:clamp(2rem,3vw,2.7rem)}
.financing p{max-width:680px}
.financing .financing-note{font-size:.875rem;margin-bottom:0}
@media(max-width:760px){.financing{grid-template-columns:1fr;gap:25px;padding:50px 0}}

/* Kitchen sink project: paired before-and-after photographs. */
.project-pair{margin-bottom:48px;padding:28px;background:var(--pale);border:1px solid var(--line);border-radius:4px}
.project-pair-heading .eyebrow{margin-bottom:12px}
.project-pair-heading h3{font-size:1.8rem;line-height:1.15;margin-bottom:12px}
.project-pair-heading>p:last-child{margin-bottom:24px}
.project-pair-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.project-pair .gallery-item img{width:100%;height:auto;aspect-ratio:5/4;object-fit:cover;border-radius:3px}
.project-pair .gallery-item:first-child img{object-position:center 54%}
.project-pair .gallery-item>span{color:var(--navy);font-size:1.15rem;margin-top:14px}
.project-pair .gallery-item small{font-size:.875rem;line-height:1.5}
@media(max-width:760px){.project-pair{padding:20px;margin-bottom:36px}.project-pair-grid{grid-template-columns:1fr;gap:28px}.project-pair-heading h3{font-size:1.55rem}}

/* Service inquiry */
.inquiry-section{background:#f2f6f9;scroll-margin-top:110px}.inquiry-layout{display:grid;grid-template-columns:minmax(240px,.85fr) minmax(0,1.6fr);gap:48px;align-items:start}.inquiry-copy{padding-top:38px}.inquiry-copy>p{line-height:1.75}.inquiry-copy a{color:#164e73;text-decoration:underline}.inquiry-notice{background:#fff;border-left:4px solid #be2739;padding:22px 24px;margin:26px 0;border-radius:0 8px 8px 0}.inquiry-notice strong{color:#102c47}.inquiry-notice p{margin:8px 0 0;line-height:1.7}.inquiry-form-wrap{min-width:0}.inquiry-form{display:block;width:100%;height:1080px;border:0;border-radius:12px;background:#f4f8ff}.inquiry-full-page{font-size:14px;line-height:1.6;text-align:center;margin-top:16px}.inquiry-full-page a{color:#164e73;text-decoration:underline}@media(max-width:800px){.inquiry-layout{grid-template-columns:1fr;gap:20px}.inquiry-copy{padding-top:0}.inquiry-form{height:1100px}.inquiry-section{scroll-margin-top:90px}}

/* Careers application */
.careers-section{background:var(--pale)}.careers-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:64px;align-items:center}.careers-intro{max-width:540px;font-size:1.1rem}.careers-roles{list-style:none;padding:0;margin:26px 0 0;display:flex;flex-wrap:wrap;gap:10px}.careers-roles li{border:1px solid var(--line);background:#fff;padding:7px 13px;border-radius:3px;font-size:.88rem;font-weight:600}.careers-card{background:#fff;border:1px solid var(--line);border-top:4px solid var(--blue);padding:36px;border-radius:4px}.careers-card h3{font-size:1.8rem}.careers-note{font-size:.82rem;line-height:1.6;margin:22px 0 0}.careers-card .button{margin-top:8px}#nav{gap:22px}@media(max-width:900px){.careers-layout{grid-template-columns:1fr;gap:28px}.careers-card{padding:26px}}

/* Service area city list */
.area-labels{display:flex;flex-wrap:wrap;gap:10px}.area-labels span{white-space:normal}
