/*
 * H.F. Transporte – formular.css (A11Y-AUDIT.md FRM-01/FRM-02)
 * Ergänzt site.css/theme-c.css nur für die Formulare an formular.php (Kontakt, Angebot, Rückruf-Seite
 * und -Dialog): Pflichtfeld-Kennzeichnung, Hinweis „ohne JavaScript“ (:target) und Zielgrößen ≥ 44 px (2.5.5).
 * Wird nach theme-c.css geladen.
 */

/* Pflichtfeld-Kennzeichnung als Text (nicht nur Sternchen) */
.form .form__pflicht { color: inherit; font-weight: 600; }
.form__pflicht-hinweis { margin: 0 0 1.25rem; font-size: .95rem; color: var(--text); }

/* Fehlerliste: Überschrift (formular-hilfe.js) und Hinweis „Eingaben sind noch da“ */
.form-error .form-error__title[role="heading"] { font-size: 1.05rem; font-weight: 700; }
.form-error__note { margin: .35rem 0 0; font-weight: 500; }

/* Ohne JavaScript: formular.php leitet auf …#fehler um → Kasten erscheint per :target.
   Mit JavaScript (site.js setzt html.js) zeigt site.js die ausführliche Fehlerliste – dann bleibt er aus. */
.form-fallback { display: none; }
html:not(.js) .form-fallback:target { display: block; }
.form-fallback p { margin: 0; }
.form-fallback p + p { margin-top: .4rem; font-weight: 500; }
.form-fallback__title { font-weight: 700; }
.form-fallback a { color: inherit; text-decoration: underline; }

/* Zielgrößen mindestens 44 × 44 px (2,75rem bei 16 px) */
.form input[type="text"],
.form input[type="email"],
.form input[type="tel"],
.form input[type="number"],
.form input[type="date"],
.form select { min-height: 2.75rem; }
.form .btn,
.rueckruf-dialog__close { min-height: 2.75rem; min-width: 2.75rem; }
.rueckruf-dialog__close { width: 2.75rem; height: 2.75rem; }

/* Kontrollkästchen: Kästchen 24 px, die Beschriftung (klickbar) mindestens 44 px hoch; Kästchen an der ersten Zeile */
.form .form__field--check { align-items: flex-start; }
.form .form__field--check input { width: 1.5rem; height: 1.5rem; margin: .6rem 0 0; }
.form .form__field--check label { display: block; min-height: 2.75rem; padding: .6rem 0; line-height: 1.5; cursor: pointer; }

/* Links in der Fehlerliste: genug Fläche zum Antippen */
.form-error__list a { display: inline-flex; align-items: center; min-height: 2.75rem; }
.form-error__list li + li { margin-top: 0; }

/* „Bitte prüfen Sie Ihre Angaben“ vor dem Absenden (WCAG 3.3.6, angaben-pruefen.js, 01.10.2026) */
.pruefen { margin: 0 0 1.25rem; padding: 1.25rem 1.25rem 1.1rem; border: 2px solid var(--dark, #1F2937); border-radius: var(--radius, 8px); background: var(--white, #fff); color: var(--text, #1F2937); }
.pruefen:focus { outline: 3px solid var(--focus, #1F2937); outline-offset: 3px; }
.pruefen__titel { margin: 0 0 .4rem; font-size: 1.2rem; line-height: 1.3; }
.pruefen__text { margin: 0 0 1rem; max-width: 70ch; }
.pruefen__gruppe { margin: 1rem 0 .3rem; font-weight: 700; }
.pruefen__liste { margin: 0; padding: 0; }
.pruefen__zeile { display: grid; grid-template-columns: minmax(0, 12rem) minmax(0, 1fr); gap: .25rem 1rem; padding: .45rem 0; border-top: 1px solid var(--line, #D1D5DB); }
.pruefen__zeile dt { font-weight: 600; overflow-wrap: anywhere; }
.pruefen__zeile dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
@media (max-width: 34em) { .pruefen__zeile { grid-template-columns: minmax(0, 1fr); } }
.pruefen__knoepfe { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1rem; }
.pruefen__knoepfe .btn { white-space: normal; text-align: center; }
html[data-palette] .pruefen { background: var(--p-bg) !important; color: var(--p-fg) !important; border-color: var(--p-linie) !important; }
