/* Timebus 360 · formulario de Contacto adaptado al Contrato del export Prisma (Nexo).
   Nexo envía el formulario y pinta sus estados; este archivo solo decide cómo se ven.

   1. Estructura: nada de esto cambia el aspecto del diseño.
   2. Estados de Nexo: PROPUESTA de diseño a partir de la paleta del propio formulario
      (fondo #0D0D0C, texto #F4F3F1, etiquetas #9A9891, rojo sobre oscuro #FF3B49).
      Pendiente de revisión de Daniel. */

/* ---------- 1. Estructura ---------- */

/* El contrato pide los campos dentro de un contenedor [data-nx-form-campos]. Con
   display: contents ese contenedor no genera caja: los campos siguen siendo hijos
   directos del flex del <form> y conservan su gap de 18px. */
[data-nx-form-campos] { display: contents; }

/* Enviado: Nexo pone data-nx-enviado="1" en el <form>. Se ven las gracias (el mismo
   bloque que el diseño mostraba en lugar del formulario) y se ocultan los campos. */
form:not([data-nx-enviado="1"]) [data-nx-form-ok] { display: none; }
form[data-nx-enviado="1"] [data-nx-form-campos] { display: none; }

/* La zona de avisos no ocupa sitio hasta que Nexo escribe en ella. */
[data-nx-form-message]:empty { display: none; }

/* La flecha del botón, en CSS para que el botón solo lleve texto (Nexo lo reescribe).
   Antes era un <span>→</span> sin estilo propio: hereda igual y el gap de 9px del
   botón la separa del texto exactamente como antes. */
button[data-flecha]::after { content: "→"; }

/* ---------- 2. Estados de Nexo (propuesta) ---------- */

/* Aviso de «Enviando…», error general y enviado. Mismo cuerpo que el texto de la
   pantalla de gracias del diseño. */
.nx-form-msg { margin: 0; font-size: 14px; line-height: 1.7; color: #9A9891; }
.nx-form-msg--enviando { color: #9A9891; }
.nx-form-msg--error { color: #FF3B49; }
.nx-form-msg--ok { color: #F4F3F1; }

/* Campo con error: el borde pasa al rojo del diseño, también con el foco puesto. */
[data-field][aria-invalid="true"],
[data-field][aria-invalid="true"]:hover,
[data-field][aria-invalid="true"]:focus { border-color: #FF3B49; }
input[type="checkbox"][aria-invalid="true"] { outline: 1px solid #FF3B49; outline-offset: 2px; }

/* Motivo del error, debajo del campo: con la medida de las etiquetas del formulario. */
.nx-form-error { display: block; margin-top: 8px; font-size: 12.5px; line-height: 1.5; letter-spacing: 0.02em; color: #FF3B49; }

/* Botón mientras envía: apagado, sin flecha y sin reaccionar al hover. */
button[type="submit"]:disabled { opacity: .5; cursor: default; pointer-events: none; }
button[type="submit"]:disabled::after { content: none; }
