/* ==========================================================================
   The two-step contact form (site/lead_form.py, assets/js/site-hooks.js).
   Tokens only, so bronze and html[data-theme="blue"] both follow.
   ========================================================================== */
.lf { display: grid; gap: 22px; }
.lf__progress { display: flex; align-items: baseline; gap: 8px; margin: 0;
  font: 500 11px/1 Inter, sans-serif; letter-spacing: .2em; text-transform: uppercase; color: var(--ink-faint); }
.lf__progress .num { color: var(--bronze-deep); }
.lf:not(.is-js) .lf__progress, .lf:not(.is-js) .lf__bar { display: none; }
.lf__bar { height: 3px; border-radius: 3px; background: rgba(var(--ink-rgb), .08); overflow: hidden; margin-top: -10px; }
.lf__bar i { display: block; height: 100%; width: 50%; background: var(--bronze-deep); border-radius: inherit;
  transition: width .35s var(--ease); }
.lf__step { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; gap: 22px; }
.lf__step[hidden] { display: none; }
.lf__legend { padding: 0; margin: 0 0 4px; font: 400 clamp(1.25rem, 1.8vw, 1.5rem)/1.25 Newsreader, Georgia, serif; color: var(--ink); letter-spacing: -.01em; }
.lf.is-js .lf__legend:focus { outline: none; }

/* persona radio cards */
.lf__personas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.lf__pcard {
  position: relative; display: flex; align-items: center; gap: 12px; min-height: 60px; padding: 14px 16px;
  border-radius: var(--r); cursor: pointer;
  background: linear-gradient(178deg, var(--sand-980) 0%, var(--sand-943) 100%);
  box-shadow: var(--clay-sm);
  transition: box-shadow .25s var(--ease), transform .25s var(--ease);
}
.lf__pcard:hover { box-shadow: var(--clay-md); }
.lf__pcard input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.lf__pdot { flex: 0 0 auto; width: 18px; height: 18px; border-radius: 50%; box-shadow: var(--clay-in);
  background: var(--ground-sink); display: grid; place-items: center; }
.lf__pdot::after { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--bronze-deep); transform: scale(0);
  transition: transform .2s var(--ease); }
.lf__plabel { font: 500 14.5px/1.35 Inter, sans-serif; color: var(--ink); }
.lf__pcard:has(input:checked) { box-shadow: var(--clay-in), 0 0 0 2px rgba(var(--bronze-deep-rgb), .55); }
.lf__pcard:has(input:checked) .lf__pdot::after { transform: scale(1); }
.lf__pcard:has(input:focus-visible) { outline: 2px solid var(--bronze-bright); outline-offset: 3px; }
.lf__field-p[data-invalid="true"] .lf__pcard { box-shadow: var(--clay-sm), 0 0 0 2px rgba(157, 58, 42, .28); }

.lf__nav { display: flex; align-items: center; gap: 14px 18px; flex-wrap: wrap; }
.lf__promise { margin: 0; }
.lf__back svg { transition: transform .3s var(--ease); }
.lf__back:hover svg { transform: translateX(-3px); }

/* success: an in-place state, the same clay as the card it replaces */
.lf__ok {
  display: grid; gap: 14px; padding: 4px 0 0; background: none; box-shadow: none; color: var(--ink-muted);
  font: 400 15px/1.7 Inter, sans-serif;
}
.lf__ok[hidden] { display: none; }
.lf__ok-t { font-size: clamp(1.75rem, 2.6vw, 2.25rem); }
.lf__next-h { margin-top: 10px; }
.lf__next { list-style: none; counter-reset: lfn; margin: 0; padding: 0; display: grid; border-top: 1px solid var(--line); }
.lf__next li { counter-increment: lfn; display: grid; grid-template-columns: 40px 1fr; gap: 12px; padding: 14px 0;
  border-bottom: 1px solid var(--line); color: var(--ink); }
.lf__next li::before { content: counter(lfn, decimal-leading-zero); font: 500 11px/2 Inter, sans-serif; letter-spacing: .16em; color: var(--bronze-deep); }
.lf__next b { font-weight: 500; }
.lf__ok-acts { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 10px; }

@media (max-width: 680px) {
  .lf__personas { grid-template-columns: minmax(0, 1fr); }
  .lf__nav .btn { flex: 1 1 auto; }
  .lf__ok-acts .btn { flex: 1 1 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .lf__bar i, .lf__pcard, .lf__pdot::after, .lf__back svg { transition: none; }
}
.lf-card .form__head[hidden] { display: none; }
.lf__next li:has(> b:empty) { display: none; }
