/* ============================================================
   WooPremium Product Page v3 — FULLY ISOLATED
   All rules scoped under .wpp-page to avoid theme bleed-in
   ============================================================ */

/* ── Hard reset for the whole page ─────────────────────────────────────────── */
.wpp-page * {
  box-sizing: border-box !important;
  margin: 0;
  padding: 0;
}
.wpp-page {
  background: #f7f5f1 !important;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, sans-serif !important;
  color: #1a1a1a !important;
  line-height: 1.5 !important;
  font-size: 15px !important;
}

/* ── Site header ────────────────────────────────────────────────────────────── */
.wpp-site-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 14px 32px !important;
  background: #fff !important;
  border-bottom: 1px solid #e8e4dc !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 100 !important;
}
.wpp-logo {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #1a1a1a !important;
  text-decoration: none !important;
}
.wpp-header-nav {
  display: flex !important;
  gap: 24px !important;
  align-items: center !important;
}
.wpp-header-nav a {
  font-size: 14px !important;
  color: #555 !important;
  text-decoration: none !important;
  position: relative !important;
}
.wpp-header-nav a:hover { color: #1a1a1a !important; }
.wpp-cart-count {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 18px !important;
  height: 18px !important;
  background: #c8953a !important;
  color: #fff !important;
  border-radius: 50% !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  margin-left: 4px !important;
}

/* ── Wrap ───────────────────────────────────────────────────────────────────── */
.wpp-wrap {
  max-width: 1160px !important;
  margin: 0 auto !important;
  padding: 28px 24px 80px !important;
}

/* ── Breadcrumb ─────────────────────────────────────────────────────────────── */
.wpp-breadcrumb {
  font-size: 12px !important;
  color: #aaa !important;
  margin-bottom: 24px !important;
}
.wpp-breadcrumb a { color: #aaa !important; text-decoration: none !important; }
.wpp-breadcrumb a:hover { color: #1a1a1a !important; }
.wpp-breadcrumb span { color: #1a1a1a !important; font-weight: 500 !important; }

/* ── Product grid ───────────────────────────────────────────────────────────── */
.wpp-product-grid {
  display: grid !important;
  grid-template-columns: 55% 1fr !important;
  gap: 48px !important;
  align-items: start !important;
  margin-bottom: 60px !important;
}
@media (max-width: 820px) {
  .wpp-product-grid {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }
}

/* ══════════ GALLERY ══════════════════════════════════════════════════════════ */
.wpp-gallery {
  position: sticky !important;
  top: 72px !important;
}
.wpp-main-media {
  position: relative !important;
  width: 100% !important;
  aspect-ratio: 1 !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  background: #fff !important;
  box-shadow: 0 2px 20px rgba(0,0,0,.07) !important;
  cursor: zoom-in !important;
}
.wpp-main-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  transition: transform .4s ease !important;
}
.wpp-main-media:hover .wpp-main-img { transform: scale(1.04) !important; }
.wpp-main-media video {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

.wpp-badge {
  position: absolute !important;
  top: 14px !important;
  left: 14px !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  padding: 5px 12px !important;
  border-radius: 20px !important;
  text-transform: uppercase !important;
  letter-spacing: .06em !important;
  pointer-events: none !important;
  z-index: 2 !important;
}
.wpp-badge--sale { background: #e05c2a !important; color: #fff !important; }

.wpp-vid-toggle {
  position: absolute !important;
  bottom: 14px !important;
  right: 14px !important;
  width: 42px !important;
  height: 42px !important;
  border-radius: 50% !important;
  background: rgba(0,0,0,.6) !important;
  color: #fff !important;
  border: none !important;
  cursor: pointer !important;
  font-size: 16px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  z-index: 3 !important;
  transition: background .2s !important;
}
.wpp-vid-toggle:hover { background: rgba(0,0,0,.85) !important; }

/* Thumbnails */
.wpp-thumbs {
  display: flex !important;
  gap: 8px !important;
  margin-top: 12px !important;
  flex-wrap: wrap !important;
}
.wpp-thumb {
  width: 72px !important;
  height: 72px !important;
  border-radius: 10px !important;
  overflow: hidden !important;
  cursor: pointer !important;
  border: 2.5px solid transparent !important;
  transition: border-color .2s !important;
  background: #fff !important;
  flex-shrink: 0 !important;
}
.wpp-thumb img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}
.wpp-thumb.active { border-color: #c8953a !important; }
.wpp-thumb:hover:not(.active) { border-color: #ddd !important; }
.wpp-thumb--video { position: relative !important; }
.wpp-thumb-play {
  position: absolute !important;
  inset: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(0,0,0,.4) !important;
  color: #fff !important;
  font-size: 20px !important;
  pointer-events: none !important;
}

/* ══════════ PRODUCT INFO ═════════════════════════════════════════════════════ */
.wpp-info {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}
.wpp-brand {
  font-size: 11px !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  color: #aaa !important;
  margin-bottom: 8px !important;
}
.wpp-title {
  font-size: 24px !important;
  font-weight: 700 !important;
  color: #1a1a1a !important;
  line-height: 1.25 !important;
  margin-bottom: 12px !important;
}

/* Stars */
.wpp-stars-row {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin-bottom: 14px !important;
  flex-wrap: wrap !important;
}
.wpp-stars { color: #c8953a !important; font-size: 16px !important; letter-spacing: 2px !important; }
.wpp-rev-link {
  font-size: 13px !important;
  color: #888 !important;
  text-decoration: underline !important;
  cursor: pointer !important;
}
.wpp-sold { font-size: 12px !important; color: #bbb !important; }

/* Price */
.wpp-price-row {
  display: flex !important;
  align-items: baseline !important;
  gap: 10px !important;
  margin-bottom: 10px !important;
  flex-wrap: wrap !important;
}
.wpp-price {
  font-size: 28px !important;
  font-weight: 800 !important;
  color: #1a1a1a !important;
  line-height: 1 !important;
}
.wpp-price ins,
.wpp-price .woocommerce-Price-amount { text-decoration: none !important; }
.wpp-price-old {
  font-size: 16px !important;
  color: #bbb !important;
  text-decoration: line-through !important;
}
.wpp-price-save {
  font-size: 12px !important;
  background: #e8f3e8 !important;
  color: #2a7a2a !important;
  padding: 3px 9px !important;
  border-radius: 20px !important;
  font-weight: 600 !important;
}

/* Stock */
.wpp-stock {
  font-size: 13px !important;
  margin-bottom: 18px !important;
}
.wpp-stock--instock    { color: #2a7a2a !important; }
.wpp-stock--onbackorder{ color: #a06010 !important; }
.wpp-stock--outofstock { color: #b02020 !important; }

.wpp-divider {
  border: none !important;
  border-top: 1px solid #ece8e0 !important;
  margin: 16px 0 !important;
}

/* Variant groups */
.wpp-var-group { margin-bottom: 16px !important; }
.wpp-var-label {
  font-size: 13px !important;
  color: #888 !important;
  margin-bottom: 8px !important;
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  flex-wrap: wrap !important;
}
.wpp-var-label span { color: #1a1a1a !important; font-weight: 600 !important; }

/* Colour swatches */
.wpp-color-swatches { display: flex !important; gap: 10px !important; flex-wrap: wrap !important; }
.wpp-swatch {
  width: 34px !important;
  height: 34px !important;
  border-radius: 50% !important;
  cursor: pointer !important;
  border: 3px solid transparent !important;
  outline: none !important;
  transition: transform .15s !important;
  padding: 0 !important;
}
.wpp-swatch.active,
.wpp-swatch:focus-visible {
  transform: scale(1.15) !important;
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px #c8953a !important;
}

/* Size buttons */
.wpp-size-btns { display: flex !important; gap: 8px !important; flex-wrap: wrap !important; }
.wpp-size-btn {
  padding: 8px 18px !important;
  border-radius: 9px !important;
  border: 1.5px solid #ddd !important;
  background: #fff !important;
  cursor: pointer !important;
  font-size: 13px !important;
  color: #1a1a1a !important;
  font-family: inherit !important;
  transition: all .15s !important;
  line-height: 1 !important;
}
.wpp-size-btn:hover:not(.active):not(.soldout) {
  border-color: #aaa !important;
  background: #f8f6f2 !important;
}
.wpp-size-btn.active {
  background: #1a1a1a !important;
  color: #fff !important;
  border-color: #1a1a1a !important;
}
.wpp-size-btn.soldout {
  opacity: .4 !important;
  cursor: not-allowed !important;
  text-decoration: line-through !important;
}

/* Qty + CTA row */
.wpp-qty-row {
  display: flex !important;
  gap: 10px !important;
  align-items: stretch !important;
  margin-bottom: 12px !important;
  margin-top: 20px !important;
}
.wpp-qty {
  display: flex !important;
  align-items: center !important;
  border: 1.5px solid #ddd !important;
  border-radius: 11px !important;
  overflow: hidden !important;
  height: 50px !important;
  background: #fff !important;
}
.wpp-qty button {
  width: 44px !important;
  height: 100% !important;
  background: transparent !important;
  border: none !important;
  cursor: pointer !important;
  font-size: 22px !important;
  color: #1a1a1a !important;
  font-family: inherit !important;
  transition: background .15s !important;
  line-height: 1 !important;
  padding: 0 !important;
}
.wpp-qty button:hover { background: #f8f6f2 !important; }
.wpp-qty input {
  width: 48px !important;
  height: 100% !important;
  border: none !important;
  text-align: center !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: #1a1a1a !important;
  font-family: inherit !important;
  -moz-appearance: textfield !important;
  background: transparent !important;
  padding: 0 !important;
}
.wpp-qty input::-webkit-inner-spin-button,
.wpp-qty input::-webkit-outer-spin-button { -webkit-appearance: none !important; }

.wpp-btn-cart {
  flex: 1 !important;
  height: 50px !important;
  background: #c8953a !important;
  color: #fff !important;
  border: none !important;
  border-radius: 11px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  font-family: inherit !important;
  letter-spacing: .02em !important;
  transition: all .2s !important;
  padding: 0 20px !important;
  white-space: nowrap !important;
}
.wpp-btn-cart:hover:not([disabled]) {
  background: #b07828 !important;
  transform: translateY(-1px) !important;
}
.wpp-btn-cart[disabled] { opacity: .45 !important; cursor: not-allowed !important; }

.wpp-btn-wish {
  width: 50px !important;
  height: 50px !important;
  border: 1.5px solid #ddd !important;
  background: #fff !important;
  border-radius: 11px !important;
  cursor: pointer !important;
  font-size: 22px !important;
  color: #ccc !important;
  transition: all .2s !important;
  font-family: inherit !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
}
.wpp-btn-wish:hover,
.wpp-btn-wish[aria-pressed="true"] { color: #e0003c !important; border-color: #e0003c !important; }

.wpp-btn-buy {
  width: 100% !important;
  height: 50px !important;
  background: #1a1a1a !important;
  color: #fff !important;
  border: none !important;
  border-radius: 11px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  font-family: inherit !important;
  letter-spacing: .02em !important;
  transition: opacity .2s !important;
  margin-bottom: 18px !important;
  padding: 0 !important;
}
.wpp-btn-buy:hover:not([disabled]) { opacity: .8 !important; }
.wpp-btn-buy[disabled] { opacity: .4 !important; cursor: not-allowed !important; }

/* Trust perks */
.wpp-perks {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 8px !important;
  margin-bottom: 20px !important;
}
.wpp-perk {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-size: 12px !important;
  color: #666 !important;
  padding: 10px 12px !important;
  background: #fff !important;
  border-radius: 10px !important;
  border: 1px solid #ece8e0 !important;
}

/* Accordion */
.wpp-accordion { border-top: 1px solid #ece8e0 !important; }
.wpp-acc-item  { border-bottom: 1px solid #ece8e0 !important; }
.wpp-acc-head {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  width: 100% !important;
  padding: 14px 0 !important;
  background: none !important;
  border: none !important;
  cursor: pointer !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #1a1a1a !important;
  text-align: left !important;
  font-family: inherit !important;
}
.wpp-acc-icon { transition: transform .2s !important; display: inline-block !important; }
.wpp-acc-head.open .wpp-acc-icon { transform: rotate(180deg) !important; }
.wpp-acc-body {
  display: none !important;
  padding-bottom: 14px !important;
  font-size: 13px !important;
  color: #666 !important;
  line-height: 1.8 !important;
}
.wpp-acc-body.open { display: block !important; }
.wpp-acc-body ul { padding-left: 18px !important; margin-top: 6px !important; }
.wpp-acc-body li { margin-bottom: 4px !important; }

/* ══════════ REVIEWS ══════════════════════════════════════════════════════════ */
.wpp-reviews { margin-top: 56px !important; }
.wpp-sec-title {
  font-size: 22px !important;
  font-weight: 700 !important;
  color: #1a1a1a !important;
  margin-bottom: 24px !important;
}

.wpp-reviews-summary {
  display: grid !important;
  grid-template-columns: 130px 1fr !important;
  gap: 32px !important;
  align-items: center !important;
  padding: 24px !important;
  background: #fff !important;
  border-radius: 16px !important;
  margin-bottom: 24px !important;
  border: 1px solid #ece8e0 !important;
}
@media (max-width: 500px) {
  .wpp-reviews-summary { grid-template-columns: 1fr !important; }
}
.wpp-big-score { text-align: center !important; }
.wpp-big-num   { font-size: 52px !important; font-weight: 800 !important; color: #1a1a1a !important; line-height: 1 !important; }
.wpp-big-stars { color: #c8953a !important; font-size: 20px !important; margin: 6px 0 !important; }
.wpp-big-sub   { font-size: 12px !important; color: #aaa !important; }

.wpp-bars { display: flex !important; flex-direction: column !important; gap: 8px !important; }
.wpp-bar-row {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  font-size: 13px !important;
  color: #888 !important;
}
.wpp-bar-track {
  flex: 1 !important;
  height: 8px !important;
  background: #f0ede8 !important;
  border-radius: 10px !important;
  overflow: hidden !important;
}
.wpp-bar-fill {
  height: 100% !important;
  background: #c8953a !important;
  border-radius: 10px !important;
  transition: width 1s cubic-bezier(.22,1,.36,1) !important;
}

/* Review cards */
.wpp-review-list { display: flex !important; flex-direction: column !important; gap: 14px !important; margin-bottom: 28px !important; }
.wpp-no-reviews  { font-size: 14px !important; color: #aaa !important; font-style: italic !important; }
.wpp-rv-card {
  padding: 20px !important;
  background: #fff !important;
  border: 1px solid #ece8e0 !important;
  border-radius: 14px !important;
}
.wpp-rv-top  { display: flex !important; justify-content: space-between !important; align-items: flex-start !important; margin-bottom: 8px !important; }
.wpp-rv-name { font-size: 14px !important; font-weight: 600 !important; color: #1a1a1a !important; display: flex !important; align-items: center !important; gap: 8px !important; flex-wrap: wrap !important; }
.wpp-rv-verified {
  font-size: 11px !important;
  color: #2a7a2a !important;
  background: #e8f3e8 !important;
  padding: 2px 8px !important;
  border-radius: 10px !important;
  font-weight: 500 !important;
}
.wpp-rv-stars { color: #c8953a !important; font-size: 14px !important; margin-bottom: 8px !important; }
.wpp-rv-date  { font-size: 12px !important; color: #bbb !important; white-space: nowrap !important; }
.wpp-rv-text  { font-size: 14px !important; color: #555 !important; line-height: 1.7 !important; }

/* Review form */
.wpp-review-form-wrap {
  background: #fff !important;
  padding: 24px !important;
  border-radius: 16px !important;
  border: 1px solid #ece8e0 !important;
}
.wpp-form-title { font-size: 17px !important; font-weight: 700 !important; margin-bottom: 14px !important; color: #1a1a1a !important; }
.wpp-star-picker { display: flex !important; gap: 6px !important; margin-bottom: 16px !important; }
.wpp-star-pick {
  background: none !important;
  border: none !important;
  font-size: 30px !important;
  color: #ddd !important;
  cursor: pointer !important;
  padding: 0 !important;
  transition: color .15s, transform .15s !important;
  font-family: inherit !important;
  line-height: 1 !important;
}
.wpp-star-pick.active,
.wpp-star-pick:hover { color: #c8953a !important; transform: scale(1.15) !important; }
.wpp-review-form { display: flex !important; flex-direction: column !important; gap: 10px !important; }
.wpp-review-form input[type="text"],
.wpp-review-form textarea {
  padding: 11px 14px !important;
  border: 1.5px solid #ddd !important;
  border-radius: 10px !important;
  font-size: 14px !important;
  font-family: inherit !important;
  background: #fff !important;
  color: #1a1a1a !important;
  outline: none !important;
  transition: border-color .2s !important;
  resize: vertical !important;
  width: 100% !important;
}
.wpp-review-form input:focus,
.wpp-review-form textarea:focus { border-color: #c8953a !important; }
.wpp-btn-submit-review {
  align-self: flex-start !important;
  padding: 11px 28px !important;
  background: #c8953a !important;
  color: #fff !important;
  border: none !important;
  border-radius: 10px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  font-family: inherit !important;
  transition: background .2s !important;
}
.wpp-btn-submit-review:hover { background: #b07828 !important; }

/* ══════════ RELATED ══════════════════════════════════════════════════════════ */
.wpp-related { margin-top: 56px !important; }
.wpp-related-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important;
  gap: 16px !important;
}
.wpp-rel-card {
  display: block !important;
  text-decoration: none !important;
  color: inherit !important;
  background: #fff !important;
  border: 1px solid #ece8e0 !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  transition: transform .25s, box-shadow .25s !important;
}
.wpp-rel-card:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 12px 32px rgba(0,0,0,.09) !important;
}
.wpp-rel-img {
  width: 100% !important;
  aspect-ratio: 1 !important;
  object-fit: cover !important;
  display: block !important;
  background: #f0ede8 !important;
}
.wpp-rel-info { padding: 14px !important; }
.wpp-rel-stars { color: #c8953a !important; font-size: 13px !important; margin-bottom: 5px !important; }
.wpp-rel-name  { font-size: 13px !important; font-weight: 600 !important; color: #1a1a1a !important; margin-bottom: 5px !important; }
.wpp-rel-price { font-size: 15px !important; font-weight: 800 !important; color: #c8953a !important; }
.wpp-rel-price ins { text-decoration: none !important; }

/* ══════════ FOOTER ═══════════════════════════════════════════════════════════ */
.wpp-site-footer {
  text-align: center !important;
  padding: 20px !important;
  font-size: 13px !important;
  color: #aaa !important;
  border-top: 1px solid #ece8e0 !important;
  margin-top: 40px !important;
  background: #fff !important;
}

/* ══════════ TOAST ════════════════════════════════════════════════════════════ */
.wpp-toast {
  position: fixed !important;
  bottom: 28px !important;
  left: 50% !important;
  transform: translateX(-50%) translateY(90px) !important;
  background: #1a1a1a !important;
  color: #fff !important;
  padding: 13px 28px !important;
  border-radius: 13px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  transition: transform .3s ease, opacity .3s !important;
  opacity: 0 !important;
  z-index: 99999 !important;
  pointer-events: none !important;
  white-space: nowrap !important;
  box-shadow: 0 6px 24px rgba(0,0,0,.18) !important;
}
.wpp-toast.show {
  transform: translateX(-50%) translateY(0) !important;
  opacity: 1 !important;
}

/* ══ v4 PATCHES ══════════════════════════════════════════════════════════════ */

.wpp-page .wpp-thumbs {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin-top: 12px !important;
  max-width: 100% !important;
  overflow: visible !important;
}
.wpp-page .wpp-thumb {
  flex: 0 0 68px !important;
  width: 68px !important;
  height: 68px !important;
}
.wpp-page .wpp-product-grid {
  grid-template-columns: 52% 1fr !important;
}
.wpp-page .wpp-info {
  min-width: 0 !important;
  max-width: 100% !important;
  overflow: hidden !important;
}
.wpp-page .wpp-price bdi,
.wpp-page .wpp-price .woocommerce-Price-amount,
.wpp-page .wpp-price-old bdi {
  font-size: inherit !important;
  font-weight: inherit !important;
  color: inherit !important;
}
.wpp-page .wpp-color-swatches {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
}
.wpp-page .wpp-size-btn { white-space: nowrap !important; }
.wpp-page .wpp-acc-body {
  word-break: break-word !important;
  overflow-wrap: anywhere !important;
}
.wpp-page .wpp-reviews,
.wpp-page .wpp-related {
  clear: both !important;
  width: 100% !important;
  max-width: 100% !important;
}
.wpp-page .wpp-review-form-wrap { display: block !important; }
.wpp-page .wpp-price .woocommerce-Price-currencySymbol { font-size: inherit !important; }

/* ══ TOAST OVERRIDE — above all overlays including WP admin bar ══════════════ */
#wppToast {
  z-index: 999999 !important;
}
