:root{--teal:#0e4a57;--teal2:#0a3641;--sand:#f4ede1;--sand2:#e9dec9;--copper:#c2561f;--copper-d:#9a3f10;--ink:#16252a;--mute:#52605f;--display:'Fraunces',Georgia,serif;--body:'Figtree',system-ui,sans-serif}
html{scroll-behavior:smooth;scroll-padding-top:150px}
body{font-family:var(--body);color:var(--ink);background:var(--sand);font-size:1.05rem;line-height:1.65}
h1,h2,h3,h4{font-family:var(--display);font-weight:800;line-height:1.08;letter-spacing:-.01em}
a{color:var(--copper-d)}
.eyebrow{font-weight:700;letter-spacing:.18em;text-transform:uppercase;font-size:.78rem;color:var(--copper-d);display:flex;align-items:center;gap:.6rem}
.eyebrow:before{content:"";width:0;height:0;border-left:9px solid transparent;border-right:9px solid transparent;border-bottom:14px solid var(--copper)}
.util{background:var(--teal2);color:#fff;font-size:.88rem;padding:.4rem 0;text-align:center}
.util a{color:#fff;font-weight:700;text-decoration:none}
.navbar{background:var(--sand);border-bottom:2px solid var(--teal)}
.navbar .container{flex-direction:column}
.navbar-brand{display:flex;align-items:center;gap:.7rem;margin:0}
.navbar-brand img{height:58px;width:auto}
.navbar-brand span{font-family:var(--display);font-weight:800;font-size:1.65rem;color:var(--teal);line-height:1}
.navbar-brand small{display:block;font-family:var(--body);font-weight:600;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--copper-d);margin-top:.2rem}
.navbar.navbar-expand-lg .navbar-collapse{justify-content:center}
.nav-link{font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;color:var(--teal)!important;padding:.6rem 1rem!important}
.nav-link:hover{color:var(--copper)!important}
.nav-call{background:var(--copper);color:#fff!important;border-radius:3px;margin-left:.5rem}
.nav-call:hover{background:var(--copper-d);color:#fff!important}
.navbar-toggler{position:absolute;right:1rem;top:1.4rem;border-color:var(--teal)}
.btn-cta{background:var(--copper);color:#fff;font-weight:700;padding:.85rem 1.7rem;border-radius:3px;border:2px solid var(--copper)}
.btn-cta:hover{background:var(--copper-d);border-color:var(--copper-d);color:#fff}
.btn-line{border:2px solid var(--teal);color:var(--teal);font-weight:700;padding:.85rem 1.7rem;border-radius:3px}
.btn-line:hover{background:var(--teal);color:#fff}
.hero{background:var(--teal);color:#fff;position:relative;overflow:hidden;padding:56px 0 110px}
.hero h1{font-size:clamp(2.5rem,5.6vw,4.6rem);color:#fff}
.hero h1 em{font-style:italic;color:#f3b48a;font-weight:600}
.hero p.lead{color:#e6f0f1;max-width:34rem}
.hero .eyebrow{color:#f3b48a}
.hero .eyebrow:before{border-bottom-color:#f3b48a}
.mosaic{display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:230px 230px;gap:10px}
.mosaic img{width:100%;height:100%;object-fit:cover;display:block;border:4px solid var(--sand)}
.mosaic img:first-child{grid-row:1/3}
.badges{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin-top:1.8rem}
.badges img{height:64px;width:auto;background:#fff;border-radius:4px;padding:4px}
.badges span{font-size:.92rem;color:#d3e3e5;max-width:15rem}
.shingles{height:34px;background:radial-gradient(circle at 17px 0,var(--teal) 17px,transparent 18px) 0 0/34px 34px repeat-x;background-color:var(--sand);margin-top:-1px}
.shingles.up{background:radial-gradient(circle at 17px 34px,var(--sand) 17px,transparent 18px) 0 0/34px 34px repeat-x;background-color:var(--teal);margin-top:0}
.hero .shingles{position:absolute;left:0;right:0;bottom:0;transform:none}
section{padding:84px 0}
h2{font-size:clamp(2rem,4vw,3.2rem);color:var(--teal)}
.stats{background:var(--sand2);padding:34px 0;border-bottom:1px solid #d7c9ad}
.stats .num{font-family:var(--display);font-weight:800;font-size:1.7rem;color:var(--teal);line-height:1.1}
.stats .lbl{font-size:.85rem;color:var(--mute);text-transform:uppercase;letter-spacing:.1em}
.index{list-style:none;padding:0;margin:0;border-top:2px solid var(--teal)}
.index li{display:grid;grid-template-columns:minmax(200px,1fr) 2fr;gap:1.5rem;padding:1.4rem 0;border-bottom:1px solid #cdbf9f;align-items:baseline}
.index h3{font-size:1.7rem;color:var(--teal);margin:0}
.index p{margin:0;color:var(--ink)}
.index .tag{display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--copper-d);margin-right:.7rem}
.about{background:#fff}
.about img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border:6px solid var(--sand);box-shadow:12px 12px 0 var(--copper)}
.brands{display:flex;flex-wrap:wrap;gap:.5rem}
.brands span{border:1.5px solid var(--teal);color:var(--teal);font-weight:700;font-size:.85rem;padding:.25rem .7rem;border-radius:2px}
.quote{background:linear-gradient(rgba(10,54,65,.72),rgba(10,54,65,.72)),url('img/band.webp') center/cover;color:#fff;padding:110px 0;text-align:center}
.quote blockquote{font-family:var(--display);font-weight:600;font-style:italic;font-size:clamp(1.5rem,3vw,2.5rem);max-width:900px;margin:0 auto 1rem;text-shadow:0 2px 14px rgba(0,0,0,.7)}
.quote cite{font-style:normal;font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:.85rem;text-shadow:0 1px 8px rgba(0,0,0,.8)}
.checks{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem 1.6rem;margin-top:1.6rem;font-weight:700;text-shadow:0 1px 8px rgba(0,0,0,.8)}
.reviews .rev{border-left:4px solid var(--copper);padding:.2rem 0 .2rem 1.2rem;height:100%}
.reviews .rev p{margin-bottom:.5rem}
.reviews .rev b{color:var(--teal)}
.gallery-grid{columns:4 220px;column-gap:12px}
.gallery-grid img{width:100%;height:auto;display:block;margin-bottom:12px;border:3px solid #fff}
.faq .accordion-item{background:transparent;border:0;border-bottom:1px solid #cdbf9f}
.faq .accordion-button{background:transparent;font-family:var(--display);font-weight:700;font-size:1.2rem;color:var(--teal);box-shadow:none;padding:1.1rem 0}
.faq .accordion-button:not(.collapsed){color:var(--copper-d)}
.faq .accordion-body{padding:0 0 1.2rem}
.areas{background:var(--teal);color:#fff}
.areas h2{color:#fff}
.areas .town{display:inline-block;border:1.5px solid #f3b48a;color:#fff;padding:.3rem .9rem;margin:.25rem;font-weight:600}
.contact{background:#fff}
.contact iframe{width:100%;height:340px;border:0}
.contact dt{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--copper-d)}
.contact dd{font-size:1.15rem;margin-bottom:1rem}
.big-phone{font-family:var(--display);font-weight:800;font-size:clamp(2rem,4vw,3rem);color:var(--teal);text-decoration:none}
footer{background:var(--teal2);color:#cfe0e3;padding:50px 0 30px;font-size:.95rem}
footer a{color:#fff}
footer .logo-chip{height:78px;width:auto}
footer .powered{border-top:1px solid #1f5563;margin-top:28px;padding-top:18px;font-size:.85rem}
@media(max-width:991px){.navbar .container{flex-direction:row;flex-wrap:wrap;justify-content:center}.navbar-collapse{width:100%}.nav-call{margin:.5rem 0 0}.navbar-brand img{height:46px}.navbar-brand span{font-size:1.3rem}html{scroll-padding-top:110px}}
@media(max-width:767px){section{padding:60px 0}.index li{grid-template-columns:1fr;gap:.4rem}.mosaic{grid-template-rows:170px 170px}.hero{padding-top:36px}.navbar-brand span{font-size:1.15rem}.navbar-brand small{font-size:.6rem}}
