/* Базовые стили для изображений в галерее (универсально, без навязанной стилизации) */
.gg-gallery__img {
    cursor: pointer;
    transition: transform 0.2s ease;
    display: block;
}

.gg-gallery__img:hover {
    transform: scale(1.05);
}

/* Скрытый оригинал: место сохраняется */
.gg-gallery__img_hidden {
    visibility: hidden;
    opacity: 0;
    transition: opacity 0s ease; /* Мгновенно, без анимации */
}

/* FIXED: CSS-var для iOS viewport height (динамическая, без address bar бага) */
:root {
    --vh: 1vh;
}

/* Оверлей для полноэкранного режима */
.gg-fullscreen-overlay {
    position: fixed;
    top: 0; /* FIXED: Растягиваем на весь экран через inset */
    right: 0;
    bottom: 0;
    left: 0;
    background: #000; /* Полностью непрозрачный чёрный */
    opacity: 0;
    visibility: hidden;
    z-index: 999;
    cursor: pointer;
    overflow: hidden; /* FIXED: Блокирует скролл под оверлеем (замена body.overflow) */
    transition: none; /* FIXED: Нет transition изначально (для Safari flicker fix) */
    touch-action: pan-x pan-y; /* FIXED: Только свайпы (horizontal/vertical), без pinch на оверлее */
    overscroll-behavior: none; /* FIXED: Полностью блокирует chaining/bounce после toggle */
    pointer-events: none; /* FIXED: Пропускаем события по умолчанию */
}

.gg-fullscreen-overlay.has-transition { /* FIXED: Класс для активации transition */
    transition: opacity 0.15s ease, visibility 0.15s ease;
}

.gg-fullscreen-overlay_active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto; /* FIXED: Активируем события только когда открыт */
}

/* FIXED: Полноэкранный оверлей для ловли всех свайпов (поверх фото, решает iOS touch-конфликт) */
.gg-fullscreen-swipe-overlay {
    position: fixed;
    top: 7px; /* FIXED: Мини-отступ сверху (для nav bars Safari, избегает белого артефакта) */
    right: 0; /* FIXED: Полная ширина с отступами по горизонтали (убрали width) */
    bottom: 7px; /* FIXED: Мини-отступ снизу (для nav bars Safari) */
    left: 0;
    background: transparent;
    z-index: 1001;
    opacity: 0;
    visibility: hidden;
    pointer-events: none; /* По умолчанию пропускает события */
    transition: opacity 0s ease, visibility 0s ease; /* Мгновенно */
    touch-action: pinch-zoom; /* По умолчанию как в clone_ready */
    overscroll-behavior: none; /* FIXED: Блокирует residual momentum после close/open */
}

.gg-fullscreen-swipe-overlay_active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto; /* Активируем ловлю событий только когда открыт */
}

/* FIXED: Модификатор для отключения зума на swipe-оверлее */
.gg-fullscreen-swipe-overlay_no-zoom {
    touch-action: pan-x pan-y !important; /* Отключаем pinch-zoom, оставляем свайпы */
}

/* Клон-контейнер в полноэкранном режиме (div-обёртка) */
.gg-fullscreen-clone {
    position: fixed !important;
    z-index: 1000;
    /* border-radius и object-fit копируются из оригинала */
    background: transparent; /* Пустые полосы — от оверлея */
    pointer-events: none;
    transition: left 0.15s ease, top 0.15s ease, width 0.15s ease, height 0.15s ease, transform 0.15s ease;
    max-width: none !important; /* Фикс: снимаем ограничения */
    max-height: none !important; /* Фикс: снимаем ограничения */
    display: block; /* Для контейнера */
}

.gg-fullscreen-clone_ready {
    pointer-events: auto;
    touch-action: pinch-zoom; /* FIXED: Разрешаем native pinch-zoom на фото (свайпы/навигация не конфликтуют) */
    overscroll-behavior: contain; /* Фикс: предотвращает bounce-scroll */
}

/* Клонированный img внутри контейнера */
.gg-fullscreen-clone__img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    max-width: none !important;
    max-height: none !important;
    display: block;
}

/* FIXED: Отключаем hover-увеличение на полноэкранных клонах (наследуют от .gg-gallery__img) */
.gg-fullscreen-clone__img:hover {
    transform: none !important; /* Нет ув��личения в fullscreen */
}

/* FIXED: Невидимый оверлей для ловли свайпов поверх изображения (теперь не нужен, но оставлен для legacy) */
.gg-fullscreen-clone__swipe-overlay {
    position: absolute;
    inset: 0; /* top: 0; right: 0; bottom: 0; left: 0; */
    background: transparent;
    pointer-events: auto;
    /* touch-action наследуется от .gg-fullscreen-clone_ready */
    z-index: 1; /* Поверх img */
}

/* FIXED: Модификатор для отключения зума (touch-action только для свайпов) */
.gg-fullscreen-clone_ready_no-zoom {
    touch-action: pan-x pan-y !important; /* Отключаем pinch-zoom, оставляем свайпы */
}

/* Убираем hover-эффект на полноэкранном клоне */
.gg-fullscreen-clone:hover {
    transform: none !important; /* Нет увеличения */
}

/* Навигационные кнопки (создаются в JS) — z-index поднят поверх swipe-overlay */
.gg-nav {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 1002; /* Поднят: поверх swipe-overlay */
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.15s ease;
    display: none; /* FIXED: Полностью скрыт по умолчанию */
}

.gg-nav_visible {
    opacity: 1;
}

/* FIXED: Forced hide для nav при race condition */
.gg-nav_closing {
    opacity: 0 !important;
    transition: opacity 0.15s ease;
}

.gg-nav__btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(0, 0, 0, 0.5);
    color: white;
    border: none;
    width: 60px; /* +20% от 50px */
    height: 60px; /* +20% от 50px */
    border-radius: 50%;
    cursor: pointer;
    pointer-events: auto;
    transition: background 0.2s ease;
    user-select: none;
    display: flex;
    align-items: center;
    justify-content: center; /* Центрируем SVG */
    touch-action: manipulation; /* Отключает double-tap zoom и 300ms delay */
}

.gg-nav__btn:hover {
    background: rgba(0, 0, 0, 0.8);
}

.gg-nav__btn:disabled {
    opacity: 0.3;
    cursor: default;
    /* Кнопки всегда кликабельны для queue */
}

.gg-nav__btn:disabled:hover {
    background: rgba(0, 0, 0, 0.5); /* FIXED: Не меняем цвет на hover для disabled (остаётся как базовый) */
}

.gg-nav__btn svg {
    width: 40px; /* +20% от 24px для пропорции */
    height: 40px; /* +20% от 24px */
    fill: currentColor; /* Наследует white от кнопки */
}

.gg-nav__btn_prev {
    left: 20px;
}

.gg-nav__btn_next {
    right: 20px;
}

/* Счётчик фото снизу (по умолчанию видим) — z-index поднят поверх swipe-overlay */
.gg-counter {
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0, 0, 0, 0.7); /* Полупрозрачный фон */
    color: white;
    padding: 8px 16px;
    border-radius: 20px;
    font-size: 14px;
    font-family: sans-serif;
    z-index: 1002; /* Поднят: поверх swipe-overlay */
    opacity: 0;
    transition: opacity 0.15s ease;
    pointer-events: none;
    display: block; /* По умолчанию видим */
}

.gg-counter_active {
    opacity: 1;
}

/* FIXED: Forced hide для counter при race condition */
.gg-counter_closing {
    opacity: 0 !important;
    transition: opacity 0.15s ease;
}
