/* Intake form (BRAND.md 6.19): three steps, labels always visible, inline errors.
   Without JS every step shows on one page; intake.js adds .is-stepped. */
.ws-intake{ display:grid; gap:var(--ws-space-5); max-width:760px; }
.ws-intake__progress{
  font-size:var(--ws-fs-eyebrow);
  font-weight:600;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--ws-fg-dim);
}
.ws-intake__step{
  display:grid;
  gap:var(--ws-space-4);
  min-width:0;
  margin:0;
  padding:0;
  border:0;
}
.ws-intake__step:focus{ outline:none; }
.ws-intake__legend{
  margin-bottom:var(--ws-space-1);
  padding:0;
  font-family:var(--ws-font-display);
  font-size:var(--ws-fs-h3);
  line-height:.92;
  letter-spacing:.01em;
  text-transform:uppercase;
}
.ws-intake__nav{ display:flex; flex-wrap:wrap; gap:var(--ws-space-2); }
/* Honeypot: off screen for people, still in the form for bots. */
.ws-intake__hp{ position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }

/* Fields */
.ws-field{ display:grid; gap:8px; min-width:0; margin:0; padding:0; border:0; }
.ws-field__label{ padding:0; font-size:15px; font-weight:600; }
.ws-field__optional{ font-weight:400; color:var(--ws-fg-dim); }
.ws-field__error{
  font-size:var(--ws-fs-small);
  font-weight:600;
  color:var(--ws-accent-text);
}
.ws-input{
  width:100%;
  min-height:48px;
  padding:12px 14px;
  border:1px solid var(--ws-fg-dim);
  border-radius:var(--ws-radius);
  background:var(--ws-surface);
  font-size:16px;
  line-height:1.5;
}
textarea.ws-input{ min-height:132px; resize:vertical; }
.ws-input:hover{ border-color:var(--ws-fg); }
.ws-input:focus-visible{ outline:2px solid var(--ws-focus); outline-offset:2px; }
.ws-input[aria-invalid="true"]{ border-color:var(--ws-accent-text); }

/* Choice rows (service, timeline) */
.ws-choices{ display:grid; gap:8px; }
@media (min-width:768px){ .ws-choices{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.ws-choice{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:48px;
  padding:10px 16px;
  border:1px solid var(--ws-fg-dim);
  font-size:15px;
  cursor:pointer;
}
.ws-choice:hover,
.ws-choice:has(input:checked){ border-color:var(--ws-fg); }
.ws-choice input,
.ws-check input{ flex:none; width:18px; height:18px; margin:0; accent-color:var(--ws-red-ui); }
[aria-invalid="true"] .ws-choice,
.ws-choice:has([aria-invalid="true"]){ border-color:var(--ws-accent-text); }

/* Segmented radios (budget) */
.ws-segmented{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  border:1px solid var(--ws-fg-dim);
  background:var(--ws-fg-dim);
}
@media (min-width:576px){ .ws-segmented{ grid-template-columns:repeat(4,minmax(0,1fr)); } }
.ws-segmented label{ position:relative; display:flex; cursor:pointer; }
.ws-segmented input{ position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:pointer; }
.ws-segmented span{
  display:flex;
  flex:1;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:8px 12px;
  background:var(--ws-bg);
  font-size:15px;
  font-weight:600;
  text-align:center;
  transition:background-color var(--ws-ease), color var(--ws-ease);
}
.ws-segmented label:hover span{ background:var(--ws-surface); }
.ws-segmented input:checked + span{ background:var(--ws-fg); color:var(--ws-bg); }
.ws-segmented input:focus-visible + span{ outline:2px solid var(--ws-focus); outline-offset:-4px; }
[aria-invalid="true"] .ws-segmented,
.ws-segmented:has([aria-invalid="true"]){ border-color:var(--ws-accent-text); background:var(--ws-accent-text); }

/* Consent */
.ws-check{ display:flex; align-items:flex-start; gap:12px; font-size:15px; cursor:pointer; }
.ws-check input{ margin-top:3px; }

/* Short variant (one-page read): one step, no progress, narrower. */
.ws-intake--short{ gap:var(--ws-space-3); width:100%; max-width:560px; margin-top:var(--ws-space-2); }
