/* =====================================================================
   Rupashree Jewellers — Product Page (Aangan × RJ palette)
   Structural language from the Aangan mockup. Colours from the RJ brand
   (warm cream + ink-brown + brand red + brass).
   ===================================================================== */

:root {
  --rj-cream:        oklch(95.5% 0.012 85);
  --rj-cream-2:      oklch(92.5% 0.014 85);
  --rj-paper:        oklch(97.5% 0.008 88);
  --rj-ink:          oklch(22% 0.015 55);
  --rj-ink-2:        oklch(16% 0.012 55);
  --rj-ink-soft:     oklch(40% 0.015 55);
  --rj-red:          oklch(45% 0.15 25);
  --rj-red-dark:     oklch(37% 0.14 25);
  --rj-brass:        oklch(58% 0.09 75);
  --rj-brass-dark:   oklch(48% 0.085 72);
  --rj-sand:         oklch(82% 0.025 75);
  --rj-rule:         oklch(78% 0.02 75 / 0.7);
  --rj-rule-soft:    oklch(78% 0.02 75 / 0.35);
  --rj-wa:           oklch(62% 0.16 145);
  --rj-wa-dark:      oklch(50% 0.14 145);
}

/* ===== Hard kill horizontal scroll on the product page =====
   Off-canvas elements (cart sidebar, sticky bar, lightbox) are positioned
   past the viewport. iOS Safari + some Android browsers don't always
   respect html { overflow-x: hidden } when body lacks the same rule, so
   the user sees a small horizontal-swipe gap. Lock body too. */
html.single-product, body.single-product { overflow-x: hidden; max-width: 100vw; }

/* ===== Scoped typography / chrome for the PDP =====
   Full-white treatment — override the warm cream / paper / cream-2 variables
   to pure white so every element that uses them (gallery hero, exchange
   badge, reviews pill, plate-no, pair-img, sticky bar, inputs, etc.) turns
   white in one place. Ink / brass / rule / red stay unchanged. */
body.single-product {
  --rj-cream:   #ffffff;
  --rj-cream-2: #ffffff;
  --rj-paper:   #ffffff;
  background: #ffffff;
  color: var(--rj-ink);
  font-family: 'DM Sans', system-ui, sans-serif;
  font-size: 15px;
  line-height: 1.55;
}
body.single-product #main,
body.single-product .content-area,
body.single-product .single-product-main-content {
  background: #ffffff;
}
body.single-product .modern-product-details { background: #ffffff; }
body.single-product a { color: inherit; }
body.single-product h1,
body.single-product h2,
body.single-product h3,
body.single-product h4,
body.single-product .product_title,
body.single-product .single-post-title {
  font-family: 'Fraunces', Georgia, serif;
  font-variation-settings: "opsz" 144;
  font-weight: 300;
  letter-spacing: -0.01em;
  color: var(--rj-ink);
}

/* ===== PDP grid — spine + gallery + info ===== */
/* Specificity matched to the child theme's default 2-col rule so we override it.
   Spine sized at 68px — enough breathing room for two vertical metadata lines
   (purity + weight) with a single 28px gap between them. */
.woocommerce div.product.modern-single-product .modern-product-wrapper {
  display: grid !important;
  grid-template-columns: 68px 1.15fr 1fr !important;
  gap: 0 44px !important;
  max-width: 1320px;
  margin: 0 auto;
  padding: 24px 20px 56px;
}
@media (max-width: 1024px) {
  .woocommerce div.product.modern-single-product .modern-product-wrapper {
    grid-template-columns: 48px 1fr !important;
    gap: 0 24px !important;
  }
  .woocommerce div.product.modern-single-product .modern-product-info { grid-column: 1 / -1; padding-top: 40px; }
}
@media (max-width: 640px) {
  /* On mobile the info column stacks under the gallery — make sure neither
     side carries asymmetric padding that would push text away from the
     gallery's left edge. style.css (parent theme) had padding-left:20px on
     desktop and reset it to 0 at 768px, but not with enough specificity to
     survive this file's shorthand on the same element. Force-align here. */
  .woocommerce div.product.modern-single-product .modern-product-info,
  body.single-product .modern-product-info {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .woocommerce div.product.modern-single-product .modern-product-wrapper {
    /* minmax(0, 1fr) — without the 0 minimum, intrinsic image size (2048px)
       forces the grid column wider than the wrapper, pushing all content
       past the right edge and visually offsetting it left-of-center. */
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 28px 0 !important;
    padding-top: 14px;
  }
  /* Defense in depth — make sure no child can force the grid track wider */
  .woocommerce div.product.modern-single-product .modern-product-gallery,
  .woocommerce div.product.modern-single-product .modern-product-info,
  .woocommerce div.product.modern-single-product .modern-product-gallery img,
  .woocommerce div.product.modern-single-product .woocommerce-product-gallery,
  .woocommerce div.product.modern-single-product .woocommerce-product-gallery__image,
  .woocommerce div.product.modern-single-product .woocommerce-product-gallery__image img {
    min-width: 0 !important;
    max-width: 100% !important;
  }
  .woocommerce div.product.modern-single-product .rjpe-spine { display: none; }
}

/* ===== The spine — signature device ===== */
.rjpe-spine {
  position: relative;
  border-right: 1px solid var(--rj-rule);
  min-height: 100%;
}
.rjpe-spine-text {
  position: sticky;
  top: 120px;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  padding: 40px 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;   /* Center the two lines horizontally within the 68px spine */
  gap: 28px;
  font-size: 10.5px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--rj-ink-soft);
  font-weight: 500;
  width: 100%;
  box-sizing: border-box;
}
.rjpe-spine-text span strong {
  color: var(--rj-ink);
  font-weight: 500;
}

/* ===== Gallery hero — corner marks + plate-no ===== */
body.single-product .modern-product-gallery {
  position: relative;
  background: var(--rj-paper);
}
body.single-product .modern-product-gallery .woocommerce-product-gallery { background: transparent; }
body.single-product .modern-product-gallery .woocommerce-product-gallery__image img,
body.single-product .modern-product-gallery .modern-gallery-main img { background: var(--rj-paper); }

.rjpe-corner {
  position: absolute;
  width: 42px;
  height: 42px;
  pointer-events: none;
  z-index: 4;
}
.rjpe-corner-tl { top: 0; left: 0; border-left: 1px solid var(--rj-ink); border-top: 1px solid var(--rj-ink); }
.rjpe-corner-br { right: 0; bottom: 0; border-right: 1px solid var(--rj-ink); border-bottom: 1px solid var(--rj-ink); }
.rjpe-plate-no {
  position: absolute;
  top: 20px; right: 20px;
  z-index: 5;
  background: var(--rj-cream);
  color: var(--rj-ink);
  border: 1px solid var(--rj-ink);
  padding: 5px 11px;
  font-size: 10.5px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  font-weight: 500;
}

/* Gallery footer — Save + Share, Aangan-style text links directly under
   the gallery thumbnails. */
.rjpe-gallery-footer {
  display: flex;
  gap: 26px;
  padding: 18px 0 0;
  margin-top: 18px;
  border-top: 1px solid var(--rj-rule);
}
.rjpe-gallery-action {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 0;
  font-family: 'DM Sans', sans-serif;
  font-size: 11.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--rj-ink-soft);
  font-weight: 500;
  text-decoration: none !important;
  border-bottom: 1px solid transparent;
  transition: color 0.2s ease, border-color 0.2s ease;
}
.rjpe-gallery-action:hover {
  color: var(--rj-red);
  border-bottom-color: var(--rj-red);
}
.rjpe-gallery-action svg { color: currentColor; }

/* ===== Info column typography ===== */
body.single-product .modern-product-info { padding: 22px 0 0 4px; }

/* Eyebrow chip — primary category, red bordered small caps */
.rjpe-eyebrow-chip {
  display: inline-block;
  font-family: 'DM Sans', sans-serif;
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--rj-red);
  padding: 5px 11px;
  border: 1px solid var(--rj-red);
  margin-bottom: 2px;
}

body.single-product .product_title,
body.single-product .single-post-title.product_title {
  font-family: 'Fraunces', Georgia, serif !important;
  font-variation-settings: "opsz" 144, "SOFT" 30;
  font-weight: 300 !important;
  font-size: clamp(32px, 4.6vw, 56px) !important;
  line-height: 1.02 !important;
  letter-spacing: -0.015em !important;
  margin: 14px 0 0 !important;
  color: var(--rj-ink) !important;
  padding: 0 !important;
}

/* Hero subtitle — Fraunces light one-liner */
.rjpe-hero-subtitle {
  margin: 14px 0 0;
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 300;
  font-size: 16px;
  line-height: 1.5;
  color: var(--rj-ink-soft);
  max-width: 480px;
}

/* Jonaki pill — restyled */
body.single-product .jonaki-product-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 10.5px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--rj-red);
  padding: 5px 10px;
  border: 1px solid var(--rj-red);
  background: transparent;
  font-weight: 500;
  margin-bottom: 10px;
}

/* Price — quiet-luxury (serif, ink, inline tag on the right) */
body.single-product .price,
body.single-product .single-post-title + .price,
body.single-product .modern-product-summary .price,
body.single-product .modern-product-summary > .price {
  font-family: 'Fraunces', Georgia, serif !important;
  font-weight: 400 !important;
  font-size: 32px !important;
  letter-spacing: -0.005em !important;
  color: var(--rj-ink) !important;
  margin: 26px 0 0 !important;
  padding: 0 0 22px !important;
  border-bottom: 1px solid var(--rj-rule) !important;
  font-variant-numeric: tabular-nums;
  display: flex !important;
  align-items: baseline;
  gap: 16px;
  flex-wrap: wrap;
  background: transparent !important;
}
body.single-product .price ins { text-decoration: none; color: var(--rj-ink); background: transparent; font-weight: 400; }
body.single-product .price del { opacity: 0.45; font-size: 0.7em; margin-right: 0; font-weight: 300; order: 0; color: var(--rj-ink-soft); }

/* WooCommerce wraps the amount in nested spans with their own color. Force ink. */
body.single-product .modern-product-summary .price .woocommerce-Price-amount,
body.single-product .modern-product-summary .price bdi,
body.single-product .modern-product-summary .price .woocommerce-Price-currencySymbol {
  color: var(--rj-ink) !important;
  font-family: 'Fraunces', Georgia, serif !important;
  font-weight: 400 !important;
}
body.single-product .woocommerce-price-suffix,
body.single-product .price .small {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 10.5px !important;
  color: var(--rj-ink-soft) !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
  margin-left: 0 !important;
  order: 2;
}

/* Inline "inclusive of GST & hallmark" tag — inserted via CSS generated
   content so we don't touch WC's price markup. */
body.single-product .modern-product-summary > .price::after {
  content: 'inclusive of GST & hallmark';
  display: inline-block;
  font-family: 'DM Sans', sans-serif;
  font-size: 10.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--rj-ink-soft);
  font-weight: 500;
  line-height: 1.2;
  order: 3;
  align-self: baseline;
  margin-left: auto;
  padding-left: 12px;
}

/* ----- Hide the old circular karat badges wherever they still appear ----- */
body.single-product .product-karat-display,
body.single-product .karat-badge,
body.single-product .weight-badge,
body.single-product .size-badge-wrapper { display: none !important; }

/* ===== Aangan 4-column facts grid ===== */
.rjpe-facts {
  margin: 22px 0 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--rj-rule);
  border-bottom: 1px solid var(--rj-rule);
}
.rjpe-fact {
  padding: 16px 10px;
  border-right: 1px solid var(--rj-rule);
  position: relative;
  min-width: 0;
}
/* Keep the outer edges flush with the section grid, but pad inner cells. */
.rjpe-fact:first-child { padding-left: 0; }
.rjpe-fact:last-child  { padding-right: 0; border-right: none; }
.rjpe-fact-label {
  font-family: 'DM Sans', sans-serif;
  font-size: 10.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--rj-ink-soft);
  font-weight: 500;
}
.rjpe-fact-val {
  margin-top: 6px;
  font-family: 'Fraunces', Georgia, serif;
  font-size: clamp(14px, 1.4vw, 17px);
  line-height: 1.15;
  color: var(--rj-ink);
  font-weight: 400;
  letter-spacing: -0.005em;
  /* Values are short one-liners — never break words. */
  white-space: nowrap;
  overflow: visible;
}
.rjpe-fact-val small {
  font-family: 'DM Sans', sans-serif;
  font-size: 12px;
  color: var(--rj-ink-soft);
  margin-left: 4px;
  font-weight: 400;
  letter-spacing: 0.04em;
  text-transform: lowercase;
}
.rjpe-fact-aux {
  display: inline-block;
  margin-top: 6px;
  font-family: 'DM Sans', sans-serif;
  font-size: 10.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--rj-red);
  text-decoration: none !important;
  border-bottom: 1px solid currentColor;
  padding-bottom: 1px;
}

@media (max-width: 560px) {
  .rjpe-facts { grid-template-columns: repeat(2, 1fr); }
  /* Reset desktop first/last-child padding and re-apply for the 2-col layout */
  .rjpe-fact,
  .rjpe-fact:first-child,
  .rjpe-fact:last-child { padding: 14px 14px; border-right: 1px solid var(--rj-rule); }
  .rjpe-fact:nth-child(odd)  { padding-left: 0; }
  .rjpe-fact:nth-child(even) { padding-right: 0; border-right: none; }
  .rjpe-fact:nth-child(-n+2) { border-bottom: 1px solid var(--rj-rule); }
}

/* ===== Social proof row ===== */
.rjpe-proof-row {
  display: flex; flex-wrap: wrap; gap: 10px 18px;
  margin: 16px 0 0;
}
.rjpe-proof {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 0; border: none; background: transparent;
  border-radius: 0;
  font-size: 11.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--rj-ink-soft);
  font-weight: 500;
}
.rjpe-proof svg { color: var(--rj-brass-dark); }
.rjpe-proof-scarcity { color: var(--rj-red); }
.rjpe-proof-scarcity svg { color: var(--rj-red); }

/* ===== Exchange badge (22K only) — as a full Aangan band ===== */
.rjpe-exchange-badge {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 16px;
  align-items: center;
  margin: 26px 0 0;
  padding: 18px 20px;
  background: var(--rj-paper);
  border: 1px solid var(--rj-rule);
  border-radius: 0;
}
.rjpe-exchange-badge svg { display: none; }
.rjpe-exchange-badge::before {
  content: "0";
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--rj-red);
  color: var(--rj-cream);
  font-family: 'Fraunces', serif;
  font-weight: 400;
  font-size: 18px;
  display: grid; place-items: center;
  grid-column: 1; grid-row: 1;
}
.rjpe-exchange-badge-text { grid-column: 2; grid-row: 1; }
.rjpe-exchange-badge-text strong {
  display: block;
  font-family: 'Fraunces', serif;
  font-size: 17px; font-weight: 400;
  color: var(--rj-ink);
  letter-spacing: -0.005em;
}
.rjpe-exchange-badge-text span {
  display: block;
  margin-top: 2px;
  font-size: 13px; color: var(--rj-ink-soft);
}

/* ===== Occasion chips ===== */
.rjpe-occasion-chips {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  margin: 18px 0 0;
}
.rjpe-chips-label {
  font-size: 10.5px; letter-spacing: 0.24em; text-transform: uppercase;
  color: var(--rj-ink-soft); margin-right: 4px; font-weight: 500;
}
.rjpe-chip {
  padding: 5px 10px;
  font-size: 10.5px; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--rj-ink);
  border: 1px solid var(--rj-rule);
  background: transparent;
  font-weight: 500;
  border-radius: 0;
}

/* ===== Dimensions ===== */
.rjpe-dimensions {
  margin: 22px 0 0;
  padding: 0;
  border: none;
  border-top: 1px solid var(--rj-rule);
  border-bottom: 1px solid var(--rj-rule);
  padding: 18px 0;
  border-radius: 0;
}
.rjpe-dimensions h4 {
  font-family: 'DM Sans', sans-serif;
  font-size: 10.5px; letter-spacing: 0.24em; text-transform: uppercase;
  color: var(--rj-ink-soft); font-weight: 500;
  margin: 0 0 10px;
}
.rjpe-dimensions dl { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 40px; margin: 0; }
.rjpe-dimensions dl > div { display: flex; justify-content: space-between; gap: 14px; }
.rjpe-dimensions dt { font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--rj-ink-soft); }
.rjpe-dimensions dd {
  font-family: 'Fraunces', serif;
  font-size: 16px;
  color: var(--rj-ink);
  font-weight: 400;
  margin: 0;
}

/* ===== Primary CTAs — Aangan 2+1 stack ===========================
   Row 1: Buy Now (ink filled) + Add to Cart (ink ghost) — equal twins.
   Row 2: Enquire on WhatsApp (full-width, WA-green outline).
   All buttons: DM Sans small caps, 1px border, 0 radius.
   ================================================================= */
/* Parent theme adds 40px margin-bottom to the summary. Collapse that down
   to a single, intentional gap between the chip row and the CTA stack. */
body.single-product .modern-product-info .modern-product-summary { margin-bottom: 0 !important; }

body.single-product .modern-product-buttons {
  margin-top: 22px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

/* The Buy Now + Add to Cart buttons are wrapped inside <form class="cart">
   (WooCommerce default). Use a 2-col grid so the twins always share one row
   regardless of sub-pixel flex rounding or hidden children. */
body.single-product .modern-product-buttons > form.cart {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 10px !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  order: 1;
}

/* Kill the parent theme's clearfix pseudo-elements on form.cart — they take
   real grid cells and push the Add-to-Cart button onto a second row. */
body.single-product .modern-product-buttons > form.cart::before,
body.single-product .modern-product-buttons > form.cart::after {
  content: none !important;
  display: none !important;
}

/* Pin each button to a specific column so auto-placement can't mis-fill. */
body.single-product .modern-product-buttons > form.cart .buy-now-button {
  grid-column: 1 / 2 !important;
  grid-row: 1 !important;
}
body.single-product .modern-product-buttons > form.cart .single_add_to_cart_button:not(.buy-now-button) {
  grid-column: 2 / 3 !important;
  grid-row: 1 !important;
}

/* Kill stray quantity picker / stock line that the cart form sometimes emits. */
body.single-product .modern-product-buttons .quantity,
body.single-product .modern-product-buttons > .stock { display: none !important; }

body.single-product .single_add_to_cart_button,
body.single-product .buy-now-button,
body.single-product .jonaki-enquire-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  padding: 19px 22px !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  border-radius: 0 !important;
  border: 1px solid var(--rj-ink) !important;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease !important;
  text-decoration: none !important;
  box-shadow: none !important;
  line-height: 1.2 !important;
  margin: 0 !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  min-height: 58px !important;
  box-sizing: border-box !important;
}

/* Row 1 — twins inside the form.cart grid. Grid handles width distribution;
   we just reset any width that might fight the grid cell. */
body.single-product .buy-now-button,
body.single-product .single_add_to_cart_button {
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  flex: initial !important;
  order: 1;
}

/* Hide the quantity div so it doesn't claim a grid cell. */
body.single-product .modern-product-buttons > form.cart > .quantity { display: none !important; }

/* Add to Cart — ghost outline.
   Note: the Buy Now markup carries BOTH classes (`buy-now-button
   single_add_to_cart_button`), so we scope Add-to-Cart styling with :not()
   to prevent it from overriding Buy Now's filled-ink look. */
body.single-product .single_add_to_cart_button:not(.buy-now-button) {
  background: transparent !important;
  border-color: var(--rj-ink) !important;
  color: var(--rj-ink) !important;
}
body.single-product .single_add_to_cart_button:not(.buy-now-button):hover {
  background: var(--rj-ink) !important;
  color: var(--rj-cream) !important;
  transform: translateY(-1px);
}

/* Buy Now — primary filled ink */
body.single-product .buy-now-button,
body.single-product .buy-now-button.single_add_to_cart_button {
  background: var(--rj-ink) !important;
  border-color: var(--rj-ink) !important;
  color: var(--rj-cream) !important;
}
body.single-product .buy-now-button:hover,
body.single-product .buy-now-button.single_add_to_cart_button:hover {
  background: var(--rj-ink-2) !important;
  border-color: var(--rj-ink-2) !important;
  color: var(--rj-cream) !important;
  transform: translateY(-1px);
}

/* Row 2 — WhatsApp full-width with brand-green accent */
body.single-product .jonaki-enquire-btn {
  flex: 1 1 100% !important;
  order: 2;
  background: transparent !important;
  border-color: var(--rj-wa) !important;
  color: var(--rj-wa-dark) !important;
  margin-top: 2px !important;
}
body.single-product .jonaki-enquire-btn:hover {
  background: var(--rj-wa) !important;
  border-color: var(--rj-wa) !important;
  color: #fff !important;
}
body.single-product .jonaki-enquire-btn svg {
  width: 16px !important;
  height: 16px !important;
  color: currentColor !important;
  fill: currentColor !important;
}

/* Mobile — stack everything as full-width rows so nothing gets cramped. */
@media (max-width: 520px) {
  body.single-product .buy-now-button,
  body.single-product .single_add_to_cart_button,
  body.single-product .jonaki-enquire-btn {
    flex: 1 1 100% !important;
  }
  body.single-product .single_add_to_cart_button { order: 2; }
  body.single-product .jonaki-enquire-btn         { order: 3; }
}

/* ===== Secondary CTAs (Reserve + Video) — as Aangan underline links ===== */
.rjpe-secondary-ctas {
  margin-top: 16px;
  display: flex; flex-wrap: wrap;
  gap: 20px;
}
.rjpe-scta {
  flex: none;
  display: inline-flex;
  align-items: center; gap: 8px;
  padding: 4px 0 4px;
  font-size: 11.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--rj-ink-soft);
  background: transparent !important;
  border: none;
  border-bottom: 1px solid var(--rj-rule);
  border-radius: 0;
  text-decoration: none !important;
  transition: color 0.2s ease, border-color 0.2s ease;
}
.rjpe-scta:hover {
  color: var(--rj-red);
  border-bottom-color: var(--rj-red);
  transform: none;
  box-shadow: none;
}
.rjpe-scta svg { width: 13px; height: 13px; color: currentColor; }
.rjpe-scta-reserve,
.rjpe-scta-video { background: transparent; color: var(--rj-ink-soft); }

/* ===== Savings scheme plug — as a quiet ruled row ===== */
.rjpe-savings-plug {
  margin: 22px 0 0;
  padding: 16px 0;
  border: none;
  border-top: 1px solid var(--rj-rule);
  border-bottom: 1px solid var(--rj-rule);
  background: transparent;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 16px;
  align-items: center;
  border-radius: 0;
}
.rjpe-savings-icon { color: var(--rj-brass-dark); flex-shrink: 0; }
.rjpe-savings-text strong {
  font-family: 'Fraunces', serif;
  font-size: 16px; font-weight: 400; color: var(--rj-ink);
  display: block; margin-bottom: 2px;
}
.rjpe-savings-text p {
  margin: 0; font-size: 12.5px; color: var(--rj-ink-soft);
}
.rjpe-savings-cta {
  font-size: 10.5px; letter-spacing: 0.22em; text-transform: uppercase;
  font-weight: 500;
  color: var(--rj-red) !important;
  background: transparent !important;
  padding: 4px 0 !important;
  border-bottom: 1px solid var(--rj-red);
  text-decoration: none !important;
  border-radius: 0 !important;
}
.rjpe-savings-cta:hover { color: var(--rj-red-dark) !important; border-bottom-color: var(--rj-red-dark); }

/* ===== Pincode block ===== */
.rjpe-pincode {
  margin: 22px 0 0;
  padding: 20px 0;
  border: none;
  border-top: 1px solid var(--rj-rule);
  background: transparent;
  border-radius: 0;
}
.rjpe-pincode label {
  display: block;
  font-size: 10.5px; letter-spacing: 0.24em; text-transform: uppercase;
  color: var(--rj-ink-soft); font-weight: 500;
  margin-bottom: 10px;
}
.rjpe-pincode-row { display: flex; gap: 10px; flex-wrap: wrap; }
.rjpe-pincode-row input {
  flex: 1 1 140px;
  min-width: 0;            /* override default flex item min-width:auto */
  padding: 12px 14px;
  font-family: 'DM Sans', sans-serif;
  font-size: 14px;
  color: var(--rj-ink);
  background: var(--rj-paper);
  border: 1px solid var(--rj-rule);
  border-radius: 0;
}
.rjpe-pincode-row input:focus {
  outline: 2px solid var(--rj-red);
  outline-offset: 1px;
  border-color: transparent;
}
.rjpe-pincode-btn {
  padding: 12px 22px;
  font-family: 'DM Sans', sans-serif;
  font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase;
  font-weight: 500;
  background: var(--rj-ink);
  color: var(--rj-cream);
  border: 1px solid var(--rj-ink);
  border-radius: 0;
  cursor: pointer;
  transition: background 0.2s ease;
}
.rjpe-pincode-btn:hover { background: var(--rj-ink-2); }
.rjpe-pincode-result {
  margin-top: 12px;
  font-family: 'Fraunces', serif;
  font-size: 14px;
  line-height: 1.6;
  color: var(--rj-ink);
}
.rjpe-pincode-result strong {
  display: block;
  font-family: 'Fraunces', serif;
  font-weight: 500;
  color: var(--rj-ink);
  margin-bottom: 4px;
}
.rjpe-pincode-result.is-error { color: var(--rj-red); }

/* ===== Full-width sections (promise / reviews / craft / pair-with) ===== */
body.single-product .modern-product-details {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0;
  background: var(--rj-cream);
}

/* Section header pattern: small-caps eyebrow + large serif title */
.rjpe-section-head {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 40px;
  align-items: end;
  max-width: 1320px;
  margin: 72px auto 0;
  padding: 0 0 0 0;
}
@media (max-width: 1024px) { .rjpe-section-head { grid-template-columns: 1fr; gap: 16px; } .rjpe-section-head > :first-child { display: none; } }
.rjpe-section-head .rjpe-rule { height: 1px; background: var(--rj-rule); margin-bottom: 14px; align-self: end; }
.rjpe-section-head h2 {
  font-family: 'Fraunces', serif;
  font-weight: 300;
  font-size: clamp(28px, 3.6vw, 44px);
  line-height: 1.05;
  letter-spacing: -0.015em;
  margin: 0;
  color: var(--rj-ink);
}
.rjpe-section-head h2 em { font-style: italic; color: var(--rj-red); font-weight: 400; }
.rjpe-section-head small {
  display: block;
  font-size: 10.5px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--rj-red);
  font-weight: 500;
  margin-bottom: 12px;
}

/* ===== Trust band — reviews + Rupashree Promise ===== */
.rjpe-trust-band {
  margin: 36px auto 0;
  padding: 0 20px;
  background: transparent;
  border: none;
  max-width: 1320px;
}

/* Reviews pill (Google badge) */
.rjpe-reviews-pill {
  display: inline-flex;
  flex-wrap: wrap;          /* let content wrap on narrow viewports */
  align-items: center;
  gap: 14px;
  margin-bottom: 40px;
  padding: 14px 20px;
  max-width: 100%;          /* never overflow parent */
  box-sizing: border-box;
  background: var(--rj-paper);
  border: 1px solid var(--rj-rule);
  border-radius: 0;
  color: var(--rj-ink);
  box-shadow: none;
  text-decoration: none !important;
  font-family: 'DM Sans', sans-serif;
  font-size: 13px;
  transition: border-color 0.2s ease;
}
.rjpe-reviews-pill:hover { border-color: var(--rj-ink); transform: none; box-shadow: none; color: var(--rj-ink); }
.rjpe-google-logo { display: inline-flex; }
.rjpe-reviews-stars { color: var(--rj-brass); letter-spacing: 4px; font-size: 17px; }
.rjpe-reviews-num strong { font-family: 'Fraunces', serif; font-weight: 500; font-size: 20px; margin-right: 6px; }
.rjpe-reviews-link {
  font-size: 10.5px; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--rj-red); font-weight: 500; margin-left: 6px;
  border-bottom: 1px solid currentColor; padding-bottom: 1px;
}

.rjpe-promise-title {
  font-family: 'Fraunces', serif;
  font-weight: 300;
  font-size: clamp(28px, 3.4vw, 40px);
  line-height: 1.05;
  letter-spacing: -0.015em;
  color: var(--rj-ink);
  margin: 0 0 6px;
}
.rjpe-promise-title::before {
  content: 'The Rupashree promise';
  display: block;
  font-family: 'DM Sans', sans-serif;
  font-size: 10.5px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--rj-red);
  font-weight: 500;
  margin-bottom: 10px;
}

/* Hide the default title text by using CSS generated content for elegance */
.rjpe-promise-title { visibility: hidden; position: relative; line-height: 0; height: 0; margin: 0; }
.rjpe-promise-title::before { visibility: visible; margin-bottom: 0; }
/* Add the actual stable heading below — let's use a different approach */
.rjpe-trust-band .rjpe-promise-title { visibility: visible; height: auto; line-height: 1.05; margin: 0 0 30px; }
.rjpe-trust-band .rjpe-promise-title::before { margin-bottom: 14px; }

/* Promise grid — numbered borderless cards with only dividers */
.rjpe-promise-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border: none;
}
.rjpe-promise {
  padding: 28px 28px 32px;
  background: transparent;
  border: none;
  border-right: 1px solid var(--rj-rule);
  border-radius: 0;
  transition: background 0.2s ease;
  position: relative;
}
.rjpe-promise:hover { transform: none; box-shadow: none; background: var(--rj-paper); }
.rjpe-promise:nth-child(3n) { border-right: none; }
.rjpe-promise:nth-child(n+4) { border-top: 1px solid var(--rj-rule); }
.rjpe-promise svg { display: none; }
.rjpe-promise::before {
  counter-increment: rjpe-promise-counter;
  content: "0" counter(rjpe-promise-counter);
  display: block;
  font-size: 10.5px; letter-spacing: 0.26em; text-transform: uppercase;
  color: var(--rj-red);
  font-weight: 500;
  margin-bottom: 18px;
}
.rjpe-promise-grid { counter-reset: rjpe-promise-counter; }
.rjpe-promise h4 {
  font-family: 'Fraunces', serif;
  font-weight: 400;
  font-size: 20px; line-height: 1.2;
  color: var(--rj-ink);
  margin: 0 0 8px;
  letter-spacing: -0.005em;
}
.rjpe-promise p {
  font-size: 13.5px; line-height: 1.55;
  color: var(--rj-ink-soft);
  margin: 0;
}

@media (max-width: 900px) {
  .rjpe-promise-grid { grid-template-columns: 1fr 1fr; }
  .rjpe-promise:nth-child(3n) { border-right: 1px solid var(--rj-rule); }
  .rjpe-promise:nth-child(2n) { border-right: none; }
  .rjpe-promise:nth-child(n+3) { border-top: 1px solid var(--rj-rule); }
}
@media (max-width: 560px) {
  .rjpe-promise-grid { grid-template-columns: 1fr; }
  .rjpe-promise { border-right: none !important; }
  .rjpe-promise:nth-child(n+2) { border-top: 1px solid var(--rj-rule); }
}

/* ===== Craft + care — Aangan details accordion ===== */
.rjpe-info-tabs {
  margin: 56px auto 0;
  max-width: 1320px;
  padding: 0;
}
.rjpe-info-item {
  background: transparent;
  border: none;
  border-top: 1px solid var(--rj-rule);
  border-radius: 0;
  padding: 22px 0;
  margin: 0;
}
.rjpe-info-item:last-child { border-bottom: 1px solid var(--rj-rule); }
.rjpe-info-item[open] { box-shadow: none; }
.rjpe-info-item summary {
  font-family: 'Fraunces', serif;
  font-weight: 400;
  font-size: 22px;
  color: var(--rj-ink);
  letter-spacing: -0.005em;
}
.rjpe-info-item summary::after {
  font-size: 24px;
  color: var(--rj-ink-soft);
  font-weight: 300;
}
.rjpe-info-item[open] summary { color: var(--rj-red); }
.rjpe-info-item p,
.rjpe-info-item ul {
  margin-top: 14px;
  font-family: 'Fraunces', serif;
  font-weight: 300;
  font-size: 16px;
  line-height: 1.7;
  color: var(--rj-ink);
}
.rjpe-info-item ul { padding-left: 20px; }
.rjpe-info-item li { margin-bottom: 6px; font-family: 'DM Sans', sans-serif; font-size: 14px; color: var(--rj-ink-soft); font-weight: 300; }
.rjpe-cert-link {
  color: var(--rj-red);
  font-family: 'DM Sans', sans-serif;
  font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase;
  font-weight: 500;
  border-bottom: 1px solid currentColor;
  padding-bottom: 2px;
  text-decoration: none !important;
}

/* ===== Pair it with ===== */
.rjpe-pair-section {
  margin: 72px auto 0;
  padding: 0;
  max-width: 1320px;
}
.rjpe-pair-section h3 {
  font-family: 'Fraunces', serif;
  font-weight: 300;
  font-size: clamp(28px, 3.6vw, 44px);
  line-height: 1.05;
  letter-spacing: -0.015em;
  color: var(--rj-ink);
  margin: 0;
}
.rjpe-pair-section h3::before {
  content: 'To complete the set';
  display: block;
  font-family: 'DM Sans', sans-serif;
  font-size: 10.5px; letter-spacing: 0.26em; text-transform: uppercase;
  color: var(--rj-red); font-weight: 500;
  margin-bottom: 14px;
}
.rjpe-pair-sub {
  margin: 12px 0 28px;
  font-family: 'Fraunces', serif;
  font-weight: 300;
  font-size: 17px;
  color: var(--rj-ink-soft);
}

.rjpe-pair-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.rjpe-pair-card {
  background: transparent;
  border: none;
  overflow: visible;
  color: var(--rj-ink);
  text-decoration: none !important;
  transition: transform 0.2s ease;
}
.rjpe-pair-card:hover { transform: translateY(-3px); box-shadow: none; color: var(--rj-ink); }
.rjpe-pair-img {
  aspect-ratio: 4/5;
  background: var(--rj-paper);
  overflow: hidden;
  position: relative;
}
.rjpe-pair-img::after {
  content: '';
  position: absolute; inset: 12px;
  border: 1px solid transparent;
  transition: border-color 0.25s ease;
  pointer-events: none;
}
.rjpe-pair-card:hover .rjpe-pair-img::after { border-color: var(--rj-ink); }
.rjpe-pair-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rjpe-pair-info { padding: 14px 0 0; }
.rjpe-pair-info h4 {
  font-family: 'Fraunces', serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.3;
  color: var(--rj-ink);
  margin: 0 0 4px;
  letter-spacing: -0.005em;
}
.rjpe-pair-price {
  font-family: 'Fraunces', serif;
  font-weight: 400;
  font-size: 15px;
  color: var(--rj-ink);
}

@media (max-width: 900px) {
  .rjpe-pair-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ===== Sticky mobile bottom bar ===== */
.rjpe-stickybar {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 999;
  background: var(--rj-cream);
  border-top: 1px solid var(--rj-ink);
  box-shadow: 0 -4px 20px rgba(43, 32, 20, 0.08);
  transform: translateY(110%);
  transition: transform 0.25s ease;
  display: none;
}
.rjpe-stickybar.is-visible { transform: translateY(0); }
.rjpe-stickybar[hidden] { display: none; }
.rjpe-stickybar-inner {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 14px;
  max-width: 720px; margin: 0 auto;
}
.rjpe-stickybar-img {
  width: 48px; height: 48px; object-fit: cover;
  flex-shrink: 0;
  border: 1px solid var(--rj-rule);
}
.rjpe-stickybar-meta { flex: 1; min-width: 0; }
.rjpe-stickybar-name {
  font-family: 'Fraunces', serif;
  font-weight: 400;
  font-size: 13px; line-height: 1.2;
  color: var(--rj-ink);
  overflow: hidden; text-overflow: ellipsis;
  display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical;
}
.rjpe-stickybar-price {
  font-family: 'Fraunces', serif;
  font-size: 15px;
  color: var(--rj-ink);
  margin-top: 2px;
  font-variant-numeric: tabular-nums;
}
.rjpe-stickybar-price del { opacity: 0.5; font-size: 0.8em; margin-right: 4px; }
.rjpe-stickybar-btn {
  flex-shrink: 0;
  border: 1px solid var(--rj-ink);
  cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  gap: 6px;
  padding: 11px 16px;
  font-family: 'DM Sans', sans-serif;
  font-size: 10.5px; letter-spacing: 0.22em; text-transform: uppercase;
  font-weight: 500;
  text-decoration: none !important;
  transition: transform 0.15s ease, background 0.15s ease;
  border-radius: 0;
}
.rjpe-stickybar-btn-wa {
  width: 44px; height: 44px; padding: 0;
  background: var(--rj-wa);
  color: var(--rj-cream);
  border-color: var(--rj-wa);
}
.rjpe-stickybar-btn-wa:hover { background: var(--rj-wa-dark); border-color: var(--rj-wa-dark); color: var(--rj-cream); }
.rjpe-stickybar-btn-buy {
  background: var(--rj-red);
  color: var(--rj-cream);
  border-color: var(--rj-red);
}
.rjpe-stickybar-btn-buy:hover { background: var(--rj-red-dark); border-color: var(--rj-red-dark); color: var(--rj-cream); transform: translateY(-1px); }

@media (max-width: 720px) {
  .rjpe-stickybar { display: block; }
  body.single-product { padding-bottom: 76px; }
}

/* ===== OceanWP Woo overrides — kill the heavy feeling ===== */
body.single-product .summary .price { font-family: 'Fraunces', serif; }
body.single-product .woocommerce-product-details__short-description {
  font-family: 'Fraunces', serif;
  font-weight: 300;
  font-size: 16px;
  line-height: 1.65;
  color: var(--rj-ink);
  margin-top: 18px;
}
/* Hide default product_meta block — SKU + Categories + Tags are already
   surfaced in the ledger section. Keeping it here would add ~50px of empty
   space between the occasion chip and the CTA row. */
body.single-product .modern-product-info .product_meta { display: none !important; }

/* ===========================================================
   "The open ledger" — full-width section, Aangan editorial
   =========================================================== */
.rjpe-ledger-section {
  max-width: 1320px;
  margin: 72px auto 0;
  padding: 0 20px;
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 0 40px;
  align-items: start;
}
.rjpe-ledger-section::before {
  content: '';
  border-right: 1px solid var(--rj-rule);
  align-self: stretch;
}
@media (max-width: 1024px) {
  .rjpe-ledger-section { grid-template-columns: 1fr; gap: 0; }
  .rjpe-ledger-section::before { display: none; }
}
.rjpe-ledger-head {
  grid-column: 2;
}
.rjpe-ledger-eyebrow {
  display: block;
  font-family: 'DM Sans', sans-serif;
  font-size: 10.5px; letter-spacing: 0.26em; text-transform: uppercase;
  color: var(--rj-red); font-weight: 500; margin-bottom: 14px;
}
.rjpe-ledger-title {
  font-family: 'Fraunces', Georgia, serif !important;
  font-weight: 300 !important;
  font-size: clamp(28px, 3.6vw, 44px) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.015em !important;
  color: var(--rj-ink) !important;
  margin: 0 0 14px !important;
  padding: 0 !important;
}
.rjpe-ledger-title em { font-style: italic; color: var(--rj-red); font-weight: 400; }
.rjpe-ledger-intro {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 300;
  font-size: 16px;
  line-height: 1.7;
  color: var(--rj-ink-soft);
  max-width: 54ch;
  margin: 0 0 32px;
}

.rjpe-ledger-body {
  grid-column: 2;
}

/* Inside the body, the combined-specifications-container lays out Specs + Price as two columns */
.rjpe-ledger-section .combined-specifications-container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  max-width: 100%;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
@media (max-width: 780px) {
  .rjpe-ledger-section .combined-specifications-container { grid-template-columns: 1fr; gap: 32px; }
}
.rjpe-ledger-section .toggle-divider { display: none; }

/* Each sub-block — specs / price-breakup */
.rjpe-ledger-section .specifications-container {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* Always-open: kill accordion toggle affordance */
.rjpe-ledger-section .specifications-toggle,
.rjpe-ledger-section .price-breakup-toggle {
  cursor: default !important;
  font-family: 'Fraunces', Georgia, serif !important;
  font-weight: 400 !important;
  font-size: 22px !important;
  color: var(--rj-ink) !important;
  padding: 0 0 14px !important;
  margin: 0 0 14px !important;
  border: none !important;
  border-bottom: 1px solid var(--rj-rule) !important;
  display: block !important;
  letter-spacing: -0.005em !important;
  text-transform: none !important;
  background: transparent !important;
  pointer-events: none !important;
}
.rjpe-ledger-section .toggle-icon { display: none !important; }

/* Always-visible content */
.rjpe-ledger-section .specifications-content,
.rjpe-ledger-section .price-breakup-content {
  display: block !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  opacity: 1 !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  border-radius: 0 !important;
}

/* Spec rows — flat list with label left, value right */
.rjpe-ledger-section .spec-item {
  display: flex !important;
  justify-content: space-between !important;
  align-items: baseline !important;
  gap: 16px !important;
  padding: 12px 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: none !important;
  border-bottom: 1px dashed var(--rj-rule-soft) !important;
  border-left: none !important;
  border-radius: 0 !important;
}
.rjpe-ledger-section .spec-item:last-child { border-bottom: none !important; }
.rjpe-ledger-section .spec-label {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 13px !important;
  color: var(--rj-ink-soft) !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  flex: 1 !important;
  padding: 0 !important;
  background: transparent !important;
}
.rjpe-ledger-section .spec-value {
  font-family: 'Fraunces', Georgia, serif !important;
  font-size: 17px !important;
  color: var(--rj-ink) !important;
  font-weight: 400 !important;
  font-variant-numeric: tabular-nums;
  text-align: right !important;
  flex-shrink: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}

/* The "Total" row — bolder, with a full ink rule above */
.rjpe-ledger-section .spec-item.total-price {
  border-bottom: none !important;
  border-top: 2px solid var(--rj-ink) !important;
  padding-top: 16px !important;
  padding-bottom: 4px !important;
  margin-top: 6px !important;
  background: transparent !important;
}
.rjpe-ledger-section .spec-item.total-price .spec-label {
  font-family: 'Fraunces', Georgia, serif !important;
  font-size: 17px !important;
  color: var(--rj-ink) !important;
  font-weight: 500 !important;
}
.rjpe-ledger-section .spec-item.total-price .spec-value {
  font-size: 22px !important;
  color: var(--rj-ink) !important;
  font-weight: 500 !important;
}

/* Struck / discounted making charges still show but in the right tone */
.rjpe-ledger-section .spec-value .price-original {
  text-decoration: line-through !important;
  color: var(--rj-ink-soft) !important;
  font-size: 0.8em !important;
  margin-right: 6px !important;
  opacity: 0.7 !important;
  font-weight: 300 !important;
}
.rjpe-ledger-section .spec-value .price-discounted {
  color: var(--rj-ink) !important;
  font-weight: 500 !important;
  font-size: 1em !important;
}

/* Kill extra cruft rows that rendered with colored backgrounds */
.rjpe-ledger-section .spec-item.other-charges,
.rjpe-ledger-section .spec-item.making-charges-discounted {
  background: transparent !important;
  border-left: none !important;
  padding-left: 0 !important;
}
.rjpe-ledger-section .spec-item.other-charges .spec-label,
.rjpe-ledger-section .spec-item.making-charges-discounted .spec-label {
  color: var(--rj-ink-soft) !important;
  font-weight: 400 !important;
}

/* Hide duplicate / redundant spec rows that the legacy renderer emits. */
.rjpe-ledger-section .specifications-content > .specs-grid { display: none !important; }

/* Keep the ledger list visually continuous — the `.additional-specs` wrapper
   was adding a second horizontal rule right below "Net Weight". Drop the
   wrapper's own padding / margin / border so its children inherit the same
   dashed-rule rhythm as the rows above. */
.rjpe-ledger-section .specifications-content > .additional-specs {
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
}

/* Suppress the old in-column render entirely — ledger only renders in the new section */
body.single-product .modern-product-info > .modern-product-specifications,
body.single-product .modern-product-info .combined-specifications-container {
  display: none !important;
}

/* Hide the Ocean-Extra social-share row (Tweet / Facebook / Pinterest / Mail)
   on product pages — it clashes with the Aangan aesthetic and duplicates our
   WhatsApp share in the gallery footer. */
body.single-product #owp-social-share,
body.single-product .oceanwp-social-share,
body.single-product .ocean-social-share,
body.single-product .oceanwp-social-sharing,
body.single-product .woocommerce-product-sharing,
body.single-product .owp-product-sharing,
body.single-product .product-social-share { display: none !important; }

/* Hide OceanWP's sticky "Selected" floating bar — it's the .owp-floating-bar
   wrapper that duplicates our own mobile sticky bar and overlaps the hero
   area at the top of the page on desktop. */
body.single-product .owp-floating-bar,
body.single-product .owp-sticky-add-to-cart,
body.single-product #owp-sticky-add-to-cart,
body.single-product .owp-product-sticky-cart,
body.single-product .woocommerce-product-sticky-add-to-cart { display: none !important; }

/* Kill ugly related-products heading if present */
body.single-product .related.products > h2,
body.single-product .upsells.products > h2 {
  font-family: 'Fraunces', serif;
  font-weight: 300;
  font-size: clamp(28px, 3.4vw, 40px);
  letter-spacing: -0.015em;
  color: var(--rj-ink);
  margin: 60px 0 24px;
}
body.single-product .related.products > h2::before,
body.single-product .upsells.products > h2::before {
  content: 'You may also like';
  display: block;
  font-family: 'DM Sans', sans-serif;
  font-size: 10.5px; letter-spacing: 0.26em; text-transform: uppercase;
  color: var(--rj-red); font-weight: 500;
  margin-bottom: 14px;
}

/* ===== Rhythm + overlap fixes ===== */

/* Page-level sections get consistent top spacing, except the top one. */
body.single-product .modern-product-details > *,
body.single-product .modern-product-details > section {
  margin-top: 72px;
}
body.single-product .modern-product-details > *:first-child { margin-top: 0; }

@media (max-width: 760px) {
  body.single-product .modern-product-details > *,
  body.single-product .modern-product-details > section { margin-top: 48px; }
}

/* Info column: consistent vertical rhythm so blocks never touch. */
.rjpe-exchange-badge { margin-top: 26px; }
.rjpe-proof-row     { margin-top: 18px; margin-bottom: 0; }
.rjpe-occasion-chips{ margin-top: 22px; }
.rjpe-dimensions    { margin-top: 24px; }
.rjpe-secondary-ctas{ margin-top: 20px; }
.rjpe-savings-plug  { margin-top: 28px; }
.rjpe-pincode       { margin-top: 22px; }

/* Spine: stretch to the full row height so the sticky inner text has room
   to slide along the info column as the user scrolls. */
.rjpe-spine {
  align-self: stretch;
  min-height: 100%;
}

/* Promise title: the ::before eyebrow already renders; make the h3 robust. */
.rjpe-trust-band .rjpe-promise-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 300;
  font-size: clamp(28px, 3.4vw, 40px);
  line-height: 1.05;
  letter-spacing: -0.015em;
  color: var(--rj-ink);
  margin: 0 0 30px;
  visibility: visible; height: auto; position: static;
}
.rjpe-trust-band .rjpe-promise-title::before {
  content: 'The Rupashree promise';
  display: block;
  font-family: 'DM Sans', sans-serif;
  font-size: 10.5px; letter-spacing: 0.26em; text-transform: uppercase;
  color: var(--rj-red); font-weight: 500; margin-bottom: 14px;
  visibility: visible;
}

/* Share pill inside gallery frame no longer exists — remove any stale positioning. */
.rjpe-gallery-share { position: static; top: auto; right: auto; }

/* Info tabs — give them breathing room from the promise above */
.rjpe-info-tabs { margin-top: 72px; padding: 0 20px; max-width: 1320px; }

/* Pair section consistent padding */
.rjpe-pair-section { padding: 0 20px; }

/* Kill any leftover margin from the removed accordion wrapper */
body.single-product .modern-product-info .modern-product-specifications { display: none; }

/* Secondary CTA + pincode: don't let them wrap under the Savings plug */
.rjpe-savings-plug { clear: both; }

/* Gallery footer: if there's no wishlist/share content, keep the row height */
.rjpe-gallery-footer:empty { display: none; }

/* Plate-no on tiny viewports: ease the position so it doesn't collide with share */
@media (max-width: 560px) {
  .rjpe-plate-no { top: 12px; right: 12px; font-size: 10px; padding: 4px 8px; }
  .rjpe-corner { width: 28px; height: 28px; }
  body.single-product .product_title { font-size: 28px !important; }
  body.single-product .modern-product-buttons { flex-direction: column; }

  /* Reviews pill — tighten so it fits in narrow info column without overflow */
  .rjpe-reviews-pill {
    width: 100%;
    gap: 8px;
    padding: 12px 14px;
    font-size: 12px;
  }
  .rjpe-reviews-stars { font-size: 15px; letter-spacing: 2px; }
  .rjpe-reviews-num strong { font-size: 17px; margin-right: 4px; }
  .rjpe-reviews-link { font-size: 9.5px; letter-spacing: 0.18em; margin-left: 0; }
  .rjpe-google-logo svg { width: 18px; height: 18px; }

  /* Pincode — let button drop to its own row if needed */
  .rjpe-pincode-row input { flex: 1 1 100%; }
  .rjpe-pincode-btn { padding: 12px 18px; flex: 0 0 auto; }
  body.single-product .single_add_to_cart_button,
  body.single-product .buy-now-button,
  body.single-product .jonaki-enquire-btn { width: 100%; }
  body.single-product .modern-product-summary > .price::after {
    margin-left: 0;
    padding-left: 0;
    display: block;
    flex-basis: 100%;
    margin-top: 4px;
  }
}
