/* Mobile menu icons use Lucide Menu and X. License: assets/icons/LICENSE. */
.menu-toggle .close-icon { display: none; }
@media (max-width: 800px) {
  :root { --mobile-contact-height: 65px; }
  body { padding-bottom: calc(var(--mobile-contact-height) + env(safe-area-inset-bottom)); }
  .header-actions { display: none; }
  .menu-toggle { width: 48px; min-height: 48px; padding: 12px; }
  .menu-toggle[aria-expanded="true"] .menu-icon { display: none; }
  .menu-toggle[aria-expanded="true"] .close-icon { display: block; }
  .site-header:has(nav.is-open) { position: fixed; top: 0; }
  .site-header:has(nav.is-open) .header-inner { width: 100%; padding: 0; border: 0; }
  .site-header:has(nav.is-open) .brand { margin: 16px 0 16px 24px; }
  .site-header:has(nav.is-open) .menu-toggle { margin: 16px 16px 16px auto; }
  .site-header:has(nav.is-open) #navigation {
    width: 100%; height: calc(100dvh - 80px - var(--mobile-contact-height) - env(safe-area-inset-bottom)); max-height: calc(100dvh - 80px - var(--mobile-contact-height) - env(safe-area-inset-bottom));
    padding: 0 24px 20px; overscroll-behavior: contain; scrollbar-gutter: stable;
  }
  #navigation .nav-trigger { min-height: 60px; padding: 18px 0; font-size: 18px; }
  #navigation .mega-inner { padding: 0 0 20px; }
  #navigation .menu-group h3 { font-size: 10px; margin-top: 20px; }
  #navigation .menu-group a { min-height: 60px; padding: 16px 0; }
  #navigation .menu-group strong { font-size: 17px; }
  #navigation .menu-group a > span { font-size: 12px; line-height: 1.5; }
  body.mobile-menu-open { overflow: hidden; }
  .mobile-actions, body.form-focused .mobile-actions, body.nav-open .mobile-actions {
    position: fixed; inset: auto 0 0; z-index: 36; display: grid;
    grid-template-columns: 1fr 1.65fr; gap: 8px;
    padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
    background: var(--paper); border-top: 1px solid var(--line);
  }
  .mobile-actions a { min-height: 48px; padding: 12px; font-size: 14px; line-height: 1.4; font-weight: 650; }
  .mobile-actions .mobile-call { background: var(--paper); color: var(--text); border: 1px solid var(--line); }
  .mobile-actions .mobile-quote { background: var(--accent); color: var(--ink); }
  body.keyboard-open .mobile-actions { display: none; }
  :is(.mobile-actions a, .menu-toggle, .nav-trigger):focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
}
