/* ══════════════════════════════════════════════
   ENTRANCE ANIMATIONS (Elementor-style scroll reveal)
   ══════════════════════════════════════════════ */

[data-aos]{
  opacity:0;
  will-change:transform,opacity;
  transition:opacity .7s cubic-bezier(.25,.46,.45,.94),transform .7s cubic-bezier(.25,.46,.45,.94);
}
[data-aos].aos-animate{opacity:1;transform:none !important}

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

/* stagger children of a grid/row automatically via nth-child delay set inline by JS */

@media (prefers-reduced-motion: reduce){
  [data-aos]{transition:none !important;opacity:1 !important;transform:none !important}
}

/* Hero entrance (plays immediately on load, not on scroll) */
.hero-badge,.hero h1,.hero-sub,.hero-btns,.hero-stats{
  opacity:0;
  animation:heroIn .8s cubic-bezier(.25,.46,.45,.94) forwards;
}
.hero-badge{animation-delay:.05s}
.hero h1{animation-delay:.15s}
.hero-sub{animation-delay:.28s}
.hero-btns{animation-delay:.4s}
.hero-stats{animation-delay:.55s}
@keyframes heroIn{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}

.about-hero h1,.about-hero p{
  opacity:0;
  animation:heroIn .8s cubic-bezier(.25,.46,.45,.94) forwards;
}
.about-hero h1{animation-delay:.05s}
.about-hero p{animation-delay:.2s}

@media (prefers-reduced-motion: reduce){
  .hero-badge,.hero h1,.hero-sub,.hero-btns,.hero-stats,.about-hero h1,.about-hero p{
    animation:none !important;opacity:1 !important;
  }
}
