.psf-immo-balance {
	max-width: 520px;
	margin: 0 auto 24px;
	font-size: 1rem;
	line-height: 1.5;
}

.psf-immo-balance--checkout {
	max-width: none;
	margin: 0 0 28px;
}

.psf-immo-balance__intro {
	margin: 0 0 16px;
	color: #5c5348;
}

.psf-immo-balance__card {
	background: #f7f5f2;
	border: 1px solid #e8e2da;
	border-radius: 8px;
	padding: 24px;
}

.psf-immo-balance__title {
	margin: 0 0 16px;
	font-size: 1.35rem;
}

.psf-immo-balance__details {
	margin: 0 0 20px;
}

.psf-immo-balance__row {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 8px 0;
	border-bottom: 1px solid #e8e2da;
}

.psf-immo-balance__row dt {
	margin: 0;
	font-weight: 600;
}

.psf-immo-balance__row dd {
	margin: 0;
	text-align: right;
	white-space: nowrap;
}

.psf-immo-balance__row--paid dd {
	color: #2f5d50;
}

.psf-immo-balance__row--highlight dd {
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--psf-immo-accent, #2f5d50);
}

.psf-immo-balance-total-paid {
	color: #2f5d50;
	font-weight: 600;
}

.psf-immo-balance__hint {
	margin: 0 0 16px;
	color: #5c5348;
}

.psf-immo-balance__submit {
	display: inline-block;
	width: 100%;
	border: 0;
	border-radius: 4px;
	padding: 14px 20px;
	background: var(--psf-immo-accent, #2f5d50);
	color: #fff;
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
}

.psf-immo-balance__submit:hover,
.psf-immo-balance__submit:focus {
	filter: brightness(0.92);
}

.psf-immo-balance__submit:disabled {
	opacity: 0.65;
	cursor: not-allowed;
}

.psf-immo-balance__feedback {
	margin-top: 12px;
}

.psf-immo-balance__feedback.is-error {
	color: #b32d2e;
}

.psf-immo-balance__message {
	padding: 20px;
	border-radius: 8px;
}

.psf-immo-balance__message--success {
	background: #edf7ed;
	border: 1px solid #c6e6c6;
}

.psf-immo-balance__message--error {
	background: #fdf0f0;
	border: 1px solid #f1caca;
}
