.lpw { --lpw-ink:#181818; width:100%; max-width:740px; margin:24px auto 48px; color:var(--lpw-ink); background:#fff; font-family:inherit; line-height:1.35; }
.lpw *, .lpw *::before, .lpw *::after { box-sizing:border-box; }
.lpw [hidden] { display:none!important; }
.lpw button { appearance:none; min-width:44px; min-height:44px; padding:0; margin:0; background:transparent; color:var(--lpw-ink); border:0; border-radius:0; box-shadow:none; font:inherit; cursor:pointer; text-transform:none; letter-spacing:normal; }
.lpw button:hover { color:#777; background:transparent; }
.lpw button:disabled { opacity:.25; cursor:default; }
.lpw button:focus-visible, .lpw a:focus-visible, .lpw [tabindex]:focus-visible { outline:2px solid #181818; outline-offset:3px; }
.lpw-counter { text-align:center; color:#777; font:12px/1.5 ui-monospace,monospace; letter-spacing:.12em; }
.lpw-marker { display:block; margin-top:3px; font-size:17px; }
.lpw-stage { position:relative; aspect-ratio:1 / 1.2; width:100%; isolation:isolate; }
.lpw-orbit { position:absolute; inset:0; touch-action:pinch-zoom; user-select:none; cursor:grab; }
.lpw-orbit:active { cursor:grabbing; }
.lpw .lpw-item { position:absolute; width:14.4%; height:14.4%; min-width:38px; min-height:38px; transform:translate(-50%,-50%); display:flex; align-items:center; justify-content:center; padding:3px; transition:opacity .2s; }
.lpw .lpw-item img { width:100%; height:100%; object-fit:contain; display:block; pointer-events:none; user-select:none; }
.lpw .lpw-item[aria-pressed="true"]::after { content:""; width:4px; height:4px; border-radius:50%; background:var(--lpw-ink); position:absolute; bottom:-4px; left:calc(50% - 2px); }
.lpw-center { position:absolute; left:25%; top:24%; width:50%; height:54%; display:flex; flex-direction:column; align-items:center; text-align:center; }
.lpw-gallery { position:relative; width:100%; flex:1 1 auto; min-height:0; touch-action:pan-y pinch-zoom; user-select:none; cursor:ew-resize; }
.lpw .lpw-hero { display:block; width:100%; height:100%; object-fit:contain; margin:0; user-select:none; transform:scale(1.3); transform-origin:center; }
.lpw-image-error { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:#777; font-size:12px; }
.lpw-photo-controls { display:flex; align-items:center; justify-content:center; gap:6px; flex:0 0 36px; font:10px/1.2 ui-monospace,monospace; color:#777; }
.lpw .lpw-photo-controls button { min-height:36px; font-size:24px; }
.lpw .lpw-name { flex:0 0 auto; margin:2px 0 5px; padding:0; font-family:inherit; font-size:clamp(11px,2.4vw,16px); font-weight:500; line-height:1.3; letter-spacing:.025em; overflow-wrap:anywhere; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.lpw .lpw-price { margin:0 0 7px; color:#777; font-size:clamp(10px,2.2vw,13px); line-height:1.3; }
.lpw .lpw-link { color:var(--lpw-ink); text-decoration:none; border-bottom:1px solid #ccc; padding:5px 0; font-size:11px; line-height:1.5; }
.lpw-controls { display:flex; align-items:center; justify-content:center; gap:12px; margin-top:8px; }
.lpw-controls span { text-align:center; color:#777; font-size:11px; }
.lpw .lpw-controls button { font-size:21px; }
.lpw-sr { position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (min-width:700px) { .lpw-center { top:27%; height:46%; } .lpw .lpw-link { font-size:12px; } }
@media (prefers-reduced-motion:reduce) { .lpw * { transition:none!important; } }

.lpw-dots { position:relative; z-index:3; display:flex; align-items:center; justify-content:center; gap:2px; min-height:20px; margin:-2px 0 1px; }
.lpw .lpw-dot { position:relative; width:24px; height:20px; min-width:24px; min-height:20px; }
.lpw .lpw-dot::before { content:""; position:absolute; left:50%; top:50%; width:6px; height:6px; transform:translate(-50%,-50%); border:1px solid #777; border-radius:50%; background:#fff; transition:width .18s,height .18s,background .18s; }
.lpw .lpw-dot[aria-current="true"]::before { width:9px; height:9px; border-color:var(--lpw-ink); background:var(--lpw-ink); }
.lpw .lpw-gallery-arrow { display:none; }
@media (min-width:700px) {
  .lpw .lpw-gallery-arrow { position:absolute; z-index:4; top:50%; display:flex; align-items:center; justify-content:center; width:44px; height:44px; border:1px solid rgba(24,24,24,.16); border-radius:50%; background:rgba(255,255,255,.86); font-size:27px; line-height:1; transform:translateY(-50%); }
  .lpw .lpw-gallery-arrow:hover { background:#fff; border-color:rgba(24,24,24,.35); color:var(--lpw-ink); }
  .lpw-gallery-prev { left:-8px; }
  .lpw-gallery-next { right:-8px; }
}

/* Unified gallery controls on desktop and mobile. */
.lpw .lpw-controls, .lpw .lpw-photo-controls { display:none!important; }
.lpw .lpw-gallery-arrow { position:absolute; z-index:4; top:50%; display:flex!important; align-items:center; justify-content:center; width:38px; height:38px; min-width:38px; min-height:38px; border:1px solid rgba(24,24,24,.16); border-radius:50%; background:rgba(255,255,255,.88); color:var(--lpw-ink); font-size:25px; line-height:1; transform:translateY(-50%); }
.lpw .lpw-gallery-arrow:hover { background:#fff; border-color:rgba(24,24,24,.35); color:var(--lpw-ink); }
.lpw .lpw-gallery-prev { left:0; }
.lpw .lpw-gallery-next { right:0; }
@media (min-width:700px) {
  .lpw .lpw-gallery-arrow { width:44px; height:44px; min-width:44px; min-height:44px; font-size:27px; }
  .lpw .lpw-gallery-prev { left:-8px; }
  .lpw .lpw-gallery-next { right:-8px; }
}
