/* Animación de reveal (fade-in + slide-up) */
.institucional-shell .reveal {
    opacity: 1;
    transform: none;
}

.institucional-shell.reveal-enabled .reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.6s cubic-bezier(0.33, 0.66, 0.66, 1),
                transform 0.6s cubic-bezier(0.33, 0.66, 0.66, 1);
}

.institucional-shell.reveal-enabled .reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Animaciones hover suaves para cards */
.institucional-service-card,
.institucional-logo-card,
.institucional-branch-card {
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1),
                box-shadow 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.institucional-logo-card:hover,
.institucional-branch-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 48px rgba(3, 29, 54, 0.12);
}

/* Animaciones para botones */
.institucional-button {
    position: relative;
}

.institucional-button::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.3);
    transform: translate(-50%, -50%);
    transition: width 0.6s, height 0.6s;
    opacity: 0;
}

.institucional-button:active::before {
    width: 300px;
    height: 300px;
    opacity: 0;
    transition: 0s;
}

/* Animación de header scroll */
.institucional-header {
    transition: all 0.3s cubic-bezier(0.33, 0.66, 0.66, 1);
}

.institucional-nav-link::after {
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Animación suave para links de navegación */
.institucional-footer nav a,
.institucional-footer-grid > div > a {
    position: relative;
    display: inline-block;
}

.institucional-footer nav a::after,
.institucional-footer-grid > div > a::after {
    content: "";
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 2px;
    background: var(--unyvision-primary-lighter);
    transition: width 0.3s ease;
}

.institucional-footer nav a:hover::after,
.institucional-footer-grid > div > a:hover::after {
    width: 100%;
}

/* Animación suave para imágenes */
.institucional-hero-media img,
.institucional-about-media > img,
.institucional-service-card img {
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Animación para WhatsApp flotante */
.institucional-whatsapp-floating {
    animation: float 3s ease-in-out infinite;
}

@keyframes float {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-8px);
    }
}

/* Desabilitar animaciones cuando el usuario lo prefiera */
@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    .institucional-shell *,
    .institucional-shell *::before,
    .institucional-shell *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }

    .institucional-shell .reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .institucional-shell.reveal-enabled .reveal {
        opacity: 1;
        transform: none;
    }

    .institucional-whatsapp-floating {
        animation: none;
    }
}

/* Animación sutil para indicadores */
.institucional-indicator {
    transition: opacity 0.3s ease;
}

.institucional-indicator:hover {
    opacity: 0.95;
}

.institucional-indicator i {
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.institucional-indicator:hover i {
    transform: scale(1.1);
}
