/* Groene Online Suite — Formulare (seit 1.7.0). Übernimmt Schrift und Farben des Themes. */
.gos-form { --gos-form-gap: 1rem; --gos-form-error: #b3261e; --gos-form-ok: #1a4731; display: block; max-width: 48rem; }
.gos-form-fields { display: flex; flex-wrap: wrap; gap: var(--gos-form-gap); }
.gos-form-field { flex: 1 1 100%; margin: 0; padding: 0; border: 0; min-width: 0; }
.gos-form-field--half { flex: 1 1 calc(50% - var(--gos-form-gap)); min-width: 14rem; }
.gos-form-field > label, .gos-form-field > legend { display: block; font-weight: 600; margin-bottom: .35rem; padding: 0; }
.gos-form-field input[type="text"], .gos-form-field input[type="email"], .gos-form-field input[type="tel"], .gos-form-field input[type="url"], .gos-form-field input[type="number"], .gos-form-field input[type="date"], .gos-form-field select, .gos-form-field textarea { box-sizing: border-box; width: 100%; padding: .6rem .7rem; font: inherit; border: 1px solid currentColor; border-radius: 4px; background: #fff; color: inherit; }
.gos-form-field textarea { min-height: 8rem; resize: vertical; }
.gos-form-field :focus-visible { outline: 3px solid #c8a96e; outline-offset: 2px; }
.gos-form-choice { display: flex; gap: .5rem; align-items: flex-start; margin: .25rem 0; font-weight: 400; }
.gos-form-choice input { margin-top: .3em; flex: 0 0 auto; }
.gos-form-req { color: var(--gos-form-error); }
.gos-form-help { margin: .25rem 0 .35rem; font-size: .9em; opacity: .85; }
.gos-form-error { margin: .35rem 0 0; color: var(--gos-form-error); font-weight: 600; font-size: .95em; }
.gos-form-field--invalid input, .gos-form-field--invalid select, .gos-form-field--invalid textarea { border-color: var(--gos-form-error); border-width: 2px; }
.gos-form-required-note { font-size: .9em; margin: .75rem 0; }
.gos-form-submit { margin-top: .5rem; }
.gos-form-button { cursor: pointer; }
.gos-form-button[disabled] { opacity: .6; cursor: progress; }
.gos-form-status:focus { outline: none; }
.gos-form-success { padding: .8rem 1rem; border-left: 4px solid var(--gos-form-ok); background: rgba(46, 107, 74, .08); }
.gos-form-alert { padding: .8rem 1rem; border-left: 4px solid var(--gos-form-error); background: rgba(179, 38, 30, .07); }
@media (max-width: 600px) { .gos-form-field--half { flex-basis: 100%; } }
