/* --- АНИМАЦИИ И АДАПТИВНЫЕ ПРАВИЛА --- */

/* Анимация при скролле */
.anim-up {
    opacity: 0;
    transform: translateY(40px);
    transition: 1s var(--ease);
}

.anim-up.show {
    opacity: 1;
    transform: translateY(0);
}

/* Адаптив (планшеты) */
@media (max-width: 1024px) {
    .container {
        padding: 0 20px;
    }
    
    .hero-grid,
    .reviews-grid {
        grid-template-columns: 1fr;
    }
    
    .infra-grid {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: 300px 300px;
    }
    
    .promo::after {
        display: none;
    }
    
    .promo-inner {
        grid-template-columns: 1fr;
    }
    
    .featured-inner {
        grid-template-columns: 1fr;
    }
    
    .about-grid {
        grid-template-columns: 1fr;
    }
    
    .contact-grid {
        grid-template-columns: 1fr;
        gap: 60px;
    }
    
    .gallery-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* Адаптив (мобильные устройства) */
@media (max-width: 768px) {
    .container {
        padding: 0 15px;
    }
    
    .top-bar {
        display: none;
    }
    
    .nav-links {
        display: none;
    }
    
    .hero {
        padding-top: 100px;
    }
    
    .hero-image-wrap {
        position: relative;
        border-radius: 0;
        height: 50vh;
        width: 100%;
    }
    
    .hero-floating-box {
        display: none;
    }
    
    .features,
    .infra,
    .promo,
    .rooms,
    .reviews,
    .gallery {
        padding: 60px 0;
    }
    
    .feat-grid,
    .infra-grid,
    .reviews-grid,
    .rooms-grid,
    .menus-grid,
    .news-grid {
        grid-template-columns: 1fr;
    }
    
    .infra-item:nth-child(1) {
        grid-column: span 1;
    }
    
    .action-row,
    .zigzag-row,
    .events-inner,
    .team-inner {
        grid-template-columns: 1fr;
    }
    
    .action-text {
        margin-left: 0;
        margin-top: -60px;
    }
    
    .action-row.reverse .action-text {
        margin-right: 0;
    }
    
    .room-hero-grid {
        grid-template-columns: 1fr;
    }
    
    .room-hero-content {
        margin-left: 0;
        margin-top: -80px;
    }
    
    .layout-split {
        grid-template-columns: 1fr;
    }
    
    .sticky-book {
        position: static;
        margin-top: 60px;
    }
    
    .gallery-grid {
        grid-template-columns: 1fr;
    }
    
    .gal-large,
    .gal-wide,
    .gal-tall {
        grid-column: span 1;
        grid-row: span 1;
    }
    
    .map-info-card {
        position: static;
        transform: none;
        margin-bottom: 40px;
    }
    
    .map-wrapper {
        height: 400px;
    }
    
    .route-instructions {
        grid-template-columns: 1fr;
    }
    
    .req-grid {
        grid-template-columns: 1fr;
    }
    
    .article-header-box {
        margin-top: -60px;
        padding: 30px 20px;
    }
}