html { scroll-behavior: smooth; }
body { overflow-x: hidden; }
img { max-width: 100%; height: auto; }
.skip-link { position: fixed; top: 0.5rem; left: 0.5rem; z-index: 9999; padding: 0.75rem 1rem; background: #111; color: #fff; transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible { outline: 3px solid currentColor; outline-offset: 3px; }
.local-map { min-height: 420px; width: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 1rem; padding: 2rem; text-align: center; color: #151515; background-color: #d9e5dd; background-image: linear-gradient(30deg, rgba(255,255,255,.55) 12%, transparent 12.5%, transparent 87%, rgba(255,255,255,.55) 87.5%), linear-gradient(150deg, rgba(255,255,255,.55) 12%, transparent 12.5%, transparent 87%, rgba(255,255,255,.55) 87.5%), linear-gradient(30deg, rgba(255,255,255,.55) 12%, transparent 12.5%, transparent 87%, rgba(255,255,255,.55) 87.5%), linear-gradient(150deg, rgba(255,255,255,.55) 12%, transparent 12.5%, transparent 87%, rgba(255,255,255,.55) 87.5%), linear-gradient(60deg, rgba(0,0,0,.06) 25%, transparent 25.5%, transparent 75%, rgba(0,0,0,.06) 75%); background-size: 80px 140px; background-position: 0 0, 0 0, 40px 70px, 40px 70px, 0 0; }
.local-map .site-icon { font-size: 3.5rem; }
.local-map-label { max-width: 28rem; padding: .75rem 1rem; background: rgba(255,255,255,.9); border-radius: .35rem; font-weight: 700; box-shadow: 0 8px 24px rgba(0,0,0,.12); }
.policy-links { display: block; margin-top: .75rem; line-height: 1.8; text-align: center; }
.policy-links a { color: inherit; text-decoration: underline; text-underline-offset: .2em; }
.site-phone a { color: inherit; }
.privacy-consent .form-check-label, .privacy-consent a { color: inherit; }
.privacy-consent a { text-decoration: underline; }
@media (max-width: 767.98px) { .local-map { min-height: 300px; } .policy-links { font-size: .9em; } }
