/* BF Kalender-Extras 0.4.0 – Produktseiten-Umbau. Farben, Schrift und Karten wie die Startseite (BF Startseite, Abschnitt „Kundenstimmen“). */
.bfke-rv, .bfke-gv, .bfke-legal {
	--bfke-ink: #272626;
	--bfke-muted: #6b6660;
	--bfke-gold: #fcaf3b;
	--bfke-gold-d: #e39a23;
	--bfke-black: #111110;
	--bfke-line: #e8e0d2;
	--bfke-radius: 14px;
}

/* ---------- 6. „inkl. MwSt. zzgl. Versandkosten“ ---------- */
.bfke-mwst-compact .summary .legal-price-info,
.bfke-mwst-hide .summary .legal-price-info { display: none !important; }
.bfke-legal {
	flex: 0 0 100%;
	order: 2;
	width: 100%;
	margin: 8px 0 0 !important;
	padding: 0 !important;
	font-size: 12px !important;
	line-height: 1.4 !important;
	color: var(--bfke-muted) !important;
}
.bfke-legal a { color: inherit !important; text-decoration: underline; text-underline-offset: 2px; }
/* Einfache Produkte: Zeile direkt unter dem Button, die Trennlinie des Themes (Neve) wandert darunter */
.summary form.cart:not(.variations_form) + .bfke-legal { margin: -6px 0 12px !important; }
.summary form.cart:not(.variations_form):has(+ .bfke-legal) { margin-bottom: 0 !important; padding-bottom: 0 !important; border-bottom: 0 !important; }
.summary form.cart:not(.variations_form):has(+ .bfke-legal) + .bfke-legal { margin: 8px 0 30px !important; padding: 0 0 20px !important; border-bottom: 2px solid var(--bfke-ink); }

/* ---------- 5. Kauf-Button unter Größe und Laufzeit ---------- */
.bfke-cart-after .summary form.variations_form { display: flex !important; flex-direction: column !important; }
.bfke-cart-after .summary form.variations_form .single_variation_wrap { display: contents !important; }
.bfke-cart-after .summary form.variations_form > *,
.bfke-cart-after .summary form.variations_form .single_variation_wrap > * { order: 3; }
.bfke-cart-after .summary form.variations_form > table.variations { order: 1; }
.bfke-cart-after .summary form.variations_form .woocommerce-variation-add-to-cart { order: 2; margin: 6px 0 0 !important; }
.bfke-cart-after .summary form.variations_form .single_variation_wrap > .bfke-legal { order: 2; margin: 8px 0 18px !important; }

/* ---------- 1. Videoblock unter den Produktdetails ---------- */
.bfke-vid-details .summary #bfpv[data-bfke-moved] { margin-top: 22px !important; }
.bfke-vid-hide .summary #bfpv { display: none !important; }

/* ---------- 2. Video in der Produktgalerie ---------- */
.bfke-gv { position: relative; }
.bfke-gv__box { position: relative; width: 100%; overflow: hidden; background: #f4efe6; }
.bfke-gv__poster, .bfke-gv__video {
	position: absolute;
	inset: 0;
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	object-fit: cover;
}
.bfke-gv__video { background: transparent; opacity: 0; transition: opacity .25s ease; }
.bfke-gv.is-playing .bfke-gv__video { opacity: 1; }
.bfke-gv__snd, .bfke-gv__play {
	position: absolute;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: rgba(17, 17, 16, .62) !important;
	color: #fff !important;
	box-shadow: none !important;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}
.bfke-gv__snd { right: 12px; bottom: 12px; width: 40px; height: 40px; min-height: 0 !important; }
.bfke-gv__snd:focus-visible, .bfke-gv__play:focus-visible { outline: 2px solid var(--bfke-gold); outline-offset: 2px; }
.bfke-gv__ico { width: 22px; height: 22px; }
.bfke-gv__ico--on { display: none; }
.bfke-gv.is-sound .bfke-gv__ico--on { display: block; }
.bfke-gv.is-sound .bfke-gv__ico--off { display: none; }
.bfke-gv__play { left: 50%; top: 50%; width: 68px; height: 68px; transform: translate(-50%, -50%); opacity: 0; pointer-events: none; transition: opacity .2s ease; }
.bfke-gv__play span { display: block; width: 0; height: 0; margin-left: 6px; border-style: solid; border-width: 13px 0 13px 21px; border-color: transparent transparent transparent var(--bfke-gold); }
.bfke-gv.is-manual:not(.is-playing) .bfke-gv__play { opacity: 1; pointer-events: auto; }
/* Vorschaubild unten: Abspiel-Zeichen auf dem Video */
.bfke-has-gv .flex-control-thumbs li:nth-child(2) { position: relative; }
.bfke-has-gv .flex-control-thumbs li:nth-child(2) img { aspect-ratio: 1 / 1; height: auto !important; object-fit: cover; }
.bfke-has-gv .flex-control-thumbs li:nth-child(2)::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 30px;
	height: 30px;
	margin: -15px 0 0 -15px;
	border-radius: 50%;
	background: rgba(17, 17, 16, .62) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 7v10l8-5z' fill='%23fcaf3b'/%3E%3C/svg%3E") center / 20px no-repeat;
	pointer-events: none;
}

/* ---------- 4. Bewertungen als eigene Section ---------- */
.bfke-rv {
	clear: both;
	width: 100%;
	margin: 56px 0 24px;
	padding: 0;
	font-family: inherit;
	color: var(--bfke-ink);
}
.bfke-rv__head { text-align: center; max-width: 720px; margin: 0 auto 32px; }
.bfke-rv__eyebrow { margin: 0 0 10px !important; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--bfke-gold-d); }
.bfke-rv__head h2 { margin: 0 !important; font-size: clamp(26px, 3.4vw, 40px) !important; line-height: 1.15 !important; font-weight: 800 !important; letter-spacing: -0.01em; color: var(--bfke-ink); text-wrap: balance; }
.bfke-rv__sum { margin: 12px 0 0 !important; font-size: 15px !important; color: var(--bfke-ink) !important; text-wrap: balance; }
.bfke-rv__stars {
	position: relative;
	display: inline-block;
	font-size: 15px;
	line-height: 1;
	letter-spacing: 2px;
	color: rgba(160, 150, 135, .45);
	vertical-align: -1px;
}
.bfke-rv__stars::before { content: "★★★★★"; }
.bfke-rv__stars > span { position: absolute; inset: 0 auto 0 0; width: var(--bfke-rv-fill, 100%); overflow: hidden; white-space: nowrap; color: var(--bfke-gold); }

.bfke-rv__slider { position: relative; }
.bfke-rv__track {
	display: flex;
	gap: 20px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	margin: -8px -6px -24px;
	padding: 8px 6px 28px;
	scroll-padding-inline: 6px;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
}
.bfke-rv__track::-webkit-scrollbar { display: none; }
.bfke-rv__track:focus-visible { outline: 2px solid var(--bfke-gold-d); outline-offset: 4px; border-radius: var(--bfke-radius); }
.bfke-rv__card {
	flex: 0 0 calc((100% - 40px) / 3);
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0 !important;
	padding: 22px 22px 20px;
	background: #fff;
	border: 1px solid var(--bfke-line);
	border-radius: var(--bfke-radius);
	box-shadow: 0 1px 2px rgba(0, 0, 0, .04), 0 8px 22px rgba(60, 45, 20, .05);
}
.bfke-rv__card blockquote { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; font-size: 16px !important; font-style: normal !important; line-height: 1.55; color: var(--bfke-ink); quotes: none; overflow-wrap: anywhere; }
.bfke-rv__card blockquote::before, .bfke-rv__card blockquote::after { content: none !important; }
.bfke-rv__card figcaption { margin-top: auto; font-size: 14px; color: var(--bfke-ink); }
.bfke-rv__card figcaption span { font-size: 12px; color: var(--bfke-muted); }
.bfke-rv__ed { align-self: flex-start; padding: 2px 9px; border-radius: 999px; background: #f8f3ea; color: #6b5a3a; font-size: 11.5px; font-weight: 700; }
.bfke-rv__nav {
	position: absolute;
	top: 42%;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	min-height: 0 !important;
	padding: 0 0 4px !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: var(--bfke-black) !important;
	color: var(--bfke-gold) !important;
	font-size: 30px !important;
	line-height: 1 !important;
	cursor: pointer;
	box-shadow: 0 6px 18px rgba(0, 0, 0, .22);
	transform: translateY(-50%);
	transition: opacity .2s ease, transform .2s ease;
}
.bfke-rv__nav[hidden] { display: none !important; }
.bfke-rv__nav:hover { transform: translateY(-50%) scale(1.06); }
.bfke-rv__nav:focus-visible { outline: 2px solid var(--bfke-gold); outline-offset: 3px; }
.bfke-rv__nav--prev { left: -22px; }
.bfke-rv__nav--next { right: -22px; }

/* Komplette Liste aufklappbar */
.bfke-rv__all { margin: 30px auto 0; max-width: 820px; }
.bfke-rv__more {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: max-content;
	max-width: 100%;
	min-height: 48px;
	margin: 0 auto;
	padding: 12px 22px;
	border: 1px solid var(--bfke-line);
	border-radius: 10px;
	background: #fff;
	color: var(--bfke-ink);
	font-size: 15px;
	font-weight: 700;
	list-style: none;
	cursor: pointer;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.bfke-rv__more::-webkit-details-marker { display: none; }
.bfke-rv__more::marker { content: ""; }
.bfke-rv__more::after { content: ""; width: 8px; height: 8px; margin: -3px 0 0 4px; border: solid currentColor; border-width: 0 2px 2px 0; transform: rotate(45deg); transition: transform .2s ease; }
.bfke-rv__all[open] > .bfke-rv__more::after { margin-top: 4px; transform: rotate(-135deg); }
.bfke-rv__more:hover, .bfke-rv__more:focus-visible { border-color: var(--bfke-gold); box-shadow: 0 6px 16px rgba(60, 45, 20, .08); outline: none; }
.bfke-rv__list { margin-top: 24px; }
.bfke-rv__list #reviews { max-width: none; }
.bfke-rv__list .woocommerce-Reviews-title { display: none !important; } /* Anzahl steht schon in der Kopfzeile der Section */

@media (min-width: 761px) and (max-width: 1024px) {
	.bfke-rv__card { flex-basis: calc((100% - 20px) / 2); }
}
@media (max-width: 760px) {
	.bfke-rv { margin: 40px 0 16px; }
	.bfke-rv__head { margin-bottom: 22px; }
	/* wie Startseite am Handy: Karten seitlich wischen, die nächste schaut rein */
	.bfke-rv__track { gap: 14px; margin: 0 -16px; padding: 4px 16px 16px; scroll-padding-inline: 16px; scroll-snap-type: x mandatory; }
	.bfke-rv__card { flex: 0 0 84%; scroll-snap-align: center; }
	.bfke-rv__nav { display: none !important; }
	.bfke-rv__all { margin-top: 18px; }
	.bfke-gv__snd { right: 10px; bottom: 10px; width: 38px; height: 38px; }
}
@media (prefers-reduced-motion: reduce) {
	.bfke-rv__track { scroll-behavior: auto; }
	.bfke-gv__video, .bfke-rv__nav { transition: none; }
}
