/* ===== 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;
    }
}

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

.format__card,
.location__card,
.infra__card,
.plans__card,
.safety__card,
.showroom__feature,
.purchase__item,
.quiz__option,
.progress__card,
.about__list-item,
.project__stat,
.developer__stat {
    transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.format__card:hover,
.location__card:hover,
.infra__card:hover,
.plans__card:hover,
.safety__card:hover,
.showroom__feature:hover,
.purchase__item:hover,
.quiz__option:hover,
.progress__card:hover,
.about__list-item:hover {
    box-shadow: 0 14px 34px rgba(42, 42, 42, 0.12);
    transform: translateY(-4px);
}

.project__stat:hover,
.developer__stat:hover {
    transform: translateY(-2px);
}

.gallery__slide,
.location__slide {
    overflow: hidden;
}
.gallery__slide img,
.location__slide img {
    transition: transform 0.4s ease;
}
.gallery__slide:hover img,
.location__slide:hover img {
    transform: scale(1.04);
}

@media (prefers-reduced-motion: reduce) {
    .format__card,
    .location__card,
    .infra__card,
    .plans__card,
    .safety__card,
    .showroom__feature,
    .purchase__item,
    .quiz__option,
    .progress__card,
    .about__list-item,
    .project__stat,
    .developer__stat,
    .gallery__slide img,
    .location__slide img {
        transition: none;
    }
}
