/* ==========================================================================
   BOLTON PDP — Decision Cockpit  |  assets/css/tpl-single.css  (v0.3.41)
   Theme override for content-single-product.php (attempt A).

   UNLAYERED BY DESIGN: this stylesheet intentionally uses NO @layer wrapper.
   The active theme wraps its own CSS in cascade layers; unlayered rules beat
   layered ones regardless of specificity, so the entire file stays outside
   @layer to reliably win over both theme CSS and unlayered WooCommerce core.

   Colour comes ONLY from --bx-* design tokens (color-mix of tokens allowed).
   Raw rgba() is used solely for shadows / overlays. Everything is scoped
   under .single-product so cart, checkout and account flows are untouched.
   WooCommerce notices are never hidden.
   ========================================================================== */

/* --------------------------------------------------------------------------
   0 · SCOPE ROOT
   -------------------------------------------------------------------------- */
.single-product .bx-pdp {
  --bx-pdp-panel-bg: var(--bx-surface);
  --bx-pdp-panel-border: var(--bx-surface-border);
  --bx-pdp-raise: color-mix(in srgb, var(--bx-surface) 88%, var(--bx-contrast) 12%);
  --bx-pdp-shadow: 0 1px 2px rgba(0, 0, 0, .28), 0 18px 44px -28px rgba(0, 0, 0, .55);
  --bx-pdp-shadow-sm: 0 1px 2px rgba(0, 0, 0, .22);
  box-sizing: border-box;
  width: 100%;
  max-width: 1360px;
  margin-inline: auto;
  padding-inline: var(--bx-gutter);
  color: var(--bx-ink-text);
  font-family: var(--bx-font-sans);
  line-height: var(--bx-lh-body);
}
.single-product .bx-pdp *,
.single-product .bx-pdp *::before,
.single-product .bx-pdp *::after { box-sizing: border-box; }
.single-product .bx-pdp img { max-width: 100%; height: auto; }

/* --------------------------------------------------------------------------
   1 · ABOVE-FOLD 3-ZONE COCKPIT GRID
   -------------------------------------------------------------------------- */
.single-product .bx-pdp__cockpit {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "identity" "action" "visual";
  align-items: start;
  gap: clamp(16px, 3.4vw, 24px);
  margin-block: clamp(var(--bx-sp-20), 3vw, var(--bx-sp-40));
}
.single-product .bx-pdp__visual   { grid-area: visual; min-width: 0; }
.single-product .bx-pdp__identity { grid-area: identity; min-width: 0; }
.single-product .bx-pdp__action   { grid-area: action; min-width: 0; }

@media (min-width: 900px) {
  .single-product .bx-pdp__cockpit {
    grid-template-columns: minmax(240px, 300px) minmax(0, 1fr);
    grid-template-areas:
      "visual identity"
      "action action";
    gap: clamp(20px, 2.4vw, 28px);
  }
}
@media (min-width: 1080px) {
  .single-product .bx-pdp__cockpit {
    grid-template-columns: minmax(280px, 340px) minmax(0, 1fr) minmax(320px, 380px);
    grid-template-areas: "visual identity action";
    gap: clamp(20px, 2vw, 32px);
  }
}

/* --------------------------------------------------------------------------
   2 · ZONE 1 — VISUAL (framed gallery / fallback tile)
   -------------------------------------------------------------------------- */
.single-product .bx-pdp__visual {
  position: relative;
  padding: clamp(14px, 1.4vw, 20px);
  background: var(--bx-pdp-panel-bg);
  border: 1px solid var(--bx-pdp-panel-border);
  border-radius: var(--bx-radius-lg);
  box-shadow: var(--bx-pdp-shadow-sm);
}
.single-product .bx-pdp__visual .woocommerce-product-gallery {
  position: relative;
  margin: 0;
  width: 100% !important;
  float: none;
}
.single-product .bx-pdp__visual .woocommerce-product-gallery__wrapper {
  margin: 0;
  display: block;
}
.single-product .bx-pdp__visual .woocommerce-product-gallery__image {
  border-radius: var(--bx-radius);
  overflow: hidden;
  background: color-mix(in srgb, var(--bx-surface) 82%, var(--bx-cream) 18%);
}
.single-product .bx-pdp__visual .woocommerce-product-gallery__image > a {
  display: block;
}
.single-product .bx-pdp__visual .woocommerce-product-gallery__image img {
  display: block;
  width: 100%;
  height: auto;
  max-height: min(52vh, 440px);
  aspect-ratio: 1 / 1;
  object-fit: contain;
  margin-inline: auto;
}
/* zoom trigger — subtle, corner-anchored */
.single-product .bx-pdp__visual .woocommerce-product-gallery__trigger {
  position: absolute;
  top: clamp(16px, 1.6vw, 22px);
  right: clamp(16px, 1.6vw, 22px);
  z-index: 5;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: var(--bx-radius-pill);
  background: color-mix(in srgb, var(--bx-contrast) 70%, transparent);
  border: 1px solid var(--bx-border-hair);
  color: var(--bx-content);
  text-indent: 0;
  transition: background var(--bx-dur-1) var(--bx-ease), transform var(--bx-dur-1) var(--bx-ease);
}
.single-product .bx-pdp__visual .woocommerce-product-gallery__trigger:hover {
  background: color-mix(in srgb, var(--bx-contrast) 88%, transparent);
  transform: translateY(-1px);
}
/* thumbnails — tidy wrapped row */
.single-product .bx-pdp__visual .flex-control-thumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: clamp(10px, 1.2vw, 14px) 0 0;
  padding: 0;
  list-style: none;
}
.single-product .bx-pdp__visual .flex-control-thumbs li {
  width: 56px;
  margin: 0;
  list-style: none;
}
.single-product .bx-pdp__visual .flex-control-thumbs img {
  display: block;
  width: 56px;
  height: 56px;
  object-fit: contain;
  padding: 5px;
  cursor: pointer;
  border-radius: var(--bx-radius-sm);
  background: color-mix(in srgb, var(--bx-surface) 80%, var(--bx-cream) 20%);
  border: 1px solid var(--bx-border-hair);
  opacity: .68;
  transition: opacity var(--bx-dur-1) var(--bx-ease), border-color var(--bx-dur-1) var(--bx-ease);
}
.single-product .bx-pdp__visual .flex-control-thumbs img:hover,
.single-product .bx-pdp__visual .flex-control-thumbs img.flex-active {
  opacity: 1;
  border-color: color-mix(in srgb, var(--bx-gold) 60%, var(--bx-surface-border));
}
/* sale flash */
.single-product .bx-pdp__visual span.onsale {
  position: absolute;
  top: clamp(16px, 1.6vw, 22px);
  left: clamp(16px, 1.6vw, 22px);
  z-index: 5;
  min-height: 0;
  min-width: 0;
  margin: 0;
  padding: 4px 12px;
  font-family: var(--bx-font-mono);
  font-size: var(--bx-fs-xs);
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  border-radius: var(--bx-radius-pill);
  background: var(--bx-gold);
  color: var(--bx-navy-deep);
  line-height: 1.4;
}
/* imageless fallback — premium framed tile, capped so it never dominates */
.single-product .bx-pdp__visual .sx-fallback {
  display: flex;
  flex-direction: column;
  gap: 14px;
  width: 100%;
  max-width: 340px;
  margin-inline: auto;
  aspect-ratio: 1 / 1;
  padding: clamp(16px, 2vw, 24px);
  border-radius: var(--bx-radius);
  background:
    radial-gradient(120% 120% at 30% 20%,
      color-mix(in srgb, var(--bx-surface) 70%, var(--bx-navy-line) 30%) 0%,
      var(--bx-surface) 70%);
  border: 1px solid var(--bx-border-hair);
}
.single-product .bx-pdp__visual .sx-fallback__geo {
  flex: 1 1 auto;
  width: 100%;
  min-height: 0;
  display: block;
  color: color-mix(in srgb, var(--bx-gold) 55%, var(--bx-steel-dim));
  opacity: .8;
}
.single-product .bx-pdp__visual .sx-fallback__geo svg { width: 100%; height: 100%; }
.single-product .bx-pdp__visual .sx-fallback__meta {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding-top: 12px;
  border-top: 1px solid var(--bx-divider);
}
.single-product .bx-pdp__visual .sx-fallback__sku {
  font-family: var(--bx-font-mono);
  font-size: var(--bx-fs-sm);
  font-weight: 600;
  color: var(--bx-ink-text);
  overflow-wrap: anywhere;
}
.single-product .bx-pdp__visual .sx-fallback__family {
  font-size: var(--bx-fs-xs);
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--bx-accent-strong);
}
.single-product .bx-pdp__visual .sx-fallback__note {
  font-size: var(--bx-fs-xs);
  color: var(--bx-ink-muted);
}

/* --------------------------------------------------------------------------
   3 · ZONE 2 — IDENTITY (eyebrow, title, datasheet idents, summary, doccue)
   -------------------------------------------------------------------------- */
.single-product .bx-pdp__identity { padding-block: clamp(2px, 1vw, 8px); }
.single-product .bx-pdp__eyebrow {
  margin: 0 0 var(--bx-sp-10);
  font-family: var(--bx-font-mono);
  font-size: var(--bx-fs-xs);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .16em;
  color: var(--bx-accent-strong);
}
.single-product .bx-pdp__eyebrow a { color: inherit; text-decoration: none; }
.single-product .bx-pdp__eyebrow a:hover { color: var(--bx-accent-hover); }
.single-product .bx-pdp__identity h1.product_title,
.single-product .bx-pdp__identity .product_title {
  margin: 0 0 clamp(14px, 1.6vw, 20px);
  font-family: var(--bx-font-display);
  font-size: clamp(var(--bx-fs-2xl), 4vw, var(--bx-fs-display));
  font-weight: 700;
  line-height: var(--bx-lh-tight);
  letter-spacing: -.01em;
  color: var(--bx-ink);
  overflow-wrap: anywhere;
}
/* datasheet-style dense key/value grid */
.single-product .bx-pdp__idents {
  margin: 0 0 clamp(16px, 1.8vw, 22px);
  padding: 0;
  border-top: 1px solid var(--bx-divider);
}
.single-product .bx-pdp__ident {
  display: grid;
  grid-template-columns: minmax(96px, 34%) minmax(0, 1fr);
  gap: 10px 16px;
  align-items: baseline;
  margin: 0;
  padding: 9px 2px;
  border-bottom: 1px solid var(--bx-divider);
}
.single-product .bx-pdp__ident-k,
.single-product .bx-pdp__ident dt {
  margin: 0;
  font-family: var(--bx-font-mono);
  font-size: var(--bx-fs-xs);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--bx-ink-muted);
}
.single-product .bx-pdp__ident dd {
  margin: 0;
  font-size: var(--bx-fs-sm);
  font-weight: 600;
  color: var(--bx-ink-text);
  overflow-wrap: anywhere;
}
/* short description */
.single-product .woocommerce-product-details__short-description {
  margin: 0 0 clamp(14px, 1.6vw, 18px);
  max-width: 62ch;
  color: var(--bx-ink-text);
  font-size: var(--bx-fs-base);
  line-height: var(--bx-lh-body);
}
.single-product .woocommerce-product-details__short-description p { margin: 0 0 .7em; }
.single-product .woocommerce-product-details__short-description p:last-child { margin-bottom: 0; }
/* doc cue link */
.single-product .bx-pdp__doccue {
  margin: 0;
  font-size: var(--bx-fs-sm);
}
.single-product .bx-pdp__doccue a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--bx-accent-strong);
  text-decoration: none;
  font-weight: 600;
}
.single-product .bx-pdp__doccue a::after { content: "→"; transition: transform var(--bx-dur-1) var(--bx-ease); }
.single-product .bx-pdp__doccue a:hover { color: var(--bx-accent-hover); }
.single-product .bx-pdp__doccue a:hover::after { transform: translateX(3px); }

/* --------------------------------------------------------------------------
   4 · ZONE 3 — ACTION (the conversion centre)
   -------------------------------------------------------------------------- */
.single-product .bx-pdp__action {
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 1.4vw, 16px);
  padding: clamp(18px, 2vw, 26px);
  background: var(--bx-pdp-raise);
  border: 1px solid var(--bx-pdp-panel-border);
  border-radius: var(--bx-radius-lg);
  box-shadow: var(--bx-pdp-shadow);
}
.single-product .bx-pdp__action.summary,
.single-product .bx-pdp__action.entry-summary { float: none; width: auto; margin: 0; }
@media (min-width: 1080px) {
  .single-product .bx-pdp__action {
    position: sticky;
    top: calc(var(--bx-header-offset, 90px) + 16px);
  }
}
/* state badge / pill */
.single-product .bx-pdp__state {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  align-self: flex-start;
  margin: 0;
  padding: 6px 14px 6px 12px;
  font-family: var(--bx-font-mono);
  font-size: var(--bx-fs-xs);
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  line-height: 1.5;
  border-radius: var(--bx-radius-pill);
  border: 1px solid var(--bx-border-hair);
  background: color-mix(in srgb, var(--bx-contrast) 45%, transparent);
  color: var(--bx-ink-text);
}
.single-product .bx-pdp__state::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--bx-steel-dim);
  box-shadow: 0 0 0 3px rgba(0, 0, 0, .12);
}
.single-product .bx-pdp__state.is-buy {
  color: var(--bx-accent-strong);
  background: color-mix(in srgb, var(--bx-accent) 16%, transparent);
  border-color: color-mix(in srgb, var(--bx-accent) 40%, var(--bx-border-hair));
}
.single-product .bx-pdp__state.is-buy::before { background: var(--bx-accent); }
.single-product .bx-pdp__state.is-rfq {
  color: var(--bx-gold-deep);
  background: color-mix(in srgb, var(--bx-gold) 18%, transparent);
  border-color: color-mix(in srgb, var(--bx-gold) 42%, var(--bx-border-hair));
}
.single-product .bx-pdp__state.is-rfq::before { background: var(--bx-gold); }
.single-product .bx-pdp__state.is-options {
  color: var(--bx-info);
  background: var(--bx-info-bg);
  border-color: color-mix(in srgb, var(--bx-info) 40%, var(--bx-border-hair));
}
.single-product .bx-pdp__state.is-options::before { background: var(--bx-info); }
.single-product .bx-pdp__state.is-external {
  color: var(--bx-ink-text);
  background: color-mix(in srgb, var(--bx-steel-dim) 20%, transparent);
  border-color: color-mix(in srgb, var(--bx-steel-dim) 45%, var(--bx-border-hair));
}
.single-product .bx-pdp__state.is-external::before { background: var(--bx-steel-dim); }
.single-product .bx-pdp__state.is-oos {
  color: var(--bx-danger);
  background: var(--bx-danger-bg);
  border-color: color-mix(in srgb, var(--bx-danger) 42%, var(--bx-border-hair));
}
.single-product .bx-pdp__state.is-oos::before { background: var(--bx-danger); }

/* price — focal number */
.single-product .bx-pdp__action p.price,
.single-product .bx-pdp__action .price {
  margin: 0;
  font-family: var(--bx-font-display);
  font-size: clamp(var(--bx-fs-xl), 3.2vw, var(--bx-fs-2xl));
  font-weight: 700;
  line-height: var(--bx-lh-tight);
  color: var(--bx-ink);
}
.single-product .bx-pdp__action .price ins,
.single-product .bx-pdp__action .price .woocommerce-Price-amount { text-decoration: none; }
.single-product .bx-pdp__action .price del {
  margin-right: 10px;
  font-size: .6em;
  font-weight: 500;
  color: var(--bx-ink-muted);
  opacity: .8;
}
.single-product .bx-pdp__action .price ins {
  color: var(--bx-ink);
}

/* cart form */
.single-product .bx-pdp__action form.cart {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 10px;
  margin: 0;
}
.single-product .bx-pdp__action form.cart .quantity {
  flex: 0 0 auto;
}
.single-product .bx-pdp__action form.cart .quantity input.qty {
  width: 76px;
  height: 50px;
  padding: 0 8px;
  text-align: center;
  font-family: var(--bx-font-mono);
  font-size: var(--bx-fs-base);
  font-weight: 600;
  color: var(--bx-field-text);
  background: var(--bx-field-bg);
  border: 1px solid var(--bx-field-border);
  border-radius: var(--bx-radius-sm);
}
.single-product .bx-pdp__action form.cart button.single_add_to_cart_button,
.single-product .bx-pdp__action .single_variation_wrap button.single_add_to_cart_button {
  flex: 1 1 200px;
  min-width: 0;
  min-height: 50px;
  padding: 14px 22px;
  font-family: var(--bx-font-sans);
  font-size: var(--bx-fs-base);
  font-weight: 700;
  letter-spacing: .01em;
  line-height: 1.2;
  text-align: center;
  color: var(--bx-btn-primary-fg);
  background: var(--bx-btn-primary-bg);
  border: 1px solid color-mix(in srgb, var(--bx-btn-primary-bg) 70%, var(--bx-gold-deep));
  border-radius: var(--bx-radius-sm);
  cursor: pointer;
  transition: background var(--bx-dur-1) var(--bx-ease), transform var(--bx-dur-1) var(--bx-ease), box-shadow var(--bx-dur-1) var(--bx-ease);
}
.single-product .bx-pdp__action button.single_add_to_cart_button:hover {
  background: var(--bx-btn-primary-hover-bg);
  transform: translateY(-1px);
  box-shadow: 0 8px 22px -12px rgba(0, 0, 0, .6);
}
.single-product .bx-pdp__action button.single_add_to_cart_button:active { transform: translateY(0); }
.single-product .bx-pdp__action button.single_add_to_cart_button.disabled,
.single-product .bx-pdp__action button.single_add_to_cart_button:disabled {
  opacity: .55;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}
/* external buy — styled like the primary CTA, full width */
.single-product .bx-pdp__action.product-type-external .cart,
.single-product .bx-pdp__action a.single_add_to_cart_button.button {
  display: flex;
}
.single-product .bx-pdp__action a.single_add_to_cart_button.button {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  min-height: 50px;
  padding: 14px 22px;
  font-weight: 700;
  font-size: var(--bx-fs-base);
  text-align: center;
  text-decoration: none;
  color: var(--bx-btn-primary-fg);
  background: var(--bx-btn-primary-bg);
  border-radius: var(--bx-radius-sm);
  transition: background var(--bx-dur-1) var(--bx-ease), transform var(--bx-dur-1) var(--bx-ease);
}
.single-product .bx-pdp__action a.single_add_to_cart_button.button:hover {
  background: var(--bx-btn-primary-hover-bg);
  transform: translateY(-1px);
}

/* variable products — variations table */
.single-product .bx-pdp__action table.variations {
  width: 100%;
  margin: 0;
  border: 0;
  border-collapse: collapse;
}
.single-product .bx-pdp__action table.variations tr { display: block; margin-bottom: 12px; }
.single-product .bx-pdp__action table.variations th,
.single-product .bx-pdp__action table.variations td {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  text-align: left;
}
.single-product .bx-pdp__action table.variations th.label {
  margin-bottom: 5px;
  font-family: var(--bx-font-mono);
  font-size: var(--bx-fs-xs);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--bx-ink-muted);
}
.single-product .bx-pdp__action table.variations select {
  width: 100%;
  min-height: 48px;
  padding: 10px 14px;
  font-size: var(--bx-fs-sm);
  color: var(--bx-field-text);
  background: var(--bx-field-bg);
  border: 1px solid var(--bx-field-border);
  border-radius: var(--bx-radius-sm);
  appearance: none;
}
.single-product .bx-pdp__action .reset_variations {
  display: inline-block;
  margin-top: 4px;
  font-size: var(--bx-fs-xs);
  color: var(--bx-link);
}
.single-product .bx-pdp__action .single_variation_wrap { width: 100%; }
.single-product .bx-pdp__action .woocommerce-variation-price {
  margin: 6px 0 12px;
  font-family: var(--bx-font-display);
  font-size: var(--bx-fs-xl);
  font-weight: 700;
  color: var(--bx-ink);
}
.single-product .bx-pdp__action .woocommerce-variation-add-to-cart {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: stretch;
}
.single-product .bx-pdp__action .woocommerce-variation-availability { font-size: var(--bx-fs-sm); color: var(--bx-ink-muted); }

/* product-rfq block — shared layout */
.single-product .bx-pdp__action .product-rfq {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0;
}
.single-product .bx-pdp__action .product-rfq > a,
.single-product .bx-pdp__action .product-rfq > button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 48px;
  padding: 13px 20px;
  font-size: var(--bx-fs-sm);
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  border-radius: var(--bx-radius-sm);
  transition: background var(--bx-dur-1) var(--bx-ease), border-color var(--bx-dur-1) var(--bx-ease), color var(--bx-dur-1) var(--bx-ease), transform var(--bx-dur-1) var(--bx-ease);
}
/* pure RFQ (no cart form) → PRIMARY full-width gold CTA (lower specificity) */
.single-product .bx-pdp__action .product-rfq > a,
.single-product .bx-pdp__action .product-rfq > button {
  color: var(--bx-btn-primary-fg);
  background: var(--bx-btn-primary-bg);
  border: 1px solid color-mix(in srgb, var(--bx-btn-primary-bg) 70%, var(--bx-gold-deep));
}
.single-product .bx-pdp__action .product-rfq > a:hover,
.single-product .bx-pdp__action .product-rfq > button:hover {
  background: var(--bx-btn-primary-hover-bg);
  transform: translateY(-1px);
}
/* buyable (cart form present) → RFQ is SECONDARY ghost/outline
   (higher specificity + later in source, so it always wins over the primary) */
.single-product .bx-pdp__action form.cart ~ .product-rfq > a,
.single-product .bx-pdp__action form.cart ~ .product-rfq > button {
  color: var(--bx-btn-secondary-fg);
  background: transparent;
  border: 1px solid var(--bx-btn-secondary-border);
}
.single-product .bx-pdp__action form.cart ~ .product-rfq > a:hover,
.single-product .bx-pdp__action form.cart ~ .product-rfq > button:hover {
  border-color: var(--bx-gold);
  color: var(--bx-accent-strong);
  transform: translateY(-1px);
}
.single-product .bx-pdp__action .product-rfq__note {
  margin: 0;
  font-size: var(--bx-fs-xs);
  color: var(--bx-ink-muted);
  text-align: center;
}

/* trust note */
.single-product .bx-pdp__trust {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 4px 0 0;
  padding-top: clamp(12px, 1.4vw, 16px);
  border-top: 1px solid var(--bx-divider);
}
.single-product .bx-pdp__trust-doc {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-size: var(--bx-fs-sm);
  color: var(--bx-ink-text);
  text-decoration: none;
  transition: color var(--bx-dur-1) var(--bx-ease);
}
.single-product .bx-pdp__trust-doc:hover { color: var(--bx-accent-strong); }
.single-product .bx-pdp__trust-doc-k {
  flex: 0 0 auto;
  padding: 3px 8px;
  font-family: var(--bx-font-mono);
  font-size: var(--bx-fs-xs);
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--bx-gold-deep);
  background: color-mix(in srgb, var(--bx-gold) 16%, transparent);
  border: 1px solid color-mix(in srgb, var(--bx-gold) 34%, var(--bx-border-hair));
  border-radius: var(--bx-radius-sm);
}
.single-product .bx-pdp__trust-note {
  margin: 0;
  font-size: var(--bx-fs-xs);
  color: var(--bx-ink-muted);
  line-height: var(--bx-lh-snug);
}

/* keep WooCommerce notices visible & on-brand (never hidden) */
.single-product .bx-pdp .woocommerce-notices-wrapper { margin-block: var(--bx-sp-10); }

/* --------------------------------------------------------------------------
   5 · BELOW-FOLD — full-width panels
   -------------------------------------------------------------------------- */
.single-product .bx-pdp__below {
  margin-block: clamp(var(--bx-sp-20), 3vw, var(--bx-sp-40));
}
.single-product .bx-pdp__panel {
  padding: clamp(20px, 2.4vw, 32px);
  background: var(--bx-pdp-panel-bg);
  border: 1px solid var(--bx-pdp-panel-border);
  border-radius: var(--bx-radius-lg);
  box-shadow: var(--bx-pdp-shadow-sm);
}
.single-product .bx-pdp__panel-title {
  position: relative;
  margin: 0 0 var(--bx-sp-10);
  padding-left: 16px;
  font-family: var(--bx-font-display);
  font-size: var(--bx-fs-xl);
  font-weight: 700;
  line-height: var(--bx-lh-snug);
  color: var(--bx-ink);
}
.single-product .bx-pdp__panel-title::before {
  content: "";
  position: absolute;
  left: 0;
  top: .12em;
  bottom: .12em;
  width: 4px;
  border-radius: 2px;
  background: var(--bx-gold);
}
.single-product .bx-pdp__panel-lede {
  margin: 0 0 clamp(16px, 1.8vw, 22px);
  max-width: 72ch;
  color: var(--bx-ink-text);
  font-size: var(--bx-fs-base);
}

/* docs panel — readiness checklist */
.single-product .bx-pdp__docs .bx-pdp__panel {
  background: var(--bx-pdp-raise);
}
.single-product .bx-pdp__checklist {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px 28px;
  margin: 0 0 clamp(18px, 2vw, 24px);
  padding: 0;
  list-style: none;
}
@media (min-width: 680px) {
  .single-product .bx-pdp__checklist { grid-template-columns: 1fr 1fr; }
}
.single-product .bx-pdp__checklist li {
  position: relative;
  margin: 0;
  padding: 4px 0 4px 30px;
  font-size: var(--bx-fs-sm);
  color: var(--bx-ink-text);
  line-height: var(--bx-lh-snug);
}
.single-product .bx-pdp__checklist li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 3px;
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  font-size: 12px;
  font-weight: 700;
  color: var(--bx-navy-deep);
  background: var(--bx-gold);
  border-radius: 50%;
}
.single-product .bx-pdp__doc-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.single-product .bx-pdp__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 46px;
  padding: 12px 22px;
  font-size: var(--bx-fs-sm);
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  border-radius: var(--bx-radius-sm);
  transition: background var(--bx-dur-1) var(--bx-ease), border-color var(--bx-dur-1) var(--bx-ease), color var(--bx-dur-1) var(--bx-ease), transform var(--bx-dur-1) var(--bx-ease);
}
.single-product .bx-pdp__btn--primary {
  color: var(--bx-btn-primary-fg);
  background: var(--bx-btn-primary-bg);
  border: 1px solid color-mix(in srgb, var(--bx-btn-primary-bg) 70%, var(--bx-gold-deep));
}
.single-product .bx-pdp__btn--primary:hover { background: var(--bx-btn-primary-hover-bg); transform: translateY(-1px); }
.single-product .bx-pdp__btn--secondary {
  color: var(--bx-btn-secondary-fg);
  background: transparent;
  border: 1px solid var(--bx-btn-secondary-border);
}
.single-product .bx-pdp__btn--secondary:hover { border-color: var(--bx-gold); color: var(--bx-accent-strong); transform: translateY(-1px); }

/* capability chip rail */
.single-product .bx-pdp__capability nav,
.single-product .bx-pdp__capability .bx-pdp__cap-rail {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: var(--bx-sp-10);
}
.single-product .bx-pdp__cap-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 16px;
  font-size: var(--bx-fs-sm);
  font-weight: 600;
  color: var(--bx-ink-text);
  text-decoration: none;
  background: color-mix(in srgb, var(--bx-surface) 70%, transparent);
  border: 1px solid var(--bx-border-hair);
  border-radius: var(--bx-radius-pill);
  transition: border-color var(--bx-dur-1) var(--bx-ease), color var(--bx-dur-1) var(--bx-ease), background var(--bx-dur-1) var(--bx-ease);
}
.single-product .bx-pdp__cap-link::after { content: "→"; opacity: .55; transition: transform var(--bx-dur-1) var(--bx-ease); }
.single-product .bx-pdp__cap-link:hover {
  color: var(--bx-accent-strong);
  border-color: color-mix(in srgb, var(--bx-gold) 55%, var(--bx-border-hair));
  background: color-mix(in srgb, var(--bx-gold) 10%, transparent);
}
.single-product .bx-pdp__cap-link:hover::after { transform: translateX(3px); opacity: 1; }

/* --------------------------------------------------------------------------
   6 · WOOCOMMERCE TABS — restyled clean (not default WC)
   -------------------------------------------------------------------------- */
.single-product .woocommerce-tabs { margin-block: clamp(var(--bx-sp-20), 3vw, var(--bx-sp-40)); }
.single-product .woocommerce-tabs ul.tabs.wc-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin: 0 0 clamp(18px, 2vw, 26px);
  padding: 0 0 0 0;
  list-style: none;
  border-bottom: 1px solid var(--bx-divider);
}
.single-product .woocommerce-tabs ul.tabs.wc-tabs::before,
.single-product .woocommerce-tabs ul.tabs.wc-tabs::after { display: none; }
.single-product .woocommerce-tabs ul.tabs li {
  margin: 0;
  padding: 0;
  background: none;
  border: 0;
  border-radius: 0;
}
.single-product .woocommerce-tabs ul.tabs li::before,
.single-product .woocommerce-tabs ul.tabs li::after { display: none; }
.single-product .woocommerce-tabs ul.tabs li a {
  display: block;
  padding: 12px 18px;
  font-family: var(--bx-font-mono);
  font-size: var(--bx-fs-xs);
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--bx-ink-muted);
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  transition: color var(--bx-dur-1) var(--bx-ease), border-color var(--bx-dur-1) var(--bx-ease);
}
.single-product .woocommerce-tabs ul.tabs li a:hover { color: var(--bx-ink-text); }
.single-product .woocommerce-tabs ul.tabs li.active a {
  color: var(--bx-accent-strong);
  border-bottom-color: var(--bx-gold);
}
.single-product .woocommerce-tabs .woocommerce-Tabs-panel,
.single-product .woocommerce-tabs .panel {
  margin: 0;
  padding: 0;
  color: var(--bx-ink-text);
  font-size: var(--bx-fs-base);
  line-height: var(--bx-lh-body);
}
.single-product .woocommerce-tabs .panel h2,
.single-product .woocommerce-tabs .panel h3 {
  font-family: var(--bx-font-display);
  color: var(--bx-ink);
  margin-top: 0;
}
.single-product .woocommerce-tabs .panel table.shop_attributes {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid var(--bx-divider);
  border-radius: var(--bx-radius);
  overflow: hidden;
}
.single-product .woocommerce-tabs .panel table.shop_attributes th,
.single-product .woocommerce-tabs .panel table.shop_attributes td {
  padding: 10px 14px;
  font-size: var(--bx-fs-sm);
  text-align: left;
  border-bottom: 1px solid var(--bx-divider);
}
.single-product .woocommerce-tabs .panel table.shop_attributes th {
  width: 34%;
  font-family: var(--bx-font-mono);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--bx-ink-muted);
  background: color-mix(in srgb, var(--bx-surface) 60%, transparent);
}

/* --------------------------------------------------------------------------
   7 · RELATED / UPSELLS — compact sx-card grid
   -------------------------------------------------------------------------- */
.single-product .related.products,
.single-product .upsells.products {
  margin-block: clamp(var(--bx-sp-20), 3vw, var(--bx-sp-40));
}
.single-product .related.products > h2,
.single-product .upsells.products > h2 {
  margin: 0 0 clamp(16px, 2vw, 22px);
  font-family: var(--bx-font-display);
  font-size: var(--bx-fs-xl);
  font-weight: 700;
  color: var(--bx-ink);
}
.single-product .related.products ul.products,
.single-product .upsells.products ul.products {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: clamp(14px, 1.6vw, 20px);
  margin: 0;
  padding: 0;
  list-style: none;
}
@media (min-width: 1080px) {
  .single-product .related.products ul.products,
  .single-product .upsells.products ul.products {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.single-product .related.products ul.products li.product,
.single-product .upsells.products ul.products li.product {
  margin: 0;
  width: auto;
  float: none;
}
.single-product ul.products li.product .sx-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  background: var(--bx-pdp-panel-bg);
  border: 1px solid var(--bx-pdp-panel-border);
  border-radius: var(--bx-radius);
  box-shadow: var(--bx-pdp-shadow-sm);
  transition: transform var(--bx-dur-1) var(--bx-ease), border-color var(--bx-dur-1) var(--bx-ease), box-shadow var(--bx-dur-1) var(--bx-ease);
}
.single-product ul.products li.product .sx-card:hover {
  transform: translateY(-2px);
  border-color: color-mix(in srgb, var(--bx-gold) 40%, var(--bx-surface-border));
  box-shadow: 0 14px 32px -22px rgba(0, 0, 0, .55);
}
.single-product ul.products li.product .sx-card__media,
.single-product ul.products li.product .sx-card .sx-fallback {
  position: relative;
  aspect-ratio: 4 / 3;
  max-height: 200px;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: color-mix(in srgb, var(--bx-surface) 82%, var(--bx-cream) 18%);
  border-bottom: 1px solid var(--bx-divider);
}
.single-product ul.products li.product .sx-card__media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 12px;
}
.single-product ul.products li.product .sx-card .sx-fallback { padding: 16px; }
.single-product ul.products li.product .sx-card .sx-fallback__geo { width: 62%; opacity: .7; color: color-mix(in srgb, var(--bx-gold) 50%, var(--bx-steel-dim)); }
.single-product ul.products li.product .sx-card__badge {
  position: absolute;
  top: 10px;
  left: 10px;
  padding: 3px 9px;
  font-family: var(--bx-font-mono);
  font-size: var(--bx-fs-xs);
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  border-radius: var(--bx-radius-pill);
  background: color-mix(in srgb, var(--bx-contrast) 60%, transparent);
  border: 1px solid var(--bx-border-hair);
  color: var(--bx-ink-text);
}
.single-product ul.products li.product .sx-card__title {
  margin: 0;
  padding: 12px 14px 6px;
  font-size: var(--bx-fs-sm);
  font-weight: 600;
  line-height: var(--bx-lh-snug);
  color: var(--bx-ink-text);
  overflow-wrap: anywhere;
}
.single-product ul.products li.product .sx-card__title a { color: inherit; text-decoration: none; }
.single-product ul.products li.product .sx-card__title a:hover { color: var(--bx-accent-strong); }
.single-product ul.products li.product .sx-card__price {
  padding: 0 14px 10px;
  font-family: var(--bx-font-display);
  font-size: var(--bx-fs-base);
  font-weight: 700;
  color: var(--bx-ink);
}
.single-product ul.products li.product .sx-card__cta {
  margin-top: auto;
  padding: 10px 14px 14px;
}
.single-product ul.products li.product .sx-card__cta a,
.single-product ul.products li.product .sx-card__cta .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 40px;
  padding: 9px 14px;
  font-size: var(--bx-fs-xs);
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--bx-btn-secondary-fg);
  background: transparent;
  border: 1px solid var(--bx-btn-secondary-border);
  border-radius: var(--bx-radius-sm);
  transition: border-color var(--bx-dur-1) var(--bx-ease), color var(--bx-dur-1) var(--bx-ease);
}
.single-product ul.products li.product .sx-card__cta a:hover {
  border-color: var(--bx-gold);
  color: var(--bx-accent-strong);
}

/* --------------------------------------------------------------------------
   8 · FOCUS-VISIBLE (every interactive element)
   -------------------------------------------------------------------------- */
.single-product .bx-pdp a:focus-visible,
.single-product .bx-pdp button:focus-visible,
.single-product .bx-pdp input:focus-visible,
.single-product .bx-pdp select:focus-visible,
.single-product .bx-pdp [tabindex]:focus-visible,
.single-product .woocommerce-tabs a:focus-visible,
.single-product ul.products a:focus-visible,
.single-product ul.products button:focus-visible {
  outline: none;
  box-shadow: var(--bx-focus-ring);
  border-radius: var(--bx-radius-sm);
}
.single-product .bx-pdp__cap-link:focus-visible,
.single-product .bx-pdp__state:focus-visible { border-radius: var(--bx-radius-pill); }

/* --------------------------------------------------------------------------
   9 · MOBILE / RESPONSIVE HARDENING
   -------------------------------------------------------------------------- */
@media (max-width: 899px) {
  .single-product .bx-pdp__action { position: static; }
}
@media (max-width: 720px) {
  .single-product .bx-pdp { overflow-x: hidden; }
  .single-product .bx-pdp__visual .woocommerce-product-gallery__image img {
    max-height: 46vh;
  }
  .single-product .bx-pdp__visual .sx-fallback { max-width: 300px; }
  /* clamp summary on small screens */
  .single-product .woocommerce-product-details__short-description {
    display: -webkit-box;
    -webkit-line-clamp: 4;
    line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .single-product .bx-pdp__ident {
    grid-template-columns: minmax(88px, 40%) minmax(0, 1fr);
    gap: 6px 12px;
  }
  .single-product .bx-pdp__action form.cart button.single_add_to_cart_button { flex-basis: 100%; }
  .single-product .related.products ul.products,
  .single-product .upsells.products ul.products {
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  }
  /* keep touch targets comfortable */
  .single-product .woocommerce-tabs ul.tabs li a { padding: 12px 14px; }
}
@media (max-width: 400px) {
  .single-product .related.products ul.products,
  .single-product .upsells.products ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* --------------------------------------------------------------------------
   10 · LIGHT MODE OVERRIDES  (intentional technical-white, clear boundaries)
   Default is dark (body.theme-dark). Light = html[data-theme="light"]
   and body:not(.theme-dark).
   -------------------------------------------------------------------------- */
html[data-theme="light"] .single-product .bx-pdp,
body:not(.theme-dark) .single-product .bx-pdp {
  --bx-pdp-panel-bg: var(--bx-cream);
  --bx-pdp-panel-border: var(--bx-ink-line);
  --bx-pdp-raise: color-mix(in srgb, var(--bx-cream) 92%, var(--bx-gold-pale) 8%);
  --bx-pdp-shadow: 0 1px 2px rgba(20, 30, 48, .06), 0 20px 44px -30px rgba(20, 30, 48, .28);
  --bx-pdp-shadow-sm: 0 1px 2px rgba(20, 30, 48, .06);
}
html[data-theme="light"] .single-product .bx-pdp__visual .woocommerce-product-gallery__image,
body:not(.theme-dark) .single-product .bx-pdp__visual .woocommerce-product-gallery__image,
html[data-theme="light"] .single-product .bx-pdp__visual .flex-control-thumbs img,
body:not(.theme-dark) .single-product .bx-pdp__visual .flex-control-thumbs img,
html[data-theme="light"] .single-product ul.products li.product .sx-card__media,
body:not(.theme-dark) .single-product ul.products li.product .sx-card__media {
  background: color-mix(in srgb, var(--bx-cream) 82%, var(--bx-gold-pale) 18%);
}
html[data-theme="light"] .single-product .bx-pdp__visual .sx-fallback,
body:not(.theme-dark) .single-product .bx-pdp__visual .sx-fallback,
html[data-theme="light"] .single-product ul.products li.product .sx-card .sx-fallback,
body:not(.theme-dark) .single-product ul.products li.product .sx-card .sx-fallback {
  background:
    radial-gradient(120% 120% at 30% 20%,
      color-mix(in srgb, var(--bx-cream) 70%, var(--bx-gold-pale) 30%) 0%,
      var(--bx-cream) 72%);
  border-color: var(--bx-ink-line);
}
html[data-theme="light"] .single-product .bx-pdp__state,
body:not(.theme-dark) .single-product .bx-pdp__state {
  background: var(--bx-cream);
  border-color: var(--bx-ink-line);
}
html[data-theme="light"] .single-product .bx-pdp__cap-link,
body:not(.theme-dark) .single-product .bx-pdp__cap-link {
  background: var(--bx-cream);
  border-color: var(--bx-ink-line);
}
html[data-theme="light"] .single-product .woocommerce-tabs ul.tabs.wc-tabs,
body:not(.theme-dark) .single-product .woocommerce-tabs ul.tabs.wc-tabs,
html[data-theme="light"] .single-product .bx-pdp__ident,
body:not(.theme-dark) .single-product .bx-pdp__ident,
html[data-theme="light"] .single-product .bx-pdp__idents,
body:not(.theme-dark) .single-product .bx-pdp__idents,
html[data-theme="light"] .single-product .bx-pdp__trust,
body:not(.theme-dark) .single-product .bx-pdp__trust {
  border-color: var(--bx-ink-line);
}
html[data-theme="light"] .single-product .woocommerce-tabs .panel table.shop_attributes th,
body:not(.theme-dark) .single-product .woocommerce-tabs .panel table.shop_attributes th {
  background: color-mix(in srgb, var(--bx-cream) 80%, var(--bx-gold-pale) 20%);
}
html[data-theme="light"] .single-product ul.products li.product .sx-card__badge,
body:not(.theme-dark) .single-product ul.products li.product .sx-card__badge {
  background: var(--bx-cream);
  border-color: var(--bx-ink-line);
}

/* --------------------------------------------------------------------------
   11 · REDUCED MOTION
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .single-product .bx-pdp *,
  .single-product .woocommerce-tabs *,
  .single-product ul.products * {
    transition: none !important;
    animation: none !important;
    scroll-behavior: auto !important;
  }
  .single-product .bx-pdp a:hover,
  .single-product .bx-pdp button:hover,
  .single-product ul.products li.product .sx-card:hover { transform: none !important; }
}

/* =========================================================================
 * v0.3.41 HOTFIX — product wrapper must be a full-width block.
 * The legacy tpl-product.css (@layer templates) sets
 *   .woocommerce div.product { display:grid; grid-template-columns: 2-col }
 * There is no unlayered competitor for `display` on div.product, so .bx-pdp
 * inherited that 2-column grid and squeezed .bx-pdp__cockpit into one column
 * (516px), collapsing the identity track to 0 and overlapping the zones.
 * Force the wrapper to block so the cockpit + full-width below-fold panels
 * stack correctly; the cockpit itself remains the 3-zone grid.
 * ========================================================================= */
.single-product div.product.bx-pdp {
	display: block;
	grid-template-columns: none;
	gap: 0;
}
.single-product div.product.bx-pdp > .bx-pdp__cockpit { width: 100%; }

/* =========================================================================
 * v0.3.42 TUNING — identity is the dominant zone; title never breaks mid-word.
 * The initial grid starved the centre column (visual+action took their maxes),
 * cramming the large display title into ~288px and forcing mid-word breaks.
 * Re-balance so identity is widest, and size/clamp the title to wrap cleanly.
 * ========================================================================= */
.single-product .bx-pdp__cockpit {
	grid-template-columns: minmax(230px, 290px) minmax(0, 1fr) minmax(300px, 336px);
	align-items: start;
}
.single-product .bx-pdp__identity { min-width: 0; }
.single-product .bx-pdp__identity .product_title,
.single-product .bx-pdp__identity h1.product_title {
	font-size: clamp(1.55rem, 1.1rem + 1.7vw, 2.35rem);
	line-height: 1.12;
	overflow-wrap: anywhere;
	word-break: normal;
	hyphens: none;
	margin: 0.4rem 0 0.7rem;
	max-width: 100%;
}
@media (min-width: 1400px) {
	.single-product .bx-pdp__cockpit { grid-template-columns: minmax(250px, 300px) minmax(0, 1fr) minmax(320px, 350px); }
}

/* =========================================================================
 * v0.3.43 CONTRAST FIX — the identity zone is transparent on the PAGE surface,
 * so its text must use the flipping page-content token (--bx-content), not the
 * dark-panel token (--bx-ink-text resolves near-white and was invisible on the
 * light page). Dark-panel zones (visual/action/trust) keep their light text.
 * The MPN value is the key buyer identifier — render it mono + strong.
 * ========================================================================= */
.single-product .bx-pdp__identity .bx-pdp__ident dd,
.single-product .bx-pdp__identity .woocommerce-product-details__short-description,
.single-product .bx-pdp__identity .woocommerce-product-details__short-description p,
.single-product .bx-pdp__identity .bx-pdp__doccue a {
	color: var(--bx-content);
}
.single-product .bx-pdp__identity .bx-pdp__ident-k { color: var(--bx-ink-muted); }
.single-product .bx-pdp__identity .bx-pdp__ident--mpn dd {
	font-family: var(--bx-font-mono);
	font-weight: 600;
	letter-spacing: 0.01em;
	color: var(--bx-content);
}
.single-product .bx-pdp__identity .bx-pdp__ident--sku dd { font-family: var(--bx-font-mono); color: var(--bx-content); }

/* =========================================================================
 * v0.3.44b DEFINITIVE CONTRAST FIX. The cockpit redefines dark-panel text
 * tokens on a scope that leaks into the transparent identity zone, so
 * var(--bx-content) resolves near-white AT the identity dd — invisible on the
 * light page. Dark mode already reads white-on-dark correctly; force the brand
 * ink for identity text in LIGHT mode only. (Concrete brand values, matching
 * --bx-content's intended light value, because the token itself is leaked here.)
 * ========================================================================= */
html[data-theme="light"] .single-product .bx-pdp__identity .bx-pdp__ident dd,
html[data-theme="light"] .single-product .bx-pdp__identity .woocommerce-product-details__short-description,
html[data-theme="light"] .single-product .bx-pdp__identity .woocommerce-product-details__short-description p,
html[data-theme="light"] .single-product .bx-pdp__identity .bx-pdp__doccue a,
body:not([data-theme]) html[data-theme="light"] .single-product .bx-pdp__identity dd {
	color: #0E2238;
}
html[data-theme="light"] .single-product .bx-pdp__identity .bx-pdp__ident-k { color: #55677D; }

/* =========================================================================
 * v0.3.45 IDENTITY TEXT — explicit per-mode contrast. The theme's text tokens
 * are leaked/fixed inside the cockpit (--bx-ink is always dark → title vanished
 * on the dark page; --bx-content resolved near-white → values vanished on the
 * light page). Set identity text explicitly for BOTH modes so the title, spec
 * values, summary, labels and cue are always legible. Dark-panel zones
 * (visual/action/trust) are unaffected and keep their own light-on-dark text.
 * ========================================================================= */
html[data-theme="light"] .single-product .bx-pdp__identity .product_title,
html[data-theme="light"] .single-product .bx-pdp__identity .bx-pdp__ident dd,
html[data-theme="light"] .single-product .bx-pdp__identity .woocommerce-product-details__short-description,
html[data-theme="light"] .single-product .bx-pdp__identity .woocommerce-product-details__short-description p,
html[data-theme="light"] .single-product .bx-pdp__identity .bx-pdp__doccue a { color: #0E2238; }
html[data-theme="light"] .single-product .bx-pdp__identity .bx-pdp__ident-k { color: #55677D; }

html[data-theme="dark"] .single-product .bx-pdp__identity .product_title,
html[data-theme="dark"] .single-product .bx-pdp__identity .bx-pdp__ident dd,
html[data-theme="dark"] .single-product .bx-pdp__identity .woocommerce-product-details__short-description,
html[data-theme="dark"] .single-product .bx-pdp__identity .woocommerce-product-details__short-description p,
html[data-theme="dark"] .single-product .bx-pdp__identity .bx-pdp__doccue a { color: #EAF0F7; }
html[data-theme="dark"] .single-product .bx-pdp__identity .bx-pdp__ident-k { color: #9DB0C4; }

/* =========================================================================
 * v0.3.47 POLISH — (A/B) light-mode text across ALL below-fold PDP sections.
 * The leaked cockpit token made body copy white on the light page: docs-panel
 * lede + checklist, capability chip links, and — critically — the WooCommerce
 * DESCRIPTION (tab-description body) + attributes table + related cards. Force
 * dark ink in light mode. Dark-panel zones (action/trust) are untouched.
 * ========================================================================= */
html[data-theme="light"] .single-product .bx-pdp__docs .bx-pdp__checklist li,
html[data-theme="light"] .single-product .bx-pdp__capability .bx-pdp__cap-link,
html[data-theme="light"] .single-product .woocommerce-tabs,
html[data-theme="light"] .single-product .woocommerce-tabs p,
html[data-theme="light"] .single-product .woocommerce-tabs li,
html[data-theme="light"] .single-product .woocommerce-tabs td,
html[data-theme="light"] .single-product .woocommerce-tabs .wc-tabs li a,
html[data-theme="light"] .single-product .woocommerce-Tabs-panel,
html[data-theme="light"] .single-product .woocommerce-Tabs-panel p,
html[data-theme="light"] .single-product .woocommerce-Tabs-panel li,
html[data-theme="light"] .single-product .woocommerce-Tabs-panel h2,
html[data-theme="light"] .single-product #tab-description,
html[data-theme="light"] .single-product #tab-description p,
html[data-theme="light"] .single-product .woocommerce-product-attributes th,
html[data-theme="light"] .single-product .woocommerce-product-attributes td,
html[data-theme="light"] .single-product .related .sx-card__title,
html[data-theme="light"] .single-product .related h2,
html[data-theme="light"] .single-product .up-sells,
html[data-theme="light"] .single-product .up-sells p { color: #0E2238; }
html[data-theme="light"] .single-product .bx-pdp__docs .bx-pdp__panel-lede { color: #3E5168; }

/* (C) MOTION — the action/procurement box must be STABLE. It was position:sticky
 * with transition:all, so it drifted/detached on scroll (the "parallax"). Make
 * it static; scope transitions to interactive elements; honour reduced-motion. */
.single-product .bx-pdp__action { position: static !important; transition: none; transform: none; }
.single-product .bx-pdp__action .single_add_to_cart_button,
.single-product .bx-pdp__action .bx-pdp__btn,
.single-product .bx-pdp__action .button,
.single-product .bx-pdp__action a { transition: background-color .18s ease, color .18s ease, border-color .18s ease, box-shadow .18s ease; }
@media (prefers-reduced-motion: reduce) {
	.single-product .bx-pdp *,
	.single-product .bx-pdp__action { transition: none !important; animation: none !important; }
}

/* ===== v0.3.49 hotfixes - PDP contrast (both modes) + related cards + grid phantom ===== */
.single-product ul.products::before,.single-product ul.products::after{content:none!important;display:none!important}

/* DARK (default + explicit): panel / tab / related headings light on dark */
html:not([data-theme="light"]) .single-product .bx-pdp__panel-title,
html:not([data-theme="light"]) .single-product #bx-pdp-docs-title,
html:not([data-theme="light"]) .single-product .woocommerce-tabs h2,
html:not([data-theme="light"]) .single-product #tab-description h2,
html:not([data-theme="light"]) .single-product .related.products>h2,
html:not([data-theme="light"]) .single-product .up-sells>h2{color:#EAF0F7}
html:not([data-theme="light"]) .single-product .bx-pdp__cap-link{color:#EAF0F7;text-decoration:underline;text-underline-offset:3px}
html:not([data-theme="light"]) .single-product .bx-pdp__cap-link:hover{color:#D9B45B}

/* LIGHT: below-fold panels go light with dark ink (bg stayed dark while ink went dark) */
html[data-theme="light"] .single-product .bx-pdp__below .bx-pdp__panel{background:#F7F3EA;border:1px solid #DCD2BD}
html[data-theme="light"] .single-product .bx-pdp__panel-title,
html[data-theme="light"] .single-product #bx-pdp-docs-title{color:#0E2238}
html[data-theme="light"] .single-product .bx-pdp__panel-lede{color:#2B3E54}
html[data-theme="light"] .single-product .bx-pdp__checklist li{color:#22364E}
html[data-theme="light"] .single-product .bx-pdp__cap-link{color:#0E2238;text-decoration:underline;text-underline-offset:3px}
html[data-theme="light"] .single-product .bx-pdp__cap-link:hover{color:#8C6D1F}
html[data-theme="light"] .single-product .woocommerce-tabs h2,
html[data-theme="light"] .single-product #tab-description h2,
html[data-theme="light"] .single-product .related.products>h2,
html[data-theme="light"] .single-product .up-sells>h2{color:#0E2238}

/* LIGHT: related/upsell cards get dark ink on the light card face */
html[data-theme="light"] .single-product .related .sx-card__title,
html[data-theme="light"] .single-product .up-sells .sx-card__title{color:#0E2238}
html[data-theme="light"] .single-product .related .sx-card__ident,
html[data-theme="light"] .single-product .up-sells .sx-card__ident{color:#3E5168}
html[data-theme="light"] .single-product .related .sx-card__ident-k,
html[data-theme="light"] .single-product .related .sx-card__kicker{color:#55677D}
html[data-theme="light"] .single-product .related .sx-card__poa{color:#3E5168}

/* v0.3.49b addendum: cap-link pill + related-title specificity */
html[data-theme="light"] .single-product .bx-pdp__cap-link{background:#FFFFFF;border:1px solid #DCD2BD;color:#0E2238}
html[data-theme="light"] .single-product .bx-pdp__cap-link:hover{background:#F1E8D2;color:#8C6D1F}
html[data-theme="light"] .single-product .related li.product h2.sx-card__title,
html[data-theme="light"] .single-product .related .sx-card__link h2.sx-card__title,
html[data-theme="light"] .single-product .up-sells li.product h2.sx-card__title{color:#0E2238 !important}
html[data-theme="light"] .single-product .related li.product .sx-card__kicker{color:#55677D !important}

/* v0.3.51 addendum: related-card price/ident readable in dark */
html:not([data-theme="light"]) .single-product .related .sx-card__poa,
html:not([data-theme="light"]) .single-product .up-sells .sx-card__poa,
html:not([data-theme="light"]) .single-product .related .sx-card__price .price{color:#9DB0C4}
html:not([data-theme="light"]) .single-product .related .sx-card__ident{color:#C5D2E0}
html:not([data-theme="light"]) .single-product .related .sx-card__ident-k,
html:not([data-theme="light"]) .single-product .related .sx-card__kicker{color:#8FA2B8}
