/* ==========================================================================
   PRINS & PRINS — PRODUCT DETAIL PAGE V3
   Benchmarked against Tiffany, Cartier, Graff, Van Cleef, Bulgari and
   Harry Winston. Universal laws applied: gallery LEFT, pure WHITE ground,
   serif H1 ~32px, sticky right rail, no price, ritualised viewing CTA,
   named advisor (Cartier signature), founder pull-quote slab (VCA),
   numbered atelier reel (VCA), full-bleed Visit closer (Harry Winston).
   ========================================================================== */

:root {
  --pdp-bg:        #FFFFFF;
  --pdp-ink:       #14181A;   /* near-black */
  --pdp-ink-soft:  #4A5450;
  --pdp-ink-dim:   #8B948F;
  --pdp-rule:      rgba(20, 24, 26, 0.08);
  --pdp-rule-strong: rgba(20, 24, 26, 0.18);
  --pdp-brass:     #A07A35;
  --pdp-brass-warm:#C9A55C;
  --pdp-brass-deep:#6E5318;
  --pdp-cream:     #FBF6E9;
  --pdp-emerald:   #1F3D2E;
  --pdp-serif:     'Cormorant Garamond', 'Georgia', serif;
  --pdp-sans:      'Inter', system-ui, -apple-system, sans-serif;
}

body.page-product {
  background: var(--pdp-bg) !important;
  color: var(--pdp-ink);
  font-family: var(--pdp-sans);
  -webkit-font-smoothing: antialiased;
}
body.page-product main {
  display: block;
  /* Push content below the fixed site nav (~80px tall) so the breadcrumb
     doesn't slide under the logo on landing. */
  padding-top: 84px;
}
@media (max-width: 768px) { body.page-product main { padding-top: 72px; } }

/* The footer-seam (cream→emerald gradient) is a global chrome injection
   meant to bridge light pages to the dark footer. Our v3 closer is the
   dark "Visit Huguenot House" block, which already meets the footer
   colour. Hide the seam to avoid a light flash between two darks.       */
body.page-product .footer-seam { display: none !important; }
/* Same reason: drop the inverse 60px fade injected onto .footer's top */
body.page-product .footer-seam + .footer::before { display: none !important; }

/* ==========================================================================
   BREADCRUMB
   ========================================================================== */
.pdp-crumb {
  max-width: 1500px;
  margin: 0 auto;
  padding: clamp(20px, 2.6vw, 32px) clamp(24px, 4vw, 64px) 0;
  font-family: var(--pdp-sans);
  font-size: 0.66rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--pdp-ink-dim);
  font-weight: 500;
}
.pdp-crumb a {
  color: var(--pdp-ink-soft);
  text-decoration: none;
  transition: color 0.2s;
}
.pdp-crumb a:hover { color: var(--pdp-brass); }
.pdp-crumb span[aria-hidden] { margin: 0 10px; color: var(--pdp-ink-dim); opacity: 0.55; }
.pdp-crumb #pdpCrumbName { color: var(--pdp-ink); }

/* ==========================================================================
   HERO — gallery LEFT (sticky), info rail RIGHT (sticky)
   Grid 1.12fr : 1fr (gallery slightly larger than rail)
   ========================================================================== */
.pdp-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
  gap: clamp(48px, 6vw, 96px);
  max-width: 1500px;
  margin: 0 auto;
  padding: clamp(28px, 3vw, 44px) clamp(24px, 4vw, 64px) clamp(72px, 9vw, 140px);
  align-items: flex-start;
}
/* minmax(0, 1fr), not 1fr. A plain 1fr track keeps an automatic minimum of
   min-content, and the payments marquee in the rail is width:max-content, so
   the single column was resolving to ~575px inside a 354px phone screen and
   the whole info rail hung off the right edge. */
@media (max-width: 1040px) { .pdp-hero { grid-template-columns: minmax(0, 1fr); gap: 40px; } }

/* ==========================================================================
   GALLERY
   ========================================================================== */
.pdp-gallery {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr);
  gap: clamp(16px, 1.4vw, 24px);
  align-items: start;
}
@media (max-width: 1040px) { .pdp-gallery { grid-template-columns: 1fr; } }

/* Vertical thumb rail (Cartier / Graff signature) */
.pdp-thumbs {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 0;
  margin: 0;
  position: sticky;
  top: 110px;
}
.pdp-thumbs:empty { display: none; }
/* No thumb rail, no rail column. Both the class (set by js/product.js) and the
   :has() guard are here on purpose: the class covers every engine, the :has()
   covers the frame before the script has run, so the stage never lands in the
   76px rail column and never renders the piece at thumbnail size. */
.pdp-gallery.is-solo,
.pdp-gallery:has(.pdp-thumbs:empty) { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 1040px) {
  .pdp-thumbs {
    flex-direction: row;
    overflow-x: auto;
    position: static;
    order: 2;
    padding-bottom: 4px;
    scrollbar-width: thin;
  }
}
.pdp-thumb {
  flex: 0 0 76px;
  width: 76px;
  height: 76px;
  position: relative;
  background: #F7F4ED;
  border: 1px solid var(--pdp-rule);
  cursor: pointer;
  padding: 5px;
  transition: border-color 0.25s, transform 0.2s;
}
.pdp-thumb:hover { border-color: var(--pdp-brass); transform: translateY(-1px); }
.pdp-thumb.is-active {
  border-color: var(--pdp-brass);
  box-shadow: inset 0 0 0 1px var(--pdp-brass);
}
.pdp-thumb img {
  width: 100%; height: 100%;
  object-fit: contain;
  display: block;
}

/* Main stage — pure white square, generous padding */
.pdp-stage {
  position: relative;
  background: #FFFFFF;
  border: 1px solid var(--pdp-rule);
}
.pdp-stage-frame {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  cursor: zoom-in;
  overflow: hidden;
}
#pdpImg {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: contain;
  padding: clamp(40px, 7vw, 96px);
  transition: transform 0.55s cubic-bezier(0.25, 0.1, 0.25, 1), opacity 0.25s ease;
  filter: drop-shadow(0 18px 30px rgba(20, 24, 26, 0.08));
}
.pdp-stage-frame:hover #pdpImg { transform: scale(1.045); }
.pdp-stage-frame.is-loading #pdpImg { opacity: 0; }

/* Prev / Next */
.pdp-nav {
  position: absolute;
  top: 50%; transform: translateY(-50%);
  width: 42px; height: 42px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid var(--pdp-rule);
  color: var(--pdp-ink);
  display: grid; place-items: center;
  cursor: pointer;
  border-radius: 50%;
  opacity: 0;
  transition: opacity 0.25s, transform 0.25s, background 0.2s, color 0.2s;
  z-index: 3;
  box-shadow: 0 4px 14px rgba(20, 24, 26, 0.08);
}
/* display:grid above is author origin and beats the browser's own
   [hidden]{display:none}, so without this the arrows stay laid out and
   clickable on one photograph pieces where the script never unhides them. */
.pdp-nav[hidden] { display: none; }
.pdp-nav-prev { left: 16px; }
.pdp-nav-next { right: 16px; }
.pdp-stage:hover .pdp-nav,
.pdp-stage:focus-within .pdp-nav { opacity: 1; }
.pdp-nav:hover { background: var(--pdp-ink); color: #FFFFFF; }
.pdp-nav-prev:hover { transform: translateY(-50%) translateX(-2px); }
.pdp-nav-next:hover { transform: translateY(-50%) translateX(2px); }
@media (max-width: 720px) { .pdp-nav { opacity: 1; width: 36px; height: 36px; } }

/* Stage meta — counter + save floating bottom row */
.pdp-stage-meta {
  position: absolute;
  bottom: 18px; left: 0; right: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 22px;
  z-index: 3;
  pointer-events: none;
}
.pdp-stage-meta > * { pointer-events: auto; }
.pdp-stage-counter {
  font-family: var(--pdp-sans);
  font-size: 0.6rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--pdp-ink-soft);
  font-weight: 500;
}
.pdp-stage-counter em {
  font-style: normal;
  margin: 0 6px;
  color: var(--pdp-ink-dim);
  text-transform: lowercase;
  letter-spacing: 0.18em;
}
.pdp-stage-save {
  display: inline-flex;
  align-items: center;
  /* the counter beside it is hidden on one photograph pieces, and
     space-between would then park Save on the left. Pin it right. */
  margin-left: auto;
  gap: 7px;
  background: transparent;
  border: 0;
  padding: 6px 4px;
  cursor: pointer;
  font-family: var(--pdp-sans);
  font-size: 0.6rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--pdp-ink-soft);
  font-weight: 500;
  transition: color 0.2s;
}
.pdp-stage-save:hover { color: var(--pdp-brass); }
.pdp-stage-save.is-saved { color: var(--pdp-brass); }
.pdp-stage-save.is-saved svg { fill: currentColor; }

/* ==========================================================================
   INFO RAIL — sticky right column
   ========================================================================== */
.pdp-rail {
  position: sticky;
  top: 100px;
  align-self: start;
}
@media (max-width: 1040px) { .pdp-rail { position: static; } }
.pdp-rail-inner {
  display: flex;
  flex-direction: column;
}

/* Collection kicker (Cartier) */
.pdp-kicker {
  font-family: var(--pdp-sans);
  font-size: 0.66rem;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--pdp-brass);
  font-weight: 500;
  margin-bottom: 18px;
}

/* H1 — refined serif (Cormorant Garamond, 400) at 28-40px clamp */
.pdp-name {
  font-family: var(--pdp-serif);
  font-size: clamp(2rem, 3.2vw, 2.6rem);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: -0.005em;
  color: var(--pdp-ink);
  margin: 0 0 16px;
}

/* Reference number (Cartier archival treatment) */
.pdp-ref {
  font-family: var(--pdp-sans);
  font-size: 0.66rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--pdp-ink-dim);
  font-weight: 500;
  margin-bottom: 28px;
}

/* Editorial sentence (Tiffany pattern — one italic line) */
.pdp-strap {
  font-family: var(--pdp-serif);
  font-style: italic;
  font-weight: 400;
  font-size: 1.15rem;
  line-height: 1.55;
  color: var(--pdp-ink-soft);
  margin: 0 0 28px;
  max-width: 460px;
}

/* Availability indicator — quiet, no big price block */
.pdp-avail {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--pdp-sans);
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--pdp-ink-soft);
  font-weight: 500;
  padding: 14px 0;
  border-top: 1px solid var(--pdp-rule);
  border-bottom: 1px solid var(--pdp-rule);
  margin-bottom: 28px;
}
.pdp-avail-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: #4FA571;
  box-shadow: 0 0 0 3px rgba(79, 165, 113, 0.18);
}
.pdp-avail.is-reserved .pdp-avail-dot {
  background: #B7783A;
  box-shadow: 0 0 0 3px rgba(183, 120, 58, 0.18);
}

/* PRIMARY CTA — Harry Winston pattern: brass-outlined, not filled */
.pdp-cta-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  background: transparent;
  color: var(--pdp-brass-deep);
  border: 1px solid var(--pdp-brass);
  padding: 18px 24px;
  font-family: var(--pdp-sans);
  font-size: 0.74rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  font-weight: 500;
  cursor: pointer;
  line-height: 1;
  transition: background 0.3s, color 0.3s, border-color 0.3s, transform 0.2s;
  text-decoration: none;
  position: relative;
  overflow: hidden;
}
.pdp-cta-primary::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, transparent 0%, rgba(201, 165, 92, 0.0) 35%, rgba(201, 165, 92, 0.22) 50%, rgba(201, 165, 92, 0.0) 65%, transparent 100%);
  transform: translateX(-110%);
  transition: transform 0.7s cubic-bezier(0.25, 0.1, 0.25, 1);
  pointer-events: none;
}
.pdp-cta-primary:hover {
  background: var(--pdp-ink);
  color: #FFFFFF;
  border-color: var(--pdp-ink);
}
.pdp-cta-primary:hover::before { transform: translateX(110%); }
.pdp-cta-primary svg { transition: transform 0.25s; }
.pdp-cta-primary:hover svg { transform: translateX(4px); }

/* Mini CTA row — telephone / WhatsApp / email, equal-rank (Graff influence) */
.pdp-cta-row {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  margin: 14px 0 28px;
  padding: 0;
  border-bottom: 1px solid var(--pdp-rule);
}
.pdp-cta-mini {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 8px;
  border-right: 1px solid var(--pdp-rule);
  font-family: var(--pdp-sans);
  font-size: 0.62rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--pdp-ink-soft);
  text-decoration: none;
  transition: color 0.2s;
}
.pdp-cta-row li:last-child .pdp-cta-mini { border-right: 0; }
.pdp-cta-mini:hover { color: var(--pdp-brass); }
.pdp-cta-mini svg { color: var(--pdp-brass); flex-shrink: 0; }

/* ==========================================================================
   ADVISOR — Cartier signature module: named, with portrait + direct line
   ========================================================================== */
.pdp-advisor {
  display: flex;
  gap: 18px;
  align-items: flex-start;
  padding: 24px 24px 24px 22px;
  background: var(--pdp-cream);
  border: 1px solid rgba(160, 122, 53, 0.18);
  margin-bottom: 32px;
  position: relative;
}
.pdp-advisor::before {
  content: '';
  position: absolute;
  top: 0; left: 0; bottom: 0;
  width: 2px;
  background: var(--pdp-brass);
}
.pdp-advisor-portrait {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  border: 1px solid rgba(160, 122, 53, 0.35);
  filter: grayscale(15%) contrast(1.02);
}
.pdp-advisor-body {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.pdp-advisor-eyebrow {
  font-family: var(--pdp-sans);
  font-size: 0.58rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--pdp-brass-deep);
  font-weight: 600;
  margin-bottom: 4px;
}
.pdp-advisor-name {
  font-family: var(--pdp-serif);
  font-size: 1.25rem;
  font-weight: 500;
  color: var(--pdp-ink);
  line-height: 1.1;
}
.pdp-advisor-role {
  font-family: var(--pdp-sans);
  font-size: 0.72rem;
  color: var(--pdp-ink-soft);
  margin-top: 4px;
  letter-spacing: 0.02em;
}
.pdp-advisor-tel {
  display: inline-block;
  font-family: var(--pdp-sans);
  font-size: 0.85rem;
  color: var(--pdp-brass-deep);
  text-decoration: none;
  font-weight: 500;
  margin-top: 6px;
  letter-spacing: 0.04em;
  border-bottom: 1px solid rgba(160, 122, 53, 0.4);
  padding-bottom: 1px;
  width: max-content;
  transition: color 0.2s, border-color 0.2s;
}
.pdp-advisor-tel:hover { color: var(--pdp-ink); border-color: var(--pdp-ink); }
.pdp-advisor-line {
  font-family: var(--pdp-serif);
  font-style: italic;
  font-size: 0.94rem;
  color: var(--pdp-ink-soft);
  line-height: 1.5;
  margin: 10px 0 0;
}

/* ==========================================================================
   SPECS — Bulgari pattern, inline plain, no accordion gate
   ========================================================================== */
.pdp-specs {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 14px 24px;
  margin: 0 0 24px;
  padding: 0 0 24px;
  border-bottom: 1px solid var(--pdp-rule);
}
.pdp-specs:empty { display: none; }
.pdp-specs dt {
  font-family: var(--pdp-sans);
  font-size: 0.6rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--pdp-ink-dim);
  font-weight: 500;
  line-height: 1.5;
  padding-top: 2px;
}
.pdp-specs dd {
  font-family: var(--pdp-serif);
  font-size: 1.05rem;
  color: var(--pdp-ink);
  margin: 0;
  line-height: 1.3;
}

/* The piece in detail — toggle (collapsed by default) */
.pdp-detail {
  border-bottom: 1px solid var(--pdp-rule);
  margin-bottom: 22px;
}
.pdp-detail summary {
  list-style: none;
  cursor: pointer;
  padding: 18px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: var(--pdp-sans);
  font-size: 0.7rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--pdp-ink);
  font-weight: 500;
}
.pdp-detail summary::-webkit-details-marker { display: none; }
.pdp-detail summary svg { transition: transform 0.25s; color: var(--pdp-brass); }
.pdp-detail[open] summary svg { transform: rotate(180deg); }
.pdp-desc {
  font-family: var(--pdp-sans);
  font-size: 0.92rem;
  line-height: 1.8;
  color: var(--pdp-ink-soft);
  padding-bottom: 18px;
}
.pdp-desc p { margin: 0 0 12px; }
.pdp-desc img { max-width: 100%; height: auto; margin: 10px 0; }

/* Trust line — single sentence, very small */
.pdp-trustline {
  font-family: var(--pdp-sans);
  font-size: 0.62rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--pdp-ink-dim);
  font-weight: 500;
  text-align: left;
  margin: 4px 0 0;
  line-height: 1.7;
}

/* ==========================================================================
   FOUNDER PULL-QUOTE — VCA full-bleed editorial slab
   ========================================================================== */
.pdp-quote {
  background: var(--pdp-cream);
  padding: clamp(80px, 11vw, 160px) clamp(20px, 4vw, 64px);
  border-top: 1px solid rgba(160, 122, 53, 0.14);
  border-bottom: 1px solid rgba(160, 122, 53, 0.14);
  position: relative;
}
.pdp-quote-inner {
  max-width: 920px;
  margin: 0 auto;
  text-align: center;
  position: relative;
}
.pdp-quote-mark {
  font-family: var(--pdp-serif);
  font-size: clamp(5rem, 9vw, 8rem);
  font-style: italic;
  color: var(--pdp-brass);
  opacity: 0.28;
  line-height: 0.5;
  display: block;
  margin-bottom: 18px;
}
.pdp-quote-text {
  font-family: var(--pdp-serif);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(1.55rem, 2.4vw, 2.3rem);
  line-height: 1.42;
  color: var(--pdp-ink);
  margin: 0 0 32px;
  letter-spacing: -0.005em;
}
.pdp-quote-text em {
  color: var(--pdp-brass-deep);
  font-style: italic;
  font-weight: 500;
}
.pdp-quote-attrib {
  display: inline-block;
  font-family: var(--pdp-sans);
  font-size: 0.66rem;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: var(--pdp-ink-soft);
  font-weight: 500;
}

/* ==========================================================================
   ATELIER REEL — VCA numbered 1/2/3/4
   ========================================================================== */
.pdp-reel {
  background: var(--pdp-bg);
  padding: clamp(72px, 9vw, 130px) clamp(24px, 4vw, 64px);
  max-width: 1500px;
  margin: 0 auto;
}
.pdp-reel-head {
  text-align: center;
  max-width: 680px;
  margin: 0 auto 60px;
}
.pdp-reel-eyebrow {
  display: inline-block;
  font-family: var(--pdp-sans);
  font-size: 0.66rem;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: var(--pdp-brass);
  font-weight: 500;
  margin-bottom: 18px;
}
.pdp-reel-title {
  font-family: var(--pdp-serif);
  font-size: clamp(1.9rem, 3vw, 2.4rem);
  font-weight: 400;
  color: var(--pdp-ink);
  margin: 0 0 14px;
  line-height: 1.1;
}
.pdp-reel-sub {
  font-family: var(--pdp-serif);
  font-style: italic;
  font-size: 1.08rem;
  color: var(--pdp-ink-soft);
  margin: 0;
  line-height: 1.55;
}
.pdp-reel-grid {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(20px, 2vw, 36px);
  padding: 0;
  margin: 0;
}
@media (max-width: 980px) { .pdp-reel-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px) { .pdp-reel-grid { grid-template-columns: 1fr; } }

.pdp-reel-card {
  position: relative;
  display: flex;
  flex-direction: column;
}
.pdp-reel-media {
  aspect-ratio: 3 / 4;
  background: #F0EDE3;
  overflow: hidden;
  margin-bottom: 22px;
}
.pdp-reel-media img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.7s cubic-bezier(0.25, 0.1, 0.25, 1);
  filter: contrast(1.02);
}
.pdp-reel-card:hover .pdp-reel-media img { transform: scale(1.04); }
.pdp-reel-num {
  position: absolute;
  top: -14px; left: -6px;
  font-family: var(--pdp-serif);
  font-style: italic;
  font-size: clamp(3rem, 4.6vw, 4.4rem);
  font-weight: 300;
  color: var(--pdp-brass);
  opacity: 0.88;
  line-height: 1;
  z-index: 2;
  text-shadow: 0 2px 14px rgba(255, 255, 255, 0.85);
  pointer-events: none;
}
.pdp-reel-h {
  font-family: var(--pdp-serif);
  font-size: 1.35rem;
  font-weight: 400;
  color: var(--pdp-ink);
  margin: 0 0 8px;
  line-height: 1.2;
}
.pdp-reel-p {
  font-family: var(--pdp-sans);
  font-size: 0.85rem;
  line-height: 1.65;
  color: var(--pdp-ink-soft);
  margin: 0;
}

/* ==========================================================================
   PIECES IN THE SAME CHAPTER — Harry Winston 3-up curated
   ========================================================================== */
.pdp-pairings {
  background: var(--pdp-bg);
  padding: clamp(60px, 8vw, 110px) clamp(24px, 4vw, 64px) clamp(80px, 10vw, 140px);
  max-width: 1500px;
  margin: 0 auto;
  border-top: 1px solid var(--pdp-rule);
}
.pdp-pairings-head {
  text-align: center;
  max-width: 680px;
  margin: 0 auto 56px;
}
.pdp-pairings-eyebrow {
  display: inline-block;
  font-family: var(--pdp-sans);
  font-size: 0.66rem;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: var(--pdp-brass);
  font-weight: 500;
  margin-bottom: 16px;
}
.pdp-pairings-title {
  font-family: var(--pdp-serif);
  font-size: clamp(1.9rem, 3vw, 2.4rem);
  font-weight: 400;
  color: var(--pdp-ink);
  margin: 0;
  line-height: 1.12;
}
.pdp-pairings-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(24px, 2.4vw, 44px);
  margin-bottom: 48px;
}
@media (max-width: 880px) { .pdp-pairings-grid { grid-template-columns: 1fr; } }

.pdp-pair-card {
  display: block;
  text-decoration: none;
  color: inherit;
  transition: transform 0.25s;
}
.pdp-pair-card:hover { transform: translateY(-3px); }
.pdp-pair-img {
  aspect-ratio: 1 / 1;
  background:
    radial-gradient(80% 60% at 50% 40%, #FFFFFF 0%, #F7F2E6 70%, #EFE9D8 100%);
  overflow: hidden;
  margin-bottom: 18px;
  position: relative;
  border: 1px solid var(--pdp-rule);
}
.pdp-pair-img img {
  width: 100%; height: 100%;
  object-fit: contain;
  padding: 6%;
  box-sizing: border-box;
  transition: transform 0.55s cubic-bezier(0.25, 0.1, 0.25, 1);
}
.pdp-pair-card:hover .pdp-pair-img img { transform: scale(1.05); }
.pdp-pair-kicker {
  font-family: var(--pdp-sans);
  font-size: 0.6rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--pdp-brass);
  font-weight: 500;
  margin-bottom: 8px;
  display: block;
}
.pdp-pair-name {
  font-family: var(--pdp-serif);
  font-size: 1.2rem;
  font-weight: 400;
  color: var(--pdp-ink);
  margin: 0 0 6px;
  line-height: 1.2;
}
.pdp-pair-meta {
  font-family: var(--pdp-sans);
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--pdp-ink-dim);
  font-weight: 500;
}
.pdp-pairings-all {
  display: block;
  width: max-content;
  margin: 0 auto;
  font-family: var(--pdp-sans);
  font-size: 0.7rem;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--pdp-ink);
  text-decoration: none;
  font-weight: 500;
  padding: 8px 0;
  border-bottom: 1px solid var(--pdp-brass);
  transition: color 0.2s, border-color 0.2s;
}
.pdp-pairings-all:hover { color: var(--pdp-brass); }

/* ==========================================================================
   VISIT HUGUENOT HOUSE — Harry Winston full-bleed closer
   ========================================================================== */
.pdp-visit {
  position: relative;
  width: 100%;
  min-height: 72vh;
  display: grid;
  place-items: center;
  padding: clamp(96px, 14vh, 180px) clamp(24px, 4vw, 64px);
  overflow: hidden;
  background: var(--pdp-emerald);
  color: #FFFFFF;
}
.pdp-visit-bg {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: 0;
  filter: brightness(0.42) saturate(0.92);
}
.pdp-visit-scrim {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    radial-gradient(80% 60% at 50% 40%, rgba(0, 0, 0, 0.0) 0%, rgba(20, 24, 26, 0.55) 100%),
    linear-gradient(180deg, rgba(20, 24, 26, 0.25) 0%, rgba(20, 24, 26, 0.65) 100%);
}
.pdp-visit-inner {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 720px;
  margin: 0 auto;
}
.pdp-visit-eyebrow {
  display: inline-block;
  font-family: var(--pdp-sans);
  font-size: 0.7rem;
  letter-spacing: 0.42em;
  text-transform: uppercase;
  color: var(--pdp-brass-warm);
  font-weight: 500;
  margin-bottom: 22px;
}
.pdp-visit-title {
  font-family: var(--pdp-serif);
  font-size: clamp(2.4rem, 4.6vw, 4rem);
  font-weight: 400;
  color: #FFFFFF;
  line-height: 1.06;
  margin: 0 0 22px;
  letter-spacing: -0.005em;
}
.pdp-visit-sub {
  font-family: var(--pdp-serif);
  font-style: italic;
  font-size: clamp(1.05rem, 1.35vw, 1.25rem);
  color: rgba(255, 255, 255, 0.82);
  line-height: 1.5;
  margin: 0 0 32px;
}
.pdp-visit-address {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-family: var(--pdp-sans);
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.78);
  font-weight: 500;
  margin: 0 0 40px;
}
.pdp-visit-actions {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: center;
}
.pdp-cta-primary-dark {
  background: var(--pdp-brass);
  color: #FFFFFF;
  border-color: var(--pdp-brass);
}
.pdp-cta-primary-dark:hover {
  background: #FFFFFF;
  color: var(--pdp-ink);
  border-color: #FFFFFF;
}
.pdp-cta-secondary-dark {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: transparent;
  color: #FFFFFF;
  border: 1px solid rgba(255, 255, 255, 0.55);
  padding: 18px 24px;
  font-family: var(--pdp-sans);
  font-size: 0.74rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  font-weight: 500;
  text-decoration: none;
  transition: background 0.25s, color 0.25s, border-color 0.25s;
  cursor: pointer;
  line-height: 1;
}
.pdp-cta-secondary-dark svg { color: var(--pdp-brass-warm); }
.pdp-cta-secondary-dark:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: #FFFFFF;
}

/* ==========================================================================
   LIGHTBOX
   ========================================================================== */
.pdp-lightbox {
  position: fixed; inset: 0;
  z-index: 999;
  display: grid;
  place-items: center;
  padding: 4vw;
}
.pdp-lightbox[hidden] { display: none; }
.pdp-lightbox-backdrop {
  position: absolute; inset: 0;
  background: rgba(15, 17, 16, 0.96);
  backdrop-filter: blur(8px);
}
.pdp-lightbox-close,
.pdp-lightbox-nav {
  position: absolute;
  background: rgba(255, 255, 255, 0.06);
  color: #FFFFFF;
  border: 1px solid rgba(255, 255, 255, 0.18);
  width: 52px; height: 52px;
  display: grid; place-items: center;
  cursor: pointer;
  border-radius: 50%;
  z-index: 2;
  transition: background 0.2s, transform 0.2s;
}
.pdp-lightbox-close:hover,
.pdp-lightbox-nav:hover { background: rgba(255, 255, 255, 0.2); }
/* same reason as .pdp-nav[hidden]: display:grid would otherwise keep the
   zoom arrows on screen for a piece that only has one photograph. */
.pdp-lightbox-nav[hidden] { display: none; }
.pdp-lightbox-close {
  top: 4vw; right: 4vw;
  font-size: 1.6rem;
  line-height: 1;
  font-family: var(--pdp-sans);
  font-weight: 300;
}
.pdp-lightbox-prev { left: 4vw; top: 50%; transform: translateY(-50%); }
.pdp-lightbox-next { right: 4vw; top: 50%; transform: translateY(-50%); }
.pdp-lightbox-figure {
  margin: 0;
  position: relative;
  z-index: 1;
  max-width: min(86vw, 1100px);
  max-height: 86vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
}
#lbImg {
  max-width: 100%;
  max-height: 78vh;
  object-fit: contain;
  filter: drop-shadow(0 30px 60px rgba(0, 0, 0, 0.6));
}
.pdp-lightbox-cap {
  font-family: var(--pdp-sans);
  font-size: 0.62rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.7);
  font-weight: 500;
}

/* ==========================================================================
   STICKY MOBILE/SCROLL CTA BAR
   ========================================================================== */
.pdp-sticky {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  background: rgba(20, 24, 26, 0.97);
  backdrop-filter: blur(12px);
  color: #FFFFFF;
  padding: 12px 18px;
  display: flex;
  align-items: center;
  gap: 14px;
  z-index: 80;
  transform: translateY(110%);
  transition: transform 0.4s cubic-bezier(0.25, 0.1, 0.25, 1);
  border-top: 1px solid rgba(201, 165, 92, 0.25);
}
.pdp-sticky.is-visible { transform: translateY(0); }
.pdp-sticky[hidden] { display: none; }
.pdp-sticky-body { flex: 1; min-width: 0; }
.pdp-sticky-name {
  font-family: var(--pdp-serif);
  font-size: 1rem;
  font-weight: 400;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #FFFFFF;
  line-height: 1.2;
}
.pdp-sticky-ref {
  font-family: var(--pdp-sans);
  font-size: 0.58rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: rgba(201, 165, 92, 0.92);
  font-weight: 500;
  margin-top: 3px;
}
.pdp-sticky-btn {
  background: transparent;
  color: var(--pdp-brass-warm);
  border: 1px solid var(--pdp-brass-warm);
  padding: 13px 20px;
  font-family: var(--pdp-sans);
  font-weight: 500;
  font-size: 0.7rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
  flex-shrink: 0;
}
.pdp-sticky-btn:hover { background: var(--pdp-brass-warm); color: var(--pdp-ink); }

/* ==========================================================================
   RESPONSIVE TUNING
   ========================================================================== */
@media (max-width: 720px) {
  .pdp-name { font-size: clamp(1.7rem, 8vw, 2.1rem); }
  .pdp-specs { grid-template-columns: max-content 1fr; gap: 10px 16px; }
  .pdp-cta-row { grid-template-columns: 1fr 1fr 1fr; }
  .pdp-cta-mini { padding: 12px 4px; font-size: 0.56rem; letter-spacing: 0.16em; }
  .pdp-cta-mini span { display: none; }
  .pdp-advisor { padding: 18px 16px; gap: 14px; }
  .pdp-advisor-portrait { width: 52px; height: 52px; }
  .pdp-reel-card { padding-top: 18px; }
  .pdp-reel-num { top: -8px; left: -2px; }
  .pdp-visit { min-height: 60vh; padding-top: 80px; padding-bottom: 80px; }
  .pdp-visit-actions .pdp-cta-primary { flex: 1 0 100%; }
}

/* =========================================================================
   NAV CONTRAST FIX — product page sits on a white ground; the nav links,
   wordmark and tagline need full-contrast dark ink, not the dark-hero white
   defaults or the 62% scrolled-state grey.
   ========================================================================= */
body.page-product .nav,
body.page-product .nav.scrolled {
  background: rgba(255, 255, 255, 0.94) !important;
  backdrop-filter: blur(10px) saturate(140%);
  -webkit-backdrop-filter: blur(10px) saturate(140%);
  border-bottom: 1px solid rgba(20, 24, 26, 0.06);
}
body.page-product .nav .nav-brand-name,
body.page-product .nav.scrolled .nav-brand-name { color: #14181A !important; }

body.page-product .nav .nav-brand-sub,
body.page-product .nav.scrolled .nav-brand-sub  { color: #8C6B29 !important; opacity: 1 !important; letter-spacing: 0.18em; }

body.page-product .nav .nav-links a,
body.page-product .nav.scrolled .nav-links a {
  color: #14181A !important;
  font-weight: 600 !important;
  opacity: 1 !important;
}
body.page-product .nav .nav-links a:hover,
body.page-product .nav.scrolled .nav-links a:hover { color: #8C6B29 !important; }

body.page-product .nav .nav-links a::after,
body.page-product .nav.scrolled .nav-links a::after { background: #C9A55C !important; }

/* ==========================================================================
   ENQUIRY MODAL — "Reserve a Private Viewing"
   Solid deep-green panel, brass-gold accents, generous product card,
   high-contrast form fields. Matches the cart drawer treatment.
   ========================================================================== */
.enq-modal {
  position: fixed; inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: 24px;
}
.enq-modal[hidden] { display: none; }
.enq-backdrop {
  position: absolute; inset: 0;
  background: rgba(7, 12, 9, 0.7);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  animation: enqFade 0.3s ease;
}
@keyframes enqFade { from { opacity: 0 } to { opacity: 1 } }
.enq-card {
  position: relative;
  width: 100%;
  max-width: 600px;
  max-height: calc(100vh - 48px);
  overflow-y: auto;
  background:
    radial-gradient(70% 50% at 50% 0%, rgba(50, 92, 70, 0.55) 0%, transparent 65%),
    linear-gradient(180deg, #1F3D2E 0%, #173023 60%, #0E1F16 100%);
  border: 1px solid rgba(232, 193, 106, 0.42);
  box-shadow:
    0 0 0 1px rgba(232, 193, 106, 0.15) inset,
    0 40px 100px rgba(0, 0, 0, 0.55),
    0 0 60px rgba(232, 193, 106, 0.12);
  padding: 40px 38px 32px;
  z-index: 1;
  color: #FBFBF7;
  animation: enqIn 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}
.enq-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(232, 193, 106, 0.6) 18%,
    #E8C16A 38%,
    #FFF1C4 50%,
    #E8C16A 62%,
    rgba(232, 193, 106, 0.6) 82%,
    transparent 100%);
  box-shadow: 0 0 16px rgba(255, 241, 196, 0.7);
  pointer-events: none;
}
@keyframes enqIn {
  from { opacity: 0; transform: translateY(20px) scale(0.98); }
  to   { opacity: 1; transform: none; }
}
.enq-close {
  position: absolute;
  top: 14px; right: 14px;
  width: 38px; height: 38px;
  border: 1px solid rgba(232, 193, 106, 0.45);
  background: transparent;
  color: #FBFBF7;
  font-size: 1.4rem;
  cursor: pointer;
  line-height: 1;
  transition: background 0.3s, color 0.3s, border-color 0.3s;
  z-index: 2;
}
.enq-close:hover {
  background: #E8C16A;
  border-color: #E8C16A;
  color: #0F1A14;
}
.enq-head { margin-bottom: 22px; }
.enq-head .eyebrow {
  display: block;
  font-size: 0.74rem;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: #E8C16A;
  font-weight: 800;
  margin-bottom: 10px;
}
.enq-head .gold-line {
  height: 1px;
  width: 42px;
  background: #E8C16A;
  margin: 0 0 16px;
}
.enq-head h3 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 2rem;
  font-weight: 400;
  margin: 0 0 8px;
  color: #FBFBF7;
  line-height: 1.1;
}
.enq-sub {
  font-size: 0.92rem;
  color: rgba(228, 236, 223, 0.85);
  margin: 0 0 22px;
  line-height: 1.6;
}
.enq-product {
  display: flex;
  gap: 18px;
  align-items: center;
  padding: 16px;
  background: rgba(0, 0, 0, 0.25);
  border: 1px solid rgba(232, 193, 106, 0.32);
  margin-bottom: 24px;
}
.enq-product-img {
  width: 96px; height: 96px;
  object-fit: contain;
  background: linear-gradient(160deg, #FBFBF7 0%, #E4ECDF 100%);
  padding: 8px;
  border: 1px solid rgba(232, 193, 106, 0.4);
  flex-shrink: 0;
}
.enq-product-body { flex: 1; min-width: 0; }
.enq-product-name {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.15rem;
  color: #FBFBF7;
  margin-bottom: 4px;
  line-height: 1.2;
}
.enq-product-price {
  font-size: 0.74rem;
  color: #E8C16A;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
}
.enq-product-link {
  display: inline-block;
  margin-top: 8px;
  font-size: 0.66rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #FBFBF7;
  text-decoration: none;
  font-weight: 700;
  border-bottom: 1px solid rgba(232, 193, 106, 0.4);
  padding-bottom: 2px;
  transition: color 0.3s, border-color 0.3s;
}
.enq-product-link:hover {
  color: #E8C16A;
  border-color: #E8C16A;
}
.enq-row { margin-bottom: 14px; }
.enq-row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 480px) { .enq-row-2 { grid-template-columns: 1fr; } }
.enq-row label {
  display: block;
  font-size: 0.66rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: #E8C16A;
  font-weight: 700;
  margin-bottom: 6px;
}
.enq-row input,
.enq-row textarea {
  display: block;
  width: 100%;
  padding: 12px 14px;
  border: 1px solid rgba(232, 193, 106, 0.4);
  background: rgba(255, 255, 255, 0.06);
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 0.92rem;
  color: #FBFBF7;
  margin-top: 6px;
  transition: border-color 0.25s, box-shadow 0.25s, background 0.25s;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}
.enq-row input::placeholder,
.enq-row textarea::placeholder {
  color: rgba(228, 236, 223, 0.5);
}
.enq-row input:focus,
.enq-row textarea:focus {
  outline: none;
  border-color: #E8C16A;
  background: rgba(255, 255, 255, 0.10);
  box-shadow: 0 0 0 3px rgba(232, 193, 106, 0.22);
}
.enq-actions {
  display: flex;
  gap: 12px;
  margin-top: 26px;
  align-items: stretch;
}
.enq-submit {
  flex: 1;
  padding: 16px 26px !important;
  font-size: 0.74rem !important;
  letter-spacing: 0.28em !important;
  font-weight: 800 !important;
  background: linear-gradient(180deg, #F0D284 0%, #E8C16A 55%, #B58A33 100%) !important;
  color: #0F1A14 !important;
  border: 1px solid #E8C16A !important;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow:
    0 0 0 1px rgba(255, 241, 196, 0.4) inset,
    0 12px 28px rgba(0, 0, 0, 0.45),
    0 0 20px rgba(232, 193, 106, 0.3) !important;
  transition: transform 0.3s, box-shadow 0.3s;
}
.enq-submit:hover {
  transform: translateY(-1px);
  box-shadow:
    0 0 0 1px rgba(255, 241, 196, 0.6) inset,
    0 16px 34px rgba(0, 0, 0, 0.55),
    0 0 30px rgba(232, 193, 106, 0.5) !important;
}
.enq-wa {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 16px 22px;
  border: 1px solid rgba(232, 193, 106, 0.55);
  background: transparent;
  color: #FBFBF7;
  text-decoration: none;
  font-size: 0.66rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  font-weight: 700;
  transition: background 0.3s, color 0.3s, border-color 0.3s;
}
.enq-wa:hover {
  background: #E8C16A;
  color: #0F1A14;
  border-color: #E8C16A;
}
.enq-fineprint {
  margin-top: 20px;
  font-size: 0.78rem;
  color: rgba(228, 236, 223, 0.78);
  line-height: 1.6;
  font-style: italic;
  font-family: 'Cormorant Garamond', serif;
  text-align: center;
}
/* Off screen rather than display:none, so a bot reading the DOM still fills
   it in and gives itself away. */
.enq-honeypot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.enq-error {
  margin-top: 16px;
  padding: 12px 14px;
  border-left: 2px solid #d47b7b;
  background: rgba(212, 123, 123, 0.1);
  font-size: 0.85rem;
  line-height: 1.6;
  color: rgba(228, 236, 223, 0.95);
}
.enq-success {
  text-align: center;
  padding: 18px 0 8px;
}
.enq-success-mark {
  width: 64px; height: 64px;
  border-radius: 50%;
  background: linear-gradient(180deg, #F0D284 0%, #E8C16A 55%, #B58A33 100%);
  color: #0F1A14;
  font-size: 1.6rem;
  margin: 0 auto 18px;
  display: grid;
  place-items: center;
  box-shadow: 0 0 24px rgba(232, 193, 106, 0.6);
}
.enq-success h3 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.7rem;
  margin: 0 0 8px;
  color: #FBFBF7;
  font-weight: 400;
}
.enq-success p {
  color: rgba(228, 236, 223, 0.85);
  line-height: 1.6;
  margin-bottom: 22px;
}
.enq-success .btn-outline {
  border: 1px solid rgba(232, 193, 106, 0.55);
  color: #FBFBF7;
  background: transparent;
  padding: 14px 28px;
  font-size: 0.66rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.3s, color 0.3s;
}
.enq-success .btn-outline:hover {
  background: #E8C16A;
  color: #0F1A14;
  border-color: #E8C16A;
}

/* =========================================================================
   VISIT SECTION — lighten the image, add a glass text panel for legibility
   ========================================================================= */
body.page-product .pdp-visit { min-height: 78vh; }
body.page-product .pdp-visit-bg {
  filter: brightness(0.82) saturate(1.05) contrast(1.04) !important;
}
body.page-product .pdp-visit-scrim {
  background:
    radial-gradient(60% 55% at 50% 50%, rgba(20,24,26,0.42) 0%, rgba(20,24,26,0) 75%),
    linear-gradient(180deg, rgba(20,24,26,0.20) 0%, rgba(20,24,26,0) 35%, rgba(20,24,26,0.0) 65%, rgba(20,24,26,0.35) 100%) !important;
}
body.page-product .pdp-visit-inner {
  position: relative;
  z-index: 2;
  max-width: 720px;
  padding: clamp(36px, 4vw, 56px) clamp(28px, 3.5vw, 44px);
  background: rgba(20, 24, 26, 0.55);
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  border: 1px solid rgba(232, 193, 106, 0.34);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.10), 0 36px 72px -32px rgba(0, 0, 0, 0.6);
}
body.page-product .pdp-visit-eyebrow { color: #E8C16A !important; }
body.page-product .pdp-visit-title em { color: #E8C16A !important; }

/* =========================================================================
   BUTTONS — clone the homepage glassy btn-v2 system onto every product CTA.
   ========================================================================= */
body.page-product .pdp-cta-primary,
body.page-product .pdp-cta-primary-dark,
body.page-product .pdp-cta-secondary-dark {
  display: inline-flex !important;
  align-items: center !important;
  gap: 12px !important;
  font-family: 'Inter', system-ui, sans-serif !important;
  font-size: 0.66rem !important;
  letter-spacing: 0.26em !important;
  text-transform: uppercase !important;
  font-weight: 600 !important;
  padding: 16px 30px !important;
  text-decoration: none !important;
  line-height: 1 !important;
  position: relative !important;
  overflow: hidden !important;
  isolation: isolate !important;
  border: 1px solid transparent !important;
  cursor: pointer !important;
  transition: background 0.35s, border-color 0.35s, color 0.35s, box-shadow 0.45s, transform 0.35s !important;
  animation: pdpBtnFloatV2 5.5s ease-in-out infinite;
}
body.page-product .pdp-cta-primary-dark { animation-delay: 0.6s; }
body.page-product .pdp-cta-secondary-dark { animation-delay: 0.9s; }

body.page-product .pdp-cta-primary::before,
body.page-product .pdp-cta-primary-dark::before,
body.page-product .pdp-cta-secondary-dark::before {
  content: "";
  position: absolute;
  top: -20%; left: -60%;
  width: 50%; height: 140%;
  pointer-events: none;
  transform: skewX(-22deg);
  z-index: 0;
  animation: pdpBtnShineV2 5.4s cubic-bezier(0.45, 0.05, 0.25, 1) infinite;
}
body.page-product .pdp-cta-primary > *,
body.page-product .pdp-cta-primary-dark > *,
body.page-product .pdp-cta-secondary-dark > * { position: relative; z-index: 1; }

/* PRIMARY — white surface, emerald ink (rail CTA on white ground) */
body.page-product .pdp-cta-primary {
  background: #16301F !important;
  color: #FFFFFF !important;
  border-color: #16301F !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.18),
    0 18px 36px -16px rgba(20, 48, 31, 0.45) !important;
}
body.page-product .pdp-cta-primary::before {
  background: linear-gradient(100deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.12) 30%,
    rgba(255, 255, 255, 0.55) 50%,
    rgba(255, 255, 255, 0.12) 70%,
    rgba(255, 255, 255, 0) 100%);
  filter: blur(1.5px);
}
body.page-product .pdp-cta-primary:hover {
  background: #E8C16A !important;
  color: #16301F !important;
  border-color: #E8C16A !important;
  transform: translateY(-2px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.45),
    0 28px 48px -16px rgba(0, 0, 0, 0.45),
    0 0 28px rgba(232, 193, 106, 0.45) !important;
}

/* PRIMARY DARK — white surface, emerald ink (used in visit closer on dark bg) */
body.page-product .pdp-cta-primary-dark {
  background: #FFFFFF !important;
  color: #16301F !important;
  border-color: #FFFFFF !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.9),
    inset 0 -1px 0 rgba(31, 61, 46, 0.06),
    0 18px 36px -16px rgba(0, 0, 0, 0.55) !important;
}
body.page-product .pdp-cta-primary-dark::before {
  background: linear-gradient(100deg,
    rgba(31, 61, 46, 0) 0%,
    rgba(31, 61, 46, 0.06) 30%,
    rgba(31, 61, 46, 0.36) 50%,
    rgba(31, 61, 46, 0.06) 70%,
    rgba(31, 61, 46, 0) 100%);
  filter: blur(2px);
}
body.page-product .pdp-cta-primary-dark:hover {
  background: #E4ECDF !important;
  transform: translateY(-2px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.7),
    0 0 0 1px rgba(188, 201, 183, 0.9),
    0 28px 48px -16px rgba(0, 0, 0, 0.6),
    0 0 32px rgba(228, 236, 223, 0.55) !important;
}

/* SECONDARY DARK — ghost on dark visit bg */
body.page-product .pdp-cta-secondary-dark {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.03) 100%) !important;
  color: #FFFFFF !important;
  border: 1px solid rgba(255, 255, 255, 0.55) !important;
  backdrop-filter: blur(10px) saturate(140%);
  -webkit-backdrop-filter: blur(10px) saturate(140%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.18),
    0 14px 32px -16px rgba(0, 0, 0, 0.55) !important;
}
body.page-product .pdp-cta-secondary-dark svg { color: #E8C16A !important; }
body.page-product .pdp-cta-secondary-dark::before {
  background: linear-gradient(100deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.12) 30%,
    rgba(255, 255, 255, 0.85) 50%,
    rgba(255, 255, 255, 0.12) 70%,
    rgba(255, 255, 255, 0) 100%);
  filter: blur(1.5px);
}
body.page-product .pdp-cta-secondary-dark:hover {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.18) 0%, rgba(255, 255, 255, 0.08) 100%) !important;
  border-color: #FFFFFF !important;
  transform: translateY(-2px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.32),
    0 24px 44px -16px rgba(0, 0, 0, 0.6),
    0 0 28px rgba(228, 236, 223, 0.32) !important;
}

@keyframes pdpBtnShineV2 {
  0%   { left: -60%; }
  55%  { left: 130%; }
  100% { left: 130%; }
}
@keyframes pdpBtnFloatV2 {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-4px); }
}
@media (prefers-reduced-motion: reduce) {
  body.page-product .pdp-cta-primary,
  body.page-product .pdp-cta-primary-dark,
  body.page-product .pdp-cta-secondary-dark { animation: none !important; }
  body.page-product .pdp-cta-primary::before,
  body.page-product .pdp-cta-primary-dark::before,
  body.page-product .pdp-cta-secondary-dark::before { animation: none !important; display: none !important; }
}

/* === MOBILE POLISH MANAGED: emerald-glass-pdp === */
/* ===================== EMERALD GLASS PDP ===================== */
body.pdp-emerald{
  background: #16301F linear-gradient(178deg, #244732 0%, #18331F 42%, #0E2417 100%) !important;
  background-attachment: scroll !important;
  color:#FBF8EE !important;
}
body.pdp-emerald .pdp-reel, body.pdp-emerald .pdp-pairings,
body.pdp-emerald .pdp-reel *, body.pdp-emerald section.pdp-reel{ background:transparent !important; }
body.pdp-emerald .pdp-pairings .pdp-pair-card, body.pdp-emerald .pdp-reel-card{ background:rgba(255,255,255,.06) !important; border:1px solid rgba(255,255,255,.12) !important; backdrop-filter:blur(12px); }
body.pdp-emerald .pdp-pairings *, body.pdp-emerald .pdp-reel-h, body.pdp-emerald .pdp-pairings-head h2{ color:#FBF8EE !important; }
body.pdp-emerald main{ background:transparent !important; }
body.pdp-emerald .pdp-hero, body.pdp-emerald .pdp-rail, body.pdp-emerald .pdp-rail-inner{ background:transparent !important; }

/* product photo sits in a clean light vitrine so every image reads pristine on the green */
body.pdp-emerald .pdp-stage, body.pdp-emerald .pdp-stage-frame{
  background:linear-gradient(160deg,#ffffff 0%, #f4f1e9 100%) !important;
  border:1px solid rgba(232,193,106,.32) !important; border-radius:20px !important;
  box-shadow:0 36px 90px -34px rgba(0,0,0,.65), inset 0 1px 0 rgba(255,255,255,.7) !important;
}
body.pdp-emerald .pdp-thumbs button{ background:rgba(255,255,255,.92) !important; border-radius:13px !important; border:1px solid rgba(232,193,106,.25) !important; }
body.pdp-emerald .pdp-thumbs button[aria-current="true"], body.pdp-emerald .pdp-thumbs .is-active{ border-color:#E8C16A !important; box-shadow:0 0 0 2px rgba(232,193,106,.4) !important; }

/* rail typography on emerald */
body.pdp-emerald .pdp-kicker{ color:#E8C16A !important; }
body.pdp-emerald .pdp-name{ color:#FBF8EE !important; }
body.pdp-emerald .pdp-ref{ color:rgba(251,248,238,.55) !important; }
body.pdp-emerald .pdp-strap{ color:rgba(251,248,238,.82) !important; }
body.pdp-emerald .pdp-avail{ color:rgba(251,248,238,.85) !important; }
body.pdp-emerald .pdp-avail-text{ color:rgba(251,248,238,.85) !important; }

/* shared glass surface */
body.pdp-emerald .pdp-price, body.pdp-emerald .pdp-cert, body.pdp-emerald .pdp-specs,
body.pdp-emerald .pdp-detail, body.pdp-emerald .pdp-trust{
  background:rgba(255,255,255,.06) !important; backdrop-filter:blur(16px) saturate(1.1);
  -webkit-backdrop-filter:blur(16px) saturate(1.1);
  border:1px solid rgba(255,255,255,.14) !important; border-radius:16px !important;
  box-shadow:0 22px 54px -30px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.12) !important;
}

/* price band */
body.pdp-emerald .pdp-price{ padding:16px 18px; margin:8px 0 14px; }
.pp-price-band{ display:flex; flex-direction:column; gap:6px; }
.pp-price-zar{ font-family:'Cormorant Garamond',serif; font-size:1.7rem; line-height:1; color:#E8C16A; letter-spacing:.01em; }
.pp-price-conv-row{ display:flex; align-items:center; gap:10px; }
.pp-price-conv{ font-size:.84rem; color:rgba(251,248,238,.72); }
.pp-cur-select{ margin-left:auto; background:rgba(255,255,255,.08); color:#FBF8EE; border:1px solid rgba(232,193,106,.4);
  border-radius:10px; padding:6px 10px; font:600 .7rem/1 'Inter',sans-serif; letter-spacing:.08em; cursor:pointer; }
.pp-cur-select option{ color:#16301F; }
.pp-price-poa{ font-family:'Cormorant Garamond',serif; font-size:1.45rem; color:#E8C16A; }
.pp-price-note{ font:300 .8rem/1.5 'Inter',sans-serif; color:rgba(251,248,238,.66); margin-top:4px; }

/* trust stack */
body.pdp-emerald .pdp-trust{ list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:9px 16px; padding:15px 18px; margin:14px 0; }
body.pdp-emerald .pdp-trust li{ position:relative; padding-left:22px; font:500 .76rem/1.35 'Inter',sans-serif; color:rgba(251,248,238,.92); }
body.pdp-emerald .pdp-trust li::before{ content:""; position:absolute; left:0; top:3px; width:12px; height:12px; transform:rotate(45deg);
  background:linear-gradient(135deg,#E8C16A,#C9A55C); box-shadow:0 0 9px rgba(232,193,106,.5); border-radius:2px; }

/* specs glass table */
body.pdp-emerald .pdp-specs{ padding:16px 18px !important; margin:14px 0 !important; }
body.pdp-emerald .pdp-specs dt{ color:rgba(251,248,238,.55) !important; }
body.pdp-emerald .pdp-specs dd{ color:#FBF8EE !important; border-bottom-color:rgba(255,255,255,.08) !important; }

/* certificate */
body.pdp-emerald .pdp-cert{ padding:20px; margin:16px 0; }
.pdp-cert-top{ display:flex; align-items:center; gap:13px; margin-bottom:12px; }
.pdp-cert-seal{ color:#E8C16A; display:grid; place-items:center; width:42px; height:42px; border-radius:50%;
  background:rgba(232,193,106,.12); border:1px solid rgba(232,193,106,.4); flex:none; }
.pdp-cert-eyebrow{ display:block; font:600 .6rem/1 'Inter',sans-serif; letter-spacing:.34em; text-transform:uppercase; color:#E8C16A; }
.pdp-cert-title{ font-family:'Cormorant Garamond',serif; font-weight:400; font-size:1.4rem; color:#FBF8EE; margin:3px 0 0; }
.pdp-cert-body{ font:300 .88rem/1.6 'Inter',sans-serif; color:rgba(251,248,238,.82); margin:0 0 12px; }
.pdp-cert-body strong{ color:#E8C16A; font-weight:600; }
.pdp-cert-meta{ display:grid; grid-template-columns:auto 1fr; gap:7px 16px; margin:0; }
.pdp-cert-meta dt{ font:600 .64rem/1.4 'Inter',sans-serif; letter-spacing:.1em; text-transform:uppercase; color:rgba(251,248,238,.55); }
.pdp-cert-meta dd{ margin:0; font:500 .85rem/1.4 'Inter',sans-serif; color:#FBF8EE; }

/* description, click to expand with motion */
body.pdp-emerald .pdp-detail{ padding:0 !important; margin:14px 0 !important; overflow:hidden; }
body.pdp-emerald .pdp-detail summary{ cursor:pointer; padding:16px 18px; display:flex; align-items:center; justify-content:space-between;
  color:#FBF8EE; font:500 .9rem/1 'Inter',sans-serif; letter-spacing:.02em; list-style:none; }
body.pdp-emerald .pdp-detail summary::-webkit-details-marker{ display:none; }
body.pdp-emerald .pdp-detail summary svg{ color:#E8C16A; transition:transform .35s ease; }
body.pdp-emerald .pdp-detail[open] summary svg{ transform:rotate(180deg); }
body.pdp-emerald .pdp-desc{ padding:0 18px 18px !important; color:rgba(251,248,238,.84) !important; font:300 .92rem/1.7 'Inter',sans-serif !important;
  animation:pdpExpand .42s ease; }
@keyframes pdpExpand{ from{opacity:0; transform:translateY(-7px);} to{opacity:1; transform:none;} }

/* glass buttons */
body.pdp-emerald .pdp-cta-primary{ background:linear-gradient(135deg, rgba(232,193,106,.97), rgba(201,165,92,.97)) !important; color:#163024 !important;
  border:1px solid rgba(232,193,106,.6) !important; box-shadow:0 16px 36px -14px rgba(232,193,106,.55) !important; transition:transform .3s ease, box-shadow .3s ease !important; }
body.pdp-emerald .pdp-cta-primary:hover{ transform:translateY(-2px); box-shadow:0 22px 46px -14px rgba(232,193,106,.7) !important; }
body.pdp-emerald .pdp-cta-mini{ background:rgba(255,255,255,.07) !important; color:#FBF8EE !important; border:1px solid rgba(255,255,255,.16) !important; transition:all .3s ease !important; }
body.pdp-emerald .pdp-cta-mini:hover{ background:rgba(232,193,106,.16) !important; border-color:rgba(232,193,106,.5) !important; transform:translateY(-1px); }

/* provenance */
body.pdp-emerald .pdp-prov{ margin:46px 0; padding:0 22px; }
.pdp-prov-inner{ max-width:760px; margin:0 auto; text-align:center; padding:42px 28px;
  background:rgba(255,255,255,.05); backdrop-filter:blur(16px); border:1px solid rgba(232,193,106,.22); border-radius:22px; }
.pdp-prov-eyebrow{ font:600 .62rem/1 'Inter',sans-serif; letter-spacing:.42em; text-transform:uppercase; color:#E8C16A; }
.pdp-prov-h{ font-family:'Cormorant Garamond',serif; font-weight:400; font-size:clamp(1.7rem,3.6vw,2.5rem); color:#FBF8EE; margin:14px 0 14px; line-height:1.1; }
.pdp-prov-body{ font:300 .98rem/1.75 'Inter',sans-serif; color:rgba(251,248,238,.82); margin:0 auto 24px; max-width:560px; }
.pdp-prov-cta{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.pdp-prov-btn{ padding:13px 24px; border-radius:30px; font:600 .66rem/1 'Inter',sans-serif; letter-spacing:.2em; text-transform:uppercase;
  background:linear-gradient(135deg,#E8C16A,#C9A55C); color:#163024; transition:transform .3s ease; }
.pdp-prov-btn-ghost{ background:rgba(255,255,255,.06); color:#FBF8EE; border:1px solid rgba(255,255,255,.22); }
.pdp-prov-btn:hover{ transform:translateY(-2px); }

/* reviews */
body.pdp-emerald .pdp-reviews{ margin:46px 0; }
.pdp-reviews-inner{ max-width:1120px; margin:0 auto; padding:0 22px; text-align:center; }
.pdp-reviews-eyebrow{ font:600 .62rem/1 'Inter',sans-serif; letter-spacing:.42em; text-transform:uppercase; color:#E8C16A; }
.pdp-reviews-h{ font-family:'Cormorant Garamond',serif; font-weight:400; font-size:clamp(1.7rem,3.6vw,2.5rem); color:#FBF8EE; margin:14px 0 22px; }
.pdp-reviews-badges{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-bottom:28px; }
.pdp-rev-badge{ display:flex; align-items:center; gap:13px; padding:13px 22px; border-radius:16px; background:rgba(255,255,255,.06);
  backdrop-filter:blur(12px); border:1px solid rgba(255,255,255,.14); color:#FBF8EE; transition:transform .3s ease, border-color .3s ease; }
.pdp-rev-badge:hover{ transform:translateY(-2px); border-color:rgba(232,193,106,.45); }
.pdp-rev-logo{ width:36px; height:36px; border-radius:50%; display:grid; place-items:center; font:700 1.05rem/1 'Inter',sans-serif; flex:none; }
.pdp-rev-google{ background:#fff; color:#4285F4; }
.pdp-rev-ta{ background:#34E0A1; color:#003B2A; }
.pdp-rev-meta{ display:flex; flex-direction:column; text-align:left; }
.pdp-rev-meta strong{ font:500 1.3rem/1 'Cormorant Garamond',serif; color:#E8C16A; }
.pdp-rev-meta span{ font:400 .7rem/1.3 'Inter',sans-serif; color:rgba(251,248,238,.72); }
.pdp-reviews-track{ display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:16px; margin-bottom:26px; }
.pdp-rev-card{ background:rgba(255,255,255,.05); backdrop-filter:blur(12px); border:1px solid rgba(255,255,255,.12); border-radius:16px; padding:22px; text-align:left; margin:0; }
.pdp-rev-card-stars{ color:#E8C16A; letter-spacing:3px; margin-bottom:10px; font-size:.9rem; }
.pdp-rev-card blockquote{ margin:0 0 14px; font:300 .9rem/1.65 'Inter',sans-serif; color:rgba(251,248,238,.9); }
.pdp-rev-card figcaption{ display:flex; flex-direction:column; gap:2px; }
.pdp-rev-author{ font:600 .82rem/1.2 'Inter',sans-serif; color:#FBF8EE; }
.pdp-rev-src{ font:400 .68rem/1.2 'Inter',sans-serif; color:rgba(251,248,238,.55); }
.pdp-reviews-all{ display:inline-block; color:#E8C16A; font:600 .72rem/1 'Inter',sans-serif; letter-spacing:.16em; text-transform:uppercase;
  border-bottom:1px solid rgba(232,193,106,.5); padding-bottom:4px; }

/* pairings on emerald */
body.pdp-emerald .pdp-pairings-head *{ color:#FBF8EE !important; }
body.pdp-emerald .pdp-pairings-head .pdp-pairings-eyebrow, body.pdp-emerald .pdp-pairings-head [class*="eyebrow"]{ color:#E8C16A !important; }
/* === END MOBILE POLISH: emerald-glass-pdp === */

/* === MOBILE POLISH MANAGED: emerald-pdp-sections === */
/* make the remaining full-width sections cohesive on emerald */
body.pdp-emerald .pp-paytrust, body.pdp-emerald .pdp-quote{ background:transparent !important; }
body.pdp-emerald .pp-paytrust, body.pdp-emerald .pp-paytrust *,
body.pdp-emerald .pdp-quote, body.pdp-emerald .pdp-quote *{ color:#FBF8EE !important; }
body.pdp-emerald .pp-paytrust [class*="eyebrow"], body.pdp-emerald .pdp-quote [class*="cite"],
body.pdp-emerald .pdp-quote cite, body.pdp-emerald .pp-paytrust [class*="title"]{ color:#E8C16A !important; }
/* the gold disc icons in the assurance row keep their gold fill */
body.pdp-emerald .pp-paytrust svg{ color:#E8C16A !important; }
/* process reel: cream text, gold step numbers, image untouched */
body.pdp-emerald .pdp-reel{ background:transparent !important; }
body.pdp-emerald .pdp-reel :not(img):not(svg){ color:#FBF8EE !important; }
body.pdp-emerald .pdp-reel [class*="num"], body.pdp-emerald .pdp-reel [class*="eyebrow"]{ color:#E8C16A !important; }
/* pairings: heading to cream; leave the white product cards (they pop on green) */
body.pdp-emerald .pdp-pairings{ background:transparent !important; }
body.pdp-emerald .pdp-pairings-head :not(img), body.pdp-emerald .pdp-pairings h2{ color:#FBF8EE !important; }
body.pdp-emerald .pdp-pairings-head [class*="eyebrow"]{ color:#E8C16A !important; }
/* the founder-quote opening mark + rule in gold */
body.pdp-emerald .pdp-quote [class*="mark"], body.pdp-emerald .pdp-quote [class*="rule"]{ color:#E8C16A !important; border-color:rgba(232,193,106,.4) !important; }
/* === END MOBILE POLISH: emerald-pdp-sections === */

/* === MOBILE POLISH MANAGED: social-payments === */
/* social proof strip under the product title */
body.pdp-emerald .pdp-social{ display:flex; align-items:center; flex-wrap:wrap; gap:10px 14px; margin:12px 0 6px; padding:11px 15px;
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.13); border-radius:14px; backdrop-filter:blur(10px); }
.pdp-soc{ display:inline-flex; align-items:center; gap:7px; color:#FBF8EE; text-decoration:none; }
.pdp-soc-logo{ width:23px; height:23px; border-radius:50%; display:grid; place-items:center; font:700 .74rem/1 'Inter',sans-serif; flex:none; }
.pdp-soc-g{ background:#fff; color:#4285F4; } .pdp-soc-ta{ background:#34E0A1; color:#003B2A; }
.pdp-soc-num{ font:600 1rem/1 'Cormorant Garamond',serif; color:#E8C16A; }
.pdp-soc-stars{ color:#E8C16A; font-size:.68rem; letter-spacing:1px; }
.pdp-soc-cap{ font:500 .6rem/1 'Inter',sans-serif; letter-spacing:.08em; color:rgba(251,248,238,.7); text-transform:uppercase; }
.pdp-soc-div{ width:1px; height:22px; background:rgba(232,193,106,.3); }
.pdp-soc-plaicon{ width:25px; height:25px; border-radius:50%; border:1px solid rgba(232,193,106,.55); display:grid; place-items:center;
  font:700 .58rem/1 'Inter',sans-serif; color:#E8C16A; flex:none; }
.pdp-soc-pla .pdp-soc-cap{ color:#E8C16A; }

/* animated payments ticker (gold on emerald, matches the credentials marquee) */
body.pdp-emerald .pdp-payments{ position:relative; overflow:hidden; margin:0; padding:13px 0;
  border-top:1px solid rgba(232,193,106,.3); border-bottom:1px solid rgba(232,193,106,.3);
  background:linear-gradient(180deg, rgba(232,193,106,.06), rgba(232,193,106,.02)); }
body.pdp-emerald .pdp-payments::before, body.pdp-emerald .pdp-payments::after{ content:""; position:absolute; top:0; bottom:0; width:90px; z-index:2; pointer-events:none; }
body.pdp-emerald .pdp-payments::before{ left:0; background:linear-gradient(90deg, #18331F, transparent); }
body.pdp-emerald .pdp-payments::after{ right:0; background:linear-gradient(270deg, #18331F, transparent); }
.pdp-pay-track{ display:flex; align-items:center; width:max-content; animation:marquee 46s linear infinite; will-change:transform; }
.pdp-pay-item{ font-family:'Cormorant Garamond',serif; font-size:1.2rem; letter-spacing:.015em; color:#E8C16A; white-space:nowrap; padding:0 30px; }
.pdp-pay-sep{ width:5px; height:5px; transform:rotate(45deg); background:rgba(232,193,106,.55); flex:none; }
body.pdp-emerald .pdp-payments:hover .pdp-pay-track{ animation-play-state:paused; }
@media (prefers-reduced-motion:reduce){ .pdp-pay-track{ animation:none; flex-wrap:wrap; justify-content:center; row-gap:8px; } }
@media (max-width:600px){ .pdp-pay-item{ font-size:1.05rem; padding:0 20px; } body.pdp-emerald .pdp-social{ gap:8px 10px; } .pdp-soc-cap{ font-size:.55rem; } }
/* === END MOBILE POLISH: social-payments === */

/* === MOBILE POLISH MANAGED: pdp-polish-final === */
/* ===== COSMOS: fixed, behind everything; stars under every green area, no gap ===== */
body.pdp-emerald .pdp-cosmos-layer{ position:fixed; inset:0; z-index:-1; pointer-events:none; }
body.pdp-emerald .pdp-cosmos-layer canvas{ display:block; width:100%; height:100%; }
body.pdp-emerald .pdp-visit{ background:transparent !important; }
body.pdp-emerald .pdp-payments{ margin:46px 0 0 0 !important; }

/* ===== text standout ===== */
body.pdp-emerald .pdp-crumb, body.pdp-emerald .pdp-crumb a, body.pdp-emerald .pdp-crumb span{ color:rgba(251,248,238,.74) !important; }
body.pdp-emerald .pdp-crumb #pdpCrumbName{ color:#E8C16A !important; }
body.pdp-emerald .pdp-name{ text-shadow:0 2px 30px rgba(0,0,0,.5), 0 1px 2px rgba(0,0,0,.3); }
body.pdp-emerald .pdp-kicker{ text-shadow:0 1px 12px rgba(0,0,0,.45); }
body.pdp-emerald .pdp-strap{ color:rgba(251,248,238,.9) !important; text-shadow:0 1px 10px rgba(0,0,0,.4); }
body.pdp-emerald .pdp-prov-h, body.pdp-emerald .pdp-reviews-h{ text-shadow:0 2px 26px rgba(0,0,0,.45); }
body.pdp-emerald .pdp-quote, body.pdp-emerald .pdp-quote *{ text-shadow:0 1px 16px rgba(0,0,0,.4); }

/* ===== glossy glass cards ===== */
body.pdp-emerald .pdp-price, body.pdp-emerald .pdp-cert, body.pdp-emerald .pdp-specs,
body.pdp-emerald .pdp-detail, body.pdp-emerald .pdp-trust, body.pdp-emerald .pdp-social{
  position:relative; overflow:hidden;
  background:linear-gradient(157deg, rgba(255,255,255,.12), rgba(255,255,255,.045) 55%, rgba(255,255,255,.02)) !important;
  border:1px solid rgba(255,255,255,.18) !important;
  box-shadow:0 26px 64px -32px rgba(0,0,0,.72), inset 0 1px 0 rgba(255,255,255,.3), inset 0 0 50px rgba(255,255,255,.03) !important; }
body.pdp-emerald .pdp-price::before, body.pdp-emerald .pdp-cert::before, body.pdp-emerald .pdp-specs::before,
body.pdp-emerald .pdp-detail::before, body.pdp-emerald .pdp-trust::before, body.pdp-emerald .pdp-social::before{
  content:""; position:absolute; top:0; left:0; right:0; height:48%; pointer-events:none; z-index:0;
  background:linear-gradient(180deg, rgba(255,255,255,.11), transparent); }
body.pdp-emerald .pdp-price > *, body.pdp-emerald .pdp-cert > *, body.pdp-emerald .pdp-trust > *,
body.pdp-emerald .pdp-social > *, body.pdp-emerald .pdp-detail > *{ position:relative; z-index:1; }

/* ===== price tier guide ===== */
.pp-price-guide{ display:flex; flex-direction:column; gap:13px; }
.pp-pg-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.pp-pg-label{ font:600 .62rem/1 'Inter',sans-serif; letter-spacing:.26em; text-transform:uppercase; color:#E8C16A; }
.pp-pg-scale{ display:flex; gap:7px; flex-wrap:wrap; }
.pp-pg-tier{ padding:8px 13px; border-radius:999px; font:500 .76rem/1 'Inter',sans-serif; color:rgba(251,248,238,.84);
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); white-space:nowrap; transition:transform .3s, background .3s, color .3s; }
.pp-pg-tier.is-active{ color:#16301F; background:linear-gradient(135deg,#F0D087,#C9A55C); border-color:#E8C16A; font-weight:600;
  box-shadow:0 8px 22px -8px rgba(232,193,106,.65); transform:translateY(-1px); }
.pp-pg-note{ margin:0; font:300 .8rem/1.5 'Inter',sans-serif; color:rgba(251,248,238,.68); }
.pp-cur-select{ background:rgba(255,255,255,.09); color:#FBF8EE; border:1px solid rgba(232,193,106,.45);
  border-radius:10px; padding:6px 11px; font:600 .7rem/1 'Inter',sans-serif; letter-spacing:.08em; cursor:pointer; }
.pp-cur-select option{ color:#16301F; }

/* ===== reserve button, refined gold + sheen + lift ===== */
body.pdp-emerald .pdp-cta-primary{ position:relative; overflow:hidden; border-radius:14px !important;
  background:linear-gradient(135deg,#F2D58E 0%, #E8C16A 45%, #C9A55C 100%) !important; color:#15281C !important;
  border:1px solid rgba(245,222,150,.7) !important; font-weight:600 !important;
  box-shadow:0 16px 40px -16px rgba(232,193,106,.6), inset 0 1px 0 rgba(255,255,255,.55) !important;
  transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s !important; }
body.pdp-emerald .pdp-cta-primary::after{ content:""; position:absolute; top:0; bottom:0; left:-70%; width:42%; pointer-events:none;
  background:linear-gradient(120deg, transparent, rgba(255,255,255,.7), transparent); transform:skewX(-20deg); animation:ctaSheen 5.5s ease-in-out infinite; }
@keyframes ctaSheen{ 0%{ left:-70%; } 60%,100%{ left:135%; } }
body.pdp-emerald .pdp-cta-primary:hover{ transform:translateY(-3px); box-shadow:0 26px 56px -16px rgba(232,193,106,.8), inset 0 1px 0 rgba(255,255,255,.65) !important; }
body.pdp-emerald .pdp-cta-primary > *{ position:relative; z-index:1; }

/* ===== assurance row, readable glass cells ===== */
body.pdp-emerald .pp-paytrust{ padding:36px 20px !important; background:transparent !important; }
body.pdp-emerald .pp-paytrust-inner{ background:transparent !important; max-width:1140px; margin:0 auto; }
body.pdp-emerald .pp-paytrust-shine{ display:none !important; }
body.pdp-emerald .pp-paytrust-row{ display:grid !important; grid-template-columns:repeat(4,1fr) !important; gap:16px !important; }
body.pdp-emerald .pp-paytrust-cell{ background:linear-gradient(160deg, rgba(255,255,255,.11), rgba(255,255,255,.035)) !important;
  border:1px solid rgba(255,255,255,.16) !important; border-radius:18px !important; padding:26px 18px !important; text-align:center;
  backdrop-filter:blur(14px); display:flex; flex-direction:column; align-items:center; gap:11px;
  transition:transform .4s, border-color .4s, box-shadow .4s;
  box-shadow:0 22px 54px -28px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.26) !important; }
body.pdp-emerald .pp-paytrust-cell:hover{ transform:translateY(-6px); border-color:rgba(232,193,106,.5);
  box-shadow:0 30px 66px -28px rgba(0,0,0,.72), inset 0 1px 0 rgba(255,255,255,.34) !important; }
body.pdp-emerald .pp-paytrust-ic{ width:54px !important; height:54px !important; border-radius:50% !important; display:grid !important; place-items:center !important;
  color:#15281C !important; background:radial-gradient(circle at 35% 30%, #F2D58E, #C9A55C) !important;
  box-shadow:0 10px 24px -8px rgba(232,193,106,.7) !important; }
body.pdp-emerald .pp-paytrust-ic svg{ width:23px !important; height:23px !important; stroke:#15281C !important; }
body.pdp-emerald .pp-paytrust-t{ color:#FBF8EE !important; font-family:'Cormorant Garamond',serif !important; font-size:1.25rem !important; font-weight:500 !important; }
body.pdp-emerald .pp-paytrust-s{ color:rgba(251,248,238,.84) !important; font:300 .83rem/1.55 'Inter',sans-serif !important; }

/* ===== smaller product image ===== */
@media(min-width:980px){ body.pdp-emerald .pdp-gallery{ max-width:540px; } }

/* ===== scroll-reveal motion ===== */
.pp-reveal{ opacity:0; transform:translateY(26px); transition:opacity .85s cubic-bezier(.2,.7,.2,1), transform .85s cubic-bezier(.2,.7,.2,1); }
.pp-reveal.pp-in{ opacity:1; transform:none; }

/* mobile */
@media(max-width:600px){ body.pdp-emerald .pp-paytrust-row{ grid-template-columns:1fr 1fr !important; } .pp-pg-tier{ font-size:.7rem; padding:7px 10px; } }
/* === END MOBILE POLISH: pdp-polish-final === */

/* === MOBILE POLISH MANAGED: price-orbs === */
.pp-price-orb-wrap{ display:flex; flex-direction:column; gap:15px; }
.pp-orbs{ display:flex; align-items:center; justify-content:space-between; gap:6px; position:relative; padding:6px 0; }
.pp-orbs::before{ content:""; position:absolute; left:7%; right:7%; top:50%; height:1px; transform:translateY(-50%);
  background:linear-gradient(90deg, rgba(232,193,106,.12), rgba(232,193,106,.5), rgba(232,193,106,.12)); z-index:0; }
.pp-orb{ position:relative; z-index:1; width:60px; height:60px; flex:none; border-radius:50%; display:grid; place-items:center; text-align:center;
  background:rgba(18,38,26,.72); border:1px solid rgba(232,193,106,.35); color:rgba(251,248,238,.74);
  font:600 .72rem/1.05 'Inter',sans-serif; transition:all .45s cubic-bezier(.2,.8,.2,1); backdrop-filter:blur(6px); }
.pp-orb.is-active{ width:80px; height:80px; color:#15281C; font-size:.88rem; font-weight:700;
  background:radial-gradient(circle at 35% 30%, #F6E0A6, #E8C16A 55%, #C9A55C);
  border-color:#F2D58E; box-shadow:0 0 0 5px rgba(232,193,106,.16), 0 16px 38px -10px rgba(232,193,106,.72); }
.pp-orb-val{ display:block; padding:0 4px; }
.pp-orb-selected{ display:flex; flex-direction:column; gap:3px; margin-top:2px; }
.pp-orb-sel-cap{ font:600 .56rem/1 'Inter',sans-serif; letter-spacing:.26em; text-transform:uppercase; color:rgba(251,248,238,.6); }
.pp-orb-sel-val{ font:500 1.6rem/1.1 'Cormorant Garamond',serif; color:#E8C16A; }
@media(max-width:600px){ .pp-orb{ width:50px; height:50px; font-size:.64rem; } .pp-orb.is-active{ width:64px; height:64px; font-size:.74rem; } }
/* === END MOBILE POLISH: price-orbs === */

/* === MOBILE POLISH MANAGED: pdp-shine-v3 === */
/* ===== SOCIAL PROOF STRIP: gold shine + motion ===== */
body.pdp-emerald .pdp-social{ position:relative; overflow:hidden;
  background:linear-gradient(135deg, rgba(232,193,106,.16), rgba(255,255,255,.04)) !important;
  border:1px solid rgba(232,193,106,.42) !important; border-radius:16px !important;
  box-shadow:0 18px 44px -24px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.22) !important; }
body.pdp-emerald .pdp-social::after{ content:""; position:absolute; top:0; bottom:0; left:-60%; width:42%; pointer-events:none;
  background:linear-gradient(120deg, transparent, rgba(246,226,166,.4), transparent); transform:skewX(-20deg); animation:socSheen 6s ease-in-out infinite; }
@keyframes socSheen{ 0%{ left:-60%; } 58%,100%{ left:135%; } }
body.pdp-emerald .pdp-soc{ position:relative; z-index:1; transition:transform .3s; }
body.pdp-emerald .pdp-soc:hover{ transform:translateY(-1px); }
body.pdp-emerald .pdp-soc-num{ color:#F6E2A6 !important; font-weight:700 !important; text-shadow:0 0 14px rgba(232,193,106,.6) !important; }
body.pdp-emerald .pdp-soc-stars{ color:#E8C16A !important; text-shadow:0 0 12px rgba(232,193,106,.6) !important; animation:socStar 3.2s ease-in-out infinite; }
@keyframes socStar{ 0%,100%{ opacity:.82; } 50%{ opacity:1; text-shadow:0 0 20px rgba(232,193,106,.9); } }
body.pdp-emerald .pdp-soc-cap{ color:rgba(251,248,238,.86) !important; }
body.pdp-emerald .pdp-soc-div{ background:rgba(232,193,106,.32) !important; }
body.pdp-emerald .pdp-soc-plaicon{ background:radial-gradient(circle at 35% 30%, #F6E2A6, #C9A55C) !important; color:#15281C !important; font-weight:700 !important;
  box-shadow:0 0 16px rgba(232,193,106,.55) !important; animation:plaPulse 3.6s ease-in-out infinite; }
@keyframes plaPulse{ 0%,100%{ box-shadow:0 0 12px rgba(232,193,106,.4); } 50%{ box-shadow:0 0 22px rgba(232,193,106,.8); } }
body.pdp-emerald .pdp-soc-pla .pdp-soc-cap{ color:#F0D58E !important; }

/* ===== SPEC TABLE: elegant gold/white shine ===== */
body.pdp-emerald .pdp-specs{ display:grid; grid-template-columns:auto 1fr; padding:6px 24px 10px; }
body.pdp-emerald .pdp-specs dt{ align-self:center; padding:15px 30px 15px 0; white-space:nowrap;
  font:600 .62rem/1 'Inter',sans-serif; letter-spacing:.26em; text-transform:uppercase;
  color:#E8C16A !important; text-shadow:0 0 14px rgba(232,193,106,.5); border-bottom:1px solid rgba(255,255,255,.08); }
body.pdp-emerald .pdp-specs dd{ align-self:center; margin:0; padding:15px 0;
  font:500 1.12rem/1.3 'Cormorant Garamond',serif; color:#FFFFFF !important;
  text-shadow:0 1px 10px rgba(0,0,0,.4), 0 0 18px rgba(255,255,255,.18); border-bottom:1px solid rgba(255,255,255,.08); }
body.pdp-emerald .pdp-specs dt:last-of-type, body.pdp-emerald .pdp-specs dd:last-of-type{ border-bottom:0; }

/* ===== CERT META: matching shine ===== */
body.pdp-emerald .pdp-cert-meta dt{ color:#E8C16A !important; text-shadow:0 0 12px rgba(232,193,106,.45); }
body.pdp-emerald .pdp-cert-meta dd{ color:#FFFFFF !important; text-shadow:0 0 14px rgba(255,255,255,.16); }
body.pdp-emerald .pdp-cert-title{ color:#FBF8EE !important; text-shadow:0 0 18px rgba(232,193,106,.3); }

/* ===== REF NUMBER: gold shine ===== */
body.pdp-emerald .pdp-ref{ color:#E8C16A !important; font-weight:600 !important; letter-spacing:.22em !important;
  text-shadow:0 0 16px rgba(232,193,106,.55) !important; }

/* ===== TRUSTLINE: white flash shimmer ===== */
body.pdp-emerald .pdp-trustline{ font-weight:600 !important; letter-spacing:.14em !important;
  background:linear-gradient(100deg, rgba(251,248,238,.55) 0%, #FFFFFF 46%, rgba(251,248,238,.55) 60%);
  background-size:240% 100%; -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent !important;
  animation:trustFlash 5.5s linear infinite; }
@keyframes trustFlash{ 0%{ background-position:130% 0; } 100%{ background-position:-130% 0; } }
@media (prefers-reduced-motion: reduce){ body.pdp-emerald .pdp-trustline{ animation:none; -webkit-text-fill-color:#FBF8EE; color:#FBF8EE !important; } }

/* ===== RESERVE CTA: solid gold pill ===== */
body.pdp-emerald .pdp-cta-primary{ border-radius:999px !important; padding:18px 32px !important; letter-spacing:.16em !important;
  background:linear-gradient(135deg,#F6E2A6 0%,#E8C16A 45%,#CBA862 100%) !important; color:#15281C !important; font-weight:700 !important;
  border:1px solid rgba(246,226,166,.8) !important;
  box-shadow:0 18px 46px -16px rgba(232,193,106,.72), inset 0 1px 0 rgba(255,255,255,.6) !important; }

/* ===== MINI CTAs: gold pills ===== */
body.pdp-emerald .pdp-cta-row{ display:flex !important; gap:10px !important; flex-wrap:wrap; list-style:none; padding:0 !important; margin:14px 0 0 !important; }
body.pdp-emerald .pdp-cta-row li{ flex:1 1 auto; }
body.pdp-emerald .pdp-cta-mini{ display:flex !important; align-items:center; justify-content:center; gap:8px; width:100%;
  border-radius:999px !important; border:1px solid rgba(232,193,106,.5) !important; background:rgba(232,193,106,.09) !important;
  color:#F0D58E !important; padding:12px 18px !important; font-weight:600 !important; letter-spacing:.1em !important; transition:all .35s !important; }
body.pdp-emerald .pdp-cta-mini svg{ color:#E8C16A !important; transition:color .35s; }
body.pdp-emerald .pdp-cta-mini:hover{ background:linear-gradient(135deg,#F6E2A6,#CBA862) !important; color:#15281C !important; border-color:#F2D58E !important;
  transform:translateY(-2px); box-shadow:0 14px 32px -12px rgba(232,193,106,.7) !important; }
body.pdp-emerald .pdp-cta-mini:hover svg{ color:#15281C !important; }

/* ===== WE ACCEPT: themed glass card marks ===== */
body.pdp-emerald .pp-paytrust-pay{ border-top:1px solid rgba(232,193,106,.22) !important; }
body.pdp-emerald .pp-paytrust-paylabel{ color:#E8C16A !important; }
body.pdp-emerald .pp-paytrust .pay-mark{ height:42px !important; min-width:64px !important; padding:0 15px !important;
  background:#FFFFFF !important; border:1px solid rgba(232,193,106,.55) !important; color:#16301F !important;
  box-shadow:0 10px 24px -14px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.9) !important; transition:all .35s !important; }
body.pdp-emerald .pp-paytrust .pay-mark:hover{ border-color:#E8C16A !important; transform:translateY(-2px); box-shadow:0 0 22px rgba(232,193,106,.4) !important; }
body.pdp-emerald .pp-paytrust .pay-visa{ color:#1434CB !important; }
body.pdp-emerald .pp-paytrust .pay-eft{ color:#16301F !important; }
body.pdp-emerald .pp-paytrust .pay-amex{ background:#2E77BC !important; border-color:#2E77BC !important; color:#fff !important; }
body.pdp-emerald .pp-paytrust .pay-mc svg{ height:24px !important; }

/* ===== FAQ ACCORDION ===== */
.pdp-faq{ padding: clamp(50px,6vw,90px) clamp(20px,4vw,60px); position:relative; }
.pdp-faq-inner{ max-width:880px; margin:0 auto; }
.pdp-faq-eyebrow{ display:block; text-align:center; font:600 .64rem/1 'Inter',sans-serif; letter-spacing:.3em; text-transform:uppercase; color:#E8C16A; text-shadow:0 0 14px rgba(232,193,106,.45); }
.pdp-faq-title{ text-align:center; font:400 clamp(1.9rem,3.4vw,2.7rem)/1.12 'Cormorant Garamond',serif; color:#FBF8EE; margin:12px 0 38px; text-shadow:0 2px 24px rgba(0,0,0,.4); }
.pdp-faq-item{ border:1px solid rgba(255,255,255,.12); border-radius:16px; margin-bottom:14px; overflow:hidden;
  background:linear-gradient(160deg, rgba(255,255,255,.07), rgba(255,255,255,.025)); backdrop-filter:blur(12px); transition:border-color .35s, box-shadow .35s; }
.pdp-faq-item[open]{ border-color:rgba(232,193,106,.42); box-shadow:0 18px 44px -26px rgba(0,0,0,.6); }
.pdp-faq-item summary{ list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:18px; padding:22px 26px; }
.pdp-faq-item summary::-webkit-details-marker{ display:none; }
.pdp-faq-q{ font:500 1.2rem/1.35 'Cormorant Garamond',serif; color:#FBF8EE; }
.pdp-faq-plus{ flex:none; width:32px; height:32px; border-radius:50%; display:grid; place-items:center; border:1px solid rgba(232,193,106,.5); color:#E8C16A; transition:transform .4s cubic-bezier(.2,.8,.2,1), background .35s, color .35s; }
.pdp-faq-plus svg{ width:15px; height:15px; }
.pdp-faq-item[open] .pdp-faq-plus{ transform:rotate(135deg); background:linear-gradient(135deg,#F6E2A6,#CBA862); color:#15281C; }
.pdp-faq-a{ padding:0 26px 24px; font:300 .98rem/1.72 'Inter',sans-serif; color:rgba(251,248,238,.84); }
.pdp-faq-item[open] .pdp-faq-a{ animation:faqIn .5s ease both; }
@keyframes faqIn{ from{ opacity:0; transform:translateY(-6px); } to{ opacity:1; transform:none; } }
/* === END MOBILE POLISH: pdp-shine-v3 === */

/* === MOBILE POLISH MANAGED: pdp-desc-ticker === */
/* ===== PAYMENTS TICKER: dark emerald band, glowing white text ===== */
body.pdp-emerald .pdp-payments{
  background:linear-gradient(180deg, rgba(12,28,18,.9), rgba(16,34,22,.9)) !important;
  border-top:1px solid rgba(232,193,106,.32) !important; border-bottom:1px solid rgba(232,193,106,.32) !important;
  box-shadow:0 10px 26px -16px rgba(0,0,0,.55) !important; }
body.pdp-emerald .pdp-payments::before{ background:linear-gradient(90deg, #102a1b, transparent) !important; }
body.pdp-emerald .pdp-payments::after{ background:linear-gradient(270deg, #102a1b, transparent) !important; }
body.pdp-emerald .pdp-pay-item{ color:#FFFFFF !important; font-weight:500 !important;
  text-shadow:0 0 12px rgba(255,255,255,.5), 0 0 6px rgba(255,255,255,.35) !important; }
body.pdp-emerald .pdp-pay-sep{ background:rgba(255,255,255,.85) !important; box-shadow:0 0 7px rgba(255,255,255,.55) !important; }

/* ===== PRODUCT DESCRIPTION: visible, labelled, open ===== */
body.pdp-emerald .pdp-detail summary{ list-style:none; cursor:pointer; display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:4px 2px 12px; }
body.pdp-emerald .pdp-detail summary::-webkit-details-marker{ display:none; }
.pdp-detail-sum{ display:flex; flex-direction:column; gap:4px; }
.pdp-detail-eyebrow{ font:600 .6rem/1 'Inter',sans-serif; letter-spacing:.28em; text-transform:uppercase; color:#E8C16A; text-shadow:0 0 12px rgba(232,193,106,.5); }
.pdp-detail-label{ font:500 1.18rem/1.2 'Cormorant Garamond',serif; color:#FBF8EE; }
.pdp-detail-chev{ color:#E8C16A; transition:transform .35s; flex:none; margin-top:6px; }
body.pdp-emerald .pdp-detail[open] .pdp-detail-chev{ transform:rotate(180deg); }
body.pdp-emerald .pdp-detail[open] summary{ border-bottom:1px solid rgba(232,193,106,.22); margin-bottom:15px; }
body.pdp-emerald .pdp-desc, body.pdp-emerald .pdp-desc p{ color:rgba(251,248,238,.9) !important; font:300 1rem/1.78 'Inter',sans-serif !important; }
body.pdp-emerald .pdp-desc p{ margin:0 0 12px; }
body.pdp-emerald .pdp-desc p:last-child{ margin-bottom:0; }
/* === END MOBILE POLISH: pdp-desc-ticker === */

/* === MOBILE POLISH MANAGED: pdp-extras-v4 === */
/* ===== gap before assurance row ===== */
body.pdp-emerald .pdp-hero{ padding-bottom:46px !important; }

/* ===== social proof strip on ONE row ===== */
body.pdp-emerald .pdp-social{ flex-wrap:nowrap !important; gap:9px !important; padding:13px 15px !important; }
body.pdp-emerald .pdp-soc{ flex:0 0 auto !important; gap:6px !important; }
body.pdp-emerald .pdp-soc-cap{ font-size:.5rem !important; letter-spacing:.09em !important; white-space:nowrap; }
body.pdp-emerald .pdp-soc-stars{ font-size:.64rem !important; letter-spacing:0 !important; }
body.pdp-emerald .pdp-soc-num{ font-size:.84rem !important; }
body.pdp-emerald .pdp-soc-logo{ width:19px !important; height:19px !important; font-size:.64rem !important; }
body.pdp-emerald .pdp-soc-plaicon{ font-size:.55rem !important; }
body.pdp-emerald .pdp-soc-div{ margin:0 1px !important; }

/* ===== description teaser + view more ===== */
.pdp-detail{ margin-top:4px; }
.pdp-detail-eyebrow{ display:block !important; margin-bottom:9px; font:600 .6rem/1 'Inter',sans-serif; letter-spacing:.28em; text-transform:uppercase; color:#E8C16A; text-shadow:0 0 12px rgba(232,193,106,.5); }
body.pdp-emerald .pdp-desc{ color:rgba(251,248,238,.9) !important; font:300 1rem/1.78 'Inter',sans-serif !important; margin:0; }
.pdp-desc-more{ margin-top:11px; background:none; border:0; cursor:pointer; padding:0 0 3px; font:600 .66rem/1 'Inter',sans-serif; letter-spacing:.16em; text-transform:uppercase; color:#E8C16A; border-bottom:1px solid rgba(232,193,106,.5); transition:color .3s, border-color .3s; }
.pdp-desc-more:hover{ color:#F6E2A6; border-color:#F6E2A6; }

/* === END MOBILE POLISH: pdp-extras-v4 === */

/* === MOBILE POLISH MANAGED: pdp-desc-cardfix === */
/* description glass card: proper inner padding so eyebrow + text + view more sit inside */
body.pdp-emerald .pdp-detail{ padding:22px 26px !important; margin-top:10px !important; }
body.pdp-emerald .pdp-detail .pdp-detail-eyebrow{ margin-bottom:11px; }
body.pdp-emerald .pdp-desc-more{ margin-left:0; }
/* === END MOBILE POLISH: pdp-desc-cardfix === */

/* === MOBILE POLISH MANAGED: pdp-overhaul-v5 === */
/* ===== HERO bokeh background (fades into emerald + cosmos) ===== */
body.pdp-emerald .pdp-hero{ background:transparent; }
body.pdp-emerald main{ position:relative; }
body.pdp-emerald main::before{
  content:""; position:absolute; top:0; left:0; right:0; height:980px; z-index:0; pointer-events:none;
  background:
    linear-gradient(180deg, rgba(16,32,21,.30) 0%, rgba(16,32,21,.10) 40%, transparent 72%),
    url('../assets/images/pdp-hero-bg.webp') center top / cover no-repeat;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 58%,transparent 100%);
  mask-image:linear-gradient(180deg,#000 0%,#000 58%,transparent 100%);
}
body.pdp-emerald main > *{ position:relative; z-index:1; }
@media (max-width:980px){ body.pdp-emerald main::before{ height:560px; } }

/* ===== sticky gallery fills the empty left column ===== */
@media (min-width:981px){
  body.pdp-emerald .pdp-gallery{ position:sticky; top:128px; align-self:start; }
}

/* ===== SPEC view-more ===== */
.pdp-spec-hidden{ display:none !important; }
.pdp-specs.pdp-specs-expanded .pdp-spec-hidden{ display:block !important; }
.pdp-specs-more, .pdp-reviews-more{ margin-top:16px; background:none; border:1px solid rgba(232,193,106,.5); border-radius:999px; cursor:pointer;
  padding:10px 24px; font:600 .64rem/1 'Inter',sans-serif; letter-spacing:.18em; text-transform:uppercase; color:#E8C16A; transition:all .3s; }
.pdp-specs-more:hover, .pdp-reviews-more:hover{ background:rgba(232,193,106,.12); color:#F6E2A6; border-color:#F6E2A6; transform:translateY(-1px); }

/* ===== REVIEWS view-more (2 rows then expand) ===== */
.pdp-rev-hidden{ display:none; }
.pdp-reviews-track.pdp-reviews-expanded .pdp-rev-hidden{ display:block; }
.pdp-reviews-morewrap{ text-align:center; margin-bottom:24px; }

/* ===== REEL imagery + tighter ===== */
.pdp-reel-media{ aspect-ratio:4/3; border-radius:14px; overflow:hidden; }
.pdp-reel-media img{ width:100%; height:100%; object-fit:cover; }
body.pdp-emerald .pdp-reel{ padding-top:clamp(34px,4.5vw,56px) !important; padding-bottom:clamp(34px,4.5vw,56px) !important; }

/* ===== compact section rhythm ===== */
body.pdp-emerald .pp-paytrust{ padding-top:clamp(34px,4.5vw,52px) !important; padding-bottom:clamp(34px,4.5vw,52px) !important; }
body.pdp-emerald .pdp-prov{ padding-top:clamp(36px,5vw,60px) !important; padding-bottom:clamp(36px,5vw,60px) !important; }
body.pdp-emerald .pdp-reviews{ padding-top:clamp(36px,5vw,60px) !important; padding-bottom:clamp(36px,5vw,60px) !important; }
body.pdp-emerald .pdp-faq{ padding-top:clamp(40px,5vw,68px) !important; padding-bottom:clamp(40px,5vw,68px) !important; }

/* ===== mobile compaction ===== */
@media (max-width:980px){
  body.pdp-emerald .pdp-gallery{ position:static !important; }
  body.pdp-emerald .pdp-hero{ background-size:cover, cover; padding-bottom:34px !important; }
  body.pdp-emerald .pdp-reel-grid{ grid-template-columns:repeat(2,1fr) !important; gap:12px !important; }
  body.pdp-emerald .pp-paytrust-row{ gap:12px !important; }
  .pdp-reviews-track{ grid-template-columns:1fr !important; }
}
@media (max-width:540px){
  body.pdp-emerald .pdp-reel-grid{ grid-template-columns:1fr 1fr !important; }
}
/* === END MOBILE POLISH: pdp-overhaul-v5 === */


/* ==========================================================================
   PDP four-step reel — refined gold edition (2026-06-08)
   centered layout · gold headlines · italic centered copy · floating gold
   frames · gentle continuous motion. Scoped to win over earlier emerald rules.
   ========================================================================== */
body.pdp-emerald .pdp-reel .pdp-reel-grid{ gap: clamp(34px,3.6vw,60px); align-items: start; }

body.pdp-emerald .pdp-reel .pdp-reel-card{
  background: transparent !important;
  border: 0 !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  text-align: center;
  align-items: center;
  padding: 6px 6px 4px;
  transition: transform .55s cubic-bezier(.2,.7,.2,1), opacity .85s cubic-bezier(.2,.7,.2,1);
}
body.pdp-emerald .pdp-reel .pdp-reel-card:hover{ transform: translateY(-8px); }

/* numeral — centered above each image, real gold */
body.pdp-emerald .pdp-reel .pdp-reel-num{
  position: static;
  order: -1;
  transform: none;
  margin: 0 0 20px;
  font-family: var(--pdp-serif);
  font-style: italic;
  font-weight: 300;
  line-height: 1;
  font-size: clamp(2.2rem,3vw,3rem);
  color: #E8C16A !important;
  text-shadow: 0 2px 16px rgba(0,0,0,.4);
}

/* image + floating gold frame */
body.pdp-emerald .pdp-reel .pdp-reel-media{
  aspect-ratio: 4 / 3 !important;
  border-radius: 3px !important;
  overflow: visible !important;
  background: transparent !important;
  margin: 0 0 28px;
  position: relative;
  isolation: isolate;
  animation: pdpFrameFloat 7s ease-in-out infinite;
}
body.pdp-emerald .pdp-reel .pdp-reel-media img{
  border-radius: 3px;
  position: relative;
  z-index: 1;
  box-shadow: 0 18px 40px -18px rgba(0,0,0,.55);
}
/* outer floating gold frame */
body.pdp-emerald .pdp-reel .pdp-reel-media::after{
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid rgba(232,193,106,.78);
  border-radius: 3px;
  z-index: 3;
  pointer-events: none;
  transition: border-color .5s ease, box-shadow .5s ease;
}
@keyframes pdpFrameFloat{ 0%,100%{ transform: translateY(0); } 50%{ transform: translateY(-6px); } }
body.pdp-emerald .pdp-reel .pdp-reel-card:nth-child(1) .pdp-reel-media{ animation-delay: 0s; }
body.pdp-emerald .pdp-reel .pdp-reel-card:nth-child(2) .pdp-reel-media{ animation-delay: .9s; }
body.pdp-emerald .pdp-reel .pdp-reel-card:nth-child(3) .pdp-reel-media{ animation-delay: 1.8s; }
body.pdp-emerald .pdp-reel .pdp-reel-card:nth-child(4) .pdp-reel-media{ animation-delay: 2.7s; }
/* hover: open + warm the frame, deepen the image */
body.pdp-emerald .pdp-reel .pdp-reel-card:hover .pdp-reel-media::after{
  border-color: rgba(232,193,106,1);
  box-shadow: 0 0 18px -2px rgba(232,193,106,.55);
}
body.pdp-emerald .pdp-reel .pdp-reel-card:hover .pdp-reel-media img{ transform: scale(1.05); }

/* heading — gold, centered, with hairline rule */
body.pdp-emerald .pdp-reel .pdp-reel-h{
  color: #E8C16A !important;
  background: linear-gradient(180deg,#F3D78B 0%,#E8C16A 48%,#C9A55C 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-family: var(--pdp-serif);
  font-weight: 500;
  font-size: clamp(1.3rem,1.7vw,1.55rem);
  letter-spacing: .01em;
  text-align: center;
  margin: 0 0 12px;
}
body.pdp-emerald .pdp-reel .pdp-reel-h::after{
  content: "";
  display: block;
  width: 34px; height: 1px;
  margin: 12px auto 0;
  background: linear-gradient(90deg, transparent, rgba(232,193,106,.85), transparent);
}
/* body copy — italic, centered, kept off the edges */
body.pdp-emerald .pdp-reel .pdp-reel-p{
  color: #FBF8EE !important;
  font-family: var(--pdp-serif) !important;
  font-style: italic;
  font-size: 1.02rem !important;
  line-height: 1.6;
  text-align: center;
  max-width: 30ch;
  margin: 0 auto;
  padding: 0 12px;
  opacity: .92;
}
@media (prefers-reduced-motion: reduce){
  body.pdp-emerald .pdp-reel .pdp-reel-media{ animation: none; }
  body.pdp-emerald .pdp-reel .pdp-reel-card:hover{ transform: none; }
}
@media (max-width:540px){
  body.pdp-emerald .pdp-reel .pdp-reel-media{ margin-bottom: 26px; }
  body.pdp-emerald .pdp-reel .pdp-reel-num{ margin-bottom: 16px; }
}

/* === MOBILE POLISH MANAGED: pdp-nav-dropdown === */
/* product-page nav dropdown: deep-emerald panel, gold links by default */
body.page-product .nav-dd-menu{
  background: rgba(16,32,21,0.98) !important;
  border: 1px solid rgba(232,193,106,0.42) !important;
  box-shadow: 0 22px 50px -20px rgba(0,0,0,0.6) !important;
}
body.page-product .nav .nav-links li.nav-dd .nav-dd-menu a,
body.page-product .nav.scrolled .nav-links li.nav-dd .nav-dd-menu a{
  color: #E8C16A !important;
  font-weight: 500 !important;
  opacity: 1 !important;
}
body.page-product .nav .nav-links li.nav-dd .nav-dd-menu a:hover,
body.page-product .nav.scrolled .nav-links li.nav-dd .nav-dd-menu a:hover{
  color: #F6E2A6 !important;
  background: rgba(232,193,106,0.12) !important;
}
/* === END MOBILE POLISH: pdp-nav-dropdown === */


/* ---- certification card regrouped under the certificate preview (2026-06-08) ---- */
body.pdp-emerald .pdp-gallery .pdp-cert{
  grid-column: 1 / -1;
  margin: 16px 0 0;
  padding: clamp(20px,2.2vw,26px);
  background: rgba(255,255,255,.035);
  border: 1px solid rgba(232,193,106,.22);
  border-radius: 14px;
}
/* bring "Made in the House" up — kill the unnecessary gap, keep it compact */
body.pdp-emerald .pdp-reel{ padding-top: clamp(18px,2.6vw,36px) !important; }
body.pdp-emerald .pdp-reel-head{ margin-bottom: clamp(26px,3vw,40px) !important; }

/* FIX (2026): reel step titles + captions guaranteed visible on emerald ground */
body.pdp-emerald .pdp-reel .pdp-reel-h, .pdp-reel .pdp-reel-h {
  color:#ECC979 !important; -webkit-text-fill-color:#ECC979 !important; background:none !important; opacity:1 !important;
}
body.pdp-emerald .pdp-reel .pdp-reel-p, .pdp-reel .pdp-reel-p {
  color:rgba(251,248,238,0.92) !important; -webkit-text-fill-color:rgba(251,248,238,0.92) !important; opacity:1 !important;
}
body.pdp-emerald .pdp-reel .pdp-reel-num, .pdp-reel .pdp-reel-num { opacity:1 !important; }
.pdp-reel .reveal, .pdp-reel .pdp-reel-card { opacity:1 !important; transform:none !important; }
/* FIX (2026): pairing card category labels in gold, refined */
body.pdp-emerald .pdp-pairings .pdp-pair-kicker, .pdp-pairings .pdp-pair-kicker {
  color:#E8C16A !important; -webkit-text-fill-color:#E8C16A !important;
  letter-spacing:0.34em; font-weight:600; opacity:1 !important;
}
body.pdp-emerald .pdp-pairings .pdp-pair-name { color:#FBF8EE !important; }

/* ===== PDP provenance — background image #2, feathered into the emerald ===== */
body.pdp-emerald .pdp-prov{ position:relative; }
body.pdp-emerald .pdp-prov::before{
  content:""; position:absolute; z-index:0; pointer-events:none;
  left:50%; top:50%; transform:translate(-50%,-50%);
  width:100vw; height:132%;
  background:url('../assets/images/prov-bg.webp') center center/cover no-repeat;
  opacity:.96;
  -webkit-mask-image:linear-gradient(180deg, transparent 0%, #000 18%, #000 82%, transparent 100%);
  mask-image:linear-gradient(180deg, transparent 0%, #000 18%, #000 82%, transparent 100%);
}
body.pdp-emerald .pdp-prov-inner{ position:relative; z-index:1; }

/* ===== PDP FAQ — match the Our Team tm-faq card style (2026) ===== */
body.pdp-emerald .pdp-faq .pdp-faq-inner{ max-width:1180px; }
body.pdp-emerald .pdp-faq .tm-faq-grid{ max-width:1180px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:14px 24px; }
@media (max-width:820px){ body.pdp-emerald .pdp-faq .tm-faq-grid{ grid-template-columns:1fr; gap:12px; } }
body.pdp-emerald .pdp-faq .tm-faq-item{ background:rgba(255,255,255,.045); border:1px solid rgba(232,193,106,.22); border-radius:16px; overflow:hidden; backdrop-filter:blur(2px); margin:0; transition:border-color .3s ease, box-shadow .4s ease, background .3s ease, transform .3s ease; }
body.pdp-emerald .pdp-faq .tm-faq-item:hover{ border-color:rgba(232,193,106,.5); background:rgba(255,255,255,.07); box-shadow:0 20px 44px -24px rgba(0,0,0,.55); transform:translateY(-1px); }
body.pdp-emerald .pdp-faq .tm-faq-item[open]{ border-color:rgba(232,193,106,.62); background:rgba(255,255,255,.07); box-shadow:0 22px 48px -24px rgba(0,0,0,.6); }
body.pdp-emerald .pdp-faq .tm-faq-item summary{ list-style:none; cursor:pointer; padding:21px 22px; display:grid; grid-template-columns:46px 1fr 28px; align-items:center; gap:16px; font-family:'Cormorant Garamond',serif; font-weight:400; font-size:clamp(1.02rem,1.2vw,1.16rem); line-height:1.4; color:#fff; transition:color .2s; }
body.pdp-emerald .pdp-faq .tm-faq-item summary::-webkit-details-marker{ display:none; }
body.pdp-emerald .pdp-faq .tm-faq-item summary:hover{ color:#FFF1C4; }
body.pdp-emerald .pdp-faq .tm-faq-icon{ display:inline-grid; place-items:center; width:46px; height:46px; border-radius:50%; background:radial-gradient(120% 120% at 30% 25%, #F0D58A 0%, #D4AF6E 55%, #A7811F 100%); color:#fff; border:1px solid rgba(140,107,41,.55); box-shadow:inset 0 1px 0 rgba(255,255,255,.55), inset 0 -2px 6px rgba(140,107,41,.45), 0 6px 14px -6px rgba(140,107,41,.55); transition:transform .4s ease, box-shadow .4s ease; }
body.pdp-emerald .pdp-faq .tm-faq-icon svg{ width:22px; height:22px; display:block; }
body.pdp-emerald .pdp-faq .tm-faq-item:hover .tm-faq-icon, body.pdp-emerald .pdp-faq .tm-faq-item[open] .tm-faq-icon{ transform:rotate(-4deg) scale(1.06); box-shadow:inset 0 1px 0 rgba(255,255,255,.6), 0 8px 20px -6px rgba(140,107,41,.7), 0 0 18px rgba(232,193,106,.45); }
body.pdp-emerald .pdp-faq .tm-faq-item[open] .tm-faq-icon{ transform:rotate(0) scale(1.06); }
body.pdp-emerald .pdp-faq .tm-faq-q{ display:block; }
body.pdp-emerald .pdp-faq .tm-faq-toggle{ position:relative; width:28px; height:28px; display:inline-grid; place-items:center; border:1px solid rgba(232,193,106,.4); border-radius:50%; transition:background .3s ease, border-color .3s ease; }
body.pdp-emerald .pdp-faq .tm-faq-tline{ position:absolute; background:#E8C16A; transition:transform .3s ease, opacity .3s ease, background .3s ease; }
body.pdp-emerald .pdp-faq .tm-faq-tline--h{ width:11px; height:1.5px; }
body.pdp-emerald .pdp-faq .tm-faq-tline--v{ width:1.5px; height:11px; }
body.pdp-emerald .pdp-faq .tm-faq-item[open] .tm-faq-toggle{ background:#E8C16A; border-color:#E8C16A; }
body.pdp-emerald .pdp-faq .tm-faq-item[open] .tm-faq-tline{ background:#16301F; }
body.pdp-emerald .pdp-faq .tm-faq-item[open] .tm-faq-tline--v{ transform:scaleY(0); opacity:0; }
body.pdp-emerald .pdp-faq .tm-faq-body{ font-family:'Inter',sans-serif; font-size:.92rem; line-height:1.75; color:rgba(255,255,255,.78); padding:0 22px 24px 84px; }
body.pdp-emerald .pdp-faq .tm-faq-body p{ margin:0; }
@media (max-width:540px){ body.pdp-emerald .pdp-faq .tm-faq-body{ padding:0 18px 22px 18px; } body.pdp-emerald .pdp-faq .tm-faq-item summary{ grid-template-columns:40px 1fr 26px; gap:12px; padding:18px; } body.pdp-emerald .pdp-faq .tm-faq-icon{ width:40px; height:40px; } body.pdp-emerald .pdp-faq .tm-faq-icon svg{ width:19px; height:19px; } }

body.pdp-emerald{ overflow-x:clip; }


/* ===== PDP FAQ — full faq.html set in the faq.html card style (2026) ===== */
body.pdp-emerald .pdp-faq .pdp-faq-inner{ max-width:1180px; }
body.pdp-emerald .pdp-faq .faq-tm-head{ text-align:center; max-width:760px; margin:0 auto clamp(34px,4vw,52px); }
body.pdp-emerald .pdp-faq .faq-tm-eyebrow{ display:inline-block; font-family:Inter,sans-serif; font-size:.7rem; letter-spacing:.42em; text-transform:uppercase; color:#E8C16A; font-weight:600; margin-bottom:14px; }
body.pdp-emerald .pdp-faq .faq-tm-rule{ display:block; height:1px; width:60px; margin:0 auto 22px; background:linear-gradient(90deg,#E8C16A 0%, rgba(232,193,106,0) 100%); }
body.pdp-emerald .pdp-faq .faq-tm-h{ font-family:'Cormorant Garamond',serif; font-weight:400; font-size:clamp(2rem,3.6vw,3rem); line-height:1.08; color:#fff; margin:0 0 14px; letter-spacing:-.008em; }
body.pdp-emerald .pdp-faq .faq-tm-h em{ font-style:italic; color:#E8C16A; font-weight:500; }
body.pdp-emerald .pdp-faq .faq-tm-sub{ font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.1rem; color:rgba(255,255,255,.72); margin:0; }
body.pdp-emerald .pdp-faq .faq-cat-label{ max-width:1180px; margin:clamp(38px,4.5vw,58px) auto 16px; display:flex; align-items:center; gap:18px; font-family:Inter,sans-serif; font-size:.64rem; letter-spacing:.3em; text-transform:uppercase; color:#E8C16A; font-weight:600; }
body.pdp-emerald .pdp-faq .faq-cat-label::before, body.pdp-emerald .pdp-faq .faq-cat-label::after{ content:""; height:1px; flex:1; background:rgba(232,193,106,.26); }
body.pdp-emerald .pdp-faq .faq-grid{ max-width:1180px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:14px 24px; align-items:start; }
@media (max-width:820px){ body.pdp-emerald .pdp-faq .faq-grid{ grid-template-columns:1fr; gap:12px; } }
body.pdp-emerald .pdp-faq .faq-it{ background:rgba(255,255,255,.045); border:1px solid rgba(232,193,106,.22); transition:border-color .3s,box-shadow .4s,background .3s,transform .3s; }
body.pdp-emerald .pdp-faq .faq-it:hover{ border-color:rgba(232,193,106,.5); background:rgba(255,255,255,.07); box-shadow:0 20px 44px -24px rgba(0,0,0,.55); transform:translateY(-1px); }
body.pdp-emerald .pdp-faq .faq-it[open]{ border-color:rgba(232,193,106,.62); background:rgba(255,255,255,.07); }
body.pdp-emerald .pdp-faq .faq-it summary{ list-style:none; cursor:pointer; padding:21px 22px; display:grid; grid-template-columns:46px 1fr 28px; align-items:center; gap:16px; font-family:'Cormorant Garamond',serif; font-weight:400; font-size:clamp(1.02rem,1.2vw,1.16rem); line-height:1.4; color:#fff; transition:color .2s; }
body.pdp-emerald .pdp-faq .faq-it summary::-webkit-details-marker{ display:none; }
body.pdp-emerald .pdp-faq .faq-it summary:hover{ color:#FFF1C4; }
body.pdp-emerald .pdp-faq .faq-ic{ display:inline-grid; place-items:center; width:46px; height:46px; border-radius:50%; background:radial-gradient(120% 120% at 30% 25%, #F0D58A 0%, #D4AF6E 55%, #A7811F 100%); color:#fff; border:1px solid rgba(140,107,41,.55); box-shadow:inset 0 1px 0 rgba(255,255,255,.55), inset 0 -2px 6px rgba(140,107,41,.45), 0 6px 14px -6px rgba(140,107,41,.55); transition:transform .4s,box-shadow .4s; }
body.pdp-emerald .pdp-faq .faq-ic svg{ width:22px; height:22px; display:block; }
body.pdp-emerald .pdp-faq .faq-it:hover .faq-ic, body.pdp-emerald .pdp-faq .faq-it[open] .faq-ic{ transform:scale(1.06); box-shadow:inset 0 1px 0 rgba(255,255,255,.6), 0 8px 20px -6px rgba(140,107,41,.7), 0 0 18px rgba(232,193,106,.45); }
body.pdp-emerald .pdp-faq .faq-tog{ position:relative; width:28px; height:28px; display:inline-grid; place-items:center; border:1px solid rgba(232,193,106,.4); border-radius:50%; transition:background .3s,border-color .3s; }
body.pdp-emerald .pdp-faq .faq-tl{ position:absolute; background:#E8C16A; transition:transform .3s,opacity .3s,background .3s; }
body.pdp-emerald .pdp-faq .faq-tl--h{ width:11px; height:1.5px; }
body.pdp-emerald .pdp-faq .faq-tl--v{ width:1.5px; height:11px; }
body.pdp-emerald .pdp-faq .faq-it[open] .faq-tog{ background:#E8C16A; border-color:#E8C16A; }
body.pdp-emerald .pdp-faq .faq-it[open] .faq-tl{ background:#16301F; }
body.pdp-emerald .pdp-faq .faq-it[open] .faq-tl--v{ transform:scaleY(0); opacity:0; }
body.pdp-emerald .pdp-faq .faq-bd{ font-family:Inter,sans-serif; font-size:.92rem; line-height:1.75; color:rgba(255,255,255,.80); padding:0 22px 24px 84px; }
body.pdp-emerald .pdp-faq .faq-bd p{ margin:0 0 10px; }
body.pdp-emerald .pdp-faq .faq-bd strong{ color:#fff; }
body.pdp-emerald .pdp-faq .faq-bd a{ color:#E8C16A; border-bottom:1px solid rgba(232,193,106,.5); }
@media (max-width:540px){ body.pdp-emerald .pdp-faq .faq-bd{ padding:0 18px 22px 18px; } body.pdp-emerald .pdp-faq .faq-it summary{ grid-template-columns:40px 1fr 26px; gap:12px; padding:18px; } body.pdp-emerald .pdp-faq .faq-ic{ width:40px; height:40px; } body.pdp-emerald .pdp-faq .faq-ic svg{ width:19px; height:19px; } }

/* tighten the gap between pairings ("View the full collection") and the reviews section */
body.pdp-emerald .pdp-pairings{ padding-bottom: clamp(26px,3.4vw,46px) !important; }
body.pdp-emerald .pdp-reviews{ margin-top:0 !important; padding-top: clamp(18px,2.6vw,32px) !important; }

/* ===== per-product FAQ in rail (2026-06-09) ===== */
.pdp-pfaq{ margin-top:22px; border-top:1px solid rgba(232,193,106,.22); padding-top:16px; }
.pdp-pfaq-eyebrow{ display:block; font:600 .6rem/1 'Inter',sans-serif; letter-spacing:.28em; text-transform:uppercase; color:#E8C16A; margin-bottom:8px; }
.pdp-pfaq-it{ border-bottom:1px solid rgba(251,248,238,.12); }
.pdp-pfaq-it summary{ list-style:none; cursor:pointer; padding:11px 0; font:500 .9rem/1.4 'Inter',sans-serif; color:#FBF8EE; display:flex; justify-content:space-between; align-items:center; }
.pdp-pfaq-it summary::-webkit-details-marker{ display:none; }
.pdp-pfaq-it summary::after{ content:'+'; color:#E8C16A; font-size:1.15rem; line-height:1; margin-left:14px; }
.pdp-pfaq-it[open] summary::after{ content:'\2212'; }
.pdp-pfaq-a{ padding:0 0 13px; font:300 .85rem/1.62 'Inter',sans-serif; color:rgba(251,248,238,.82); }

/* ===== description storytelling segments (2026-06-09) ===== */
.pdp-desc .pdp-desc-seg{ margin:0; }
.pdp-desc-orn{ display:flex; align-items:center; justify-content:center; gap:13px; margin:16px 0; color:#E8C16A; font-size:.74rem; line-height:1; }
.pdp-desc-orn::before,.pdp-desc-orn::after{ content:''; height:1px; width:48px; background:linear-gradient(90deg,transparent,rgba(232,193,106,.55)); }
.pdp-desc-orn::after{ background:linear-gradient(90deg,rgba(232,193,106,.55),transparent); }


/* === MOBILE POLISH MANAGED: pdp-info-compact === */
body.pdp-emerald .pdp-detail{
  padding:18px 0 2px !important; margin:16px 0 0 !important;
  background:transparent !important; box-shadow:none !important;
  border:0 !important; border-top:1px solid rgba(232,193,106,.20) !important; border-radius:0 !important; overflow:visible !important;
}
body.pdp-emerald .pdp-detail::before{ display:none !important; }
body.pdp-emerald #pdpSpecBlock{ margin-top:10px !important; }
body.pdp-emerald .pdp-detail .pdp-detail-eyebrow{ margin-bottom:10px !important; }
body.pdp-emerald .pdp-desc{ font-size:.9rem !important; line-height:1.68 !important; }
body.pdp-emerald #pdpSpecBlock .pdp-specs{
  display:grid !important; grid-template-columns:max-content 1fr !important;
  gap:7px 16px !important; margin:0 !important; padding:0 !important; border:0 !important;
}
body.pdp-emerald #pdpSpecBlock .pdp-specs dt{
  font:600 .53rem/1.5 'Inter',sans-serif !important; letter-spacing:.2em !important;
  text-transform:uppercase !important; color:rgba(251,248,238,.5) !important; padding-top:3px !important;
}
body.pdp-emerald #pdpSpecBlock .pdp-specs dd{
  font-family:var(--pdp-serif) !important; font-size:.95rem !important; line-height:1.34 !important;
  color:rgba(251,248,238,.96) !important; margin:0 !important; padding:0 !important; border:0 !important;
}
body.pdp-emerald .pdp-desc-more,
body.pdp-emerald #pdpSpecBlock .pdp-specs-more{
  margin-top:13px !important; display:inline-block !important; background:none !important;
  border:0 !important; border-bottom:1px solid rgba(232,193,106,.45) !important; border-radius:0 !important;
  padding:0 0 2px !important; font:600 .61rem/1 'Inter',sans-serif !important; letter-spacing:.16em !important;
  text-transform:uppercase !important; color:#E8C16A !important; cursor:pointer; transition:color .25s,border-color .25s !important;
}
body.pdp-emerald .pdp-desc-more:hover,
body.pdp-emerald #pdpSpecBlock .pdp-specs-more:hover{
  color:#F6E2A6 !important; border-color:#F6E2A6 !important; background:none !important; transform:none !important;
}
@media (max-width:980px){
  body.pdp-emerald .pdp-detail{ padding:15px 16px !important; }
  body.pdp-emerald #pdpSpecBlock .pdp-specs{ grid-template-columns:max-content 1fr !important; }
}
/* === END: pdp-info-compact === */

/* === MOBILE POLISH MANAGED: pdp-specs-golden === */
body.pdp-emerald #pdpSpecBlock .pdp-specs{
  background:transparent !important; border:0 !important; box-shadow:none !important;
  overflow:visible !important; padding:4px 0 0 !important;
}
body.pdp-emerald #pdpSpecBlock .pdp-specs::before{ display:none !important; }
body.pdp-emerald #pdpSpecBlock .pdp-specs dt{
  border-bottom:1px solid rgba(232,193,106,.28) !important;
  padding:12px 24px 12px 0 !important; align-self:center !important;
}
body.pdp-emerald #pdpSpecBlock .pdp-specs dd{
  border-bottom:1px solid rgba(232,193,106,.28) !important;
  padding:12px 0 !important; align-self:center !important;
}
@keyframes ppMoreGlow{
  0%,100%{ color:#E8C16A !important; text-shadow:0 0 0 rgba(232,193,106,0); border-color:rgba(232,193,106,.4) !important; }
  50%{ color:#F8E7AE !important; text-shadow:0 0 16px rgba(232,193,106,.95); border-color:#F6E2A6 !important; }
}
body.pdp-emerald .pdp-desc-more,
body.pdp-emerald #pdpSpecBlock .pdp-specs-more{
  animation:ppMoreGlow 1.7s ease-in-out infinite !important;
}
/* === END: pdp-specs-golden === */

/* === MOBILE POLISH MANAGED: pdp-spec-labels === */
body.pdp-emerald #pdpSpecBlock .pdp-specs dt{
  color:#EBC56E !important; font-size:.64rem !important; font-weight:700 !important;
  letter-spacing:.16em !important; opacity:1 !important;
  text-shadow:0 0 10px rgba(232,193,106,.35) !important;
}
/* === END: pdp-spec-labels === */

/* === CONSULTANT PANEL: pieces with no price tier === */
.pp-consult{ position:relative; overflow:hidden; display:flex; flex-direction:column; gap:11px;
  padding:20px 20px 18px; margin:0 0 16px; border-radius:16px;
  background:linear-gradient(157deg, rgba(232,193,106,.16), rgba(255,255,255,.05) 55%, rgba(255,255,255,.02));
  border:1px solid rgba(232,193,106,.34);
  box-shadow:0 26px 64px -32px rgba(0,0,0,.72), inset 0 1px 0 rgba(255,255,255,.26); }
.pp-consult::before{ content:""; position:absolute; top:0; left:0; right:0; height:48%; pointer-events:none; z-index:0;
  background:linear-gradient(180deg, rgba(255,255,255,.1), transparent); }
.pp-consult::after{ content:""; position:absolute; top:0; bottom:0; left:-60%; width:40%; pointer-events:none; z-index:0;
  background:linear-gradient(120deg, transparent, rgba(246,226,166,.22), transparent); transform:skewX(-20deg);
  animation:ppConsultSheen 7s ease-in-out infinite; }
@keyframes ppConsultSheen{ 0%{ left:-60%; } 62%,100%{ left:135%; } }
.pp-consult > *{ position:relative; z-index:1; }
.pp-consult-eyebrow{ font:600 .62rem/1 'Inter',sans-serif; letter-spacing:.26em; text-transform:uppercase; color:#E8C16A;
  text-shadow:0 0 14px rgba(232,193,106,.45); }
.pp-consult-head{ margin:0; font:500 1.44rem/1.2 'Cormorant Garamond',serif; color:#FBF8EE;
  text-shadow:0 1px 12px rgba(0,0,0,.4); }
.pp-consult-body{ margin:0; font:300 .84rem/1.62 'Inter',sans-serif; color:rgba(251,248,238,.76); }
/* deliberately an outline, not a second solid gold button. The appointment
   CTA further down the column is the primary action and two solid golds
   stacked together cancel each other out. */
.pp-consult-cta{ margin-top:3px; display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:14px 22px; border-radius:999px; cursor:pointer; width:100%;
  font:600 .74rem/1 'Inter',sans-serif; letter-spacing:.16em; text-transform:uppercase; color:#F0D58E;
  background:rgba(255,255,255,.05); border:1px solid rgba(232,193,106,.62);
  transition:transform .3s cubic-bezier(.2,.8,.2,1), background .3s, color .3s, box-shadow .3s; }
.pp-consult-cta:hover{ transform:translateY(-2px); color:#15281C;
  background:linear-gradient(135deg,#F6E2A6,#E8C16A 52%,#C9A55C); border-color:#F2D58E;
  box-shadow:0 18px 42px -14px rgba(232,193,106,.8); }
.pp-consult-cta:active{ transform:translateY(0); }
.pp-consult-cta svg{ transition:transform .3s; }
.pp-consult-cta:hover svg{ transform:translateX(3px); }
.pp-consult-row{ display:flex; align-items:center; justify-content:center; gap:12px; flex-wrap:wrap; }
.pp-consult-alt{ font:400 .78rem/1 'Inter',sans-serif; color:rgba(251,248,238,.74); text-decoration:none;
  border-bottom:1px solid rgba(232,193,106,.34); padding-bottom:2px; transition:color .25s, border-color .25s; }
.pp-consult-alt:hover{ color:#F0D58E; border-color:#E8C16A; }
.pp-consult-sep{ font-size:.5rem; color:rgba(232,193,106,.55); }
@media(max-width:600px){
  .pp-consult{ padding:17px 16px 16px; }
  .pp-consult-head{ font-size:1.3rem; }
  .pp-consult-body{ font-size:.8rem; }
}
@media(prefers-reduced-motion:reduce){ .pp-consult::after{ animation:none; display:none; } }
/* === END CONSULTANT PANEL === */

/* ==========================================================================
   PDP process reel — five step fix (2026-08-08)

   Two faults, both visible on the live product page:

   1. The markup carries FIVE steps but the reel was laid out with an inline
      grid-template-columns:repeat(5,1fr). At container width that squeezed
      each card to about 194px, so "Final Quality Assessment" wrapped to two
      lines while its neighbours stayed on one and the row read as broken.

   2. .pdp-reel-media set aspect-ratio and overflow:visible but never set a
      width, so the box sized itself from each image's intrinsic dimensions
      rather than from its column. The square step images overflowed by 54px
      each, and step 05, which uses a portrait 768x1376 photograph, rendered
      480px wide inside a 214px card and spilled straight over step 04.

   Fixed by laying the five steps out as 3 + 2 across two lines with the last
   row centred, and by pinning the media box to its column so object-fit can
   do the cropping regardless of the source aspect ratio.
   ========================================================================== */
body.pdp-emerald .pdp-reel .pdp-reel-grid{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
  gap: clamp(30px, 3.2vw, 56px);
}
body.pdp-emerald .pdp-reel .pdp-reel-card{
  flex: 0 1 calc((100% - 2 * clamp(30px, 3.2vw, 56px)) / 3);
  max-width: 340px;
  min-width: 0;
}
/* Two up on tablet, one up on phone. */
@media (max-width: 900px){
  body.pdp-emerald .pdp-reel .pdp-reel-card{
    flex-basis: calc((100% - clamp(30px, 3.2vw, 56px)) / 2);
  }
}
@media (max-width: 560px){
  body.pdp-emerald .pdp-reel .pdp-reel-card{ flex-basis: 100%; max-width: 320px; }
}

/* The actual overflow fix. Without an explicit width the media box inherits
   nothing to size against and falls back to the image's intrinsic size. */
body.pdp-emerald .pdp-reel .pdp-reel-media{
  width: 100%;
  max-width: 100%;
}
body.pdp-emerald .pdp-reel .pdp-reel-media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
/* Step 05 is the only portrait source in the set. Bias the crop upward so the
   faces stay in frame rather than being cut at the chin. */
body.pdp-emerald .pdp-reel .pdp-reel-card:nth-child(5) .pdp-reel-media img{
  object-position: center 28%;
}
/* The float animation only had delays for four cards. */
body.pdp-emerald .pdp-reel .pdp-reel-card:nth-child(5) .pdp-reel-media{ animation-delay: 3.6s; }

/* ============================================================================
   SIX PRICE TIERS ON A PHONE

   Adding Under R5,000 takes the orb row from five circles to six. At the old
   60px, six circles plus gaps needed about 390px, which does not fit a 360px
   screen once the panel padding is counted. Rather than shrink them until the
   figures are unreadable, the row scrolls horizontally on narrow screens and
   the active orb is scrolled into view. Nothing is hidden, and the tiers stay
   legible.
   ============================================================================ */
@media (max-width: 600px) {
  .pp-orbs {
    justify-content: flex-start;
    gap: 8px;
    overflow-x: auto;
    scroll-behavior: smooth;
    scrollbar-width: none;
    padding: 6px 2px;
    -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 20px), transparent 100%);
            mask-image: linear-gradient(90deg, #000 calc(100% - 20px), transparent 100%);
  }
  .pp-orbs::-webkit-scrollbar { display: none; }
  /* the connecting hairline is drawn across the container, which is now wider
     than the screen, so it would trail off. It goes on narrow screens. */
  .pp-orbs::before { display: none; }
  .pp-orb { width: 46px; height: 46px; font-size: .6rem; }
  .pp-orb.is-active { width: 58px; height: 58px; font-size: .68rem; }
}
