/**
 * Animations pour le système de chargement dynamique des cartes de service
 * Transitions fluides et fade-in progressif
 */

/* Animation d'apparition douce (fade-in) */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(15px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeInItem {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

/* État de chargement du contenu */
.service-card {
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
}

.service-card.loaded {
    animation: fadeInUp 0.6s ease-out forwards;
}

/* Animation progressive des éléments internes */
.service-card.loaded .icon-circle {
    animation: fadeInUp 0.4s ease-out 0.1s forwards;
    opacity: 0;
}

.service-card.loaded h2 {
    animation: fadeInUp 0.4s ease-out 0.2s forwards;
    opacity: 0;
}

.service-card.loaded ul {
    animation: fadeInUp 0.4s ease-out 0.3s forwards;
    opacity: 0;
}

.service-card.loaded ul li {
    animation: fadeInItem 0.3s ease-out forwards;
    opacity: 0;
}

.service-card.loaded ul li:nth-child(1) {
    animation-delay: 0.35s;
}

.service-card.loaded ul li:nth-child(2) {
    animation-delay: 0.4s;
}

.service-card.loaded a {
    animation: fadeInUp 0.4s ease-out 0.45s forwards;
    opacity: 0;
}

/* État de skeleton (optionnel - placeholder léger pendant le chargement) */
.service-card.skeleton .icon-circle {
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: loading 1.5s infinite;
}

@keyframes loading {
    0% {
        background-position: 200% 0;
    }
    100% {
        background-position: -200% 0;
    }
}

/* Amélioration responsive */
@media (prefers-reduced-motion: reduce) {
    .service-card.loaded,
    .service-card.loaded .icon-circle,
    .service-card.loaded h2,
    .service-card.loaded ul,
    .service-card.loaded ul li,
    .service-card.loaded a {
        animation: none;
        opacity: 1;
        transform: none;
    }
}
