html { scroll-padding-top: 88px; }

/* Keep the closed mobile menu out of keyboard navigation. */
.mobile-overlay { visibility: hidden; overflow-y: auto; }
.mobile-overlay.open { visibility: visible; }
.overlay-nav { position: static; height: auto; padding: 0; background: transparent; box-shadow: none; }
.overlay-bottom { flex-shrink: 0; }
a:focus-visible, button:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
.nav-phone svg { flex-shrink: 0; }
.contact-card > div:last-child, .footer-info-row > div { min-width: 0; }
.contact-card p, .footer-address { overflow-wrap: anywhere; }
.address-link { color: inherit; text-decoration: none; }
.address-link:hover { text-decoration: underline; }
.address-action { display: block; color: var(--blue); font-size: 0.85rem; font-weight: 600; margin-top: 6px; }
.footer-address { font-style: normal; }

.contact-form .form-note { color: var(--gray-text); font-size: 0.85rem; line-height: 1.6; margin: -12px 0 20px; }
.btn-submit:disabled { opacity: 0.6; cursor: not-allowed; }
.toast a { color: inherit; font-weight: 700; text-decoration: underline; }
.form-error { color: #b42318; font-size: 0.87rem; margin: 8px 0; }
[hidden] { display: none !important; }

.map-section .map-box { border: 1px solid var(--border); overflow: hidden; height: 380px; margin-top: 24px; }
.map-box iframe { display: block; width: 100%; height: 100%; border: 0; }
.map-section .map-address { color: var(--gray-text); margin: 8px 0 20px; }
.map-directions { display: inline-flex; align-items: center; padding: 12px 20px; background: var(--blue); color: white; border-radius: 8px; font-weight: 600; text-decoration: none; }
.map-directions:hover { background: var(--blue-dark); }

@media (max-width: 580px) {
  .contact-form { padding: 24px 20px; }
  .map-section .map-box { height: 300px; }
  .wa-float { bottom: max(16px, env(safe-area-inset-bottom)); }
  .footer-bottom { padding-bottom: 88px; }
}
@media (max-height: 640px) {
  .mobile-overlay { justify-content: flex-start; padding-top: 76px; padding-bottom: 24px; }
  .overlay-logo { margin-bottom: 16px; }
  .overlay-bottom { position: static; margin-top: 24px; width: 100%; padding: 0; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
