/* ---------- Animations (sobres, désactivables) ---------- */
@media (prefers-reduced-motion: no-preference) {

  /* Bandeau : texte qui monte en fondu au chargement */
  .hero h1, .hero .lead, .hero .btn, .hero .badges {
    opacity: 0; transform: translateY(18px);
    animation: monter 0.7s cubic-bezier(.2,.7,.2,1) forwards;
  }
  .hero .lead   { animation-delay: 0.15s; }
  .hero .btn    { animation-delay: 0.30s; }
  .hero .badges { animation-delay: 0.45s; }

  /* Bandeau : léger mouvement de fond */
  .hero { background-size: 200% 200%; animation: derive 14s ease-in-out infinite alternate; }

  /* Éléments qui apparaissent au défilement */
  .reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.6s ease, transform 0.6s cubic-bezier(.2,.7,.2,1); }
  .reveal.visible { opacity: 1; transform: none; }
  .cartes .carte:nth-child(2) { transition-delay: 0.12s; }
  .cartes .carte:nth-child(3) { transition-delay: 0.24s; }

  /* Relief au survol des cartes */
  .carte { transition: transform 0.25s ease, box-shadow 0.25s ease, opacity 0.6s ease; }
  .carte:hover { transform: translateY(-6px); box-shadow: 0 12px 28px rgba(11,58,138,0.14); }
  .carte .photo { transition: transform 0.6s ease; overflow: hidden; }
  .carte:hover .photo { transform: scale(1.04); }

  /* Bouton : petit rebond */
  .btn { transition: transform 0.15s ease, background 0.15s ease; }
  .btn:hover { transform: translateY(-2px); }

  /* Soulignement animé du menu */
  .site-header nav a { position: relative; }
  .site-header nav a::after { content: ""; position: absolute; left: 0; bottom: -4px; width: 0; height: 2px; background: var(--jaune); transition: width 0.25s ease; }
  .site-header nav a:hover::after { width: 100%; }
}
@keyframes monter { to { opacity: 1; transform: none; } }
@keyframes derive { from { background-position: 0% 0%; } to { background-position: 100% 100%; } }

/* ---------- Spécifique sites service ---------- */
@media (prefers-reduced-motion: no-preference) {
  .hero.hero-photo { animation: zoomlent 18s ease-in-out infinite alternate; }
  .services-liste a { transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, opacity 0.6s ease; }
  .services-liste a:hover { transform: translateY(-5px); box-shadow: 0 12px 26px rgba(11,58,138,0.14); }
  .services-liste a:nth-child(2) { transition-delay: 0.10s; }
  .services-liste a:nth-child(3) { transition-delay: 0.20s; }
  .services-liste a:nth-child(4) { transition-delay: 0.30s; }
  .services-liste a:nth-child(5) { transition-delay: 0.40s; }
  .faq details { transition: background 0.2s ease; }
  .faq details[open] { background: var(--gris-fond); padding-left: 12px; padding-right: 12px; }
  .faq summary::marker { color: var(--jaune); }
}
@keyframes zoomlent { from { background-size: 100% auto; } to { background-size: 108% auto; } }
