.vz-gallery{display:flex;flex-direction:column;gap:12px}
.vz-gallery-main{position:relative;overflow:hidden;border-radius:12px;background:#f5f5f5}
.vz-gallery-main__item{display:none;position:relative}
.vz-gallery-main__item.active{display:block}
.vz-gallery-main__item img,.vz-gallery-main__item picture{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:contain;cursor:crosshair;transition:opacity .2s}
.vz-gallery-thumbs{display:flex;gap:8px;overflow-x:auto;padding:4px 0}
.vz-gallery-thumbs::-webkit-scrollbar{height:4px}
.vz-gallery-thumbs::-webkit-scrollbar-thumb{background:#ccc;border-radius:4px}
.vz-gallery-thumbs__item{flex:0 0 auto;width:72px;height:72px;border-radius:8px;overflow:hidden;border:2px solid transparent;background:#f0f0f0;cursor:pointer;padding:0;transition:border-color .2s,opacity .2s}
.vz-gallery-thumbs__item:hover{opacity:.8}
.vz-gallery-thumbs__item.active{border-color:#c90000}
.vz-gallery-thumbs__item img{width:100%;height:100%;object-fit:cover}
@media(max-width:768px){
  .vz-gallery-thumbs__item{width:60px;height:60px}
  .vz-gallery-main__item img,.vz-gallery-main__item picture{aspect-ratio:1/1}
}

.vz-gallery-zoom{position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.9);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s}
.vz-gallery-zoom.is-open{opacity:1;pointer-events:auto}
.vz-gallery-zoom img{max-width:90vw;max-height:90vh;object-fit:contain}
.vz-gallery-zoom__close{position:absolute;top:16px;right:16px;width:40px;height:40px;border:none;background:rgba(255,255,255,.15);border-radius:50%;color:#fff;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.vz-gallery-zoom__close:hover{background:rgba(255,255,255,.3)}
.vz-gallery-zoom__prev,.vz-gallery-zoom__next{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border:none;background:rgba(255,255,255,.1);border-radius:50%;color:#fff;font-size:28px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.vz-gallery-zoom__prev{left:16px}
.vz-gallery-zoom__next{right:16px}
.vz-gallery-zoom__prev:hover,.vz-gallery-zoom__next:hover{background:rgba(255,255,255,.25)}
.vz-gallery-zoom__counter{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);color:#fff;font-size:14px;background:rgba(0,0,0,.5);padding:4px 12px;border-radius:999px}
