/* ============ Visión Nova — estilos compartidos ============ */
body {
  background-color: #0e0e0e;
  color: #e5e2e1;
  overflow-x: hidden;
  scroll-behavior: smooth;
}
.liquid-glass {
  background: rgba(255,255,255,0.02);
  backdrop-filter: blur(32px) saturate(200%);
  border: 1px solid rgba(255,255,255,0.08);
  box-shadow: inset 0 1px 2px rgba(255,255,255,0.05), 0 10px 40px rgba(0,0,0,0.4);
  transition: all 0.6s cubic-bezier(0.16,1,0.3,1);
}
.liquid-glass:hover {
  background: rgba(255,255,255,0.05);
  border-color: rgba(255,255,255,0.15);
  transform: translateY(-4px);
}
.liquid-glass-strong {
  background: rgba(255,255,255,0.08);
  backdrop-filter: blur(48px) saturate(210%);
  border: 1px solid rgba(255,255,255,0.2);
  box-shadow: 0 20px 80px rgba(0,0,0,0.8);
}
.text-gradient {
  background: linear-gradient(135deg,#ffffff 0%,rgba(255,255,255,0.4) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.nebula-glow {
  position: absolute;
  background: radial-gradient(circle,rgba(255,255,255,0.03) 0%,rgba(0,0,0,0) 70%);
  pointer-events: none;
  z-index: -1;
  filter: blur(80px);
}
.hero-video-container {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  z-index: -2;
  overflow: hidden;
}
.hero-video-container video {
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: 0.6;
}
.input-glass {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 0.75rem;
  color: white;
  transition: all 0.3s ease;
}
.input-glass:focus {
  background: rgba(255,255,255,0.06);
  border-color: rgba(255,255,255,0.3);
  outline: none;
  box-shadow: 0 0 0 4px rgba(255,255,255,0.05);
}
.stagger-item { opacity: 0; transform: translateY(20px); }

/* ============ Marquee de logos ============ */
.marquee { overflow: hidden; position: relative; }
.marquee::before, .marquee::after {
  content: ''; position: absolute; top: 0; bottom: 0; width: 120px; z-index: 2; pointer-events: none;
}
.marquee::before { left: 0; background: linear-gradient(90deg,#0e0e0e,transparent); }
.marquee::after { right: 0; background: linear-gradient(-90deg,#0e0e0e,transparent); }
.marquee-track { display: flex; gap: 4rem; width: max-content; animation: marquee 30s linear infinite; }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.marquee:hover .marquee-track { animation-play-state: paused; }

/* ============ WhatsApp flotante ============ */
.whatsapp-float {
  position: fixed; bottom: 24px; right: 24px; z-index: 60;
  width: 56px; height: 56px; border-radius: 9999px; background: #25D366;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 8px 30px rgba(37,211,102,.4);
  transition: transform .3s ease;
}
.whatsapp-float:hover { transform: scale(1.1); }

/* ============ Menú móvil ============ */
.mobile-menu {
  position: fixed; inset: 0; z-index: 55;
  background: rgba(8,8,8,.92); backdrop-filter: blur(24px);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.6rem;
  opacity: 0; pointer-events: none; transition: opacity .4s ease;
}
.mobile-menu.open { opacity: 1; pointer-events: auto; }

/* ============ Simulador de chat ============ */
.typing-dots span {
  width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,.5);
  display: inline-block; animation: typing 1.2s infinite;
}
.typing-dots span:nth-child(2) { animation-delay: .2s; }
.typing-dots span:nth-child(3) { animation-delay: .4s; }
@keyframes typing { 0%,60%,100% { transform: translateY(0); opacity: .4; } 30% { transform: translateY(-4px); opacity: 1; } }
.chat-tab { transition: all .3s ease; }
.chat-tab.active-tab { background: #ffffff; color: #0e0e0e; border-color: transparent; }
.chat-msg { animation: msgIn .4s cubic-bezier(0.16,1,0.3,1) both; }
@keyframes msgIn { from { opacity: 0; transform: translateY(12px) scale(.97); } to { opacity: 1; transform: translateY(0) scale(1); } }

/* ============ Animación de scroll por sección ============ */
section.reveal { opacity: 0; transform: translateY(48px); transition: opacity .9s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1); will-change: opacity, transform; }
section.reveal.in-view { opacity: 1; transform: translateY(0); }
section.reveal.in-view > * { animation: childUp .9s cubic-bezier(.16,1,.3,1) both; }
section.reveal.in-view > *:nth-child(2) { animation-delay: .12s; }
section.reveal.in-view > *:nth-child(3) { animation-delay: .24s; }
@keyframes childUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) {
  section.reveal, section.reveal.in-view > * { opacity: 1; transform: none; animation: none; transition: none; }
}

/* ============ Sliders calculadora ROI ============ */
input[type=range].roi-slider {
  -webkit-appearance: none; appearance: none; width: 100%; height: 4px;
  border-radius: 9999px; background: rgba(255,255,255,.15); outline: none;
}
input[type=range].roi-slider::-webkit-slider-thumb {
  -webkit-appearance: none; width: 20px; height: 20px; border-radius: 50%;
  background: #fff; cursor: pointer; box-shadow: 0 0 12px rgba(255,255,255,.5);
}
input[type=range].roi-slider::-moz-range-thumb {
  width: 20px; height: 20px; border-radius: 50%; border: none;
  background: #fff; cursor: pointer; box-shadow: 0 0 12px rgba(255,255,255,.5);
}
