/* =========================================================================
   Reboot — single product page
   Scoped to .rb-product--page; every rule here is page-local.
   ========================================================================= */

.rb-product.rb-product--page {
  --pdp-gap: 32px;
  padding: 8px 0 40px;
}
.rb-product--page .rb-container { max-width: var(--rb-container); }

/* ------------------------------------------------------------- breadcrumb */
.rb-product--page .rb-crumbs { margin-bottom: 14px; }

/* ================================================================= GRID */
.rb-product--page .rb-pdp {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: var(--pdp-gap);
  align-items: start;
}

/* ------------------------------------------------------------- gallery */
.rb-product--page .rb-pdp__gallery {
  position: sticky;
  top: calc(var(--rbh, 112px) + 12px);
  min-width: 0;
  display: grid;
  gap: 10px;
}
.rb-product--page .rb-pdp__gwrap {
  position: relative;
  background: #fff;
  border: 1px solid var(--rb-line);
  border-radius: var(--rb-radius);
  overflow: hidden;
}
.rb-product--page .rb-pdp__sale {
  position: absolute;
  top: 12px;
  inset-inline-start: 12px;
  z-index: 2;
  background: var(--rb-red);
  color: #fff;
  font-size: 12.5px;
  font-weight: 800;
  border-radius: 8px;
  padding: 2px 10px;
}

/* Swipeable strip: one full-width slide at a time, snapped */
.rb-product--page .rb-pdp__slides {
  display: flex;
  width: 100%;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  aspect-ratio: 1 / 1;
  max-height: 540px;
  background: #fff;
}
.rb-product--page .rb-pdp__slides::-webkit-scrollbar { display: none; }

.rb-product--page .rb-pdp__slide {
  position: relative;
  flex: none;
  width: 100%;
  height: 100%;
  scroll-snap-align: center;
  border: 0;
  padding: 0;
  background: #fff;
  cursor: zoom-in;
}
/* Absolutely positioned so a tall portrait poster can never stretch the
   frame past its 540px cap (percentage max-height is unreliable here). */
.rb-product--page .rb-pdp__slide img {
  position: absolute;
  inset: 18px;
  width: calc(100% - 36px);
  height: calc(100% - 36px);
  object-fit: contain;
}

.rb-product--page .rb-pdp__placeholder {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  background: var(--rb-orange-softer);
  color: var(--rb-orange);
}

.rb-product--page .rb-pdp__dots {
  display: none;
  justify-content: center;
  gap: 6px;
  margin-top: 2px;
}
.rb-product--page .rb-pdp__dots i {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: #cfc9bb;
  transition: width .2s, background .2s;
}
.rb-product--page .rb-pdp__dots i.is-on {
  width: 18px;
  border-radius: 9px;
  background: var(--rb-orange);
}

.rb-product--page .rb-pdp__thumbs {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  scrollbar-width: none;
  padding-bottom: 2px;
}
.rb-product--page .rb-pdp__thumbs::-webkit-scrollbar { display: none; }
.rb-product--page .rb-pdp__thumb {
  flex: none;
  width: 72px;
  height: 72px;
  padding: 5px;
  border: 2px solid var(--rb-line);
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
  transition: border-color .2s, box-shadow .2s;
}
.rb-product--page .rb-pdp__thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.rb-product--page .rb-pdp__thumb:hover { border-color: #f0b78f; }
.rb-product--page .rb-pdp__thumb.is-active {
  border-color: var(--rb-orange);
  box-shadow: 0 0 0 3px rgba(232, 89, 12, .12);
}

/* ---------------------------------------------------------------- info */
.rb-product--page .rb-pdp__info {
  min-width: 0;
  overflow-wrap: anywhere;
  display: grid;
  gap: 14px;
  align-content: start;
}
.rb-product--page .rb-pdp__cat {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  width: fit-content;
  color: var(--rb-orange-700);
  font-size: 12.5px;
  font-weight: 700;
}
.rb-product--page .rb-pdp__cat .rb-ic { color: var(--rb-orange); }

.rb-product--page .rb-pdp__title {
  margin: 0;
  font-size: clamp(20px, 2.4vw, 28px);
  font-weight: 900;
  line-height: 1.6;
  letter-spacing: -.2px;
  color: var(--rb-ink);
}
.rb-product--page .rb-pdp__sub {
  margin: -6px 0 0;
  color: var(--rb-muted);
  font-size: 12.5px;
  line-height: 1.9;
  text-align: right;
  overflow-wrap: anywhere;
}
.rb-product--page .rb-pdp__rating { margin-top: -4px; }

/* Key specs — 2×2 cards */
.rb-product--page .rb-pdp__hl {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 0;
}
.rb-product--page .rb-pdp__hl > div {
  background: #fff;
  border: 1px solid var(--rb-line);
  border-radius: 12px;
  padding: 9px 12px;
  min-width: 0;
}
.rb-product--page .rb-pdp__hl dt {
  color: var(--rb-muted);
  font-size: 11.5px;
  font-weight: 600;
  margin-bottom: 1px;
}
.rb-product--page .rb-pdp__hl dd {
  margin: 0;
  color: var(--rb-ink);
  font-size: 13.5px;
  font-weight: 800;
  line-height: 1.7;
}

/* Game chips */
.rb-product--page .rb-pdp__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.rb-product--page .rb-pdp__chip {
  background: #fff;
  border: 1px solid var(--rb-line);
  border-radius: 999px;
  padding: 3px 13px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--rb-ink-2);
}

/* Platform switch */
.rb-product--page .rb-pdp__variants {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.rb-product--page .rb-pdp__variants-label {
  font-size: 12.5px;
  font-weight: 700;
  color: var(--rb-muted);
}
.rb-product--page .rb-pdp__seg {
  display: inline-flex;
  gap: 4px;
  background: #ece8df;
  border-radius: 12px;
  padding: 4px;
}
.rb-product--page .rb-pdp__seg button,
.rb-product--page .rb-pdp__seg a {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 18px;
  border: 0;
  border-radius: 9px;
  background: none;
  color: var(--rb-ink-2);
  font: inherit;
  font-size: 13.5px;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
}
.rb-product--page .rb-pdp__seg button[aria-pressed="true"] {
  background: #fff;
  color: var(--rb-ink);
  box-shadow: 0 1px 3px rgba(0, 0, 0, .13);
}
.rb-product--page .rb-pdp__seg a:hover { background: rgba(255, 255, 255, .6); }
.rb-product--page .rb-pdp__seg small {
  font-size: 9.5px;
  font-weight: 700;
  color: var(--rb-red);
  background: var(--rb-red-soft);
  border-radius: 5px;
  padding: 0 5px;
}

/* ------------------------------------------------------------- buy box */
.rb-product--page .rb-pdp__buy {
  background: #fff;
  border: 1px solid var(--rb-line);
  border-radius: var(--rb-radius);
  padding: 16px;
  display: grid;
  gap: 12px;
}
.rb-product--page .rb-pdp__price {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
  row-gap: 4px;
}
.rb-product--page .rb-pdp__price b {
  font-size: 28px;
  font-weight: 900;
  color: var(--rb-ink);
  line-height: 1.4;
  white-space: nowrap;
}
.rb-product--page .rb-pdp__price del {
  color: var(--rb-muted);
  font-size: 13.5px;
  line-height: 1.4;
  text-decoration: line-through;
  white-space: nowrap;
}
.rb-product--page .rb-pdp__off {
  background: var(--rb-red-soft);
  color: #b91c1c;
  border-radius: 8px;
  padding: 1px 9px;
  font-size: 12.5px;
  font-weight: 800;
  white-space: nowrap;
}
.rb-product--page .rb-pdp__save {
  margin: -6px 0 0;
  color: #15803d;
  font-size: 12.5px;
  font-weight: 700;
}
.rb-product--page .rb-pdp__stock {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: fit-content;
  color: #047857;
  font-size: 13.5px;
  font-weight: 700;
}
.rb-product--page .rb-pdp__stock i {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: currentColor;
}
.rb-product--page .rb-pdp__stock.is-out { color: #b91c1c; }

.rb-product--page .rb-pdp__row {
  display: flex;
  align-items: stretch;
  gap: 8px;
  flex-wrap: wrap;
}

/* WooCommerce cart form, restyled in place */
.rb-product--page .rb-pdp__row form.cart {
  display: flex;
  align-items: stretch;
  gap: 8px;
  flex: 1 1 260px;
  min-width: 0;
  margin: 0;
}
.rb-product--page .rb-pdp__row form.cart .quantity.rb-qty {
  display: inline-flex;
  align-items: stretch;
  flex: none;
  height: 48px;
  border: 1px solid var(--rb-line);
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}
.rb-product--page .rb-pdp__row form.cart .quantity.rb-qty--fixed {
  display: none;
}
.rb-product--page .rb-pdp__row form.cart .quantity.rb-qty input.qty {
  width: 44px;
  height: 100%;
  border: 0;
  background: transparent;
  text-align: center;
  font: inherit;
  font-weight: 800;
  -moz-appearance: textfield;
}
.rb-product--page .rb-pdp__row form.cart .quantity input.qty::-webkit-outer-spin-button,
.rb-product--page .rb-pdp__row form.cart .quantity input.qty::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
/* Beats rb-ui.css's `.rb-product form.cart .single_add_to_cart_button` */
.rb-product--page .rb-pdp__row form.cart .single_add_to_cart_button {
  flex: 1;
  min-height: 48px;
  border: 0;
  border-radius: 12px;
  background: linear-gradient(180deg, #f97316, var(--rb-orange));
  color: #fff;
  font: inherit;
  font-size: 14px;
  font-weight: 800;
  padding: 0 20px;
  white-space: nowrap;
  cursor: pointer;
  box-shadow: 0 6px 16px -6px rgba(232, 89, 12, .6);
  transition: filter .2s, transform .15s;
}
.rb-product--page .rb-pdp__row form.cart .single_add_to_cart_button:hover { filter: brightness(1.05); background: linear-gradient(180deg, #f97316, var(--rb-orange)); }
.rb-product--page .rb-pdp__row form.cart .single_add_to_cart_button:active { transform: translateY(1px); }
.rb-product--page .rb-pdp__row form.cart .single_add_to_cart_button.is-added {
  background: #15803d;
  box-shadow: none;
}

/* Wishlist: YITH markup, reshaped into a square icon button */
.rb-product--page .rb-pdp__wish {
  display: flex;
  align-items: center;
  flex: none;
}
.rb-product--page .rb-pdp__wish .yith-add-to-wishlist-button-block { margin: 0; }
.rb-product--page .rb-pdp__wish .yith-wcwl-add-to-wishlist-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border: 1px solid var(--rb-line);
  border-radius: 12px;
  background: #fff;
  color: var(--rb-ink-2);
  cursor: pointer;
  transition: background .16s, border-color .16s, color .16s;
}
.rb-product--page .rb-pdp__wish .yith-wcwl-add-to-wishlist-button:hover {
  border-color: #fecaca;
  background: var(--rb-red-soft);
  color: #dc2626;
}
.rb-product--page .rb-pdp__wish .yith-wcwl-add-to-wishlist-button__label {
  position: absolute;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.rb-product--page .rb-pdp__wish svg {
  width: 21px;
  height: 21px;
}

/* Out of stock: notify form */
.rb-product--page .rb-notify { display: grid; gap: 8px; }
.rb-product--page .rb-notify label {
  font-size: 12.5px;
  color: var(--rb-muted);
  line-height: 1.8;
}
.rb-product--page .rb-notify__row {
  display: flex;
  gap: 8px;
}
.rb-product--page .rb-notify__row input {
  flex: 1;
  min-width: 0;
  height: 48px;
  padding: 0 12px;
  border: 1px solid var(--rb-line);
  border-radius: 12px;
  background: #fff;
  font: inherit;
  font-size: 13.5px;
  text-align: right;
}
.rb-product--page .rb-notify__row input:focus {
  outline: 0;
  border-color: var(--rb-orange);
  box-shadow: 0 0 0 3px rgba(232, 89, 12, .12);
}
.rb-product--page .rb-notify__row input[aria-invalid="true"] {
  border-color: #dc2626;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, .1);
}
.rb-product--page .rb-notify__btn {
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  height: 48px;
  padding: 0 18px;
  border: 0;
  border-radius: 12px;
  background: var(--rb-navy);
  color: #fff;
  font: inherit;
  font-size: 13.5px;
  font-weight: 800;
  cursor: pointer;
  transition: background .2s;
}
.rb-product--page .rb-notify__btn:hover { background: #3d2d20; }
.rb-product--page .rb-notify__btn[disabled] { opacity: .6; cursor: progress; }
.rb-product--page .rb-notify__msg {
  margin: 0;
  min-height: 18px;
  font-size: 12px;
  line-height: 1.7;
}
.rb-product--page .rb-notify__msg:empty { min-height: 0; }
.rb-product--page .rb-notify__msg.is-ok { color: #15803d; font-weight: 700; }
.rb-product--page .rb-notify__msg.is-err { color: #b91c1c; font-weight: 700; }

.rb-product--page .rb-pdp__altlink {
  color: var(--rb-orange-700);
  font-size: 12.5px;
  font-weight: 700;
}

/* Out of stock: link and heart share one row */
.rb-product--page .rb-pdp__altrow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}
.rb-product--page .rb-pdp__wish--inline {
  display: flex;
  align-items: center;
  margin: 0;
}

/* No price recorded */
.rb-product--page .rb-pdp__ask {
  margin: 0;
  color: var(--rb-muted);
  font-size: 13px;
  line-height: 1.9;
}
.rb-product--page .rb-pdp__cta {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  border-radius: 12px;
  font-size: 13.5px;
  font-weight: 800;
  text-decoration: none;
}
.rb-product--page .rb-pdp__cta--dark { background: var(--rb-navy); color: #fff; }
.rb-product--page .rb-pdp__icon {
  flex: none;
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border: 1px solid var(--rb-line);
  border-radius: 12px;
  background: #fff;
  color: #15803d;
}

/* ------------------------------------------------------------- trust row */
.rb-product--page .rb-pdp__trust {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.rb-product--page .rb-pdp__trust div {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  border: 1px solid var(--rb-line);
  border-radius: 12px;
  padding: 9px 11px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--rb-ink-2);
}
.rb-product--page .rb-pdp__trust i {
  flex: none;
  width: 30px;
  height: 30px;
  border-radius: 9px;
  background: var(--rb-orange-soft);
  color: var(--rb-orange-700);
  display: grid;
  place-items: center;
}
.rb-product--page .rb-pdp__ship {
  margin: 0;
  color: var(--rb-muted);
  font-size: 12.5px;
}
.rb-product--page .rb-pdp__ship b { color: var(--rb-ink); }

/* ================================================================= TABS */
.rb-product--page .rb-ptabs {
  position: sticky;
  top: var(--rbh, 112px);
  z-index: 40;
  display: flex;
  gap: 2px;
  margin: 28px 0 0;
  padding: 0 4px;
  overflow-x: auto;
  scrollbar-width: none;
  background: var(--rb-bg);
  border-bottom: 1px solid var(--rb-line);
}
.rb-product--page .rb-ptabs::-webkit-scrollbar { display: none; }
.rb-product--page .rb-ptabs a {
  flex: none;
  padding: 13px 16px;
  border-bottom: 3px solid transparent;
  color: var(--rb-muted);
  font-size: 13.5px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}
.rb-product--page .rb-ptabs a:hover { color: var(--rb-orange-700); }
.rb-product--page .rb-ptabs a.is-active {
  color: var(--rb-orange-700);
  border-bottom-color: var(--rb-orange);
}

/* ============================================================== SECTIONS */
.rb-product--page .rb-psec {
  background: #fff;
  border: 1px solid var(--rb-line);
  border-radius: var(--rb-radius);
  padding: 24px 28px;
  margin-top: 16px;
  scroll-margin-top: calc(var(--rbh, 112px) + 52px);
}
.rb-product--page .rb-psec > h2 {
  margin: 0 0 10px;
  font-size: 20px;
  font-weight: 900;
  color: var(--rb-ink);
}
.rb-product--page .rb-psec__prose { max-width: 75ch; }
.rb-product--page .rb-psec__prose p {
  color: #2b3340;
  font-size: 16px;
  line-height: 2;
  margin: 0 0 1em;
}
.rb-product--page .rb-psec__prose h3,
.rb-product--page .rb-psec__prose h4 {
  color: var(--rb-ink);
  font-size: 17px;
  line-height: 1.7;
  margin: 1.6em 0 .4em;
}
.rb-product--page .rb-psec__prose img { border-radius: 12px; height: auto; }
.rb-product--page .rb-psec__prose table { display: block; max-width: 100%; overflow-x: auto; }

/* Intro two-column layout: prose + at-a-glance card */
.rb-product--page .rb-psec__intro { display: grid; gap: 24px; align-items: start; }
@media (min-width: 1024px) {
  .rb-product--page .rb-psec__intro.has-aside { grid-template-columns: minmax(0, 1fr) 300px; }
}
.rb-pintro {
  border: 1px solid var(--rb-orange-soft);
  background: var(--rb-orange-softer);
  border-radius: var(--rb-radius-sm);
  overflow: hidden;
}
.rb-pintro__head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 13px 16px;
  font-size: 14px;
  font-weight: 900;
  color: var(--rb-orange-700);
}
.rb-pintro ul { margin: 0; padding: 0 16px; list-style: none; }
.rb-pintro li {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 0;
}
.rb-pintro li + li { border-top: 1px solid var(--rb-orange-soft); }
.rb-pintro li i {
  flex: none;
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: #fff;
  border: 1px solid var(--rb-orange-soft);
  color: var(--rb-orange-600);
}
.rb-pintro li b { display: block; font-size: 13px; font-weight: 800; color: var(--rb-ink); line-height: 1.6; }
.rb-pintro li span { display: block; font-size: 11.5px; color: var(--rb-muted); }
.rb-pintro__all {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-top: 4px;
  padding: 12px 16px;
  border-top: 1px solid var(--rb-orange-soft);
  font-size: 13px;
  font-weight: 800;
  color: var(--rb-orange-700);
}

/* Specs — card grid, two columns on wide screens */
.rb-product--page .rb-psec__specs {
  display: grid;
  gap: 12px;
  align-items: start;
}
@media (min-width: 900px) {
  .rb-product--page .rb-psec__specs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.rb-product--page .rb-specgroup {
  border: 1px solid var(--rb-line);
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}
.rb-product--page .rb-specgroup__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding: 11px 14px;
  background: #faf9f6;
  border-bottom: 1px solid var(--rb-line-2);
}
.rb-product--page .rb-specgroup__head b { font-size: 14px; font-weight: 800; color: var(--rb-ink); }
.rb-product--page .rb-specgroup__head span {
  background: #fff;
  border: 1px solid var(--rb-line);
  border-radius: 999px;
  padding: 2px 10px;
  color: var(--rb-muted);
  font-size: 11px;
  font-weight: 700;
}
.rb-product--page .rb-specgroup--flat dl { border-top: 0; }
.rb-product--page .rb-specgroup--flat dl > div:first-child dt,
.rb-product--page .rb-specgroup--flat dl > div:first-child dd { border-top: 0; }
.rb-product--page .rb-specgroup summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding: 11px 14px;
  background: #faf9f6;
  font-size: 14px;
  font-weight: 800;
  color: var(--rb-ink);
  cursor: pointer;
  list-style: none;
}
.rb-product--page .rb-specgroup summary::-webkit-details-marker { display: none; }
.rb-product--page .rb-specgroup summary::after {
  content: "＋";
  color: var(--rb-muted);
  font-weight: 700;
}
.rb-product--page .rb-specgroup[open] summary::after { content: "－"; }
.rb-product--page .rb-specgroup summary span {
  margin-inline-start: auto;
  margin-inline-end: 10px;
  color: var(--rb-faint);
  font-size: 11.5px;
  font-weight: 600;
}
.rb-product--page .rb-specgroup dl {
  display: grid;
  grid-template-columns: minmax(120px, 220px) 1fr;
  margin: 0;
  font-size: 13.5px;
}
.rb-product--page .rb-specgroup dl > div { display: contents; }
.rb-product--page .rb-specgroup dt,
.rb-product--page .rb-specgroup dd {
  margin: 0;
  padding: 9px 14px;
  border-top: 1px solid var(--rb-line-2);
}
.rb-product--page .rb-specgroup dt {
  background: #fdfcfa;
  font-weight: 700;
  color: var(--rb-ink-2);
}
.rb-product--page .rb-specgroup dd {
  color: var(--rb-ink);
  font-style: normal;
  overflow-wrap: anywhere;
}

/* Related */
.rb-product--page .rb-psec__related {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
.rb-product--page .rb-psec__empty {
  margin: 0 0 12px;
  color: var(--rb-muted);
  font-size: 13.5px;
}
.rb-product--page .rb-psec__empty a { color: var(--rb-orange-700); font-weight: 700; }

/* ============================================================ STICKY BAR */
.rb-product--page .rb-buybar {
  display: none;
  position: fixed;
  inset-inline: 0;
  bottom: 0;
  z-index: 45;
  align-items: center;
  gap: 12px;
  padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
  background: #fff;
  border-top: 1px solid var(--rb-line);
  box-shadow: 0 -8px 24px -18px rgba(15, 23, 42, .45);
  transform: translateY(110%);
  transition: transform .22s var(--rb-ease);
}
.rb-product--page .rb-buybar.is-shown { transform: none; }
.rb-product--page .rb-buybar__info {
  flex: 1;
  min-width: 0;
  display: grid;
  gap: 1px;
}
.rb-product--page .rb-buybar__price {
  font-size: 17px;
  font-weight: 900;
  color: var(--rb-ink);
  white-space: nowrap;
}
.rb-product--page .rb-buybar__price .woocommerce-Price-currencySymbol {
  font-size: .6em;
  font-weight: 600;
  color: var(--rb-muted);
}
.rb-product--page .rb-buybar__stock {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #047857;
  font-size: 11px;
  font-weight: 700;
}
.rb-product--page .rb-buybar__stock i {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: currentColor;
}
.rb-product--page .rb-buybar__btn {
  flex: none;
  min-height: 46px;
  padding: 0 16px;
  border: 0;
  border-radius: 12px;
  background: linear-gradient(180deg, #f97316, var(--rb-orange));
  color: #fff;
  font: inherit;
  font-size: 13.5px;
  font-weight: 800;
  white-space: nowrap;
  cursor: pointer;
}

/* ============================================================== LIGHTBOX */
.rb-pdp-lightbox {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: none;
  background: rgba(15, 23, 42, .92);
}
.rb-pdp-lightbox.is-open { display: grid; grid-template-rows: auto 1fr auto; }
.rb-pdp-lightbox__bar {
  display: flex;
  justify-content: flex-end;
  padding: 14px;
}
.rb-pdp-lightbox__close {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .25);
  border-radius: 12px;
  background: rgba(255, 255, 255, .1);
  color: #fff;
  font-size: 20px;
  cursor: pointer;
}
.rb-pdp-lightbox__stage {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.rb-pdp-lightbox__stage::-webkit-scrollbar { display: none; }
.rb-pdp-lightbox__stage img {
  flex: none;
  width: 100%;
  height: 100%;
  object-fit: contain;
  scroll-snap-align: center;
  padding: 0 20px;
}
.rb-pdp-lightbox__nav {
  display: flex;
  justify-content: center;
  gap: 10px;
  padding: 14px;
}
.rb-pdp-lightbox__nav button {
  width: 44px;
  height: 44px;
  border: 1px solid rgba(255, 255, 255, .25);
  border-radius: 12px;
  background: rgba(255, 255, 255, .1);
  color: #fff;
  font-size: 18px;
  cursor: pointer;
}
body.rb-lb-open { overflow: hidden; }

/* ============================================================ RESPONSIVE */
@media (max-width: 1024px) {
  .rb-product.rb-product--page { --pdp-gap: 22px; }
  .rb-product--page .rb-psec { padding: 20px 20px; }
}

@media (max-width: 860px) {
  .rb-product--page .rb-pdp {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }
  .rb-product--page .rb-pdp__gallery { position: static; }
  .rb-product--page .rb-pdp__slides {
    aspect-ratio: 4 / 3;
    max-height: none;
  }
  .rb-product--page .rb-pdp__slide { padding: 12px; }
  .rb-product--page .rb-pdp__thumbs { display: none; }
  .rb-product--page .rb-pdp__dots { display: flex; }
  .rb-product--page .rb-pdp__gwrap { border-radius: 14px; }

  /* Sticky buy bar takes over on small screens */
  .rb-product--page .rb-buybar { display: flex; }
  .rb-product--page { padding-bottom: 84px; }
}

/* Keep the floating contact buttons above the sticky buy bar */
@media (max-width: 860px) {
  body.rb-buybar-open .rb-float { bottom: calc(84px + env(safe-area-inset-bottom)); }
  body.rb-buybar-open .rb-to-top { bottom: calc(150px + env(safe-area-inset-bottom)); }
  body.rb-buybar-open .rb-float,
  body.rb-buybar-open .rb-to-top { transition: bottom .22s var(--rb-ease); }
}

@media (max-width: 560px) {
  .rb-product--page .rb-pdp__price b { font-size: 24px; }
  .rb-product--page .rb-pdp__hl { grid-template-columns: 1fr 1fr; }
  .rb-product--page .rb-pdp__buy { padding: 14px; }
  .rb-product--page .rb-psec { padding: 18px 16px; }
  .rb-product--page .rb-psec__prose p { font-size: 15.5px; }
  .rb-product--page .rb-psec__related { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .rb-product--page .rb-specgroup dl { grid-template-columns: minmax(96px, 130px) 1fr; }

  /* Keep qty + CTA + heart on one line on narrow phones */
  .rb-product--page .rb-pdp__row { flex-wrap: nowrap; gap: 6px; }
  .rb-product--page .rb-pdp__row form.cart { flex: 1 1 auto; min-width: 0; gap: 6px; }
  .rb-product--page .rb-pdp__row form.cart .quantity.rb-qty { height: 46px; }
  .rb-product--page .rb-pdp__row form.cart .quantity.rb-qty input.qty { width: 32px; font-size: 14px; }
  .rb-product--page .rb-pdp__row form.cart .quantity.rb-qty .rb-qty-btn { width: 30px; font-size: 17px; }
  .rb-product--page .rb-pdp__row form.cart .single_add_to_cart_button {
    min-width: 0;
    min-height: 46px;
    padding: 0 10px;
    font-size: 13px;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .rb-product--page .rb-pdp__wish .yith-wcwl-add-to-wishlist-button { width: 46px; height: 46px; }
  .rb-product--page .rb-notify__row { flex-wrap: wrap; }
  .rb-product--page .rb-notify__btn { width: 100%; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  .rb-product--page .rb-buybar { transition: none; }
  .rb-product--page .rb-pdp__row form.cart .single_add_to_cart_button { transition: none; }
}
