/* ══════════════════════════════════════════════════════════
   FRANCE MINERAUX V6 — SINGLE PRODUCT PAGE (.pp-)
   Basé sur la maquette page-produit-bracelet-quartz-rose.html
   ══════════════════════════════════════════════════════════ */

/* ── Product Main ─────────────────────────────── */
.pp-product { padding: 48px 0 80px; background: var(--white); }
.pp-product-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: flex-start;
}

/* ── Gallery ──────────────────────────────────── */
.pp-gallery { position: sticky; top: 120px; }
.pp-gallery-main {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  background: var(--cream-warm);
  margin-bottom: 16px;
  aspect-ratio: 1;
}
.pp-gallery-main img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s ease;
  cursor: zoom-in;
}
.pp-gallery-main:hover img { transform: scale(1.05); }
.pp-gallery-thumbs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.pp-thumb {
  border-radius: 8px;
  overflow: hidden;
  border: 2px solid transparent;
  cursor: pointer;
  transition: border-color .3s ease;
  aspect-ratio: 1;
}
.pp-thumb.active, .pp-thumb:hover { border-color: var(--gold); }
.pp-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pp-badge-sale {
  position: absolute;
  top: 16px;
  left: 16px;
  background: var(--aubergine);
  color: var(--gold);
  font-size: .68rem;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  font-weight: 600;
  padding: 6px 14px;
  border-radius: 100px;
  z-index: 2;
}

/* ── Product Info ─────────────────────────────── */
.pp-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 2rem;
  color: var(--aubergine);
  line-height: 1.25;
  margin-bottom: 12px;
}
.pp-rating {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 20px;
}
.pp-stars { color: var(--gold); font-size: .95rem; }
.pp-review-count { font-size: .78rem; color: var(--text-muted); }

/* Price */
.pp-price-box {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 24px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--cream);
  font-family: 'Cormorant Garamond', serif;
}
.pp-price-box .woocommerce-Price-amount,
.pp-price-box .woocommerce-Price-currencySymbol,
.pp-price-box bdi { font-family: inherit !important; }
.pp-price-old {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.1rem;
  color: var(--text-muted);
  text-decoration: line-through;
  font-weight: 400;
}
.pp-price-old .woocommerce-Price-amount { color: inherit; font-family: inherit; }
.pp-price-current {
  font-family: 'Cormorant Garamond', serif;
  font-size: 2.2rem;
  color: var(--aubergine);
  font-weight: 600;
}
.pp-price-current .woocommerce-Price-amount { color: inherit; }
/* Composite/bundle price — WC renders del (old price) + ins (sale price) inside .pp-price-current */
.pp-price-current.pp-price-composite {
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
}
.pp-price-current.pp-price-composite del {
  font-size: 1.1rem;
  color: var(--text-muted, #9A8A9A);
  text-decoration: line-through;
  font-weight: 400;
}
.pp-price-current.pp-price-composite del .woocommerce-Price-amount {
  color: var(--text-muted, #9A8A9A);
}
.pp-price-current.pp-price-composite ins {
  text-decoration: none;
  font-size: 2.2rem;
  color: var(--aubergine, #3C2A3C);
  font-weight: 600;
}
.pp-price-current.pp-price-composite ins .woocommerce-Price-amount {
  color: var(--aubergine, #3C2A3C);
}
.pp-price-save {
  font-size: .72rem;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--white);
  background: var(--aubergine);
  padding: 4px 10px;
  border-radius: 100px;
  font-weight: 600;
}

/* Specs grid */
.pp-specs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 28px;
}
.pp-spec {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  background: var(--gold-ultra);
  border-radius: 8px;
  font-size: .82rem;
  color: var(--text-soft);
}
.pp-spec-icon { flex-shrink: 0; }
.pp-spec-label {
  font-size: .65rem;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--text-muted);
  display: block;
}
.pp-spec-value {
  font-weight: 600;
  color: var(--aubergine);
  display: block;
}

/* Short desc notice (warnings, notes from short description) */
.pp-short-desc-notice {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 16px;
}
.pp-short-desc-notice-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: var(--gold-ultra, rgba(196,162,101,.08));
  border-radius: 8px;
  border-left: 3px solid var(--gold, #C4A265);
}
.pp-short-desc-notice-item svg {
  flex-shrink: 0;
}
.pp-short-desc-notice-item p {
  margin: 0;
  font-family: 'Raleway', sans-serif;
  font-size: .82rem;
  line-height: 1.5;
  color: var(--text-soft);
}
.pp-short-desc-notice-item strong {
  color: var(--aubergine);
  font-weight: 600;
}

/* Add to cart */
.pp-add-row { margin-bottom: 20px; width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; overflow: hidden !important; }
.pp-cart-form {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  width: 100% !important;
  max-width: 100% !important;
  align-items: center !important;
  box-sizing: border-box !important;
}
/* When addons card/action bar are present, they take full width and stack */
.pp-cart-form .pp-addons-card {
  flex: 0 0 100% !important;
  width: 100% !important;
}
.pp-cart-form .pp-action-bar {
  flex: 0 0 100% !important;
  width: 100% !important;
}
.pp-qty {
  display: inline-flex !important;
  align-items: center !important;
  border: 1.5px solid var(--cream, #EDE7DD) !important;
  border-radius: 10px !important;
  overflow: hidden !important;
  background: var(--white, #fff) !important;
  box-shadow: 0 2px 8px rgba(60, 42, 60, .04) !important;
  width: 152px !important;
  min-width: 152px !important;
  max-width: 152px !important;
  flex-shrink: 0 !important;
  flex-grow: 0 !important;
  flex-wrap: nowrap !important;
}
.pp-qty button,
.pp-qty-minus,
.pp-qty-plus {
  width: 48px !important;
  min-width: 48px !important;
  height: 50px !important;
  border: none !important;
  background: var(--cream-warm, #FAF7F2) !important;
  font-size: 1.2rem !important;
  font-weight: 300 !important;
  cursor: pointer !important;
  color: var(--aubergine, #3C2A3C) !important;
  transition: all .2s ease !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  float: none !important;
}
.pp-qty-minus {
  border-right: 1px solid var(--cream, #EDE7DD) !important;
}
.pp-qty-plus {
  border-left: 1px solid var(--cream, #EDE7DD) !important;
}
.pp-qty button:hover,
.pp-qty-minus:hover,
.pp-qty-plus:hover {
  background: var(--gold-ultra, rgba(196,162,101,.12)) !important;
  color: var(--gold, #C4A265) !important;
}
.pp-qty input,
.pp-qty-input {
  width: 56px !important;
  max-width: 56px !important;
  height: 50px !important;
  text-align: center !important;
  border: none !important;
  border-left: 0 !important;
  border-right: 0 !important;
  font-family: 'Raleway', sans-serif !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: var(--aubergine, #3C2A3C) !important;
  background: transparent !important;
  -moz-appearance: textfield !important;
  outline: none !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  float: none !important;
}
.pp-qty input::-webkit-inner-spin-button,
.pp-qty input::-webkit-outer-spin-button {
  -webkit-appearance: none !important;
  margin: 0 !important;
}
.pp-add-btn {
  flex: 1 1 0% !important;
  min-width: 0 !important;
  padding: 14px 32px !important;
  background: var(--aubergine, #3C2A3C) !important;
  color: #E8D9BE !important;
  border: none !important;
  border-radius: 8px !important;
  font-family: 'Raleway', sans-serif !important;
  font-size: .82rem !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  transition: all .3s ease !important;
  height: 50px !important;
  line-height: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
}
.pp-add-btn:hover { background: #2a1a2a; }
.pp-out-of-stock {
  color: var(--text-muted);
  font-size: .9rem;
  font-weight: 600;
  padding: 14px 0;
  text-transform: none !important;
}
/* Point 4 — Alerte retour en stock */
.pp-stock-alert {
  margin-top: 8px;
  padding: 20px;
  background: var(--cream-warm, #FAF7F2);
  border: 1px solid var(--cream, #F0EBE3);
  border-radius: 12px;
}
.pp-stock-alert-text {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--aubergine, #3C2A3C);
  margin: 0 0 12px;
}
.pp-stock-alert-form {
  display: flex;
  gap: 8px;
}
.pp-stock-alert-input {
  flex: 1;
  padding: 10px 16px;
  border: 1px solid var(--cream, #E0D8CC);
  border-radius: 8px;
  font-family: 'Raleway', sans-serif;
  font-size: .82rem;
  color: var(--aubergine, #3C2A3C);
  background: #fff;
  outline: none;
  -webkit-appearance: none;
}
.pp-stock-alert-input:focus {
  border-color: var(--gold, #C4A265);
  box-shadow: 0 0 0 3px rgba(196,162,101,.12);
}
.pp-stock-alert-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 18px;
  background: var(--gold, #C4A265);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-family: 'Raleway', sans-serif;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .2s;
  white-space: nowrap;
}
.pp-stock-alert-btn:hover {
  background: #B5903A;
}
.pp-stock-alert-success {
  font-family: 'Raleway', sans-serif;
  font-size: .82rem;
  color: #5a8a5a;
  font-weight: 600;
  margin: 12px 0 0;
}
@media (max-width: 480px) {
  .pp-stock-alert-form { flex-direction: column; }
  .pp-stock-alert-btn { justify-content: center; }
}
/* Price loading placeholder (composite products calculating) */
.pp-price-loading {
  font-style: italic;
  color: var(--text-muted) !important;
  font-size: 1rem !important;
}
/* Hide duplicate dynamic price in add-ons total (synced to .pp-price-box by JS) */
.pp-add-row #product-addons-total {
  position: absolute !important;
  width: 1px !important; height: 1px !important;
  overflow: hidden !important; clip: rect(0,0,0,0) !important;
}

/* Fallback WC add-to-cart (grouped, external, composite, etc.) */
.pp-add-row form.cart {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  align-items: center !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
/* When addon card or action bar present, they take full width */
.pp-add-row form.cart > .pp-addons-card,
.pp-add-row form.cart > .wc-pao-addons-container,
.pp-add-row form.cart .pp-addons-card,
.pp-add-row form.cart .pp-action-bar {
  flex: 0 0 100% !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* ── Composite products (WC Composite Products plugin) ── */
/* Composite form — ensure it fits within the product info column */
.pp-add-row form.composite_form {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
/* All direct children of composite form take full width */
.pp-add-row form.composite_form > .composite_component,
.pp-add-row form.composite_form > div[id^="composite_data_"] {
  flex: 0 0 100% !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
/* NOTE: Removed the [style*="display:none"] reinforcement rule.
   WC Composite plugin manages component visibility itself via inline styles.
   Reinforcing with !important prevented the plugin from showing components when needed. */
/* Composite data wrapper — clean up spacing + kill all borders */
.pp-add-row .composite_data {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  border: none !important;
}
/* Composite wrap (contains price, availability, button) — kill borders/traits */
.pp-add-row .composite_wrap {
  margin-top: 8px;
  width: 100% !important;
  border: none !important;
  border-top: none !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
/* Composite price — hidden because it's synced to V6 .pp-price-box at top */
.pp-add-row .composite_price {
  position: absolute !important;
  width: 1px !important; height: 1px !important;
  overflow: hidden !important; clip: rect(0,0,0,0) !important;
  /* Keep visible to DOM for JS price sync, just visually hidden */
}
/* Composite availability — HIDE stock text + trait in composite_wrap (pendentif/parure) */
.pp-add-row .composite_availability,
.pp-add-row .composite_wrap .composite_availability,
.pp-add-row .composite_data .composite_availability,
.pp-add-row .composite_wrap .stock,
.pp-add-row .composite_data .stock,
.pp-add-row .composite_availability .stock,
.pp-add-row .composite_availability p.stock {
  display: none !important;
}
/* Also hide the composite_message (can render borders/separators) */
.pp-add-row .composite_message,
.pp-add-row .composite_wrap .composite_message {
  display: none !important;
}
/* Composite button section — styled as action bar */
.pp-add-row .composite_button {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin-top: 8px;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
.pp-add-row .composite_button .quantity {
  flex-shrink: 0 !important;
}
.pp-add-row .composite_button .quantity .number-button {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  border: 1.5px solid var(--cream, #EDE7DD) !important;
  border-radius: 10px !important;
  overflow: hidden !important;
  background: var(--white, #fff) !important;
  box-shadow: 0 2px 8px rgba(60, 42, 60, .04) !important;
}
.pp-add-row .composite_button .quantity input.minus,
.pp-add-row .composite_button .quantity input.plus {
  width: 44px !important;
  height: 48px !important;
  border: none !important;
  background: var(--cream-warm, #FAF7F2) !important;
  font-size: 1.1rem !important;
  cursor: pointer !important;
  color: var(--aubergine) !important;
  padding: 0 !important;
  margin: 0 !important;
  line-height: 1 !important;
}
.pp-add-row .composite_button .quantity input.minus:hover,
.pp-add-row .composite_button .quantity input.plus:hover {
  background: var(--gold-ultra, rgba(196,162,101,.12)) !important;
  color: var(--gold, #C4A265) !important;
}
.pp-add-row .composite_button .quantity input.qty {
  width: 48px !important;
  text-align: center !important;
  border: none !important;
  background: transparent !important;
  font-family: 'Raleway', sans-serif !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  color: var(--aubergine) !important;
  height: 48px !important;
  -moz-appearance: textfield !important;
}
.pp-add-row .composite_button .quantity input.qty::-webkit-inner-spin-button,
.pp-add-row .composite_button .quantity input.qty::-webkit-outer-spin-button {
  -webkit-appearance: none !important;
  margin: 0 !important;
}
.pp-add-row .composite_button .composite_add_to_cart_button {
  flex: 1 1 0% !important;
  background: var(--aubergine) !important;
  color: #E8D9BE !important;
  border: none !important;
  border-radius: 8px !important;
  padding: 14px 28px !important;
  font-family: 'Raleway', sans-serif !important;
  font-size: .72rem !important;
  font-weight: 700 !important;
  letter-spacing: 2.5px !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  transition: background .2s ease !important;
  height: 50px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.pp-add-row .composite_button .composite_add_to_cart_button:hover {
  background: #2a1a2a !important;
}
.pp-add-row form.cart .quantity {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  background: var(--cream-warm) !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  flex-shrink: 0 !important;
}
.pp-add-row form.cart .quantity .qty {
  width: 56px !important;
  text-align: center !important;
  border: none !important;
  background: transparent !important;
  font-family: 'Raleway', sans-serif !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
}
.pp-add-row form.cart .single_add_to_cart_button,
.pp-add-row form.cart button[type="submit"] {
  flex: 1 1 0% !important;
  background: var(--aubergine) !important;
  color: #E8D9BE !important;
  border: none !important;
  border-radius: 8px !important;
  padding: 14px 28px !important;
  font-family: 'Raleway', sans-serif !important;
  font-size: .72rem !important;
  font-weight: 700 !important;
  letter-spacing: 2.5px !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  transition: background .2s ease !important;
  height: 50px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.pp-add-row form.cart .single_add_to_cart_button:hover,
.pp-add-row form.cart button[type="submit"]:hover {
  background: #2a1a2a !important;
}
/* Grouped products table in V6 context */
.pp-add-row .group_table {
  width: 100% !important;
  border-collapse: separate !important;
  border-spacing: 0 8px !important;
}
.pp-add-row .group_table td {
  padding: 12px 16px !important;
  background: var(--cream-warm) !important;
  border: none !important;
  font-family: 'Raleway', sans-serif !important;
  font-size: .88rem !important;
}
.pp-add-row .group_table tr td:first-child {
  border-radius: 10px 0 0 10px !important;
}
.pp-add-row .group_table tr td:last-child {
  border-radius: 0 10px 10px 0 !important;
}
.pp-add-row .group_table label {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--aubergine) !important;
}
.pp-add-row .group_table label a {
  color: var(--aubergine) !important;
  text-decoration: none !important;
}
.pp-add-row .group_table label a:hover {
  color: var(--gold) !important;
}
/* External product link button */
.pp-add-row a.single_add_to_cart_button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  background: var(--aubergine) !important;
  color: #E8D9BE !important;
  border: none !important;
  border-radius: 8px !important;
  padding: 14px 28px !important;
  font-family: 'Raleway', sans-serif !important;
  font-size: .72rem !important;
  font-weight: 700 !important;
  letter-spacing: 2.5px !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  height: 50px !important;
  transition: background .2s ease !important;
}
.pp-add-row a.single_add_to_cart_button:hover {
  background: #2a1a2a !important;
}

/* Bracelet size notice */
.pp-bracelet-notice {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: var(--gold-ultra, rgba(196,162,101,.08));
  border-radius: 8px;
  border-left: 3px solid var(--gold, #C4A265);
  margin-bottom: 16px;
}
.pp-bracelet-notice svg {
  flex-shrink: 0;
}
.pp-bracelet-notice p {
  margin: 0;
  font-family: 'Raleway', sans-serif;
  font-size: .82rem;
  line-height: 1.5;
  color: var(--text-soft);
}
.pp-bracelet-notice strong {
  color: var(--aubergine);
  font-weight: 600;
}

/* Reassurance */
.pp-reassurance {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px;
  background: var(--cream-warm);
  border-radius: 12px;
  margin-bottom: 24px;
}
.pp-reassurance-item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: .82rem;
  color: var(--text-soft);
}
.pp-reassurance-item svg { flex-shrink: 0; }

/* Stone link */
.pp-stone-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 24px;
  background: var(--gold-ultra);
  border: 1px solid var(--gold-light);
  border-radius: 12px;
  text-decoration: none;
  color: var(--aubergine);
  font-size: .85rem;
  font-weight: 500;
  transition: all .3s ease;
  margin-top: 16px;
}
.pp-stone-link:hover { border-color: var(--gold); background: var(--gold-pale); }

/* ── Tabs ─────────────────────────────────────── */
.pp-tabs { padding: 80px 0; background: var(--cream-warm); }
.pp-tab-nav {
  display: flex;
  gap: 0;
  border-bottom: 2px solid var(--cream);
  margin-bottom: 40px;
}
.pp-tab-btn {
  padding: 16px 32px;
  background: none;
  border: none;
  font-family: 'Raleway', sans-serif;
  font-size: .82rem;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--text-muted);
  cursor: pointer;
  font-weight: 600;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  transition: all .3s ease;
}
.pp-tab-btn:hover,
.pp-tab-btn.active { color: var(--aubergine); border-bottom-color: var(--gold); }
.pp-tab-panel { display: none; }
.pp-tab-panel.active { display: block; }
/* ── Tab content typography — premium harmonized ── */
/* !important on all rules to beat parent theme MyDecor overrides */
.pp-tab-panel h2 {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1.4rem !important;
  font-weight: 600 !important;
  color: var(--aubergine) !important;
  margin: 0 0 14px !important;
  line-height: 1.3 !important;
}
.pp-tab-panel h3 {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1.15rem !important;
  font-weight: 600 !important;
  color: var(--aubergine) !important;
  margin: 28px 0 10px !important;
  line-height: 1.3 !important;
}
.pp-tab-panel h4 {
  font-family: 'Raleway', sans-serif !important;
  font-size: .88rem !important;
  font-weight: 700 !important;
  color: var(--aubergine) !important;
  margin: 20px 0 8px !important;
  letter-spacing: .3px !important;
}
.pp-tab-panel,
.pp-tab-panel p,
.pp-tab-panel div,
.pp-tab-panel span {
  font-family: 'Raleway', sans-serif !important;
  font-size: .88rem !important;
  color: var(--text-soft, #6B5B6B) !important;
  line-height: 1.8 !important;
}
.pp-tab-panel p {
  margin-bottom: 12px !important;
}
.pp-tab-panel strong,
.pp-tab-panel b {
  color: var(--aubergine) !important;
  font-weight: 700 !important;
  font-family: 'Raleway', sans-serif !important;
  font-size: inherit !important;
}
.pp-tab-panel a {
  color: var(--gold, #C4A265) !important;
  text-decoration: none !important;
  border-bottom: 1px solid rgba(196,162,101,.3) !important;
  transition: border-color .2s !important;
}
.pp-tab-panel a:hover {
  border-bottom-color: var(--gold) !important;
}
.pp-tab-panel ul,
.pp-tab-panel ol { list-style: none !important; padding: 0 !important; padding-left: 0 !important; margin: 0 0 16px !important; }
.pp-tab-panel li {
  padding: 6px 0 !important;
  padding-left: 22px !important;
  position: relative;
  font-family: 'Raleway', sans-serif;
  font-size: .86rem;
  color: var(--text-soft, #6B5B6B);
  line-height: 1.65;
  list-style: none !important;
  list-style-type: none !important;
}
.pp-tab-panel li::marker { content: none !important; display: none !important; font-size: 0 !important; }
.pp-tab-panel li::before {
  content: '' !important;
  position: absolute;
  left: 0;
  top: 13px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gold, #C4A265);
  opacity: .6;
}
/* First h2 in tab (product name) — slightly larger */
.pp-tab-panel h2:first-child {
  font-size: 1.5rem !important;
  margin-bottom: 20px !important;
  padding-bottom: 16px !important;
  border-bottom: 1px solid var(--cream) !important;
}

/* Characteristics table */
.pp-char-table { width: 100%; border-collapse: collapse; border: none !important; border-spacing: 0; }
.pp-char-table,
.pp-char-table tr,
.pp-char-table td { border-left: none !important; border-right: none !important; border-top: none !important; }
.pp-char-table td {
  padding: 14px 16px;
  border-bottom: 1px solid var(--cream) !important;
  font-size: .88rem;
  background: transparent;
}
.pp-char-table td:first-child {
  font-weight: 600;
  color: var(--aubergine);
  width: 200px;
}
.pp-char-table td:last-child { color: var(--text-soft); }
.pp-char-table tr:last-child td { border-bottom: none !important; }
.pp-char-table tr:hover td { background: var(--gold-ultra); }

/* Reviews */
.pp-review {
  background: var(--white);
  border-radius: 12px;
  padding: 28px;
  margin-bottom: 16px;
}
.pp-review-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}

/* Review Form */
.pp-review-form-wrapper {
  margin-top: 40px;
  padding: 36px;
  background: var(--white);
  border: 1px solid var(--gold-light);
  border-radius: 16px;
  position: relative;
}
.pp-review-form-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}
.pp-review-form-header span {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.3rem;
  font-weight: 600;
  color: var(--aubergine);
}
.pp-review-note {
  font-size: .82rem !important;
  color: var(--text-muted) !important;
  margin-bottom: 24px !important;
  font-style: italic;
}
.pp-review-form-wrapper .comment-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.pp-review-form-wrapper .comment-form label {
  font-family: 'Raleway', sans-serif;
  font-size: .72rem;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--aubergine);
  font-weight: 600;
  display: block;
  margin-bottom: 6px;
}
.pp-review-form-wrapper .comment-form input[type="text"],
.pp-review-form-wrapper .comment-form input[type="email"],
.pp-review-form-wrapper .comment-form input[type="url"],
.pp-review-form-wrapper .comment-form textarea {
  width: 100%;
  padding: 14px 18px;
  border: 1.5px solid var(--cream);
  border-radius: 10px;
  font-family: 'Raleway', sans-serif;
  font-size: .88rem;
  color: var(--aubergine);
  background: var(--cream-warm);
  transition: border-color .3s ease, box-shadow .3s ease;
  outline: none;
  box-sizing: border-box;
}
.pp-review-form-wrapper .comment-form input:focus,
.pp-review-form-wrapper .comment-form textarea:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(196, 162, 101, .12);
}
.pp-review-form-wrapper .comment-form textarea {
  min-height: 140px;
  resize: vertical;
}
.pp-review-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 15px 36px;
  background: var(--aubergine);
  color: var(--gold);
  border: none;
  border-radius: 10px;
  font-family: 'Raleway', sans-serif;
  font-size: .78rem;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  font-weight: 600;
  cursor: pointer;
  transition: all .3s ease;
  align-self: flex-start;
}
.pp-review-submit:hover {
  background: #2a1a2a;
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(60, 42, 60, .25);
}
/* Hide default WC form elements that clash */
.pp-review-form-wrapper .comment-form .comment-form-cookies-consent { display: none; }
.pp-review-form-wrapper .comment-form .logged-in-as {
  font-size: .78rem;
  color: var(--text-muted);
  margin-bottom: 8px;
}
.pp-review-form-wrapper .comment-form .logged-in-as a {
  color: var(--gold);
  text-decoration: none;
}
.pp-review-form-wrapper .comment-form .logged-in-as a:hover {
  text-decoration: underline;
}
.pp-review-form-wrapper #reply-title { display: none; }

/* SEO Block */
.seo-block { padding: 60px 0; background: var(--white); }
.seo-content { max-width: 900px; margin: 0 auto; }
.seo-content h2 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.6rem;
  color: var(--aubergine);
  margin-bottom: 20px;
}
.seo-content p {
  font-size: .9rem;
  color: var(--text-soft);
  line-height: 1.85;
  margin-bottom: 16px;
}
.seo-content strong { color: var(--aubergine); }

/* ═══════════════════════════════════════════════
   VARIABLE PRODUCTS — Variations form V6
   ═══════════════════════════════════════════════ */

/* Wrapper */
.pp-add-row .variations_form {
  width: 100%;
}

/* ═══════════════════════════════════════════════
   VARIATIONS TABLE — Premium Card Design
   Each row = mini-card with label + select
   ═══════════════════════════════════════════════ */
.pp-add-row .variations_form table.variations {
  width: 100% !important;
  border: none !important;
  border-collapse: separate !important;
  border-spacing: 0 10px !important;
  margin-bottom: 12px !important;
}
.pp-add-row .variations_form table.variations tr {
  border: none !important;
  background: var(--cream-warm, #FAF7F2) !important;
  border-radius: 12px !important;
}
/* Border-radius on first/last td for rounded row effect */
.pp-add-row .variations_form table.variations tr th:first-child {
  border-radius: 12px 0 0 12px !important;
}
.pp-add-row .variations_form table.variations tr td:last-child {
  border-radius: 0 12px 12px 0 !important;
}
.pp-add-row .variations_form table.variations td,
.pp-add-row .variations_form table.variations th {
  border: none !important;
  padding: 16px 20px !important;
  vertical-align: middle !important;
  background: transparent !important;
}
.pp-add-row .variations_form table.variations th.label {
  width: 140px !important;
  padding-right: 8px !important;
}
.pp-add-row .variations_form table.variations th.label label,
.pp-add-row .variations_form table.variations td.label label {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--aubergine, #3C2A3C) !important;
  white-space: nowrap !important;
  letter-spacing: .3px !important;
  text-transform: none !important;
}

/* Custom select dropdown — premium */
.pp-add-row .variations_form table.variations td.value select,
.pp-add-row .variations_form .value select {
  width: 100% !important;
  padding: 13px 42px 13px 18px !important;
  border: 1.5px solid rgba(196, 162, 101, .2) !important;
  border-radius: 10px !important;
  font-family: 'Raleway', sans-serif !important;
  font-size: .85rem !important;
  color: var(--aubergine, #3C2A3C) !important;
  background: var(--white, #fff) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23C4A265' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 16px center !important;
  background-size: 14px !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  cursor: pointer !important;
  transition: border-color .3s ease, box-shadow .3s ease !important;
  outline: none !important;
  box-sizing: border-box !important;
}
.pp-add-row .variations_form table.variations td.value select:focus,
.pp-add-row .variations_form .value select:focus {
  border-color: var(--gold, #C4A265) !important;
  box-shadow: 0 0 0 3px rgba(196, 162, 101, .15) !important;
}

/* Reset link — pill style */
.pp-add-row .variations_form .reset_variations {
  font-family: 'Raleway', sans-serif !important;
  font-size: .72rem !important;
  color: var(--gold, #C4A265) !important;
  text-decoration: none !important;
  margin-top: 4px !important;
  display: inline-block !important;
  padding: 4px 12px !important;
  border: 1px dashed rgba(196, 162, 101, .4) !important;
  border-radius: 20px !important;
  transition: all .3s ease !important;
  letter-spacing: .5px !important;
}
.pp-add-row .variations_form .reset_variations:hover {
  color: var(--aubergine, #3C2A3C) !important;
  border-color: var(--aubergine, #3C2A3C) !important;
  background: rgba(60, 42, 60, .04) !important;
  text-decoration: none !important;
}

/* ── Variation price/stock display ── */
.pp-add-row .woocommerce-variation {
  margin-bottom: 16px !important;
  padding: 16px 0 !important;
  border-top: 1px solid var(--cream, #EDE7DD) !important;
}
.pp-add-row .woocommerce-variation-price {
  margin-bottom: 8px !important;
}
.pp-add-row .woocommerce-variation-price .price {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 2rem !important;
  font-weight: 600 !important;
  color: var(--aubergine, #3C2A3C) !important;
}
.pp-add-row .woocommerce-variation-price .price del {
  font-size: 1.1rem !important;
  color: var(--text-muted, #9A8A9A) !important;
  margin-right: 8px !important;
}
.pp-add-row .woocommerce-variation-price .price ins {
  text-decoration: none !important;
}
.pp-add-row .woocommerce-variation-availability p {
  font-family: 'Raleway', sans-serif !important;
  font-size: .78rem !important;
  font-weight: 600 !important;
}
.pp-add-row .woocommerce-variation-availability .in-stock { color: #5a8a5a !important; }
.pp-add-row .woocommerce-variation-availability .out-of-stock { color: #a05252 !important; }

/* Quantity + Add to cart row for variable products */
.pp-add-row .woocommerce-variation-add-to-cart {
  display: flex;
  gap: 12px;
  align-items: center;
}

/* Quantity input */
.pp-add-row .woocommerce-variation-add-to-cart .quantity,
.pp-add-row .variations_form .quantity {
  display: flex;
  align-items: center;
  border: 1.5px solid var(--cream);
  border-radius: 8px;
  overflow: hidden;
  background: var(--white);
}
.pp-add-row .woocommerce-variation-add-to-cart .quantity input.qty,
.pp-add-row .variations_form .quantity input.qty {
  width: 48px;
  text-align: center;
  border: none !important;
  font-family: 'Raleway', sans-serif;
  font-size: .95rem;
  font-weight: 600;
  color: var(--aubergine);
  background: transparent;
  padding: 12px 4px;
  -moz-appearance: textfield;
  outline: none;
}
.pp-add-row .woocommerce-variation-add-to-cart .quantity input.qty::-webkit-inner-spin-button,
.pp-add-row .woocommerce-variation-add-to-cart .quantity input.qty::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Add to cart button — variable product */
.pp-add-row .woocommerce-variation-add-to-cart .single_add_to_cart_button,
.pp-add-row .variations_form .single_add_to_cart_button {
  flex: 1;
  padding: 14px 32px !important;
  background: var(--aubergine) !important;
  color: #E8D9BE !important;
  border: none !important;
  border-radius: 8px !important;
  font-family: 'Raleway', sans-serif !important;
  font-size: .82rem !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  font-weight: 600 !important;
  cursor: pointer;
  transition: all .3s ease !important;
}
.pp-add-row .woocommerce-variation-add-to-cart .single_add_to_cart_button:hover,
.pp-add-row .variations_form .single_add_to_cart_button:hover {
  background: #2a1a2a !important;
  box-shadow: 0 4px 16px rgba(60, 42, 60, .25);
}

/* ═══════════════════════════════════════════════
   PRODUCT ADD-ONS & VARIABLE CART — V6 Design
   Based on real HTML inspection via Chrome:
   form > table.variations, h2/h3 + select (add-ons),
   ul > li (price summary), button -/+ input button submit
   ═══════════════════════════════════════════════ */

/* ── ALL select dropdowns inside .pp-add-row ── */
.pp-add-row select {
  width: 100% !important;
  padding: 12px 40px 12px 16px !important;
  border: 1.5px solid var(--cream) !important;
  border-radius: 10px !important;
  font-family: 'Raleway', sans-serif !important;
  font-size: .85rem !important;
  color: var(--aubergine) !important;
  background: var(--cream-warm, #FAF7F2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%233C2A3C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center !important;
  background-size: 14px !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  cursor: pointer;
  transition: border-color .3s ease, box-shadow .3s ease;
  outline: none;
  box-sizing: border-box;
}
.pp-add-row select:focus {
  border-color: var(--gold) !important;
  box-shadow: 0 0 0 3px rgba(196, 162, 101, .12) !important;
}

/* ── Add-on headings (Coffret Cadeau, Breloque) ──
   These are h2/h3 rendered directly in the form by WC Product Add-Ons */
.pp-add-row .variations_form > h1,
.pp-add-row .variations_form > h2,
.pp-add-row .variations_form > h3,
.pp-add-row .variations_form > h4,
.pp-add-row .variations_form > div > h1,
.pp-add-row .variations_form > div > h2,
.pp-add-row .variations_form > div > h3,
.pp-add-row .variations_form > div > h4,
.pp-add-row form > h1, .pp-add-row form > h2,
.pp-add-row form > h3, .pp-add-row form > h4,
.pp-add-row h2, .pp-add-row h3, .pp-add-row h4 {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1.05rem !important;
  font-weight: 600 !important;
  color: var(--aubergine) !important;
  margin: 18px 0 8px !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
  letter-spacing: .5px;
}
/* First add-on heading gets extra top margin for separation from variations */
.pp-add-row .variations_form > h2:first-of-type,
.pp-add-row .variations_form > h3:first-of-type,
.pp-add-row .variations_form > div > h2:first-of-type,
.pp-add-row .variations_form > div > h3:first-of-type {
  margin-top: 24px !important;
  padding-top: 20px !important;
  border-top: 1px solid var(--cream) !important;
}

/* ── ALL labels inside .pp-add-row ── */
.pp-add-row label {
  font-family: 'Raleway', sans-serif !important;
  font-size: .72rem !important;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  font-weight: 600 !important;
  color: var(--aubergine) !important;
}

/* ── ALL text inputs inside .pp-add-row ── */
.pp-add-row input[type="text"],
.pp-add-row textarea {
  padding: 12px 16px !important;
  border: 1.5px solid var(--cream) !important;
  border-radius: 10px !important;
  font-family: 'Raleway', sans-serif !important;
  font-size: .85rem !important;
  color: var(--aubergine) !important;
  background: var(--white) !important;
  outline: none;
  transition: border-color .3s ease, box-shadow .3s ease;
  box-sizing: border-box;
  width: 100%;
}
.pp-add-row input[type="text"]:focus,
.pp-add-row textarea:focus {
  border-color: var(--gold) !important;
  box-shadow: 0 0 0 3px rgba(196, 162, 101, .12) !important;
}

/* ── Radio/checkbox ── */
.pp-add-row input[type="radio"],
.pp-add-row input[type="checkbox"] {
  accent-color: var(--gold);
  width: 16px;
  height: 16px;
}

/* ═══════════════════════════════════════════════
   PREMIUM ADD-ONS CARD (.pp-addons-card)
   Applied via JS to .wc-pao-addons-container (WC Product Add-Ons plugin)
   ═══════════════════════════════════════════════ */
/* Individual addon container (from WC PAO plugin) */
.pp-addons-card .wc-pao-addon-container {
  margin-bottom: 12px !important;
}
.pp-addons-card .wc-pao-addon-container:last-of-type {
  margin-bottom: 4px !important;
}
/* Separator between addon containers */
.pp-addons-card .wc-pao-addon-container + .wc-pao-addon-container {
  border-top: 1px solid var(--cream, #EDE7DD);
  padding-top: 12px !important;
}
/* Addon name from WC PAO */
.pp-addons-card .wc-pao-addon-name {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--aubergine, #3C2A3C) !important;
  margin: 0 0 8px !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
}
/* Addon select from WC PAO */
.pp-addons-card .wc-pao-addon-select {
  width: 100% !important;
  padding: 10px 40px 10px 14px !important;
  border: 1px solid var(--cream, #EDE7DD) !important;
  border-radius: 10px !important;
  background: var(--white) url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%233C2A3C' stroke-width='2' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  font-family: 'Raleway', sans-serif !important;
  font-size: .85rem !important;
  color: var(--aubergine) !important;
}
.pp-addons-card .wc-pao-addon-select:focus {
  border-color: var(--gold) !important;
  box-shadow: 0 0 0 3px rgba(196,162,101,.12) !important;
  outline: none !important;
}
/* Addon form-row wrap — full width so select fills card */
.pp-addons-card .wc-pao-addon-wrap {
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
/* Addon container — full width */
.pp-addons-card .wc-pao-addon-container {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
/* ALL selects inside addons card — full width */
.pp-addons-card select {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
/* Product addons total (dynamic price summary) */
.pp-addons-card #product-addons-total {
  margin-top: 12px !important;
}
.pp-addons-card {
  background: var(--cream-warm, #FAF7F2) !important;
  border: 1px solid var(--cream, #EDE7DD) !important;
  border-radius: 12px !important;
  padding: 14px 16px 10px !important;
  margin: 6px 0 !important;
  position: relative;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
/* Decorative gold line at top of card */
.pp-addons-card::before {
  content: '';
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 32px; height: 2px;
  background: var(--gold, #C4A265);
  border-radius: 2px;
}

/* Headings inside the card */
.pp-addons-card h2,
.pp-addons-card h3,
.pp-addons-card h4 {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--aubergine, #3C2A3C) !important;
  margin: 0 0 8px !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
  letter-spacing: .3px;
}
/* Second heading+ gets top border separator */
.pp-addons-card h2 ~ h2,
.pp-addons-card h2 ~ h3,
.pp-addons-card h3 ~ h2,
.pp-addons-card h3 ~ h3 {
  margin-top: 16px !important;
  padding-top: 16px !important;
  border-top: 1px solid var(--cream, #EDE7DD) !important;
}

/* Selects inside card */
.pp-addons-card select {
  width: 100% !important;
  padding: 11px 40px 11px 16px !important;
  border: 1.5px solid var(--cream, #EDE7DD) !important;
  border-radius: 10px !important;
  font-family: 'Raleway', sans-serif !important;
  font-size: .84rem !important;
  color: var(--aubergine, #3C2A3C) !important;
  background: var(--white, #fff) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%233C2A3C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center !important;
  background-size: 14px !important;
  -webkit-appearance: none !important; -moz-appearance: none !important; appearance: none !important;
  cursor: pointer; outline: none; box-sizing: border-box;
  transition: border-color .3s ease, box-shadow .3s ease;
  margin-bottom: 4px;
}
.pp-addons-card select:focus {
  border-color: var(--gold, #C4A265) !important;
  box-shadow: 0 0 0 3px rgba(196, 162, 101, .12) !important;
}

/* Price summary list inside card */
.pp-addons-card ul {
  list-style: none !important;
  padding: 14px 18px !important;
  margin: 16px 0 0 !important;
  background: var(--white, #fff) !important;
  border-radius: 10px !important;
  border: 1px solid var(--cream, #EDE7DD) !important;
}
.pp-addons-card ul li {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 6px 0 !important;
  font-family: 'Raleway', sans-serif !important;
  font-size: .82rem !important;
  color: var(--text-soft, #6B5B6B) !important;
  list-style: none !important;
}
.pp-addons-card ul li::before,
.pp-addons-card ul li::marker {
  content: none !important; display: none !important;
}
.pp-addons-card ul li:last-child {
  border-top: 1px solid var(--cream, #EDE7DD);
  margin-top: 4px;
  padding-top: 10px !important;
  font-weight: 700 !important;
  color: var(--aubergine, #3C2A3C) !important;
  font-size: .88rem !important;
}
.pp-addons-card .amount,
.pp-addons-card .woocommerce-Price-amount {
  font-weight: 700 !important;
  color: var(--aubergine, #3C2A3C) !important;
}

/* Fallback: if JS doesn't wrap, keep old selectors working */
.pp-add-row .variations_form > ul,
.pp-add-row .variations_form > div > ul {
  list-style: none !important;
  padding: 14px 18px !important; margin: 16px 0 !important;
  background: var(--white, #fff) !important;
  border-radius: 10px !important;
  border: 1px solid var(--cream, #EDE7DD) !important;
}
.pp-add-row .variations_form > ul > li,
.pp-add-row .variations_form > div > ul > li {
  display: flex !important; justify-content: space-between !important;
  align-items: center !important; padding: 6px 0 !important;
  font-family: 'Raleway', sans-serif !important; font-size: .82rem !important;
  color: var(--text-soft) !important; list-style: none !important;
}
.pp-add-row .variations_form > ul > li::before,
.pp-add-row .variations_form > div > ul > li::before {
  content: none !important; display: none !important;
}
.pp-add-row .variations_form > ul > li:last-child,
.pp-add-row .variations_form > div > ul > li:last-child {
  border-top: 1px solid var(--cream, #EDE7DD);
  margin-top: 4px; padding-top: 10px; font-weight: 700; color: var(--aubergine);
}

/* ═══════════════════════════════════════════════
   PREMIUM ACTION BAR (.pp-action-bar)
   Created by JS — wraps qty -/+ input + submit button
   ═══════════════════════════════════════════════ */
.pp-action-bar {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin: 4px 0 0 !important;
  width: 100% !important;
}
/* Bare qty buttons DIRECTLY in action bar (not inside .pp-qty or .quantity) */
/* Use > direct child selector to avoid cascading into .pp-qty children */
.pp-action-bar > button[type="button"]:first-of-type {
  width: 42px !important; height: 46px !important;
  border: 1.5px solid var(--cream, #EDE7DD) !important;
  border-right: none !important;
  border-radius: 8px 0 0 8px !important;
  background: var(--white, #fff) !important;
  font-size: 1.15rem !important; font-weight: 400 !important;
  cursor: pointer !important; color: var(--aubergine, #3C2A3C) !important;
  display: inline-flex !important; align-items: center !important;
  justify-content: center !important; padding: 0 !important;
  line-height: 1 !important; box-shadow: none !important;
  letter-spacing: 0 !important; text-transform: none !important;
  transition: all .2s ease !important;
}
.pp-action-bar > button[type="button"]:nth-of-type(2) {
  width: 42px !important; height: 46px !important;
  border: 1.5px solid var(--cream, #EDE7DD) !important;
  border-left: none !important;
  border-radius: 0 8px 8px 0 !important;
  background: var(--white, #fff) !important;
  font-size: 1.15rem !important; font-weight: 400 !important;
  cursor: pointer !important; color: var(--aubergine, #3C2A3C) !important;
  display: inline-flex !important; align-items: center !important;
  justify-content: center !important; padding: 0 !important;
  line-height: 1 !important; box-shadow: none !important;
  letter-spacing: 0 !important; text-transform: none !important;
  transition: all .2s ease !important;
}
.pp-action-bar > button[type="button"]:hover {
  background: var(--gold-ultra, rgba(196,162,101,.06)) !important;
  border-color: var(--gold-light, rgba(196,162,101,.3)) !important;
}
/* Bare qty input DIRECTLY in action bar */
.pp-action-bar > input[type="number"] {
  width: 48px !important; height: 46px !important;
  text-align: center !important;
  border: 1.5px solid var(--cream, #EDE7DD) !important;
  border-left: none !important; border-right: none !important;
  border-radius: 0 !important;
  font-family: 'Raleway', sans-serif !important;
  font-size: 1rem !important; font-weight: 700 !important;
  color: var(--aubergine, #3C2A3C) !important;
  background: var(--white, #fff) !important;
  padding: 0 !important; -moz-appearance: textfield !important;
  outline: none !important; box-shadow: none !important;
  box-sizing: border-box !important;
}
.pp-action-bar > input[type="number"]::-webkit-inner-spin-button,
.pp-action-bar > input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none !important; margin: 0;
}
/* Hide qty label (screen reader only) */
.pp-action-bar > label {
  position: absolute !important; width: 1px !important; height: 1px !important;
  overflow: hidden !important; clip: rect(0,0,0,0) !important;
}
/* Handle .quantity wrapper if it exists */
.pp-action-bar .quantity {
  display: inline-flex !important; align-items: center !important;
  border: 1.5px solid var(--cream, #EDE7DD) !important;
  border-radius: 8px !important; overflow: hidden !important;
  background: var(--white, #fff) !important; margin: 0 !important;
}
.pp-action-bar .quantity input.qty,
.pp-action-bar .quantity input[type="number"] {
  width: 48px !important; height: 44px !important;
  text-align: center !important; border: none !important;
  font-family: 'Raleway', sans-serif !important;
  font-size: 1rem !important; font-weight: 700 !important;
  color: var(--aubergine, #3C2A3C) !important;
  background: transparent !important; padding: 0 !important;
  -moz-appearance: textfield !important; outline: none !important;
  box-shadow: none !important; border-radius: 0 !important;
}

/* ── Submit button: Ajouter au panier ── */
.pp-action-bar button[type="submit"],
.pp-add-row button[type="submit"],
.pp-add-row .single_add_to_cart_button,
.pp-add-row input[type="submit"],
.single-product .cart .single_add_to_cart_button,
.single-product form.cart button[type="submit"] {
  display: flex !important; align-items: center !important;
  justify-content: center !important; flex: 1 !important;
  min-height: 46px !important;
  padding: 14px 28px !important;
  background: var(--aubergine, #3C2A3C) !important;
  color: #E8D9BE !important;
  border: none !important; border-radius: 8px !important;
  font-family: 'Raleway', sans-serif !important;
  font-size: .8rem !important; letter-spacing: 2.5px !important;
  text-transform: uppercase !important; font-weight: 600 !important;
  cursor: pointer !important; transition: all .3s ease !important;
  line-height: 1.4 !important;
  box-shadow: 0 2px 8px rgba(60, 42, 60, .15) !important;
  margin: 0 !important; width: auto !important;
}
.pp-action-bar button[type="submit"]:hover,
.pp-add-row button[type="submit"]:hover,
.pp-add-row .single_add_to_cart_button:hover,
.single-product .cart .single_add_to_cart_button:hover,
.single-product form.cart button[type="submit"]:hover {
  background: #2a1a2a !important;
  box-shadow: 0 6px 20px rgba(60, 42, 60, .3) !important;
  transform: translateY(-1px);
}

/* ═══ Quantity (.quantity) — always horizontal ═══
   The .quantity div contains: button.minus + label + input.qty + button.plus
   These are INSIDE the div, not siblings of it */
.pp-add-row .quantity,
.pp-add-row .variations_form .quantity,
.pp-action-bar .quantity,
.woocommerce-variation-add-to-cart .quantity,
.single-product .cart .quantity {
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  border: 1.5px solid var(--cream, #EDE7DD) !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  background: var(--white, #fff) !important;
  margin: 0 !important;
  flex-wrap: nowrap !important;
  width: auto !important;
  max-width: 160px !important;
}
/* Screen-reader label inside .quantity */
.pp-add-row .quantity label,
.woocommerce-variation-add-to-cart .quantity label,
.single-product .cart .quantity label {
  position: absolute !important; width: 1px !important; height: 1px !important;
  overflow: hidden !important; clip: rect(0,0,0,0) !important;
  padding: 0 !important; margin: -1px !important; border: 0 !important;
}
/* Qty input */
.pp-add-row .quantity input.qty,
.pp-add-row .quantity input[type="number"],
.woocommerce-variation-add-to-cart .quantity input.qty,
.single-product .cart .quantity input.qty {
  width: 48px !important; height: 44px !important;
  text-align: center !important;
  border: none !important; border-left: 1px solid var(--cream, #EDE7DD) !important;
  border-right: 1px solid var(--cream, #EDE7DD) !important;
  border-radius: 0 !important;
  font-family: 'Raleway', sans-serif !important;
  font-size: 1rem !important; font-weight: 700 !important;
  color: var(--aubergine, #3C2A3C) !important;
  background: transparent !important; padding: 0 4px !important;
  -moz-appearance: textfield !important;
  outline: none !important; box-shadow: none !important;
  box-sizing: border-box !important;
}
.pp-add-row .quantity input::-webkit-inner-spin-button,
.pp-add-row .quantity input::-webkit-outer-spin-button,
.single-product .cart .quantity input::-webkit-inner-spin-button {
  -webkit-appearance: none !important; margin: 0;
}
/* -/+ buttons inside .quantity */
.pp-add-row .quantity button,
.pp-add-row .quantity .minus,
.pp-add-row .quantity .plus,
.woocommerce-variation-add-to-cart .quantity button,
.single-product .cart .quantity button {
  width: 42px !important; height: 44px !important;
  border: none !important;
  background: var(--white, #fff) !important;
  font-size: 1.15rem !important; font-weight: 400 !important;
  cursor: pointer !important;
  color: var(--aubergine, #3C2A3C) !important;
  display: inline-flex !important; align-items: center !important;
  justify-content: center !important; padding: 0 !important;
  line-height: 1 !important; border-radius: 0 !important;
  box-shadow: none !important; transition: background .2s ease !important;
  letter-spacing: 0 !important; text-transform: none !important;
  flex-shrink: 0 !important;
}
.pp-add-row .quantity button:hover,
.woocommerce-variation-add-to-cart .quantity button:hover,
.single-product .cart .quantity button:hover {
  background: var(--gold-ultra, rgba(196,162,101,.06)) !important;
}

/* ═══════════════════════════════════════════════
   STANDARD FORM.CART ADD-ONS (fallback WC products)
   Pendentifs, grouped, external — same premium look
   ═══════════════════════════════════════════════ */

/* Standard form.cart inside .pp-add-row */
.pp-add-row form.cart {
  width: 100% !important;
}

/* "Your selection:" → styled + translated via JS */
.pp-add-row form.cart .product_meta,
.pp-add-row form.cart .woocommerce-variation-description {
  font-family: 'Raleway', sans-serif !important;
  font-size: .82rem !important;
  color: var(--text-soft) !important;
}

/* Stock status */
.pp-add-row .stock,
.pp-add-row .woocommerce-variation-availability {
  font-family: 'Raleway', sans-serif !important;
  font-size: .78rem !important;
  font-weight: 600 !important;
  padding: 4px 0 !important;
}
.pp-add-row .stock.in-stock {
  color: #5a8a5a !important;
}
.pp-add-row .stock.out-of-stock {
  color: #c05050 !important;
}

/* Price inside add-ons / variation */
.pp-add-row .woocommerce-variation-price,
.pp-add-row form.cart .price,
.pp-add-row .woocommerce-Price-amount {
  font-family: 'Cormorant Garamond', serif !important;
  color: var(--aubergine) !important;
}
.pp-add-row .woocommerce-variation-price .price {
  font-size: 1.6rem !important;
  font-weight: 600 !important;
}
.pp-add-row .woocommerce-variation-price del,
.pp-add-row form.cart del {
  color: var(--text-muted) !important;
  font-size: .85rem !important;
  opacity: .6 !important;
}
.pp-add-row .woocommerce-variation-price ins,
.pp-add-row form.cart ins {
  text-decoration: none !important;
  color: var(--aubergine) !important;
  font-weight: 700 !important;
}

/* Add-on inner qty selectors (e.g. chain addon qty with price 0.00€) — hide the addon-specific qty if it shows addon price */
.pp-add-row .product-addon .quantity,
.pp-add-row .wc-pao-addon-container .quantity {
  display: none !important;
}

/* "OPTIONS DISPONIBLES" and similar addon labels — HIDDEN */
.pp-add-row form.cart > label,
.pp-add-row form.cart .product-addon-totals label,
.pp-addons-card > label {
  display: none !important;
}

/* Selection summary heading — HIDDEN (addon selection preview not needed) */
.pp-add-row h1[class*="selection"],
.pp-add-row h2[class*="selection"],
.pp-add-row h3[class*="selection"],
.pp-add-row h4[class*="selection"],
.pp-addons-card h1[class*="selection"],
.pp-addons-card h2[class*="selection"],
.pp-addons-card h3[class*="selection"],
.pp-addons-card h4[class*="selection"] {
  display: none !important;
}

/* Add-on layout: stacked vertically (1 column) — Chaîne puis Coffret sur lignes séparées */
/* La propriété display:grid de la première déclaration .pp-addons-card est écrasée ici */

/* ═══════════════════════════════════════════════
   COMPOSITE COMPONENTS (WC Composite Products)
   Chaîne, Collier, Bracelet components styled as addon cards
   ═══════════════════════════════════════════════ */
/* Composite component: style as addon card (like Coffret Cadeau) */
.pp-add-row .composite_component {
  background: var(--cream-warm, #FAF7F2) !important;
  border: 1px solid var(--cream, #EDE7DD) !important;
  border-radius: 12px !important;
  padding: 14px 16px 10px !important;
  margin: 6px 0 !important;
  position: relative;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
/* Kill ALL internal borders/separators inside composite components (WC Composite plugin adds many) */
.pp-add-row .composite_component .component_inner,
.pp-add-row .composite_component .component_content,
.pp-add-row .composite_component .component_summary,
.pp-add-row .composite_component .component_summary_content,
.pp-add-row .composite_component .summary_content,
.pp-add-row .composite_component .composited_product_details_wrapper,
.pp-add-row .composite_component .component_selections,
.pp-add-row .composite_component .component_options,
.pp-add-row .composite_component .component_options_inner {
  border: none !important;
  border-top: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
}
/* Decorative gold line at top */
.pp-add-row .composite_component::before {
  content: '';
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 28px; height: 2px;
  background: var(--gold, #C4A265);
  border-radius: 2px;
}
/* Component title: "Chaîne" */
.pp-add-row .composite_component .component_title_text,
.pp-add-row .composite_component .step_title_text {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--aubergine, #3C2A3C) !important;
  margin: 0 0 6px !important;
  display: block !important;
}
/* Component title wrapper — clean up */
.pp-add-row .composite_component .component_title_wrapper {
  margin: 0 !important;
  padding: 0 !important;
}
.pp-add-row .composite_component .component_title {
  margin: 0 0 4px !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
}
/* Hide the product selector ONLY on STATIC components (parures where product is pre-selected).
   Non-static components (pendentifs with chain choice) must keep the select VISIBLE.
   WC Composite adds class "static" when a component has only one product option.
   IMPORTANT: Do NOT hide .component_selections entirely — it contains .component_content
   → .component_summary → .v6-built-variations (the variation selects we need visible).
   Only hide the actual product select and its direct wrappers. */
.pp-add-row .composite_component.static .component_selections {
  position: relative !important;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  clip: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}
.pp-add-row .composite_component.static select.component_options_select,
.pp-add-row .composite_component.static .component_option_thumbnails,
.pp-add-row .composite_component.static .component_section_title,
.pp-add-row .composite_component.static .component_description_wrapper {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
/* Non-static components: hide only the "Options disponibles :" label, keep the select visible */
.pp-add-row .composite_component:not(.static) .component_section_title {
  display: none !important;
}
/* Non-static components: hide description wrapper if present */
.pp-add-row .composite_component:not(.static) .component_description_wrapper {
  display: none !important;
}
/* Non-static components: style .component_selections as a normal flow element */
.pp-add-row .composite_component:not(.static) .component_selections {
  margin: 0 !important;
  padding: 0 !important;
}
/* Non-static components: .component_options wrapper */
.pp-add-row .composite_component:not(.static) .component_options {
  margin: 0 !important;
  padding: 0 !important;
}
/* Reset spacing on component_inner (keep it visible, just remove margins/padding) */
.pp-add-row .composite_component .component_inner {
  margin: 0 !important;
  padding: 0 !important;
}
/* Component summary (contains variation selectors) — directly after title since .component_inner is hidden */
.pp-add-row .composite_component .component_summary {
  margin: 0 !important;
  padding: 0 !important;
}
.pp-add-row .composite_component .component_summary_content {
  margin: 0 !important;
  padding: 0 !important;
}
/* Component select dropdown: same style as WC PAO addon selects */
.pp-add-row .composite_component select,
.pp-add-row .composite_component .component_options_select {
  width: 100% !important;
  padding: 10px 40px 10px 14px !important;
  border: 1px solid var(--cream, #EDE7DD) !important;
  border-radius: 10px !important;
  background: var(--white) url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%233C2A3C' stroke-width='2' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  font-family: 'Raleway', sans-serif !important;
  font-size: .85rem !important;
  color: var(--aubergine) !important;
  outline: none;
}
.pp-add-row .composite_component select:focus {
  border-color: var(--gold) !important;
  box-shadow: 0 0 0 3px rgba(196,162,101,.12) !important;
}
/* Component label for select */
.pp-add-row .composite_component .component_options > label {
  font-family: 'Raleway', sans-serif !important;
  font-size: .72rem !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  color: var(--text-soft, #6B5B6B) !important;
  margin-bottom: 6px !important;
  display: block !important;
}
/* HIDE component descriptions, images, excerpts, short descriptions, qty inside components
   — but KEEP variation selectors (table.variations) visible for parures */
.pp-add-row .composite_component .component_option_content,
.pp-add-row .composite_component .component_option_thumbnails,
.pp-add-row .composite_component .component_option_thumbnail_container,
.pp-add-row .composite_component .component_option_images,
.pp-add-row .composite_component .product_excerpt,
.pp-add-row .composite_component .component_description,
.pp-add-row .composite_component .component_pagination,
.pp-add-row .composite_component .component_message,
.pp-add-row .composite_component .clear_component_options_wrapper,
.pp-add-row .composite_component .composited_product_images,
.pp-add-row .composite_component .composited_product_title,
.pp-add-row .composite_component .composited_product_excerpt,
.pp-add-row .composite_component .composited_product_price,
.pp-add-row .composite_component .composited_product_short_description,
.pp-add-row .composite_component .product-short-description,
.pp-add-row .composite_component .product-short-desc,
.pp-add-row .composite_component .component_summary > ul,
.pp-add-row .composite_component .component_summary > p,
.pp-add-row .composite_component .component_summary > div > ul,
.pp-add-row .composite_component .component_summary_content > ul,
.pp-add-row .composite_component .component_summary_content > p:not(.stock),
.pp-add-row .composite_component .composited_product_details_wrapper > ul,
.pp-add-row .composite_component .composited_product_details_wrapper > p:not(.stock),
.pp-add-row .composite_component .details.component_data > .product-short-desc {
  display: none !important;
}
/* Hide stock availability text ("3 en stock") + horizontal rules inside composite components */
.pp-add-row .composite_component .stock,
.pp-add-row .composite_component .composite_availability,
.pp-add-row .composite_component p.stock,
.pp-add-row .composite_component .availability,
.pp-add-row .composite_component hr {
  display: none !important;
}
/* Also hide any border-bottom acting as separator inside composite component cards */
.pp-add-row .composite_component .component_inner::after,
.pp-add-row .composite_component .component_selections::after {
  display: none !important;
}
/* Kill ALL borders/separators/lines inside composite_wrap that create visual "traits" */
.pp-add-row .composite_wrap > *:not(.composite_button) {
  border: none !important;
  border-bottom: none !important;
  border-top: none !important;
}
.pp-add-row .composite_wrap::before,
.pp-add-row .composite_wrap::after,
.pp-add-row .composite_availability::before,
.pp-add-row .composite_availability::after,
.pp-add-row .composite_message::before,
.pp-add-row .composite_message::after,
.pp-add-row .composite_data .woocommerce-info::before,
.pp-add-row .composite_data .woocommerce-info::after {
  display: none !important;
  content: none !important;
}
/* Hide hr anywhere in composite area */
.pp-add-row .composite_data hr,
.pp-add-row .composite_wrap hr {
  display: none !important;
}
/* Also hide qty buttons INSIDE composite components (keep only main product qty) */
.pp-add-row .composite_component .quantity,
.pp-add-row .composite_component .number-button,
.pp-add-row .composite_component input.qty,
.pp-add-row .composite_component input.minus,
.pp-add-row .composite_component input.plus,
.pp-add-row .composite_component button.minus,
.pp-add-row .composite_component button.plus {
  display: none !important;
}
/* NOTE: We no longer hide .component_summary / .composited_product_details_wrapper by default.
   WC Composite injects variation forms dynamically — hiding the containers prevents them from showing.
   Instead, we hide the unwanted CONTENT inside (images, shortdesc, prices) via the rules above,
   and let the containers remain visible for the variation table to appear. */
/* But hide the single_variation (price/availability) inside composited — synced to V6 price box */
.pp-add-row .composite_component .single_variation:not(.single_variation_wrap) {
  display: none !important;
}
/* Style variation table inside composite components — FULL WIDTH stacked layout
   Label on top, select full-width below (no side-by-side table layout) */
.pp-add-row .composite_component table.variations {
  width: 100% !important;
  border: none !important;
  border-spacing: 0 !important;
  border-collapse: collapse !important;
  margin: 8px 0 0 !important;
  display: block !important;
}
.pp-add-row .composite_component table.variations tbody {
  display: block !important;
  width: 100% !important;
}
.pp-add-row .composite_component table.variations tr {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  margin-bottom: 10px !important;
  background: none !important;
  border-radius: 0 !important;
}
.pp-add-row .composite_component table.variations td,
.pp-add-row .composite_component table.variations th {
  display: block !important;
  width: 100% !important;
  padding: 0 !important;
  border: none !important;
  box-sizing: border-box !important;
}
.pp-add-row .composite_component table.variations th.label {
  margin-bottom: 4px !important;
}
.pp-add-row .composite_component table.variations th.label label {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: .95rem !important;
  font-weight: 600 !important;
  color: var(--aubergine) !important;
  text-transform: none !important;
}
.pp-add-row .composite_component table.variations td.value {
  width: 100% !important;
}
.pp-add-row .composite_component table.variations td.value select {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  padding: 10px 40px 10px 14px !important;
  border: 1px solid var(--cream, #EDE7DD) !important;
  border-radius: 10px !important;
  background: var(--white) url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%233C2A3C' stroke-width='2' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  font-family: 'Raleway', sans-serif !important;
  font-size: .85rem !important;
  color: var(--aubergine) !important;
  outline: none;
}
.pp-add-row .composite_component table.variations td.value select:focus {
  border-color: var(--gold) !important;
  box-shadow: 0 0 0 3px rgba(196,162,101,.12) !important;
}
/* Reset variations link — styled as gold text */
.pp-add-row .composite_component .reset_variations {
  font-family: 'Raleway', sans-serif !important;
  font-size: .72rem !important;
  color: var(--gold) !important;
  text-decoration: none !important;
  display: inline-block !important;
  margin-top: 4px !important;
}
.pp-add-row .composite_component .reset_variations:hover {
  text-decoration: underline !important;
}
/* NOTE: We do NOT hide .composite_component.static anymore.
   WC Composite Products plugin manages component visibility itself.
   It dynamically shows/hides components and injects variation forms.
   We only clean up the INSIDE of each component (hide product select, shortdesc, qty). */

/* ── Hide classes added by JS cleanup ──────────── */
/* Addon qty buttons (-/+), addon qty labels, addon selection preview, addon price 0.00 */
.pp-addon-qty-hide,
.pp-addon-selection-hide,
.pp-addon-price-hide {
  display: none !important;
}

/* "Options disponibles :" label — also hide via CSS as fallback */
.pp-add-row form.cart > label,
.pp-addons-card > label {
  display: none !important;
}

/* ═══════════════════════════════════════════════
   V6-BUILT VARIATIONS (custom selects for static composite components)
   Built by JS from data-options_data JSON when WC Composite
   doesn't render variation forms for static (pre-selected) components.
   ═══════════════════════════════════════════════ */
.v6-built-variations {
  margin: 8px 0 4px !important;
  padding: 0 !important;
}
.v6-variation-row {
  margin-bottom: 10px !important;
}
.v6-variation-row:last-of-type {
  margin-bottom: 4px !important;
}
.v6-variation-label {
  display: block !important;
  font-family: 'Cormorant Garamond', serif !important;
  font-size: .95rem !important;
  font-weight: 600 !important;
  color: var(--aubergine, #3C2A3C) !important;
  margin-bottom: 4px !important;
  text-transform: none !important;
}
.v6-variation-select {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  padding: 10px 40px 10px 14px !important;
  border: 1px solid var(--cream, #EDE7DD) !important;
  border-radius: 10px !important;
  background: var(--white, #fff) url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%233C2A3C' stroke-width='2' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  font-family: 'Raleway', sans-serif !important;
  font-size: .85rem !important;
  color: var(--aubergine, #3C2A3C) !important;
  outline: none !important;
  height: auto !important;
  line-height: 1.4 !important;
}
.v6-variation-select:focus {
  border-color: var(--gold, #C4A265) !important;
  box-shadow: 0 0 0 3px rgba(196,162,101,.12) !important;
}
/* Hidden inputs for form submission — ensure no visual space */
.v6-built-variations input[type="hidden"] {
  display: none !important;
}

/* ═══════════════════════════════════════════════
   PENDENTIF / COMPOSITE — RESIDUAL PRICE "0.00 €" FIX
   Hide composite price elements inside non-static components
   and any standalone price/amount text showing 0.00
   ═══════════════════════════════════════════════ */
/* Hide residual composite prices inside ALL composite components */
.pp-add-row .composite_component .composite_price,
.pp-add-row .composite_component .component_option_price,
.pp-add-row .composite_component .composited_product_price {
  display: none !important;
}
/* Hide standalone "0.00 €" or "0,00 €" elements in addons/composite (JS also cleans these) */
.pp-add-row .composite_component .woocommerce-Price-amount {
  /* Only hide inside composite components, not in the main price box */
}
/* Composite component content area: zero-height the price container if rendered */
.pp-add-row .composite_component .component_summary .price,
.pp-add-row .composite_component .summary_content .price {
  display: none !important;
}

/* ══════════════════════════════════════════════════
   RESPONSIVE — SINGLE PRODUCT
   ══════════════════════════════════════════════════ */

/* ── Tablet (≤ 1024px) ─────────────────────────── */
@media (max-width: 1024px) {
  .pp-product-grid { grid-template-columns: 1fr; gap: 40px; }
  .pp-gallery { position: static; }
  .pp-product { padding: 32px 0 60px; }
  .pp-tabs { padding: 56px 0; }
  .pp-tab-nav { margin-bottom: 28px; }
}

/* ── Mobile (≤ 768px) ──────────────────────────── */
@media (max-width: 768px) {
  .pp-product { padding: 20px 0 48px; }
  .pp-product-grid { gap: 28px; }

  /* Gallery — thumbs horizontal scroll */
  .pp-gallery-main { margin-bottom: 12px; }
  .pp-gallery-thumbs {
    grid-template-columns: repeat(auto-fill, minmax(70px, 1fr));
    gap: 8px;
  }
  .pp-thumb { border-width: 1.5px; }
  .pp-badge-sale { top: 10px; left: 10px; font-size: .6rem; padding: 4px 10px; }

  /* Info section */
  .pp-title { font-size: 1.6rem; margin-bottom: 8px; }
  .pp-rating { margin-bottom: 14px; }
  .pp-price-box { margin-bottom: 18px; padding-bottom: 18px; }
  .pp-price-current { font-size: 1.8rem; }
  .pp-price-current.pp-price-composite ins { font-size: 1.8rem; }

  /* Specs — single column */
  .pp-specs { grid-template-columns: 1fr; gap: 8px; margin-bottom: 20px; }
  .pp-spec { padding: 8px 12px; font-size: .78rem; }

  /* Qty + Add to cart — SIDE BY SIDE on mobile */
  .pp-qty {
    width: 110px !important;
    min-width: 110px !important;
    max-width: 110px !important;
    flex-shrink: 0 !important;
  }
  .pp-qty button,
  .pp-qty-minus,
  .pp-qty-plus { width: 34px !important; min-width: 34px !important; height: 44px !important; font-size: 1rem !important; }
  .pp-qty input[type="number"] { width: 42px !important; height: 44px !important; font-size: .88rem !important; }
  .pp-add-btn { height: 44px !important; font-size: .55rem !important; letter-spacing: 1.2px !important; flex: 1 1 0% !important; }

  /* Variable products — qty + button side by side */
  .pp-add-row .woocommerce-variation-add-to-cart { flex-direction: row !important; flex-wrap: nowrap !important; gap: 8px !important; }
  .pp-add-row .woocommerce-variation-add-to-cart .quantity { width: auto !important; flex-shrink: 0 !important; }
  .pp-add-row .woocommerce-variation-add-to-cart .single_add_to_cart_button { flex: 1 !important; }
  /* Action bar — row layout (qty left, button right) */
  .pp-action-bar { flex-direction: row !important; flex-wrap: nowrap !important; gap: 8px !important; }
  .pp-action-bar button[type="submit"],
  .pp-action-bar .pp-add-btn,
  .pp-action-bar .single_add_to_cart_button,
  .pp-action-bar .composite_add_to_cart_button { flex: 1 1 0% !important; width: auto !important; }
  .pp-addons-card { padding: 14px 14px 10px !important; }

  /* Variations table — compact */
  table.variations td,
  table.variations th { padding: 8px 0 !important; }

  /* Composite products — compact, but qty + button side by side */
  .pp-add-row .composite_component { padding: 12px 14px 10px !important; }
  .composite_button { flex-direction: row !important; flex-wrap: nowrap !important; gap: 8px !important; }
  .composite_button .composite_add_to_cart_button { flex: 1 !important; width: auto !important; }
  .composite_button .number-button { flex-shrink: 0 !important; width: auto !important; }
  .v6-built-variations .v6-variation-select { font-size: .82rem; padding: 9px 36px 9px 12px; }

  /* Reassurance */
  .pp-short-desc-notice-item { padding: 12px 14px; }
  .pp-short-desc-notice-item p { font-size: .78rem; }
  .pp-bracelet-notice { padding: 12px 14px; font-size: .78rem; }
  .pp-reassurance { padding: 16px; border-radius: 10px; margin-bottom: 18px; }
  .pp-reassurance-item { font-size: .78rem; }

  /* Stone link */
  .pp-stone-link { padding: 12px 18px; font-size: .8rem; }

  /* Tabs */
  .pp-tabs { padding: 48px 0; }
  .pp-tab-nav { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-bottom: 24px; flex-wrap: nowrap; }
  .pp-tab-btn { white-space: nowrap; padding: 12px 20px; font-size: .75rem; letter-spacing: 1px; }
  .pp-tab-panel h2 { font-size: 1.2rem; }
  .pp-tab-panel h3 { font-size: 1rem; margin: 20px 0 8px; }
  .pp-tab-panel p { font-size: .84rem; }

  /* Characteristics table */
  .pp-char-table td { padding: 10px 12px !important; font-size: .82rem; }

  /* Reviews */
  .pp-review { padding: 20px !important; }
  .pp-review-form-wrapper { padding: 24px !important; }

  /* SEO block */
  .seo-block { padding: 48px 0; }
  .seo-block h2 { font-size: 1.4rem; }

  /* FAQ */
  .faq-section { padding: 48px 0; }
}

/* ── Small phone (≤ 480px) ─────────────────────── */
@media (max-width: 480px) {
  .pp-product { padding: 16px 0 36px; }
  .pp-product-grid { gap: 20px; }

  /* Gallery */
  .pp-gallery-thumbs { grid-template-columns: repeat(4, 1fr); gap: 6px; }
  .pp-gallery-main { border-radius: 8px; }

  /* Title + Price */
  .pp-title { font-size: 1.4rem; }
  .pp-price-current { font-size: 1.6rem; }
  .pp-price-current.pp-price-composite ins { font-size: 1.6rem; }
  .pp-price-old { font-size: .9rem; }
  .pp-price-save { font-size: .6rem; padding: 3px 8px; }

  /* Qty + button — still side by side, but more compact */
  .pp-qty {
    width: 100px !important;
    min-width: 100px !important;
    max-width: 100px !important;
    flex-shrink: 0 !important;
  }
  .pp-qty button,
  .pp-qty-minus,
  .pp-qty-plus { width: 30px !important; min-width: 30px !important; height: 40px !important; }
  .pp-qty input[type="number"] { width: 40px !important; height: 40px !important; font-size: .82rem !important; }
  .pp-add-btn { height: 40px !important; font-size: .5rem !important; letter-spacing: 1px !important; }

  /* Tabs */
  .pp-tabs { padding: 36px 0; }
  .pp-tab-btn { padding: 10px 16px; font-size: .7rem; }

  /* Reviews */
  .pp-review-form-wrapper { padding: 18px !important; border-radius: 12px !important; }

  /* Lightbox — larger close button target */
  .pp-lightbox-close { top: 12px; right: 12px; width: 38px; height: 38px; }
  .pp-lightbox-prev, .pp-lightbox-next { width: 38px; height: 38px; font-size: 1.4rem; }
  .pp-lightbox-nav { padding: 0 8px; }
}

/* ── Extra small phone (≤ 390px — iPhone SE, older Android) ─── */
@media (max-width: 390px) {
  .pp-product { padding: 12px 0 28px; }

  /* Gallery — 3 columns instead of 4 (each thumb ~115px vs ~87px) */
  .pp-gallery-thumbs { grid-template-columns: repeat(3, 1fr) !important; gap: 5px; }

  /* Title + Price — tighter */
  .pp-title { font-size: 1.25rem !important; }
  .pp-price-current { font-size: 1.4rem !important; }
  .pp-price-current.pp-price-composite ins { font-size: 1.4rem !important; }
  .pp-price-old { font-size: .82rem !important; }
  .pp-badge-sale { font-size: .48rem !important; padding: 3px 7px !important; }

  /* Specs — tighter padding */
  .pp-spec { padding: 6px 10px !important; font-size: .72rem !important; }
  .pp-spec-icon { width: 18px !important; height: 18px !important; }
  .pp-spec-label { font-size: .55rem !important; }
  .pp-spec-value { font-size: .72rem !important; }

  /* Qty + button — even more compact */
  .pp-qty {
    width: 90px !important;
    min-width: 90px !important;
    max-width: 90px !important;
  }
  .pp-qty button,
  .pp-qty-minus,
  .pp-qty-plus { width: 26px !important; min-width: 26px !important; height: 36px !important; }
  .pp-qty input[type="number"] { width: 38px !important; height: 36px !important; font-size: .78rem !important; }
  .pp-add-btn { height: 36px !important; font-size: .46rem !important; letter-spacing: .8px !important; }

  /* Action bar + add-ons card — full width, compact */
  .pp-action-bar { gap: 6px !important; }
  .pp-addons-card, .wc-pao-addons-container { padding: 10px 12px 8px !important; }
  .wc-pao-addon-name { font-size: .88rem !important; }
  .wc-pao-addon-select { padding: 8px 36px 8px 12px !important; font-size: .78rem !important; }

  /* Composite products — compact */
  .composite_component { padding: 10px 12px 8px !important; }
  .composite_button { gap: 6px !important; }
  .composite_button input.qty { width: 40px !important; height: 40px !important; }
  .composite_button input.minus,
  .composite_button input.plus { width: 36px !important; height: 40px !important; }
  .composite_button .composite_add_to_cart_button { font-size: .48rem !important; height: 40px !important; }

  /* Tabs — more compact */
  .pp-tab-btn { padding: 8px 12px !important; font-size: .64rem !important; }

  /* Stone link card — compact */
  .pp-stone-link { padding: 14px !important; }
  .pp-stone-link h3 { font-size: 1rem !important; }

  /* Reviews — compact */
  .pp-review { padding: 16px !important; }
  .pp-review-form-wrapper { padding: 14px !important; border-radius: 10px !important; }

  /* SEO + FAQ — compact */
  .seo-block { padding: 36px 0 !important; }
  .seo-block h2 { font-size: 1.2rem !important; }
  .faq-section { padding: 36px 0 !important; }
  .faq-question { font-size: .88rem !important; padding: 14px 16px !important; }
}

/* ═══════════════════════════════════════════════
   LIGHTBOX ZOOM (.pp-lightbox)
   Fullscreen overlay for gallery images
   ═══════════════════════════════════════════════ */
.pp-lightbox {
  position: fixed;
  top: 0; left: 0; width: 100%; height: 100%;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s ease, visibility .3s ease;
}
.pp-lightbox.pp-lightbox-open {
  opacity: 1;
  visibility: visible;
}
.pp-lightbox-backdrop {
  position: absolute;
  top: 0; left: 0; width: 100%; height: 100%;
  background: rgba(30, 18, 30, .92);
  cursor: pointer;
}
.pp-lightbox-content {
  position: relative;
  max-width: 90vw;
  max-height: 90vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pp-lightbox-img {
  max-width: 90vw;
  max-height: 85vh;
  object-fit: contain;
  border-radius: 8px;
  box-shadow: 0 20px 60px rgba(0,0,0,.5);
  transition: opacity .2s ease;
}
.pp-lightbox-close {
  position: fixed;
  top: 24px; right: 28px;
  width: 48px; height: 48px;
  background: rgba(255,255,255,.1);
  border: 1.5px solid rgba(255,255,255,.2);
  border-radius: 50%;
  color: #E8D9BE;
  font-size: 1.8rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all .2s ease;
  z-index: 10;
  line-height: 1;
  padding: 0 0 3px 0;
}
.pp-lightbox-close:hover {
  background: rgba(255,255,255,.2);
  border-color: var(--gold, #C4A265);
  color: #fff;
  transform: scale(1.1);
}
.pp-lightbox-nav {
  position: fixed;
  top: 50%; left: 0; right: 0;
  transform: translateY(-50%);
  display: flex;
  justify-content: space-between;
  padding: 0 20px;
  pointer-events: none;
  z-index: 10;
}
.pp-lightbox-prev,
.pp-lightbox-next {
  width: 52px; height: 52px;
  background: rgba(255,255,255,.08);
  border: 1.5px solid rgba(255,255,255,.15);
  border-radius: 50%;
  color: #E8D9BE;
  font-size: 2rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all .2s ease;
  pointer-events: all;
  line-height: 1;
  padding: 0;
}
.pp-lightbox-prev:hover,
.pp-lightbox-next:hover {
  background: rgba(255,255,255,.18);
  border-color: var(--gold, #C4A265);
  color: #fff;
  transform: scale(1.1);
}
@media (max-width: 768px) {
  .pp-lightbox-close { top: 16px; right: 16px; width: 40px; height: 40px; font-size: 1.5rem; }
  .pp-lightbox-prev, .pp-lightbox-next { width: 42px; height: 42px; font-size: 1.6rem; }
  .pp-lightbox-nav { padding: 0 12px; }
}
