/* ==========================================================================
   VIRGIN CANNABIS — storefront overlay
   Source of truth: virgincanna homepage.zip (Virgin Cannabis.dc.html)
   ========================================================================== */

@keyframes vcPop{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
@keyframes vcFade{from{opacity:0}to{opacity:1}}
@keyframes vcDrift{0%{transform:translate(0,0)}50%{transform:translate(-18px,14px)}100%{transform:translate(0,0)}}
@keyframes vcMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes vcToast{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after {
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
  .vc-orb, .vc-news-orb { animation: none !important; }
  .vc-marquee-track { animation: none !important; }
  .vc-marquee-set[aria-hidden] { display: none !important; }
}

:root {
  --vc-cream: #F7F4EA;
  --vc-paper: #FFFDF8;
  --vc-ink: #171B18;
  --vc-deep: #0D2716;
  --vc-green: #14381F;
  --vc-leaf: #1C4A28;
  --vc-moss: #2E7D3A;
  --vc-lime: #4FA045;
  --vc-gold: #8A6512;
  --vc-gold-lt: #EFC75A;
  --vc-gold-mid: #C9962A;
  --serif: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

html, body, .page {
  background: var(--vc-cream) !important;
  color: var(--vc-ink);
}
html, body, button, input, select, textarea {
  font-family: var(--sans);
}

.grain,
.page::before,
.pagehead::before,
.hero::before,
.footer::before,
.ghost47 { display: none !important; }

.locbtn, .mega, .mega-card, .locsheet { display: none !important; }

::selection { background: var(--vc-gold-lt); color: var(--vc-deep); }
:focus-visible { outline: 2px solid var(--vc-gold-mid); outline-offset: 3px; }

a { color: var(--vc-leaf); }
a:hover { color: var(--vc-gold); }

/* ---- announcement marquee -------------------------------------------- */
.announce, .vc-announce-static, .announce.vc-marquee {
  background: var(--vc-deep) !important;
  color: #E9E3D2;
  overflow: hidden;
  border-radius: 0 !important;
  margin: 0 !important;
  width: 100%;
  -webkit-mask-image: none !important;
          mask-image: none !important;
}
.announce-track { display: none !important; }
.vc-announce-in { display: none !important; }

.vc-marquee-track {
  display: flex;
  width: max-content;
  animation: vcMarquee 42s linear infinite;
}
.vc-marquee-track:hover { animation-play-state: paused; }
.vc-marquee-set {
  display: flex;
  align-items: center;
}
.vc-marquee-set span {
  font: 600 10px/1 var(--sans);
  letter-spacing: .22em;
  text-transform: uppercase;
  padding: 11px 26px;
  white-space: nowrap;
  color: #E9E3D2;
}
.vc-marquee-dot {
  width: 4px; height: 4px;
  border-radius: 999px;
  background: var(--vc-gold-mid);
  flex: none;
}

/* ---- header ----------------------------------------------------------- */
.shell-header {
  position: sticky;
  top: 0 !important;
  z-index: 90;
  background: var(--vc-deep) !important;
}
.header {
  position: relative;
  top: 0;
  z-index: 60;
  background: var(--vc-deep) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  margin: 0 !important;
  overflow: visible;
}
.header.is-stuck { box-shadow: none !important; }
.header-in {
  height: auto;
  min-height: 72px;
  max-width: 1360px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  flex-wrap: nowrap !important;
  gap: clamp(8px, 1.6vw, 22px);
  padding: 8px clamp(12px, 3vw, 36px);
  overflow: visible;
}
.brand { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.header .brand img,
.header .vc-logo,
.mobilenav .vc-logo,
.agegate .vc-logo-gate,
.footer .vc-logo-lg {
  animation: none !important;
  filter: none !important;
}
.header .brand img.vc-logo,
.header .vc-logo,
.mobilenav .brand img.vc-logo,
.mobilenav .vc-logo {
  display: block;
  height: 52px !important;
  width: 52px !important;
  object-fit: cover;
  border-radius: 50%;
  background: #08160d;
  flex: none;
}
.vc-logo-lg {
  height: 88px;
  width: 88px;
  object-fit: cover;
  border-radius: 50%;
  display: block;
  background: #08160d;
}
.vc-logo-gate {
  height: 112px;
  width: 112px;
  object-fit: cover;
  border-radius: 50%;
  margin: 0 auto 22px;
  display: block;
  background: #08160d;
}
.vc-lockup,
.vc-word,
.vc-sub { display: none !important; }

.inv-brand img {
  width: 96px !important;
  height: 96px !important;
  object-fit: cover;
  border-radius: 50%;
  background: #08160d;
  box-shadow: 0 0 0 3px #EFC75A;
}

.vc-nav {
  flex: 1;
  display: none;
  justify-content: center;
  align-items: center;
  gap: 0;
  min-width: 0;
}
@media (min-width: 1100px){
  .vc-nav { display: flex; }
  .header-tools > form.search { display: none !important; }
  .navtoggle { display: none !important; }
}
.nav > a, .nav .nav-has-menu > a {
  font: 600 11px/1 var(--sans);
  letter-spacing: .15em;
  color: rgba(247,244,234,.78);
  padding: 10px 12px;
  text-transform: uppercase;
  border-radius: 999px;
}
.nav > a:hover, .nav .nav-has-menu > a:hover,
.nav > a[aria-current="page"],
.nav a.is-current { color: #F7F4EA; background: rgba(247,244,234,.1); }
.vc-nav-rule {
  width: 1px; height: 14px;
  background: rgba(201,150,42,.45);
  margin: 0 6px;
}
.vc-nav-sale { color: var(--vc-gold) !important; }

.vc-shopdrop {
  position: relative;
  display: inline-flex;
  align-self: stretch;
  align-items: center;
}
.vc-drop {
  display: none;
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  min-width: 200px;
  background: var(--vc-paper);
  border-radius: 16px;
  box-shadow: 0 24px 50px -24px rgba(13,39,22,.45), 0 0 0 1px rgba(13,39,22,.06);
  padding: 12px 8px;
  z-index: 80;
}
/* Invisible bridge across the visual gap so the pointer can reach the panel
   without leaving :hover and collapsing the menu. */
.vc-drop::before {
  content: "";
  position: absolute;
  left: -16px;
  right: -16px;
  top: -16px;
  height: 16px;
}
.vc-drop-2 {
  min-width: 340px;
  grid-template-columns: 1fr 1fr;
}
.vc-shopdrop:focus-within .vc-drop { display: grid; }
@media (hover: hover) {
  .vc-shopdrop:hover .vc-drop { display: grid; }
}
.vc-nav > .vc-shopdrop:last-child .vc-drop { left: auto; right: 0; }
.header-tools > form.search { display: none !important; }
.headbtn-search { display: grid !important; }
.vc-drop a {
  display: block;
  padding: 10px 14px;
  border-radius: 10px;
  font: 500 13px/1 var(--sans) !important;
  letter-spacing: .04em !important;
  color: var(--vc-ink) !important;
  text-transform: none !important;
}
.vc-drop a:hover { background: rgba(79,160,69,.13); color: var(--vc-deep) !important; }

.header-tools { display: flex; align-items: center; gap: 4px; margin-left: auto; flex-shrink: 0; }
.header .search {
  background: rgba(247,244,234,.1);
  border-radius: 999px;
  color: #F7F4EA;
}
.header .search input { color: #F7F4EA; }
.header .search input::placeholder { color: rgba(247,244,234,.45); }
.headbtn {
  width: 44px; height: 44px;
  display: grid; place-items: center;
  border: none; background: none; border-radius: 999px;
  color: #F7F4EA; cursor: pointer;
}
.headbtn:hover { background: rgba(247,244,234,.1); }
.bagbtn {
  position: relative;
  display: flex !important;
  align-items: center;
  gap: 9px;
  height: 44px !important;
  width: auto !important;
  padding: 0 16px 0 13px !important;
  background: #EFC75A !important;
  color: var(--vc-deep) !important;
  border: none;
  border-radius: 999px !important;
  box-shadow: none !important;
  cursor: pointer;
}
.bagbtn:hover { transform: translateY(-2px); }
.bagbtn .label { display: none !important; }
.bagbtn .count,
.header-tools [data-cart-count] {
  position: static;
  min-width: 0;
  height: auto;
  padding: 0;
  border-radius: 0;
  background: none;
  color: inherit;
  font: 700 12px/1 var(--sans);
}
.bagbtn .count[hidden] { display: none !important; }

/* ---- buttons --------------------------------------------------------- */
.btn-primary,
#loadmore-btn,
#age-yes,
#cart-checkout {
  background: linear-gradient(180deg,#1E5029,#102E17) !important;
  color: var(--vc-cream) !important;
  border: none !important;
  border-radius: 999px !important;
  letter-spacing: .18em;
  text-transform: uppercase;
  font: 600 11.5px/1 var(--sans);
  box-shadow: 0 14px 30px -16px rgba(13,39,22,.9);
  padding: 16px 28px;
}
.btn-primary:hover { transform: translateY(-2px); }
.btn-primary:disabled,
#place:disabled,
#cart-checkout[aria-disabled="true"] {
  opacity: .45 !important;
  pointer-events: none !important;
  cursor: not-allowed !important;
  transform: none !important;
  box-shadow: none !important;
}
.minnote {
  background: var(--vc-deep) !important;
  color: var(--vc-cream) !important;
  border: none !important;
}
.minnote a { color: var(--vc-gold-lt) !important; }
.btn-gold {
  background: var(--vc-gold-lt) !important;
  color: var(--vc-deep) !important;
  border: none !important;
  border-radius: 999px !important;
  font: 700 11px/1 var(--sans);
  letter-spacing: .18em;
  text-transform: uppercase;
  padding: 15px 26px;
  display: inline-flex;
  align-items: center;
}
.vc-btn-ghost {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 17px 28px;
  border: 1px solid rgba(201,150,42,.65);
  border-radius: 999px;
  color: var(--vc-green);
  font: 600 11.5px/1 var(--sans);
  letter-spacing: .18em;
  text-transform: uppercase;
  background: rgba(255,253,248,.5);
}
.vc-btn-ghost:hover {
  background: var(--vc-paper);
  border-color: var(--vc-gold);
  color: var(--vc-deep);
}
.vc-btn-ghost-on-dark {
  background: rgba(239,199,90,.08);
  color: var(--vc-cream);
  border-color: rgba(239,199,90,.55);
}
.vc-btn-ghost-on-dark:hover {
  background: var(--vc-gold-lt);
  color: var(--vc-deep);
  border-color: var(--vc-gold-lt);
}

/* ---- homepage hero ---------------------------------------------------- */
.hero.vc-hero,
.vc-hero {
  position: relative;
  background: #08140c !important;
  background-image: none !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
  overflow: hidden !important;
  border-radius: 0 !important;
  min-height: 0 !important;
  width: 100%;
  max-width: none !important;
  left: auto;
}
.vc-orb { display: none !important; }
.vc-hero-stage {
  position: relative;
  width: 100%;
  min-height: clamp(520px, 82vh, 820px);
  min-height: clamp(520px, 82dvh, 820px);
  isolation: isolate;
}
.vc-hero-slides {
  position: absolute;
  inset: 0;
}
.vc-hero-slide {
  position: absolute;
  inset: 0;
  margin: 0;
  opacity: 0;
  transition: opacity .8s ease;
  z-index: 0;
}
.vc-hero-slide.is-on { opacity: 1; z-index: 1; }
.vc-hero-slide img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block;
  border-radius: 0 !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
}
.vc-hero-veil {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(8,20,12,.78) 0%, rgba(8,20,12,.42) 46%, rgba(8,20,12,.18) 100%),
    linear-gradient(180deg, rgba(8,20,12,.28) 0%, rgba(8,20,12,.08) 40%, rgba(8,20,12,.55) 100%);
}
.vc-hero-copy {
  position: relative;
  z-index: 3;
  max-width: 1360px;
  margin: 0 auto;
  padding: clamp(72px, 10vh, 120px) clamp(16px, 4vw, 48px) clamp(48px, 7vh, 72px);
  color: #F7F4EA;
}
.vc-hero-grid { display: none !important; }
.vc-hero-art, .vc-hero-frame, .vc-badge { display: none !important; }

.vc-live {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 16px 8px 10px;
  border-radius: 999px;
  background: rgba(8,20,12,.45);
  box-shadow: inset 0 0 0 1px rgba(239,199,90,.35);
  margin: 0 0 clamp(22px, 3vw, 34px);
}
.vc-live-dot {
  width: 7px; height: 7px;
  border-radius: 999px;
  background: var(--vc-lime);
  box-shadow: 0 0 0 4px rgba(79,160,69,.22);
}
.vc-live span {
  font: 600 10.5px/1 var(--sans);
  letter-spacing: .24em;
  text-transform: uppercase;
  color: #EFC75A;
}

.vc-kicker {
  font: 600 11px/1 var(--sans);
  letter-spacing: .26em;
  text-transform: uppercase;
  color: var(--vc-gold);
  margin: 0 0 18px;
}
.vc-hero h1 {
  margin: 0;
  font: 400 clamp(44px, 7.2vw, 96px)/.94 var(--sans);
  letter-spacing: -.025em;
  color: #F7F4EA;
  text-transform: none;
  text-wrap: balance;
  max-width: 14ch;
}
.vc-hero h1 .vc-h-dark,
.vc-hero h1 .vc-h-gold { display: block; }
.vc-hero h1 em,
.vc-hero h1 .vc-h-gold {
  font-style: italic;
  font-weight: 400;
  color: #EFC75A;
}
.vc-leafdiv { display: none !important; }
.vc-hero .lede {
  max-width: 42ch;
  margin: clamp(22px, 3vw, 30px) 0 0;
  font: 400 clamp(16px, 1.4vw, 18px)/1.65 var(--sans);
  color: rgba(247,244,234,.82);
}
.vc-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: clamp(28px, 4vw, 40px); }
.vc-hero-marks { display: none !important; }

.vc-hero-controls {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: clamp(28px, 4vw, 44px);
}
.vc-hero-arrow {
  width: 42px; height: 42px;
  border-radius: 999px;
  border: 1px solid rgba(247,244,234,.28);
  background: rgba(8,20,12,.35);
  color: #F7F4EA;
  display: grid;
  place-items: center;
  cursor: pointer;
}
.vc-hero-arrow:hover { background: rgba(239,199,90,.9); color: #0D2716; border-color: #EFC75A; }
.vc-hero-dots { display: flex; align-items: center; gap: 8px; }
.vc-hero-dot {
  width: 8px; height: 8px;
  padding: 0;
  border: none;
  border-radius: 999px;
  background: rgba(247,244,234,.35);
  cursor: pointer;
}
.vc-hero-dot.is-on { width: 28px; background: #EFC75A; }

.vc-trust-hero {
  max-width: none;
  margin: 0;
  padding: clamp(18px, 2.4vw, 28px) clamp(16px, 3vw, 36px);
  position: relative;
  z-index: 1;
  background: var(--vc-cream);
}
.vc-trust-hero-in {
  background: rgba(255,253,248,.72);
  border-radius: 24px;
  padding: clamp(18px, 2.4vw, 26px) clamp(16px, 3vw, 34px);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(14px, 2vw, 26px);
  box-shadow: 0 1px 0 rgba(13,39,22,.05), 0 24px 50px -40px rgba(13,39,22,.6);
}
@media (min-width: 800px){
  .vc-trust-hero-in { grid-template-columns: repeat(4, 1fr); }
}
.vc-trust-hero-in > div { display: flex; align-items: center; gap: 14px; }
.vc-trust-ico {
  width: 40px; height: 40px;
  border-radius: 13px;
  flex-shrink: 0;
  display: grid; place-items: center;
  background: rgba(79,160,69,.15);
}
.vc-trust-ico i {
  display: block;
  width: 18px; height: 18px;
  border-radius: 5px;
  background: linear-gradient(140deg,#2E7D3A,#1C4A28);
}
.vc-trust-hero-in b {
  display: block;
  font: 600 11px/1 var(--sans);
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--vc-deep);
}
.vc-trust-hero-in > div > span:last-child span {
  display: block;
  font: 400 12.5px/1.3 var(--sans);
  font-style: normal;
  color: rgba(23,27,24,.55);
  margin-top: 5px;
}

/* ---- sections --------------------------------------------------------- */
.vc-section { padding: clamp(56px, 7vw, 96px) 0; }
.vc-wrap { max-width: 1360px; margin: 0 auto; padding: 0 clamp(16px, 3vw, 36px); }
.vc-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
  margin-bottom: 36px;
}
.vc-eyebrow {
  font: 600 10.5px/1 var(--sans);
  letter-spacing: .26em;
  text-transform: uppercase;
  color: var(--vc-gold);
  margin-bottom: 14px;
}
.vc-h2 {
  margin: 0;
  font: 400 clamp(32px, 4vw, 54px)/1.02 var(--sans);
  letter-spacing: -.02em;
  color: var(--vc-deep);
  text-transform: none;
}
.vc-h2 em { font-style: italic; color: var(--vc-moss); font-weight: 400; }
.vc-textlink {
  display: inline-flex; align-items: center; gap: 10px;
  font: 600 11px/1 var(--sans);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--vc-green);
  padding: 8px 0 4px;
  border-bottom: 1px solid rgba(201,150,42,.5);
}
.vc-textlink:hover { gap: 16px; color: var(--vc-gold); }

.vc-ruled { display: none !important; }

.vc-cats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: clamp(14px, 2vw, 24px);
}
.vc-cats .cat, .vc-cats a {
  text-align: center;
  color: var(--vc-ink);
  text-decoration: none;
  background: none;
  border: none;
  padding: 14px 8px 18px;
  border-radius: 22px;
  transition: background .28s cubic-bezier(.2,.7,.2,1), transform .28s cubic-bezier(.2,.7,.2,1);
}
.vc-cats .cat:hover { background: var(--vc-paper); transform: translateY(-6px); }
.vc-cats .ring, .vc-cats .cat .ring {
  display: block;
  width: clamp(88px, 10vw, 124px);
  height: clamp(88px, 10vw, 124px);
  margin: 0 auto 18px;
  border-radius: 999px;
  overflow: hidden;
  box-shadow: 0 0 0 1px rgba(201,150,42,.35), 0 18px 34px -22px rgba(13,39,22,.7);
  background: #fff;
}
.vc-cats img { width: 100%; height: 100%; object-fit: cover; }
.vc-cats .name {
  display: block;
  font: 600 11.5px/1 var(--sans);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--vc-deep);
}
.vc-cats .n {
  display: block;
  margin-top: 8px;
  font: 400 12.5px/1.4 var(--sans);
  color: rgba(23,27,24,.5);
  letter-spacing: 0;
  padding: 0 4px;
}

.vc-tabs {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
  padding: 5px;
  border-radius: 999px;
  background: rgba(13,39,22,.055);
}
.vc-tabs button {
  border: none;
  border-radius: 999px;
  padding: 11px 18px;
  font: 600 10.5px/1 var(--sans);
  letter-spacing: .14em;
  text-transform: uppercase;
  cursor: pointer;
  background: none;
  color: rgba(23,27,24,.5);
}
.vc-tabs button[aria-selected="true"],
.vc-tabs button.is-on {
  background: var(--vc-paper);
  color: var(--vc-deep);
  box-shadow: 0 6px 16px -10px rgba(13,39,22,.8);
}

.vc-bestgrid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr);
  gap: 22px 16px;
  transform: none !important;
  width: 100% !important;
}
@media (min-width: 700px){ .vc-bestgrid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1100px){ .vc-bestgrid { grid-template-columns: repeat(4, 1fr); } }
.vc-shortlist .rail-clip { overflow: visible; }
.vc-shortlist .dots { display: none !important; }

/* ---- product cards ---------------------------------------------------- */
.pcard {
  background: var(--vc-paper) !important;
  border: none !important;
  box-shadow: 0 1px 0 rgba(13,39,22,.05), 0 18px 40px -34px rgba(13,39,22,.8) !important;
  border-radius: 20px 20px 18px 18px !important;
  position: relative;
  overflow: hidden;
  transition: transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s;
}
.pcard:hover {
  transform: translateY(-7px);
  box-shadow: 0 1px 0 rgba(13,39,22,.05), 0 34px 60px -30px rgba(13,39,22,.55) !important;
}
.pcard .shot-wrap { position: relative; }
.pcard .shot {
  display: block;
  background: linear-gradient(160deg,#EFEBDC,#E6E1CF);
  border-radius: 0;
  overflow: hidden;
  aspect-ratio: 1;
  position: relative;
}
.pcard .shot img { width: 100%; height: 100%; object-fit: contain; }
.pcard .wish {
  position: absolute; top: 10px; right: 10px; z-index: 2;
  width: 44px; height: 44px; border-radius: 999px;
  border: none; background: #fff; color: var(--vc-green);
  display: grid; place-items: center; cursor: pointer;
  box-shadow: 0 6px 16px -10px rgba(13,39,22,.5);
}
.pcard .wish[aria-pressed="true"] { color: var(--vc-gold-mid); }
.pcard .body { padding: 18px 18px 20px; background: none !important; }
.pcard h3, .pcard h3 a,
#pdp-name,
.rv-item-title,
.line .t, .line .name,
.bag-item .t, .ci .t,
.drawer .n, .line .n {
  font-family: var(--sans) !important;
  font-weight: 600 !important;
  font-style: normal !important;
  letter-spacing: 0;
  text-transform: none;
}
.pcard h3, .pcard h3 a {
  font-size: 16px !important;
  line-height: 1.3 !important;
  color: var(--vc-deep) !important;
}
#pdp-name {
  font-size: clamp(26px, 4vw, 40px) !important;
  line-height: 1.2 !important;
  color: var(--vc-deep) !important;
  font-weight: 650 !important;
}
.pcard .sub {
  font: 500 10px/1 var(--sans);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(23,27,24,.42);
  margin: 0 0 9px;
}
.pcard .sub a { color: inherit; }
.pcard .price, .pcard .price-row .price {
  font: 600 19px/1 var(--sans);
  color: var(--vc-green);
}
.pcard .was { color: rgba(23,27,24,.38); text-decoration: line-through; font-weight: 400; margin-left: 6px; }
.pcard .price-row {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.pcard .pill-data {
  display: inline-flex !important;
  align-items: center;
  background: rgba(13,39,22,.07);
  color: var(--vc-leaf);
  border-radius: 999px;
  padding: 5px 10px;
  font: 600 11px/1 var(--sans) !important;
  letter-spacing: .04em;
  white-space: nowrap;
}
.pcard .pill-data .n { color: var(--vc-leaf); font-size: 11px !important; }
.pcard .lab-row, .pcard .add { display: none !important; }
.pdp-price { align-items: center; }
#pdp-pill .pill-data {
  display: inline-flex;
  align-items: center;
  background: rgba(13,39,22,.07);
  color: var(--vc-leaf);
  border-radius: 999px;
  padding: 6px 12px;
  font: 600 12px/1 var(--sans);
  letter-spacing: .04em;
}
.pcard .stars {
  display: flex; align-items: center; gap: 7px;
  margin-top: 9px;
  color: var(--vc-gold);
  font: 400 12px/1 var(--sans);
}
.pcard .stars span { color: rgba(23,27,24,.42); }
.pcard .quick-add {
  display: block;
  width: 100%;
  margin-top: 12px;
  padding: 12px 14px;
  min-height: 44px;
  background: var(--vc-deep);
  color: #F7F4EA;
  font: 600 11px/1 var(--sans);
  letter-spacing: .18em; text-transform: uppercase;
  border: none; border-radius: 12px; cursor: pointer;
  box-shadow: none;
  transition: background .2s, transform .2s;
}
.pcard .quick-add:hover,
.pcard .quick-add:focus-visible {
  background: #14381F;
  color: #F7F4EA;
  transform: translateY(-1px);
}
.pcard .quick-add.is-done {
  background: #1C4A28;
}
.grid-products.is-list .pcard .quick-add {
  max-width: 240px;
}

/* ---- promos ----------------------------------------------------------- */
.vc-promos {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(14px, 2vw, 22px);
}
@media (min-width: 800px){ .vc-promos { grid-template-columns: 1fr 1fr; } }
.vc-promo {
  position: relative;
  overflow: hidden;
  border-radius: 26px;
  min-height: 320px;
  padding: clamp(28px, 4vw, 48px);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.vc-promo h3 {
  margin: 0 0 16px;
  font: 400 clamp(30px, 3.6vw, 44px)/1.05 var(--sans);
}
.vc-promo h3 em { font-style: italic; color: var(--vc-gold-lt); }
.vc-promo p, .vc-promo li {
  font: 400 15px/1.6 var(--sans);
}
.vc-promo ul { list-style: none; padding: 0; margin: 22px 0 26px; }
.vc-promo li {
  display: flex; align-items: center; gap: 12px;
  margin: 0 0 12px;
}
.vc-check {
  width: 20px; height: 20px; flex-shrink: 0;
  border-radius: 999px;
  background: rgba(79,160,69,.2);
  display: grid; place-items: center;
}
.vc-promo-in { position: relative; z-index: 1; }
.vc-promo-dark {
  background: linear-gradient(155deg,#164627,#0D2716);
  color: var(--vc-cream);
}
.vc-promo-dark h3, .vc-promo-dark p { color: var(--vc-cream); }
.vc-promo-dark .bg {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; opacity: .34;
}
.vc-promo-cream {
  background: var(--vc-paper);
  box-shadow: 0 1px 0 rgba(13,39,22,.05), 0 24px 50px -44px rgba(13,39,22,.8);
  justify-content: center;
}
.vc-promo-cream h3 { color: var(--vc-deep); }
.vc-promo-cream h3 em { color: var(--vc-moss); }
.vc-promo-cream p, .vc-promo-cream li { color: rgba(23,27,24,.7); }
.vc-promo-orb {
  position: absolute; right: -60px; top: -60px;
  width: 260px; height: 260px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(79,160,69,.22), rgba(79,160,69,0) 70%);
  pointer-events: none;
}

/* ---- Virgin Reserve ---------------------------------------------------- */
.vc-reserve {
  background: linear-gradient(150deg,#123320,#091E11);
  border-radius: 32px;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr;
}
@media (min-width: 860px){
  .vc-reserve { grid-template-columns: 1.05fr .95fr; }
}
.vc-reserve-copy {
  padding: clamp(36px, 5vw, 72px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.vc-reserve-copy h2 {
  margin: 0;
  font: 400 clamp(38px, 5vw, 66px)/.98 var(--sans);
  letter-spacing: -.02em;
  color: var(--vc-cream);
}
.vc-reserve-copy h2 em { font-style: italic; color: var(--vc-gold-lt); }
.vc-reserve-copy p {
  margin: 24px 0 0;
  max-width: 420px;
  font: 400 16px/1.7 var(--sans);
  color: rgba(247,244,234,.66);
}
.vc-reserve-stats {
  display: flex;
  gap: clamp(20px, 4vw, 48px);
  margin: 34px 0 36px;
  flex-wrap: wrap;
}
.vc-reserve-stats b {
  display: block;
  font: 400 clamp(28px, 3.4vw, 42px)/1 var(--sans);
  color: var(--vc-cream);
}
.vc-reserve-stats span {
  display: block;
  font: 600 9.5px/1 var(--sans);
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(239,199,90,.85);
  margin-top: 10px;
}
.vc-reserve-copy .vc-btn-ghost { align-self: flex-start; }
.vc-reserve-art { position: relative; min-height: clamp(300px, 34vw, 520px); }
.vc-reserve-art img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: 55% 45%;
}

/* ---- new arrivals ----------------------------------------------------- */
.vc-rail-btns { display: flex; gap: 8px; }
.vc-rail-btn {
  width: 44px; height: 44px;
  border-radius: 999px;
  border: 1px solid rgba(13,39,22,.14);
  background: var(--vc-paper);
  color: var(--vc-green);
  display: grid; place-items: center;
  cursor: pointer;
}
.vc-rail-btn:hover { background: var(--vc-green); color: var(--vc-cream); border-color: var(--vc-green); }
.vc-new-rail {
  display: flex;
  gap: 18px;
  overflow-x: auto;
  padding: 4px 4px 20px;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.vc-new-rail::-webkit-scrollbar { display: none; }
.vc-new-rail .pcard {
  flex: 0 0 clamp(220px, 25vw, 266px);
  scroll-snap-align: start;
}

/* ---- education / loyalty / quotes / newsletter --------------------- */
.vc-learn {
  background: linear-gradient(180deg, rgba(247,244,234,0), rgba(238,234,220,.8));
}
.vc-edu {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(16px, 2vw, 24px);
}
@media (min-width: 800px){ .vc-edu { grid-template-columns: repeat(3, 1fr); } }
.vc-jcard {
  display: block;
  background: var(--vc-paper);
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 1px 0 rgba(13,39,22,.05), 0 20px 44px -38px rgba(13,39,22,.8);
  color: inherit;
  text-decoration: none;
  transition: transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s;
}
.vc-jcard:hover { transform: translateY(-7px); box-shadow: 0 36px 62px -32px rgba(13,39,22,.5); color: inherit; }
.vc-jcard img { display: block; width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.vc-jcard .in { display: block; padding: 24px 26px 28px; }
.vc-jcard .k {
  display: block;
  font: 600 9.5px/1 var(--sans);
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--vc-gold);
}
.vc-jcard h3 {
  display: block;
  font: 400 22px/1.22 var(--sans);
  color: var(--vc-deep);
  margin: 14px 0 12px;
}
.vc-jcard p {
  font: 400 14.5px/1.6 var(--sans);
  color: rgba(23,27,24,.6);
  margin: 0;
}
.vc-jcard .when {
  display: block;
  font: 500 12px/1 var(--sans);
  color: rgba(23,27,24,.4);
  margin-top: 18px;
}

.vc-loyalty { background: rgba(238,234,220,.8); }
.vc-center {
  text-align: center;
  max-width: 560px;
  margin: 0 auto clamp(32px, 4vw, 48px);
}
.vc-tiers {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(14px, 2vw, 20px);
}
@media (min-width: 800px){ .vc-tiers { grid-template-columns: repeat(3, 1fr); } }
.vc-tier {
  display: flex;
  flex-direction: column;
  padding: clamp(26px, 3vw, 36px);
  border-radius: 26px;
  background: var(--vc-paper);
  box-shadow: 0 1px 0 rgba(13,39,22,.05), 0 20px 44px -40px rgba(13,39,22,.8);
}
.vc-tier-dark {
  background: linear-gradient(150deg,#164627,#0D2716);
  box-shadow: 0 30px 60px -34px rgba(13,39,22,.8);
}
.vc-tier .tag {
  font: 600 10px/1 var(--sans);
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--vc-gold);
}
.vc-tier-dark .tag { color: var(--vc-gold-lt); }
.vc-tier h3 {
  font: 400 clamp(30px, 3.4vw, 40px)/1 var(--sans);
  color: var(--vc-deep);
  margin: 16px 0 8px;
}
.vc-tier-dark h3 { color: var(--vc-cream); }
.vc-tier .spend {
  font: 400 14px/1.5 var(--sans);
  color: rgba(23,27,24,.62);
  margin-bottom: 22px;
}
.vc-tier-dark .spend { color: rgba(247,244,234,.7); }
.vc-tier ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 11px; flex: 1; }
.vc-tier li {
  display: flex; gap: 11px;
  font: 400 14px/1.45 var(--sans);
  color: rgba(23,27,24,.62);
}
.vc-tier-dark li { color: rgba(247,244,234,.7); }
.vc-tier li::before {
  content: "—";
  color: var(--vc-gold);
  font-weight: 700;
}
.vc-tier-dark li::before { color: var(--vc-gold-lt); }

.vc-quotes { background: rgba(238,234,220,.8); padding-top: 0; }
.vc-quote-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(16px, 2vw, 24px);
}
@media (min-width: 800px){ .vc-quote-grid { grid-template-columns: repeat(3, 1fr); } }
.vc-quote {
  margin: 0;
  background: var(--vc-paper);
  border-radius: 24px;
  padding: clamp(26px, 3vw, 34px);
  display: flex;
  flex-direction: column;
  box-shadow: 0 1px 0 rgba(13,39,22,.05), 0 20px 44px -40px rgba(13,39,22,.8);
}
.vc-quote .stars {
  font: 400 13px/1 var(--sans);
  letter-spacing: .2em;
  color: var(--vc-gold);
  margin-bottom: 18px;
}
.vc-quote blockquote {
  margin: 0;
  flex: 1;
  font: 400 clamp(19px, 2vw, 22px)/1.45 var(--sans);
  color: var(--vc-deep);
}
.vc-quote figcaption {
  display: flex; align-items: center; gap: 12px; margin-top: 24px;
}
.vc-av {
  width: 38px; height: 38px;
  border-radius: 999px;
  background: linear-gradient(150deg,#2E7D3A,#1C4A28);
  color: var(--vc-cream);
  display: grid; place-items: center;
  font: 600 13px/1 var(--sans);
}
.vc-quote figcaption b {
  display: block;
  font: 600 13.5px/1 var(--sans);
  color: var(--vc-ink);
}
.vc-quote figcaption span {
  display: block;
  font: 400 11.5px/1 var(--sans);
  color: rgba(23,27,24,.45);
  margin-top: 5px;
}

.vc-news-band {
  position: relative;
  overflow: hidden;
  border-radius: 32px;
  background: linear-gradient(150deg,#164627,#0D2716);
  padding: clamp(36px, 5vw, 72px);
  text-align: center;
}
.vc-news-orb {
  position: absolute; top: -90px; left: -60px;
  width: 320px; height: 320px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(79,160,69,.28), rgba(79,160,69,0) 68%);
  animation: vcDrift 20s ease-in-out infinite;
  pointer-events: none;
}
.vc-news-band h2 {
  margin: 0;
  font: 400 clamp(30px, 3.8vw, 48px)/1.05 var(--sans);
  color: var(--vc-cream);
}
.vc-news-band h2 em { font-style: italic; color: var(--vc-gold-lt); }
.vc-news-band p {
  margin: 16px 0 30px;
  font: 400 15.5px/1.6 var(--sans);
  color: rgba(247,244,234,.66);
}
.vc-news-form {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: center;
  max-width: 480px;
  margin: 0 auto;
  position: relative;
}
.vc-news-form input[type="email"] {
  flex: 1;
  min-width: 220px;
  padding: 16px 22px;
  border-radius: 999px;
  border: 1px solid rgba(247,244,234,.22);
  background: rgba(247,244,234,.07);
  color: var(--vc-cream);
  font: 400 15px/1 var(--sans);
  outline: none;
}
.vc-news-form input:focus { border-color: var(--vc-gold-lt); background: rgba(247,244,234,.12); }
.vc-news-form button {
  padding: 16px 28px;
  border: none;
  border-radius: 999px;
  background: var(--vc-gold-lt);
  color: var(--vc-deep);
  font: 700 11px/1 var(--sans);
  letter-spacing: .18em;
  text-transform: uppercase;
  cursor: pointer;
}
#signup-done {
  display: inline-flex; align-items: center; gap: 12px;
  padding: 16px 28px;
  border-radius: 999px;
  background: rgba(79,160,69,.18);
  color: var(--vc-cream);
  font: 500 15px/1 var(--sans);
}
#signup-done[hidden] { display: none !important; }

/* ---- inner pages ------------------------------------------------------ */
.pagehead, .pagehead.on-dark {
  background: var(--vc-cream) !important;
  color: var(--vc-ink) !important;
  box-shadow: none !important;
  width: auto !important;
  max-width: none;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding: clamp(28px, 4vw, 48px) 0 12px !important;
  border-radius: 0 !important;
}
.pagehead .display, .pagehead.on-dark .display {
  font-family: var(--sans) !important;
  color: var(--vc-deep) !important;
  max-width: 16ch;
  text-wrap: balance;
}
.pagehead .display em { color: var(--vc-moss); font-style: italic; font-weight: 400; }
.pagehead .lede-lg, .pagehead.on-dark .lede-lg, .pagehead.on-dark p {
  color: rgba(23,27,24,.62) !important;
  max-width: 42ch;
}
.pagehead .crumbs a { color: rgba(23,27,24,.5); }
@media (min-width: 1024px){
  .pagehead, .pagehead.on-dark {
    width: auto !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}
.empty-state[hidden],
#empty[hidden] { display: none !important; }

.vc-about-grid {
  display: grid; gap: 36px;
  grid-template-columns: 1fr;
  max-width: 1100px; margin: 0 auto; padding: 0 24px 48px;
}
@media (min-width: 860px){ .vc-about-grid { grid-template-columns: 1.1fr .9fr; align-items: start; } }
.vc-about-fig { margin: 0; border-radius: 12px; overflow: hidden; }
.vc-about-fig img { width: 100%; display: block; }
.vc-about-fig-plain {
  background: var(--vc-deep);
  color: var(--vc-cream);
  padding: clamp(28px, 4vw, 48px);
  display: grid;
  align-items: end;
  min-height: 240px;
}
.vc-about-fig-plain blockquote { margin: 0; }
.vc-about-fig-plain p {
  margin: 0;
  font: 400 22px/1.45 var(--sans);
  color: rgba(247,244,234,.9);
}
.vc-about-points { display: grid; gap: 18px; grid-template-columns: 1fr; }
@media (min-width: 800px){ .vc-about-points { grid-template-columns: repeat(3, 1fr); } }
.vc-about-points article { background: var(--vc-paper); border-radius: 12px; padding: 24px; }
.vc-about-points h3 { margin: 0 0 10px; font: 500 22px/1.2 var(--sans); color: var(--vc-deep); }

/* ---- trust strip + footer ------------------------------------------- */
.vc-trustbar {
  background: var(--vc-paper);
  border-top: 1px solid rgba(13,39,22,.07);
}
.vc-trustbar-in {
  max-width: 1360px; margin: 0 auto;
  padding: clamp(28px, 3.5vw, 44px) clamp(16px, 3vw, 36px);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(18px, 2.5vw, 30px);
}
@media (min-width: 900px){ .vc-trustbar-in { grid-template-columns: repeat(5, 1fr); } }
.vc-trustbar-in > div { display: flex; align-items: center; gap: 13px; }
.vc-strip-ico {
  width: 34px; height: 34px; flex-shrink: 0;
  border-radius: 11px;
  background: rgba(201,150,42,.16);
  display: grid; place-items: center;
}
.vc-strip-ico i {
  width: 14px; height: 14px;
  border-radius: 4px;
  background: linear-gradient(140deg,#EFC75A,#C9962A);
}
.vc-trustbar-in b {
  display: block;
  font: 600 11px/1 var(--sans);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--vc-deep);
}
.vc-trustbar-in i {
  display: block; font-style: normal; margin-top: 5px;
  font: 400 12.5px/1.3 var(--sans);
  color: rgba(23,27,24,.52);
}

.footer {
  position: relative;
  background: var(--vc-deep) !important;
  color: rgba(247,244,234,.7) !important;
  padding: clamp(48px, 6vw, 80px) 0 0 !important;
  overflow: hidden;
}
.vc-footer-leaf { display: none !important; }
.vc-footer-grid {
  max-width: 1360px; margin: 0 auto;
  padding: 0 clamp(16px, 3vw, 36px) clamp(36px, 4vw, 56px);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(26px, 3vw, 40px);
}
@media (min-width: 1000px){
  .vc-footer-grid { grid-template-columns: 1.6fr .8fr .9fr .8fr .8fr; }
}
.footer-brand { grid-column: span 2; min-width: 220px; }
@media (min-width: 1000px){ .footer-brand { grid-column: span 1; } }
.footer-logo { display: inline-block; margin-bottom: 20px; }
.footer-col div { display: flex; flex-direction: column; gap: 11px; }
.footer-social { display: flex; gap: 9px; }
.footer h2 {
  font: 600 10px/1 var(--sans) !important;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--vc-gold-lt) !important;
  margin-bottom: 18px;
}
.footer a { color: rgba(247,244,234,.62); }
.footer a:hover { color: var(--vc-gold-lt); }
.footer-brand p {
  max-width: 280px;
  color: rgba(247,244,234,.55);
  font: 400 14px/1.65 var(--sans);
}
.footer-social a {
  width: 38px; height: 38px;
  border-radius: 12px;
  background: rgba(247,244,234,.07);
  display: grid; place-items: center;
  color: rgba(247,244,234,.75);
}
.footer-social a:hover { background: var(--vc-gold-lt); color: var(--vc-deep); }
.vc-newscol { display: none; }
.footer-pay, .footer-legal, .footer-notice {
  max-width: 1360px;
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(16px,3vw,36px);
  padding-right: clamp(16px,3vw,36px);
}
.footer-pay {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  border-top: 1px solid rgba(247,244,234,.1);
  padding-top: 26px;
  padding-bottom: 8px;
  margin-top: 0;
}
.footer-pay .k, .footer-pay .set span {
  padding: 8px 13px;
  border-radius: 9px;
  background: rgba(247,244,234,.07);
  font: 600 9.5px/1 var(--sans);
  letter-spacing: .12em;
  color: rgba(247,244,234,.6);
}
.footer-legal {
  color: rgba(247,244,234,.42);
  padding: 8px  clamp(16px,3vw,36px) 34px;
}
.footer-legal, .footer-notice { color: rgba(247,244,234,.42); }
.footer-badges { display: none !important; }

.drawer { background: var(--vc-cream); }

/* ---- search overlay --------------------------------------------------- */
.vc-search {
  position: fixed; inset: 0; z-index: 180;
  background: rgba(13,39,22,.42);
  backdrop-filter: blur(6px);
  padding: 10vh 16px calc(24px + env(safe-area-inset-bottom, 0px));
  overflow: auto;
  animation: vcFade .2s both;
}
.vc-search[hidden] { display: none !important; }
.vc-search-box {
  max-width: 720px;
  margin: 0 auto;
  background: var(--vc-paper);
  border-radius: 26px;
  box-shadow: 0 50px 90px -40px rgba(13,39,22,.6);
  overflow: hidden;
  animation: vcPop .24s cubic-bezier(.2,.7,.2,1) both;
}
.vc-search-row {
  display: flex; align-items: center; gap: 14px;
  padding: 22px 26px;
  border-bottom: 1px solid rgba(13,39,22,.08);
}
.vc-search-row input {
  flex: 1; border: none; background: none; outline: none;
  font: 400 19px/1.3 var(--sans);
  color: var(--vc-ink);
}
.vc-search-esc {
  border: none; background: rgba(13,39,22,.06); border-radius: 999px;
  padding: 7px 13px;
  font: 600 10px/1 var(--sans);
  letter-spacing: .14em; color: var(--vc-green); cursor: pointer;
}
.vc-search-hits { padding: 12px 14px 22px; max-height: 52vh; overflow: auto; }
.vc-search-hit {
  width: 100%; display: flex; align-items: center; gap: 16px;
  padding: 11px 12px; border: none; background: none;
  border-radius: 14px; cursor: pointer; text-align: left;
  color: inherit; text-decoration: none;
}
.vc-search-hit:hover { background: rgba(79,160,69,.12); }
.vc-search-hit img {
  width: 48px; height: 48px; border-radius: 12px; object-fit: cover; background: #EFEBDC;
}
.vc-search-hit .nm { display: block; font: 500 15px/1.2 var(--sans); color: var(--vc-ink); }
.vc-search-hit .meta { display: block; font: 400 12.5px/1.2 var(--sans); color: rgba(23,27,24,.5); margin-top: 3px; }
.vc-search-hit .pr { font: 600 14px/1 var(--sans); color: var(--vc-leaf); margin-left: auto; }
.vc-search-empty { text-align: center; padding: 34px 10px; }
.vc-search-empty h3 { margin: 0; font: 400 22px/1.2 var(--sans); color: var(--vc-deep); }
.vc-search-empty p { font: 400 14px/1.5 var(--sans); color: rgba(23,27,24,.55); margin: 10px 0 20px; }
.vc-search-pops { margin: 8px 26px 26px; padding-top: 18px; border-top: 1px solid rgba(13,39,22,.07); }
.vc-search-pops .k {
  font: 600 10px/1 var(--sans);
  letter-spacing: .24em; text-transform: uppercase;
  color: rgba(23,27,24,.4); margin-bottom: 12px;
}
.vc-search-pops .chips { display: flex; flex-wrap: wrap; gap: 8px; }
.vc-search-pops a {
  border: 1px solid rgba(13,39,22,.14);
  border-radius: 999px; padding: 8px 15px;
  font: 500 12.5px/1 var(--sans);
  color: var(--vc-green);
}

/* ---- age gate ------------------------------------------------------- */
.agegate {
  position: fixed !important; inset: 0 !important; z-index: 400 !important;
  display: grid !important; place-items: center;
  padding: 20px; overflow: auto;
}
.agegate[hidden] { display: none !important; }
.agegate .scrim {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: rgba(9, 30, 17, .92);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
}
.agegate .box {
  position: relative; z-index: 1;
  width: min(460px, 100%);
  max-height: min(100dvh - 24px, calc(100vh - 24px));
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background: var(--vc-cream) !important;
  color: var(--vc-ink);
  border-radius: 28px;
  padding: clamp(30px, 4vw, 44px);
  text-align: center;
  box-shadow: 0 60px 100px -50px rgba(0,0,0,.8);
  animation: vcPop .34s cubic-bezier(.2,.7,.2,1) both;
}
.agegate .age-leaf { display: none !important; }
.agegate h2 {
  margin: 0;
  font: 400 clamp(28px, 3.4vw, 34px)/1.1 var(--sans);
  color: var(--vc-deep) !important;
}
.agegate p {
  margin: 14px auto 0;
  max-width: 340px;
  font: 400 14.5px/1.6 var(--sans);
  color: rgba(23,27,24,.62) !important;
}
.agegate .dob-row { display: flex; gap: 9px; justify-content: center; margin: 26px 0 8px; }
.agegate .dob-row input {
  width: 70px; flex: none;
  padding: 15px 0; text-align: center;
  border-radius: 14px;
  border: 1.5px solid rgba(13,39,22,.15);
  background: rgba(255,253,248,.9);
  font: 500 17px/1 var(--sans);
  color: var(--vc-ink);
  outline: none;
}
.agegate .dob-row #age-yy { width: 92px; }
.agegate .dob-row input:focus { border-color: var(--vc-gold); background: var(--vc-paper); }
.agegate .age-error {
  font: 500 13px/1.4 var(--sans);
  color: #B4472F !important;
  margin: 12px 0 0;
}
.agegate .age-error[hidden] { display: none !important; }
.agegate .age-remember {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 10px; margin: 22px auto 0;
  font: 400 13.5px/1 var(--sans);
  color: rgba(23,27,24,.62);
  cursor: pointer;
}
.agegate .age-remember input { width: 16px; height: 16px; accent-color: var(--vc-green); }
.agegate #age-yes {
  display: block; width: 100%;
  margin-top: 22px; padding: 17px !important;
  border-radius: 999px !important;
}
.agegate .age-legal {
  margin-top: 18px; max-width: none;
  font: 400 11.5px/1.6 var(--sans);
  color: rgba(23,27,24,.45) !important;
}
.agegate .deny, .agegate .denied { display: none !important; }
body.age-open .bottomnav, body.age-open .totop { visibility: hidden !important; pointer-events: none; }
@keyframes vcGateShake {
  0%,100% { transform: translateX(0); }
  25% { transform: translateX(-6px); }
  75% { transform: translateX(6px); }
}
.agegate.is-shake .box { animation: vcGateShake .28s ease; }

.bottomnav { background: var(--vc-paper); border-top: 1px solid rgba(13,39,22,.08); }
.mobilenav {
  background: var(--vc-paper);
  padding: 18px 18px 80px;
}
.mobilenav .top { gap: 10px; }
.mobilenav .vc-logo { height: 44px; width: 52px; }
.mobilenav .group { margin-top: 22px; }
.mobilenav .group h3 {
  font: 700 11px/1 var(--sans);
  letter-spacing: .2em;
  margin: 0 0 10px;
}
.mobilenav .group div,
.mobilenav .vc-mnav-cols {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 0 12px;
  margin-top: 8px;
}
.mobilenav .group a {
  font-family: var(--sans) !important;
  font-size: 15px !important;
  font-weight: 600;
  padding: 10px 0;
  color: var(--vc-ink);
}

.toast {
  background: var(--vc-deep) !important;
  color: var(--vc-cream) !important;
  border-radius: 999px !important;
}

.shop-grid .pcard h3, .shop-grid .pcard h3 a { font-size: 16px !important; }

.vc-jcard-text {
  background: var(--vc-deep);
  color: var(--vc-cream);
  min-height: 280px;
  display: flex;
  align-items: flex-end;
}
.vc-jcard-text .in { color: inherit; }
.vc-jcard-text h3 { color: #F7F4EA !important; }
.vc-jcard-text p { color: rgba(247,244,234,.7) !important; }
#sum-paynote {
  color: var(--vc-ink) !important;
  font-weight: 500;
}

.mobilenav .top-actions .iconbtn {
  width: 44px !important;
  height: 44px !important;
}

/* ---- mobile / small screens ------------------------------------------ */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

@media (max-width: 1099px){
  .vc-nav { display: none !important; }
  .navtoggle { display: grid !important; }
}
@media (max-width: 860px){
  .headbtn-wish { display: none !important; }
  .input, .textarea, select.input, .search input,
  .select, .vc-news-form input[type="email"] {
    font-size: 16px !important;
  }
  .iconbtn-qty { width: 44px !important; height: 44px !important; }
  .citem .qty .q { min-width: 32px; }
  .citem .rm { min-height: 44px; padding: 8px 10px; }
}
@media (max-width: 720px){
  .header .search { display: none !important; }
  .headbtn-account { display: none !important; }
  .header-in { min-height: 64px; padding: 6px 12px; gap: 8px; }
  .header .brand img.vc-logo, .header .vc-logo, .mobilenav .vc-logo {
    height: 44px !important;
    width: 44px !important;
  }
  .headbtn { width: 44px; height: 44px; }
  .bagbtn { height: 44px !important; padding: 0 12px 0 10px !important; }
  .vc-hero-stage { min-height: 78vh; min-height: 78dvh; }
  .vc-hero-copy { padding-top: 56px; padding-bottom: 36px; }
  .vc-hero h1 { font-size: clamp(34px, 11vw, 52px) !important; }
  .vc-hero-actions { flex-direction: column; align-items: stretch; }
  .vc-hero-actions .btn, .vc-hero-actions .vc-btn-ghost { width: 100%; justify-content: center; }
  .vc-cats { grid-template-columns: repeat(2, 1fr); }
  .vc-trust-hero-in { grid-template-columns: 1fr 1fr; }
  .vc-footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: span 2; min-width: 0; }
  .footer-pay { flex-direction: column; align-items: flex-start; }
  .pagehead .display { font-size: clamp(28px, 8vw, 40px) !important; }
  .prose, .card-panel { overflow-x: auto; }
  table { display: block; overflow-x: auto; max-width: 100%; }
  .pdp-buy {
    flex-direction: row !important;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 18px;
  }
  .pdp-buy .qtybox { flex: none; padding: 3px; }
  .pdp-buy .qtybox .q { min-width: 28px; font-size: 16px; }
  #pdp-add {
    flex: 1 1 140px !important;
    width: auto !important;
    min-width: 0;
    padding: 12px 16px !important;
    font-size: 12px !important;
    letter-spacing: .14em;
    box-shadow: none !important;
    min-height: 44px;
  }
  .pdp-buy .iconbtn { flex: none; width: 44px; height: 44px; }
  .choice-pay .s { word-break: break-word; }
  .row-end { align-items: flex-start; }
  .checkout-grid .row-end, .shell > .row-end { gap: 12px; }
  .viewtoggle button { width: 44px; height: 44px; }
  .pcard .wish { width: 44px !important; height: 44px !important; }
}
@media (max-width: 480px){
  .vc-footer-grid { grid-template-columns: 1fr !important; }
  .footer-brand { grid-column: 1 / -1 !important; }
  .vc-trust-hero-in { grid-template-columns: 1fr; }
  .pdp-buy { flex-direction: column !important; align-items: stretch; }
  .pdp-buy .qtybox { align-self: stretch; justify-content: space-between; }
  #pdp-add { width: 100% !important; flex: 1 1 auto !important; }
  .pdp-buy .iconbtn { align-self: flex-end; }
}
@media (max-width: 420px){
  .vc-trustbar-in, .vc-trust-hero-in { grid-template-columns: 1fr; }
}

.footer-phone {
  margin: 12px 0 0;
  font: 600 15px/1.4 var(--sans);
}
.footer-phone a {
  color: var(--vc-gold-lt);
  letter-spacing: .02em;
}
.footer-phone a:hover { color: #F7F4EA; }

/* Click-to-chat — bottom left, above the mobile tab bar. */
.vc-chat {
  position: fixed;
  z-index: 125;
  left: max(12px, env(safe-area-inset-left, 0px));
  bottom: max(16px, env(safe-area-inset-bottom, 0px));
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  max-width: min(22rem, calc(100vw - 24px - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px)));
  pointer-events: none;
}
.vc-chat > * { pointer-events: auto; }
.vc-chat-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 56px;
  min-height: 56px;
  padding: 0 16px 0 14px;
  border: none;
  border-radius: 999px;
  background: var(--vc-deep);
  color: #F7F4EA;
  box-shadow: 0 12px 28px -12px rgba(13,39,22,.85), inset 0 0 0 1px rgba(239,199,90,.28);
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  font: 700 12px/1 var(--sans);
  letter-spacing: .16em;
  text-transform: uppercase;
}
.vc-chat-btn svg { flex: none; }
.vc-chat-btn:hover,
.vc-chat-btn:focus-visible {
  background: #14381F;
  outline: 2px solid var(--vc-gold-lt);
  outline-offset: 3px;
}
.vc-chat.is-open .vc-chat-btn { background: #14381F; }
.vc-chat-panel {
  width: min(20.5rem, 100%);
  background: var(--vc-paper);
  color: var(--vc-ink);
  border-radius: 18px;
  box-shadow: 0 22px 50px -24px rgba(13,39,22,.7), 0 0 0 1px rgba(13,39,22,.08);
  overflow: hidden;
  max-height: min(70dvh, 420px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.vc-chat-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 14px 12px 16px;
  background: var(--vc-deep);
  color: #F7F4EA;
}
.vc-chat-head p { margin: 0; }
#vc-chat-title {
  font: 600 16px/1.2 var(--sans);
  letter-spacing: .02em;
}
.vc-chat-sub {
  margin-top: 6px !important;
  font: 500 13px/1.3 var(--sans);
  color: var(--vc-gold-lt);
}
.vc-chat-x {
  width: 44px;
  height: 44px;
  margin: -8px -6px 0 0;
  border: none;
  border-radius: 12px;
  background: rgba(247,244,234,.1);
  color: #F7F4EA;
  display: grid;
  place-items: center;
  cursor: pointer;
  touch-action: manipulation;
}
.vc-chat-x:hover,
.vc-chat-x:focus-visible { background: rgba(247,244,234,.2); }
.vc-chat-actions { display: grid; padding: 8px; gap: 4px; }
.vc-chat-a {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 52px;
  padding: 10px 12px;
  border-radius: 14px;
  color: var(--vc-ink) !important;
  text-decoration: none !important;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
.vc-chat-a:hover,
.vc-chat-a:focus-visible { background: rgba(13,39,22,.06); }
.vc-chat-a b {
  display: block;
  font: 600 15px/1.2 var(--sans);
}
.vc-chat-a i {
  display: block;
  margin-top: 3px;
  font: 400 12.5px/1.3 var(--sans);
  font-style: normal;
  color: rgba(23,27,24,.55);
}
.vc-chat-ico {
  width: 40px;
  height: 40px;
  flex: none;
  border-radius: 12px;
  background: rgba(13,39,22,.08);
  color: var(--vc-deep);
  display: grid;
  place-items: center;
}
body.age-open .vc-chat { visibility: hidden !important; pointer-events: none; }
@media (max-width: 860px) {
  .vc-chat {
    bottom: calc(var(--bottomnav-h, 58px) + 12px + env(safe-area-inset-bottom, 0px));
  }
  .vc-chat-btn {
    min-width: 56px;
    min-height: 56px;
    padding: 0;
    width: 56px;
  }
  .vc-chat-btn-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
}
@media (max-width: 380px) {
  .vc-chat { left: max(8px, env(safe-area-inset-left, 0px)); }
}
@media print { .vc-chat { display: none !important; } }
@media (prefers-reduced-motion: reduce) {
  .vc-chat-btn, .vc-chat-panel { transition: none; }
}
