/* =====================================================================
   AOS — stili self-contained compatibili con aos.js (Fase 5)
   Stato iniziale nascosto + transizione; aos.js aggiunge .aos-animate
   quando l'elemento entra nel viewport. Solo animazioni transform/opacity
   (performanti). Gli attributi data-aos sono iniettati da curaboots-anim.js
   SOLO quando AOS è disponibile → niente contenuto nascosto senza JS.
   ===================================================================== */
[data-aos] {
  opacity: 0;
  transition-property: opacity, transform;
  transition-duration: .7s;
  transition-timing-function: cubic-bezier(.215, .61, .355, 1);
  will-change: opacity, transform;
}
[data-aos].aos-animate {
  opacity: 1;
  transform: none;
}

[data-aos="fade-up"]    { transform: translateY(32px); }
[data-aos="fade-down"]  { transform: translateY(-32px); }
[data-aos="fade-left"]  { transform: translateX(32px); }
[data-aos="fade-right"] { transform: translateX(-32px); }
[data-aos="zoom-in"]    { transform: scale(.94); }
[data-aos="fade"]       { transform: none; }

/* Rispetto assoluto di reduced-motion: tutto visibile, nessun movimento */
@media (prefers-reduced-motion: reduce) {
  [data-aos] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
