/* ===== Product page: zoom on the main photo =====
   Click (or tap) the main photo to open a full-screen viewer. Nothing zooms until the person clicks. In the viewer: tap/click to zoom in and out, drag to move around, arrows or swipe-free buttons for the next photo, Esc or X to close. */
.p-stage { cursor: zoom-in; }
.p-zoom-hint {
  position: absolute; right: 16px; bottom: 16px; z-index: 2; display: flex; align-items: center; gap: 8px; pointer-events: none;
  padding: 8px 12px 8px 10px; background: rgba(255,255,255,.92); color: #1d1a1b; border-radius: 999px;
  font: 500 13px/1 var(--font-ui, 'Public Sans', sans-serif); letter-spacing: .02em; transition: opacity .2s ease;
}
.p-zoom-hint svg { width: 16px; height: 16px; flex: none; }

.p-lb { position: fixed; inset: 0; z-index: 100000; display: none; background: #ffffff; overscroll-behavior: contain; }
.p-lb.open { display: block; }
.p-lb-view { position: absolute; inset: 0; overflow: hidden; cursor: zoom-in; touch-action: none; user-select: none; -webkit-user-select: none; }
.p-lb-view.is-zoomed { cursor: grab; }
.p-lb-view.is-dragging { cursor: grabbing; }
.p-lb-view img {
  position: absolute; left: 50%; top: 50%; width: 94vw; height: 84vh; object-fit: contain;
  transform: translate(-50%, -50%); transform-origin: 50% 50%; mix-blend-mode: multiply; -webkit-user-drag: none; pointer-events: none;
}
.p-lb-view.animate img { transition: transform .22s ease-out; }
.p-lb-btn {
  position: absolute; z-index: 3; display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; padding: 0;
  border: 0; border-radius: 50%; background: #fff; color: #1d1a1b; cursor: pointer; box-shadow: 0 1px 6px rgba(0,0,0,.18);
}
.p-lb-btn:hover { background: #941e35; color: #fff; }
.p-lb-btn svg { width: 22px; height: 22px; }
.p-lb-close { top: 18px; right: 18px; }
.p-lb-prev, .p-lb-next { top: 50%; margin-top: -24px; }
.p-lb-prev { left: 18px; } .p-lb-next { right: 18px; }
.p-lb-count { position: absolute; z-index: 3; left: 24px; top: 28px; font: 500 14px/1 var(--font-ui, 'Public Sans', sans-serif); color: #1d1a1b; }
.p-lb-tip { position: absolute; z-index: 3; left: 50%; bottom: 22px; transform: translateX(-50%); padding: 9px 16px; border-radius: 999px; background: rgba(255,255,255,.92); color: #1d1a1b; font: 400 13px/1 var(--font-ui, 'Public Sans', sans-serif); pointer-events: none; white-space: nowrap; }
@media (max-width: 720px) {
  .p-lb-btn { width: 44px; height: 44px; }
  .p-lb-prev { left: 10px; } .p-lb-next { right: 10px; }
  .p-lb-close { top: 12px; right: 12px; }
  .p-lb-count { left: 16px; top: 24px; }
}
body.p-lb-lock { overflow: hidden; }
