/* ─── Estilos para estados de error del formulario ─────────────────────────────
   Añade esto al final de tu styles.css o en un archivo aparte
   ─────────────────────────────────────────────────────────────────────────── */

/* Campo con error */
.field--error {
  border-color: #dc2626 !important;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.15) !important;
}

/* Mensaje de error debajo del campo */
.field-error {
  display: none;
  margin-top: 4px;
  font-size: 13px;
  color: #dc2626;
  font-weight: 500;
}

/* Botón deshabilitado — la opacidad la maneja el JS,
   esto evita el click cuando está deshabilitado */
#submit-btn:disabled {
  pointer-events: none;
}

/* Spinner de carga dentro del botón */
.btn-spinner {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.spin {
  animation: spin-anim 0.9s linear infinite;
}

@keyframes spin-anim {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* Div de éxito (ya existe en tu HTML, este estilo lo mejora) */
.form-success {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px 20px;
  background: #f0fdf4;
  border: 1.5px solid #22c55e;
  border-radius: 10px;
  margin-top: 16px;
  color: #166534;
}

.form-success svg {
  flex-shrink: 0;
  color: #16a34a;
  margin-top: 2px;
}

.form-success strong {
  display: block;
  font-size: 15px;
  margin-bottom: 2px;
}

.form-success p {
  font-size: 14px;
  margin: 0;
  color: #15803d;
}

.form-success a {
  color: #15803d;
  font-weight: 600;
}

/* Campo honeypot: oculto para usuarios reales, visible para bots */
.hp-field {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
