/* Formulare, Angebots-Dialog und Bewertungen (bigo-forms.php). Gepflegt von der Formular-Arbeitsstrecke; Kontor-Optik in style.css. */
/* ---------- Formulare (bigo-forms.php) ---------- */
.bo-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.bo-form > * { grid-column: 1 / -1; margin: 0; }
.bo-form > .bo-form__field--half { grid-column: auto; }
.bo-form input, .bo-form textarea { width: 100%; }
.bo-form__intro { margin-top: 12px; }
.bo-form__intro h4 { margin: 0 0 4px; font-size: 1.05rem !important; }
.bo-form__intro p { margin: 0; color: var(--bo-muted); font-size: .9rem; line-height: 1.45; }
.bo-form__options { display: grid; gap: 8px; }
.bo-form__option {
	display: flex; align-items: center; gap: 10px;
	padding: 12px 14px;
	border: 1px solid var(--bo-border); border-radius: 10px;
	background: var(--bo-surface);
	cursor: pointer;
}
.bo-form__option:has(input:checked) { border-color: var(--bo-accent); }
.bo-form__option input { accent-color: var(--bo-accent); width: 18px; height: 18px; }
.bo-form__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.bo-form__msg { padding: 10px 14px; border-radius: 10px; background: var(--bo-surface-2); font-size: .95rem; }
.bo-form__msg--error { color: #ff8a8a; }
.bo-form .bo-btn { justify-self: start; margin-top: 8px; cursor: pointer; }
@media (max-width: 540px) { .bo-form > .bo-form__field--half { grid-column: 1 / -1; } }

.bo-dialog {
	width: min(640px, calc(100vw - 32px));
	max-height: calc(100dvh - 32px);
	padding: 28px;
	border: 1px solid var(--bo-border);
	border-radius: 16px;
	background: var(--bo-bg);
	color: var(--bo-text);
}
.bo-dialog::backdrop { background: rgba(0, 0, 0, .65); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.bo-dialog__close { position: sticky; top: 0; height: 0; margin: 0; text-align: right; z-index: 1; }
.bo-dialog__close button {
	width: 36px; height: 36px; margin: -14px -14px 0 0; padding: 0;
	border: 0; border-radius: 50%;
	background: var(--bo-surface-2); color: var(--bo-heading);
	font-size: 1.4rem; line-height: 1; cursor: pointer;
}
.bo-dialog .bo-form__intro:first-of-type { margin-top: 0; padding-right: 32px; }

/* ---------- Bewertungen: CSS-Scroll-Snap statt Swiper ---------- */
.bo-reviews {
	--bo-gap: 16px;
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - (var(--bo-per-view) - 1) * var(--bo-gap)) / var(--bo-per-view));
	gap: var(--bo-gap);
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	padding-bottom: 12px;
	scrollbar-width: thin;
	scrollbar-color: rgba(255, 255, 255, .18) transparent;
}
@media (max-width: 1024px) { .bo-reviews { --bo-per-view: 2 !important; } }
@media (max-width: 640px) { .bo-reviews { grid-auto-columns: 85%; } }
.bo-review {
	display: flex; flex-direction: column; gap: 14px;
	margin: 0; padding: 24px;
	border: 1px solid var(--bo-border); border-radius: var(--bo-radius);
	background: var(--bo-surface);
	scroll-snap-align: start;
}
.bo-review__stars { color: #f5c451; letter-spacing: .1em !important; }
.bo-review blockquote { flex: 1; margin: 0; padding: 0; border: 0; color: var(--bo-text); font-size: .95rem; font-style: normal; }
.bo-review figcaption { display: flex; align-items: center; gap: 10px; color: var(--bo-heading); font-size: .9rem; font-style: normal; }
.bo-review img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
