/* Product controls shared by desktop and mobile. */
.pp-anchorbar { top: var(--sr-header-height, 120px); }
.pp-section, .pp-pickup { scroll-margin-top: calc(var(--sr-header-height, 120px) + 64px); }
.pp-shop-mobile-name { display: none; }
.pp-gallery-open { position: relative; width: 100%; min-width: 0; border: 0; padding: 0; background: transparent; color: var(--muted); font: inherit; cursor: zoom-in; display: flex; align-items: center; justify-content: center; touch-action: pan-y pinch-zoom; }
.pp-gallery-open:focus-visible, .pp-thumb-btn:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
.pp-gallery-hint { font-size: 12px; color: var(--muted); margin-top: 10px; }
.pp-gallery-dialog { border: 0; padding: 0; margin: auto; width: 100vw; max-width: 100vw; height: 100vh; height: 100dvh; max-height: 100%; background: #fff; color: var(--text); }
.pp-gallery-dialog::backdrop { background: rgba(15,23,42,.8); }
.pp-gallery-viewer { height: 100%; display: grid; grid-template-rows: auto minmax(0,1fr) auto; padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); }
.pp-gallery-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.pp-gallery-toolbar h2 { font-size: 16px; margin: 0; }
.pp-gallery-control { min-width: 48px; min-height: 48px; border: 1px solid var(--border); border-radius: 12px; background: var(--bg2); color: var(--text); font: inherit; font-size: 24px; cursor: pointer; }
.pp-gallery-control:focus-visible { outline: 3px solid var(--blue); }
.pp-gallery-stage { min-height: 0; display: flex; align-items: center; justify-content: center; padding: 16px 0; touch-action: pan-y pinch-zoom; }
.pp-gallery-stage img { max-width: 100%; max-height: 100%; object-fit: contain; }
.pp-gallery-stage [hidden], .pp-prow-shop img[hidden] { display: none; }
.pp-gallery-error { text-align: center; color: var(--muted); }
.pp-gallery-controls { display: flex; justify-content: center; align-items: center; gap: 24px; }
.pp-gallery-counter { min-width: 70px; text-align: center; font-size: 14px; }
.pp-gallery-control[hidden] { display: none; }
@media (max-width: 1100px) {
  .pp-page { padding-left: 16px; padding-right: 16px; }
  .pp-hero { grid-template-columns: minmax(230px, .8fr) minmax(0, 1.2fr); }
  .pp-hinfo { min-width: 0; padding: 22px; }
  .pp-pricelist { padding: 12px; gap: 12px; }
  .pp-prow { grid-template-columns: 70px minmax(0,1fr) minmax(160px,200px); grid-template-areas: 'shop shop price' 'thumb info price' 'delivery delivery price'; border: 1px solid var(--border); border-radius: 14px; background: #fff; padding: 14px; gap: 12px; }
  .pp-prow:last-child { border-bottom: 1px solid var(--border); }
  .pp-prow.pp-prow-best { border-color: #f5cf78; }
  .pp-prow > .pp-prow-shop { grid-area: shop; display: flex; flex-direction: row; flex-wrap: wrap; justify-content: flex-start; align-items: center; gap: 6px 12px; border: 0; padding: 0 34px 10px 0; border-bottom: 1px solid var(--border-l); }
  .pp-shop-mobile-name { display: block; font-size: 15px; font-weight: 700; overflow-wrap: anywhere; }
  .pp-prow-shop .pp-shop-logo-img { max-width: 110px; height: 32px; }
  .pp-shop-ext-rating { margin: 0; flex-wrap: wrap; }
  .pp-prow > .pp-prow-thumb { grid-area: thumb; border: 0; padding: 0; }
  .pp-prow > .pp-prow-info { grid-area: info; border: 0; padding: 0; overflow-wrap: anywhere; }
  .pp-prow > .pp-prow-del { grid-area: delivery; display: flex; align-items: stretch; gap: 8px; border: 0; padding: 0; min-width: 0; }
  .pp-del-row { flex-wrap: wrap; gap: 5px; overflow-wrap: anywhere; }
  .pp-prow > .pp-prow-price { grid-area: price; min-width: 0; padding: 34px 0 0 12px; border-left: 1px solid var(--border-l); }
  .pp-price-stack .pp-promo-note, .pp-price-stack .pp-promo-badge { white-space: normal; overflow-wrap: anywhere; }
  .pp-price-stack { max-width: 100%; }
  .pp-prow > .pp-report-btn { top: 4px; right: 4px; width: 44px; height: 44px; background: transparent; border: 0; box-shadow: none; overflow: visible; }
  .pp-prow > .pp-report-btn::before { content: ''; position: absolute; inset: 11px; background: var(--orange-bg); border: 1px solid #fde4b8; border-radius: 50%; }
  .pp-report-btn svg { position: relative; }
  .pp-copy { width: 44px; height: 44px; }
  .pp-copy svg { width: 16px; height: 16px; }
  .pp-buy-btn { min-height: 46px; }
  .pp-phone-reveal, a.pp-shop-phone { min-height: 44px; justify-content: center; }
  a.pp-shop-phone { display: inline-flex; align-items: center; }
}
@media (max-width: 720px) {
  .pp-page { padding: 12px 12px 32px; }
  .pp-hero { grid-template-columns: minmax(0,1fr); }
  .pp-hinfo { padding: 18px 16px; }
  .pp-gallery { padding: 18px 16px; min-height: 220px; }
  .pp-gallery__main img { max-height: 240px; }
  .pp-thumbs { flex-wrap: nowrap; justify-content: flex-start; width: 100%; overflow-x: auto; padding: 4px 2px; }
  .pp-thumb-btn { flex: 0 0 52px; }
  .pp-pricelist { padding: 8px; gap: 8px; }
  .pp-prow { grid-template-columns: 40px minmax(0,1fr); grid-template-areas: 'shop shop' 'thumb info' 'delivery delivery' 'price price'; gap: 6px 8px; padding: 10px; border-radius: 10px; }
  .pp-prow > .pp-prow-shop { padding: 0 34px 6px 0; gap: 2px 8px; }
  .pp-prow-shop .pp-shop-logo-img { width: 84px; max-width: 84px; height: 26px; }
  .pp-shop-mobile-name, .pp-shop-name-text { flex: 1 1 110px; min-width: 0; font-size: 14px; line-height: 1.35; }
  .pp-shop-verified, .pp-shop-ext-rating { font-size: 11.5px; line-height: 1.4; }
  .pp-prow-thumb img, .pp-prow-thumb .pp-thumb-empty { width: 40px; height: 40px; }
  .pp-prow > .pp-prow-info { gap: 2px; }
  .pp-prow-ofname { font-size: 13px; line-height: 1.35; min-height: 36px; }
  a.pp-prow-ofname:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
  .pp-prow-sku { font-size: 11.5px; line-height: 1.35; }
  .pp-prow-badges { gap: 3px; margin-top: 0; }
  .pp-ob { font-size: 10.5px; padding: 1px 6px; }
  /* The offer title links to the same description; delivery is shown below. */
  .pp-prow-desclink, .pp-prow-badges .pp-ob-del { display: none; }
  .pp-prow > .pp-prow-del { flex-direction: row; flex-wrap: wrap; gap: 2px 12px; font-size: 12px; line-height: 1.4; }
  .pp-prow-del .pp-del-group { display: contents; }
  .pp-prow-del .pp-del-row { gap: 4px; }
  .pp-prow-del .pp-pay-text { font-size: 12px; }
  .pp-del-pickup-link { min-height: 44px; align-items: center; }
  .pp-prow > .pp-prow-price { display: grid; grid-template-columns: minmax(0,1fr) minmax(112px,40%); padding: 8px 0 0; border-left: 0; border-top: 1px solid var(--border); align-items: center; gap: 0 8px; }
  .pp-prow-price > .pp-price-stack { grid-column: 1; grid-row: 1 / span 2; align-items: flex-start; text-align: left; }
  .pp-offer-price { font-size: 21px; }
  .pp-prow-price > .pp-buy-btn { grid-column: 2; grid-row: 1; width: 100%; min-height: 44px; padding: 8px; font-size: 13px; justify-content: center; }
  .pp-prow-price > .pp-phone-reveal, .pp-prow-price > a.pp-shop-phone { grid-column: 2; grid-row: 2; align-self: center; justify-self: center; align-items: center; margin: 0; }
  .pp-kspec { display: grid; grid-template-columns: minmax(0,1fr) minmax(70px,1fr); align-items: start; gap: 12px; padding: 5px 0; line-height: 1.5; }
  .pp-kspec-dots { display: none; }
  .pp-kspec-name, .pp-kspec-val { min-width: 0; overflow-wrap: anywhere; }
  .pp-kspec-all, .pp-scroll-link { min-height: 44px; display: inline-flex; align-items: center; }
  .pp-anchorbar { border-radius: 10px; }
  .pp-anchor { min-height: 48px; align-items: center; }
  .pp-anchorbar::after { content: ''; position: absolute; right: 0; top: 0; bottom: 0; width: 14px; pointer-events: none; background: linear-gradient(90deg, transparent, #fff); }
  .pp-section-head { padding: 14px; flex-wrap: wrap; }
  .pp-report-box { padding: 20px 16px; }
  .pp-report-close { width: 44px; height: 44px; top: 4px; right: 4px; }
  .pp-uform { padding: 16px 12px; }
  .pp-uform input, .pp-uform textarea, .pp-report-box textarea, .pp-report-box input[type=email] { font-size: 16px; }
  .pp-uform-grid { grid-template-columns: minmax(0,1fr); }
  .pp-captcha-row { flex-wrap: wrap; }
  .pp-captcha-row input { flex: 1 1 120px; max-width: none; min-width: 0; }
  .pp-rev-bars { min-width: 0; flex-basis: 160px; }
  .pp-rev-summary { gap: 18px; }
  .pp-ans-form { margin-left: 0; }
  .pp-a-row { margin-left: 12px; }
  .pp-q-row > div, .pp-a-row > div { min-width: 0; overflow-wrap: anywhere; }
  .pp-a-toggle { min-height: 44px; }
  .pp-rate { display: flex; gap: 0; letter-spacing: 0; }
  .pp-rate span { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; }
  .pp-pickup-head { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
  .pp-gallery__main img { transition: none; }
  .pp-promo-note b, .pp-promo-badge b, .pp-hero-promo b { animation: none; }
}
