@use "../abstracts/" as *;
// vertical rhythm between the form widgets - the first two children of .formbody are "hidden" fields, so the first visible widget (which is the third child) gets a margin-top applied which has to be removed
padding: $formbody-padding;
background-color: $formbody-background-color;
> *:where(:not(:nth-child(3))) {
margin-block-start: $form-space;
//--------------------------
// 02 input, select, textarea + label
margin-block-end: 0.375rem;
font-family: $form-label-font-family;
font-weight: $form-label-font-weight;
font-size: $form-label-font-size;
color: $form-label-color;
// if it should match the formbody-legend:
font-family: $form-legend-font-family;
font-weight: $form-legend-font-weight;
font-size: $form-legend-font-size;
color: $form-legend-color;
padding-block: $form-input-padding-block;
padding-inline: $form-input-padding-inline;
background-color: $form-input-background-color;
border: $form-input-border-default;
border-radius: $form-input-border-radius;
font-family: $form-input-font-family;
font-weight: $form-input-font-weight;
font-size: $form-input-font-size;
color: $form-input-color;
// in einem widget-wrapper soll das select-feld 100% breit sein
[placeholder="placeholder"] {
font-family: $form-placeholder-font-family;
font-weight: $form-placeholder-font-weight;
font-size: $form-placeholder-font-size;
color: $form-placeholder-color;
//--------------------------
// basic styling - remove browser styles
padding: $form-fieldset-styled-padding;
border: $form-fieldset-styled-border;
border-radius: $form-fieldset-styled-border-radius;
margin-block-end: 0.5rem;
padding-inline: $form-fieldset-legend-padding;
font-family: $form-legend-font-family;
font-weight: $form-legend-font-weight;
font-size: $form-legend-font-size;
color: $form-legend-color;
// vertical rhythm between fieldsets and checkboxes/radio-buttons
> *:not(:first-of-type) {
margin-block-start: var(--paragraph-space, $paragraph-space);
//--------------------------
// 04 spam-protection (normally hidden)
//--------------------------
//--------------------------
// Abstände im widget-explanation
> *:where(:not(:first-child)) {
margin-top: var(--paragraph-space, $paragraph-space);
// mehrere widgets pro Zeile
@media (width > $tweakpoint-30) {
justify-content: space-between;
width: 100%; // distribute the flex-items evenly
@media (width < calc($tweakpoint-30 - 0.0625em)) {
//--------------------------
// align checkboxes and radio buttons horizontally with their Label
// when the label has more lines, the second line should not run under the input
//--------------------------
// align radio buttons and checkboxes vertically with their legend
// except for * mandatory which should be inline with the label
// except for single checkboxes
.formbody span:not(.mandatory){
//--------------------------
// align checkbox with more text
// .content-text from {{insert_content::xx}}, class .checkbox-mandatory-agb
.checkbox-mandatory-agb span:not(.mandatory) {
// reset margin-block-start
margin-block-start: -0.0625em;
margin-block-start: 0.375em;
//--------------------------
// Bestätigung nach Ajax-Versand
background-color: $color-neutral-100;
border-inline-start: 3px solid $color-primary-400;
margin-block-end: 0.75em;
margin-block-end: $paragraph-space;
//--------------------------