/* =========================================================================
   Büffelhof – Theme-Stile
   Hell, grün, ländlich. Farben und Schriften kommen aus theme.json.
   ========================================================================= */

:root {
	--bh-radius: var(--wp--custom--radius, 20px);
	--bh-schatten: var(--wp--custom--schatten);
	--bh-dunkel: var(--wp--preset--color--dunkel);
	--bh-text: var(--wp--preset--color--text);
	--bh-gruen-d: var(--wp--preset--color--gruen-dunkel);
	--bh-gruen: var(--wp--preset--color--gruen);
	--bh-gruen-h: var(--wp--preset--color--gruen-hell);
	--bh-wiese: var(--wp--preset--color--wiese);
	--bh-himmel: var(--wp--preset--color--himmel);
	--bh-gelb: var(--wp--preset--color--gelb);
	--bh-creme: var(--wp--preset--color--creme);
	--bh-weiss: var(--wp--preset--color--weiss);

	/* Hügel: hinten hellgrün, vorne Seitenhintergrund */
	--bh-huegel: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 110' preserveAspectRatio='none'%3E%3Cpath d='M0 110V58C180 22 380 8 600 30s420 52 620 36c90-7 160-18 220-28v72z' fill='%238CC63F' fill-opacity='.55'/%3E%3Cpath d='M0 110V80c160-26 330-40 520-28 230 15 380 46 600 40 120-3 220-16 320-30v48z' fill='%23FFFEF8'/%3E%3C/svg%3E");
	/* Margerite für Kicker */
	--bh-blume: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='%23fff' stroke='%238CC63F' stroke-width='1.3'%3E%3Cellipse cx='12' cy='5.2' rx='2.6' ry='4.2'/%3E%3Cellipse cx='12' cy='5.2' rx='2.6' ry='4.2' transform='rotate(60 12 12)'/%3E%3Cellipse cx='12' cy='5.2' rx='2.6' ry='4.2' transform='rotate(120 12 12)'/%3E%3Cellipse cx='12' cy='5.2' rx='2.6' ry='4.2' transform='rotate(180 12 12)'/%3E%3Cellipse cx='12' cy='5.2' rx='2.6' ry='4.2' transform='rotate(240 12 12)'/%3E%3Cellipse cx='12' cy='5.2' rx='2.6' ry='4.2' transform='rotate(300 12 12)'/%3E%3C/g%3E%3Ccircle cx='12' cy='12' r='3.4' fill='%23F5C542'/%3E%3C/svg%3E");
}

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: var(--bh-gruen-h); color: var(--bh-dunkel); }

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 3px solid var(--bh-gruen-d);
	outline-offset: 2px;
	box-shadow: 0 0 0 6px var(--bh-gelb);
	border-radius: 4px;
}

img { height: auto; }
p { text-wrap: pretty; }
h1, h2, h3 { text-wrap: balance; }

/* ---------- Kopf ---------- */
header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 50;
}
.admin-bar header.wp-block-template-part { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar header.wp-block-template-part { top: 0; } }
.bh-kopf {
	position: relative;
	background: var(--bh-weiss);
	box-shadow: 0 1px 0 rgba(30, 51, 38, .08), 0 6px 18px -14px rgba(30, 51, 38, .35);
	padding-top: .55rem;
	padding-bottom: .55rem;
}
.bh-kopf__innen { gap: 1.5rem; }
.bh-logo img { max-height: 78px; width: auto; }
@media (max-width: 600px) { .bh-logo img { max-height: 56px; } }
.bh-markenname { display: flex; flex-direction: column; text-decoration: none; color: var(--bh-dunkel); line-height: 1.1; }
.bh-markenname__name { font-family: var(--wp--preset--font-family--titel); font-size: 1.35rem; font-weight: 800; color: var(--bh-gruen-d); }
.bh-markenname__claim { font-size: .85rem; color: var(--bh-text); }

/* Hauptmenü: Desktop als Zeile, Handy mit Hamburger */
.bh-nav__liste { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; flex-wrap: wrap; gap: .35rem 1.5rem; }
.bh-nav__punkt a { display: block; text-decoration: none; color: var(--bh-dunkel); font-weight: 600; font-size: 1.0625rem; padding: .35rem 0; }
.bh-nav__punkt a:hover,
.bh-nav__punkt.ist-aktiv a { color: var(--bh-gruen); text-decoration: underline; text-underline-offset: .4em; text-decoration-thickness: 3px; text-decoration-color: var(--bh-gruen-h); }
.bh-nav__punkt--shop a,
.bh-nav__punkt--shop a:hover {
	background: var(--bh-gruen);
	color: var(--bh-weiss);
	padding: .55rem 1.2rem;
	border-radius: 999px;
	text-decoration: none;
}
.bh-nav__punkt--shop a:hover { background: var(--bh-gruen-d); color: var(--bh-weiss); }
.bh-nav__punkt--shop a::after { content: " ↗"; font-size: .85em; }
.bh-nav__knopf { display: none; }

@media (max-width: 900px) {
	.bh-nav.ist-bereit .bh-nav__knopf {
		display: inline-flex;
		align-items: center;
		gap: .6rem;
		font: inherit;
		font-weight: 700;
		color: var(--bh-gruen-d);
		background: var(--bh-wiese);
		border: 0;
		border-radius: 999px;
		padding: .6rem 1rem .6rem .85rem;
		cursor: pointer;
		min-height: 44px;
	}
	.bh-nav__striche { position: relative; width: 1.35rem; height: 1rem; display: inline-block; }
	.bh-nav__striche span {
		position: absolute;
		left: 0;
		width: 100%;
		height: 2.5px;
		border-radius: 2px;
		background: currentColor;
		transition: transform .2s ease, opacity .2s ease, top .2s ease;
	}
	.bh-nav__striche span:nth-child(1) { top: 0; }
	.bh-nav__striche span:nth-child(2) { top: calc(50% - 1.25px); }
	.bh-nav__striche span:nth-child(3) { top: calc(100% - 2.5px); }
	.bh-nav.ist-offen .bh-nav__striche span:nth-child(1) { top: calc(50% - 1.25px); transform: rotate(45deg); }
	.bh-nav.ist-offen .bh-nav__striche span:nth-child(2) { opacity: 0; }
	.bh-nav.ist-offen .bh-nav__striche span:nth-child(3) { top: calc(50% - 1.25px); transform: rotate(-45deg); }

	/* Klappmenü unter der Kopfzeile, volle Breite */
	.bh-nav.ist-bereit .bh-nav__liste {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		background: var(--bh-weiss);
		padding: .5rem clamp(1rem, 4vw, 2rem) 1.5rem;
		box-shadow: 0 18px 30px -18px rgba(30, 51, 38, .45);
		border-top: 1px solid var(--bh-wiese);
		max-height: calc(100dvh - 7rem);
		overflow-y: auto;
	}
	.bh-nav.ist-offen .bh-nav__liste { display: flex; }
	.bh-nav.ist-bereit .bh-nav__punkt a { font-size: 1.25rem; padding: .85rem .25rem; border-bottom: 1px solid var(--bh-wiese); }
	.bh-nav.ist-bereit .bh-nav__punkt--shop a { margin-top: 1rem; text-align: center; border-bottom: 0; padding: .85rem 1.2rem; }
	.bh-nav.ist-bereit .bh-nav__punkt.ist-aktiv a { text-decoration: none; color: var(--bh-gruen); box-shadow: inset 4px 0 0 var(--bh-gruen-h); padding-left: .9rem; }
	/* ohne JavaScript: Menü umbrechen statt verstecken */
	.bh-nav:not(.ist-bereit) .bh-nav__liste { justify-content: flex-end; gap: .25rem 1rem; }
	.bh-kopf__innen { flex-wrap: nowrap; }
}
@media (max-width: 900px) and (prefers-reduced-motion: reduce) {
	.bh-nav__striche span { transition: none; }
}

/* ---------- Hauptbereich ---------- */
.bh-haupt { padding-bottom: var(--wp--preset--spacing--60); }
.bh-haupt--start { padding-bottom: 0; }
.bh-inhalt > * + * { margin-block-start: 1.25rem; }
.bh-inhalt > .alignfull { margin-block-start: 0; }
.bh-inhalt h2 { margin-top: 2.25rem; }

/* ---------- Seitenkopf: Titel, Lead, Titelbild ---------- */
.bh-seitenkopf {
	position: relative;
	padding-top: var(--wp--preset--spacing--50);
	padding-bottom: calc(var(--wp--preset--spacing--50) + 2.5rem);
	margin-bottom: var(--wp--preset--spacing--30);
	background: linear-gradient(180deg, var(--bh-himmel) 0%, var(--bh-wiese) 100%);
}
.bh-seitenkopf::after,
.bh-buehne::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: -1px;
	height: clamp(34px, 6vw, 90px);
	background: var(--bh-huegel) center bottom / 100% 100% no-repeat;
	pointer-events: none;
	z-index: 1;
}
.bh-seitenkopf__innen { max-width: 46rem; margin-inline: auto !important; position: relative; z-index: 2; }
.bh-seitenkopf__innen:has(.bh-seitenkopf__bild) {
	max-width: 75rem;
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
	gap: clamp(1.5rem, 4vw, 3.5rem);
	align-items: center;
}
.bh-seitenkopf__innen > * { margin: 0 !important; }
.bh-seitenkopf__titel { margin: 0; color: var(--bh-gruen-d); }
.bh-seitenkopf__titel::after {
	content: "";
	display: block;
	width: 4rem;
	height: 5px;
	border-radius: 3px;
	background: var(--bh-gruen-h);
	margin-top: 1rem;
}
.bh-seitenkopf__lead { font-size: var(--wp--preset--font-size--gross); color: var(--bh-dunkel); margin-top: 1rem; line-height: 1.5; }
.bh-seitenkopf__lead p { margin: 0; }
.bh-seitenkopf__lead .wp-block-post-excerpt__more-text { display: none; }
.bh-seitenkopf__bild img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 28px;
	box-shadow: var(--bh-schatten);
	border: 6px solid var(--bh-weiss);
}
@media (max-width: 781px) {
	.bh-seitenkopf__innen:has(.bh-seitenkopf__bild) { grid-template-columns: 1fr; }
	.bh-seitenkopf__bild img { aspect-ratio: 16 / 10; }
}

/* ---------- Bühne (Startseite) ---------- */
.bh-buehne {
	position: relative;
	min-height: min(80vh, 680px);
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-top: var(--wp--preset--spacing--60) !important;
	padding-bottom: calc(var(--wp--preset--spacing--60) + 3rem) !important;
	background-color: var(--bh-himmel);
	background-size: cover;
	background-position: 50% 35%;
}
.bh-buehne > * { width: 100%; position: relative; z-index: 2; }
.bh-buehne__karte {
	max-width: 37rem;
	background: rgba(255, 255, 255, .93);
	border-radius: 28px;
	padding: clamp(1.5rem, 4vw, 2.75rem) !important;
	box-shadow: 0 20px 50px -20px rgba(30, 51, 38, .45);
	margin-left: 0 !important;
}
.bh-buehne__karte > :first-child { margin-top: 0; }
.bh-buehne__kicker {
	display: flex;
	align-items: center;
	gap: .5rem;
	font-family: var(--wp--preset--font-family--titel);
	font-weight: 800;
	font-size: 1.05rem;
	color: var(--bh-gruen) !important;
	margin-bottom: .25rem !important;
}
.bh-buehne__kicker::before { content: ""; width: 1.5rem; height: 1.5rem; background: var(--bh-blume) center / contain no-repeat; flex: none; }
.bh-buehne h1 { color: var(--bh-gruen-d); font-size: var(--wp--preset--font-size--titel-xl); margin-block: .2em .35em; line-height: 1.05; }
.bh-buehne__karte p:not(.bh-buehne__kicker) { font-size: var(--wp--preset--font-size--gross); color: var(--bh-dunkel); line-height: 1.5; }
.bh-buehne .wp-block-buttons { margin-top: 1.5rem; }
@media (max-width: 640px) {
	.bh-buehne { min-height: 0; padding-top: 9rem !important; background-position: 30% 0; background-size: auto 22rem; background-repeat: no-repeat; }
	.bh-buehne__karte { background: var(--bh-weiss); }
}

/* ---------- Abschnitte ---------- */
.bh-abschnitt { padding-block: var(--wp--preset--spacing--50); }
.bh-abschnitt--wiese { background: var(--bh-wiese); }
.bh-abschnitt--himmel { background: linear-gradient(180deg, var(--bh-himmel), var(--bh-wiese)); }
.bh-abschnitt--gruen { background: var(--bh-gruen); color: var(--bh-weiss); }
.bh-abschnitt--gruen :where(h2, h3) { color: var(--bh-weiss); }
.bh-abschnitt--gruen a:not(.bh-knopf) { color: var(--bh-weiss); text-decoration-color: var(--bh-gelb); text-decoration-thickness: 2px; }
.bh-mitte { align-items: center !important; }

.bh-kicker {
	display: flex;
	align-items: center;
	gap: .45rem;
	font-family: var(--wp--preset--font-family--titel);
	font-weight: 800;
	font-size: 1rem !important;
	color: var(--bh-gruen) !important;
	margin-bottom: .25rem !important;
}
.bh-kicker::before { content: ""; width: 1.35rem; height: 1.35rem; background: var(--bh-blume) center / contain no-repeat; flex: none; }
.bh-abschnitt--gruen .bh-kicker { color: var(--bh-gelb) !important; }

/* ---------- Knöpfe ---------- */
.bh-knopf,
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	border-radius: 999px;
	font-weight: 700;
	text-decoration: none;
	transition: background-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
.bh-knopf {
	background: var(--bh-gruen);
	color: var(--bh-weiss) !important;
	padding: .8rem 1.5rem;
	border: 0;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
	line-height: 1.2;
}
.bh-knopf:hover { background: var(--bh-gruen-d); }
.bh-knopf:active, .wp-block-button__link:active { transform: translateY(1px); }
.bh-knopf[disabled] { opacity: .65; cursor: progress; }
.bh-knopf--hell,
.is-style-outline .wp-block-button__link {
	background: transparent !important;
	color: var(--bh-gruen-d) !important;
	box-shadow: inset 0 0 0 2px currentColor;
}
.bh-knopf--hell:hover, .is-style-outline .wp-block-button__link:hover { background: var(--bh-wiese) !important; }
.bh-shop-link .wp-block-button__link::after { content: "↗"; font-size: .9em; }


/* ---------- Fleischverkauf ---------- */
.bh-termine__liste { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
.bh-termin {
	display: grid;
	grid-template-columns: auto 1fr;
	column-gap: 1rem;
	align-items: center;
	background: var(--bh-weiss);
	border-radius: var(--bh-radius);
	padding: 1rem 1.25rem;
	box-shadow: var(--bh-schatten);
	border: 1px solid rgba(140, 198, 63, .35);
}
.bh-termin::before {
	content: "";
	grid-row: span 2;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	background: var(--bh-wiese) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232E7D32' stroke-width='2' stroke-linecap='round'%3E%3Crect x='4' y='5' width='16' height='15' rx='2'/%3E%3Cpath d='M4 10h16M9 3v4M15 3v4'/%3E%3C/svg%3E") center / 1.35rem no-repeat;
}
.bh-termin__datum { font-family: var(--wp--preset--font-family--titel); font-size: var(--wp--preset--font-size--gross); color: var(--bh-gruen-d); font-weight: 800; }
.bh-termin__zeit { color: var(--bh-text); }
.bh-termine__hinweis { margin-top: 1rem; }
.bh-termine__leer { font-size: var(--wp--preset--font-size--gross); color: var(--bh-dunkel); }

/* ---------- Karten ---------- */
.bh-karte-box {
	background: var(--bh-weiss);
	border-radius: var(--bh-radius);
	padding: clamp(1.25rem, 3vw, 1.75rem) !important;
	box-shadow: var(--bh-schatten);
	height: 100%;
	overflow: hidden;
	transition: transform .2s ease, box-shadow .2s ease;
}
.bh-karte-box:hover { transform: translateY(-3px); }
.bh-karte-box > :first-child { margin-top: 0; }
.bh-karten .wp-block-column { display: flex; flex-direction: column; }
.bh-karten .wp-block-column > .bh-karte-box { flex: 1; display: flex; flex-direction: column; }
.bh-karten .bh-karte-box > .bh-mehr { margin-top: auto; font-weight: 700; }
.bh-karte-box .wp-block-image { margin: calc(-1 * clamp(1.25rem, 3vw, 1.75rem)) calc(-1 * clamp(1.25rem, 3vw, 1.75rem)) 1.1rem !important; }
.bh-karte-box .wp-block-image img { border-radius: 0; aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }

/* Bestell-Box */
.bh-bestellen {
	background: var(--bh-gruen-d);
	color: var(--bh-wiese);
	border-radius: var(--bh-radius);
	padding: clamp(1.25rem, 3vw, 2rem) !important;
	box-shadow: var(--bh-schatten);
}
.bh-bestellen :where(h2, h3) { color: var(--bh-weiss); margin-top: 0; }
.bh-bestellen .bh-knopf { background: var(--bh-gruen-h); color: var(--bh-dunkel) !important; }
.bh-bestellen .bh-knopf:hover { background: #a3d65f; }
.bh-bestellen .bh-formular-box .bh-formular { margin-top: 0; }

/* Fakten */
.bh-fakten { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 1rem; }
.bh-fakt {
	background: var(--bh-wiese);
	border-radius: var(--bh-radius);
	padding: 1.25rem 1.4rem !important;
	margin: 0 !important;
}
.bh-fakt__zahl {
	font-family: var(--wp--preset--font-family--titel);
	font-size: var(--wp--preset--font-size--titel-m) !important;
	color: var(--bh-gruen) !important;
	font-weight: 900;
	line-height: 1.05;
	margin: 0 !important;
}
.bh-fakt p:not(.bh-fakt__zahl) { margin: .4rem 0 0; }
.bh-gross-zahl {
	font-family: var(--wp--preset--font-family--titel);
	font-size: clamp(4rem, 12vw, 8rem) !important;
	line-height: .9;
	font-weight: 900;
	color: var(--bh-gelb) !important;
	margin: 0 !important;
}
.bh-gross-zahl__text { font-family: var(--wp--preset--font-family--titel); font-weight: 800; font-size: 1.4rem !important; margin: .4rem 0 0 !important; }

/* Preise Hofführung (normale Blöcke, im Editor bearbeitbar) */
.bh-preise { display: grid; gap: .9rem; }
.bh-preise > * { margin: 0 !important; }
.bh-preis {
	display: grid !important;
	grid-template-columns: 1fr auto;
	column-gap: 1.5rem;
	row-gap: .25rem;
	align-items: start;
	background: var(--bh-weiss);
	border-radius: var(--bh-radius);
	padding: 1.2rem 1.5rem !important;
	box-shadow: var(--bh-schatten);
	border-left: 6px solid var(--bh-gruen-h);
}
.bh-preis > * { margin: 0 !important; grid-column: 1; }
.bh-preis__titel { font-size: var(--wp--preset--font-size--gross) !important; color: var(--bh-gruen-d); }
.bh-preis .bh-preis__betrag { grid-column: 2; grid-row: 1 / span 2; text-align: right; white-space: nowrap; font-size: .95rem; }
.bh-preis__betrag strong { font-family: var(--wp--preset--font-family--titel); font-size: 1.5rem; font-weight: 900; color: var(--bh-gruen); }
@media (max-width: 520px) {
	.bh-preis { grid-template-columns: 1fr; }
	.bh-preis .bh-preis__betrag { grid-column: 1; grid-row: auto; text-align: left; }
}

/* Hinweise und Meldungen */
.bh-hinweis {
	background: #fff8df;
	border-left: 5px solid var(--bh-gelb);
	padding: .9rem 1.2rem;
	border-radius: 0 var(--bh-radius) var(--bh-radius) 0;
	color: var(--bh-dunkel);
}
.bh-bildhinweis { font-size: .95rem; color: var(--bh-text); font-style: italic; }
.bh-meldung { padding: 1rem 1.25rem; border-radius: var(--bh-radius); margin-top: 1rem; }
.bh-meldung:empty { display: none; }
.bh-meldung p { margin: 0 0 .75rem; }
.bh-meldung p:last-child { margin-bottom: 0; }
.bh-meldung--ok { background: var(--bh-wiese); border: 1px solid var(--bh-gruen-h); color: var(--bh-dunkel); }
.bh-meldung--fehler { background: #fdeceb; border: 1px solid #c2453a; color: #6e221b; }
.bh-meldung--info { background: var(--bh-weiss); border: 1px solid #d8e6cc; color: var(--bh-dunkel); }

/* ---------- Formulare ---------- */
.bh-formular { margin-top: 1rem; }
.bh-formular__felder { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.25rem; }
.bh-feld { display: grid; gap: .35rem; align-content: start; }
.bh-feld--breit { grid-column: 1 / -1; }
@media (max-width: 640px) { .bh-formular__felder { grid-template-columns: 1fr; } }
.bh-feld label { font-weight: 700; color: var(--bh-dunkel); }
.bh-feld :where(input, select, textarea) {
	font: inherit;
	font-size: 1.0625rem;
	color: var(--bh-dunkel);
	background: var(--bh-weiss);
	border: 1.5px solid #c9d8bd;
	border-radius: 12px;
	padding: .7rem .85rem;
	width: 100%;
	box-sizing: border-box;
	min-height: 48px;
}
.bh-feld textarea { min-height: 8rem; resize: vertical; }
.bh-feld :where(input, select, textarea):focus { border-color: var(--bh-gruen); outline: 3px solid rgba(140, 198, 63, .45); outline-offset: 0; }
.bh-feld--check { grid-template-columns: auto 1fr; align-items: start; gap: .25rem .75rem; }
.bh-feld--check input { width: 1.35rem; height: 1.35rem; min-height: 0; margin: .15rem 0 0; accent-color: var(--bh-gruen); }
.bh-feld--check label { font-weight: 400; }
.bh-feld--check .bh-feld__fehler { grid-column: 2; }
.bh-feld__fehler { color: #b3382d; font-size: .95rem; font-weight: 700; }
.bh-feld__fehler:empty { display: none; }
.bh-feld.hat-fehler :where(input, select, textarea) { border-color: #c2453a; }
.bh-pflicht { color: #b3382d; }
.bh-formular__fuss { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; margin-top: 1.25rem; }
.bh-formular__pflicht { margin: 0; font-size: .9rem; }
.bh-falle { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Karte ---------- */
.bh-karte {
	position: relative;
	aspect-ratio: 16 / 10;
	border-radius: var(--bh-radius);
	overflow: hidden;
	background:
		radial-gradient(circle at 30% 40%, rgba(140, 198, 63, .35), transparent 45%),
		radial-gradient(circle at 75% 65%, rgba(245, 197, 66, .25), transparent 40%),
		var(--bh-wiese);
	box-shadow: var(--bh-schatten);
}
.bh-karte iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.bh-karte__platzhalter { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; padding: 1.5rem; gap: .5rem; justify-items: center; }
.bh-karte__titel { font-family: var(--wp--preset--font-family--titel); font-weight: 800; font-size: var(--wp--preset--font-size--gross); color: var(--bh-gruen-d); margin: 0; }
.bh-karte__text { max-width: 28rem; margin: 0 0 .5rem; font-size: .95rem; }
.bh-karte__links { font-size: .95rem; margin-top: .75rem; }
@media (max-width: 600px) { .bh-karte { aspect-ratio: 4 / 5; } }

/* ---------- Bilder / Galerie ---------- */
.bh-bild img, .bh-inhalt .wp-block-image img { border-radius: var(--bh-radius); }
.bh-abschnitt .bh-bild img { box-shadow: var(--bh-schatten); aspect-ratio: 3 / 2; object-fit: cover; width: 100%; }
.bh-galerie.wp-block-gallery { gap: .9rem !important; }
.bh-galerie.wp-block-gallery .wp-block-image img { border-radius: 16px; aspect-ratio: 4 / 3; object-fit: cover; }
.wp-element-caption { font-size: .95rem; color: var(--bh-text); text-align: center; }

/* ---------- Fusszeile ---------- */
.bh-fuss {
	position: relative;
	padding-top: calc(var(--wp--preset--spacing--50) + 2rem);
	padding-bottom: 1.5rem;
	font-size: 1rem;
	margin-top: 0 !important;
}
.bh-fuss::before {
	content: "";
	position: absolute;
	left: 0; right: 0; top: -1px;
	height: clamp(26px, 4vw, 60px);
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0 0h1440v22c-200 26-420 36-700 22C430 30 200 18 0 34z' fill='%23FFFEF8'/%3E%3C/svg%3E") center top / 100% 100% no-repeat;
}
.bh-haupt--start + .bh-fuss::before,
.bh-haupt--start ~ footer .bh-fuss::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0 0h1440v22c-200 26-420 36-700 22C430 30 200 18 0 34z' fill='%23EEF6E4'/%3E%3C/svg%3E"); }
.bh-fuss a { color: var(--bh-weiss); }
.bh-fuss a:hover { color: var(--bh-gelb); }
.bh-fuss__titel { color: var(--bh-weiss) !important; font-size: 1.15rem !important; margin-bottom: .75rem; }
.bh-fuss p { margin: 0 0 .75rem; }
.bh-fusslinks { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.bh-fuss__unten {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: .5rem 1.5rem;
	border-top: 1px solid rgba(238, 246, 228, .2);
	margin-top: 2rem;
	padding-top: 1.25rem;
	font-size: .9rem;
	color: #b9cfb0;
}
.bh-fuss__unten p { margin: 0; }

/* 404 */
.bh-404 { padding-top: var(--wp--preset--spacing--50); }
.bh-404__links { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; padding: 0; list-style: none; font-weight: 700; }

/* Druck */
@media print {
	.bh-kopf, .bh-fuss, .bh-karte, .bh-formular, .bh-buehne::after, .bh-seitenkopf::after { display: none !important; }
}

/* ---------- v1.4: Einstieg mit Büffelfoto ---------- */
.bh-buehne__raster {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(1.5rem, 4vw, 3rem);
	align-items: center;
}
.bh-buehne__raster > * { margin: 0 !important; }
.bh-buehne__karte { max-width: none; }
.bh-buehne h1 { font-size: clamp(2.25rem, 4.6vw, 3.75rem); max-width: 16ch; }
.bh-buehne__bild { position: relative; }
.bh-buehne__bild img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: 40% 50%;
	border-radius: 28px !important;
	border: 6px solid var(--bh-weiss);
	box-shadow: 0 24px 50px -22px rgba(30, 51, 38, .55);
}
.bh-buehne__bild .wp-element-caption {
	position: absolute;
	left: 1.25rem;
	bottom: 1.1rem;
	margin: 0;
	background: rgba(255, 255, 255, .92);
	color: var(--bh-dunkel);
	font-size: .9rem;
	font-weight: 600;
	padding: .35rem .8rem;
	border-radius: 999px;
}
@media (max-width: 900px) {
	.bh-buehne { padding-top: 2rem !important; background-size: cover; background-repeat: no-repeat; background-position: 50% 0; }
	.bh-buehne__raster { grid-template-columns: 1fr; gap: 0; }
	.bh-buehne__bild { order: -1; }
	.bh-buehne__bild img { aspect-ratio: 16 / 11; border-width: 4px; object-position: 35% 50%; }
	.bh-buehne__karte { margin-top: -2.5rem !important; position: relative; z-index: 2; background: var(--bh-weiss); }
	.bh-buehne__bild .wp-element-caption { top: .9rem; bottom: auto; left: .9rem; }
}
@media (max-width: 400px) {
	.bh-buehne h1 { font-size: 2rem; }
	.bh-buehne .wp-block-buttons { gap: .6rem; }
}

/* Willkommen / Familie */
.bh-bild--familie img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; box-shadow: var(--bh-schatten); border: 6px solid var(--bh-weiss); }
.bh-bild .wp-element-caption { margin-top: .6rem; font-size: .95rem; }
.bh-mehr { font-weight: 700; }

/* Fleischverkauf als Kalenderblatt */
.bh-termin { grid-template-columns: auto 1fr; padding: .9rem 1.1rem; gap: 0 1rem; }
.bh-termin::before { content: none; }
.bh-termin__blatt {
	display: grid;
	place-items: center;
	align-content: center;
	width: 4.1rem;
	height: 4.1rem;
	border-radius: 14px;
	background: var(--bh-wiese);
	color: var(--bh-gruen-d);
	line-height: 1;
	border-top: 6px solid var(--bh-gruen);
}
.bh-termin__tag { font-family: var(--wp--preset--font-family--titel); font-weight: 900; font-size: 1.6rem; }
.bh-termin__monat { font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; margin-top: .2rem; }
.bh-termin__text { display: grid; gap: .1rem; }
.bh-termin__label { font-size: .8rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--bh-gruen); }
.bh-termin--naechster { border: 2px solid var(--bh-gruen-h); padding: 1.1rem 1.25rem; }
.bh-termin--naechster .bh-termin__blatt { width: 4.8rem; height: 4.8rem; background: var(--bh-gruen); color: var(--bh-weiss); border-top-color: var(--bh-gelb); }
.bh-termin--naechster .bh-termin__tag { font-size: 1.9rem; }
.bh-termin--naechster .bh-termin__datum { font-size: 1.35rem; }

/* Formulare: Hinweise */
.bh-formular__hinweis { flex-basis: 100%; margin: .25rem 0 0; font-size: .9rem; color: var(--bh-text); }
.bh-formular-rahmen > .bh-meldung { margin-bottom: 1rem; }
.bh-termin__datum { line-height: 1.25; }
@media (max-width: 480px) {
	.bh-termin--naechster .bh-termin__datum, .bh-termin__datum { font-size: 1.1rem; }
	.bh-termin__blatt, .bh-termin--naechster .bh-termin__blatt { width: 3.6rem; height: 3.6rem; }
	.bh-buehne__bild .wp-element-caption { font-size: .78rem; padding: .25rem .6rem; max-width: calc(100% - 1.8rem); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
}

/* ---------- Shop eingebettet (Seite /shop/) ---------- */
.bh-inhalt > .bh-shop { max-width: none !important; width: 100%; margin: 0 !important; }
.bh-haupt:has(.bh-shop) { padding-bottom: 0; }
.bh-shop { display: flex; flex-direction: column; }
.bh-shop__rahmen {
	display: block;
	width: 100%;
	height: calc(100dvh - var(--bh-kopf-h, 90px));
	min-height: 32rem;
	border: 0;
	background: var(--bh-weiss);
}
.bh-shop.hat-hoehe .bh-shop__rahmen { min-height: 0; }
.bh-shop__hinweis {
	margin: 0;
	padding: .6rem clamp(1rem, 4vw, 2rem);
	font-size: .9rem;
	text-align: center;
	background: var(--bh-wiese);
}
/* Shop-Knopf auch als aktive Seite lesbar */
.bh-nav__punkt--shop.ist-aktiv a,
.bh-nav.ist-bereit .bh-nav__punkt--shop.ist-aktiv a { color: var(--bh-weiss); background: var(--bh-gruen-d); text-decoration: none; box-shadow: none; padding-left: 1.2rem; }
