.product-gallery-main { min-height:320px; position:relative; display:flex; align-items:center; justify-content:center; overflow:hidden; background:#f8f9fa; border-radius:calc(.375rem - 1px) calc(.375rem - 1px) 0 0; }
.product-gallery-open { width:100%; padding:0; border:0; display:flex; align-items:center; justify-content:center; background:transparent; cursor:zoom-in; }
.product-gallery-open picture { width:100%; display:block; }
.product-gallery-main .store-detail-image { height:480px; }
.product-gallery-arrow { width:44px; height:44px; position:absolute; top:50%; z-index:2; display:flex; align-items:center; justify-content:center; transform:translateY(-50%); border:0; border-radius:50%; color:#212529; background:rgba(255,255,255,.9); box-shadow:0 2px 12px rgba(16,24,40,.18); font-size:1.7rem; line-height:1; transition:background-color .15s ease, transform .15s ease; }
.product-gallery-arrow:hover { background:#fff; transform:translateY(-50%) scale(1.06); }
.product-gallery-arrow-prev { left:1rem; }
.product-gallery-arrow-next { right:1rem; }
.product-gallery-thumbnails { display:flex; gap:.75rem; overflow-x:auto; padding:1rem; border-top:1px solid #e7ebf0; scrollbar-width:thin; }
.product-gallery-thumbnail { width:88px; height:88px; flex:0 0 88px; padding:5px; display:flex; align-items:center; justify-content:center; background:#fff; border:2px solid #dee2e6; border-radius:10px; transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.product-gallery-thumbnail:hover { border-color:#6c757d; box-shadow:0 4px 12px rgba(16,24,40,.12); transform:translateY(-2px); }
.product-gallery-thumbnail.is-active { border-color:#0d6efd; box-shadow:0 0 0 3px rgba(13,110,253,.18); }
.product-gallery-open:focus-visible, .product-gallery-arrow:focus-visible, .product-gallery-thumbnail:focus-visible, .product-lightbox-control:focus-visible { outline:3px solid #86b7fe; outline-offset:3px; }
.product-gallery-thumbnail img { width:100%; height:100%; object-fit:contain; object-position:center; display:block; }
.product-gallery-thumbnail picture { width:100%; height:100%; display:block; }
.product-lightbox[hidden] { display:none; }
.product-lightbox { position:fixed; inset:0; z-index:1080; padding:1.5rem; display:flex; align-items:center; justify-content:center; color:#fff; background:rgba(0,0,0,.92); }
.product-lightbox-stage { width:100%; height:100%; position:relative; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.product-lightbox-stage > picture { display:flex; align-items:center; justify-content:center; }
.product-lightbox-image { max-width:calc(100vw - 8rem); max-height:calc(100vh - 6rem); width:auto; height:auto; object-fit:contain; cursor:zoom-in; transform:scale(1); transform-origin:center; transition:transform .2s ease; user-select:none; -webkit-user-drag:none; }
.product-lightbox-image.is-zoomed { transform:scale(2); cursor:zoom-out; }
.product-lightbox-control { width:48px; height:48px; position:absolute; z-index:2; display:flex; align-items:center; justify-content:center; border:0; border-radius:50%; color:#fff; background:rgba(255,255,255,.14); font-size:2rem; line-height:1; transition:background-color .15s ease; }
.product-lightbox-control:hover { background:rgba(255,255,255,.26); }
.product-lightbox-close { top:0; right:0; }
.product-lightbox-prev { left:0; top:50%; transform:translateY(-50%); }
.product-lightbox-next { right:0; top:50%; transform:translateY(-50%); }
.product-lightbox-counter { position:absolute; left:50%; bottom:0; z-index:2; transform:translateX(-50%); padding:.35rem .75rem; border-radius:999px; background:rgba(0,0,0,.55); font-variant-numeric:tabular-nums; }
body.product-lightbox-open { overflow:hidden; }
@media (max-width:575.98px) {
  .product-gallery-main { min-height:240px; }
  .product-gallery-main .store-detail-image { height:320px; }
  .product-gallery-arrow { width:40px; height:40px; }
  .product-gallery-arrow-prev { left:.5rem; }
  .product-gallery-arrow-next { right:.5rem; }
  .product-gallery-thumbnail { width:80px; height:80px; flex-basis:80px; }
  .product-lightbox { padding:.75rem; }
  .product-lightbox-image { max-width:calc(100vw - 1.5rem); max-height:calc(100vh - 5rem); }
  .product-lightbox-control { width:42px; height:42px; }
}
