
:root{--ink:#121629;--sea:#276f98;--lime:#c9e9ed;--paper:#fafbfc}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.6 system-ui,sans-serif}a{color:inherit}header,main,footer{max-width:1240px;margin:auto;padding:0 5%}header{display:flex;justify-content:space-between;align-items:center;padding-top:25px;padding-bottom:25px}.brand{text-decoration:none;font-size:29px;font-weight:850;letter-spacing:-1px}.brand small{display:block;font-size:10px;letter-spacing:3px}nav{display:flex;gap:25px;align-items:center}nav a{text-decoration:none;font-size:14px}.button{display:inline-block;padding:15px 24px;background:var(--lime);color:var(--ink);font-weight:750;text-decoration:none;border-radius:5px}.dark{background:var(--ink);color:white}.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:50px;align-items:center;padding:65px 0 80px}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:12px;font-weight:750}h1{font-size:clamp(48px,6vw,82px);line-height:1.04;letter-spacing:-4px;margin:20px 0 25px;font-weight:700}h1 em{font-style:normal;color:var(--sea)}h2{font-size:clamp(32px,4vw,48px);line-height:1.15;letter-spacing:-1.5px;margin:15px 0 25px}h3{font-size:23px;line-height:1.3}.intro{max-width:530px;color:#535f70}.actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:30px}.art{background:var(--sea);border-radius:160px 160px 14px 14px;min-height:470px;position:relative;overflow:hidden;color:white;display:flex;align-items:flex-end;padding:36px}.art svg{position:absolute;inset:0;width:100%;height:100%}.art p{position:relative;font-size:27px;line-height:1.2;max-width:240px}.strip{border-top:1px solid #c5d0dd;border-bottom:1px solid #c5d0dd;display:flex;justify-content:space-between;gap:20px;padding:24px 0;font-size:13px}.section{padding:75px 0}.section-head{display:flex;justify-content:space-between;align-items:end;gap:40px}.section-head p{max-width:380px}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:0 35px}.service{border-top:1px solid #c5d0dd;padding:25px 0}.num{font-size:12px;color:var(--sea);font-weight:700}.service p{font-size:15px;color:#535f70}.areas{background:var(--ink);color:white;border-radius:12px;padding:50px;display:grid;grid-template-columns:1fr 1fr;gap:50px}.areas p{color:#c4d4c9}.towns{list-style:none;margin:0;padding:0}.towns li{border-bottom:1px solid #54706a;padding:13px 0;display:flex;justify-content:space-between}.towns li:after{content:'↗';color:var(--lime)}.details{display:grid;grid-template-columns:1fr 1fr;gap:60px}details{border-top:1px solid #c5d0dd;padding:18px 0}summary{font-weight:700;cursor:pointer}details p{color:#535f70;font-size:15px}.contact{border-top:1px solid #c5d0dd;padding:55px 0 70px}.phone{font-size:clamp(32px,5vw,60px);font-weight:750;letter-spacing:-2px;text-decoration:none}footer{border-top:1px solid #c5d0dd;padding-top:25px;padding-bottom:30px;font-size:12px;color:#535f70;display:flex;justify-content:space-between;gap:25px}.mobile-call{display:none}a:focus-visible,summary:focus-visible{outline:3px solid #de902b;outline-offset:5px}@media(max-width:750px){nav a:not(.button){display:none}header{padding-top:18px}.brand{font-size:24px}nav .button{padding:10px;font-size:12px}.hero{grid-template-columns:1fr;padding:35px 0 45px;gap:35px}h1{letter-spacing:-2px}.art{min-height:290px;border-radius:90px 90px 10px 10px}.strip{flex-wrap:wrap}.section{padding:45px 0}.section-head{display:block}.services{grid-template-columns:1fr}.areas{grid-template-columns:1fr;padding:28px;gap:20px}.details{grid-template-columns:1fr;gap:25px}footer{display:block;padding-bottom:90px}.mobile-call{display:block;position:fixed;bottom:12px;left:5%;right:5%;text-align:center;box-shadow:0 5px 25px #0003}.contact{padding-bottom:40px}}

/* Coastal brand palette and water-pattern panels. */
:root{--ink:#102f48;--sea:#186285;--lime:#a7e5ee;--paper:#dceef2}
body{background:var(--paper)}
header{background:#dceef2}
.hero{position:relative;isolation:isolate;color:#fff}
.hero:before{content:"";position:absolute;z-index:-1;inset:0 calc((min(1240px,100vw) - 100vw)/2 - 6%);background:linear-gradient(90deg,rgba(7,35,58,.94),rgba(9,50,76,.6)),url('/assets/wave-blue.jpg') center top/auto 2400px}
h1 em{color:#94dfed}.intro{color:#e0f0f5}.hero .eyebrow{color:#a7e5ee}.hero .button{background:#a7e5ee;color:#102f48}.art{box-shadow:0 18px 50px #041c3455;border:1px solid #8bd7e85c}
.strip{background:#b9dfe9;border:0;padding:24px 22px;color:#163c55}
.services{gap:18px}.service{background:#c6e4ec;border:1px solid #a1cbd9;border-radius:12px;padding:25px}.service:nth-child(even){background:#cfe9ef}.service p,details p{color:#31556a}.num{color:#185c7a}
.areas,.contact{background:linear-gradient(100deg,rgba(6,32,54,.94),rgba(9,48,75,.73)),url('/assets/wave-blue.jpg') center top/auto 2400px;color:#fff;border:1px solid #37718e;border-radius:12px}
.areas p{color:#e0f0f5}.towns li{border-color:#6993a8}.areas .eyebrow,.contact .eyebrow{color:#a7e5ee}
#about{padding:60px 40px;margin-top:30px;border-left:5px solid #348db0;background:#c6e4ec;border-radius:0 12px 12px 0}
.details{padding:60px 0}details{border-color:#99c3d0}.contact{padding:48px;margin-bottom:35px}.contact p{color:#d6ebf2}.phone{color:#a7e5ee}footer{color:#31556a;border-color:#a3cbd5}
@media(max-width:750px){.hero:before{inset:0 -5.56%}.hero{padding:40px 0}.art img{height:310px!important}.strip{padding:20px}.service{padding:24px}.areas{padding:28px}#about{padding:35px 25px}.contact{padding:32px 24px}.phone{font-size:clamp(27px,7.5vw,48px);letter-spacing:-1px}.details{padding:45px 0}}

.service-link{font-weight:750;text-underline-offset:4px}.service-hero{display:block;padding:55px 0}.service-hero h1{max-width:880px;font-size:clamp(40px,5vw,66px);letter-spacing:-2px}.service-hero .intro{max-width:720px}.service-content{max-width:850px;padding:45px 0}.service-content h2{font-size:32px;margin-top:42px}.service-content li{margin:10px 0}.service-content p{color:#31556a}.breadcrumbs{font-size:14px;margin-bottom:28px}.related{display:flex;gap:15px;flex-wrap:wrap;margin:30px 0}.hours{font-size:15px}.mobile-actions{display:none}@media(max-width:750px){.mobile-call{display:none}.mobile-actions{display:flex;position:fixed;bottom:12px;left:5%;right:5%;gap:8px;z-index:10}.mobile-actions a{flex:1;text-align:center;padding:14px 10px;box-shadow:0 4px 20px #0003}.contact{margin-bottom:80px}.service-hero{padding:35px 0}.service-content{padding-top:20px}}

.breadcrumbs a{display:inline!important}.areas+.contact{margin-top:35px}

.work-photo{margin:0 0 38px;background:#c6e4ec;border:1px solid #a1cbd9;border-radius:12px;overflow:hidden}.work-photo img{display:block;width:100%;height:auto}.work-photo.hot-water-photo img{max-height:640px;object-fit:contain;background:#c6e4ec}.work-photo figcaption{padding:14px 20px;font-size:14px;color:#31556a}

/* Approved project photographs: show the complete original composition. */
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.project-photo{margin:0;background:#c6e4ec;border:1px solid #a1cbd9;border-radius:12px;overflow:hidden;min-width:0}
.project-photo a{display:block}.project-photo img{display:block;width:100%;height:auto;aspect-ratio:3/4}
.project-photo figcaption{padding:16px 18px;font-size:15px;font-weight:650;color:#163c55}
.project-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.project-detail-grid .project-photo:first-child{grid-column:1/-1;max-width:640px;width:100%;justify-self:center}
.project-detail h2{margin-top:12px}.project-detail{scroll-margin-top:24px}
@media(max-width:750px){.project-grid,.project-detail-grid{grid-template-columns:1fr;gap:24px}.project-detail-grid .project-photo:first-child{grid-column:auto}.project-section .actions{align-items:flex-start;flex-direction:column}}
