/* Local interaction support. Original responsive layout and design live in assets. */
html {scroll-behavior:smooth}
#quote-form {scroll-margin-top:calc(var(--quote-header-offset, 16px) + var(--quote-intro-height, 160px))}
a[href],button {touch-action:manipulation}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible {outline:3px solid #0047ff;outline-offset:4px}
.unifiednav__item-wrap:focus-within > .unifiednav__container[data-depth],
.unifiednav__item-wrap.local-expanded > .unifiednav__container[data-depth] {visibility:visible!important;opacity:1!important;pointer-events:auto!important;display:block!important}
.netlify-honeypot,.form-status[hidden] {display:none!important}
.form-status {font:14px/1.6 Inter,Arial,sans-serif;color:#1b2a49;padding:16px;background:#e8edf5;border-radius:6px;margin:16px 0 0}
.form-status[data-state="error"] {background:#fff1f1;color:#842323;border:1px solid #e1b2b2}
.form-status[data-state="success"] {background:#eaf5ed;color:#174d2b;border:1px solid #b1d5b9}
button.advanced-form-button {cursor:pointer;font:inherit;text-align:center}
#dm .dmInner button.advanced-form-button {border-radius:6px!important}
button.advanced-form-button:disabled {cursor:wait;opacity:.65}
body.local-menu-open {overflow:hidden!important}
body.local-menu-open #hamburger-drawer {display:block!important;visibility:visible!important;opacity:1!important;transform:none!important;position:fixed!important;inset:0 0 0 auto!important;z-index:10001!important;max-width:100%;width:80vw;max-width:400px;height:100dvh!important;overflow:auto!important;background:white!important}
.local-menu-backdrop {display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:10000;border:0;width:100%}
.local-menu-open .local-menu-backdrop {display:block}
#hamburger-drawer .local-expanded > ul {display:block!important;position:static!important;visibility:visible!important;opacity:1!important;transform:none!important}
.local-lightbox {border:0;padding:0;max-width:95vw;max-height:94vh;background:#fff;color:#1b2a49;box-shadow:0 10px 50px #0008;border-radius:6px}
.local-lightbox::backdrop {background:#000c}
.local-lightbox img {max-width:90vw;max-height:80vh;object-fit:contain;display:block}
.local-lightbox button {float:right;padding:8px 16px;background:#003bff;color:#fff;border:0;cursor:pointer;font-size:20px}
.local-lightbox p {padding:16px;margin:0}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:0.01ms!important;transition-duration:0.01ms!important}}
.local-map {position:relative;width:100%;height:100%;min-height:300px;overflow:hidden;cursor:grab;touch-action:none;background:#e8edf4}
.local-map:active {cursor:grabbing}
.local-map>img {width:100%;height:100%;object-fit:fill;display:block;transform-origin:center;user-select:none;pointer-events:none}
.local-map-tools {position:absolute;top:10px;left:10px;display:flex;flex-direction:column;box-shadow:0 1px 4px #0004;border-radius:4px;overflow:hidden;background:#fff}
.local-map-tools button {font:bold 22px/30px Arial;background:#fff;color:#333;border:0;border-bottom:1px solid #ddd;width:32px;height:31px;cursor:pointer;padding:0}
.local-map-tools button:last-child {border:0}
.local-map-caption {position:absolute;bottom:0;left:0;right:0;display:flex;gap:8px;justify-content:space-between;align-items:center;background:#fffffff0;font:11px/1.4 Arial;color:#333;padding:4px 6px;cursor:default}
.local-map-caption a {color:#1b2a49;text-decoration:underline}
#hamburger-drawer .unifiednav__item-wrap.local-expanded {display:block!important;height:auto!important}
#hamburger-drawer .local-expanded > ul {height:auto!important;max-height:none!important;overflow:visible!important}
.unifiednav__item-wrap.local-expanded > ul {height:auto!important;max-height:none!important}
.local-map {position:absolute;inset:0;min-height:0!important;height:100%!important}
.local-map-extra {left:auto;right:0;top:0;padding:10px;background:#eee9e1;border-radius:0;box-shadow:none;gap:3px}
.local-map-extra button {border:1px solid #ddd;border-radius:3px;box-shadow:0 1px 3px #0003}
.local-map-alternate>img {filter:grayscale(1) contrast(1.15)}
.local-map:fullscreen,.local-map-expanded {width:100vw!important;height:100dvh!important;background:#eee9e1}
.local-map-expanded {position:fixed!important;inset:0!important;z-index:10002}
.thumbnailInnerWrapper:focus-within {opacity:1!important}
/* Local before/after photos, preserved from the existing project. */
#dm .dmInner .project-gallery {display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;width:100%;height:auto!important}
#dm .dmInner .project-gallery figure {margin:0;min-width:0;background:white;border-radius:8px;overflow:hidden;border:1px solid #c9d4e3}
#dm .dmInner .project-gallery a {display:block;line-height:0}
#dm .dmInner .project-gallery img {display:block;width:100%;height:340px;object-fit:cover;object-position:center}
#dm .dmInner .project-gallery figcaption {font:600 16px/1.5 Inter,Arial,sans-serif;text-align:center;color:#1b2a4a;padding:14px}
.service-area-fallback {display:block;width:100%;height:100%;object-fit:cover}
.service-area-fallback-link {position:absolute;bottom:8px;right:8px;padding:8px 12px;background:white;color:#1b2a4a;border-radius:4px}
@media(max-width:640px){#dm .dmInner .project-gallery{grid-template-columns:1fr;gap:18px}#dm .dmInner .project-gallery img{height:300px}}
#dm .dmInner .local-faq-list {width:100%;color:#1b2a4a}
#dm .dmInner .local-faq {border:1px solid #c9d4e3;background:#fff;border-radius:6px;margin:0 0 12px;overflow:hidden}
#dm .dmInner .local-faq summary {list-style:none;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 24px;cursor:pointer}
#dm .dmInner .local-faq summary::-webkit-details-marker {display:none}
#dm .dmInner .local-faq h3 {font:600 20px/1.4 'Space Grotesk',Inter,Arial,sans-serif;color:#1b2a4a;margin:0;padding:0;text-align:left}
#dm .dmInner .local-faq summary>span {font:24px/1 Arial,sans-serif;color:#003bee;flex-shrink:0}
#dm .dmInner .local-faq[open] summary>span {transform:rotate(45deg)}
#dm .dmInner .local-faq-answer {padding:0 24px 24px}
#dm .dmInner .local-faq-answer p {font:400 16px/1.75 Inter,Arial,sans-serif;color:#1b2a4a;margin:0;padding:0;text-align:left}
#dm .dmInner .local-faq summary:focus-visible {outline:3px solid #003bee;outline-offset:-4px}
@media(max-width:640px){#dm .dmInner .local-faq summary{padding:18px}#dm .dmInner .local-faq h3{font-size:18px}#dm .dmInner .local-faq-answer{padding:0 18px 18px}}
