.fb-form-wrapper {
	max-width: 640px;
	margin: 0 auto;
	font-size: 16px;
}

.fb-notice {
	padding: 1em 1.25em;
	border-radius: 6px;
	margin-bottom: 1.5em;
}

.fb-notice-success {
	background: #e7f6ec;
	border: 1px solid #34a853;
	color: #14532d;
}

.fb-notice-error {
	background: #fdeceb;
	border: 1px solid #d93025;
	color: #7f1d1d;
}

.fb-notice-error ul {
	margin: 0.5em 0 0 1.2em;
}

.fb-form fieldset {
	border: 1px solid #dcdcde;
	border-radius: 8px;
	padding: 1em 1.25em;
	margin-bottom: 1.25em;
}

.fb-form legend {
	font-weight: 600;
	padding: 0 0.5em;
}

.fb-honeypot {
	position: absolute;
	left: -9999px;
	top: -9999px;
}

.fb-field {
	margin-bottom: 1em;
}

.fb-field label {
	display: block;
	font-weight: 600;
	margin-bottom: 0.3em;
}

.fb-field input[type="text"],
.fb-field input[type="email"],
.fb-field input[type="number"],
.fb-field input[type="date"] {
	width: 100%;
	padding: 0.6em 0.7em;
	border: 1px solid #c3c4c7;
	border-radius: 6px;
	box-sizing: border-box;
}

.fb-radio,
.fb-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 0.6em;
	font-weight: 400;
	margin: 0.6em 0;
	cursor: pointer;
	line-height: 1.4;
}

.fb-r-input,
.fb-cb-input {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}

.fb-r-box {
	width: 20px;
	height: 20px;
	min-width: 20px;
	border: 1.5px solid #8c8f94;
	border-radius: 50%;
	background: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: border-color 0.15s ease;
	margin-top: 1px;
}

.fb-r-box::after {
	content: "";
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #2271b1;
	transform: scale(0);
	transition: transform 0.15s ease;
}

.fb-r-input:checked + .fb-r-box {
	border-color: #2271b1;
}

.fb-r-input:checked + .fb-r-box::after {
	transform: scale(1);
}

.fb-cb-box {
	width: 20px;
	height: 20px;
	min-width: 20px;
	border: 1.5px solid #8c8f94;
	border-radius: 5px;
	background: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background 0.15s ease, border-color 0.15s ease;
	margin-top: 1px;
}

.fb-cb-check {
	width: 11px;
	height: 6px;
	border-left: 2px solid #fff;
	border-bottom: 2px solid #fff;
	transform: rotate(-45deg) scale(0.4);
	opacity: 0;
	transition: transform 0.15s ease, opacity 0.15s ease;
	margin-top: -2px;
}

.fb-cb-input:checked + .fb-cb-box {
	background: #2271b1;
	border-color: #2271b1;
}

.fb-cb-input:checked + .fb-cb-box .fb-cb-check {
	opacity: 1;
	transform: rotate(-45deg) scale(1);
}

.fb-r-input:focus-visible + .fb-r-box,
.fb-cb-input:focus-visible + .fb-cb-box {
	outline: 2px solid #2271b1;
	outline-offset: 2px;
}

.fb-amount {
	position: relative;
}

.fb-amount input {
	padding-right: 2.4em;
}

.fb-amount-suffix {
	position: absolute;
	right: 12px;
	top: 50%;
	transform: translateY(-50%) scale(0.4) rotate(-15deg);
	opacity: 0;
	color: #2271b1;
	font-weight: 600;
	pointer-events: none;
	transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.3s ease;
}

.fb-amount-suffix.fb-amount-suffix-visible {
	opacity: 1;
	transform: translateY(-50%) scale(1) rotate(0deg);
}

.fb-sepa-block {
	background: #f6f7f7;
}

.fb-sepa-text {
	font-size: 0.9em;
	background: #fff;
	border: 1px dashed #c3c4c7;
	padding: 0.75em 1em;
	border-radius: 6px;
	line-height: 1.5;
}

.fb-sepa-note {
	font-size: 0.85em;
	color: #50575e;
}

.fb-checkbox-sepa {
	font-weight: 600;
}

.fb-submit {
	background: #2271b1;
	color: #fff;
	border: none;
	padding: 0.8em 1.6em;
	border-radius: 6px;
	font-size: 1em;
	cursor: pointer;
}

.fb-submit:hover {
	background: #135e96;
}

.fb-field-mitglied,
.fb-field-spende {
	display: block;
}

.fb-form-wrapper.fb-typ-mitglied .fb-field-spende,
.fb-form-wrapper.fb-typ-spende .fb-field-mitglied {
	display: none;
}

.fb-sepa-block {
	display: block;
}

.fb-form-wrapper.fb-spende-einmalig .fb-sepa-block {
	display: none;
}

.fb-sepa-block.fb-sepa-optional-hidden {
	display: none;
}
