/* Standalone public forms share one reading width and clear section hierarchy. */
.webform-page {
  --form-width: 52rem;
  padding-block: clamp(2rem, 5vw, 4rem) 1rem;
}
.webform-page .page-heading {
  width: min(100% - 2 * var(--gutter), var(--form-width));
  max-width: none;
  padding: 0;
  margin-inline: auto;
}
.webform-page h1 {
  font-size: clamp(2rem, 4vw, 3rem);
  margin: 0 0 1.5rem;
}
.webform-page .webform-submission-form,
.webform-page .webform-confirmation {
  width: min(100% - 2 * var(--gutter), var(--form-width));
  margin: 0 auto;
}
.webform-page .webform-submission-form > .form-item:first-child {
  color: var(--muted);
}
.webform-page fieldset {
  min-width: 0;
  margin: 2rem 0;
  padding: 1.5rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--alternate);
}
.webform-page legend {
  float: left;
  width: 100%;
  max-width: 100%;
  padding: 0;
  margin-bottom: 1.25rem;
  color: var(--primary);
  font-size: 1.25rem;
  font-weight: 750;
  line-height: 1.4;
}
.webform-page .fieldset-wrapper { clear: both; }
.webform-page fieldset fieldset {
  margin: 1.5rem 0 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.webform-page fieldset fieldset legend {
  padding: 0;
  margin-bottom: .75rem;
  font-size: 1rem;
}
.webform-page .form-item { margin-block: 0 1.25rem; }
.webform-page .fieldset-wrapper > :last-child { margin-bottom: 0; }
.webform-page label { font-weight: 650; }
.webform-page input:not([type=checkbox], [type=radio], [type=submit], [type=button]),
.webform-page select,
.webform-page textarea {
  border: 1px solid var(--border);
  border-radius: 7px;
  padding: .75rem;
  min-height: 48px;
}
.webform-page textarea { min-height: 8rem; resize: vertical; }
.webform-page .description { margin-top: .4rem; line-height: 1.5; }
.webform-page .form-checkboxes,
.webform-page .form-radios { display: grid; gap: .65rem; }
.webform-page .form-type-checkbox,
.webform-page .form-type-radio {
  display: grid;
  grid-template-columns: 1.25rem minmax(0, 1fr);
  align-items: start;
  gap: .2rem .75rem;
  padding: .85rem 1rem;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: white;
}
.webform-page .form-checkboxes .form-item,
.webform-page .form-radios .form-item { margin: 0; }
.webform-page input[type=checkbox],
.webform-page input[type=radio] { margin: .2rem 0 0; }
.webform-page .form-type-checkbox label,
.webform-page .form-type-radio label { margin: 0; font-weight: 500; cursor: pointer; }
.webform-page .form-type-checkbox .description,
.webform-page .form-type-radio .description { grid-column: 2; }
.webform-page .form-type-checkbox:has(input:checked),
.webform-page .form-type-radio:has(input:checked) { border-color: var(--secondary); background: var(--accent-soft); }
.webform-page .form-actions { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--border); }
.webform-page .form-actions input { border-radius: 7px; }
.webform-page .webform-multiple-table { width: 100%; border-collapse: separate; border-spacing: 0 1rem; }
.webform-page .webform-multiple-table td { padding: 1rem; vertical-align: top; background: var(--alternate); }
@media (min-width: 40rem) {
  .webform-page .form-checkboxes,
  .webform-page .form-radios { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 39.99rem) {
  .webform-page fieldset { padding: 1rem; }
  .webform-page .form-actions input[type=submit] { width: 100%; white-space: normal; }
  .webform-page .webform-multiple-table td { padding: .5rem; }
}
