/** Shopify CDN: Minification failed

Line 66:0 Unexpected "{"
Line 66:1 Expected identifier but found "%"
Line 67:14 Unexpected "{"
Line 67:23 Expected ":"
Line 67:30 Unexpected "{"
Line 68:11 Expected identifier but found whitespace
Line 68:13 Unexpected "{"
Line 68:22 Expected ":"
Line 69:9 Expected identifier but found whitespace
Line 69:13 Unexpected "{"
... and 25 more hidden warnings

**/
/* =============================================
   PREMIUM SPIRITS PDP — CUSTOM STYLES
   Colour scheme-aware: tokens map to Dawn's
   --color-* scheme variables so the Shopify
   theme editor colour schemes work correctly.
   ============================================= */

/* ── DESIGN TOKENS ─────────────────────────────
   Map our PDP tokens onto Dawn's scheme vars.

   Dawn exposes these per-scheme on the element:
     --color-background          page background
     --color-foreground          primary text
     --color-foreground-secondary secondary/muted text  (not always present — we derive)
     --color-border              rule / divider colour
     --color-button              primary button background
     --color-button-text         primary button label
     --color-base-background-1   card / surface bg
     --color-base-background-2   slightly offset surface

   We alias these onto our own --cream / --ink /
   --border / --muted names so nothing else in
   this file needs to change.
   ─────────────────────────────────────────────── */
:root {
  /* Brand accent — stays fixed; override via metafield */
  --gold:       #9a7b3f; /* Brass */
  --gold-light: #2e3d33; /* Juniper — brand hover state for filled buttons */
  --accent:     var(--gold);

  /* Typography */
  --font-display: 'Newsreader', serif;
  --font-body:    'Hanken Grotesk', sans-serif;
}

/* Map PDP tokens → Dawn scheme vars.
   These cascade from the scheme color-scheme class
   Dawn applies to <body> or the section wrapper,
   so they automatically update when the scheme changes. */
product-info,
.pdp-sticky-bar {
  --cream:      rgb(var(--color-base-background-1));
  --cream-dark: rgb(var(--color-base-background-2));
  --ink:        rgb(var(--color-foreground));
  --ink-soft:   rgba(var(--color-foreground), 0.75);
  --muted:      rgba(var(--color-foreground), 0.5);
  --border:     rgba(var(--color-foreground), 0.12);
}

/* Per-product accent override via metafield */
{%- if product.metafields.custom.accent_colour != blank -%}
#MainProduct-{{ section.id }} {
  --accent: {{ product.metafields.custom.accent_colour }};
  --gold:   {{ product.metafields.custom.accent_colour }};
}
{%- endif -%}


/* ── SECTION PADDING ── */
.section-{{ section.id }}-padding {
  padding-top:    {{ section.settings.padding_top    | times: 0.75 | round: 0 }}px;
  padding-bottom: {{ section.settings.padding_bottom | times: 0.75 | round: 0 }}px;
}
@media (min-width: 750px) {
  .section-{{ section.id }}-padding {
    padding-top:    {{ section.settings.padding_top }}px;
    padding-bottom: {{ section.settings.padding_bottom }}px;
  }
}

/* Apply the scheme background to the section so Dawn's
   gradient class picks up the right colour. */
.color-{{ section.settings.color_scheme }}.gradient {
  background-color: #faf7f0 !important;
}


/* ─────────────────────────────────────────────
   TYPOGRAPHY OVERRIDES (Dawn rem-safe)
   ───────────────────────────────────────────── */
.pdp-breadcrumb,
.pdp-breadcrumb a   { font-size: 13px !important; }
.pdp-vendor         { font-size: 11px !important; }
.pdp-title          { font-size: 28px !important; line-height: 1.15 !important; }
@media (min-width: 750px)  { .pdp-title { font-size: 36px !important; } }
@media (min-width: 1024px) { .pdp-title { font-size: 44px !important; } }
.pdp-review-count   { font-size: 13px !important; }
.pdp-star           { width: 16px !important; height: 16px !important; }
.pdp-price-current  { font-size: 26px !important; }
.pdp-price-compare  { font-size: 17px !important; }
.pdp-price-block .price,
.pdp-price-block .price__regular,
.pdp-price-block .price-item,
.pdp-price-block .price-item--regular { font-size: 26px !important; }
.pdp-short-desc,
.pdp-short-desc p   { font-size: 14px !important; line-height: 1.75 !important; }
.pdp-option-label   { font-size: 11px !important; }
.pdp-opt-btn        { font-size: 13px !important; }
.pdp-spec-label     { font-size: clamp(9px, 2vw, 10px) !important; }
.pdp-spec-value     { font-size: clamp(12px, 2.5vw, 14px) !important; }
.pdp-qty button     { font-size: 16px !important; }
.pdp-qty input      { font-size: 14px !important; }
.pdp-atc-btn        { font-size: 12px !important; }
.pdp-trust-icon     { width: 20px !important; height: 20px !important; }
.pdp-trust-title    { font-size: 10px !important; }
.pdp-trust-sub      { font-size: 11px !important; }
.pdp-tab-btn        { font-size: 11px !important; }
.pdp-tab-panel p,
.pdp-tab-panel .rte,
.pdp-tab-panel .rte p { font-size: 14px !important; line-height: 1.8 !important; }
.pdp-tasting-note-title { font-size: 16px !important; }
.pdp-tasting-note-body  { font-size: 14px !important; }
.pdp-details-label  { font-size: 11px !important; }
.pdp-details-value  { font-size: 14px !important; }
.pdp-related-heading { font-size: 24px !important; }
@media (min-width: 750px) { .pdp-related-heading { font-size: 30px !important; } }
.pdp-rel-title      { font-size: 14px !important; }
@media (min-width: 750px) { .pdp-rel-title { font-size: 16px !important; } }
.pdp-rel-price      { font-size: 13px !important; }
.pdp-rel-badge,
.pdp-badge          { font-size: 10px !important; }
.pdp-save-pill      { font-size: 11px !important; }


/* ─────────────────────────────────────────────
   LAYOUT
   ───────────────────────────────────────────── */
/* Top padding replaces the space the breadcrumb used to hold open
   (.pdp-breadcrumb was 16+20px / 24+32px); it was removed 12 Sep 2026 and the
   grid ended up flush against the header. */
.pdp-wrapper {
  max-width: 1400px;
  margin: 0 auto;
  padding: 36px 20px 40px;
}
@media (min-width: 750px)  { .pdp-wrapper { padding: 56px 40px 60px; } }
@media (min-width: 1200px) { .pdp-wrapper { padding: 56px 60px 60px; } }

.pdp-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  align-items: start;
}
@media (min-width: 1024px) { .pdp-grid { gap: 64px; } }
@media (max-width: 749px)  { .pdp-grid { grid-template-columns: 1fr; gap: 24px; } }


/* ─────────────────────────────────────────────
   BREADCRUMB
   ───────────────────────────────────────────── */
.pdp-breadcrumb {
  font-family: var(--font-body);
  letter-spacing: 0.06em;
  color: var(--muted);
  padding: 16px 0 20px;
}
@media (min-width: 750px) { .pdp-breadcrumb { padding: 24px 0 32px; } }
.pdp-breadcrumb a {
  color: var(--muted);
  text-decoration: none;
  transition: color 0.15s;
}
.pdp-breadcrumb a:hover { color: var(--ink); }
.pdp-breadcrumb span { margin: 0 4px; }


/* ─────────────────────────────────────────────
   MEDIA COLUMN
   ───────────────────────────────────────────── */
.pdp-media {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
@media (min-width: 750px) {
  .pdp-media {
    flex-direction: row;
    gap: 12px;
    position: sticky;
    top: 24px;
  }
}
@media (max-width: 749px) {
  .pdp-media { width: 100%; max-width: 100%; overflow: hidden; }
  .pdp-main-image { width: 100%; order: 1; }
  .pdp-thumbnails { order: 2; flex-direction: row; width: 100%; overflow-x: auto; }
}

.pdp-thumbnails {
  display: flex;
  flex-direction: row;
  gap: 8px;
  order: 2;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.pdp-thumbnails::-webkit-scrollbar { display: none; }
@media (min-width: 750px) {
  .pdp-thumbnails {
    flex-direction: column;
    order: 0;
    width: 80px;
    flex-shrink: 0;
    overflow-x: visible;
  }
}

.pdp-thumb {
  width: 64px;
  height: 64px;
  flex-shrink: 0;
  border: 2px solid var(--border);
  overflow: hidden;
  cursor: pointer;
  transition: border-color 0.15s;
  background: var(--cream-dark);
}
@media (min-width: 750px) { .pdp-thumb { width: 80px; height: 80px; } }
.pdp-thumb.active,
.pdp-thumb:hover { border-color: var(--accent); }
.pdp-thumb img { width: 100%; height: 100%; object-fit: cover; }

.pdp-main-image {
  flex: 1;
  order: 1;
  overflow: hidden;
  position: relative;
  aspect-ratio: 1 / 1;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pdp-main-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
  transition: opacity 0.15s ease;
}

.pdp-badge {
  position: absolute;
  top: 16px;
  left: 16px;
  background: var(--accent);
  color: #fff;
  font-family: var(--font-body);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 4px 10px 5px;
}


/* ─────────────────────────────────────────────
   INFO COLUMN
   ───────────────────────────────────────────── */
.pdp-info { display: flex; flex-direction: column; gap: 0; }

.pdp-info variant-selects,
.pdp-info variant-radios,
.pdp-info .product-form__input--dropdown,
.pdp-info .product-form__input--pill,
.pdp-info .select,
.pdp-info .product__title h1,
.pdp-info .product__title a,
.pdp-info > .product__description,
.pdp-atc-row .shopify-payment-button,
.pdp-atc-row product-form,
.pdp-atc-row .product-form,
.pdp-atc-row .product-form__buttons { display: none !important; }

.pdp-vendor {
  font-family: var(--font-body);
  font-weight: 500;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--accent);
  margin: 0 0 10px;
}

.pdp-title {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--ink);
  line-height: 1.15;
  margin: 0 0 10px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.pdp-rating-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
}
.pdp-stars { display: flex; gap: 2px; }
.pdp-star  { color: var(--accent); }
.pdp-review-count {
  font-family: var(--font-body);
  color: var(--muted);
  font-weight: 600;
}

.pdp-price-block {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 20px;
}
.pdp-price-main-row {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
}
.pdp-price-current {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--accent);
  letter-spacing: 0.04em;
}
.pdp-price-compare {
  font-family: var(--font-display);
  font-weight: 400;
  color: var(--muted);
  text-decoration: line-through;
}
.pdp-price-block .price,
.pdp-price-block .price__regular,
.pdp-price-block .price-item,
.pdp-price-block .price-item--regular {
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
  color: var(--accent) !important;
}
.pdp-price-block .price__container { margin: 0; padding: 0; }
.pdp-save-pill {
  display: inline-flex;
  align-items: center;
  background: rgba(var(--color-foreground), 0.08);
  color: var(--ink);
  font-family: var(--font-body);
  font-weight: 600;
  letter-spacing: 0.04em;
  padding: 3px 9px 4px;
  border-radius: 100px;
  white-space: nowrap;
}

.pdp-short-desc {
  font-family: var(--font-body);
  line-height: 1.6;
  color: var(--muted);
  margin-bottom: 12px;
}
@media (max-width: 749px) {
  .pdp-short-desc,
  .pdp-short-desc p {
    font-size: 13px !important;
    line-height: 1.5 !important;
    margin-bottom: 8px;
  }
}
.pdp-short-desc p { margin: 0; }


/* ─────────────────────────────────────────────
   URGENCY MODULE
   ───────────────────────────────────────────── */
.pdp-minimal-urgency {
  margin: 15px 0 25px;
  padding-top: 15px;
  border-top: 1px solid var(--border);
}
.pdp-line-alert {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}
.pdp-line-alert p {
  margin: 0 !important;
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  color: var(--ink-soft);
}
.pdp-stats-row {
  display: flex;
  gap: 20px;
}
@media (max-width: 749px) { .pdp-stats-row { flex-direction: column; gap: 8px; } }
.pdp-stat-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.pdp-tiny-icon { width: 14px; height: 14px; opacity: 0.7; }
.pdp-gold-text { color: var(--accent); }
.pulse-dot-small {
  width: 6px;
  height: 6px;
  background: #a3372c;
  border-radius: 50%;
  flex-shrink: 0;
  animation: pulse-tiny 2s infinite;
}
@keyframes pulse-tiny {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.4; }
}


/* ─────────────────────────────────────────────
   VARIANT PICKER
   ───────────────────────────────────────────── */
.pdp-variant-picker { margin-bottom: 20px; }
.pdp-option-group   { margin-bottom: 14px; }
.pdp-option-label {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ink);
  margin: 0 0 10px;
  display: block;
}
.pdp-option-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  max-width: 100%;
}
.pdp-opt-input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}
.pdp-opt-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 20px;
  border: 1px solid var(--border);
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink);
  background: transparent;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s, color 0.15s;
  user-select: none;
  line-height: 1.3;
  /* Mobile overflow fix */
  max-width: 100%;
  min-width: 0;
  word-break: break-word;
  overflow-wrap: anywhere;
  white-space: normal;
  text-align: center;
  box-sizing: border-box;
}
.pdp-opt-btn:hover { border-color: var(--accent); }
.pdp-opt-input:checked + .pdp-opt-btn {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
.pdp-opt-btn--unavailable {
  opacity: 0.4;
  text-decoration: line-through;
  cursor: not-allowed;
}


/* ─────────────────────────────────────────────
   SPECS
   ───────────────────────────────────────────── */
.pdp-specs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 28px;
  width: 100%;
}
@media (max-width: 480px) { .pdp-specs { grid-template-columns: repeat(2, 1fr); } }
.pdp-spec-item {
  background: var(--cream-dark);
  border: 1px solid var(--border);
  padding: 12px 8px;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  word-wrap: break-word;
}
.pdp-spec-label {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  display: block;
  margin-bottom: 4px;
  line-height: 1.2;
}
.pdp-spec-value {
  font-family: var(--font-body);
  color: var(--ink);
  font-weight: 700;
  line-height: 1.2;
}


/* ─────────────────────────────────────────────
   PERFECT FOR
   ───────────────────────────────────────────── */
.pdp-perfect-for {
  margin: 30px 0;
  padding: 20px 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.perfect-for-title {
  font-family: var(--font-display);
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 20px;
  color: var(--muted);
  text-align: center;
}
.perfect-for-grid {
  display: flex;
  justify-content: center;
  gap: 30px;
  flex-wrap: wrap;
}
@media (max-width: 749px) { .perfect-for-grid { gap: 15px; } }
.perfect-for-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  width: 80px;
}
@media (max-width: 749px) { .perfect-for-item { width: 70px; } }
.perfect-for-icon {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--cream);
  border-radius: 50%;
  padding: 8px;
}
.perfect-for-icon svg { width: 100%; height: 100%; stroke: var(--ink); }
.perfect-for-label {
  font-family: var(--font-body);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--ink);
  text-align: center;
}


/* ─────────────────────────────────────────────
   QUANTITY + ADD TO CART
   ───────────────────────────────────────────── */
.pdp-atc-row { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 2rem;}

.pdp-qty {
  display: flex;
  flex: 0 0 120px;
  align-items: center;
  border: 1px solid var(--border);
  overflow: hidden;
  background: transparent;
  flex-shrink: 0;
}
.pdp-qty button {
  background: none;
  border: none;
  width: 44px;
  height: 52px;
  cursor: pointer;
  color: var(--ink);
  transition: background 0.15s;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-body);
}
.pdp-qty button:hover { background: var(--cream-dark); }
.pdp-qty input {
  width: 44px;
  height: 52px;
  border: none;
  border-left: 1px solid var(--border);
  border-right: 1px solid var(--border);
  text-align: center;
  font-family: var(--font-body);
  background: transparent;
  color: var(--ink);
  -moz-appearance: textfield;
}
.pdp-qty input::-webkit-outer-spin-button,
.pdp-qty input::-webkit-inner-spin-button { -webkit-appearance: none; }

.pdp-atc-form { flex: 1 1 200px; display: flex; }
.pdp-atc-btn {
  flex: 1;
  width: 100%;
  height: 52px;
  background: var(--ink);
  color: rgb(var(--color-base-background-1));
  border: none;
  font-family: var(--font-body);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 20px;
  white-space: nowrap;
  transition: background 0.2s;
}
.pdp-atc-btn:hover:not(:disabled) { background: var(--ink-soft); }
.pdp-atc-btn:disabled { cursor: not-allowed; }

.pdp-atc-btn.pdp-btn--adding,
.pdp-sticky-btn.pdp-btn--adding {
  opacity: 0.6;
  cursor: not-allowed;
  background: var(--muted) !important;
}
.pdp-atc-btn.pdp-btn--added,
.pdp-sticky-btn.pdp-btn--added {
  background: #2e3d33 !important;
  opacity: 1;
}

.pdp-atc-error {
  display: none;
  font-family: var(--font-body);
  font-size: 13px;
  color: #a3372c;
  margin-top: 8px;
  padding: 8px 12px;
  background: rgba(163, 55, 44, 0.08);
  border: 1px solid rgba(163, 55, 44, 0.25);
}
.pdp-atc-error.visible { display: block; }

.pdp-express-checkout-btn {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  margin-top: 10px;
  padding: 16px 24px;
  background: var(--accent);
  color: #fff;
  border: 1px solid var(--accent);
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  cursor: pointer;
  transition: background 0.3s, color 0.3s;
}
.pdp-express-checkout-btn:hover {
  background: transparent;
  color: var(--accent);
}

/* ── Klaviyo star-rating widget: hide the empty state ──
   The average-rating app block under the product title is hydrated client-side
   by Klaviyo, and on a product with no reviews it still renders a row of grey
   stars reading "0 reviews".

   Hide it whenever not one star is filled. A product with any review averages
   at least 1.0, so it always paints a full star; zero reviews paints only
   kl_reviews__empty_star. Before Klaviyo hydrates, the span is empty and also
   matches, which suppresses any flash of "0 reviews" on the way in.

   Deliberately keyed to the star classes, NOT to the link's aria-label: an
   earlier version of this rule matched button[aria-label^="0 stars, 0 ratings"]
   and silently stopped working within days when Klaviyo swapped the <button>
   for an <a> and dropped the count from the label ("0 stars,  ratings").

   !important is required — Klaviyo sets display:block inline on the span. */
.klaviyo-star-rating-widget:not(:has(.kl_reviews__full_star, .kl_reviews__half_star)) {
  display: none !important;
}

/* Klaviyo's average-rating app block measures 0px until its script resolves the
   rating, then jumps to 32px — directly above Add to cart, so the CTA moves
   under the shopper's thumb late in load. Reserved here so it cannot.

   This is deliberately unconditional. The obvious refinement — reserve only
   where reviews exist — needs the review count at render time, and Klaviyo
   does NOT populate Shopify's reviews.rating / reviews.rating_count
   metafields: /products/1l-fruit-tingle-pre-batch renders Klaviyo's own
   "5 stars, 1 review" while those metafields are empty, so a server-side gate
   evaluates false on every product and reserves nothing. The cost is a 32px
   gap on products with no reviews yet; the alternative is a moving CTA.

   Once Klaviyo is set to sync review metafields into Shopify, this can be
   gated on product.metafields.reviews.rating_count and the gap goes away —
   the same sync also makes snippets/pdp-block-rating.liquid work, which is
   currently dead for the same reason. */
[id*="klaviyo_reviews_average_rating"] {
  min-height: 32px;
}

/* ── Native wallet buttons (Shop Pay / Apple Pay / Google Pay) ──
   Sits outside .pdp-atc-row on purpose — the rule near the top of this file
   hides .shopify-payment-button inside that row. Shopify supplies the button
   markup and its own height, so this only sets the surrounding rhythm. */
.pdp-wallet {
  margin-top: 10px;
}
.pdp-wallet[hidden] {
  display: none !important;
}
.pdp-wallet .shopify-payment-button {
  width: 100%;
}

/* Shopify's own "More payment options" link submits the product form straight
   to /checkout — it adds the item and navigates away with no warning. Hidden in
   favour of snippets/pdp-payment-options.liquid, which expands in place. */
.pdp-wallet .shopify-payment-button__more-options,
#more-payment-options-link {
  display: none !important;
}


/* ─────────────────────────────────────────────
   AFTERPAY SLOT — reserved so the CTA can't jump
   Afterpay injects <square-placement> (53px tall, measured at 390px) between
   the quantity stepper and the Add to cart form. This holds that height from
   first paint; pdp-afterpay-slot.liquid moves the widget in when it arrives.
   ───────────────────────────────────────────── */
.pdp-afterpay-slot {
  flex: 1 0 100%;
  min-height: 53px;
  display: flex;
  align-items: center;
  margin: 2px 0 4px;
}

/* square-placement ships ~16px of its own vertical margin, which as a flex
   child is added on top of the reserved min-height — measured at 53px tall in
   an 85px slot, i.e. a 32px jump the moment it lands. Zeroing it here makes the
   slot height depend only on min-height above, so the reservation actually
   holds. 53px covers the two-line mobile/tablet wrap; on wide desktop the
   widget is a single 27px line and the slot simply keeps the reserved height
   rather than collapsing, which costs a little whitespace and shifts nothing. */
.pdp-afterpay-slot square-placement {
  width: 100%;
  margin: 0 !important;
}

/* Belt and braces: if the observer hasn't adopted it yet, a placement still
   sitting loose in the row would add its own height on top of the reserved
   slot — the exact shift this is meant to prevent. */
.pdp-atc-row > square-placement {
  display: none !important;
}

.pdp-afterpay-static {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  font-family: var(--font-body);
  font-size: 0.95rem;
  line-height: 1.35;
  color: var(--ink);
}
.pdp-afterpay-static[hidden] { display: none !important; }
.pdp-afterpay-amount { font-weight: 600; }
.pdp-afterpay-badge {
  display: inline-flex;
  align-items: center;
}
.pdp-afterpay-badge .pdp-afterpay-logo {
  height: 22px;
  width: auto;
  display: block;
}
.pdp-afterpay-wordmark {
  background: #b2fce4;
  color: #000;
  border-radius: 999px;
  padding: 2px 10px;
  font-weight: 700;
}


/* ─────────────────────────────────────────────
   MORE PAYMENT OPTIONS — expanding disclosure
   ───────────────────────────────────────────── */
.pdp-payopts {
  margin-top: 12px;
}
.pdp-payopts-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  padding: 10px 4px;
  background: none;
  border: 0;
  cursor: pointer;
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.pdp-payopts-toggle:hover { color: var(--accent); }
.pdp-payopts-caret {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  transition: transform 0.2s ease;
}
.pdp-payopts-toggle.is-open .pdp-payopts-caret { transform: rotate(180deg); }

.pdp-payopts-panel {
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 16px;
  margin-top: 4px;
}
.pdp-payopts-heading {
  margin: 0 0 12px;
  font-family: var(--font-display);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
}
.pdp-payopts-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: 10px 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pdp-payopts-item {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.pdp-payopts-icon {
  width: 34px;
  height: 24px;
  flex-shrink: 0;
  border-radius: 3px;
}
/* Stand-in for payment types Shopify ships no icon for (Afterpay, Zip), so
   every row keeps the same icon-plus-name alignment. */
.pdp-payopts-chip {
  width: 34px;
  height: 24px;
  flex-shrink: 0;
  border: 1px solid var(--border);
  border-radius: 3px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--muted);
}
.pdp-payopts-name {
  font-family: var(--font-body);
  font-size: 0.88rem;
  color: var(--ink);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pdp-payopts-note {
  margin: 14px 0 0;
  font-family: var(--font-body);
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--muted);
}


/* ─────────────────────────────────────────────
   TRUST BADGES
   ───────────────────────────────────────────── */
.pdp-trust {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  border-top: 1px solid var(--border);
  padding-top: 20px;
}
.pdp-trust-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 6px;
}
.pdp-trust-icon  { color: var(--accent); flex-shrink: 0; }
.pdp-trust-title {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink);
  line-height: 1.3;
}
.pdp-trust-sub {
  font-family: var(--font-body);
  color: var(--muted);
  line-height: 1.3;
}


/* ─────────────────────────────────────────────
   TABS
   ───────────────────────────────────────────── */
.pdp-tabs-section {
  margin-top: 56px;
  border-top: 1px solid var(--border);
}
.pdp-tabs-nav {
  display: flex;
  gap: 28px;
  border-bottom: 1px solid var(--border);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.pdp-tabs-nav::-webkit-scrollbar { display: none; }
.pdp-tab-btn {
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  padding: 16px 0 14px;
  margin-bottom: -1px;
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  cursor: pointer;
  transition: color 0.15s, border-color 0.15s;
  white-space: nowrap;
  flex-shrink: 0;
}
.pdp-tab-btn.active             { color: var(--accent); border-bottom-color: var(--accent); }
.pdp-tab-btn:hover:not(.active) { color: var(--ink); }

.pdp-tab-panel { display: none; padding: 28px 0; }
.pdp-tab-panel.active {
  display: block;
  animation: pdp-tab-in 0.2s ease forwards;
}
@keyframes pdp-tab-in {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}
.pdp-tab-panel p,
.pdp-tab-panel .rte,
.pdp-tab-panel .rte p {
  font-family: var(--font-body);
  line-height: 1.8;
  color: var(--ink-soft);
  max-width: 672px;
}

/* Admin rich text nests <p> inside <li>; Dawn's list-style-position:
   inside then strands the bullet on its own line above the text. */
.pdp-tab-panel .rte ul,
.pdp-tab-panel .rte ol {
  list-style-position: outside;
}
.pdp-tab-panel .rte li > p { margin: 0; }
.pdp-tab-panel .rte li { margin-bottom: 8px; }
.pdp-tab-panel .rte li:last-child { margin-bottom: 0; }

.pdp-tasting-notes-list .pdp-tasting-note { margin-bottom: 20px; }
.pdp-tasting-notes-list .pdp-tasting-note:last-child { margin-bottom: 0; }
.pdp-tasting-note-title {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 5px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.pdp-tasting-note-body {
  font-family: var(--font-body);
  line-height: 1.75;
  color: var(--ink-soft);
  max-width: 672px;
  margin: 0;
}

.pdp-details-table { max-width: 560px; }
.pdp-details-row {
  display: flex;
  gap: 16px;
  border-bottom: 1px solid var(--border);
  padding: 12px 0;
  align-items: baseline;
}
.pdp-details-row:last-child { border-bottom: none; }
.pdp-details-label {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  width: 144px;
  flex-shrink: 0;
}
.pdp-details-value {
  font-family: var(--font-body);
  color: var(--ink);
  line-height: 1.5;
}

.pdp-info .product__accordion { border-top: 1px solid var(--border); }

/* SEO text */
.pdp-seo-text {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid var(--border);
}
.pdp-seo-text p {
  font-family: var(--font-body);
  font-size: 13px !important;
  color: var(--muted);
  line-height: 1.7;
}


/* ─────────────────────────────────────────────
   RELATED PRODUCTS
   ───────────────────────────────────────────── */
.pdp-related {
  margin-top: 56px;
  padding-top: 40px;
  border-top: 1px solid var(--border);
}
.pdp-related-heading {
  font-family: var(--font-display);
  font-weight: 400;
  color: var(--ink);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin: 0 0 28px;
}
.pdp-related-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}
@media (min-width: 750px) { .pdp-related-grid { grid-template-columns: repeat(4, 1fr); gap: 24px; } }

.pdp-rel-card { display: block; text-decoration: none; color: inherit; }
.pdp-rel-img-wrap {
  position: relative;
  background: var(--cream-dark);
  overflow: hidden;
  margin-bottom: 12px;
  aspect-ratio: 1 / 1;
}
.pdp-rel-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s ease;
  display: block;
}
.pdp-rel-card:hover .pdp-rel-img-wrap img { transform: scale(1.05); }
.pdp-rel-badge {
  position: absolute;
  top: 10px;
  left: 10px;
  background: var(--accent);
  color: #fff;
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 3px 8px 4px;
  z-index: 1;
}
.pdp-rel-title {
  font-family: var(--font-display);
  font-weight: 600;
  color: var(--ink);
  margin: 0 0 4px;
  line-height: 1.3;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.pdp-rel-price {
  font-family: var(--font-body);
  font-weight: 700;
  color: var(--accent);
  margin: 0;
}

/* Skeleton shimmer */
@keyframes pdp-shimmer {
  0%   { background-position: -600px 0; }
  100% { background-position:  600px 0; }
}
.pdp-rel-card--skeleton { pointer-events: none; }
.pdp-rel-skeleton-img,
.pdp-rel-skeleton-title,
.pdp-rel-skeleton-price {
  background: linear-gradient(
    90deg,
    rgba(var(--color-foreground), 0.04) 25%,
    rgba(var(--color-foreground), 0.10) 50%,
    rgba(var(--color-foreground), 0.04) 75%
  );
  background-size: 600px 100%;
  animation: pdp-shimmer 1.4s infinite linear;
  border-radius: 4px;
}
.pdp-rel-skeleton-img   { width: 100%; aspect-ratio: 1/1; margin-bottom: 10px; }
.pdp-rel-skeleton-title { height: 14px; width: 80%; margin-bottom: 8px; }
.pdp-rel-skeleton-price { height: 14px; width: 40%; }


/* ─────────────────────────────────────────────
   STICKY BAR
   ───────────────────────────────────────────── */
.pdp-sticky-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  background: rgb(var(--color-base-background-1));
  border-top: 1px solid var(--border);
  padding: 10px 20px;
  z-index: 1000;
  transform: translateY(100%);
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
  box-shadow: 0 -10px 30px rgba(var(--color-foreground), 0.08);
}
.pdp-sticky-bar.is-visible { transform: translateY(0); }

.pdp-sticky-container {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.pdp-sticky-info { display: flex; align-items: center; gap: 15px; }
.pdp-sticky-img {
  width: 50px;
  height: 50px;
  object-fit: contain;
  background: var(--cream-dark);
}
.pdp-sticky-details { display: flex; flex-direction: column; }
.pdp-sticky-title {
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 700;
  color: var(--ink);
}
.pdp-sticky-variant {
  font-size: 11px;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-top: 2px;
}
.pdp-sticky-price {
  font-size: 13px;
  color: var(--ink);
  font-weight: 600;
}
.pdp-sticky-btn {
  background: var(--ink);
  color: #fff;
  border: none;
  padding: 12px 30px;
  font-family: var(--font-body);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  cursor: pointer;
  transition: background 0.2s;
}
.pdp-sticky-btn:hover:not(:disabled) { background: var(--gold-light); }

@media (max-width: 749px) {
  .pdp-sticky-title { display: none; }
  .pdp-sticky-info  { gap: 10px; }
}
@media (min-width: 990px) {
  .pdp-sticky-bar     { padding: 15px 40px; }
  .pdp-sticky-img     { width: 65px; height: 65px; }
  .pdp-sticky-details { max-width: 500px; }
  .pdp-sticky-title   { font-size: 18px !important; line-height: 1.2; margin-bottom: 2px; }
  .pdp-sticky-variant { font-size: 13px !important; letter-spacing: 0.1em; }
  .pdp-sticky-price   { font-size: 16px !important; margin-top: 4px; }
  .pdp-sticky-btn     { padding: 15px 45px; font-size: 14px !important; min-width: 200px; }
}

#CartDrawer, .cart-drawer, cart-drawer { z-index: 2000 !important; }
.drawer__overlay                        { z-index: 1999 !important; }


/* ─────────────────────────────────────────────
   CART COUNT BUBBLE
   ───────────────────────────────────────────── */
.cart-count-bubble {
  transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.cart-count-bubble.hidden {
  display: flex !important;
  opacity: 1 !important;
}
@keyframes cartWiggle {
  0%, 100% { transform: rotate(0deg); }
  25%       { transform: rotate(10deg); }
  50%       { transform: rotate(-10deg); }
  75%       { transform: rotate(5deg); }
}
.cart-icon-animate { animation: cartWiggle 0.5s ease-in-out; }

.pdp-atc-btn--sold-out {
  background-color: #a3372c;
  color: #ffffff;
  cursor: not-allowed;
  opacity: 1;
}

.pdp-atc-btn--sold-out:hover {
  background-color: #a3372c;
}

.pdp-sticky-btn--sold-out {
  background-color: #a3372c;
  color: #ffffff;
  cursor: not-allowed;
  opacity: 1;
}

.pdp-sticky-btn--sold-out:hover {
  background-color: #a3372c;
}

.pdp-stock-count {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 0;
  color: #a3372c;
  font-size: 1.3rem;
}

.pdp-stock-count-number {
  color: #a3372c;
}

.pdp-purchase-type {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 16px;
}

.pdp-purchase-option {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid #dad3c4;
  border-radius: 8px;
  cursor: pointer;
  transition: border-color 0.15s;
}

.pdp-purchase-option:has(input:checked) {
  border-color: #111;
}

.pdp-purchase-option input[type="radio"] {
  accent-color: #111;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.pdp-purchase-option__label {
  display: flex;
  flex-direction: column;
  gap: 2px;
  line-height: 1.3;
}

.pdp-purchase-option__label small {
  font-size: 12px;
  color: #666;
}

/* Shimmer upsell */
.pdp-shimmer-upsell {
  margin-bottom: 16px;
}

.pdp-shimmer-label {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid #dad3c4;
  border-radius: 8px;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
  user-select: none;
}

.pdp-shimmer-label:hover { border-color: #aaa; }

.pdp-shimmer-label:has(.pdp-shimmer-checkbox:checked) {
  border-color: #111;
  background: #faf7f0;
}

.pdp-shimmer-checkbox {
  accent-color: #111;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  cursor: pointer;
}

.pdp-shimmer-content {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
}

.pdp-shimmer-icon { font-size: 18px; flex-shrink: 0; }

.pdp-shimmer-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  line-height: 1.3;
  flex: 1;
}

.pdp-shimmer-text strong { font-size: 14px; }

.pdp-shimmer-text small { font-size: 12px; color: #666; }

.pdp-shimmer-price {
  font-size: 14px;
  font-weight: 600;
  color: #111;
  flex-shrink: 0;
}

/* Shimmer sub-row inside cart items */
.newy-shimmer-sub {
  display: flex;
  align-items: center;
  margin-top: 8px;
  padding: 6px 10px;
  background: #faf7f0;
  border: 1px dashed #dad3c4;
  border-radius: 6px;
  font-size: 12px;
  color: #555;
}

.newy-shimmer-sub-label { flex: 1; }

.newy-shimmer-sub-price {
  font-size: 12px;
  font-weight: 600;
  color: #111;
}