/**
 * Shared modern interactions (public + admin).
 * Keeps motion subtle and performance-friendly.
 */

:root {
    --mi-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

a,
button,
input[type="submit"],
input[type="button"],
.btn-primary,
.btn-secondary,
.header-cta-button,
.header-nav-link,
.footer-column a,
.top-bar-item,
.top-bar-social {
    transition:
        color 0.24s var(--mi-ease),
        background-color 0.24s var(--mi-ease),
        border-color 0.24s var(--mi-ease),
        box-shadow 0.26s var(--mi-ease),
        transform 0.26s var(--mi-ease),
        opacity 0.24s var(--mi-ease);
}

a:hover,
button:hover,
input[type="submit"]:hover,
input[type="button"]:hover,
.btn-primary:hover,
.btn-secondary:hover {
    filter: brightness(1.02);
}

/* Frontend cards and blocks */
.modern-card,
.about-card,
.about-stat-card,
.about-value-pill,
.about-work-card,
.impact-story-card,
.partner-logo-card,
.stat-card,
.chart-card,
.page-card,
.customization-form-card,
.page-selector-card {
    transition:
        transform 0.32s var(--mi-ease),
        box-shadow 0.32s var(--mi-ease),
        border-color 0.24s var(--mi-ease),
        background-color 0.24s var(--mi-ease);
}

.modern-card:hover,
.impact-story-card:hover,
.partner-logo-card:hover,
.page-card:hover,
.customization-form-card:hover,
.page-selector-card:hover {
    transform: translateY(-3px);
}

/* Subtle breathing utility for key badges/highlights */
.mi-breathe {
    animation: miBreathe 4.5s ease-in-out infinite;
}

@keyframes miBreathe {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.012);
    }
}

/* Respect users that prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}
