/* ================================================================
   animations.css — Reciclanet
================================================================ */

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
  .trust-bar__track { animation: none !important; }
}

@keyframes fade-in-up   { from { opacity:0; transform:translateY(26px); } to { opacity:1; transform:translateY(0); } }
@keyframes fade-in-down { from { opacity:0; transform:translateY(-18px); } to { opacity:1; transform:translateY(0); } }
@keyframes fade-in-left { from { opacity:0; transform:translateX(26px); } to { opacity:1; transform:translateX(0); } }
@keyframes fade-in      { from { opacity:0; } to { opacity:1; } }
@keyframes scale-in     { from { opacity:0; transform:scale(0.93); } to { opacity:1; transform:scale(1); } }
@keyframes pulse-dot    { 0%,100% { opacity:1; transform:scale(1); box-shadow:0 0 0 0 rgba(39,174,96,0.5); } 50% { opacity:0.8; transform:scale(1.15); box-shadow:0 0 0 8px rgba(39,174,96,0); } }
@keyframes blink        { 0%,100% { opacity:1; } 50% { opacity:0; } }
@keyframes scroll-wheel { 0% { transform:translateY(0); opacity:1; } 80% { transform:translateY(11px); opacity:0; } 100% { transform:translateY(0); opacity:0; } }
@keyframes fill-bar     { from { width:0; } to { width:var(--progress,78%); } }
@keyframes spin         { to { transform:rotate(360deg); } }
@keyframes shake        { 0%,100% { transform:translateX(0); } 20% { transform:translateX(-5px); } 40% { transform:translateX(5px); } 60% { transform:translateX(-3px); } 80% { transform:translateX(3px); } }

/* Carrusel trust bar */
@keyframes carousel-scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* Estados iniciales scroll */
[data-animate] { opacity:0; transition: opacity 0.62s ease, transform 0.62s ease; }
[data-animate="fade-in-up"]   { transform: translateY(26px); }
[data-animate="fade-in-left"] { transform: translateX(26px); }
[data-animate="fade-in-right"]{ transform: translateX(-26px); }
[data-animate="fade-in"]      { transform: none; }
[data-animate="scale-in"]     { transform: scale(0.93); }
[data-animate].is-visible     { opacity:1; transform: translateY(0) translateX(0) scale(1); }

[data-animate][data-delay="80"].is-visible   { transition-delay: 80ms; }
[data-animate][data-delay="150"].is-visible  { transition-delay: 150ms; }
[data-animate][data-delay="160"].is-visible  { transition-delay: 160ms; }
[data-animate][data-delay="220"].is-visible  { transition-delay: 220ms; }
[data-animate][data-delay="240"].is-visible  { transition-delay: 240ms; }
[data-animate][data-delay="300"].is-visible  { transition-delay: 300ms; }
[data-animate][data-delay="320"].is-visible  { transition-delay: 320ms; }
[data-animate][data-delay="400"].is-visible  { transition-delay: 400ms; }
[data-animate][data-delay="450"].is-visible  { transition-delay: 450ms; }
[data-animate][data-delay="480"].is-visible  { transition-delay: 480ms; }
[data-animate][data-delay="560"].is-visible  { transition-delay: 560ms; }

/* Hero — entrada al cargar */
.site-header     { animation: fade-in-down 0.6s ease 0s both; }
.hero__eyebrow   { animation: fade-in-down 0.7s ease 0.2s both; }
.hero__title     { animation: fade-in-up 0.8s ease 0.32s both; }
.hero__description { animation: fade-in-up 0.7s ease 0.48s both; }
.hero__actions   { animation: fade-in-up 0.7s ease 0.6s both; }
.hero__stats     { animation: fade-in-up 0.7s ease 0.72s both; }
.hero__visual    { animation: fade-in-left 0.9s ease 0.52s both; }
.hero__overlay   { animation: fade-in 1s ease 0s both; }
.scroll-indicator { animation: fade-in 1s ease 1.8s both; }

/* Trust bar logos */
.trust-bar__logo-link:nth-child(1)  { animation: fade-in 0.5s ease 0.1s both; }
.trust-bar__logo-link:nth-child(2)  { animation: fade-in 0.5s ease 0.2s both; }
.trust-bar__logo-link:nth-child(3)  { animation: fade-in 0.5s ease 0.3s both; }
.trust-bar__logo-link:nth-child(4)  { animation: fade-in 0.5s ease 0.4s both; }
.trust-bar__logo-link:nth-child(5)  { animation: fade-in 0.5s ease 0.5s both; }
.trust-bar__logo-link:nth-child(6)  { animation: fade-in 0.5s ease 0.6s both; }

/* Scroll indicator oculto */
.scroll-indicator.is-hidden { opacity:0; pointer-events:none; transition: opacity 0.4s ease; }

/* Menú móvil entrada */
.navbar__menu.is-open { animation: fade-in-down 0.28s ease both; }

/* Form error shake */
.form-input.is-invalid, .form-select.is-invalid, .form-textarea.is-invalid { animation: shake 0.35s ease; }

/* Logo hover */
.navbar__logo img { transition: transform 0.3s ease; }
.navbar__logo:hover img { transform: scale(1.04); }

/* Footer nav */
.footer__nav-link { transition: color 0.2s ease, padding-left 0.2s ease; }

/* Dropdown desktop */
@media (min-width: 1024px) {
  .navbar__item--dropdown > .dropdown__menu {
    opacity: 0;
    transform: translateY(-6px);
    transition: opacity 0.2s ease, transform 0.2s ease;
    pointer-events: none;
  }
  .navbar__item--dropdown:hover > .dropdown__menu,
  .navbar__item--dropdown:focus-within > .dropdown__menu {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
    display: flex !important;
  }
}
