/* NextBot — landing page.
   La mayoria del estilo va inline en el HTML (asi salio del diseño original);
   esta hoja solo trae lo que no puede ir inline: reset, tipografia base,
   keyframes de las animaciones de fondo y el placeholder de los campos de
   texto enriquecido de los formularios. */

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; scroll-padding-top: 130px; }
section[id] { scroll-margin-top: 130px; }

body {
  margin: 0;
  background: #f5f1ea;
  color: #161611;
  font-family: "Plus Jakarta Sans", ui-sans-serif, system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}

a { color: #cf5b34; text-decoration: none; }
a:hover { color: #a8431f; }
p { text-wrap: pretty; }
button { font: inherit; cursor: pointer; }

@keyframes bcPulse {
  0%, 100% { opacity: .35; }
  50% { opacity: 1; }
}
@keyframes bcDrift {
  0%, 100% { transform: translate(0, 0); opacity: .5; }
  50% { transform: translate(10px, -16px); opacity: 1; }
}
@keyframes bcFloat {
  0%, 100% { transform: translate(0, 0); }
  50% { transform: translate(12px, -20px); }
}

/* Los campos "rico" (contenteditable) de los formularios de contacto/demo:
   muestran su placeholder mientras estan vacios. */
[data-rich]:empty::before {
  content: attr(data-placeholder);
  color: #6b6558;
}

/* El carrusel de planes en movil (ver fitPlansSlider en script.js): la barra
   de scroll horizontal no aporta nada arriba de los puntos de scroll-snap. */
[data-plans-grid] { scrollbar-width: none; }
[data-plans-grid]::-webkit-scrollbar { display: none; }
