/* ==========================================================================
   PREMIUM PRODUCT PAGE  (v2)  —  premium-product-page.css
   Mobile-first, responsive, theme-agnostic
   ========================================================================== */

.ppp * { box-sizing: border-box; }
.ppp {
  --ppp-border: #e6e6e6;
  --ppp-muted: #6b7280;
  --ppp-bg-soft: #f7f7f8;
  font-family: inherit;
  color: var(--ppp-text, #111);
}
.ppp__wrap {
  max-width: var(--ppp-max, 1240px);
  margin-inline: auto;
  padding-inline: 16px;
}

/* ---------- Top service bar ---------- */
.ppp__servicebar { border-bottom: 1px solid var(--ppp-border); background: var(--ppp-sb-bg, #fff); }
.ppp__servicebar-inner {
  display: flex; flex-wrap: wrap; gap: 10px 22px;
  align-items: center; justify-content: center;
  padding-block: 10px; font-size: 13px; color: var(--ppp-text, #333);
}
.ppp__serviceitem { display: inline-flex; align-items: center; gap: 7px; }
.ppp__serviceitem svg { width: 17px; height: 17px; color: var(--ppp-icon); }
.ppp__bolt { color: #f59e0b; }

/* ---------- Main grid ---------- */
.ppp__main {
  display: grid;
  grid-template-columns: 1fr;
  gap: 26px;
  padding-block: 22px 40px;
}
@media (min-width: 990px) {
  .ppp__main {
    grid-template-columns: minmax(0,1.15fr) minmax(0,0.85fr);
    gap: 40px;
    align-items: start;
  }
  .ppp__right { position: sticky; top: 16px; }
}

/* ---------- Gallery ---------- */
.ppp__gallery { display: grid; gap: 12px; }
.ppp__gallery--side {
  grid-template-columns: 78px 1fr;
  grid-template-areas: "up stage" "thumbs stage" "down stage";
  align-items: start;
}
.ppp__gallery--side .ppp__thumbs { grid-area: thumbs; }
.ppp__gallery--side .ppp__stage { grid-area: stage; }
.ppp__gallery--side .ppp__thumb-arrow--up { grid-area: up; }
.ppp__gallery--side .ppp__thumb-arrow--down { grid-area: down; }
.ppp__gallery--side .ppp__thumbs { flex-direction: column; max-height: 520px; overflow-y: auto; }

.ppp__gallery--bottom { grid-template-columns: 1fr; }
.ppp__gallery--bottom .ppp__thumb-arrow { display: none; }
.ppp__gallery--bottom .ppp__thumbs { order: 2; flex-direction: row; overflow-x: auto; }

/* Mobile: side thumbnails ko image ke NECHE le aao + horizontal slide */
@media (max-width: 989px) {
  .ppp__gallery--side {
    grid-template-columns: 1fr;
    grid-template-areas: "stage" "thumbs";
  }
  .ppp__gallery--side .ppp__thumb-arrow { display: none; }
  .ppp__gallery--side .ppp__thumbs {
    flex-direction: row;
    max-height: none;
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: 4px;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
  }
  .ppp__gallery--side .ppp__thumb { scroll-snap-align: start; }
}

.ppp__thumbs { display: flex; gap: 8px; scrollbar-width: thin; }
.ppp__thumb {
  flex: 0 0 auto; width: 68px; height: 68px; padding: 0;
  border: 2px solid var(--ppp-border); border-radius: 10px;
  overflow: hidden; background: #fff; cursor: pointer; transition: border-color .15s;
}
.ppp__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ppp__thumb.is-active { border-color: var(--ppp-accent); }
.ppp__thumb-arrow {
  border: 1px solid var(--ppp-border); background: #fff; border-radius: 8px;
  height: 26px; cursor: pointer; font-size: 14px; color: #555;
}

.ppp__stage {
  position: relative; border: 1px solid var(--ppp-border);
  border-radius: var(--ppp-radius); overflow: hidden; background: var(--ppp-bg-soft);
}
.ppp__slides { position: relative; width: 100%; aspect-ratio: 1 / 1; }
.ppp__slide { position: absolute; inset: 0; opacity: 0; pointer-events: none; transition: opacity .25s ease; }
.ppp__slide.is-active { opacity: 1; pointer-events: auto; }
.ppp__image, .ppp__video { width: 100%; height: 100%; object-fit: cover; display: block; }
.ppp__stage--zoom .ppp__slide.is-active .ppp__image { transition: transform .3s ease; }
@media (hover: hover) and (min-width: 990px) {
  .ppp__stage--zoom .ppp__slide.is-active:hover .ppp__image { transform: scale(1.6); cursor: zoom-in; }
}

.ppp__counter {
  position: absolute; top: 12px; left: 12px; z-index: 3;
  background: rgba(0,0,0,.6); color: #fff; font-size: 12px;
  padding: 4px 9px; border-radius: 20px;
}
.ppp__wish {
  position: absolute; top: 10px; right: 10px; z-index: 3;
  width: 38px; height: 38px; border-radius: 50%;
  border: none; background: #fff; box-shadow: 0 2px 8px rgba(0,0,0,.12);
  font-size: 18px; color: #e11d48; cursor: pointer;
}
.ppp__wish.is-active { background: #e11d48; color: #fff; }
.ppp__nav {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 3;
  width: 40px; height: 40px; border-radius: 50%; border: none;
  background: rgba(255,255,255,.9); box-shadow: 0 2px 8px rgba(0,0,0,.15);
  font-size: 22px; line-height: 1; color: #222; cursor: pointer;
}
.ppp__nav--prev { left: 10px; } .ppp__nav--next { right: 10px; }
.ppp__dots { position: absolute; bottom: 12px; left: 0; right: 0; z-index: 3; display: flex; gap: 6px; justify-content: center; }
.ppp__dot { width: 8px; height: 8px; border-radius: 50%; border: none; background: rgba(0,0,0,.25); cursor: pointer; padding: 0; }
.ppp__dot.is-active { background: var(--ppp-accent); width: 22px; border-radius: 4px; }

/* ---------- Icon row ---------- */
.ppp__icon-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(84px,1fr)); gap: 10px; margin-top: 18px; }
.ppp__icon-card { text-align: center; font-size: 12px; color: #444; display: flex; flex-direction: column; align-items: center; gap: 7px; }
.ppp__circle-icon {
  width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center;
  background: var(--ppp-bg-soft); border: 1px solid var(--ppp-border); font-size: 18px; color: var(--ppp-icon);
}

/* ---------- Right info ---------- */
.ppp__vendor { font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--ppp-muted); margin-bottom: 6px; }
.ppp__title { font-size: clamp(22px, 4vw, 30px); line-height: 1.2; margin: 0 0 10px; font-weight: 700; }
.ppp__rating { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--ppp-muted); margin-bottom: 12px; }
.ppp__stars { color: #f59e0b; letter-spacing: 2px; }

.ppp__price { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; font-size: 28px; font-weight: 700; color: var(--ppp-price); margin-bottom: 14px; }
.ppp__price s { font-size: 19px; color: #9aa0a6; font-weight: 500; }
.ppp__save { background: var(--ppp-sale); color: #fff; font-size: 13px; font-weight: 600; padding: 3px 9px; border-radius: 6px; }

.ppp__badges { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.ppp__badges span { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; background: var(--ppp-bg-soft); border: 1px solid var(--ppp-border); padding: 5px 10px; border-radius: 20px; color: #333; }

.ppp__short { color: #444; line-height: 1.6; margin-bottom: 16px; font-size: 15px; }
.ppp__short p { margin: 0 0 8px; }

.ppp__features { display: grid; gap: 8px; margin-bottom: 18px; }
.ppp__feature { display: flex; align-items: flex-start; gap: 9px; font-size: 14.5px; color: #333; }
.ppp__feature span { color: var(--ppp-accent); line-height: 1.5; }

/* ---------- Countdown ---------- */
.ppp__countdown { display: flex; align-items: center; justify-content: space-between; gap: 10px; background: #fff4f4; border: 1px dashed var(--ppp-sale); border-radius: 10px; padding: 10px 14px; margin-bottom: 16px; }
.ppp__countdown-label { font-size: 13.5px; color: #b91c1c; font-weight: 600; }
.ppp__countdown-timer { font-variant-numeric: tabular-nums; font-weight: 700; font-size: 18px; color: var(--ppp-sale); }

/* ---------- Variants ---------- */
.ppp__variants { display: grid; gap: 16px; margin-bottom: 16px; }
.ppp__option-group { border: none; padding: 0; margin: 0; }
.ppp__option-group legend { font-size: 14px; font-weight: 600; margin-bottom: 8px; padding: 0; }
.ppp__selected-option { font-weight: 400; color: var(--ppp-muted); }
.ppp__option-values { display: flex; flex-wrap: wrap; gap: 10px; }
.ppp__option-choice { cursor: pointer; }
.ppp__option-choice input { position: absolute; opacity: 0; width: 0; height: 0; }

/* color swatches */
.ppp__color-choice { display: inline-flex; flex-direction: column; align-items: center; gap: 4px; width: 58px; }
.ppp__swatch-ring { width: 52px; height: 52px; border-radius: 12px; border: 2px solid var(--ppp-border); overflow: hidden; display: grid; place-items: center; transition: border-color .15s, transform .1s; }
.ppp__swatch-ring img { width: 100%; height: 100%; object-fit: cover; }
.ppp__swatch-fallback { width: 100%; height: 100%; background: var(--swatch-color, #ccc); }
.ppp__choice-label { font-size: 11.5px; color: #555; text-align: center; }
.ppp__color-choice input:checked + .ppp__swatch-ring { border-color: var(--ppp-accent); transform: scale(1.05); }

/* size pills */
.ppp__size-pill { display: inline-grid; place-items: center; min-width: 46px; height: 42px; padding: 0 12px; border: 1.5px solid var(--ppp-border); border-radius: 9px; font-size: 14px; font-weight: 500; transition: all .12s; }
.ppp__size-choice input:checked + .ppp__size-pill { border-color: var(--ppp-accent); background: var(--ppp-accent); color: #fff; }
.ppp__size-choice input:disabled + .ppp__size-pill { opacity: .4; text-decoration: line-through; }

/* ---------- Stock / qty ---------- */
.ppp__stock { display: flex; align-items: center; gap: 8px; font-size: 14px; color: #15803d; margin-bottom: 16px; font-weight: 600; }
.ppp__stock.is-out { color: #b91c1c; }
.ppp__stock-dot { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: #15803d; color: #fff; font-size: 11px; }
.ppp__stock.is-out .ppp__stock-dot { background: #b91c1c; }

.ppp__qty-line { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; }
.ppp__qty-line label { font-size: 14px; font-weight: 600; }
.ppp__qty { display: inline-flex; border: 1.5px solid var(--ppp-border); border-radius: 10px; overflow: hidden; }
.ppp__qty button { width: 42px; height: 44px; border: none; background: #fff; font-size: 20px; cursor: pointer; color: #333; }
.ppp__qty input { width: 52px; height: 44px; border: none; text-align: center; font-size: 16px; -moz-appearance: textfield; }
.ppp__qty input::-webkit-outer-spin-button, .ppp__qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* ---------- Buttons ---------- */
.ppp__actions { display: grid; gap: 12px; margin-bottom: 14px; }
@media (min-width: 620px) { .ppp__actions { grid-template-columns: 1fr 1fr; } }
.ppp__btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: none; border-radius: var(--ppp-radius); font-size: 16px; font-weight: 600; padding: 15px 18px; cursor: pointer; transition: transform .08s, opacity .15s, filter .15s; }
.ppp__btn:active { transform: translateY(1px); }
.ppp__btn:disabled { opacity: .5; cursor: not-allowed; }
.ppp__btn--cart { background: var(--ppp-accent); color: #fff; }
.ppp__btn--cart:hover:not(:disabled) { background: var(--ppp-accent-hover); }
.ppp__btn--buy { background: var(--ppp-buy); color: #fff; }
.ppp__btn--buy:hover:not(:disabled) { filter: brightness(.94); }
.ppp__btn.is-loading { opacity: .7; pointer-events: none; }

/* ---------- Secure / payments ---------- */
.ppp__secure { display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 13px; color: var(--ppp-muted); margin-bottom: 12px; }
.ppp__payments { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-bottom: 22px; }
.ppp__pay { font-size: 11px; font-weight: 700; padding: 5px 10px; border-radius: 6px; border: 1px solid var(--ppp-border); background: #fff; color: #444; letter-spacing: .02em; }
.ppp__pay--visa { color: #1a1f71; }
.ppp__pay--easy { color: #0b8043; }
.ppp__pay--jazz { color: #b91c1c; }
.ppp__pay--cod { color: #b45309; }

/* ---------- Trust grid ---------- */
.ppp__trustgrid { display: grid; grid-template-columns: repeat(2,1fr); gap: 14px; padding: 18px; background: var(--ppp-bg-soft); border-radius: var(--ppp-radius); margin-bottom: 18px; }
.ppp__trustgrid > div { display: flex; flex-direction: column; gap: 3px; }
.ppp__trust-icon { font-size: 22px; }
.ppp__trustgrid strong { font-size: 14px; }
.ppp__trustgrid span { font-size: 12px; color: var(--ppp-muted); line-height: 1.4; }

/* ---------- Collapsibles ---------- */
.ppp__collapsibles { display: grid; gap: 0; border-top: 1px solid var(--ppp-border); margin-bottom: 18px; }
.ppp__collapse { border-bottom: 1px solid var(--ppp-border); }
.ppp__collapse-head { width: 100%; display: flex; align-items: center; justify-content: space-between; background: none; border: none; padding: 16px 2px; font-size: 15px; font-weight: 600; cursor: pointer; text-align: left; }
.ppp__collapse-sign { font-size: 22px; color: var(--ppp-muted); transition: transform .2s; }
.ppp__collapse.is-open .ppp__collapse-sign { transform: rotate(45deg); }
.ppp__collapse-body { overflow: hidden; max-height: 0; transition: max-height .28s ease; }
.ppp__collapse.is-open .ppp__collapse-body { max-height: 800px; }
.ppp__collapse-inner { padding: 0 2px 16px; color: #444; line-height: 1.6; font-size: 14.5px; }

/* ---------- Text block ---------- */
.ppp__textblock { margin-bottom: 18px; line-height: 1.6; color: #444; }
.ppp__textblock h3 { font-size: 17px; margin: 0 0 8px; color: #111; }

/* ---------- Custom liquid zones ---------- */
.ppp__cl { margin: 14px 0; }
.ppp__cl--top, .ppp__cl--bottom { margin-block: 18px; }

/* ---------- Tabs ---------- */
.ppp__tabs { margin-top: 26px; }
.ppp__tabs--desktop { display: none; }
@media (min-width: 990px) { .ppp__tabs--desktop { display: block; } .ppp__tabs--mobile { display: none; } }
.ppp__tab-buttons { display: flex; flex-wrap: wrap; gap: 4px; border-bottom: 2px solid var(--ppp-border); margin-bottom: 18px; }
.ppp__tab-button { background: none; border: none; padding: 12px 16px; font-size: 15px; font-weight: 600; color: var(--ppp-muted); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -2px; }
.ppp__tab-button.is-active { color: var(--ppp-accent); border-bottom-color: var(--ppp-accent); }
.ppp__tab-panel { display: none; line-height: 1.7; color: #444; font-size: 15px; }
.ppp__tab-panel.is-active { display: block; }
.ppp__tab-panel img { max-width: 100%; height: auto; }

/* ---------- Sticky mobile cart ---------- */
.ppp__sticky {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
  display: none; align-items: center; gap: 10px;
  padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
  background: #fff; border-top: 1px solid var(--ppp-border);
  box-shadow: 0 -4px 18px rgba(0,0,0,.08); transform: translateY(120%); transition: transform .25s ease;
}
.ppp__sticky.is-visible { transform: translateY(0); }
.ppp__sticky-media { flex: 0 0 auto; }
.ppp__sticky-img { width: 44px; height: 44px; border-radius: 8px; object-fit: cover; }
.ppp__sticky-info { display: flex; flex-direction: column; line-height: 1.2; min-width: 0; }
.ppp__sticky-name { font-size: 12.5px; color: var(--ppp-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 150px; }
.ppp__sticky-price { font-weight: 700; font-size: 16px; white-space: nowrap; }
.ppp__sticky .ppp__btn { padding: 12px 14px; font-size: 15px; }
.ppp__sticky .ppp__btn--cart { flex: 0 0 auto; }
.ppp__sticky .ppp__btn--buy { flex: 1; }
@media (max-width: 989px) {
  .ppp__sticky.is-mobile-on { display: flex; }
  .ppp__sticky-name { display: none; }
  .ppp__sticky-btn-text { display: none; }
}
@media (min-width: 990px) {
  .ppp__sticky.is-desktop-on { display: flex; justify-content: center; gap: 18px; }
  .ppp__sticky.is-desktop-on .ppp__sticky-info { flex: 0 0 auto; }
  .ppp__sticky.is-desktop-on .ppp__btn--cart, .ppp__sticky.is-desktop-on .ppp__btn--buy { flex: 0 0 auto; min-width: 190px; }
  .ppp__sticky.is-desktop-on .ppp__sticky-name { max-width: 260px; }
}

/* ---------- Toast ---------- */
.ppp__toast {
  position: fixed; left: 50%; bottom: 90px; transform: translateX(-50%) translateY(20px);
  background: #111; color: #fff; padding: 12px 18px; border-radius: 10px; font-size: 14px;
  z-index: 999; opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s;
}
.ppp__toast.is-visible { opacity: 1; transform: translateX(-50%) translateY(0); }

/* ---------- Bundle offers (Buy 1 / Buy 2) ---------- */
.ppp__offers { display: grid; gap: 10px; }
.ppp__offer { position: relative; display: flex; align-items: center; gap: 12px; border: 2px solid var(--ppp-border); border-radius: var(--ppp-radius); padding: 13px 14px; cursor: pointer; transition: border-color .15s, background .15s; }
.ppp__offer input { position: absolute; opacity: 0; width: 0; height: 0; }
.ppp__offer-check { flex: 0 0 auto; width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--ppp-border); display: grid; place-items: center; }
.ppp__offer.is-selected { border-color: var(--ppp-accent); background: var(--ppp-bg-soft); }
.ppp__offer.is-selected .ppp__offer-check { border-color: var(--ppp-accent); }
.ppp__offer.is-selected .ppp__offer-check::after { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--ppp-accent); }
.ppp__offer-main { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.ppp__offer-title { font-weight: 600; font-size: 15px; }
.ppp__offer-sub { font-size: 12.5px; color: var(--ppp-muted); }
.ppp__offer-price { text-align: right; font-weight: 700; white-space: nowrap; }
.ppp__offer-price s { display: block; font-weight: 500; font-size: 12px; color: var(--ppp-muted); }
.ppp__offer-badge { position: absolute; top: -10px; right: 12px; background: var(--ppp-sale); color: #fff; font-size: 11px; font-weight: 600; padding: 2px 9px; border-radius: 10px; }
.ppp__offer.is-highlight:not(.is-selected) { border-color: var(--ppp-accent); }

/* ---------- Spacing between stacked sections (Theme Editor controlled) ---------- */
.ppp__info { display: flex; flex-direction: column; gap: var(--ppp-gap, 16px); }
.ppp__info > * { margin-bottom: 0; }
.ppp__form { display: flex; flex-direction: column; gap: var(--ppp-gap, 16px); }
.ppp__form > * { margin-bottom: 0; }
.ppp__form > input[type="hidden"], .ppp__form > script { display: none; }

/* ---------- Buy Now animations (professional set) ---------- */
.ppp__anim-shine { position: relative; overflow: hidden; }
.ppp__anim-shine::after {
  content: ""; position: absolute; top: 0; left: -100%; width: 55%; height: 100%;
  background: linear-gradient(120deg, transparent 0%, rgba(255,255,255,.35) 50%, transparent 100%);
  transform: skewX(-20deg); animation: ppp-shine 3.6s ease-in-out infinite;
}
@keyframes ppp-shine { 0% { left: -100%; } 45%,100% { left: 165%; } }

.ppp__anim-breathe { animation: ppp-breathe 2.6s ease-in-out infinite; }
@keyframes ppp-breathe { 0%,100% { transform: scale(1); box-shadow: 0 4px 14px rgba(0,0,0,.12); } 50% { transform: scale(1.02); box-shadow: 0 8px 22px rgba(0,0,0,.18); } }

.ppp__anim-pulse { animation: ppp-pulse 2.2s ease-in-out infinite; }
@keyframes ppp-pulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.025); } }

.ppp__anim-glow { animation: ppp-glow 2.2s ease-out infinite; }
@keyframes ppp-glow { 0% { box-shadow: 0 0 0 0 rgba(0,0,0,.2); } 70%,100% { box-shadow: 0 0 0 14px rgba(0,0,0,0); } }

.ppp__anim-heartbeat { animation: ppp-heartbeat 2.4s ease-in-out infinite; }
@keyframes ppp-heartbeat { 0%,100% { transform: scale(1); } 12% { transform: scale(1.045); } 24% { transform: scale(1); } 36% { transform: scale(1.03); } 48% { transform: scale(1); } }

/* ---------- Tabs as accordion ---------- */
.ppp__tabs-accordion { grid-column: 1 / -1; margin-top: 26px; }
.ppp__tabs-accordion .ppp__collapsibles { border-top: 1px solid var(--ppp-border); margin-bottom: 0; }
.ppp__tabs-accordion .ppp__collapse-head { font-size: 16px; }
.ppp__tabs-accordion .ppp__collapse.is-open .ppp__collapse-body { max-height: 4000px; }
.ppp__tabs-accordion .ppp__collapse-inner img { max-width: 100%; height: auto; }

/* ---------- App blocks (reviews app etc.) ---------- */
.ppp__app-blocks { margin: 30px auto; }
.ppp__app-block:not(:last-child) { margin-bottom: 20px; }

/* ---------- WhatsApp floating button ---------- */
.ppp__whatsapp {
  position: fixed; right: 18px; bottom: 24px; z-index: 70;
  display: inline-flex; align-items: center; gap: 8px;
  background: #25D366; color: #fff; text-decoration: none;
  padding: 12px 18px; border-radius: 50px;
  box-shadow: 0 6px 20px rgba(37,211,102,.45);
  font-weight: 600; font-size: 15px; line-height: 1;
  transition: transform .15s, box-shadow .15s;
}
.ppp__whatsapp:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(37,211,102,.5); }
.ppp__whatsapp svg { flex: 0 0 auto; }
@media (max-width: 989px) {
  .ppp__whatsapp { bottom: 22px; padding: 14px; }
  .ppp__whatsapp.has-sticky { bottom: 84px; }
  .ppp__whatsapp-label { display: none; }
}

/* ---------- Accessibility ---------- */
.ppp__btn:focus-visible, .ppp__tab-button:focus-visible, .ppp__thumb:focus-visible,
.ppp__option-choice:focus-within .ppp__swatch-ring, .ppp__option-choice:focus-within .ppp__size-pill {
  outline: 2px solid var(--ppp-accent); outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) { .ppp * { transition: none !important; animation: none !important; } }


/* ---------- WooCommerce adapter ---------- */
body.ppp-product-active .woocommerce-breadcrumb,
body.ppp-product-active .woocommerce-notices-wrapper + .product,
body.ppp-product-active div.product:not(.ppp__wc-product) { }
.ppp__notice-wrap { max-width: var(--ppp-max,1240px); margin: 16px auto 0; padding: 0 16px; }
.ppp__option-choice.is-disabled { opacity:.42; pointer-events:none; }
.ppp__option-choice.is-disabled .ppp__size-pill { text-decoration:line-through; }
.ppp__variation-note { font-size:12px; color:var(--ppp-muted); margin-top:-6px; }
.ppp__short ul, .ppp__tab-panel ul, .ppp__collapse-inner ul { padding-left:20px; }
.ppp__stage .ppp__image { object-position:center; }
.ppp__wishlist-note { display:none; }
.ppp__qty input { margin:0 !important; padding:0 !important; box-shadow:none !important; background:#fff !important; }
.ppp__form button, .ppp__form input { font-family:inherit; }
.ppp__btn { text-decoration:none; line-height:1.2; }
.ppp__btn:hover { color:#fff; }
.ppp__option-choice input:focus-visible + .ppp__size-pill,
.ppp__option-choice input:focus-visible + .ppp__swatch-ring { outline:2px solid var(--ppp-accent); outline-offset:2px; }
.ppp__native-price-html .amount { color:inherit; }
.ppp__native-price-html del { color:#9aa0a6; font-size:19px; font-weight:500; }
.ppp__native-price-html ins { text-decoration:none; }
.ppp__woo-message { position:fixed; left:50%; bottom:92px; transform:translateX(-50%) translateY(18px); z-index:99999; background:#111; color:#fff; border-radius:10px; padding:12px 18px; opacity:0; transition:.2s; pointer-events:none; }
.ppp__woo-message.is-visible { opacity:1; transform:translateX(-50%) translateY(0); }
.ppp__gallery-placeholder { width:100%; aspect-ratio:1/1; display:grid; place-items:center; border:1px solid var(--ppp-border); border-radius:var(--ppp-radius); background:var(--ppp-bg-soft); color:var(--ppp-muted); }
.ppp__attribute-label { text-transform:none; }
@media(max-width:989px){ body.ppp-product-active { padding-bottom:76px; } }


/* v1.1 swatch visibility */
.ppp__color-choice { width: 72px; }
.ppp__swatch-ring {
  width: 60px;
  height: 60px;
  border-radius: 10px;
  background: #fff;
}
.ppp__swatch-ring img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ppp__choice-label {
  display: block;
  width: 100%;
  margin-top: 3px;
  font-size: 12px;
  line-height: 1.25;
  color: #222;
  text-align: center;
  white-space: normal;
  word-break: break-word;
}
.ppp__color-choice input:checked + .ppp__swatch-ring {
  border-color: var(--ppp-accent);
  box-shadow: 0 0 0 1px var(--ppp-accent);
}



/* v1.4 — safe theme compatibility (no forced viewport/content widths) */
body.ppp-product-active .ppp {
  display: block;
  clear: both;
}
body.ppp-product-active .ppp__wrap {
  box-sizing: border-box;
}
body.ppp-product-active .ppp__main {
  width: auto;
  min-width: 0;
}
body.ppp-product-active .ppp__left,
body.ppp-product-active .ppp__right,
body.ppp-product-active .ppp__info,
body.ppp-product-active .ppp__gallery,
body.ppp-product-active .ppp__stage {
  min-width: 0;
}


/* v1.5 — never show WooCommerce "View cart" link beside premium product buttons */
.ppp a.added_to_cart,
.ppp .added_to_cart.wc-forward,
.ppp__actions + a.added_to_cart,
.ppp__sticky a.added_to_cart {
  display: none !important;
}


/* v1.7 — Customer Reviews & Related Products */
.ppp__bottom-section{
  max-width: var(--ppp-max-width,1240px);
  margin: 34px auto 0;
  padding: 0 18px;
  box-sizing: border-box;
}
.ppp__section-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:18px;
}
.ppp__section-head h2{
  margin:0;
  font-size:24px;
  line-height:1.2;
}
.ppp__review-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.ppp__review-card{
  border:1px solid #e8e8e8;
  border-radius:14px;
  background:#fff;
  padding:16px;
}
.ppp__review-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.ppp__review-stars{
  color:#f4a000;
  letter-spacing:1px;
  white-space:nowrap;
}
.ppp__review-date{
  font-size:12px;
  color:#888;
  margin-top:4px;
}
.ppp__review-text{
  margin-top:10px;
  font-size:14px;
  line-height:1.55;
}
.ppp__review-text p:last-child{margin-bottom:0}
.ppp__related-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}
.ppp__related-card{
  display:block;
  color:inherit;
  text-decoration:none !important;
}
.ppp__related-image{
  overflow:hidden;
  border-radius:14px;
  background:#f7f7f7;
  aspect-ratio:1/1.15;
}
.ppp__related-image img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transition:transform .25s ease;
}
.ppp__related-card:hover .ppp__related-image img{
  transform:scale(1.035);
}
.ppp__related-info{
  padding-top:10px;
}
.ppp__related-info h3{
  margin:0 0 6px;
  font-size:15px;
  line-height:1.35;
  font-weight:600;
}
.ppp__related-price{
  font-size:15px;
  font-weight:700;
}
.ppp__empty-state{
  padding:18px;
  border:1px dashed #d6d6d6;
  border-radius:12px;
  color:#777;
  background:#fafafa;
}
@media (max-width: 900px){
  .ppp__review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ppp__related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 520px){
  .ppp__review-grid{grid-template-columns:1fr}
  .ppp__bottom-section{padding:0 14px}
  .ppp__section-head h2{font-size:20px}
}


/* v1.8 — guaranteed bottom sections */
.ppp__bottom-section{
  width:100%;
  max-width:var(--ppp-max-width,1240px);
  margin:36px auto 0;
  padding:0 18px;
  box-sizing:border-box;
  clear:both;
}
.ppp__section-head h2{
  margin:0 0 18px;
  font-size:24px;
}
.ppp__review-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.ppp__review-card{
  background:#fff;
  border:1px solid #e8e8e8;
  border-radius:14px;
  padding:16px;
}
.ppp__review-top{
  display:flex;
  justify-content:space-between;
  gap:12px;
}
.ppp__review-stars{color:#f3a000}
.ppp__review-date{font-size:12px;color:#888;margin-top:4px}
.ppp__review-text{font-size:14px;line-height:1.55;margin-top:10px}
.ppp__related-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}
.ppp__related-card{
  display:block;
  color:inherit;
  text-decoration:none!important;
}
.ppp__related-image{
  aspect-ratio:1/1.15;
  overflow:hidden;
  border-radius:14px;
  background:#f6f6f6;
}
.ppp__related-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.ppp__related-info{padding-top:10px}
.ppp__related-info h3{margin:0 0 6px;font-size:15px;line-height:1.35}
.ppp__related-price{font-weight:700}
.ppp__empty-state{
  padding:18px;
  border:1px dashed #d5d5d5;
  border-radius:12px;
  background:#fafafa;
  color:#777;
}
@media(max-width:900px){
  .ppp__review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ppp__related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:520px){
  .ppp__review-grid{grid-template-columns:1fr}
}


/* v1.9 — Review slider + review submission */
.ppp__reviews-section{
  padding-top:10px;
  padding-bottom:8px;
}
.ppp__reviews-hero{
  text-align:center;
  margin-bottom:24px;
}
.ppp__reviews-hero h2{
  margin:0;
  font-size:30px;
  line-height:1.15;
  font-weight:800;
}
.ppp__reviews-summary{
  display:flex;
  gap:6px;
  align-items:center;
  justify-content:center;
  margin-top:7px;
  font-size:14px;
}
.ppp__reviews-shell{
  position:relative;
}
.ppp__review-track{
  display:flex;
  gap:18px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  scrollbar-width:none;
  padding:8px 4px 12px;
}
.ppp__review-track::-webkit-scrollbar{display:none}
.ppp__review-pill{
  flex:0 0 min(460px, calc(100vw - 56px));
  min-width:0;
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 18px 12px 12px;
  background:#fff;
  border:1px solid #f0f0f0;
  border-radius:999px;
  box-shadow:0 5px 18px rgba(0,0,0,.055);
  scroll-snap-align:start;
}
.ppp__review-avatar{
  width:52px;
  height:52px;
  border-radius:50%;
  overflow:hidden;
  background:#f2f2f2;
  flex:0 0 52px;
}
.ppp__review-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.ppp__review-copy{min-width:0}
.ppp__review-name-row{
  display:flex;
  align-items:center;
  gap:4px;
  min-width:0;
  line-height:1.2;
}
.ppp__review-name-row strong{
  font-size:15px;
  white-space:nowrap;
}
.ppp__verified{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:16px;
  height:16px;
  border-radius:50%;
  background:#333;
  color:#fff;
  font-size:10px;
  flex:0 0 16px;
}
.ppp__review-stars{
  color:#ff9800;
  font-size:17px;
  letter-spacing:0;
  white-space:nowrap;
}
.ppp__review-excerpt{
  margin-top:4px;
  color:#646464;
  font-size:13px;
  line-height:1.35;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.ppp__review-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:2;
  width:38px;
  height:38px;
  border-radius:50%;
  border:1px solid #e5e5e5;
  background:#fff;
  box-shadow:0 4px 14px rgba(0,0,0,.08);
  font-size:26px;
  line-height:1;
  cursor:pointer;
}
.ppp__review-prev{left:-12px}
.ppp__review-next{right:-12px}
.ppp__review-form-wrap{
  display:flex;
  flex-direction:column;
  align-items:center;
  margin-top:18px;
}
.ppp__write-review-btn,
.ppp__review-submit{
  border:0;
  border-radius:10px;
  background:var(--ppp-accent,#111);
  color:#fff;
  padding:12px 20px;
  font-weight:700;
  cursor:pointer;
}
.ppp__review-form{
  width:min(720px,100%);
  margin-top:16px;
  padding:20px;
  border:1px solid #e7e7e7;
  border-radius:14px;
  background:#fff;
  box-sizing:border-box;
}
.ppp__review-form-head h3{margin:0 0 4px;font-size:20px}
.ppp__review-form-head p{margin:0 0 14px;color:#777;font-size:13px}
.ppp__review-fields{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.ppp__review-form label,
.ppp__rating-field legend{
  font-size:13px;
  font-weight:600;
}
.ppp__review-form input[type=text],
.ppp__review-form input[type=email],
.ppp__review-form textarea{
  width:100%;
  margin-top:6px;
  border:1px solid #ddd;
  border-radius:9px;
  padding:11px 12px;
  box-sizing:border-box;
  font:inherit;
}
.ppp__rating-field{
  border:0;
  padding:0;
  margin:14px 0;
}
.ppp__rating-input{
  display:flex;
  flex-direction:row-reverse;
  justify-content:flex-end;
  gap:2px;
  margin-top:6px;
}
.ppp__rating-input input{position:absolute;opacity:0;pointer-events:none}
.ppp__rating-input label{
  font-size:28px;
  line-height:1;
  color:#d8d8d8;
  cursor:pointer;
}
.ppp__rating-input label:hover,
.ppp__rating-input label:hover ~ label,
.ppp__rating-input input:checked ~ label{
  color:#ff9800;
}
.ppp__review-message{display:block}
.ppp__review-submit{margin-top:12px}
.ppp__review-response{margin-top:10px;font-size:13px}
@media(max-width:700px){
  .ppp__reviews-hero h2{font-size:24px}
  .ppp__review-pill{flex-basis:86vw}
  .ppp__review-nav{display:none}
  .ppp__review-fields{grid-template-columns:1fr}
}


/* v2.0 — reliable review carousel sizing */
.ppp__reviews-shell{
  overflow:hidden;
  padding:0 2px;
}
.ppp__review-track{
  width:100%;
  display:flex;
  flex-wrap:nowrap;
  gap:18px;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-behavior:smooth;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.ppp__review-track::-webkit-scrollbar{display:none!important}
.ppp__review-pill{
  scroll-snap-align:start;
  flex:0 0 calc((100% - 36px)/3);
  max-width:none;
  box-sizing:border-box;
}
@media(max-width:900px){
  .ppp__review-pill{flex-basis:calc((100% - 18px)/2)}
}
@media(max-width:620px){
  .ppp__review-pill{
    flex-basis:88%;
    border-radius:16px;
    padding:12px;
  }
  .ppp__review-nav{display:none!important}
  .ppp__review-excerpt{
    white-space:normal;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
  }
}

/* v2.0 — redesigned mobile sticky cart */
@media(max-width:989px){
  body.ppp-product-active{
    padding-bottom:76px;
  }
  .ppp__sticky.is-mobile-on{
    display:grid;
    grid-template-columns:auto minmax(0,1fr) minmax(0,1.25fr);
    align-items:center;
    gap:8px;
    min-height:64px;
    padding:8px 10px calc(8px + env(safe-area-inset-bottom));
    background:rgba(255,255,255,.98);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    border-top:1px solid #e8e8e8;
    box-shadow:0 -6px 22px rgba(0,0,0,.09);
  }
  .ppp__sticky-media,
  .ppp__sticky-name{
    display:none!important;
  }
  .ppp__sticky-info{
    min-width:72px;
    display:flex;
    justify-content:center;
  }
  .ppp__sticky-price{
    font-size:15px;
    line-height:1.1;
    font-weight:800;
    color:#111;
    max-width:92px;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .ppp__sticky .ppp__btn{
    width:100%;
    min-width:0;
    height:46px;
    min-height:46px;
    padding:0 10px!important;
    border-radius:10px;
    font-size:13px!important;
    line-height:1;
    font-weight:700;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    white-space:nowrap;
    box-sizing:border-box;
  }
  .ppp__sticky .ppp__btn--cart{
    background:#fff;
    color:#111;
    border:1px solid #1c1c1c;
  }
  .ppp__sticky .ppp__btn--buy{
    border:1px solid transparent;
    box-shadow:none;
  }
  .ppp__sticky-btn-text{
    display:inline!important;
  }
}
@media(max-width:380px){
  .ppp__sticky.is-mobile-on{
    grid-template-columns:58px minmax(0,1fr) minmax(0,1.15fr);
    gap:6px;
    padding-left:7px;
    padding-right:7px;
  }
  .ppp__sticky-price{
    font-size:13px;
    max-width:58px;
  }
  .ppp__sticky .ppp__btn{
    height:44px;
    min-height:44px;
    padding:0 7px!important;
    font-size:11.5px!important;
    border-radius:9px;
  }
}


/* v2.1 — final mobile sticky: image + price + compact buttons + adjustable sizing */
@media(max-width:989px){
  body.ppp-product-active{
    padding-bottom:calc(var(--ppp-sticky-h,66px) + 14px);
  }

  .ppp__sticky.is-mobile-on{
    display:grid !important;
    grid-template-columns:var(--ppp-sticky-img,46px) minmax(58px,auto) minmax(76px,.88fr) minmax(76px,1fr);
    align-items:center;
    gap:var(--ppp-sticky-gap,6px);
    min-height:var(--ppp-sticky-h,66px);
    padding:7px 8px calc(7px + env(safe-area-inset-bottom));
    box-sizing:border-box;
    background:rgba(255,255,255,.98);
    border-top:1px solid #e7e7e7;
    box-shadow:0 -5px 18px rgba(0,0,0,.08);
  }

  .ppp__sticky-media{
    display:block !important;
    width:var(--ppp-sticky-img,46px);
    height:var(--ppp-sticky-img,46px);
    min-width:var(--ppp-sticky-img,46px);
    border-radius:8px;
    overflow:hidden;
    background:#f5f5f5;
    border:1px solid #ececec;
  }

  .ppp__sticky-img{
    width:100% !important;
    height:100% !important;
    display:block !important;
    object-fit:cover !important;
    margin:0 !important;
  }

  .ppp__sticky-info{
    display:flex !important;
    min-width:0 !important;
    align-items:center;
    justify-content:flex-start !important;
  }

  .ppp__sticky-name{
    display:none !important;
  }

  .ppp__sticky-price{
    display:block !important;
    max-width:92px;
    font-size:var(--ppp-sticky-price-font,14px) !important;
    line-height:1.15;
    font-weight:800;
    color:#111;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .ppp__sticky .ppp__btn{
    width:100% !important;
    min-width:0 !important;
    height:var(--ppp-sticky-btn-h,42px) !important;
    min-height:var(--ppp-sticky-btn-h,42px) !important;
    padding:0 7px !important;
    border-radius:8px !important;
    font-size:var(--ppp-sticky-btn-font,12px) !important;
    line-height:1 !important;
    font-weight:700 !important;
    white-space:nowrap !important;
    overflow:hidden;
    text-overflow:ellipsis;
    box-sizing:border-box;
    box-shadow:none !important;
  }

  .ppp__sticky .ppp__btn--cart{
    background:#fff !important;
    color:#111 !important;
    border:1px solid #222 !important;
  }

  .ppp__sticky .ppp__btn--buy{
    border:1px solid transparent !important;
  }

  .ppp__sticky-btn-text{
    display:inline !important;
  }
}

@media(max-width:390px){
  .ppp__sticky.is-mobile-on{
    grid-template-columns:var(--ppp-sticky-img,42px) minmax(50px,auto) minmax(68px,.9fr) minmax(68px,1fr);
    padding-left:6px;
    padding-right:6px;
  }
  .ppp__sticky-price{
    max-width:70px;
  }
  .ppp__sticky .ppp__btn{
    padding-left:5px !important;
    padding-right:5px !important;
  }
}
