/*
 * Grüne Anmeldungen — Formular-Basisstyles.
 * Bewusst neutral (keine Kampagnenfarben); erbt Schrift und Farben vom Theme.
 * Kontraste nach WCAG AA, Grundschrift mind. 16px, sichtbarer Fokus.
 */

.gruene-anmeldungen {
	font-size: max(1em, 16px);
	max-width: 34rem;
}

.gruene-anmeldungen__form {
	margin: 0;
}

.gruene-anmeldungen__field {
	margin: 0 0 1rem;
}

.gruene-anmeldungen__field label {
	display: block;
	font-weight: 600;
	margin-bottom: 0.25rem;
}

.gruene-anmeldungen__field input[type="text"],
.gruene-anmeldungen__field input[type="email"],
.gruene-anmeldungen__field select,
.gruene-anmeldungen__field textarea {
	display: block;
	width: 100%;
	box-sizing: border-box;
	font: inherit;
	padding: 0.6rem 0.75rem;
	border: 2px solid #595959; /* 7:1 auf Weiß */
	border-radius: 4px;
	background: #fff;
	color: #1a1a1a;
}

.gruene-anmeldungen__field select {
	width: auto;
	min-width: 6rem;
}

.gruene-anmeldungen__field input:focus,
.gruene-anmeldungen__field select:focus,
.gruene-anmeldungen__field textarea:focus,
.gruene-anmeldungen__submit button:focus {
	outline: 3px solid currentColor;
	outline-offset: 2px;
}

.gruene-anmeldungen__optional {
	font-weight: 400;
}

.gruene-anmeldungen__required {
	font-weight: 700;
}

/* Checkboxen: Label neben der Box, große Klickfläche */
.gruene-anmeldungen__field--checkbox {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.5rem 0.6rem;
	align-items: start;
}

.gruene-anmeldungen__field--checkbox input[type="checkbox"] {
	width: 1.4rem;
	height: 1.4rem;
	margin-top: 0.15rem;
}

.gruene-anmeldungen__field--checkbox label {
	display: inline;
	font-weight: 400;
	margin: 0;
}

.gruene-anmeldungen__field--checkbox .gruene-anmeldungen__field-error {
	grid-column: 1 / -1;
}

.gruene-anmeldungen__consents {
	border: 1px solid #767676;
	border-radius: 4px;
	padding: 1rem;
	margin: 0 0 1rem;
}

.gruene-anmeldungen__consents legend {
	font-weight: 600;
	padding: 0 0.35rem;
}

/* Hinweise und Statusmeldungen: Rahmen + Text, keine reine Farbcodierung */
.gruene-anmeldungen__notice {
	border: 2px solid #595959;
	border-left-width: 6px;
	border-radius: 4px;
	padding: 0.75rem 1rem;
	margin: 0 0 1rem;
}

.gruene-anmeldungen__notice--success {
	border-color: #1e5e1e;
}

.gruene-anmeldungen__errors {
	border: 2px solid #a01818;
	border-left-width: 6px;
	border-radius: 4px;
	padding: 0.75rem 1rem;
	margin: 0 0 1rem;
	color: #a01818;
}

.gruene-anmeldungen__errors ul {
	margin: 0.25rem 0 0 1.25rem;
	padding: 0;
}

.gruene-anmeldungen__field-error {
	display: block;
	color: #a01818;
	font-weight: 600;
	margin-bottom: 0.25rem;
}

.gruene-anmeldungen__field-error::before {
	content: "⚠ ";
}

.gruene-anmeldungen__submit button {
	font: inherit;
	font-weight: 700;
	padding: 0.8rem 1.6rem;
	min-height: 44px;
	border: 2px solid currentColor;
	border-radius: 4px;
	cursor: pointer;
}

/* Honeypot: per CSS aus dem Sichtfeld, nicht display:none und kein type=hidden */
.gruene-anmeldungen__hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Storno-Rückfrage aus dem Mail-Link */
.gruene-anmeldungen__cancel {
	border: 2px solid #595959;
	border-left-width: 6px;
	border-radius: 4px;
	padding: 1rem;
}

.gruene-anmeldungen__cancel-question {
	margin: 0 0 0.5rem;
}

.gruene-anmeldungen__cancel-summary {
	margin: 0 0 1rem;
}

.gruene-anmeldungen__cancel-abort {
	display: inline-block;
	margin-left: 0.75rem;
	min-height: 44px;
	line-height: 44px;
}

/* Friendly Captcha: Abstand und Breite an das Formular angleichen */
.gruene-anmeldungen__captcha {
	margin: 0 0 1rem;
}

.gruene-anmeldungen__captcha .frc-captcha {
	max-width: 100%;
	border-color: #595959;
}
