/* ================================================================
   PERFECTO – SINGLE PRODUCT v6 PREMIUM
   Accent: var(--pf-accent) | Dark: #0a0a0a | Surface: #fafafa
   Font: System stack refined + DM Sans
================================================================ */

/* ── IMPORT FONTS ── */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;0,9..40,800;0,9..40,900;1,9..40,400&display=swap');

/* ── CSS VARIABLES ── */
:root {
  --pf-accent: var(--pf-buy-bg, #E53935);
  --pf-accent-light: #fef2f2;
  --pf-accent-dark: var(--pf-buy-h-bg, #c62828);
  --pf-accent-rgb: 229,57,53;
  --pf-accent-border: #fecaca;
  --pf-dark: var(--pf-atc-bg, #0a0a0a);
  --pf-dark-hover: var(--pf-atc-h-bg, #222222);
  --pf-dark-rgb: 10,10,10;
  --pf-text: #1a1a2e;
  --pf-muted: #64748b;
  --pf-border: #e8ecf0;
  --pf-surface: #fafafa;
  --pf-white: #ffffff;
  --pf-success: #10b981;
  --pf-warning: #f59e0b;
  --pf-star: #f59e0b;
  --pf-star-rgb: 245,158,11;
  --pf-wishlist: #ef4444;
  --pf-wishlist-light: #fef2f2;
  --pf-wishlist-border: #fecaca;
  --pf-btn-radius: 12px;
  --pf-btn-atc-bg: var(--pf-atc-bg, #0a0a0a);
  --pf-btn-atc-text: var(--pf-atc-txt, #ffffff);
  --pf-btn-buy-bg: var(--pf-buy-bg, #E53935);
  --pf-btn-buy-text: var(--pf-buy-txt, #ffffff);
  --pf-btn-buy-bg-rgb: 229,57,53;
  --pf-link: #E53935;
  --pf-link-hover: #c62828;
  --pf-radius-sm: 8px;
  --pf-radius: 14px;
  --pf-radius-lg: 20px;
  --pf-shadow-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
  --pf-shadow: 0 4px 16px rgba(0,0,0,0.08), 0 2px 4px rgba(0,0,0,0.04);
  --pf-shadow-lg: 0 20px 60px rgba(0,0,0,0.12), 0 8px 20px rgba(0,0,0,0.06);
  --pf-transition: 0.22s cubic-bezier(0.4, 0, 0.2, 1);
  --pf-transition-slow: 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  --pf-font: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* ── GLOBAL RESET FOR THIS COMPONENT ── */
.pf-product--desktop,
.pf-product--mobile {
  font-family: var(--pf-font);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ================================================================
   ANIMATIONS
================================================================ */
@keyframes pfFadeUp {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes pfFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes pfSlideFromRight {
  from { transform: translateX(60px); opacity: 0; }
  to   { transform: translateX(0); opacity: 1; }
}
@keyframes pfSlideFromLeft {
  from { transform: translateX(-60px); opacity: 0; }
  to   { transform: translateX(0); opacity: 1; }
}
@keyframes pfSlideUp {
  from { transform: translateY(100%); }
  to   { transform: translateY(0); }
}
@keyframes pfPulse {
  0%, 100% { transform: scale(1); opacity: 1; box-shadow: 0 0 0 0 rgba(229,57,53,0.4); }
  50%       { transform: scale(1.15); opacity: 0.85; box-shadow: 0 0 0 6px rgba(229,57,53,0); }
}
@keyframes pfPulseGreen {
  0%, 100% { box-shadow: 0 0 0 0 rgba(16,185,129,0.5); }
  50%       { box-shadow: 0 0 0 5px rgba(16,185,129,0); }
}
@keyframes pfShimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}
@keyframes pfSpin { to { transform: rotate(360deg); } }
@keyframes pfBounceIn {
  0% { transform: scale(0.3); opacity: 0; }
  50% { transform: scale(1.08); }
  70% { transform: scale(0.96); }
  100% { transform: scale(1); opacity: 1; }
}

/* ── PAGE TRANSITIONS ── */
body.pf-page-out .pf-product--desktop,
body.pf-page-out .pf-product--mobile {
  opacity: 0; transform: translateY(10px);
  transition: opacity 200ms ease, transform 200ms ease;
  pointer-events: none;
}
body.pf-page-in .pf-product--desktop,
body.pf-page-in .pf-product--mobile {
  animation: pfFadeUp 350ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

/* ── PAGE LOADER BAR ── */
#pf-page-loader {
  position: fixed; top: 0; left: 0; right: 0;
  z-index: 99999; height: 3px;
  pointer-events: none; opacity: 0; transition: opacity 0.18s;
}
#pf-page-loader.active { opacity: 1; }
.pf-loader-bar {
  height: 100%; width: 0%;
  background: linear-gradient(90deg, var(--pf-accent), #ff6b6b, var(--pf-accent));
  background-size: 200% 100%;
  animation: pfShimmer 1.2s linear infinite;
  transition: width 0.22s ease;
  border-radius: 0 2px 2px 0;
  box-shadow: 0 0 16px rgba(229,57,53,0.6);
}

/* ================================================================
   RESPONSIVE SWITCHER
================================================================ */
.pf-product--desktop { display: block; }
.pf-product--mobile  { display: none;  }

@media (max-width: 768px) {
  .pf-product--desktop { display: none !important; }
  .pf-product--mobile  { display: block !important; }
}

/* ================================================================
   DESKTOP LAYOUT
================================================================ */
.pf-product__container {
  max-width: var(--container-width, 1400px); margin: 0 auto; padding: 0 40px 120px;
}

/* Breadcrumb */
.pf-product__breadcrumb {
  padding: 20px 0 28px; font-size: 11px; color: var(--pf-muted);
  letter-spacing: 0.3px; font-weight: 500;
}
.pf-bc-align--left  .woocommerce-breadcrumb { text-align: left; }
.pf-bc-align--center .woocommerce-breadcrumb { text-align: center; }
.pf-bc-align--right  .woocommerce-breadcrumb { text-align: right; }
.pf-product__breadcrumb .woocommerce-breadcrumb { font-size: 12px; color: var(--pf-muted); }
.pf-product__breadcrumb .woocommerce-breadcrumb a {
  color: var(--pf-muted); text-decoration: none;
  transition: color .2s ease; font-weight: 500;
}
.pf-product__breadcrumb .woocommerce-breadcrumb a:hover { color: var(--pf-accent); }
.pf-product__breadcrumb .woocommerce-breadcrumb .pf-bc__sep { margin: 0 7px; opacity: .4; }
.pf-product__breadcrumb .woocommerce-breadcrumb > span:last-child { color: var(--pf-dark); font-weight: 600; }

/* ── TOP GRID ── */
.pf-product__top {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 72px; align-items: start;
}
@media (max-width: 1100px) { .pf-product__top { gap: 40px; } }
@media (max-width: 860px)  { .pf-product__top { grid-template-columns: 1fr; gap: 32px; } }

/* ================================================================
   GALLERY – DESKTOP
================================================================ */
.pf-product__gallery {
  display: flex; gap: 16px; position: sticky; top: 100px;
}

.pf-gallery__thumbs {
  display: flex; flex-direction: column; gap: 10px;
  width: 80px; flex-shrink: 0;
  overflow-y: scroll; overflow-x: hidden;
  scrollbar-width: none; -ms-overflow-style: none;
  align-self: flex-start;
}
.pf-gallery__thumbs::-webkit-scrollbar { display: none; }

.pf-thumb__item {
  width: 80px; height: 80px;
  border: 2px solid transparent;
  border-radius: var(--pf-radius-sm); overflow: hidden; cursor: pointer;
  padding: 0; background: var(--pf-surface); flex-shrink: 0;
  transition: border-color var(--pf-transition), opacity var(--pf-transition), transform var(--pf-transition);
  opacity: 0.5;
}
.pf-thumb__item:hover { opacity: 0.8; transform: scale(1.04); }
.pf-thumb__item.is-active {
  border-color: var(--pf-dark); opacity: 1;
  transform: scale(1);
}
.pf-thumb__item img { width: 100%; height: 100%; object-fit: cover; display: block; }

.pf-gallery__main {
  flex: 1; position: relative; min-width: 0;
}

.pf-gallery__zoom-wrap {
  position: relative; background: var(--pf-surface);
  border-radius: var(--pf-radius-lg); overflow: hidden; cursor: zoom-in;
  width: 100%;
  aspect-ratio: 1 / 1;
  box-shadow: var(--pf-shadow-sm);
}

/* ── Video on single product page ── */
#pf-main-video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  display: none;
  background: var(--pf-dark);
  border-radius: inherit;
  z-index: 5;
}
#pf-main-video.is-active-video {
  display: block;
}

/* ── Gallery image transitions ── */
#pf-main-img {
  width: 100%; height: 100%; object-fit: contain; display: block;
  transform-origin: center center; will-change: transform, opacity;
  transition: opacity 0.05s ease;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
#pf-main-img.pf-img-slide-out-left {
  animation: pfSlideOutLeft 0.19s cubic-bezier(0.4,0,1,1) forwards;
}
#pf-main-img.pf-img-slide-out-right {
  animation: pfSlideOutRight 0.19s cubic-bezier(0.4,0,1,1) forwards;
}
#pf-main-img.pf-img-slide-in-left {
  animation: pfSlideFromRight 0.34s cubic-bezier(0.16, 1, 0.3, 1) both;
}
#pf-main-img.pf-img-slide-in-right {
  animation: pfSlideFromLeft 0.34s cubic-bezier(0.16, 1, 0.3, 1) both;
}

@keyframes pfSlideOutLeft {
  to { transform: translateX(-38px); opacity: 0; }
}
@keyframes pfSlideOutRight {
  to { transform: translateX(38px); opacity: 0; }
}
@keyframes pfSlideFromRight {
  from { transform: translateX(38px); opacity: 0; }
  to   { transform: translateX(0); opacity: 1; }
}
@keyframes pfSlideFromLeft {
  from { transform: translateX(-38px); opacity: 0; }
  to   { transform: translateX(0); opacity: 1; }
}

.pf-gallery__badge {
  position: absolute; top: 16px; left: 16px;
  padding: 5px 12px; border-radius: 6px;
  font-size: 11px; font-weight: 800; letter-spacing: 0.8px;
  text-transform: uppercase; z-index: 2; pointer-events: none;
  font-family: var(--pf-font);
  z-index: 50 !important;
  transform: translateZ(0);
}
.pf-gallery__badge--sale { background: var(--pf-accent); color: #fff; }

.pf-gallery__expand {
  position: absolute; bottom: 16px; right: 16px;
  width: 40px; height: 40px;
  background: rgba(255,255,255,0.95); border: 1px solid rgba(0,0,0,0.06);
  border-radius: var(--pf-radius-sm); cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  box-shadow: var(--pf-shadow-sm); transition: all var(--pf-transition); z-index: 2; color: var(--pf-dark);
  z-index: 50 !important;
}
.pf-gallery__expand:hover {
  background: #fff; transform: scale(1.08);
  box-shadow: var(--pf-shadow);
}

.pf-gallery__nav-btn {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 40px; height: 40px;
  background: rgba(255,255,255,0.95); border: 1px solid rgba(0,0,0,0.06);
  border-radius: 50%; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  box-shadow: var(--pf-shadow); z-index: 3;
  transition: all var(--pf-transition); color: var(--pf-dark);
  opacity: 0; 
}
.pf-gallery__zoom-wrap:hover .pf-gallery__nav-btn { opacity: 1; }
.pf-gallery__nav-btn:hover {
  background: var(--pf-dark); color: #fff;
  transform: translateY(-50%) scale(1.1);
}
.pf-gallery__nav-btn--prev { left: 12px; }
.pf-gallery__nav-btn--next { right: 12px; }

/* Gallery dots */
.pf-gallery__dots {
  display: flex; justify-content: center; gap: 6px;
  margin-top: 14px;
}
.pf-gallery__dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--pf-border); border: none; padding: 0; cursor: pointer;
  transition: all 0.28s cubic-bezier(0.4,0,0.2,1);
}
.pf-gallery__dot.is-active {
  background: var(--pf-dark);
  width: 20px; border-radius: 3px;
}

/* ================================================================
   FULLSCREEN LIGHTBOX
================================================================ */
#pf-lightbox {
  position: fixed; inset: 0; z-index: 99990;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; transition: opacity 0.3s cubic-bezier(0.4,0,0.2,1);
  pointer-events: none;
}
#pf-lightbox.is-open { opacity: 1; pointer-events: all; }
.pf-lb-overlay {
  position: absolute; inset: 0;
  background: rgba(5,5,5,0.94); backdrop-filter: blur(8px);
}
.pf-lb-inner {
  position: relative; z-index: 1;
  display: flex; align-items: center; justify-content: center;
  width: 100%; height: 100%; padding: 0; box-sizing: border-box;
}
.pf-lb-img-wrap {
  display: flex; align-items: center; justify-content: center;
  width: 100%; height: 100%;
  overflow: hidden;
  touch-action: pinch-zoom;
  cursor: zoom-in;
}
.pf-lb-img-wrap.is-zoomed { cursor: grab; }
.pf-lb-img-wrap.is-zoomed:active { cursor: grabbing; }
.pf-lb-img {
  width: 100%; height: 100%;
  max-width: 100vw; max-height: 100vh;
  object-fit: contain;
  box-shadow: none;
  transition: opacity 0.18s ease; user-select: none;
  transform-origin: center center;
  will-change: transform;
  display: block;
}
.pf-lb-close,
.pf-lb-prev, .pf-lb-next {
  position: absolute;
  z-index: 50; 
  background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.15);
  border-radius: 50%; color: #fff; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: all var(--pf-transition);
  backdrop-filter: blur(8px);
}
.pf-lb-close {
  top: 24px; right: 24px; width: 44px; height: 44px;
}
.pf-lb-prev, .pf-lb-next {
  top: 50%; transform: translateY(-50%);
  width: 52px; height: 46px;
}
.pf-lb-close:hover,
.pf-lb-prev:hover, .pf-lb-next:hover {
  background: rgba(255,255,255,0.18);
  border-color: rgba(255,255,255,0.3);
  transform: translateY(-50%) scale(1.05);
}
.pf-lb-close:hover { transform: scale(1.05); }
.pf-lb-prev { left: 24px; }
.pf-lb-next { right: 24px; }
.pf-lb-dots {
  position: absolute; bottom: 28px; left: 50%;
  transform: translateX(-50%); display: flex; gap: 6px;
}
.pf-lb-dot {
  width: 6px; height: 6px; background: rgba(255,255,255,0.3);
  border-radius: 50%; cursor: pointer; border: none; padding: 0;
  transition: all 0.24s ease;
}
.pf-lb-dot.active {
  background: #fff; transform: scale(1.5);
}

/* ================================================================
   SUMMARY – DESKTOP
================================================================ */
.pf-product__summary {
  display: flex; flex-direction: column; gap: 0;
}

.pf-product__cat {
  font-size: 10px; font-weight: 800; letter-spacing: 2.5px;
  color: var(--pf-accent); text-transform: uppercase; display: inline-block;
  margin-bottom: 10px;
}

.pf-product__title-row {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 16px; margin-bottom: 12px;
}

.pf-product__title {
  font-size: 24px; font-weight: 800; line-height: 1.25;
  color: var(--pf-text); margin: 0; letter-spacing: -0.3px; flex: 1;
  font-family: var(--pf-font);
}

.pf-product__stars {
  display: flex; align-items: center; gap: 3px;
  flex-shrink: 0; padding-top: 5px;
}
.pf-product__reviews-link {
  font-size: 12px; color: #94a3b8; margin-left: 6px;
  text-decoration: underline; text-underline-offset: 2px;
  text-decoration-color: var(--pf-border); transition: color var(--pf-transition);
  white-space: nowrap;
}
.pf-product__reviews-link:hover { color: var(--pf-dark); }

/* ── PRICE BLOCK ── */
.pf-product__price-block {
  display: flex; align-items: center; gap: 12px;
  flex-wrap: wrap;
  padding: 16px 0;
  border-top: 1px solid var(--pf-border);
  border-bottom: 1px solid var(--pf-border);
  margin-bottom: 16px;
}

.pf-product__price-block .price {
  font-size: 24px; font-weight: 900; color: var(--pf-text);
  letter-spacing: -0.4px; line-height: 1;
  display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
  font-family: var(--pf-font);
}

.pf-product__price-block del { text-decoration: none; }
.pf-product__price-block del .amount {
  font-size: 13px; font-weight: 500;
  color: #94a3b8;
  text-decoration: line-through;
  text-decoration-color: #94a3b8;
  letter-spacing: 0;
}

.pf-product__price-block ins { text-decoration: none; }
.pf-product__price-block ins .amount {
  font-size: 24px; font-weight: 900;
  color: var(--pf-accent, #E53935);
  text-decoration: none;
}

.pf-product__price-block > .price > .woocommerce-Price-amount.amount {
  color: var(--pf-text);
}

.pf-product__save {
  font-size: 11px; font-weight: 800; color: var(--pf-accent);
  background: var(--pf-accent-light); border: 1px solid var(--pf-accent-border);
  padding: 4px 10px; border-radius: 6px; letter-spacing: 0.3px;
  white-space: nowrap;
}

/* ── META STRIP ── */
.pf-product__meta-strip {
  display: flex; align-items: center; gap: 6px;
  flex-wrap: nowrap;
  margin-bottom: 16px;
  overflow-x: auto; scrollbar-width: none;
}
.pf-product__meta-strip::-webkit-scrollbar { display: none; }

.pf-product__stock,
.pf-product__sold,
.pf-product__viewers {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 11.5px; font-weight: 600;
  padding: 5px 11px; border-radius: 20px;
  white-space: nowrap; flex-shrink: 0;
  letter-spacing: 0.1px;
  transition: transform 0.15s ease;
}
.pf-product__stock svg,
.pf-product__sold svg,
.pf-product__viewers svg {
  flex-shrink: 0; stroke-linecap: round; stroke-linejoin: round;
}

.pf-product__stock.is-in-stock {
  color: #065f46;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
}
.pf-product__stock.is-out-of-stock {
  color: #991b1b;
  background: #fff1f2;
  border: 1px solid #fecdd3;
}

.pf-product__sold {
  color: #92400e;
  background: #fffbeb;
  border: 1px solid #fde68a;
}

.pf-product__viewers {
  color: #1e40af;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
}

.pf-product__sku-badge {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 11.5px; font-weight: 600;
  padding: 5px 11px; border-radius: 20px;
  white-space: nowrap; flex-shrink: 0;
  letter-spacing: 0.1px;
  color: #374151;
  background: #f3f4f6;
  border: 1px solid #d1d5db;
}
.pf-product__sku-badge .pf-sku-label {
  font-weight: 600;
}
.pf-product__sku-badge .pf-sku-value {
  font-weight: 500;
}

.pf-stock-dot, .pf-sold-dot, .pf-viewer-pulse { display: none; }

.pf-product__stock-warn {
  font-weight: 700; color: var(--pf-accent); font-size: 11.5px;
  background: var(--pf-accent-light); border: 1px solid var(--pf-accent-border);
  padding: 5px 11px; border-radius: 20px; white-space: nowrap; flex-shrink: 0;
}

/* ── SHORT DESCRIPTION ── */
.pf-product__short-desc {
  font-size: 14px; line-height: 1.85; color: #4a5568;
  margin-bottom: 18px;
}
.pf-product__short-desc p { margin: 0 0 8px; }
.pf-product__short-desc p:last-child { margin: 0; }
.pf-product__short-desc ul { margin: 8px 0; padding-left: 0; list-style: none; }
.pf-product__short-desc ul li {
  position: relative; padding-left: 18px; margin-bottom: 5px;
  font-size: 13.5px; color: #4a5568;
}
.pf-product__short-desc ul li::before {
  content: ''; position: absolute; left: 0; top: 8px;
  width: 6px; height: 6px; border-radius: 50%; background: var(--pf-accent);
}

/* ================================================================
   WC ADD TO CART — DESKTOP
   FIX: gap:0 removes phantom space on simple products
================================================================ */
.pf-product__atc-wrap { margin-bottom: 16px; }
.pf-product__atc-wrap form.cart {
  display: flex; flex-direction: column; gap: 0;
}

.pf-product__atc-wrap .quantity {
  display: flex; align-items: stretch;
  border: 1.5px solid var(--pf-border); border-radius: 8px;
  overflow: hidden; height: 46px; flex-shrink: 0; width: 130px;
  transition: border-color var(--pf-transition);
  background: #fff;
}
.pf-product__atc-wrap .quantity:focus-within { border-color: var(--pf-dark); }
.pf-product__atc-wrap .qty-btn {
  width: 42px; background: var(--pf-surface); border: none;
  font-size: 20px; font-weight: 300; cursor: pointer; color: var(--pf-dark);
  transition: background var(--pf-transition);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.pf-product__atc-wrap .qty-btn:hover { background: #f1f5f9; }
.pf-product__atc-wrap input.qty {
  flex: 1; min-width: 0; text-align: center; border: none;
  border-left: 1.5px solid var(--pf-border); border-right: 1.5px solid var(--pf-border);
  font-size: 15px; font-weight: 700; outline: none; background: #fff;
  font-family: var(--pf-font);
  -moz-appearance: textfield;
}
.pf-product__atc-wrap input.qty::-webkit-inner-spin-button,
.pf-product__atc-wrap input.qty::-webkit-outer-spin-button { -webkit-appearance: none; }

/* ── VARIATION ADD-TO-CART — FIX: always visible, greyed before selection ── */
.pf-product__atc-wrap .woocommerce-variation-add-to-cart {
  display: block;
  margin-top: 6px;
}

.pf-product__atc-wrap .woocommerce-variation-add-to-cart.woocommerce-variation-add-to-cart-enabled {
  opacity: 1;
  pointer-events: auto;
}

/* ── pf-qty: qty wrapper inside variation-add-to-cart-button.php ── */
.pf-product__atc-wrap .pf-qty {
  display: flex; align-items: stretch;
  border: 1.5px solid var(--pf-border); border-radius: 8px;
  overflow: hidden; height: 46px; flex-shrink: 0; width: 130px;
  background: #fff;
  transition: border-color var(--pf-transition);
}
.pf-product__atc-wrap .pf-qty:focus-within { border-color: var(--pf-dark); }
.pf-product__atc-wrap .pf-qty .qty-btn {
  width: 42px; background: var(--pf-surface); border: none;
  font-size: 20px; font-weight: 300; cursor: pointer; color: var(--pf-dark);
  transition: background var(--pf-transition);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.pf-product__atc-wrap .pf-qty .qty-btn:hover { background: #f1f5f9; }
.pf-product__atc-wrap .pf-qty input.qty {
  flex: 1; min-width: 0; text-align: center; border: none;
  border-left: 1.5px solid var(--pf-border); border-right: 1.5px solid var(--pf-border);
  font-size: 15px; font-weight: 700; outline: none; background: #fff;
  font-family: var(--pf-font);
  -moz-appearance: textfield;
}
.pf-product__atc-wrap .pf-qty input.qty::-webkit-inner-spin-button,
.pf-product__atc-wrap .pf-qty input.qty::-webkit-outer-spin-button { -webkit-appearance: none; }

/* Add to Cart Row — qty + ATC btn + wishlist all same 46px height */
.pf-atc-row,
.pf-cart-actions {
  display: flex; align-items: stretch; gap: 10px; margin-bottom: 6px;
}

.pf-product__atc-wrap .single_add_to_cart_button,
.pf-product__atc-wrap button[type="submit"] {
  flex: 1; height: 46px; padding: 0 20px;
  background: var(--pf-atc-bg, #111827) !important; color: var(--pf-atc-txt, #ffffff) !important;
  border: 1px solid var(--pf-atc-bdr); border-radius: var(--pf-atc-r, 8px);
  font-size: 12px; font-weight: 800; letter-spacing: 0.7px;
  cursor: pointer;
  transition: background var(--pf-transition), transform 0.18s ease, box-shadow 0.18s ease;
  text-transform: uppercase; white-space: nowrap;
  font-family: var(--pf-font);
  position: relative; overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.pf-product__atc-wrap .single_add_to_cart_button::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.05) 0%, transparent 100%);
  pointer-events: none;
}
.pf-product__atc-wrap .single_add_to_cart_button:hover {
  background: var(--pf-atc-h-bg) !important; color: var(--pf-atc-h-txt) !important; transform: translateY(-2px);
  box-shadow: 0 10px 30px rgba(0,0,0,0.25);
}
.pf-product__atc-wrap .single_add_to_cart_button:active {
  transform: translateY(0);
  box-shadow: none;
}
.pf-product__atc-wrap .single_add_to_cart_button.loading { opacity: 0.7; cursor: not-allowed; }

.pf-product__atc-wrap .variations th {
  font-size: 11px; font-weight: 800; color: var(--pf-dark);
  padding: 0 0 8px; text-align: left;
  text-transform: uppercase; letter-spacing: 0.6px;
}
/* FIX: reduced from 16px to 8px — less gap between swatches and buttons */
.pf-product__atc-wrap .variations td { padding: 0 0 8px; }
.pf-product__atc-wrap select {
  padding: 10px 14px; border: 1.5px solid var(--pf-border);
  border-radius: var(--pf-radius-sm); font-size: 14px; background: #fff;
  outline: none; min-width: 160px; cursor: pointer;
  transition: border-color var(--pf-transition);
  font-family: var(--pf-font);
}
.pf-product__atc-wrap select:focus { border-color: var(--pf-dark); }

/* ATC Error */
.pf-atc-error {
  font-size: 13px; color: var(--pf-accent); font-weight: 600;
  background: var(--pf-accent-light); border: 1px solid var(--pf-accent-border);
  padding: 10px 14px; border-radius: var(--pf-radius-sm);
  display: none; align-items: center; gap: 8px;
}
/* ── STICKY BAR ── */
.pf-product__sticky-bar {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 990;
  background: rgba(255,255,255,0.97); backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-top: 1px solid var(--pf-border);
  box-shadow: 0 -4px 32px rgba(0,0,0,0.08);
  transform: translateY(100%);
  transition: transform 0.38s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
.pf-product__sticky-bar.is-visible { transform: translateY(0); }
.pf-sticky-bar__inner {
  max-width: var(--container-width, 1400px); margin: 0 auto; padding: 12px 40px;
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
}
.pf-sticky-bar__info { display: flex; align-items: center; gap: 16px; flex: 1; min-width: 0; }
.pf-sticky-bar__img {
  width: 50px; height: 50px; border-radius: var(--pf-radius-sm); object-fit: cover;
  flex-shrink: 0; border: 1px solid var(--pf-border);
}
.pf-sticky-bar__info > div { display: flex; flex-direction: column; gap: 2px; }
.pf-sticky-bar__title {
  font-size: 15px; font-weight: 700; color: var(--pf-text); display: block;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  max-width: 360px; line-height: 1.3; font-family: var(--pf-font);
}
.pf-sticky-bar__price { font-size: 14px; font-weight: 800; color: var(--pf-accent); line-height: 1.2; }
.pf-sticky-bar__actions { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.pf-sticky-bar__qty {
  display: flex; align-items: center;
  border: 1.5px solid var(--pf-border); border-radius: var(--pf-radius-sm);
  overflow: hidden; height: 44px;
  transition: border-color var(--pf-transition);
}
.pf-sticky-bar__qty:focus-within { border-color: var(--pf-dark); }
.pf-sqty-btn {
  width: 36px; height: 100%; background: var(--pf-surface); border: none;
  font-size: 18px; cursor: pointer; transition: background var(--pf-transition);
  display: flex; align-items: center; justify-content: center; color: var(--pf-dark);
}
.pf-sqty-btn:hover { background: #f1f5f9; }
.pf-sqty-input {
  width: 44px; height: 100%; text-align: center; border: none;
  border-left: 1.5px solid var(--pf-border); border-right: 1.5px solid var(--pf-border);
  font-size: 14px; font-weight: 700; outline: none;
  font-family: var(--pf-font);
  -moz-appearance: textfield;
}
.pf-sqty-input::-webkit-inner-spin-button,
.pf-sqty-input::-webkit-outer-spin-button { -webkit-appearance: none; }

.pf-sticky-bar__btn {
  height: 44px; padding: 0 22px; border: none; border-radius: var(--pf-radius-sm);
  font-size: 12px; font-weight: 800; letter-spacing: 0.6px;
  text-transform: uppercase; cursor: pointer; transition: all var(--pf-transition);
  font-family: var(--pf-font);
}
.pf-sticky-bar__btn--cart { background: var(--pf-atc-bg) !important; color: var(--pf-atc-txt) !important; }
.pf-sticky-bar__btn--cart:hover {
  background: var(--pf-atc-h-bg, var(--pf-dark)); transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.2);
}
.pf-sticky-bar__btn--buy { background: var(--pf-accent); color: #fff; }
.pf-sticky-bar__btn--buy:hover {
  background: var(--pf-accent-dark); transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(229,57,53,0.3);
}

/* ── ACTION BUTTONS ── */
.pf-product__actions {
  display: flex; gap: 8px; flex-wrap: wrap;
  justify-content: center;
}
.pf-product__action-btn {
  display: flex; align-items: center; gap: 7px;
  padding: 9px 18px;
  background: #fff; border: 1.5px solid var(--pf-border);
  border-radius: 10px;
  font-size: 11px; font-weight: 700; color: #4a5568;
  cursor: pointer; letter-spacing: 0.5px;
  transition: all var(--pf-transition);
  box-shadow: var(--pf-shadow-sm);
  text-transform: uppercase;
  font-family: var(--pf-font);
}
.pf-product__action-btn svg { flex-shrink: 0; transition: color var(--pf-transition); }
.pf-product__action-btn:hover {
  background: var(--pf-dark); border-color: var(--pf-dark); color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.16);
}
.pf-product__action-btn:hover svg { color: #fff !important; stroke: #fff; }
.pf-product__action-btn.is-active {
  background: var(--pf-accent); border-color: var(--pf-accent); color: #fff;
}

/* ── DELIVERY CARDS ── */
.pf-product__delivery {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px;
  margin: 20px 0 !important;
}
.pf-product__delivery-item {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 8px; padding: 16px 10px;
  background: var(--pf-surface); border: 1px solid var(--pf-border);
  border-radius: var(--pf-radius-sm); text-align: center;
  transition: border-color var(--pf-transition), box-shadow var(--pf-transition), transform var(--pf-transition);
}
.pf-product__delivery-item:hover {
  border-color: var(--pf-dark); box-shadow: var(--pf-shadow);
  transform: translateY(-2px);
}
.pf-product__delivery-item svg { color: var(--pf-dark); flex-shrink: 0; }
.pf-product__delivery-item div { display: flex; flex-direction: column; gap: 2px; }
.pf-product__delivery-item strong {
  font-size: 11px; font-weight: 800; color: var(--pf-dark); display: block;
  font-family: var(--pf-font);
}
.pf-product__delivery-item span { font-size: 10px; color: var(--pf-muted); display: block; }

/* ── TAXONOMY ── */
.pf-product__taxonomy {
  display: flex; flex-direction: row; align-items: center;
  justify-content: center; gap: 24px;
  margin-top: 16px; font-size: 12px; color: var(--pf-muted);
}
.pf-product__sku,
.pf-product__cats {
  font-size: 12px; color: var(--pf-muted);
  display: flex; align-items: center; gap: 6px;
}
.pf-product__taxonomy strong,
.pf-product__taxonomy a {
  color: var(--pf-dark); font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.5px; font-size: 11px;
}
.pf-product__taxonomy a { text-decoration: none; }
.pf-product__taxonomy a:hover { color: var(--pf-accent); }

/* ── TABS ── */
.pf-product__tabs { margin-top: 64px; }
.pf-product__tabs .woocommerce-tabs ul.tabs {
  display: flex !important; gap: 0; border-bottom: 2px solid var(--pf-border);
  padding: 0; margin: 0 0 36px; list-style: none;
  background: transparent; overflow: visible;
}
.pf-product__tabs .woocommerce-tabs ul.tabs li { margin: 0; padding: 0; }
.pf-product__tabs .woocommerce-tabs ul.tabs li a {
  display: block; padding: 14px 28px;
  font-size: 12px; font-weight: 800; color: var(--pf-muted);
  border-bottom: 2.5px solid transparent; margin-bottom: -2px;
  letter-spacing: 0.6px; text-transform: uppercase;
  transition: color var(--pf-transition);
  font-family: var(--pf-font);
}
.pf-product__tabs .woocommerce-tabs ul.tabs li.active a {
  color: var(--pf-dark); border-bottom-color: var(--pf-accent);
}
.pf-product__tabs .woocommerce-tabs ul.tabs li a:hover { color: var(--pf-dark); }
.pf-product__tabs .woocommerce-tabs .panel {
  font-size: 15px; line-height: 1.8; color: #4a5568;
  max-width: 100% !important; width: 100% !important;
}

/* ── Description panel content typography ── */
.pf-product__tabs .woocommerce-tabs .panel h1,
.pf-product__tabs .woocommerce-tabs .panel h2,
.pf-product__tabs .woocommerce-tabs .panel h3,
.pf-product__tabs .woocommerce-tabs .panel h4 {
  font-size: 15px; font-weight: 800; color: var(--pf-dark);
  margin: 20px 0 8px; letter-spacing: -.2px; line-height: 1.3;
  font-family: var(--pf-font);
}
.pf-product__tabs .woocommerce-tabs .panel h2 { font-size: 17px; }
.pf-product__tabs .woocommerce-tabs .panel h1 { font-size: 19px; }
.pf-product__tabs .woocommerce-tabs .panel p {
  margin: 0 0 12px; color: #4a5568;
}
.pf-product__tabs .woocommerce-tabs .panel p:last-child { margin-bottom: 0; }
.pf-product__tabs .woocommerce-tabs .panel strong,
.pf-product__tabs .woocommerce-tabs .panel b {
  font-weight: 800; color: var(--pf-dark);
}

/* Lists — custom bullet with accent dot */
.pf-product__tabs .woocommerce-tabs .panel ul {
  list-style: none; padding: 0; margin: 8px 0 16px;
}
.pf-product__tabs .woocommerce-tabs .panel ul li {
  position: relative; padding: 5px 0 5px 20px;
  font-size: 14px; color: #4a5568; line-height: 1.6;
  border-bottom: 1px solid var(--pf-border);
}
.pf-product__tabs .woocommerce-tabs .panel ul li:last-child { border-bottom: none; }
.pf-product__tabs .woocommerce-tabs .panel ul li::before {
  content: '';
  position: absolute; left: 0; top: 50%; transform: translateY(-50%);
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--pf-accent); flex-shrink: 0;
}
.pf-product__tabs .woocommerce-tabs .panel ol {
  padding-left: 20px; margin: 8px 0 16px;
}
.pf-product__tabs .woocommerce-tabs .panel ol li {
  padding: 4px 0; font-size: 14px; color: #4a5568; line-height: 1.6;
}

/* ── RELATED PRODUCTS SLIDER ── */
.pf-product__related { margin-top: 80px; position: relative; z-index: 0; }
.pf-product__related h2 {
  font-size: 22px; font-weight: 900; text-transform: none;
  letter-spacing: -.4px; margin-bottom: 28px; color: var(--pf-dark);
  display: flex; align-items: center; justify-content: space-between;
  font-family: var(--pf-font); line-height: 1.2;
}
.pf-related-nav { display: flex; gap: 8px; }
.pf-related-nav-btn {
  width: 38px; height: 38px; border-radius: 50%;
  background: var(--pf-white); border: 1.5px solid var(--pf-border);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; color: var(--pf-dark);
  transition: all .2s ease; flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
}
.pf-related-nav-btn:hover { background: var(--pf-dark); color: #fff; border-color: var(--pf-dark); transform: scale(1.06); }
.pf-related-nav-btn:hover {
  background: var(--pf-dark); color: #fff; border-color: var(--pf-dark);
  transform: scale(1.08);
}
.pf-related-nav-btn:disabled { opacity: 0.3; cursor: default; transform: none; }

.pf-related-slider-wrap {
  overflow: hidden;
  position: relative;
  padding: 10px 0 14px;
}
/* Fade hint removed — slider shows all cards fully */
.pf-related-slider {
  display: flex !important; gap: 0 !important;
  transition: transform 0.46s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: transform;
  flex-wrap: nowrap !important;
  margin: 0 !important; padding: 0 !important;
  width: 100% !important;
}
.pf-related-slider > li.product {
  flex: 0 0 25% !important;
  max-width: 25% !important;
  margin: 0 !important; padding: 0 8px !important;
  clear: none !important; list-style: none !important; min-width: 0 !important;
  box-sizing: border-box !important;
}
/* Desktop related columns — Redux controlled */
.pf-related-desktop-cols-2 > li.product  { flex: 0 0 50% !important; max-width: 50% !important; }
.pf-related-desktop-cols-3 > li.product  { flex: 0 0 33.33% !important; max-width: 33.33% !important; }
.pf-related-desktop-cols-4 > li.product  { flex: 0 0 25% !important; max-width: 25% !important; }
@media (max-width: 1100px) {
  .pf-related-slider > li.product {
    flex: 0 0 calc(33.33% - 11px) !important;
    max-width: calc(33.33% - 11px) !important;
  }
}

/* ── WISHLIST (single product page overrides) ── */
/* .pf-wishlist-btn is the legacy class; .pf-btn-wishlist is the new one — both kept in sync */
.pf-wishlist-btn,
.pf-btn-wishlist {
  height: 46px !important;
  width: 52px !important;
  border-radius: 8px !important;
  background: #ffffff !important;
  border: 1.5px solid #ef4444 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
  cursor: pointer !important;
  padding: 0 !important;
  transition: all 0.22s ease !important;
}
.pf-wishlist-btn svg,
.pf-btn-wishlist svg {
  width: 20px !important;
  height: 20px !important;
  fill: transparent !important;
  stroke: #ef4444 !important;
  stroke-width: 2 !important;
}
.pf-wishlist-btn:hover,
.pf-btn-wishlist:hover {
  background: #fef2f2 !important;
  transform: scale(1.06);
}
.pf-wishlist-btn.added,
.pf-wishlist-btn.in-wishlist,
.pf-wishlist-btn.active,
.pf-btn-wishlist.added,
.pf-btn-wishlist.in-wishlist,
.pf-btn-wishlist.active {
  background: #fef2f2 !important;
  border-color: #ef4444 !important;
}
.pf-wishlist-btn.added svg,
.pf-wishlist-btn.in-wishlist svg,
.pf-wishlist-btn.active svg,
.pf-btn-wishlist.added svg,
.pf-btn-wishlist.in-wishlist svg,
.pf-btn-wishlist.active svg {
  fill: #ef4444 !important;
  stroke: #ef4444 !important;
}

/* ── WC REVIEWS ── */
#reviews, #reviews #comments, .woocommerce-Reviews {
  width: 100% !important; max-width: 100% !important;
}
.woocommerce-noreviews, p.woocommerce-noreviews {
  width: 100% !important; max-width: 100% !important; box-sizing: border-box !important;
}
.pf-btn-write-review {
  background: var(--pf-pri-bg, var(--pf-dark)) !important; color: var(--pf-pri-txt, #fff) !important;
  border: none !important; border-radius: var(--pf-radius-sm) !important;
  padding: 12px 28px !important; font-size: 12px !important; font-weight: 800 !important;
  text-transform: uppercase !important; letter-spacing: 0.6px !important;
  cursor: pointer !important; transition: all var(--pf-transition) !important;
  display: inline-flex !important; align-items: center !important;
  text-decoration: none !important; margin-top: 12px !important;
  font-family: var(--pf-font) !important;
}
.pf-btn-write-review:hover {
  background: var(--pf-pri-h-bg, var(--pf-dark)) !important; transform: translateY(-2px) !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.15) !important;
}

/* ── PRICING OVERRIDE — enforces red sale, half-size slashed, consistent everywhere ── */
.pf-product__price-block, .pf-m-price-row {
  display: flex !important; align-items: center !important;
  flex-wrap: wrap !important; gap: 10px !important;
  padding: 16px 0 !important; margin-bottom: 16px !important;
  border: none !important;
}
.pf-product__price-block .price,
.pf-m-price-row .price {
  display: flex !important; align-items: baseline !important;
  gap: 8px !important; margin: 0 !important; padding: 0 !important;
}
/* Sale price (ins) — RED, 24px */
.pf-product__price-block .price ins .amount,
.pf-m-price-row .price ins .amount {
  font-size: 24px !important; font-weight: 900 !important;
  color: var(--pf-accent, #E53935) !important;
  text-decoration: none !important; line-height: 1 !important;
}
/* Regular non-sale price (no ins/del) — dark, 24px */
.pf-product__price-block .price > .woocommerce-Price-amount.amount,
.pf-m-price-row .price > .woocommerce-Price-amount.amount {
  font-size: 24px !important; font-weight: 900 !important;
  color: var(--pf-text, #1a1a2e) !important;
  line-height: 1 !important;
}
/* Slashed original price (del) — grey, ~half the sale price size */
.pf-product__price-block .price del .amount,
.pf-m-price-row .price del .amount {
  font-size: 13px !important; font-weight: 500 !important;
  color: #94a3b8 !important; text-decoration: line-through !important;
  text-decoration-color: #94a3b8 !important;
}

/* ================================================================
   MOBILE PRODUCT PAGE — COMPLETELY REDESIGNED
================================================================ */
.pf-product--mobile {
  background: var(--pf-page-bg, #fff); min-height: 100vh;
  padding-bottom: 90px; padding-top: 0 !important;
}

@media (max-width: 768px) {
  /* App layout — hide site header, classic layout keeps it */
  .single-product body:not(.pf-classic-layout) #site-header,
  .pf-mobile-layout--app #site-header,
  .pf-product--mobile.pf-mobile-layout--app ~ #site-header,
  body.single-product:has(.pf-mobile-layout--app) #site-header { display: none !important; }
  body.single-product:has(.pf-mobile-layout--app) .perfecto-mobile-topbar,
  body.single-product:has(.pf-mobile-layout--app) .pf-topbar,
  body.single-product:has(.pf-mobile-layout--app) .desktop-topbar { display: none !important; }
  /* Classic layout — show site header, hide app chrome only */
  body.single-product:has(.pf-mobile-layout--classic) #site-header { display: block !important; }
}

/* ── MOBILE HEADER ── */
.pf-product-mobile-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 200;
  background: transparent !important;
  border-bottom: 1px solid transparent !important;
  box-shadow: none !important;
  transition: background 0.35s cubic-bezier(0.4,0,0.2,1),
              border-color 0.35s ease,
              box-shadow 0.35s ease;
}
.pf-product-mobile-header.is-scrolled {
  background: rgba(255,255,255,0.97) !important;
  border-bottom: 1px solid var(--pf-border) !important;
  box-shadow: 0 1px 16px rgba(0,0,0,0.06) !important;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   APP PRODUCT HEADER — reference match
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.pf-product-mobile-header .pf-header-top {
  display: flex; align-items: center; gap: 8px;
  padding: 0 14px; height: 56px;
}
.pf-product-mobile-header .pf-header-actions {
  display: flex; align-items: center; gap: 7px; flex-shrink: 0; margin-left: auto;
}
.pf-product-mobile-header .pf-header-title {
  flex: 1; min-width: 0; padding: 0 4px;
  opacity: 0; transition: opacity 0.22s ease; pointer-events: none;
}
.pf-product-mobile-header.is-scrolled .pf-header-title {
  opacity: 1; pointer-events: auto;
}
.pf-header-title__name {
  display: block; font-size: 14px; font-weight: 700;
  color: var(--pf-dark, #111);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1.2;
}
.pf-header-title__cat {
  display: block; font-size: 10px; font-weight: 600; letter-spacing: .6px;
  color: var(--pf-accent, #e53935); margin-top: 1px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
/* Base icon button */
.pf-app-icon-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: 50%; flex-shrink: 0;
  cursor: pointer; text-decoration: none; position: relative;
  transition: transform 0.15s ease; -webkit-tap-highlight-color: transparent;
}
.pf-app-icon-btn:active { transform: scale(0.91); }
.pf-app-icon-btn svg { display: block; }
/* Transparent state — dark frosted pill, same as rating/zoom buttons */
.pf-product-mobile-header:not(.is-scrolled) .pf-back-btn,
.pf-product-mobile-header .pf-transparent-only {
  background: rgba(0,0,0,0.42) !important;
  border: 1px solid rgba(255,255,255,0.12) !important;
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 2px 10px rgba(0,0,0,0.22);
}
.pf-product-mobile-header:not(.is-scrolled) .pf-back-btn svg,
.pf-product-mobile-header .pf-transparent-only svg { stroke: #fff !important; fill: none !important; }
/* Wishlisted stays red */
.pf-product-mobile-header .pf-m-header-wishlist-btn.is-wishlisted svg {
  fill: #ff3b3b !important; stroke: #ff3b3b !important;
}
/* Hide transparent-only on scroll */
.pf-product-mobile-header.is-scrolled .pf-transparent-only { display: none !important; }
/* Extra guard: scrolled-only buttons are invisible on transparent state */
.pf-product-mobile-header:not(.is-scrolled) .pf-scrolled-only {
  display: none !important; visibility: hidden !important;
}
/* Scrolled state — clean white circles with border (back + search + wishlist-link + cart) */
.pf-product-mobile-header.is-scrolled .pf-back-btn,
.pf-product-mobile-header.is-scrolled .pf-app-icon-btn.pf-scrolled-only {
  background: #fff;
  border: 1px solid #e5e7eb !important;
  backdrop-filter: none; -webkit-backdrop-filter: none;
  box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}
.pf-product-mobile-header.is-scrolled .pf-back-btn svg,
.pf-product-mobile-header.is-scrolled .pf-app-icon-btn.pf-scrolled-only svg {
  stroke: var(--pf-dark, #111);
}
/* Hide scrolled-only on transparent */
.pf-product-mobile-header:not(.is-scrolled) .pf-scrolled-only { display: none !important; }
/* Count badge */
.pf-product-mobile-header .pf-header-count {
  position: absolute; top: -3px; right: -3px;
  min-width: 16px; height: 16px; border-radius: 99px; padding: 0 3px;
  background: var(--pf-accent, #e53935); color: #fff;
  font-size: 9px; font-weight: 800; line-height: 16px; text-align: center;
  display: none; box-sizing: border-box; border: 1.5px solid #fff;
}
.pf-product-mobile-header .has-items { display: block; }
/* Hide old single-toggle on scroll */
.pf-product-mobile-header.is-scrolled .pf-m-header-wishlist-btn,
.pf-product-mobile-header.is-scrolled .pf-m-share-btn { display: none !important; }




/* Wishlist toggle button base */
.pf-m-header-wishlist-btn {
  width: 36px; height: 36px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; border: none; background: transparent;
  -webkit-tap-highlight-color: transparent;
  transition: all var(--pf-transition); flex-shrink: 0;
}
.pf-m-header-wishlist-btn svg { width: 20px; height: 20px; transition: all 0.3s ease; }
/* Base wishlisted state */
.pf-m-header-wishlist-btn.is-wishlisted svg {
  fill: #ff3b3b !important; stroke: #ff3b3b !important;
}
/* Override the transparent-header white-stroke rule when wishlisted */
.pf-product-mobile-header:not(.is-scrolled) .pf-m-header-wishlist-btn.is-wishlisted svg {
  fill: #ff3b3b !important; stroke: #ff3b3b !important;
}




/* ── Premium Flat Circle Buttons (Single Product Scrolled Header) ── */
.pf-product-mobile-header .pf-back-btn,
.pf-product-mobile-header .mobile-icon,
.pf-product-mobile-header .pf-header-icon {
  position: relative; 
  width: 36px; height: 36px; flex-shrink: 0;
  background: #ffffff; 
  border: 1px solid #e5e7eb;
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; color: var(--pf-dark);
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  text-decoration: none; -webkit-tap-highlight-color: transparent;
}

/* Premium Tap/Active State */
.pf-product-mobile-header .pf-back-btn:active,
.pf-product-mobile-header .mobile-icon:active,
.pf-product-mobile-header .pf-header-icon:active {
  transform: scale(0.92);
  background: #f9fafb;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  border-color: #d1d5db;
}

/* Crisp SVG Icons */
.pf-product-mobile-header .pf-back-btn svg,
.pf-product-mobile-header .mobile-icon svg,
.pf-product-mobile-header .pf-header-icon svg { 
  width: 18px; height: 18px; 
  stroke: #111827; stroke-width: 2; fill: none; 
}
/* Remove separator — replaced by circle buttons */
.pf-product-mobile-header .header-separator { display: none; }
.pf-product-mobile-header .pf-header-count {
  position: absolute; top: 2px; right: 2px;
  min-width: 16px; height: 16px;
  background: #e8e8e8; color: #666;
  font-size: 9px; font-weight: 800; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  padding: 0 3px; line-height: 1; transition: all var(--pf-transition);
}
.pf-product-mobile-header .pf-header-count.has-items,
.pf-header-count.has-items { background: var(--pf-accent) !important; color: #fff !important; }

/* ── MOBILE GALLERY ── */
.pf-m-gallery {
  width: 100%; aspect-ratio: 3/4; background: #f8f8f8;
  overflow: hidden; user-select: none; position: relative;
  touch-action: pan-y;
  margin-top: -52px !important;
  z-index: 1 !important;
}
.pf-m-gallery__track {
  display: flex; height: 100%; flex-wrap: nowrap;
  transition: transform 0.42s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
}
.pf-m-gallery__slide {
  flex: 0 0 100%; width: 100%; height: 100%;
  overflow: hidden; position: relative;
}
.pf-m-gallery__slide img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  display: block;
  /* Fix blurry images on mobile — prevent subpixel rendering issues */
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  image-rendering: -webkit-optimize-contrast;
}

.pf-m-gallery__dots {
  position: absolute; bottom: 16px; left: 50%;
  transform: translateX(-50%); display: flex; gap: 5px; z-index: 3;
}
.pf-m-dot {
  width: 5px; height: 5px; border-radius: 50%;
  background: rgba(0,0,0,0.18); cursor: pointer;
  transition: all 0.28s cubic-bezier(0.4,0,0.2,1);
  border: none; padding: 0;
}
.pf-m-dot.is-active {
  background: var(--pf-accent); width: 20px; border-radius: 3px;
}

.pf-m-gallery__badge {
  position: absolute; top: 78px; left: 14px;
  padding: 4px 12px; background: var(--pf-accent); color: #fff;
  font-size: 10px; font-weight: 800; border-radius: 5px; z-index: 10;
  letter-spacing: 0.8px; text-transform: uppercase; pointer-events: none;
  font-family: var(--pf-font);
}

.pf-m-gallery__rating {
  position: absolute; bottom: 16px; left: 14px;
  display: flex; align-items: center; gap: 4px;
  padding: 6px 12px; background: rgba(0,0,0,0.42);
  border: none; border-radius: 20px; color: #fff;
  font-size: 12px; font-weight: 700; cursor: pointer;
  z-index: 3; font-family: var(--pf-font);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
}
.pf-m-gallery__rating span { color: #fff; }
.pf-m-gallery__rating svg { flex-shrink: 0; }


/* ── MOBILE GALLERY ZOOM BUTTON ── */
.pf-m-gallery__zoom {
  position: absolute; bottom: 16px; right: 14px; z-index: 4;
  width: 36px; height: 36px;
  background: rgba(0,0,0,0.42);
  border: none; border-radius: 50%; color: #fff;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: transform 0.15s ease, background 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}
.pf-m-gallery__zoom:active { transform: scale(0.92); background: #fff; }
.pf-m-gallery__zoom svg { width: 16px; height: 16px; stroke: #111; }

/* ── MOBILE CONTENT ── */
.pf-m-content {
  padding: 20px 16px; display: flex; flex-direction: column; gap: 0;
}

.pf-m-cat {
  font-size: 10px; font-weight: 800; letter-spacing: 2px;
  color: var(--pf-accent); text-transform: uppercase; display: block; margin-bottom: 6px;
}
.pf-m-title {
  font-size: 22px; font-weight: 800; line-height: 1.22;
  color: var(--pf-text); margin: 0 0 2px; letter-spacing: -0.4px;
  font-family: var(--pf-font);
}

/* Price Row */
.pf-m-price-row {
  display: flex !important; align-items: baseline; gap: 10px; flex-wrap: wrap;
  padding: 10px 0 14px !important; margin-bottom: 0 !important;
  border-bottom: 1px solid var(--pf-border);
}
.pf-m-price { font-size: 24px; font-weight: 900; color: var(--pf-text); letter-spacing: -0.4px; }
.pf-m-price .price {
  font-size: inherit; font-weight: inherit;
  display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap;
}
.pf-m-price del { text-decoration: none; }
.pf-m-price del .amount {
  font-size: 13px; font-weight: 500; color: #94a3b8;
  text-decoration: line-through; text-decoration-color: #94a3b8;
}
.pf-m-price ins { text-decoration: none; }
.pf-m-price ins .amount { font-size: 24px; font-weight: 900; color: var(--pf-accent, #E53935); }
.pf-m-save {
  font-size: 11px; font-weight: 800; color: var(--pf-accent);
  background: var(--pf-accent-light); border: 1px solid var(--pf-accent-border);
  padding: 4px 10px; border-radius: 6px; letter-spacing: 0.4px;
  display: inline-flex; align-items: center;
}

/* Mobile Stock */
.pf-m-stock {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 12px; font-weight: 600;
  padding: 7px 14px; border-radius: 30px;
  margin: 12px 0 0;
  width: max-content;
}
.pf-m-stock.in-stock { color: #065f46; background: #ecfdf5; border: 1px solid #a7f3d0; }
.pf-m-stock.out-stock { color: #991b1b; background: #fff1f2; border: 1px solid #fecdd3; }
.pf-m-stock__warn { color: var(--pf-accent); font-weight: 500; font-size: 12px; margin-left: 2px; }

/* ── SHORT DESC ── */
.pf-app-short-desc {
  font-size: 14px; line-height: 1.72; color: #4a5568;
  margin: 16px 0 0; padding-bottom: 4px;
}
.pf-app-short-desc p { margin-bottom: 10px; }
.pf-app-short-desc p:last-child { margin-bottom: 0; }

/* ── URGENCY GRID ── */
.pf-app-urgency {
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
  margin: 16px 0;
}
.pf-urgency-card {
  display: flex; align-items: center; gap: 12px;
  padding: 14px 14px;
  background: var(--pf-surface); border: 1px solid var(--pf-border);
  border-radius: var(--pf-radius-sm);
}
.pf-urgency-icon-wrap {
  width: 36px; height: 36px;
  background: #fff; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px; flex-shrink: 0;
  border: 1px solid var(--pf-border);
}
.pf-pulse-wrap { background: var(--pf-page-bg, #fff) !important; }
.pf-urgency-text { display: flex; flex-direction: column; gap: 2px; }
.pf-urgency-text strong {
  font-size: 13px; font-weight: 800; color: var(--pf-text); line-height: 1.1;
  font-family: var(--pf-font);
}
.pf-urgency-text span { font-size: 11px; color: var(--pf-muted); line-height: 1.1; }

/* Mobile Viewer Pulse */
.pf-product--mobile .pf-viewer-pulse {
  width: 10px; height: 10px;
  background: var(--pf-accent); border-radius: 50%;
  animation: pfPulse 1.8s ease-in-out infinite;
}

/* ── LOGISTICS (DELIVERY & RETURNS) ── */
.pf-app-logistics {
  display: flex; flex-direction: column; gap: 8px; margin: 0 0 20px;
}
.pf-logistic-row {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 16px;
  background: var(--pf-surface); border: 1px solid var(--pf-border);
  border-radius: var(--pf-radius-sm);
}
.pf-logistic-icon {
  width: 40px; height: 40px;
  background: #fff; border: 1px solid var(--pf-border);
  border-radius: 10px; display: flex; align-items: center; justify-content: center;
  color: var(--pf-dark); flex-shrink: 0;
}
.pf-logistic-info { display: flex; flex-direction: column; gap: 3px; }
.pf-logistic-info strong {
  font-size: 13.5px; font-weight: 800; color: var(--pf-text); line-height: 1.2;
  font-family: var(--pf-font);
}
.pf-logistic-info span { font-size: 12px; color: var(--pf-muted); line-height: 1.2; }

/* ── TRUST BADGES — 2x2 GRID, ONLY ONCE ── */
.pf-m-trust {
  display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
  margin: 0 0 20px;
}
.pf-m-trust__item {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; gap: 8px; padding: 18px 12px;
  background: var(--pf-surface); border: 1px solid var(--pf-border);
  border-radius: var(--pf-radius-sm); text-align: center;
}
.pf-m-trust__item svg { color: var(--pf-dark); flex-shrink: 0; }
.pf-m-trust__item strong {
  display: block; font-size: 12px; font-weight: 800; color: var(--pf-dark);
  font-family: var(--pf-font);
}
.pf-m-trust__item span {
  display: block; font-size: 10.5px; font-weight: 400; color: var(--pf-muted);
  margin-top: 1px;
}

/* ── APP ACCORDIONS ── */
.pf-app-accordions {
  display: flex; flex-direction: column; gap: 8px;
  margin-top: 20px; margin-bottom: 20px;
}
.pf-m-accordion {
  border: 1px solid var(--pf-border); border-radius: var(--pf-radius-sm);
  overflow: hidden; background: #fff;
}
.pf-m-accordion__header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 18px; background: none; border: none; width: 100%;
  text-align: left; cursor: pointer;
  font-size: 14px; font-weight: 700; color: var(--pf-dark);
  letter-spacing: 0.1px; -webkit-tap-highlight-color: transparent;
  font-family: var(--pf-font);
}
.pf-m-accordion__icon {
  flex-shrink: 0; transition: transform 0.35s cubic-bezier(0.4,0,0.2,1);
  color: var(--pf-muted);
}
.pf-m-accordion.is-open .pf-m-accordion__icon { transform: rotate(180deg); }
.pf-m-accordion {
  /* grid-template-rows trick: smooth, no jitter, no max-height hack */
  display: grid;
  grid-template-rows: auto 0fr;
  transition: grid-template-rows 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
.pf-m-accordion.is-open {
  grid-template-rows: auto 1fr;
}
/* Header must NOT be a grid item itself */
.pf-m-accordion__header { display: flex; }
.pf-m-accordion__body {
  overflow: hidden;
  font-size: 14px;
  line-height: 1.75;
  color: #4a5568;
  padding: 0 18px;
  min-height: 0; /* required for 0fr to work */
  transition: padding 0.35s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  opacity: 0;
}
.pf-m-accordion.is-open .pf-m-accordion__body {
  padding: 14px 18px 18px;
  opacity: 1;
}
.pf-m-accordion__count {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 20px; height: 20px; padding: 0 6px;
  background: #f1f5f9; border-radius: 20px;
  font-size: 11px; font-weight: 700; color: var(--pf-muted); margin-left: 8px;
}

/* Attributes table — mobile accordion + tabpanel: same card style as desktop */
.pf-m-accordion__body table.woocommerce-product-attributes,
.pf-m-tabpanel table.woocommerce-product-attributes {
  width: 100%; border-collapse: collapse; margin: 0;
  border: 1.5px solid var(--pf-border);
  border-radius: 8px;
  overflow: hidden;
  display: table !important;
}
/* Force WC grid overrides back to table cells on mobile too */
.pf-m-accordion__body tr.woocommerce-product-attributes-item,
.pf-m-tabpanel tr.woocommerce-product-attributes-item {
  display: table-row !important;
}
.pf-m-accordion__body th.woocommerce-product-attributes-item__label,
.pf-m-accordion__body td.woocommerce-product-attributes-item__value,
.pf-m-tabpanel th.woocommerce-product-attributes-item__label,
.pf-m-tabpanel td.woocommerce-product-attributes-item__value {
  display: table-cell !important;
}
.pf-m-accordion__body table th,
.pf-m-tabpanel table th {
  text-align: left;
  padding: 10px 14px;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: var(--pf-dark);
  background: var(--pf-surface, #f8f9fb);
  border-bottom: 1px solid var(--pf-border);
  border-right: 1.5px solid var(--pf-border);
  width: 30%;
  vertical-align: middle;
  font-family: var(--pf-font);
}
.pf-m-accordion__body table td,
.pf-m-tabpanel table td {
  padding: 10px 14px;
  font-size: 13px;
  font-weight: 500;
  color: #4b5563;
  background: var(--pf-white);
  border-bottom: 1px solid var(--pf-border);
  vertical-align: middle;
}
.pf-m-accordion__body table tr:last-child th,
.pf-m-accordion__body table tr:last-child td,
.pf-m-tabpanel table tr:last-child th,
.pf-m-tabpanel table tr:last-child td {
  border-bottom: none;
}
.pf-m-accordion__body table p,
.pf-m-tabpanel table p { margin: 0; }

/* ── MOBILE TABS MODE ── */
.pf-m-tabs {
  display: flex; gap: 0; overflow-x: auto; scrollbar-width: none;
  border-bottom: 2px solid var(--pf-border);
  margin: 0 -16px 0; padding: 0 16px;
  -webkit-overflow-scrolling: touch;
}
.pf-m-tabs::-webkit-scrollbar { display: none; }

/* Alignment modifiers — match desktop pf-tabs-align-- */
.pf-m-tabs--center { justify-content: center; }
.pf-m-tabs--right  { justify-content: flex-end; }
.pf-m-tabs--left   { justify-content: flex-start; }

.pf-m-tab {
  flex-shrink: 0;
  padding: 14px 20px;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: var(--pf-muted);
  background: none; border: none;
  border-bottom: 2.5px solid transparent;
  margin-bottom: -2px;
  cursor: pointer;
  transition: color 0.18s, border-color 0.18s;
  display: flex; align-items: center; gap: 6px;
  font-family: var(--pf-font);
  white-space: nowrap;
  line-height: 1;
}
.pf-m-tab.is-active {
  color: var(--pf-dark);
  border-bottom-color: var(--pf-accent);
}
.pf-m-tab:hover { color: var(--pf-dark); }
.pf-m-tab__count {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 18px; height: 18px; padding: 0 5px;
  background: var(--pf-accent); color: #fff;
  border-radius: 20px; font-size: 10px; font-weight: 800;
}
.pf-m-tabpanel {
  display: none; padding: 16px 0;
  font-size: 13.5px; line-height: 1.72; color: #374151;
}
.pf-m-tabpanel.is-active { display: block; }

/* ── READ MORE (both tabs + accordion) ── */
.pf-m-accordion__body--readmore,
.pf-m-tabpanel--readmore {
  position: relative;
  max-height: 120px;
  overflow: hidden;
  transition: max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}
.pf-m-accordion__body--readmore::after,
.pf-m-tabpanel--readmore::after {
  content: '';
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 72px;
  background: linear-gradient(to bottom, transparent, var(--pf-white, #fff));
  pointer-events: none;
  transition: opacity 0.4s ease;
}
.pf-m-accordion__body--readmore.is-expanded,
.pf-m-tabpanel--readmore.is-expanded {
  max-height: 4000px;
  transition: max-height 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}
.pf-m-accordion__body--readmore.is-expanded::after,
.pf-m-tabpanel--readmore.is-expanded::after { opacity: 0; }
.pf-m-readmore-btn {
  display: flex; align-items: center; gap: 5px;
  font-size: 12px; font-weight: 700; color: var(--pf-accent);
  background: none; border: none; cursor: pointer;
  padding: 10px 0 0; letter-spacing: 0.3px;
  font-family: var(--pf-font); text-transform: uppercase;
}
.pf-m-readmore-btn svg { transition: transform 0.25s; }
.pf-m-readmore-btn[aria-expanded="true"] svg { transform: rotate(180deg); }
.pf-m-variations { display: block; margin: 12px 0; }
.pf-m-variations .variations { width: 100%; }
.pf-m-variations .variations th {
  font-size: 11px; font-weight: 800; color: var(--pf-dark); padding: 0 0 8px;
  text-align: left; text-transform: uppercase; letter-spacing: 0.6px; display: block;
}
.pf-m-variations .variations td { padding: 0 0 8px; display: block; }
.pf-m-variations .woocommerce-variation-add-to-cart { display: none; }

/* ── MOBILE ERROR ── */
.pf-m-atc-error {
  font-size: 13px; color: var(--pf-accent); font-weight: 600;
  background: var(--pf-accent-light); border: 1px solid var(--pf-accent-border);
  padding: 10px 14px; border-radius: var(--pf-radius-sm);
  display: none; align-items: center; gap: 8px;
  margin: 8px 0;
}

/* ── RELATED MOBILE ── */
.pf-m-related { margin-top: 8px; margin-bottom: 16px; }
.pf-m-related__title {
  font-size: 13px; font-weight: 800; letter-spacing: 1.2px;
  text-transform: uppercase; color: var(--pf-dark); margin: 0 0 14px;
  font-family: var(--pf-font);
}
.pf-m-related-wrap {
  overflow: visible;
}
/* Default 2-column grid — no horizontal scroll */
.pf-m-related-wrap .products {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  list-style: none; padding: 0; margin: 0;
}
/* 1-column override (set via Redux) */
.pf-m-related-wrap .products.pf-m-related-cols-1 {
  grid-template-columns: 1fr;
}
.pf-m-related-wrap .products > li.product {
  width: 100% !important; flex: none !important;
  list-style: none; margin: 0 !important; padding: 0 !important;
}

/* ── Mobile related cards: rounded card with shadow ───────────────────────── */
.pf-m-related-wrap .pf-product-card {
  border-radius: 12px !important;
  box-shadow: 0 3px 12px rgba(0,0,0,0.10) !important;
  border: 1px solid #f0f0f0 !important;
  overflow: hidden !important;
  background: var(--pf-surface, #fff) !important;
}
.pf-m-related-wrap .pf-product-card .card-image {
  border-radius: 12px 12px 0 0 !important;
  aspect-ratio: 1 / 1;
  overflow: hidden;
}
.pf-m-related-wrap .pf-product-card .card-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  position: relative !important;
}
.pf-m-related-wrap .pf-product-card .card-content {
  padding: 8px 10px 10px !important;
  text-align: left !important;
  align-items: flex-start !important;
}
.pf-m-related-wrap .pf-product-card .card-title {
  font-size: 12px !important;
  line-height: 1.3 !important;
  -webkit-line-clamp: 2;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ================================================================
   MOBILE STICKY BAR + BOTTOM SHEET — PREMIUM
================================================================ */
.pf-m-sticky {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 9990 !important;
  background: rgba(255,255,255,0.98); backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border-top: 1px solid var(--pf-border);
  box-shadow: 0 -8px 40px rgba(0,0,0,0.1);
  padding: 8px 16px;
  padding-bottom: max(8px, env(safe-area-inset-bottom));
  display: flex !important; gap: 10px !important;
  align-items: center !important;
  /* Height: 64px content + safe-area — matches bottom-bar exactly */
  min-height: 64px;
}
@media (min-width: 769px) {
  .pf-m-sticky, .pf-m-bottom-sheet, .pf-m-sheet-overlay { display: none !important; }
}

.pf-m-sticky__actions {
  display: flex !important; width: 100% !important; gap: 10px !important;
}

.pf-m-sticky__btn {
  flex: 1 1 50% !important; height: 46px !important;
  border: none !important; border-radius: var(--pf-radius-sm) !important;
  font-size: 13px !important; font-weight: 800 !important;
  text-transform: uppercase !important; cursor: pointer;
  transition: transform 0.18s cubic-bezier(.4,0,.2,1) !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  min-width: 0 !important; color: #fff !important;
  letter-spacing: 0.5px !important;
  font-family: var(--pf-font) !important;
  position: relative; overflow: hidden;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
.pf-m-sticky__btn:active { transform: scale(0.97) !important; }
.pf-m-sticky__btn--cart { background: var(--pf-atc-bg, var(--pf-dark)) !important; color: var(--pf-atc-txt, #fff) !important; }
.pf-m-sticky__btn--buy  { background: var(--pf-accent) !important; }

/* ── Sheet Overlay ── */
.pf-m-sheet-overlay {
  position: fixed; inset: 0; z-index: 99997;
  background: rgba(0,0,0,0.55); backdrop-filter: blur(6px);
  opacity: 0; visibility: hidden;
  transition: opacity 0.35s ease, visibility 0.35s ease;
}
.pf-m-sheet-overlay.is-active { opacity: 1; visibility: visible; }

/* ── BOTTOM SHEET ── */
.pf-m-bottom-sheet {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 99998;
  background: #fff; border-radius: 28px 28px 0 0;
  transform: translateY(100%);
  transition: transform 0.44s cubic-bezier(0.16, 1, 0.3, 1);
  max-height: 88vh;
  display: flex;
  flex-direction: column;
  /* NO padding-bottom — action buttons row handles its own spacing */
}
.pf-m-bottom-sheet.is-active { transform: translateY(0); }

/* Sheet Header */
.pf-m-sheet-header {
  display: flex; justify-content: flex-end; align-items: center;
  padding: 14px 20px 8px;
  position: relative; flex-shrink: 0;
  border-bottom: 1px solid var(--pf-border);
}
.pf-m-sheet-drag-handle {
  position: absolute; left: 50%; top: 10px; transform: translateX(-50%);
  width: 36px; height: 4px; background: var(--pf-border); border-radius: 4px;
}
.pf-m-sheet-close {
  width: 32px; height: 32px;
  background: var(--pf-surface); border: 1px solid var(--pf-border);
  border-radius: 50%; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  color: var(--pf-muted);
  transition: all var(--pf-transition);
}
.pf-m-sheet-close:hover { background: #f1f5f9; color: var(--pf-dark); }

.pf-m-sheet-title {
  font-size: 16px; font-weight: 800; color: var(--pf-dark);
  margin: 0; position: absolute; left: 20px;
  font-family: var(--pf-font);
}

.pf-m-sheet-content {
  overflow-y: auto; scrollbar-width: none;
  padding: 20px 20px 0;
  flex: 1;
}
.pf-m-sheet-content::-webkit-scrollbar { display: none; }

/* ── Sheet product summary ── */
.pf-sheet-product-summary {
  display: flex; align-items: center; gap: 14px;
  padding-bottom: 18px; margin-bottom: 18px;
  border-bottom: 1px solid var(--pf-border);
}
.pf-sheet-product-img {
  width: 60px; height: 60px; border-radius: var(--pf-radius-sm);
  object-fit: cover; border: 1px solid var(--pf-border); flex-shrink: 0;
}
.pf-sheet-product-info { flex: 1; min-width: 0; }
.pf-sheet-product-name {
  font-size: 14px; font-weight: 700; color: var(--pf-dark);
  line-height: 1.3; margin-bottom: 4px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  font-family: var(--pf-font);
}
.pf-sheet-product-price {
  font-size: 18px; font-weight: 900; color: var(--pf-dark);
  font-family: var(--pf-font);
}

/* ── Variations inside sheet ── */
.pf-m-bottom-sheet table.variations {
  width: 100% !important; border: none !important; border-collapse: collapse;
}
.pf-m-bottom-sheet table.variations th,
.pf-m-bottom-sheet table.variations td {
  display: block !important; width: 100% !important;
  text-align: left !important; padding: 0 !important; border: none !important;
}
.pf-m-bottom-sheet table.variations th {
  font-size: 11px !important; color: var(--pf-muted) !important;
  text-transform: uppercase !important; letter-spacing: 0.7px !important;
  padding-top: 16px !important; font-weight: 800 !important;
  font-family: var(--pf-font) !important;
  display: block !important;
}
.pf-m-bottom-sheet table.variations td.value {
  margin-bottom: 4px !important; padding-top: 10px !important;
  display: block !important;
}
.pf-m-bottom-sheet table.variations select {
  width: 100%; padding: 12px 16px;
  border: 1.5px solid var(--pf-border); border-radius: var(--pf-radius-sm);
  font-size: 14px; font-weight: 600; background: #fff;
  outline: none; cursor: pointer;
  transition: border-color var(--pf-transition);
  font-family: var(--pf-font); color: var(--pf-dark);
}
.pf-m-bottom-sheet table.variations select:focus { border-color: var(--pf-dark); }

/* ── Qty inside sheet ── */
.pf-m-bottom-sheet .quantity,
.pf-m-bottom-sheet .pf-m-sheet-qty {
  display: flex !important; align-items: center !important;
  margin: 16px 0 8px !important;
  border: 1.5px solid var(--pf-border) !important;
  border-radius: var(--pf-radius-sm) !important;
  height: 46px !important;
  overflow: hidden !important;
  background: #fff !important;
  width: 140px !important;
}
.pf-m-bottom-sheet .quantity .qty-btn,
.pf-m-bottom-sheet .pf-m-sheet-qty .qty-btn {
  width: 46px !important; height: 100% !important;
  background: var(--pf-surface) !important; border: none !important;
  font-size: 20px !important; font-weight: 300 !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  cursor: pointer; color: var(--pf-dark);
  transition: background var(--pf-transition);
  -webkit-tap-highlight-color: transparent;
}
.pf-m-bottom-sheet .quantity .qty-btn:hover,
.pf-m-bottom-sheet .pf-m-sheet-qty .qty-btn:hover { background: #f1f5f9 !important; }
.pf-m-bottom-sheet .quantity input.qty,
.pf-m-bottom-sheet .pf-m-sheet-qty input.qty {
  flex: 1 !important; height: 100% !important; border: none !important;
  border-left: 1.5px solid var(--pf-border) !important;
  border-right: 1.5px solid var(--pf-border) !important;
  font-size: 16px !important; font-weight: 800 !important;
  text-align: center !important; padding: 0 !important;
  background: #fff !important; outline: none;
  font-family: var(--pf-font) !important;
  -moz-appearance: textfield;
}

/* ── Variation price/availability ── */
.pf-m-bottom-sheet .woocommerce-variation {
  margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--pf-border);
}
.pf-m-bottom-sheet .woocommerce-variation-price .price {
  font-size: 24px !important; font-weight: 900 !important;
  color: var(--pf-dark) !important; font-family: var(--pf-font) !important;
}
.pf-m-bottom-sheet .woocommerce-variation-availability {
  font-size: 12px; font-weight: 700; color: #16a34a; margin-top: 6px;
}

/* ── Hide elements inside sheet that shouldn't show ── */
.pf-m-bottom-sheet .pf-buy-now,
.pf-m-bottom-sheet .pf-wishlist-btn,
.pf-m-bottom-sheet .single_add_to_cart_button,
.pf-m-bottom-sheet .woocommerce-variation-add-to-cart button,
.pf-m-bottom-sheet .pf-sticky-buy-btn {
  display: none !important;
}

/* ── BOTTOM SHEET FORM — Premium redesign ── */
.pf-sheet-wc-form { padding: 0; }

/* Show variation add-to-cart wrapper (WC needs for events) */
.pf-sheet-wc-form .woocommerce-variation-add-to-cart { display: block !important; }

/* Hide native WC submit — we use our own buttons */
.pf-sheet-wc-form .single_add_to_cart_button,
.pf-sheet-wc-form button[type="submit"],
.pf-sheet-wc-form .woocommerce-variation-add-to-cart .single_add_to_cart_button { display: none !important; }

/* Variation table */
.pf-sheet-wc-form table.variations,
.pf-m-bottom-sheet table.variations {
  width: 100% !important; border: none !important; border-collapse: collapse !important;
}
.pf-sheet-wc-form table.variations tr,
.pf-m-bottom-sheet table.variations tr { display: block !important; }
.pf-sheet-wc-form table.variations th,
.pf-sheet-wc-form table.variations td,
.pf-m-bottom-sheet table.variations th,
.pf-m-bottom-sheet table.variations td {
  display: block !important; width: 100% !important;
  text-align: left !important; padding: 0 !important; border: none !important;
}
.pf-sheet-wc-form table.variations th,
.pf-m-bottom-sheet table.variations th {
  font-size: 10px !important; font-weight: 800 !important;
  color: var(--pf-muted) !important; text-transform: uppercase !important;
  letter-spacing: 1px !important; padding: 18px 0 8px !important;
  font-family: var(--pf-font) !important;
}
.pf-sheet-wc-form table.variations td.value,
.pf-m-bottom-sheet table.variations td.value { padding-bottom: 4px !important; }

/* Variation select - premium styled */
.pf-sheet-wc-form table.variations select,
.pf-m-bottom-sheet table.variations select {
  width: 100% !important; height: 46px !important;
  padding: 0 44px 0 16px !important;
  border: 1.5px solid var(--pf-border) !important;
  border-radius: 12px !important;
  font-size: 15px !important; font-weight: 600 !important;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 14px center !important;
  -webkit-appearance: none !important; appearance: none !important;
  outline: none !important; cursor: pointer;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  font-family: var(--pf-font) !important; color: var(--pf-dark) !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.04) !important;
}
.pf-sheet-wc-form table.variations select:focus,
.pf-m-bottom-sheet table.variations select:focus {
  border-color: var(--pf-dark) !important;
  box-shadow: 0 0 0 3px rgba(10,10,10,0.08) !important;
}

/* Qty stepper — WC native qty hidden inside sheet content (we use pf-sheet-qty-wrap instead) */
.pf-sheet-wc-form .quantity,
.pf-m-sheet-content .quantity { display: none !important; }
/* Keep bottom-sheet .quantity visible only in action bar context, not in wc-form */
.pf-m-bottom-sheet .pf-m-sheet-content .quantity { display: none !important; }

/* Variation price revealed after selection */
.pf-sheet-wc-form .woocommerce-variation-price,
.pf-m-bottom-sheet .woocommerce-variation-price {
  margin-top: 16px; padding: 14px 0 0; border-top: 1px solid var(--pf-border);
}
.pf-sheet-wc-form .woocommerce-variation-price .price,
.pf-m-bottom-sheet .woocommerce-variation-price .price {
  font-size: 22px !important; font-weight: 900 !important;
  color: var(--pf-dark) !important; font-family: var(--pf-font) !important;
}
.pf-sheet-wc-form .woocommerce-variation-availability,
.pf-m-bottom-sheet .woocommerce-variation-availability {
  font-size: 12px; font-weight: 700; color: #16a34a; margin-top: 6px;
}
.pf-sheet-wc-form .reset_variations,
.pf-m-bottom-sheet .reset_variations {
  font-size: 12px; color: var(--pf-muted); cursor: pointer;
  border-bottom: 1px dashed var(--pf-border); display: inline-block; margin-top: 10px;
}

/* Hide add to cart form from main mobile content */
.pf-product--mobile .pf-m-content form.cart { display: none !important; }

/* ── Sheet action bar — Image 2 style ── */
.pf-m-sheet-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px 10px;
  border-top: 1px solid var(--pf-border);
  background: #fff;
  flex-shrink: 0;
}

/* Qty stepper pill */
.pf-sheet-qty-wrap {
  display: flex;
  align-items: center;
  border: 1.5px solid var(--pf-border);
  border-radius: 8px;
  height: 46px;
  overflow: hidden;
  flex-shrink: 0;
  background: #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,0.05);
}
.pf-sheet-qty-btn {
  width: 44px; height: 100%;
  background: #f4f5f6; border: none;
  font-size: 22px; font-weight: 300;
  color: var(--pf-dark);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; flex-shrink: 0;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
  font-family: system-ui;
  line-height: 1;
  transition: background 0.12s ease;
}
.pf-sheet-qty-btn:active { background: #e4e6e8; }
.pf-sheet-qty-input {
  width: 42px; height: 100%;
  border: none;
  border-left: 1.5px solid var(--pf-border);
  border-right: 1.5px solid var(--pf-border);
  font-size: 17px; font-weight: 800;
  text-align: center; padding: 0;
  background: #fff; outline: none;
  font-family: var(--pf-font); color: var(--pf-dark);
  -moz-appearance: textfield;
}
.pf-sheet-qty-input::-webkit-outer-spin-button,
.pf-sheet-qty-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* ATC button — flex 1, fills remaining space */
.pf-sheet-btn--cart {
  flex: 1;
  height: 46px;
  border: none;
  border-radius: 8px;
  font-size: 13px; font-weight: 800;
  letter-spacing: 0.6px; text-transform: uppercase;
  cursor: pointer;
  font-family: var(--pf-font);
  color: #fff !important;
  background: var(--pf-dark);
  box-shadow: 0 4px 14px rgba(0,0,0,0.18);
  transition: all 0.16s ease;
}
.pf-sheet-btn--cart:not(:disabled):active { transform: scale(0.96); }
.pf-sheet-btn--cart:disabled { opacity: 0.38; cursor: not-allowed; }

/* Wishlist heart button */
.pf-sheet-wishlist-btn {
  width: 52px; height: 46px; flex-shrink: 0;
  border: 1.5px solid var(--pf-border);
  border-radius: 8px;
  background: #fff;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: all 0.18s ease;
  box-shadow: 0 1px 4px rgba(0,0,0,0.05);
}
.pf-sheet-wishlist-btn svg { stroke: #94a3b8; transition: all 0.22s ease; }
.pf-sheet-wishlist-btn.is-wishlisted {
  border-color: var(--pf-accent-border);
  background: #fff1f2;
}
.pf-sheet-wishlist-btn.is-wishlisted svg {
  fill: var(--pf-wishlist); stroke: var(--pf-wishlist);
}
.pf-sheet-wishlist-btn:active { transform: scale(0.93); }

/* Buy Now — full width row below */
.pf-m-sheet-buynow-wrap {
  padding: 0 16px;
  padding-bottom: max(16px, env(safe-area-inset-bottom));
  background: #fff;
  flex-shrink: 0;
}
.pf-sheet-btn--buy {
  width: 100%; height: 46px;
  border: none; border-radius: 8px;
  font-size: 14px; font-weight: 800;
  letter-spacing: 0.4px; text-transform: uppercase;
  cursor: pointer;
  font-family: var(--pf-font);
  color: #fff !important;
  background: linear-gradient(135deg, var(--pf-accent) 0%, var(--pf-accent-dark) 100%);
  box-shadow: 0 4px 16px rgba(229,57,53,0.32);
  transition: all 0.16s ease;
  display: flex; align-items: center; justify-content: center;
}
.pf-sheet-btn--buy:not(:disabled):active { transform: scale(0.97); }
.pf-sheet-btn--buy:disabled { opacity: 0.38; cursor: not-allowed; }

/* Remove old combined .pf-sheet-btn base — each button styled individually above */
.pf-sheet-btn { /* base reset — individual rules above take over */ }

/* Sheet flex layout */
.pf-m-bottom-sheet {
  display: flex !important; flex-direction: column !important; padding-bottom: 0 !important;
}
.pf-m-sheet-content {
  flex: 1 !important; overflow-y: auto !important;
  padding: 0 20px 8px !important; scrollbar-width: none;
}
.pf-m-sheet-content::-webkit-scrollbar { display: none; }

/* ── MODAL ── */
.pf-modal {
  display: none; position: fixed; inset: 0; z-index: 999999; align-items: flex-end;
}
.pf-modal.is-open { display: flex; }
.pf-modal__overlay {
  position: absolute; inset: 0; background: rgba(0,0,0,0.4);
  animation: pfFadeIn 0.2s ease;
}
.pf-modal__box {
  position: relative; z-index: 1; background: #fff; width: 100%;
  max-height: 80vh; overflow-y: auto; border-radius: 24px 24px 0 0;
  padding: 28px 20px max(20px, env(safe-area-inset-bottom));
  animation: pfSlideUp 0.34s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.pf-modal__box::before {
  content: ''; display: block; width: 36px; height: 4px;
  background: var(--pf-border); border-radius: 4px; margin: 0 auto 20px;
}
.pf-modal__close {
  position: absolute; top: 20px; right: 16px; width: 30px; height: 30px;
  background: var(--pf-surface); border: 1px solid var(--pf-border);
  border-radius: 50%; cursor: pointer;
  display: flex; align-items: center; justify-content: center; color: var(--pf-muted);
  transition: all var(--pf-transition);
}
.pf-modal__close:hover { background: #f1f5f9; }
.pf-modal__box h3 {
  font-size: 18px; font-weight: 800; margin: 0 0 20px; color: var(--pf-dark);
  font-family: var(--pf-font);
}

/* ── FOCUS RESET ── */
*:focus, *:focus-visible { outline: none !important; box-shadow: none !important; }

/* Spinner */
.pf-spin { animation: pfSpin 0.7s linear infinite; display: block; }

/* Section spacing on mobile */
.pf-m-stock        { margin: 10px 0 0; }
.pf-m-trust        { margin: 0 0 20px; }
.pf-m-accordion    { margin-top: 0; }
.pf-m-accordion + .pf-m-accordion { margin-top: 8px; }
.pf-m-related      { margin-top: 24px; }
/* App layout shared related block — spacing + side padding to match content */
.pf-mobile-layout--app .pf-m-related-shared {
  margin-top: 24px; margin-bottom: 16px;
}
.pf-mobile-layout--app .pf-m-related-shared .pf-cm-related__head { padding: 0; }
.pf-mobile-layout--app .pf-m-related-shared .pf-cm-related__slider { padding: 4px 0; }
/* Tabs mode spacing inside app accordions */
.pf-app-accordions--tabs { padding-top: 0; }
.pf-m-tabs { margin-bottom: 0; gap: 0; }
.pf-m-variations   { margin: 8px 0; }
/* ============================================================
   PERFECTO — Single Product ATC Spinner (spinner-only loading)
   ============================================================ */
.pf-product__atc-wrap .single_add_to_cart_button.loading {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 0;
    opacity: 1;
    cursor: not-allowed;
    color: transparent !important; /* hide any residual text */
    pointer-events: none;
}

/* The injected spinner span — centered absolutely, never affected by color:transparent */
.pf-product__atc-wrap .single_add_to_cart_button.loading .pf-btn-spinner,
.pf-btn-atc.loading .pf-btn-spinner,
.single_add_to_cart_button.loading .pf-btn-spinner,
.pf-m-sticky__btn.loading .pf-btn-spinner,
.pf-sheet-atc-btn.loading .pf-btn-spinner {
    display: inline-block !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: 20px !important;
    height: 20px !important;
    border: 2px solid rgba(255,255,255,0.35) !important;
    border-top-color: #fff !important;
    border-radius: 50% !important;
    animation: pf-sp-rotate 0.65s linear infinite !important;
    margin: 0 !important;
    flex-shrink: 0 !important;
}
@keyframes pf-sp-rotate { to { transform: rotate(360deg); } }

/* FIX 1: round-add-to-cart pf-atc-spinner — SVG uses stroke="currentColor"
   color:transparent on parent hides the stroke. Override explicitly. */
.round-add-to-cart.loading .pf-atc-spinner,
.pf-atc-btn.loading .pf-atc-spinner,
.pf-card-atc-overlay .pf-atc-btn.loading .pf-atc-spinner {
    stroke: #fff !important;
    color: #fff !important;
}
/* Also ensure pf-atc-spinner path/circle inherit stroke correctly */
.pf-atc-spinner path,
.pf-atc-spinner circle {
    stroke: inherit;
}

/* Position the button relatively so spinner centers */
.pf-product__atc-wrap .single_add_to_cart_button { position: relative; }

/* Success checkmark state */
.pf-btn-done {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.pf-btn-done svg { stroke: #fff; }

/* Single product button success */
.pf-product__atc-wrap .single_add_to_cart_button:not(.loading) .pf-btn-done,
.pf-btn-atc .pf-btn-done {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
}
.pf-product__atc-wrap .single_add_to_cart_button:has(.pf-btn-done),
.pf-btn-atc:has(.pf-btn-done) {
    color: transparent !important;
    position: relative;
}
.pf-btn-atc.loading {
    color: transparent !important;
    pointer-events: none;
    position: relative;
}
.pf-m-sticky__btn--cart.loading,
.pf-m-sticky__btn--buy.loading {
    color: transparent !important;
    pointer-events: none;
    position: relative;
}
.pf-m-sticky__atc.loading .pf-btn-spinner,
.pf-m-sticky__btn--cart.loading .pf-btn-spinner,
.pf-m-sticky__btn--buy.loading .pf-btn-spinner,
.pf-btn-atc.loading .pf-btn-spinner {
    position: absolute !important;
    top: 50% !important; left: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: 20px !important; height: 20px !important;
    border: 2px solid rgba(255,255,255,0.35) !important;
    border-top-color: #fff !important;
    border-radius: 50% !important;
    animation: pf-sp-rotate 0.65s linear infinite !important;
    display: inline-block !important;
    margin: 0 !important;
}

/* ================================================================
   PERFECTO v7 — NEW OPTION STYLES
================================================================ */

/* ── GALLERY POSITION: LEFT (default) ── */
/* ── GALLERY POSITION: LEFT (default) ── */
.pf-product__top.pf-gallery-pos--left {
  grid-template-columns: 1fr 1fr;
}

/* ── GALLERY POSITION: THUMBS TOP ── */
/* Only the thumbnail strip moves above the main image */
.pf-product__top.pf-gallery-pos--top .pf-product__gallery {
  flex-direction: column-reverse;
  position: relative; top: 0;
}
.pf-product__top.pf-gallery-pos--top .pf-gallery__thumbs {
  flex-direction: row !important;
  width: 100% !important;
  height: 72px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  flex-shrink: unset !important;
  align-self: unset !important;
  gap: 8px !important;
  scrollbar-width: none; -ms-overflow-style: none;
}
.pf-product__top.pf-gallery-pos--top .pf-gallery__thumbs::-webkit-scrollbar { display: none; }
.pf-product__top.pf-gallery-pos--top .pf-thumb__item {
  width: 72px !important; height: 72px !important; flex-shrink: 0;
}
.pf-product__top.pf-gallery-pos--top .pf-gallery__main { flex: 1; }

/* ── GALLERY POSITION: THUMBS BOTTOM ── */
.pf-product__top.pf-gallery-pos--bottom .pf-product__gallery {
  flex-direction: column;
  position: relative; top: 0;
}
.pf-product__top.pf-gallery-pos--bottom .pf-gallery__thumbs {
  flex-direction: row !important;
  width: 100% !important;
  height: 72px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  flex-shrink: unset !important;
  align-self: unset !important;
  gap: 8px !important;
  margin-top: 12px;
  scrollbar-width: none; -ms-overflow-style: none;
}
.pf-product__top.pf-gallery-pos--bottom .pf-gallery__thumbs::-webkit-scrollbar { display: none; }
.pf-product__top.pf-gallery-pos--bottom .pf-thumb__item {
  width: 72px !important; height: 72px !important; flex-shrink: 0;
}
.pf-product__top.pf-gallery-pos--bottom .pf-gallery__main { flex: 1; }

/* ── TABS ALIGNMENT ── */
.pf-product__tabs.pf-tabs-align--center .woocommerce-tabs ul.tabs {
  justify-content: center;
}
.pf-product__tabs.pf-tabs-align--right .woocommerce-tabs ul.tabs {
  justify-content: flex-end;
}
.pf-product__tabs.pf-tabs-align--left .woocommerce-tabs ul.tabs {
  justify-content: flex-start;
}

/* Description panel content follows tab alignment —
   text-align is inherited so user inline styles always win */
.pf-product__tabs.pf-tabs-align--center .woocommerce-tabs .panel { text-align: center; }
.pf-product__tabs.pf-tabs-align--right  .woocommerce-tabs .panel { text-align: right; }
.pf-product__tabs.pf-tabs-align--left   .woocommerce-tabs .panel { text-align: left; }

/* Tables inside panels always stay left — never centre/right a data table */
.pf-product__tabs .woocommerce-tabs .panel table,
.pf-product__tabs .woocommerce-tabs .panel table th,
.pf-product__tabs .woocommerce-tabs .panel table td { text-align: left; }

/* ── ADDITIONAL INFO table alignment ──
   Table itself stays left inside; we align the table block within its panel.
   centre → table centred with auto margins, right → pushed right.
   Tables always stay left-aligned internally (text-align:left on cells). */

/* Desktop WC native panel — inherits from pf-tabs-align parent */
.pf-product__tabs.pf-tabs-align--center .woocommerce-Tabs-panel--additional_information table,
.pf-addinfo-align--center table {
  margin-left: auto;
  margin-right: auto;
}
.pf-product__tabs.pf-tabs-align--right .woocommerce-Tabs-panel--additional_information table,
.pf-addinfo-align--right table {
  margin-left: auto;
  margin-right: 0;
}
.pf-product__tabs.pf-tabs-align--left .woocommerce-Tabs-panel--additional_information table,
.pf-addinfo-align--left table {
  margin-left: 0;
  margin-right: auto;
}
/* Cells always left regardless of parent alignment */
.pf-addinfo-align--center table th,
.pf-addinfo-align--center table td,
.pf-addinfo-align--right table th,
.pf-addinfo-align--right table td {
  text-align: left !important;
}

/* Mobile tabpanel alignment matches mobile tab alignment */
.pf-m-tabs--center ~ .pf-m-tabpanel { text-align: center; }
.pf-m-tabs--right  ~ .pf-m-tabpanel { text-align: right; }
.pf-m-tabs--left   ~ .pf-m-tabpanel { text-align: left; }

/* Tables inside mobile panels always stay left */
.pf-m-tabpanel table,
.pf-m-tabpanel table th,
.pf-m-tabpanel table td { text-align: left !important; }

/* ── TABS AS ACCORDION (desc-style--accordion) ── */
.pf-product__tabs.pf-desc-style--accordion .woocommerce-tabs ul.tabs {
  display: none !important; /* Hide native tabs nav */
}
.pf-product__tabs.pf-desc-style--accordion .woocommerce-tabs .panel,
.pf-product__tabs.pf-desc-style--accordion .woocommerce-tabs .panel[style] {
  display: none !important;
}
.pf-product__tabs.pf-desc-style--accordion .pf-accordion-panel {
  border: 1px solid var(--pf-border);
  border-radius: var(--pf-radius-sm);
  overflow: hidden;
  margin-bottom: 8px;
  background: #fff;
}
.pf-product__tabs.pf-desc-style--accordion .pf-accordion-panel__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  background: #fff;
  border: none;
  width: 100%;
  text-align: left;
  cursor: pointer;
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.7px;
  color: var(--pf-dark);
  font-family: var(--pf-font);
  transition: background var(--pf-transition);
}
.pf-product__tabs.pf-desc-style--accordion .pf-accordion-panel__header:hover {
  background: var(--pf-surface);
}
.pf-product__tabs.pf-desc-style--accordion .pf-accordion-panel__header svg {
  transition: transform 0.3s cubic-bezier(0.4,0,0.2,1);
  flex-shrink: 0;
  color: var(--pf-muted);
}
.pf-product__tabs.pf-desc-style--accordion .pf-accordion-panel.is-open .pf-accordion-panel__header svg {
  transform: rotate(180deg);
}
.pf-product__tabs.pf-desc-style--accordion .pf-accordion-panel__body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s cubic-bezier(0.4,0,0.2,1);
  padding: 0 20px;
  font-size: 15px;
  line-height: 1.8;
  color: #4a5568;
}
.pf-product__tabs.pf-desc-style--accordion .pf-accordion-panel.is-open .pf-accordion-panel__body {
  max-height: 4000px;
  padding: 4px 20px 20px;
}

/* ── PREMIUM SHORT DESCRIPTION CARD ── */
/* ── SHORT DESC — CARD (premium) ── */
.pf-product__short-desc.pf-short-desc--card {
  background: #f8f9fb;
  border-radius: 8px;
  padding: 16px 18px 16px 22px;
  margin-bottom: 18px;
  position: relative;
  overflow: hidden;
}
.pf-product__short-desc.pf-short-desc--card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; bottom: 0;
  width: 4px;
  background: var(--pf-accent, #E53935);
  border-radius: 4px 0 0 4px;
}
.pf-product__short-desc.pf-short-desc--card::after {
  content: '"';
  position: absolute;
  top: -8px; right: 14px;
  font-size: 72px; line-height: 1;
  color: var(--pf-accent, #E53935);
  opacity: 0.06;
  font-family: Georgia, serif;
  pointer-events: none;
}
.pf-product__short-desc.pf-short-desc--card p {
  margin: 0 0 6px;
  font-size: 13.5px;
  line-height: 1.75;
  color: #374151;
}
.pf-product__short-desc.pf-short-desc--card p:last-child { margin: 0; }
.pf-product__short-desc.pf-short-desc--card ul {
  margin: 6px 0 0; padding-left: 0; list-style: none;
}
.pf-product__short-desc.pf-short-desc--card ul li {
  font-size: 13px; color: #4b5563;
  padding: 3px 0 3px 16px; position: relative;
  line-height: 1.6;
}
.pf-product__short-desc.pf-short-desc--card ul li::before {
  content: ''; position: absolute; left: 0; top: 9px;
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--pf-accent, #E53935);
}
.pf-product__short-desc.pf-short-desc--card strong,
.pf-product__short-desc.pf-short-desc--card b {
  color: #111827; font-weight: 700;
}

/* Mobile short desc card */
.pf-app-short-desc.pf-short-desc--card {
  background: #f8f9fb;
  border-radius: 8px;
  padding: 14px 16px 14px 20px;
  margin: 14px 0 0;
  position: relative;
  overflow: hidden;
}
.pf-app-short-desc.pf-short-desc--card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; bottom: 0;
  width: 4px;
  background: var(--pf-accent, #E53935);
  border-radius: 4px 0 0 4px;
}
.pf-app-short-desc.pf-short-desc--card::after {
  content: '"';
  position: absolute;
  top: -8px; right: 10px;
  font-size: 60px; line-height: 1;
  color: var(--pf-accent, #E53935);
  opacity: 0.06;
  font-family: Georgia, serif;
  pointer-events: none;
}
.pf-app-short-desc.pf-short-desc--card p {
  font-size: 13px;
  line-height: 1.72;
  color: #374151;
  margin-bottom: 5px;
}
.pf-app-short-desc.pf-short-desc--card p:last-child { margin: 0; }
.pf-app-short-desc.pf-short-desc--card ul { margin: 4px 0 0; padding-left: 0; list-style: none; }
.pf-app-short-desc.pf-short-desc--card ul li {
  font-size: 13px; color: #4b5563; padding: 2px 0 2px 14px; position: relative; line-height: 1.6;
}
.pf-app-short-desc.pf-short-desc--card ul li::before {
  content: ''; position: absolute; left: 0; top: 8px;
  width: 5px; height: 5px; border-radius: 50%;
  background: var(--pf-accent, #E53935);
}

/* ── UNIFIED ATC BUTTON SYSTEM ── */
/* pf-atc-row / pf-cart-actions — defined at line ~600 */

/* quantity box height/width — defined at .pf-product__atc-wrap .quantity (line ~573) */

/* pf-btn-atc — the primary Add to Cart button */
.pf-btn-atc {
  flex: 1;
  height: 46px;
  padding: 0 24px;
  background: var(--pf-atc-bg, #111827) !important;
  color: var(--pf-atc-txt, #ffffff) !important;
  border: none;
  border-radius: var(--pf-atc-r, 8px);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.8px;
  cursor: pointer;
  transition: background var(--pf-transition), transform 0.18s ease, box-shadow 0.18s ease;
  text-transform: uppercase;
  white-space: nowrap;
  font-family: var(--pf-font);
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 0;
}
.pf-btn-atc::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.06) 0%, transparent 100%);
  pointer-events: none;
}
.pf-btn-atc:hover {
  background: var(--pf-atc-h-bg, #374151) !important;
  color: var(--pf-atc-h-txt, #ffffff) !important;
  transform: translateY(-1px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.22);
}
.pf-btn-atc:active { transform: translateY(0); box-shadow: none; }
.pf-btn-atc.loading { opacity: 0.7; cursor: not-allowed; }

/* pf-btn-wishlist — the wishlist heart */
.pf-btn-wishlist {
  width: 52px;
  height: 46px;
  flex-shrink: 0;
  background: #fff;
  border: 1.5px solid #ef4444;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all var(--pf-transition);
  padding: 0;
}
.pf-btn-wishlist svg {
  width: 18px; height: 18px;
  stroke: var(--pf-wishlist); fill: none;
  transition: all 0.22s ease;
}
.pf-btn-wishlist:hover { background: var(--pf-accent-light); transform: scale(1.06); }
.pf-btn-wishlist.added svg,
.pf-btn-wishlist.in-wishlist svg,
.pf-btn-wishlist.active svg { fill: var(--pf-wishlist); }

/* pf-btn-buynow — Buy Now full width */
.pf-btn-buynow {
  width: 100%;
  height: 46px;
  background: var(--pf-buy-bg, #E53935) !important;
  color: var(--pf-buy-txt, #ffffff) !important;
  border: none;
  border-radius: var(--pf-atc-r, 8px);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  cursor: pointer;
  transition: background var(--pf-transition), transform 0.18s ease, box-shadow 0.18s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--pf-font);
}
.pf-btn-buynow:hover {
  background: var(--pf-buy-h-bg, #c62828) !important;
  color: var(--pf-buy-txt, #ffffff) !important;
  transform: translateY(-1px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.2);
}
.pf-btn-buynow:active { transform: translateY(0); box-shadow: none; }

/* ── OUT OF STOCK DISPLAY (desktop) ── */
.pf-oos-message {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px;
  background: #fff8f8;
  border: 1px solid #fecdd3;
  border-radius: var(--pf-radius-sm);
  margin-bottom: 16px;
}
.pf-oos-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 12px;
  font-weight: 800;
  color: #991b1b;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.pf-oos-message p {
  font-size: 13px;
  color: #64748b;
  margin: 0;
  line-height: 1.6;
}

/* ── OOS button styles in sticky bars ── */
.pf-sticky-bar__btn--oos,
.pf-m-sticky__btn--oos {
  background: #94a3b8 !important;
  cursor: not-allowed !important;
  opacity: 0.85 !important;
  color: #fff !important;
  flex: 1;
}

/* ── Desktop cart actions — height set via .pf-product__atc-wrap .quantity (46px) ── */
/* Buy Now — match ATC font exactly */
.pf-btn-buynow,
.pf-buy-now,
.pf-product--desktop .pf-buy-now {
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: 0.7px !important;
}

/* .pf-btn-atc height/padding — defined in .pf-btn-atc block above */

/* ================================================================
   SIZE CHART & ASK A QUESTION MODALS — DESKTOP CENTERED STYLE
================================================================ */

/* Desktop: center the box instead of bottom-sheet */
@media (min-width: 861px) {
  .pf-size-chart-modal,
  .pf-ask-modal {
    align-items: center;
    justify-content: center;
    padding: 20px;
  }
  .pf-size-chart-modal .pf-modal__box,
  .pf-ask-modal .pf-modal__box {
    border-radius: var(--pf-radius-lg);
    max-width: 640px;
    width: 100%;
    max-height: 85vh;
    animation: pfModalIn 0.28s cubic-bezier(0.16, 1, 0.3, 1) both;
  }
  .pf-size-chart-modal .pf-modal__box::before,
  .pf-ask-modal .pf-modal__box::before { display: none; }
}
@keyframes pfModalIn {
  from { opacity: 0; transform: scale(0.94) translateY(-10px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}

/* Modal header */
.pf-modal__head {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 20px; padding-bottom: 16px;
  border-bottom: 1px solid var(--pf-border);
}
.pf-modal__head h3 {
  display: flex; align-items: center; gap: 8px;
  font-size: 16px; font-weight: 800; color: var(--pf-dark);
  font-family: var(--pf-font); margin: 0;
}
.pf-modal__head h3 svg { color: var(--pf-accent); flex-shrink: 0; }
.pf-modal__body { font-size: 14px; line-height: 1.7; color: var(--pf-text); overflow-y: auto; overflow-x: hidden; }

/* FIX: Size chart content must not overflow the bottom sheet on mobile */
.pf-size-chart-modal .pf-modal__box {
    display: flex;
    flex-direction: column;
    max-height: 82vh;
    overflow: hidden;
}
.pf-size-chart-modal .pf-modal__head { flex-shrink: 0; }
.pf-size-chart-modal .pf-modal__body {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    padding-bottom: max(16px, env(safe-area-inset-bottom));
}

/* Size Chart Tabs - PREMIUM UI */
.pf-size-chart-tabs {
  display: flex;
  gap: 10px;
  padding: 0 0 20px;
  border-bottom: 2px solid #e5e7eb;
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.pf-size-tab {
  padding: 10px 24px;
  background: #f3f4f6;
  border: 2px solid transparent;
  border-radius: 50px; /* Pill style */
  font-size: 13px;
  font-weight: 600;
  color: #6b7280;
  cursor: pointer;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  font-family: var(--pf-font);
  letter-spacing: 0.3px;
  text-transform: uppercase;
  position: relative;
}
.pf-size-tab:hover {
  background: #e5e7eb;
  color: #374151;
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
.pf-size-tab.active {
  background: var(--pf-pri-bg, #0a0a0a);
  border-color: var(--pf-pri-bg, #0a0a0a);
  color: var(--pf-pri-txt, #ffffff);
  box-shadow: 0 4px 12px rgba(10, 10, 10, 0.2);
}
.pf-size-tab.active:hover {
  background: var(--pf-pri-h-bg, #1a1a1a);
  transform: translateY(-1px);
}
.pf-size-content {
  animation: fadeInUp 0.3s ease;
}
@keyframes fadeInUp {
  from { 
    opacity: 0; 
    transform: translateY(8px); 
  }
  to { 
    opacity: 1; 
    transform: translateY(0); 
  }
}

/* Size chart table styling - PREMIUM */
.pf-size-chart-modal .pf-modal__body table {
  width: 100%; 
  border-collapse: separate;
  border-spacing: 0;
  margin: 12px 0;
  font-size: 13px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  overflow: hidden;
}
.pf-size-chart-modal .pf-modal__body thead {
  background: linear-gradient(180deg, #f9fafb 0%, #f3f4f6 100%);
}
.pf-size-chart-modal .pf-modal__body th,
.pf-size-chart-modal .pf-modal__body td {
  padding: 12px 16px;
  border-bottom: 1px solid #e5e7eb;
  border-right: 1px solid #e5e7eb;
  text-align: left;
}
.pf-size-chart-modal .pf-modal__body th:last-child,
.pf-size-chart-modal .pf-modal__body td:last-child {
  border-right: none;
}
.pf-size-chart-modal .pf-modal__body tr:last-child td {
  border-bottom: none;
}
.pf-size-chart-modal .pf-modal__body th {
  font-weight: 700;
  color: #111827;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.pf-size-chart-modal .pf-modal__body td {
  color: #374151;
  font-weight: 500;
}
.pf-size-chart-modal .pf-modal__body tbody tr {
  transition: background-color 0.15s ease;
}
.pf-size-chart-modal .pf-modal__body tbody tr:hover {
  background: #f9fafb;
}
.pf-size-chart-modal .pf-modal__body tbody tr:nth-child(even) {
  background: #fafbfc;
}
.pf-size-chart-modal .pf-modal__body tbody tr:nth-child(even):hover {
  background: #f3f4f6;
}

/* Ask a Question form */
.pf-ask-modal__intro {
  font-size: 13px; color: var(--pf-muted); margin: 0 0 20px; line-height: 1.6;
}
.pf-ask-form__row {
  display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 14px;
}
@media (max-width: 480px) { .pf-ask-form__row { grid-template-columns: 1fr; } }
.pf-ask-form__field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.pf-ask-form__row .pf-ask-form__field { margin-bottom: 0; }
.pf-ask-form__field label {
  font-size: 12px; font-weight: 700; color: var(--pf-dark);
  text-transform: uppercase; letter-spacing: 0.5px; font-family: var(--pf-font);
}
.pf-ask-form__field label .required { color: var(--pf-accent); }
.pf-ask-form__field input,
.pf-ask-form__field textarea {
  width: 100%; padding: 10px 14px; border: 1.5px solid var(--pf-border);
  border-radius: var(--pf-radius-sm); font-size: 14px; font-family: var(--pf-font);
  background: #fff; color: var(--pf-text); transition: border-color 0.2s;
  box-sizing: border-box;
}
.pf-ask-form__field input:focus,
.pf-ask-form__field textarea:focus { border-color: var(--pf-dark) !important; outline: none !important; box-shadow: none !important; }
.pf-ask-form__field textarea { resize: vertical; min-height: 100px; }
.pf-ask-form__footer { display: flex; justify-content: flex-end; margin-top: 6px; }
.pf-ask-form__submit {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 11px 24px; background: var(--pf-btn-atc-bg); color: var(--pf-btn-atc-text);
  border: none; border-radius: var(--pf-radius-sm); font-size: 13px; font-weight: 800;
  letter-spacing: 0.5px; text-transform: uppercase; cursor: pointer;
  font-family: var(--pf-font); transition: all 0.2s;
}
.pf-ask-form__submit:hover { opacity: 0.88; transform: translateY(-1px); }
.pf-ask-form__submit:disabled { opacity: 0.6; cursor: not-allowed; transform: none; }
.pf-ask-submit__text,
.pf-ask-submit__loading { display: flex; align-items: center; gap: 8px; }
.pf-ask-form__response {
  margin-top: 14px; padding: 12px 16px; border-radius: var(--pf-radius-sm);
  font-size: 13px; font-weight: 600;
}
.pf-ask-response--success {
  background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0;
}
.pf-ask-response--error {
  background: var(--pf-accent-light); color: var(--pf-accent); border: 1px solid var(--pf-accent-border);
}

/* ── ACCORDION MODE: hide short description (Description tab covers it) ── */
.pf-product--desktop.pf-desc-accordion .pf-product__short-desc {
  display: none;
}

/* ================================================================
   PERFECTO — CLASSIC MOBILE PRODUCT LAYOUT  (2026 Envato Grade)
================================================================ */

/* ── Show/hide toggles ── */
.pf-mobile-layout--classic .pf-classic-mobile { display: block; }
.pf-mobile-layout--classic .pf-mobile-header,
.pf-mobile-layout--classic .pf-m-gallery,
.pf-mobile-layout--classic .pf-m-content,
.pf-mobile-layout--classic .pf-m-sticky,
.pf-mobile-layout--classic .pf-m-sheet-overlay,
.pf-mobile-layout--classic .pf-m-bottom-sheet { display: none !important; }
.pf-mobile-layout--app .pf-classic-mobile { display: none; }
@media (max-width: 768px) {
  body.single-product:has(.pf-mobile-layout--classic) #site-header { display: block !important; }
  body.single-product:has(.pf-mobile-layout--app)     #site-header { display: none  !important; }
}

.pf-classic-mobile {
  background: #fff;
  padding-bottom: 90px;
}

/* ── Breadcrumb ── */
.pf-cm-breadcrumb {
  padding: 9px 16px;
  background: #f8f9fb;
  border-bottom: 1px solid var(--pf-border, #e8ecf0);
}
.pf-cm-breadcrumb .woocommerce-breadcrumb {
  font-size: 11px; color: #64748b; margin: 0; background: transparent; padding: 0;
}
.pf-cm-breadcrumb--left  .woocommerce-breadcrumb { text-align: left; }
.pf-cm-breadcrumb--center .woocommerce-breadcrumb { text-align: center; }
.pf-cm-breadcrumb--right  .woocommerce-breadcrumb { text-align: right; }
.pf-cm-breadcrumb .woocommerce-breadcrumb a { color: #64748b; text-decoration: none; }
.pf-cm-breadcrumb .woocommerce-breadcrumb a:hover { color: var(--pf-accent, #E53935); }
.pf-bc-sep { margin: 0 5px; opacity: 0.45; }

/* ════════════════════════════════════════
   GALLERY — app-style full-bleed swiper
════════════════════════════════════════ */
.pf-cm-gallery {
  position: relative;
  width: 100%; aspect-ratio: 1/1;
  overflow: hidden; background: #f5f5f5;
}
.pf-cm-gallery__track {
  display: flex; width: 100%; height: 100%;
  transition: transform 0.38s cubic-bezier(0.16,1,0.3,1);
}
.pf-cm-gallery__slide {
  flex: 0 0 100%; width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  background: #f5f5f5;
}
.pf-cm-gallery__slide img,
.pf-cm-gallery__slide .pf-cm-slide-video {
  width: 100%; height: 100%; object-fit: contain; display: block;
  /* Fix blurry images on mobile */
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  image-rendering: -webkit-optimize-contrast;
}
.pf-cm-gallery__dots {
  position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%);
  display: flex; gap: 5px; z-index: 5;
}
.pf-cm-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: rgba(255,255,255,0.5); border: none; padding: 0; cursor: pointer;
  transition: background 0.2s, transform 0.2s;
}
.pf-cm-dot.is-active { background: #fff; transform: scale(1.3); }
.pf-cm-gallery__badge {
  position: absolute; top: 12px; left: 12px;
  background: var(--pf-accent, #E53935); color: #fff;
  font-size: 11px; font-weight: 800; letter-spacing: 0.3px;
  padding: 4px 10px; border-radius: 6px; z-index: 5;
}
.pf-cm-gallery__zoom {
  position: absolute; bottom: 12px; right: 12px;
  width: 32px; height: 32px; border-radius: 9px;
  background: rgba(0,0,0,0.32); border: none; color: #fff;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; z-index: 5; padding: 0;
}
.pf-cm-gallery__zoom svg { width: 14px; height: 14px; }

/* ════════════════════════════════════════
   CONTENT AREA
════════════════════════════════════════ */
.pf-cm-content { padding: 14px 16px 0; }

.pf-cm-cat {
  display: inline-block; margin-bottom: 3px;
  font-size: 10px; font-weight: 800; letter-spacing: 1px;
  color: var(--pf-accent, #E53935); text-transform: uppercase;
}

/* Cat + brand row */
.pf-cm-header-row {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 4px;
}
/* Brand logo */
/* Brand logo — horizontal style (controlled by Redux height via inline style) */
.pf-brand-logo {
  display: inline-flex; align-items: center; flex-shrink: 0;
  margin-bottom: 8px;
  text-decoration: none;
}
.pf-brand-logo__img {
  /* Height set via inline style from Redux. Width auto for horizontal logos. */
  max-height: 40px; max-width: 160px; width: auto; height: auto;
  object-fit: contain;
  filter: grayscale(15%) opacity(0.88);
  transition: filter 0.2s ease;
}
.pf-brand-logo:hover .pf-brand-logo__img {
  filter: none;
}
.pf-brand-name {
  font-size: 11px; font-weight: 700; letter-spacing: 0.06em;
  color: #64748b; text-decoration: none; text-transform: uppercase;
}
/* Classic mobile brand logo */
.pf-cm-header-row .pf-brand-logo { margin-bottom: 4px; }
.pf-cm-header-row .pf-brand-logo__img { max-height: 28px; max-width: 120px; }

/* Title — full width, then price+stars inline below */
.pf-cm-title {
  font-size: 18px; font-weight: 800; color: #0a0a0a;
  line-height: 1.28; margin: 0 0 5px; letter-spacing: -0.3px;
  font-family: var(--pf-font, system-ui);
}

/* Price + stars on same row */
.pf-cm-title-row {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px; margin-bottom: 12px;
}
.pf-cm-price-row {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap; flex: 1;
}
.pf-cm-price-row .price {
  font-size: 22px; font-weight: 900; color: #0a0a0a;
  font-family: var(--pf-font, system-ui);
  margin: 0 !important; padding: 0 !important;
  display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap;
}
/* Strip WC default margins on price wrapper */
.pf-cm-price-row p.price,
.pf-cm-price-row span.price { margin: 0 !important; }
.pf-cm-price-row ins { text-decoration: none; }
.pf-cm-price-row ins .amount { font-size: 22px; font-weight: 900; color: var(--pf-accent, #E53935); }
.pf-cm-price-row del .amount { font-size: 12px; color: #94a3b8; font-weight: 400; text-decoration: line-through; }
.pf-cm-save {
  font-size: 10px; font-weight: 700;
  color: var(--pf-accent, #E53935);
  background: rgba(229,57,53,0.08);
  border: 1px solid rgba(229,57,53,0.2);
  border-radius: 5px; padding: 2px 7px; white-space: nowrap;
}
.pf-cm-stars {
  display: flex; align-items: center; gap: 2px; flex-shrink: 0;
}
.pf-cm-stars__count { font-size: 11px; color: #64748b; margin-left: 3px; }

/* Meta strip — viewers + stock pills */
.pf-cm-meta-strip {
  display: flex; gap: 7px; flex-wrap: wrap; margin-bottom: 14px;
}
.pf-cm-meta-strip {
  flex-wrap: nowrap !important;
  overflow-x: auto; scrollbar-width: none;
  gap: 5px !important;
}
.pf-cm-meta-strip::-webkit-scrollbar { display: none; }
.pf-cm-meta-strip .pf-product__viewers,
.pf-cm-meta-strip .pf-product__stock,
.pf-cm-meta-strip .pf-product__sold,
.pf-cm-meta-strip .pf-product__sku-badge {
  font-size: 10.5px !important; padding: 4px 9px !important;
}

/* Short description card */
.pf-cm-short-desc {
  font-size: 13px; line-height: 1.68; color: #374151;
  margin-bottom: 16px;
  padding: 12px 14px 12px 18px;
  background: #f8f9fb; border-radius: 10px;
  border-left: 3px solid var(--pf-accent, #E53935);
}
.pf-cm-short-desc p { margin: 0 0 5px; }
.pf-cm-short-desc p:last-child { margin: 0; }

/* ════════════════════════════════════════
   ATC WRAP — all product types, consistent
════════════════════════════════════════ */
.pf-cm-atc-wrap {
  margin-bottom: 16px;
}
/* Universal button sizing */
.pf-cm-atc-wrap .pf-atc-row,
.pf-cm-atc-wrap .pf-cart-actions {
  display: flex; align-items: stretch; gap: 9px;
  margin-bottom: 8px;
}
.pf-cm-atc-wrap .pf-btn-atc,
.pf-cm-atc-wrap .single_add_to_cart_button,
.pf-cm-atc-wrap button[type="submit"] {
  flex: 1; height: 46px !important;
  font-size: 13px !important; font-weight: 800 !important;
  letter-spacing: 0.5px !important;
  border-radius: 8px !important;
  background: var(--pf-btn-atc-bg, #0a0a0a) !important;
  color: var(--pf-btn-atc-text, #fff) !important;
  border: none !important; cursor: pointer;
  text-transform: uppercase;
  font-family: var(--pf-font, system-ui) !important;
  display: flex; align-items: center; justify-content: center; gap: 7px;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.pf-cm-atc-wrap .pf-btn-atc:hover,
.pf-cm-atc-wrap .single_add_to_cart_button:hover { transform: translateY(-1px); box-shadow: 0 6px 20px rgba(0,0,0,0.22); }
.pf-cm-atc-wrap .pf-btn-buynow,
.pf-cm-atc-wrap .pf-buy-now {
  width: 100%; height: 46px !important;
  font-size: 13px !important; font-weight: 800 !important;
  letter-spacing: 0.5px; text-transform: uppercase;
  border-radius: 8px !important; border: none !important; cursor: pointer;
  background: var(--pf-btn-buy-bg, #E53935) !important;
  color: var(--pf-btn-buy-text, #fff) !important;
  font-family: var(--pf-font, system-ui) !important;
  display: flex; align-items: center; justify-content: center;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.pf-cm-atc-wrap .pf-btn-buynow:hover { transform: translateY(-1px); box-shadow: 0 6px 20px rgba(229,57,53,0.3); }

/* Quantity stepper — same look for simple + variable */
.pf-cm-atc-wrap .quantity,
.pf-cm-atc-wrap .pf-qty-wrap {
  display: flex !important; align-items: stretch !important;
  height: 46px !important; flex-shrink: 0;
  border: 1.5px solid var(--pf-border, #e8ecf0) !important;
  border-radius: 8px !important; overflow: hidden;
  background: #fff;
}
.pf-cm-atc-wrap .qty-btn,
.pf-cm-atc-wrap .pf-qty-btn {
  width: 38px !important; height: 46px !important;
  background: none !important; border: none !important;
  font-size: 18px !important; font-weight: 400; cursor: pointer;
  color: #0a0a0a; display: flex; align-items: center; justify-content: center;
}
.pf-cm-atc-wrap .qty-btn:hover,
.pf-cm-atc-wrap .pf-qty-btn:hover { background: #f1f5f9 !important; }
.pf-cm-atc-wrap input.qty,
.pf-cm-atc-wrap .pf-qty-input {
  width: 44px !important; height: 46px !important; border: none !important;
  text-align: center; font-size: 14px !important; font-weight: 700;
  background: none; outline: none; font-family: var(--pf-font, system-ui);
  -moz-appearance: textfield;
}
.pf-cm-atc-wrap input.qty::-webkit-inner-spin-button,
.pf-cm-atc-wrap input.qty::-webkit-outer-spin-button { -webkit-appearance: none; }

/* Wishlist button */
.pf-cm-atc-wrap .pf-btn-wishlist,
.pf-cm-atc-wrap .pf-wishlist-btn {
  width: 46px !important; height: 46px !important; flex-shrink: 0;
  border-radius: 8px !important;
}

/* Variation swatches */
.pf-cm-atc-wrap .pf-variations-form,
.pf-cm-atc-wrap .variations_form {
  margin-bottom: 10px;
}
.pf-cm-atc-wrap .variations th {
  font-size: 11px; font-weight: 800; text-transform: uppercase;
  letter-spacing: 0.6px; padding: 0 0 7px; color: #0a0a0a;
}
.pf-cm-atc-wrap .variations td { padding: 0 0 12px; }

/* ── Action links — full width, centred ── */
.pf-cm-actions {
  display: flex; gap: 8px; margin-top: 16px; margin-bottom: 16px; flex-wrap: nowrap;
  justify-content: center;
}
.pf-cm-action-btn {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  flex: 1; min-width: 0;
  font-size: 11.5px; font-weight: 700; color: #374151;
  background: #fff; border: 1.5px solid var(--pf-border, #e8ecf0);
  border-radius: 10px; padding: 10px 8px; cursor: pointer;
  font-family: var(--pf-font, system-ui);
  text-align: center; white-space: nowrap;
  box-shadow: 0 1px 4px rgba(0,0,0,0.06);
  transition: background 0.18s, border-color 0.18s, color 0.18s, box-shadow 0.18s, transform 0.15s;
  -webkit-tap-highlight-color: transparent;
}
.pf-cm-action-btn:hover {
  background: var(--pf-dark, #0a0a0a); border-color: var(--pf-dark, #0a0a0a);
  color: #fff; box-shadow: 0 4px 12px rgba(0,0,0,0.15); transform: translateY(-1px);
}
.pf-cm-action-btn:hover svg { stroke: #fff; color: #fff; }
.pf-cm-action-btn svg { flex-shrink: 0; transition: stroke 0.18s, color 0.18s; }
/* Active / toggled state (e.g. compare added) */
.pf-cm-action-btn.is-active,
.pf-cm-action-btn.in-compare {
  background: var(--pf-accent, #E53935); border-color: var(--pf-accent, #E53935); color: #fff;
}
.pf-cm-action-btn.is-active svg,
.pf-cm-action-btn.in-compare svg { stroke: #fff; color: #fff; }

/* ── Delivery strip ── */
.pf-cm-delivery {
  border: 1px solid var(--pf-border, #e8ecf0);
  border-radius: 8px; overflow: hidden; margin-bottom: 16px;
}
.pf-cm-delivery__item {
  display: flex; align-items: center; gap: 12px;
  padding: 11px 14px;
  border-bottom: 1px solid var(--pf-border, #e8ecf0);
  background: #fff;
}
.pf-cm-delivery__item:last-child { border-bottom: none; }
.pf-cm-delivery__item svg { flex-shrink: 0; color: var(--pf-accent, #E53935); }
.pf-cm-delivery__item strong { font-size: 12px; display: block; color: #0a0a0a; }
.pf-cm-delivery__item span { font-size: 11px; color: #64748b; }

/* ── Accordion tabs ── */
/* ═══════════════════════════════════════════════════════
   CLASSIC MOBILE — TABS MODE
   Activated when product_mobile_desc_style = 'tabs'
═══════════════════════════════════════════════════════ */
.pf-cm-tabs-mode {
  border: none !important;
  border-radius: 0 !important;
  overflow: visible !important;
  margin-top: 24px;
  margin-bottom: 20px;
}

/* Tab nav strip */
.pf-cm-tabs-nav {
  display: flex;
  gap: 0;
  border-bottom: 2px solid var(--pf-border, #e8ecf0);
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  margin-bottom: 0;
}
.pf-cm-tabs-nav::-webkit-scrollbar { display: none; }

.pf-cm-tab-btn {
  flex: 0 0 auto;
  padding: 10px 16px;
  font-size: 13px; font-weight: 700;
  color: #6b7280;
  background: none; border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  cursor: pointer;
  white-space: nowrap;
  font-family: var(--pf-font, system-ui);
  transition: color 0.18s, border-color 0.18s;
}
.pf-cm-tab-btn.is-active {
  color: var(--pf-accent, #E53935);
  border-bottom-color: var(--pf-accent, #E53935);
}
.pf-cm-tab-btn em {
  font-style: normal;
  font-size: 11px;
  opacity: 0.7;
  margin-left: 3px;
}

/* Tab panels */
.pf-cm-tab-panel {
  display: none;
  padding: 20px 0 8px;
  font-size: 14px; line-height: 1.8;
  color: #374151;
}
.pf-cm-tab-panel h2, .pf-cm-tab-panel h3, .pf-cm-tab-panel h4 {
  font-size: 17px; font-weight: 800; color: var(--pf-dark);
  margin: 24px 0 10px; letter-spacing: -.3px; line-height: 1.3;
}
.pf-cm-tab-panel h2:first-child, .pf-cm-tab-panel h3:first-child { margin-top: 0; }
.pf-cm-tab-panel p { margin: 0 0 14px; }
.pf-cm-tab-panel p:last-child { margin-bottom: 0; }
.pf-cm-tab-panel ul, .pf-cm-tab-panel ol { padding-left: 20px; margin: 0 0 14px; }
.pf-cm-tab-panel li { margin-bottom: 6px; }
.pf-cm-tab-panel strong { font-weight: 700; color: var(--pf-dark); }
.pf-cm-tab-panel.is-active { display: block; }
.pf-cm-tab-panel table { width: 100%; border-collapse: collapse; font-size: 13px; }
.pf-cm-tab-panel table th,
.pf-cm-tab-panel table td {
  padding: 8px 10px;
  border: 1px solid var(--pf-border, #e8ecf0);
  text-align: left;
}
.pf-cm-tab-panel table th { background: #f8f9fb; font-weight: 700; }

.pf-cm-accordions {
  border: 1px solid var(--pf-border, #e8ecf0);
  border-radius: 8px; overflow: hidden;
  margin-top: 24px; margin-bottom: 20px;
}
/* pf-cm-acc border rules moved into grid block above */
.pf-cm-acc__hdr {
  width: 100%; display: flex; align-items: center;
  justify-content: space-between;
  padding: 14px 16px; background: #fff; border: none;
  cursor: pointer; text-align: left;
  font-size: 13px; font-weight: 700; color: #0a0a0a;
  font-family: var(--pf-font, system-ui);
  transition: color 0.18s ease;
}
.pf-cm-acc__hdr svg { transition: transform 0.22s ease; flex-shrink: 0; color: #94a3b8; }
.pf-cm-acc__hdr.is-open { color: var(--pf-accent, #E53935); }
.pf-cm-acc__hdr.is-open svg { transform: rotate(180deg); color: var(--pf-accent, #E53935); }
.pf-cm-acc {
  display: grid;
  grid-template-rows: auto 0fr;
  transition: grid-template-rows 0.28s ease;
  border-bottom: 1px solid var(--pf-border, #e8ecf0);
}
.pf-cm-acc:last-child { border-bottom: none; }
.pf-cm-acc:has(.pf-cm-acc__hdr.is-open) {
  grid-template-rows: auto 1fr;
}
.pf-cm-acc__hdr { display: flex; }
.pf-cm-acc__body {
  overflow: hidden;
  min-height: 0;
  padding: 0 16px;
  font-size: 13.5px;
  line-height: 1.72;
  color: #374151;
  background: #fafafa;
  transition: padding 0.35s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  opacity: 0;
}
.pf-cm-acc__hdr.is-open + .pf-cm-acc__body {
  padding: 14px 16px 18px;
  opacity: 1;
}
.pf-cm-acc__body h2 { display: none; }
.pf-cm-acc__body p { margin: 0 0 8px; }
.pf-cm-acc__body table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.pf-cm-acc__body table th,
.pf-cm-acc__body table td {
  padding: 8px 12px; border: 1px solid var(--pf-border, #e8ecf0); text-align: left;
}
.pf-cm-acc__body table th { background: #f8f9fb; font-weight: 700; }

/* ── Taxonomy — centred after accordions ── */
.pf-cm-taxonomy {
  display: flex; flex-direction: column; align-items: center;
  gap: 6px; margin-bottom: 20px; padding: 0 16px;
  text-align: center;
}
.pf-cm-tax-item {
  display: flex; align-items: center; gap: 7px;
  font-size: 11.5px; color: #64748b;
  padding: 4px 0;
}
.pf-cm-tax-item strong {
  color: #0a0a0a; font-weight: 700; font-size: 10px;
  text-transform: uppercase; letter-spacing: 0.6px;
  background: #f1f5f9; border-radius: 4px;
  padding: 2px 6px; flex-shrink: 0;
}
.pf-cm-tax-item a { color: var(--pf-accent, #E53935); text-decoration: none; }

/* ── Related products ── */
.pf-cm-related { margin-bottom: 20px; padding: 0; }
.pf-cm-related__head {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 10px; padding: 0 4px;
}
.pf-cm-related__head h3 {
  font-size: 15px; font-weight: 800; margin: 0; color: #0a0a0a;
  font-family: var(--pf-font, system-ui);
}
.pf-cm-related__nav { display: flex; gap: 7px; }
.pf-cm-related__nav button {
  width: 30px; height: 30px; border-radius: 8px;
  border: 1.5px solid var(--pf-border, #e8ecf0); background: #fff;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  color: #374151; transition: background 0.18s;
}
.pf-cm-related__nav button:hover { background: #f1f5f9; }
/* ────────────────────────────────────────────────
   MOBILE RELATED — SLIDER mode (default)
──────────────────────────────────────────────── */
.pf-related-mobile-layout--slider .pf-cm-related__wrap {
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-right: 0 !important;
}
.pf-related-mobile-layout--slider .pf-cm-related__wrap::-webkit-scrollbar { display: none; }

.pf-related-mobile-layout--slider .pf-cm-related__slider {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 6px;
  list-style: none; margin: 0; padding: 4px 2px 4px;
}
/* Column widths in slider mode */
.pf-related-mobile-layout--slider .pf-related-cols-1 li.product {
  flex: 0 0 calc(100% - 4px) !important;
  max-width: calc(100% - 4px) !important; width: calc(100% - 4px) !important;
  scroll-snap-align: start;
}
.pf-related-mobile-layout--slider .pf-related-cols-2 li.product,
.pf-related-mobile-layout--slider .pf-cm-related__slider li.product {
  flex: 0 0 calc(50% - 5px) !important;
  max-width: calc(50% - 5px) !important; width: calc(50% - 5px) !important;
  scroll-snap-align: start;
}
.pf-related-mobile-layout--slider .pf-related-cols-3 li.product {
  flex: 0 0 calc(33.33% - 7px) !important;
  max-width: calc(33.33% - 7px) !important; width: calc(33.33% - 7px) !important;
  scroll-snap-align: start;
}

/* ────────────────────────────────────────────────
   MOBILE RELATED — GRID mode
──────────────────────────────────────────────── */
.pf-related-mobile-layout--grid .pf-cm-related__wrap {
  overflow: visible;
}
.pf-related-mobile-layout--grid .pf-cm-related__slider {
  display: grid !important;
  flex-wrap: unset !important;
  gap: 6px;
  list-style: none; margin: 0; padding: 4px 2px;
  grid-template-columns: repeat(2, 1fr); /* default 2 cols */
}
.pf-related-mobile-layout--grid .pf-related-cols-1 { grid-template-columns: 1fr !important; }
.pf-related-mobile-layout--grid .pf-related-cols-2 { grid-template-columns: repeat(2, 1fr) !important; }
.pf-related-mobile-layout--grid .pf-related-cols-3 { grid-template-columns: repeat(3, 1fr) !important; }
.pf-related-mobile-layout--grid .pf-cm-related__slider li.product {
  width: 100% !important; flex: unset !important;
}
/* Hide nav arrows in grid mode */
.pf-related-mobile-layout--grid .pf-cm-related__nav { display: none !important; }

/* ────────────────────────────────────────────────
   CARD STYLES — floating vs breathless
──────────────────────────────────────────────── */
.pf-cm-related__slider .pf-product-card {
  border-radius: 12px !important;
  box-shadow: none !important;
  border: 1px solid #f0f0f0 !important;
}
.pf-cm-related__slider .card-image {
  aspect-ratio: 1 / 1; overflow: hidden;
}
.pf-cm-related__slider .card-image img {
  width: 100%; height: 100%; object-fit: cover;
}
/* ── Mobile related: compact card content ── */
/* Tighter content padding */
.pf-cm-related__slider li.product .card-content {
  padding: 7px 8px 8px !important;
}
/* Title — clip 2 lines, smaller */
.pf-cm-related__slider .woocommerce-loop-product__title,
.pf-cm-related__slider .card-title,
.pf-cm-related__slider li.product.title-small  .card-title,
.pf-cm-related__slider li.product.title-medium .card-title,
.pf-cm-related__slider li.product.title-large  .card-title {
  font-size: 11px !important;
  padding: 0 0 2px !important;
  font-weight: 600; color: #0a0a0a; line-height: 1.3;
  margin-bottom: 3px !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  white-space: normal !important;
}
.pf-cm-related__slider li.product .card-title a { font-size: 11px !important; color: #0a0a0a !important; }
/* Price */
.pf-cm-related__slider li.product .card-price { padding: 0 !important; }
.pf-cm-related__slider .price,
.pf-cm-related__slider li.product .card-price ins,
.pf-cm-related__slider li.product .card-price ins .woocommerce-Price-amount,
.pf-cm-related__slider li.product .card-price .current-price {
  font-size: 11px !important; font-weight: 700 !important;
  padding: 0 !important;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.pf-cm-related__slider .price ins { text-decoration: none; }
.pf-cm-related__slider .price del,
.pf-cm-related__slider li.product .card-price del,
.pf-cm-related__slider li.product .card-price del .woocommerce-Price-amount {
  font-size: 9px !important; opacity: 0.5;
}
/* Category */
.pf-cm-related__slider .card-category,
.pf-cm-related__slider .card-category a {
  font-size: 8px !important;
  letter-spacing: 0.4px !important;
  margin-bottom: 3px !important;
  line-height: 1.2 !important;
}
/* Hide clutter in compact related slider — keep actions/ATC visible */
.pf-cm-related__slider .button,
.pf-cm-related__slider .pf-m-cat,
.pf-cm-related__slider .pf-cat,
.pf-cm-related__slider .ast-woo-product-category,
.pf-cm-related__slider .card-swatches,
.pf-cm-related__slider .card-rating { display: none !important; }

/* Ensure actions and ATC work exactly like shop cards */
.pf-cm-related__slider .card-actions { display: flex !important; }
.pf-cm-related__slider .pf-card-atc-overlay { display: block !important; }
/* Card overflow */
.pf-cm-related__slider .pf-product-card,
.pf-cm-related__slider li.product {
  overflow: hidden !important;
  min-width: 0 !important;
}

/* Nav buttons — disabled state */
.pf-cm-related__nav button:disabled { opacity: 0.35; cursor: default; }

/* ════════════════════════════════════════
   STICKY BOTTOM ATC BAR
   Hidden by default, shown via JS scroll trigger
════════════════════════════════════════ */
.pf-cm-sticky {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 10000;
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px; padding: 8px 16px;
  padding-bottom: max(8px, env(safe-area-inset-bottom));
  min-height: 64px;
  background: rgba(255,255,255,0.97);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border-top: 1px solid var(--pf-border, #e8ecf0);
  box-shadow: 0 -6px 24px rgba(0,0,0,0.09);
  transform: translateY(100%);
  transition: transform 0.28s cubic-bezier(0.4,0,0.2,1);
  will-change: transform;
}
.pf-cm-sticky.is-visible {
  transform: translateY(0);
}
.pf-cm-sticky__info {
  display: flex; align-items: center; gap: 9px; flex-shrink: 0; min-width: 0;
}
.pf-cm-sticky__img {
  width: 38px; height: 38px; border-radius: 8px;
  object-fit: cover; border: 1px solid var(--pf-border, #e8ecf0); flex-shrink: 0;
}
.pf-cm-sticky__price { font-size: 15px; font-weight: 800; color: #0a0a0a; white-space: nowrap; }
.pf-cm-sticky__price ins { text-decoration: none; }
.pf-cm-sticky__actions { display: flex; gap: 8px; flex: 1; justify-content: flex-end; }
.pf-cm-sticky__btn {
  height: 42px; font-size: 12px; font-weight: 800;
  padding: 0 16px; border-radius: 10px; border: none;
  cursor: pointer; white-space: nowrap;
  font-family: var(--pf-font, system-ui);
  text-transform: uppercase; letter-spacing: 0.4px;
  transition: transform 0.18s, box-shadow 0.18s;
}
.pf-cm-sticky__btn:hover { transform: translateY(-1px); }
.pf-cm-sticky__btn--cart {
  background: var(--pf-btn-atc-bg, #0a0a0a); color: var(--pf-btn-atc-text, #fff);
}
.pf-cm-sticky__btn--buy {
  background: var(--pf-btn-buy-bg, #E53935); color: var(--pf-btn-buy-text, #fff);
}
.pf-cm-sticky__btn--oos {
  background: #94a3b8; color: #fff; cursor: not-allowed;
}

/* ── JS Gallery switcher (classic mobile thumbs) ── */


/* ================================================================
   POLICY / TRUST CARDS — Redux configurable, 1/2/3 col
================================================================ */
/* ================================================================
   POLICY / TRUST CARDS  — Envato Grade 2026
   Layouts: list | center | 2col | 3col | 4col
   All controlled via CSS custom properties from Redux
================================================================ */
.pf-policy-cards {
  /* Defaults — overridden by inline style from Redux */
  --ppc-icon-size: 28px;
  --ppc-icon-color: #E53935;
  --ppc-icon-bg: rgba(229,57,53,0.08);
  --ppc-bg: #ffffff;
  --ppc-border: #e8ecf0;
  --ppc-txt: 12;

  display: grid;
  gap: 10px;
  margin-top: 20px;
  margin-bottom: 18px;
}

/* ── Grid column variants — auto single row ── */
.pf-policy--1col   { grid-template-columns: 1fr; }
.pf-policy--2col   { grid-template-columns: 1fr 1fr; }
.pf-policy--3col   { grid-template-columns: 1fr 1fr 1fr; }
.pf-policy--4col   { grid-template-columns: repeat(4, 1fr); }
/* Legacy classes kept for compatibility */
.pf-policy--list   { grid-template-columns: 1fr; }
.pf-policy--center { grid-template-columns: 1fr; }

/* Mobile: 4 cards → 2×2, 3 cards → still single row */
@media (max-width: 600px) {
  .pf-policy--3col { grid-template-columns: 1fr 1fr 1fr; }
  .pf-policy--4col { grid-template-columns: 1fr 1fr; }
}

/* ── Base card ── */
.pf-policy-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8px;
  padding: 20px 14px 18px;
  background: var(--ppc-bg);
  border: 1px solid var(--ppc-border);
  border-radius: 14px;
  text-decoration: none !important;
  color: inherit;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
a.pf-policy-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 28px rgba(0,0,0,0.1);
  border-color: var(--ppc-icon-color, var(--pf-accent, #E53935));
}

/* ── Icon circle ── */
.pf-policy-card__icon {
  display: flex; align-items: center; justify-content: center;
  width: calc(var(--ppc-icon-size) * 2px);
  height: calc(var(--ppc-icon-size) * 2px);
  min-width: calc(var(--ppc-icon-size) * 2px);
  border-radius: 50%;
  background: var(--ppc-icon-bg);
  flex-shrink: 0;
  transition: transform 0.2s ease;
}
a.pf-policy-card:hover .pf-policy-card__icon { transform: scale(1.1); }
.pf-policy-card__icon svg {
  width: calc(var(--ppc-icon-size) * 1px) !important;
  height: calc(var(--ppc-icon-size) * 1px) !important;
  display: block;
}

/* ── Text ── */
.pf-policy-card__text { display: flex; flex-direction: column; gap: 2px; }
.pf-policy-card__title {
  font-size: calc(var(--ppc-txt) * 1px);
  font-weight: 800; color: #0a0a0a;
  line-height: 1.2; display: block;
  font-family: var(--pf-font, system-ui);
}
.pf-policy-card__sub {
  font-size: calc(var(--ppc-txt) * 0.88px);
  color: #64748b; display: block;
  line-height: 1.4; font-family: var(--pf-font, system-ui);
}

/* ── LIST layout: icon LEFT, text RIGHT (horizontal row) ── */
.pf-policy--list .pf-policy-card {
  flex-direction: row;
  text-align: left; gap: 14px;
  padding: 14px 18px; align-items: center;
}
.pf-policy--list .pf-policy-card__title,
.pf-policy--list .pf-policy-card__sub { text-align: left; }
.pf-policy--list .pf-policy-card__icon {
  width: calc(var(--ppc-icon-size) * 1.7px);
  height: calc(var(--ppc-icon-size) * 1.7px);
  min-width: calc(var(--ppc-icon-size) * 1.7px);
}

/* ── CENTER layout: big icon on top, text centred (vertical column) ── */
.pf-policy--center .pf-policy-card {
  flex-direction: column;
  align-items: center; text-align: center;
  gap: 10px; padding: 24px 16px 20px;
}
.pf-policy--center .pf-policy-card__icon {
  width: calc(var(--ppc-icon-size) * 2.2px);
  height: calc(var(--ppc-icon-size) * 2.2px);
  min-width: calc(var(--ppc-icon-size) * 2.2px);
}

/* ── 2col / 3col / 4col layouts — centred card style ── */
.pf-policy--2col .pf-policy-card,
.pf-policy--3col .pf-policy-card,
.pf-policy--4col .pf-policy-card {
  flex-direction: column;
  align-items: center; text-align: center;
  gap: 8px; padding: 20px 10px 18px;
}

/* ── Desktop context — extra polish ── */
.pf-policy--ctx-desktop .pf-policy-card { padding: 22px 16px 20px; }
.pf-policy--ctx-desktop .pf-policy-card__title { font-size: calc(var(--ppc-txt) * 1.08px); }
.pf-policy--ctx-desktop.pf-policy--list .pf-policy-card { padding: 16px 20px; }
.pf-policy--ctx-desktop.pf-policy--center .pf-policy-card { padding: 28px 20px 24px; }

/* ── Mobile context — tighter ── */
.pf-policy--ctx-mobile { margin-top: 16px; }
.pf-policy--ctx-mobile .pf-policy-card { padding: 16px 10px 14px; }

/* ── Responsive breakdowns ── */
@media (max-width: 480px) {
  /* 4 cards: 2x2 grid. 3 cards: stays single row (3 small cols) */
  .pf-policy--4col { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 340px) {
  .pf-policy--3col,
  .pf-policy--4col { grid-template-columns: 1fr 1fr; }
}

/* ================================================================
   CONTENT ALIGNMENT — Redux option (left / center / right)
================================================================ */
.pf-content-align--left  { text-align: left; }
.pf-content-align--center { text-align: center; }
.pf-content-align--right  { text-align: right; }

/* When centred, flex rows need justify-content: center */
.pf-content-align--center .pf-cm-title-row,
.pf-content-align--center .pf-cm-meta-strip,
.pf-content-align--center .pf-cm-actions,
.pf-content-align--center .pf-cm-header-row {
  justify-content: center;
}
.pf-content-align--right .pf-cm-title-row,
.pf-content-align--right .pf-cm-meta-strip,
.pf-content-align--right .pf-cm-actions,
.pf-content-align--right .pf-cm-header-row {
  justify-content: flex-end;
}
/* Desktop summary alignment */
.pf-content-align--center .pf-product__title-row,
.pf-content-align--center .pf-product__price-wrap,
.pf-content-align--center .pf-product__rating,
.pf-content-align--center .pf-product__cat { text-align: center; }
.pf-content-align--right .pf-product__title-row,
.pf-content-align--right .pf-product__price-wrap,
.pf-content-align--right .pf-product__cat { text-align: right; }

/* Policy cards alignment */
.pf-content-align--center .pf-policy-cards,
.pf-content-align--right  .pf-policy-cards { text-align: center; }

/* Policy card "Read Policy" underline link */
.pf-policy-card__link {
  display: inline-block;
  margin-top: 4px;
  font-size: calc(var(--ppc-txt, 12) * 0.88px);
  font-weight: 600;
  color: var(--pf-accent, #E53935);
  text-decoration: underline;
  text-underline-offset: 2px;
  font-family: var(--pf-font, system-ui);
  transition: opacity 0.15s;
}
.pf-policy-card__link:hover { opacity: 0.75; }

/* ================================================================
   PAYMENT BAR — Secure checkout strip
================================================================ */
.pf-payment-bar {
  margin-top: 18px;
  padding: 16px 20px;
  background: linear-gradient(135deg, #f8faff 0%, #f9fafb 100%);
  border: 1.5px solid var(--pf-border, #e5e7eb);
  border-radius: 14px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  text-align: center;
  box-shadow: 0 2px 12px rgba(0,0,0,.04);
}
.pf-payment-bar__head {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  color: var(--pf-dark, #0a0a0a);
}
.pf-payment-bar__lock {
  color: #10b981;
  flex-shrink: 0;
}
.pf-payment-bar__title {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  color: var(--pf-dark, #0a0a0a);
}
.pf-payment-bar__icons {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 6px;
}
.pf-pi {
  height: 30px;
  width: auto;
  border-radius: 6px;
  flex-shrink: 0;
  transition: transform 0.18s, box-shadow 0.18s;
  box-shadow: 0 1px 4px rgba(0,0,0,.10);
  background: #fff;
  padding: 2px 4px;
}
.pf-pi:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 10px rgba(0,0,0,0.12);
}
.pf-payment-bar__img {
  max-width: 100%;
  max-height: 32px;
  object-fit: contain;
  display: block;
}
.pf-payment-bar__sub {
  font-size: 11px;
  color: var(--pf-muted, #9ca3af);
  margin: 0;
  line-height: 1.4;
}

/* ── Rating bar fill — ensure golden shows even on narrow bars ── */
/* ════════════════════════════════════════════════════════════════
   PERFECTO REVIEWS — v9
════════════════════════════════════════════════════════════════ */

/* ── Layout ─────────────────────────────────────────────────── */
/* ════════════════════════════════════════════════════════════════
   REVIEWS TAB HEADING — matches .woocommerce-tabs ul.tabs exactly
   Appears above the reviews section, desktop + mobile
════════════════════════════════════════════════════════════════ */
.pf-reviews-tab-heading {
  display: flex;
  border-bottom: 2px solid var(--pf-border);
  margin: 48px 0 36px;
  padding: 0;
  list-style: none;
}
.pf-reviews-tab-heading__nav {
  display: flex;
  align-items: stretch;
}
.pf-reviews-tab-heading__label {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 28px;
  font-size: 12px;
  font-weight: 800;
  color: var(--pf-dark);
  text-transform: uppercase;
  letter-spacing: 0.6px;
  font-family: var(--pf-font);
  border-bottom: 2.5px solid var(--pf-accent);
  margin-bottom: -2px;
  line-height: 1;
  white-space: nowrap;
}
.pf-reviews-tab-heading__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  background: var(--pf-accent);
  color: #fff;
  border-radius: 20px;
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
}

/* ── Reviews section: sits right below tabs, no extra gap ── */
.pf-product__reviews-section { margin-top: 0; padding: 0 0 40px; }

/* ── Hide old pf-reviews-heading since we replaced it with the tab heading ── */
.pf-reviews-heading { display: none !important; }

/* Alignment modifiers */
.pf-reviews-tab-heading--left   { justify-content: flex-start; }
.pf-reviews-tab-heading--center { justify-content: center; }
.pf-reviews-tab-heading--right  { justify-content: flex-end; }

/* Mobile — same treatment, slightly tighter padding */
@media (max-width: 860px) {
  .pf-reviews-tab-heading {
    margin: 32px 0 24px;
  }
  .pf-reviews-tab-heading__label {
    padding: 12px 20px;
    font-size: 11px;
  }
}

/* ════════════════════════════════════════════════════════════════
   REVIEW SECTION — Redesigned for Perfecto v2
   Clean, editorial, conversion-focused. Desktop + Mobile.
════════════════════════════════════════════════════════════════ */
.pf-reviews {
  width:100%; font-family:var(--pf-font);
  background:var(--pf-white);
  border:1.5px solid var(--pf-border);
  border-radius:16px;
  overflow:visible;
  box-shadow:0 2px 16px rgba(0,0,0,.05);
  padding:0;
}
/* Clip corners of child elements to match card radius */
.pf-reviews__sidebar {
  border-radius:16px 0 0 16px;
}
.pf-reviews__main {
  border-radius:0 16px 16px 0;
}

/* Section heading removed */
.pf-rv-heading__left { display:flex; align-items:center; gap:12px; }
.pf-rv-heading__icon {
  width:44px; height:44px;
  background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%);
  border-radius:12px; display:flex; align-items:center; justify-content:center;
  flex-shrink:0; box-shadow:0 6px 16px rgba(245,158,11,.32);
}
.pf-rv-heading__icon svg { width:20px; height:20px; }
.pf-rv-heading__icon svg { stroke:#fff; fill:none; }
.pf-rv-heading__info h2 {
  font-size:20px !important; font-weight:900 !important;
  color:var(--pf-dark) !important; letter-spacing:-.5px !important;
  line-height:1 !important; margin:0 !important; padding:0 !important;
  border:none !important; background:none !important;
}
.pf-rv-heading__info p {
  font-size:12px; color:var(--pf-muted); font-weight:500; margin:4px 0 0;
}
.pf-rv-heading__info p {
  font-size:12px; color:var(--pf-muted); font-weight:500; margin:3px 0 0;
}

.pf-rv-heading__login {
  display:inline-flex; align-items:center; gap:7px;
  padding:9px 16px; background:var(--pf-accent); color:#fff;
  border:none; border-radius:8px; font-size:12px; font-weight:700;
  cursor:pointer; font-family:var(--pf-font); text-decoration:none;
  transition:opacity .15s; white-space:nowrap;
}
.pf-rv-heading__login:hover { opacity:.85; color:#fff; }

/* ── Layout ──────────────────────────────────────────────────── */
.pf-reviews__layout {
  display:grid; grid-template-columns:240px 1fr;
  gap:0; align-items:start;
}



/* ── Sidebar ─────────────────────────────────────────────────── */
.pf-reviews__sidebar {
  position:sticky; top:80px;
  padding:18px 16px;
  border-right:1.5px solid var(--pf-border);
  background:var(--pf-surface);
  border-radius:16px 0 0 16px;
  align-self:start;
}

.pf-rv-score-card {
  background:var(--pf-white); border:1.5px solid var(--pf-border);
  border-radius:12px; padding:16px 14px 14px; margin-bottom:12px; text-align:center;
  box-shadow:0 2px 8px rgba(0,0,0,.04);
}
.pf-rv-score-card__num {
  display:block; font-size:46px; font-weight:900; color:var(--pf-dark);
  letter-spacing:-3px; line-height:1;
}
.pf-rv-score-card__stars { display:flex; justify-content:center; gap:3px; margin:8px 0 4px; }
.pf-rv-score-card__label { font-size:11px; font-weight:600; color:var(--pf-muted); }



.pf-rv-bars {
  display:flex; flex-direction:column; gap:2px;
  background:var(--pf-white); border:1.5px solid var(--pf-border);
  border-radius:10px; padding:8px 10px; margin-bottom:12px;
}
.pf-rv-bar {
  display:flex; align-items:center; gap:8px; padding:4px 6px;
  border-radius:7px; border:none; background:none; cursor:pointer;
  width:100%; text-align:left; transition:.15s;
}
.pf-rv-bar:hover:not(:disabled) { background:rgba(245,158,11,.08); }
.pf-rv-bar.is-active { background:rgba(245,158,11,.12); }
.pf-rv-bar.is-disabled { opacity:.3; cursor:not-allowed; }
.pf-rv-bar__label {
  font-size:11px; font-weight:700; color:var(--pf-muted);
  display:flex; align-items:center; gap:2px; min-width:20px; flex-shrink:0;
}
.pf-rv-bar.is-active .pf-rv-bar__label { color:var(--pf-dark); }
.pf-rv-bar__track { flex:1; height:5px; background:var(--pf-border); border-radius:99px; overflow:hidden; }
.pf-rv-bar__fill {
  height:100%; background:linear-gradient(90deg,#f59e0b,#fbbf24);
  border-radius:99px; transition:width .5s cubic-bezier(.4,0,.2,1); display:block;
}
.pf-rv-bar.is-active .pf-rv-bar__fill { background:linear-gradient(90deg,#d97706,#f59e0b); }
.pf-rv-bar__count { font-size:11px; font-weight:700; color:var(--pf-muted); min-width:16px; text-align:right; flex-shrink:0; }

.pf-rv-clear {
  display:none; align-items:center; justify-content:center; gap:5px; width:100%;
  padding:7px; border:1.5px dashed var(--pf-border); border-radius:7px;
  background:none; color:var(--pf-muted); font-size:11px; font-weight:600;
  cursor:pointer; font-family:var(--pf-font); transition:all .15s; margin-top:4px;
}
.pf-rv-clear:hover { border-color:var(--pf-accent); color:var(--pf-accent); }

.pf-rv-write-btn {
  display:flex; align-items:center; justify-content:center; gap:8px; width:100%;
  padding:12px; margin-top:0; background:var(--pf-dark); color:#fff;
  border:none; border-radius:10px; font-size:12px; font-weight:700; cursor:pointer;
  font-family:var(--pf-font); letter-spacing:.2px; transition:opacity .15s;
}
.pf-rv-write-btn:hover { opacity:.84; }
.pf-rv-write-btn.is-cancel {
  background:transparent; color:var(--pf-muted);
  border:1.5px solid var(--pf-border); opacity:1; margin-top:8px;
}
.pf-rv-write-btn.is-cancel:hover { border-color:var(--pf-dark); color:var(--pf-dark); }
.pf-rv-login-btn {
  display:flex; align-items:center; justify-content:center; gap:7px; width:100%;
  padding:11px; margin-top:14px; background:var(--pf-accent); color:#fff;
  border-radius:8px; font-size:12px; font-weight:700; text-decoration:none;
  font-family:var(--pf-font); transition:opacity .15s;
}
.pf-rv-login-btn:hover { opacity:.85; color:#fff; }
.pf-rv-must-purchase {
  display:flex; align-items:flex-start; gap:8px; margin-top:12px; padding:10px 12px;
  background:rgba(245,158,11,.06); border:1.5px solid rgba(245,158,11,.2);
  border-radius:8px; font-size:11px; color:#92710a; line-height:1.5;
}
.pf-rv-must-purchase svg { flex-shrink:0; margin-top:1px; stroke:#92710a; }

/* ── Main area ───────────────────────────────────────────────── */
.pf-reviews__main { min-width:0; padding:24px; border-radius:0 16px 16px 0; }

.pf-rv-toolbar {
  display:flex; align-items:center; justify-content:space-between;
  padding-bottom:12px; border-bottom:1.5px solid var(--pf-border); margin-bottom:14px; gap:8px;
}
.pf-rv-toolbar__count { font-size:12px; font-weight:600; color:var(--pf-muted); }
.pf-rv-sort { display:flex; align-items:center; gap:5px; }
.pf-rv-sort svg { color:var(--pf-muted); }
.pf-rv-sort__select {
  border:1.5px solid var(--pf-border); border-radius:7px;
  padding:6px 10px; font-size:12px; font-weight:600;
  color:var(--pf-dark); background:var(--pf-white); cursor:pointer;
  font-family:var(--pf-font); outline:none; transition:border-color .15s;
}
.pf-rv-sort__select:focus { border-color:var(--pf-dark); }

/* ── Media strip ─────────────────────────────────────────────── */
.pf-rv-media-strip {
  margin: 0 0 20px;
  border: 1.5px solid var(--pf-border);
  border-radius: 8px;
  overflow: hidden;
  background: var(--pf-white);
}
.pf-rv-media-strip__header {
  display:flex; align-items:center; justify-content:space-between;
  padding:9px 14px; background:var(--pf-surface);
  border-bottom:1.5px solid var(--pf-border);
}
.pf-rv-media-strip__label {
  display:flex; align-items:center; gap:6px; font-size:10px;
  font-weight:800; color:var(--pf-muted); letter-spacing:.7px; text-transform:uppercase;
}
.pf-rv-media-strip__count {
  font-size:10px; font-weight:800; background:var(--pf-dark);
  color:#fff; border-radius:99px; padding:2px 8px;
}
.pf-rv-media-strip__track {
  display:flex; gap:8px; padding:11px 13px 12px;
  overflow-x:auto; overflow-y:hidden; scrollbar-width:none;
  -webkit-overflow-scrolling:touch; overscroll-behavior-x:contain;
  box-shadow: inset 0 -1.5px 0 var(--pf-border);
}
.pf-rv-media-strip__track::-webkit-scrollbar { display:none; }
.pf-rv-media-strip__item {
  position:relative; flex-shrink:0; width:80px; height:80px;
  border-radius:10px; overflow:hidden; border:none; padding:0;
  cursor:pointer; display:block; background:#e8ecf0;
  transition:transform .18s,box-shadow .18s;
  outline:2.5px solid transparent; outline-offset:2px;
}
.pf-rv-media-strip__item:hover { transform:scale(1.06); box-shadow:0 6px 18px rgba(0,0,0,.18); outline-color:var(--pf-star); }
.pf-rv-media-strip__item:focus-visible { outline-color:var(--pf-accent); }
.pf-rv-media-strip__thumb { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; pointer-events:none; }
.pf-rv-media-strip__play { position:absolute; inset:0; z-index:2; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,.32); pointer-events:none; }
.pf-rv-media-strip__item video::-webkit-media-controls,
.pf-rv-media-strip__item video::-webkit-media-controls-enclosure { display:none !important; }
.pf-rv-media-strip__author-chip {
  position:absolute; bottom:4px; left:4px; z-index:3; width:18px; height:18px;
  border-radius:50%; background:rgba(0,0,0,.55); color:#fff; font-size:9px;
  font-weight:800; display:flex; align-items:center; justify-content:center;
  border:1.5px solid rgba(255,255,255,.7); pointer-events:none; text-transform:uppercase;
}

/* ── Review list & cards ─────────────────────────────────────── */
.pf-rv-list .commentlist { margin:0 !important; padding:0 !important; list-style:none !important; }
.pf-rv-card {
  padding:0 !important; margin:0 !important;
  background:var(--pf-white) !important; border:none !important;
  border-bottom:1.5px solid var(--pf-border) !important;
  border-radius:0 !important; box-shadow:none !important;
  transition:background .12s !important;
}
.pf-rv-card:hover { background:var(--pf-surface) !important; }
.pf-rv-card:last-child { border-bottom:none !important; }
.pf-rv-card__inner { display:flex; gap:13px; align-items:flex-start; padding:18px 0; }
.pf-rv-card__avatar { flex-shrink:0; }
.pf-rv-card__avatar img,
.pf-rv-card__avatar .avatar {
  width:40px !important; height:40px !important; border-radius:50% !important;
  object-fit:cover !important; display:block !important; border:none !important;
}
.pf-rv-card__avatar-placeholder {
  width:40px; height:40px; border-radius:50%;
  background:linear-gradient(135deg,#e2e8f0,#cbd5e1);
  display:flex; align-items:center; justify-content:center;
  font-size:13px; font-weight:800; color:#64748b;
}
.pf-rv-card__body { flex:1; min-width:0; }
.pf-rv-card__header {
  display:flex; align-items:center; justify-content:space-between;
  gap:8px; margin-bottom:4px; flex-wrap:wrap;
}
.pf-rv-card__header-left { display:flex; align-items:center; gap:7px; flex-wrap:wrap; min-width:0; }
.pf-rv-card__author { font-size:13px; font-weight:700; color:var(--pf-dark); }
.pf-rv-card__verified {
  display:inline-flex; align-items:center; gap:3px;
  background:#f0fdf4; border:1px solid #bbf7d0; color:#15803d;
  font-size:9px; font-weight:800; border-radius:4px;
  padding:2px 6px; letter-spacing:.3px; text-transform:uppercase;
}
.pf-rv-card__date { font-size:11px; color:var(--pf-muted); white-space:nowrap; flex-shrink:0; }
.pf-rv-card__stars { display:flex; gap:2px; margin-bottom:7px; }
.pf-rv-card__text { font-size:13px; line-height:1.72; color:var(--pf-text); }
.pf-rv-card__text p { margin:0 !important; }
.pf-rv-media-row { display:flex; flex-wrap:wrap; gap:7px; margin-top:10px; }
.pf-rv-media-item {
  position:relative; width:68px; height:68px; border-radius:8px;
  overflow:hidden; cursor:pointer; border:1.5px solid var(--pf-border);
  padding:0; background:var(--pf-surface); transition:transform .15s,box-shadow .15s,border-color .15s; flex-shrink:0;
}
.pf-rv-media-item:hover { transform:scale(1.06); box-shadow:0 4px 14px rgba(0,0,0,.14); border-color:var(--pf-star); }
.pf-rv-media-thumb { width:100%; height:100%; object-fit:cover; display:block; }
.pf-rv-media-play { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,.35); }

/* ── Access notices ──────────────────────────────────────────── */
.pf-rv-access-notice { display:flex; align-items:flex-start; gap:12px; padding:13px 15px; border-radius:10px; margin-top:8px; }
.pf-rv-access-notice--login { background:rgba(229,57,53,.04); border:1.5px solid rgba(229,57,53,.12); }
.pf-rv-access-notice--login svg { stroke:var(--pf-accent); flex-shrink:0; margin-top:2px; }
.pf-rv-access-notice--purchase { background:rgba(245,158,11,.05); border:1.5px solid rgba(245,158,11,.18); }
.pf-rv-access-notice--purchase svg { stroke:#b78a00; flex-shrink:0; margin-top:2px; }
.pf-rv-access-notice strong { display:block; font-size:13px; font-weight:700; color:var(--pf-dark); margin-bottom:2px; }
.pf-rv-access-notice p { margin:0; font-size:12px; color:var(--pf-muted); line-height:1.5; }
.pf-rv-access-notice a { color:var(--pf-accent); }

/* ── Empty states ────────────────────────────────────────────── */
.pf-rv-empty-filter {
  display:flex; flex-direction:column; align-items:center; gap:10px;
  padding:40px 20px; color:var(--pf-muted); text-align:center;
}
.pf-rv-empty-filter svg { opacity:.25; }
.pf-rv-empty-card { text-align:center; padding:24px 16px; }
.pf-rv-empty-card__stars { display:flex; justify-content:center; gap:3px; margin-bottom:10px; opacity:.2; }
.pf-rv-empty-card h3 { font-size:15px; font-weight:700; color:var(--pf-dark); margin:0 0 5px; }
.pf-rv-empty-card p { font-size:12px; color:var(--pf-muted); margin:0; }
.pf-rv-first-prompt {
  display:flex; flex-direction:column; align-items:center; gap:8px;
  padding:36px 16px; color:var(--pf-muted); text-align:center; opacity:.5;
}
.pf-rv-first-prompt p { margin:0; font-size:13px; }

/* ── Review form ─────────────────────────────────────────────── */
.pf-rv-form-wrap {
  background:var(--pf-surface); border:1.5px solid var(--pf-border);
  border-radius:12px; padding:20px; margin-top:16px;
}
.pf-rv-form__title {
  font-size:15px !important; font-weight:800 !important; color:var(--pf-dark) !important;
  margin:0 0 18px !important; padding:0 !important; border:none !important; letter-spacing:-.2px !important;
}
.pf-rv-form-wrap label {
  display:block; font-size:10px; font-weight:800; color:var(--pf-dark);
  margin-bottom:4px; letter-spacing:.3px; text-transform:uppercase;
}
/* Checkbox row (save my name/email) */
.pf-rv-form-wrap .comment-form-cookies-consent {
  display:flex; align-items:flex-start; gap:10px; margin-bottom:14px !important;
}
.pf-rv-form-wrap .comment-form-cookies-consent input[type="checkbox"] {
  width:16px; height:16px; min-width:16px; padding:0; margin-top:2px;
  border:1.5px solid var(--pf-border); border-radius:4px; cursor:pointer;
  accent-color:var(--pf-dark); flex-shrink:0;
}
.pf-rv-form-wrap .comment-form-cookies-consent label {
  font-size:11px; font-weight:500; color:var(--pf-muted);
  text-transform:none; letter-spacing:0; margin-bottom:0; cursor:pointer; line-height:1.5;
}
.pf-rv-form-wrap input,
.pf-rv-form-wrap textarea {
  width:100%; padding:9px 12px; border:1.5px solid var(--pf-border); border-radius:8px;
  font-size:13px; font-family:var(--pf-font); color:var(--pf-text);
  background:var(--pf-white); outline:none; transition:border-color .15s,box-shadow .15s; box-sizing:border-box;
}
.pf-rv-form-wrap input:focus,
.pf-rv-form-wrap textarea:focus { border-color:var(--pf-dark); box-shadow:0 0 0 3px rgba(17,24,39,.06); }
.pf-rv-form-wrap textarea { resize:vertical; min-height:90px; line-height:1.6; }
.pf-rv-form-wrap .comment-form-author,
.pf-rv-form-wrap .comment-form-email { display:inline-block; width:calc(50% - 7px); }
.pf-rv-form-wrap .comment-form-author { margin-right:14px; }
.pf-rv-form-wrap .comment-form p { margin-bottom:14px !important; }
.pf-rv-form-wrap .comment-form p:last-of-type { margin-bottom:0 !important; }
.pf-rv-form-wrap #submit {
  display:inline-flex; align-items:center; justify-content:center; gap:7px;
  padding:11px 24px; background:var(--pf-dark); color:#fff; border:none;
  border-radius:8px; font-size:13px; font-weight:700; cursor:pointer;
  font-family:var(--pf-font); transition:opacity .15s; letter-spacing:.2px; width:100%;
}
.pf-rv-form-wrap #submit:hover { opacity:.84; }
.pf-rv-form-wrap #submit:disabled { opacity:.4; cursor:default; }
.pf-rv-form-msg { padding:10px 13px; border-radius:7px; font-size:12px; font-weight:600; margin-bottom:10px; }
.pf-rv-form-msg--success { background:#d1fae5; color:#065f46; border:1px solid #6ee7b7; }
.pf-rv-form-msg--error { background:#fee2e2; color:#991b1b; border:1px solid #fca5a5; }

/* ── Star picker ─────────────────────────────────────────────── */
.pf-rv-star-picker .stars span,
.comment-form-rating .stars span,
.woocommerce-product-rating a.star-1,
.woocommerce-product-rating .screen-reader-text { display:none !important; }
.pf-rv-star-picker { margin-bottom:14px !important; }
.pf-rv-star-picker > label {
  display:block; font-size:10px; font-weight:800; color:var(--pf-dark);
  margin-bottom:7px; letter-spacing:.3px; text-transform:uppercase;
}
.pf-star-input { display:flex; gap:4px; align-items:center; }
.pf-star-input__star {
  background:none; border:none; padding:3px; cursor:pointer;
  color:var(--pf-border); transition:color .1s,transform .12s;
}
.pf-star-input__star svg { display:block; width:22px; height:22px; }
.pf-star-input__star:hover,
.pf-star-input__star.is-hover,
.pf-star-input__star.is-selected { color:var(--pf-star); transform:scale(1.18); }
.pf-star-input__star.is-selected svg { fill:var(--pf-star); stroke:var(--pf-star); }
.pf-star-input__star.is-hover svg { fill:rgba(245,158,11,.3); stroke:var(--pf-star); }
.pf-star-input__label {
  font-size:12px; font-weight:700; color:var(--pf-star);
  margin-left:4px; min-width:60px; transition:opacity .15s;
}

/* ── Media upload ────────────────────────────────────────────── */
.pf-rv-media-upload { margin:0 0 14px; }
.pf-rv-media-header { display:flex; align-items:center; margin-bottom:7px; }
.pf-rv-media-label { font-size:10px; font-weight:800; color:var(--pf-dark); letter-spacing:.3px; text-transform:uppercase; }
.pf-rv-media-hint { font-weight:500; color:var(--pf-muted); margin-left:4px; text-transform:none; letter-spacing:0; }
.pf-rv-media-btn {
  display:flex; align-items:center; gap:10px; padding:12px 18px;
  width:100%; background:var(--pf-white); border:1.5px dashed var(--pf-border);
  border-radius:10px; font-size:12px; font-weight:600; color:var(--pf-muted);
  cursor:pointer; font-family:var(--pf-font); transition:all .15s;
  box-sizing:border-box;
}
.pf-rv-media-btn:hover { border-color:var(--pf-dark); color:var(--pf-dark); }
.pf-rv-media-btn__ico {
  display:flex; align-items:center; justify-content:center;
  width:32px; height:32px; border-radius:8px;
  background:var(--pf-surface); flex-shrink:0;
}
.pf-rv-media-btn__ico svg { display:block; }
.pf-rv-media-btn__txt { font-size:13px; font-weight:600; }
.pf-rv-media-btn:hover { border-color:var(--pf-dark); color:var(--pf-dark); }
.pf-rv-media-preview { display:flex; flex-wrap:wrap; gap:7px; margin-top:8px; }
.pf-rv-thumb { position:relative; width:64px; height:64px; border-radius:7px; overflow:hidden; border:1.5px solid var(--pf-border); }
.pf-rv-thumb__media { width:100%; height:100%; object-fit:cover; display:block; }
.pf-rv-thumb__play { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,.28); pointer-events:none; }
.pf-rv-thumb__remove { position:absolute; top:3px; right:3px; width:18px; height:18px; border-radius:50%; background:rgba(0,0,0,.55); border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; padding:0; }

/* ── Pagination ──────────────────────────────────────────────── */
.pf-rv-pagination { margin-top:16px; display:flex; align-items:center; justify-content:center; gap:10px; }
.pf-rv-show-more {
  display:flex; align-items:center; gap:5px; padding:9px 22px;
  background:var(--pf-white); border:1.5px solid var(--pf-border);
  border-radius:99px; font-size:12px; font-weight:700; color:var(--pf-dark);
  cursor:pointer; font-family:var(--pf-font); transition:all .15s;
}
.pf-rv-show-more:hover { border-color:var(--pf-dark); }
.pf-rv-page-info { font-size:11px; color:var(--pf-muted); font-weight:600; }

/* ── Old summary classes (hidden — belt+suspenders) ──────────── */
.pf-rv-summary,.pf-rv-summary__score,.pf-rv-summary__big,
.pf-rv-summary__number,.pf-rv-summary__stars,.pf-rv-summary__label,
.pf-rh-scorecard { display:none !important; }
.pf-rv-star,.pf-rv-star--filled,.pf-rv-star--half { fill:var(--pf-border); stroke:var(--pf-border); }
.pf-rv-star--filled { fill:var(--pf-star); stroke:var(--pf-star); }

/* ════════════════════════════════════════════════════════════════
   LIGHTBOX (unchanged — already working well)
════════════════════════════════════════════════════════════════ */
.pf-rv-lightbox { position:fixed; inset:0; z-index:999999; display:flex; align-items:stretch; background:rgba(0,0,0,.96); -webkit-tap-highlight-color:transparent; }
.pf-rv-lb__close { position:fixed; top:max(14px,env(safe-area-inset-top)); right:max(14px,env(safe-area-inset-right)); width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18); cursor:pointer; display:flex; align-items:center; justify-content:center; color:#fff; z-index:20; transition:background .15s; -webkit-tap-highlight-color:transparent; }
.pf-rv-lb__close:hover,.pf-rv-lb__close:active { background:rgba(255,255,255,.22); }
.pf-rv-lb__counter { position:fixed; top:max(17px,env(safe-area-inset-top)); left:50%; transform:translateX(-50%); background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.14); color:rgba(255,255,255,.8); font-size:11px; font-weight:700; padding:4px 14px; border-radius:99px; z-index:20; letter-spacing:.5px; pointer-events:none; white-space:nowrap; }
.pf-rv-lb__prev,.pf-rv-lb__next { position:fixed; top:50%; transform:translateY(-50%); width:46px; height:46px; border-radius:50%; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.15); cursor:pointer; display:flex; align-items:center; justify-content:center; color:#fff; z-index:20; transition:background .15s; -webkit-tap-highlight-color:transparent; }
.pf-rv-lb__prev { left:16px; }
.pf-rv-lb__next { right:16px; }
.pf-rv-lb__prev:hover,.pf-rv-lb__next:hover { background:rgba(255,255,255,.2); }
.pf-rv-lb__track-wrap { flex:1; position:relative; display:flex; align-items:center; justify-content:center; overflow:hidden; touch-action:pan-y; cursor:grab; }
.pf-rv-lb__track-wrap:active { cursor:grabbing; }
.pf-rv-lb__track { display:flex; align-items:center; transition:transform .3s cubic-bezier(.4,0,.2,1); will-change:transform; width:100%; }
.pf-rv-lb__slide { flex-shrink:0; width:100vw; display:flex; align-items:center; justify-content:center; padding:64px 70px 140px; box-sizing:border-box; }
.pf-rv-lb__img { max-width:100%; max-height:78dvh; border-radius:8px; object-fit:contain; box-shadow:0 20px 60px rgba(0,0,0,.6); display:block; user-select:none; -webkit-user-drag:none; pointer-events:none; }
.pf-rv-lb__video { max-width:100%; max-height:78dvh; border-radius:8px; outline:none; display:block; }
.pf-rv-lb__dots { position:fixed; bottom:max(112px,calc(106px + env(safe-area-inset-bottom))); left:50%; transform:translateX(-50%); display:flex; gap:5px; z-index:20; }
.pf-rv-lb__dot { width:5px; height:5px; border-radius:50%; background:rgba(255,255,255,.28); border:none; cursor:pointer; transition:background .15s,transform .15s; padding:0; }
.pf-rv-lb__dot.is-active { background:#fff; transform:scale(1.6); }
.pf-rv-lb__info { position:fixed; bottom:0; left:0; right:0; z-index:20; background:linear-gradient(to top,rgba(0,0,0,.95) 0%,rgba(0,0,0,.6) 60%,transparent 100%); padding:36px 28px max(20px,env(safe-area-inset-bottom)) 28px; pointer-events:none; }
.pf-rv-lb__info-inner { max-width:580px; margin:0 auto; display:flex; flex-direction:column; align-items:center; gap:5px; text-align:center; }
.pf-rv-lb__info-row { display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap; }
.pf-rv-lb__info-stars { display:flex; gap:3px; align-items:center; justify-content:center; }
.pf-rv-lb__info-author { font-size:14px; font-weight:700; color:#fff; letter-spacing:-.1px; }
.pf-rv-lb__info-verified { display:inline-flex; align-items:center; gap:3px; background:rgba(34,197,94,.2); border:1px solid rgba(34,197,94,.35); color:#4ade80; font-size:9px; font-weight:800; border-radius:4px; padding:2px 6px; letter-spacing:.4px; text-transform:uppercase; }
.pf-rv-lb__info-text { font-size:13px; line-height:1.6; color:rgba(255,255,255,.7); overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; max-width:100%; }

/* ════════════════════════════════════════════════════════════════
   SECTION HEADING — outside .pf-reviews__layout
════════════════════════════════════════════════════════════════ */
.pf-product__reviews-section { margin-top:0 !important; padding:0 0 40px; }
.pf-reviews-heading {
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; padding:28px 0 22px;
  border-top:2px solid var(--pf-border); margin-bottom:0; flex-wrap:wrap;
}
.pf-reviews-heading__left { display:flex; align-items:center; gap:12px; }
.pf-reviews-heading__icon {
  width:42px; height:42px; background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%);
  border-radius:11px; display:flex; align-items:center; justify-content:center;
  flex-shrink:0; box-shadow:0 4px 12px rgba(245,158,11,.22);
}
.pf-reviews-heading__icon svg { stroke:#fff; }
.pf-reviews-heading__icon { display: none !important; }
.pf-reviews-heading__text h2 {
  font-size:20px !important; font-weight:900 !important; color:var(--pf-text) !important;
  margin:0 !important; padding:0 !important; border:none !important; background:none !important;
  letter-spacing:-.4px !important; line-height:1.2 !important;
}
.pf-reviews-heading__text p { display:none; }
.pf-reviews-heading--v2 .pf-reviews-heading__icon {
  background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%);
  box-shadow:0 4px 12px rgba(245,158,11,.25);
}
.pf-rh-scorecard { display:none !important; }
.pf-product__reviews-section #reviews > h2:first-child,
.pf-product__reviews-section h2.woocommerce-Reviews-title { display:none !important; }
.pf-product__reviews-section #reviews { margin-top:0 !important; padding-top:0 !important; }
.pf-m-reviews-always,.pf-cm-reviews-always { padding:0 0 20px; }
.pf-m-reviews-always .pf-reviews-heading,
.pf-cm-reviews-always .pf-reviews-heading { padding:18px 14px 14px; margin:0; }
.pf-cm-reviews-always .pf-reviews-heading { padding:18px 18px 14px; }
.pf-m-reviews-always h2.woocommerce-Reviews-title,
.pf-cm-reviews-always h2.woocommerce-Reviews-title { display:none !important; }

/* ── CLASSIC MOBILE: tabs inherit app layout look, reviews heading fix ── */
.pf-cm-classic-tabs { padding: 0; margin-top: 24px; }

/* ── Classic mobile tabs: same styling as app layout ──
   pf-cm-content has padding:14px 16px 0
   So margin: 0 -16px + padding: 0 16px makes the border-bottom
   span the full content width matching the app layout exactly. */
.pf-cm-classic-tabs .pf-m-tabs {
  margin: 0 -16px;
  padding: 0 16px;
}
.pf-cm-classic-tabs .pf-m-tab {
  border-bottom: 2.5px solid transparent;
  margin-bottom: -2px;
}
.pf-cm-classic-tabs .pf-m-tab.is-active {
  color: var(--pf-dark);
  border-bottom-color: var(--pf-accent);
}
.pf-cm-classic-tabs .pf-m-tabpanel { padding: 20px 0 8px; }
.pf-cm-classic-tabs .pf-m-tabpanel--readmore { margin-bottom: 0; }

/* Read more button — sits outside the clipped panel, aligns to content */
.pf-cm-classic-tabs .pf-m-readmore-btn { margin-top: 8px; display: flex; align-items: center; gap: 5px; }
/* Alignment — matches the tab_alignment option set by the user */
.pf-readmore-align--center { margin-left: auto; margin-right: auto; }
.pf-readmore-align--right  { margin-left: auto; margin-right: 0; }
.pf-readmore-align--left   { margin-left: 0; margin-right: auto; }
/* Also handle alignment via sibling tab strip (app layout tabs) */
.pf-m-tabs--center ~ .pf-m-tabpanel ~ .pf-m-readmore-btn,
.pf-m-tabs--center ~ .pf-m-readmore-btn { margin-left: auto; margin-right: auto; }
.pf-m-tabs--right  ~ .pf-m-tabpanel ~ .pf-m-readmore-btn,
.pf-m-tabs--right  ~ .pf-m-readmore-btn { margin-left: auto; margin-right: 0; }
.pf-m-tabs--left   ~ .pf-m-tabpanel ~ .pf-m-readmore-btn,
.pf-m-tabs--left   ~ .pf-m-readmore-btn { margin-left: 0; margin-right: auto; }

.pf-cm-classic-tabs #pf-cm-reviews-always { margin-top: 8px; }
.pf-cm-classic-tabs #pf-cm-reviews-always .pf-reviews-tab-heading { margin: 16px 0 24px; }
.pf-cm-classic-tabs #pf-cm-reviews-always h2.woocommerce-Reviews-title { display: none !important; }

/* ════════════════════════════════════════════════════════════════
   RESPONSIVE
════════════════════════════════════════════════════════════════ */
@media (max-width:1024px) {
  .pf-reviews__layout { grid-template-columns:220px 1fr; }
  .pf-reviews__sidebar { padding:16px 14px; }
  .pf-reviews__main { padding:20px; }
}
@media (max-width:768px) {
  .pf-reviews__layout { grid-template-columns:190px 1fr; }
  .pf-reviews__sidebar { padding:14px 12px; }
  .pf-reviews__main { padding:16px; }
  .pf-rv-score-card__num { font-size:40px; }
  .pf-rv-heading__info h2 { font-size:16px !important; }
  /* Form compact at 768px */
  .pf-rv-form-wrap { padding:12px; margin-top:10px; }
  .pf-rv-form-wrap input, .pf-rv-form-wrap textarea { padding:8px 10px; font-size:12px; }
  .pf-rv-form-wrap label { font-size:9px; }
  .pf-rv-media-btn { padding:10px 14px; }
  .pf-rv-media-btn__ico { width:26px; height:26px; }
  .pf-rv-form-wrap .comment-form p { margin-bottom:10px !important; }
  .pf-rv-form-wrap #submit { padding:10px; font-size:12px; }
  .pf-rv-form__title { font-size:13px !important; }
}
/* ── Mobile: stack layout, horizontal filter chips ────────────── */
/* ── Mobile: card collapses, score+bars compact, chips filter ── */
@media (max-width:600px) {
  /* Outer wrapper — on mobile, remove outer card border and let it go full width */
  .pf-reviews { padding:0; border-radius:12px; margin:0; }

  /* ── HEADING: premium mobile ── */
  .pf-rv-heading {
    padding:0 0 16px; margin-bottom:0;
    border-bottom:2px solid var(--pf-border);
    flex-wrap:nowrap; align-items:center;
  }
  .pf-rv-heading__left { gap:10px; }
  .pf-rv-heading__icon { width:36px; height:36px; border-radius:10px; flex-shrink:0; box-shadow:0 4px 10px rgba(245,158,11,.28); }
  .pf-rv-heading__icon svg { width:17px; height:17px; }
  .pf-rv-heading__info h2 { font-size:17px !important; font-weight:900 !important; letter-spacing:-.4px !important; }
  .pf-rv-heading__info p { font-size:11px; display:block; margin-top:2px; }
  .pf-rv-heading__write,.pf-rv-heading__login {
    padding:7px 13px; font-size:11px; gap:5px; border-radius:8px; white-space:nowrap;
  }

  /* Layout: single column */
  .pf-reviews__layout { grid-template-columns:1fr; }

  /* Sidebar: stacked full-width cards */
  .pf-reviews__sidebar {
    position:static;
    border-right:none;
    border-bottom:1.5px solid var(--pf-border);
    padding:16px; display:flex; flex-direction:column; gap:10px;
    background:var(--pf-surface);
  }

  /* Score card: horizontal — number left, stars+label right, FULL WIDTH */
  .pf-rv-score-card {
    width:100%; display:flex; flex-direction:row; align-items:center; justify-content:center; gap:18px;
    background:var(--pf-white); border:1.5px solid var(--pf-border);
    border-radius:14px; padding:18px 18px; margin-bottom:0; text-align:center;
    box-shadow:0 2px 10px rgba(0,0,0,.04);
  }
  .pf-rv-score-card__num { font-size:48px; letter-spacing:-3px; line-height:1; flex-shrink:0; font-weight:900; }
  .pf-rv-score-card__stars { justify-content:center; margin:6px 0 4px; gap:3px; }
  .pf-rv-score-card__stars svg { width:15px; height:15px; }
  .pf-rv-score-card__label { font-size:11px; font-weight:600; color:var(--pf-muted); text-align:center; }

  /* Rating bars: full-width card, same style as score card */
  .pf-rv-bars {
    width:100%; gap:6px; margin-bottom:0;
    background:var(--pf-surface); border:1.5px solid var(--pf-border);
    border-radius:14px; padding:14px 18px;
    box-shadow:0 2px 10px rgba(0,0,0,.04);
  }
  .pf-rv-bar { padding:3px 4px; border-radius:6px; }
  .pf-rv-bar__label { font-size:11px; min-width:18px; gap:2px; }
  .pf-rv-bar__label svg { width:8px; height:8px; }
  .pf-rv-bar__track { height:5px; }
  .pf-rv-bar__count { font-size:11px; min-width:16px; }

  /* Write review button — same width as cards */
  .pf-rv-write-btn { margin-top:0; padding:12px; font-size:13px; border-radius:10px; width:100%; }
  .pf-rv-login-btn { margin-top:0; padding:12px; font-size:13px; }
  .pf-rv-must-purchase { margin-top:0; font-size:11px; }
  /* Clear filter */
  .pf-rv-clear { display:flex; margin-top:0; }

  /* Main: padding + spacing below sidebar */
  .pf-reviews__main { padding:16px; }
  .pf-rv-toolbar { padding-bottom:10px; margin-bottom:12px; }
  .pf-rv-toolbar__count { display:none; }
  .pf-rv-sort__select { font-size:11px; padding:5px 9px; }

  /* Filter chips */
  /* Review cards: padding keeps avatar away from edge */
  .pf-rv-card__inner { padding:14px 0; gap:10px; }
  .pf-rv-card:first-child .pf-rv-card__inner { padding-top:4px; }
  .pf-rv-card__avatar img,
  .pf-rv-card__avatar .avatar { width:32px !important; height:32px !important; }
  .pf-rv-card__avatar-placeholder { width:32px; height:32px; font-size:11px; }
  .pf-rv-card__author { font-size:12px; }
  .pf-rv-card__text { font-size:12px; line-height:1.65; }
  .pf-rv-card__date { font-size:10px; }
  .pf-rv-card__verified { font-size:8px; padding:2px 5px; }
  .pf-rv-media-item { width:56px; height:56px; border-radius:7px; }

  /* Media strip — same card style as score/bars */
  .pf-rv-media-strip {
    margin:8px 0 8px; border-radius:14px;
    box-shadow:0 2px 10px rgba(0,0,0,.04);
  }
  .pf-rv-media-strip__item { width:74px; height:74px; border-radius:10px; }
  .pf-rv-media-strip__track { padding:14px 14px 16px; gap:8px; }
  .pf-rv-media-strip__header { padding:10px 14px 10px; }

  /* Form — compact for mobile */
  .pf-rv-form-wrap { padding:12px; margin-top:10px; }
  .pf-rv-form-wrap .comment-form-author,
  .pf-rv-form-wrap .comment-form-email { display:block !important; width:100% !important; margin-right:0 !important; }
  .pf-rv-form__title { font-size:13px !important; }
  .pf-rv-form-wrap input, .pf-rv-form-wrap textarea { padding:8px 10px; font-size:12px; }
  .pf-rv-form-wrap label { font-size:9px; }
  .pf-rv-media-btn { padding:10px 14px; }
  .pf-rv-media-btn__ico { width:26px; height:26px; }
  .pf-rv-form-wrap .comment-form p { margin-bottom:10px !important; }
  .pf-rv-form-wrap #submit { padding:10px; font-size:12px; }

  /* Lightbox */
  .pf-rv-lb__prev,.pf-rv-lb__next { display:none; }
  .pf-rv-lb__slide { padding:56px 12px 160px; }
  .pf-rv-lb__info { padding:36px 16px max(16px,env(safe-area-inset-bottom)) 16px; }
  .pf-rv-lb__info-inner { max-width:100%; }
  .pf-rv-lb__dots { bottom:max(130px,calc(124px + env(safe-area-inset-bottom))); }

  .pf-reviews-heading { padding:16px 0 12px; }
}
/* ================================================================
   RELATED PRODUCTS — Separate Design Control
   Classes applied: pf-related--design-slider / floating / breathless
================================================================ */

/* ── Base: override the default WC related products grid ── */
/* Old design-mode rules removed — replaced by pf-related-layout/style classes above */

/* ────────────────────────────────────────────────
   MOBILE CARD STYLES — applied to both slider & grid
──────────────────────────────────────────────── */
/* Floating: rounded, shadow */
.pf-related-mobile-style--floating .pf-cm-related__slider li.product,
.pf-related-mobile-style--floating .pf-cm-related__slider .pf-product-card {
  border-radius: 12px !important;
  box-shadow: 0 2px 10px rgba(0,0,0,0.08) !important;
  overflow: hidden !important;
  border: 1px solid #f0f0f0 !important;
}
/* Breathless: flat, zero gap, zero radius, edge-to-edge */
.pf-related-mobile-style--breathless .pf-cm-related__slider {
  gap: 0 !important;
  padding: 0 !important;
}
/* Recalc widths with zero gap for each col count */
.pf-related-mobile-style--breathless.pf-related-mobile-layout--slider .pf-related-cols-1 li.product {
  flex: 0 0 100% !important; max-width: 100% !important; width: 100% !important;
}
.pf-related-mobile-style--breathless.pf-related-mobile-layout--slider .pf-related-cols-2 li.product,
.pf-related-mobile-style--breathless.pf-related-mobile-layout--slider .pf-cm-related__slider li.product {
  flex: 0 0 50% !important; max-width: 50% !important; width: 50% !important;
}
.pf-related-mobile-style--breathless.pf-related-mobile-layout--slider .pf-related-cols-3 li.product {
  flex: 0 0 33.33% !important; max-width: 33.33% !important; width: 33.33% !important;
}
/* Mobile breathless — pf-product-card IS the li */
.pf-related-mobile-style--breathless .pf-cm-related__slider li.product.pf-product-card,
.pf-related-mobile-style--breathless .pf-cm-related__slider li.product.corners-0,
.pf-related-mobile-style--breathless .pf-cm-related__slider li.product.corners-8,
.pf-related-mobile-style--breathless .pf-cm-related__slider li.product.corners-12,
.pf-related-mobile-style--breathless .pf-cm-related__slider li.product.corners-16,
.pf-related-mobile-style--breathless .pf-cm-related__slider li.product {
  border-radius: 0 !important;
  overflow: hidden !important;
  box-shadow: none !important;
  border: none !important;
  border-right: 0.5px solid #e8ecf0 !important;
  border-bottom: 0.5px solid #e8ecf0 !important;
}
.pf-related-mobile-style--breathless .pf-cm-related__slider li.product:last-child { border-right: none !important; }
/* card-image and its corners variants */
.pf-related-mobile-style--breathless .pf-cm-related__slider li.product .card-image,
.pf-related-mobile-style--breathless .pf-cm-related__slider li.product.corners-0  .card-image,
.pf-related-mobile-style--breathless .pf-cm-related__slider li.product.corners-8  .card-image,
.pf-related-mobile-style--breathless .pf-cm-related__slider li.product.corners-12 .card-image,
.pf-related-mobile-style--breathless .pf-cm-related__slider li.product.corners-16 .card-image,
.pf-related-mobile-style--breathless .pf-cm-related__slider li.product .card-image img {
  border-radius: 0 !important;
}
.pf-related-mobile-style--breathless .pf-cm-related__slider li.product:last-child {
  border-right: none !important;
}

/* ────────────────────────────────────────────────
   DESKTOP RELATED — layout + style classes
──────────────────────────────────────────────── */
/* Desktop GRID mode */
.pf-related-layout--grid .pf-related-slider-wrap {
  overflow: visible !important;
}
.pf-related-layout--grid .pf-related-slider-wrap::after { display: none; }
.pf-related-layout--grid .pf-related-slider {
  display: grid !important;
  flex-wrap: unset !important;
  gap: 16px;
}
/* Grid columns: pf-related-layout--grid is on parent div, pf-related-desktop-cols-N is on the ul */
.pf-related-layout--grid .pf-related-desktop-cols-2 { grid-template-columns: repeat(2, 1fr) !important; }
.pf-related-layout--grid .pf-related-desktop-cols-3 { grid-template-columns: repeat(3, 1fr) !important; }
.pf-related-layout--grid .pf-related-desktop-cols-4 { grid-template-columns: repeat(4, 1fr) !important; }
.pf-related-layout--grid .pf-related-slider li.product {
  flex: unset !important; max-width: 100% !important; width: 100% !important;
}
/* Hide nav in grid mode */
.pf-related-layout--grid .pf-related-nav { display: none !important; }

/* Desktop floating card style */
.pf-related-style--floating .pf-related-slider li.product,
.pf-related-style--floating .pf-related-slider .pf-product-card {
  border-radius: 14px !important;
  overflow: hidden !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.07) !important;
}
.pf-related-style--floating .pf-related-slider li.product:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 6px 20px rgba(0,0,0,0.12) !important;
}
/* Desktop breathless card style — zero gap, zero radius, edge-to-edge */
.pf-related-style--breathless .pf-related-slider-wrap {
  /* Keep overflow:hidden for slider mode — do NOT set visible */
}
/* No fade hint needed for breathless — cards go edge to edge */
.pf-related-style--breathless .pf-related-slider-wrap::after { display: none; }
/* Gap:0 for both slider and grid breathless */
.pf-related-style--breathless .pf-related-slider {
  gap: 0 !important;
}
/* Flex width overrides ONLY for slider mode (grid uses 1fr columns, no flex needed) */
.pf-related-layout--slider.pf-related-style--breathless .pf-related-slider > li.product {
  flex: 0 0 25% !important; max-width: 25% !important;
}
.pf-related-layout--slider.pf-related-style--breathless .pf-related-desktop-cols-2 > li.product { flex: 0 0 50% !important; max-width: 50% !important; }
.pf-related-layout--slider.pf-related-style--breathless .pf-related-desktop-cols-3 > li.product { flex: 0 0 33.33% !important; max-width: 33.33% !important; }
.pf-related-layout--slider.pf-related-style--breathless .pf-related-desktop-cols-4 > li.product { flex: 0 0 25% !important; max-width: 25% !important; }
/* Desktop breathless — pf-product-card IS the li, card-image is direct child */
.pf-related-style--breathless .pf-related-slider li.product.pf-product-card,
.pf-related-style--breathless .pf-related-slider li.product.corners-0,
.pf-related-style--breathless .pf-related-slider li.product.corners-8,
.pf-related-style--breathless .pf-related-slider li.product.corners-12,
.pf-related-style--breathless .pf-related-slider li.product.corners-16,
.pf-related-style--breathless .pf-related-slider li.product {
  border-radius: 0 !important;
  overflow: hidden !important;
  box-shadow: none !important;
  border: none !important;
  border-right: 0.5px solid #e8ecf0 !important;
  border-bottom: 0.5px solid #e8ecf0 !important;
}
.pf-related-style--breathless .pf-related-slider li.product:last-child { border-right: none !important; }
/* card-image and its corners variants */
.pf-related-style--breathless .pf-related-slider li.product .card-image,
.pf-related-style--breathless .pf-related-slider li.product.corners-0  .card-image,
.pf-related-style--breathless .pf-related-slider li.product.corners-8  .card-image,
.pf-related-style--breathless .pf-related-slider li.product.corners-12 .card-image,
.pf-related-style--breathless .pf-related-slider li.product.corners-16 .card-image,
.pf-related-style--breathless .pf-related-slider li.product .card-image img {
  border-radius: 0 !important;
}

/* ================================================================
   ADMIN BAR — Offset mobile header + sticky bar when WP admin bar visible
================================================================ */
body.admin-bar .pf-mobile-header {
  top: 32px !important;
}
body.admin-bar .pf-product--mobile,
body.admin-bar .pf-classic-mobile {
  padding-top: 32px;
}
@media screen and (max-width: 782px) {
  body.admin-bar .pf-mobile-header {
    top: 46px !important;
  }
  body.admin-bar .pf-product--mobile,
  body.admin-bar .pf-classic-mobile {
    padding-top: 46px;
  }
}

/* ================================================================
   FOOTER CLEARANCE — prevent sticky ATC bar from covering footer
================================================================ */
@media (max-width: 768px) {
  body.single-product .site-footer {
    padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px));
  }
}

/* Sticky ATC bar adjusts for admin bar on desktop */
@media (min-width: 769px) {
  body.admin-bar .pf-cm-sticky {
    bottom: 0;
  }
}

/* ════════════════════════════════════════
   ADDITIONAL INFO — premium table redesign
   WC outputs tr as display:grid — we reset it
════════════════════════════════════════ */

/* Force WC tr back to normal table row — overrides WC's display:grid */
.woocommerce-product-attributes tr.woocommerce-product-attributes-item,
.shop_attributes tr {
  display: table-row !important;
}
.woocommerce-product-attributes th.woocommerce-product-attributes-item__label,
.woocommerce-product-attributes td.woocommerce-product-attributes-item__value,
.shop_attributes th,
.shop_attributes td {
  display: table-cell !important;
}

/* Hide the default WC "Additional information" h2 heading inside the panel */
.woocommerce-Tabs-panel--additional_information h2,
.pf-cm-tab-panel h2.woocommerce-product-attributes-heading,
.pf-m-tabpanel h2.woocommerce-product-attributes-heading,
.pf-m-accordion__body h2.woocommerce-product-attributes-heading,
.pf-cm-acc__body h2.woocommerce-product-attributes-heading {
  display: none !important;
}

.woocommerce-product-attributes,
.shop_attributes {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
  margin: 0 !important;
  border: 1.5px solid var(--pf-border);
  border-radius: 8px;
  overflow: hidden;
  display: table !important;
}
.woocommerce-product-attributes tbody,
.shop_attributes tbody {
  display: table-row-group !important;
}
.woocommerce-product-attributes + table,
.shop_attributes + table {
  margin-top: 0 !important;
  border-top: none !important;
}
/* Kill the gap between consecutive tables in additional info panels */
.woocommerce-Tabs-panel--additional_information table + table,
.pf-cm-acc__body table + table,
.pf-m-accordion__body table + table {
  margin-top: -1px !important;
}
.woocommerce-product-attributes th,
.woocommerce-product-attributes td,
.shop_attributes th,
.shop_attributes td {
  padding: 11px 16px;
  border: none;
  border-bottom: 1px solid var(--pf-border);
  text-align: left;
  vertical-align: middle;
  line-height: 1.5;
}
.woocommerce-product-attributes tr:last-child th,
.woocommerce-product-attributes tr:last-child td,
.shop_attributes tr:last-child th,
.shop_attributes tr:last-child td {
  border-bottom: none;
}
.woocommerce-product-attributes th,
.shop_attributes th {
  background: var(--pf-surface, #f8f9fb);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  width: 30%;
  color: var(--pf-dark);
  border-right: 1.5px solid var(--pf-border);
}
.woocommerce-product-attributes td,
.shop_attributes td {
  color: #4b5563;
  font-weight: 500;
  background: var(--pf-white);
}
.woocommerce-product-attributes tr:nth-child(even) td,
.shop_attributes tr:nth-child(even) td {
  background: #fdfdfe;
}

/* Desktop panel wrapper */
.woocommerce-Tabs-panel--additional_information {
  padding-top: 8px !important;
}

/* Mobile accordion + tabpanel: same card style */
.pf-m-accordion__body table.woocommerce-product-attributes,
.pf-m-tabpanel table.woocommerce-product-attributes {
  margin-top: 0 !important;
}

/* ================================================================
   ALWAYS-VISIBLE REVIEWS SECTION
   Shown below tabs/accordions on both desktop and mobile.
   Uses existing WC comment styles + Perfecto review styles.
   ================================================================ */

/* ── Desktop reviews section ── */
.pf-product__reviews-section {
  margin-top: 48px;
  padding: 0 0 40px;
}

/* Premium "Customer Reviews" heading */
.pf-reviews-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 36px 0 24px;
  border-top: 2px solid var(--pf-border, #e8ecf0);
  margin-bottom: 0;
  flex-wrap: wrap;
}
.pf-reviews-heading__left {
  display: flex;
  align-items: center;
  gap: 14px;
}
.pf-reviews-heading__icon {
  width: 44px; height: 44px;
  background: linear-gradient(135deg, var(--pf-accent, #E53935) 0%, #c62828 100%);
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 4px 14px rgba(229,57,53,0.25);
}
.pf-reviews-heading__icon svg { stroke: #fff; }
.pf-reviews-heading__text h2 {
  font-size: 22px !important;
  font-weight: 900 !important;
  color: var(--pf-text, #1a1a2e) !important;
  margin: 0 0 3px !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
  letter-spacing: -0.3px !important;
  line-height: 1.2 !important;
}
.pf-reviews-heading__text p {
  font-size: 13px;
  color: var(--pf-muted, #6b7280);
  margin: 0;
  font-weight: 500;
}
.pf-reviews-heading__badge {
  display: flex;
  align-items: center;
  gap: 6px;
  background: #fffbeb;
  border: 1px solid #fde68a;
  border-radius: 10px;
  padding: 8px 14px;
  flex-shrink: 0;
}
.pf-reviews-heading__badge .pf-rh-score {
  font-size: 20px;
  font-weight: 900;
  color: #92400e;
  line-height: 1;
}
.pf-reviews-heading__badge .pf-rh-stars {
  display: flex;
  gap: 2px;
}
.pf-reviews-heading__badge .pf-rh-count {
  font-size: 12px;
  font-weight: 600;
  color: #92400e;
  border-left: 1px solid #fde68a;
  padding-left: 8px;
  margin-left: 2px;
}

/* Neutralise WC injected #reviews heading since we replace it */
.pf-product__reviews-section #reviews > h2:first-child,
.pf-product__reviews-section h2.woocommerce-Reviews-title {
  display: none !important;
}
.pf-product__reviews-section #reviews {
  margin-top: 0 !important;
  padding-top: 0 !important;
}


/* =============================== PRICE + SUFFIX FIX ================================ */

.price {
    display: inline-flex !important;
    flex-direction: column !important;
    align-items: flex-start; /* default */
}

/* RTL fix */
.rtl .price {
    align-items: flex-end !important;
    text-align: right !important;
}

/* ONLY suffix styling */
.woocommerce-price-suffix {
    font-size: 12px;
    color: #888;
    margin-top: 2px;
}

/* ── Mobile always-visible reviews ── */