/* Local service pages reuse Durden's existing red, white and blue design. */
.mobile-location{background:var(--white)}
.mobile-location .section{padding-block:64px}
.mobile-location .section.alt{background:var(--light)}
.location-breadcrumb{font-size:.875rem;margin-bottom:24px;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.location-breadcrumb a{color:var(--white);text-decoration:underline;text-underline-offset:4px}
.location-actions{display:flex;justify-content:center;align-items:center;gap:16px;flex-wrap:wrap;margin-top:24px}
.location-actions .btn{white-space:normal;text-align:center}
.mobile-location .page-hero .btn-outline-white{background:var(--white);color:var(--blue-dark)}
.mobile-location .page-hero .btn-outline-white:hover{background:var(--light);color:var(--blue-dark)}
.location-split{display:grid;grid-template-columns:1.1fr 1fr;gap:64px;align-items:start}
.location-reading{max-width:900px}
.location-estimate{padding:32px;background:var(--light);border-top:4px solid var(--blue);border-radius:var(--radius)}
.location-estimate h2{font-size:1.5rem}
.location-estimate a,.location-text-link{font-weight:600;text-decoration:underline;text-underline-offset:4px}
.location-service-columns{grid-template-columns:1fr 1fr}
.location-service-columns article+article{border-left:1px solid var(--gray-light);padding-left:48px}
.location-faq{margin-top:24px;border-top:1px solid var(--gray-light)}
.location-faq details{border-bottom:1px solid var(--gray-light)}
.location-faq summary{padding:20px 0;cursor:pointer;font-weight:600;color:var(--blue-dark)}
.location-faq p{margin:0;padding:0 0 24px}
.location-faq summary:focus-visible,.location-text-link:focus-visible,.area-link:focus-visible{outline:3px solid var(--blue);outline-offset:5px}
.areas-section{background:var(--light)}
.area-link{display:block;max-width:720px;margin:32px auto 0;padding:32px;background:var(--white);border:1px solid var(--gray-light);border-left:4px solid var(--blue);border-radius:var(--radius);text-align:left}
.area-link h3{font-size:1.5rem;margin-bottom:12px}
.area-link p{color:var(--dark);margin:0 0 16px}
.area-link span{font-weight:600;text-decoration:underline;text-underline-offset:4px}
.area-link:hover{border-left-color:var(--red)}
#residential-roofing,#commercial-roofing,#roof-repairs,#areas-we-serve{scroll-margin-top:200px}
@media(max-width:767px){
 .mobile-location .section{padding-block:40px}
 .location-split{grid-template-columns:1fr;gap:32px}
 .location-service-columns article+article{border-left:0;border-top:1px solid var(--gray-light);padding-left:0;padding-top:32px}
 .location-estimate,.area-link{padding:24px}
 .location-actions{gap:12px}
 .location-actions .btn{width:100%}
 .location-breadcrumb{font-size:.8125rem}
}
/* Areas We Serve map */
.sa-wrap{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:36px;align-items:center;max-width:1100px;margin:32px auto 0;text-align:left}
.sa-map{background:var(--white);border:1px solid var(--gray-light);border-radius:var(--radius);padding:12px;box-shadow:0 6px 20px rgba(31,41,55,.06)}
.sa-map-svg{display:block;width:100%;height:auto}
.sa-water{fill:#e8f0fb}
.sa-neighbors path{fill:#eef1f5;stroke:#d3d9e2;stroke-width:1}
.sa-states path{fill:var(--white);stroke:#9aa6b8;stroke-width:1.2}
.sa-served path{fill:var(--blue);fill-opacity:.82;transition:fill-opacity .2s}
.sa-served path:hover{fill-opacity:1}
.sa-county-lines{fill:none;stroke:#cdd5e0;stroke-width:.5}
.sa-state-lines{fill:none;stroke:#6b7a90;stroke-width:1.4}
.sa-state-label{font:700 22px var(--serif);letter-spacing:.12em;fill:#9aa6b8}
.sa-gulf-label{font:italic 500 19px var(--sans);fill:#6d8bbd;letter-spacing:.06em}
.sa-city line{stroke:var(--dark);stroke-width:1.2}
.sa-city .sa-dot{fill:var(--red);stroke:var(--white);stroke-width:2.5;transition:r .15s}
.sa-city text{font:700 20px var(--sans);fill:var(--dark);paint-order:stroke;stroke:#e8f0fb;stroke-width:4px;stroke-linejoin:round}
.sa-city .sa-sub{font-weight:600;font-size:16px;fill:var(--blue)}
.sa-city.sa-has-page .sa-sub{text-decoration:underline}
.sa-city:hover .sa-dot,.sa-city:focus .sa-dot{r:10}
.sa-city:hover text:first-of-type,.sa-city:focus text:first-of-type{fill:var(--red)}
.sa-city:focus{outline:none}
.sa-city:focus-visible .sa-dot{stroke:var(--blue);stroke-width:4}
.sa-legend{display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:center;margin:10px 0 2px;font-size:.9rem;color:var(--gray)}
.sa-legend span{display:inline-flex;align-items:center;gap:8px}
.sa-legend i{display:inline-block;width:16px;height:16px;border-radius:3px;background:var(--blue);opacity:.82}
.sa-legend i.sa-leg-dot{border-radius:50%;background:var(--red);opacity:1;width:13px;height:13px}
.sa-list{display:grid;gap:18px}
.sa-list .area-link{margin:0;max-width:none}
.sa-list .area-link .sa-counties{font-size:.92rem;color:var(--gray);margin:0 0 14px}
@media (max-width:860px){.sa-wrap{grid-template-columns:1fr;gap:24px}}
@media (max-width:600px){.sa-map{padding:8px}.sa-city text{font-size:24px}.sa-city .sa-sub{font-size:18px}.sa-state-label{font-size:26px}}
.sa-coast{max-width:1100px;margin:32px auto 0;text-align:left;scroll-margin-top:200px}
.sa-coast-title{font-size:1.4rem;margin:6px 6px 12px;color:var(--blue)}
.sa-county-label{font:700 13px var(--sans);letter-spacing:.14em;fill:#fff;fill-opacity:.75;pointer-events:none}
.sa-county-lines-inset{stroke:#ffffff;stroke-opacity:.55;stroke-width:1}
.sa-cities-inset text{font-size:14px}
.sa-zoom rect{fill:none;stroke:var(--red);stroke-width:1.6;stroke-dasharray:5 4}
.sa-zoom text{font:600 14px var(--sans);fill:var(--red);paint-order:stroke;stroke:#e8f0fb;stroke-width:4px}
.sa-zoom:hover rect{stroke-width:2.5}
@media (max-width:600px){.sa-county-label{font-size:12px}.sa-zoom text{font-size:20px}}
.sa-swipe{display:none}
@media (max-width:760px){.sa-coast-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:6px}.sa-coast-scroll .sa-inset-svg{width:960px;max-width:none}.sa-swipe{display:block;text-align:center;font-size:.85rem;color:var(--gray);margin:8px 0 0}}
.sa-legend i{flex-shrink:0}
.sa-note{max-width:760px;margin:14px auto 4px;padding:14px 18px;background:var(--light);border-left:4px solid var(--red);border-radius:6px;text-align:center;color:var(--dark)}
.sa-note a{color:var(--blue);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.sa-towns{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 24px;margin:20px 6px 6px}
.sa-towns h4{font-size:.95rem;color:var(--blue);margin:0 0 4px}
.sa-towns p{font-size:.88rem;color:var(--dark);margin:0;line-height:1.5}
@media (max-width:900px){.sa-towns{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.sa-towns{grid-template-columns:1fr}}
.sa-note a[href^="tel"]{white-space:nowrap}
.sa-towns a{color:var(--dark);text-decoration:underline;text-decoration-color:#b8c4d8;text-underline-offset:3px}
.sa-towns a:hover{color:var(--red)}
.mobile-location .location-reading a:not(.btn):not(.location-text-link){color:var(--blue);text-decoration:underline}
.sa-legend i.sa-leg-office{width:17px;height:17px;box-shadow:0 0 0 2px #fff,0 0 0 3px var(--red)}
.sa-hq .sa-dot{stroke:var(--red);stroke-width:2;fill:var(--red);paint-order:stroke}
.location-office{border:1px solid var(--gray-light);border-left:4px solid var(--red);border-radius:var(--radius);padding:28px 32px;background:var(--white)}
.location-office h2{margin-top:0}
.location-office-address{font-size:1.1rem;line-height:1.6}
.location-office .location-actions{justify-content:flex-start}
