/* Motion & Animation Definitions - Restrained Premium */

/* 1. Base Motion Settings */
:root {
    --ease-out-expo: cubic-bezier(0.19, 1, 0.22, 1);
    --ease-out-quart: cubic-bezier(0.165, 0.84, 0.44, 1);
}

/* 2. Reveal Effect (Fade Up) */
.reveal {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s var(--ease-out-quart), transform 0.6s var(--ease-out-quart);
    will-change: opacity, transform;
}

.reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Staggered delays for lists/cards */
.reveal-stagger-1 { transition-delay: 50ms; }
.reveal-stagger-2 { transition-delay: 100ms; }
.reveal-stagger-3 { transition-delay: 150ms; }
.reveal-stagger-4 { transition-delay: 200ms; }

/* 3. Micro-interactions */

/* Scale Up gently on hover */
.hover-scale {
    transition: transform 0.3s var(--ease-out-quart), box-shadow 0.3s var(--ease-out-quart);
}
.hover-scale:hover {
    transform: scale(1.02);
    box-shadow: 0 10px 30px rgba(6, 40, 78, 0.08); /* Navy shadow hint */
}

/* Focus Ring for Accessibility & Polish */
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible {
    outline: 2px solid var(--color-primary-blue, #2F5D62);
    outline-offset: 2px;
}

/* 4. Motion Reduction Preference (Mandatory) & Mobile Safety */
@media (prefers-reduced-motion: reduce), (max-width: 768px) {
    .reveal {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
    .hover-scale:hover {
        transform: none !important;
    }
    * {
        scroll-behavior: auto !important;
    }
}

/* 5. Specific Component Animations */

/* Mobile Card Reveal */
.mobile-package-card {
    /* Base state handled by .reveal */
}

/* Partner Logo Fade In */
.partner-logo-item {
    opacity: 0;
    animation: fadeIn 0.8s var(--ease-out-quart) forwards;
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}
