@media (prefers-reduced-motion: no-preference) {
    html { scroll-behavior: smooth; }

    body::before {
        content: "";
        position: fixed;
        inset: 0;
        z-index: 9999;
        pointer-events: none;
        background: #0b0a08;
        animation: pageVeil 900ms cubic-bezier(.22,1,.36,1) forwards;
    }

    .hero {
        background-image: none !important;
        background-color: #0b0a08;
    }

    .hero-bg-slider,
    .hero-overlay {
        position: absolute;
        inset: 0;
        pointer-events: none;
    }

    .hero-bg-slider {
        z-index: 0;
        overflow: hidden;
        background: #0b0a08;
    }

    .hero-slide {
        position: absolute;
        inset: -3%;
        opacity: 0;
        background-position: center;
        background-size: cover;
        transform: scale(1);
        will-change: opacity, transform;
        animation: heroFadeZoom 18s cubic-bezier(.22,1,.36,1) infinite;
    }

    .hero-slide:nth-child(2) { animation-delay: 6s; }
    .hero-slide:nth-child(3) { animation-delay: 12s; }

    .hero-overlay {
        z-index: 1;
        background:
            radial-gradient(circle at 76% 28%, rgba(201,155,69,.18), transparent 32%),
            linear-gradient(110deg, rgba(11,10,8,.94), rgba(110,31,26,.62), rgba(11,10,8,.22));
    }

    .hero .container {
        z-index: 2;
    }

    .page-hero,
    .cta-band {
        background-attachment: fixed;
    }

    .hero-content > * {
        opacity: 0;
        transform: translateY(28px);
        animation: heroFadeUp 950ms cubic-bezier(.22,1,.36,1) forwards;
    }

    .hero-content > *:nth-child(2) { animation-delay: 120ms; }
    .hero-content > *:nth-child(3) { animation-delay: 240ms; }
    .hero-content > *:nth-child(4) { animation-delay: 380ms; }
    .hero-content > *:nth-child(5) { animation-delay: 520ms; }

    .reveal {
        opacity: 0;
        transform: translate3d(0, 34px, 0);
        transition: opacity 900ms cubic-bezier(.22,1,.36,1), transform 900ms cubic-bezier(.22,1,.36,1), filter 900ms cubic-bezier(.22,1,.36,1);
        will-change: opacity, transform;
    }

    .reveal.reveal-in {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }

    .reveal.fade-in { transform: none; }
    .reveal.scale-in { transform: scale(.965); }
    .reveal.scale-in.reveal-in { transform: scale(1); }
    .reveal.slide-left { transform: translate3d(36px, 0, 0); }
    .reveal.slide-right { transform: translate3d(-36px, 0, 0); }
    .reveal.blur-in { filter: blur(8px); }
    .reveal.blur-in.reveal-in { filter: blur(0); }

    .stagger > .card,
    .stagger > article,
    .stagger > .glass-card,
    .stagger > .stat-tile {
        transition-delay: calc(var(--stagger-index, 0) * 90ms);
    }

    .navbar {
        transition: padding 260ms ease, background-color 260ms ease, box-shadow 260ms ease, transform 260ms ease;
    }

    body.nav-scrolled .navbar {
        background: rgba(251,245,233,.97);
        box-shadow: 0 20px 65px rgba(42,25,12,.14);
    }

    .btn {
        position: relative;
        overflow: hidden;
    }

    .btn::after {
        content: "";
        position: absolute;
        inset: -40% auto -40% -65%;
        width: 48%;
        transform: skewX(-22deg);
        background: linear-gradient(90deg, transparent, rgba(255,255,255,.55), transparent);
        transition: left 700ms cubic-bezier(.22,1,.36,1);
    }

    .btn:hover::after { left: 120%; }

    .card,
    .stat-tile,
    .glass-card,
    .sidebar-box {
        will-change: transform;
    }

    .card::after {
        content: "";
        position: absolute;
        inset: 0;
        pointer-events: none;
        opacity: 0;
        border-radius: inherit;
        box-shadow: inset 0 0 0 1px rgba(201,155,69,.42), 0 0 42px rgba(201,155,69,.18);
        transition: opacity 320ms ease;
    }

    .card { position: relative; }
    .card:hover::after { opacity: 1; }

    .package-card,
    .destination-card,
    .blog-card {
        isolation: isolate;
    }

    .package-card::before,
    .destination-card::before,
    .blog-card::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 1;
        opacity: 0;
        pointer-events: none;
        background: linear-gradient(180deg, transparent 45%, rgba(11,10,8,.42));
        transition: opacity 360ms ease;
    }

    .package-card:hover::before,
    .destination-card:hover::before,
    .blog-card:hover::before { opacity: 1; }

    .whatsapp-float {
        animation: whatsappPulse 2400ms ease-out infinite;
    }

    input,
    select,
    textarea {
        transition: border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease;
    }

    input:focus,
    select:focus,
    textarea:focus {
        transform: translateY(-1px);
    }

    .timeline-item {
        transition: transform 260ms ease, color 260ms ease;
    }

    .timeline-item:hover {
        transform: translateX(6px);
    }

    .timeline-item .meta {
        display: block;
        overflow: hidden;
        max-height: 90px;
        transition: max-height 520ms cubic-bezier(.22,1,.36,1), opacity 320ms ease;
    }

    .timeline-item:not(.is-open) .meta {
        max-height: 42px;
        opacity: .72;
    }

    .scroll-top {
        position: fixed;
        right: 24px;
        bottom: 94px;
        z-index: 60;
        width: 48px;
        height: 48px;
        border: 1px solid rgba(201,155,69,.48);
        border-radius: 50%;
        display: grid;
        place-items: center;
        background: rgba(11,10,8,.88);
        color: #edd29a;
        opacity: 0;
        transform: translateY(14px);
        pointer-events: none;
        transition: opacity 260ms ease, transform 260ms ease, box-shadow 260ms ease;
    }

    .scroll-top.is-visible {
        opacity: 1;
        transform: translateY(0);
        pointer-events: auto;
    }

    .scroll-top:hover {
        box-shadow: 0 16px 40px rgba(11,10,8,.28), 0 0 30px rgba(201,155,69,.22);
    }

    @keyframes pageVeil {
        0% { opacity: 1; }
        100% { opacity: 0; visibility: hidden; }
    }

    @keyframes heroFadeUp {
        to { opacity: 1; transform: translateY(0); }
    }

    @keyframes heroFadeZoom {
        0% { opacity: 0; transform: scale(1); }
        8% { opacity: 1; }
        34% { opacity: 1; }
        45% { opacity: 0; transform: scale(1.085); }
        100% { opacity: 0; transform: scale(1.085); }
    }

    @keyframes whatsappPulse {
        0% { box-shadow: 0 0 0 0 rgba(37,211,102,.34), 0 18px 45px rgba(37,211,102,.34); }
        70% { box-shadow: 0 0 0 18px rgba(37,211,102,0), 0 18px 45px rgba(37,211,102,.34); }
        100% { box-shadow: 0 0 0 0 rgba(37,211,102,0), 0 18px 45px rgba(37,211,102,.34); }
    }
}

@media (max-width: 768px), (prefers-reduced-motion: reduce) {
    .hero,
    .page-hero,
    .cta-band {
        background-attachment: scroll !important;
    }

    .hero-slide {
        inset: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }

    .reveal {
        opacity: 1 !important;
        transform: none !important;
        filter: none !important;
    }

    .hero-slide {
        animation: none !important;
        opacity: 0 !important;
        transform: none !important;
    }

    .hero-slide:first-child {
        opacity: 1 !important;
    }
}
