/* Phone navigation shared by every design: the main nav collapses behind a "Menu" button and opens as a
   full-screen stacked panel. Nothing scrolls sideways. Designs set --nav-bg, --nav-fg, --nav-accent, --nav-font.
   Markup: a [data-nav-toggle] button before the nav and data-nav on the nav element (/js/nav.js wires it). */
:root { --nav-bg: #111; --nav-fg: #fff; --nav-accent: #ffcc33; --nav-font: inherit; }
[data-nav-toggle], .nav-close, .nav-call { display: none; }  /* phone-only; nav.js injects the last two */
@media (max-width: 759px) {
  [data-nav-toggle] {
    display: inline-flex; align-items: center; gap: 8px; margin-left: auto; padding: 9px 12px; border: 1.5px solid currentColor; border-radius: 4px;
    background: transparent; color: inherit; font: 600 14px/1 var(--nav-font); letter-spacing: .06em; text-transform: uppercase; cursor: pointer;
  }
  [data-nav-toggle] svg { width: 18px; height: 18px; }
  body [data-nav] { display: none; }
  body.nav-open { overflow: hidden; }
  body.nav-open .callbar { display: none; }
  body.nav-open header { backdrop-filter: none; -webkit-backdrop-filter: none; transform: none; filter: none; }  /* any of these would trap the fixed panel inside the header */  /* the open panel lives inside the sticky header's stacking context; the fixed call bar would sit on top of it */
  body.nav-open [data-nav] {
    display: flex; flex-direction: column; justify-content: center; align-items: stretch; gap: 6px; position: fixed; inset: 0; z-index: 100;
    margin: 0; padding: 72px 28px 96px; width: auto; max-width: none; overflow-y: auto; overflow-x: hidden;
    background: var(--nav-bg); color: var(--nav-fg); border: 0;
  }
  body.nav-open [data-nav] > a {
    font: 700 clamp(26px, 7vw, 34px)/1.2 var(--nav-font); color: var(--nav-fg); text-decoration: none; padding: 10px 0; margin: 0;
    border: 0; border-bottom: 1px solid rgba(255,255,255,.12); border-radius: 0; white-space: normal; letter-spacing: 0; text-transform: none; background: none; width: auto; text-align: left;
  }
  body.nav-open [data-nav] > a[aria-current] { color: var(--nav-accent); }
  body.nav-open [data-nav] > :not(a) { display: none; }
  .nav-close {
    position: absolute; top: 18px; right: 18px; width: 44px; height: 44px; border-radius: 50%; border: 1.5px solid rgba(255,255,255,.4);
    background: transparent; color: var(--nav-fg); font-size: 26px; line-height: 1; cursor: pointer; display: grid; place-items: center;
  }
  body.nav-open [data-nav] > .nav-close { display: grid; }
  body.nav-open [data-nav] > .nav-call { margin-top: 22px; font: 700 18px/1 var(--nav-font); color: var(--nav-accent); text-decoration: none; border: 0; }
  body.nav-open [data-nav] > .nav-call { display: block; }
}
