/* Water Damage Naples FL: "Naples resort editorial" design system.
   Navy + champagne + ivory, Libre Baskerville display + Public Sans text, hairline rules,
   small-caps kickers, framed photos, magazine two-column layouts. */

@font-face{font-family:'Libre Baskerville';font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/libre-baskerville-italic.woff2?v=8c81de4c) format('woff2')}
@font-face{font-family:'Libre Baskerville';font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/libre-baskerville.woff2?v=9e3a6b87) format('woff2')}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/public-sans.woff2?v=e4c9b081) format('woff2')}

:root{
  --navy:#13294b; --navy-deep:#0c1c35; --champ:#d7c29e; --champ-deep:#7a6436;
  --ivory:#fbf9f4; --sand:#f3eee3; --paper:#ffffff; --ink:#1d2330; --ink-2:#343c4d;
  --on-navy:#ece7dc; --rule:rgba(19,41,75,.18); --rule-light:rgba(215,194,158,.42);
  --serif:'Libre Baskerville',Georgia,'Times New Roman',serif;
  --sans:'Public Sans',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;
  --gutter:24px; --maxw:1180px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:18px;line-height:1.7;font-weight:400}
img{max-width:100%;height:auto;display:block}
a{color:var(--navy)}
h1,h2,h3{font-family:var(--serif);color:var(--navy);font-weight:700;line-height:1.22;margin:0 0 .5em}
h1{font-size:clamp(2rem,3.6vw,2.9rem);letter-spacing:-.01em;text-wrap:balance}
h2{font-size:clamp(1.55rem,2.5vw,2.15rem);text-wrap:balance}
h3{font-size:1.2rem}
p{margin:0 0 1em}
ul,ol{margin:0;padding:0}
.wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--navy);color:#fff;padding:10px 16px;z-index:300}
.skip-link:focus{left:12px;top:12px}
.email{overflow-wrap:anywhere}
.nw{white-space:nowrap}

/* icons: fixed boxes so nothing balloons */
.ic{width:20px;height:20px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.btn svg,a[href^="tel:"] svg,.gsearch svg,.textlink svg,.rel__link svg,.idcard svg,.contact__card svg{width:1.15em;height:1.15em;flex:0 0 auto}
.menu-close svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}

/* kicker: small-caps label with a hairline lead */
.kicker{display:inline-flex;align-items:center;gap:10px;font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--champ-deep);margin-bottom:14px}
.kicker::before{content:"";width:28px;height:1px;background:currentColor;flex:0 0 auto}
.kicker--light{color:var(--champ)}

/* ribbon + masthead */
.ribbon{background:var(--navy-deep);color:var(--champ);font-size:13px;letter-spacing:.08em;text-transform:uppercase;font-weight:600}
.ribbon__in{display:flex;justify-content:space-between;gap:16px;padding-top:7px;padding-bottom:7px}
.masthead{position:sticky;top:0;z-index:60;background:var(--ivory);border-bottom:1px solid var(--rule)}
.masthead__in{display:flex;align-items:center;gap:28px;min-height:78px}
.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;flex:0 0 auto}
.brand__mark{width:44px;height:44px;flex:0 0 auto}
.brand__text{display:flex;flex-direction:column;min-width:0}
.brand__name{font-family:var(--serif);font-weight:700;font-size:19px;color:var(--navy);line-height:1.15;white-space:nowrap}
.brand__sub{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--champ-deep);font-weight:600;white-space:nowrap}
.nav{display:flex;align-items:center;gap:24px;margin-left:auto}
.nav>a,.drop>a{font-size:14px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--navy);text-decoration:none;padding:8px 0;white-space:nowrap}
.nav>a:hover,.drop>a:hover{color:var(--champ-deep)}
.drop{position:relative}
.drop>a::after{content:"";display:inline-block;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin:0 0 3px 8px}
.drop__menu{display:none;position:absolute;top:100%;left:-18px;min-width:340px;max-height:min(72vh,560px);overflow-y:auto;overscroll-behavior:contain;background:var(--paper);border:1px solid var(--rule);border-top:2px solid var(--champ);padding:10px 0;box-shadow:0 18px 40px rgba(12,28,53,.14);z-index:70}
.drop__menu a{display:block;padding:9px 20px;font-size:16px;color:var(--ink);text-decoration:none;line-height:1.4}
.drop__menu a:hover{background:var(--sand);color:var(--navy)}
.drop.is-open .drop__menu{display:block}
.menu-close{display:none}
.masthead__end{display:flex;align-items:center;gap:12px}
.mast-phone{display:inline-flex;align-items:center;gap:10px;background:var(--navy);color:var(--ivory);text-decoration:none;padding:9px 18px 9px 14px;border-radius:2px;outline:1px solid var(--champ);outline-offset:3px}
.mast-phone .ic{width:20px;height:20px;color:var(--champ)}
.mast-phone__txt{display:flex;flex-direction:column;line-height:1.1}
.mast-phone__num{font-family:var(--serif);font-weight:700;font-size:18px;white-space:nowrap}
.mast-phone__lbl{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--champ)}
.nav-toggle{display:none;width:46px;height:46px;border:1px solid var(--navy);background:transparent;border-radius:2px;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:0}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--navy)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:12px;font-family:var(--sans);font-weight:600;font-size:17px;text-decoration:none;border-radius:2px;padding:13px 22px;border:1px solid transparent;cursor:pointer;line-height:1.25}
.btn--navy{background:var(--navy);color:var(--ivory);outline:1px solid var(--champ);outline-offset:3px}
.btn--navy:hover{background:var(--navy-deep)}
.btn--navy svg{color:var(--champ)}
.btn--champagne{background:var(--champ);color:var(--navy-deep)}
.btn--champagne:hover{background:#e4d3b3}
.btn--lg{padding:14px 26px 14px 20px}
.btn--block{display:flex;width:100%;justify-content:center}
.btn__stack{display:flex;flex-direction:column;text-align:left}
.btn__num{font-family:var(--serif);font-size:23px;font-weight:700;line-height:1.15}
.btn__sub{font-size:13px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;opacity:.95}
.textlink{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:16px;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--champ)}
.gsearch{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:600;letter-spacing:.04em;padding:10px 16px;border:1px solid var(--champ);color:var(--champ);text-decoration:none;border-radius:2px;margin-top:6px}
.gsearch--light{color:var(--navy);border-color:var(--navy)}

/* bands */
.band{padding:88px 0}
.band:not(.band--sand):not(.band--navy)+.band:not(.band--sand):not(.band--navy){border-top:1px solid var(--rule)}
.band--sand{background:var(--sand)}
.band--navy{background:var(--navy);color:var(--on-navy)}
.band--navy h2,.band--navy h3{color:var(--ivory)}
.band--navy p{color:var(--on-navy)}
.split-head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:48px;align-items:end;margin-bottom:44px;padding-bottom:22px;border-bottom:1px solid var(--rule)}
.split-head h2{margin:0}
.split-head__dek{margin:0;font-size:18px;color:var(--ink-2)}
.framed{margin:0;outline:1px solid var(--champ);outline-offset:8px;background:var(--sand)}
.dek{font-family:var(--serif);font-style:italic;font-size:20px;line-height:1.6;color:var(--ink-2)}
.pull{font-family:var(--serif);font-style:italic;font-size:21px;line-height:1.55;color:var(--navy);border-left:2px solid var(--champ);padding-left:18px;margin:26px 0}
.attrs{list-style:none;display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:26px}
.attrs li{display:inline-flex;align-items:center;gap:10px;font-size:16px;font-weight:600;color:var(--navy);line-height:1.3}
.attrs li::before{content:"";width:7px;height:7px;background:var(--champ-deep);transform:rotate(45deg);flex:0 0 auto}
.attrs--center{justify-content:center;margin:36px 0}

/* cover (homepage hero) */
.cover{padding:60px 0 76px;border-bottom:1px solid var(--rule)}
.cover__grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:64px;align-items:center}
.cover__copy h1{margin-bottom:.45em}
.cover__copy .dek{margin-bottom:28px;max-width:34em}
.cover__img{width:100%;aspect-ratio:900/560;object-fit:cover}
.cover__media figcaption{font-family:var(--serif);font-style:italic;font-size:16px;color:var(--ink-2);background:var(--ivory);padding:14px 0 0}

/* service catalogue */
.cat__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:52px 40px}
.cat__item{display:flex;flex-direction:column;text-decoration:none;color:var(--ink)}
.cat__media{display:block;aspect-ratio:3/2;overflow:hidden;background:var(--sand)}
.cat__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.cat__item:hover .cat__media img{transform:scale(1.03)}
.cat__title{display:block;font-family:var(--serif);font-weight:700;font-size:21px;color:var(--navy);line-height:1.3;margin-top:18px;padding-top:14px;border-top:1px solid var(--rule)}
.cat__desc{display:block;font-size:17px;line-height:1.6;color:var(--ink);margin-top:8px}
.cat__more{display:inline-flex;align-items:center;gap:8px;margin-top:12px;font-size:14px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--champ-deep)}
.cat__more svg{width:16px;height:16px}

/* first steps */
.first__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:64px;align-items:start}
.steps{list-style:none;border-bottom:1px solid var(--rule)}
.steps li{display:grid;grid-template-columns:52px minmax(0,1fr);gap:14px;padding:20px 0;border-top:1px solid var(--rule)}
.steps__n{font-family:var(--serif);font-size:28px;line-height:1;color:var(--champ-deep)}
.steps p{margin:0;font-size:18px}
.steps h3{margin:0 0 4px;font-size:1.1rem}

/* how band (navy, vertical hairlines) */
.how__head{max-width:760px;margin-bottom:48px}
.how__cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.how__col{padding:0 28px;border-left:1px solid var(--rule-light)}
.how__col:first-child{border-left:0;padding-left:0}
.how__n{display:block;font-family:var(--serif);font-size:15px;color:var(--champ);margin-bottom:14px;letter-spacing:.1em}
.how__col h3{font-size:1.2rem}
.how__col p{font-size:17px;margin:0}
.how--grid .how__cols{grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--rule-light)}
.how--grid .how__col{padding:28px 32px;border-left:0;border-bottom:1px solid var(--rule-light)}
.how--grid .how__col:nth-child(even){border-left:1px solid var(--rule-light)}
.how--grid .how__col:nth-child(odd){padding-left:0}

/* feature (magazine two-column) */
.feature__grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:72px;align-items:center}
.feature__media img{width:100%;height:auto}
.feature__copy p{font-size:18px}

/* rate card */
.rate__head{max-width:820px;margin-bottom:40px}
.rate__answer{font-size:19px;color:var(--ink);margin:0}
.rate__table{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:2px solid var(--navy);border-bottom:1px solid var(--rule)}
.rate__col{padding:30px 30px 34px;border-left:1px solid var(--rule)}
.rate__col:first-child{border-left:0;padding-left:0}
.rate__col h3{font-family:var(--sans);font-size:15px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--navy);margin-bottom:10px}
.rate__range{font-family:var(--serif);font-size:30px;color:var(--navy);margin:0 0 16px;line-height:1.2}
.rate__col ul{list-style:none}
.rate__col li{font-size:17px;padding:6px 0 6px 18px;position:relative}
.rate__col li::before{content:"";position:absolute;left:0;top:.95em;width:6px;height:6px;background:var(--champ-deep)}
.rate__note{margin:28px 0 0;font-size:17px;max-width:880px}
.rate__note a,.prose a,.local__copy a{text-decoration:underline;text-underline-offset:3px}

/* dry-out steps + claim note */
.dry__steps{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:36px}
.dry__steps li{border-top:1px solid var(--navy);padding-top:18px}
.dry__n{display:block;font-family:var(--serif);font-size:38px;line-height:1;color:var(--champ-deep);margin-bottom:12px}
.dry__steps h3{font-size:1.15rem}
.dry__steps p{font-size:17px;margin:0}
.claim{display:grid;grid-template-columns:56px minmax(0,1fr);gap:20px;background:var(--paper);border:1px solid var(--rule);border-left:3px solid var(--navy);padding:30px 34px;max-width:980px;margin:0 auto}
.claim__icon{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--champ);color:var(--navy)}
.claim__icon svg{width:24px;height:24px}
.claim p{margin:0;font-size:17px}

/* gallery mosaic */
.mosaic{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:180px;gap:14px;grid-auto-flow:dense}
.mosaic__cell{margin:0;overflow:hidden;background:var(--sand)}
.mosaic__cell img{width:100%;height:100%;object-fit:cover}
.mosaic__cell.tall{grid-row:span 2}
.mosaic__cell.wide{grid-column:span 2}

/* water categories */
.wcat__row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.wcat__card{background:var(--paper);border:1px solid var(--rule);border-top:4px solid var(--navy);padding:28px 28px 30px}
.wcat__card p{font-size:17px}
.wcat--1{border-top-color:#2f6f94}
.wcat--2{border-top-color:#9a7430}
.wcat--3{border-top-color:#13294b}

/* coverage */
.cov__full{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:48px;align-items:start;margin-bottom:52px}
.cov__map iframe{display:block}
.zipgrid{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0 18px}
.zipgrid li{font-family:var(--serif);font-size:17px;color:var(--navy);text-align:center;border:1px solid var(--rule);padding:6px 0;background:var(--paper)}
.cov__zips p{font-size:17px}
.hoods{columns:3 250px;column-gap:44px}
.hood{break-inside:avoid;border-top:1px solid var(--rule);padding-top:14px;margin-bottom:26px}
.hood h3{font-size:1.05rem;margin-bottom:6px}
.hood__list{font-size:17px;margin:0;color:var(--ink)}
.cov__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center}
.cov__note p{font-size:18px}

/* reach band */
.reach__grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:64px;align-items:center}
.reach p{font-size:18px}
.idcard{display:flex;flex-direction:column;gap:12px;border:1px solid var(--champ);padding:30px 32px}
.idcard__name{font-family:var(--serif);font-size:22px;font-weight:700;color:var(--ivory);margin-bottom:4px}
.idcard__row{display:flex;align-items:center;gap:12px;font-size:17px;color:var(--on-navy)}
.idcard__row .ic{color:var(--champ)}
.idcard a{color:var(--ivory)}
.idcard .gsearch{color:var(--champ);align-self:flex-start}

/* local conditions */
.local__grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:64px;align-items:center}
.local__list{list-style:none;border-bottom:1px solid var(--rule)}
.local__list li{font-size:17px;padding:14px 0 14px 22px;border-top:1px solid var(--rule);position:relative}
.local__list li::before{content:"";position:absolute;left:0;top:1.35em;width:8px;height:8px;border:1.5px solid var(--champ-deep);transform:rotate(45deg)}
.local__media img{width:100%}

/* FAQ */
.faq__grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:64px;align-items:start}
.faq__side{position:sticky;top:110px}
.faq__side p{font-size:18px}
.faq__list{border-bottom:1px solid var(--rule)}
.faq__item{border-top:1px solid var(--rule)}
.faq__item summary{list-style:none;cursor:pointer;font-family:var(--serif);font-weight:700;font-size:19px;line-height:1.4;color:var(--navy);padding:20px 44px 20px 0;position:relative}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary::before,.faq__item summary::after{content:"";position:absolute;right:8px;top:50%;width:16px;height:2px;background:var(--champ-deep);transition:transform .2s}
.faq__item summary::after{transform:rotate(90deg)}
.faq__item[open] summary::after{transform:rotate(0)}
.faq__a p{font-size:17px;margin:0 0 22px}

/* closing band */
.close-band{background:var(--navy-deep);padding:76px 0;text-align:center}
.close-band__frame{border:1px solid var(--rule-light);padding:56px 40px;max-width:1000px}
.close-band h2{color:var(--ivory)}
.close-band p{color:var(--on-navy);max-width:640px;margin:0 auto 28px;font-size:18px}
.close-band .kicker{justify-content:center}

/* service hero + spec strip */
.s-hero{padding:48px 0 64px;border-bottom:1px solid var(--rule)}
.s-hero__grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:64px;align-items:center}
.s-hero__img{width:100%;aspect-ratio:4/3;object-fit:cover}
.s-hero .dek{margin-bottom:28px}
.bc{display:flex;flex-wrap:wrap;gap:8px;font-size:14px;color:var(--ink-2);margin-bottom:18px}
.bc a{color:var(--ink-2)}
.spec{background:var(--navy)}
.spec__row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.spec__item{padding:22px 24px;border-left:1px solid var(--rule-light);display:flex;flex-direction:column;gap:2px}
.spec__item:first-child{border-left:0;padding-left:0}
.spec__k{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--champ);font-weight:700}
.spec__v{font-family:var(--serif);font-size:18px;color:var(--ivory);line-height:1.35}
.first__note p{font-size:18px}

/* process strip */
.proc__list{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;position:relative}
.proc__step{position:relative;padding-top:64px}
.proc__step::before{content:"";position:absolute;top:22px;left:48px;right:-32px;height:1px;background:var(--rule)}
.proc__step:last-child::before{display:none}
.proc__n{position:absolute;top:0;left:0;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--champ-deep);border-radius:50%;font-family:var(--serif);font-size:19px;color:var(--navy);background:var(--ivory)}
.proc__step h3{font-size:1.12rem}
.proc__step p{font-size:17px;margin:0}

/* guide + sticky rail */
.guide__grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:64px;align-items:start}
.prose{max-width:70ch}
.prose h2{font-size:clamp(1.4rem,2.1vw,1.8rem);margin-top:1.6em;scroll-margin-top:110px}
.prose h2:first-child{margin-top:0}
.prose p{font-size:18px}
.prose ul{list-style:none;margin:0 0 1.2em}
.prose ul li{font-size:18px;padding:5px 0 5px 22px;position:relative}
.prose ul li::before{content:"";position:absolute;left:2px;top:1em;width:6px;height:6px;background:var(--champ-deep)}
.callout{background:var(--paper);border-left:3px solid var(--champ);padding:22px 26px;margin:28px 0}
.callout h3{font-size:1.1rem;margin-bottom:6px}
.callout p{margin:0;font-size:17px}
.rail{position:sticky;top:110px;display:flex;flex-direction:column;gap:22px}
.rail__card{background:var(--navy);padding:26px;outline:1px solid var(--champ);outline-offset:-8px}
.rail__card p{color:var(--on-navy);font-size:16px;margin:0}
.rail__lbl{margin:0}
.rail__num{display:block;font-family:var(--serif);font-weight:700;font-size:25px;color:var(--champ);text-decoration:none;margin:4px 0 10px}
.rail__toc{border-top:1px solid var(--rule);padding-top:16px}
.rail__toc ul{list-style:none}
.rail__toc a{display:block;font-size:16px;line-height:1.4;padding:8px 0;color:var(--navy);text-decoration:none;border-bottom:1px solid var(--rule)}

/* related */
.rel__row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.rel__link{display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:2px solid var(--navy);padding:18px 0;text-decoration:none;color:var(--navy)}
.rel__t{font-family:var(--serif);font-weight:700;font-size:19px;line-height:1.35}
.rel .split-head{grid-template-columns:1fr}

/* page hero (about/contact/tools/legal) */
.p-hero{padding:56px 0 52px;border-bottom:1px solid var(--rule)}
.p-hero__in>h1,.p-hero__in>.dek{max-width:900px}
.p-hero .dek{margin-bottom:22px}

/* about checklist, contact, areas */
.checks{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px}
.checks li{font-size:17px;padding:16px 0 16px 30px;border-top:1px solid var(--rule);position:relative}
.checks li::before{content:"";position:absolute;left:2px;top:1.3em;width:12px;height:7px;border-left:2px solid var(--champ-deep);border-bottom:2px solid var(--champ-deep);transform:rotate(-45deg)}
.contact__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.contact__card{border:1px solid var(--rule);background:var(--paper);padding:30px 32px}
.contact__card h2{display:flex;align-items:center;gap:12px;font-size:1.35rem}
.contact__card h2 svg{color:var(--champ-deep)}
.contact__card p{font-size:17px}
.contact__big{font-family:var(--serif);font-weight:700;font-size:30px;text-decoration:none;color:var(--navy)}
.area__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.area__card{background:var(--paper);border:1px solid var(--rule);border-top:3px solid var(--champ);padding:26px 28px}
.area__card p{font-size:17px}
.area__zip{font-size:14px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--champ-deep);margin:0 0 10px}

/* tools */
.tool__grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:48px;align-items:start}
.calc{display:flex;flex-direction:column;gap:20px}
.calc__field label{display:block;font-weight:600;font-size:17px;color:var(--navy);margin-bottom:8px}
.calc__field select{width:100%;max-width:100%;font:inherit;font-size:17px;color:var(--ink);padding:12px 14px;border:1px solid var(--navy);border-radius:2px;background:var(--paper)}
.calc__out{background:var(--navy);padding:34px;outline:1px solid var(--champ);outline-offset:-10px}
.calc__h{color:var(--ivory);font-size:1.3rem}
.calc__out .calc__result{font-family:var(--serif);font-weight:700;font-size:34px;color:var(--champ);margin:0 0 12px;line-height:1.2}
.calc__out p{color:var(--on-navy);font-size:17px}
.calc__out .btn{margin:8px 0 18px}
.calc__note{font-size:16px}
.tool__how{max-width:820px}

/* legal + sitemap */
.prose--legal{max-width:760px}
.prose--legal h2{font-size:1.4rem}
.sitemap-groups{columns:2 320px;column-gap:56px}
.sitemap-groups section{break-inside:avoid;margin-bottom:32px}
.sitemap-groups h2{font-size:1.3rem;border-bottom:1px solid var(--rule);padding-bottom:8px}
.sitemap-groups ul{list-style:none}
.sitemap-groups li{padding:6px 0}
.sitemap-groups a{font-size:17px}

/* map strip + footer */
.map-strip{background:var(--sand);padding:40px 0 0;border-top:1px solid var(--rule)}
.map-strip__label{display:flex;align-items:center;gap:14px;flex-wrap:wrap;color:var(--ink);font-size:16px;margin:0 0 14px}
.map-strip__label .kicker{margin:0}
.map-strip iframe{display:block;border-top:2px solid var(--navy) !important}
.site-footer{background:var(--navy-deep);color:var(--on-navy);padding:56px 0 44px}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:44px}
.foot-name{display:block;font-family:var(--serif);font-weight:700;font-size:22px;color:var(--ivory);margin-bottom:10px}
.site-footer p{font-size:16px;color:var(--on-navy)}
.site-footer a{color:var(--ivory)}
.site-footer h3{font-family:var(--sans);font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--champ);margin-bottom:14px}
.foot-list{list-style:none}
.foot-list li{padding:5px 0}
.foot-list a{font-size:16px;text-decoration:none}
.foot-list a:hover{text-decoration:underline}
.site-footer .gsearch{color:var(--champ)}
.foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;border-top:1px solid var(--rule-light);margin-top:44px;padding-top:22px;font-size:15px;color:var(--on-navy)}
.foot-bottom a{color:var(--champ)}

/* sticky callbar (mobile) */
.callbar{display:none}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .nav{display:none}
  .nav-toggle{display:inline-flex}
  body.is-menu{overflow:hidden}
  body.is-menu .nav{display:flex;flex-direction:column;align-items:stretch;gap:0;position:fixed;inset:0;z-index:200;background:var(--navy);padding:76px 28px 40px;overflow-y:auto;margin:0}
  body.is-menu .nav>a,body.is-menu .drop>a{display:block;color:var(--ivory);font-size:17px;padding:16px 0;border-bottom:1px solid var(--rule-light)}
  body.is-menu .drop__menu{position:static;box-shadow:none;border:0;background:transparent;max-height:none;min-width:0;padding:4px 0 10px 14px}
  body.is-menu .drop__menu a{color:var(--on-navy);font-size:17px;padding:9px 0}
  body.is-menu .drop__menu a:hover{background:transparent;color:var(--champ)}
  body.is-menu .menu-close{display:inline-flex;position:absolute;top:16px;right:20px;width:48px;height:48px;align-items:center;justify-content:center;background:transparent;border:1px solid var(--champ);color:var(--champ);border-radius:2px;cursor:pointer}
  .cat__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .how__cols{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:36px}
  .how__col:nth-child(3){border-left:0;padding-left:0}
  .dry__steps,.proc__list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .proc__step:nth-child(2)::before{display:none}
  .foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:860px){
  .band{padding:64px 0}
  .cover__grid,.s-hero__grid,.feature__grid,.first__grid,.local__grid,.faq__grid,.guide__grid,.reach__grid,.cov__full,.cov__grid,.tool__grid,.split-head{grid-template-columns:minmax(0,1fr);gap:36px}
  .split-head{gap:14px}
  .faq__side,.rail{position:static}
  .rate__table{grid-template-columns:minmax(0,1fr)}
  .rate__col{border-left:0;padding-left:0;padding-right:0;border-top:1px solid var(--rule)}
  .rate__col:first-child{border-top:0}
  .wcat__row,.area__grid,.contact__grid,.rel__row,.checks{grid-template-columns:minmax(0,1fr)}
  .spec__row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .spec__item:nth-child(3){border-left:0;padding-left:0}
  .how--grid .how__cols{grid-template-columns:minmax(0,1fr)}
  .how--grid .how__col,.how--grid .how__col:nth-child(even){border-left:0;padding-left:0;padding-right:0}
  .site-footer{padding-bottom:110px}
  .callbar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--navy);border-top:2px solid var(--champ)}
  .callbar a{display:flex;align-items:center;justify-content:center;gap:10px;padding:13px 16px;color:var(--ivory);text-decoration:none;font-weight:700;font-size:17px}
  .callbar small{font-weight:600;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--champ)}
  .callbar svg{color:var(--champ)}
}
@media (max-width:600px){
  :root{--gutter:18px}
  body{font-size:17px}
  .ribbon{display:none}
  .masthead__in{gap:10px;min-height:66px}
  .brand__mark{width:38px;height:38px}
  .brand__name{font-size:16px;white-space:normal;max-width:9.5em}
  .cat__media{aspect-ratio:16/9}
  .brand__sub{display:none}
  .mast-phone{padding:10px;outline-offset:2px}
  .mast-phone__txt{display:none}
  .cover{padding:32px 0 52px}
  .s-hero,.p-hero{padding:30px 0 44px}
  .dek{font-size:18px}
  .btn__num{font-size:21px}
  .cat__grid,.how__cols,.dry__steps,.proc__list,.foot-grid{grid-template-columns:minmax(0,1fr)}
  .how__col{border-left:0;padding-left:0;padding-right:0;border-top:1px solid var(--rule-light);padding-top:24px}
  .how__col:first-child{border-top:0;padding-top:0}
  .how--grid .how__col{border-top:0;padding-top:24px}
  .how--grid .how__col:first-child{padding-top:24px}
  .proc__step::before{display:none}
  .mosaic{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:140px;gap:10px}
  .zipgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .spec__row{grid-template-columns:minmax(0,1fr)}
  .spec__item,.spec__item:nth-child(3){border-left:0;padding:14px 0;border-top:1px solid var(--rule-light)}
  .spec__item:first-child{border-top:0}
  .claim{grid-template-columns:minmax(0,1fr);padding:24px 22px}
  .close-band__frame{padding:40px 22px}
  .contact__card,.area__card,.wcat__card{padding:24px 22px}
  .attrs li{padding:0 12px}
  .framed{outline-offset:5px}
}
