.mf-form {
	--mf-field-gap: 1rem;
	--mf-label-color: #333;
	--mf-input-border: #ccc;
	--mf-input-bg: #fff;
	--mf-success: #0f7b3f;
	--mf-error: #b32d2e;
	max-width: 100%;
}

.mf-form__inner {
	display: block;
}

.mf-form__field {
	margin-bottom: var(--mf-field-gap);
}

.mf-form__label {
	display: block;
	margin-bottom: 0.35rem;
	font-weight: 600;
	color: var(--mf-label-color);
}

.mf-form__label--group {
	margin-bottom: 0.5rem;
}

.mf-form__required {
	color: var(--mf-error);
	margin-left: 0.15rem;
}

.mf-form__input {
	display: block;
	width: 100%;
	box-sizing: border-box;
	border: 1px solid var(--mf-input-border);
	background: var(--mf-input-bg);
	padding: 0.65rem 0.75rem;
	line-height: 1.4;
}

.mf-form__input:focus {
	outline: 2px solid rgba(0, 115, 170, 0.35);
	outline-offset: 1px;
}

.mf-form__input.mf-form__input--invalid {
	border-color: var(--mf-error);
}

.mf-form__radio-group {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.mf-form__radio-option {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	cursor: pointer;
}

.mf-form__radio-option input[type="radio"] {
	margin: 0;
}

.mf-form__radio-option--custom {
	flex-wrap: wrap;
}

.mf-form__input--custom-amount {
	width: 140px;
	margin-left: 0.25rem;
}

.mf-form__messages {
	margin: 1rem 0;
}

.mf-form__message {
	padding: 0.75rem 1rem;
	border: 1px solid transparent;
	border-radius: 4px;
}

.mf-form__message--success {
	color: var(--mf-success);
	border-color: var(--mf-success);
	background: rgba(15, 123, 63, 0.08);
}

.mf-form__message--error {
	color: var(--mf-error);
	border-color: var(--mf-error);
	background: rgba(179, 45, 46, 0.08);
}

.mf-form__actions {
	margin-top: 1rem;
}

.mf-form__paypal-button {
	min-height: 45px;
}

.mf-form__loading {
	display: none;
	align-items: center;
	gap: 0.5rem;
	margin-top: 0.75rem;
	color: #555;
}

.mf-form.is-processing .mf-form__loading {
	display: flex;
}

.mf-form__spinner {
	width: 16px;
	height: 16px;
	border: 2px solid #ddd;
	border-top-color: #0073aa;
	border-radius: 50%;
	animation: mf-spin 0.8s linear infinite;
}

.mf-form.is-processing .mf-form__paypal-button {
	opacity: 0.5;
	pointer-events: none;
}

.mf-form.is-success .mf-form__field,
.mf-form.is-success .mf-form__actions {
	display: none;
}

@keyframes mf-spin {
	to {
		transform: rotate(360deg);
	}
}

@media (min-width: 480px) {
	.mf-form__radio-group {
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
	}
}
