/* Kundenbewertungen mit Freigabe – passt sich der Schrift des Themes an, Farbe über die Einstellung „Akzentfarbe“. */
.bmf, .bmf-formular, .bmf-danke {
	--bmf-a: var(--bmf-akzent, #2B3136);
	--bmf-flaeche: color-mix(in srgb, var(--bmf-a) 6%, #fff);
	--bmf-leer: color-mix(in srgb, var(--bmf-a) 18%, #fff);
	--bmf-leise: #6F6F6F;
	--bmf-radius: 22px;
	font-family: inherit;
}
.bmf-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Knöpfe ---------- */
.bmf-knopf {
	display: inline-block; cursor: pointer; font: inherit; font-size: 15px; line-height: 1.2; letter-spacing: .06em; text-transform: uppercase;
	padding: 14px 26px; border-radius: 4px; border: 2px solid var(--bmf-a); background: var(--bmf-a); color: #fff !important; text-decoration: none !important;
	transition: opacity .2s, background .2s, color .2s;
}
.bmf-knopf:hover, .bmf-knopf:focus-visible { opacity: .88; }
.bmf-knopf--hell { background: transparent; color: var(--bmf-a) !important; }
.bmf-knopf--hell:hover, .bmf-knopf--hell:focus-visible { background: var(--bmf-a); color: #fff !important; opacity: 1; }

/* ---------- Sterne (Anzeige) ---------- */
.bmf-sterne { display: inline-flex; gap: 3px; vertical-align: middle; }
.bmf-sterne__stern { position: relative; display: inline-block; width: 20px; height: 20px; }
.bmf-sterne__stern svg { position: absolute; inset: 0; width: 100%; height: 100%; fill: var(--bmf-leer); }
.bmf-sterne__stern .bmf-stern--voll { fill: var(--bmf-a); clip-path: inset(0 calc(100% - var(--bmf-fuellung, 100%)) 0 0); }

/* ---------- Durchschnitt ---------- */
.bmf-schnitt { display: flex; align-items: center; gap: 18px; margin: 0 0 36px; }
.bmf-schnitt__zahl { font-size: 60px; line-height: 1; font-weight: 300; }
.bmf-schnitt__rest { display: flex; flex-direction: column; gap: 6px; }
.bmf-schnitt .bmf-sterne__stern { width: 26px; height: 26px; }
.bmf-schnitt__text { font-size: 14px; letter-spacing: .06em; text-transform: uppercase; color: var(--bmf-leise); }
.bmf--karussell .bmf-schnitt { justify-content: center; }

/* ---------- Karten ---------- */
.bmf-liste { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.bmf-karte { background: var(--bmf-flaeche); border-radius: var(--bmf-radius); padding: 32px 30px 28px !important; margin: 0 !important; display: flex; flex-direction: column; gap: 14px; list-style: none !important; }
.bmf-karte::before { display: none !important; }
.bmf-karte--mehr { display: none; }
.bmf--offen .bmf-karte--mehr { display: flex; }
.bmf-karte__text { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; font-size: 17px; line-height: 1.65; font-style: normal !important; flex: 1; quotes: none; }
.bmf-karte__text::before, .bmf-karte__text::after { display: none !important; }
.bmf-karte__text p { margin: 0 0 .7em; padding: 0; }
.bmf-karte__text p:last-child { margin-bottom: 0; }
.bmf-karte__wer { margin: 0; padding: 0; font-size: 14px; letter-spacing: .05em; text-transform: uppercase; color: var(--bmf-leise); }
.bmf-karte__wer strong { color: inherit; font-weight: 600; }
.bmf-karte__auswahl { display: block; margin-top: 4px; text-transform: none; letter-spacing: 0; }
.bmf-karte__antwort { border-top: 1px solid rgba(0,0,0,.08); padding-top: 14px; font-size: 15px; line-height: 1.6; }
.bmf-karte__antwort p { margin: 0 0 .5em; padding: 0; }
.bmf-karte__antwort-titel { font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--bmf-a); font-weight: 600; }
.bmf-karte:target { box-shadow: 0 0 0 2px var(--bmf-a); scroll-margin-top: 140px; }
.bmf-mehr, .bmf-knoepfe { margin: 36px 0 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }
.bmf--offen .bmf-mehr { display: none; }
.bmf-leer { font-size: 18px; color: var(--bmf-leise); text-align: center; }
.bmf-pruefhinweis { margin: 36px auto 0; padding: 0; max-width: 760px; text-align: center; font-size: 13px; line-height: 1.6; color: var(--bmf-leise); }
.bmf-einladung { text-align: center; max-width: 620px; margin: 0 auto; }
.bmf-einladung .bmf-sterne { gap: 8px; margin-bottom: 18px; }
.bmf-einladung .bmf-sterne__stern { width: 38px; height: 38px; }
.bmf-einladung p { font-size: 18px; line-height: 1.6; padding: 0; margin: 0; }

@media (max-width: 980px) { .bmf-liste { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px) {
	.bmf-liste { grid-template-columns: 1fr; gap: 18px; }
	.bmf-karte { padding: 26px 22px 22px !important; }
	.bmf-schnitt__zahl { font-size: 48px; }
}

/* ---------- Karussell ---------- */
.bmf-karussell { position: relative; padding: 0 64px; }
.bmf-liste--karussell { display: flex !important; gap: 28px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; padding: 6px 2px 10px !important; }
.bmf-liste--karussell::-webkit-scrollbar { display: none; }
.bmf-liste--karussell .bmf-karte { flex: 0 0 calc((100% - 56px) / 3); scroll-snap-align: start; position: relative; transition: transform .25s ease, box-shadow .25s ease; }
.bmf-karte__link { position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.bmf-karte__link:focus-visible { outline: 2px solid var(--bmf-a); outline-offset: 3px; }
.bmf-liste--karussell .bmf-karte:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(0,0,0,.08); }
.bmf-karussell__pfeil {
	position: absolute; top: 50%; transform: translateY(-70%); z-index: 2; width: 48px; height: 48px; border-radius: 50%;
	border: 1px solid color-mix(in srgb, var(--bmf-a) 35%, #fff); background: #fff; color: var(--bmf-a);
	display: flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; transition: background .2s, color .2s;
}
.bmf-karussell__pfeil:hover, .bmf-karussell__pfeil:focus-visible { background: var(--bmf-a); color: #fff; outline: none; }
.bmf-karussell__pfeil--zurueck { left: 0; }
.bmf-karussell__pfeil--zurueck svg { transform: rotate(180deg); }
.bmf-karussell__pfeil--weiter { right: 0; }
.bmf-karussell__punkte { display: flex; justify-content: center; gap: 10px; margin-top: 20px; }
.bmf-karussell__punkte button { width: 9px; height: 9px; padding: 0; border-radius: 50%; border: 0; background: var(--bmf-leer); cursor: pointer; transition: background .2s, transform .2s; }
.bmf-karussell__punkte button[aria-current="true"] { background: var(--bmf-a); transform: scale(1.25); }
.bmf-karussell--statisch { padding: 0; }
.bmf-karussell--statisch .bmf-karussell__pfeil, .bmf-karussell--statisch .bmf-karussell__punkte { display: none; }
.bmf-karussell--statisch .bmf-liste--karussell { justify-content: center; }
@media (max-width: 980px) { .bmf-liste--karussell .bmf-karte { flex-basis: calc((100% - 28px) / 2); } }
@media (max-width: 680px) {
	.bmf-karussell { padding: 0; }
	.bmf-liste--karussell { gap: 16px; }
	.bmf-liste--karussell .bmf-karte { flex-basis: 86%; }
	.bmf-karussell__pfeil { display: none; }
}
@media (prefers-reduced-motion: reduce) { .bmf-liste--karussell { scroll-behavior: auto; } .bmf-liste--karussell .bmf-karte { transition: none; } }

/* ---------- Formular ---------- */
.bmf-formular { max-width: 640px; margin: 0 auto; }
.bmf-honig { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.bmf-feld { margin: 0 0 28px; padding: 0; border: 0; }
.bmf-feld > label, .bmf-feld legend { display: block; margin: 0 0 10px; padding: 0; font-size: 14px; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; }
.bmf-optional { text-transform: none; letter-spacing: 0; font-weight: 400; color: var(--bmf-leise); }
.bmf-formular textarea, .bmf-formular input[type="text"], .bmf-formular select {
	display: block; width: 100%; box-sizing: border-box; font: inherit; font-size: 17px; line-height: 1.5;
	background: #fff; border: 1px solid #CFCBC4; border-radius: 4px; padding: 13px 15px; color: inherit;
}
.bmf-formular textarea { min-height: 170px; resize: vertical; }
.bmf-formular textarea:focus, .bmf-formular input[type="text"]:focus, .bmf-formular select:focus { outline: none; border-color: var(--bmf-a); box-shadow: 0 0 0 3px color-mix(in srgb, var(--bmf-a) 20%, transparent); }
.bmf-hilfe { display: block; margin: 8px 0 0; padding: 0; font-size: 14px; line-height: 1.5; color: var(--bmf-leise); }
.bmf-feld--fehler textarea, .bmf-feld--fehler input[type="text"] { border-color: #B3261E; }
.bmf-feldfehler { display: block; margin-top: 8px; font-size: 14px; color: #B3261E; }

.bmf-sternwahl__sterne { display: inline-flex; flex-direction: row-reverse; gap: 6px; }
.bmf-sternwahl__sterne input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.bmf-sternwahl__sterne label { cursor: pointer; padding: 2px; margin: 0; line-height: 0; border-radius: 6px; }
.bmf-sternwahl__sterne .bmf-stern { width: 48px; height: 48px; fill: var(--bmf-leer); transition: fill .12s, transform .12s; }
.bmf-sternwahl__sterne label:hover .bmf-stern,
.bmf-sternwahl__sterne label:hover ~ label .bmf-stern,
.bmf-sternwahl__sterne input:checked ~ label .bmf-stern { fill: var(--bmf-a); }
.bmf-sternwahl__sterne label:hover .bmf-stern { transform: scale(1.08); }
.bmf-sternwahl__sterne input:focus-visible + label { outline: 2px solid var(--bmf-a); outline-offset: 2px; }
.bmf-sternwahl__text { min-height: 1.5em; margin: 6px 0 0; padding: 0; font-size: 15px; color: var(--bmf-a); }
@media (max-width: 480px) {
	.bmf-sternwahl__sterne { gap: 2px; }
	.bmf-sternwahl__sterne .bmf-stern { width: clamp(34px, 13vw, 48px); height: clamp(34px, 13vw, 48px); }
}

.bmf-zustimmung { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-start; }
.bmf-zustimmung input { flex: 0 0 auto; width: 20px; height: 20px; margin: 3px 0 0; accent-color: var(--bmf-a); }
.bmf-feld.bmf-zustimmung label { flex: 1 1 0; margin: 0; font-size: 14px; line-height: 1.55; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--bmf-leise); }
.bmf-zustimmung .bmf-feldfehler { flex-basis: 100%; margin-top: 0; }
.bmf-zustimmung a { color: var(--bmf-a); }
.bmf-absenden { margin: 0; padding: 0; }
.bmf-absenden .bmf-knopf { width: 100%; }
.bmf-hinweis { margin: 14px 0 0; padding: 0; font-size: 14px; color: var(--bmf-leise); text-align: center; }
.bmf-meldung { border-radius: 12px; padding: 14px 18px; margin: 0 0 26px; }
.bmf-meldung--fehler { background: #FBECEA; color: #8C1D18; }

.bmf-danke { max-width: 640px; margin: 0 auto; background: var(--bmf-flaeche); border-radius: var(--bmf-radius); padding: 42px 38px; text-align: center; }
.bmf-danke__titel { font-size: 24px; font-weight: 600; }
.bmf-danke p { margin: 0 0 1em; padding: 0; }
.bmf-danke a:not(.bmf-knopf) { color: var(--bmf-a); }
@media (max-width: 680px) { .bmf-danke { padding: 32px 22px; } }
