/* Waitlist form panel (inside .start). Colours come from theme.css tokens. */
.waitlist { padding-block: var(--space-5) var(--space-6); }
.waitlist[hidden] { display: none; }
.wl-card { max-width: 46rem; margin-inline: auto; background: var(--ground); color: var(--ink); border-radius: var(--radius); box-shadow: 0 0 0 2px var(--ink); padding: clamp(1.25rem, 3vw, 2.25rem); }
.wl-card h3 { font-family: var(--font-display); font-weight: 800; font-stretch: 112%; font-size: var(--step-3); line-height: 1.08; letter-spacing: -0.02em; margin: 0; text-wrap: balance; }
.wl-card .wl-lead { margin: var(--space-2) 0 var(--space-4); color: var(--muted, #4b5468); line-height: 1.45; text-wrap: pretty; }
.wl-card form { display: grid; gap: var(--space-4); }
.wl-card .f { display: grid; gap: 0.4rem; border: 0; padding: 0; margin: 0; min-width: 0; }
.wl-card label, .wl-card legend { font-weight: 700; padding: 0; }
.wl-card .hint { font-size: 0.9375rem; color: var(--muted, #4b5468); }
.wl-card input[type=text], .wl-card input[type=email], .wl-card textarea {
  font: inherit; color: var(--ink); background: #fff; width: 100%; min-height: 3rem; padding: 0.7rem 0.85rem;
  border: 1px solid var(--ink); border-radius: var(--radius);
}
.wl-card textarea { resize: vertical; min-height: 6.5rem; line-height: 1.4; }
.wl-card [aria-invalid=true] { border-color: var(--ink); box-shadow: inset 0 0 0 2px var(--ink); }
.wl-card input:focus-visible, .wl-card textarea:focus-visible, .wl-card button:focus-visible { outline: 3px solid var(--ink); outline-offset: 3px; }
.wl-card .opts { display: grid; gap: var(--space-2); }
.wl-card .opt, .wl-card .consent { display: flex; align-items: flex-start; gap: 0.75rem; min-height: 2.75rem; padding: 0.55rem 0.75rem; background: var(--surface); border-radius: var(--radius); font-weight: 500; cursor: pointer; }
.wl-card .opt b { font-weight: 800; }
.wl-card input[type=radio], .wl-card input[type=checkbox] { flex: none; width: 1.35rem; height: 1.35rem; margin: 0.1rem 0 0; accent-color: var(--ink); }
.wl-card .err { margin: 0; min-height: 0; font-weight: 700; color: var(--ink); }
.wl-card .err:not(:empty)::before { content: ""; display: inline-block; width: 0.45rem; height: 1em; margin-right: 0.5rem; background: var(--accent); transform: skewX(-14deg); vertical-align: -0.12em; }
.wl-card .summary { margin: 0; font-weight: 700; }
.wl-card .summary:not(:empty) { padding: 0.75rem 1rem; border-left: 6px solid var(--accent); background: var(--surface); border-radius: var(--radius); }
.wl-card .status { margin: 0; color: var(--muted, #4b5468); }
.wl-card .btn--accent { background: var(--accent); color: var(--ink); box-shadow: 0 0 0 2px var(--ink); justify-self: start; }
.wl-card .btn--accent:disabled { opacity: 0.6; cursor: progress; }
@media (hover: hover) and (pointer: fine) { .wl-card .btn--accent:hover:not(:disabled) { background: var(--accent-hover); } }
.wl-card [data-success] { outline: none; }
.wl-card [data-success] p { font-size: var(--step-1); line-height: 1.4; margin: var(--space-3) 0 0; }
.hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.wl-card [hidden] { display: none; }

/* Pricing stage buttons (Payment Link or fallback to the form) */
.plan li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2) var(--space-4); }
.plan li > span { flex: 1 1 14rem; min-width: 0; }
.plan .pay { flex: none; }
.plan .btn--accent { background: var(--accent); color: var(--ink); box-shadow: 0 0 0 2px var(--ink); }
.plan--turnkey .btn--accent { box-shadow: none; }
@media (hover: hover) and (pointer: fine) { .plan .btn--accent:hover { background: var(--accent-hover); } }
.plan .pay:focus-visible, .plan .parts a:focus-visible { outline: 3px solid var(--ink); outline-offset: 3px; }
.plan--turnkey .pay:focus-visible, .plan--turnkey .parts a:focus-visible { outline-color: var(--ground); }
.plan .parts { margin-top: var(--space-3); font-size: var(--step-0); }
.plan--turnkey > p + p { margin-top: var(--space-3); }
.plan .btn--small { background: var(--ink); color: var(--ground); }
