/* F&B Pferde: Website
   Farben und Schriften kommen vom Theme, nur der Goldton ist eigen (--fbp-akzent, einstellbar). */

.fbp {
	--fbp-linie: color-mix(in srgb, currentColor 18%, transparent);
	--fbp-leise: color-mix(in srgb, currentColor 62%, transparent);
	box-sizing: border-box;
}
.fbp *, .fbp *::before, .fbp *::after { box-sizing: inherit; }
.fbp-container { width: 100%; max-width: 1200px; margin-inline: auto; padding-inline: 20px; }

/* ---------- Bilderrahmen ---------- */
.fbp-rahmen {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 607 / 804;
}
.fbp-rahmen img,
.fbp-rahmen-leer {
	position: absolute;
	left: 13%;
	top: 11.1%;
	width: 73.8%;
	height: 76.4%;
	max-width: none;
	margin: 0;
	object-fit: cover;
	border-radius: 0;
}
.fbp-rahmen-leer { background: linear-gradient(160deg, #3a3326, #1c1914); }
.fbp-rahmen::after {
	content: "";
	position: absolute;
	inset: 0;
	background: url(rahmen.webp) center / 100% 100% no-repeat;
	pointer-events: none;
	filter: drop-shadow(0 10px 16px rgba(0, 0, 0, .28));
}

/* ---------- Karten und Raster ---------- */
.fbp-raster {
	display: grid;
	grid-template-columns: repeat(var(--fbp-spalten, 3), minmax(0, 1fr));
	gap: 36px 28px;
	margin: 0;
}
@media (max-width: 900px) { .fbp-raster { grid-template-columns: repeat(min(2, var(--fbp-spalten, 3)), minmax(0, 1fr)); } }
@media (max-width: 520px) { .fbp-raster { grid-template-columns: minmax(0, 1fr); max-width: 360px; margin-inline: auto; } }

.fbp-karte,
.fbp-startlink {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	text-decoration: none;
	color: inherit;
}
/* Hover ohne Bewegung (Wunsch 20.10.2026): beim Scrollen faehrt die Maus ueber die Rahmen, ein Anheben wirkte wie Rutschen */
.fbp-karte .fbp-karte-bild,
.fbp-startlink .fbp-rahmen { transition: filter .35s ease; }
.fbp-karte:hover .fbp-karte-bild,
.fbp-karte:focus-visible .fbp-karte-bild,
.fbp-startlink:hover .fbp-rahmen,
.fbp-startlink:focus-visible .fbp-rahmen { filter: brightness(1.06) drop-shadow(0 0 16px rgba(219, 177, 88, .35)); }
.fbp-uebersicht, .fbp-raster { color: var(--fbp-text, inherit); }
.fbp-uebersicht h1, .fbp-uebersicht h2 { color: var(--fbp-namen) !important; }
/* Messingschild wie im Museum, mittig auf der unteren Rahmenleiste */
.fbp-karte-bild { position: relative; display: block; width: 100%; }
.fbp-messing {
	position: absolute;
	left: 50%;
	bottom: 2.6%;
	transform: translateX(-50%);
	max-width: 76%;
	padding: 6px 24px 5px;
	border-radius: 2px;
	background:
		linear-gradient(180deg, rgba(255, 255, 255, .55) 0, rgba(255, 255, 255, 0) 38%),
		linear-gradient(100deg, #8a6a2c 0%, #d9b866 18%, #f2dc9a 38%, #c9a14e 60%, #e6c97f 80%, #8f6f2f 100%);
	border: 1px solid #6b5020;
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, .6),
		inset 0 -1px 0 rgba(0, 0, 0, .35),
		0 3px 6px rgba(0, 0, 0, .55);
	z-index: 2;
	pointer-events: none;
}
/* Schraubenkoepfe links und rechts */
.fbp-messing::before,
.fbp-messing::after {
	content: "";
	position: absolute;
	top: 50%;
	width: 5px;
	height: 5px;
	margin-top: -2.5px;
	border-radius: 50%;
	background: radial-gradient(circle at 35% 35%, #fff4cf 0, #b8913f 55%, #5c4318 100%);
	box-shadow: 0 0 0 1px rgba(60, 40, 10, .55);
}
.fbp-messing::before { left: 8px; }
.fbp-messing::after { right: 8px; }
.fbp-messing-text {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-size: clamp(.68rem, 1.15vw, .86rem);
	font-weight: 700;
	letter-spacing: .14em;
	line-height: 1.25;
	text-transform: uppercase;
	color: #2b200d;
	/* eingravierte Schrift */
	text-shadow: 0 1px 0 rgba(255, 245, 210, .65), 0 -1px 0 rgba(60, 40, 10, .25);
}
.fbp-karte:hover .fbp-messing,
.fbp-karte:focus-visible .fbp-messing { filter: brightness(1.08); }
/* Theme-Linkfarbe (Blau) nicht auf die Karten durchschlagen lassen */
.fbp-karte, .fbp-karte:hover, .fbp-karte:focus, .fbp-karte:active, .fbp-karte:visited,
.fbp-startlink, .fbp-startlink:hover, .fbp-startlink:focus, .fbp-startlink:active, .fbp-startlink:visited { color: var(--fbp-text, #F1EEE3) !important; }
.fbp-karte-info { margin-top: 14px; font-size: .9em; letter-spacing: .04em; color: var(--fbp-leise); }
.fbp-leer-hinweis { color: var(--fbp-leise); }

/* Startseiten-Link "Zu unseren Pferden" */
.fbp-startlink { max-width: 380px; margin-inline: auto; }
.fbp-startlink-text {
	/* Namensschild: feine Doppel-Goldkontur, goldene Schrift in gesperrten Grossbuchstaben, dunkel getoenter Grund */
	position: relative;
	margin-top: 18px;
	min-width: min(78%, 240px);
	padding: 11px 26px 10px;
	font-size: .82em;
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase;
	line-height: 1.2;
	color: var(--fbp-namen);
	background: linear-gradient(180deg, rgba(0, 0, 0, .28), rgba(0, 0, 0, .12));
	border: 1px solid var(--fbp-akzent);
	box-shadow: inset 0 0 0 3px rgba(0, 0, 0, .35), inset 0 0 0 4px color-mix(in srgb, var(--fbp-akzent) 55%, transparent), 0 6px 14px -6px rgba(0, 0, 0, .6);
	/* Farbe und Grund wechseln gleichzeitig (Verlaeufe lassen sich nicht ueberblenden), sonst kurz dunkel auf dunkel */
	transition: box-shadow .3s ease, letter-spacing .3s ease;
}
/* kleine Rauten links und rechts, wie Ziernaegel am Schild */
.fbp-startlink-text::before,
.fbp-startlink-text::after {
	content: "";
	position: absolute;
	top: 50%;
	width: 5px;
	height: 5px;
	background: var(--fbp-akzent);
	transform: translateY(-50%) rotate(45deg);
}
.fbp-startlink-text::before { left: 10px; }
.fbp-startlink-text::after { right: 10px; }
.fbp-startlink:hover .fbp-startlink-text,
.fbp-startlink:focus-visible .fbp-startlink-text {
	color: #1d1810;
	background: linear-gradient(180deg, #f3df9f, var(--fbp-akzent) 60%, #b8954a);
	box-shadow: inset 0 0 0 3px rgba(255, 255, 255, .18), inset 0 0 0 4px rgba(0, 0, 0, .25), 0 8px 18px -6px rgba(0, 0, 0, .7);
	letter-spacing: .24em;
}
.fbp-startlink:hover .fbp-startlink-text::before,
.fbp-startlink:hover .fbp-startlink-text::after,
.fbp-startlink:focus-visible .fbp-startlink-text::before,
.fbp-startlink:focus-visible .fbp-startlink-text::after { background: #1d1810; }
.fbp-startlink:focus-visible { outline: none; }

/* Startseite: Willkommenstext mit handschriftlicher Unterschrift (Block-Klassen fbp-willkommen, fbp-unterschrift) */
@font-face {
	font-family: "FBP Caveat";
	src: url(caveat-600.woff2) format("woff2");
	font-weight: 600;
	font-display: swap;
}
.fbp-willkommen {
	/* Tafel mit feiner Doppel-Goldkontur wie die Namensschilder, Raute mittig auf der Oberkante */
	position: relative;
	max-width: 860px;
	margin: 110px auto 40px !important;
	padding: 56px clamp(22px, 6vw, 72px) 44px !important;
	text-align: center;
	font-size: 1.14em;
	line-height: 1.8;
	color: var(--fbp-text, inherit);
	background: linear-gradient(180deg, rgba(0, 0, 0, .26), rgba(0, 0, 0, .12));
	border: 1px solid var(--fbp-akzent);
	box-shadow:
		inset 0 0 0 6px rgba(0, 0, 0, .28),
		inset 0 0 0 7px color-mix(in srgb, var(--fbp-akzent) 50%, transparent),
		0 24px 50px -28px rgba(0, 0, 0, .8);
}
.fbp-willkommen::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	width: 14px;
	height: 14px;
	background: var(--fbp-akzent);
	border: 3px solid #2c3820;
	box-shadow: 0 0 0 1px var(--fbp-akzent);
	transform: translate(-50%, -50%) rotate(45deg);
}
.fbp-willkommen p { margin: 0 0 1.15em; }
/* erster Absatz als Einleitung */
.fbp-willkommen > p:first-of-type,
.fbp-willkommen > .wp-block-group__inner-container > p:first-of-type {
	font-size: 1.22em;
	line-height: 1.6;
	color: #fff8e6;
	margin-bottom: 1.3em;
}
@media (max-width: 600px) {
	.fbp-willkommen { margin-top: 80px !important; font-size: 1.02em; line-height: 1.7; }
	.fbp-willkommen > p:first-of-type, .fbp-willkommen > .wp-block-group__inner-container > p:first-of-type { font-size: 1.12em; }
}
/* Seitentitel der Startseite (Theme-Titel ueber den Kategorien): mittig, gross, mit goldenem Zierstrich */
body:has(.fbp-kategorien) .page-title,
body:has(.fbp-kategorien) .entry-title,
body:has(.fbp-kontakt) .page-title,
body:has(.fbp-kontakt) .entry-title,
body:has(.fbp-personen) .page-title,
body:has(.fbp-personen) .entry-title,
.entry-content .fbp-seitentitel {
	text-align: center;
	font-size: clamp(2.1rem, 4.6vw, 3.6rem) !important;
	line-height: 1.15;
	font-weight: 600;
	letter-spacing: .01em;
	color: var(--fbp-namen) !important;
	text-shadow: 0 3px 22px rgba(0, 0, 0, .45);
	text-wrap: balance;
}
body:has(.fbp-kategorien) .page-title::after,
body:has(.fbp-kategorien) .entry-title::after,
body:has(.fbp-kontakt) .page-title::after,
body:has(.fbp-kontakt) .entry-title::after,
body:has(.fbp-personen) .page-title::after,
body:has(.fbp-personen) .entry-title::after,
.entry-content .fbp-seitentitel::after {
	content: "";
	display: block;
	width: min(220px, 50%);
	height: 2px;
	margin: 24px auto 0;
	background: linear-gradient(90deg, transparent, var(--fbp-akzent), var(--fbp-namen), var(--fbp-akzent), transparent);
}
.fbp-willkommen strong { color: var(--fbp-namen); font-weight: 600; }
.fbp-unterschrift {
	font-family: "FBP Caveat", "Segoe Script", cursive;
	font-weight: 600;
	font-size: clamp(1.7em, 3vw, 2.2em);
	line-height: 1.2;
	color: var(--fbp-namen);
	margin-top: 1.4em !important;
}

/* Seitentitel als Block in der Seite (Vorlagen aus Pferde > Seiten einrichten): Abstaende wie beim Theme-Titel */
.entry-content .fbp-seitentitel {
	max-width: 1100px !important;
	margin: 0 auto 40px !important;
	padding: 0;
}
.entry-content > .fbp-seitentitel + .fbp-willkommen { margin-top: 48px !important; }

/* Startseiten-Ueberschrift in Libre Baskerville (lokal, Wahl des Kunden); Team und Kontakt bleiben in der normalen Schrift */
@font-face {
	font-family: "FBP Baskerville";
	src: url(libre-baskerville-400.woff2) format("woff2");
	font-weight: 400;
	font-display: swap;
}
body:has(.fbp-kategorien) .page-title,
body:has(.fbp-kategorien) .entry-title,
body:has(.fbp-kategorien) .entry-content .fbp-seitentitel {
	font-family: "FBP Baskerville", Baskerville, "Libre Baskerville", Georgia, "Times New Roman", serif !important;
	font-weight: 400 !important;
	font-size: clamp(2rem, 4.2vw, 3.4rem) !important;
	line-height: 1.22 !important;
	letter-spacing: 0 !important;
}

/* Startseite: Kategorien als Bilderrahmen */
/* Zierlinie unter der Reihe der Bilderrahmen (statt unter der Ueberschrift) */
.fbp-kategorien::after {
	content: "";
	grid-column: 1 / -1;
	justify-self: center;
	width: min(640px, 70%);
	height: 2px;
	margin-top: 8px;
	background: linear-gradient(90deg, transparent, var(--fbp-akzent), var(--fbp-namen), var(--fbp-akzent), transparent);
}
.fbp-kategorien-titel {
	text-align: center;
	margin: 56px 0 32px;
	font-size: clamp(1.15rem, 2vw, 1.45rem) !important;
	line-height: 1.3;
	color: var(--fbp-namen) !important;
	font-weight: 500;
	letter-spacing: .02em;
}
/* Ueberschrift im Kasten wie die Schilder (Doppel-Goldkontur, Rauten); genutzt auf der Uebersicht /pferde/ */
.fbp-titelschild {
	position: relative;
	display: inline-block;
	padding: 14px 56px 13px;
	font-family: "FBP Baskerville", Baskerville, Georgia, serif;
	font-weight: 400;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--fbp-namen);
	background: linear-gradient(180deg, rgba(0, 0, 0, .28), rgba(0, 0, 0, .12));
	border: 1px solid var(--fbp-akzent);
	box-shadow: inset 0 0 0 5px rgba(0, 0, 0, .35), inset 0 0 0 6px color-mix(in srgb, var(--fbp-akzent) 55%, transparent), 0 12px 26px -14px rgba(0, 0, 0, .75);
}
.fbp-titelschild::before,
.fbp-titelschild::after {
	content: "";
	position: absolute;
	top: 50%;
	width: 7px;
	height: 7px;
	background: var(--fbp-akzent);
	transform: translateY(-50%) rotate(45deg);
}
.fbp-titelschild::before { left: 20px; }
.fbp-titelschild::after { right: 20px; }
/* Kategorie-Seiten (Verkaufspferde, Zuchtstuten, ...): goldene Zierlinie unter der Ueberschrift */
.fbp-seitenkopf:not(.fbp-seitenkopf-schild) h1::after {
	content: "";
	display: block;
	width: min(260px, 60%);
	height: 2px;
	margin: 20px auto 0;
	background: linear-gradient(90deg, transparent, var(--fbp-akzent), var(--fbp-namen), var(--fbp-akzent), transparent);
}
/* Uebersicht /pferde/: grosse Ueberschrift im Schild */
.fbp-seitenkopf-schild h1 { font-size: clamp(1.5rem, 3vw, 2.4rem) !important; line-height: 1.2; }
@media (max-width: 600px) {
	.fbp-seitenkopf-schild .fbp-titelschild { padding: 12px 40px 11px; letter-spacing: .08em; }
	.fbp-titelschild::before { left: 14px; }
	.fbp-titelschild::after { right: 14px; }
}
.fbp-kategorien {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 40px 32px;
	align-items: start;
}
.fbp-kategorien .fbp-startlink { max-width: 300px; width: 100%; }
.fbp-kategorien .fbp-startlink-text { font-size: .8em; }
.fbp-rahmen-logo { background: var(--fbp-logo) center / 46% auto no-repeat, linear-gradient(160deg, #34402a, #1c2414); }
@media (max-width: 1000px) { .fbp-kategorien { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 640px; margin-inline: auto; } }
@media (max-width: 420px) { .fbp-kategorien { gap: 28px 14px; } .fbp-kategorien .fbp-startlink-text { font-size: .68em; letter-spacing: .12em; padding: 9px 24px 8px; min-width: 0; } .fbp-kategorien .fbp-startlink-text::before { left: 8px; } .fbp-kategorien .fbp-startlink-text::after { right: 8px; } }

/* ---------- Kopf der Uebersichten ---------- */
.fbp-uebersicht { padding-block: 48px 72px; }
.fbp-seitenkopf { margin-bottom: 36px; text-align: center; }
.fbp-seitenkopf h1 { margin: 0; }
.fbp-beschreibung { max-width: 680px; margin: 14px auto 0; }
.fbp-ueberzeile {
	margin: 0 0 8px;
	font-size: .8em;
	letter-spacing: .16em;
	text-transform: uppercase;
	font-weight: 600;
}
.fbp-ueberzeile a { color: var(--fbp-akzent); text-decoration: none; }
.fbp-uebersicht .fbp-abschnitt + .fbp-abschnitt { margin-top: 64px; }
.fbp-uebersicht .fbp-abschnitt > h2 { text-align: center; margin: 0 0 28px; }
.fbp-uebersicht .fbp-abschnitt > h2 a { color: inherit; text-decoration: none; }
.fbp-uebersicht .fbp-abschnitt > h2 a:hover { color: var(--fbp-akzent); }

/* ---------- Pferdeprofil: erster Blick ---------- */
.fbp-profil { color: var(--fbp-text, inherit); }
.fbp-profil h1, .fbp-profil h2, .fbp-profil h3 { color: inherit; }
.fbp-buehne {
	min-height: calc(100vh - var(--fbp-kopfhoehe, 110px));
	min-height: calc(100svh - var(--fbp-kopfhoehe, 110px));
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-block: 32px 8px;
}
/*
 * Desktop: Name ueber der Pedigree-Spalte, darunter Rahmen und Pedigree nebeneinander.
 * Der Rahmen ist genau so hoch wie die Pedigree-Tafel (Breite setzt frontend.js aus der Tafelhoehe).
 */
.fbp-buehne .fbp-container { max-width: 1560px; padding-inline: clamp(16px, 3vw, 48px); }
.fbp-buehne-innen {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	grid-template-areas: ". kopf" "bild pedigree" "weiter weiter";
	grid-template-rows: auto auto auto;
	gap: 24px 44px;
	align-items: start;
}
.fbp-buehne-innen:not(:has(.fbp-buehne-pedigree)) { grid-template-areas: "bild kopf" "weiter weiter"; grid-template-columns: auto minmax(0, 1fr); }
.fbp-buehne-kopf { grid-area: kopf; text-align: center; }
.fbp-buehne-bild { grid-area: bild; justify-self: end; width: var(--fbp-bild-breite, min(440px, 34vw)); min-width: 0; }
.fbp-buehne-pedigree { grid-area: pedigree; }
.fbp-pd-titel { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.fbp-lightbox-start {
	all: unset;
	display: block;
	position: relative;
	width: 100%;
	cursor: zoom-in;
}
.fbp-lightbox-start:focus-visible { outline: 2px solid var(--fbp-akzent); outline-offset: 6px; }
.fbp-foto-zahl {
	position: absolute;
	right: 17%;
	bottom: 15%;
	padding: 3px 9px;
	font-size: 12px;
	color: #fff;
	background: rgba(0, 0, 0, .6);
	border-radius: 2px;
	z-index: 1;
}
.fbp-name { margin: 0; line-height: 1.1; color: var(--fbp-namen) !important; font-size: clamp(2rem, 4.2vw, 3.4rem); font-weight: 500; }

.fbp-weiter {
	grid-area: weiter;
	justify-self: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	margin-top: 28px;
	font-size: .85em;
	color: var(--fbp-leise);
	text-decoration: none;
}
.fbp-weiter::after {
	content: "";
	width: 12px;
	height: 12px;
	border-right: 2px solid var(--fbp-akzent);
	border-bottom: 2px solid var(--fbp-akzent);
	transform: rotate(45deg);
	animation: fbp-wippen 2s ease-in-out infinite;
}
@keyframes fbp-wippen { 50% { transform: translateY(5px) rotate(45deg); } }

/* ---------- Pedigree: Goldtafel, Pferd vorne, alle Kaesten gleich hoch, Verbindungslinien ---------- */
.fbp-pedigree {
	--fbp-pd-luecke: 22px;               /* Abstand zwischen den Spalten */
	--fbp-pd-zeile: 46px;                /* Hoehe jedes Kastens */
	--fbp-pd-abstand: 4px;               /* Abstand zwischen den Zeilen */
	--fbp-pd-linie: color-mix(in srgb, var(--fbp-akzent) 75%, transparent);
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-template-rows: auto repeat(8, var(--fbp-pd-zeile));
	gap: var(--fbp-pd-abstand) var(--fbp-pd-luecke);
	font-size: .88em;
	line-height: 1.2;
}
.fbp-pd-kopf {
	grid-row: 1;
	font-size: .7em;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--fbp-akzent);
	padding-bottom: 6px;
}
.fbp-pd-zelle {
	position: relative;
	align-self: center;
	display: flex;
	align-items: center;
	height: var(--fbp-pd-zeile);
	padding: 0 10px;
	overflow: visible;
	color: var(--fbp-text, inherit);
	background: rgba(0, 0, 0, .26);
	border: 1px solid color-mix(in srgb, var(--fbp-akzent) 50%, transparent);
	border-radius: 2px;
	box-shadow: inset 0 0 0 2px rgba(0, 0, 0, .22);
}
.fbp-pd-name {
	/* keine Silbentrennung (Wunsch 20.10.2026): reicht der Platz nicht, wird das Pedigree seitlich wischbar */
	hyphens: manual;
	-webkit-hyphens: manual;
	overflow-wrap: normal;
	word-break: normal;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
}
/* Vaeter golden, Muetter hell */
.fbp-pd-hengst { color: var(--fbp-namen); border-color: color-mix(in srgb, var(--fbp-akzent) 80%, transparent); }
.fbp-pd-gen1 { font-weight: 700; }
.fbp-pd-gen2 { font-weight: 600; }
/* das Pferd selbst als Messingschild */
.fbp-pd-gen0 {
	font-weight: 700;
	color: #2b200d;
	text-shadow: 0 1px 0 rgba(255, 245, 210, .6);
	background:
		linear-gradient(180deg, rgba(255, 255, 255, .5) 0, rgba(255, 255, 255, 0) 40%),
		linear-gradient(100deg, #8a6a2c 0%, #d9b866 20%, #f2dc9a 42%, #c9a14e 65%, #e6c97f 85%, #8f6f2f 100%);
	border-color: #6b5020;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6), inset 0 -1px 0 rgba(0, 0, 0, .35), 0 3px 8px rgba(0, 0, 0, .45);
}
.fbp-pd-gen0 .fbp-xx { color: inherit; }
/*
 * Linien: vom Kasten nach rechts bis zur Spaltenmitte, dort senkrecht zu den beiden Kindern,
 * von dort waagerecht in die Kinderkaesten. Die halbe Laenge der Senkrechten haengt von der Generation ab:
 * Pferd 2 Zeilen, Eltern 1 Zeile, Grosseltern eine halbe Zeile (jeweils inklusive Zeilenabstand).
 */
.fbp-pd-gen0 { --fbp-pd-halb: calc(2 * (var(--fbp-pd-zeile) + var(--fbp-pd-abstand))); }
.fbp-pd-gen1 { --fbp-pd-halb: calc(var(--fbp-pd-zeile) + var(--fbp-pd-abstand)); }
.fbp-pd-gen2 { --fbp-pd-halb: calc((var(--fbp-pd-zeile) + var(--fbp-pd-abstand)) / 2); }
.fbp-pd-gen0::after,
.fbp-pd-gen1::after,
.fbp-pd-gen2::after {
	content: "";
	position: absolute;
	left: 100%;
	top: 50%;
	width: calc(var(--fbp-pd-luecke) / 2 + 1px);
	height: 1.5px;
	margin-top: -.75px;
	margin-left: 1px;
	background: var(--fbp-pd-linie);
}
.fbp-pd-gen0::before,
.fbp-pd-gen1::before,
.fbp-pd-gen2::before {
	content: "";
	position: absolute;
	left: calc(100% + var(--fbp-pd-luecke) / 2 + 1px);
	top: calc(50% - var(--fbp-pd-halb));
	height: calc(2 * var(--fbp-pd-halb));
	width: 1.5px;
	background: var(--fbp-pd-linie);
}
.fbp-pd-gen1 .fbp-pd-name::before,
.fbp-pd-gen2 .fbp-pd-name::before,
.fbp-pd-gen3 .fbp-pd-name::before {
	content: "";
	position: absolute;
	right: 100%;
	top: 50%;
	width: calc(var(--fbp-pd-luecke) / 2);
	height: 1.5px;
	margin-top: -.75px;
	margin-right: 1px;
	background: var(--fbp-pd-linie);
}
.fbp-pd-unbekannt { color: var(--fbp-leise); font-style: italic; font-weight: 400; }
.fbp-xx { font-size: .7em; vertical-align: super; margin-left: 1px; font-weight: 400; }
/* niedrige Bildschirme (Laptops): Kaesten flacher, damit Rahmen und Pedigree in den ersten Blick passen */
@media (min-width: 861px) and (max-height: 880px) {
	.fbp-buehne .fbp-pedigree { --fbp-pd-zeile: 38px; --fbp-pd-abstand: 3px; }
	.fbp-buehne-pedigree.fbp-tafel { padding-top: 26px; padding-bottom: 20px; }
	.fbp-buehne-pedigree .fbp-pd-titel { margin-bottom: 12px; }
	.fbp-buehne { padding-top: 16px; }
}
/* Tafel im ersten Blick: Ueberschrift sichtbar, etwas kompakter */
.fbp-buehne-pedigree.fbp-tafel { padding: 34px clamp(16px, 2.6vw, 30px) 26px; }
.fbp-buehne-pedigree .fbp-pd-titel {
	position: static;
	width: auto;
	height: auto;
	overflow: visible;
	clip: auto;
	white-space: normal;
	margin: 0 0 18px;
	text-align: center;
	font-size: 1.25em;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--fbp-namen) !important;
}

/* ---------- Pferdeprofil: beim Scrollen ---------- */
.fbp-inhalt { max-width: 860px; padding-block: 40px 80px; }
/* Profil: unterer Teil genau so breit wie die Buehne oben (Rahmen links bis Pedigree rechts) und dicht darunter */
.fbp-profil .fbp-inhalt { max-width: 1560px; padding-inline: clamp(16px, 3vw, 48px); padding-top: 8px; }
.fbp-profil .fbp-daten { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
@media (min-width: 1100px) {
	/* lange Beschreibungen zweispaltig, damit die Zeilen auf voller Breite lesbar bleiben */
	.fbp-profil .fbp-text { columns: 2; column-gap: 56px; }
	.fbp-profil .fbp-text p { break-inside: avoid; margin-top: 0; }
	.fbp-profil .fbp-zitat { max-width: 900px; }
	.fbp-profil .fbp-erfolge { columns: 2; column-gap: 56px; }
	.fbp-profil .fbp-erfolge li { break-inside: avoid; }
}
.fbp-abschnitt + .fbp-abschnitt { margin-top: 56px; }
.fbp-abschnitt > h2 {
	color: var(--fbp-namen) !important;
	margin: 0 0 20px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--fbp-linie);
}
.fbp-daten {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 14px 28px;
	margin: 0;
}
.fbp-daten div { border-left: 2px solid var(--fbp-akzent); padding-left: 12px; }
.fbp-daten dt { font-size: .75em; letter-spacing: .12em; text-transform: uppercase; color: var(--fbp-leise); margin: 0; }
.fbp-daten dd { margin: 2px 0 0; font-weight: 600; }
.fbp-anfrage { margin: 28px 0 0; }
.fbp-knopf {
	display: inline-block;
	padding: 12px 28px 11px;
	font-size: .85em;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--fbp-namen);
	background: linear-gradient(180deg, rgba(0, 0, 0, .28), rgba(0, 0, 0, .12));
	border: 1px solid var(--fbp-akzent);
	box-shadow: inset 0 0 0 3px rgba(0, 0, 0, .35), inset 0 0 0 4px color-mix(in srgb, var(--fbp-akzent) 55%, transparent);
	transition: none;
}
.fbp-knopf:hover, .fbp-knopf:focus-visible {
	color: #1d1810;
	background: linear-gradient(180deg, #f3df9f, var(--fbp-akzent) 60%, #b8954a);
}
.fbp-zitat {
	font-size: 1.3em;
	font-style: italic;
	line-height: 1.4;
	margin: 0 0 20px;
	padding-left: 18px;
	border-left: 2px solid var(--fbp-akzent);
}
.fbp-erfolge { list-style: none; margin: 0; padding: 0; }
.fbp-erfolge li {
	display: grid;
	grid-template-columns: 140px 1fr;
	gap: 16px;
	padding: 10px 0;
	border-bottom: 1px solid var(--fbp-linie);
}
.fbp-erfolge strong { color: var(--fbp-akzent); }
.fbp-video iframe, .fbp-video video { width: 100%; height: auto; aspect-ratio: 16 / 9; border: 0; }
.fbp-zurueck { margin-top: 56px; }
.fbp-zurueck a { color: var(--fbp-akzent); }

/* Einblenden nur, wenn das Skript laeuft; ohne Skript ist alles sofort sichtbar */
.fbp-js .fbp-einblenden { opacity: 0; transition: opacity .7s ease; }
.fbp-js .fbp-einblenden.fbp-sichtbar { opacity: 1; transform: none; }

/* ---------- Lightbox ---------- */
.fbp-lightbox {
	/* fixed mit inset statt 100vw: so endet die Flaeche vor der Bildlaufleiste */
	position: fixed;
	inset: 0;
	width: auto;
	height: auto;
	max-width: none;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: rgba(12, 10, 8, .94);
	color: #fff;
}
.fbp-lightbox[open] { display: flex; align-items: center; justify-content: center; }
.fbp-lightbox::backdrop { background: rgba(0, 0, 0, .6); }
html:has(.fbp-lightbox[open]) { overflow: hidden; }
.fbp-lb-bild { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 10px; }
/* Foto und Pfeile in einem Rahmen: die Pfeile sitzen innen auf dem Foto, nicht am Bildschirmrand */
.fbp-lb-flaeche { position: relative; display: block; line-height: 0; }
.fbp-lb-bild img { display: block; max-width: calc(100vw - 48px); max-height: calc(100vh - 90px); width: auto; height: auto; object-fit: contain; }
.fbp-lb-zahl { font-size: 13px; opacity: .75; }
.fbp-lightbox button {
	position: absolute;
	border: 0;
	background: rgba(255, 255, 255, .1);
	color: #fff;
	cursor: pointer;
	line-height: 1;
	border-radius: 50%;
	width: 48px;
	height: 48px;
	font-size: 30px;
	padding: 0;
}
.fbp-lightbox button:hover, .fbp-lightbox button:focus-visible { background: var(--fbp-akzent); color: #1d1810; }
.fbp-lb-zu { top: 16px; right: 16px; }
.fbp-lightbox .fbp-lb-zurueck,
.fbp-lightbox .fbp-lb-vor {
	top: 50%;
	transform: translateY(-50%);
	background: rgba(20, 26, 14, .62);
	border: 1px solid color-mix(in srgb, var(--fbp-akzent) 75%, transparent);
	color: var(--fbp-namen);
	box-shadow: 0 4px 18px rgba(0, 0, 0, .45);
}
.fbp-lb-zurueck { left: 14px; }
.fbp-lb-vor { right: 14px; }
.fbp-lightbox.fbp-eins .fbp-lb-zurueck, .fbp-lightbox.fbp-eins .fbp-lb-vor { display: none; }

/* ---------- Menue: Pferde mit Bild ---------- */
.fbp-menue-pferd > a { display: flex !important; align-items: center; gap: 10px; }
.fbp-menue-bild {
	flex: none;
	width: 34px !important;
	height: 34px !important;
	object-fit: cover;
	border-radius: 50%;
	border: 2px solid var(--fbp-akzent, #C6A757);
}
.fbp-menue-bild-leer { display: inline-block; background: #3a3326; }

/* ---------- Schmal: Name und Rahmen fuellen den ersten Blick, Pedigree folgt beim Scrollen ---------- */
@media (max-width: 860px) {
	.fbp-buehne { min-height: 0; padding-block: 20px 0; }
	.fbp-buehne-innen { grid-template-columns: minmax(0, 1fr); grid-template-areas: "kopf" "bild" "weiter" "pedigree"; grid-template-rows: auto; gap: 18px; }
	.fbp-buehne-bild { width: min(100%, 360px, calc((100svh - var(--fbp-kopfhoehe, 110px) - 140px) * .755)); min-width: 220px; }
	.fbp-buehne-pedigree { margin-top: 56px; }
	.fbp-weiter { margin-top: 0; }
	.fbp-pedigree { font-size: .78em; --fbp-pd-luecke: 12px; --fbp-pd-zeile: 42px; }
	.fbp-pd-zelle { padding: 0 7px; }
	.fbp-erfolge li { grid-template-columns: minmax(0, 1fr); gap: 2px; }
	.fbp-lb-bild img { max-width: 100vw; }
	.fbp-lightbox .fbp-lb-zurueck, .fbp-lightbox .fbp-lb-vor { width: 42px; height: 42px; font-size: 26px; }
	.fbp-lb-zurueck { left: 8px; }
	.fbp-lb-vor { right: 8px; }
}
/* Kein Desktop (unter 1200 px oder Touch-Geraet wie iPad): Pedigree immer unter dem Bild, Bild mittig;
   Kontaktseite einspaltig mit dem Formular zuerst (Wunsch 20.10.2026) */
@media (max-width: 1199px), (hover: none) and (pointer: coarse) {
	.fbp-buehne { min-height: 0; padding-block: 20px 0; }
	.fbp-buehne-innen { grid-template-columns: minmax(0, 1fr); grid-template-areas: "kopf" "bild" "weiter" "pedigree"; grid-template-rows: auto; gap: 18px; }
	.fbp-buehne-innen:not(:has(.fbp-buehne-pedigree)) { grid-template-columns: minmax(0, 1fr); grid-template-areas: "kopf" "bild" "weiter"; }
	.fbp-buehne-bild { justify-self: center; width: min(100%, 440px, calc((100svh - var(--fbp-kopfhoehe, 110px) - 160px) * .755)); min-width: min(220px, 100%); }
	.fbp-buehne-pedigree { margin-top: 56px; }
	.fbp-weiter { margin-top: 0; }
	.fbp-kontakt .fbp-kontakt-raster { grid-template-columns: minmax(0, 1fr); gap: 48px; }
	.fbp-kontakt .fbp-kontakt-formular { order: -1; }
}
/* Pedigree: Mindestbreite, darunter seitlich wischen statt Namen zu trennen */
.fbp-pd-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-color: color-mix(in srgb, var(--fbp-akzent) 60%, transparent) transparent; }
.fbp-pd-scroll .fbp-pedigree { min-width: 600px; }
.fbp-pd-wisch { display: none; margin: 12px 0 0; text-align: center; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--fbp-akzent); }
@media (max-width: 699px) {
	.fbp-pd-wisch { display: block; }
	.fbp-pd-scroll { padding-bottom: 6px; }
}

@media (prefers-reduced-motion: reduce) {
	.fbp-js .fbp-einblenden { opacity: 1; transform: none; transition: none; }
	.fbp-weiter::after { animation: none; }
	.fbp-karte .fbp-karte-bild, .fbp-startlink .fbp-rahmen { transition: none; }
}

/* ---------- Kontaktseite ---------- */
.fbp-kontakt { color: var(--fbp-text, inherit); }
.fbp-kontakt-lead {
	max-width: 640px;
	margin: 0 auto 56px;
	text-align: center;
	font-size: 1.25em;
	line-height: 1.55;
	color: #fff8e6;
}
.fbp-kontakt-raster {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: 40px;
	align-items: start;
}
/* Tafel mit Doppel-Goldkontur, wie Begruessungstext und Namensschilder */
.fbp-tafel {
	position: relative;
	padding: 40px clamp(20px, 4vw, 44px) 36px;
	background: linear-gradient(180deg, rgba(0, 0, 0, .26), rgba(0, 0, 0, .12));
	border: 1px solid var(--fbp-akzent);
	box-shadow:
		inset 0 0 0 6px rgba(0, 0, 0, .28),
		inset 0 0 0 7px color-mix(in srgb, var(--fbp-akzent) 50%, transparent),
		0 24px 50px -28px rgba(0, 0, 0, .8);
}
.fbp-tafel::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	width: 12px;
	height: 12px;
	background: var(--fbp-akzent);
	border: 3px solid #2c3820;
	box-shadow: 0 0 0 1px var(--fbp-akzent);
	transform: translate(-50%, -50%) rotate(45deg);
}
.fbp-tafel > h2 {
	margin: 0 0 24px;
	text-align: center;
	font-size: 1.35em;
	color: var(--fbp-namen) !important;
}
.fbp-kontakt-daten dl { margin: 0; display: grid; gap: 18px; }
.fbp-kontakt-daten dl > div { border-left: 2px solid var(--fbp-akzent); padding-left: 14px; }
.fbp-kontakt-daten dt { margin: 0; font-size: .74em; letter-spacing: .16em; text-transform: uppercase; color: var(--fbp-leise); }
.fbp-kontakt-daten dd { margin: 3px 0 0; font-size: 1.05em; line-height: 1.5; }
.fbp-kontakt-daten a { color: var(--fbp-namen); text-decoration: none; border-bottom: 1px solid color-mix(in srgb, var(--fbp-namen) 35%, transparent); }
.fbp-kontakt-daten a:hover { border-bottom-color: var(--fbp-namen); }
.fbp-kontakt-anruf { margin: 28px 0 0; text-align: center; }

/* Formular (Contact Form 7 und uebliche Formulare) in der Tafel */
.fbp-kontakt-formular form p { margin: 0 0 18px; }
.fbp-kontakt-formular label { display: block; font-size: .8em; letter-spacing: .12em; text-transform: uppercase; color: var(--fbp-leise); }
.fbp-kontakt-formular input[type="text"],
.fbp-kontakt-formular input[type="email"],
.fbp-kontakt-formular input[type="tel"],
.fbp-kontakt-formular textarea,
.fbp-kontakt-formular select {
	display: block;
	width: 100%;
	margin-top: 6px;
	padding: 12px 14px;
	font: inherit;
	font-size: 16px;
	letter-spacing: normal;
	text-transform: none;
	color: #F1EEE3;
	background: rgba(0, 0, 0, .28);
	border: 1px solid color-mix(in srgb, var(--fbp-akzent) 45%, transparent);
	border-radius: 2px;
	box-shadow: none;
	transition: border-color .2s ease, background .2s ease;
}
.fbp-kontakt-formular textarea { min-height: 150px; resize: vertical; }
.fbp-kontakt-formular input:focus,
.fbp-kontakt-formular textarea:focus {
	outline: none;
	border-color: var(--fbp-akzent);
	background: rgba(0, 0, 0, .38);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--fbp-akzent) 22%, transparent);
}
/* Platzhalter blass und normal stark, sonst sehen sie aus wie schon ausgefuellt (Blocksy faerbt input-Platzhalter kraeftiger) */
.fbp-kontakt-formular ::placeholder,
.fbp-kontakt-formular input::placeholder,
.fbp-kontakt-formular textarea::placeholder {
	color: rgba(241, 238, 227, .4) !important;
	font-weight: 400 !important;
	opacity: 1;
}
.fbp-kontakt-formular .wpcf7-acceptance,
.fbp-kontakt-formular .wpcf7-list-item-label { font-size: .95em; letter-spacing: normal; text-transform: none; color: var(--fbp-text, inherit); }
.fbp-kontakt-formular .wpcf7-list-item { margin: 0; }
.fbp-kontakt-formular input[type="checkbox"] { accent-color: var(--fbp-akzent); width: 18px; height: 18px; vertical-align: -3px; margin-right: 8px; }
.fbp-kontakt-formular .fbp-form-hinweis { font-size: .88em; color: var(--fbp-leise); line-height: 1.5; letter-spacing: normal; text-transform: none; }
.fbp-kontakt-formular .fbp-form-hinweis a { color: var(--fbp-namen); }
.fbp-kontakt-formular input[type="submit"],
.fbp-kontakt-formular button[type="submit"] {
	display: inline-block;
	margin-top: 6px;
	padding: 13px 34px 12px;
	font: inherit;
	font-size: .9em;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: #1d1810;
	background: linear-gradient(180deg, #f3df9f, var(--fbp-akzent) 60%, #b8954a);
	border: 1px solid var(--fbp-akzent);
	border-radius: 2px;
	box-shadow: inset 0 0 0 3px rgba(255, 255, 255, .18), inset 0 0 0 4px rgba(0, 0, 0, .25), 0 8px 18px -8px rgba(0, 0, 0, .7);
	cursor: pointer;
	transition: filter .2s ease;
}
.fbp-kontakt-formular input[type="submit"]:hover,
.fbp-kontakt-formular button[type="submit"]:hover { filter: brightness(1.08); }
.fbp-kontakt-formular input[type="submit"]:disabled { opacity: .55; cursor: not-allowed; }
.fbp-kontakt-formular .wpcf7-not-valid-tip { color: #f2b8a2; font-size: .85em; margin-top: 4px; letter-spacing: normal; text-transform: none; }
.fbp-kontakt-formular .wpcf7 form .wpcf7-response-output {
	margin: 18px 0 0;
	padding: 12px 16px;
	border: 1px solid var(--fbp-akzent);
	color: var(--fbp-text, inherit);
}
.fbp-kontakt-formular .wpcf7-spinner { background-color: var(--fbp-akzent); }

/* Anfahrt */
.fbp-anfahrt { margin-top: 96px; text-align: center; }
.fbp-anfahrt > h2 { margin: 0 0 28px; color: var(--fbp-namen) !important; }
.fbp-karte-rahmen {
	padding: 6px;
	border: 1px solid var(--fbp-akzent);
	box-shadow: inset 0 0 0 5px rgba(0, 0, 0, .3), 0 24px 50px -28px rgba(0, 0, 0, .8);
	background: #131A0E;
}
.fbp-karte-rahmen img { display: block; width: 100%; height: auto; }
.fbp-karte-fuss { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 24px; margin: 10px 0 0; font-size: .78em; color: var(--fbp-leise); }
.fbp-route { list-style: none; margin: 32px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; text-align: left; }
.fbp-route li { border-top: 1px solid color-mix(in srgb, var(--fbp-akzent) 45%, transparent); padding-top: 14px; }
.fbp-route b { display: block; font-size: 1.15em; color: var(--fbp-namen); margin-bottom: 4px; }
.fbp-route span { display: block; font-size: .95em; line-height: 1.5; }
.fbp-route em { display: block; margin-top: 6px; font-style: normal; font-size: .8em; letter-spacing: .08em; color: var(--fbp-leise); }

@media (max-width: 900px) {
	.fbp-kontakt-raster { grid-template-columns: minmax(0, 1fr); gap: 48px; }
	.fbp-route { grid-template-columns: minmax(0, 1fr); }
	.fbp-anfahrt { margin-top: 72px; }
}

/* ---------- Team ---------- */
.fbp-personen { color: var(--fbp-text, inherit); }
.fbp-personen-lead {
	max-width: 640px;
	margin: 0 auto 56px;
	text-align: center;
	font-size: 1.25em;
	line-height: 1.55;
	color: #fff8e6;
}
.fbp-personen-raster {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 56px 64px;
	max-width: 1000px;
	margin: 0 auto;
	align-items: start;
}
.fbp-person { text-align: center; }
/* nur eine Person: schmale Spalte in der Mitte statt volle Breite */
.fbp-personen-raster:has(> .fbp-person:only-child) { grid-template-columns: minmax(0, 620px); justify-content: center; }
.fbp-person-bild { width: min(100%, 340px); margin: 0 auto; }
.fbp-person-name {
	margin: 22px 0 8px;
	font-size: 1.6em;
	color: var(--fbp-namen) !important;
}
.fbp-person-rolle {
	display: inline-block;
	position: relative;
	margin: 0 0 22px;
	padding: 8px 26px 7px;
	font-size: .78em;
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--fbp-namen);
	background: linear-gradient(180deg, rgba(0, 0, 0, .28), rgba(0, 0, 0, .12));
	border: 1px solid var(--fbp-akzent);
	box-shadow: inset 0 0 0 3px rgba(0, 0, 0, .35), inset 0 0 0 4px color-mix(in srgb, var(--fbp-akzent) 55%, transparent);
}
.fbp-person-rolle::before,
.fbp-person-rolle::after {
	content: "";
	position: absolute;
	top: 50%;
	width: 5px;
	height: 5px;
	background: var(--fbp-akzent);
	transform: translateY(-50%) rotate(45deg);
}
.fbp-person-rolle::before { left: 10px; }
.fbp-person-rolle::after { right: 10px; }
.fbp-person-text { text-align: left; font-size: 1.05em; line-height: 1.75; }
.fbp-person-text p { margin: 0 0 1em; }
/* Tafel-Ueberschrift im Begruessungs-/Philosophie-Block */
.fbp-willkommen > h2,
.fbp-willkommen > .wp-block-group__inner-container > h2 {
	margin: 0 0 22px;
	text-align: center;
	color: var(--fbp-namen) !important;
}
.fbp-willkommen > .fbp-ueberzeile,
.fbp-willkommen > .wp-block-group__inner-container > .fbp-ueberzeile { color: var(--fbp-akzent); }
.fbp-team-ende { margin: 72px 0 24px; text-align: center; }
/* Team: Philosophie-Tafel oben, darunter die Personen mit Abstand */
.entry-content > .fbp-willkommen:first-child { margin-top: 48px !important; }
.fbp-willkommen + .fbp-personen { margin-top: 88px; }
.fbp-team-ende p { margin: 0 0 18px; font-size: 1.15em; }

/* Startseite: mehr Luft zwischen Kopfzeile und Begruessung (Wunsch 20.10.2026) */
body:has(.fbp-kategorien) .entry-content .fbp-seitentitel.fbp-seitentitel,
body:has(.fbp-kategorien) .hero-section {
	margin-top: 44px !important;
}
/* Ist im Theme der obere Innenabstand der Seite abgeschaltet (Blocksy: Abstand nur unten), die 60 px dazurechnen */
.ct-container-full:not([data-vertical-spacing*="top"]) .entry-content > .fbp-seitentitel:first-child {
	margin-top: 60px !important;
}
body:has(.fbp-kategorien) .ct-container-full:not([data-vertical-spacing*="top"]) .entry-content > .fbp-seitentitel:first-child {
	margin-top: 104px !important;
}
/* Blocksy-Standard am Handy: 50 statt 60 px */
@media (max-width: 689.98px) {
	.ct-container-full:not([data-vertical-spacing*="top"]) .entry-content > .fbp-seitentitel:first-child { margin-top: 50px !important; }
	body:has(.fbp-kategorien) .ct-container-full:not([data-vertical-spacing*="top"]) .entry-content > .fbp-seitentitel:first-child { margin-top: 94px !important; }
}

/* ---------- Suchergebnisseite (templates/suche.php) ---------- */
.fbp-suche .fbp-seitenkopf { margin-bottom: 28px; }
.fbp-suche .fbp-seitenkopf h1 { font-family: "FBP Baskerville", Baskerville, Georgia, serif; font-weight: 400; }
.fbp-suche-zahl { margin: 18px 0 0; font-size: 13px; letter-spacing: .16em; text-transform: uppercase; color: var(--fbp-akzent); }
.fbp-suchform {
	display: flex;
	max-width: 640px;
	margin: 0 auto 64px;
	border: 1px solid color-mix(in srgb, var(--fbp-akzent) 70%, transparent);
	background: rgba(0, 0, 0, .25);
	box-shadow: inset 0 0 0 4px rgba(0, 0, 0, .3), inset 0 0 0 5px color-mix(in srgb, var(--fbp-akzent) 35%, transparent);
}
.fbp-suchform:focus-within { border-color: var(--fbp-akzent); }
.fbp-suchform input[type="search"] {
	flex: 1;
	min-width: 0;
	height: 56px;
	padding: 0 20px;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--fbp-text, #F1EEE3) !important;
	font-size: 18px;
	caret-color: var(--fbp-akzent);
}
.fbp-suchform input[type="search"]::placeholder { color: rgba(241, 238, 227, .45); }
.fbp-suchform input[type="search"]:focus { outline: none; }
.fbp-suchform button {
	flex: none;
	margin: 7px;
	padding: 0 26px;
	border: 0;
	border-radius: 2px;
	background: linear-gradient(180deg, #f3df9f, var(--fbp-akzent) 60%, #b8954a);
	color: #1d1810;
	font-weight: 700;
	font-size: 13px;
	letter-spacing: .14em;
	text-transform: uppercase;
	cursor: pointer;
}
.fbp-suchform button:hover, .fbp-suchform button:focus-visible { background: var(--fbp-namen); }
.fbp-suche .fbp-abschnitt + .fbp-abschnitt { margin-top: 64px; }
.fbp-treffer-liste { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 28px; }
.fbp-treffer.fbp-tafel {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 32px 30px 28px;
	text-decoration: none;
	color: var(--fbp-text, #F1EEE3) !important;
	transition: filter .3s ease, border-color .3s ease;
}
.fbp-treffer:hover, .fbp-treffer:focus-visible { filter: brightness(1.08); border-color: var(--fbp-namen); }
.fbp-treffer-titel { font-size: 1.3em; font-weight: 600; color: var(--fbp-namen); }
.fbp-treffer-text { font-size: .95em; line-height: 1.65; color: rgba(241, 238, 227, .82); }
.fbp-treffer-mehr { margin-top: auto; padding-top: 6px; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--fbp-akzent); }
.fbp-suche-leer { max-width: 760px; margin: 0 auto; text-align: center; line-height: 1.8; }
.fbp-suche-leer .fbp-knopf { margin: 8px 6px 0; }
.fbp-seitenzahlen { margin-top: 56px; display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; }
.fbp-seitenzahlen .page-numbers {
	min-width: 42px;
	padding: 9px 12px;
	border: 1px solid color-mix(in srgb, var(--fbp-akzent) 60%, transparent);
	color: var(--fbp-akzent);
	text-align: center;
	text-decoration: none;
}
.fbp-seitenzahlen .page-numbers.current,
.fbp-seitenzahlen a.page-numbers:hover { background: var(--fbp-akzent); color: #1d1810; }
@media (max-width: 600px) {
	.fbp-suchform input[type="search"] { height: 50px; font-size: 16px; padding: 0 14px; }
	.fbp-suchform button { padding: 0 16px; }
}

/* Lightbox-Pfeile als gezeichnete Winkel statt Schriftzeichen: die Pfeilzeichen sitzen je nach Schrift nicht mittig im Kreis */
.fbp-lightbox .fbp-lb-zurueck,
.fbp-lightbox .fbp-lb-vor {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0;
}
.fbp-lightbox .fbp-lb-zurueck::before,
.fbp-lightbox .fbp-lb-vor::before {
	content: "";
	width: 11px;
	height: 11px;
	border-top: 2px solid currentColor;
	border-left: 2px solid currentColor;
}
.fbp-lightbox .fbp-lb-zurueck::before { transform: translateX(2px) rotate(-45deg); }
.fbp-lightbox .fbp-lb-vor::before { transform: translateX(-2px) rotate(135deg); }
/* Schliessen-Kreuz ebenfalls gezeichnet, genau in der Kreismitte */
.fbp-lightbox .fbp-lb-zu { font-size: 0; }
.fbp-lightbox .fbp-lb-zu::before,
.fbp-lightbox .fbp-lb-zu::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 18px;
	height: 2px;
	background: currentColor;
	border-radius: 1px;
}
.fbp-lightbox .fbp-lb-zu::before { transform: translate(-50%, -50%) rotate(45deg); }
.fbp-lightbox .fbp-lb-zu::after { transform: translate(-50%, -50%) rotate(-45deg); }
