/* Functional corrections using existing design tokens. */
[hidden]{display:none!important}
.reveal{opacity:1;transform:none}
:focus-visible{outline:3px solid var(--navy-800);outline-offset:4px}
.hero :focus-visible,.cta :focus-visible,.mobile-nav :focus-visible,footer :focus-visible{outline-color:var(--gold-300)}
.skip-link{position:fixed;top:8px;left:8px;z-index:1000;background:#fff;color:var(--navy-900);padding:12px 18px;transform:translateY(-150%)}
.skip-link:focus{transform:none}
.btn-primary{background:var(--copper-600)}
.btn-primary:hover{background:var(--copper-700)}
.field label,.form-card .fine,.area .town .pr{color:var(--slate-600)}
.field input,.field select,.field textarea{font-size:16px}
.form-status{color:var(--navy-900);font-size:14px;line-height:1.5}
.mobile-nav{overflow-y:auto;overscroll-behavior:contain}
/* Header dropdowns use the site's existing fonts, palette and borders. */
header.site nav{align-items:center;gap:22px}
header.site nav>a{display:flex;align-items:center;min-height:44px;white-space:nowrap}
.nav-dropdown{position:relative}
.nav-trigger{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;min-height:44px}
.nav-trigger::-webkit-details-marker{display:none}
header.site .nav-trigger{font:500 14.5px var(--font-body);color:var(--slate-700);white-space:nowrap}
header.site .nav-trigger:hover,header.site .nav-dropdown[open]>.nav-trigger{color:var(--copper-600)}
.nav-chevron{width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin:0 2px 4px;flex-shrink:0}
.nav-dropdown[open]>.nav-trigger .nav-chevron{transform:rotate(225deg);margin-top:5px}
.nav-panel{list-style:none;margin:0;padding:8px;position:absolute;top:100%;left:0;width:310px;max-height:calc(100dvh - 130px);overflow-y:auto;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}
.nav-area .nav-panel{left:auto;right:0;width:240px}
header.site .nav-panel a{display:block;padding:12px;line-height:1.4;border-radius:4px;font-size:14.5px}
header.site .nav-panel a:hover,header.site .nav-panel a:focus-visible{background:var(--sand-100);color:var(--copper-600)}
.mobile-nav>*{flex-shrink:0}
.mobile-nav .nav-trigger{font:700 26px var(--font-display);color:#fff;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.1)}
.mobile-nav .nav-panel{position:static;width:auto;max-height:none;margin:4px 0 8px;padding:0 0 0 16px;background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible}
.mobile-nav .nav-panel a{display:block;font:500 17px/1.4 var(--font-body);padding:12px 0;color:#fff;min-height:44px}
.mobile-nav .nav-panel a:hover{color:var(--gold-300)}
@media(min-width:901px) and (max-width:1180px){header.site .wrap{gap:16px}header.site nav{gap:16px}.brand .sub{display:none}.head-cta{padding:12px 14px}.head-cta svg{display:none}}
.mobile-nav .mcta .btn{font-size:16px;white-space:normal;text-align:center}
.svc{display:flex;flex-direction:column}
.svc .ico{flex-shrink:0}
.svc h3{margin-bottom:12px}
.svc .more{align-self:flex-start;flex-shrink:0}
.svc .more:not(.details-link){margin-top:auto}
.svc .more.details-link{display:flex;margin-top:12px;text-decoration:underline;text-underline-offset:3px;color:var(--copper-600)}
.svc.feature .details-link{color:var(--copper-300)}
.detail-copy p,.detail-copy li{font-size:17px;line-height:1.65;color:var(--fg-2)}
.breadcrumbs{font-size:14px;line-height:1.5;margin-bottom:24px;color:var(--fg-2)}
.detail-copy h2{font-size:30px;margin-top:32px}
.detail-copy h3{font-size:23px;margin-top:24px}
.detail-copy ul{padding-left:24px}
.detail-copy ol{padding-left:24px}
.detail-copy li{margin-bottom:10px}
.detail-copy a:not(.btn){text-decoration:underline;text-underline-offset:3px;color:var(--navy-800)}
.area .map iframe{display:block;width:100%;height:100%;border:0}
.business-profile-link{font-size:15px;line-height:1.6;color:var(--fg-2);margin:20px 0 0}
.business-profile-link a{text-decoration:underline;text-underline-offset:3px;color:var(--navy-800)}
@media(max-width:900px){
 .head-cta{display:inline-flex;padding:12px 13px;font-size:13px;min-height:44px}
 .head-cta svg{display:none}
 .head-right{gap:8px}
}
@media(max-width:380px){.brand .word{font-size:16px}.brand .mark{height:30px}.brand{gap:7px}.head-cta{padding:12px 8px;font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media(max-width:680px){
 .hero-copy,.hero-media,.cta-copy,.form-card,.shead,.area>div{min-width:0}
 .eyebrow .txt{white-space:normal;line-height:1.5}
 .btn{max-width:100%;white-space:normal;text-align:center;line-height:1.25}
}
@media(max-width:380px){.util .wrap{height:auto;min-height:40px;flex-wrap:wrap;justify-content:center;gap:5px;padding-top:7px;padding-bottom:7px}}
.field input::placeholder,.field textarea::placeholder{color:var(--slate-600);opacity:1}
.foot-bottom span{color:rgba(255,255,255,.7)}
/* Housecall Pro lead form overlay; existing request button styles are retained. */
.hcp-lead-dialog{width:min(680px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:24px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--white);color:var(--ink);box-shadow:var(--shadow-lg);overflow-y:auto}
.hcp-lead-dialog::backdrop{background:rgba(4,18,47,.75)}
.hcp-lead-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.hcp-lead-heading h2{font-size:25px}
.hcp-lead-close{font:600 14px var(--font-body);padding:12px 16px;min-height:44px;background:var(--sand-100);color:var(--navy-800);border:1px solid var(--line);border-radius:var(--radius-md);cursor:pointer}
.hcp-lead-help{font-size:14px;line-height:1.5;color:var(--fg-2)}
.hcp-lead-help a{text-decoration:underline;text-underline-offset:3px;color:var(--navy-800)}
#hcp-lead-iframe{display:block;width:100%;height:720px;border:0;background:#fff}
@media(max-width:520px){.hcp-lead-dialog{padding:16px}.hcp-lead-heading h2{font-size:22px}}
