.bamr-vf-wrapper {
	--bamr-ink: #1c2321;
	--bamr-muted: #5b655f;
	--bamr-line: #d7ddd9;
	--bamr-accent: #FE5252;
	--bamr-accent-text: #C93D3D;
	--bamr-accent-ink: #ffffff;
	--bamr-bg-field: #f6f8f7;
	--bamr-error: #a3312a;
	--bamr-error-bg: #fbeceb;
	--bamr-success-bg: #e8f5ec;
	--bamr-success-text: #1a6b3a;

	max-width: 640px;
	margin: 0 auto 0 0;
	color: var(--bamr-ink);
	font-size: 16px;
	line-height: 1.5;
	text-align: left !important;
}

.bamr-vf-wrapper,
.bamr-vf-wrapper *,
.bamr-vf-form,
.bamr-vf-form * {
	text-align: left !important;
	box-sizing: border-box;
}

/* Ausnahme: Button-Beschriftung soll zentriert bleiben. */
.bamr-vf-wrapper .bamr-vf-submit {
	text-align: center !important;
}

/* Theme-Resets neutralisieren: viele Themes setzen p { padding-bottom: 1em }
   und p:last-of-type { padding-bottom: 0 } – beides stört das Formularlayout. */
.bamr-vf-wrapper p {
	padding: 0;
}

.bamr-vf-wrapper .bamr-vf-intro {
	margin: 0 0 1.75rem !important;
	padding: 0 !important;
	color: var(--bamr-muted);
}

.bamr-vf-field {
	margin-bottom: 1.5rem;
}

.bamr-vf-wrapper .bamr-vf-field > label,
.bamr-vf-wrapper .bamr-vf-field legend {
	display: block;
	font-weight: 600 !important;
	margin-bottom: 0.35rem;
	padding: 0;
}

.bamr-vf-field fieldset {
	border: none;
	padding: 0;
	margin: 0;
}

.bamr-vf-wrapper .bamr-vf-hint {
	margin: 0 0 0.5rem !important;
	padding: 0 !important;
	font-size: 0.875rem;
	color: var(--bamr-muted);
}

.bamr-vf-required {
	color: var(--bamr-error);
}

.bamr-vf-wrapper .bamr-vf-required-note {
	font-size: 0.85rem;
	color: var(--bamr-muted);
	margin: 1.5rem 0 !important;
	padding: 0 !important;
}

.bamr-vf-form input[type="text"],
.bamr-vf-form input[type="email"],
.bamr-vf-form input[type="tel"],
.bamr-vf-form textarea {
	width: 100%;
	padding: 0.75rem 0.9rem;
	border: 1px solid var(--bamr-line);
	border-radius: 6px;
	background: var(--bamr-bg-field);
	font-size: 1rem;
	font-family: inherit;
	color: var(--bamr-ink);
}

.bamr-vf-form textarea {
	resize: vertical;
	min-height: 8rem;
}

.bamr-vf-form input:focus-visible,
.bamr-vf-form textarea:focus-visible {
	outline: 3px solid var(--bamr-accent);
	outline-offset: 1px;
	border-color: var(--bamr-accent);
}

/* Kein verschachtelter Kasten – stattdessen ein ruhiger, abgesetzter Abschnitt.
   Das vermeidet den "Formular im Formular"-Eindruck. */
.bamr-vf-wrapper .bamr-vf-kontaktdaten {
	padding: 1.25rem 0 0.25rem 1.1rem;
	background: none;
	border: none;
	border-left: 3px solid var(--bamr-line);
	border-radius: 0;
	margin-bottom: 2rem;
}

.bamr-vf-wrapper .bamr-vf-kontaktdaten h3 {
	margin: 0 0 0.25rem;
	padding: 0;
	font-size: 1rem;
	font-weight: 600;
}

.bamr-vf-wrapper .bamr-vf-kontaktdaten label {
	display: block;
	font-weight: 500 !important;
	margin: 1rem 0 0.35rem;
	padding: 0;
}

/* Letztes Feld im Abschnitt braucht Abstand nach unten. */
.bamr-vf-wrapper .bamr-vf-kontaktdaten input:last-of-type {
	margin-bottom: 0.5rem;
}

.bamr-vf-radio-group {
	display: flex;
	gap: 1.5rem;
	flex-wrap: wrap;
}

.bamr-vf-wrapper .bamr-vf-radio {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-weight: 400;
	cursor: pointer;
}

.bamr-vf-wrapper .bamr-vf-radio input,
.bamr-vf-wrapper .bamr-vf-checkbox input {
	width: 1.15rem !important;
	height: 1.15rem !important;
	min-width: 1.15rem;
	min-height: 1.15rem;
	flex: 0 0 auto;
	margin: 0 !important;
	padding: 0 !important;
	align-self: center;
	vertical-align: middle !important;
	position: relative;
	top: 0;
	accent-color: var(--bamr-accent);
}

/* Label-Text auf eine definierte Zeilenhöhe bringen, damit die Flex-Zentrierung
   nicht von einer abweichenden Theme-line-height verschoben wird. */
.bamr-vf-wrapper .bamr-vf-checkbox,
.bamr-vf-wrapper .bamr-vf-radio {
	line-height: 1.4 !important;
}

.bamr-vf-wrapper .bamr-vf-checkbox-field {
	background: var(--bamr-bg-field);
	border: 1px solid var(--bamr-line);
	border-radius: 8px;
	padding: 1rem 1.1rem;
}

.bamr-vf-wrapper .bamr-vf-checkbox {
	display: flex !important;
	align-items: center !important;
	gap: 0.65rem;
	font-weight: 400 !important;
	cursor: pointer;
	margin: 0;
	padding: 0;
}

.bamr-vf-wrapper .bamr-vf-checkbox a {
	color: var(--bamr-accent-text);
}

.bamr-vf-honeypot {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.bamr-vf-submit {
	appearance: none;
	border: none;
	background: var(--bamr-accent);
	color: var(--bamr-accent-ink);
	font-size: 1rem;
	font-weight: 600;
	padding: 0.85rem 2rem;
	border-radius: 6px;
	cursor: pointer;
	width: 100%;
}

.bamr-vf-submit:hover {
	background: #E23B3B;
}

.bamr-vf-submit:focus-visible {
	outline: 3px solid var(--bamr-ink);
	outline-offset: 2px;
}

.bamr-vf-submit[disabled] {
	opacity: 0.65;
	cursor: not-allowed;
}

.bamr-vf-messages {
	margin-bottom: 1rem;
}

.bamr-vf-messages:empty {
	display: none;
}

.bamr-vf-message {
	padding: 0.85rem 1rem;
	border-radius: 6px;
	font-size: 0.95rem;
}

.bamr-vf-message--error {
	background: var(--bamr-error-bg);
	color: var(--bamr-error);
}

.bamr-vf-wrapper .bamr-vf-message--success {
	background: var(--bamr-success-bg);
	color: var(--bamr-success-text);
	border-left: 4px solid #2e9e5b;
}

.bamr-vf-recaptcha-field {
	/* Kein eigener Kasten – das reCAPTCHA-Widget bzw. der Hinweis bildet den Kasten. */
	padding: 0;
	background: none;
	border: none;
}

.bamr-vf-wrapper .bamr-vf-recaptcha-notice {
	margin: 0 !important;
	padding: 1rem 1.1rem !important;
	background: var(--bamr-bg-field);
	border: 1px solid var(--bamr-line);
	border-left: 4px solid var(--bamr-accent);
	border-radius: 8px;
	font-size: 0.95rem;
	color: var(--bamr-muted);
}

.bamr-vf-field-error {
	border-color: var(--bamr-error) !important;
}

@media (max-width: 480px) {
	.bamr-vf-radio-group {
		gap: 1rem;
	}

	.bamr-vf-submit {
		padding: 0.9rem 1.5rem;
	}
}

@media (prefers-reduced-motion: no-preference) {
	.bamr-vf-submit,
	.bamr-vf-form input,
	.bamr-vf-form textarea {
		transition: background-color 0.15s ease, border-color 0.15s ease;
	}
}
