/* ===== Reveal animations ===== */
:root {
    --anim-duration: 0.8s;
    --anim-ease: cubic-bezier(0.25, 0.1, 0.25, 1);
}

[class*="anim-"] {
    opacity: 0;
    transition: opacity var(--anim-duration) var(--anim-ease),
                transform var(--anim-duration) var(--anim-ease);
    will-change: opacity, transform;
}

.anim-fade-in   { transform: none; }
.anim-fade-up   { transform: translateY(40px); }
.anim-fade-down { transform: translateY(-40px); }
.anim-slide-left  { transform: translateX(-60px); }
.anim-slide-right { transform: translateX(60px); }
.anim-zoom-in   { transform: scale(0.9); }

[class*="anim-"].is-visible {
    opacity: 1;
    transform: none;
}

/* Задержки для последовательного появления группы элементов */
.delay-1 { transition-delay: 0.15s; }
.delay-2 { transition-delay: 0.3s; }
.delay-3 { transition-delay: 0.45s; }
.delay-4 { transition-delay: 0.6s; }
.delay-5 { transition-delay: 0.75s; }

/* Мягкий каскад для повторяющихся карточек (без ручных delay-классов на каждый пункт репитера) */
.stagger > *:nth-child(2)  { transition-delay: 0.08s; }
.stagger > *:nth-child(3)  { transition-delay: 0.16s; }
.stagger > *:nth-child(4)  { transition-delay: 0.24s; }
.stagger > *:nth-child(5)  { transition-delay: 0.32s; }
.stagger > *:nth-child(6)  { transition-delay: 0.4s; }
.stagger > *:nth-child(7)  { transition-delay: 0.48s; }
.stagger > *:nth-child(8)  { transition-delay: 0.56s; }
.stagger > *:nth-child(n+9) { transition-delay: 0.64s; }

@media (prefers-reduced-motion: reduce) {
    [class*="anim-"] {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}

/* ===== Лёгкие тени на карточках при наведении ===== */

.rooms__card,
.infrastructure__card,
.infrastructure__feature,
.location__card,
.faq__item,
.why-choose__highlight,
.gallery__slide,
.cta-format__item {
    transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.rooms__card:hover,
.infrastructure__card:hover,
.infrastructure__feature:hover,
.location__card:hover,
.faq__item:hover,
.why-choose__highlight:hover,
.cta-format__item:hover {
    box-shadow: 0 14px 34px rgba(44, 47, 50, 0.12);
    transform: translateY(-4px);
}

.gallery__slide {
    border-radius: 38px;
    overflow: hidden;
}
.gallery__slide:hover {
    box-shadow: 0 14px 34px rgba(44, 47, 50, 0.18);
}
.gallery__slide:hover .gallery__image {
    transform: scale(1.02);
}
.gallery__image {
    transition: transform 0.4s ease;
}

@media (prefers-reduced-motion: reduce) {
    .rooms__card,
    .infrastructure__card,
    .infrastructure__feature,
    .location__card,
    .faq__item,
    .why-choose__highlight,
    .gallery__slide,
    .cta-format__item,
    .gallery__image {
        transition: none;
    }
}
