/* Shared responsive fixes for the public site. */
@media (max-width: 1100px) {
  .nav-links.open {
    height: calc(100vh - 78px);
    height: calc(100dvh - 78px);
    overflow-y: auto;
    overscroll-behavior: contain;
    background: #17101d;
  }
  body.nav-open .site-header { backdrop-filter: none; -webkit-backdrop-filter: none; }
  body.nav-open .mobile-book { display: none; }
}
@media (max-width: 768px) {
  html { scroll-padding-top: 96px; }
  main, footer, .contact-points, .package-card, .addon-card, .field { overflow-wrap: anywhere; }
  .field { min-width: 0; }
  .field input, .field select, .field textarea { min-width: 0; max-width: 100%; font-size: 16px; }
  .field input[type="date"] { appearance: none; -webkit-appearance: none; }
  .header-bar { flex-wrap: wrap; gap: 16px; }
  .header-bar .logo { min-width: 0; max-width: 100%; }
  .header-bar .logo img { max-width: 100%; object-fit: contain; }
  .header-bar .nav-links-simple { display: flex; flex-wrap: wrap; gap: 8px; min-width: 0; }
  .header-bar .nav-links-simple a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; }
  .nav-wrapper .navbar { padding: 8px 12px; }
  .nav-wrapper .nav-links { flex-wrap: wrap; justify-content: center; gap: 4px; }
  .nav-wrapper .nav-links a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 12px; }
  .article-nav-cta { min-height: 44px; }
  .contact-points a, footer a { display: inline-flex; align-items: center; min-height: 44px; }
  .mobile-book { bottom: max(14px, env(safe-area-inset-bottom)); }
  body:has(.quote-form :focus) .mobile-book { display: none; }
  footer { padding-bottom: calc(105px + env(safe-area-inset-bottom)); }
}
.mobile-nav-contact { display: none; }
.nav-links.open .mobile-nav-contact { display: block; }
