/* header-global.css — Global Nav (header v2), both viewports.
 *
 * Enqueued (handle gerbs-header-global, dep gerbs-tokens) only when
 * gerbs_nav_v2_active(). Consumes --gerbs-* tokens via a local --gnav-* map;
 * never redeclares --gerbs-* values. Desktop ≥981px, mobile ≤980px (the same
 * 980/981 boundary as gmh). First-paint layout (row heights) is mirrored in
 * inc/perf-header-critical.php so cold loads don't shift (CLS guard).
 *
 * @since 1.1.2 (global nav)
 */

.gnav {
  --gnav-bd: var(--gerbs-hairline);
  --gnav-ink: var(--gerbs-ink);
  --gnav-muted: var(--gerbs-ink-70);
  --gnav-pill: var(--gerbs-yellow);
  --gnav-z: 200;
  font-family: var(--ff-body);
  color: var(--gnav-ink);
}
.gnav *, .gnav *::before, .gnav *::after { box-sizing: border-box; }
.gnav a { text-decoration: none; color: inherit; }
.gnav .gnav-inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding-left: var(--container-pad);
  padding-right: var(--container-pad);
  width: 100%;
}
.gnav :focus-visible {
  outline: var(--focus-ring-width) solid var(--focus-ring-color);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}

/* Shared badge pill */
.gnav-badge {
  display: inline-block;
  background: var(--gnav-pill);
  color: var(--gerbs-ink);
  font-size: var(--fs-12);
  font-weight: var(--fw-bold);
  line-height: 1;
  padding: 3px 8px;
  border-radius: var(--radius-pill);
  margin-left: 6px;
  white-space: nowrap; /* short atomic label — allowed */
}
.gnav-badge--gold { background: var(--gerbs-gold); color: #fff; }

/* Search pill (shared) */
.gnav-search, .gnav-msearch {
  position: relative;
  display: flex;
  align-items: center;
}
.gnav-search .gnav-i, .gnav-msearch .gnav-i {
  position: absolute;
  left: 14px;
  color: var(--gnav-muted);
  pointer-events: none;
}
.gnav-search__input {
  width: 100%;
  height: 44px;
  border: 1px solid var(--gnav-bd);
  border-radius: var(--radius-pill);
  padding: 0 16px 0 42px;
  font-family: var(--ff-body);
  font-size: var(--fs-16);
  color: var(--gnav-ink);
  background: #fff;
}
.gnav-search__input::placeholder { color: var(--gnav-muted); }

/* ════════════════════════════════════════════════════════════════════════════
   DESKTOP (≥981px)
   ════════════════════════════════════════════════════════════════════════════ */
.gnav-desktop { display: none; }

@media (min-width: 981px) {
  .gnav-mobile, .gnav-drawer { display: none !important; }
  .gnav-desktop { display: block; background: #fff; position: relative; z-index: var(--gnav-z); }

  /* Row 1 */
  .gnav-row--top { border-bottom: 1px solid var(--gnav-bd); }
  .gnav-row--top .gnav-inner {
    display: grid;
    grid-template-columns: auto minmax(0, 560px) auto;
    align-items: center;
    gap: var(--space-6);
    justify-content: space-between;
    min-height: 72px;
  }
  .gnav-logo img { display: block; height: 44px; width: auto; }
  .gnav-search { width: 100%; }
  .gnav-actions { display: flex; align-items: center; gap: var(--space-5); justify-self: end; }
  .gnav-action {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: var(--fs-14); font-weight: var(--fw-semibold);
    color: var(--gnav-ink); white-space: nowrap;
  }
  .gnav-action--cart { position: relative; }
  .gnav-cart-badge {
    position: absolute; top: -7px; right: -9px;
    min-width: 18px; height: 18px; padding: 0 5px;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--gerbs-blue); color: #fff;
    font-size: 11px; font-weight: var(--fw-bold); line-height: 1;
    border-radius: var(--radius-pill);
  }
  .gnav-cart-badge[hidden] { display: none; }

  /* Row 2 — primary nav. The row is the positioning context so the mega panel
     spans the full header width (not just the hovered item). */
  .gnav-row--primary { border-bottom: 1px solid var(--gnav-bd); position: relative; }
  .gnav-primary__list {
    display: flex; justify-content: center; flex-wrap: wrap;
    gap: var(--space-8); margin: 0; padding: 0; list-style: none;
  }
  .gnav-primary__item { position: static; }
  .gnav-primary__link {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 16px 2px; font-size: var(--fs-16); font-weight: var(--fw-semibold);
    border-bottom: 3px solid transparent; margin-bottom: -1px;
  }
  .gnav-primary__link:hover,
  .gnav-has-mega[data-open] .gnav-primary__link { border-bottom-color: var(--gerbs-yellow); }
  .gnav-primary__item--active .gnav-primary__link { border-bottom-color: var(--gerbs-yellow); }
  .gnav-caret { transition: transform .18s ease; }
  .gnav-has-mega[data-open] .gnav-caret { transform: rotate(180deg); }

  /* Mega panel — full-width drop under the primary row */
  .gnav-mega {
    position: absolute; left: 0; right: 0; top: 100%;
    background: #fff; border-top: 1px solid var(--gnav-bd);
    box-shadow: var(--shadow-lg); z-index: calc(var(--gnav-z) + 1);
  }
  .gnav-mega[hidden] { display: none; }
  .gnav-mega__inner { display: block; padding: var(--space-8) var(--container-pad); }
  .gnav-mega__cols {
    display: flex; gap: var(--space-10); align-items: flex-start;
  }
  .gnav-mega__col { flex: 1 1 0; min-width: 0; }
  .gnav-mega__head {
    font-size: var(--fs-12); letter-spacing: var(--ls-caps); text-transform: uppercase;
    color: var(--gnav-muted); margin: 0 0 var(--space-3);
  }
  .gnav-mega__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-3); }
  .gnav-mega__link { font-size: var(--fs-16); color: var(--gnav-ink); }
  .gnav-mega__link:hover { color: var(--gerbs-blue); }
  .gnav-mega__cta {
    display: inline-block; margin-top: var(--space-4);
    color: var(--gerbs-blue); font-weight: var(--fw-semibold); font-size: var(--fs-16);
  }
  .gnav-mega__featured {
    flex: 0 0 240px; margin-left: auto;
    display: block; padding: var(--space-4); background: var(--gerbs-fog);
    border-radius: var(--radius-md);
  }
  .gnav-mega__media { display: block; }
  .gnav-mega__media img { display: block; width: 100%; height: auto; border-radius: var(--radius-sm); }
  .gnav-mega__featured .gnav-badge { margin: var(--space-3) 0 0; }
  .gnav-mega__ftitle { display: block; margin-top: 6px; font-weight: var(--fw-bold); font-size: var(--fs-16); }

  /* Row 3 — deals rail */
  .gnav-row--deals { background: var(--gerbs-fog); border-bottom: 1px solid var(--gnav-bd); }
  .gnav-deals__list {
    display: flex; justify-content: center; align-items: center; flex-wrap: nowrap;
    gap: 0; margin: 0; padding: 0; list-style: none;
    overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none;
    min-height: 44px;
  }
  .gnav-deals__list::-webkit-scrollbar { display: none; }
  .gnav-deals__item { display: flex; align-items: center; white-space: nowrap; }
  .gnav-deals__item + .gnav-deals__item::before {
    content: ""; width: 1px; height: 16px; background: var(--gerbs-ink-20); margin: 0 var(--space-4);
  }
  .gnav-deals__link { display: inline-flex; align-items: center; font-size: var(--fs-14); font-weight: var(--fw-semibold); padding: 11px 0; }
  .gnav-deals__link:hover { color: var(--gerbs-blue); }
  /* Non-clickable promo notice — bold + ink so it pops vs the muted links. */
  .gnav-deals__notice { font-size: var(--fs-14); color: var(--gerbs-ink); font-weight: var(--fw-bold); padding: 11px 0; }
}

/* ════════════════════════════════════════════════════════════════════════════
   MOBILE (≤980px)
   ════════════════════════════════════════════════════════════════════════════ */
@media (max-width: 980px) {
  .gnav-desktop { display: none !important; }
  .gnav-mobile { display: block; background: #fff; position: relative; z-index: var(--gnav-z); }

  .gnav-mbar {
    display: grid; grid-template-columns: 44px 1fr 44px 44px; align-items: center;
    gap: var(--space-2); padding: 6px var(--space-4);
    border-bottom: 1px solid var(--gnav-bd);
    position: sticky; top: 0; background: #fff; z-index: var(--gnav-z);
  }
  .gnav-mbar__btn {
    display: inline-flex; align-items: center; justify-content: center;
    width: 44px; height: 44px; color: var(--gnav-ink); position: relative;
    background: none; border: 0; padding: 0; cursor: pointer;
  }
  .gnav-mbar__logo { justify-self: center; }
  .gnav-mbar__logo img { display: block; height: 38px; width: auto; }
  .gnav-mbar__cart .gnav-cart-badge {
    position: absolute; top: 3px; right: 3px;
    min-width: 17px; height: 17px; padding: 0 4px;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--gerbs-blue); color: #fff; font-size: 10px; font-weight: var(--fw-bold);
    line-height: 1; border-radius: var(--radius-pill);
  }
  .gnav-cart-badge[hidden] { display: none; }

  .gnav-msearch { padding: var(--space-3) var(--space-4); }
  .gnav-mpromo {
    background: var(--gerbs-fog); border-bottom: 1px solid var(--gnav-bd);
    text-align: center; font-size: var(--fs-14); color: var(--gerbs-ink);
    font-weight: var(--fw-bold);
    padding: 8px var(--space-4);
  }

  /* Drawer (native <dialog>, full screen) */
  .gnav-drawer {
    width: 100%; max-width: 100%; height: 100%; max-height: 100%;
    margin: 0; padding: 0; border: 0;
    inset: 0; position: fixed;
    background: #fff; color: var(--gnav-ink);
    flex-direction: column;
  }
  .gnav-drawer[open] { display: flex; }
  .gnav-drawer::backdrop { background: rgba(17,17,17,0.4); }

  .gnav-drawer__bar {
    display: grid; grid-template-columns: 44px 1fr 44px 44px; align-items: center;
    gap: var(--space-2); padding: 6px var(--space-4);
    border-bottom: 1px solid var(--gnav-bd); flex: 0 0 auto;
  }
  .gnav-drawer__scroll { flex: 1 1 auto; overflow-y: auto; -webkit-overflow-scrolling: touch; position: relative; }
  .gnav-drawer__foot { flex: 0 0 auto; padding: var(--space-4); border-top: 1px solid var(--gnav-bd); display: grid; gap: var(--space-3); }

  .gnav-msearch--drawer { padding: var(--space-4); }

  .gnav-mnav__list { list-style: none; margin: 0; padding: 0; }
  .gnav-mnav__row {
    display: flex; align-items: center; justify-content: space-between; width: 100%;
    padding: 16px var(--space-4); font-size: var(--fs-18); font-weight: var(--fw-bold);
    background: none; border: 0; border-bottom: 1px solid var(--gnav-bd);
    color: var(--gnav-ink); text-align: left; cursor: pointer; min-height: 56px;
  }
  .gnav-mnav__row .gnav-chevron { color: var(--gnav-muted); flex: 0 0 auto; }

  .gnav-meyebrow {
    font-size: var(--fs-12); letter-spacing: var(--ls-caps); text-transform: uppercase;
    color: var(--gnav-muted); margin: var(--space-5) var(--space-4) var(--space-3);
  }
  .gnav-chips { display: flex; flex-wrap: wrap; gap: var(--space-3); padding: 0 var(--space-4) var(--space-5); }
  .gnav-chip {
    display: inline-flex; align-items: center; padding: 9px var(--space-4);
    border: 1px solid var(--gnav-bd); border-radius: var(--radius-pill);
    font-size: var(--fs-14); font-weight: var(--fw-semibold); min-height: 40px;
  }

  /* Drill-down sub-panel — slides over the scroll area. Hidden via visibility
     (NOT the [hidden] attr) so JS toggling [data-open] actually reveals it and the
     slide animates; visibility:hidden also keeps it out of the a11y/tab order when
     closed. visibility flips to hidden only after the slide-out finishes. (Codex C1.) */
  .gnav-sub {
    position: absolute; inset: 0; background: #fff; overflow-y: auto;
    transform: translateX(100%); visibility: hidden;
    transition: transform .26s cubic-bezier(.32,.72,.32,1), visibility 0s linear .26s;
  }
  .gnav-sub[data-open] {
    transform: translateX(0); visibility: visible;
    transition: transform .26s cubic-bezier(.32,.72,.32,1);
  }
  .gnav-sub__back {
    display: flex; align-items: center; gap: 6px; width: 100%;
    padding: 16px var(--space-4); font-size: var(--fs-16); font-weight: var(--fw-bold);
    background: var(--gerbs-fog); border: 0; border-bottom: 1px solid var(--gnav-bd);
    color: var(--gnav-ink); cursor: pointer; min-height: 56px;
  }
  .gnav-sub .gnav-mega__cols { display: block; padding: var(--space-4); }
  .gnav-sub .gnav-mega__col + .gnav-mega__col { margin-top: var(--space-6); }
  .gnav-sub .gnav-mega__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
  .gnav-sub .gnav-mega__link { display: block; padding: 12px 0; font-size: var(--fs-16); }
  .gnav-sub .gnav-mega__head {
    font-size: var(--fs-12); letter-spacing: var(--ls-caps); text-transform: uppercase;
    color: var(--gnav-muted); margin: 0 0 var(--space-2);
  }
  .gnav-sub .gnav-mega__cta { display: inline-block; margin-top: var(--space-3); color: var(--gerbs-blue); font-weight: var(--fw-semibold); }
  .gnav-sub .gnav-mega__featured { display: none; } /* featured card is desktop-only */

  /* Foot buttons */
  .gnav-btn {
    display: block; text-align: center; padding: 14px var(--space-4);
    border-radius: var(--radius-pill); font-size: var(--fs-16); font-weight: var(--fw-bold);
    min-height: 48px;
  }
  .gnav-btn--primary { background: var(--gerbs-blue); color: #fff; }
  .gnav-btn--primary:hover { background: var(--gerbs-blue-hover); }
  .gnav-btn--ghost { border: 1px solid var(--gnav-bd); color: var(--gnav-ink); }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .gnav-sub, .gnav-caret { transition: none; }
}
