/** Shopify CDN: Minification failed

Line 666:0 Expected "}" to go with "{"

**/
/* The Scent Vault — Mega Menu CSS (desktop unchanged, mobile fixed) */

/* Tokens */
:root{
  --nav-red:#a60000;
  --nav-gold:#d8bf86;
  --nav-text-on-red:#fff;
  --nav-text-on-gold:#000;

  --nav-font:"Oswald", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;

  --panel-bg:#fff;
  --text:#111;
  --muted:#444;

  /* set this if you want extra space above bottom sticky bar on phones */
  --tsv-bottom-bar-h: 58px; /* adjust if your bottom bar differs; harmless on desktop */
}

/* Base / bar */
.tsv-nav{
  --bar-bg: var(--nav-red);
  --bar-fg: var(--nav-text-on-red);
  font-family:var(--nav-font);
  position:relative; z-index:50;
}
.tsv-nav.is-boutique-open,
.tsv-nav.is-boutique-current{
  --bar-bg: var(--nav-gold);
  --bar-fg: var(--nav-text-on-gold);
}

.tsv-bar{
  display:flex; gap:36px; align-items:center; justify-content:center;
  background:var(--bar-bg); color:var(--bar-fg);
  padding:12px 16px;
}
.tsv-nav__tab{
  position:relative; border:0; background:transparent; color:inherit; cursor:pointer;
  font-weight:700; letter-spacing:.015em;
  font-size: clamp(16px, 1.25vw, 19px);
  text-transform:none; padding:6px 2px; line-height:1.1;
}
.tsv-nav__tab[aria-expanded="true"]::after{
  content:""; position:absolute; left:50%; transform:translateX(-50%);
  bottom:-12px; width:0; height:0;
  border-left:11px solid transparent; border-right:11px solid transparent;
  border-top:12px solid var(--bar-bg); /* up arrow that “bleeds” into the panel */
}

/* Mega container (desktop baseline) */
.tsv-mega{
  position:absolute; left:0; right:0; top:100%;
  background:var(--panel-bg); color:var(--text);
  box-shadow:0 24px 44px rgba(0,0,0,.14);
  min-height: min(84vh, 900px);
  padding:32px 28px 40px;
}

/* Panels */
.tsv-mega__panel{ display:none; }
.tsv-mega__panel.is-open{ display:block; }

/* Grid (3 columns + image column) */
.tsv-mega__grid{
  display:grid; gap:34px 52px; align-items:start;
  grid-template-columns: repeat(3, minmax(220px, 1fr)) minmax(300px, 1.2fr);
  max-width: 1400px; margin:0 auto;
}

/* Headings & links */
.tsv-mega__col h4{
  font-size: clamp(15px, 1.05vw, 17px);
  font-weight:800; letter-spacing:.06em;
  color:var(--muted); margin:0 0 10px; text-transform:uppercase;
}
.tsv-mega__links a{
  display:block; padding:6px 0; color:var(--text);
  font-size: clamp(14px, 1.05vw, 18px);
  text-decoration:none;
}
.tsv-mega__links a:hover{ text-decoration:underline; }

/* Featured image (right column) */
.tsv-mega__image{ justify-self:end; }
.tsv-mega__image img{ display:block; width:100%; height:auto; border-radius:6px; }

/* BRANDS */
.tsv-mega__panel--brands{ padding-top:6px; }
.tsv-brands__az{
  display:flex; flex-wrap:wrap; align-items:center;
  gap:18px 22px; padding:14px 6px 18px; border-bottom:1px solid #eee;
}
.tsv-brands__letter{
  border:0; background:transparent; cursor:pointer; color:#111;
  font-size: clamp(18px, 1.8vw, 28px); font-weight:700; letter-spacing:.03em;
}
.tsv-brands__letter.is-active{ text-decoration:underline; text-underline-offset:6px; }

/* Slides */
.tsv-brands__viewport{ overflow:hidden; margin-top:18px; }
.tsv-brands__slides{
  display:flex; transition: transform .35s ease; width:100%;
}
.tsv-brands__slide{ flex:0 0 100%; padding-right:18px; }

/* Multi-column brand lists */
.tsv-brands__cols{
  display:grid; gap:10px 36px;
  grid-template-columns: repeat(4, minmax(200px, 1fr));
}
.tsv-brands__col h5{
  font-size: clamp(14px, 1vw, 16px); font-weight:800; letter-spacing:.06em;
  text-transform:uppercase; color:var(--muted); margin:0 0 8px;
}
.tsv-brands__list a{
  display:block; padding:4px 0; color:var(--text);
  font-size: clamp(14px, 1.02vw, 18px); text-decoration:none;
}
.tsv-brands__list a:hover{ text-decoration:underline; }

/* ---------- Responsive (desktop/tablet preserved) ---------- */
@media (max-width: 1200px){
  .tsv-mega__grid{ grid-template-columns: repeat(3, minmax(220px,1fr)); }
  .tsv-mega__image{ display:none; }
}

/* IMPORTANT: keep this, but do NOT alter .tsv-mega here */
@media (max-width: 900px){
  .tsv-bar{ justify-content:flex-start; gap:20px; overflow-x:auto; }
  .tsv-nav__tab[aria-expanded="true"]::after{ display:none; }
  .tsv-mega__grid{ grid-template-columns: repeat(2, minmax(220px,1fr)); }
  .tsv-brands__cols{ grid-template-columns: repeat(2, minmax(180px,1fr)); }
}

/* A–Z one line (desktop) */
@media (min-width: 1024px) {
  .tsv-brands__az{
    display:flex; flex-wrap:nowrap; align-items:center;
    justify-content:space-between;
    gap: clamp(.35rem, .8vw, 1rem);
    white-space:nowrap; overflow:hidden;
  }
  .tsv-brands__letter{
    flex:0 0 auto;
    font-size: clamp(16px, 1.1vw, 20px);
    line-height: 1;
    padding: .25rem .3rem;
    letter-spacing: .02em;
  }
  .tsv-brands__letter:first-child{ padding-left:0; }
}

/* Upward white caret (desktop hover) */
@media (hover:hover) and (min-width: 992px) {
  .tsv-nav__tab { position: relative; }
  .tsv-nav__tab[aria-expanded="true"]::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 100%;
    transform: translateX(-50%);
    width: 0; height: 0;
    border-left: 14px solid transparent;
    border-right: 14px solid transparent;
    border-bottom: 14px solid #fff; /* ▲ apex up, base down (white) */
    z-index: 31;
    pointer-events: none;
  }
  .tsv-nav__tab[aria-expanded="true"]::after { content: none !important; }
}

/* ---------- MOBILE OVERLAY (the only place we change behaviour) ---------- */
@media (max-width: 991px){

  /* lock page scroll when menu is open (JS toggles this class) */
  html.tsv-menu-open,
  body.tsv-menu-open{
    overflow: hidden;
    height: 100%;
    touch-action: none;
  }

  /* menu fills viewport below the header; only the panel scrolls */
  .tsv-mega{
    position: fixed;
    top: var(--tsv-nav-h, 56px);          /* JS sets --tsv-nav-h */
    left: 0; right: 0;
    height: calc(100vh - var(--tsv-nav-h, 56px));
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    z-index: 30;
    background: var(--panel-bg);
    padding: 20px 16px calc(28px + var(--tsv-bottom-bar-h, 0px));
    box-shadow: none; /* cleaner in overlay */
  }

  /* two columns on phones */
  .tsv-mega__grid{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px 20px;
  }
  .tsv-brands__cols{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px 20px;
  }

  /* close (X) button shown on phones */
  .tsv-mega__close{
    display: inline-flex;
    position: fixed;
    top: calc(var(--tsv-nav-h, 56px) + 8px);
    right: 12px;
    width: 36px; height: 36px;
    border-radius: 999px;
    border: 0;
    background: rgba(0,0,0,.78);
    color: #fff;
    font-size: 20px;
    line-height: 1;
    align-items:center; justify-content:center;
    z-index: 60; /* above panel & bottom bar */
  }
}

/* Hide the X on desktop/tablet */
@media (min-width: 200px){
  .tsv-mega__close{ display: none !important; }
}
/* --- MOBILE ONLY: sit the panel directly under the sticky header --- */
@media (max-width: 991px){

  /* prevent the PAGE from scrolling while menu is open */
  html.tsv-menu-open,
  body.tsv-menu-open{
    overflow: hidden;
    height: 100%;
    touch-action: none;
  }

  /* If you have a fixed bottom bar, set its height here */
  :root { --tsv-bottom-bar-h: 58px; } /* tweak if your red bottom bar is different */

  /* Pin the panel below the sticky header (uses --header-height if present) */
  .tsv-mega{
    position: fixed;
    top: var(--header-height, 56px);                 /* <- sticky header height */
    left: 0;
    right: 0;
    height: calc(100vh - var(--header-height, 56px));
    overflow: auto;                                  /* the menu itself scrolls */
    -webkit-overflow-scrolling: touch;
    z-index: 30;
    padding-bottom: calc(28px + var(--tsv-bottom-bar-h, 0px)); /* avoid bottom bar overlap */
  }

  /* Close button (X) in the top-right of the panel */
  .tsv-mega__close{
    position: fixed;
    top: calc(var(--header-height, 56px) + 8px);
    right: 12px;
    width: 36px; height: 36px;
    border: 0; border-radius: 999px;
    background: rgba(0,0,0,.78);
    color: #fff; font-size: 20px;
    line-height: 1; display: inline-flex;
    align-items: center; justify-content: center;
    z-index: 40;
  }
}

/* Hide the X on desktop/tablet */
@media (min-width: 992px){
  .tsv-mega__close{ display: none !important; }
}
/* Keep the sticky header visible while the mobile mega menu is open */
@media (max-width: 991px){
  html.tsv-menu-open .header-wrapper,
  html.tsv-menu-open sticky-header,
  html.tsv-menu-open [data-sticky-type] {
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    z-index: 50;         /* higher than .tsv-mega (which is 30) */
    transform: translateZ(0); /* iOS repaint guard */
  }
}
/* HOMEPAGE (PageFly) fix – keep header above everything while menu is open */
@media (max-width: 991px){
  /* Shopify’s homepage body usually has .template-index */
  html.tsv-menu-open.template-index .header-wrapper,
  html.tsv-menu-open.template-index sticky-header,
  html.tsv-menu-open.template-index [data-sticky-type]{
    position: fixed !important;
    top: 0; left: 0; right: 0;
    z-index: 10020 !important;   /* higher than anything PageFly throws in */
    transform: translateZ(0);     /* iOS repaint guard */
  }

  /* Make sure the mega menu still sits beneath the fixed header */
  html.tsv-menu-open.template-index .tsv-mega{
    z-index: 10010 !important;
    top: var(--tsv-nav-h, 56px);  /* you already set this var in JS */
    height: calc(100vh - var(--tsv-nav-h, 56px));
  }
}

/* ONLY IF the header still hides: PageFly may set transform on its wrappers.
   Temporarily remove those transforms ONLY while the menu is open on homepage. */
@media (max-width: 991px){
  html.tsv-menu-open.template-index .pf-pagebuilder,
  html.tsv-menu-open.template-index .pf-container,
  html.tsv-menu-open.template-index [data-pf-page]{
    transform: none !important;
    filter: none !important;
    perspective: none !important;
  }
}
/* Mobile: keep the last items above the bottom sticky bar */
@media (max-width: 991px){
  :root{
    /* tune this if you want a quick manual fix */
    --tsv-bottom-bar-h: 58px;
  }

  /* Add breathing room inside the scrollable panel */
  .tsv-mega{
    padding-bottom: calc(28px + var(--tsv-bottom-bar-h) + env(safe-area-inset-bottom, 0px)) !important;
  }

  /* Extra spacer so you can scroll past the last link */
  .tsv-mega::after{
    content:"";
    display:block;
    height: calc(var(--tsv-bottom-bar-h) + env(safe-area-inset-bottom, 0px));
    flex: 0 0 auto;
  }
}
/* Mobile only: add extra space at bottom of the menu content */
@media (max-width: 991px){
  /* make sure the shell can actually scroll */
  .tsv-mega{ overflow:auto; }

  /* content panels */
  .tsv-mega__grid{
    padding-bottom: calc(120px + env(safe-area-inset-bottom, 0px)) !important;
  }
/* ===== Brands mobile polish (does not affect desktop) ===== */
@media (max-width: 991px){
  /* Sticky wrapper that holds the search + A–Z and sticks under the panel top */
  .tsv-mega__panel--brands .tsv-brands__sticky{
    position: sticky;
    top: 0;
    background: var(--panel-bg);
    z-index: 2;
    padding: 8px 0 10px;
    box-shadow: 0 1px 0 rgba(0,0,0,.06);
  }

  /* Search input */
  .tsv-brands__tools{ padding: 0 2px 8px; }
  .tsv-brands__search{
    appearance: none;
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font: inherit;
  }

  /* A–Z strip: one line, scrollable, big tap targets */
  .tsv-brands__az{
    display: flex;
    gap: 6px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    white-space: nowrap;
    border-bottom: 1px solid #eee;
    padding: 8px 2px 10px;
  }
  .tsv-brands__letter{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    height: 42px;
    border-radius: 6px;
    padding: 0 6px;
    font-weight: 700;
  }
  .tsv-brands__letter.is-active{
    border-bottom: 2px solid currentColor;
  }
  .tsv-brands__letter[aria-disabled="true"]{
    opacity: .35;
    pointer-events: none;
  }

  /* Search results grid (appears when typing) */
  .tsv-brands__results{
    padding: 12px 0 4px;
  }
  .tsv-brands__results .tsv-brands__cols{
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 8px 22px;
  }
}

/* (Optional) nicer focus ring for A–Z buttons */
.tsv-brands__letter:focus-visible{
  outline: 2px solid #000;
  outline-offset: 2px;
}
/* BRANDS — mobile polish that WILL override earlier rules */
@media (max-width: 991px){
  /* Sticky tools (search + A–Z) */
  .tsv-mega [data-panel="brands"] .tsv-brands__az{
    position: sticky !important;
    top: 0 !important;                 /* panel already starts below header */
    background: #fff !important;
    z-index: 2 !important;
    display: flex !important;
    gap: 8px !important;
    overflow-x: auto !important;
    padding: 8px 0 6px !important;
    border-bottom: 1px solid #eee !important;
  }
  .tsv-mega [data-panel="brands"] .tsv-brands__letter{
    font-size: 16px !important;
    line-height: 1 !important;
    padding: 6px 10px !important;
    border-radius: 6px !important;
    border: 1px solid #e5e5e5 !important;
    flex: 0 0 auto !important;
  }
  .tsv-mega [data-panel="brands"] .tsv-brands__letter.is-active{
    background:#111 !important;
    color:#fff !important;
    border-color:#111 !important;
    text-decoration:none !important;
  }

  /* Search input (the one JS injected) */
  .tsv-mega [data-panel="brands"] .tsv-brands__search{
    width:100% !important;
    height:40px !important;
    border:1px solid #ddd !important;
    border-radius:8px !important;
    padding:0 12px !important;
    font-size:16px !important;
    margin:8px 0 6px !important;
    outline:none !important;
  }

  /* Denser two-column lists with bigger tap targets */
  .tsv-mega [data-panel="brands"] .tsv-brands__cols{
    grid-template-columns: 1fr 1fr !important;
    gap: 10px 18px !important;
  }
  .tsv-mega [data-panel="brands"] .tsv-brands__col h5{
    display:none !important;           /* hide big letter headings on phones */
  }
  .tsv-mega [data-panel="brands"] .tsv-brands__list a{
    display:block !important;
    padding:12px 0 !important;
    border-bottom:1px solid #f1f1f1 !important;
    font-size:16px !important;
  }

  /* A little breathing room inside the slide viewport */
  .tsv-mega [data-panel="brands"] .tsv-brands__viewport{
    padding: 6px 0 14px !important;
  }
}
/* BRANDS A–Z: force one-row, swipeable (mobile only) */
@media (max-width: 991px){
  .tsv-mega [data-panel="brands"] .tsv-brands__az{
    display: flex !important;
    flex-wrap: nowrap !important;     /* no wrapping */
    overflow-x: auto !important;       /* swipe to scroll */
    overflow-y: hidden !important;
    white-space: nowrap !important;
    gap: 8px !important;
    -webkit-overflow-scrolling: touch;
  }
  .tsv-mega [data-panel="brands"] .tsv-brands__letter{
    flex: 0 0 auto !important;         /* keep each button on the same line */
  }

  /* (optional) hide scrollbar on WebKit */
  .tsv-mega [data-panel="brands"] .tsv-brands__az::-webkit-scrollbar{ display:none; }
}
/* Mobile: reduce bottom padding ONLY when BRANDS is open */
@media (max-width: 991px){
  .tsv-nav.is-brands-open .tsv-mega{
    padding-bottom: 14px !important;   /* tweak value to taste */
  }

  /* If you still have a JS spacer or ::after spacer, trim those too (harmless if not present) */
  .tsv-nav.is-brands-open .tsv-mobile-spacer{ height: 14px !important; }
  .tsv-nav.is-brands-open .tsv-mega__panel::after{ height: 14px !important; }
}
/* === MOBILE: shorten the long tail only on BRANDS ======================= */
@media (max-width: 991px){

  /* 1) Keep just a tiny cushion on the container itself */
  .tsv-mega{
    padding-bottom: 8px !important;     /* small, universal cushion */
  }

  /* 2) Give regular panels enough room above the fixed bottom bar */
  :root{ --tsv-bottom-bar-h: 58px; }    /* your bar height (keep/tweak) */
  .tsv-mega__panel{
    padding-bottom: calc(var(--tsv-bottom-bar-h, 58px) + 12px);
  }

  /* 3) …but not for BRANDS; make it tight so there isn’t a big white gap */
  .tsv-mega__panel--brands{
    padding-bottom: 6px !important;    /* tweak: 6–16px if you want */
  }

  /* tidy any leftover spacing inside the brands viewport */
  .tsv-brands__viewport,
  .tsv-brands__slides{ margin-bottom: 0; }
}
/* Mobile: make the last brands scroll above the bottom bar */
@media (max-width: 991px){
  :root { --tsv-bottom-bar-h: 58px; } /* adjust if your bar height differs */

  /* Add tail space only on the BRANDS panel */
  .tsv-mega__panel--brands .tsv-brands__slides{
    padding-bottom: calc(var(--tsv-bottom-bar-h, 58px) + 14px);
  }
}
/* Hide the brands search bar completely */
.tsv-brands__search { display: none !important; }
/* ===============================
   Mobile-only visual polish (<=991px)
   – zero behaviour changes
   =============================== */
@media (max-width: 991px){

  /* Subtle canvas + tidy rhythm */
  .tsv-mega{
    background:#fafafa;              /* very light tone for separation */
   

  /* Headings + dividers */
  .tsv-mega__col h4{
    font-size:14px;
    letter-spacing:.05em;
    font-weight:800;
    color:#666;
    margin:0 0 10px;
    padding-bottom:6px;
    border-bottom:1px solid #eee;    /* soft section divider */
    text-transform:uppercase;
  }

  /* Links: comfy tap targets, calmer weight */
  .tsv-mega__links a{
    display:block;
    padding:9px 0;                   /* min 44px row with line-height */
    line-height:1.25;
    font-weight:600;
  }
  .tsv-mega__links a:active{         /* press feedback */
    background:rgba(0,0,0,.04);
  }

  /* Two-column grid balance */
  .tsv-mega__grid{
    gap:18px 20px;
  }

  /* Strong, consistent close button */
  .tsv-mega__close{
    position: fixed;
    top: calc(var(--tsv-nav-h, 56px) + 8px);
    right: 12px;
    width:40px; height:40px;
    border-radius:999px;
    background:#111;
    color:#fff;
    font-size:22px;
    box-shadow:0 6px 18px rgba(0,0,0,.18);
    display:inline-flex; align-items:center; justify-content:center;
    z-index: 40;
  }

  /* Bottom “scroll hint” fade (sits above content, below your red bar) */
  .tsv-mega::after{
    content:"";
    position:fixed; left:0; right:0;
    bottom: calc(58px + env(safe-area-inset-bottom,0px));  /* your bottom bar height */
    height:24px;
    pointer-events:none;
    background: linear-gradient(to top, rgba(250,250,250,1), rgba(250,250,250,0));
    z-index: 1;
  }

  /* ---------------------------
     BRANDS: better A–Z + lists
     --------------------------- */

  /* A–Z = single scroll row, sticky under panel top */
  .tsv-brands__az{
    position: sticky; top: 0;
    z-index: 2;
    background:#fafafa;
    padding: 8px 0 12px;
    border-bottom:1px solid #eee;

    display:flex; gap:8px;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .tsv-brands__az::-webkit-scrollbar{ display:none; }

  .tsv-brands__letter{
    flex:0 0 auto;
    border:1px solid #e6e6e6;
    background:#fff;
    color:#111;
    padding:7px 12px;
    border-radius:999px;
    line-height:1;
    font-weight:700;
  }
  .tsv-brands__letter[aria-disabled="true"]{ opacity:.35; }
  .tsv-brands__letter.is-active{
    background:#111; color:#fff; border-color:#111;
  }

  /* Brand list: two columns + light row dividers for scan */
  .tsv-brands__cols{
    display:grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap:10px 20px;
  }
  .tsv-brands__list a{
    display:block;
    padding:10px 0;
    border-bottom:1px solid #f1f1f1;
  }
  .tsv-brands__list a:last-child{ border-bottom:0; }

  /* Trim the “tail” space specifically on BRANDS */
  .tsv-mega__panel--brands{ margin-bottom: -16px; } /* adjust to taste */
}

/* Slightly larger tap targets on very small phones */
@media (max-width: 420px){
  .tsv-mega__links a{ padding:11px 0; }
  .tsv-brands__letter{ padding:8px 12px; }
}

