/* ASD Smart Navbar v2 — refined overlay, depth cues, hover feedback */

/* Vars */
:root {
  --snv2-red: #a50303;
  --snv2-bg: #0f0f0f;
  --snv2-text: #fff;
  --snv2-panel-bg: #111;

  /* Logo sizing */
  --snv2-logo-baseline: 56px;
  --snv2-logo-h: 56px;
  --snv2-logo-pad: 8px;
  --snv2-logo-pad-top: 12px;
  --snv2-logo-pad-bottom: 8px;

  --snv2-menu-fs: 20px;

  /* Default icon size (desktop) */
  --snv2-icon-size: 30px;

  /* Typography defaults (Arial) */
  --snv2-menu-font: Arial, Helvetica, sans-serif;
  --snv2-menu-weight: 700;
  --snv2-menu-style: normal;
  --snv2-menu-ls: 0.03em;

  --snv2-head-font: Arial, Helvetica, sans-serif;
  --snv2-head-weight: 800;
  --snv2-head-style: normal;
  --snv2-head-size: 16px;
  --snv2-head-ls: 0.02em;

  --snv2-sub-font: Arial, Helvetica, sans-serif;
  --snv2-sub-weight: 400;
  --snv2-sub-style: normal;
  --snv2-sub-size: 14px;
  --snv2-sub-ls: 0;

  /* Edge gutters (balance left logo vs. right cart badge) */
  --snv2-edge: 16px;
  --snv2-edge-right: 26px;
}

/* Base */
#asd-snv2 {
  color: var(--snv2-text);
  font-family: Arial, Helvetica, sans-serif;
}
#asd-snv2 a {
  color: var(--snv2-text);
  text-decoration: none;
}

/* Topline */
#asd-snv2 .snv2-topline {
  padding: 10px 12px;
  font-weight: 600;
  text-align: center;
}
#asd-snv2 .snv2-topline-inner {
  position: relative;
  height: 24px;
  overflow: hidden;
  white-space: nowrap;
}
#asd-snv2 .snv2-slide {
  position: absolute;
  left: 50%;
  transform: translateX(150%);
  opacity: 0;
  transition:
    transform 0.45s ease,
    opacity 0.45s ease;
}

/* Header bar */
#asd-snv2 .snv2-bar {
  background: var(--snv2-bg);
  padding-inline: var(--snv2-edge);
  overflow: visible;
}
#asd-snv2 .snv2-bar-inner {
  max-width: 1320px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

/* Logo */
#asd-snv2 .snv2-logo {
  line-height: 0;
  padding-top: var(--snv2-logo-pad-top);
  padding-bottom: var(--snv2-logo-pad-bottom);
  padding-left: 2px;
  margin-block: calc((var(--snv2-logo-baseline) - var(--snv2-logo-h)) / 2);
}
#asd-snv2 .snv2-logo-img {
  height: var(--snv2-logo-h);
  width: auto;
  display: block;
}

/* Search */
#asd-snv2 .snv2-search {
  flex: 1 1 clamp(420px, 52vw, 720px);
  max-width: none;
  min-width: 280px;
}

/* Icons */
#asd-snv2 .snv2-icons {
  display: flex !important;
  align-items: center;
  gap: 22px;
  column-gap: 22px;
  row-gap: 0;
  padding-right: var(--snv2-edge-right);
}
#asd-snv2 .snv2-icon {
  position: relative;
  display: inline-grid;
  place-items: center;
  width: var(--snv2-icon-size, 28px);
  height: var(--snv2-icon-size, 28px);
  line-height: 1;
  margin: 0 !important;
}
#asd-snv2 .snv2-icon svg,
#asd-snv2 .snv2-icon .snv2-ico-img,
#asd-snv2 .snv2-icon img {
  width: 100% !important;
  height: 100% !important;
  display: block;
}
#asd-snv2 .snv2-icon::before {
  content: "";
  position: absolute;
  inset: -6px;
}

/* Cart badge */
#asd-snv2 #smart-cart-trigger {
  position: relative;
}
#asd-snv2 #smart-cart-trigger .snv2-cart-count,
#asd-snv2 #smart-cart-trigger .count-wrapper .count,
#asd-snv2 #smart-cart-trigger > .count {
  position: absolute;
  top: -6px;
  right: -10px;
  min-width: 18px;
  height: 18px;
  border-radius: 9px;
  padding: 0 5px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 700;
  line-height: 18px;
  color: #fff;
  background: var(--snv2-red, #a50303);
}
#asd-snv2 #smart-cart-trigger .count-wrapper:empty {
  display: none;
}

/* Menu row (desktop) */
#asd-snv2 .snv2-menu {
  background: var(--snv2-bg);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 26px;
  padding: 0 16px 12px;
}
#asd-snv2 .snv2-menu-link,
#asd-snv2 .snv2-menu-btn {
  border: 0;
  background: transparent;
  color: #fff;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  height: 44px;
  line-height: 44px;
  padding: 0 10px;
  font-size: var(--snv2-menu-fs);
  font-family: var(--snv2-menu-font);
  font-weight: var(--snv2-menu-weight);
  font-style: var(--snv2-menu-style);
  letter-spacing: var(--snv2-menu-ls);
  text-transform: uppercase;
  position: relative;
  transition: color 0.15s ease;
}
#asd-snv2 .snv2-menu-btn:after,
#asd-snv2 .snv2-menu-link:after {
  content: "";
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: 6px;
  height: 2px;
  background: var(--snv2-red);
  transform: scaleX(0);
  transform-origin: 50% 50%;
  transition: transform 0.18s ease;
}
#asd-snv2 .snv2-menu-btn:hover:after,
#asd-snv2 .snv2-menu-link:hover:after {
  transform: scaleX(1);
}
#asd-snv2 .snv2-menu-btn[aria-expanded="true"]::after {
  transform: scaleX(1);
}
#asd-snv2 .snv2-menu-link:hover,
#asd-snv2 .snv2-menu-btn:hover {
  color: #fff;
}
#asd-snv2 .snv2-menu-link:focus-visible,
#asd-snv2 .snv2-menu-btn:focus-visible {
  outline: 2px solid var(--snv2-red);
  outline-offset: 2px;
  border-radius: 4px;
}

/* Panel inner (content chrome; no scrolling here anymore) */
#asd-snv2 .snv2-panel-inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: 20px 24px;
}
#asd-snv2 .snv2-grid {
  column-count: 1;
}

/* Headings & sublists */
#asd-snv2 .snv2-term--top {
  display: block;
  margin: 0 0 8px;
  font-family: var(--snv2-head-font);
  font-weight: var(--snv2-head-weight);
  font-style: var(--snv2-head-style);
  font-size: calc(var(--snv2-head-size) + 1px);
  letter-spacing: var(--snv2-head-ls);
  color: #fff;
  transition:
    color 0.15s ease,
    transform 0.15s ease;
}
#asd-snv2 .snv2-term--top:hover {
  color: #fff;
  transform: translateX(1px);
}

#asd-snv2 .snv2-sub {
  list-style: none;
  margin: 8px 0 2px;
  padding: 4px 0 0 12px;
  border-left: 2px solid rgba(255, 255, 255, 0.08);
}
#asd-snv2 .snv2-sub:empty {
  border-left: 0;
  margin: 0;
  padding: 0;
}
#asd-snv2 .snv2-sub li {
  margin: 5px 0;
}
#asd-snv2 .snv2-sub a {
  position: relative;
  display: inline-block;
  padding-left: 12px;
  color: #d9d9d9;
  font-family: var(--snv2-sub-font);
  font-weight: var(--snv2-sub-weight);
  font-style: var(--snv2-sub-style);
  font-size: var(--snv2-sub-size);
  letter-spacing: var(--snv2-sub-ls);
  transition:
    color 0.12s ease,
    transform 0.12s ease;
}
#asd-snv2 .snv2-sub a::before {
  content: "•";
  position: absolute;
  left: 0;
  top: 0;
  transform: translateY(-1px);
  opacity: 0.7;
}
#asd-snv2 .snv2-sub a:hover {
  color: #fff;
  transform: translateX(2px);
}

#asd-snv2 .snv2-viewall {
  text-align: center;
  padding: 12px 0;
  column-span: all;
}

/* Desktop overlay */
#asd-snv2 .snv2-overlay {
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  z-index: 99999;
  pointer-events: none;
}
#asd-snv2 .snv2-overlay[hidden] {
  display: none;
}
#asd-snv2 .snv2-overlay-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.42);
  opacity: 0;
  transition: opacity 0.18s ease;
}
#asd-snv2 .snv2-overlay-panel {
  width: min(96vw, 1740px);
  max-width: none;
  margin: 0 auto;
  background: var(--snv2-panel-bg);
  border-top: 1px solid #222;
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.55);
  transform: translateY(-8px);
  opacity: 0;
  transition:
    transform 0.18s ease,
    opacity 0.18s ease;
  /* allow child scroller to shrink inside */
  min-height: 0;
}
@media (min-width: 1440px) {
  #asd-snv2 .snv2-overlay-panel {
    width: min(97vw, 1820px);
  }
}
@media (min-width: 861px) and (max-width: 1100px) {
  #asd-snv2 .snv2-overlay-panel {
    width: calc(100vw - 18px);
  }
}
#asd-snv2 .snv2-overlay.is-open .snv2-overlay-backdrop {
  opacity: 1;
}
#asd-snv2 .snv2-overlay.is-open .snv2-overlay-panel {
  transform: translateY(0);
  opacity: 1;
}

/* === CENTRALIZED SCROLLING ===========================================
   1) Overlay content is the ONLY vertical scroller when overlay is open.
   2) Templates and panels inside DO NOT create their own scrollers.
   3) Drawer uses its panel as the only scroller (see drawer block).
   ==================================================================== */

/* Sole overlay scroller (desktop/mobile overlays) */
#snv2-overlay-content {
  /* Height equals remaining viewport space under the overlay top.
     JS can set --snv2-overlay-top precisely; fallback 0px still works. */
  height: calc(100dvh - var(--snv2-overlay-top, 0px));
  max-height: calc(100dvh - var(--snv2-overlay-top, 0px));
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  /* Prevent nested scrollers from stealing wheel/touch */
  min-height: 0;
}

/* Neutralize any inner scrollers inside overlay content */
#snv2-overlay-content .snv2-panel-inner,
#snv2-overlay-content .snv2-panel-body,
#snv2-overlay-content .snv2-panel-inner.snv2-scroll-area,
#snv2-overlay-content .snv2-panel-body.snv2-scroll-area {
  overflow: visible !important;
  max-height: none !important;
}

/* Smart Columnizer v2 layout (unchanged) */
#asd-snv2 .snv2-balanced {
  display: flex;
  gap: var(--snv2-gap, 28px);
  align-items: flex-start;
  flex-wrap: nowrap;
}
#asd-snv2 .snv2-colwrap {
  flex: 1 0 var(--snv2-mincol, 320px);
  overflow: hidden;
  max-height: var(--snv2-maxh, 10000px);
}
#asd-snv2 .snv2-group {
  margin: 0 0 22px;
}
#asd-snv2 .snv2-term--top.snv2-continued::after {
  content: " (cont.)";
  opacity: 0.6;
  font-weight: 400;
  font-size: 0.95em;
}

/* Mobile drawer */
#asd-snv2 .snv2-hamburger {
  display: none !important;
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 24px;
}
#asd-snv2 .snv2-drawer {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 99999;
  display: none;
}
#asd-snv2 .snv2-drawer-panel {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 100%;
  max-width: none;
  background: #111;
  box-shadow: 2px 0 16px rgba(0, 0, 0, 0.5);
  transform: translateX(-100%);
  transition: transform 0.22s ease;
  display: flex;
  flex-direction: column;
  /* Drawer is the ONLY scroller in drawer mode */
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  min-height: 0;
}
#asd-snv2 .snv2-drawer.is-open {
  display: block;
}
#asd-snv2 .snv2-drawer.is-open .snv2-drawer-panel {
  transform: translateX(0);
}
#asd-snv2 .snv2-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  border-bottom: 1px solid #222;
  position: sticky;
  top: 0;
  background: #111;
  z-index: 2;
}
#asd-snv2 .snv2-drawer-title {
  font-size: 18px;
  font-weight: 700;
}
#asd-snv2 .snv2-drawer-close,
#asd-snv2 .snv2-drawer-back {
  background: transparent;
  border: 0;
  color: #fff;
  font-size: 18px;
  padding: 6px 8px;
  cursor: pointer;
}

/* Drawer list/content: NO vertical scrolling here to avoid double scrollbars */
#asd-snv2 .snv2-drawer-list {
  padding: 8px 0;
  overflow: visible; /* <- was auto; centralized on panel */
}
#asd-snv2 .snv2-drawer-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  border-bottom: 1px solid #1c1c1c;
}
#asd-snv2 .snv2-drawer-item a {
  flex: 1 1 auto;
}

#asd-snv2 .snv2-drawer-item {
  padding: 16px 18px;
  gap: 10px;
}
#asd-snv2 .snv2-drawer-item a {
  font-size: 16px;
  line-height: 1.25;
}
#asd-snv2 .snv2-drawer-item:hover {
  background: #121212;
}
#asd-snv2 .snv2-drawer-item + .snv2-drawer-item {
  border-top: 1px solid #181818;
}

#asd-snv2 .snv2-chevron {
  opacity: 0.65;
  font-size: 18px;
  line-height: 1;
  padding-left: 8px;
}
#asd-snv2 .snv2-drawer-item .snv2-top-link,
#asd-snv2 .snv2-drawer-item .snv2-drill-link {
  display: block;
  width: 100%;
}

/* Drawer anti-sticky (ensure rows scroll as part of panel) */
#asd-snv2 .snv2-drawer-list,
#asd-snv2 .snv2-drawer-item,
#asd-snv2 .snv2-drawer-item a {
  position: static !important;
  top: auto !important;
  z-index: auto !important;
  transform: none !important;
  background: #111;
}

/* “View all” row */
#asd-snv2 .snv2-drawer-item.snv2-parent {
  background: #0f0f0f;
  position: static !important;
  top: auto !important;
  z-index: auto !important;
  border-top: 0;
}
#asd-snv2 .snv2-drawer-item.snv2-parent a {
  font-weight: 700;
}

/* Accessibility / scroll lock */
#asd-snv2 .snv2-overlay {
  pointer-events: none;
}
#asd-snv2 .snv2-overlay.is-open {
  pointer-events: auto;
}
html.snv2-lock {
  overflow: hidden;
  padding-right: var(--snv2-sbw, 0px);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  #asd-snv2 * {
    transition: none !important;
  }
}

/* Responsive */
@media (max-width: 860px) {
  #asd-snv2 .snv2-hamburger {
    display: inline-flex !important;
  }
  #asd-snv2 .snv2-menu {
    display: none;
  }
}
@media (max-width: 560px) {
  #asd-snv2 .snv2-search {
    order: 3;
    width: 100%;
  }
}

/* Mini-cart overlay visibility */
.smart-cart-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 100000;
}
.smart-cart-overlay.is-open {
  display: block;
}

/* Promo/HTML block helper */
#asd-snv2 .snv2-mega-tuning {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
}
#asd-snv2 .snv2-mega-tuning img {
  width: 92px;
  height: 92px;
  object-fit: cover;
  border-radius: 8px;
  flex: 0 0 auto;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.06) inset;
}
#asd-snv2 .snv2-mega-tuning .btn {
  display: inline-block;
  padding: 7px 12px;
  border-radius: 999px;
  background: var(--snv2-red, #a50303);
  color: #fff;
  text-decoration: none;
  font: 600 12.5px/1 var(--snv2-sub-font, system-ui);
  box-shadow:
    0 1px 0 rgba(0, 0, 0, 0.4) inset,
    0 0 0 1px rgba(0, 0, 0, 0.35);
}

/* Topline helpers */
#asd-snv2 .snv2-topline-inner {
  position: relative;
}
#asd-snv2 .snv2-topline .snv2-slide {
  display: block;
  white-space: nowrap;
}

/* === SNV2: perfectly center the logo on mobile === */
@media (max-width: 860px) {
  #asd-snv2 .snv2-bar-inner {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    grid-template-areas:
      "left logo right"
      "search search search";
    align-items: center;
    gap: 12px;
    padding-block: 8px;
  }
  #asd-snv2 .snv2-hamburger {
    grid-area: left;
    justify-self: start;
    margin: 0;
  }
  #asd-snv2 .snv2-logo {
    grid-area: logo;
    justify-self: center;
  }
  #asd-snv2 .snv2-icons {
    grid-area: right;
    justify-self: end;
    display: grid;
    grid-auto-flow: column;
    align-items: center;
    gap: 12px;
    padding-right: var(--snv2-edge-right);
  }
  #asd-snv2 .snv2-search {
    grid-area: search;
    display: block !important;
    width: 100%;
    margin: 8px 0 4px;
  }
  #asd-snv2 .snv2-search form,
  #asd-snv2 .snv2-search .aws-container,
  #asd-snv2 .snv2-search .dgwt-wcas-search-wrapp {
    width: 100%;
  }
  #asd-snv2 .snv2-search input[type="search"],
  #asd-snv2 .snv2-search .aws-search-field,
  #asd-snv2 .snv2-search .dgwt-wcas-search-input {
    width: 100%;
  }

  #asd-snv2 {
    --snv2-icon-size: 26px;
  }

  /* Mobile min logo size (never smaller than 64px) */
  #asd-snv2 .snv2-logo-img {
    height: max(var(--snv2-logo-h), 64px);
  }
  #asd-snv2 .snv2-logo {
    margin-block: calc(
      (var(--snv2-logo-baseline) - max(var(--snv2-logo-h), 64px)) / 2
    );
  }
}
@media (max-width: 420px) {
  #asd-snv2 {
    --snv2-icon-size: 24px;
  }
}

/* Branding logo robustness */
#asd-snv2 .snv2-brand {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
}
#asd-snv2 .snv2-brand a,
#asd-snv2 .snv2-brand img {
  flex-shrink: 0;
}
#asd-snv2 .snv2-brand img {
  height: var(--snv2-logo-h, 42px) !important;
  width: auto !important;
  max-width: none !important;
  object-fit: contain;
}
@media (max-width: 420px) {
  #asd-snv2 .snv2-brand img {
    height: 36px !important;
  }
}
@media (min-width: 768px) {
  #asd-snv2 .snv2-brand img {
    height: 44px !important;
  }
}
#asd-snv2 .snv2-brand img.custom-logo,
.woocommerce #asd-snv2 .snv2-brand img {
  max-width: none !important;
  height: var(--snv2-logo-h, 42px) !important;
}

/* Search grows; brand doesn't shrink */
#asd-snv2 .snv2-search {
  min-width: 0;
  flex: 1 1 auto;
}

/* Drawer context: zero padding on panel bodies when drawer flow is active */
#asd-snv2.snv2-drawer-open #snv2-overlay-content > .snv2-panel-inner,
#asd-snv2.snv2-drawer-open #snv2-drawer .snv2-panel-inner {
  padding: 0 !important;
}
#asd-snv2.snv2-drawer-open
  #snv2-overlay-content
  > .snv2-panel-inner
  > .snv2-panel-inner,
#asd-snv2.snv2-drawer-open #snv2-drawer .snv2-panel-inner .snv2-panel-inner {
  padding: 0 !important;
  margin: 0 !important;
}

/* Preferred: trims chrome whenever the overlay content contains a template panel */
#snv2-overlay-content:has(.snv2-panel--template) .snv2-panel-inner,
#snv2-drawer:has(.snv2-panel--template) .snv2-panel-inner {
  padding: 0 !important;
  margin: 0 !important;
}

/* Fallback (no :has support): JS adds .snv2-has-template */
#snv2-overlay-content.snv2-has-template .snv2-panel-inner,
#snv2-drawer.snv2-has-template .snv2-panel-inner {
  padding: 0 !important;
  margin: 0 !important;
}

/* Drawer-context hard clamp (belt & braces) */
#asd-snv2.snv2-drawer-open #snv2-overlay-content .snv2-panel-inner,
#asd-snv2.snv2-drawer-open #snv2-drawer .snv2-panel-inner {
  padding: 0 !important;
  margin: 0 !important;
}

/* Visually hidden utility */
.snv2-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Overlay must cover the dynamic viewport on mobile */
#snv2-overlay {
  position: fixed;
  inset: 0; /* top/right/bottom/left: 0 */
  height: 100svh; /* dynamic vh (iOS/Android safe) */
}

#snv2-overlay .snv2-overlay-panel {
  min-height: 100svh; /* ensure panel fills overlay */
  display: flex;
  flex-direction: column;
}

/* The element nav.js mounts into — let it fill and flex */
#snv2-overlay-content {
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
  max-height: none;
}

/* When a template is mounted (drawer/overlay), keep the flex chain solid */
#snv2-overlay-content > .snv2-panel.snv2-panel--template {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  max-height: none;
}
#snv2-overlay-content > .snv2-panel.snv2-panel--template > .snv2-panel-inner {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}

/* === SNV2: Brand panel (recursive tree) =============================== */

#asd-snv2 .snv2-panel--brand {
  /* the brand panel we render doesn't include .snv2-panel-inner,
     so give it its own padding and layout */
  padding: 20px 24px;
}

/* Multi-column layout (auto-balances brand blocks) */
#asd-snv2 .snv2-panel--brand {
  column-gap: 32px;
  column-rule: 0;
}
@media (min-width: 940px) {
  #asd-snv2 .snv2-panel--brand {
    column-count: 3;
  }
}
@media (min-width: 1280px) {
  #asd-snv2 .snv2-panel--brand {
    column-count: 4;
  }
}
@media (max-width: 939.98px) {
  #asd-snv2 .snv2-panel--brand {
    column-count: 1;
  }
}

/* Each top-level brand lives in a block that shouldn't break across columns */
#asd-snv2 .snv2-brand-block {
  break-inside: avoid;
  -webkit-column-break-inside: avoid;
  margin: 0 0 22px;
  padding: 0 0 6px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

/* Brand heading */
#asd-snv2 .snv2-brand-title {
  margin: 0 0 8px;
  color: #fff;
  font-family: var(--snv2-head-font);
  font-weight: var(--snv2-head-weight);
  font-style: var(--snv2-head-style);
  font-size: calc(var(--snv2-head-size) + 4px);
  letter-spacing: var(--snv2-head-ls);
  opacity: 0.95;
}

/* First level list under each brand */
#asd-snv2 .snv2-brand-list {
  list-style: none;
  margin: 6px 0 0;
  padding-left: 16px;
  border-left: 2px solid rgba(255, 255, 255, 0.1);
}

/* Deeper levels get a lighter guide and tighter spacing */
#asd-snv2 .snv2-brand-list .snv2-brand-list {
  margin-top: 6px;
  border-left-color: rgba(255, 255, 255, 0.07);
}

/* List items + links */
#asd-snv2 .snv2-brand-item {
  margin: 6px 0;
}
#asd-snv2 .snv2-brand-item > a {
  position: relative;
  display: inline-block;
  padding-left: 14px;
  color: #d9d9d9;
  font-family: var(--snv2-sub-font);
  font-weight: var(--snv2-sub-weight);
  font-style: var(--snv2-sub-style);
  font-size: var(--snv2-sub-size);
  letter-spacing: var(--snv2-sub-ls);
  transition:
    color 0.12s ease,
    transform 0.12s ease;
}

/* Bullet dot for each item */
#asd-snv2 .snv2-brand-item > a::before {
  content: "•";
  position: absolute;
  left: 0;
  top: 0;
  transform: translateY(-1px);
  opacity: 0.7;
}

/* Hover feedback */
#asd-snv2 .snv2-brand-item > a:hover {
  color: #fff;
  transform: translateX(2px);
}

/* Tighten nested bullets just a touch for visual rhythm */
#asd-snv2 .snv2-brand-list .snv2-brand-item > a {
  padding-left: 12px;
}

/* Shortcode-only mount: used only where wp_body_open is missing.
   The shortcode moves this mount to the top of <body> so the navbar uses the
   same layout context as the normal automatic injection. */
.asd-snv2-shortcode-mount {
  display: block;
  width: 100%;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  clear: both;
  position: relative;
  z-index: 1000;
}
.asd-snv2-shortcode-mount.is-mounted-at-body {
  width: 100%;
  margin: 0 !important;
}
.asd-snv2-shortcode-mount #asd-snv2 {
  display: block;
  width: 100%;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.asd-snv2-shortcode-mount #asd-snv2 .snv2-topline,
.asd-snv2-shortcode-mount #asd-snv2 .snv2-bar,
.asd-snv2-shortcode-mount #asd-snv2 .snv2-menu {
  margin: 0 !important;
  box-sizing: border-box;
}
.asd-snv2-shortcode-mount + *,
.wp-block-shortcode:has(.asd-snv2-shortcode-mount) {
  margin-top: 0 !important;
}

/* 3.1.7: clearer desktop mega-menu scrolling and hover-safe focus */
@media (min-width: 769px) {
  #asd-snv2 #snv2-overlay-content {
    scrollbar-width: auto;
    scrollbar-color: rgba(255, 255, 255, 0.48) rgba(255, 255, 255, 0.08);
  }
  #asd-snv2 #snv2-overlay-content::-webkit-scrollbar {
    width: 12px;
  }
  #asd-snv2 #snv2-overlay-content::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.06);
  }
  #asd-snv2 #snv2-overlay-content::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.42);
    border: 3px solid #111;
    border-radius: 999px;
  }
  #asd-snv2 #snv2-overlay-content::-webkit-scrollbar-thumb:hover {
    background: rgba(255, 255, 255, 0.62);
  }

  #asd-snv2 .snv2-overlay.snv2-component-scrollable .snv2-overlay-panel::after {
    content: "Scroll for more  ↓";
    position: absolute;
    left: 50%;
    bottom: 10px;
    transform: translateX(-50%);
    z-index: 4;
    padding: 6px 11px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    background: rgba(15, 15, 15, 0.9);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.45);
    color: rgba(255, 255, 255, 0.86);
    font: 600 12px/1.2 Arial, Helvetica, sans-serif;
    letter-spacing: 0.04em;
    pointer-events: none;
    transition: opacity 0.16s ease, transform 0.16s ease;
  }
  #asd-snv2 .snv2-overlay.snv2-component-scrollable .snv2-overlay-panel::before {
    content: "";
    position: absolute;
    z-index: 3;
    left: 0;
    right: 0;
    bottom: 0;
    height: 62px;
    pointer-events: none;
    background: linear-gradient(to bottom, rgba(17, 17, 17, 0), rgba(17, 17, 17, 0.96));
    transition: opacity 0.16s ease;
  }
  #asd-snv2 .snv2-overlay.snv2-component-at-end .snv2-overlay-panel::after,
  #asd-snv2 .snv2-overlay.snv2-component-at-end .snv2-overlay-panel::before {
    opacity: 0;
  }
}


/* 3.1.8: exact mobile centring, clearer component scrolling, account state */
#asd-snv2 .snv2-account-status {
  position: absolute;
  top: -3px;
  right: -4px;
  width: 10px;
  height: 10px;
  box-sizing: border-box;
  border: 2px solid var(--snv2-bg, #0f0f0f);
  border-radius: 50%;
  background: #36c96b;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.35);
}
#asd-snv2 .snv2-account.is-logged-in::after {
  content: "";
  position: absolute;
  inset: -6px;
  border: 1px solid rgba(54, 201, 107, 0.34);
  border-radius: 50%;
  pointer-events: none;
}

@media (max-width: 860px) {
  #asd-snv2 .snv2-bar-inner {
    position: relative;
    grid-template-columns: 1fr 1fr;
    grid-template-areas:
      "left right"
      "search search";
    grid-template-rows: minmax(72px, auto) auto;
  }
  #asd-snv2 .snv2-logo {
    position: absolute;
    z-index: 2;
    top: 8px;
    left: 50%;
    transform: translateX(-50%);
    margin: 0;
    padding-left: 0;
    max-width: min(46vw, 190px);
  }
  #asd-snv2 .snv2-logo-img,
  #asd-snv2 .snv2-logo-svg,
  #asd-snv2 .snv2-logo-svg svg {
    max-width: 100%;
  }
  #asd-snv2 .snv2-hamburger {
    align-self: center;
  }
  #asd-snv2 .snv2-icons {
    align-self: center;
    padding-right: 0;
  }
}
@media (max-width: 360px) {
  #asd-snv2 .snv2-bar-inner { gap: 8px; }
  #asd-snv2 .snv2-icons { gap: 9px; }
  #asd-snv2 .snv2-logo { max-width: 43vw; }
}

@media (min-width: 769px) {
  #asd-snv2 .snv2-overlay.snv2-component-active .snv2-overlay-panel {
    position: relative;
    padding-right: 26px;
  }
  #asd-snv2 .snv2-overlay.snv2-component-active .snv2-overlay-panel::before {
    content: "";
    position: absolute;
    z-index: 5;
    top: 16px;
    right: 8px;
    bottom: 16px;
    width: 5px;
    border-radius: 999px;
    background: rgba(255,255,255,.13);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
    pointer-events: none;
  }
  #asd-snv2 .snv2-overlay.snv2-component-scrollable .snv2-overlay-panel::after {
    content: "SCROLL  ↓";
    right: 8px;
    left: auto;
    bottom: 18px;
    transform: none;
    padding: 9px 7px;
    writing-mode: vertical-rl;
    text-orientation: mixed;
    border-color: rgba(255,255,255,.34);
    background: rgba(0,0,0,.94);
    color: #fff;
    font-size: 11px;
    letter-spacing: .13em;
    animation: snv2-scroll-cue 1.35s ease-in-out infinite;
  }
  #asd-snv2 .snv2-overlay.snv2-component-scrollable:not(.snv2-component-at-end) #snv2-overlay-content {
    padding-bottom: 70px;
  }
  #asd-snv2 .snv2-overlay.snv2-component-at-end .snv2-overlay-panel::after {
    animation: none;
  }
}
@keyframes snv2-scroll-cue {
  0%, 100% { translate: 0 0; }
  50% { translate: 0 6px; }
}
@media (prefers-reduced-motion: reduce) {
  #asd-snv2 .snv2-overlay.snv2-component-scrollable .snv2-overlay-panel::after { animation: none; }
}


/* 3.1.9: mobile header breathing room and a quieter signed-in state */
#asd-snv2 .snv2-account-status {
  top: 0;
  right: -1px;
  width: 6px;
  height: 6px;
  border-width: 1px;
  background: rgba(102, 190, 129, 0.82);
  box-shadow: none;
}
#asd-snv2 .snv2-account.is-logged-in::after {
  content: none;
}

@media (max-width: 860px) {
  #asd-snv2 .snv2-bar-inner {
    grid-template-rows: minmax(84px, auto) auto;
  }
  #asd-snv2 .snv2-search {
    margin-top: 12px;
  }
}

@media (max-width: 360px) {
  #asd-snv2 .snv2-bar-inner {
    grid-template-rows: minmax(80px, auto) auto;
  }
  #asd-snv2 .snv2-search {
    margin-top: 10px;
  }
}

/* 3.1.10: optically raise the centred mobile logo without moving the search row */
@media (max-width: 860px) {
  #asd-snv2 .snv2-logo {
    top: 0;
    transform: translate(-50%, -5px);
  }
}

@media (max-width: 360px) {
  #asd-snv2 .snv2-logo {
    transform: translate(-50%, -7px);
  }
}


/* ==========================================================================
   Smart notification bar — v3.2.2
   Desktop: rotating promo left + stable utilities right.
   Mobile: one unified rotating message.
   ========================================================================== */
#asd-snv2 .snv2-topline {
  padding: 0 18px;
  min-height: 34px;
  font: 600 12px/1.2 var(--snv2-menu-font, Arial, Helvetica, sans-serif);
  letter-spacing: 0;
  text-align: left;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  overflow: hidden;
}
#asd-snv2 .snv2-topline-shell {
  width: min(100%, 1460px);
  height: 34px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto;
  align-items: stretch;
}
#asd-snv2 .snv2-topline-promos,
#asd-snv2 .snv2-topline-inner,
#asd-snv2 .snv2-topline-mobile,
#asd-snv2 .snv2-topline-mobile-track {
  position: relative;
  min-width: 0;
  height: 100%;
  overflow: hidden;
}
#asd-snv2 .snv2-topline-promos {
  padding-right: 18px;
}
#asd-snv2 .snv2-topline-inner {
  width: 100%;
}
#asd-snv2 .snv2-topline-item {
  color: inherit;
  text-decoration: none;
}
#asd-snv2 .snv2-topline-inner > .snv2-topline-item,
#asd-snv2 .snv2-topline-mobile-track > .snv2-topline-item {
  position: absolute;
  inset: 0 auto 0 0;
  max-width: 100%;
  display: flex;
  align-items: center;
  gap: 8px;
  opacity: 0;
  transform: translateY(8px);
  pointer-events: none;
  transition: opacity 0.32s ease, transform 0.32s ease;
}
#asd-snv2 .snv2-topline-inner > .snv2-topline-item.is-active,
#asd-snv2 .snv2-topline-mobile-track > .snv2-topline-item.is-active {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
  z-index: 2;
}
#asd-snv2 .snv2-topline-inner > .snv2-topline-item.is-leaving,
#asd-snv2 .snv2-topline-mobile-track > .snv2-topline-item.is-leaving {
  opacity: 0;
  transform: translateY(-8px);
  z-index: 1;
}
#asd-snv2 .snv2-topline-label {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
#asd-snv2 .snv2-topline-icon {
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
  display: inline-grid;
  place-items: center;
  color: currentColor;
}
#asd-snv2 .snv2-topline-icon svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  overflow: visible;
}
#asd-snv2 .snv2-topline-pound {
  font: 800 15px/1 Arial, Helvetica, sans-serif;
}
#asd-snv2 a.snv2-topline-item:hover .snv2-topline-label,
#asd-snv2 a.snv2-topline-item:focus-visible .snv2-topline-label {
  text-decoration: underline;
  text-underline-offset: 2px;
}
#asd-snv2 .snv2-topline-utilities {
  display: flex;
  align-items: stretch;
  justify-content: flex-end;
  min-width: 0;
  height: 34px;
}
#asd-snv2 .snv2-topline-utility {
  min-height: 34px;
  padding: 0 16px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
  border-left: 1px solid rgba(255, 255, 255, 0.25);
  transition: background-color 0.18s ease;
}
#asd-snv2 a.snv2-topline-utility:hover,
#asd-snv2 a.snv2-topline-utility:focus-visible {
  background: rgba(255, 255, 255, 0.09);
  outline: none;
}
#asd-snv2 .snv2-topline-mobile {
  display: none;
}

@media (max-width: 1100px) and (min-width: 861px) {
  #asd-snv2 .snv2-topline {
    padding-inline: 12px;
    font-size: 11px;
  }
  #asd-snv2 .snv2-topline-utility {
    padding-inline: 11px;
  }
  #asd-snv2 .snv2-topline-utility--email .snv2-topline-icon {
    display: none;
  }
}

@media (max-width: 860px) {
  #asd-snv2 .snv2-topline {
    padding: 0 14px;
    min-height: 32px;
    font-size: 11.5px;
    text-align: center;
  }
  #asd-snv2 .snv2-topline-shell {
    display: block;
    height: 32px;
  }
  #asd-snv2 .snv2-topline-promos,
  #asd-snv2 .snv2-topline-utilities {
    display: none;
  }
  #asd-snv2 .snv2-topline-mobile {
    display: block;
    height: 32px;
  }
  #asd-snv2 .snv2-topline-mobile-track > .snv2-topline-item {
    inset: 0;
    width: 100%;
    justify-content: center;
  }
  #asd-snv2 .snv2-topline-mobile .snv2-topline-label {
    max-width: calc(100vw - 58px);
  }
}

@media (max-width: 380px) {
  #asd-snv2 .snv2-topline {
    padding-inline: 9px;
    font-size: 11px;
  }
  #asd-snv2 .snv2-topline-mobile .snv2-topline-label {
    max-width: calc(100vw - 50px);
  }
}

@media (prefers-reduced-motion: reduce) {
  #asd-snv2 .snv2-topline-inner > .snv2-topline-item,
  #asd-snv2 .snv2-topline-mobile-track > .snv2-topline-item {
    transition: none !important;
  }
}

/* v1.6.55: match the image's intrinsic proportions even when the mobile
   header constrains its available width; prevent 2:1 logos stretching. */
#asd-snv2 img.snv2-logo-img,
.woocommerce #asd-snv2 img.snv2-logo-img {
  width: auto !important;
  height: auto !important;
  max-height: var(--snv2-logo-h, 56px) !important;
  max-width: 100% !important;
  object-fit: contain;
}
@media (max-width: 420px) {
  #asd-snv2 img.snv2-logo-img,
  .woocommerce #asd-snv2 img.snv2-logo-img { max-height: 36px !important; }
}

/* v1.6.60: compact mobile masthead. Older rules above reserve an 84px
   first grid row AND add a 12px row gap and 12px search margin, producing
   excessive empty space. Keep the logo centred over the search while
   reclaiming that space; constrain its width for small screens. */
@media (max-width: 860px) {
  #asd-snv2 .snv2-bar-inner {
    grid-template-rows: minmax(80px, auto) auto;
    row-gap: 4px;
    padding-block: 5px 7px;
  }
  #asd-snv2 .snv2-logo {
    top: 0;
    transform: translate(-50%, -3px);
    padding-top: 0;
    padding-bottom: 0;
    max-width: min(52vw, 208px);
  }
  #asd-snv2 img.snv2-logo-img,
  .woocommerce #asd-snv2 img.snv2-logo-img {
    width: auto !important;
    height: clamp(68px, 21vw, 84px) !important;
    max-height: none !important;
    max-width: min(52vw, 208px) !important;
    object-fit: contain;
  }
  #asd-snv2 .snv2-search {
    margin: 0 0 2px;
  }
}
@media (max-width: 360px) {
  #asd-snv2 .snv2-bar-inner {
    grid-template-rows: minmax(72px, auto) auto;
  }
  #asd-snv2 .snv2-logo {
    max-width: 48vw;
  }
  #asd-snv2 img.snv2-logo-img,
  .woocommerce #asd-snv2 img.snv2-logo-img {
    max-width: 48vw !important;
  }
}

/* 1.6.70: MaxxECU only — the overlay is wide, but #snv2-overlay-content
   ALSO has .snv2-panel-inner (normally capped at 1440px with 24px padding).
   Lift that cap on both wrapper layers to let the actual menu fill the overlay.
   Other top-level mega menus retain their existing 1440px content measure. */
@media (min-width: 861px) {
  #asd-snv2 #snv2-overlay-content.snv2-template--maxxecu {
    width: 100% !important;
    max-width: none !important;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
  }
  #asd-snv2 #snv2-overlay-content.snv2-template--maxxecu > .snv2-panel--template,
  #asd-snv2 #snv2-overlay-content.snv2-template--maxxecu > .snv2-panel--template > .snv2-panel-inner {
    width: 100% !important;
    max-width: none !important;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
  }
}


/* 1.6.71: MaxxECU overlay cleanup — remove the forced full-height black shell
   behind the richer template so the desktop hover panel hugs the content. */
@media (min-width: 861px) {
  #asd-snv2 #snv2-overlay:has(#snv2-overlay-content.snv2-template--maxxecu) .snv2-overlay-panel {
    min-height: 0 !important;
    height: auto !important;
    display: block !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  #asd-snv2 #snv2-overlay-content.snv2-template--maxxecu {
    height: auto !important;
    max-height: calc(100dvh - var(--snv2-overlay-top, 0px));
    flex: 0 0 auto !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
  }

  #asd-snv2 #snv2-overlay-content.snv2-template--maxxecu > .snv2-panel--template,
  #asd-snv2 #snv2-overlay-content.snv2-template--maxxecu > .snv2-panel--template > .snv2-panel-inner {
    height: auto !important;
    max-height: none !important;
  }
}


/* 1.6.78 — image-led By Component mega menu, scoped to component only. */
#asd-snv2 .snv2-component-menu {
  color:#151820;background:linear-gradient(145deg,#fff,#f7f8fa);
  border:1px solid #e0e5eb;border-radius:12px;overflow:hidden;
  font:400 13px/1.45 Arial,Helvetica,sans-serif;
}
#asd-snv2 .snv2-component-grid {
  display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:0!important;min-width:0;align-items:stretch!important;
  padding:12px 20px 8px!important;column-count:auto!important;
}
#asd-snv2 .snv2-cmp-group {
  min-width:0;display:flex;flex-direction:column;align-items:stretch;
  padding:10px clamp(14px,1.65vw,28px) 18px;
  border-right:1px solid #e6e9ee;
}
#asd-snv2 .snv2-cmp-group:nth-child(4n) {border-right:0}
#asd-snv2 .snv2-cmp-group:nth-child(n+5) {border-top:1px solid #e7eaf0;padding-top:18px}
#asd-snv2 .snv2-cmp-image {
  width:100%;height:100px;display:flex;align-items:center;justify-content:center;
  margin-bottom:3px;padding:4px 6px;border-radius:8px;
}
#asd-snv2 .snv2-cmp-image img {
  display:block;width:auto;max-width:92%;height:96px;max-height:100%;
  object-fit:contain;mix-blend-mode:multiply;transition:transform .18s;
}
#asd-snv2 .snv2-cmp-image:hover img {transform:scale(1.04)}
#asd-snv2 .snv2-cmp-placeholder {width:112px;height:78px;filter:drop-shadow(2px 4px 5px rgba(0,0,0,.12))}
#asd-snv2 .snv2-cmp-group h3 {
  margin:3px 0 7px;padding:0;font:800 16px/1.24 Arial,Helvetica,sans-serif;
  letter-spacing:-.02em;
}
#asd-snv2 .snv2-cmp-group h3 a {color:#111419!important;text-decoration:none!important}
#asd-snv2 .snv2-cmp-group h3 a:hover {color:#d5002a!important}
#asd-snv2 .snv2-cmp-links {margin:0;padding:0!important;list-style:none!important;display:grid;gap:0}
#asd-snv2 .snv2-cmp-links li {list-style:none!important;margin:0;padding:0;min-width:0}
#asd-snv2 .snv2-cmp-links a {
  display:flex;align-items:center;justify-content:space-between;min-width:0;
  padding:4px 0;gap:8px;color:#4e5969!important;text-decoration:none!important;
  font:500 12.5px/1.35 Arial,Helvetica,sans-serif;transition:color .15s;
}
#asd-snv2 .snv2-cmp-links a:hover {color:#cb0028!important}
#asd-snv2 .snv2-cmp-links a span:first-child {min-width:0;overflow-wrap:anywhere}
#asd-snv2 .snv2-cmp-links a span:last-child {color:#eb002e;font-size:21px;line-height:1;font-weight:400;flex:none}
#asd-snv2 .snv2-component-menu a:focus-visible {outline:2px solid #ed0030!important;outline-offset:2px}
#asd-snv2 .snv2-cmp-footer {
  min-height:58px;display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:12px 24px;border-top:1px solid #e6e8ee;
  background:linear-gradient(125deg,#f9fafb,#f1f3f6);padding:11px clamp(18px,2.2vw,38px);
}
#asd-snv2 .snv2-cmp-footer a {text-decoration:none!important}
#asd-snv2 .snv2-cmp-all {color:#df002c!important;font-size:13px;font-weight:800}
#asd-snv2 .snv2-cmp-all:hover {text-decoration:underline!important}
#asd-snv2 .snv2-cmp-footer a span {font-size:18px;margin-left:7px}
#asd-snv2 .snv2-cmp-assist {display:flex;gap:12px;align-items:center;color:#667080;font-size:12px}
#asd-snv2 .snv2-cmp-assist a {display:inline-flex;align-items:center;gap:3px;color:#20252d!important;font-weight:700;border:1px solid #cbd1da;border-radius:9px;padding:6px 10px;background:transparent}
#asd-snv2 .snv2-cmp-assist a:hover {border-color:#e50028;color:#d50026!important}
#asd-snv2 .snv2-component-empty {color:#5c6675;padding:20px}
/* Component has one vertical scroller, no forced black full-height shell. */
#asd-snv2 #snv2-overlay:has(#snv2-overlay-content.snv2-component-content) .snv2-overlay-panel {
  display:block!important;min-height:0!important;height:auto!important;
  background:transparent!important;padding:0!important;box-shadow:none!important;
}
#asd-snv2 #snv2-overlay-content.snv2-component-content {
  width:100%!important;max-width:none!important;min-width:0;
  margin:0!important;padding:0!important;height:auto!important;
  max-height:calc(100dvh - var(--snv2-overlay-top,0px) - 4px)!important;
  overflow-y:auto!important;overflow-x:hidden!important;
  scrollbar-width:thin;scrollbar-color:#a0a6b1 #edf0f4;
}
#asd-snv2 #snv2-overlay-content.snv2-component-content > .snv2-panel--panel,
#asd-snv2 #snv2-overlay-content.snv2-component-content > .snv2-panel--panel > .snv2-panel-inner {
  width:100%!important;max-width:none!important;min-width:0;
  height:auto!important;margin:0!important;padding:0!important;
}
#asd-snv2 #snv2-overlay.snv2-component-active .snv2-overlay-panel::before,
#asd-snv2 #snv2-overlay.snv2-component-scrollable .snv2-overlay-panel::after {content:none!important}
@media (min-width:861px) {
  #asd-snv2 #snv2-overlay-content.snv2-component-content {max-height:min(80dvh,calc(100dvh - var(--snv2-overlay-top,0px) - 6px))!important}
  #asd-snv2 .snv2-overlay.snv2-component-scrollable:not(.snv2-component-at-end) #snv2-overlay-content.snv2-component-content {padding-bottom:0!important}
}
@media (max-width:1160px) {
  #asd-snv2 .snv2-component-grid {grid-template-columns:repeat(2,minmax(0,1fr))!important}
  #asd-snv2 .snv2-cmp-group:nth-child(n) {border-right:1px solid #e6e9ee;border-top:0}
  #asd-snv2 .snv2-cmp-group:nth-child(2n) {border-right:0}
  #asd-snv2 .snv2-cmp-group:nth-child(n+3) {border-top:1px solid #e7eaf0;padding-top:16px}
}
@media (max-width:540px) {
  #asd-snv2 .snv2-component-grid {grid-template-columns:1fr!important;padding:7px 12px 5px!important}
  #asd-snv2 .snv2-cmp-group:nth-child(n) {border-right:0;border-top:1px solid #e7eaf0;padding:12px 6px 14px;display:grid;grid-template-columns:88px minmax(0,1fr);column-gap:12px;align-items:start}
  #asd-snv2 .snv2-cmp-group:first-child {border-top:0}
  #asd-snv2 .snv2-cmp-image {grid-row:1/3;grid-column:1;width:88px;height:90px;padding:0;align-self:start;margin:2px 0}
  #asd-snv2 .snv2-cmp-image img {height:80px;width:100%;max-width:100%}
  #asd-snv2 .snv2-cmp-placeholder {width:84px;height:65px}
  #asd-snv2 .snv2-cmp-group h3 {grid-column:2;margin:0 0 4px;font-size:15px}
  #asd-snv2 .snv2-cmp-links {grid-column:2}
  #asd-snv2 .snv2-cmp-links a {padding:3px 0;font-size:12px}
  #asd-snv2 .snv2-cmp-footer {padding:14px;align-items:start}
  #asd-snv2 .snv2-cmp-assist {width:100%;justify-content:space-between;flex-wrap:wrap}
}
@media (prefers-reduced-motion:reduce) {
  #asd-snv2 .snv2-cmp-links a, #asd-snv2 .snv2-cmp-image img {transition:none!important;transform:none!important}
}


/* v1.6.79: taxonomy-driven By Component directory. Cards are the *actual*
   top-level WooCommerce categories; only real descendants appear beneath. */
#asd-snv2 .snv2-component-hierarchy {background:#f7f8fa}
#asd-snv2 .snv2-cmp-intro {
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:16px clamp(14px,2vw,28px);background:#fff;border-bottom:1px solid #e5e9ef;
}
#asd-snv2 .snv2-cmp-intro h2{margin:4px 0 2px;color:#101318;font:800 clamp(18px,1.55vw,25px)/1.2 Arial,sans-serif;letter-spacing:-.03em}
#asd-snv2 .snv2-cmp-intro p{margin:0;color:#5a6676;font-size:12px}
#asd-snv2 .snv2-cmp-intro .snv2-cmp-eyebrow{color:#ce002a;font-size:10px;font-weight:850;letter-spacing:.08em}
#asd-snv2 .snv2-cmp-search{flex:0 1 330px;min-width:160px}
#asd-snv2 .snv2-cmp-filter {
  display:block;width:100%;max-width:100%;min-height:40px;
  padding:10px 13px;border:1px solid #d7dfe8;border-radius:9px;
  background:#f6f7f9;color:#18212d;font:500 13px/1.3 Arial,sans-serif;
}
#asd-snv2 .snv2-cmp-filter:focus{outline:2px solid #db002f;outline-offset:1px}
#asd-snv2 .snv2-cmp-hierarchy-grid {
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:start;gap:10px;padding:12px clamp(12px,1.5vw,25px) 16px;
}
#asd-snv2 .snv2-cmp-hierarchy-card {
  display:grid;grid-template-columns:80px minmax(0,1fr);gap:10px;
  min-width:0;padding:12px;border:1px solid #e1e6ee;border-radius:11px;
  background:#fff;box-shadow:0 3px 12px rgba(25,32,44,.025);
}
#asd-snv2 .snv2-cmp-hierarchy-card[hidden]{display:none!important}
#asd-snv2 .snv2-cmp-hierarchy-img {
  display:flex;align-items:flex-start;justify-content:center;width:80px;height:76px;
  border-radius:7px;background:#f6f7f9;overflow:hidden;
}
#asd-snv2 .snv2-cmp-hierarchy-img img {display:block;width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
#asd-snv2 .snv2-cmp-hierarchy-img svg {width:72px;height:62px}
#asd-snv2 .snv2-cmp-hierarchy-main{min-width:0}
#asd-snv2 .snv2-cmp-hierarchy-main h3{margin:0 0 6px;font:800 14px/1.3 Arial,sans-serif}
#asd-snv2 .snv2-cmp-hierarchy-main h3 a{display:flex;justify-content:space-between;gap:6px;align-items:center;color:#10131a!important;text-decoration:none!important}
#asd-snv2 .snv2-cmp-hierarchy-main h3 a:hover{color:#d3002b!important}
#asd-snv2 .snv2-cmp-hierarchy-main h3 a span{color:#d9002b;font-size:17px}
#asd-snv2 .snv2-cmp-hierarchy-children,#asd-snv2 .snv2-cmp-branch ul {margin:0;padding:0!important;list-style:none!important;min-width:0}
#asd-snv2 .snv2-cmp-hierarchy-children li,#asd-snv2 .snv2-cmp-branch li {list-style:none!important;margin:0;padding:0;min-width:0}
#asd-snv2 .snv2-cmp-child {display:flex;flex-wrap:wrap;align-items:center;gap:0;min-height:26px;position:relative}
#asd-snv2 .snv2-cmp-child > a {display:flex;justify-content:space-between;align-items:center;flex:1 1 0;min-width:0;gap:7px;padding:4px 0;color:#434e5d!important;font:500 12px/1.3 Arial,sans-serif;text-decoration:none!important}
#asd-snv2 .snv2-cmp-child > a:hover {color:#da002e!important}
#asd-snv2 .snv2-cmp-child > a span {color:#e0002e;font-size:16px;line-height:1}
#asd-snv2 .snv2-cmp-branch {flex:0 0 auto;margin:0 0 0 3px;max-width:100%}
#asd-snv2 .snv2-cmp-branch > summary {
  display:grid;place-items:center;list-style:none;cursor:pointer;
  width:22px;height:23px;border:1px solid #dce2ea;border-radius:5px;
  color:#d10029;background:#fafbfc;font:bold 15px/1 Arial,sans-serif;
}
#asd-snv2 .snv2-cmp-branch > summary::-webkit-details-marker,#asd-snv2 .snv2-cmp-more > summary::-webkit-details-marker{display:none}
#asd-snv2 .snv2-cmp-branch[open] > summary{background:#fff0f3}
#asd-snv2 .snv2-cmp-branch[open]{flex:1 1 100%;min-width:0;margin-left:0}
#asd-snv2 .snv2-cmp-branch[open] > summary{margin-left:auto}
#asd-snv2 .snv2-cmp-branch > ul {width:100%;margin:5px 0!important;padding:3px 0 3px 9px!important;border-left:2px solid #eff0f3}
#asd-snv2 .snv2-cmp-branch > ul .snv2-cmp-child > a {font-size:11px}
#asd-snv2 .snv2-cmp-more{margin-top:6px;border-top:1px solid #eef0f4;padding-top:6px}
#asd-snv2 .snv2-cmp-more > summary {display:flex;align-items:center;justify-content:space-between;gap:6px;list-style:none;cursor:pointer;color:#cf0029;font:750 11px/1.4 Arial,sans-serif;padding:3px 0}
#asd-snv2 .snv2-cmp-more[open] > summary span {transform:rotate(180deg)}
#asd-snv2 .snv2-cmp-more > .snv2-cmp-hierarchy-children {margin-top:5px!important}
#asd-snv2 .snv2-cmp-direct {display:inline-flex;gap:5px;color:#d10028!important;font-size:12px;margin-top:3px}
#asd-snv2 .snv2-cmp-hierarchy-note{color:#6c7582;font-size:11px}
#asd-snv2 .snv2-cmp-no-results{margin:5px 24px 22px;color:#647084;font-size:13px}
@media (max-width:1250px){
  #asd-snv2 .snv2-cmp-hierarchy-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:900px){
  #asd-snv2 .snv2-cmp-hierarchy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:560px){
  #asd-snv2 .snv2-cmp-intro{flex-direction:column;align-items:stretch;padding:12px}
  #asd-snv2 .snv2-cmp-search{flex:0 0 auto;min-width:0}
  #asd-snv2 .snv2-cmp-hierarchy-grid{grid-template-columns:1fr;padding:10px;gap:7px}
  #asd-snv2 .snv2-cmp-hierarchy-card{grid-template-columns:70px minmax(0,1fr);padding:10px}
  #asd-snv2 .snv2-cmp-hierarchy-img{width:70px;height:70px}
  #asd-snv2 .snv2-cmp-hierarchy-main h3{font-size:15px}
  #asd-snv2 .snv2-cmp-hierarchy-note{width:100%}
}


/* 1.6.80 — Full hierarchy, space-efficient independent columns.
   CSS multi-columns prevent a tall parent (e.g. Engine Management) from
   forcing empty grid rows under every shorter category. */
#asd-snv2 .snv2-component-hierarchy .snv2-cmp-hierarchy-grid {
  display:block !important;
  columns:4;
  column-gap:12px;
  column-fill:balance;
  padding:12px clamp(12px,1.5vw,24px) 5px;
}
#asd-snv2 .snv2-component-hierarchy .snv2-cmp-hierarchy-card {
  display:grid;
  width:100%;
  break-inside:avoid;
  -webkit-column-break-inside:avoid;
  page-break-inside:avoid;
  margin:0 0 12px;
  padding:11px;
  vertical-align:top;
}
#asd-snv2 .snv2-component-hierarchy .snv2-cmp-hierarchy-children {
  display:block;
  margin:0 !important;
  padding:0 !important;
}
#asd-snv2 .snv2-component-hierarchy .snv2-cmp-child {
  display:block;
  min-height:0;
}
#asd-snv2 .snv2-component-hierarchy .snv2-cmp-child > a {
  display:flex;
  width:100%;
  min-width:0;
  padding:4px 0;
  line-height:1.35;
  overflow-wrap:anywhere;
}
#asd-snv2 .snv2-component-hierarchy .snv2-cmp-branch-list {
  display:block;
  margin:2px 0 4px 2px !important;
  padding:1px 0 1px 10px !important;
  border-left:2px solid #e7eaf0;
  list-style:none !important;
}
#asd-snv2 .snv2-component-hierarchy .snv2-cmp-branch-list > .snv2-cmp-child > a {
  font-size:11px;
  padding:3px 0;
  color:#606b79 !important;
}
#asd-snv2 .snv2-component-hierarchy .snv2-cmp-branch-list .snv2-cmp-branch-list {
  padding-left:8px !important;
}
#asd-snv2 .snv2-component-hierarchy .snv2-cmp-search {flex-basis:310px}
@media (max-width:1250px) {
  #asd-snv2 .snv2-component-hierarchy .snv2-cmp-hierarchy-grid {columns:3}
}
@media (max-width:900px) {
  #asd-snv2 .snv2-component-hierarchy .snv2-cmp-hierarchy-grid {columns:2}
}
@media (max-width:560px) {
  #asd-snv2 .snv2-component-hierarchy .snv2-cmp-hierarchy-grid {columns:1;padding:9px}
  #asd-snv2 .snv2-component-hierarchy .snv2-cmp-hierarchy-card {margin-bottom:8px}
}
/* Keep percentage card widths inclusive of padding and borders. */
#asd-snv2 .snv2-component-hierarchy .snv2-cmp-hierarchy-card{box-sizing:border-box!important}

/* Progressive enhancement: only enable the dense grid after JS has measured
   real card heights. Without JS the full hierarchy stays visible in columns. */
#asd-snv2 .snv2-component-hierarchy .snv2-cmp-hierarchy-grid.snv2-cmp-masonry-ready {
  display:grid !important;
  columns:auto !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  grid-auto-rows:4px;
  grid-auto-flow:dense;
  align-items:start;
  column-gap:12px;
  row-gap:8px;
}
#asd-snv2 .snv2-component-hierarchy .snv2-cmp-masonry-ready > .snv2-cmp-hierarchy-card {
  margin:0;
  height:max-content;
}
@media (max-width:1250px) {
  #asd-snv2 .snv2-component-hierarchy .snv2-cmp-hierarchy-grid.snv2-cmp-masonry-ready {grid-template-columns:repeat(3,minmax(0,1fr)) !important}
}
@media (max-width:900px) {
  #asd-snv2 .snv2-component-hierarchy .snv2-cmp-hierarchy-grid.snv2-cmp-masonry-ready {grid-template-columns:repeat(2,minmax(0,1fr)) !important}
}
@media (max-width:560px) {
  #asd-snv2 .snv2-component-hierarchy .snv2-cmp-search {flex:0 0 auto !important}
  #asd-snv2 .snv2-component-hierarchy .snv2-cmp-hierarchy-grid.snv2-cmp-masonry-ready {grid-template-columns:1fr !important}
}


/* v1.6.81: a deliberate TWO-level WooCommerce category directory.
   Subcategory links use the full width beneath compact image-led headings;
   wide cards can arrange long, direct-child lists in two short columns. */
#asd-snv2 .snv2-component-hierarchy .snv2-cmp-hierarchy-card {
  display:block!important;
  padding:11px 12px;
  background:#fff;
}
#asd-snv2 .snv2-component-hierarchy .snv2-cmp-card-heading {
  display:grid;
  grid-template-columns:54px minmax(0,1fr);
  gap:10px;
  align-items:center;
  min-height:54px;
  margin-bottom:6px;
}
#asd-snv2 .snv2-component-hierarchy .snv2-cmp-hierarchy-img {
  width:54px;height:54px;
  align-items:center;
}
#asd-snv2 .snv2-component-hierarchy .snv2-cmp-hierarchy-img svg {width:50px;height:44px}
#asd-snv2 .snv2-component-hierarchy .snv2-cmp-card-heading h3 {
  margin:0;
  min-width:0;
  font:800 14px/1.3 Arial,sans-serif;
}
#asd-snv2 .snv2-component-hierarchy .snv2-cmp-card-heading h3 a {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  color:#141a22!important;
  text-decoration:none!important;
}
#asd-snv2 .snv2-component-hierarchy .snv2-cmp-card-heading h3 a:hover {color:#d6002e!important}
#asd-snv2 .snv2-component-hierarchy .snv2-cmp-card-heading h3 span {color:#de002c;font-size:18px;flex:none}
#asd-snv2 .snv2-component-hierarchy .snv2-cmp-hierarchy-children {
  display:grid!important;
  grid-template-columns:1fr;
  gap:1px 9px;
  margin:5px 0 0!important;
  padding:0!important;
}
#asd-snv2 .snv2-component-hierarchy .snv2-cmp-hierarchy-children--wide {
  grid-template-columns:repeat(2,minmax(0,1fr));
}
#asd-snv2 .snv2-component-hierarchy .snv2-cmp-hierarchy-children .snv2-cmp-child > a {
  min-height:27px;
  padding:5px 6px;
  border-radius:5px;
  background:#f6f7f9;
  color:#303b4b!important;
  font-size:11px;
  line-height:1.35;
  overflow-wrap:anywhere;
}
#asd-snv2 .snv2-component-hierarchy .snv2-cmp-hierarchy-children .snv2-cmp-child > a:hover {
  background:#fff2f5;
  color:#be0027!important;
}
#asd-snv2 .snv2-component-hierarchy .snv2-cmp-hierarchy-children .snv2-cmp-child > a span {flex:none}
@media (max-width:1250px) {
  #asd-snv2 .snv2-component-hierarchy .snv2-cmp-hierarchy-children--wide {grid-template-columns:1fr}
}
@media (max-width:560px) {
  #asd-snv2 .snv2-component-hierarchy .snv2-cmp-hierarchy-card {padding:10px}
  #asd-snv2 .snv2-component-hierarchy .snv2-cmp-card-heading {grid-template-columns:48px minmax(0,1fr);min-height:48px}
  #asd-snv2 .snv2-component-hierarchy .snv2-cmp-hierarchy-img {width:48px;height:48px}
  #asd-snv2 .snv2-component-hierarchy .snv2-cmp-hierarchy-children--wide {grid-template-columns:1fr}
}

/* Filtering must override the masonry card display. */
#asd-snv2 .snv2-component-hierarchy .snv2-cmp-hierarchy-card[hidden] {display:none!important}


/* 1.6.83 — Minimal two-level WooCommerce component navigator.
   Parent categories occupy ONE tidy vertical column at all desktop sizes;
   children are uncluttered text links, not tiles/cards. */
#asd-snv2 .snv2-cmp-navigator{background:#fff;color:#171b23;font-family:Arial,Helvetica,sans-serif}
#asd-snv2 .snv2-cmp-navigator *{box-sizing:border-box}
#asd-snv2 .snv2-cmp-navigator [hidden]{display:none!important}
#asd-snv2 .snv2-cmp-nav-intro{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px clamp(18px,2vw,30px);border-bottom:1px solid #e9ecf0}
#asd-snv2 .snv2-cmp-nav-intro h2{font:800 clamp(19px,1.5vw,24px)/1.18 Arial,sans-serif;letter-spacing:-.025em;color:#16181c;margin:4px 0 2px}
#asd-snv2 .snv2-cmp-nav-intro p{font-size:12px;color:#657080;margin:0}
#asd-snv2 .snv2-cmp-nav-intro .snv2-cmp-nav-eyebrow{font-size:10px;letter-spacing:.11em;font-weight:800;color:#d5002c}
#asd-snv2 .snv2-cmp-nav-search{min-width:195px;flex:0 1 300px}
#asd-snv2 .snv2-cmp-nav-filter{width:100%;min-height:39px;padding:8px 12px;border-radius:7px;background:#fafbfc;border:1px solid #dce1e9;color:#171b23;font:500 13px/1.3 Arial,sans-serif}
#asd-snv2 .snv2-cmp-nav-filter:focus-visible{outline:2px solid #ce0029;outline-offset:2px}
#asd-snv2 .snv2-cmp-nav-browser{display:grid;grid-template-columns:clamp(245px,22%,310px) minmax(0,1fr);min-width:0}
#asd-snv2 .snv2-cmp-nav-departments{min-width:0;padding:16px 15px 18px clamp(16px,1.8vw,28px);border-right:1px solid #e4e8ee;background:#fafbfc}
#asd-snv2 .snv2-cmp-nav-label{margin:0 0 10px;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:800;color:#77818e}
#asd-snv2 .snv2-cmp-nav-parents{display:grid;grid-template-columns:minmax(0,1fr);gap:0}
#asd-snv2 .snv2-cmp-nav-select{position:relative;display:flex;align-items:center;justify-content:space-between;min-width:0;min-height:38px;gap:9px;width:100%;border:0;border-bottom:1px solid #ebedf0;border-radius:0;padding:8px 12px;color:#303844;background:transparent;text-align:left;font:650 13px/1.35 Arial,sans-serif;cursor:pointer;transition:background .14s,color .14s}
#asd-snv2 .snv2-cmp-nav-select span{font-size:17px;flex:none;font-weight:400;color:#949ba5}
#asd-snv2 .snv2-cmp-nav-select:hover{background:#f2f3f6;color:#bc0028}
#asd-snv2 .snv2-cmp-nav-select.is-selected{background:#f5f5f7;color:#c9002e;font-weight:800}
#asd-snv2 .snv2-cmp-nav-select.is-selected::before{content:"";position:absolute;inset:7px auto 7px 0;width:3px;background:#e00032;border-radius:3px}
#asd-snv2 .snv2-cmp-nav-select.is-selected span{color:#d5002b}
#asd-snv2 .snv2-cmp-nav-select:focus-visible{outline:2px solid #d30029;outline-offset:-2px}
#asd-snv2 .snv2-cmp-nav-details{min-width:0;background:#fff;padding:22px clamp(17px,2.1vw,35px) 25px}
#asd-snv2 .snv2-cmp-nav-pane-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;min-width:0;margin:0 0 10px;padding:0 0 14px;border-bottom:1px solid #e5e8ee}
#asd-snv2 .snv2-cmp-nav-pane-heading{min-width:0;flex:1}
#asd-snv2 .snv2-cmp-nav-pane-heading h3{margin:0 0 4px;color:#17191f;font:800 clamp(18px,1.55vw,24px)/1.2 Arial,sans-serif;letter-spacing:-.025em}
#asd-snv2 .snv2-cmp-nav-pane-heading span{color:#788291;font-size:11px}
#asd-snv2 .snv2-cmp-nav-shop{display:inline-flex;gap:9px;align-items:center;flex:none;color:#cc002b!important;font-size:12px;font-weight:750;text-decoration:none!important;white-space:nowrap;padding:7px 0}
#asd-snv2 .snv2-cmp-nav-shop:hover{text-decoration:underline!important}
#asd-snv2 .snv2-cmp-nav-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:clamp(18px,2.1vw,36px);row-gap:0;padding:0!important;margin:0!important;list-style:none!important}
#asd-snv2 .snv2-cmp-nav-links li{margin:0!important;padding:0!important;list-style:none!important;min-width:0}
#asd-snv2 .snv2-cmp-nav-links a{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:39px;padding:8px 4px;border-bottom:1px solid #edf0f3;color:#323c49!important;background:transparent;text-decoration:none!important;font:500 13px/1.38 Arial,sans-serif;overflow-wrap:anywhere}
#asd-snv2 .snv2-cmp-nav-links a span{font-size:17px;flex:none;color:#acb2bb;font-weight:400}
#asd-snv2 .snv2-cmp-nav-links a:hover{color:#cc002c!important;border-bottom-color:#f1b1bf}
#asd-snv2 .snv2-cmp-nav-links a:hover span{color:#cc002c}
#asd-snv2 .snv2-cmp-nav-links a:focus-visible{outline:2px solid #d50030;outline-offset:-2px}
/* 1.6.95: a leaf category is a shopping destination, not an empty pane. */
#asd-snv2 .snv2-cmp-nav-direct{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:20px 0 26px}
#asd-snv2 .snv2-cmp-nav-direct p{margin:0;color:#566273;font-size:14px;line-height:1.55}
#asd-snv2 .snv2-cmp-nav-direct .snv2-cmp-nav-direct-link{display:inline-flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;max-width:100%;padding:11px 16px;border:1px solid #de1741;border-radius:8px;background:#fff;color:#c9002e!important;font-size:13px;font-weight:800;text-decoration:none!important;white-space:normal}
#asd-snv2 .snv2-cmp-nav-direct .snv2-cmp-nav-direct-link:hover{background:#fff3f6;border-color:#bb0028;text-decoration:none!important}
#asd-snv2 .snv2-cmp-nav-direct .snv2-cmp-nav-direct-link:focus-visible{outline:3px solid #e50035;outline-offset:3px}
#asd-snv2 .snv2-cmp-nav-direct .snv2-cmp-nav-direct-link span{flex:none}
@media(max-width:520px){#asd-snv2 .snv2-cmp-nav-direct .snv2-cmp-nav-direct-link{width:100%}}
#asd-snv2 .snv2-cmp-nav-results{padding:19px clamp(17px,2vw,30px) 23px}
#asd-snv2 .snv2-cmp-nav-results-heading{font-size:12px;font-weight:700;color:#5b6574;margin:0 0 14px}
#asd-snv2 .snv2-cmp-nav-result-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 30px}
#asd-snv2 .snv2-cmp-nav-result-group{min-width:0;border:0;padding:0}
#asd-snv2 .snv2-cmp-nav-result-parent{display:block;color:#cc002b!important;font-size:14px;font-weight:750;margin-bottom:6px;text-decoration:none!important}
#asd-snv2 .snv2-cmp-nav-result-group .snv2-cmp-nav-links{grid-template-columns:minmax(0,1fr)}
#asd-snv2 .snv2-cmp-nav-no-results{font-size:13px;color:#657080;margin:0}
#asd-snv2 .snv2-cmp-navigator .snv2-cmp-footer{padding:11px clamp(17px,2vw,30px);background:#fafbfc;border-top:1px solid #e7ebf0}
#asd-snv2 .snv2-cmp-navigator .snv2-cmp-hierarchy-note{color:#7d8794;font-size:11px}
@media(max-width:1300px){
  #asd-snv2 .snv2-cmp-nav-browser{grid-template-columns:260px minmax(0,1fr)}
  #asd-snv2 .snv2-cmp-nav-links{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:800px){
  #asd-snv2 .snv2-cmp-nav-intro{align-items:stretch;flex-direction:column;padding:13px 15px}
  #asd-snv2 .snv2-cmp-nav-search{flex:0 0 auto;min-width:0}
  #asd-snv2 .snv2-cmp-nav-browser{display:block}
  #asd-snv2 .snv2-cmp-nav-departments{border-right:0;border-bottom:1px solid #e4e8ee;padding:13px 15px}
  #asd-snv2 .snv2-cmp-nav-parents{grid-template-columns:minmax(0,1fr)}
  #asd-snv2 .snv2-cmp-nav-details{padding:16px 15px}
  #asd-snv2 .snv2-cmp-nav-links{grid-template-columns:repeat(2,minmax(0,1fr))}
  #asd-snv2 .snv2-cmp-nav-result-list{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:520px){
  #asd-snv2 .snv2-cmp-nav-links{grid-template-columns:minmax(0,1fr)}
  #asd-snv2 .snv2-cmp-nav-pane-head{align-items:flex-start;flex-wrap:wrap;gap:6px}
  #asd-snv2 .snv2-cmp-nav-shop{padding:3px 0}
  #asd-snv2 .snv2-cmp-nav-select{min-height:40px}
}


/* 1.6.84 — three primary desktop hover menus share a common viewport.
   Use one scroll container; never force the old full-height black overlay.
   This rule is scoped to By Component and leaves other standard panels alone. */
@media (min-width:861px) {
  #asd-snv2 #snv2-overlay:has(#snv2-overlay-content.snv2-component-content) .snv2-overlay-panel {
    width:min(97vw,1820px)!important;max-width:none!important;
    height:auto!important;min-height:0!important;background:transparent!important;box-shadow:none!important;
  }
  #asd-snv2 #snv2-overlay-content.snv2-component-content {
    width:100%!important;max-width:none!important;min-width:0!important;
    height:min(620px, calc(100dvh - var(--snv2-overlay-top, 0px) - 12px))!important;max-height:min(620px, calc(100dvh - var(--snv2-overlay-top, 0px) - 12px))!important;
    overflow-y:auto!important;overflow-x:hidden!important;
    background:#fff!important;overscroll-behavior:contain;
  }
  #asd-snv2 #snv2-overlay-content.snv2-component-content .snv2-cmp-navigator {
    min-height:min(620px, calc(100dvh - var(--snv2-overlay-top, 0px) - 12px));display:flex;flex-direction:column;
  }
  #asd-snv2 #snv2-overlay-content.snv2-component-content .snv2-cmp-nav-browser {flex:1 0 auto}
  #asd-snv2 #snv2-overlay-content.snv2-component-content .snv2-cmp-footer {margin-top:auto}
}

/* 1.6.85: Keep the desktop navigation row above the mega-menu backdrop.
   The overlay itself is positioned below the menu by positionOverlay();
   a full-viewport fixed backdrop otherwise intercepts neighbouring triggers. */
@media (hover: hover) and (pointer: fine) and (min-width: 861px) {
  #asd-snv2 .snv2-overlay.is-open .snv2-overlay-backdrop {
    top: var(--snv2-overlay-top, 0px);
  }
}


/* v1.6.86 — the mobile template overlay is a full-viewport drawer.
   Desktop hover width (96–97vw) must never leak into the mobile mode. */
@media (max-width: 860px) {
  #asd-snv2.snv2-drawer-open #snv2-overlay {
    position: fixed !important;
    inset: 0 !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100vw !important;
    max-width: none !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-height: none !important;
    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box;
  }
  #asd-snv2.snv2-drawer-open #snv2-overlay .snv2-overlay-panel {
    position: relative !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    box-shadow: none !important;
    box-sizing: border-box;
  }
  #asd-snv2.snv2-drawer-open #snv2-overlay-content {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    flex: 1 1 auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    box-sizing: border-box;
  }
  #asd-snv2.snv2-drawer-open #snv2-overlay-content > .snv2-panel--template {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: 100% !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    border-radius: 0 !important;
  }
  #asd-snv2.snv2-drawer-open #snv2-overlay-content .snv2-overlay-head {
    width: 100% !important;
    box-sizing: border-box;
    flex: 0 0 auto !important;
    position: relative;
  }
  #asd-snv2.snv2-drawer-open #snv2-overlay-content > .snv2-panel--template > .snv2-panel-inner {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: auto !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
  }
  #asd-snv2.snv2-drawer-open #snv2-overlay-content :is(.snv2-maxx-spotlight, .snv2-services-pack-template) {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }
  #asd-snv2.snv2-drawer-open #snv2-overlay-content :is(.snv2-maxx-spotlight, .snv2-services-pack-template) .snv2-panel-body {
    min-height: 0 !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }
}


/* v1.6.120 — WordPress toolbar-safe fixed drawers.
   WordPress itself already pushes normal document flow beneath the toolbar;
   do NOT add body padding/margins here or the storefront header moves twice.
   Fixed mini-cart and mobile navigation panels instead need a viewport offset.
   JS measures #wpadminbar's visible height so non-sticky mobile toolbars can
   scroll away without leaving a permanent 46px gap. */
body.admin-bar {
  --asd-wp-adminbar-offset: 32px;
}
@media (max-width: 782px) {
  body.admin-bar {
    --asd-wp-adminbar-offset: 46px;
  }
}

/* Mini-cart is portalled directly into <body> to avoid transform clipping. */
body.admin-bar #smart-cart-overlay,
body.admin-bar .smart-cart-overlay {
  top: var(--asd-wp-adminbar-offset, 32px) !important;
}

/* Mobile menus may otherwise cover the dashboard bar (and hide their close). */
@media (max-width: 860px) {
  body.admin-bar #asd-snv2 .snv2-drawer {
    top: var(--asd-wp-adminbar-offset, 32px) !important;
    bottom: 0 !important;
  }
  body.admin-bar #asd-snv2.snv2-drawer-open #snv2-overlay {
    top: var(--asd-wp-adminbar-offset, 32px) !important;
    height: calc(100vh - var(--asd-wp-adminbar-offset, 32px)) !important;
    height: calc(100dvh - var(--asd-wp-adminbar-offset, 32px)) !important;
    bottom: 0 !important;
  }
  body.admin-bar #asd-snv2.snv2-drawer-open #snv2-overlay .snv2-overlay-backdrop {
    top: var(--asd-wp-adminbar-offset, 32px) !important;
  }
}
