.formbody {
  display: flex;
  flex-wrap: wrap;
  --gap-x: var(--row-gap-x);
  --gap-y: var(--row-gap-y);
  gap: var(--gap-y) var(--gap-x);
}
:where(.formbody) > * {
  flex: 0 1 100%;
  min-width: 0;
}
.formbody > .widget {
  margin: 0;
}
@media (max-width: 992px) {
  form:not(.no-stack) .formbody > .col-1-3,
  form:not(.no-stack) .formbody > .col-2-3,
  form:not(.no-stack) .formbody > .col-3-4,
  form:not(.no-stack) .formbody > .col-3-5,
  form:not(.no-stack) .formbody > .col-2-5,
  form:not(.no-stack) .formbody > .col-30,
  form:not(.no-stack) .formbody > .col-20 {
    flex-basis: 100%;
  }
  form:not(.no-stack) .formbody > .col-1-4 {
    flex-basis: calc(50% - var(--gap-x, 0px) * 0.5);
  }
}
@media (max-width: 600px) {
  form:not(.no-stack) .formbody > .col-1-2,
  form:not(.no-stack) .formbody > .col-1-4 {
    flex-basis: 100%;
  }
}
.formbody label {
  display: block;
}
.formbody input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.formbody select,
.formbody textarea {
  width: 100%;
  max-width: 100%;
}
.formbody textarea {
  display: block;
  resize: vertical;
}
.formbody .checkbox_container label,
.formbody .radio_container label {
  display: inline-block;
}
.formbody input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.formbody select,
.formbody textarea {
  padding: 14px 20px;
  border: 1px solid var(--stroke);
  border-radius: 10px;
  background-color: var(--white);
  color: var(--text);
  font: inherit;
}
.formbody input:focus-visible,
.formbody select:focus-visible,
.formbody textarea:focus-visible {
  outline: 2px solid var(--prime);
  outline-offset: 2px;
  border-color: var(--prime);
}
.formbody label {
  margin-bottom: var(--space-8);
  font-size: 0.875em;
}
.formbody span.mandatory {
  color: var(--second);
}
.formbody ::placeholder {
  color: var(--grey-dark);
  opacity: 1;
}
.formbody p.error,
.formbody .widget .error {
  color: var(--second);
  font-size: 0.875em;
}
.formbody .widget.error input,
.formbody .widget.error select,
.formbody .widget.error textarea {
  border-color: var(--second);
}
.formbody .widget-submit button {
  margin-bottom: 0;
}
.checkbox_container > span { display: flex; align-items: flex-start; gap: 10px; }
.checkbox_container > span input { flex: none; margin-top: 0.25em; }
