/* =========================================================
   LevelTeam — movimiento sutil para páginas internas (V20)
   Recupera la vida visual del hero sin alterar layout/contenido.
   ========================================================= */

/* Órbitas del hero */
.hero .orb.o1{
  animation:ltServiceOrbit 24s linear infinite !important;
  transform-origin:50% 50%;
}
.hero .orb.o2{
  animation:ltServiceOrbitRev 18s linear infinite !important;
  transform-origin:50% 50%;
}
.hero .orb.o3{
  animation:ltServiceOrbit 12s linear infinite !important;
  transform-origin:50% 50%;
}

/* Núcleo: apenas respira y flota */
.hero .orb-core{
  animation:ltServiceCoreFloat 5.8s ease-in-out infinite !important;
  will-change:transform,filter;
}
.hero .orb-core::after{
  content:"";
  position:absolute;
  inset:-14px;
  border-radius:50%;
  border:1px solid rgba(240,45,45,.16);
  pointer-events:none;
  animation:ltServiceCorePulse 3.4s ease-out infinite !important;
}

/* La retícula se desplaza de forma casi imperceptible. */
.hero .grid{
  animation:ltServiceGridDrift 24s linear infinite !important;
}

/* Línea de categoría: pulso mínimo */
.hero .eyebrow i{
  animation:ltServiceSignal 2.8s ease-in-out infinite !important;
}

/* Wi-Fi empresarial usa foto en lugar del gráfico orbital. */
.hero .hero-photo{
  overflow:hidden;
}
.hero .hero-photo img{
  animation:ltServicePhotoFloat 8s ease-in-out infinite !important;
  will-change:transform;
}

@keyframes ltServiceOrbit{
  to{transform:rotate(360deg)}
}
@keyframes ltServiceOrbitRev{
  to{transform:rotate(-360deg)}
}
@keyframes ltServiceCoreFloat{
  0%,100%{transform:translate3d(0,0,0);filter:brightness(1)}
  50%{transform:translate3d(0,-6px,0);filter:brightness(1.07)}
}
@keyframes ltServiceCorePulse{
  0%{transform:scale(.94);opacity:0}
  28%{opacity:.75}
  100%{transform:scale(1.16);opacity:0}
}
@keyframes ltServiceGridDrift{
  0%{background-position:0 0,0 0}
  100%{background-position:64px 64px,64px 64px}
}
@keyframes ltServiceSignal{
  0%,100%{opacity:.65;box-shadow:0 0 8px rgba(240,45,45,.25)}
  50%{opacity:1;box-shadow:0 0 18px rgba(240,45,45,.75)}
}
@keyframes ltServicePhotoFloat{
  0%,100%{transform:scale(1.01) translate3d(0,0,0)}
  50%{transform:scale(1.035) translate3d(0,-4px,0)}
}

/*
   El sitio se usa como presentación visual. Si el sistema operativo
   solicita menos movimiento, reducimos velocidad e intensidad en vez
   de congelar por completo los esquemas, que era el problema detectado.
*/
@media (prefers-reduced-motion: reduce){
  .hero .orb.o1{animation:ltServiceOrbit 64s linear infinite !important}
  .hero .orb.o2{animation:ltServiceOrbitRev 56s linear infinite !important}
  .hero .orb.o3{animation:ltServiceOrbit 46s linear infinite !important}
  .hero .orb-core{animation:ltServiceCoreFloat 11s ease-in-out infinite !important}
  .hero .orb-core::after{animation:ltServiceCorePulse 7s ease-out infinite !important}
  .hero .grid{animation:ltServiceGridDrift 70s linear infinite !important}
  .hero .eyebrow i{animation:ltServiceSignal 6s ease-in-out infinite !important}
  .hero .hero-photo img{animation:ltServicePhotoFloat 14s ease-in-out infinite !important}
}

/* En móvil mantenemos movimiento, pero más corto y discreto. */
@media (max-width:640px){
  .hero .orb-core{animation-duration:7s !important}
  .hero .hero-photo img{animation-duration:11s !important}
}
