/* ==========================================
   CareVance Global - Global Page Animations & Transitions
   ========================================== */

/* 1. Scroll-Triggered Entrance Animations */
[data-animate],
.reveal-on-scroll {
    will-change: transform, opacity;
}

/* Fade Up (Default) */
[data-animate="fade-up"],
.reveal-on-scroll {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.75s cubic-bezier(0.16, 1, 0.3, 1), transform 0.75s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Fade In */
[data-animate="fade-in"] {
    opacity: 0;
    transition: opacity 0.75s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Fade Left */
[data-animate="fade-left"] {
    opacity: 0;
    transform: translateX(-30px);
    transition: opacity 0.75s cubic-bezier(0.16, 1, 0.3, 1), transform 0.75s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Fade Right */
[data-animate="fade-right"] {
    opacity: 0;
    transform: translateX(30px);
    transition: opacity 0.75s cubic-bezier(0.16, 1, 0.3, 1), transform 0.75s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Zoom In */
[data-animate="zoom-in"] {
    opacity: 0;
    transform: scale(0.94);
    transition: opacity 0.75s cubic-bezier(0.16, 1, 0.3, 1), transform 0.75s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Animated Revealed Active State */
[data-animate].is-animated,
.reveal-on-scroll.is-animated {
    opacity: 1;
    transform: translate(0) scale(1);
}

/* Stagger Children Delays */
[data-animate-stagger] > * {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1), transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

[data-animate-stagger].is-animated > *:nth-child(1) { transition-delay: 0.05s; opacity: 1; transform: translateY(0); }
[data-animate-stagger].is-animated > *:nth-child(2) { transition-delay: 0.12s; opacity: 1; transform: translateY(0); }
[data-animate-stagger].is-animated > *:nth-child(3) { transition-delay: 0.19s; opacity: 1; transform: translateY(0); }
[data-animate-stagger].is-animated > *:nth-child(4) { transition-delay: 0.26s; opacity: 1; transform: translateY(0); }
[data-animate-stagger].is-animated > *:nth-child(5) { transition-delay: 0.33s; opacity: 1; transform: translateY(0); }
[data-animate-stagger].is-animated > *:nth-child(6) { transition-delay: 0.40s; opacity: 1; transform: translateY(0); }
[data-animate-stagger].is-animated > *:nth-child(n+7) { transition-delay: 0.45s; opacity: 1; transform: translateY(0); }

/* 2. Global Hover Micro-Interactions for Cards & Containers Across All Pages */

.section-padding .rounded-3xl,
.section-padding .rounded-2xl,
.bg-white.p-8,
.bg-white.p-10,
.bg-white.p-6,
.bg-gray-50.p-8,
.bg-gray-50.p-10 {
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s ease, border-color 0.35s ease;
}

.grid > div:hover,
.section-padding .rounded-3xl:hover,
.section-padding .rounded-2xl:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 32px -8px rgba(0, 0, 0, 0.08);
}

.grid > div:hover img,
.rounded-3xl:hover img {
    transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
    transform: scale(1.03);
}

.grid > div:hover i,
.rounded-3xl:hover i {
    transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.grid > div:hover i.fa-solid,
.grid > div:hover i.fa-brands {
    transform: scale(1.12);
}

.btn-primary,
.btn-outline,
a.rounded-full {
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s ease, background-color 0.3s ease, color 0.3s ease !important;
}

.btn-primary:hover,
.btn-outline:hover {
    transform: translateY(-2px) scale(1.02);
}

.btn-primary i,
.btn-outline i {
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.btn-primary:hover i.fa-arrow-right,
.btn-outline:hover i.fa-arrow-right,
a:hover i.fa-arrow-right {
    transform: translateX(5px);
}
