/* =========================
   OVERLAY BASE
========================= */

.image-overlay {
    position: fixed;
    inset: 0;
    z-index: 10000;

    display: flex;
    align-items: center;
    justify-content: center;

    opacity: 0;
    pointer-events: none;

    transition: opacity .35s ease;
}

.image-overlay:not([hidden]) {
    opacity: 1;
    pointer-events: auto;
}


/* =========================
   BACKDROP (BLUR + DEPTH)
========================= */

.image-overlay-backdrop {
    position: absolute;
    inset: 0;

    background: rgba(20,20,20,0.65);
    backdrop-filter: blur(18px) saturate(110%);
    -webkit-backdrop-filter: blur(18px) saturate(110%);

    transition: backdrop-filter .4s ease;
}


/* =========================
   CONTENT WRAP
========================= */

.image-overlay-content {
    position: relative;
    z-index: 2;

    transform: scale(.92) translateY(20px);
    opacity: 0;

    transition:
        transform .45s cubic-bezier(.2,.8,.2,1),
        opacity .35s ease;
}

.image-overlay:not([hidden]) .image-overlay-content {
    transform: scale(1) translateY(0);
    opacity: 1;
}


/* =========================
   IMAGE STYLE
========================= */

#imageOverlayImg {
    max-width: 88vw;
    max-height: 88vh;

    border-radius: 18px;

    box-shadow:
        0 40px 120px rgba(0,0,0,.6),
        0 0 60px rgba(255,255,255,.05);

    cursor: zoom-in;

    transition:
        transform .4s cubic-bezier(.2,.8,.2,1),
        box-shadow .4s ease;

    transform-origin: center center;
}


/* =========================
   ZOOM STATE
========================= */

#imageOverlayImg.is-zoomed {
    transform: scale(2.3);
    cursor: zoom-out;

    box-shadow:
        0 60px 160px rgba(0,0,0,.75),
        0 0 100px rgba(255,255,255,.08);
}


/* =========================
   CLOSE BUTTON
========================= */

.image-overlay-close {
    position: absolute;
    top: -40px;
    right: 0;

    background: transparent;
    border: none;

    font-size: 32px;
    color: #fff;

    cursor: pointer;

    opacity: .7;
    transition: opacity .2s ease, transform .2s ease;
}

.image-overlay-close:hover {
    opacity: 1;
    transform: scale(1.1);
}


/* =========================
   PREMIUM HOVER (THUMBNAILS)
========================= */

.gallery-item {
    overflow: hidden;
    border-radius: 14px;
    transition: transform .3s ease, box-shadow .3s ease;
}

.gallery-item img {
    transition: transform .5s ease;
}

.gallery-item:hover {
    transform: translateY(-6px);
    box-shadow: 0 15px 45px rgba(0,0,0,.15);
}

.gallery-item:hover img {
    transform: scale(1.06);
}


/* =========================
   MOBILE ADAPT
========================= */

@media (max-width: 768px) {
    #imageOverlayImg.is-zoomed {
        transform: scale(2);
    }
}


/* Убираем CLS в карточках/галерее */
.product-gallery img {
  width: 100%;
  height: auto;
  display: block;
}

/* Чтобы кнопка-миниатюра не схлопывалась */
.gallery-item {
  border: 0;
  padding: 0;
  background: transparent;
  cursor: zoom-in;
}

/* Если хочешь квадратные превью */
.product-card-media img,
.product-gallery img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

body.gallery-open{overflow:hidden}.image-overlay-content{width:min(1100px,94vw);height:min(900px,94vh);display:grid;grid-template-columns:64px 1fr 64px;grid-template-rows:1fr auto;align-items:center;gap:14px}.image-overlay-stage{height:calc(min(900px,94vh) - 116px);display:flex;align-items:center;justify-content:center;overflow:auto;border-radius:20px}.image-overlay-stage #imageOverlayImg{max-width:100%;max-height:100%;object-fit:contain}.image-overlay-nav{width:54px;height:54px;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:rgba(20,20,20,.45);backdrop-filter:blur(10px);color:#fff;font:300 42px/1 serif;cursor:pointer;transition:.25s}.image-overlay-nav:hover{background:#fff;color:#111;transform:scale(1.06)}.image-overlay-close{top:4px;right:4px;z-index:4;width:46px;height:46px;border-radius:50%;background:rgba(20,20,20,.55)}.image-overlay-meta{grid-column:1/-1;display:flex;align-items:center;gap:22px;color:#fff;font:500 13px/1 Inter,sans-serif;letter-spacing:.12em}.image-overlay-thumbs{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;flex:1}.image-overlay-thumbs button{flex:0 0 68px;width:68px;height:68px;padding:3px;border:1px solid transparent;border-radius:11px;background:transparent;cursor:pointer;opacity:.55;transition:.25s}.image-overlay-thumbs button.active{border-color:#fff;opacity:1}.image-overlay-thumbs img{width:100%;height:100%;object-fit:cover;border-radius:8px}@media(max-width:700px){.image-overlay-content{width:100vw;height:100dvh;grid-template-columns:48px 1fr 48px;gap:4px;padding:58px 8px 12px}.image-overlay-stage{height:calc(100dvh - 150px);grid-column:1/-1;grid-row:1}.image-overlay-nav{position:absolute;top:50%;z-index:3;width:44px;height:44px}.image-overlay-prev{left:10px}.image-overlay-next{right:10px}.image-overlay-meta{grid-row:2}.image-overlay-thumbs button{flex-basis:56px;width:56px;height:56px}}
