Real POST /api/v1/trade-in/lead form (phone + FZ-152 consent) in
HeroTransparency.tsx, replacing the mailto stub. Removed the
CONTACT_EMAIL/leadEnabled env-gate — form always renders.
Review fixup: the submit button was disabled whenever phone/consent
were invalid, which suppresses the native submit event entirely (both
click and Enter-key implicit submission) — the client-side validation
hint text was unreachable dead code, and users saw only a dimmed
button with no explanation. Submit is now only disabled while the
mutation is pending; invalid attempts fall through to the existing
handleLeadSubmit guard clause, which surfaces the phone hint via
leadTouched. aria-disabled communicates the visual state without
blocking the event.
Also guarded the error-message render against non-string mutation
errors (FastAPI 422 responses put a list in `detail`, which would
otherwise stringify to "[object Object]").