/* ============================================================
   Lavior PDP image zoom — 2026-10-25
   Hover magnifier on .lv-pdp-stage + fullscreen lightbox
   (wheel zoom / drag pan / arrows / swipe / Esc)
   ============================================================ */

/* ---------- stage: click-to-zoom only (no hover zoom) ---------- */
.lv-pdp-stage{ position:relative; cursor:zoom-in; }

.lv-zoom-hint{
  position:absolute; right:12px; bottom:12px;
  display:flex; align-items:center; gap:6px;
  background:rgba(246,245,242,.94); color:var(--ink,#1d2d3e);
  font-size:.68rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  padding:7px 12px; opacity:0; transform:translateY(4px);
  transition:opacity .25s, transform .25s; pointer-events:none;
}
.lv-zoom-hint svg{ width:14px; height:14px; }
.lv-pdp-stage:hover .lv-zoom-hint{ opacity:1; transform:translateY(0); }
@media (hover:none){ .lv-zoom-hint{ opacity:.9; transform:none; } }

/* ---------- fullscreen lightbox ---------- */
.lv-zlb{ position:fixed; inset:0; z-index:9999; display:none; background:rgba(24,34,46,.96); }
.lv-zlb.open{ display:block; }

.lv-zlb-imgwrap{ position:absolute; inset:0; display:grid; place-items:center; overflow:hidden; cursor:grab; touch-action:none; }
.lv-zlb-imgwrap.lv-grabbing{ cursor:grabbing; }
.lv-zlb-imgwrap img{
  max-width:92vw; max-height:88vh; object-fit:contain;
  user-select:none; -webkit-user-drag:none;
  transition:transform .12s ease-out; will-change:transform;
}
.lv-zlb-imgwrap.lv-dragging img{ transition:none; }

.lv-zlb-btn{
  position:absolute; background:none; border:none; color:#fff;
  cursor:pointer; opacity:.8; padding:10px;
  transition:opacity .15s, color .15s;
}
.lv-zlb-btn:hover{ opacity:1; color:var(--rose,#c47187); }
.lv-zlb-close{ top:14px; right:18px; }
.lv-zlb-close svg{ width:26px; height:26px; }
.lv-zlb-prev, .lv-zlb-next{ top:50%; transform:translateY(-50%); }
.lv-zlb-prev{ left:14px; }
.lv-zlb-next{ right:14px; }
.lv-zlb-prev svg, .lv-zlb-next svg{ width:34px; height:34px; }

.lv-zlb-count{
  position:absolute; top:22px; left:24px;
  color:rgba(255,255,255,.85); font-size:.8rem; letter-spacing:.14em;
}
.lv-zlb-hinttxt{
  position:absolute; bottom:18px; left:50%; transform:translateX(-50%);
  color:rgba(255,255,255,.55); font-size:.7rem; letter-spacing:.12em;
  text-transform:uppercase; pointer-events:none; white-space:nowrap;
}
@media (max-width:760px){
  .lv-zlb-prev{ left:2px; } .lv-zlb-next{ right:2px; }
  .lv-zlb-hinttxt{ display:none; }
  .lv-zlb-imgwrap img{ max-width:96vw; max-height:82vh; }
}
