/* =========================================================================
   FF Bühlertal – Theme-Stylesheet
   Farben, Schriften und Abstände kommen aus theme.json (CSS-Variablen
   --wp--preset--…). Hier stehen die Bausteine, die darüber hinausgehen.
   ========================================================================= */

:root {
	--ffb-radius: 18px;
	--ffb-radius-klein: 12px;
	--ffb-uebergang: 160ms ease;
	--ffb-rot: var(--wp--preset--color--rot, #C42B1F);
	--ffb-rot-hell: var(--wp--preset--color--rot-hell, #EF7564);
	--ffb-anthrazit: var(--wp--preset--color--anthrazit, #16191D);
	--ffb-anthrazit-hell: var(--wp--preset--color--anthrazit-hell, #23282E);
	--ffb-papier: var(--wp--preset--color--papier, #FBFAF7);
	--ffb-karte: var(--wp--preset--color--karte, #FFFEFB);
	--ffb-sand: var(--wp--preset--color--sand, #EFECE6);
	--ffb-linie: var(--wp--preset--color--linie, #E2DDD3);
	--ffb-grau: var(--wp--preset--color--grau, #575C63);
	--ffb-nebel: var(--wp--preset--color--nebel, #B4B9C0);
	--ffb-schrift-schmal: var(--wp--preset--font-family--barlow-condensed, "Barlow Condensed", "Arial Narrow", sans-serif);
	--ffb-schrift: var(--wp--preset--font-family--barlow, Barlow, Arial, sans-serif);
}

/* ---------- Grundlagen ---------- */

html {
	scroll-behavior: smooth;
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

strong,
b {
	font-weight: 600;
}

h1,
h2,
h3,
h4 {
	text-wrap: balance;
}

p {
	text-wrap: pretty;
}

::selection {
	background: var(--ffb-rot);
	color: var(--ffb-papier);
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--ffb-rot);
	outline-offset: 3px;
	border-radius: 4px;
}

.wp-site-blocks {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	min-height: 100dvh;
}

.wp-site-blocks > * {
	margin-block-start: 0;
}

.wp-site-blocks > main,
.wp-site-blocks > .ffb-main {
	flex: 1 0 auto;
}

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

	*,
	*::before,
	*::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
	}
}

/* Überschriften im Fließtext etwas kleiner als in Abschnittsüberschriften */
.wp-block-post-content :where(h2) {
	font-size: clamp(1.7rem, 3vw, 2.25rem);
}

.wp-block-post-content :where(h3) {
	font-size: clamp(1.35rem, 2.4vw, 1.7rem);
}

.wp-block-post-content :where(h2, h3) {
	margin-block-start: 2.25rem;
}

/* ---------- Dunkle Flächen: Schrift und Links hell ---------- */

:is(.has-anthrazit-background-color, .has-anthrazit-hell-background-color, .has-rot-background-color, .has-rot-dunkel-background-color, .has-blau-background-color, .has-gruen-background-color, .is-style-ffb-karte-dunkel, .is-style-ffb-kasten-rot, .ffb-hero, .ffb-steckbrief) :is(h1, h2, h3, h4, h5, h6) {
	color: var(--ffb-papier);
}

:is(.has-anthrazit-background-color, .has-anthrazit-hell-background-color, .has-rot-background-color, .has-rot-dunkel-background-color, .has-blau-background-color, .has-gruen-background-color, .is-style-ffb-karte-dunkel, .is-style-ffb-kasten-rot, .ffb-hero) :is(a:not(.wp-element-button, .ffb-einsatzart)) {
	color: var(--ffb-papier);
}

:is(.has-anthrazit-background-color, .has-anthrazit-hell-background-color, .is-style-ffb-karte-dunkel, .ffb-hero) :is(a:not(.wp-element-button, .ffb-einsatzart)):hover {
	color: var(--ffb-rot-hell);
}

:is(.has-anthrazit-background-color, .has-anthrazit-hell-background-color, .has-rot-background-color, .is-style-ffb-karte-dunkel, .is-style-ffb-kasten-rot, .ffb-hero) :focus-visible {
	outline-color: var(--wp--preset--color--gelb, #F2C14E);
}

/* ---------- Kopfbereich ---------- */

.ffb-topbar p {
	margin: 0;
}

.ffb-topbar__notruf::before {
	content: "";
	display: inline-block;
	width: 0.55rem;
	height: 0.55rem;
	margin-right: 0.55rem;
	border-radius: 50%;
	background: var(--ffb-rot);
	box-shadow: 0 0 0 3px rgba(196, 43, 31, 0.3);
	vertical-align: 0.05em;
}

.ffb-topbar__notruf strong {
	color: var(--ffb-papier);
	font-weight: 700;
	letter-spacing: 0.02em;
}

.ffb-kopf {
	position: relative;
	z-index: 30;
	border-bottom: 1px solid var(--ffb-linie);
}

.ffb-marke {
	flex-shrink: 0;
}

.ffb-marke .wp-block-site-logo,
.ffb-marke .wp-block-site-logo a,
.ffb-marke .wp-block-site-logo img {
	display: block;
}

/* Wortmarke: „Freiwillige Feuerwehr“ klein, „Bühlertal“ groß */
.is-style-ffb-wortmarke {
	margin: 0;
}

.is-style-ffb-wortmarke a {
	display: inline-flex;
	flex-direction: column;
	gap: 0.15rem;
	line-height: 1;
	text-decoration: none;
}

.ffb-wortmarke__oben {
	font-family: var(--ffb-schrift-schmal);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ffb-grau);
}

.ffb-wortmarke__name {
	font-family: var(--ffb-schrift-schmal);
	font-size: 1.85rem;
	font-weight: 700;
	line-height: 0.95;
	color: var(--ffb-anthrazit);
}

.is-style-ffb-wortmarke a:hover .ffb-wortmarke__name {
	color: var(--ffb-rot);
}

/* Navigation */
.ffb-kopf .wp-block-navigation {
	--navigation-layout-justification-setting: flex-end;
}

.ffb-kopf .wp-block-navigation .wp-block-navigation__container {
	gap: 0.2rem 1.6rem;
}

.ffb-kopf .wp-block-navigation-item__content {
	position: relative;
	padding: 0.45rem 0;
	color: var(--ffb-anthrazit);
}

.ffb-kopf .wp-block-navigation-item__content:hover,
.ffb-kopf .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
.ffb-kopf .wp-block-navigation .current-menu-ancestor > .wp-block-navigation-item__content {
	color: var(--ffb-rot);
}

.ffb-kopf .wp-block-navigation__container > .current-menu-item > .wp-block-navigation-item__content::after,
.ffb-kopf .wp-block-navigation__container > .current-menu-ancestor > .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -2px;
	height: 3px;
	border-radius: 2px;
	background: var(--ffb-rot);
}

.ffb-kopf .wp-block-navigation .wp-block-navigation__submenu-container {
	min-width: 240px;
	padding: 0.5rem;
	border: 1px solid var(--ffb-linie);
	border-radius: 14px;
	background: var(--ffb-karte);
	box-shadow: 0 18px 48px rgba(22, 25, 29, 0.16);
}

.ffb-kopf .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 0.55rem 0.8rem;
	border-radius: 8px;
	font-weight: 500;
}

.ffb-kopf .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background: var(--ffb-sand);
}

.ffb-kopf .wp-block-navigation__responsive-container-open {
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border: 1px solid var(--ffb-linie);
	border-radius: 12px;
	background: var(--ffb-karte);
	color: var(--ffb-anthrazit);
}

/* Zu wenig Platz für die Menüleiste (gesetzt von assets/js/kopf.js): Menü-Knopf statt Leiste */
.ffb-kopf--kompakt .wp-block-navigation__responsive-container-open:not(.always-shown) {
	display: flex;
}

.ffb-kopf--kompakt .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
	display: none;
}

/* Handy-Menü (Overlay) – Menüpunkte linksbündig, Untermenüs eingerückt statt als Kasten */
.wp-block-navigation__responsive-container.is-menu-open {
	padding: clamp(1.25rem, 5vw, 2.5rem);
}

.ffb-kopf .is-menu-open :is(.wp-block-navigation__responsive-container-content, .wp-block-navigation__container, .wp-block-navigation-item) {
	--navigation-layout-justification-setting: flex-start;
	--navigation-layout-justify: flex-start;
	text-align: left;
}

.ffb-kopf .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	min-width: 0;
	padding: 0.35rem 0 0.4rem 1.1rem;
	border: 0;
	border-left: 2px solid rgba(251, 250, 247, 0.18);
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

.ffb-kopf .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 0.3rem 0;
	color: var(--ffb-nebel);
}

.ffb-kopf .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover {
	background: none;
	color: var(--ffb-rot-hell);
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 3.5rem;
	gap: 0.6rem;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--ffb-schrift-schmal);
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.15;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-family: var(--ffb-schrift);
	font-size: 1.2rem;
	font-weight: 600;
}

.wp-block-navigation__responsive-container.is-menu-open .current-menu-item > .wp-block-navigation-item__content {
	color: var(--ffb-rot-hell);
}

.ffb-kopf__knopf .wp-block-button__link {
	padding: 0.7rem 1.35rem;
	font-size: 1rem;
	white-space: nowrap;
}

/* Im Editor: Kopfbereich so zeigen wie auf der Website */
.editor-styles-wrapper .ffb-kopf__knopf .wp-block-button__link {
	white-space: nowrap !important;
}

.editor-styles-wrapper .wp-block-site-title.is-style-ffb-wortmarke {
	max-width: 11em;
	font-family: var(--ffb-schrift-schmal);
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1;
}

.editor-styles-wrapper .ffb-kopf .wp-block-site-logo .components-placeholder,
.editor-styles-wrapper .ffb-fuss .wp-block-site-logo .components-placeholder {
	min-height: 0;
	border: 0;
	border-radius: 12px;
	background: url(../images/logo-zeichen.svg) center / contain no-repeat;
	box-shadow: none;
}

.editor-styles-wrapper .wp-block-site-logo .components-placeholder__illustration {
	display: none;
}

@media (max-width: 600px) {
	.ffb-topbar__adresse {
		display: none;
	}

	.ffb-wortmarke__name {
		font-size: 1.6rem;
	}
}

@media (max-width: 480px) {
	.ffb-kopf .ffb-kopf__knopf {
		display: none;
	}
}

/* Lange Wörter (z. B. „Einsatzabteilung“) in schmalen Spalten sauber trennen statt abzuschneiden */
:is(h1, h2, h3, h4, h5, h6, .wp-block-post-title) {
	overflow-wrap: break-word;
	-webkit-hyphens: auto;
	hyphens: auto;
	hyphenate-limit-chars: 10 4 4;
}

/* ---------- Buttons ---------- */

.wp-element-button,
.wp-block-button__link {
	transition: background-color var(--ffb-uebergang), color var(--ffb-uebergang), border-color var(--ffb-uebergang);
}

.wp-block-button.is-style-outline > .wp-block-button__link {
	border: 2px solid var(--ffb-rot);
	background: transparent;
	color: var(--ffb-rot);
	padding: calc(0.85rem - 2px) calc(1.6rem - 2px);
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--ffb-rot);
	color: var(--ffb-papier);
}

.wp-block-button.is-style-ffb-hell > .wp-block-button__link {
	border: 2px solid rgba(251, 250, 247, 0.55);
	background: transparent;
	color: var(--ffb-papier);
	padding: calc(0.85rem - 2px) calc(1.6rem - 2px);
}

.wp-block-button.is-style-ffb-hell > .wp-block-button__link:hover {
	border-color: var(--ffb-papier);
	background: var(--ffb-papier);
	color: var(--ffb-anthrazit);
}

/* ---------- Textstile ---------- */

.is-style-ffb-dachzeile {
	font-family: var(--ffb-schrift-schmal);
	font-size: 0.95rem !important;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ffb-rot);
}

:is(.has-anthrazit-background-color, .has-anthrazit-hell-background-color, .is-style-ffb-karte-dunkel, .ffb-hero, .ffb-steckbrief) .is-style-ffb-dachzeile {
	color: var(--ffb-rot-hell);
}

.is-style-ffb-hinweis .is-style-ffb-dachzeile {
	color: #7A4F00;
}

.is-style-ffb-einleitung {
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.5;
	color: var(--ffb-grau);
}

:is(.has-anthrazit-background-color, .is-style-ffb-karte-dunkel, .ffb-hero) .is-style-ffb-einleitung {
	color: var(--ffb-nebel);
}

.is-style-ffb-grosse-zahl {
	min-width: 3.5rem;
	margin: 0;
	font-family: var(--ffb-schrift-schmal);
	font-size: clamp(2.75rem, 5vw, 3.75rem);
	font-weight: 700;
	line-height: 1;
	color: var(--ffb-rot);
	font-variant-numeric: tabular-nums;
}

.is-style-ffb-etikett {
	display: inline-block;
	width: fit-content;
	padding: 0.3rem 0.95rem;
	border: 1px solid rgba(196, 43, 31, 0.45);
	border-radius: 999px;
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.3;
	color: var(--ffb-rot);
}

:is(.has-anthrazit-background-color, .is-style-ffb-karte-dunkel, .ffb-hero) .is-style-ffb-etikett {
	border-color: rgba(239, 117, 100, 0.6);
	color: var(--ffb-rot-hell);
}

/* Abstand nach oben kommt vom Layout (Blockabstand); in Zeilen (Flex) setzt WordPress ihn auf 0. */
.ffb-mehr-link {
	margin-bottom: 0;
}

.ffb-mehr-link a {
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}

.ffb-mehr-link a::after {
	content: " ›";
}

.ffb-mehr-link a:hover {
	text-decoration: underline;
}

/* ---------- Listen ---------- */

ul.is-style-ffb-haken,
ul.is-style-ffb-striche {
	list-style: none;
	padding-left: 0;
}

ul.is-style-ffb-haken > li,
ul.is-style-ffb-striche > li {
	position: relative;
	margin-block: 0.5rem;
	padding-left: 2rem;
}

ul.is-style-ffb-haken > li::before {
	content: "";
	position: absolute;
	top: 0.22em;
	left: 0;
	width: 1.25rem;
	height: 1.25rem;
	border-radius: 50%;
	background: var(--ffb-rot) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.6 8.4l2.9 2.9 5.9-6.6' fill='none' stroke='%23FBFAF7' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 0.85rem no-repeat;
}

ul.is-style-ffb-striche > li::before {
	content: "";
	position: absolute;
	top: 0.78em;
	left: 0.15rem;
	width: 0.95rem;
	height: 3px;
	border-radius: 2px;
	background: var(--ffb-rot);
}

/* ---------- Karten und Kästen ---------- */

.is-style-ffb-karte {
	padding: clamp(1.1rem, 2vw, 1.6rem);
	border: 1px solid var(--ffb-linie);
	border-radius: var(--ffb-radius);
	background-color: var(--ffb-karte);
}

.is-style-ffb-karte-dunkel {
	padding: clamp(1.1rem, 2vw, 1.6rem);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: var(--ffb-radius);
	background-color: var(--ffb-anthrazit-hell);
	color: var(--ffb-nebel);
}

.is-style-ffb-kasten-rot {
	padding: clamp(1.1rem, 2vw, 1.6rem);
	border-radius: var(--ffb-radius);
	background-color: var(--ffb-rot);
	color: var(--ffb-papier);
}

.is-style-ffb-hinweis {
	padding: clamp(1.1rem, 2.5vw, 1.75rem);
	border: 1px solid #F2C14E;
	border-radius: var(--ffb-radius);
	background-color: #FFF4D6;
	color: var(--ffb-anthrazit);
}

:is(.is-style-ffb-karte, .is-style-ffb-karte-dunkel, .is-style-ffb-kasten-rot, .is-style-ffb-hinweis) > :first-child {
	margin-block-start: 0;
}

:is(.is-style-ffb-karte, .is-style-ffb-karte-dunkel, .is-style-ffb-kasten-rot, .is-style-ffb-hinweis) > :last-child {
	margin-block-end: 0;
}

/* Ganze Karte anklickbar: Der Titel-Link spannt sich über die Karte */
.ffb-karte-link {
	position: relative;
	transition: border-color var(--ffb-uebergang), box-shadow var(--ffb-uebergang), background-color var(--ffb-uebergang);
}

.ffb-karte-link :is(.wp-block-post-title, h2, h3) a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: inherit;
}

.ffb-karte-link :is(a.ffb-einsatzart, .wp-block-post-terms a, .ffb-steckbrief a) {
	position: relative;
	z-index: 2;
}

.ffb-karte-link :is(.wp-block-post-title, h2, h3) a {
	text-decoration: none;
}

.ffb-karte-link :is(.wp-block-post-title, h2, h3) a:focus-visible {
	outline: none;
}

.ffb-karte-link:focus-within {
	outline: 3px solid var(--ffb-rot);
	outline-offset: 3px;
}

.is-style-ffb-karte.ffb-karte-link:hover,
.ffb-beitrag-karte.ffb-karte-link:hover {
	border-color: var(--ffb-rot);
	box-shadow: 0 12px 32px rgba(22, 25, 29, 0.08);
}

.is-style-ffb-karte-dunkel.ffb-karte-link:hover {
	border-color: rgba(239, 117, 100, 0.7);
}

.is-style-ffb-karte-dunkel.ffb-karte-link:hover :is(h2, h3, .wp-block-post-title) a {
	color: var(--ffb-rot-hell);
}

/* ---------- Abschnitte, Seitenkopf, Brotkrumen ---------- */

.ffb-seitenkopf {
	border-bottom: 1px solid var(--ffb-linie);
}

/* Der Abstand nach oben kommt vom Layout – große Umlaute (Ä, Ö, Ü) brauchen die Luft zur Brotkrumen-Zeile. */
.ffb-seitenkopf :is(.wp-block-post-title, .wp-block-query-title, h1) {
	margin-block-end: 0;
}

.ffb-seitenkopf .is-style-ffb-dachzeile + :is(.wp-block-post-title, .wp-block-query-title, h1) {
	margin-block-start: var(--wp--preset--spacing--20);
}

.ffb-seitenkopf .wp-block-term-description p {
	margin: 0;
}

/* Schmalere Elemente im Seitenkopf bündig unter dem Titel ausrichten (nicht mittig) */
.ffb-seitenkopf {
	--ffb-kopfbreite: var(--wp--style--global--content-size, 760px);
}

.ffb-seitenkopf--breit {
	--ffb-kopfbreite: 1280px;
}

.ffb-seitenkopf > :is(.is-style-ffb-einleitung, .wp-block-term-description, .ffb-suche) {
	max-width: min(46rem, 100%);
	margin-left: max(0px, calc((100% - var(--ffb-kopfbreite)) / 2)) !important;
	margin-right: auto !important;
}

.ffb-seitenkopf > .ffb-suche {
	max-width: min(36rem, 100%);
}

.ffb-meta-zeile {
	align-items: center;
}

.ffb-meta-zeile .wp-block-post-date {
	font-size: 1rem;
}

.ffb-brotkrumen ol {
	display: flex;
	flex-wrap: wrap;
	gap: 0.2rem 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 0.9375rem;
	color: var(--ffb-grau);
}

.ffb-brotkrumen li + li::before {
	content: "›";
	margin-right: 0.5rem;
	color: var(--ffb-grau);
}

.ffb-brotkrumen a {
	color: var(--ffb-grau);
	text-decoration: none;
}

.ffb-brotkrumen a:hover {
	color: var(--ffb-rot);
	text-decoration: underline;
}

.ffb-brotkrumen [aria-current] {
	font-weight: 600;
	color: var(--ffb-anthrazit);
}

.ffb-spaltenkopf {
	align-items: flex-end;
}

.ffb-spaltenkopf :is(h2, h3) {
	margin: 0;
}

/* ---------- Startseite: Kopfbild ---------- */

.ffb-hero {
	color: var(--ffb-papier);
	background-color: var(--ffb-anthrazit);
}

.ffb-hero h1 {
	max-width: 18ch;
	margin-block: 0.75rem 0;
}

/* Wird ein Hintergrundfoto eingesetzt, bleibt es durch den Verlauf sichtbar. */
.ffb-hero:has(.wp-block-cover__image-background, .wp-block-cover__video-background) .wp-block-cover__background {
	opacity: 0.82 !important;
}

.ffb-notruf {
	align-items: center !important;
}

.ffb-notruf p {
	margin: 0;
}

.ffb-notruf__nummer {
	flex-shrink: 0;
	white-space: nowrap;
	font-family: var(--ffb-schrift-schmal);
	font-size: clamp(3.25rem, 6vw, 4.5rem);
	font-weight: 700;
	line-height: 0.9;
	letter-spacing: -0.01em;
}

.ffb-notruf__nummer a,
.ffb-notruf__nummer a:hover {
	color: inherit !important;
	text-decoration: none;
}

.ffb-letzter-einsatz .wp-block-post-template {
	margin: 0;
}

.ffb-letzter-einsatz .wp-block-post-title {
	margin: 0;
}

/* ---------- Einsatzart-Etiketten und Vermerke ---------- */

.ffb-einsatzart {
	display: inline-flex;
	align-items: center;
	padding: 0.2rem 0.65rem;
	border-radius: 8px;
	background: var(--ffb-art, #5C6168);
	color: var(--ffb-art-text, #FBFAF7) !important;
	font-family: var(--ffb-schrift);
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: 0;
	text-decoration: none;
	text-transform: none;
	white-space: nowrap;
}

a.ffb-einsatzart:hover {
	filter: brightness(1.12);
	text-decoration: none;
}

.ffb-vermerk {
	display: inline-flex;
	align-items: center;
	padding: 0.12rem 0.6rem;
	border: 1.5px solid currentColor;
	border-radius: 8px;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.35;
	color: var(--ffb-grau);
	white-space: nowrap;
}

.ffb-vermerk--besonders {
	color: var(--ffb-rot);
}

/* Ohne Gewicht: Abstände im Fließtext-Layout kommen weiter vom Blockabstand. */
:where(.ffb-detail) {
	margin: 0;
}

.ffb-detail--art .ffb-detail__wert,
.ffb-detail--vermerke .ffb-detail__wert {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.ffb-detail__label {
	color: var(--ffb-grau);
}

.wp-block-post-terms.taxonomy-einsatzart {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.wp-block-post-terms.taxonomy-einsatzart .wp-block-post-terms__separator {
	display: none;
}

.wp-block-post-terms.is-style-ffb-etiketten {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.wp-block-post-terms.is-style-ffb-etiketten .wp-block-post-terms__separator {
	display: none;
}

.wp-block-post-terms.is-style-ffb-etiketten a {
	display: inline-block;
	padding: 0.12rem 0.65rem;
	border: 1.5px solid rgba(196, 43, 31, 0.5);
	border-radius: 999px;
	color: var(--ffb-rot);
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.35;
	text-decoration: none;
}

.wp-block-post-terms.is-style-ffb-etiketten a:hover {
	border-color: var(--ffb-rot);
	background: var(--ffb-rot);
	color: var(--ffb-papier);
}

/* ---------- Einsatz-Karten (Startseite, Kacheln) ---------- */

.ffb-stapel .wp-block-post-template {
	margin: 0;
}

.ffb-stapel .wp-block-post-template > li + li {
	margin-block-start: 0.85rem;
}

.ffb-einsatz-karte .wp-block-post-title {
	margin: 0;
	line-height: 1.2;
}

.ffb-einsatz-karte .ffb-detail--datum-kurz,
.ffb-einsatz-karte .ffb-detail--ort {
	font-variant-numeric: tabular-nums;
}

.ffb-beitrag-zeile {
	align-items: flex-start !important;
}

.ffb-beitrag-zeile .wp-block-post-featured-image {
	flex: 0 0 88px;
	margin: 0;
}

.ffb-beitrag-zeile .wp-block-post-featured-image img {
	border-radius: 12px;
}

.ffb-beitrag-zeile .wp-block-post-title {
	margin: 0;
	line-height: 1.2;
}

.ffb-beitrag-zeile .wp-block-post-date {
	font-size: 0.9375rem;
}

/* ---------- Beitrags-Kacheln ---------- */

.ffb-beitraege .wp-block-post-template {
	margin-top: 0;
}

.ffb-beitrag-karte {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border: 1px solid var(--ffb-linie);
	border-radius: var(--ffb-radius);
	background: var(--ffb-karte);
}

.ffb-beitrag-karte .wp-block-post-featured-image {
	margin: 0;
}

.ffb-beitrag-karte .wp-block-post-featured-image img {
	border-radius: 0;
}

.ffb-beitrag-karte__text {
	padding: 1.25rem 1.5rem 1.5rem;
}

.ffb-beitrag-karte .wp-block-post-title {
	margin: 0;
	line-height: 1.15;
}

.ffb-beitrag-karte .wp-block-post-excerpt__excerpt {
	margin: 0;
	color: var(--ffb-grau);
}

.ffb-beitrag-karte .wp-block-post-excerpt__more-text {
	display: none;
}

@media (max-width: 781px) {
	.wp-block-post-template.is-layout-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (min-width: 782px) and (max-width: 1100px) {
	.wp-block-post-template.is-layout-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.ffb-termin-info,
.ffb-steckbrief,
.ffb-termin,
.ffb-termine__abo,
.ffb-statistik__kachel,
.ffb-beitrag-karte {
	box-sizing: border-box;
}

/* ---------- Einsatz-Steckbrief ---------- */

.ffb-steckbrief {
	padding: 1.5rem 1.6rem 1.1rem;
	border-radius: var(--ffb-radius);
	background: var(--ffb-anthrazit);
	color: var(--ffb-papier);
}

.ffb-steckbrief__titel {
	margin: 0 0 0.6rem;
	font-family: var(--ffb-schrift-schmal);
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ffb-rot-hell);
}

.ffb-steckbrief__vermerke {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin-bottom: 0.75rem;
}

.ffb-steckbrief .ffb-vermerk {
	color: var(--ffb-papier);
}

.ffb-steckbrief__liste {
	margin: 0;
}

.ffb-steckbrief__zeile {
	display: grid;
	grid-template-columns: minmax(6.5rem, 38%) minmax(0, 1fr);
	gap: 0.75rem;
	padding: 0.7rem 0;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.ffb-steckbrief__zeile dt {
	color: var(--ffb-nebel);
}

.ffb-steckbrief__zeile dd {
	margin: 0;
	font-weight: 600;
	overflow-wrap: anywhere;
}

.ffb-steckbrief a {
	color: var(--ffb-papier);
	text-decoration-color: rgba(251, 250, 247, 0.45);
}

.ffb-steckbrief a:hover {
	color: var(--ffb-rot-hell);
}

.ffb-einsatz-layout__inhalt .wp-block-post-featured-image {
	margin-bottom: 1.5rem;
}

.ffb-einsatz-layout__inhalt .wp-block-post-content > :first-child {
	margin-top: 0;
}

@media (min-width: 782px) {
	.ffb-einsatz-layout {
		flex-direction: row-reverse;
	}

	.ffb-einsatz-layout__seite {
		position: sticky;
		top: 1.5rem;
		align-self: flex-start;
	}
}

/* ---------- Einsatzarchiv: Zahlen, Jahre, Liste ---------- */

.ffb-statistik {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr));
	gap: 1rem;
}

.ffb-statistik__kachel {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	overflow: hidden;
	padding: 1.15rem 1.25rem 1.2rem;
	border: 1px solid var(--ffb-linie);
	border-radius: 16px;
	background: var(--ffb-karte);
}

.ffb-statistik__kachel::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 5px;
	background: var(--ffb-art, transparent);
}

.ffb-statistik__zahl {
	font-family: var(--ffb-schrift-schmal);
	font-size: clamp(2.5rem, 4vw, 3.4rem);
	font-weight: 700;
	line-height: 1;
	color: var(--ffb-zahl, var(--ffb-anthrazit));
	font-variant-numeric: tabular-nums;
}

.ffb-statistik__label {
	font-size: 0.9375rem;
	line-height: 1.35;
	color: var(--ffb-grau);
}

.ffb-statistik__kachel--gesamt {
	border-color: var(--ffb-anthrazit);
	background: var(--ffb-anthrazit);
}

.ffb-statistik__kachel--gesamt .ffb-statistik__zahl {
	color: var(--ffb-papier);
}

.ffb-statistik__kachel--gesamt .ffb-statistik__label {
	color: var(--ffb-nebel);
}

.ffb-jahre__liste {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ffb-jahre a {
	display: inline-block;
	padding: 0.4rem 1rem;
	border: 1px solid #CFC8BC;
	border-radius: 999px;
	background: var(--ffb-karte);
	color: var(--ffb-anthrazit);
	font-size: 0.9375rem;
	font-weight: 600;
	text-decoration: none;
	font-variant-numeric: tabular-nums;
}

.ffb-jahre a:hover {
	border-color: var(--ffb-rot);
	color: var(--ffb-rot);
}

.ffb-jahre a[aria-current] {
	border-color: var(--ffb-anthrazit);
	background: var(--ffb-anthrazit);
	color: var(--ffb-papier);
}

.ffb-einsatzliste .wp-block-post-template,
.ffb-einsatzliste .wp-block-post-template > li {
	margin: 0;
}

.ffb-einsatzliste:not(:has(.wp-block-post-template)) .ffb-einsatz-zeile--kopf {
	display: none;
}

.ffb-einsatz-zeile {
	display: grid;
	grid-template-columns: 4.5rem 7rem 14.5rem minmax(0, 1fr) 5.5rem;
	align-items: center;
	column-gap: 1.25rem;
	padding: 0.9rem 0.75rem;
	border-bottom: 1px solid var(--ffb-linie);
}

.ffb-einsatz-zeile > * {
	margin: 0 !important;
}

.ffb-einsatz-zeile--kopf {
	padding-top: 0;
	padding-bottom: 0.6rem;
	border-bottom: 2px solid var(--ffb-anthrazit);
	color: var(--ffb-grau);
	font-size: 0.9375rem;
	font-weight: 600;
}

.ffb-einsatz-zeile .wp-block-post-title {
	font-family: var(--ffb-schrift);
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: 0;
}

.ffb-einsatz-zeile__nr,
.ffb-einsatz-zeile__dauer {
	color: var(--ffb-grau);
	font-variant-numeric: tabular-nums;
}

.ffb-einsatz-zeile__datum {
	font-variant-numeric: tabular-nums;
}

.ffb-einsatz-zeile.ffb-karte-link:hover {
	background: var(--ffb-karte);
}

.ffb-einsatz-zeile.ffb-karte-link:hover .wp-block-post-title a {
	color: var(--ffb-rot);
}

.ffb-einsatz-zeile.ffb-karte-link:focus-within {
	outline-offset: -3px;
}

@media (max-width: 781px) {
	.ffb-einsatz-zeile--kopf {
		display: none;
	}

	/* Handy: Einsatzart oben, darunter der Titel, dann „Datum · Dauer · Einsatz-Nr.“ */
	.ffb-einsatz-zeile {
		grid-template-columns: auto auto minmax(0, 1fr);
		grid-template-areas:
			"art art art"
			"titel titel titel"
			"datum dauer nr";
		justify-items: start;
		row-gap: 0.4rem;
		column-gap: 0;
		padding: 1rem 0.25rem;
	}

	.ffb-einsatz-zeile__art {
		grid-area: art;
	}

	.ffb-einsatz-zeile .wp-block-post-title {
		grid-area: titel;
	}

	.ffb-einsatz-zeile__datum {
		grid-area: datum;
	}

	.ffb-einsatz-zeile__dauer {
		grid-area: dauer;
	}

	.ffb-einsatz-zeile__nr {
		grid-area: nr;
	}

	.ffb-einsatz-zeile :is(.ffb-einsatz-zeile__datum, .ffb-einsatz-zeile__dauer, .ffb-einsatz-zeile__nr) {
		color: var(--ffb-grau);
		font-size: 0.9375rem;
		white-space: nowrap;
	}

	.ffb-einsatz-zeile :is(.ffb-einsatz-zeile__dauer, .ffb-einsatz-zeile__nr)::before {
		content: "·";
		margin: 0 0.45rem;
	}

	.ffb-einsatz-zeile .ffb-detail--leer {
		display: none;
	}

	.ffb-einsatz-zeile__nr .ffb-detail__wert::before {
		content: "Nr. ";
	}

	.ffb-statistik {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.75rem;
	}

	.ffb-statistik__kachel--gesamt,
	.ffb-statistik__kachel:last-child:nth-child(even) {
		grid-column: 1 / -1;
	}
}

/* ---------- Termine ---------- */

.ffb-termine__liste {
	display: grid;
	gap: 0.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ffb-termine__monat {
	margin: 2rem 0 0.75rem;
	font-size: var(--wp--preset--font-size--large);
}

.ffb-termine > .ffb-termine__monat:first-child {
	margin-top: 0;
}

.ffb-termin {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 0.8rem 1rem;
	border: 1px solid var(--ffb-linie);
	border-radius: 14px;
	background: var(--ffb-karte);
}

.ffb-termin__kachel {
	display: flex;
	flex: 0 0 4.25rem;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 0.5rem 0;
	border-radius: 10px;
	background: var(--ffb-anthrazit);
	line-height: 1;
}

.ffb-termin__tag {
	font-family: var(--ffb-schrift-schmal);
	font-size: 2rem;
	font-weight: 700;
	color: var(--ffb-papier);
	font-variant-numeric: tabular-nums;
}

.ffb-termin__monat {
	margin-top: 0.2rem;
	font-family: var(--ffb-schrift-schmal);
	font-size: 0.9rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ffb-rot-hell);
}

.ffb-termin__text {
	min-width: 0;
}

.ffb-termin__titel {
	margin: 0;
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.3;
	color: var(--ffb-anthrazit);
}

.ffb-termin__titel a {
	color: inherit;
	text-decoration: none;
}

.ffb-termin__titel a::after {
	content: " ›";
	color: var(--ffb-rot);
}

.ffb-termin__titel a:hover {
	color: var(--ffb-rot);
	text-decoration: underline;
}

.ffb-termin__wann {
	white-space: nowrap;
}

.ffb-termin__meta {
	margin: 0.15rem 0 0;
	font-size: 0.9375rem;
	line-height: 1.4;
	color: var(--ffb-grau);
}

.ffb-termin__zusatz {
	display: block;
}

.ffb-termine__leer {
	margin: 0;
	padding: 1rem 1.15rem;
	border: 1px dashed #CFC8BC;
	border-radius: 14px;
	color: var(--ffb-grau);
}

.ffb-termine__abo {
	margin-top: 1.5rem;
	padding: 1.25rem 1.5rem;
	border-radius: 14px;
	background: var(--ffb-sand);
}

.ffb-termine__abo-knopf {
	display: inline-block;
	padding: 0.75rem 1.35rem;
	border-radius: 999px;
	background: var(--ffb-rot);
	color: var(--ffb-papier) !important;
	font-weight: 600;
	text-decoration: none;
}

.ffb-termine__abo-knopf:hover {
	background: var(--wp--preset--color--rot-dunkel, #9C2219);
}

.ffb-termine__abo-hilfe {
	margin: 0.75rem 0 0;
	font-size: 0.9375rem;
	color: var(--ffb-grau);
	overflow-wrap: break-word;
}

.ffb-termine__abo-hilfe a {
	word-break: break-all;
}

.ffb-termin-info {
	display: flex;
	align-items: flex-start;
	gap: 1.5rem;
	padding: 1.5rem;
	border: 1px solid var(--ffb-linie);
	border-radius: var(--ffb-radius);
	background: var(--ffb-karte);
}

.ffb-termin__kachel--gross {
	flex-basis: 6rem;
	padding: 0.85rem 0;
}

.ffb-termin__kachel--gross .ffb-termin__tag {
	font-size: 3rem;
}

.ffb-termin-info__text {
	flex: 1;
	min-width: 0;
}

.ffb-termin-info__liste {
	display: grid;
	gap: 0.45rem;
	margin: 0;
}

.ffb-termin-info__zeile {
	display: grid;
	grid-template-columns: 5.5rem minmax(0, 1fr);
	gap: 0.75rem;
}

.ffb-termin-info__zeile dt {
	color: var(--ffb-grau);
}

.ffb-termin-info__zeile dd {
	margin: 0;
	font-weight: 600;
}

.ffb-termin-info__ics {
	margin: 1rem 0 0;
	font-weight: 600;
}

/* ---------- Infokästen, Personen, Fahrzeuge ---------- */

.ffb-zahlenbox__zeile {
	align-items: center !important;
}

.ffb-zahlenbox__zeile p {
	margin: 0;
}

.ffb-initialen {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3.25rem;
	height: 3.25rem;
	margin: 0 0 0.6rem;
	border-radius: 50%;
	background: var(--ffb-anthrazit);
	color: var(--ffb-papier);
	font-weight: 600;
	letter-spacing: 0.04em;
}

.ffb-person :is(h3, p) {
	margin: 0;
}

.ffb-personen__hinweis {
	margin-top: 1.25rem;
}

.wp-block-table.is-style-ffb-steckbrief table {
	width: 100%;
	border-collapse: collapse;
}

.wp-block-table.is-style-ffb-steckbrief td {
	padding: 0.7rem 0;
	border: none;
	border-top: 1px solid var(--ffb-linie);
	vertical-align: top;
}

.wp-block-table.is-style-ffb-steckbrief tr:first-child td {
	border-top: none;
}

.wp-block-table.is-style-ffb-steckbrief td:first-child {
	width: 38%;
	padding-right: 1rem;
	color: var(--ffb-grau);
}

.wp-block-table.is-style-ffb-steckbrief td:last-child {
	font-weight: 600;
	color: var(--ffb-anthrazit);
}

.wp-block-table:not(.is-style-ffb-steckbrief) th {
	background: var(--ffb-sand);
	text-align: left;
}

.wp-block-table:not(.is-style-ffb-steckbrief) :is(td, th) {
	padding: 0.6rem 0.75rem;
	border-color: var(--ffb-linie);
}

.wp-block-separator.is-style-ffb-rot {
	width: 4rem;
	margin-left: 0;
	border: none;
	border-top: 4px solid var(--ffb-rot);
	border-radius: 2px;
	opacity: 1;
}

.wp-block-categories.is-style-ffb-pillen {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	padding: 0;
	list-style: none;
}

.wp-block-categories.is-style-ffb-pillen a {
	display: inline-block;
	padding: 0.35rem 0.95rem;
	border: 1px solid var(--ffb-linie);
	border-radius: 999px;
	background: var(--ffb-karte);
	color: var(--ffb-anthrazit);
	font-weight: 600;
	text-decoration: none;
}

.wp-block-categories.is-style-ffb-pillen .current-cat a,
.wp-block-categories.is-style-ffb-pillen a:hover {
	border-color: var(--ffb-anthrazit);
	background: var(--ffb-anthrazit);
	color: var(--ffb-papier);
}

/* ---------- Navigation zwischen Beiträgen, Seitenzahlen, Suche ---------- */

:is(.ffb-beitrag-navi, .ffb-einsatz-navi) .wp-block-post-navigation-link {
	max-width: 48%;
}

:is(.ffb-beitrag-navi, .ffb-einsatz-navi) .post-navigation-link-next {
	margin-left: auto;
	text-align: right;
}

.wp-block-post-navigation-link a {
	color: var(--ffb-anthrazit);
	font-weight: 600;
	text-decoration: none;
}

.wp-block-post-navigation-link a:hover {
	color: var(--ffb-rot);
}

.post-navigation-link__label {
	display: block;
	margin-bottom: 0.15rem;
	font-family: var(--ffb-schrift-schmal);
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ffb-grau);
}

.wp-block-query-pagination {
	gap: 0.5rem;
	margin-top: 2rem;
}

.wp-block-query-pagination-numbers {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.wp-block-query-pagination :is(a, .page-numbers) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.6rem;
	height: 2.6rem;
	padding: 0 0.95rem;
	border: 1px solid var(--ffb-linie);
	border-radius: 999px;
	background: var(--ffb-karte);
	color: var(--ffb-anthrazit);
	text-decoration: none;
}

.wp-block-query-pagination .page-numbers.current {
	border-color: var(--ffb-anthrazit);
	background: var(--ffb-anthrazit);
	color: var(--ffb-papier);
}

.wp-block-query-pagination a:hover {
	border-color: var(--ffb-rot);
	color: var(--ffb-rot);
}

.wp-block-search__input {
	padding: 0.8rem 1.15rem;
	border: 1px solid #CFC8BC;
	border-radius: 999px;
	background: var(--ffb-karte);
	color: var(--ffb-anthrazit);
	font: inherit;
}

.wp-block-search__inside-wrapper {
	gap: 0.5rem;
}

.wp-block-search__button {
	margin-left: 0;
}

.ffb-suche {
	max-width: 36rem;
}

.ffb-beitraege .type-page .wp-block-post-date {
	display: none;
}

/* In Suchergebnissen erkennbar machen, dass es ein Einsatzbericht ist */
.ffb-beitraege .type-einsatz .wp-block-post-date::before {
	content: "Einsatzbericht · ";
}

/* ---------- Fußbereich ---------- */

.ffb-fuss h2.ffb-fuss__titel {
	margin: 0 0 0.9rem;
	font-family: var(--ffb-schrift-schmal);
	font-size: 0.95rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ffb-rot-hell);
}

.ffb-fuss p {
	margin-block: 0 0.8rem;
}

.ffb-fuss .wp-block-column > :last-child {
	margin-bottom: 0;
}

.ffb-fuss .ffb-wortmarke__oben {
	color: var(--ffb-nebel);
}

.ffb-fuss .ffb-wortmarke__name {
	color: var(--ffb-papier);
}

.ffb-fuss .ffb-marke {
	margin-bottom: 1.1rem;
}

.ffb-fuss__notruf {
	font-family: var(--ffb-schrift-schmal);
	font-size: 4rem;
	font-weight: 700;
	line-height: 1;
}

.ffb-fuss__notruf a {
	text-decoration: none;
}

.ffb-fuss a:hover {
	color: var(--ffb-rot-hell);
}

.ffb-fuss__links {
	padding-left: 0;
	list-style: none;
}

.ffb-fuss__links li {
	margin: 0.35rem 0;
}

.ffb-fuss__links a,
.ffb-fuss__unten a {
	text-decoration: none;
}

.ffb-fuss__unten p {
	margin: 0;
}

.ffb-fuss .wp-block-loginout a {
	color: var(--ffb-papier);
	text-decoration: none;
}

/* ---------- Tabellen des Plugins (Kurzcode [einsatzliste]) ---------- */

.einsatzverwaltung-reportlist {
	width: 100%;
	border-collapse: collapse;
	font-size: 1rem;
}

.einsatzverwaltung-reportlist :is(th, td) {
	padding: 0.65rem 0.75rem;
	border-bottom: 1px solid var(--ffb-linie);
	text-align: left;
}

.einsatzverwaltung-reportlist tr.einsatz-header th {
	border-bottom: 2px solid var(--ffb-anthrazit);
	color: var(--ffb-grau);
	font-weight: 600;
}

/* ---------- Editor-Hilfen ---------- */

.ffb-editor-beispiel {
	display: inline-block;
	margin-left: 0.5rem;
	padding: 0 0.4rem;
	border-radius: 4px;
	background: #F2C14E;
	color: #16191D;
	font-family: var(--ffb-schrift);
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	vertical-align: middle;
}

.ffb-editor-leer {
	font-style: italic;
	opacity: 0.6;
}

/* ---------- Druck ---------- */

@media print {
	.ffb-topbar,
	.ffb-kopf__navigation,
	.ffb-fuss,
	.wp-block-query-pagination,
	.ffb-beitrag-navi,
	.ffb-einsatz-navi {
		display: none !important;
	}

	.ffb-steckbrief {
		border: 1px solid #16191D;
		background: none;
		color: #16191D;
	}
}
