/* KGV Vereinsformulare – Grundgerüst.
   Aussehen der Felder, Karte und Knöpfe kommt vom Vereins-Theme.
   Alles hier hat bewusst niedrige Spezifität (:where), damit das Theme gewinnt. */

:where(.kgv-form) {
	--kgv-green: var(--wp--preset--color--wald, #1F4A2C);
	--kgv-moss: var(--wp--preset--color--moos, #E8EFDD);
	--kgv-gray: var(--wp--preset--color--grau, #46534A);
	--kgv-earth: var(--wp--preset--color--erde, #A4561E);
}

/* Bot-Falle: für Menschen unsichtbar */
.kgv-form .kgv-hp {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

:where(.kgv-form) .kgv-required-note {
	margin: 0 0 1.25rem;
	font-size: 1.0625rem;
	color: var(--kgv-gray);
}

:where(.kgv-form) .kgv-required {
	color: var(--kgv-earth-text, var(--kgv-earth));
	font-weight: 700;
}

/* Beschriftungen etwas kleiner als Fließtext */
.kgv-form .kgv-field > label,
.kgv-form fieldset.kgv-field > legend,
.kgv-form .kgv-option,
.kgv-form .kgv-field--datenschutz label {
	font-size: 1.0625rem;
	line-height: 1.4;
}

/* Zwei Felder nebeneinander ab Tablet-Breite */
:where(.kgv-form) .kgv-line {
	display: grid;
	grid-template-columns: 1fr;
	column-gap: 1.25rem;
}

@media (min-width: 640px) {
	:where(.kgv-form) .kgv-line {
		grid-template-columns: 1fr 1fr;
	}
}

:where(.kgv-form) .kgv-line > .kgv-field {
	margin: 0 0 1.15rem;
	min-width: 0;
}

:where(.kgv-form) .kgv-field {
	margin: 0 0 1.15rem;
}

:where(.kgv-form) .kgv-field label,
:where(.kgv-form) .kgv-field legend {
	display: block;
	margin-bottom: 0.4rem;
}

.kgv-form .kgv-field--kurz input,
.kgv-form .kgv-short {
	max-width: 12rem !important;
}

:where(.kgv-form) .kgv-note {
	display: block;
	margin-top: 0.35rem;
	font-size: 1.0625rem;
	line-height: 1.45;
	color: var(--kgv-gray);
}

:where(.kgv-form) .kgv-field-error {
	display: block;
	margin-top: 0.35rem;
	font-size: 1.0625rem;
	font-weight: 600;
	color: var(--kgv-red, #A3261B);
}

:where(.kgv-form) .kgv-field-error[hidden] {
	display: none;
}

/* Mehrfachauswahl */
:where(.kgv-form) fieldset.kgv-field {
	min-width: 0;
}

:where(.kgv-form) .kgv-option {
	display: flex;
	align-items: flex-start;
	gap: 0.55rem;
	margin: 0.35rem 0;
	font-weight: 400;
}

:where(.kgv-form) .kgv-field--datenschutz {
	margin-top: 0.5rem;
}

/* Meldungen */
:where(.kgv-form) .kgv-message {
	margin: 0 0 1.25rem;
	padding: 0.85rem 1.1rem;
	border-radius: 8px;
	border-left: 6px solid var(--kgv-red-fill, var(--kgv-red, #A3261B));
	background: var(--kgv-red-light, #F6D9D4);
	color: var(--kgv-red, #A3261B);
	font-weight: 600;
}

:where(.kgv-form) .kgv-message[hidden] {
	display: none;
}

:where(.kgv-form) .kgv-success {
	padding: 1.25rem 1.4rem;
	border-radius: 8px;
	border-left: 6px solid var(--kgv-green);
	background: var(--kgv-moss);
	outline: none;
}

:where(.kgv-form) .kgv-success > :last-child {
	margin-bottom: 0;
}

:where(.kgv-form) .kgv-success__title {
	margin-top: 0;
	font-weight: 700;
	font-size: 1.15rem;
	color: var(--kgv-green);
}

:where(.kgv-form) .kgv-submit {
	margin: 1.5rem 0 0;
}

:where(.kgv-form) button[aria-busy="true"] {
	opacity: 0.75;
	cursor: progress;
}

/* Ohne Vereins-Theme: einfache, ordentliche Felder */
:where(.kgv-form) :where(input:not([type="checkbox"], [type="radio"], [type="hidden"]), select, textarea) {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	padding: 0.6rem 0.75rem;
	font: inherit;
}

/* Nur für angemeldete Mitglieder: Hinweis statt Formular */
:where(.kgv-form--anmelden) .kgv-form__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.25rem;
	align-items: center;
	margin-top: 1rem;
}
:where(.kgv-form--anmelden) .kgv-form__second {
	color: var(--kgv-green);
	font-weight: 600;
}

/* Hinweis (kein Fehler) */
:where(.kgv-form) .kgv-message--info {
	border-left-color: var(--kgv-green);
	background: var(--kgv-moss);
	color: var(--kgv-green);
	font-weight: 400;
}
:where(.kgv-form) .kgv-message--info a {
	color: inherit;
	font-weight: 700;
}
:where(.kgv-form) .kgv-form__anmelden {
	margin: 0 0 1.25rem;
	color: var(--kgv-gray);
}
:where(.kgv-form) .kgv-field--konto {
	margin: 1rem 0;
	padding: 0.9rem 1rem;
	border: 1px solid var(--kgv-line, var(--wp--preset--color--linie, #D9DFCF));
	border-radius: 8px;
	background: var(--kgv-moss);
}
:where(.kgv-form) .kgv-field--konto label {
	display: flex;
	gap: 0.6rem;
	align-items: flex-start;
	font-weight: 400;
}
:where(.kgv-form) .kgv-field--konto input[type="checkbox"] {
	margin-top: 0.3rem;
	flex: none;
}
:where(.kgv-form) .kgv-field--konto .kgv-note {
	display: block;
	margin: 0.35rem 0 0 1.85rem;
	font-size: var(--wp--preset--font-size--small, 1.0625rem);
	color: var(--kgv-gray);
}
:where(.kgv-form) .kgv-success__konto {
	margin-top: 0.75rem;
}
