/* =====================================================================
   §8 · CTA final + Formulario
   ===================================================================== */
.cta-final {
  background-image:
    linear-gradient(
      to right,
      rgba(0, 0, 0, 0.50) 0%,
      rgba(0, 0, 0, 0.32) 100%
    ),
    url("../images/img/enterprise-office.jpg");
  background-size: cover;
  background-position: center center;
  color: var(--on-dark);
  padding-block: clamp(2rem, 4vw, 3.5rem);
}
.cta-final__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 6vw, 5rem);
  align-items: center;
}
.cta-final__title { color: var(--on-dark); }
.cta-final__lead {
  font-size: var(--text-lg);
  margin-top: var(--space-4);
  color: var(--on-dark);
  opacity: 0.95;
  max-width: 42ch;
}

/* Tarjeta blanca para legibilidad del formulario sobre el degradado */
.cta-final__card {
  background: var(--bg);
  color: var(--ink);
  border-radius: var(--radius-lg);
  padding: clamp(0.9rem, 2vw, 1.1rem);
  box-shadow: var(--shadow-lg);
}

/* Formulario */
.form { display: grid; gap: var(--space-2); }
.form__row { display: grid; gap: 3px; }
.form__label { font-weight: 600; font-size: var(--text-sm); }
.form__optional { font-weight: 400; color: var(--ink-soft); }

.form__input {
  width: 100%;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  color: var(--ink);
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 6px var(--space-3);
  transition: border-color 0.2s ease;
}
.form__input::placeholder { color: var(--ink-soft); }
.form__input:focus-visible {
  outline: 3px solid var(--brand-lila);
  outline-offset: 1px;
  border-color: var(--brand-lila);
}
textarea.form__input { resize: vertical; min-height: 42px; }
.form__input[aria-invalid="true"] { border-color: var(--danger); }

.form__error { font-size: var(--text-sm); color: var(--danger); min-height: 1em; }
.form__submit { width: 100%; margin-top: var(--space-1); }
.form__status { font-size: var(--text-sm); min-height: 1.2em; }
.form__status[data-state="ok"] { color: #1f7a4d; font-weight: 600; }
.form__status[data-state="error"] { color: var(--danger); }

@media (max-width: 820px) {
  .cta-final__inner { grid-template-columns: 1fr; }
}
