/* ==========================================================================
   Vapes page: layered on top of site.css (never edit the shared files)
   ========================================================================== */

/* hero: landscape counter photo, framed on the pouch wall */
.page-vapes .phero h1 { font-size: clamp(2.7rem, 6.2vw + 0.4rem, 5.6rem); }
.page-vapes .phero__bg img { object-position: 50% 46%; }
/* the product boxes are bright and busy: deepen the scrim so the copy stays crisp */
.page-vapes .phero::after { background: linear-gradient(0deg, rgba(5, 22, 14, 0.94) 0%, rgba(5, 22, 14, 0.74) 50%, rgba(5, 22, 14, 0.46) 100%), linear-gradient(90deg, rgba(5, 22, 14, 0.62), rgba(5, 22, 14, 0.12) 78%); }

/* age note sits directly above the cards */
.vapes-age { margin-bottom: clamp(24px, 3.4vw, 40px); }
.vapes-age .age { padding: 20px 24px; }
.vapes-age .age p { font-size: 1.05rem; text-wrap: balance; }

/* captions sit on one shared baseline across each pair, whatever the copy length */
.page-vapes .item--half .item__body { display: flex; flex-direction: column; }
.page-vapes .item--half .item__cap { margin-top: auto; }
.page-vapes .item--half .item__body > p:not(.item__cap):not(.item__kicker) { margin-bottom: 8px; }

/* two-up cards: portrait pair, then landscape pair */
.page-vapes .items > .item--half { flex-basis: calc((100% - var(--gap)) / 2); }
.page-vapes .item__media--tall img { object-position: 50% 58%; }

/* "New drops": media on the right, wide, with call buttons */
.vapes-calls { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
@media (min-width: 961px) {
  .page-vapes .item--flip { flex-direction: row-reverse; }
}

/* closing 21+ reminder card */
.reminder {
  margin-top: clamp(28px, 4vw, 48px);
  display: grid; grid-template-columns: auto 1fr; align-items: center;
  gap: clamp(22px, 4.4vw, 56px);
  padding: clamp(26px, 4.4vw, 56px);
  border-radius: var(--r);
  background-color: var(--forest); color: #fff;
  background-image: radial-gradient(60% 90% at 92% -10%, rgba(37, 228, 145, 0.18), transparent 62%), linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
  background-size: auto, 48px 48px, 48px 48px;
  border: 1px solid rgba(37, 228, 145, 0.22);
  box-shadow: var(--shadow-2);
  scroll-margin-top: calc(var(--header-h) + 76px);
}
.reminder__badge {
  width: clamp(92px, 13vw, 152px); aspect-ratio: 1; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--red); color: #fff;
  font: 500 clamp(2.4rem, 5.4vw, 4rem) var(--font-display); letter-spacing: -0.03em;
  margin: 9px;
  box-shadow: 0 0 0 8px rgba(255, 255, 255, 0.08), 0 0 0 9px rgba(255, 255, 255, 0.22), 0 0 40px rgba(214, 43, 55, 0.35);
}
.reminder__body { display: grid; gap: 14px; justify-items: start; }
.reminder h2 { font-size: clamp(2rem, 3.6vw + 0.4rem, 3.4rem); color: #fff; }
.reminder h2 em { color: var(--neon); }
.reminder p:not(.eyebrow) { color: rgba(255, 255, 255, 0.84); max-width: 62ch; text-wrap: pretty; }
.reminder .reminder__line {
  margin-top: 4px; padding: 10px 16px; border-radius: 10px;
  background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.16); color: #fff;
  font: 600 0.92rem var(--font-body);
}

/* the feature card keeps the same text inset as its neighbours once it stacks */
@media (max-width: 960px) {
  .page-vapes .item--feature .item__body { padding: 22px 24px 26px; }
}

@media (max-width: 720px) {
  .page-vapes .items > .item--half { flex-basis: 100%; }
  /* phone: square crops keep the long scroll short and drop the stray liquor bottles at the bottom of the wall photo */
  .page-vapes .item__media--tall { aspect-ratio: 1; }
  .page-vapes .item__media--tall img { object-position: 50% 30%; }
  .reminder { grid-template-columns: 1fr; justify-items: start; }
  .reminder__badge { width: 88px; font-size: 2.2rem; }
  .vapes-calls .btn { flex: 1 1 auto; }
}

/* department links: rows fill their width, so seven cards never leave a hole in the last row */
.page-vapes .related { display: flex; flex-wrap: wrap; }
.page-vapes .related .rel { flex: 1 1 230px; }

/* "Back to home" keeps a 44px tap target without stretching its underline */
.back-home { margin-top: 28px; }
.back-home .link-arrow { position: relative; }
.back-home .link-arrow::before { content: ""; position: absolute; inset: -10px -8px; }

/* availability chips: three across on a phone, so Wixom never sits alone on a second row */
@media (max-width: 560px) {
  .page-vapes .avail { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .page-vapes .avail li { min-width: 0; padding: 10px; }
  .page-vapes .avail b { font-size: 1.02rem; }
  .page-vapes .avail span { font-size: 0.78rem; white-space: nowrap; }
}
