/**
 * Kopf, Menue und Fuss als Code (kopf-fuss.php, Divi-Ausstieg Etappe 1, 25.10.2026).
 * Alles unter .b2p-k (Kopf), .b2p-k-* (Tafeln, Handy, Suche) und .b2p-f (Fuss).
 * position: sticky geht auf dieser Seite nicht (overflow-x am body), darum fixed plus Platzhalter.
 */

:root {
	--b2p-k-h: 76px;
	--b2p-k-h-klein: 60px;
	--b2p-k-oben: 0px;
}
body.admin-bar { --b2p-k-oben: 32px; }
@media (max-width: 782px) {
	body.admin-bar { --b2p-k-oben: 46px; }
}

/* ---------- Kopfleiste ---------- */

.b2p-k {
	position: fixed !important;
	top: var(--b2p-k-oben);
	left: 0;
	right: 0;
	z-index: 9990 !important;
	background: var(--b2p-dunkel);
	color: var(--b2p-creme);
	font-family: var(--b2p-font-body);
	transition: transform .28s ease, box-shadow .2s;
}
.b2p-k.ist-klein { box-shadow: 0 6px 18px rgba(0, 0, 0, .18); }
.b2p-k.ist-weg { transform: translateY(-110%); }
.b2p-k-platz { height: var(--b2p-k-h); }

.b2p-k *, .b2p-k *::before, .b2p-k *::after,
.b2p-k-suche *, .b2p-f * { box-sizing: border-box; }
.b2p-k ul, .b2p-k li, .b2p-f ul, .b2p-f li {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	line-height: inherit;
}
.b2p-k a, .b2p-k-suche a, .b2p-f a { text-decoration: none; }
.b2p-k button { font-family: inherit; letter-spacing: normal; text-transform: none; }
.b2p-k :focus-visible, .b2p-k-suche :focus-visible, .b2p-f :focus-visible {
	outline: 3px solid var(--b2p-gelb);
	outline-offset: 3px;
	border-radius: 4px;
}

.b2p-k__zeile {
	display: flex;
	align-items: center;
	gap: 24px;
	max-width: 1360px;
	height: var(--b2p-k-h);
	margin: 0 auto;
	padding: 0 max(20px, env(safe-area-inset-right, 0px)) 0 max(20px, env(safe-area-inset-left, 0px));
	transition: height .2s ease;
}
.b2p-k.ist-klein .b2p-k__zeile { height: var(--b2p-k-h-klein); }
.b2p-k__logo { flex: 0 0 auto; display: block; line-height: 0; }
.b2p-k__logo img { display: block; width: auto; height: 40px; transition: height .2s ease; }
.b2p-k.ist-klein .b2p-k__logo img { height: 32px; }

.b2p-k__nav { flex: 0 0 auto; margin-left: auto; }
.b2p-k__haupt { display: flex; align-items: center; gap: 2px; }
.b2p-k__punkt { position: relative; }
.b2p-k__link {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 10px 13px;
	border: 0;
	background: none;
	color: var(--b2p-creme) !important;
	font-family: var(--b2p-font-display) !important;
	font-size: 21px !important;
	font-weight: 400;
	line-height: 1 !important;
	white-space: nowrap;
	cursor: pointer;
}
.b2p-k-i { display: block; width: 12px; height: 12px; flex: 0 0 auto; }
.b2p-k-i--pfeil { opacity: .8; transition: transform .2s; }
.b2p-k__link[aria-expanded="true"] .b2p-k-i--pfeil { transform: rotate(180deg); }
.b2p-k-i--raus { width: 13px; height: 13px; opacity: .7; }
.b2p-k-strich {
	position: absolute;
	left: 13px;
	bottom: 1px;
	width: calc(100% - 26px);
	height: 7px;
	color: var(--b2p-gelb);
	opacity: 0;
	transform: scaleX(.3);
	transform-origin: left;
	transition: opacity .2s, transform .25s ease;
	pointer-events: none;
}
.b2p-k__link:hover .b2p-k-strich,
.b2p-k__link[aria-expanded="true"] .b2p-k-strich,
.b2p-k__link.ist-aktiv .b2p-k-strich { opacity: 1; transform: none; }

.b2p-k__suche {
	flex: 0 0 auto;
	display: inline-grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 2px solid rgba(249, 246, 234, .25);
	border-radius: 50%;
	background: none;
	color: var(--b2p-creme);
	cursor: pointer;
	transition: border-color .2s;
}
.b2p-k__suche:hover { border-color: var(--b2p-gelb); }
.b2p-k__suche .b2p-k-i { width: 19px; height: 19px; }

.b2p-k__knopf-wrap { position: relative; flex: 0 0 auto; }
.b2p-k__knopf {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 11px 20px 10px;
	border: 0;
	border-radius: 999px;
	background: var(--b2p-gelb);
	box-shadow: 3px 3px 0 var(--b2p-creme);
	color: var(--b2p-dunkel) !important;
	font-family: var(--b2p-font-display) !important;
	font-size: 20px !important;
	line-height: 1 !important;
	white-space: nowrap;
	cursor: pointer;
	transition: transform .15s, box-shadow .15s;
}
.b2p-k__knopf:hover { transform: translate(-1px, -1px); box-shadow: 4px 4px 0 var(--b2p-creme); }
.b2p-k__knopf .b2p-k-i { width: 17px; height: 17px; }

/* ---------- Tafeln (Untermenues Desktop) ---------- */

.b2p-k-tafel {
	position: absolute;
	top: calc(100% + 14px);
	left: -8px;
	z-index: 5;
	min-width: 310px;
	padding: 10px;
	background: var(--b2p-creme);
	color: var(--b2p-dunkel);
	border: 2px solid var(--b2p-dunkel);
	border-radius: 14px;
	box-shadow: 8px 8px 0 var(--b2p-gelb);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity .16s, transform .18s, visibility 0s .18s;
}
.b2p-k-tafel::before { content: ""; position: absolute; left: 0; right: 0; top: -18px; height: 18px; }
.ist-offen > .b2p-k-tafel { opacity: 1; visibility: visible; transform: none; transition: opacity .16s, transform .18s; }
.b2p-k-tafel--rechts { left: auto; right: -8px; }
.b2p-k-tafel ul { display: grid; gap: 2px; align-content: start; }
.b2p-k-tafel a { display: grid; gap: 2px; padding: 10px 14px; border-radius: 9px; color: var(--b2p-dunkel) !important; }
.b2p-k-tafel a:hover, .b2p-k-tafel a:focus-visible { background: var(--b2p-creme-warm); }
.b2p-k-tafel b {
	justify-self: start;
	font-family: var(--b2p-font-display-regular);
	font-size: 20px;
	font-weight: 400;
	line-height: 1.15;
	letter-spacing: .01em;
}
.b2p-k-tafel small { font-size: 14px; line-height: 1.35; color: var(--b2p-grau); }
.b2p-k-tafel a[aria-current="page"] b { box-shadow: inset 0 -.35em 0 var(--b2p-gelb); }

.b2p-k-tafel--gross { display: grid; grid-template-columns: minmax(0, 1fr) 210px; gap: 12px; align-items: start; min-width: 600px; }
.b2p-k-tafel a.b2p-k-neu { gap: 10px; padding: 14px; background: var(--b2p-dunkel); color: var(--b2p-creme) !important; border-radius: 10px; }
.b2p-k-tafel a.b2p-k-neu:hover { background: #3a3a37; }
.b2p-k-neu img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 6px; }
.b2p-k-neu__text { display: grid; gap: 6px; }
.b2p-k-marke {
	justify-self: start;
	padding: 3px 9px 2px;
	border-radius: 999px;
	background: var(--b2p-gelb);
	color: var(--b2p-dunkel);
	font-family: var(--b2p-font-display-regular);
	font-size: 14px;
	line-height: 1.2;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.b2p-k-tafel .b2p-k-neu b { font-size: 19px; }
.b2p-k-tafel .b2p-k-neu small { color: rgba(249, 246, 234, .65); }

/* ---------- Burger ---------- */

.b2p-k__burger {
	display: none;
	position: relative;
	flex: 0 0 auto;
	width: 46px;
	height: 46px;
	margin-right: -8px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--b2p-creme);
	cursor: pointer;
}
.b2p-k__burger span { position: absolute; left: 11px; right: 11px; height: 3px; border-radius: 2px; background: currentColor; transition: transform .25s, opacity .2s, top .25s; }
.b2p-k__burger span:nth-child(1) { top: 14px; }
.b2p-k__burger span:nth-child(2) { top: 21.5px; }
.b2p-k__burger span:nth-child(3) { top: 29px; }
.b2p-k-offen .b2p-k__burger span:nth-child(1) { top: 21.5px; transform: rotate(45deg); }
.b2p-k-offen .b2p-k__burger span:nth-child(2) { opacity: 0; }
.b2p-k-offen .b2p-k__burger span:nth-child(3) { top: 21.5px; transform: rotate(-45deg); }

/* ---------- Handy-Menue ---------- */

.b2p-k-handy {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	top: calc(var(--b2p-k-oben) + var(--b2p-k-h-klein));
	z-index: -1;
	overflow-y: auto;
	overscroll-behavior: contain;
	background: var(--b2p-dunkel);
	color: var(--b2p-creme);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-12px);
	transition: opacity .2s, transform .25s ease, visibility 0s .25s;
}
.b2p-k-offen .b2p-k-handy { opacity: 1; visibility: visible; transform: none; transition: opacity .2s, transform .25s ease; }
.b2p-k-handy__innen {
	display: grid;
	gap: 22px;
	max-width: 640px;
	margin: 0 auto;
	padding: 18px max(20px, env(safe-area-inset-right, 0px)) calc(28px + env(safe-area-inset-bottom, 0px)) max(20px, env(safe-area-inset-left, 0px));
}
.b2p-k-handy__neu { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 12px; align-items: center; padding: 10px; border-radius: 12px; background: #3a3a37; color: var(--b2p-creme) !important; }
.b2p-k-handy__neu img { display: block; width: 64px; height: 64px; border-radius: 6px; object-fit: cover; }
.b2p-k-handy__neu small { display: block; color: var(--b2p-gelb); font-family: var(--b2p-font-display-regular); font-size: 13px; line-height: 1.2; letter-spacing: .05em; text-transform: uppercase; }
.b2p-k-handy__neu b { display: block; font-size: 15px; line-height: 1.3; font-weight: 700; }
.b2p-k-handy__liste > li { border-bottom: 1px solid rgba(249, 246, 234, .12); }
.b2p-k-handy__zeile {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	padding: 13px 0;
	border: 0;
	background: none;
	color: var(--b2p-creme) !important;
	text-align: left;
	font-family: var(--b2p-font-display) !important;
	font-size: 32px !important;
	line-height: 1.05 !important;
	cursor: pointer;
}
.b2p-k-handy__zeile.ist-aktiv { color: var(--b2p-gelb) !important; }
.b2p-k-handy__zeile .b2p-k-i--raus { width: 20px; height: 20px; opacity: .6; }
.b2p-k-plus {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 34px;
	height: 34px;
	border: 2px solid rgba(249, 246, 234, .3);
	border-radius: 50%;
	transition: transform .25s, background .2s, border-color .2s;
}
.b2p-k-plus .b2p-k-i { width: 14px; height: 14px; }
[aria-expanded="true"] > .b2p-k-plus { transform: rotate(45deg); background: var(--b2p-gelb); border-color: var(--b2p-gelb); color: var(--b2p-dunkel); }
.b2p-k-handy__unter { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .25s ease; }
.b2p-k-handy__unter > ul { overflow: hidden; }
[aria-expanded="true"] + .b2p-k-handy__unter { grid-template-rows: 1fr; }
.b2p-k-handy__unter li:last-child { padding-bottom: 14px !important; }
.b2p-k-handy__unter a { display: block; padding: 8px 0; color: rgba(249, 246, 234, .7) !important; font-size: 18px; font-weight: 700; line-height: 1.3; }
.b2p-k-handy__unter a[aria-current="page"] { color: var(--b2p-gelb) !important; }
.b2p-k-handy__cta {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 10px;
	padding: 16px;
	border-radius: 14px;
	background: var(--b2p-gelb);
	color: var(--b2p-dunkel) !important;
	font-family: var(--b2p-font-display);
	font-size: 24px;
	line-height: 1;
}
.b2p-k-handy__cta .b2p-k-i { width: 20px; height: 20px; }
.b2p-k-handy__klein { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 15px; }
.b2p-k-handy__klein a { color: rgba(249, 246, 234, .7) !important; }

/* ---------- Suche ---------- */

.b2p-k-suche {
	position: fixed;
	inset: 0;
	z-index: 9995;
	display: grid;
	align-items: start;
	padding: calc(14vh + var(--b2p-k-oben)) 16px 16px;
	background: rgba(42, 42, 40, .72);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
}
.b2p-k-suche[hidden] { display: none; }
.b2p-k-suche__box {
	width: 100%;
	max-width: 680px;
	margin: 0 auto;
	padding: 18px;
	background: var(--b2p-creme);
	border: 2px solid var(--b2p-dunkel);
	border-radius: 16px;
	box-shadow: 8px 8px 0 var(--b2p-gelb);
}
.b2p-k-suche__titel { display: block; margin-bottom: 10px; color: var(--b2p-dunkel); font-family: var(--b2p-font-display); font-size: 26px; line-height: 1.1; }
.b2p-k-suche__feld { display: flex; gap: 8px; }
.b2p-k-suche__feld input {
	flex: 1;
	min-width: 0;
	padding: 13px 18px !important;
	border: 2px solid var(--b2p-dunkel) !important;
	border-radius: 999px !important;
	background: #fff !important;
	color: var(--b2p-dunkel) !important;
	font-size: 17px !important;
}
.b2p-k-suche__feld button {
	padding: 0 20px;
	border: 0;
	border-radius: 999px;
	background: var(--b2p-dunkel);
	color: var(--b2p-creme);
	font-family: var(--b2p-font-display);
	font-size: 19px;
	cursor: pointer;
}
.b2p-k-suche__hilfe { margin: 10px 4px 0 !important; padding: 0 !important; color: var(--b2p-grau); font-size: 14px; }

/* ---------- Umbruch ---------- */

@media (max-width: 1360px) {
	.b2p-k__zeile { gap: 18px; }
	.b2p-k__logo img { height: 36px; }
	.b2p-k__link { padding: 10px 10px; }
	.b2p-k-strich { left: 10px; width: calc(100% - 20px); }
}
@media (max-width: 1240px) {
	.b2p-k__zeile { gap: 14px; }
	.b2p-k__logo img, .b2p-k.ist-klein .b2p-k__logo img { height: 30px; }
	.b2p-k__link { padding: 10px 9px; font-size: 19px !important; }
	.b2p-k-strich { left: 9px; width: calc(100% - 18px); }
	.b2p-k__knopf { padding: 10px 16px 9px; font-size: 19px !important; }
}
/* Unter 1100 px, oder wenn kopf.js meldet, dass die Hauptpunkte nicht in eine Zeile passen. */
@media (max-width: 1100px) {
	:root { --b2p-k-h: 60px; }
	.b2p-k__nav, .b2p-k__knopf-wrap { display: none; }
}
.b2p-k.ist-eng .b2p-k__nav, .b2p-k.ist-eng .b2p-k__knopf-wrap { display: none; }
@media (max-width: 1100px) {
	.b2p-k__suche { margin-left: auto; width: 42px; height: 42px; }
	.b2p-k__burger { display: block; }
	.b2p-k__logo img, .b2p-k.ist-klein .b2p-k__logo img { height: 28px; }
}
.b2p-k.ist-eng .b2p-k__suche { margin-left: auto; }
.b2p-k.ist-eng .b2p-k__burger { display: block; }
.b2p-k:not(.ist-eng) .b2p-k-handy { display: none; }
@media (max-width: 1100px) {
	.b2p-k:not(.ist-eng) .b2p-k-handy { display: block; }
}
.b2p-k-offen .b2p-k { transform: none; }
html.b2p-k-offen, html.b2p-k-offen body { overflow: hidden !important; }

/* ---------- Fuss ---------- */

.b2p-f { position: relative; z-index: 1; font-family: var(--b2p-font-body); }
.b2p-f p { margin: 0; padding: 0; }

.b2p-f-partner { padding: 18px 0 20px; background: #fff; border-top: 1px solid var(--b2p-linie); }
.b2p-f-partner__titel { margin-bottom: 12px !important; text-align: center; color: #55554f; font-size: 12px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; }
.b2p-f-partner__titel a { color: inherit; border-bottom: 2px solid var(--b2p-gelb); }
.b2p-f-logos {
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.b2p-f-logos__spur { display: flex; width: max-content; animation: b2p-f-lauf 80s linear infinite; }
.b2p-f-logos:hover .b2p-f-logos__spur, .b2p-f-logos:focus-within .b2p-f-logos__spur { animation-play-state: paused; }
.b2p-f-logos__satz { display: flex; align-items: center; gap: 56px; padding-right: 56px; }
.b2p-f-logos img { display: block; width: auto; height: 44px; max-width: 150px; object-fit: contain; filter: grayscale(1); opacity: .8; transition: filter .2s, opacity .2s; }
.b2p-f-logos a:hover img, .b2p-f-logos a:focus img { filter: none; opacity: 1; }
@keyframes b2p-f-lauf { from { transform: translateX(0); } to { transform: translateX(-50%); } }

.b2p-f__haupt { background: var(--b2p-dunkel); color: var(--b2p-creme); }
.b2p-f__innen {
	max-width: 1180px;
	margin: 0 auto;
	padding-left: max(20px, env(safe-area-inset-left, 0px));
	padding-right: max(20px, env(safe-area-inset-right, 0px));
}
.b2p-f__oben { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 56px; padding-block: 64px 48px; }
.b2p-f-marke__name { font-family: var(--b2p-font-display); font-size: 34px; line-height: 1.05; color: var(--b2p-creme); }
.b2p-f-marke__text { max-width: 34ch; margin-top: 12px !important; font-size: 19px; line-height: 1.5; color: rgba(249, 246, 234, .82); }
.b2p-f-marke__tag { margin-top: 18px !important; font-family: var(--b2p-font-display-regular); font-size: 18px; letter-spacing: .03em; color: var(--b2p-gelb); }

.b2p-f-nl { padding: 26px; border: 2px solid rgba(249, 246, 234, .16); border-radius: 18px; background: #333331; }
.b2p-f-nl__titel { font-family: var(--b2p-font-display); font-size: 28px; line-height: 1.1; color: var(--b2p-gelb); }
.b2p-f-nl__text { margin-top: 8px !important; font-size: 16px; line-height: 1.55; color: rgba(249, 246, 234, .85); }
.b2p-f-nl__text strong { color: var(--b2p-creme); }
.b2p-f-nl__form { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr) auto; gap: 10px; margin-top: 18px; }
.b2p-f-nl__form input[type="text"], .b2p-f-nl__form input[type="email"] {
	width: 100%;
	min-width: 0;
	padding: 13px 16px !important;
	border: 2px solid transparent !important;
	border-radius: 10px !important;
	background: var(--b2p-creme) !important;
	color: var(--b2p-dunkel) !important;
	font-size: 16px !important;
}
.b2p-f-nl__form input.ist-falsch { border-color: var(--b2p-rot) !important; }
.b2p-f-nl__form button {
	padding: 0 22px;
	border: 0;
	border-radius: 10px;
	background: var(--b2p-gelb);
	color: var(--b2p-dunkel);
	font-family: var(--b2p-font-display);
	font-size: 20px;
	cursor: pointer;
}
.b2p-f-nl__form button:disabled { opacity: .6; cursor: wait; }
.b2p-f-nl__meldung { grid-column: 1 / -1; min-height: 0; font-size: 15px; color: var(--b2p-creme); }
.b2p-f-nl__meldung:empty { display: none; }
.b2p-f-nl__meldung.ist-ok { padding: 10px 14px !important; border-radius: 10px; background: var(--b2p-gelb); color: var(--b2p-dunkel); font-weight: 700; }
.b2p-f-nl__meldung.ist-fehler { color: #ffb4b0; }
.b2p-f-nl__klein { margin-top: 12px !important; font-size: 14px; font-style: italic; color: rgba(249, 246, 234, .65); }
.b2p-f-unsichtbar, .b2p-f-honig { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.b2p-f-gefoerdert { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 28px 56px; padding-block: 32px; border-top: 1px solid rgba(249, 246, 234, .12); }
.b2p-f-gefoerdert__titel { margin-bottom: 14px !important; font-size: 13px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: rgba(249, 246, 234, .6); }
.b2p-f-gefoerdert__logos { display: flex; flex-wrap: wrap; align-items: center; gap: 22px 40px; }
.b2p-f-gefoerdert__logos img { display: block; width: auto; height: 46px; max-width: 160px; object-fit: contain; filter: brightness(0) invert(1); opacity: .75; transition: opacity .2s; }
.b2p-f-gefoerdert__logos a:hover img { opacity: 1; }

.b2p-f-unten { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 28px; padding-block: 22px calc(26px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid rgba(249, 246, 234, .12); font-size: 14px; }
.b2p-f-unten__copy { color: rgba(249, 246, 234, .6); }
.b2p-f-unten__links { display: flex; flex-wrap: wrap; gap: 6px 20px; }
.b2p-f-unten__links a { color: rgba(249, 246, 234, .82) !important; }
.b2p-f-unten__links a:hover { color: var(--b2p-gelb) !important; }
.b2p-f-unten__social { display: flex; gap: 8px; }
.b2p-f-unten__social a { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; color: var(--b2p-creme) !important; background: rgba(249, 246, 234, .08); transition: background .2s, color .2s; }
.b2p-f-unten__social a:hover { background: var(--b2p-gelb); color: var(--b2p-dunkel) !important; }
.b2p-f-unten__social svg { width: 20px; height: 20px; }

@media (max-width: 900px) {
	.b2p-f__oben { grid-template-columns: 1fr; gap: 32px; padding-block: 44px 32px; }
}
@media (max-width: 600px) {
	.b2p-f-nl { padding: 20px; }
	.b2p-f-nl__form { grid-template-columns: 1fr; }
	.b2p-f-nl__form button { padding: 14px; }
	.b2p-f-marke__name { font-size: 30px; }
	.b2p-f-gefoerdert__logos img { height: 38px; }
	.b2p-f-unten { flex-direction: column; align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
	.b2p-k, .b2p-k *, .b2p-k-handy, .b2p-k-tafel { transition: none !important; }
	.b2p-f-logos__spur { animation: none; }
	.b2p-f-logos { overflow-x: auto; }
}
