/*
 * Funktionale Grundgestaltung der Kern-Formulare. Farben, Schrift und Abstände kommen aus den
 * Kern-Tokens des Themes (--ews-*); das Theme kann alles über die festen Klassen überschreiben.
 */
.ews-form { display: grid; gap: calc(var(--ews-space, 1rem) * 1.25); max-width: 44rem; }
.ews-form__step { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ews-space, 1rem); margin: 0; padding: 0; border: 0; min-width: 0; }
.ews-form__step > legend { padding: 0; margin-bottom: var(--ews-space, 1rem); font-weight: 700; }
.ews-field { grid-column: 1 / -1; display: grid; gap: 0.35rem; margin: 0; padding: 0; border: 0; min-width: 0; }
.ews-field--half { grid-column: span 1; }
@media (max-width: 36rem) { .ews-field--half { grid-column: 1 / -1; } }
.ews-field__label { font-weight: 600; }
.ews-field__required { color: var(--ews-color-error, #A3271F); }
.ews-field__help { margin: 0; font-size: 0.875em; color: var(--ews-color-text-muted, #555); }
.ews-field__error { margin: 0; font-size: 0.875em; font-weight: 600; color: var(--ews-color-error, #A3271F); }
.ews-field input:not([type="checkbox"]):not([type="radio"]), .ews-field select, .ews-field textarea {
  width: 100%; min-height: 2.75rem; padding: 0.5rem 0.75rem; font: inherit; color: var(--ews-color-text, inherit);
  background: var(--ews-color-surface, #fff); border: 1px solid var(--ews-color-border, #ccc); border-radius: var(--ews-radius, 4px);
}
.ews-field textarea { min-height: 9rem; resize: vertical; }
.ews-field--error input, .ews-field--error select, .ews-field--error textarea { border: 2px solid var(--ews-color-error, #A3271F); }
.ews-field :focus-visible, .ews-form button:focus-visible { outline: 2px solid var(--ews-color-focus, #B3541E); outline-offset: 2px; }
.ews-field--checkbox, .ews-field--consent { grid-template-columns: auto 1fr; align-items: start; column-gap: 0.6rem; }
.ews-field--checkbox > :not(input), .ews-field--consent > :not(input) { grid-column: 2; }
.ews-field--checkbox input, .ews-field--consent input, .ews-field__option input { width: 1.25rem; height: 1.25rem; margin: 0.15rem 0 0; }
.ews-field--consent .ews-field__label { font-weight: 400; }
.ews-field__option { display: flex; gap: 0.6rem; align-items: center; min-height: 2rem; }
.ews-form__errors { padding: var(--ews-space, 1rem); border-left: 4px solid var(--ews-color-error, #A3271F); background: var(--ews-color-surface, #fff); }
.ews-form__errors p { margin: 0 0 0.5rem; font-weight: 700; }
.ews-form__errors ul { margin: 0; padding-left: 1.25rem; }
.ews-form__errors a { color: var(--ews-color-error, #A3271F); }
.ews-form--sent { padding: var(--ews-space, 1rem); border-left: 4px solid var(--ews-color-success, #1F6B3A); background: var(--ews-color-surface, #fff); }
.ews-form--sent p { margin: 0; }
.ews-form__progress { display: flex; gap: 0.5rem; list-style: none; margin: 0; padding: 0; counter-reset: step; font-size: 0.875em; }
.ews-form__progress li { flex: 1; padding-top: 0.5rem; border-top: 3px solid var(--ews-color-border, #ccc); color: var(--ews-color-text-muted, #555); }
.ews-form__progress li.is-done, .ews-form__progress li.is-current { border-color: var(--ews-color-accent, #1F5E4B); color: var(--ews-color-text, inherit); }
.ews-form__progress li.is-current { font-weight: 700; }
.ews-form__nav, .ews-form__submit { grid-column: 1 / -1; display: flex; gap: 0.75rem; justify-content: space-between; }
.ews-form__nav[hidden], .ews-form__progress[hidden], .ews-form__step[hidden] { display: none; }
.ews-form button { min-height: 2.75rem; padding: 0.5rem 1.25rem; font: inherit; font-weight: 600; cursor: pointer; border-radius: var(--ews-radius, 4px); }
.ews-form__send, .ews-form__next { color: var(--ews-color-accent-contrast, #fff); background: var(--ews-color-accent, #1F5E4B); border: 1px solid var(--ews-color-accent, #1F5E4B); }
.ews-form__back { color: var(--ews-color-text, inherit); background: transparent; border: 1px solid var(--ews-color-border, #ccc); }
.ews-form__next { margin-left: auto; }
.ews-form--steps.is-enhanced .ews-form__submit { display: none; }
.ews-form--steps.is-enhanced.is-last .ews-form__submit { display: flex; }
/* Lockfeld für Bots: für Menschen unsichtbar, aber nicht display:none */
.ews-hp { position: absolute !important; left: -10000px !important; top: auto !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
