/* ==========================================================================
   PRISMA DRYWALL — animations.css
   Animações de entrada ao rolar a página (Intersection Observer em main.js)
   ========================================================================== */

[data-reveal]{
  opacity: 0;
  transition: opacity .8s cubic-bezier(.4,0,.2,1), transform .8s cubic-bezier(.4,0,.2,1);
  will-change: transform, opacity;
}
[data-reveal="up"]{ transform: translateY(32px); }
[data-reveal="left"]{ transform: translateX(-32px); }
[data-reveal="right"]{ transform: translateX(32px); }
[data-reveal="zoom"]{ transform: scale(.94); }

[data-reveal].is-visible{
  opacity: 1;
  transform: translate(0,0) scale(1);
}

/* Stagger para grids de cards */
[data-reveal-group] [data-reveal]:nth-child(1){ transition-delay: .05s; }
[data-reveal-group] [data-reveal]:nth-child(2){ transition-delay: .15s; }
[data-reveal-group] [data-reveal]:nth-child(3){ transition-delay: .25s; }
[data-reveal-group] [data-reveal]:nth-child(4){ transition-delay: .35s; }
[data-reveal-group] [data-reveal]:nth-child(5){ transition-delay: .45s; }
[data-reveal-group] [data-reveal]:nth-child(6){ transition-delay: .55s; }

/* Hover suave em cards e imagens */
.service-card, .partner-card, .value-card{ transition: border-color .4s ease, transform .4s ease; }
.img-frame img{ transition: transform .7s cubic-bezier(.4,0,.2,1); }
.about-media:hover img, .service-media:hover img{ transform: scale(1.04); }

/* Loader simples de página (opcional, leve) */
.page-fade{ animation: pageFade .6s ease both; }
@keyframes pageFade{ from{ opacity:0; } to{ opacity:1; } }

/* Respeita preferência de redução de movimento */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
  [data-reveal]{ opacity:1; transform:none; }
  .hero-slide.is-active .hero-eyebrow,
  .hero-slide.is-active .hero-title,
  .hero-slide.is-active .hero-lead,
  .hero-slide.is-active .hero-cta{ animation: none; opacity:1; }
}
