/* ═══════════════════════════════════════════════════════════
   BODY DEZIGN HOUSE: WOOCOMMERCE PRODUCT PAGE
   Place at: wp-content/themes/<child-theme>/assets/css/bdh-woocommerce.css

   This file styles the markup WooCommerce actually prints. Each block lists
   the BDH design class first and the WooCommerce class it pairs with, so a
   WooCommerce update that changes one selector does not silently break the
   page: the design class keeps working.

   Design tokens (--gold, --cream, --charcoal and so on) come from the parent
   theme stylesheet. This file defines none of them.

   Three custom properties the parent theme never defines (--serif, --sans,
   --line) are written with fallbacks, so they render correctly today and still
   defer to the theme if it ever defines them.
   ═══════════════════════════════════════════════════════════ */

/* ─── BREADCRUMB ─────────────────────────────────────────── */
/* WooCommerce prints its delimiter as a bare string, not inside <span class="sep">,
   so .sep will not match in production. Either wrap it with the
   woocommerce_breadcrumb_defaults filter, or set the delimiter to a styled string.
   The container rules below hold up either way. */
.crumb,
.woocommerce-breadcrumb {
  max-width:1240px; margin:0 auto; padding:22px 40px 0;
  font-size:12.5px; letter-spacing:.03em; color:var(--text-muted);
}
.crumb a,
.woocommerce-breadcrumb a { color:var(--text-muted); text-decoration:none; transition:color .2s; }
.crumb a:hover,
.woocommerce-breadcrumb a:hover { color:var(--gold-ink); }
.crumb .sep { color:var(--gold); margin:0 8px; }

/* ─── PRODUCT LAYOUT ─────────────────────────────────────── */
.pdp {
  max-width:1240px; margin:0 auto; padding:34px 40px 80px;
  display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);
  gap:64px; align-items:start;
}

/* ─── FEATURED PHOTO: one slot, 1200 x 1200 ──────────────── */
.gal { position:sticky; top:28px; }
.gal-main {
  width:100%; max-width:1200px;
  aspect-ratio:1200 / 1200;
  border:1px solid var(--line, rgba(115,88,49,0.18));
  background:linear-gradient(150deg,var(--cream) 0%,var(--cream-dark) 100%);
  display:flex; align-items:center; justify-content:center;
  position:relative; overflow:hidden;
}
/* Monogram placeholder, drawn only when no featured image is set. */
.gal-main[data-monogram]::after {
  content:attr(data-monogram);
  font-family:var(--serif, 'Cormorant Garamond', serif); font-size:120px; font-weight:500;
  color:rgba(115,88,49,.14); letter-spacing:.04em;
}
/* WooCommerce never crops the single product image, so the square is held
   here. Upload 1200 x 1200 originals and nothing is cut off. */
.gal-main .gal-photo,
.gal-main img {
  display:block; width:100%; height:100%;
  object-fit:cover; object-position:center;
}

/* ─── SUMMARY COLUMN ─────────────────────────────────────── */
.sum-brand {
  display:block; font-size:11px; font-weight:700;
  letter-spacing:var(--ls-wider); text-transform:uppercase; color:var(--gold-ink);
}
.sum-title,
.pdp .product_title {
  font-family:var(--serif, 'Cormorant Garamond', serif); font-size:clamp(32px,4vw,44px); font-weight:500;
  color:var(--text-primary); line-height:1.12; margin:10px 0 6px;
}
.sum-price,
.pdp .summary > .price {
  font-family:var(--serif, 'Cormorant Garamond', serif); font-size:28px; font-weight:500;
  color:var(--charcoal); margin:14px 0 4px;
}
.pdp .summary > .price del { opacity:.5; margin-right:10px; font-size:22px; }
/* WooCommerce generates the strikethrough price and the "Sale" flash by itself the
   moment a sale price is set, so removing them from this template does not keep them
   away. If visible discounting is not wanted on a range anchored at this price point,
   uncomment the two rules below.
.pdp .summary > .price del,
.rel ul.products .price del { display:none; }
.onsale { display:none; }
*/
.pdp .summary > .price ins { text-decoration:none; }
.sum-price small {
  font-family:var(--sans, 'Nunito Sans', sans-serif); font-size:12px; font-weight:600;
  color:var(--text-muted); letter-spacing:.04em; margin-left:8px;
}
.sum-orn {
  width:48px; height:1px; margin:18px 0;
  background:linear-gradient(90deg,var(--gold) 0%,transparent 100%);
}
.sum-excerpt,
.woocommerce-product-details__short-description {
  font-size:15.5px; line-height:1.75; color:var(--text-body);
}
.woocommerce-product-details__short-description p { margin:0 0 12px; }
.woocommerce-product-details__short-description p:last-child { margin-bottom:0; }

/* Stock line */
.sum-stock,
.pdp .stock {
  display:inline-flex; align-items:center; gap:8px;
  font-size:12.5px; font-weight:700; letter-spacing:var(--ls-wide);
  text-transform:uppercase; margin:22px 0 0;
}
.sum-stock,
.pdp .stock.in-stock { color:#4f7a52; }
.pdp .stock.out-of-stock { color:#8a4030; }
/* WooCommerce prints this class when a product is on backorder. Without a rule it
   inherits the in-stock green, which tells the customer the wrong thing. */
.pdp .stock.available-on-backorder { color:var(--gold-ink); }
.sum-stock::before,
.pdp .stock::before {
  content:''; width:7px; height:7px; border-radius:50%; background:currentColor;
}

/* ─── ADD TO CART ────────────────────────────────────────── */
.cart-row,
.pdp form.cart {
  display:flex; gap:14px; align-items:stretch;
  margin:20px 0 8px; flex-wrap:wrap;
}
.pdp form.cart .woocommerce-variation-add-to-cart { display:flex; gap:14px; width:100%; }

.qty,
.pdp form.cart .quantity {
  display:inline-flex; align-items:center;
  border:1px solid var(--line, rgba(115,88,49,0.18)); background:var(--white);
}
.qty input,
.pdp form.cart .quantity input.qty {
  width:48px; height:54px; border:none; text-align:center;
  font-family:var(--sans, 'Nunito Sans', sans-serif); font-size:16px; font-weight:600;
  color:var(--charcoal); background:transparent;
  -moz-appearance:textfield; appearance:textfield;
}
.qty input::-webkit-outer-spin-button, .qty input::-webkit-inner-spin-button,
.pdp form.cart .quantity input.qty::-webkit-outer-spin-button,
.pdp form.cart .quantity input.qty::-webkit-inner-spin-button {
  -webkit-appearance:none; margin:0;
}
/* WooCommerce prints a visually hidden label inside .quantity */
.pdp form.cart .quantity label.screen-reader-text { position:absolute; left:-9999px; }

.btn-cart,
.pdp form.cart button.single_add_to_cart_button {
  flex:1; min-width:200px; height:54px;
  background:var(--charcoal); color:var(--cream); border:1px solid var(--charcoal);
  font-family:var(--sans, 'Nunito Sans', sans-serif); font-size:12.5px; font-weight:700;
  letter-spacing:var(--ls-wider); text-transform:uppercase; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  transition:background .2s,color .2s; border-radius:0;
}
.btn-cart::after,
.pdp form.cart button.single_add_to_cart_button::after {
  content:'\2192'; font-weight:400; transition:transform .2s;
}
.btn-cart:hover,
.pdp form.cart button.single_add_to_cart_button:hover {
  background:transparent; color:var(--charcoal);
}
.btn-cart:hover::after,
.pdp form.cart button.single_add_to_cart_button:hover::after { transform:translateX(4px); }
.pdp form.cart button.single_add_to_cart_button.disabled { opacity:.45; cursor:not-allowed; }

/* Variable products: WooCommerce prints a .variations table of <select> controls.
   Unstyled they break the column badly. Kept minimal, since every product is
   currently 'simple', but present so the first size variant does not look broken. */
.pdp table.variations { width:100%; border-collapse:collapse; margin:18px 0 4px; }
.pdp table.variations th,
.pdp table.variations td { text-align:left; padding:6px 0; vertical-align:middle; }
.pdp table.variations th.label label {
  font-size:11px; font-weight:700; letter-spacing:var(--ls-wider);
  text-transform:uppercase; color:var(--text-muted);
}
.pdp table.variations select {
  width:100%; height:48px; padding:0 12px; background:var(--white);
  border:1px solid var(--line, rgba(115,88,49,0.18)); border-radius:0;
  font-family:var(--sans, 'Nunito Sans', sans-serif); font-size:14.5px; color:var(--charcoal);
}
.pdp .reset_variations { font-size:12px; color:var(--text-muted); }
.pdp .woocommerce-variation-price { margin:14px 0 0; }


/* ─── TABS ───────────────────────────────────────────────── */
/* Panel visibility is controlled by WooCommerce's own script, so display is
   deliberately not set here. */
.woocommerce-tabs { max-width:1240px; margin:0 auto; padding:0 40px 70px; }
.woocommerce-tabs ul.wc-tabs {
  display:flex; gap:36px; border-bottom:1px solid var(--line, rgba(115,88,49,0.18));
  margin:0; padding:0; list-style:none;
}
.woocommerce-tabs ul.wc-tabs li { margin:0; padding:0; background:none; border:none; }
.woocommerce-tabs ul.wc-tabs li a {
  display:block; background:none; border:none; padding:16px 0;
  font-family:var(--sans, 'Nunito Sans', sans-serif); font-size:12px; font-weight:700;
  letter-spacing:var(--ls-wider); text-transform:uppercase;
  color:var(--text-muted); cursor:pointer; text-decoration:none;
  position:relative;
}
.woocommerce-tabs ul.wc-tabs li.active a { color:var(--charcoal); }
.woocommerce-tabs ul.wc-tabs li.active a::after {
  content:''; position:absolute; left:0; right:0; bottom:-1px;
  height:2px; background:var(--gold);
}
.woocommerce-tabs .panel {
  padding:30px 0; max-width:760px;
  font-size:15.5px; line-height:1.8; color:var(--text-body);
}
.woocommerce-tabs .panel h2, .woocommerce-tabs .panel h3 {
  font-family:var(--serif, 'Cormorant Garamond', serif); font-size:24px; font-weight:500;
  color:var(--text-primary); margin-bottom:12px;
}
.woocommerce-tabs .panel p { margin-bottom:14px; }

.shop_attributes { width:100%; border-collapse:collapse; font-size:14px; }
.shop_attributes th, .shop_attributes td {
  text-align:left; padding:12px 14px; border:1px solid var(--line, rgba(115,88,49,0.18));
}
.shop_attributes th {
  background:var(--cream-mid); font-weight:700;
  color:var(--text-primary); width:170px;
}
.shop_attributes td p { margin:0; }

/* ─── RELATED PRODUCTS ───────────────────────────────────── */
.rel { background:var(--cream-mid); border-top:1px solid var(--line, rgba(115,88,49,0.18)); padding:64px 40px; }
.rel-inner { max-width:1240px; margin:0 auto; }
.rel-head { text-align:center; margin-bottom:40px; }
.rel-eyebrow {
  font-size:11px; font-weight:700; letter-spacing:var(--ls-wider);
  text-transform:uppercase; color:var(--gold-ink);
}
.rel-title {
  font-family:var(--serif, 'Cormorant Garamond', serif); font-size:34px; font-weight:500;
  color:var(--text-primary); margin-top:8px;
}
.rel-title i.i-italic { font-style:italic; font-weight:400; color:var(--text-sub); }

.rel-grid,
.rel ul.products {
  display:grid; grid-template-columns:repeat(4,1fr); gap:24px;
  margin:0; padding:0; list-style:none;
}
.rel ul.products::before, .rel ul.products::after { content:none; display:none; }

.pc,
.rel ul.products li.product {
  background:var(--white); border:1px solid var(--line, rgba(115,88,49,0.18));
  display:flex; flex-direction:column; margin:0; padding:0; width:auto; float:none;
  transition:transform .2s,box-shadow .2s;
}
.pc:hover { transform:translateY(-3px); box-shadow:0 24px 48px -28px rgba(42,36,32,.34); }
.pc-link { display:flex; flex-direction:column; flex:1; text-decoration:none; }
.pc-thumb {
  aspect-ratio:1 / 1;
  background:linear-gradient(150deg,var(--cream) 0%,var(--cream-dark) 100%);
  display:flex; align-items:center; justify-content:center;
  border-bottom:1px solid var(--line, rgba(115,88,49,0.18)); overflow:hidden; position:relative;
}
.pc-thumb img { display:block; width:100%; height:100%; object-fit:cover; margin:0; }
.pc-thumb[data-monogram]::after {
  content:attr(data-monogram); font-family:var(--serif, 'Cormorant Garamond', serif);
  font-size:52px; color:rgba(115,88,49,.16);
}
.pc-thumb .onsale {
  position:absolute; top:12px; left:12px; z-index:2; margin:0;
  background:var(--gold-pale); color:var(--gold-ink); border:1px solid var(--gold);
  font-size:10px; font-weight:700; letter-spacing:var(--ls-wider);
  text-transform:uppercase; padding:5px 10px; border-radius:0; line-height:1;
  min-height:0; min-width:0;
}
.pc-body { display:flex; flex-direction:column; gap:8px; padding:20px 20px 12px; flex:1; }
.pc-brand {
  font-size:10px; font-weight:700; letter-spacing:var(--ls-wider);
  text-transform:uppercase; color:var(--gold-ink);
}
.pc-name,
.pc .woocommerce-loop-product__title {
  font-family:var(--serif, 'Cormorant Garamond', serif); font-size:19px; font-weight:500;
  color:var(--text-primary); line-height:1.2; margin:0; padding:0;
}
.pc-price,
.pc .price {
  font-family:var(--serif, 'Cormorant Garamond', serif); font-size:18px; color:var(--charcoal); margin:0;
}
.pc .price del { opacity:.5; margin-right:8px; }
.pc .price ins { text-decoration:none; }
.pc-foot { padding:0 20px 22px; margin-top:auto; }
.pc-cta {
  display:inline-flex; align-items:center; gap:8px;
  font-size:12px; font-weight:700; letter-spacing:var(--ls-wide);
  text-transform:uppercase; color:var(--charcoal); text-decoration:none;
  transition:gap .2s,color .2s;
}
.pc-cta::after { content:'\2192'; font-weight:400; }
.pc:hover .pc-cta { color:var(--gold-ink); gap:12px; }

/* ─── NOTICES ────────────────────────────────────────────── */
.woocommerce-notices-wrapper { max-width:1240px; margin:0 auto; padding:0 40px; }
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info,
.woocommerce-notices-wrapper .woocommerce-error {
  margin:22px 0 0; padding:16px 18px; border-radius:0;
  background:var(--cream-mid); border-left:3px solid var(--gold);
  font-size:14px; line-height:1.6; color:var(--text-body); list-style:none;
}
.woocommerce-notices-wrapper .woocommerce-error { border-left-color:#8a4030; }
.woocommerce-notices-wrapper .button {
  background:var(--charcoal); color:var(--cream); border-radius:0;
  font-size:11.5px; font-weight:700; letter-spacing:var(--ls-wide);
  text-transform:uppercase; padding:10px 16px;
}

/* ─── RESPONSIVE ─────────────────────────────────────────── */
@media (max-width:980px) {
  .pdp { grid-template-columns:1fr; gap:36px; padding:26px 22px 60px; }
  .gal { position:static; }
  .crumb, .woocommerce-breadcrumb { padding:18px 22px 0; }
  .tabs, .woocommerce-tabs { padding:0 22px 56px; }
  .rel { padding:48px 22px; }
  .rel-grid, .rel ul.products { grid-template-columns:repeat(2,1fr); }
  .woocommerce-notices-wrapper { padding:0 22px; }
}
@media (max-width:560px) {
  .rel-grid, .rel ul.products { grid-template-columns:1fr; }
  .tab-nav, .woocommerce-tabs ul.wc-tabs { gap:22px; }
  .btn-cart, .pdp form.cart button.single_add_to_cart_button { min-width:100%; }
}

/* ─── GALLERY: thumbnail rail + zoom ─────────────────────── */
.gal-thumbs {
  display:flex; flex-wrap:wrap; gap:10px; margin-top:10px;
}
/* One image is a valid state. Hide the rail rather than showing a lone thumbnail
   that looks like a loading error. The template should also skip printing the rail
   when the gallery count is 1, this rule is the belt and braces for static output. */
.gal-thumbs:empty { display:none; }
.gal:has(.gal-thumb:only-child) .gal-thumbs { display:none; }
.gal-thumb {
  flex:0 0 88px; max-width:88px;
  aspect-ratio:1 / 1; padding:0; cursor:pointer; overflow:hidden;
  border:1px solid var(--line, rgba(115,88,49,0.18)); background:var(--cream);
  transition:border-color .2s;
}
.gal-thumb img { display:block; width:100%; height:100%; object-fit:cover; }
.gal-thumb[aria-current="true"] { border-color:var(--gold-deep); }
.gal-thumb:hover { border-color:var(--gold); }
.gal-thumb:focus-visible { outline:2px solid var(--gold-deep); outline-offset:2px; }

.gal-zoom {
  position:absolute; bottom:14px; right:14px; z-index:2;
  width:38px; height:38px; border-radius:50%; cursor:pointer;
  border:1px solid var(--line, rgba(115,88,49,0.18)); background:var(--white);
  color:var(--gold-ink); font-size:15px; line-height:1;
  display:inline-flex; align-items:center; justify-content:center;
  transition:background .2s,color .2s;
}
.gal-zoom:hover { background:var(--charcoal); color:var(--cream); }

.gal-lightbox {
  position:fixed; inset:0; z-index:4000; display:none;
  background:rgba(30,26,23,.94); padding:32px;
  align-items:center; justify-content:center;
}
.gal-lightbox[data-open="true"] { display:flex; }
.gal-lightbox img { max-width:min(94vw,1100px); max-height:88vh; display:block; }
.gal-lightbox-close {
  position:absolute; top:22px; right:26px; width:44px; height:44px;
  background:none; border:1px solid rgba(250,247,242,.35); color:var(--cream);
  font-size:22px; line-height:1; cursor:pointer;
}

/* ─── INSTALMENTS ────────────────────────────────────────── */
.sum-instal {
  font-family:var(--sans, 'Nunito Sans', sans-serif); font-size:12px; font-weight:600;
  letter-spacing:.03em; color:var(--text-muted); margin:0 0 2px;
}
.sum-instal b { color:var(--text-sub); font-weight:700; }

/* ─── HOOK + BENEFIT BULLETS ─────────────────────────────── */
.sum-hook {
  font-family:var(--serif, 'Cormorant Garamond', serif); font-size:20px;
  line-height:1.4; color:var(--text-primary); margin:0 0 14px;
}
.sum-benefits { margin:0; padding:0; list-style:none; display:grid; gap:8px; }
.sum-benefits li {
  position:relative; padding-left:20px;
  font-size:14.5px; line-height:1.6; color:var(--text-body);
}
.sum-benefits li::before {
  content:'\2713'; position:absolute; left:0; top:0;
  color:var(--gold-deep); font-size:12px; font-weight:700;
}

/* ─── TRUST BAND ─────────────────────────────────────────── */
.trust {
  margin:22px 0 0; padding:16px 0 0;
  border-top:1px solid var(--line, rgba(115,88,49,0.18));
  display:grid; gap:9px;
}
.trust li {
  list-style:none; position:relative; padding-left:16px;
  font-size:13px; line-height:1.6; color:var(--text-body);
}
.trust li::before {
  content:''; position:absolute; left:0; top:.56em;
  width:5px; height:5px; background:var(--gold-deep); transform:rotate(45deg);
}
/* A single line is not a list. Drop the marker and the indent when only one remains. */
.trust li:only-child { padding-left:0; }
.trust li:only-child::before { display:none; }
.trust b { font-weight:700; color:var(--text-primary); }

/* ─── PRODUCT DETAILS, open by default, no click to read ─── */
.pd-open { border-top:1px solid var(--line, rgba(115,88,49,0.18)); padding-top:30px; }
.pd-open-title {
  font-family:var(--serif, 'Cormorant Garamond', serif); font-size:28px; font-weight:500;
  color:var(--text-primary); margin:0 0 18px; line-height:1.15;
}
.pd-fine { font-size:12.5px; color:var(--text-muted); margin-top:20px; }
.pd-acc-panel .pd-lead { margin:0 0 10px; color:var(--text-primary); font-weight:600; }
.pd-acc-panel ul.pd-ing { margin:0 0 18px; padding-left:20px; list-style:disc; }
.pd-acc-panel ul.pd-ing li { margin-bottom:9px; }
.pd-acc-panel ul.pd-ing b { color:var(--text-primary); }

/* ─── PANEL BODY (shared by the open details section) ─────── */
/* The accordion, suitability and INCI rules were removed with their components.
   The parked reviews and routine set blocks keep their own styling below. */
.pd-acc { max-width:1240px; margin:0 auto; padding:0 40px 24px; }
.pd-acc-inner { max-width:820px; }
.pd-acc-panel {
  padding:0 0 26px; font-size:15.5px; line-height:1.8; color:var(--text-body);
}
.pd-acc-panel h3 {
  font-family:var(--sans, 'Nunito Sans', sans-serif); font-size:11px; font-weight:700;
  letter-spacing:var(--ls-wider); text-transform:uppercase; color:var(--gold-ink);
  margin:26px 0 8px;
}
.pd-acc-panel h3:first-child { margin-top:0; }
.pd-acc-panel p { margin:0 0 14px; }
.pd-acc-panel p:last-child { margin-bottom:0; }
.pd-acc-panel ul { margin:0 0 14px; padding-left:20px; }
.pd-acc-panel li { margin-bottom:7px; }
.pd-acc-panel a { color:var(--gold-ink); text-decoration:none; border-bottom:1px solid var(--gold-pale); }
.pd-acc-panel a:hover { border-bottom-color:var(--gold); }
.pd-acc-panel 
/* ─── REVIEWS (parked, see the commented block in the body) ── */
.revs { max-width:1240px; margin:0 auto; padding:26px 40px 70px; }
.revs-inner { max-width:820px; }
.revs-head {
  display:flex; align-items:baseline; justify-content:space-between;
  gap:20px; flex-wrap:wrap; padding-bottom:16px;
  border-bottom:1px solid var(--line, rgba(115,88,49,0.18));
}
.revs-title {
  font-family:var(--serif, 'Cormorant Garamond', serif); font-size:28px; font-weight:500;
  color:var(--text-primary); margin:0;
}
.revs-score { display:flex; align-items:center; gap:10px; }
.stars { color:var(--gold-deep); font-size:15px; letter-spacing:.14em; }
.revs-count { font-size:12.5px; color:var(--text-muted); }
.rev { padding:22px 0; border-bottom:1px solid var(--line, rgba(115,88,49,0.18)); }
.rev-meta { display:flex; gap:12px; align-items:baseline; flex-wrap:wrap; margin-bottom:8px; }
.rev-name { font-size:13px; font-weight:700; color:var(--text-primary); }
.rev-badge {
  font-size:9.5px; font-weight:700; letter-spacing:var(--ls-wider);
  text-transform:uppercase; color:var(--gold-ink);
  border:1px solid var(--gold-pale); background:var(--cream-mid); padding:3px 7px;
}
.rev-body { font-size:15px; line-height:1.75; color:var(--text-body); margin:0; }

/* ─── ROUTINE SET (parked, see the commented block in the body) ─ */
.set { background:var(--cream-mid); padding:var(--sp-section-tight) 40px; }
.set-inner { max-width:1240px; margin:0 auto; }
.set-eyebrow {
  display:block; font-size:10.5px; font-weight:700; letter-spacing:var(--ls-widest);
  text-transform:uppercase; color:var(--gold-ink); margin-bottom:10px;
}
.set-title {
  font-family:var(--serif, 'Cormorant Garamond', serif); font-size:clamp(28px,3.4vw,38px);
  font-weight:500; color:var(--text-primary); margin:0 0 6px; line-height:1.15;
}
.set-lede { font-size:15px; line-height:1.75; color:var(--text-body); max-width:56ch; margin:0 0 28px; }
.set-row { display:grid; grid-template-columns:repeat(3,1fr) auto; gap:22px; align-items:center; }
.set-item { text-align:center; }
.set-item-img {
  aspect-ratio:1 / 1; border:1px solid var(--line, rgba(115,88,49,0.18));
  background:var(--white); overflow:hidden; margin-bottom:10px;
}
.set-item-img img { display:block; width:100%; height:100%; object-fit:cover; }
.set-item-name {
  font-family:var(--serif, 'Cormorant Garamond', serif); font-size:17px; font-weight:500;
  color:var(--text-primary); margin:0 0 2px;
}
.set-item-price { font-size:12.5px; color:var(--text-muted); }
.set-buy { text-align:left; padding-left:6px; border-left:1px solid var(--line, rgba(115,88,49,0.18)); }
.set-total {
  font-family:var(--serif, 'Cormorant Garamond', serif); font-size:32px; font-weight:500;
  color:var(--charcoal); display:block; line-height:1.1;
}
.set-save { display:block; font-size:12px; color:var(--gold-ink); font-weight:700; margin:4px 0 16px; letter-spacing:.03em; }
.set-cta {
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  height:50px; padding:0 26px; background:var(--charcoal); color:var(--cream);
  border:1px solid var(--charcoal); text-decoration:none; cursor:pointer;
  font-family:var(--sans, 'Nunito Sans', sans-serif); font-size:11.5px; font-weight:700;
  letter-spacing:var(--ls-wider); text-transform:uppercase; transition:background .2s,color .2s;
}
.set-cta:hover { background:transparent; color:var(--charcoal); }

/* ─── CONSULTATION BAND ──────────────────────────────────── */
.cband { border-top:1px solid var(--line, rgba(115,88,49,0.18)); }
.cband-inner {
  max-width:1240px; margin:0 auto; padding:var(--sp-section-tight) 40px;
  display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap;
}
.cband-title {
  font-family:var(--serif, 'Cormorant Garamond', serif); font-size:clamp(24px,2.8vw,32px);
  font-weight:500; color:var(--text-primary); margin:0 0 6px; line-height:1.2;
}
.cband-sub { font-size:14.5px; line-height:1.7; color:var(--text-body); margin:0; max-width:54ch; }
.cband-cta {
  display:inline-flex; align-items:center; gap:10px; height:52px; padding:0 30px;
  border:1px solid var(--charcoal); color:var(--charcoal); text-decoration:none;
  font-family:var(--sans, 'Nunito Sans', sans-serif); font-size:11.5px; font-weight:700;
  letter-spacing:var(--ls-wider); text-transform:uppercase;
  transition:background .2s,color .2s; flex:none;
}
.cband-cta:hover { background:var(--charcoal); color:var(--cream); }

/* ─── STICKY BUY BAR (mobile) ────────────────────────────── */
.buybar {
  position:fixed; left:0; right:0; bottom:0; z-index:900;
  display:none; gap:14px; align-items:center;
  padding:10px 16px; background:rgba(254,252,248,0.98);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border-top:1px solid var(--line, rgba(115,88,49,0.18));
  transform:translateY(102%); visibility:hidden; pointer-events:none;
  transition:transform .28s var(--ease, ease), visibility .28s;
  padding-bottom:calc(10px + env(safe-area-inset-bottom));
}
.buybar[data-show="true"] { transform:translateY(0); visibility:visible; pointer-events:auto; }
.buybar-thumb {
  width:44px; height:44px; flex:none; overflow:hidden;
  border:1px solid var(--line, rgba(115,88,49,0.18));
}
.buybar-thumb img { display:block; width:100%; height:100%; object-fit:cover; }
.buybar-text { min-width:0; flex:1; }
.buybar-name {
  display:block; font-family:var(--serif, 'Cormorant Garamond', serif);
  font-size:15px; color:var(--text-primary); line-height:1.2;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.buybar-price { display:block; font-size:12px; color:var(--text-muted); font-weight:600; }
.buybar-cta {
  flex:none; height:44px; padding:0 20px; border:1px solid var(--charcoal);
  background:var(--charcoal); color:var(--cream); cursor:pointer;
  font-family:var(--sans, 'Nunito Sans', sans-serif); font-size:11px; font-weight:700;
  letter-spacing:var(--ls-wide); text-transform:uppercase;
}
@media (max-width:980px) { .buybar { display:flex; } }

/* ─── RESPONSIVE ADDITIONS ───────────────────────────────── */
@media (max-width:980px) {
  .pd-acc { padding:0 22px 20px; }
  .revs { padding:20px 22px 56px; }
  .set { padding:44px 22px; }
  .set-row { grid-template-columns:repeat(3,1fr); }
  .set-buy { grid-column:1 / -1; border-left:none; padding-left:0; padding-top:20px;
    border-top:1px solid var(--line, rgba(115,88,49,0.18)); text-align:center; }
  .cband-inner { padding:44px 22px; }
  .pdp { padding-bottom:96px; }
}
@media (max-width:560px) {
  .gal-thumb { flex:0 0 72px; max-width:72px; }
  .set-row { grid-template-columns:repeat(2,1fr); }
  .cband-cta { width:100%; justify-content:center; }
}
@media (prefers-reduced-motion:reduce) {
  .buybar { transition:none; }
}

/* ─── SHOP / CATALOGO (archive-product.php) ──────────────────
   Mesmo vocabulario dos cards .pc da secao Related Products. */
.shop-head { max-width:1240px; margin:0 auto; padding:36px 40px 6px; }
.shop-eyebrow {
  display:block; font-family:'Nunito Sans',sans-serif; font-size:12px; font-weight:700;
  letter-spacing:.22em; text-transform:uppercase; color:var(--gold-ink,#735831); margin-bottom:14px;
}
.shop-title {
  font-family:'Cormorant Garamond',serif; font-size:clamp(34px,4.6vw,52px); font-weight:500;
  color:var(--charcoal,#2a2420); letter-spacing:-0.01em; margin:0 0 14px;
}
.shop-lede {
  font-family:'Nunito Sans',sans-serif; font-size:16px; line-height:1.7;
  color:var(--text-body,#4a4238); max-width:640px; margin:0 0 26px;
}
.shop-cats { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 8px; }
.shop-cat {
  display:inline-block; font-family:'Nunito Sans',sans-serif; font-size:12px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; text-decoration:none;
  color:var(--text-primary,#2a2420); border:1px solid rgba(115,88,49,.35);
  padding:10px 20px; transition:all .22s ease; background:transparent;
}
.shop-cat:hover { border-color:var(--gold-deep,#8a6a3b); color:var(--gold-ink,#735831); }
.shop-cat.is-active { background:var(--charcoal,#2a2420); border-color:var(--charcoal,#2a2420); color:var(--cream,#faf7f2); }

.shop-body { max-width:1240px; margin:0 auto; padding:26px 40px 72px; }
.shop-grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:26px;
  list-style:none; margin:0; padding:0;
}
.shop-grid::before, .shop-grid::after { content:none; display:none; }
.shop-grid .woocommerce-loop-product__title { font-size:17px; }
.shop-empty { font-family:'Nunito Sans',sans-serif; color:var(--text-body,#4a4238); }

/* paginacao (the_posts_pagination) */
.shop-body .navigation.pagination { margin-top:44px; }
.shop-body .nav-links { display:flex; gap:8px; justify-content:center; }
.shop-body .nav-links .page-numbers {
  font-family:'Nunito Sans',sans-serif; font-size:14px; font-weight:700; text-decoration:none;
  color:var(--text-primary,#2a2420); border:1px solid rgba(115,88,49,.35);
  min-width:42px; padding:10px 12px; text-align:center; transition:all .2s ease;
}
.shop-body .nav-links .page-numbers.current,
.shop-body .nav-links .page-numbers:hover { background:var(--charcoal,#2a2420); color:var(--cream,#faf7f2); border-color:var(--charcoal,#2a2420); }
.shop-body .screen-reader-text { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }

@media (max-width:1100px) { .shop-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:820px)  { .shop-grid { grid-template-columns:repeat(2,1fr); gap:18px; } .shop-head, .shop-body { padding-left:22px; padding-right:22px; } }
@media (max-width:480px)  { .shop-grid { grid-template-columns:1fr; } }

/* ─── Stepper de quantidade + saneamento de focus/notice ─────
   (os azuis eram defaults do navegador expostos ao desligar o CSS do Woo) */
/* o container .quantity ja desenha a caixa (borda + fundo branco, regras acima);
   os botoes vivem DENTRO dela, sem borda propria, com divisores sutis */
.pdp form.cart .quantity.bdh-qty { display:inline-flex; align-items:stretch; }
.pdp form.cart .qty-btn {
  width:42px; height:54px; border:none; background:transparent;
  font-family:'Nunito Sans',sans-serif; font-size:18px; line-height:1;
  color:var(--charcoal,#2a2420); cursor:pointer; transition:color .2s ease; border-radius:0;
}
.pdp form.cart .qty-btn:first-of-type { border-right:1px solid var(--line, rgba(115,88,49,0.14)); }
.pdp form.cart .qty-btn:last-of-type { border-left:1px solid var(--line, rgba(115,88,49,0.14)); }
.pdp form.cart .qty-btn:hover { color:var(--gold-ink,#735831); }

/* focus dourado no lugar do anel azul default, mantendo acessibilidade */
.pdp form.cart .quantity .qty:focus,
.pdp form.cart .qty-btn:focus,
.pdp form.cart .single_add_to_cart_button:focus,
.buybar-cta:focus, .pc-cta:focus, .cband-cta:focus {
  outline:2px solid var(--gold-deep,#8a6a3b); outline-offset:2px; box-shadow:none;
}
.pdp form.cart .quantity .qty:focus { outline-offset:0; }

/* avisos do Woo (added to cart etc.) no vocabulario do design */
.woocommerce-notices-wrapper { max-width:1240px; margin:0 auto; padding:18px 40px 0; }
.woocommerce-message, .woocommerce-info, .woocommerce-error li, .woocommerce-error {
  list-style:none; border:1.5px solid var(--gold-deep,#8a6a3b); background:var(--cream,#faf7f2);
  color:var(--text-primary,#2a2420); font-family:'Nunito Sans',sans-serif; font-size:15px;
  padding:16px 20px; margin:0 0 8px; display:flex; align-items:center; gap:18px;
  justify-content:space-between; flex-wrap:wrap; outline:none !important;
}
.woocommerce-message:focus, .woocommerce-info:focus, .woocommerce-error:focus { outline:none !important; }
.woocommerce-message .button, .woocommerce-info .button {
  order:2; background:var(--charcoal,#2a2420); color:var(--cream,#faf7f2); text-decoration:none;
  font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  padding:10px 18px; border:1.5px solid var(--charcoal,#2a2420); transition:all .2s ease;
}
.woocommerce-message .button:hover { background:var(--gold-deep,#8a6a3b); border-color:var(--gold-deep,#8a6a3b); }

/* ─── Gate "Request this product" (ZO §3, opcao 1) ─────────── */
.bdh-request-only { margin:20px 0 8px; }
.bdh-request-btn {
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  width:100%; min-height:54px; text-decoration:none;
  background:var(--charcoal,#2a2420); color:var(--cream,#faf7f2);
  border:1px solid var(--charcoal,#2a2420); border-radius:0;
  font-family:var(--sans,'Nunito Sans',sans-serif); font-size:12.5px; font-weight:700;
  letter-spacing:var(--ls-wider,.12em); text-transform:uppercase;
  transition:background .2s,color .2s;
}
.bdh-request-btn::after { content:'\2192'; font-weight:400; transition:transform .2s; }
.bdh-request-btn:hover { background:var(--gold-deep,#8a6a3b); border-color:var(--gold-deep,#8a6a3b); color:#fff; }
.bdh-request-note { font-size:13.5px; color:var(--text-sub,#6d6357); margin:10px 0 0; line-height:1.6; }
