/*
 * Коллекция: старый вид сетки + карточка с отдельной HTML-подписью.
 * Изображение и текст карточки больше не склеены в один файл.
 */

body.modal-open { overflow: hidden; }

/* СЕТКА КОЛЛЕКЦИИ — СТАРЫЙ ВИД */
.fact-square.fact-square--opened {
    position: relative !important;
    overflow: hidden !important;
    border: 0 !important;
    padding: 15px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    text-align: left !important;
    cursor: pointer !important;
    color: #fff !important;
    background: linear-gradient(145deg, #163b67, #091b32) !important;
    box-shadow: 0 12px 28px rgba(11,31,58,.23) !important;
    transition: transform .2s ease, box-shadow .2s ease !important;
}
.fact-square.fact-square--opened:hover {
    transform: translateY(-5px) !important;
    box-shadow: 0 17px 34px rgba(11,31,58,.3) !important;
}
.fact-square.fact-square--opened::before,
.fact-square.fact-square--opened::after {
    content: none !important;
    display: none !important;
}
.opened-fact-number {
    position: absolute !important;
    top: 14px !important;
    left: 14px !important;
    color: #f2c230 !important;
    font-size: 1.25rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
}
.fact-square-title,
.fact-square-open,
.fact-square-number,
.fact-title,
.fact-open,
.fact-description,
.fact-text,
.opened-fact-text,
.collection-fact-text { display: none !important; }

/* МОДАЛЬНАЯ КАРТОЧКА */
.collection-modal[hidden] { display: none !important; }
.collection-modal {
    position: fixed !important;
    inset: 0 !important;
    z-index: 1000 !important;
    display: grid !important;
    place-items: center !important;
    padding: 22px !important;
}
.collection-modal-overlay {
    position: absolute !important;
    inset: 0 !important;
    background: rgba(4,12,24,.78) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
}
.collection-modal-dialog {
    position: relative !important;
    z-index: 1 !important;
    width: min(680px, 92vw) !important;
    height: min(820px, 88vh) !important;
}
.collection-modal-close {
    position: absolute !important;
    top: -13px !important;
    right: -13px !important;
    z-index: 10 !important;
    width: 44px !important;
    height: 44px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    color: #fff !important;
    background: #102c4f !important;
    box-shadow: 0 10px 28px rgba(0,0,0,.28) !important;
    font: inherit !important;
    font-size: 1.85rem !important;
    line-height: 1 !important;
    cursor: pointer !important;
}
.collection-modal-card {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 18px !important;
    background: transparent !important;
    cursor: pointer !important;
    perspective: 1500px !important;
}
.collection-modal-card:focus-visible {
    outline: 4px solid #f2c230 !important;
    outline-offset: 5px !important;
}
.collection-modal-card-inner {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    transform-style: preserve-3d !important;
    transition: transform .72s cubic-bezier(.2,.75,.2,1) !important;
}
.collection-modal-card.is-flipped .collection-modal-card-inner {
    transform: rotateY(180deg) !important;
}
.collection-modal-face {
    position: absolute !important;
    inset: 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    border: 3px solid #d7aa2d !important;
    border-radius: 18px !important;
    backface-visibility: hidden !important;
    -webkit-backface-visibility: hidden !important;
    box-shadow: 0 24px 70px rgba(0,0,0,.36) !important;
}

/* Лицевая сторона: изображение и подпись — два разных элемента. */
.collection-modal-front {
    display: grid !important;
    grid-template-rows: minmax(0, 1fr) auto !important;
    background: #091b32 !important;
}
.collection-modal-image-wrap {
    position: relative !important;
    display: grid !important;
    place-items: center !important;
    min-height: 0 !important;
    overflow: hidden !important;
    background: #0b1f3a !important;
}
.collection-modal-front img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    background: #0b1f3a !important;
    opacity: 1 !important;
    transition: opacity .14s ease !important;
}
.collection-modal-image-wrap.is-loading img {
    opacity: 0 !important;
}
.collection-modal-image-wrap.is-loading::before {
    content: "" !important;
    position: absolute !important;
    z-index: 2 !important;
    width: 42px !important;
    height: 42px !important;
    border: 4px solid rgba(255,255,255,.18) !important;
    border-top-color: #f2c230 !important;
    border-radius: 50% !important;
    animation: collectionImageSpin .75s linear infinite !important;
}
.collection-modal-image-wrap.is-loading::after {
    content: "Загрузка изображения…" !important;
    position: absolute !important;
    z-index: 2 !important;
    margin-top: 78px !important;
    color: rgba(255,255,255,.72) !important;
    font-size: .82rem !important;
    font-weight: 600 !important;
    letter-spacing: .02em !important;
}
@keyframes collectionImageSpin {
    to { transform: rotate(360deg); }
}
.collection-modal-caption {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    min-height: 126px !important;
    padding: 20px 30px 22px !important;
    color: #fff !important;
    text-align: left !important;
    background: linear-gradient(110deg, rgba(255,255,255,.035), transparent 45%), #07192d !important;
}
.collection-modal-caption::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 0 auto auto !important;
    width: 42% !important;
    height: 100% !important;
    opacity: .055 !important;
    background: linear-gradient(135deg, transparent 28%, #fff 29%, transparent 31%) !important;
    pointer-events: none !important;
}
.collection-modal-caption-line {
    display: block !important;
    width: 48px !important;
    height: 5px !important;
    margin-bottom: 11px !important;
    background: #e8bd3e !important;
}
.collection-modal-caption-number {
    display: block !important;
    margin-bottom: 6px !important;
    color: #f2c230 !important;
    font-size: clamp(1rem, 2.5vw, 1.3rem) !important;
    font-weight: 900 !important;
    letter-spacing: .035em !important;
    line-height: 1.1 !important;
}
.collection-modal-caption-title {
    position: relative !important;
    z-index: 1 !important;
    display: block !important;
    max-width: 92% !important;
    color: #fff !important;
    font-size: clamp(1rem, 2.7vw, 1.4rem) !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
}

/* Обратная сторона — полноценный текст факта. */
.collection-modal-back {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 22px !important;
    padding: clamp(28px, 6vw, 64px) !important;
    transform: rotateY(180deg) !important;
    color: #fff !important;
    text-align: center !important;
    background: radial-gradient(circle at 18% 12%, rgba(242,194,48,.22), transparent 34%), linear-gradient(145deg, #173b67, #081a31) !important;
}
.collection-modal-fact-number {
    color: #f2c230 !important;
    font-size: clamp(1.35rem, 3vw, 2.1rem) !important;
    font-weight: 900 !important;
}
.collection-modal-fact-text {
    width: 100% !important;
    max-height: 64% !important;
    overflow-y: auto !important;
    padding-right: 5px !important;
    color: #fff !important;
    font-size: clamp(1rem, 2.1vw, 1.3rem) !important;
    line-height: 1.62 !important;
    scrollbar-width: thin !important;
}
.collection-modal-flip-hint {
    margin-top: 4px !important;
    color: rgba(255,255,255,.62) !important;
    font-size: .78rem !important;
    letter-spacing: .035em !important;
}

@media (max-width: 700px) {
    .collection-modal { padding: 14px !important; }
    .collection-modal-dialog {
        width: min(94vw, 590px) !important;
        height: min(82vh, 700px) !important;
    }
    .collection-modal-close {
        top: -9px !important;
        right: -6px !important;
        width: 40px !important;
        height: 40px !important;
        font-size: 1.65rem !important;
    }
    .collection-modal-caption {
        min-height: 104px !important;
        padding: 16px 20px 18px !important;
    }
    .collection-modal-caption-line {
        width: 40px !important;
        height: 4px !important;
        margin-bottom: 9px !important;
    }
    .collection-modal-back {
        padding: 26px 20px !important;
        gap: 14px !important;
    }
    .collection-modal-fact-text {
        max-height: 68% !important;
        line-height: 1.45 !important;
    }
}

/* 2026-08-12: загрузка PNG без зависающего декодера */
.collection-modal-image-error {
    position: absolute !important;
    inset: 0 !important;
    z-index: 3 !important;
    display: grid !important;
    place-items: center !important;
    padding: 28px !important;
    color: rgba(255,255,255,.72) !important;
    font-size: .9rem !important;
    font-weight: 700 !important;
    text-align: center !important;
    background: #0b1f3a !important;
}
.collection-modal-image-error[hidden] {
    display: none !important;
}
