/* Zomg shared header — v1, 2026-09-15
   One header for every page. Loaded last in <head>, so it overrides the per-page inline nav CSS
   (8,600 templates carry a copy of the old nav rules) and theme.css. Scoped to nav:has(>.nav-inner)
   so breadcrumb/topic navs are untouched.
   Tolerates items injected by scripts: #zomg-phone-link, #zomg-portal-link (portal-nav.js, still
   served from Cloudflare cache) and .theme-toggle (theme-toggle.js). */

:root{
  --zh-h:64px;
  --zh-bg:rgba(10,58,68,.94);
  --zh-line:rgba(255,255,255,.1);
  --zh-text:rgba(255,255,255,.86);
  --zh-text-hi:#fff;
  --zh-pill:rgba(255,255,255,.09);
  --zh-pill-line:rgba(255,255,255,.16);
  --zh-drawer:#0b3540;
  --zh-gold:#fbbc04;
  --zh-gold-text:#fbbc04;
  --zh-shadow:0 1px 0 rgba(0,0,0,.12);
}
html[data-theme="light"]{
  --zh-bg:rgba(255,255,255,.92);
  --zh-line:rgba(15,23,42,.08);
  --zh-text:#334155;
  --zh-text-hi:#0f172a;
  --zh-pill:rgba(15,23,42,.05);
  --zh-pill-line:rgba(15,23,42,.12);
  --zh-drawer:#ffffff;
  --zh-gold-text:#92660d;
  --zh-shadow:0 1px 0 rgba(15,23,42,.04),0 4px 16px rgba(15,23,42,.05);
}

/* Bar */
nav:has(>.nav-inner){
  position:sticky!important;top:0!important;z-index:1000!important;
  padding:0 max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left))!important;
  background:var(--zh-bg)!important;
  -webkit-backdrop-filter:saturate(160%) blur(18px)!important;backdrop-filter:saturate(160%) blur(18px)!important;
  border-bottom:1px solid var(--zh-line)!important;box-shadow:var(--zh-shadow)!important;
}
nav .nav-inner{
  max-width:1200px!important;margin:0 auto!important;display:flex!important;align-items:center!important;
  justify-content:space-between!important;gap:12px!important;height:var(--zh-h)!important;min-width:0;
}

/* Logo */
nav .nav-logo{display:flex!important;align-items:center!important;gap:10px!important;flex:0 0 auto!important;min-width:0;text-decoration:none!important;color:var(--zh-text-hi)!important}
nav .nav-logo img{height:42px!important;width:auto!important;max-width:42px!important;object-fit:contain!important;display:block}
nav .nav-logo span{
  font-family:'Montserrat',sans-serif!important;font-weight:800!important;font-size:1rem!important;
  letter-spacing:-.01em!important;line-height:1!important;white-space:nowrap!important;color:var(--zh-text-hi)!important;
}

/* Links row */
nav .nav-links{
  display:flex!important;align-items:center!important;justify-content:flex-end!important;
  gap:clamp(2px,.4vw,6px)!important;list-style:none!important;margin:0!important;padding:0!important;
  flex:1 1 auto!important;min-width:0;
}
nav .nav-links li{margin:0!important;padding:0!important;flex:0 0 auto;list-style:none}
/* The home page carries an old <=1080px rule that hides Quote/Blog/Contact/My Account. Every item is
   visible again; the tier rules below decide what to shed, so all pages behave the same. */
nav .nav-links li:not(.zh-x){display:block!important}
nav .nav-links a,nav .nav-links button.theme-toggle{
  display:inline-flex!important;align-items:center!important;gap:6px!important;height:38px!important;
  padding:0 12px!important;border-radius:999px!important;border:1.5px solid transparent!important;background:transparent!important;
  font-family:inherit!important;font-size:.88rem!important;font-weight:600!important;line-height:1!important;
  color:var(--zh-text)!important;text-decoration:none!important;white-space:nowrap!important;cursor:pointer;
  transition:background-color .15s ease,color .15s ease,border-color .15s ease,transform .15s ease!important;
}
nav .nav-links a:hover,nav .nav-links button.theme-toggle:hover{background:var(--zh-pill)!important;color:var(--zh-text-hi)!important}
nav .nav-links a:focus-visible,nav .nav-links button:focus-visible{outline:2px solid var(--zh-gold);outline-offset:2px}

/* Shop keeps its gold accent */
nav .nav-links a[href^="/shop"]{color:var(--zh-gold-text)!important}
nav .nav-links a[href^="/shop"]:hover{color:var(--zh-gold-text)!important;background:rgba(251,188,4,.12)!important}

/* Quote: outlined gold pill */
nav .nav-links .nav-gold{border-color:var(--zh-gold)!important;color:var(--zh-gold-text)!important;font-weight:700!important;background:transparent!important}
nav .nav-links .nav-gold:hover{background:rgba(251,188,4,.14)!important;color:var(--zh-gold-text)!important}

/* Book Online: solid gold pill */
nav .nav-links .nav-cta{
  background:linear-gradient(135deg,#fbbc04,#e5a800)!important;color:#0f172a!important;font-weight:700!important;
  padding:0 18px!important;border-color:transparent!important;margin-left:4px;
  box-shadow:0 2px 8px rgba(251,188,4,.28)!important;
}
nav .nav-links .nav-cta:hover{color:#0f172a!important;transform:translateY(-1px);box-shadow:0 4px 12px rgba(251,188,4,.38)!important}

/* Injected phone/account links: some cached script versions drop them straight into the <ul> without an <li> */
nav .nav-links>a{flex:0 0 auto}
nav .nav-links #zomg-phone-link{border-color:var(--zh-pill-line)!important;font-weight:700!important}

/* Theme toggle (theme.css sizes it; keep it a compact icon on desktop) */
nav .nav-links button.theme-toggle{width:auto!important;height:38px!important;margin:0!important}
nav .nav-links .theme-toggle .tt-icon{font-size:1rem}

/* Hamburger hidden on desktop */
nav .hamburger{display:none!important}

/* ---------- Desktop tiers: shed low-value items before anything wraps ---------- */
@media(min-width:1025px){
  nav .nav-links li:first-child:has(>a[href="/"]){display:none!important}         /* logo is Home */
}
@media(min-width:1025px) and (max-width:1279px){
  nav .nav-links li:has(#zomg-phone-link),nav .nav-links>#zomg-phone-link{display:none!important}
  nav .nav-links .theme-toggle .tt-label{display:none!important}
  nav .nav-links a,nav .nav-links button.theme-toggle{padding:0 10px!important;font-size:.85rem!important}
}
@media(min-width:1025px) and (max-width:1180px){
  nav .nav-links li:has(#zomg-portal-link),nav .nav-links>#zomg-portal-link{display:none!important}
}

/* ---------- Phone & tablet: 60px bar + drawer ---------- */
@media(max-width:1024px){
  :root{--zh-h:60px}
  nav .nav-logo img{height:38px!important;max-width:38px!important}
  nav .nav-logo span{font-size:.95rem!important}

  nav .hamburger{
    display:flex!important;flex-direction:column!important;justify-content:center!important;gap:5px!important;
    width:44px!important;height:44px!important;margin:0 -8px 0 0!important;padding:0!important;
    border:0!important;background:transparent!important;border-radius:12px!important;cursor:pointer;flex:0 0 auto;
  }
  nav .hamburger span{display:block!important;width:22px!important;height:2px!important;margin:0 auto!important;background:var(--zh-text-hi)!important;border-radius:2px!important;transition:transform .25s ease,opacity .2s ease!important}
  nav:has(.nav-links.active) .hamburger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  nav:has(.nav-links.active) .hamburger span:nth-child(2){opacity:0}
  nav:has(.nav-links.active) .hamburger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

  nav .nav-links{
    display:none!important;position:absolute!important;top:100%!important;left:0!important;right:0!important;
    flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;gap:4px!important;
    padding:12px 16px calc(20px + env(safe-area-inset-bottom))!important;
    background:var(--zh-drawer)!important;border-bottom:1px solid var(--zh-line)!important;
    box-shadow:0 24px 40px rgba(0,0,0,.35)!important;
    max-height:calc(100vh - var(--zh-h))!important;max-height:calc(100dvh - var(--zh-h))!important;overflow-y:auto!important;overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch;
  }
  nav .nav-links.active{display:flex!important}
  html[data-theme="light"] nav .nav-links.active{background:#fff!important}   /* beats theme.css's .99 white */
  nav .nav-links li{width:100%!important}
  nav .nav-links a,nav .nav-links button.theme-toggle{
    display:flex!important;width:100%!important;height:auto!important;padding:13px 14px!important;
    font-size:1rem!important;border-radius:12px!important;justify-content:flex-start!important;
  }
  /* Actions first, then the pages, then account/phone/theme */
  nav .nav-links li:has(.nav-cta){order:-3}
  nav .nav-links li:has(.nav-gold){order:-2;margin-bottom:6px!important}
  nav .nav-links li:has(#zomg-phone-link),nav .nav-links>#zomg-phone-link{order:5;margin-top:6px!important}
  nav .nav-links li:has(#zomg-portal-link),nav .nav-links>#zomg-portal-link{order:6}
  nav .nav-links li:has(.theme-toggle){order:7}
  nav .nav-links .nav-cta,nav .nav-links .nav-gold,nav .nav-links #zomg-phone-link{justify-content:center!important;text-align:center!important;margin-left:0!important}
  nav .nav-links .nav-cta{padding:14px!important;font-size:1.02rem!important}
  nav .nav-links #zomg-phone-link{border-color:var(--zh-pill-line)!important;background:var(--zh-pill)!important}
  nav .nav-links button.theme-toggle{margin:0!important}
}

/* conversion-boost.js adds a second "$20 OFF / 20OFF" bar under the Invoicerus announcement that
   already says the same thing; on a phone the two ate a third of the screen. Keep the one from
   Invoicerus (it is managed in the dashboard). */
#zb-promo-bar{display:none!important}
