/*
 * WHSS Gesuche - minimale funktionale Styles.
 *
 * Es werden bewusst keine Farben, Schriftarten oder Abstands-Vorgaben
 * gesetzt, die eine Gestaltung über Elementor oder das Theme
 * einschränken würden. Die Regeln hier betreffen ausschliesslich
 * technische Zustände (Fehler, Fokus, Upload) und minimale
 * funktionale Layouts (Checkbox-Gruppen, Laufzeit-Felder, Datei-Liste).
 */

.whss-gesuche-form-wrapper [hidden] {
	display: none;
}

/*
 * Browser setzen auf <fieldset> von sich aus Rand, Innenabstand und einen
 * Rahmen. Da der Rahmen einer Sektion bereits über den Elementor-Stilbereich
 * "Sektion (Abstand & Rahmen)" auf den umschliessenden Wrapper gestylt
 * werden kann, würde dieser Browser-Standard sonst als zusätzlicher,
 * nicht gestaltbarer zweiter Rahmen sichtbar bleiben.
 */
.whss-form-fieldset {
	margin: 0;
	padding: 0;
	border: 0;
}

.whss-checkbox-group {
	display: flex;
	flex-direction: column;
}

.whss-checkbox-group .whss-checkbox-option {
	display: flex;
	align-items: flex-start;
	gap: 0.5em;
}

.whss-daterange {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5em;
}

.whss-field-errors {
	color: #b32d2e;
	list-style: none;
	margin: 0.25em 0 0;
	padding: 0;
}

.whss-form-field.whss-has-error input,
.whss-form-field.whss-has-error select,
.whss-form-field.whss-has-error textarea {
	border-color: #b32d2e;
	outline-color: #b32d2e;
}

.whss-form-notice-error {
	border: 1px solid #b32d2e;
	padding: 0.75em 1em;
}

.whss-form-notice-success {
	border: 1px solid #2e7d32;
	padding: 0.75em 1em;
}

.whss-char-counter {
	font-size: 0.85em;
	text-align: right;
	margin: 0.25em 0 0;
}

.whss-char-counter.whss-char-counter-exceeded {
	color: #b32d2e;
}

.whss-form-field :focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.whss-required {
	color: #b32d2e;
}

.whss-file-list {
	list-style: none;
	margin: 0.5em 0 0;
	padding: 0;
}

.whss-file-rejected {
	color: #b32d2e;
	list-style: none;
	margin: 0.5em 0 0;
	padding: 0;
}

.whss-file-list-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75em;
}

.whss-file-remove {
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
	line-height: 0;
}
