/* batiment-idf — UN moment signature : le titre monte, la photo se découvre par un volet, le carnet de chantier se remplit ligne à ligne,
   le bouton rouge se pose en dernier. Tout part d'un état visible (jamais en attente d'un script). */
@media (prefers-reduced-motion: no-preference) {
  .hero-texte h1 { animation: monter var(--duree-entree) var(--ease-sortie) both; }
  .hero-texte .chapo { animation: monter var(--duree-entree) var(--ease-sortie) 120ms both; }
  .hero-actions { animation: monter var(--duree-entree) var(--ease-sortie) 220ms both; }
  .hero-visuel img { animation: volet 800ms var(--ease-sortie) 80ms both; }
  .etiquette-chantier { animation: poser 420ms var(--ease-sortie) 900ms both; }
  .carnet tbody tr { animation: ligne 420ms var(--ease-sortie) both; animation-delay: calc(420ms + var(--i, 0) * 110ms); }
  .carnet thead { animation: ligne 420ms var(--ease-sortie) 320ms both; }

  @keyframes monter { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
  @keyframes volet { from { clip-path: inset(0 0 100% 0); transform: scale(1.04); } to { clip-path: inset(0); transform: none; } }
  @keyframes poser { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
  @keyframes ligne { from { opacity: 0; transform: translateX(-12px); } to { opacity: 1; transform: none; } }

  /* au défilement, un seul effet sans opacité : les lignes du tableau des prestations se calent en place */
  @supports (animation-timeline: view()) {
    .catalogue tbody tr { animation: glisser linear both; animation-timeline: view(); animation-range: entry 0% entry 45%; }
    @keyframes glisser { from { transform: translateX(-8px); } to { transform: none; } }
  }
}
.faq-liste details div { animation: ouvrir 150ms var(--ease-sortie); }
@keyframes ouvrir { from { opacity: 0; transform: translateY(-3px); } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition-duration: 1ms !important; }
  html { scroll-behavior: auto; }
}
