/* ==========================================================================
   Babor FSE Studio Theme — was theme.json nicht kann
   ==========================================================================
   Prinzip: Paritaet im Ergebnis, nicht in der Mechanik. Husum ist Zielbild,
   keine Bauanleitung. Alle Werte kommen aus theme.json (Schrift-, Abstands-,
   Farb- und Zeilenhoehen-Tokens); hier stehen nur Raster, Sticky,
   Breakpoint-Logik, Untermenue und Zustandsdetails, die sich nicht als
   Block-Attribut oder Global Style ausdruecken lassen. Abweichungen gegen
   Husum: docs/ABWEICHUNGEN.md.

   Breakpoints:
     Kopf: Logo | Navigation | Lupe + TERMINE — Menü mittig, sonst mittig im freien Raum, sonst Burger (mit Suche,
           TERMINE sichtbar bis 782). Umschaltbreiten je Installation berechnet (inc/kopf.php, HUSUM-BEDARF #16).
     <   782px  Mobil — Core-Grenze, an der Spalten stapeln (Husum: 768).
                Eine eigene Grenze braeuchte !important gegen Core.
   ========================================================================== */

/* --- Seitengeruest --------------------------------------------------------
   Kein Block-Gap zwischen Meta-Leiste, Header, Inhalt und Footer. */
.wp-site-blocks > * {
	margin-block-start: 0;
}

/* Meta-Leiste und Hauptzeile zentrieren ihren Inhalt vertikal (Grid). Ein
   Grid-Kind mit margin-inline:auto (constrained layout) schrumpft sonst auf
   Inhaltsbreite -> Breite explizit auf die Box. */
.bfs-topbar > *,
.bfs-hauptzeile > * {
	width: 100%;
}

/* --- Block-Stil „Dachzeile" (Absatz) ---------------------------------------
   Großschreibung + Zeichenabstand sind in theme.json gesperrt
   (typography.textTransform/letterSpacing = false) — nur über diesen Stil. */
.is-style-dachzeile {
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

/* „ß“ bleibt auch in Großschrift „ß“ (inc/eszett.php; CSS-uppercase machte „SS“). */
.bfs-eszett { text-transform: none; }

/* ==========================================================================
   Meta-Leiste (scrollt mit — nicht sticky)
   ========================================================================== */
.bfs-topbar {
	display: grid;
	align-content: center;
	min-height: var(--wp--custom--header--topbar-height);
	padding-block: 0;
}

.bfs-topbar__adresse {
	position: relative;
	margin: 0;
	box-sizing: border-box; /* Polster in die 100 %-Breite (s. o.) */
	padding-left: calc(13px + 0.5rem); /* Icon 13px + Luft */
	font-size: var(--wp--preset--font-size--small);
	font-weight: 400;
	line-height: var(--wp--custom--line-height--heading);
	text-transform: uppercase;
}

.bfs-topbar__adresse::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 16px;
	height: 16px;
	transform: translateY(-50%);
	background-color: currentColor; /* Phosphor map-pin, Regular (16 px) */
	-webkit-mask: url("../icons/ph-map-pin-regular.svg") center / contain no-repeat;
	mask: url("../icons/ph-map-pin-regular.svg") center / contain no-repeat;
}

@media (max-width: 1024px) {
	.bfs-topbar__adresse { font-size: var(--wp--preset--font-size--x-small); }
}
@media (max-width: 781.98px) {
	.bfs-topbar__adresse { font-size: var(--wp--preset--font-size--meta); }
}

/* ==========================================================================
   Hauptzeile (fix hoch, sticky)
   ==========================================================================
   Sticky sitzt am Template-Part-Wrapper, nicht an der Gruppe: position:sticky
   wirkt nur innerhalb des Elternelements, und das ist .wp-site-blocks. */
.wp-site-blocks > .bfs-header-part {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 100;
}
@media (max-width: 600px) {
	/* Admin-Bar ist hier nicht fixiert -> kein Versatz. */
	.wp-site-blocks > .bfs-header-part { top: 0; }
}

.bfs-hauptzeile {
	display: grid;
	align-content: center;
	min-height: var(--wp--custom--header--main-height);
	padding-block: 0;
	box-shadow: 0 0 38px 0 rgba(0, 0, 0, 0.1);
}

/* Logo | Navigation | Button: die Navigation steht exakt in der Mitte der
   Content-Box, Logo und Button an den Kanten. Das Raster ersetzt das
   space-between des Flex-Layouts. */
.bfs-hauptzeile .bfs-hauptzeile__raster {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: center;
	gap: 0;
}

/* Logo: Breite kommt aus dem Block-Attribut (Site-Editor), die Spalte deckelt. */
.bfs-logo {
	margin: 0;
	line-height: 0;
}
.bfs-logo a {
	display: block;
}
.bfs-logo img {
	display: block;
	max-width: 100%;
	height: auto;
}

/* --- Navigation (Desktop) ------------------------------------------------- */
.bfs-hauptnav {
	justify-self: center;
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 400;
	line-height: var(--wp--custom--line-height--tight);
	letter-spacing: 0.5px;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink);
}
.bfs-hauptnav,
.bfs-hauptnav .wp-block-navigation__container {
	gap: var(--wp--preset--spacing--20);
}

.bfs-hauptnav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	padding: 0 var(--wp--preset--spacing--10);
}
.bfs-hauptnav .wp-block-navigation__container > .has-child > .wp-block-navigation-item__content {
	padding-right: 0;
}

.bfs-hauptnav .wp-block-navigation-item__content:hover,
.bfs-hauptnav .wp-block-navigation-item__content:focus-visible {
	color: var(--wp--preset--color--grey);
}
.bfs-hauptnav .current-menu-item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--black);
}

/* Caret: gefuelltes Dreieck statt Core-Chevron (lokale SVG als Maske). */
.bfs-hauptnav .wp-block-navigation__container > .has-child > .wp-block-navigation__submenu-icon {
	width: 1em;
	height: 1em;
	margin: 0 var(--wp--preset--spacing--10) 0 var(--wp--preset--spacing--20);
	padding: 0;
}
.bfs-hauptnav .wp-block-navigation__submenu-icon svg {
	display: none;
}
.bfs-hauptnav .wp-block-navigation__submenu-icon::before {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	background-color: currentColor;
	-webkit-mask: url("../icons/ph-caret-down-regular.svg") center / contain no-repeat;
	mask: url("../icons/ph-caret-down-regular.svg") center / contain no-repeat;
}

/* Untermenue (Desktop): weiss, ohne Rahmen/Schatten, so breit wie der
   laengste Eintrag, mit Abstand unter dem Link. Selektoren mit
   .wp-block-navigation, weil Core mit (0,4,0) Rahmen, Padding und Schwarz
   setzt. */
.bfs-hauptnav.wp-block-navigation .wp-block-navigation__submenu-container {
	left: 0;
	width: max-content;
	min-width: 0;
	margin-top: var(--wp--preset--spacing--50);
	padding: 0;
	border: 0;
	box-shadow: none;
	background-color: var(--wp--preset--color--white);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
	color: var(--wp--preset--color--anthracite);
}
/* Unsichtbare Bruecke ueber den Abstand, damit Hover nicht abreisst. */
.bfs-hauptnav .wp-block-navigation__submenu-container::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 100%;
	height: var(--wp--preset--spacing--50);
}
.bfs-hauptnav.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container {
	left: 100%;
	top: 0;
	margin-top: 0;
}
.bfs-hauptnav.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container::before {
	content: none;
}
.bfs-hauptnav.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--20) var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
	white-space: nowrap;
}
/* Verschachtelt (Medical): Caret nach rechts, direkt hinter dem Text. */
.bfs-hauptnav.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon {
	position: static;
	width: 10px;
	height: 1em;
	margin: 0 var(--wp--preset--spacing--20) 0 calc(-1 * var(--wp--preset--spacing--10));
	padding: 0;
	transform: rotate(-90deg);
}

/* --- TERMINE-Button (Schrift/Polster aus theme.json elements.button) ------ */
.bfs-termine {
	justify-content: flex-end;
}
.bfs-termine .wp-block-button__link {
	box-shadow: 0 0 27px 0 rgba(0, 0, 0, 0.12);
	text-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}

/* Sichtbarer Fokus (WCAG 2.4.7) */
.bfs-hauptzeile a:focus-visible,
.bfs-hauptzeile button:focus-visible,
.bfs-footer-haupt a:focus-visible,
.bfs-footer-service a:focus-visible,
.bfs-footer-recht a:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

/* --- Burger / Menü mittig / Menü im freien Raum ---------------------------
   Umschaltbreiten je Installation (HUSUM-BEDARF #16): aus Logo-Bereich, Menülänge und Aktionen berechnet (Plugin
   kopf.php), Media-Queries erzeugt das Theme (inc/kopf.php) — nicht mehr fest 1200 px. */

@media (max-width: 781.98px) {
	.bfs-hauptzeile .bfs-hauptzeile__raster {
		grid-template-columns: auto 1fr auto;
	}
	.bfs-logo { max-width: 130px; } /* Husum mobil: Logo 130 breit */
	.bfs-hauptzeile .bfs-termine { display: none; } /* schlaegt .is-layout-flex */
	.bfs-hauptnav { grid-column: 3; }
}

.bfs-hauptnav .wp-block-navigation__responsive-container-open {
	color: var(--wp--preset--color--anthracite);
}
/* Burger: kraeftiges Balken-Icon statt des duennen Core-Icons; lokale SVG
   als Maske, Farbe ueber currentColor. */
.bfs-hauptnav .wp-block-navigation__responsive-container-open svg {
	display: none;
}
.bfs-hauptnav .wp-block-navigation__responsive-container-open::before {
	content: "";
	display: block;
	width: 28px;
	height: 28px;
	background-color: currentColor; /* Phosphor list, Light — dünn wie babor.com */
	-webkit-mask: url("../icons/ph-list.svg") center / contain no-repeat;
	mask: url("../icons/ph-list.svg") center / contain no-repeat;
}
/* Schließen im Overlay: Phosphor x, Light (Core-Icon ausgeblendet). */
.bfs-hauptnav .wp-block-navigation__responsive-container-close svg {
	display: none;
}
.bfs-hauptnav .wp-block-navigation__responsive-container-close::before {
	content: "";
	display: block;
	width: 28px;
	height: 28px;
	background-color: currentColor;
	-webkit-mask: url("../icons/ph-x.svg") center / contain no-repeat;
	mask: url("../icons/ph-x.svg") center / contain no-repeat;
}

/* Overlay (offenes Burger-Menue): Verhalten bewusst Core (Fokusfalle, Esc,
   aria), Optik angeglichen (links, Hauptpunkte versal, Unterpunkte normal). */
.bfs-hauptnav .wp-block-navigation__responsive-container.is-menu-open {
	padding: var(--wp--preset--spacing--40) var(--wp--custom--inset);
	background-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--anthracite);
}
.bfs-hauptnav .is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: var(--wp--preset--spacing--70);
	align-items: flex-start;
}
.bfs-hauptnav.wp-block-navigation .is-menu-open .wp-block-navigation__container,
.bfs-hauptnav.wp-block-navigation .is-menu-open .wp-block-navigation-item,
.bfs-hauptnav.wp-block-navigation .is-menu-open .wp-block-navigation__submenu-container {
	align-items: flex-start;
	text-align: left;
}
.bfs-hauptnav.wp-block-navigation .is-menu-open .wp-block-navigation__container {
	gap: var(--wp--preset--spacing--20);
	font-size: var(--wp--preset--font-size--medium);
}
.bfs-hauptnav.wp-block-navigation .is-menu-open .wp-block-navigation__submenu-container {
	width: auto;
	margin-top: 0;
	padding: var(--wp--preset--spacing--10) 0 0 var(--wp--preset--spacing--40);
	gap: var(--wp--preset--spacing--10);
	font-size: var(--wp--preset--font-size--medium);
}
.bfs-hauptnav.wp-block-navigation .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 0;
	white-space: normal;
}
.bfs-hauptnav .is-menu-open .wp-block-navigation__submenu-container::before {
	content: none;
}

/* ==========================================================================
   Footer — Hauptzeile (schwarz, 4 x 25 %; Spaltenbreiten und Abstaende als
   Block-Attribute im Pattern, Titel -> Liste = Block-Gap)
   ========================================================================== */
.bfs-footer-haupt {
	padding-block: var(--wp--preset--spacing--90);
}
@media (min-width: 782px) and (max-width: 1024px) {
	.bfs-footer-haupt { padding-block: var(--wp--preset--spacing--80); }
}
@media (max-width: 781.98px) {
	.bfs-footer-haupt { padding-block: var(--wp--preset--spacing--70) var(--wp--preset--spacing--80); }
}

.bfs-footer-titel {
	font-size: var(--wp--preset--font-size--medium);
	text-transform: uppercase;
	color: var(--wp--preset--color--sand);
}

.bfs-footer-liste {
	padding: 0;
	list-style: none;
}
.bfs-footer-liste li + li,
.bfs-oeffnungszeiten li + li {
	margin-top: var(--wp--preset--spacing--10);
}
/* Absatz zwischen Adresse und Kontakt bzw. zwischen den Zeitgruppen */
.bfs-footer-spalten > .wp-block-column > .bfs-footer-liste--kontakt,
.bfs-oeffnungszeiten ul + ul {
	margin-top: var(--wp--preset--spacing--30);
}

/* Footer-Navigationen (wp_navigation, vertikal): Optik wie die Listen. */
.bfs-footer-nav.wp-block-navigation {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 300;
	line-height: var(--wp--custom--line-height--body);
	text-transform: none;
	letter-spacing: normal;
	color: inherit;
}
.bfs-footer-nav.wp-block-navigation,
.bfs-footer-nav.wp-block-navigation .wp-block-navigation__container {
	gap: var(--wp--preset--spacing--10);
}
.bfs-footer-nav.wp-block-navigation .wp-block-navigation-item__content {
	padding: 0;
}
.bfs-oeffnungszeiten ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.bfs-footer-haupt a {
	color: inherit;
	text-decoration: none;
}
.bfs-footer-haupt a:hover {
	text-decoration: underline;
}

/* ==========================================================================
   Footer — Service-Zeile (Termin bzw. Newsletter | Social | Zahlungsarten)
   ========================================================================== */
.bfs-footer-service {
	padding-block: var(--wp--preset--spacing--50) 0;
}
/* Polster in die Spaltenbreite (33.33 % inkl. Polster). */
.bfs-footer-service__spalten > .wp-block-column {
	box-sizing: border-box;
	padding: var(--wp--preset--spacing--50);
}
.bfs-footer-service__spalten > .wp-block-column:first-child {
	padding-left: 0;
}
.bfs-footer-service__spalten > .wp-block-column:last-child {
	padding-right: 0;
}

.bfs-footer-untertitel,
.footer-aufruf__titel {
	margin: 0;
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 400;
	line-height: var(--wp--custom--line-height--tight);
	text-transform: uppercase;
}
.bfs-footer-service__social .bfs-footer-untertitel {
	text-align: center;
}

.bfs-social {
	gap: var(--wp--preset--spacing--30);
}
.bfs-social .wp-social-link {
	box-sizing: border-box; /* 50px inkl. Ring */
	width: 50px;
	height: 50px;
	border: 1px solid currentColor;
	border-radius: 50%;
}
.bfs-social .wp-social-link a {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	padding: 0;
}
/* Social: Linien-Logos (Phosphor, Light) statt der gefüllten Core-Logos —
   gilt für Footer (.bfs-social) und Kontaktseite (.bfs-kontakt__social). */
.bfs-social .wp-social-link svg,
.bfs-kontakt__social .wp-social-link svg {
	display: none;
}
.bfs-social .wp-social-link a::before,
.bfs-kontakt__social .wp-social-link a::before {
	content: "";
	display: block;
	width: 24px;
	height: 24px;
	background-color: currentColor;
	-webkit-mask: var(--bfs-social-icon) center / contain no-repeat;
	mask: var(--bfs-social-icon) center / contain no-repeat;
}
.wp-social-link-instagram { --bfs-social-icon: url("../icons/ph-instagram-logo.svg"); }
.wp-social-link-facebook { --bfs-social-icon: url("../icons/ph-facebook-logo.svg"); }

/* Zahlungsarten: alle Icons in EINER Zeile, verteilt auf die Spaltenbreite
   (Husum bricht Amex um — bewusst nicht uebernommen, Cowork-Review). */
.bfs-zahlungsarten.bfs-zahlungsarten {
	flex-wrap: nowrap;
	justify-content: space-between;
	gap: 0;
}
.bfs-zahlungsarten > .wp-block-image {
	flex: 0 0 auto;
	margin: 0;
}
.bfs-zahlungsarten > .wp-block-image img {
	display: block;
}
/* Logos einfarbig über das umgebende Element (Token): Das SVG (fill="currentColor") dient als Maske,
   die Fläche hat die Textfarbe der Figur; das Bild selbst bleibt für den Alternativtext im Markup. */
.bfs-zahlung { color: var(--wp--preset--color--black); }
.bfs-zahlung img {
	background-color: currentColor;
	-webkit-mask: var(--bfs-zahlung-icon) center / contain no-repeat;
	mask: var(--bfs-zahlung-icon) center / contain no-repeat;
	object-position: -9999px 0;
}
.bfs-zahlung--euro { --bfs-zahlung-icon: url("../icons/euro.svg"); }
.bfs-zahlung--apple-pay { --bfs-zahlung-icon: url("../icons/apple-pay.svg"); }
.bfs-zahlung--visa { --bfs-zahlung-icon: url("../icons/visa.svg"); }
.bfs-zahlung--mastercard { --bfs-zahlung-icon: url("../icons/mastercard.svg"); }
.bfs-zahlung--credit-card { --bfs-zahlung-icon: url("../icons/credit-card.svg"); }
.bfs-zahlung--amex { --bfs-zahlung-icon: url("../icons/amex.svg"); }

@media (max-width: 781.98px) {
	/* Gestapelt: Spalte 1 + Social behalten das rechte Polster, Zahlungsarten
	   volle Breite, linksbuendig. */
	.bfs-footer-service__spalten > .wp-block-column {
		padding-left: 0;
	}
	.bfs-footer-service__spalten > .wp-block-column:first-child {
		margin-bottom: var(--wp--preset--spacing--50);
	}
	/* Überschrift und Termin-Knopf linksbündig, alles an einer Kante (Paulo/Cowork, 08.10.). */
}

/* ==========================================================================
   Footer — Rechtliches
   ========================================================================== */
.bfs-footer-recht {
	padding-block: var(--wp--preset--spacing--20);
}
.bfs-footer-recht__nav.wp-block-navigation {
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 300;
	line-height: var(--wp--custom--line-height--rhythm);
	text-transform: none;
	letter-spacing: normal;
}
.bfs-footer-recht__nav.wp-block-navigation,
.bfs-footer-recht__nav.wp-block-navigation .wp-block-navigation__container {
	gap: var(--wp--preset--spacing--50);
}
.bfs-footer-recht__nav.wp-block-navigation .wp-block-navigation-item__content {
	padding: 0;
	color: var(--wp--preset--color--black);
}
.bfs-footer-recht a:hover {
	text-decoration: underline;
}
/* Genau zwei Einträge (Impressum | Datenschutz): zwei gleich breite Spalten, die LÜCKE liegt exakt auf der
   Seitenmitte, unabhängig von der Wortlänge (Entscheidung Paulo 09.10., ABWEICHUNGEN). Sonst Gruppe zentriert wie Husum. */
.bfs-footer-recht__nav.wp-block-navigation:has(.wp-block-navigation__container > li:nth-child(2):last-child) {
	display: block;
	width: 100%;
}
.bfs-footer-recht__nav.wp-block-navigation .wp-block-navigation__container:has(> li:nth-child(2):last-child) {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: var(--wp--preset--spacing--50);
	width: 100%;
}
.bfs-footer-recht__nav .wp-block-navigation__container:has(> li:nth-child(2):last-child) > li:first-child { justify-self: end; }
.bfs-footer-recht__nav .wp-block-navigation__container:has(> li:nth-child(2):last-child) > li:last-child { justify-self: start; }

@media (max-width: 781.98px) {
	.bfs-footer-recht { padding-bottom: var(--wp--preset--spacing--60); }
	.bfs-footer-recht__nav.wp-block-navigation { font-size: var(--wp--preset--font-size--small); }
}

/* ==========================================================================
   Behandlungs-Archiv, Kategorie-Archiv und Einzelseite (gemeinsames Raster
   Seitenspalte | Hauptspalte). Abstaende, Farben, Spaltenbreiten, Schatten,
   Titel-Typografie und Listen-Gap stehen als Block-Attribute im Template;
   hier nur Breakpoints und die Paginierung.
   ========================================================================== */
/* Block-Attribut lineHeight nimmt keinen custom-Token an. */
.bfs-archiv-titel {
	line-height: var(--wp--custom--line-height--display);
}
/* Polster gehoeren in die Spaltenbreite (sonst 77 % + Polster > 100 %). */
.bfs-spalten > .wp-block-column {
	box-sizing: border-box;
}
.bfs-archiv-hinweis strong {
	font-weight: 700;
	text-transform: uppercase;
}

.bfs-hauptspalte {
	padding-left: var(--wp--preset--spacing--40);
}
.bfs-seitenspalte > .wp-block-babor-fse-studio-kategorie-navigation {
	width: 90%;
}
/* Grundsatz „Spalten oben bündig“ (Paulo 10.10., DESIGN-SYSTEM; bewusst ohne Husums 10-px-Versatz, ABWEICHUNGEN):
   Seitenspalte und Inhalt beginnen auf derselben Oberkante — kein Abstand über dem ersten Element einer Spalte. */
.bfs-spalten { align-items: flex-start; }
.bfs-spalten > .wp-block-column > :first-child,
.bfs-spalten .bfs-behandlungen-loop > :first-child,
.bfs-spalten .bfs-behandlungen-liste > :first-child { margin-block-start: 0; }

/* Tablet (782–1024): Seitenspalte 20/80, Karten im 2er-Raster (kompakte
   Kartenform per Container-Query der Karte). */
@media (min-width: 782px) and (max-width: 1024px) {
	/* Core setzt flex-basis aus dem Breiten-Attribut inline -> nur mit
	   !important ueberschreibbar. */
	.bfs-seitenspalte { flex-basis: 20% !important; }
	.bfs-hauptspalte { flex-basis: 80% !important; }
	.bfs-behandlungen-liste.wp-block-post-template {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: var(--wp--preset--spacing--80);
		padding-inline-start: var(--wp--preset--spacing--40); /* rechts bündig an der Inhaltskante (11.10.2026) */
	}
}
@media (max-width: 781.98px) {
	.bfs-seitenspalte { display: none; }
	.bfs-hauptspalte { padding-left: 0; }
}

/* --- Paginierung ---------------------------------------------------------- */
.bfs-paginierung.wp-block-query-pagination {
	gap: var(--wp--preset--spacing--50);
	margin-top: var(--wp--preset--spacing--90);
	font-size: var(--wp--preset--font-size--large);
	line-height: var(--wp--custom--line-height--none);
}
.bfs-paginierung .wp-block-query-pagination-numbers {
	display: flex;
	gap: var(--wp--preset--spacing--50);
}
.bfs-paginierung .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 48px;
	color: var(--wp--preset--color--black);
}
.bfs-paginierung .page-numbers.current {
	width: 48px;
	border-radius: 50%;
	background-color: var(--wp--preset--color--black);
	color: var(--wp--preset--color--white);
}
.bfs-paginierung .wp-block-query-pagination-previous,
.bfs-paginierung .wp-block-query-pagination-next,
.bfs-paginierung.wp-block-query-pagination:not(:has(.wp-block-query-pagination-previous))::before,
.bfs-paginierung.wp-block-query-pagination:not(:has(.wp-block-query-pagination-next))::after {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 48px;
	height: 48px;
	margin: 0;
	border: 1px solid currentColor;
	border-radius: 50%;
	font-size: var(--wp--preset--font-size--x-large);
	color: var(--wp--preset--color--black);
}
/* Auf der ersten/letzten Seite laesst Core den Link weg; ein ausgegrauter
   Pfeil haelt die Zeile ruhig — dekoratives Pseudo-Element (kein Link,
   nicht vorgelesen). */
.bfs-paginierung.wp-block-query-pagination:not(:has(.wp-block-query-pagination-previous))::before,
.bfs-paginierung.wp-block-query-pagination:not(:has(.wp-block-query-pagination-next))::after {
	color: var(--wp--preset--color--grey);
}
.bfs-paginierung.wp-block-query-pagination:not(:has(.wp-block-query-pagination-previous))::before { content: "‹"; order: -1; }
.bfs-paginierung.wp-block-query-pagination:not(:has(.wp-block-query-pagination-next))::after { content: "›"; order: 99; }
@media (max-width: 781.98px) {
	.bfs-paginierung.wp-block-query-pagination,
	.bfs-paginierung .wp-block-query-pagination-numbers { gap: var(--wp--preset--spacing--40); }
	.bfs-paginierung .page-numbers { width: 34px; height: 38px; }
	.bfs-paginierung .page-numbers.current,
	.bfs-paginierung .wp-block-query-pagination-previous,
	.bfs-paginierung .wp-block-query-pagination-next,
	.bfs-paginierung.wp-block-query-pagination:not(:has(.wp-block-query-pagination-previous))::before,
	.bfs-paginierung.wp-block-query-pagination:not(:has(.wp-block-query-pagination-next))::after { width: 38px; height: 38px; }
}

/* =========================================================================
   P3: Suche, 404 (Werte wie Husum live gemessen, 07.10.2026)
   ========================================================================= */
.bfs-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }

/* Lupe + TERMINE teilen sich die rechte Rasterspalte (Navigation bleibt mittig).
   Im Burger-Modus löst sich die Gruppe auf (display: contents, inc/kopf.php): TERMINE und Burger
   bleiben Rasterzellen wie bisher, die Lupe ist dort ausgeblendet. */
.bfs-hauptzeile .bfs-header-aktionen { justify-self: end; gap: 12px; }
/* Such-Panel an der Gruppe ausrichten: bündig unter dem Header (Zeile 80 px,
   Gruppe 40 px mittig → +20 px), rechts bündig mit TERMINE. */
.bfs-hauptzeile .bfs-header-aktionen { position: relative; }
.bfs-header-aktionen .wp-block-babor-fse-studio-suche-umschalter { position: static; }
.bfs-header-aktionen .bfs-suche-umschalter__panel { top: calc(100% + 20px); }
/* Suche im Burger-Menü: nur im geöffneten Overlay (darüber gibt es die Lupe). */
.bfs-hauptnav .wp-block-navigation__responsive-container:not(.is-menu-open) .bfs-nav-suche { display: none; }
.bfs-hauptnav .is-menu-open .bfs-nav-suche { width: 100%; margin-top: var(--wp--preset--spacing--40); }
.bfs-hauptnav .is-menu-open .bfs-nav-suche .wp-block-search__inside-wrapper { border: 1px solid var(--wp--custom--farbe--linie); box-shadow: 0 1px 2px rgba(0, 0, 0, .05); }
.bfs-hauptnav .is-menu-open .bfs-nav-suche .wp-block-search__input { border: 0; font-size: 16px; font-weight: 300; text-transform: none; letter-spacing: normal; }
.bfs-hauptnav .is-menu-open .bfs-nav-suche .wp-block-search__input::placeholder { color: var(--wp--preset--color--grey-text); opacity: 1; }
.bfs-hauptnav .is-menu-open .bfs-nav-suche .wp-block-search__button { background: transparent; color: var(--wp--preset--color--black); border: 0; }
.bfs-nav-suche .wp-block-search__button svg { display: none; }
.bfs-nav-suche .wp-block-search__button::before { content: ""; display: block; width: 20px; height: 20px; background-color: currentColor; -webkit-mask: url("../icons/ph-magnifying-glass.svg") center / contain no-repeat; mask: url("../icons/ph-magnifying-glass.svg") center / contain no-repeat; }

/* --- 404 ------------------------------------------------------------------ */
.bfs-404-band { padding: 64px var(--wp--preset--spacing--40, 20px); background: linear-gradient(125deg, var(--wp--preset--color--taupe, #d2ccc8) 0%, var(--wp--preset--color--primary, #f5d1c1) 100%); }
.bfs-404 .bfs-404-kopf { gap: 32px; }
.bfs-404-kreis { display: flex; flex: 0 0 128px; align-items: center; justify-content: center; box-sizing: border-box; width: 128px; height: 128px; border: 3px solid var(--wp--preset--color--ink); border-radius: 50%; font-size: 52px; font-weight: 300; line-height: 1; color: var(--wp--preset--color--black); }
.bfs-404 .bfs-404-titel { margin: 0; font-size: var(--wp--preset--font-size--heading-1, 40px); font-weight: 300; line-height: 1.15; letter-spacing: -.01em; color: var(--wp--preset--color--ink, #262a2b); text-align: center; }
/* Husum #767676 hätte auf dem Taupe-Verlauf nur ~2,9:1 — Anthrazit (≥ 7:1). */
.bfs-404 .bfs-404-unterzeile { margin: 10px 0 0; font-size: var(--wp--preset--font-size--large, 1.125rem); color: var(--wp--preset--color--anthracite, #33373d); text-align: center; }
.bfs-404-inhalt { padding: 44px var(--wp--preset--spacing--40, 20px) 0; text-align: center; }
.bfs-404 .bfs-404-text { margin: 0; font-weight: 300; line-height: 1.6; }
.bfs-404 .bfs-404-start { margin: 14px 0 0; font-weight: 300; }
.bfs-404 .bfs-404-start a { color: var(--wp--preset--color--coral-text, #c4483d); text-decoration: none; }
.bfs-404 .bfs-404-start a:hover, .bfs-404 .bfs-404-start a:focus-visible { text-decoration: underline; }
.bfs-404 .bfs-404-knoepfe { margin-top: 36px; }
.bfs-404 .wp-block-button.is-style-outline .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; height: 48px; padding: 0 28px; border: 1px solid var(--wp--preset--color--ink); border-radius: 0; background: transparent; color: var(--wp--preset--color--ink); font-size: 15px; font-weight: 300; letter-spacing: .6px; text-transform: uppercase; box-shadow: none; text-shadow: none; }
.bfs-404 .wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--black); color: var(--wp--preset--color--white); }
.bfs-404 .wp-block-button.is-style-outline .wp-block-button__link:focus-visible { outline: 2px solid var(--wp--preset--color--black); outline-offset: 2px; }
.bfs-404 .bfs-404-suche { margin-top: 40px; }
.bfs-404 .bfs-404-suche .bfs-suchform__zeile { margin: 0 auto; }
.bfs-404-produkte { padding: 80px var(--wp--preset--spacing--40, 20px) var(--wp--preset--spacing--100, 80px); }
@media (max-width: 781.98px) {
	.bfs-404-band { padding: 44px var(--wp--preset--spacing--40, 20px); }
	.bfs-404 .bfs-404-kopf { flex-direction: column; gap: 20px; }
	.bfs-404-kreis { flex-basis: 84px; width: 84px; height: 84px; border-width: 2px; font-size: 36px; }
	.bfs-404 .bfs-404-titel { font-size: 28px; }
	.bfs-404 .bfs-404-unterzeile { font-size: 16px; }
	.bfs-404 .bfs-404-knoepfe .wp-block-button { width: 100%; }
	.bfs-404 .bfs-404-knoepfe .wp-block-button__link { width: 100%; }
}

/* --- Suchergebnisse ------------------------------------------------------- */
.bfs-suche-kopf .wp-block-babor-fse-studio-suchfeld { width: 100%; }
.bfs-suche-loop .wp-block-query-no-results { margin: 0; }

/* =========================================================================
   P4: Abschnitte (patterns/*.php) — Werte wie Husum live gemessen
   (08.10.2026, 1280 und 390 px). Abschnitte stoßen aneinander wie dort.
   ========================================================================= */
.wp-block-post-content > .alignfull { margin-block: 0; }

/* --- A: Seitenkopf mit Bild (495 px; Bild cover, Taupe-Fläche 48 px innen) */
.wp-block-columns.bfs-kopf { gap: 0; min-height: 495px; margin-block: 0; }
@media (min-width: 782px) {
	.wp-block-columns.bfs-kopf > .wp-block-column.wp-block-column, .wp-block-columns.bfs-termin-aufruf__spalten > .wp-block-column.wp-block-column { flex-basis: 50%; flex-grow: 0; } /* 50/50 trotz Innenpolster (Core: basis 0) */
}
.bfs-kopf__bildspalte { position: relative; min-height: 260px; }
.bfs-kopf__bildspalte .wp-block-image { position: absolute; inset: 0; margin: 0; }
.bfs-kopf__bildspalte .wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
.wp-block-column.bfs-kopf__inhalt { align-self: stretch; display: flex; flex-direction: column; justify-content: center; box-sizing: border-box; padding: 48px; background: var(--wp--preset--color--taupe, #d2ccc8); }
.bfs-kopf__inhalt > * { margin-block: 0; }
.bfs-kopf .bfs-kopf__titel { margin: 0 0 21px; font-size: 36px; font-weight: 700; line-height: 1.4; text-transform: uppercase; color: var(--wp--preset--color--black); }
.bfs-kopf .bfs-kopf__unterzeile { margin: 0 0 20px; font-size: 16px; font-weight: 700; line-height: 1.3; text-transform: none; letter-spacing: normal; color: var(--wp--preset--color--black); }
.bfs-kopf .bfs-kopf__text { margin: 0; font-weight: 300; line-height: 1.6; }
/* Startseite: Begrüßung rechtsbündig, Titel 32 px ohne Versalien; mobil kein Bild. */
.bfs-kopf--start .bfs-kopf__inhalt { text-align: right; }
.bfs-kopf--start .bfs-kopf__titel { margin-bottom: 20px; font-size: 32px; text-transform: none; }
@media (max-width: 781.98px) {
	.wp-block-columns.bfs-kopf { min-height: 0; }
	.bfs-kopf__bildspalte { height: 260px; }
	.bfs-kopf--start .bfs-kopf__bildspalte { display: none; }
	.bfs-kopf--start .bfs-kopf__inhalt { min-height: 484px; justify-content: flex-start; } /* Husum mobil: Text oben */
	.bfs-kacheln--drei .bfs-kachel__bild img { aspect-ratio: auto; height: 315px; }
}

/* --- B: Seitenkopf schlicht (Nebel-Band) ------------------------------- */
.bfs-kopf-schlicht { padding: 51px var(--wp--preset--spacing--40, 20px); }
.bfs-kopf-schlicht .bfs-kopf-schlicht__titel { margin: 0; font-size: 36px; font-weight: 700; line-height: 1.4; text-transform: uppercase; }
@media (max-width: 781.98px) { .bfs-kopf-schlicht { padding-block: 40px; } }

/* --- C: Bild + Text ------------------------------------------------------ */
/* Inhaltskanten = Kopf-Kanten (Regel Paulo 11.10.2026): Spalten über das Breiten-Token (constrained), Bild füllt seine
   Spalte bündig ab der linken Kante (vorher max. 500 px zentriert → Bild begann 90 px eingerückt; ABWEICHUNGEN). */
.bfs-bild-text { padding: 53px var(--wp--preset--spacing--40, 20px) 40px; }
.bfs-bild-text .bfs-bild-text__spalten { gap: var(--wp--preset--spacing--55, 40px); margin: 0 auto; }
.bfs-bild-text__bild { margin: 0; }
.bfs-bild-text__bild img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.bfs-bild-text .bfs-bild-text__titel { margin: 31px 0 20px; font-size: 32px; font-weight: 700; line-height: 1.3; color: var(--wp--preset--color--ink, #262a2b); }
.bfs-bild-text p { margin: 0 0 1.6em; font-weight: 300; }
@media (max-width: 781.98px) {
	.bfs-bild-text { padding-block: 75px; }
	.bfs-bild-text .bfs-bild-text__titel { margin-top: 13px; }
}

/* --- D/E: Kacheln -------------------------------------------------------- */
/* Breite über das Token (constrained), keine feste Höchstbreite mehr (Husum 1180/1160 → Kanten = Kopf, 11.10.2026). */
.bfs-kacheln { padding: 10px var(--wp--preset--spacing--40, 20px); }
.bfs-kacheln--drei { padding: 140px var(--wp--preset--spacing--40, 20px) 100px; }
.bfs-kacheln .bfs-kacheln__spalten { gap: var(--wp--preset--spacing--40, 20px); margin: 0 auto; }
.bfs-kachel { display: flex; flex-direction: column; height: 100%; background: var(--wp--preset--color--white); box-shadow: 0 6px 24px rgba(0, 0, 0, .08); }
.bfs-kachel > * { margin-block: 0; }
.bfs-kachel__bild { margin: 0; }
.bfs-kachel__bild img { display: block; width: 100%; aspect-ratio: 373 / 315; object-fit: cover; }
.bfs-kachel--gross .bfs-kachel__bild img { aspect-ratio: 1; }
.bfs-kachel__inhalt { display: flex; flex: 1; flex-direction: column; padding: 35px; }
.bfs-kachel__inhalt > * { margin-block: 0; }
.bfs-kachel .bfs-kachel__eyebrow { margin: 0 0 15px; font-size: 16px; font-weight: 300; line-height: 1.3; text-transform: uppercase; letter-spacing: normal; }
.bfs-kachel .bfs-kachel__text { margin: 0 0 15px; font-size: 20px; font-weight: 400; line-height: 1.4; }
.bfs-kachel .wp-block-buttons { margin-top: auto; }
.bfs-kachel__knopf .wp-block-button__link { padding: 12px 24px; border-radius: 0; background: var(--wp--preset--color--black); color: var(--wp--preset--color--white); font-size: 15px; font-weight: 400; line-height: 1; text-transform: none; letter-spacing: normal; box-shadow: none; text-shadow: none; }
.bfs-kachel--gross .bfs-kachel__inhalt { padding: 42px 30px 40px; }
.bfs-kachel--gross .bfs-kachel__eyebrow { margin: 0; font-size: 14px; font-weight: 400; line-height: 1.7; }
.bfs-kachel--gross .bfs-kachel__text { margin: 0 0 15px; font-size: 22px; font-weight: 300; line-height: 30px; }
.bfs-kachel__inhalt > p:not(.bfs-kachel__text) { margin: 0 0 15px; font-size: 16px; font-weight: 300; line-height: 1.6; } /* Zusatztext */
.bfs-kachel--gross .wp-block-buttons { padding-top: 40px; }
.bfs-kachel--gross .wp-block-button { width: 100%; }
.bfs-kachel--gross .bfs-kachel__knopf .wp-block-button__link { display: block; width: 100%; box-sizing: border-box; padding: 15px 0; font-size: 14px; font-weight: 400; text-align: center; text-transform: uppercase; }
.bfs-kachel__knopf .wp-block-button__link:hover { background: var(--wp--preset--color--grey-text, #767676); }

/* --- F: Produkt-Highlights ------------------------------------------------ */
.bfs-highlights { padding: 20px var(--wp--preset--spacing--40, 20px) 0; } /* Inhaltskanten = Kopf auch unter 1440 (vorher randlos, 11.10.2026) */
.bfs-highlights .bfs-highlights__titel { margin: 0 0 20px; font-size: 19px; font-weight: 700; line-height: 1; text-align: center; text-transform: uppercase; letter-spacing: normal; }
@media (max-width: 781.98px) { .bfs-highlights { padding: 75px var(--wp--preset--spacing--40, 20px) 0; } }

/* --- G: Service-Leiste (Icons: Phosphor Light 24 px, assets/icons/LIZENZ.md) --- */
.bfs-service { padding: 35px var(--wp--preset--spacing--40, 20px); }
.bfs-service .bfs-service__leiste { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 0 auto; } /* Breite über das Token, ohne Einrückung (11.10.2026) */
.bfs-service__knopf .wp-block-button__link { display: inline-flex; align-items: center; gap: 15px; padding: 0; border-radius: 0; background: none; color: var(--wp--preset--color--black); font-size: 16px; font-weight: 400; line-height: 1.6; text-align: left; text-transform: none; letter-spacing: normal; box-shadow: none; text-shadow: none; }
.bfs-service__knopf .wp-block-button__link::before { content: ""; flex: 0 0 49px; width: 49px; height: 49px; border-radius: 50%; background: var(--wp--custom--farbe--service-knopf) center / 24px 24px no-repeat; }
.bfs-service__knopf--termin .wp-block-button__link::before { background-image: url("../icons/ph-calendar-blank.svg"); }
.bfs-service__knopf--gutschein .wp-block-button__link::before { background-image: url("../icons/ph-gift.svg"); }
.bfs-service__knopf--shop .wp-block-button__link::before { background-image: url("../icons/ph-shopping-cart.svg"); }
.bfs-service__knopf--telefon .wp-block-button__link::before { background-image: url("../icons/ph-phone.svg"); }
.bfs-service__knopf--telefon.ist-whatsapp .wp-block-button__link::before { background-image: url("../icons/ph-whatsapp-logo.svg"); }
/* Keine Unterstreichung (Paulo 10.10., auch Hover nicht — ABWEICHUNGEN): Hover = Ring um den Icon-Kreis, Fokus = Umriss. */
.bfs-service__knopf .wp-block-button__link,
.bfs-service__knopf .wp-block-button__link:hover { text-decoration: none; }
.bfs-service__knopf .wp-block-button__link:hover::before { box-shadow: 0 0 0 2px var(--wp--preset--color--black); }
.bfs-service__knopf .wp-block-button__link:focus-visible { outline: 2px solid var(--wp--preset--color--black); outline-offset: 4px; }
@media (max-width: 781.98px) {
	.bfs-service .bfs-service__leiste { grid-template-columns: 1fr; row-gap: 30px; padding-left: 0; }
	.bfs-service__knopf { justify-self: center; }
	.bfs-service__knopf .wp-block-button__link { flex-direction: column; text-align: center; }
}
/* Block-Stile der Service-Leiste (Gruppe .bfs-service): „Mit Kasten“ = Standard (auch ohne Stil-Klasse, Husum-Parität),
   „Ohne Kasten“ = Leiste ohne Kästen (Stand bis 0.21); beide auf der Taupe-Fläche der Gruppe. Husum gemessen 10.10.:
   Punkte → Fläche 97 px (Token spacing--90 = 100, ABWEICHUNGEN), Fläche 35 + 20 Innenrand, Kästen 275 × 79 / 350 × 120,
   Lücke 20. */
.bfs-highlights + .bfs-service:not(.is-style-ohne-kasten) { margin-block-start: var(--wp--preset--spacing--90, 100px); }
.bfs-service:not(.is-style-ohne-kasten) .bfs-service__leiste { gap: var(--wp--preset--spacing--40, 20px); padding: var(--wp--preset--spacing--40, 20px) 0; } /* Kästen bündig an den Kanten */
.bfs-service:not(.is-style-ohne-kasten) .bfs-service__knopf { justify-self: stretch; width: 100%; }
.bfs-service:not(.is-style-ohne-kasten) .bfs-service__knopf .wp-block-button__link { display: flex; box-sizing: border-box; width: 100%; height: 100%; padding: var(--wp--preset--spacing--30, 15px); border-radius: 0; background: var(--wp--preset--color--white); box-shadow: var(--wp--preset--shadow--kasten); }
@media (max-width: 781.98px) {
	.bfs-service:not(.is-style-ohne-kasten) .bfs-service__leiste { padding-inline: 0; }
	.bfs-service:not(.is-style-ohne-kasten) .bfs-service__knopf .wp-block-button__link { justify-content: center; }
}

/* --- H: Team (Pattern team-raster) — Überschrift wie Husum „UNSER TEAM" --- */
.bfs-team > .wp-block-heading { font-size: 36px; font-weight: 700; line-height: 1.3; text-transform: uppercase; }

/* --- I: Termin-Aufruf ------------------------------------------------------- */
.bfs-termin-aufruf { padding: 10px var(--wp--preset--spacing--40, 20px); }
.bfs-termin-aufruf .bfs-termin-aufruf__spalten { gap: 0; margin: 0 auto; } /* Breite über das Token (vorher 1180) */
.bfs-termin-aufruf__bildspalte { position: relative; min-height: 350px; }
.bfs-termin-aufruf__bild { position: absolute; inset: 0; margin: 0; }
.bfs-termin-aufruf__bild img { width: 100%; height: 100%; object-fit: cover; }
.wp-block-column.bfs-termin-aufruf__inhalt { box-sizing: border-box; align-self: stretch; display: flex; flex-direction: column; justify-content: center; padding: 35px; background: var(--wp--preset--color--sand, #e1dddb); }
.bfs-termin-aufruf__inhalt > * { margin-block: 0 15px; }
.bfs-termin-aufruf .bfs-termin-aufruf__titel { font-size: 32px; font-weight: 700; line-height: 1.3; }
.bfs-termin-aufruf__knopf .wp-block-button__link { padding: 12px 24px; border-radius: 0; background: var(--wp--preset--color--black); color: var(--wp--preset--color--white); font-size: 15px; font-weight: 400; line-height: 1; text-transform: none; letter-spacing: normal; box-shadow: none; text-shadow: none; }
@media (max-width: 781.98px) { .bfs-termin-aufruf__bildspalte { min-height: 200px; } }

/* --- J: Kontaktdaten ----------------------------------------------------------- */
.bfs-kontakt { padding: 30px var(--wp--preset--spacing--40, 20px) 0; }
.bfs-kontakt .bfs-kontakt__spalten { gap: var(--wp--preset--spacing--55, 40px); margin: 0 auto; }
.bfs-kontakt__daten > * { margin-block: 0; }
.bfs-kontakt .bfs-kontakt__label { margin-top: 25.6px; text-transform: uppercase; }
.bfs-kontakt .bfs-kontakt__label:first-child { margin-top: 0; } /* Spalten oben bündig (Paulo 10.10.; Husum 9 px, ABWEICHUNGEN) */
.bfs-kontakt .bfs-kontakt__wert { font-weight: 300; }
.bfs-kontakt__wert a { color: inherit; }
.bfs-kontakt .bfs-kontakt__social { gap: 15px; margin-top: 6px; }
.bfs-kontakt__social .wp-social-link { width: 50px; height: 50px; justify-content: center; border: 1px solid var(--wp--preset--color--black); border-radius: 50%; background: var(--wp--preset--color--white); color: var(--wp--custom--farbe--social-icon); }
.bfs-kontakt__social .wp-social-link a { display: grid; place-items: center; width: 100%; height: 100%; padding: 0; }
.bfs-kontakt .wp-block-buttons { margin-top: 20px; }
.bfs-kontakt__route .wp-block-button__link { padding: 12px 24px; border-radius: 0; background: var(--wp--preset--color--black); color: var(--wp--preset--color--white); font-size: 15px; font-weight: 400; line-height: 1; text-transform: none; letter-spacing: normal; box-shadow: none; text-shadow: none; }
.bfs-kontakt__bildspalte { display: flex; justify-content: flex-end; }
.bfs-kontakt__bild { width: 100%; max-width: 400px; margin: 0; }
.bfs-kontakt__bild img { width: 100%; aspect-ratio: 1; object-fit: cover; }

/* --- K: Karte (Bild, keine Einbettung) -------------------------------------- */
.bfs-karte { padding: 0 var(--wp--preset--spacing--40, 20px); }
.bfs-karte__bild { margin: 0; }
.bfs-karte__bild img { display: block; width: 100%; height: 380px; object-fit: cover; }
.bfs-karte .bfs-karte__quelle { margin: 6px 0 0; font-size: var(--wp--preset--font-size--small, 13px); color: var(--wp--preset--color--grey-text, #767676); text-align: right; }

/* --- L: FAQ (natives details/summary) ------------------------------------------ */
.bfs-faq { padding: 100px var(--wp--preset--spacing--40, 20px); }
.bfs-faq > .wp-block-details { box-sizing: border-box; max-width: var(--wp--custom--breite--schmal); margin: 25px auto 0; border: 1px solid var(--wp--custom--farbe--linie-faq); }
.bfs-faq > .wp-block-details:first-child { margin-top: 0; }
.bfs-faq summary { padding: 20px; font-size: 16px; font-weight: 700; line-height: 1; cursor: pointer; }
.bfs-faq summary:focus-visible { outline: 2px solid var(--wp--preset--color--black); outline-offset: 2px; }
.bfs-faq .wp-block-details > :not(summary) { margin: 0; padding: 0 20px 20px; font-weight: 300; }
@media (max-width: 781.98px) { .bfs-faq { padding-block: 50px; } }

/* --- N/P: Rechtstext, Information (Textspalte = Token schmal, 720 px ≈ 75 Zeichen, statt Husums 1200: Lesbarkeit, ABWEICHUNGEN.md) */
.bfs-rechtstext, .bfs-information { padding: 100px var(--wp--preset--spacing--40, 20px); }
/* Textspalte links an der Inhaltskante (wie Husum), nur schmaler. */
.bfs-rechtstext > *, .bfs-information > * { max-width: var(--wp--custom--breite--schmal); margin-left: calc((100% - min(100%, var(--wp--style--global--content-size))) / 2) !important; margin-right: auto !important; }
.bfs-rechtstext p, .bfs-information p { font-weight: 300; }
.bfs-rechtstext h2, .bfs-information h2 { margin-top: 40px; font-size: 22px; font-weight: 700; line-height: 1.3; }
.bfs-rechtstext > :first-child, .bfs-information > :first-child { margin-top: 0; }
.bfs-information__knopf .wp-block-button__link { padding: 12px 24px; border-radius: 0; background: var(--wp--preset--color--black); color: var(--wp--preset--color--white); font-size: 15px; font-weight: 400; line-height: 1; text-transform: none; letter-spacing: normal; box-shadow: none; text-shadow: none; }
@media (max-width: 781.98px) { .bfs-rechtstext, .bfs-information { padding-block: 50px; } }

/* --- O: Linkseite ---------------------------------------------------------------------- */
.bfs-linkseite { padding: 60px var(--wp--preset--spacing--40, 20px); }
.bfs-linkseite > * { max-width: 480px; }
.bfs-linkseite__bild { width: 160px; margin: 0 auto; }
.bfs-linkseite__bild img { width: 160px; height: 160px; border-radius: 50%; object-fit: cover; }
.bfs-linkseite .bfs-linkseite__titel { margin-top: 20px; font-size: 28px; font-weight: 700; text-align: center; text-transform: uppercase; }
.bfs-linkseite__knoepfe { gap: 12px; margin-top: 30px; }
.bfs-linkseite__knoepfe .wp-block-button, .bfs-linkseite__knoepfe .wp-block-button__link { width: 100%; box-sizing: border-box; text-align: center; }

/* --- P4-Feinschliff (Cowork 08.10.) ---------------------------------------- */
/* Team: Fotos spaltenbreit (3:4 bleibt), Raster füllt die Inhaltsbreite. */
.bfs-team .bfs-team-mitglied__bild, .bfs-team .bfs-team-mitglied__bild img { width: 100%; }
.bfs-team .is-layout-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 781.98px) { .bfs-team .is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599.98px) { .bfs-team .is-layout-grid { grid-template-columns: 1fr; } }
/* FAQ: Browser-Dreieck aus, Phosphor caret-down rechts, dreht bei [open]. */
.bfs-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 15px; list-style: none; }
.bfs-faq summary::-webkit-details-marker { display: none; }
.bfs-faq summary::marker { content: ""; }
.bfs-faq summary::after { content: ""; flex: 0 0 16px; width: 16px; height: 16px; background-color: currentColor; -webkit-mask: url("../icons/ph-caret-down-regular.svg") center / contain no-repeat; mask: url("../icons/ph-caret-down-regular.svg") center / contain no-repeat; transition: transform .2s; }
.bfs-faq details[open] > summary::after { transform: rotate(180deg); }
@media (prefers-reduced-motion: reduce) { .bfs-faq summary::after { transition: none; } }
/* Information: leerer Urlaubs-Abschnitt erscheint nicht (Platzhalter nur im Editor). */
.bfs-information__urlaub:has(> p:empty), .bfs-information p:empty { display: none; }
/* Startseiten-Kopf mobil linksbündig (Desktop rechtsbündig wie Husum). */
@media (max-width: 781.98px) { .bfs-kopf--start .bfs-kopf__inhalt { text-align: left; } }

/* Lange Links und Wörter in Fließtexten umbrechen, damit bei 320 px nichts seitlich herausragt
   (WCAG 1.4.10, P5b C2 – z. B. Adressen in der Datenschutzerklärung). Buttons ausgenommen. */
.wp-block-post-content :where(p, li, dd, dt, td, th, figcaption, blockquote) { overflow-wrap: break-word; }
.wp-block-post-content a:not(.wp-element-button) { overflow-wrap: anywhere; }

/* --- Blog (P6+b, 10.10.2026) — alte Karten (Core-Blöcke), nur noch für vor 0.24.0 eingefügte Blog-Teaser ---------- */
.bfs-blog-liste.wp-block-post-template { margin: 0; padding: 0; }
.bfs-blog-karte { display: flex; flex-direction: column; box-sizing: border-box; height: 100%; margin: 0; background: var(--wp--preset--color--white); border: 1px solid var(--wp--custom--farbe--linie); box-shadow: var(--wp--preset--shadow--karte); }
.bfs-blog-karte__bild { margin: 0; }
.bfs-blog-karte__bild img { display: block; width: 100%; height: 100%; object-fit: cover; }
.bfs-blog-karte__text { display: flex; flex: 1 1 auto; flex-direction: column; gap: var(--wp--preset--spacing--20); padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--40) var(--wp--preset--spacing--50); }
.bfs-blog-karte__text > * { margin: 0; }
.bfs-blog-karte__datum, .bfs-beitrag__datum { color: var(--wp--preset--color--grey-text); letter-spacing: .05em; text-transform: uppercase; }
.bfs-blog-karte__titel { font-size: var(--wp--preset--font-size--heading-3); font-weight: 700; line-height: var(--wp--custom--line-height--tight); }
.bfs-blog-karte__titel a { color: inherit; text-decoration: none; }
.bfs-blog-karte__titel a:hover { text-decoration: underline; }
.bfs-blog-karte__teaser { font-size: var(--wp--preset--font-size--normal); line-height: var(--wp--custom--line-height--body); }
.bfs-blog-karte__teaser .wp-block-post-excerpt__excerpt { margin: 0; }
.bfs-blog-karte__teaser .wp-block-post-excerpt__more-text { margin: var(--wp--preset--spacing--20) 0 0; }
.bfs-blog-karte__teaser .wp-block-post-excerpt__more-link { color: inherit; font-weight: 700; }
/* ==========================================================================
   Blog „Journal“ (Paulo 10.10.2026, Vorlage axxento-imports/vorbilder/blog „Journal v2“) — nur Tokens.
   Flächen sand, Text ink/anthracite (auf sand: anthracite statt grey-text, Kontrast ≥ 4,5 : 1), Linien custom.farbe.
   Markup: Plugin-Blöcke blog-*, beitrag-*, lesefortschritt (blog-ausgabe.php).
   ========================================================================== */
.bfs-blog .screen-reader-text, .bfs-beitrag .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); white-space: nowrap; }
.bfs-blog > .wp-block-group, .bfs-beitrag > .wp-block-group { margin-block: 0; }

/* Kopf der Übersicht/Kategorie */
.bfs-blog-kopfband { padding: var(--wp--preset--spacing--fluid-l) var(--wp--preset--spacing--40) var(--wp--preset--spacing--55); }
/* Blog-Kopf wie Vorlage „Journal“ (11.10.2026): H1 groß (Token display-gross) und durch die begrenzte Titelbreite zweizeilig
   (kein <br>), Text rechts unten auf der Grundlinie der letzten H1-Zeile; mobil gestapelt. */
.bfs-blogkopf { display: flex; flex-wrap: wrap; align-items: flex-end; align-items: last baseline; justify-content: space-between; gap: var(--wp--preset--spacing--40) var(--wp--preset--spacing--90); }
.bfs-blogkopf__titelblock { flex: 1 1 26rem; }
.bfs-blogkopf__dach, .bfs-bk__kategorie, .bfs-beitragskopf__kategorie, .bfs-empfohlen__titel, .bfs-verzeichnis__titel, .bfs-autorenbox__dach, .bfs-auf-einen-blick__titel { margin: 0; font-size: var(--wp--preset--font-size--xx-small); font-weight: 400; line-height: var(--wp--custom--line-height--heading); letter-spacing: var(--wp--custom--sperrung--weit); text-transform: uppercase; }
.bfs-blogkopf__dach { margin-bottom: var(--wp--preset--spacing--40); color: var(--wp--preset--color--grey-text); }
.bfs-blogkopf__titel { max-width: 9em; margin: 0; font-size: var(--wp--preset--font-size--display-gross); line-height: 1.1; letter-spacing: -.01em; text-wrap: balance; overflow-wrap: break-word; }
.bfs-blogkopf__text { flex: 0 1 24rem; margin: 0; color: var(--wp--preset--color--anthracite); font-size: var(--wp--preset--font-size--medium); line-height: var(--wp--custom--line-height--relaxed); }

/* Karte (Raster, Aufmacher, Liste „Empfohlen“) */
.bfs-bk { display: flex; flex: 1 1 auto; flex-direction: column; gap: var(--wp--preset--spacing--30); min-width: 0; margin: 0; }
.bfs-bk__bildlink { display: block; }
.bfs-bk__bild { display: block; overflow: hidden; aspect-ratio: 4 / 3; background: var(--wp--preset--color--sand); }
.bfs-bk__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.bfs-bk__bild--logo { display: flex; align-items: center; justify-content: center; background: var(--wp--preset--color--taupe); }
.bfs-bk__bild--logo svg, .bfs-bk__bild--logo img { width: 38%; height: auto; }
.bfs-bk__text { display: flex; flex: 1 1 auto; flex-direction: column; gap: var(--wp--preset--spacing--20); min-width: 0; }
.bfs-bk__kategorie { color: var(--wp--preset--color--grey-text); }
.bfs-bk__titel { margin: 0; font-size: var(--wp--preset--font-size--x-large); font-weight: 400; line-height: var(--wp--custom--line-height--heading); }
.bfs-bk__link { display: -webkit-box; overflow: hidden; color: inherit; text-decoration: none; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; }
.bfs-bk__link:hover, .bfs-bk__link:focus-visible { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.bfs-bk__link:focus-visible { outline: 2px solid var(--wp--preset--color--black); outline-offset: 2px; }
.bfs-bk__bildlink:hover + .bfs-bk__text .bfs-bk__link { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.bfs-bk__auszug { margin: 0; color: var(--wp--preset--color--anthracite); font-size: var(--wp--preset--font-size--text); line-height: var(--wp--custom--line-height--relaxed); }
.bfs-bk__meta { margin: auto 0 0; padding-top: var(--wp--preset--spacing--10); color: var(--wp--preset--color--grey-text); font-size: var(--wp--preset--font-size--x-small); line-height: var(--wp--custom--line-height--body); }
/* Raster: Karten einer Reihe gleich hoch; Spaltenabstand = blockGap im Template (Core-Formel), Zeilen weiter */
.bfs-blog-liste.wp-block-post-template { row-gap: var(--wp--preset--spacing--60); }
.bfs-blog-liste > li { display: flex; min-width: 0; }
.bfs-blog-liste .wp-block-babor-fse-studio-blog-karte { display: flex; flex: 1 1 auto; min-width: 0; }

/* Aufmacher + Empfohlen (Band sand) */
.bfs-aufmacher { background: var(--wp--preset--color--sand); }
.bfs-aufmacher__innen { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--55); box-sizing: border-box; max-width: calc(var(--wp--style--global--content-size) + 2 * var(--wp--preset--spacing--40)); margin: 0 auto; padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40); }
.bfs-aufmacher .bfs-bk--aufmacher { flex: 1 1 30rem; gap: var(--wp--preset--spacing--40); }
.bfs-aufmacher .bfs-bk--aufmacher .bfs-bk__bild { aspect-ratio: 16 / 10; }
.bfs-bk--aufmacher .bfs-bk__titel { font-size: var(--wp--preset--font-size--heading-2); line-height: var(--wp--custom--line-height--snug); }
.bfs-bk--aufmacher .bfs-bk__text { gap: var(--wp--preset--spacing--30); max-width: 40rem; }
.bfs-aufmacher .bfs-bk__kategorie, .bfs-aufmacher .bfs-bk__meta, .bfs-blog-weitere .bfs-bk__kategorie, .bfs-blog-weitere .bfs-bk__meta { color: var(--wp--preset--color--anthracite); }
@media (min-width: 782px) {
	.bfs-aufmacher:not(.hat-empfohlen) .bfs-bk--aufmacher { display: grid; grid-template-columns: 3fr 2fr; align-items: center; }
}
.bfs-empfohlen { display: flex; flex: 1 1 20rem; flex-direction: column; min-width: 0; }
.bfs-empfohlen__titel { padding-bottom: var(--wp--preset--spacing--30); border-bottom: 1px solid var(--wp--preset--color--ink); color: var(--wp--preset--color--ink); }
.bfs-empfohlen__liste { margin: 0; padding: 0; list-style: none; }
.bfs-empfohlen__liste > li { border-bottom: 1px solid var(--wp--preset--color--taupe); }
.bfs-bk--liste { display: grid; grid-template-columns: 120px minmax(0, 1fr); align-items: center; gap: var(--wp--preset--spacing--40); padding-block: var(--wp--preset--spacing--40); }
.bfs-bk--liste .bfs-bk__bild { aspect-ratio: 1; }
.bfs-bk--liste .bfs-bk__titel { font-size: var(--wp--preset--font-size--large); }
.bfs-bk--liste .bfs-bk__meta { margin-top: 0; padding-top: 0; }

/* Inhalt: Filter, Raster, Weitere Artikel */
.bfs-blog-inhalt { padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--40) var(--wp--preset--spacing--100); }
.bfs-blogfilter { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--wp--preset--spacing--40); margin-bottom: var(--wp--preset--spacing--55); padding-bottom: var(--wp--preset--spacing--50); border-bottom: 1px solid var(--wp--custom--farbe--linie); }
.bfs-blogfilter__liste { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--20); margin: 0; padding: 0; list-style: none; }
.bfs-blogfilter__link { display: inline-flex; align-items: center; min-height: 40px; box-sizing: border-box; padding: 0 var(--wp--preset--spacing--30); border: 1px solid var(--wp--preset--color--taupe); color: var(--wp--preset--color--ink); font-size: var(--wp--preset--font-size--xx-small); letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.bfs-blogfilter__link:hover { border-color: var(--wp--preset--color--ink); }
.bfs-blogfilter__link[aria-current] { border-color: var(--wp--preset--color--ink); background: var(--wp--preset--color--ink); color: var(--wp--preset--color--white); }
.bfs-blogfilter__link:focus-visible { outline: 2px solid var(--wp--preset--color--black); outline-offset: 2px; }
.bfs-blogfilter__zahl { margin: 0 0 0 auto; color: var(--wp--preset--color--grey-text); font-size: var(--wp--preset--font-size--x-small); }
.bfs-blogmehr { display: flex; justify-content: center; margin-top: var(--wp--preset--spacing--70); }
.bfs-blogmehr__knopf { display: inline-flex; align-items: center; min-height: 48px; box-sizing: border-box; padding: 0 var(--wp--preset--spacing--60); border: 1px solid var(--wp--preset--color--ink); color: var(--wp--preset--color--ink); font-size: var(--wp--preset--font-size--xx-small); letter-spacing: .15em; text-decoration: none; text-transform: uppercase; }
.bfs-blogmehr__knopf:hover { background: var(--wp--preset--color--ink); color: var(--wp--preset--color--white); }
.bfs-blogmehr__knopf:focus-visible { outline: 2px solid var(--wp--preset--color--black); outline-offset: 2px; }
.bfs-blogmehr__knopf[aria-busy="true"] { opacity: .6; cursor: progress; }
.bfs-blog-loop .bfs-paginierung { margin-top: var(--wp--preset--spacing--60); }
.bfs-blog-platzhalter { padding: var(--wp--preset--spacing--30); border: 1px dashed var(--wp--preset--color--grey); font-size: var(--wp--preset--font-size--small); }

/* Beitrag: Kopf, Titelbild */
.bfs-beitrag__kopfband { padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--40) 0; }
.bfs-brotkrumen { color: var(--wp--preset--color--grey-text); font-size: var(--wp--preset--font-size--x-small); }
.bfs-brotkrumen p { margin: 0; }
.bfs-brotkrumen .separator { margin-inline: var(--wp--preset--spacing--20); } /* „Blog / Kategorie / Kurztitel“ wie Vorlage */
.bfs-brotkrumen [aria-current] { color: var(--wp--preset--color--ink); }
.bfs-brotkrumen a { color: inherit; text-decoration: none; }
.bfs-brotkrumen a:hover { text-decoration: underline; }
.bfs-beitragskopf__mitte { display: flex; flex-direction: column; align-items: center; gap: var(--wp--preset--spacing--40); max-width: 60rem; margin: 0 auto; padding: var(--wp--preset--spacing--fluid-l) 0 var(--wp--preset--spacing--55); text-align: center; }
.bfs-beitragskopf__kategorie a { color: var(--wp--preset--color--grey-text); text-decoration: none; }
.bfs-beitragskopf__kategorie a:hover { text-decoration: underline; }
.bfs-beitragskopf__titel { max-width: 15em; margin: 0; font-size: var(--wp--preset--font-size--display-beitrag); line-height: var(--wp--custom--line-height--snug); letter-spacing: -.01em; text-wrap: balance; overflow-wrap: break-word; } /* höchstens ≈ 2 Zeilen wie Vorlage */
.bfs-beitragskopf__einleitung { max-width: 41rem; margin: 0; color: var(--wp--preset--color--anthracite); font-size: var(--wp--preset--font-size--large); line-height: var(--wp--custom--line-height--body); }
.bfs-beitragskopf__autor { display: flex; align-items: center; gap: var(--wp--preset--spacing--30); text-align: left; font-size: var(--wp--preset--font-size--small); line-height: var(--wp--custom--line-height--body); }
.bfs-beitragskopf__autor p { display: flex; flex-direction: column; margin: 0; }
.bfs-beitragskopf__foto { flex: none; width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.bfs-beitragskopf__datum { color: var(--wp--preset--color--grey-text); }
.bfs-beitrag__bild { max-width: var(--wp--style--global--content-size); margin: 0 auto; }
.bfs-beitrag__bild img { display: block; width: 100%; }

/* Beitrag: Raster Verzeichnis | Text */
.bfs-beitrag__raster { display: grid; grid-template-columns: 14rem minmax(0, var(--wp--custom--breite--schmal)); justify-content: start; align-items: start; gap: var(--wp--preset--spacing--70); box-sizing: border-box; max-width: calc(var(--wp--style--global--content-size) + 2 * var(--wp--preset--spacing--40)); margin: 0 auto; padding: var(--wp--preset--spacing--80) var(--wp--preset--spacing--40) var(--wp--preset--spacing--90); }
.bfs-beitrag__raster > * { margin: 0; }
.bfs-verzeichnis { position: sticky; top: calc(var(--wp--custom--header--main-height) + var(--wp--preset--spacing--50) + var(--wp-admin--admin-bar--height, 0px)); display: flex; flex-direction: column; gap: var(--wp--preset--spacing--50); }
.bfs-verzeichnis__titel { display: block; padding-bottom: var(--wp--preset--spacing--30); border-bottom: 1px solid var(--wp--preset--color--ink); }
.bfs-verzeichnis__liste { margin: 0; padding: 0; list-style: none; }
.bfs-verzeichnis__liste a { display: grid; grid-template-columns: 26px minmax(0, 1fr); padding: 11px 0; border-bottom: 1px solid var(--wp--custom--farbe--linie); color: var(--wp--preset--color--grey-text); font-size: var(--wp--preset--font-size--small); line-height: var(--wp--custom--line-height--heading); text-decoration: none; }
.bfs-verzeichnis__liste a:hover, .bfs-verzeichnis__liste a[aria-current] { color: var(--wp--preset--color--ink); }
.bfs-verzeichnis__nr { font-variant-numeric: tabular-nums; }
.bfs-verzeichnis__klein { display: none; }
.bfs-teilen { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--wp--preset--spacing--30); }
.bfs-teilen[hidden] { visibility: hidden; } /* Platz halten bis das Skript sie zeigt (kein Sprung) */
.bfs-teilen__knopf { padding: 0 0 2px; border: 0; border-bottom: 1px solid var(--wp--preset--color--ink); background: none; color: var(--wp--preset--color--ink); font: inherit; font-size: var(--wp--preset--font-size--xx-small); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.bfs-teilen__knopf[hidden] { display: none; }
.bfs-teilen__knopf:focus-visible { outline: 2px solid var(--wp--preset--color--black); outline-offset: 2px; }
.bfs-teilen__meldung { color: var(--wp--preset--color--grey-text); font-size: var(--wp--preset--font-size--x-small); }
@media (max-width: 1023.98px) {
	.bfs-beitrag__raster { grid-template-columns: minmax(0, var(--wp--custom--breite--schmal)); gap: var(--wp--preset--spacing--50); padding-top: var(--wp--preset--spacing--55); }
	.bfs-verzeichnis { position: static; }
	.bfs-verzeichnis__gross { display: none; }
	.bfs-verzeichnis__klein { display: block; }
	.bfs-verzeichnis__klein summary { display: flex; justify-content: space-between; cursor: pointer; list-style: none; }
	.bfs-verzeichnis__klein summary::-webkit-details-marker { display: none; }
	.bfs-verzeichnis__klein summary::after { content: "+"; font-size: var(--wp--preset--font-size--large); line-height: 1; }
	.bfs-verzeichnis__klein[open] summary::after { content: "–"; }
	.bfs-verzeichnis__klein summary:focus-visible { outline: 2px solid var(--wp--preset--color--black); outline-offset: 2px; }
}

/* Beitrag: Text und Bausteine */
.bfs-beitrag__inhalt { color: var(--wp--preset--color--ink); line-height: var(--wp--custom--line-height--relaxed); }
.bfs-beitrag__inhalt > * { margin-block: 0 var(--wp--preset--spacing--40); }
.bfs-beitrag__inhalt > h2 { margin-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--30); font-size: var(--wp--preset--font-size--xx-large); scroll-margin-top: calc(var(--wp--custom--header--main-height) + var(--wp--preset--spacing--40)); }
.bfs-beitrag__inhalt > h2:first-child { margin-top: 0; }
.bfs-beitrag__inhalt > h3 { margin-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--20); font-size: var(--wp--preset--font-size--x-large); }
.bfs-auf-einen-blick { margin-bottom: var(--wp--preset--spacing--60) !important; padding: var(--wp--preset--spacing--50); }
.bfs-auf-einen-blick > * { margin: 0; }
.bfs-auf-einen-blick__titel { margin-bottom: var(--wp--preset--spacing--40); color: var(--wp--preset--color--ink); }
.bfs-auf-einen-blick__liste { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--20); padding: 0; list-style: none; font-size: var(--wp--preset--font-size--text); }
.bfs-auf-einen-blick__liste li { display: grid; grid-template-columns: 18px minmax(0, 1fr); }
.bfs-auf-einen-blick__liste li::before { content: "–"; }
.wp-block-quote.is-style-zitat-name { margin: var(--wp--preset--spacing--55) 0; padding: var(--wp--preset--spacing--40) 0; border: 0; border-block: 1px solid var(--wp--preset--color--ink); } /* volle Textspalte, ohne Einzug (Vorlage) */
.wp-block-quote.is-style-zitat-name p { margin: 0 0 var(--wp--preset--spacing--30); font-size: var(--wp--preset--font-size--xx-large); font-weight: 300; line-height: var(--wp--custom--line-height--display); }
.wp-block-quote.is-style-zitat-name cite { display: block; color: var(--wp--preset--color--grey-text); font-size: var(--wp--preset--font-size--x-small); font-style: normal; letter-spacing: .1em; text-transform: uppercase; }
.bfs-beitrag__inhalt .wp-block-image figcaption, .bfs-blog-bild figcaption { margin: var(--wp--preset--spacing--20) 0 0; color: var(--wp--preset--color--grey-text); font-size: var(--wp--preset--font-size--small); text-align: left; }
.wp-block-list.is-style-schritte { margin-bottom: var(--wp--preset--spacing--60); padding: 0; border-top: 1px solid var(--wp--custom--farbe--linie); list-style: none; counter-reset: bfs-schritt; }
.wp-block-list.is-style-schritte > li { display: block; position: relative; padding: var(--wp--preset--spacing--40) 0 var(--wp--preset--spacing--40) 56px; border-bottom: 1px solid var(--wp--custom--farbe--linie); color: var(--wp--preset--color--anthracite); font-size: var(--wp--preset--font-size--text); counter-increment: bfs-schritt; }
.wp-block-list.is-style-schritte > li::before { content: counter(bfs-schritt, decimal-leading-zero); position: absolute; left: 0; top: calc(var(--wp--preset--spacing--40) + 3px); color: var(--wp--preset--color--grey-text); font-size: var(--wp--preset--font-size--small); }
.wp-block-list.is-style-schritte > li > strong:first-child { display: block; margin-bottom: 4px; color: var(--wp--preset--color--ink); font-size: var(--wp--preset--font-size--medium); font-weight: 400; }
.bfs-blog-behandlung { margin-block: var(--wp--preset--spacing--60) !important; }
.bfs-beitrag__inhalt .bfs-faq { padding: 0; border-top: 1px solid var(--wp--preset--color--ink); }
.bfs-beitrag__inhalt .bfs-faq > .wp-block-details { max-width: none; margin: 0; border: 0; border-bottom: 1px solid var(--wp--custom--farbe--linie); }
/* FAQ im Beitrag wie Vorlage: Linien statt Kästen, „+“/„–“ rechts statt Pfeil. */
.bfs-beitrag__inhalt .bfs-faq summary { padding: var(--wp--preset--spacing--40) 0; font-size: var(--wp--preset--font-size--large); font-weight: 400; line-height: 1.4; }
.bfs-beitrag__inhalt .bfs-faq summary::after { content: "+"; flex: none; width: auto; height: auto; background: none; -webkit-mask: none; mask: none; font-size: 22px; font-weight: 300; line-height: 1; transform: none; }
.bfs-beitrag__inhalt .bfs-faq details[open] > summary::after { content: "–"; transform: none; }
.bfs-beitrag__inhalt .bfs-faq .wp-block-details > :not(summary) { padding: 0 var(--wp--preset--spacing--55) var(--wp--preset--spacing--40) 0; color: var(--wp--preset--color--anthracite); }

/* Autorenbox */
.bfs-autorenbox { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: var(--wp--preset--spacing--40); margin-top: var(--wp--preset--spacing--60); padding-block: var(--wp--preset--spacing--50); border-block: 1px solid var(--wp--custom--farbe--linie); }
.bfs-autorenbox__foto { width: 88px; height: 88px; border-radius: 50%; object-fit: cover; }
.bfs-autorenbox__foto--leer { background: var(--wp--preset--color--sand); }
.bfs-autorenbox p { margin: 0; }
.bfs-autorenbox__dach { margin-bottom: var(--wp--preset--spacing--10) !important; color: var(--wp--preset--color--grey-text); }
.bfs-autorenbox__name { font-size: var(--wp--preset--font-size--large); font-weight: 700; }
.bfs-autorenbox__funktion { font-weight: 300; }
.bfs-autorenbox__bio { margin-top: var(--wp--preset--spacing--10) !important; color: var(--wp--preset--color--anthracite); font-size: var(--wp--preset--font-size--text); line-height: var(--wp--custom--line-height--relaxed); }
@media (max-width: 781.98px) { .bfs-autorenbox { grid-template-columns: 64px minmax(0, 1fr); } .bfs-autorenbox__foto { width: 64px; height: 64px; } }

/* Weiterlesen (Beitrag) und Blog-Teaser (Startseite) */
.bfs-blog-weitere { padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--40) var(--wp--preset--spacing--80); }
.bfs-blog-weitere:not(:has(.wp-block-post)) { display: none; } /* keine weiteren Beiträge → Abschnitt samt Überschrift weg */
.bfs-blog-teaser { padding: var(--wp--preset--spacing--80) var(--wp--preset--spacing--40); }
.bfs-blog-weitere__kopf { margin-bottom: var(--wp--preset--spacing--55); padding-bottom: var(--wp--preset--spacing--40); border-bottom: 1px solid var(--wp--preset--color--ink); }
.bfs-blog-weitere__titel { margin: 0; font-size: var(--wp--preset--font-size--xx-large); line-height: var(--wp--custom--line-height--tight); }
.bfs-blog-weitere__alle .wp-block-button__link { padding: 0; border: 0; background: none; color: var(--wp--preset--color--ink); font-size: var(--wp--preset--font-size--xx-small); letter-spacing: .15em; text-transform: uppercase; }
.bfs-blog-weitere__alle .wp-block-button__link:hover { text-decoration: underline; }

/* Lesefortschritt (fixed → kein Layout-Sprung; bei „Bewegung reduzieren“ aus) */
.bfs-lesefortschritt { position: fixed; top: var(--wp-admin--admin-bar--height, 0px); left: 0; right: 0; z-index: 1000; height: 2px; margin: 0; pointer-events: none; }
.bfs-lesefortschritt__balken { display: block; height: 100%; background: var(--wp--preset--color--ink); transform: scaleX(0); transform-origin: 0 50%; }
@media (prefers-reduced-motion: reduce) { .bfs-lesefortschritt { display: none; } }

@media (max-width: 781.98px) {
	.bfs-bk--aufmacher .bfs-bk__titel { font-size: var(--wp--preset--font-size--xx-large); }
	.bfs-bk--liste { grid-template-columns: 88px minmax(0, 1fr); }
	.bfs-blogfilter__zahl { margin-left: 0; }
}

/* Breite Seite (Paulo 10.10.2026, Token weit = layout.contentSize 1400 | 1300 | 1200): Fließtext bleibt schmal (≈ 75 Zeichen).
   Behandlung: Beschreibungstext im Kasten auf das Token schmal begrenzt (Kasten selbst bleibt so breit wie die Spalte). */
.detail-desc__box > :where(p, ul, ol, h2, h3) { max-width: var(--wp--custom--breite--schmal); }
