/*
 * The public forms (phase-2-plan WP6, WP8; decisions 0050, 0051): the contact form and the survey pages.
 * The design system's tokens from site.css; logical properties only. Loaded by those pages only.
 */
.public-form{display:grid;gap:var(--space-5);max-inline-size:44rem;margin-block-start:var(--space-6)}
.field{display:grid;gap:var(--space-2)}
.field>label,.question legend,.question>label{font-weight:600;font-size:var(--fs-body-lg);line-height:var(--lh-heading)}
.field input[type=text],.field input[type=email],.field input[type=url],.field input[type=number],.field textarea,.field select,
.question input[type=text],.question input[type=email],.question input[type=url],.question input[type=number],.question textarea,.question select{
  font:inherit;color:var(--everglade);background:var(--white);border:1px solid var(--everglade);border-radius:var(--radius-sm);padding:10px 12px;min-block-size:44px;inline-size:100%;max-inline-size:100%}
.field textarea,.question textarea{min-block-size:9em;resize:vertical}
.has-error input,.has-error textarea,.has-error select{border-color:var(--danger);border-width:2px}
.field-error{margin:0;color:var(--danger);font-weight:600}
.form-notice.error{border-inline-start-color:var(--danger)}
.form-notice.success{border-inline-start-color:var(--greyish-green)}
.form-actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}
/* WEB-RULE-017: the trap field is out of sight and out of the tab order, but still announced with its label. */

/* Survey pages (WEB-RULE-060, WEB-RULE-074: a standalone page that scrolls normally at any length) */
.survey-page{padding-block:var(--space-7) var(--space-8)}
.survey-page .intro{max-inline-size:60ch}
.survey-form{display:grid;gap:var(--space-6);max-inline-size:48rem;margin-block-start:var(--space-6)}
.question{display:grid;gap:var(--space-3);margin:0;padding:var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--white);min-inline-size:0}
.question legend{padding:0;float:inline-start;inline-size:100%;margin-block-end:var(--space-3)}
.question legend+*{clear:both}
.question .required-mark{color:var(--danger)}
.choices{display:grid;gap:var(--space-2);margin:0;padding:0;list-style:none}
.choice{display:flex;align-items:flex-start;gap:var(--space-3);min-block-size:32px}
.choice input{inline-size:20px;block-size:20px;margin:0;margin-block-start:3px;flex:none;accent-color:var(--everglade)}
.sub-fields{display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}
.sub-fields .field>label{font-size:var(--fs-body-md)}
.required-note{color:var(--text-muted);font-size:var(--fs-body-sm)}
.js .question[data-hidden]{display:none}
