/*
Theme Name: Feuerwehr Munderkingen
Theme URI: https://feuerwehr-munderkingen.de
Description: Child-Theme der Freiwilligen Feuerwehr Munderkingen, basierend auf Twenty Twenty-Five. Modern, schlicht, vollständig responsive. Primärziel: zielgerichtete Bürgerinformation; Sekundärziel: Mitgliederwerbung.
Author: Feuerwehr Munderkingen
Template: twentytwentyfive
Version: 0.7.87
Tested up to: 6.9
Requires at least: 6.5
Requires PHP: 8.1
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: feuerwehr-theme
*/

/* =========================================================================
   Tokens
   ========================================================================= */
:root {
	--fw-c-primary-rgb: 189 31 26;
	--fw-c-primary-dark-rgb: 142 24 21;
	--fw-c-ink-rgb: 26 26 26;
	--fw-c-ink-soft-rgb: 38 38 38;
	--fw-c-paper-rgb: 250 250 250;
	--fw-c-mute-rgb: 107 107 107;
	--fw-c-line-rgb: 229 229 229;
	--fw-c-gold-rgb: 201 161 76;

	--fw-shadow-sm: 0 1px 2px rgba(26 26 26 / 0.06);
	--fw-shadow-md: 0 6px 22px rgba(26 26 26 / 0.10);
	--fw-shadow-lg: 0 18px 48px rgba(26 26 26 / 0.16);

	--fw-r-sm: 4px;
	--fw-r-md: 8px;
	--fw-r-lg: 16px;
	--fw-r-pill: 999px;

	--fw-t-fast: 120ms ease-out;
	--fw-t-base: 220ms cubic-bezier(0.2, 0.7, 0.2, 1);
	--fw-t-slow: 380ms cubic-bezier(0.2, 0.7, 0.2, 1);

	--fw-header-h: 68px;
	--fw-z-header: 50;
	--fw-z-overlay: 100;

	--fw-focus: 0 0 0 3px rgba(189 31 26 / 0.35);

	/* Civic-Editorial typography tokens */
	--fw-num-tabular: "tnum" 1, "lnum" 1, "kern" 1;
	--fw-c-rule: rgba(13 13 13 / 0.12);
	--fw-c-rule-strong: rgba(13 13 13 / 0.28);
}

/* =========================================================================
   Reset additions
   ========================================================================= */
*,
*::before,
*::after {
	box-sizing: border-box;
}

/* Body randlos halten — Sektion-Backgrounds reichen damit bis Viewport-Rand.
   Überschreibt etwaige Parent-Theme- oder WP-Defaults. */
body.wp-site-blocks,
body {
	margin: 0;
	padding: 0;
}

/* WordPress' has-global-padding ist hier nicht erwünscht — die Sektionen
   bringen ihr eigenes horizontales Padding mit. */
.wp-site-blocks > .has-global-padding,
.has-global-padding {
	padding-inline: 0;
}

/* Beim Maus-Klick keinen Fokus-Ring zeigen (das ist der weiße/schwarze
   Browser-Default-Rahmen). */
*:focus {
	outline: none;
}

/* Aber bei Tastatur-Navigation MUSS der Fokus sichtbar bleiben — Pflicht
   für Bedienbarkeit ohne Maus. Dezenter roter Schatten in Marken-Farbe. */
*:focus-visible {
	outline: none;
	box-shadow: var(--fw-focus);
	border-radius: var(--fw-r-sm);
}

/* Mobile-Tap-Highlight (graues/dunkles Aufblitzen beim Tippen) ausschalten. */
html {
	-webkit-tap-highlight-color: transparent;
}

img, svg {
	max-width: 100%;
	height: auto;
}

body {
	font-feature-settings: "kern", "liga", "ss01";
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	scroll-padding-top: calc(var(--fw-header-h) + 1rem);
}

body.fw-no-scroll {
	overflow: hidden;
}

/* =========================================================================
   Header — sticky, dark.
   WordPress wrappt template-parts in <header class="wp-block-template-part">.
   Daher sticky am outer Wrapper setzen, sonst greift es nicht.
   Wichtig: Header darf KEINEN nach-unten gerichteten Box-Shadow haben,
   weil das Overlay-Panel daran anschließt — sonst wirkt es überlappend.
   ========================================================================= */
header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: var(--fw-z-header);
	background: #161616;
	border-bottom: 1px solid rgba(255 255 255 / 0.06);
	display: block;
	/* NO min-height here — outer wrapper takes shape from inner content.
	   Putting min-height: var(--fw-header-h) here creates a feedback loop with
	   the JS that measures THIS element and writes the height back into the var. */
}

.fw-header {
	position: relative;
	z-index: var(--fw-z-header);
	background: #161616;
	color: #fff;
}

.fw-header__inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 clamp(1rem, 2.5vw, 1.75rem);
	min-height: 68px;
	display: flex;
	align-items: center;
	gap: 1.5rem;
}

/* Brand */
.fw-header__brand {
	display: inline-flex;
	align-items: center;
	gap: 0.625rem;
	color: #fff;
	text-decoration: none;
	font-weight: 700;
	letter-spacing: -0.005em;
	flex-shrink: 0;
}

.fw-header__crest {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.fw-header__crest img,
.fw-header__crest svg {
	display: block;
	width: 46px;
	height: 50px;
	object-fit: contain;
}

.fw-footer__crest img,
.fw-footer__crest svg {
	display: block;
	width: 44px;
	height: 48px;
	object-fit: contain;
}

.fw-header__brand-text {
	display: inline-flex;
	flex-direction: column;
	line-height: 1.05;
}

.fw-header__brand-name {
	font-size: 1.5rem;
	font-weight: 800;
	letter-spacing: -0.01em;
}

.fw-header__brand-loc {
	font-size: 1.125rem;
	font-weight: 500;
	color: rgba(255 255 255 / 0.75);
	letter-spacing: 0.005em;
}

/* Desktop nav (Top-Level + Dropdown-Submenüs) */
.fw-header__nav {
	margin-left: auto;
}

.fw-menu {
	display: flex;
	align-items: center;
	gap: 0.25rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.fw-menu > li {
	position: relative;
}

.fw-menu a {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	padding: 0.625rem 0.875rem;
	color: rgba(255 255 255 / 0.85);
	text-decoration: none;
	font-size: 0.9375rem;
	font-weight: 600;
	letter-spacing: 0.005em;
	border-radius: var(--fw-r-md);
	transition: background-color var(--fw-t-fast), color var(--fw-t-fast);
	white-space: nowrap;
}

.fw-menu a:hover,
.fw-menu__has-child:hover > a,
.fw-menu__has-child:focus-within > a {
	color: #fff;
	background: rgba(255 255 255 / 0.07);
}

.fw-menu a.is-current,
.fw-menu a[aria-current="page"] {
	color: #fff;
	background: rgb(var(--fw-c-primary-rgb));
}

/* Submenu (1. Ebene unter Aktuelles / Über uns) */
.fw-submenu {
	position: absolute;
	top: calc(100% + 0.5rem);
	left: 0;
	min-width: 220px;
	list-style: none;
	margin: 0;
	padding: 0.5rem;
	background: #1a1a1a;
	border: 1px solid rgba(255 255 255 / 0.08);
	border-radius: var(--fw-r-md);
	box-shadow: var(--fw-shadow-lg);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-4px);
	transition: opacity var(--fw-t-base), transform var(--fw-t-base), visibility var(--fw-t-base);
	z-index: 10;
}

.fw-submenu::before {
	content: "";
	position: absolute;
	top: -0.5rem;
	left: 0;
	right: 0;
	height: 0.5rem;
}

.fw-menu__has-child:hover > .fw-submenu,
.fw-menu__has-child:focus-within > .fw-submenu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

/* Rechtsbündiges Dropdown beim letzten Top-Item (vermeidet Viewport-Overflow rechts) */
.fw-menu > li.fw-menu__has-child--end > .fw-submenu {
	left: auto;
	right: 0;
}
.fw-menu > li.fw-menu__has-child--end > .fw-submenu::before {
	left: 0;
	right: 0;
}

.fw-submenu > li {
	position: relative;
}

.fw-submenu a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	padding: 0.5rem 0.75rem;
	font-size: 0.9375rem;
	border-radius: var(--fw-r-sm);
	white-space: nowrap;
}

.fw-submenu a:hover {
	background: rgba(255 255 255 / 0.08);
}

/* Nested Submenu (2. Ebene — Einsatzabteilung, Nachwuchs) */
.fw-submenu--nested {
	top: -0.5rem;
	left: calc(100% + 0.25rem);
	transform: translateX(-4px);
}

.fw-submenu--nested::before {
	top: 0;
	left: -0.25rem;
	right: auto;
	width: 0.25rem;
	height: 100%;
}

.fw-menu__has-child .fw-menu__has-child:hover > .fw-submenu--nested,
.fw-menu__has-child .fw-menu__has-child:focus-within > .fw-submenu--nested {
	opacity: 1;
	visibility: visible;
	transform: translateX(0);
}

/* Nested submenus beim Über-uns-Dropdown (rechts angedockt) — nach LINKS öffnen */
.fw-menu > li.fw-menu__has-child--end .fw-submenu--nested {
	left: auto;
	right: calc(100% + 0.25rem);
	transform: translateX(4px);
}
.fw-menu > li.fw-menu__has-child--end .fw-submenu--nested::before {
	left: auto;
	right: -0.25rem;
}
.fw-menu > li.fw-menu__has-child--end .fw-menu__has-child:hover > .fw-submenu--nested,
.fw-menu > li.fw-menu__has-child--end .fw-menu__has-child:focus-within > .fw-submenu--nested {
	transform: translateX(0);
}

/* Burger */
.fw-header__burger {
	display: none;
	margin-left: auto;
	width: 46px;
	height: 46px;
	padding: 0;
	background: rgba(255 255 255 / 0.10);
	border: 2px solid rgba(255 255 255 / 0.85);
	border-radius: var(--fw-r-md);
	color: #fff;
	cursor: pointer;
	align-items: center;
	justify-content: center;
	transition: background-color var(--fw-t-fast), border-color var(--fw-t-fast);
	flex-shrink: 0;
	box-shadow: 0 2px 8px rgba(0 0 0 / 0.4);
}

.fw-header__burger:hover,
.fw-header__burger:focus-visible {
	background: rgba(255 255 255 / 0.08);
	border-color: rgba(255 255 255 / 0.32);
}

.fw-header__burger-icon {
	position: relative;
	width: 22px;
	height: 16px;
}

.fw-header__burger-icon span {
	position: absolute;
	left: 0;
	width: 100%;
	height: 2px;
	background: currentColor;
	border-radius: 1px;
	transition: transform var(--fw-t-base), opacity var(--fw-t-fast);
}

.fw-header__burger-icon span:nth-child(1) { top: 0; }
.fw-header__burger-icon span:nth-child(2) { top: 7px; }
.fw-header__burger-icon span:nth-child(3) { top: 14px; }

.fw-header__burger[aria-expanded="true"] {
	background: rgb(var(--fw-c-primary-rgb));
	border-color: rgb(var(--fw-c-primary-rgb));
}

.fw-header__burger[aria-expanded="true"] .fw-header__burger-icon span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}
.fw-header__burger[aria-expanded="true"] .fw-header__burger-icon span:nth-child(2) {
	opacity: 0;
}
.fw-header__burger[aria-expanded="true"] .fw-header__burger-icon span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* =========================================================================
   Mobile Overlay
   Startet UNTERHALB des sticky Headers, sodass Header + Burger-X
   sichtbar bleiben während Panel offen ist.
   ========================================================================= */
.fw-mobile-overlay {
	position: fixed;
	top: var(--fw-header-h);
	left: 0;
	right: 0;
	bottom: 0;
	z-index: var(--fw-z-overlay);
	pointer-events: none;
}

.fw-mobile-overlay[data-open="true"] {
	pointer-events: auto;
}

.fw-mobile-overlay__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0 0 0 / 0.5);
	opacity: 0;
	transition: opacity var(--fw-t-base);
}

.fw-mobile-overlay[data-open="true"] .fw-mobile-overlay__backdrop {
	opacity: 1;
}

.fw-mobile-overlay__panel {
	position: absolute;
	top: 0;
	right: 0;
	height: 100%;
	width: min(86vw, 380px);
	background: #161616;
	color: #fff;
	box-shadow: var(--fw-shadow-lg);
	transform: translateX(100%);
	transition: transform var(--fw-t-slow);
	padding: 1.5rem 1.5rem 2rem;
	overflow-y: auto;
	display: flex;
	flex-direction: column;
}

/* Mobile (≤ 600px): Panel vollbreit ohne Backdrop-Streifen */
@media (max-width: 600px) {
	.fw-mobile-overlay__panel {
		width: 100%;
		box-shadow: none;
	}
	.fw-mobile-overlay__backdrop {
		display: none;
	}
}

.fw-mobile-overlay[data-open="true"] .fw-mobile-overlay__panel {
	transform: translateX(0);
}

/* Mobile-Menü (Akkordeon mit Toggle für Submenüs) */
.fw-mobile-menu {
	list-style: none;
	margin: 0 0 auto;
	padding: 0;
}

.fw-mobile-menu > li + li {
	border-top: 1px solid rgba(255 255 255 / 0.08);
}

.fw-mobile-menu a {
	display: block;
	padding: 0.95rem 0;
	color: #fff;
	text-decoration: none;
	font-size: 1.0625rem;
	font-weight: 600;
	letter-spacing: -0.005em;
	transition: color var(--fw-t-fast), padding-left var(--fw-t-fast);
}

.fw-mobile-menu > li > a:hover,
.fw-mobile-menu > li > a:focus-visible {
	color: rgb(var(--fw-c-gold-rgb));
}

/* Row mit Link + Toggle nebeneinander (für Parent-Items) */
.fw-mobile-menu__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
}

.fw-mobile-menu__row > a {
	flex: 1;
	padding: 0.95rem 0;
}

.fw-mobile-menu__toggle {
	flex-shrink: 0;
	width: 44px;
	height: 44px;
	background: transparent;
	border: 1px solid rgba(255 255 255 / 0.15);
	border-radius: var(--fw-r-md);
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1rem;
	transition: background var(--fw-t-fast), border-color var(--fw-t-fast), transform var(--fw-t-fast);
}

.fw-mobile-menu__toggle:hover {
	background: rgba(255 255 255 / 0.08);
	border-color: rgba(255 255 255 / 0.3);
}

.fw-mobile-menu__toggle[aria-expanded="true"] {
	background: rgba(var(--fw-c-primary-rgb) / 0.25);
	border-color: rgba(var(--fw-c-primary-rgb) / 0.5);
}

.fw-mobile-menu__toggle[aria-expanded="true"] span {
	transform: rotate(180deg);
}

.fw-mobile-menu__toggle span {
	display: inline-block;
	transition: transform var(--fw-t-fast);
}

/* Sub-Items (aufklappbar) */
.fw-mobile-menu__sub {
	list-style: none;
	margin: 0 0 0.75rem;
	padding: 0 0 0 1rem;
	border-left: 2px solid rgba(var(--fw-c-primary-rgb) / 0.4);
}

.fw-mobile-menu__sub > li > a {
	padding: 0.625rem 0;
	font-size: 0.9375rem;
	font-weight: 500;
	color: rgba(255 255 255 / 0.85);
}

.fw-mobile-menu__sub > li > a:hover {
	color: rgb(var(--fw-c-gold-rgb));
}

/* Nested Group (Einsatzabteilung, Nachwuchs) — kein extra Toggle, flach eingerückt */
.fw-mobile-menu__group {
	padding: 0.25rem 0;
}

.fw-mobile-menu__group-head {
	display: block;
	padding: 0.625rem 0 !important;
	font-size: 0.9375rem !important;
	font-weight: 700 !important;
	color: #fff !important;
}

.fw-mobile-menu__group-sub {
	list-style: none;
	margin: 0;
	padding: 0 0 0 0.875rem;
	border-left: 1px solid rgba(255 255 255 / 0.1);
}

.fw-mobile-menu__group-sub > li > a {
	padding: 0.5rem 0;
	font-size: 0.875rem;
	font-weight: 500;
	color: rgba(255 255 255 / 0.7);
}

.fw-mobile-menu__group-sub > li > a:hover {
	color: rgb(var(--fw-c-gold-rgb));
}

/* Burger sichtbar nur < 1024px */
@media (max-width: 1023px) {
	.fw-header__nav { display: none; }
	.fw-header__burger { display: inline-flex; }
}

/* =========================================================================
   Hero — Frontpage (Foto-Carousel + Statistik-Zahlen)
   ========================================================================= */
.fw-hero {
	position: relative;
	width: 100%;
	max-width: none;
	margin: 0;
	min-height: clamp(420px, 70vh, 680px);
	display: flex;
	align-items: center;
	overflow: hidden;
	color: #fff;
	background: #161616;
}

.fw-hero__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.fw-hero__bg-slide {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	/* Legacy fallback: <div> mit background-image (wenn keine Attachment-IDs vorhanden) */
	background-size: cover;
	background-position: center;
	/* Neuer Modus: <img> mit srcset */
	object-fit: cover;
	object-position: center;
	display: block;
	opacity: 0;
	transition: opacity 1.2s ease-in-out;
}

.fw-hero__bg-slide.is-active {
	opacity: 1;
}

.fw-hero__overlay {
	position: absolute;
	inset: 0;
	/* Heller als vorher — links nur leicht abdunkeln für Text-Kontrast,
	   rechts fast transparent. Vertikal nur dezenter Vignette unten. */
	background:
		linear-gradient(90deg, rgba(0 0 0 / 0.55) 0%, rgba(0 0 0 / 0.3) 45%, rgba(0 0 0 / 0.05) 100%),
		linear-gradient(180deg, rgba(0 0 0 / 0.05) 0%, rgba(0 0 0 / 0.15) 65%, rgba(0 0 0 / 0.4) 100%);
	z-index: 1;
}

.fw-hero__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
	padding: clamp(3rem, 7vw, 5rem) clamp(1rem, 2.5vw, 1.75rem) clamp(5rem, 8vw, 6.5rem);
	display: flex;
	flex-direction: column;
	gap: clamp(2.5rem, 5vw, 3.5rem);
}

.fw-hero__text {
	/* Text-Block ist eine Spalte, aber Slogan/Lede haben eigene max-widths */
	width: 100%;
}

/* Title atmet auf bis zur lesbaren Zeilen-Länge. Bei den großen Display-Größen
   bedeutet "20ch" ungefähr 60–70% Viewport-Breite — Slogans brechen in 1–2 Zeilen,
   nicht in 4 wie bei 64ch der vorherigen Variante. */
.fw-hero__title {
	/* max-width entfernt — Slogans nutzen jetzt explizite <br>-Umbrüche
	   im Pattern. Mobile-Schriftgröße kommt aus dem clamp() weiter unten. */
	max-width: none;
}

.fw-hero__lede {
	max-width: 56ch;
}

.fw-hero__kicker {
	display: inline-block;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-gold-rgb));
	margin: 0 0 0.75rem;
}

.fw-hero__title {
	/* CSS Grid Stack: alle Slogans in derselben Cell — der längste
	   bestimmt die Höhe automatisch. Verhindert layout shift / Überlappung
	   bei mehrzeiligen Varianten. */
	display: grid;
	grid-template-areas: "stack";
	font-size: clamp(2.5rem, 1.5rem + 4.5vw, 4.75rem);
	font-weight: 900;
	line-height: 0.98;
	letter-spacing: -0.03em;
	margin: 0 0 1.5rem;
	color: #fff;
	/* Subtiler Schatten für Lesbarkeit jetzt wo das Overlay heller ist. */
	text-shadow: 0 2px 16px rgba(0, 0, 0, 0.5);
	font-feature-settings: "ss01" 1, "liga" 1, "kern" 1;
}

.fw-hero__slogan {
	grid-area: stack;
	opacity: 0;
	transform: translateY(8px);
	transition: opacity 600ms ease, transform 600ms ease;
	will-change: opacity, transform;
	/* `visibility: hidden` damit der nicht-aktive Slogan zwar Platz reserviert,
	   aber für Screen-Reader nicht doppelt vorgelesen wird */
	visibility: hidden;
}

.fw-hero__slogan.is-active {
	opacity: 1;
	transform: translateY(0);
	visibility: visible;
}

/* Letztes Wort des Slogans bekommt einen roten Unterstrich, der sich beim
   Slogan-Wechsel von links nach rechts entfaltet — wiederkehrende Marken-Geste. */
.fw-hero__slogan-accent {
	font-style: normal;
	position: relative;
	color: #fff;
	white-space: nowrap;
}
.fw-hero__slogan-accent::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0.08em;
	height: 4px;
	background: rgb(var(--fw-c-primary-rgb));
	transform-origin: left;
	transform: scaleX(0);
	transition: transform 0.7s cubic-bezier(0.65, 0, 0.35, 1) 0.25s;
}
.fw-hero__slogan.is-active .fw-hero__slogan-accent::after {
	transform: scaleX(1);
}

/* Sizer wird durch Grid-Stack-Layout obsolet — bleibt im HTML aber unsichtbar */
.fw-hero__slogan-sizer {
	display: none;
}

.fw-hero__lede {
	font-size: clamp(1rem, 0.9rem + 0.3vw, 1.1875rem);
	line-height: 1.55;
	color: rgba(255 255 255 / 0.88);
	margin: 0 0 1.75rem;
	max-width: 36em;
}

.fw-hero__ctas {
	display: flex;
	gap: 0.75rem;
	flex-wrap: wrap;
}

.fw-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	padding: 0.8125rem 1.375rem;
	border-radius: var(--fw-r-md);
	font-size: 0.9375rem;
	font-weight: 700;
	letter-spacing: 0.005em;
	text-decoration: none;
	transition: background-color var(--fw-t-fast), transform var(--fw-t-fast), box-shadow var(--fw-t-fast);
	cursor: pointer;
	border: 0;
}

.fw-btn--primary {
	background: rgb(var(--fw-c-primary-rgb));
	color: #fff;
}

.fw-btn--primary:hover {
	background: rgb(var(--fw-c-primary-dark-rgb));
	transform: translateY(-1px);
	box-shadow: var(--fw-shadow-md);
}

.fw-btn--ghost {
	background: transparent;
	color: #fff;
	border: 1.5px solid rgba(255 255 255 / 0.6);
}

.fw-btn--ghost:hover {
	background: rgba(255 255 255 / 0.1);
	border-color: #fff;
}

.fw-btn--ink {
	background: rgb(var(--fw-c-ink-rgb));
	color: #fff;
}

.fw-btn--ink:hover {
	background: rgb(var(--fw-c-ink-soft-rgb));
}

/* Ghost-Light: transparenter Button mit weißer Border auf farbigem Hintergrund.
   Bei Hover invertiert zu weiß BG + Marken-Rot-Text. Editorial/plakativ. */
.fw-btn--ghost-light {
	background: transparent;
	color: #fff;
	border: 2px solid rgba(255 255 255 / 0.78);
	padding: 0.9rem 1.5rem;
	font-size: 0.9375rem;
	letter-spacing: 0.02em;
}
.fw-btn--ghost-light:hover,
.fw-btn--ghost-light:focus-visible {
	background: #fff;
	color: rgb(var(--fw-c-primary-rgb));
	border-color: #fff;
}

/* Stats — vollbreite horizontale Reihe, horizontal zentriert auf dem Bildschirm.
   `align-items: stretch` damit alle Items gleich hoch sind (auch wenn eine
   Caption länger ist als die andere). Caption/Value/Label sitzen dadurch
   auf einer Baseline über alle vier Items hinweg. */
.fw-hero__stats {
	display: flex;
	justify-content: center;
	align-items: stretch;
	flex-wrap: wrap;
	gap: clamp(1.5rem, 4vw, 3rem);
	width: 100%;
	margin: 0 auto;
}

/* Auf Mobile 2×2-Grid statt 4er-Reihe — sonst zu viel Scroll. */
@media (max-width: 640px) {
	.fw-hero__stats {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 1.5rem 1.25rem;
		max-width: 26rem;
	}
	.fw-hero__stats .fw-stat {
		/* JS-Equalize-Width skippt auf Mobile, aber für den ersten Frame
		   vor JS-Run sicherheitshalber auch hier resetten. */
		min-width: 0;
	}
}

.fw-stat {
	display: flex;
	flex-direction: column;
	gap: 0;
	padding: 0 0 0 1rem;
	background: transparent;
	border-left: 2px solid rgb(var(--fw-c-primary-rgb));
	border-radius: 0;
	backdrop-filter: none;
	text-align: left;
	/* Alle Stats gleich hoch: jede Section (Caption / Value / Label) sitzt
	   in einer Baseline-Reihe über alle Items hinweg. */
	min-height: 100%;
}

.fw-stat__value {
	font-size: clamp(1.625rem, 1.2rem + 1vw, 2.125rem);
	font-weight: 900;
	font-variant-numeric: tabular-nums lining-nums;
	font-feature-settings: "tnum" 1, "lnum" 1, "ss01" 1;
	line-height: 0.95;
	letter-spacing: -0.02em;
	color: #fff;
}

.fw-stat__label {
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(255 255 255 / 0.7);
	margin-top: 0.375rem;
	padding-top: 0;
	border-top: 0;
	white-space: nowrap;
}

/* Year-Variante: kleine „SEIT"-Caption in Gold über der Zahl;
   das Label „Munderkingen" bleibt weiß wie bei den anderen Stats. */
.fw-stat__caption {
	display: block;
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-gold-rgb));
	margin-bottom: 0.4rem;
	line-height: 1;
}

/* =========================================================================
   Page-Hero (kleiner, für Sub-Seiten)
   ========================================================================= */
.fw-page-hero {
	position: relative;
	background: #0f0f0f;
	color: #fff;
	padding: clamp(3rem, 6vw, 4.5rem) clamp(1rem, 2.5vw, 1.75rem);
	overflow: hidden;
	max-width: none;
	width: 100%;
}

/* Page-Hero ist above-the-fold — kein Fade-In, nur is-in-Trigger
   für den Title-Focus-Underline-Sweep. */
.fw-page-hero.fw-reveal {
	opacity: 1;
	transform: none;
	transition: none;
}

/* Subtiler Rot-Glüh-Akzent (gleicher Sprache wie das CTA-Band) */
.fw-page-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(at 90% 110%, rgba(189 31 26 / 0.30), transparent 55%),
		radial-gradient(at 10% -20%, rgba(189 31 26 / 0.15), transparent 55%);
	z-index: 0;
}

.fw-page-hero__inner {
	position: relative;
	z-index: 1;
	max-width: 1280px;
	margin: 0 auto;
}

/* Kanonisches Header-Pattern, gleiches Vokabular wie .fw-section__kicker */
.fw-page-hero__kicker {
	display: inline-block;
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-gold-rgb));
	margin: 0 0 0.875rem;
}

.fw-page-hero__title {
	font-size: clamp(2rem, 1.4rem + 2.4vw, 3.25rem);
	font-weight: 900;
	line-height: 1.05;
	letter-spacing: -0.025em;
	margin: 0;
	color: #fff;
	font-feature-settings: "ss01" 1, "kern" 1;
}

/* Fokuswort am Sub-Page-Title — animierter ROTER Strich darunter
   (konsistente Marken-Geste über alle Sektionen, immer rot). */
.fw-page-hero__title .fw-section__title-focus {
	position: relative;
	display: inline-block;
	color: inherit;
	font-style: normal;
	white-space: nowrap;
	/* Stacking context so descenders ride ABOVE the line (g, p, j, …) */
	isolation: isolate;
}
.fw-page-hero__title .fw-section__title-focus::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -0.02em;
	height: 4px;
	background: rgb(var(--fw-c-primary-rgb));
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.75s cubic-bezier(0.65, 0, 0.35, 1) 0.25s;
	z-index: -1;
}
.fw-page-hero.is-in .fw-section__title-focus::after {
	transform: scaleX(1);
}

.fw-page-hero__lede {
	margin: 1rem 0 0;
	font-size: clamp(1rem, 0.95rem + 0.3vw, 1.125rem);
	line-height: 1.55;
	color: rgba(255 255 255 / 0.82);
	max-width: 56ch;
}

.fw-page-hero__lede {
	margin: 0.875rem 0 0;
	max-width: 56ch;
	font-size: clamp(0.9375rem, 0.875rem + 0.2vw, 1.0625rem);
	line-height: 1.55;
	color: rgba(255 255 255 / 0.82);
}

/* =========================================================================
   Layout: Sections
   ========================================================================= */
.fw-section {
	padding: clamp(3.5rem, 7vw, 5.5rem) clamp(1rem, 2.5vw, 1.75rem);
	/* Sektion selbst nimmt immer die volle Browser-Breite ein, damit der
	   Background bis zum Viewport-Rand reicht. Container innen begrenzt
	   nur den Inhalt. Überschreibt WP-Layout-Constrained-Default. */
	max-width: none;
	width: 100%;
	margin-inline: 0;
}

.fw-section--tight {
	padding-top: clamp(1.5rem, 4vw, 2.5rem);
	padding-bottom: clamp(1.5rem, 4vw, 2.5rem);
}

/* Sektions-Rhythmus: einheitliche Sprache, weiche Tönungen statt harter Brüche.
   Akzent-Farbe wird ausschließlich in Kicker, Buttons und CTA-Band eingesetzt. */
.fw-section--soft {
	background: #fafaf7;
}

.fw-section--cream {
	background: #f3efe7;
}

/* Aktuelles-Sektion: weicher Cool-Neutral-Grau, klar von Weiß abgesetzt. */
.fw-section--mute {
	background: #f1f3f5;
}

/* =========================================================================
   Heraldischer Mikro-Marker — drei Punkte mit goldenem Stern in der Mitte.
   Wiederkehrendes Identitäts-Element zwischen Sektionen, in Footer-Headers,
   als Kicker-Akzent. Vom Wappen-Motiv abgeleitet.
   ========================================================================= */
.fw-mark {
	display: inline-block;
	width: 72px;
	height: 14px;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 72 14' fill='none'><circle cx='8' cy='7' r='1.5' fill='%23C9A14C'/><circle cx='20' cy='7' r='1.5' fill='%23C9A14C'/><path d='M36 1.5 L38 5.5 L42 6 L39 9 L40 13 L36 11 L32 13 L33 9 L30 6 L34 5.5 Z' fill='%23C9A14C'/><circle cx='52' cy='7' r='1.5' fill='%23C9A14C'/><circle cx='64' cy='7' r='1.5' fill='%23C9A14C'/></svg>");
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	vertical-align: middle;
}

/* Section-Bridge — verbindet Sektionen visuell statt harter Switches */
.fw-section-bridge {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.25rem;
	padding: 1.5rem clamp(1rem, 2.5vw, 1.75rem);
	max-width: 1280px;
	margin: 0 auto;
}
.fw-section-bridge::before,
.fw-section-bridge::after {
	content: "";
	flex: 1;
	max-width: 220px;
	height: 1px;
	background: var(--fw-c-rule);
}
.fw-section-bridge--invert::before,
.fw-section-bridge--invert::after {
	background: rgba(255 255 255 / 0.16);
}

.fw-section__container {
	max-width: 1280px;
	margin: 0 auto;
}

/* Container-Skala für Sektionen, die mehr Platz brauchen.
   --medium: 1440px (für 2-Spalter wie Aktuelles)
   --wide: 1520px (für Foto-Galleries wie Bereiche-Hub)
   Überschreiben WordPress' globale --wp--style--global--content-size. */
.fw-section__container.fw-section__container--medium {
	--wp--style--global--content-size: 1360px;
	max-width: 1360px;
}
.fw-section__container.fw-section__container--wide {
	--wp--style--global--content-size: 1520px;
	max-width: 1520px;
}
.fw-section__container--wide > .fw-hub-grid,
.fw-section__container--medium > .fw-twocol {
	max-width: none;
}

.fw-section__head {
	position: relative;
	display: grid;
	grid-template-columns: 1fr auto;
	column-gap: 2rem;
	row-gap: 0.5rem;
	align-items: end;
	margin-bottom: clamp(2rem, 4vw, 2.75rem);
}

/* Zentrierte Variante: gleiche Struktur (Kicker / Title / Lede),
   horizontal mittig statt linksbündig. Numeral wird ausgeblendet, da
   es bei zentriertem Layout typografisch nicht funktioniert. */
.fw-section__head--center {
	display: block;
	text-align: center;
}
.fw-section__head--center[data-fw-numeral]::before {
	display: none;
}
.fw-section__head--center > div {
	margin: 0 auto;
	max-width: 56ch;
}
.fw-section__head--center .fw-section__title {
	max-width: none;
}
.fw-section__head--center .fw-section__lede--standalone {
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}
.fw-section__head--center .fw-section__more {
	margin-top: 0.875rem;
}

/* Römische Numerale als dezenter Editorial-Akzent — gold, 8% opacity */
.fw-section__head[data-fw-numeral]::before {
	content: attr(data-fw-numeral);
	position: absolute;
	right: 0;
	top: -0.3em;
	font-size: clamp(5rem, 4rem + 6vw, 9rem);
	font-weight: 800;
	line-height: 0.85;
	letter-spacing: -0.05em;
	color: rgb(var(--fw-c-gold-rgb));
	opacity: 0.07;
	pointer-events: none;
	z-index: 0;
	font-feature-settings: "lnum" 1, "kern" 1;
}
.fw-section__head > div,
.fw-section__head > .fw-section__more {
	position: relative;
	z-index: 1;
}

.fw-section__head > div:first-child {
	min-width: 0;
}

@media (max-width: 640px) {
	.fw-section__head {
		grid-template-columns: 1fr;
	}
}

.fw-section__kicker {
	display: inline-block;
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	/* Vereinheitlicht mit Hero-Kicker: gold statt rot */
	color: rgb(var(--fw-c-gold-rgb));
	margin: 0 0 0.875rem;
}

.fw-section__title {
	font-size: clamp(2rem, 1.3rem + 2.6vw, 3.25rem);
	font-weight: 900;
	line-height: 1.02;
	letter-spacing: -0.025em;
	margin: 0;
	max-width: 18ch;
	font-feature-settings: "kern" 1, "ss01" 1, "liga" 1;
}

/* Fokuswort am Section-Title (analog zum letzten Wort im Hero-Slogan) —
   roter Strich darunter sweept beim Scroll-Reveal ein. */
.fw-section__title-focus {
	position: relative;
	display: inline-block;
	font-style: normal;
	color: inherit;
	white-space: nowrap;
	/* Stacking context so descenders ride ABOVE the line (g, p, j, …) */
	isolation: isolate;
}
.fw-section__title-focus::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -0.02em;
	height: 4px;
	background: rgb(var(--fw-c-primary-rgb));
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.75s cubic-bezier(0.65, 0, 0.35, 1) 0.25s;
	z-index: -1;
}
.fw-section__head.is-in .fw-section__title-focus::after {
	transform: scaleX(1);
}

.fw-section__more {
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-primary-rgb));
	text-decoration: none;
	padding-bottom: 2px;
	border-bottom: 2px solid transparent;
	transition: border-color var(--fw-t-fast);
	white-space: nowrap;
}

.fw-section__more:hover {
	border-bottom-color: rgb(var(--fw-c-primary-rgb));
}

/* More-Link unter den Titel ziehen statt rechts daneben in der Grid-Cell.
   Mit kleinem Abstand zum Title und linksbündig. */
.fw-section__more--below {
	display: inline-flex;
	align-items: center;
	margin-top: 1rem;
	border-bottom: 2px solid rgb(var(--fw-c-primary-rgb));
}

.fw-section__lede {
	font-size: clamp(1rem, 0.9rem + 0.3vw, 1.125rem);
	line-height: 1.6;
	color: rgba(22 22 22 / 0.7);
	max-width: 52ch;
	margin: 0;
}

.fw-section__lede--standalone {
	margin: 1rem 0 0;
}

/* =========================================================================
   Einsätze-Listenseite — Pillen-Filter + schlanke Tabelle.
   Optimiert für 50–150 Einträge pro Jahr. Klassisches Datenarchiv-Pattern,
   scannender Blick über alle Spalten gleichzeitig.
   ========================================================================= */
/* =========================================================================
   Einsatz-Bar — Tabellen-Header (H2) + Filter-Toggle rechts daneben.
   Grid-Layout: Row 1 hat Titel links + Toggle rechts; Row 2 (wenn Filter
   geöffnet) erstreckt sich über volle Breite mit dem Form-Panel.
   `display: contents` auf <details> lässt summary + form direkt im Grid
   sitzen — Browser-eigene toggle-Logik bleibt aktiv.
   ========================================================================= */
.fw-einsatz-bar {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: 1rem 1rem;
	margin: clamp(1.5rem, 3vw, 2.25rem) 0 clamp(1rem, 2vw, 1.5rem);
}
.fw-einsatz-bar__title {
	margin: 0;
	grid-column: 1;
	grid-row: 1;
	font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem);
	font-weight: 800;
	letter-spacing: -0.01em;
	color: rgb(var(--fw-c-ink-rgb));
}
.fw-einsatzfilter-wrap {
	grid-column: 2;
	grid-row: 1;
	margin: 0;
}
.fw-einsatz-bar .fw-einsatzfilter {
	grid-column: 1 / -1;
	grid-row: 2;
	margin-top: 0; /* parent gap handles spacing */
}
.fw-einsatz-bar .fw-einsatzfilter[hidden] {
	display: none;
}

/* <summary> als Filter-Toggle */
.fw-einsatzfilter-toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.5625rem 1rem 0.5625rem 0.875rem;
	background: #fff;
	border: 1px solid var(--fw-c-rule);
	border-radius: var(--fw-r-sm);
	cursor: pointer;
	user-select: none;
	font-size: 0.9375rem;
	font-weight: 600;
	color: rgba(13 13 13 / 0.82);
	transition: border-color var(--fw-t-fast), color var(--fw-t-fast), background var(--fw-t-fast);
	list-style: none; /* hide marker */
}
.fw-einsatzfilter-toggle::-webkit-details-marker { display: none; }
.fw-einsatzfilter-toggle::marker { display: none; }
.fw-einsatzfilter-toggle:hover {
	border-color: rgb(var(--fw-c-primary-rgb));
	color: rgb(var(--fw-c-primary-rgb));
}
.fw-einsatzfilter-toggle__icon {
	display: inline-flex;
	color: rgba(13 13 13 / 0.55);
}
.fw-einsatzfilter-toggle:hover .fw-einsatzfilter-toggle__icon {
	color: rgb(var(--fw-c-primary-rgb));
}
.fw-einsatzfilter-toggle__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.25rem;
	height: 1.25rem;
	padding: 0 0.375rem;
	background: rgb(var(--fw-c-primary-rgb));
	color: #fff;
	border-radius: 999px;
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.04em;
}
.fw-einsatzfilter-toggle__chev {
	display: inline-block;
	font-size: 0.6875rem;
	color: rgba(13 13 13 / 0.55);
	transition: transform var(--fw-t-fast);
}
.fw-einsatzfilter-wrap[open] .fw-einsatzfilter-toggle__chev {
	transform: rotate(180deg);
}
.fw-einsatzfilter-wrap[open] .fw-einsatzfilter-toggle {
	background: rgba(var(--fw-c-primary-rgb) / 0.04);
	border-color: rgba(var(--fw-c-primary-rgb) / 0.4);
	color: rgb(var(--fw-c-primary-rgb));
}

/* Filter-Form (in <details>-Panel) */
.fw-einsatzfilter {
	margin: 1rem 0 0;
	padding: 1.25rem;
	background: #fafaf7;
	border: 1px solid var(--fw-c-rule);
	border-radius: var(--fw-r-md);
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.fw-einsatzfilter__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
}
.fw-einsatzfilter__label {
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: rgba(13 13 13 / 0.5);
	min-width: 5rem;
}
.fw-einsatzfilter__pills {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	flex: 1;
}
.fw-einsatzfilter__pill {
	display: inline-block;
	padding: 0.5rem 1rem;
	border: 1px solid var(--fw-c-rule);
	border-radius: 999px;
	font-size: 0.875rem;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.01em;
	color: rgba(13 13 13 / 0.82);
	text-decoration: none;
	background: #fff;
	transition: background var(--fw-t-fast), color var(--fw-t-fast), border-color var(--fw-t-fast);
}
.fw-einsatzfilter__pill:hover {
	border-color: rgb(var(--fw-c-primary-rgb));
	color: rgb(var(--fw-c-primary-rgb));
}
.fw-einsatzfilter__pill.is-active {
	background: rgb(var(--fw-c-primary-rgb));
	border-color: rgb(var(--fw-c-primary-rgb));
	color: #fff;
}

/* =========================================================================
   fw-select — Custom Dropdown (kein Browser-Select).
   Das native <select> bleibt im DOM für Form-Fallback (display: none).
   ========================================================================= */
.fw-select {
	position: relative;
	display: inline-block;
}
.fw-select__native {
	position: absolute;
	left: -9999px;
	top: 0;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}
.fw-select__trigger {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: #fff;
	border: 1px solid var(--fw-c-rule);
	color: rgb(var(--fw-c-ink-rgb));
	cursor: pointer;
	font-family: inherit;
	transition: border-color var(--fw-t-fast), background var(--fw-t-fast), color var(--fw-t-fast);
}
.fw-select__trigger:hover {
	border-color: rgb(var(--fw-c-primary-rgb));
}
.fw-select__value {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.fw-select__chev {
	font-size: 0.6875rem;
	color: rgba(13 13 13 / 0.55);
	transition: transform var(--fw-t-fast);
}
.fw-select.is-open .fw-select__chev {
	transform: rotate(180deg);
}
.fw-select__panel {
	position: absolute;
	top: calc(100% + 4px);
	left: 0;
	min-width: 100%;
	max-height: 320px;
	overflow-y: auto;
	margin: 0;
	padding: 0.375rem 0;
	background: #fff;
	border: 1px solid var(--fw-c-rule);
	border-radius: var(--fw-r-sm);
	box-shadow: 0 12px 32px rgba(13 13 13 / 0.12);
	list-style: none;
	z-index: 50;
}
.fw-select__option {
	padding: 0.5rem 0.875rem;
	font-size: 0.9375rem;
	color: rgb(var(--fw-c-ink-rgb));
	cursor: pointer;
	transition: background var(--fw-t-fast), color var(--fw-t-fast);
	outline: none;
}
.fw-select__option:hover,
.fw-select__option:focus {
	background: rgba(var(--fw-c-primary-rgb) / 0.08);
	color: rgb(var(--fw-c-primary-rgb));
}
.fw-select__option.is-active {
	background: rgba(var(--fw-c-primary-rgb) / 0.12);
	color: rgb(var(--fw-c-primary-rgb));
	font-weight: 700;
}
.fw-select__group {
	padding: 0.5rem 0.875rem 0.25rem;
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: rgba(13 13 13 / 0.5);
	pointer-events: none;
}

/* Pill-Variante (für „Frühere Jahre"-Dropdown im Pill-Stil) */
.fw-select--pill .fw-select__trigger {
	padding: 0.5rem 1rem;
	border-radius: 999px;
	font-size: 0.875rem;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.01em;
	color: rgba(13 13 13 / 0.82);
}
.fw-select--pill.is-active .fw-select__trigger {
	background: rgb(var(--fw-c-primary-rgb));
	border-color: rgb(var(--fw-c-primary-rgb));
	color: #fff;
}
.fw-select--pill.is-active .fw-select__chev {
	color: rgba(255 255 255 / 0.8);
}

/* Field-Variante (für Fahrzeug-Dropdown im Feld-Stil) */
.fw-select--field {
	display: block;
}
.fw-select--field .fw-select__trigger {
	width: 100%;
	padding: 0.625rem 0.875rem;
	border-radius: var(--fw-r-sm);
	font-size: 0.9375rem;
	justify-content: space-between;
}

/* Fahrzeug-Dropdown + Suchfeld Layout */
.fw-einsatzfilter__row--fzgsearch {
	gap: 1rem;
	align-items: flex-end;
}
.fw-einsatzfilter__field {
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
	flex: 1;
	min-width: 220px;
}
.fw-einsatzfilter__field--search {
	min-width: 240px;
}
.fw-einsatzfilter__row--fzgsearch .fw-einsatzfilter__label {
	min-width: auto;
}
.fw-einsatzfilter__search {
	width: 100%;
	padding: 0.625rem 0.875rem;
	border: 1px solid var(--fw-c-rule);
	border-radius: var(--fw-r-sm);
	font-size: 0.9375rem;
	color: rgb(var(--fw-c-ink-rgb));
	background: #fff;
}
.fw-einsatzfilter__search:focus {
	outline: none;
	border-color: rgb(var(--fw-c-primary-rgb));
	box-shadow: 0 0 0 3px rgba(var(--fw-c-primary-rgb) / 0.12);
}

/* Aktionen */
.fw-einsatzfilter__actions {
	display: flex;
	gap: 0.75rem;
	align-items: center;
	padding-top: 0.5rem;
	border-top: 1px solid var(--fw-c-rule);
}
.fw-einsatzfilter__submit {
	display: inline-block;
	padding: 0.625rem 1.375rem;
	background: rgb(var(--fw-c-primary-rgb));
	color: #fff;
	border: 0;
	border-radius: var(--fw-r-sm);
	font-size: 0.9375rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	cursor: pointer;
	transition: filter var(--fw-t-fast);
}
.fw-einsatzfilter__submit:hover {
	filter: brightness(1.08);
}
.fw-einsatzfilter__reset {
	font-size: 0.875rem;
	color: rgba(13 13 13 / 0.6);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
}
.fw-einsatzfilter__reset:hover {
	color: rgb(var(--fw-c-primary-rgb));
}

/* Mobile: alles untereinander, Labels über den Controls */
@media (max-width: 720px) {
	.fw-einsatzfilter__row {
		flex-direction: column;
		align-items: stretch;
	}
	.fw-einsatzfilter__label {
		min-width: auto;
	}
	.fw-einsatzfilter__row--fzgsearch {
		gap: 1rem;
	}
}

/* Legacy / Kompat — Pillen aus altem Markup */
.fw-einsatz-pills {
	margin: clamp(1.5rem, 3vw, 2.25rem) 0 clamp(2rem, 4vw, 3rem);
}
.fw-einsatz-pills__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}
.fw-einsatz-pills__pill {
	display: inline-block;
	padding: 0.4375rem 0.875rem;
	border: 1px solid var(--fw-c-rule);
	border-radius: 999px;
	font-size: 0.8125rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.04em;
	color: rgba(13 13 13 / 0.78);
	text-decoration: none;
	background: #fff;
	transition: background var(--fw-t-fast), color var(--fw-t-fast), border-color var(--fw-t-fast);
}
.fw-einsatz-pills__pill:hover {
	border-color: rgb(var(--fw-c-primary-rgb));
	color: rgb(var(--fw-c-primary-rgb));
}
.fw-einsatz-pills__pill.is-active {
	background: rgb(var(--fw-c-primary-rgb));
	border-color: rgb(var(--fw-c-primary-rgb));
	color: #fff;
}

/* Sub-Page-Container weiter ziehen, wenn er die Einsatz-Tabelle enthält.
   :has() ersetzt eine eigene page-Template-Variante. Wir müssen sowohl den
   Container selbst als auch sein direktes Kind (entry-content / wp-block-
   post-content) breiter machen, sonst gewinnt die WP-generierte
   .wp-container-XXX > :where(...){max-width:800px} Regel. */
body:has(.fw-einsatztabelle) .fw-section__container,
body:has(.fw-einsatztabelle) .fw-section__container > * {
	max-width: 1200px;
}
body:has(.fw-einsatztabelle) .fw-section__container {
	--wp--style--global--content-size: 1200px;
}

.fw-einsatztabelle {
	max-width: 1200px;
	margin: 0 auto;
}
.fw-einsatztabelle__year {
	font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem);
	font-weight: 800;
	letter-spacing: -0.01em;
	margin: 0 0 1rem;
	color: rgb(var(--fw-c-ink-rgb));
}
.fw-einsatztabelle__table {
	width: 100%;
	border-collapse: collapse;
	font-size: 1rem;
	line-height: 1.5;
}
/* Default-TD/TH-Borders aus dem Parent-Theme killen + den globalen Hover-
   Background-Tint von `main table tr:hover td` (für andere Tabellen) hier
   ausschließen. Wir setzen Trennlinien und Hover explizit selbst. */
.fw-einsatztabelle__table th,
.fw-einsatztabelle__table td {
	border: 0;
}
.fw-einsatztabelle__table tr:hover td,
.fw-einsatztabelle__table tr:focus td,
.fw-einsatztabelle__table tr:active td,
.fw-einsatztabelle__table tr:focus-within td {
	background: transparent !important;
}
.fw-einsatztabelle__table tr {
	-webkit-tap-highlight-color: transparent;
}

/* Spalten-Breiten — Datum + Nr fixiert, Stichwort kompakt, Titel fluid,
   Ort + Fahrzeuge je ~18%. */
.fw-einsatztabelle__col-date  { width: 88px; }
.fw-einsatztabelle__col-art   { width: 16%; }
.fw-einsatztabelle__col-title { width: auto; }
.fw-einsatztabelle__col-ort   { width: 24%; }
.fw-einsatztabelle__col-fzg   { width: 18%; }
.fw-einsatztabelle__col-nr    { width: 56px; }

/* Monats-Trenner als Tabellen-Reihe in Rot-Caps mit dickerer roter Unterlinie —
   das ist der EINZIGE Trennstrich in der Tabelle, alle Row-Borders sind weg. */
.fw-einsatztabelle__monthrow th {
	text-align: left;
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-primary-rgb));
	padding: 1.875rem 0 0.75rem;
	border-bottom: 2px solid rgb(var(--fw-c-primary-rgb));
}
.fw-einsatztabelle__monthrow:first-of-type th {
	padding-top: 0;
}

/* Datenzeile — keine Border, dafür mehr vertikale Luft für Lesbarkeit */
.fw-einsatztabelle__row {
	transition: color var(--fw-t-fast);
}
.fw-einsatztabelle__row td {
	padding: 0.875rem 0.875rem;
	vertical-align: middle;
	color: rgb(var(--fw-c-ink-rgb));
}
.fw-einsatztabelle__row td:first-child { padding-left: 0; }
.fw-einsatztabelle__row td:last-child  { padding-right: 0; }

/* Verlinkbare Zeile (mit Bericht) — Cursor als einzige Affordance.
   Bewusst kein Hover-Effekt: weder Background-Tint noch Title-Color, weil
   alles davon unruhig wirkte. Bold Title + Cursor signalisieren Klickbarkeit. */
.fw-einsatztabelle__row--linked {
	cursor: pointer;
}

/* Datum: Tag groß, Monat klein darunter inline */
.fw-einsatztabelle__date {
	white-space: nowrap;
	color: rgb(var(--fw-c-mute-rgb));
	font-variant-numeric: tabular-nums;
}
.fw-einsatztabelle__day {
	font-weight: 700;
	color: rgb(var(--fw-c-ink-rgb));
	margin-right: 0.25em;
}
.fw-einsatztabelle__month {
	font-size: 0.9375rem;
	color: rgb(var(--fw-c-mute-rgb));
}

/* Stichwort als kleiner roter Caps-Marker */
.fw-einsatztabelle__art {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-primary-rgb));
}

/* Titel als Hauptinformation.
   Clickable-Row (mit Bericht): semibold + ink-Farbe + dezenter roter Chevron.
   Non-clickable: regulär + gedämpft, damit der Unterschied im UI sichtbar ist. */
.fw-einsatztabelle__title {
	font-size: 1rem;
	font-weight: 400;
	color: rgba(13 13 13 / 0.62);
}
.fw-einsatztabelle__title a,
.fw-einsatztabelle__title a:hover,
.fw-einsatztabelle__title a:focus,
.fw-einsatztabelle__title a:active {
	color: rgb(var(--fw-c-ink-rgb));
	font-weight: 600;
	text-decoration: none;
	background: none;
}
.fw-einsatztabelle__row--linked .fw-einsatztabelle__title a::after {
	content: "›";
	display: inline-block;
	margin-left: 0.4em;
	color: rgb(var(--fw-c-primary-rgb));
	font-weight: 700;
	font-size: 1.125em;
	line-height: 1;
	transform: translateY(-1px);
	transition: transform var(--fw-t-fast);
}
@media (hover: hover) {
	.fw-einsatztabelle__row--linked:hover .fw-einsatztabelle__title a {
		text-decoration: underline;
		text-decoration-color: rgb(var(--fw-c-primary-rgb));
		text-decoration-thickness: 2px;
		text-underline-offset: 3px;
	}
	.fw-einsatztabelle__row--linked:hover .fw-einsatztabelle__title a::after {
		transform: translate(3px, -1px);
	}
}

/* Ort dezent */
.fw-einsatztabelle__ort {
	color: rgba(13 13 13 / 0.72);
	font-size: 0.9375rem;
}

/* Fahrzeuge — kompakte Kennungs-Liste */
.fw-einsatztabelle__fzg {
	font-size: 0.9375rem;
	color: rgba(13 13 13 / 0.72);
}

/* Nummer rechtsbündig, klein */
.fw-einsatztabelle__nr {
	text-align: right;
	font-size: 0.875rem;
	color: rgb(var(--fw-c-mute-rgb));
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

/* =========================================================================
   Mobile-Variante (≤720px): Tabelle wird zu Card-Stack.
   Layout: vertikaler Datums-Block (Tag groß, Monat caps) links,
   Content-Stack rechts (Stichwort-Pill, Titel, Ort, Fahrzeuge).
   Tabelle-Semantik bleibt erhalten (für Screen-Reader), Layout via Grid.
   ========================================================================= */
@media (max-width: 720px) {
	.fw-einsatztabelle {
		max-width: 100%;
	}
	/* Colgroup deaktivieren, sonst verteilt der Browser noch fixe Spaltenbreiten */
	.fw-einsatztabelle__table > colgroup { display: none; }

	/* :where() entfernt Specificity, damit nachfolgende Class-Only-Rules
	   wie .fw-einsatztabelle__row { display: grid } gewinnen können. */
	:where(.fw-einsatztabelle__table),
	:where(.fw-einsatztabelle__table tbody),
	:where(.fw-einsatztabelle__table tr),
	:where(.fw-einsatztabelle__table td),
	:where(.fw-einsatztabelle__table th) {
		display: block;
		width: auto;
	}

	/* Monats-Trenner als großes Caps-Label mit roter Unterlinie */
	.fw-einsatztabelle__monthrow {
		border-bottom: none;
		margin-top: 1.5rem;
	}
	.fw-einsatztabelle__monthrow:first-of-type {
		margin-top: 0;
	}
	.fw-einsatztabelle__monthrow th {
		font-size: 0.8125rem;
		letter-spacing: 0.22em;
		padding: 0 0 0.5rem;
		border-bottom: 2px solid rgb(var(--fw-c-primary-rgb));
		color: rgb(var(--fw-c-primary-rgb));
	}

	/* Card-Layout: Datums-Block links, Content-Stack rechts.
	   Letzter Eintrag pro Monats-tbody hat keinen Strich unten — der rote
	   Monats-Trenner der Folge-Sektion ersetzt ihn visuell. */
	.fw-einsatztabelle__table tbody > tr:last-child {
		border-bottom: 0;
	}
	.fw-einsatztabelle__row {
		padding: 1.125rem 0;
		border-bottom: 1px solid var(--fw-c-rule);
		display: grid;
		grid-template-columns: 3.25rem 1fr;
		grid-template-areas:
			"date art"
			"date title"
			"date ort"
			"date fzg"
			"date nr";
		grid-template-rows: auto auto auto auto auto;
		column-gap: 1rem;
		row-gap: 0.25rem;
		align-items: start;
	}
	.fw-einsatztabelle__row:hover {
		background: transparent;
	}
	.fw-einsatztabelle__row td {
		padding: 0;
		vertical-align: baseline;
	}

	/* Datums-Block links: Tag groß, Monat klein darunter caps */
	.fw-einsatztabelle__date {
		grid-area: date;
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		line-height: 1;
		padding-top: 0.125rem;
	}
	.fw-einsatztabelle__day-dot {
		display: none; /* Punkt + Space nur für Desktop */
	}
	.fw-einsatztabelle__day {
		font-size: 1.625rem;
		font-weight: 800;
		color: rgb(var(--fw-c-ink-rgb));
		letter-spacing: -0.02em;
		margin: 0;
	}
	.fw-einsatztabelle__month {
		font-size: 0.6875rem;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 0.16em;
		color: rgba(13 13 13 / 0.55);
		margin-top: 0.25rem;
	}

	/* Stichwort als kleine rote Caps-Zeile */
	.fw-einsatztabelle__art {
		grid-area: art;
		font-size: 0.625rem;
		font-weight: 800;
		letter-spacing: 0.18em;
		text-transform: uppercase;
		color: rgb(var(--fw-c-primary-rgb));
		line-height: 1.3;
	}

	/* Titel als Haupt-Headline */
	.fw-einsatztabelle__title {
		grid-area: title;
		font-size: 1.0625rem;
		font-weight: 700;
		line-height: 1.3;
		color: rgb(var(--fw-c-ink-rgb));
		margin-top: 0.125rem;
	}
	.fw-einsatztabelle__title a {
		color: inherit;
	}

	/* Meta-Zeilen mit Icons-Hint via Pseudo-Element */
	.fw-einsatztabelle__ort {
		grid-area: ort;
		font-size: 0.875rem;
		color: rgba(13 13 13 / 0.7);
		line-height: 1.4;
		margin-top: 0.25rem;
	}
	.fw-einsatztabelle__fzg {
		grid-area: fzg;
		font-size: 0.8125rem;
		color: rgba(13 13 13 / 0.55);
		line-height: 1.4;
		font-variant-numeric: tabular-nums;
	}
	.fw-einsatztabelle__fzg:empty { display: none; }

	.fw-einsatztabelle__nr {
		grid-area: nr;
		text-align: left;
		font-size: 0.6875rem;
		color: rgba(13 13 13 / 0.4);
		letter-spacing: 0.06em;
		margin-top: 0.125rem;
	}
	.fw-einsatztabelle__nr:empty { display: none; }
}

/* =========================================================================
   Hub-Kacheln (Foto-Tiles mit Overlay + Titel) — Konstanz-inspired
   ========================================================================= */
.fw-hub-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	/* 3×2 auf Desktop, 2-Spalter auf Tablet, 1-Spalter auf Mobile */
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(1.25rem, 2vw, 1.75rem);
}

.fw-hub-card {
	margin: 0;
}

@media (max-width: 900px) and (min-width: 541px) {
	.fw-hub-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 540px) {
	.fw-hub-grid { grid-template-columns: 1fr; gap: 1rem; }
}

/* Lead-Card behält den roten Button, ist aber kein Grid-Outlier mehr —
   sie sitzt einfach an erster Position als „Hauptbereich". */
.fw-hub-card--lead .fw-hub-card__cta {
	background: rgb(var(--fw-c-primary-rgb));
	color: #fff;
	padding: 0.625rem 0.875rem;
	border-bottom: 0;
	border-radius: 2px;
	margin-top: 0.875rem;
	transition: background var(--fw-t-fast);
}
.fw-hub-card--lead .fw-hub-card__link:hover .fw-hub-card__cta,
.fw-hub-card--lead .fw-hub-card__link:focus-visible .fw-hub-card__cta {
	background: rgb(var(--fw-c-primary-dark-rgb));
}

/* Card-Architektur:
   - Link ist Flex-Container, Foto oben (Frame), Body unten (heller Hintergrund).
   - Foto und Text sind ENTKOPPELT — kein Overlay-Text-auf-Foto-Trick mehr.
   - Body sitzt auf creme-getöntem Hintergrund, dunkler Text — maximale Lesbarkeit.
   - Lead-Card bekommt einen roten Akzent-Streifen oben und einen prominenteren CTA. */
.fw-hub-card__link {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	background: #fff;
	color: rgb(var(--fw-c-ink-rgb));
	text-decoration: none;
	border-radius: var(--fw-r-md);
	overflow: hidden;
	border: 1px solid var(--fw-c-rule);
	box-shadow: 0 1px 2px rgba(0 0 0 / 0.04), 0 16px 36px -22px rgba(0 0 0 / 0.18);
	transition: transform var(--fw-t-base), box-shadow var(--fw-t-base), border-color var(--fw-t-base);
	isolation: isolate;
}

.fw-hub-card__link:hover,
.fw-hub-card__link:focus-visible {
	transform: translateY(-4px);
	box-shadow: 0 2px 4px rgba(0 0 0 / 0.06), 0 28px 48px -22px rgba(0 0 0 / 0.28);
	border-color: rgba(189 31 26 / 0.3);
}

/* Lead-Card border-top auf Wunsch entfernt — keine farbliche Sonderstellung,
 * Lead-Position ergibt sich aus Reihenfolge + größerem CTA. */

/* Hub-Card Placeholder (wenn noch kein Foto da ist) — neutraler Cream-Block
 * mit dezentem „Foto folgt"-Hinweis, statt dunkler Lücke. */
.fw-hub-card .fw-hub-card__media-frame--placeholder {
	background: linear-gradient(135deg,
		rgba(var(--fw-c-line-rgb) / 0.9),
		rgba(var(--fw-c-mute-rgb) / 0.18)
	) !important;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	padding-bottom: 0.875rem;
}
.fw-hub-card__placeholder {
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: rgba(var(--fw-c-mute-rgb) / 0.65);
}

/* Über-uns Hub-Grid: aus dem schmalen contentSize ausbrechen, ähnlich wide
 * wie auf der Startseite. Negative-Margin-Trick: parent ist 800px, Grid
 * wird auf bis zu 1200px aufgeweitet, jeweils symmetrisch nach außen. */
.page-id-77 .fw-hub-grid {
	--fw-grid-wide: min(calc(100vw - 3rem), 1200px);
	width: var(--fw-grid-wide);
	max-width: none !important;
	margin-left: calc((100% - var(--fw-grid-wide)) / 2) !important;
	margin-right: calc((100% - var(--fw-grid-wide)) / 2) !important;
	margin-top: 2.5rem;
}

.fw-hub-card__media-frame {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: #161616;
}

.fw-hub-card__media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
	transform: scale(1.02);
	transition: transform 800ms ease;
}

.fw-hub-card__link:hover .fw-hub-card__media,
.fw-hub-card__link:focus-visible .fw-hub-card__media {
	transform: scale(1.06);
}

/* Editorial-Nummerierung — oben links auf dem Foto, gold mit Strich */
.fw-hub-card__num {
	position: absolute;
	top: 1rem;
	left: 1rem;
	z-index: 2;
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	color: #fff;
	font-feature-settings: "tnum" 1, "lnum" 1;
	padding: 0.375rem 0.625rem;
	background: rgba(13 13 13 / 0.65);
	backdrop-filter: blur(4px);
	border-left: 2px solid rgb(var(--fw-c-gold-rgb));
	transition: background 300ms ease, border-color 300ms ease;
}
.fw-hub-card__link:hover .fw-hub-card__num,
.fw-hub-card__link:focus-visible .fw-hub-card__num {
	background: rgb(var(--fw-c-primary-rgb));
	border-color: #fff;
}

.fw-hub-card__body {
	padding: clamp(1.25rem, 2vw, 1.75rem) clamp(1.25rem, 2vw, 1.75rem) clamp(1.375rem, 2vw, 1.875rem);
	background: #fff;
	flex: 1;
	display: flex;
	flex-direction: column;
}

.fw-hub-card__kicker {
	display: inline-block;
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-primary-rgb));
	margin: 0 0 0.5rem;
}

.fw-hub-card__title {
	font-size: clamp(1.375rem, 1.1rem + 0.8vw, 1.75rem);
	font-weight: 900;
	line-height: 1.1;
	letter-spacing: -0.02em;
	margin: 0 0 0.625rem;
	color: rgb(var(--fw-c-ink-rgb));
	font-feature-settings: "ss01" 1, "kern" 1;
}

.fw-hub-card__lede {
	font-size: 0.9375rem;
	line-height: 1.55;
	color: rgba(13 13 13 / 0.72);
	margin: 0 0 1rem;
	max-width: 42ch;
	flex: 1;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.fw-hub-card__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.8125rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-primary-rgb));
	padding-bottom: 4px;
	border-bottom: 2px solid rgb(var(--fw-c-primary-rgb));
	align-self: flex-start;
	margin-top: auto;
	transition: color var(--fw-t-fast);
}

.fw-hub-card--lead .fw-hub-card__cta {
	background: rgb(var(--fw-c-primary-rgb));
	color: #fff;
	padding: 0.6875rem 1rem 0.625rem;
	border-bottom: 0;
	border-radius: 2px;
	transition: background var(--fw-t-fast);
}

.fw-hub-card--lead .fw-hub-card__link:hover .fw-hub-card__cta,
.fw-hub-card--lead .fw-hub-card__link:focus-visible .fw-hub-card__cta {
	background: rgb(var(--fw-c-primary-dark-rgb));
}

.fw-hub-card__arrow {
	display: inline-block;
	transition: transform var(--fw-t-fast);
}

.fw-hub-card__link:hover .fw-hub-card__arrow,
.fw-hub-card__link:focus-visible .fw-hub-card__arrow {
	transform: translateX(4px);
}

/* Zweispaltige Frontpage-Sektion — kompakte Flex-Layout, Spalten so breit
   wie ihr Inhalt benötigt, zusammen horizontal zentriert. So entsteht kein
   übermäßiger Whitespace zwischen "Letzte Einsätze" und "Folge uns",
   selbst wenn die Einsatz-Titel kurz sind. */
.fw-twocol {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(1.5rem, 2.5vw, 2.5rem);
	align-items: start;
	justify-content: center;
}

.fw-twocol__left {
	flex: 0 1 640px;
	width: 100%;
}

.fw-twocol__right {
	flex: 0 1 420px;
	width: 100%;
}

@media (max-width: 899px) {
	.fw-twocol__left,
	.fw-twocol__right {
		flex-basis: 100%;
	}
}

/* =========================================================================
   Einsatz-Stream (Liste mit Datum-Spalte, Editorial-Look)
   ========================================================================= */
.fw-einsatz-stream {
	display: flex;
	flex-direction: column;
}

.fw-einsatz-stream__item {
	position: relative;
	display: grid;
	grid-template-columns: 92px 1fr;
	gap: 1.5rem;
	align-items: center;
	padding: 1.5rem 0 1.25rem;
	border-top: 1px solid var(--fw-c-rule);
	transition: padding-left 0.3s cubic-bezier(0.65, 0, 0.35, 1);
}
.fw-einsatz-stream__item:first-child {
	border-top: 0;
	padding-top: 0;
}

/* Roter Hover-Marker links — wiederkehrende Geste */
.fw-einsatz-stream__item::before {
	content: "";
	position: absolute;
	left: -0.625rem;
	top: 50%;
	transform: translateY(-50%) scaleX(0);
	transform-origin: left;
	width: 0.5rem;
	height: 3px;
	background: rgb(var(--fw-c-primary-rgb));
	transition: transform 0.35s cubic-bezier(0.65, 0, 0.35, 1);
}
.fw-einsatz-stream__item:hover {
	padding-left: 0.875rem;
}
.fw-einsatz-stream__item:hover::before {
	transform: translateY(-50%) scaleX(1);
}

.fw-einsatz-stream__date {
	text-align: left;
	border-right: 0;
	padding-right: 0;
	font-variant-numeric: tabular-nums lining-nums;
	font-feature-settings: "tnum" 1, "lnum" 1, "ss01" 1;
}

.fw-einsatz-stream__day {
	display: block;
	font-size: clamp(2.25rem, 1.8rem + 1vw, 2.75rem);
	font-weight: 900;
	color: rgba(13 13 13 / 0.92);
	line-height: 0.85;
	letter-spacing: -0.04em;
}

.fw-einsatz-stream__month {
	display: block;
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-primary-rgb));
	margin-top: 0.4rem;
}

.fw-einsatz-stream__body { min-width: 0; align-self: center; }

.fw-einsatz-stream__art {
	display: inline-block;
	font-size: 0.625rem;
	font-weight: 800;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-primary-rgb));
	padding: 0;
	border-top: 0;
	margin: 0 0 0.5rem;
	background: transparent;
}

.fw-einsatz-stream__title {
	font-size: 1.0625rem;
	font-weight: 700;
	line-height: 1.3;
	margin: 0 0 0.25rem;
}

.fw-einsatz-stream__title a {
	color: rgb(var(--fw-c-ink-rgb));
	text-decoration: none;
}

.fw-einsatz-stream__title a:hover {
	color: rgb(var(--fw-c-primary-rgb));
}

.fw-einsatz-stream__ort {
	font-size: 0.875rem;
	color: rgb(var(--fw-c-mute-rgb));
	margin: 0;
}

/* =========================================================================
   Instagram-Teaser-Card (Frontpage rechts statt News-Stream)
   ========================================================================= */
.fw-instagram-card {
	display: flex;
	flex-direction: column;
	gap: 0.875rem;
	padding: 2rem 1.75rem;
	background: linear-gradient(135deg, #1a1a1a 0%, #2a1410 100%);
	color: #fff;
	border: 1px solid rgba(var(--fw-c-gold-rgb) / 0.18);
	border-radius: var(--fw-r-lg);
	text-decoration: none;
	transition: transform var(--fw-t-base), box-shadow var(--fw-t-base), border-color var(--fw-t-base);
	position: relative;
	overflow: hidden;
}

.fw-instagram-card::before {
	content: "";
	position: absolute;
	top: -50%;
	right: -30%;
	width: 80%;
	height: 200%;
	background: radial-gradient(circle, rgba(var(--fw-c-gold-rgb) / 0.18), transparent 70%);
	pointer-events: none;
}

/* Kleiner roter „Aktuell"-Sticker oben rechts — verbindet sich mit den
   Einsatz-Listen-Markern und dem Hero-Slogan-Unterstrich. */
.fw-instagram-card::after {
	content: "Aktuell";
	position: absolute;
	top: 1rem;
	right: 1rem;
	background: rgb(var(--fw-c-primary-rgb));
	color: #fff;
	font-size: 0.625rem;
	font-weight: 800;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	padding: 0.3rem 0.625rem;
	z-index: 2;
}

.fw-instagram-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--fw-shadow-lg);
	border-color: rgba(var(--fw-c-gold-rgb) / 0.5);
}

.fw-instagram-card__icon {
	color: rgb(var(--fw-c-gold-rgb));
	position: relative;
	z-index: 1;
}

.fw-instagram-card__handle {
	font-size: 1.125rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	margin: 0;
	color: #fff;
	letter-spacing: -0.005em;
	position: relative;
	z-index: 1;
}

.fw-instagram-card__lede {
	font-size: 0.9375rem;
	line-height: 1.55;
	color: rgba(255 255 255 / 0.78);
	margin: 0;
	position: relative;
	z-index: 1;
}

.fw-instagram-card__cta {
	margin-top: 0.5rem;
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: rgb(var(--fw-c-gold-rgb));
	transition: gap var(--fw-t-fast);
	position: relative;
	z-index: 1;
}

.fw-instagram-card:hover .fw-instagram-card__cta {
	color: #fff;
}

/* =========================================================================
   Neuigkeiten-Stream (legacy, bleibt verfügbar wenn Pattern aktiv genutzt)
   ========================================================================= */
.fw-news-stream {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.fw-news-item {
	display: grid;
	grid-template-columns: 96px 1fr;
	gap: 1rem;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid rgba(var(--fw-c-line-rgb) / 0.8);
}

.fw-news-item:last-child { border-bottom: none; padding-bottom: 0; }

.fw-news-item__thumb {
	aspect-ratio: 1;
	border-radius: var(--fw-r-md);
	overflow: hidden;
	background: linear-gradient(135deg, rgba(var(--fw-c-primary-rgb) / 0.18), rgba(var(--fw-c-ink-rgb) / 0.12));
}

.fw-news-item__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.fw-news-item__body { min-width: 0; }

.fw-news-item__date {
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-mute-rgb));
	margin: 0 0 0.25rem;
}

.fw-news-item__title {
	font-size: 1.0625rem;
	font-weight: 700;
	line-height: 1.3;
	margin: 0 0 0.375rem;
}

.fw-news-item__title a {
	color: rgb(var(--fw-c-ink-rgb));
	text-decoration: none;
}

.fw-news-item__title a:hover {
	color: rgb(var(--fw-c-primary-rgb));
}

.fw-news-item__excerpt {
	font-size: 0.9375rem;
	color: rgb(var(--fw-c-mute-rgb));
	margin: 0;
	line-height: 1.5;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* =========================================================================
   Cards (Hub-Karten — bewusst sparsamer eingesetzt)
   ========================================================================= */
.fw-hub-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 1.25rem;
}

.fw-hub-card {
	display: flex;
	flex-direction: column;
	padding: 1.5rem;
	background: #fff;
	border: 1px solid rgb(var(--fw-c-line-rgb));
	border-radius: var(--fw-r-lg);
	transition: box-shadow var(--fw-t-base), transform var(--fw-t-fast), border-color var(--fw-t-base);
}

.fw-hub-card:hover {
	box-shadow: var(--fw-shadow-md);
	transform: translateY(-2px);
	border-color: rgba(var(--fw-c-primary-rgb) / 0.4);
}

.fw-hub-card__kicker {
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-primary-rgb));
	margin: 0 0 0.5rem;
}

.fw-hub-card__title {
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.25;
	margin: 0 0 0.5rem;
	hyphens: auto;
}

.fw-hub-card__title a {
	color: inherit;
	text-decoration: none;
}

.fw-hub-card p {
	font-size: 0.9375rem;
	color: rgb(var(--fw-c-mute-rgb));
	line-height: 1.55;
	margin: 0 0 1rem;
}

.fw-hub-card__link {
	margin-top: auto;
	font-size: 0.875rem;
	font-weight: 600;
	color: rgb(var(--fw-c-primary-rgb));
	text-decoration: none;
}

/* =========================================================================
   Pills (Taxonomy / Fahrzeuge)
   ========================================================================= */
.fw-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem;
}

.fw-pill {
	display: inline-flex;
	align-items: center;
	padding: 0.3125rem 0.625rem;
	font-size: 0.8125rem;
	font-weight: 600;
	color: rgb(var(--fw-c-ink-rgb));
	background: rgba(var(--fw-c-line-rgb) / 0.6);
	border: 1px solid rgb(var(--fw-c-line-rgb));
	border-radius: var(--fw-r-pill);
	text-decoration: none;
	transition: background var(--fw-t-fast), color var(--fw-t-fast), border-color var(--fw-t-fast);
}

.fw-pill:hover {
	background: rgba(var(--fw-c-primary-rgb) / 0.08);
	border-color: rgba(var(--fw-c-primary-rgb) / 0.4);
	color: rgb(var(--fw-c-primary-rgb));
}

/* Nicht-klickbare Pille (z.B. Polizei, DRK — keine eigene Wehr-Page).
   Sieht aus wie Pill, hat aber keinen Hover und kein Cursor-Pointer. */
.fw-pill--static {
	cursor: default;
}
.fw-pill--static:hover {
	background: rgba(var(--fw-c-line-rgb) / 0.6);
	border-color: rgb(var(--fw-c-line-rgb));
	color: rgb(var(--fw-c-ink-rgb));
}

.fw-pill--vehicle {
	background: rgba(var(--fw-c-primary-rgb) / 0.06);
	border-color: rgba(var(--fw-c-primary-rgb) / 0.28);
	color: rgb(var(--fw-c-primary-rgb));
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	font-size: 0.75rem;
}

/* =========================================================================
   Einsatz-Sidebar (Steckbrief) + Fahrzeug-Hero
   ========================================================================= */
.fw-einsatz-sidebar {
	position: sticky;
	top: calc(var(--fw-header-h) + 1rem);
	background: #fff;
	border: 1px solid rgb(var(--fw-c-line-rgb));
	border-radius: var(--fw-r-lg);
	overflow: hidden;
	box-shadow: var(--fw-shadow-sm);
}

.fw-einsatz-sidebar__strip {
	background: rgb(var(--fw-c-primary-rgb));
	color: #fff;
	padding: 0.625rem 1.25rem;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.fw-einsatz-number-display {
	font-size: clamp(2rem, 1.6rem + 1.8vw, 2.75rem);
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1;
	font-variant-numeric: tabular-nums;
	color: rgb(var(--fw-c-primary-rgb));
}

.fw-data-list { display: flex; flex-direction: column; gap: 0.875rem; padding: 0.75rem 1.25rem 1.5rem; }
.fw-data-row {
	display: flex;
	flex-direction: column;
	padding-bottom: 0.875rem;
	border-bottom: 1px solid rgba(var(--fw-c-line-rgb) / 0.6);
}
.fw-data-row:last-child { border-bottom: none; padding-bottom: 0; }
.fw-data-label { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: rgb(var(--fw-c-mute-rgb)); margin: 0 0 0.125rem; }
.fw-data-value { font-size: 0.9375rem; font-weight: 600; margin: 0; }
.fw-data-value--num { font-variant-numeric: tabular-nums; }

@media (max-width: 899px) {
	.fw-einsatz-sidebar { position: static; }
}

.fw-fahrzeug-hero {
	overflow: hidden;
	background: #fff;
	border: 1px solid rgb(var(--fw-c-line-rgb));
	border-radius: var(--fw-r-lg);
	box-shadow: var(--fw-shadow-md);
}

.fw-fahrzeug-hero__title-block {
	border-top: 4px solid rgb(var(--fw-c-primary-rgb));
	padding: 1.5rem 1.75rem;
}

.fw-fahrzeug-kennung-badge {
	display: inline-block;
	color: rgb(var(--fw-c-primary-rgb));
	background: rgba(var(--fw-c-primary-rgb) / 0.08);
	border: 1px solid rgba(var(--fw-c-primary-rgb) / 0.25);
	border-radius: var(--fw-r-sm);
	padding: 0.25rem 0.625rem;
	font-size: 0.8125rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.fw-fahrzeug-kennung-badge:empty,
.fw-fahrzeug-funkrufname:empty { display: none; }

.fw-fahrzeug-eckdaten-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	background: #fff;
	border: 1px solid rgb(var(--fw-c-line-rgb));
	border-radius: var(--fw-r-lg);
	overflow: hidden;
	box-shadow: var(--fw-shadow-sm);
}

.fw-fahrzeug-eckdaten-cell {
	padding: 1.125rem 1.25rem;
	position: relative;
}

.fw-fahrzeug-eckdaten-cell:not(:last-child)::after {
	content: "";
	position: absolute;
	right: 0; top: 0.75rem; bottom: 0.75rem;
	width: 1px;
	background: rgba(var(--fw-c-line-rgb) / 0.8);
}

@media (max-width: 767px) {
	.fw-fahrzeug-eckdaten-grid { grid-template-columns: repeat(2, 1fr); }
	.fw-fahrzeug-eckdaten-cell:not(:nth-last-child(-n+2)) { border-bottom: 1px solid rgba(var(--fw-c-line-rgb) / 0.6); }
	.fw-fahrzeug-eckdaten-cell:nth-child(odd)::after { display: none; }
	.fw-fahrzeug-eckdaten-cell:nth-child(odd) { border-right: 1px solid rgba(var(--fw-c-line-rgb) / 0.6); }
}

/* =========================================================================
   Einsatz-Liste (Tabelle, kompatibel zu Plugin-Markup)
   ========================================================================= */
.einsatzverwaltung-reportlist,
.fw-einsatzliste {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
}

.einsatzverwaltung-reportlist th,
.fw-einsatzliste th {
	text-align: left;
	font-weight: 700;
	padding: 0.5rem 0.75rem;
	border-bottom: 2px solid rgb(var(--fw-c-line-rgb));
	color: rgb(var(--fw-c-mute-rgb));
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-size: 0.75rem;
}

.einsatzverwaltung-reportlist td,
.fw-einsatzliste td {
	padding: 0.625rem 0.75rem;
	border-bottom: 1px solid rgba(var(--fw-c-line-rgb) / 0.6);
	vertical-align: top;
}

@media (hover: hover) {
	.einsatzverwaltung-reportlist tr:hover td,
	.fw-einsatzliste tr:hover td {
		background: rgba(var(--fw-c-primary-rgb) / 0.03);
	}
}

@media (max-width: 767px) {
	.einsatzverwaltung-reportlist thead,
	.fw-einsatzliste thead { display: none; }
	.einsatzverwaltung-reportlist tr,
	.fw-einsatzliste tr {
		display: block;
		margin-bottom: 1rem;
		border: 1px solid rgb(var(--fw-c-line-rgb));
		border-radius: var(--fw-r-md);
		padding: 0.75rem;
	}
	.einsatzverwaltung-reportlist td,
	.fw-einsatzliste td { display: block; border: none; padding: 0.25rem 0; }
	.einsatzverwaltung-reportlist td.einsatz-column-number { font-weight: 700; color: rgb(var(--fw-c-primary-rgb)); font-size: 0.875rem; }
	.einsatzverwaltung-reportlist td.einsatz-column-title { font-size: 1.125rem; font-weight: 700; margin-top: 0.25rem; }
}

/* =========================================================================
   CTA-Bereich (Mitgliederwerbung)
   ========================================================================= */
.fw-cta-band {
	/* Dunkler Hintergrund mit dezentem rot-glimmenden Akzent von rechts unten —
	   wirkt wie Glut/Asche, atmender als ein solides Rot. */
	background:
		radial-gradient(at 85% 110%, rgba(189 31 26 / 0.35), transparent 55%),
		radial-gradient(at 15% -10%, rgba(189 31 26 / 0.18), transparent 50%),
		#0f0f0f;
	color: #fff;
	padding: clamp(4rem, 8vw, 6rem) clamp(1rem, 2.5vw, 1.75rem);
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

/* Hintergrund-Pattern (Standard: heraldisches Wappen-Schild) */
.fw-cta-band::after {
	content: "";
	position: absolute;
	inset: 0;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='48' height='54' viewBox='0 0 32 36'><path d='M16 2 L30 8 V20 C30 27 24 32 16 34 C8 32 2 27 2 20 V8 Z' fill='none' stroke='%23ffffff' stroke-opacity='0.045' stroke-width='1'/></svg>");
	background-size: 96px 108px;
	z-index: 0;
	pointer-events: none;
}

/* Pattern-Variante A — Funken / Glut-Punkte: kleine helle Punkte, einige gold,
   einige weiß, verstreut. Wirkt wie noch glimmende Funken nach dem Einsatz.
   Mit Mouse-Parallax (siehe data-fw-funken in main.js): bewegt sich subtil
   entgegen dem Cursor — gibt der dunklen Sektion eine lebendige Mikro-Interaktion. */
.fw-cta-band--funken {
	--fw-fk-x: 0;
	--fw-fk-y: 0;
}
.fw-cta-band--funken::after {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><circle cx='22' cy='34' r='1' fill='%23C9A14C' fill-opacity='0.55'/><circle cx='68' cy='78' r='1.4' fill='%23ffffff' fill-opacity='0.32'/><circle cx='118' cy='42' r='0.7' fill='%23C9A14C' fill-opacity='0.45'/><circle cx='92' cy='128' r='1.1' fill='%23ffffff' fill-opacity='0.36'/><circle cx='148' cy='98' r='0.6' fill='%23C9A14C' fill-opacity='0.5'/><circle cx='32' cy='148' r='0.9' fill='%23ffffff' fill-opacity='0.3'/><circle cx='162' cy='160' r='1.2' fill='%23C9A14C' fill-opacity='0.4'/><circle cx='12' cy='90' r='0.5' fill='%23ffffff' fill-opacity='0.5'/></svg>");
	background-size: 220px 220px;
	background-position:
		calc(50% + var(--fw-fk-x) * -14px)
		calc(50% + var(--fw-fk-y) * -14px);
	transition: background-position 0.45s cubic-bezier(0.2, 0.8, 0.4, 1);
}

/* AUFGESPART — Pattern-Variante B + C bleiben für spätere Verwendung
   in anderen Sektionen erhalten (z.B. Footer-Bereich, andere CTA-Blöcke). */

/* Variante B — diagonale Hairlines (Feuerwehr-Warnstreifen-Anklang) */
.fw-cta-band--diagonal::after {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14'><line x1='0' y1='14' x2='14' y2='0' stroke='%23ffffff' stroke-opacity='0.05' stroke-width='1'/></svg>");
	background-size: 14px 14px;
}

/* Variante C — Topographie / Höhenlinien (lokaler Bezug Donau / Alb) */
.fw-cta-band--topo::after {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='160' fill='none' stroke='%23ffffff' stroke-opacity='0.07' stroke-width='1'><path d='M0 30 Q60 12, 120 30 T240 30'/><path d='M0 70 Q60 50, 120 70 T240 70'/><path d='M0 110 Q60 92, 120 110 T240 110'/><path d='M0 150 Q60 132, 120 150 T240 150'/></svg>");
	background-size: 280px 200px;
}

.fw-cta-band__inner {
	position: relative;
	z-index: 2;
	max-width: 1280px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: clamp(2.25rem, 4vw, 3rem);
}

/* Section-Header-Overrides für dunklen Hintergrund: Kicker gold (etabliert,
   funktioniert auf dunkel sehr gut), Title weiß, Lede weiß-90.
   Focus-Word-Underline: ROT (Marken-Geste, auf dunkel sichtbar). */
.fw-cta-band .fw-section__kicker {
	color: rgb(var(--fw-c-gold-rgb));
}
.fw-cta-band .fw-section__title {
	color: #fff;
	font-size: clamp(2rem, 1.4rem + 1.8vw, 2.75rem);
	line-height: 1.05;
	max-width: 24ch;
}
.fw-cta-band .fw-section__title-focus::after {
	background: rgb(var(--fw-c-primary-rgb));
	height: 4px;
}
.fw-cta-band .fw-section__lede,
.fw-cta-band .fw-section__lede--standalone {
	color: rgba(255 255 255 / 0.82);
	font-size: clamp(1rem, 0.95rem + 0.3vw, 1.125rem);
	max-width: 56ch;
}

.fw-cta-band__btns {
	display: flex;
	gap: 0.75rem;
	flex-wrap: wrap;
	justify-content: center;
}


/* =========================================================================
   Imagefilm-Sektion auf der Frontpage — Lead-Text links, selbst gehosteter
   Player rechts. Lädt nur Poster-Bild bis Klick (preload="none"), damit das
   ~96 MB Video nicht im LCP-Pfad ankommt.
   ========================================================================= */
.fw-imagefilm {
	background: #fff;
}
.fw-imagefilm__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
	gap: 2.5rem;
	align-items: center;
}
.fw-imagefilm__text {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
}
.fw-imagefilm__text .fw-section__title {
	margin: 0;
}
.fw-imagefilm__text .fw-section__lede {
	margin: 0.5rem 0 0;
	max-width: 38ch;
}
.fw-imagefilm__media {
	position: relative;
	border-radius: var(--fw-r-md);
	overflow: hidden;
	box-shadow: 0 18px 40px -22px rgba(0, 0, 0, 0.45),
	            0 4px 12px -4px rgba(0, 0, 0, 0.18);
	background: #000;
}
.fw-imagefilm__video {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	background: #000;
}

/* Facade: Poster + Play-Button-Overlay statt echtem <video>-Tag.
   Erst nach Klick wird das echte <video> via JS in den DOM gesetzt.
   Verhindert, dass der Browser den 96-MB-MP4-Source spekulativ entdeckt. */
.fw-imagefilm__facade {
	position: relative;
	display: block;
	width: 100%;
	padding: 0;
	border: 0;
	margin: 0;
	background: #000;
	cursor: pointer;
	aspect-ratio: 16 / 9;
	overflow: hidden;
}
.fw-imagefilm__poster {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--fw-t-base);
}
.fw-imagefilm__facade:hover .fw-imagefilm__poster,
.fw-imagefilm__facade:focus-visible .fw-imagefilm__poster {
	transform: scale(1.03);
}
.fw-imagefilm__play {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	background: linear-gradient(135deg, rgba(0 0 0 / 0.15), rgba(0 0 0 / 0.35));
	transition: background var(--fw-t-base);
}
.fw-imagefilm__facade:hover .fw-imagefilm__play,
.fw-imagefilm__facade:focus-visible .fw-imagefilm__play {
	background: linear-gradient(135deg, rgba(0 0 0 / 0.25), rgba(0 0 0 / 0.45));
}
.fw-imagefilm__play svg {
	background: rgba(189 31 26 / 0.92);
	border-radius: 999px;
	padding: 1.25rem 1.25rem 1.25rem 1.5rem;
	box-shadow: 0 8px 24px rgba(0 0 0 / 0.4);
	transition: transform var(--fw-t-base);
}
.fw-imagefilm__facade:hover .fw-imagefilm__play svg,
.fw-imagefilm__facade:focus-visible .fw-imagefilm__play svg {
	transform: scale(1.08);
}

@media (max-width: 880px) {
	.fw-imagefilm__inner {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}
}

/* =========================================================================
   „Zurück nach oben"-Button (fix unten rechts).
   Sichtbar erst ab > 600 px Scroll. Z-Index unterhalb von Consent-Banner
   (9000), damit der Banner immer obenauf bleibt.
   ========================================================================= */
.fw-totop {
	position: fixed;
	right: clamp(0.75rem, 1.5vw, 1.25rem);
	bottom: clamp(0.75rem, 2vw, 1.5rem);
	width: 2.75rem;
	height: 2.75rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 50%;
	background: rgb(var(--fw-c-primary-rgb, 189 31 26));
	color: #fff;
	cursor: pointer;
	box-shadow: 0 8px 18px -6px rgba(0, 0, 0, 0.45),
	            0 2px 6px -2px rgba(0, 0, 0, 0.2);
	z-index: 8000;
	opacity: 0;
	transform: translateY(0.5rem);
	pointer-events: none;
	transition: opacity 0.2s ease, transform 0.2s ease, background 0.15s ease;
	font-family: inherit;
	-webkit-tap-highlight-color: transparent;
}
.fw-totop[hidden] {
	display: none;
}
.fw-totop.is-visible {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}
.fw-totop:hover,
.fw-totop:focus-visible {
	background: #8c1914;
	outline: none;
}
.fw-totop:focus-visible {
	box-shadow: 0 0 0 3px rgba(var(--fw-c-primary-rgb, 189 31 26), 0.35),
	            0 8px 18px -6px rgba(0, 0, 0, 0.45);
}

/* =========================================================================
   Personen-Karten (Wehr-Führung, Ausschuss, Einsatzabteilung-Mannschaft)
   Editorial-Layout, keine Cards mit Border — visueller Rhythmus statt Kasten.
   Grid mit Max-Spalten-Breite, damit eine einzelne Person nicht ausfranst.
   ========================================================================= */
.fw-persons {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 240px));
	gap: 2rem 1.5rem;
	justify-content: start;
	margin: 1rem 0 0;
}

.fw-person {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin: 0;
}

.fw-person__photo {
	aspect-ratio: 4 / 5;
	background: linear-gradient(135deg, rgba(var(--fw-c-line-rgb) / 0.9), rgba(var(--fw-c-mute-rgb) / 0.2));
	border-radius: var(--fw-r-md);
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	color: rgba(var(--fw-c-mute-rgb) / 0.55);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding-bottom: 0.75rem;
	position: relative;
}

.fw-person__photo img,
.fw-leitung__avatar img {
	object-position: center 22%;
}
.fw-person__photo img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
/* Pascal-Foto (1848×4000) — tighter Crop + nach unten verschoben für Gesicht/Oberkörper-Komposition */
.fw-person__photo img[src*="Pascal-Steinmueller"],
.fw-leitung__avatar img[src*="Pascal-Steinmueller"] {
	object-position: center 32%;
	transform: scale(1.22);
	transform-origin: center 32%;
}

.fw-person__role {
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-primary-rgb));
	margin: 0.25rem 0 0;
}

.fw-person__name {
	font-size: 1.0625rem;
	font-weight: 700;
	line-height: 1.25;
	margin: 0;
	color: rgb(var(--fw-c-ink-rgb));
}

.fw-person__sub {
	font-size: 0.875rem;
	color: rgb(var(--fw-c-mute-rgb));
	margin: 0;
	line-height: 1.4;
}

.fw-person__email {
	font-size: 0.8125rem;
	margin: 0.25rem 0 0;
	line-height: 1.4;
	word-break: break-word;
}
.fw-person__email a {
	color: rgb(var(--fw-c-primary-rgb));
	text-decoration: none;
	font-variant-numeric: tabular-nums;
}
.fw-person__email a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Persönliche Hervorhebung (Kommandant): roter Rahmen-Akzent */
.fw-person--featured .fw-person__photo {
	box-shadow: 0 0 0 2px rgb(var(--fw-c-primary-rgb));
}

@media (max-width: 540px) {
	.fw-persons {
		grid-template-columns: repeat(2, 1fr);
		gap: 1.25rem 0.875rem;
	}
}

/* Inline-Liste für Personen ohne Foto (Beisitzer, Mannschaftsreihen) */
.fw-roster {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 0.375rem 1.25rem;
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 0.9375rem;
}

.fw-roster li {
	padding: 0.375rem 0;
	border-bottom: 1px solid rgba(var(--fw-c-line-rgb) / 0.7);
}

.fw-roster__heading {
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-primary-rgb));
	margin: 1.75rem 0 0.5rem;
}

/* =========================================================================
   Tabelle (Geschichte-Page, Kommandanten-Liste)
   ========================================================================= */
.fw-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
	font-variant-numeric: tabular-nums;
	margin: 1.5rem 0;
}

.fw-table th {
	text-align: left;
	font-weight: 700;
	font-size: 0.6875rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-mute-rgb));
	padding: 0.75rem 0.875rem;
	border-bottom: 2px solid rgb(var(--fw-c-line-rgb));
	background: rgba(var(--fw-c-line-rgb) / 0.25);
}

.fw-table td {
	padding: 0.625rem 0.875rem;
	border-bottom: 1px solid rgba(var(--fw-c-line-rgb) / 0.7);
	vertical-align: top;
}

@media (hover: hover) {
	.fw-table tr:hover td {
		background: rgba(var(--fw-c-primary-rgb) / 0.03);
	}
}

.fw-table td:first-child {
	font-weight: 600;
	color: rgb(var(--fw-c-ink-rgb));
}

.fw-table td:last-child {
	color: rgb(var(--fw-c-mute-rgb));
	width: 30%;
	white-space: nowrap;
}

@media (max-width: 600px) {
	.fw-table td:last-child { width: 35%; }
}

/* Style-Bridge: alle migrierten <table>-Elemente im Content sollen den
   fw-table-Look kriegen — ohne dass Redakteur*innen Klassen pflegen müssen. */
main table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
	margin: 1.5rem 0;
}

main table th {
	text-align: left;
	font-weight: 700;
	padding: 0.625rem 0.875rem;
	border-bottom: 2px solid rgb(var(--fw-c-line-rgb));
	font-size: 0.875rem;
}

main table td {
	padding: 0.5rem 0.875rem;
	border-bottom: 1px solid rgba(var(--fw-c-line-rgb) / 0.7);
}

@media (hover: hover) {
	main table:not(.fw-editor__table) tr:hover td {
		background: rgba(var(--fw-c-primary-rgb) / 0.03);
	}
}

/* =========================================================================
   Lightbox (per WP-Core)
   ========================================================================= */
figure.wp-block-image.fw-lightbox-enabled img {
	cursor: zoom-in;
	transition: transform var(--fw-t-base);
}

figure.wp-block-image.fw-lightbox-enabled img:hover {
	transform: scale(1.02);
}

/* =========================================================================
   Page-Title (h1) — auf Sub-Pages mit eigenem Hero meist nicht nötig
   ========================================================================= */
h1.wp-block-post-title {
	font-size: clamp(2rem, 1.6rem + 2vw, 3rem);
	font-weight: 800;
	letter-spacing: -0.015em;
	line-height: 1.1;
}

/* =========================================================================
   Footer (4 Spalten: Brand + Mach mit + Bereiche + Notruf)
   ========================================================================= */
.fw-footer {
	background: #121212;
	color: rgba(255 255 255 / 0.85);
	padding: clamp(2.5rem, 5vw, 3.5rem) clamp(1rem, 2.5vw, 1.75rem) 1.5rem;
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

/* Wappen als dezenter Watermark im Footer — Marken-Anker */
.fw-footer::before {
	content: "";
	position: absolute;
	right: -2.5rem;
	bottom: -3rem;
	width: 320px;
	height: 360px;
	background: url("/wp-content/themes/feuerwehr-theme/assets/favicon/favicon.svg") no-repeat center / contain;
	opacity: 0.045;
	pointer-events: none;
	z-index: 0;
	transform: rotate(-6deg);
}

.fw-footer__inner {
	position: relative;
	z-index: 1;
	max-width: 1280px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1fr 1fr;
	gap: 2rem;
}

@media (max-width: 1100px) {
	.fw-footer__inner { grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 2rem; }
}

@media (max-width: 899px) {
	.fw-footer__inner { grid-template-columns: 1fr 1fr; gap: 2rem; }
}

@media (max-width: 540px) {
	.fw-footer__inner { grid-template-columns: 1fr; gap: 1.75rem; }
}

.fw-footer h3 {
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: #fff;
	margin: 0 0 1rem;
	display: inline-flex;
	align-items: center;
	gap: 0.625rem;
}
.fw-footer h3::before {
	content: "";
	display: inline-block;
	width: 1.25rem;
	height: 1px;
	background: rgb(var(--fw-c-gold-rgb));
}

.fw-footer ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
	font-size: 0.9375rem;
}

.fw-footer a {
	color: rgba(255 255 255 / 0.78);
	text-decoration: none;
	transition: color var(--fw-t-fast);
}

.fw-footer a:hover {
	color: rgb(var(--fw-c-gold-rgb));
}

/* Brand-Block */
.fw-footer__brand {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 1rem;
}

.fw-footer__brand-name {
	font-size: 0.9375rem;
	font-weight: 800;
	color: #fff;
	margin: 0;
	line-height: 1.1;
	letter-spacing: -0.005em;
}

.fw-footer__brand-loc {
	font-size: 0.875rem;
	color: rgba(255 255 255 / 0.65);
	margin: 0;
	line-height: 1.2;
}

.fw-footer__address {
	font-size: 0.9375rem;
	line-height: 1.65;
	margin: 0 0 1.25rem;
	color: rgba(255 255 255 / 0.75);
}

.fw-footer__social {
	display: flex;
	gap: 0.5rem;
}

.fw-footer__social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 1px solid rgba(255 255 255 / 0.18);
	border-radius: var(--fw-r-md);
	color: rgba(255 255 255 / 0.78);
	transition: background var(--fw-t-fast), color var(--fw-t-fast), border-color var(--fw-t-fast);
}

.fw-footer__social a:hover {
	background: rgb(var(--fw-c-primary-rgb));
	border-color: rgb(var(--fw-c-primary-rgb));
	color: #fff;
}

/* Notruf-Block */
.fw-footer__emergency {
	display: flex;
	align-items: baseline;
	gap: 0.75rem;
	margin: 0;
}

.fw-footer__emergency-number {
	font-size: 2.5rem;
	font-weight: 800;
	color: rgb(var(--fw-c-primary-rgb));
	font-variant-numeric: tabular-nums;
	letter-spacing: -0.02em;
	line-height: 1;
	text-decoration: none;
}

.fw-footer__emergency-number:hover {
	color: rgb(var(--fw-c-gold-rgb));
}

.fw-footer__emergency span {
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: rgba(255 255 255 / 0.78);
}

/* Footer-Line unten */
.fw-footer__line {
	max-width: 1280px;
	margin: 2.5rem auto 0;
	padding-top: 1.5rem;
	border-top: 1px solid rgba(255 255 255 / 0.08);
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	justify-content: space-between;
	font-size: 0.8125rem;
	color: rgba(255 255 255 / 0.55);
}

.fw-footer__line a,
.fw-footer__consent {
	color: inherit;
	text-decoration: none;
	transition: color var(--fw-t-fast);
}

.fw-footer__consent {
	-webkit-appearance: none;
	appearance: none;
	display: inline;
	margin: 0;
	border: 0;
	border-radius: 0;
	padding: 0;
	background: transparent;
	font: inherit;
	line-height: inherit;
	cursor: pointer;
}

.fw-footer__line a:hover,
.fw-footer__consent:hover {
	color: rgba(255 255 255 / 0.9);
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.fw-footer__consent:focus-visible {
	outline: 2px solid rgb(var(--fw-c-gold-rgb));
	outline-offset: 3px;
}

/* =========================================================================
   Reveal-Animation (dezent — Fade + 12px translateY beim Scrollen)
   ========================================================================= */
.fw-reveal {
	opacity: 0;
	transform: translateY(12px);
	transition: opacity var(--fw-t-slow), transform var(--fw-t-slow);
}
.fw-reveal.is-in {
	opacity: 1;
	transform: translateY(0);
}

/* =========================================================================
   Hero Mobile (Stats stacken)
   ========================================================================= */
@media (max-width: 767px) {
	.fw-hero__inner {
		grid-template-columns: 1fr;
		gap: 1.75rem;
		padding-top: 2.5rem;
		padding-bottom: 2.5rem;
	}
	.fw-hero__stats { gap: 0.625rem; }
	.fw-stat { padding: 0.75rem 1rem; }
	.fw-stat__value { font-size: clamp(2rem, 1.5rem + 4vw, 2.625rem); }
	.fw-hero__ctas {
		flex-direction: column;
		align-items: stretch;
	}
	.fw-hero__ctas .fw-btn {
		width: 100%;
		justify-content: center;
	}
	.fw-hero__title { font-size: clamp(1.875rem, 1.4rem + 4vw, 2.5rem); }

	/* Mobile: Hintergrund stärker abdunkeln + alle Text-Layer mit
	   tieferem Shadow versehen — sonst kämpfen die Slogans gegen helle
	   Foto-Stellen (Himmel, Reflexe) und werden unlesbar. */
	.fw-hero__overlay {
		background:
			linear-gradient(180deg, rgba(0 0 0 / 0.45) 0%, rgba(0 0 0 / 0.5) 55%, rgba(0 0 0 / 0.65) 100%);
	}
	.fw-hero__kicker {
		text-shadow: 0 1px 8px rgba(0, 0, 0, 0.7);
	}
	.fw-hero__title {
		text-shadow:
			0 2px 4px rgba(0, 0, 0, 0.55),
			0 4px 24px rgba(0, 0, 0, 0.7);
	}
	.fw-hero__lede {
		text-shadow: 0 1px 10px rgba(0, 0, 0, 0.65);
	}
}

/* =========================================================================
   Fahrzeuge-Hub — Grid-Kacheln (3-spaltig) auf der Übersichtsseite.
   Bewusst etwas reduzierter als der Bereiche-Hub: kein Editorial-Number-
   Overlay, dafür kompakte Daten-Hierarchie (Kennung-Pille, Titel,
   Funkrufname, Meta).
   ========================================================================= */
/* Sub-Page-Container weiter ziehen wenn er den Fahrzeuge-Hub enthält. */
body:has(.fw-fzg-grid) .fw-section__container,
body:has(.fw-fzg-grid) .fw-section__container > * {
	max-width: 1200px;
}
body:has(.fw-fzg-grid) .fw-section__container {
	--wp--style--global--content-size: 1200px;
}

.fw-fzg-grid {
	list-style: none;
	margin: 0 0 clamp(3rem, 6vw, 5rem);
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(1.25rem, 2vw, 1.75rem);
}
@media (max-width: 900px) and (min-width: 561px) {
	.fw-fzg-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
	.fw-fzg-grid { grid-template-columns: 1fr; gap: 1rem; }
}

.fw-fzg-card {
	margin: 0;
}

.fw-fzg-card__link {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--fw-c-rule);
	border-radius: var(--fw-r-md);
	overflow: hidden;
	color: inherit;
	text-decoration: none;
	transition: transform var(--fw-t-fast), box-shadow var(--fw-t-fast), border-color var(--fw-t-fast);
	height: 100%;
}
.fw-fzg-card__link:hover,
.fw-fzg-card__link:focus-visible {
	transform: translateY(-2px);
	box-shadow: 0 12px 32px rgba(13 13 13 / 0.10);
	border-color: rgba(var(--fw-c-primary-rgb) / 0.4);
}

.fw-fzg-card__media-frame {
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: #f1f3f5;
}
.fw-fzg-card__media {
	width: 100%;
	height: 100%;
	background-size: cover;
	background-position: center;
	transition: transform 700ms cubic-bezier(0.2, 0.8, 0.2, 1);
}
.fw-fzg-card__link:hover .fw-fzg-card__media,
.fw-fzg-card__link:focus-visible .fw-fzg-card__media {
	transform: scale(1.04);
}
.fw-fzg-card__media--placeholder {
	background:
		linear-gradient(135deg, rgba(var(--fw-c-primary-rgb) / 0.06), rgba(var(--fw-c-gold-rgb) / 0.06));
}

.fw-fzg-card__body {
	padding: 1.125rem 1.25rem 1.375rem;
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
}

.fw-fzg-card__kennung {
	display: inline-block;
	align-self: flex-start;
	margin: 0 0 0.125rem;
	padding: 0.25rem 0.625rem;
	background: rgba(var(--fw-c-primary-rgb) / 0.08);
	color: rgb(var(--fw-c-primary-rgb));
	border-radius: 999px;
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.fw-fzg-card__title {
	margin: 0;
	font-size: 1.1875rem;
	font-weight: 700;
	line-height: 1.2;
	color: rgb(var(--fw-c-ink-rgb));
}

.fw-fzg-card__funk {
	margin: 0.125rem 0 0;
	font-size: 0.875rem;
	font-weight: 600;
	color: rgba(13 13 13 / 0.65);
	font-variant-numeric: tabular-nums;
}

.fw-fzg-card__meta {
	margin: 0.375rem 0 0;
	font-size: 0.8125rem;
	color: rgba(13 13 13 / 0.55);
}

/* Ausgemusterte Fahrzeuge — kompakte Liste in eigener Sektion */
.fw-fzg-retired {
	margin-top: clamp(2rem, 4vw, 3rem);
	padding-top: clamp(2rem, 4vw, 3rem);
	border-top: 1px solid var(--fw-c-rule);
}
.fw-fzg-retired__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.75rem;
}
@media (max-width: 900px) and (min-width: 561px) {
	.fw-fzg-retired__list { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
	.fw-fzg-retired__list { grid-template-columns: 1fr; }
}
.fw-fzg-retired__item {
	margin: 0;
}
.fw-fzg-retired__link {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.875rem 1rem;
	background: #fafaf7;
	border: 1px solid var(--fw-c-rule);
	border-radius: var(--fw-r-sm);
	color: inherit;
	text-decoration: none;
	transition: background var(--fw-t-fast), border-color var(--fw-t-fast);
}
.fw-fzg-retired__link:hover,
.fw-fzg-retired__link:focus-visible {
	background: #fff;
	border-color: rgba(var(--fw-c-primary-rgb) / 0.3);
}
.fw-fzg-retired__kennung {
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-primary-rgb));
	white-space: nowrap;
}
.fw-fzg-retired__title {
	flex: 1;
	font-size: 0.9375rem;
	color: rgba(13 13 13 / 0.78);
}
.fw-fzg-retired__arrow {
	color: rgba(13 13 13 / 0.4);
	transition: transform var(--fw-t-fast), color var(--fw-t-fast);
}
.fw-fzg-retired__link:hover .fw-fzg-retired__arrow {
	transform: translateX(3px);
	color: rgb(var(--fw-c-primary-rgb));
}

/* =========================================================================
   Einsatz-Detail-Page (single-einsatz) — Single-Column-Layout.
   Stichwort-only-Einsätze sind der Standardfall; der Bericht-Block erscheint
   nur wenn tatsächlich Text vorliegt.
   ========================================================================= */
.fw-einsatz-detail {
	padding-top: clamp(2rem, 4vw, 3rem);
	padding-bottom: clamp(3rem, 6vw, 5rem);
}
.fw-einsatz-detail__title {
	margin: 0 0 1rem;
	color: rgb(var(--fw-c-ink-rgb));
}

/* Meta-Block: Header (Nr, Datum, Ort) + Gruppen für Pills */
.fw-einsatz-meta {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	margin: 0 0 clamp(2rem, 4vw, 3rem);
	padding: clamp(1.25rem, 2vw, 1.5rem);
	background: #fafaf7;
	border: 1px solid var(--fw-c-rule);
	border-radius: var(--fw-r-md);
}

.fw-einsatz-meta__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.625rem 1rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--fw-c-rule);
}
.fw-einsatz-meta__nr {
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-primary-rgb));
	font-variant-numeric: tabular-nums;
	padding: 0.25rem 0.5rem;
	background: rgba(var(--fw-c-primary-rgb) / 0.08);
	border-radius: var(--fw-r-sm);
}
.fw-einsatz-meta__time {
	font-size: 1rem;
	font-weight: 700;
	color: rgb(var(--fw-c-ink-rgb));
	font-variant-numeric: tabular-nums;
}
.fw-einsatz-meta__time-sep {
	color: rgba(13 13 13 / 0.35);
	margin: 0 0.25em;
}
.fw-einsatz-meta__ort {
	font-size: 0.9375rem;
	color: rgba(13 13 13 / 0.7);
}

.fw-einsatz-meta__row {
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem 2rem;
}
.fw-einsatz-meta__group {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	min-width: 0;
	flex: 1;
}
.fw-einsatz-meta__label {
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgba(13 13 13 / 0.5);
}
.fw-einsatz-meta__pills {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4375rem;
}
/* Hervorgehobene Einsatzart als größere Pill (Legacy — neuer Code nutzt __badge) */
.fw-einsatz-meta__group--prominent .fw-pill {
	font-size: 0.875rem;
	padding: 0.4375rem 0.875rem;
	font-weight: 700;
}

/* ---------- Einsatzart: solide Marken-Badge (DIE Kategorie) ---------- */
.fw-einsatz-meta__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem;
}
.fw-einsatz-meta__badge {
	display: inline-flex;
	align-items: center;
	padding: 0.45rem 0.875rem;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #fff;
	background: rgb(var(--fw-c-primary-rgb));
	text-decoration: none;
	border-radius: 0.25rem;
	transition: background var(--fw-t-fast, 0.15s);
}
.fw-einsatz-meta__badge:hover {
	background: #8c1914;
	color: #fff;
}

/* ---------- Alarmierung: Wert in Display-Typo, kein Pill ---------- */
.fw-einsatz-meta__value {
	font-size: 1rem;
	font-weight: 700;
	color: rgb(var(--fw-c-ink-rgb));
	letter-spacing: 0.02em;
	font-variant-numeric: tabular-nums;
}

/* ---------- Inline-Liste (Fahrzeuge, Externe Einheiten) ---------- */
.fw-einsatz-meta__inline-list {
	font-size: 0.9375rem;
	line-height: 1.5;
	color: rgb(var(--fw-c-ink-rgb));
}
.fw-einsatz-meta__link {
	color: rgb(var(--fw-c-primary-rgb));
	text-decoration: none;
	font-weight: 600;
	letter-spacing: 0.005em;
	border-bottom: 1px solid transparent;
	transition: border-color 0.12s ease, color 0.12s ease;
}
.fw-einsatz-meta__link:hover {
	border-bottom-color: rgb(var(--fw-c-primary-rgb));
}
.fw-einsatz-meta__static {
	color: rgba(var(--fw-c-ink-rgb) / 0.78);
	font-weight: 500;
}
.fw-einsatz-meta__sep {
	color: rgba(var(--fw-c-ink-rgb) / 0.28);
	font-weight: 400;
	margin: 0 0.05em;
	user-select: none;
}

/* Einsatz-Karte (PMTiles + MapLibre) */
.fw-einsatz-map-wrap {
	margin: 0 0 clamp(2rem, 4vw, 3rem);
}
.fw-einsatz-map-wrap__label {
	margin: 0 0 0.625rem;
}
.fw-einsatz-map {
	width: 100%;
	height: 360px;
	border-radius: var(--fw-r-md);
	overflow: hidden;
	background: #f3efe7;
	border: 1px solid var(--fw-c-rule);
}
.fw-einsatz-map--error {
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgba(13 13 13 / 0.5);
	font-size: 0.875rem;
}
.fw-einsatz-map-wrap__hint {
	margin: 0.625rem 0 0;
	font-size: 0.8125rem;
	color: rgba(13 13 13 / 0.55);
	line-height: 1.5;
}
@media (max-width: 540px) {
	.fw-einsatz-map { height: 280px; }
}
/* MapLibre overrides — Attribution etwas kleiner */
.maplibregl-ctrl-attrib {
	font-size: 0.6875rem;
}

/* Bericht-Block — nur sichtbar wenn Text vorhanden */
.fw-einsatz-report {
	margin: 0 0 clamp(2rem, 4vw, 3rem);
}
.fw-einsatz-report__featured {
	margin: 0 0 2rem;
	border-radius: var(--fw-r-md);
	overflow: hidden;
}
.fw-einsatz-report__featured img {
	width: 100%;
	height: auto;
	display: block;
}
.fw-einsatz-report__heading {
	font-size: 0.875rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(13 13 13 / 0.55);
	margin: 0 0 1rem;
}
.fw-einsatz-report__content {
	font-size: 1.0625rem;
	line-height: 1.65;
	color: rgb(var(--fw-c-ink-rgb));
}
.fw-einsatz-report__content p {
	margin: 0 0 1rem;
}
.fw-einsatz-report__content a {
	color: rgb(var(--fw-c-primary-rgb));
}

.fw-einsatz-detail__back {
	margin: clamp(2rem, 4vw, 3rem) 0 0;
}

/* =========================================================================
   Fahrzeug-Detail-Page (single-fahrzeug)
   ========================================================================= */
.fw-fahrzeug-detail-page {
	padding-top: clamp(2rem, 4vw, 3rem);
	padding-bottom: clamp(3rem, 6vw, 5rem);
}
.fw-fahrzeug-detail__title {
	margin: 0 0 1.5rem;
	color: rgb(var(--fw-c-ink-rgb));
}
.fw-fahrzeug-detail {
	display: flex;
	flex-direction: column;
	gap: clamp(2rem, 4vw, 3rem);
}

/* Hero: Großes Foto + rechts daneben Eckdaten */
.fw-fahrzeug-hero {
	position: relative;
	background: #fff;
	border: 1px solid var(--fw-c-rule);
	border-radius: var(--fw-r-md);
	overflow: hidden;
}
.fw-fahrzeug-hero__media {
	margin: 0 !important; /* override Gutenberg figure margin */
	aspect-ratio: 16 / 9;
	background: #f1f3f5;
	overflow: hidden;
}
.fw-fahrzeug-hero__media img,
.fw-fahrzeug-hero__img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	display: block;
	max-width: none !important;
}
.fw-fahrzeug-hero__body {
	padding: 1.25rem 1.5rem 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	align-items: flex-start;
}
.fw-fahrzeug-hero__kennung {
	display: inline-block;
	padding: 0.375rem 0.75rem;
	background: rgba(var(--fw-c-primary-rgb) / 0.08);
	color: rgb(var(--fw-c-primary-rgb));
	border-radius: 999px;
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.fw-fahrzeug-hero__funk {
	margin: 0;
	font-size: 1.0625rem;
	font-weight: 600;
	color: rgba(13 13 13 / 0.7);
	font-variant-numeric: tabular-nums;
}
.fw-fahrzeug-hero__status--retired {
	display: inline-block;
	padding: 0.25rem 0.625rem;
	background: rgba(13 13 13 / 0.06);
	color: rgba(13 13 13 / 0.7);
	border-radius: 999px;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

/* Stats-Grid */
.fw-fahrzeug-stats {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1px;
	margin: 0;
	padding: 0;
	background: var(--fw-c-rule);
	border: 1px solid var(--fw-c-rule);
	border-radius: var(--fw-r-md);
	overflow: hidden;
}
@media (min-width: 720px) {
	.fw-fahrzeug-stats {
		grid-template-columns: repeat(4, 1fr);
	}
	.fw-fahrzeug-stats--cols-2 { grid-template-columns: repeat(2, 1fr); }
	.fw-fahrzeug-stats--cols-3 { grid-template-columns: repeat(3, 1fr); }
	.fw-fahrzeug-stats--cols-5 { grid-template-columns: repeat(5, 1fr); }
}
.fw-fahrzeug-stats__cell {
	padding: 1rem 1.25rem;
	background: #fff;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	color: inherit;
	text-decoration: none;
}
.fw-fahrzeug-stats__label {
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgba(13 13 13 / 0.5);
}
.fw-fahrzeug-stats__value {
	font-size: 1rem;
	font-weight: 600;
	color: rgb(var(--fw-c-ink-rgb));
	line-height: 1.3;
}
.fw-fahrzeug-stats__num {
	font-size: 1.25rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	display: inline-flex;
	align-items: baseline;
	gap: 0.375rem;
}
.fw-fahrzeug-stats__cell--link {
	transition: background var(--fw-t-fast), color var(--fw-t-fast);
}
.fw-fahrzeug-stats__cell--link:hover {
	background: rgba(var(--fw-c-primary-rgb) / 0.04);
}
.fw-fahrzeug-stats__cell--link:hover .fw-fahrzeug-stats__value,
.fw-fahrzeug-stats__cell--link:hover .fw-fahrzeug-stats__arrow {
	color: rgb(var(--fw-c-primary-rgb));
}
.fw-fahrzeug-stats__arrow {
	color: rgb(var(--fw-c-primary-rgb));
	font-size: 1.125em;
	font-weight: 700;
	transition: transform var(--fw-t-fast);
}
.fw-fahrzeug-stats__cell--link:hover .fw-fahrzeug-stats__arrow {
	transform: translateX(3px);
}

/* Body-Sektionen: Einsatzbereich, Beladung */
.fw-fahrzeug-body__heading {
	font-size: 0.875rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(13 13 13 / 0.55);
	margin: 0 0 1rem;
}
.fw-fahrzeug-body__content,
.fw-fahrzeug-body__beladung-text {
	font-size: 1rem;
	line-height: 1.65;
	color: rgb(var(--fw-c-ink-rgb));
	margin: 0;
}
.fw-fahrzeug-body__content p {
	margin: 0 0 0.75rem;
}
.fw-fahrzeug-body__content a {
	color: rgb(var(--fw-c-primary-rgb));
}

/* Galerie-Grid */
.fw-fahrzeug-gallery__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0.625rem;
}
@media (min-width: 560px) {
	.fw-fahrzeug-gallery__grid {
		grid-template-columns: repeat(3, 1fr);
	}
}
@media (min-width: 900px) {
	.fw-fahrzeug-gallery__grid {
		grid-template-columns: repeat(4, 1fr);
	}
}
.fw-fahrzeug-gallery__grid > li {
	margin: 0;
	list-style: none;
}
.fw-fahrzeug-gallery__item {
	margin: 0 !important;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: var(--fw-r-sm);
	background: #f1f3f5;
	cursor: zoom-in;
}
.fw-fahrzeug-gallery__item img,
.fw-fahrzeug-gallery__img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	display: block;
	max-width: none !important;
	transition: transform 600ms cubic-bezier(0.2, 0.8, 0.2, 1);
}
.fw-fahrzeug-gallery__item:hover img {
	transform: scale(1.04);
}

/* Letzte Einsätze mit diesem Fahrzeug */
.fw-fahrzeug-recent__list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--fw-c-rule);
}
.fw-fahrzeug-recent__item {
	margin: 0;
	border-bottom: 1px solid var(--fw-c-rule);
}
.fw-fahrzeug-recent__link {
	display: grid;
	grid-template-columns: 80px 1fr auto;
	gap: 1rem;
	align-items: center;
	padding: 0.875rem 0;
	color: inherit;
	text-decoration: none;
	transition: background var(--fw-t-fast);
}
.fw-fahrzeug-recent__link:hover {
	background: rgba(var(--fw-c-primary-rgb) / 0.03);
}
.fw-fahrzeug-recent__date {
	display: flex;
	flex-direction: column;
	font-variant-numeric: tabular-nums;
}
.fw-fahrzeug-recent__day {
	font-size: 1.25rem;
	font-weight: 800;
	color: rgb(var(--fw-c-ink-rgb));
	line-height: 1;
}
.fw-fahrzeug-recent__mon {
	margin-top: 0.125rem;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(13 13 13 / 0.55);
}
.fw-fahrzeug-recent__body {
	display: flex;
	flex-direction: column;
	gap: 0.125rem;
	min-width: 0;
}
.fw-fahrzeug-recent__art {
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-primary-rgb));
}
.fw-fahrzeug-recent__title {
	font-size: 1rem;
	font-weight: 700;
	color: rgb(var(--fw-c-ink-rgb));
	line-height: 1.3;
}
.fw-fahrzeug-recent__ort {
	font-size: 0.875rem;
	color: rgba(13 13 13 / 0.65);
}
.fw-fahrzeug-recent__arrow {
	color: rgba(13 13 13 / 0.35);
	font-size: 1.25rem;
	font-weight: 700;
	transition: color var(--fw-t-fast), transform var(--fw-t-fast);
}
.fw-fahrzeug-recent__link:hover .fw-fahrzeug-recent__arrow {
	color: rgb(var(--fw-c-primary-rgb));
	transform: translateX(3px);
}
.fw-fahrzeug-recent__more {
	margin: 1rem 0 0;
}
.fw-fahrzeug-recent__more a {
	font-size: 0.9375rem;
	font-weight: 600;
	color: rgb(var(--fw-c-primary-rgb));
	text-decoration: none;
}
.fw-fahrzeug-recent__more a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.fw-fahrzeug-detail__back {
	margin: 0;
}

/* =========================================================================
   Einsatzabteilung-Page: stats-inline, aufgaben, recruit-card, roster-extra
   ========================================================================= */

/* WP is-layout-constrained sets max-width: 768px + margin: 0 auto on every
 * child of .entry-content, so wide blocks (no own max-width) sit centered
 * within the 800-px parent → effective margin-inline ≈ 16px on each side.
 * Narrow blocks (with max-width: 60ch) need to start at the SAME 768-px
 * content-edge as the wide siblings, otherwise they appear visually 16px
 * to the left. The max(...) below computes that offset dynamically from the
 * actual contentSize so it stays correct when the viewport / contentSize
 * changes.
 */
.fw-lede,
.fw-section-lede,
.fw-prose {
	margin-left: max(0px, calc((100% - var(--wp--style--global--content-size, 768px)) / 2)) !important;
	margin-right: auto !important;
}
.fw-lede {
	font-size: 1.125rem;
	line-height: 1.6;
	max-width: 60ch;
	color: rgb(var(--fw-c-ink-rgb));
}

.fw-mannschaftsbild {
	margin: 2.5rem 0 0;
}
.fw-mannschaftsbild img {
	border-radius: var(--fw-r-md);
}
.fw-mannschaftsbild .wp-element-caption {
	margin-top: 0.625rem;
	font-size: 0.8125rem;
	color: rgb(var(--fw-c-mute-rgb));
	text-align: left;
	letter-spacing: 0.02em;
}

/* Inline-Statistik-Reihe (vier Zellen mit roter Trennlinie links) */
.fw-stats-inline {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
	margin: 3rem 0 0;
	padding: 1.75rem 0;
	border-top: 1px solid rgba(var(--fw-c-line-rgb) / 0.7);
	border-bottom: 1px solid rgba(var(--fw-c-line-rgb) / 0.7);
}
.fw-stats-inline__item {
	padding: 0.25rem 1.25rem;
	border-left: 2px solid rgb(var(--fw-c-primary-rgb));
	display: flex;
	flex-direction: column;
	gap: 0.125rem;
	margin: 0;
}
.fw-stats-inline__label {
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-mute-rgb));
	margin: 0;
}
.fw-stats-inline__value {
	font-size: clamp(2rem, 1.5rem + 1.6vw, 2.625rem);
	font-weight: 800;
	font-feature-settings: "tnum", "lnum";
	line-height: 1;
	color: rgb(var(--fw-c-ink-rgb));
	margin: 0.125rem 0 0;
	display: flex;
	align-items: baseline;
	gap: 0.25em;
	flex-wrap: nowrap;
}
.fw-stats-inline__unit {
	font-size: 0.5em;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-mute-rgb));
	white-space: nowrap;
}
.fw-stats-inline__caption {
	font-size: 0.8125rem;
	color: rgb(var(--fw-c-mute-rgb));
	line-height: 1.4;
	margin: 0.25rem 0 0;
}
@media (max-width: 760px) {
	.fw-stats-inline {
		grid-template-columns: repeat(2, 1fr);
		row-gap: 1.5rem;
	}
}
@media (max-width: 420px) {
	.fw-stats-inline {
		padding: 1.25rem 0;
		row-gap: 1.25rem;
	}
	.fw-stats-inline__item {
		padding: 0.125rem 0.75rem;
	}
}

/* Standalone Section-Title für Inhaltspages (ohne hub__head Aufbau) */
.fw-section-title {
	font-size: clamp(1.625rem, 1.25rem + 1.5vw, 2.125rem);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: rgb(var(--fw-c-ink-rgb));
	margin: 3.5rem 0 0.5rem;
	position: relative;
	padding-top: 1.25rem;
}
.fw-section-title::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 56px;
	height: 3px;
	background: rgb(var(--fw-c-primary-rgb));
}
.fw-section-lede {
	font-size: 1rem;
	line-height: 1.6;
	color: rgb(var(--fw-c-mute-rgb));
	max-width: 60ch;
	margin: 0 0 1.75rem;
}

/* Aufgaben-Quartett: Retten · Löschen · Bergen · Schützen */
.fw-aufgaben {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1px;
	background: rgba(var(--fw-c-line-rgb) / 0.6);
	border: 1px solid rgba(var(--fw-c-line-rgb) / 0.6);
	border-radius: var(--fw-r-md);
	overflow: hidden;
}
.fw-aufgaben__item {
	background: rgb(var(--fw-c-soft-rgb));
	padding: 1.75rem 1.5rem 1.625rem;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	position: relative;
	transition: background 200ms ease;
}
.fw-aufgaben__item:hover {
	background: #fff;
}
.fw-aufgaben__nr {
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	color: rgb(var(--fw-c-primary-rgb));
	font-feature-settings: "tnum", "lnum";
}
.fw-aufgaben__title {
	font-size: 1.5rem;
	font-weight: 800;
	letter-spacing: -0.01em;
	line-height: 1.15;
	margin: 0;
	color: rgb(var(--fw-c-ink-rgb));
}
.fw-aufgaben__text {
	font-size: 0.9375rem;
	line-height: 1.55;
	color: rgb(var(--fw-c-mute-rgb));
	margin: 0;
}
@media (max-width: 720px) {
	.fw-aufgaben {
		grid-template-columns: 1fr;
	}
}

/* Roster-Variante mit zwei Spalten + monospaced numerals */
.fw-roster--names {
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	font-variant-numeric: tabular-nums;
}
.fw-roster--names li {
	font-size: 0.9375rem;
	color: rgb(var(--fw-c-ink-rgb));
}

/* Aufklappbare Liste (z.B. „Nicht im Bild") */
.fw-roster-extra {
	margin: 2rem 0 0;
	border-top: 1px solid rgba(var(--fw-c-line-rgb) / 0.7);
	padding-top: 1.25rem;
}
.fw-roster-extra__summary {
	cursor: pointer;
	list-style: none;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-mute-rgb));
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	user-select: none;
}
.fw-roster-extra__summary::-webkit-details-marker {
	display: none;
}
.fw-roster-extra__summary::before {
	content: "+";
	display: inline-flex;
	width: 1.25rem;
	height: 1.25rem;
	align-items: center;
	justify-content: center;
	color: rgb(var(--fw-c-primary-rgb));
	border: 1px solid rgb(var(--fw-c-primary-rgb));
	border-radius: 999px;
	font-weight: 700;
	font-size: 0.875rem;
	transition: transform 200ms ease;
}
.fw-roster-extra[open] .fw-roster-extra__summary::before {
	content: "−";
}
.fw-roster-extra__count {
	color: rgba(var(--fw-c-mute-rgb) / 0.8);
	font-weight: 600;
}
.fw-roster-extra .fw-roster {
	margin-top: 1.25rem;
}

/* Recruit-Karte am Ende (cremiger Block + Wappen-Stern als Echo) */
.fw-recruit-card {
	margin: 3.5rem 0 0;
	background: rgb(var(--fw-c-cream-rgb));
	border-left: 4px solid rgb(var(--fw-c-primary-rgb));
	padding: 2rem 2rem 2.125rem;
	position: relative;
	overflow: hidden;
}
.fw-recruit-card::after {
	content: "";
	position: absolute;
	right: -40px;
	top: -40px;
	width: 220px;
	height: 220px;
	border-radius: 999px;
	background: radial-gradient(circle at 30% 30%, rgba(var(--fw-c-gold-rgb) / 0.2), transparent 65%);
	pointer-events: none;
}
.fw-recruit-card__kicker {
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-primary-rgb));
	margin: 0;
}
.fw-recruit-card__title {
	font-size: clamp(1.625rem, 1.25rem + 1.5vw, 2rem);
	font-weight: 800;
	letter-spacing: -0.01em;
	line-height: 1.1;
	color: rgb(var(--fw-c-ink-rgb));
	margin: 0.375rem 0 0.625rem;
}
.fw-recruit-card__text {
	font-size: 1rem;
	line-height: 1.6;
	color: rgb(var(--fw-c-ink-rgb));
	max-width: 50ch;
	margin: 0 0 1.25rem;
}
.fw-recruit-card__btns {
	display: flex;
	flex-wrap: wrap;
	gap: 0.625rem;
	margin: 0;
}

/* Führungsgruppe: Wehren-Liste, Info-Card, Prose-Absätze */

.fw-wehren-list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 0;
	margin: 0;
	border-top: 1px solid rgba(var(--fw-c-line-rgb) / 0.7);
}
.fw-wehren-list__item {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.875rem 0.25rem;
	border-bottom: 1px solid rgba(var(--fw-c-line-rgb) / 0.7);
	margin: 0;
}
.fw-wehren-list__name {
	font-size: 0.9375rem;
	font-weight: 600;
	color: rgb(var(--fw-c-ink-rgb));
	margin: 0;
}
.fw-wehren-list__count {
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: rgb(var(--fw-c-primary-rgb));
	font-variant-numeric: tabular-nums;
	margin: 0;
	white-space: nowrap;
}
@media (min-width: 720px) {
	.fw-wehren-list {
		column-gap: 2.5rem;
	}
}

/* Info-Card: schlichter als Recruit-Card, neutraler */
.fw-info-card {
	margin: 3rem 0 0;
	background: rgb(var(--fw-c-soft-rgb));
	border-left: 4px solid rgb(var(--fw-c-primary-rgb));
	padding: 1.75rem 2rem 1.875rem;
}
.fw-info-card__kicker {
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-primary-rgb));
	margin: 0;
}
.fw-info-card__title {
	font-size: clamp(1.375rem, 1.125rem + 1vw, 1.625rem);
	font-weight: 800;
	letter-spacing: -0.005em;
	line-height: 1.15;
	color: rgb(var(--fw-c-ink-rgb));
	margin: 0.375rem 0 0.625rem;
}
.fw-info-card__text {
	font-size: 0.9375rem;
	line-height: 1.6;
	color: rgb(var(--fw-c-ink-rgb));
	max-width: 60ch;
	margin: 0;
}

/* =========================================================================
   Termine — Frontend-Liste auf /termine/.
   Editorial-Stil: links eine Datums-Spalte (Wochentag, Tag, Monat, Jahr),
   rechts Titel/Meta/Beschreibung/Anhang.
   ========================================================================= */
.fw-termine {
	display: flex;
	flex-direction: column;
	gap: 0;
}
.fw-termin {
	display: grid;
	grid-template-columns: 5.5rem 1fr;
	gap: 1.5rem;
	padding: 1.75rem 0;
	border-top: 1px solid rgba(var(--fw-c-line-rgb) / 0.7);
	margin: 0;
}
.fw-termin:last-child {
	border-bottom: 1px solid rgba(var(--fw-c-line-rgb) / 0.7);
}
.fw-termin__date {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.05rem;
	padding-top: 0.25rem;
	color: rgb(var(--fw-c-ink-rgb));
}
.fw-termin__weekday {
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-primary-rgb));
}
.fw-termin__day {
	font-size: clamp(2.25rem, 1.6rem + 2.4vw, 2.875rem);
	font-weight: 900;
	line-height: 0.95;
	letter-spacing: -0.025em;
	font-feature-settings: "ss01" 1;
}
.fw-termin__month {
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-ink-rgb));
}
.fw-termin__year {
	font-size: 0.75rem;
	font-weight: 600;
	color: rgba(var(--fw-c-ink-rgb) / 0.55);
	font-variant-numeric: tabular-nums;
}
.fw-termin__body {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.fw-termin__title {
	margin: 0;
	font-size: clamp(1.25rem, 1.05rem + 0.75vw, 1.5rem);
	font-weight: 800;
	letter-spacing: -0.01em;
	line-height: 1.2;
	color: rgb(var(--fw-c-ink-rgb));
}
.fw-termin__meta {
	margin: 0;
	font-size: 0.9375rem;
	color: rgba(var(--fw-c-ink-rgb) / 0.7);
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}
.fw-termin__time {
	font-variant-numeric: tabular-nums;
	font-weight: 600;
}
.fw-termin__sep { color: rgba(var(--fw-c-ink-rgb) / 0.3); }
.fw-termin__text {
	font-size: 1rem;
	line-height: 1.55;
	color: rgb(var(--fw-c-ink-rgb));
	max-width: 60ch;
}
.fw-termin__text p { margin: 0.5rem 0; }
.fw-termin__image {
	display: block;
	max-width: 360px;
	margin-top: 0.75rem;
}
.fw-termin__image img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--fw-r-sm, 0.375rem);
	border: 1px solid rgba(var(--fw-c-line-rgb) / 0.6);
}
.fw-termin__pdf {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-top: 0.5rem;
	padding: 0.6rem 0.85rem;
	background: rgb(var(--fw-c-soft-rgb));
	border-left: 3px solid rgb(var(--fw-c-primary-rgb));
	color: rgb(var(--fw-c-ink-rgb));
	font-weight: 600;
	text-decoration: none;
	transition: background 0.15s, transform 0.15s;
}
.fw-termin__pdf:hover {
	background: rgba(var(--fw-c-primary-rgb) / 0.08);
	transform: translateX(2px);
}
.fw-termin__pdf svg { color: rgb(var(--fw-c-primary-rgb)); }

.fw-termine-empty {
	padding: 2rem 0;
	color: rgba(var(--fw-c-ink-rgb) / 0.6);
	font-size: 1rem;
	text-align: center;
}

@media (max-width: 640px) {
	.fw-termin {
		grid-template-columns: 4rem 1fr;
		gap: 1rem;
		padding: 1.25rem 0;
	}
}

/* =========================================================================
   Cockpit-Module — Aktionen-Verwaltung (Toggle-Switch) + Termin-Verwaltung
   ========================================================================= */

/* --- Aktions-Sichtbarkeit --- */
body.fw-intern-page .fw-aktionen-list {
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
	margin-top: 1.5rem;
}
body.fw-intern-page .fw-aktion-row {
	display: grid;
	grid-template-columns: 1fr auto auto;
	gap: 1.25rem;
	align-items: center;
	padding: 1rem 1.25rem;
	background: #fff;
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: 0.375rem;
}
body.fw-intern-page .fw-aktion-row__title h2 {
	margin: 0;
	font-size: 1.0625rem;
	font-weight: 700;
	letter-spacing: -0.005em;
}
body.fw-intern-page .fw-aktion-row__slug {
	margin: 0.15rem 0 0;
	font-size: 0.8125rem;
	color: rgba(0, 0, 0, 0.55);
	font-family: ui-monospace, monospace;
}
body.fw-intern-page .fw-aktion-row__badge {
	display: inline-block;
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding: 0.3rem 0.6rem;
	border-radius: 0.25rem;
}
body.fw-intern-page .fw-aktion-row__badge--on {
	background: rgba(28, 138, 60, 0.14);
	color: rgb(28, 95, 28);
}
body.fw-intern-page .fw-aktion-row__badge--off {
	background: rgba(0, 0, 0, 0.08);
	color: rgba(0, 0, 0, 0.55);
}
body.fw-intern-page .fw-aktion-row__actions {
	display: flex;
	align-items: center;
	gap: 1rem;
}
body.fw-intern-page .fw-aktion-row__edit {
	font-size: 0.8125rem;
	font-weight: 600;
	color: #BD1F1A;
	text-decoration: none;
}
body.fw-intern-page .fw-aktion-row__edit:hover { text-decoration: underline; }

/* Generischer Toggle-Switch — als Button (Click-Toggle), als <span> innerhalb
   eines styled <label> mit Checkbox, oder direkt mit .is-on/.is-off-Klassen. */
body.fw-intern-page .fw-toggle,
body.fw-intern-page .fw-aktion-toggle {
	background: transparent;
	border: 0;
	padding: 0;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	-webkit-tap-highlight-color: transparent;
}
body.fw-intern-page .fw-toggle__track,
body.fw-intern-page .fw-aktion-toggle__track {
	display: inline-block;
	width: 2.75rem;
	height: 1.5rem;
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.18);
	position: relative;
	transition: background 0.15s;
}
body.fw-intern-page .fw-toggle__knob,
body.fw-intern-page .fw-aktion-toggle__knob {
	position: absolute;
	top: 0.2rem;
	left: 0.2rem;
	width: 1.1rem;
	height: 1.1rem;
	border-radius: 50%;
	background: #fff;
	transition: left 0.15s;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}
body.fw-intern-page .fw-toggle.is-on .fw-toggle__track,
body.fw-intern-page .fw-aktion-toggle.is-on .fw-aktion-toggle__track {
	background: rgb(28, 138, 60);
}
body.fw-intern-page .fw-toggle.is-on .fw-toggle__knob,
body.fw-intern-page .fw-aktion-toggle.is-on .fw-aktion-toggle__knob {
	left: 1.45rem;
}

/* Switch-Label-Variante (Checkbox + visueller Switch). Beim Klick auf das
   Label flippt die Checkbox; CSS synchronisiert den Switch über :checked. */
body.fw-intern-page .fw-form__switch {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	cursor: pointer;
	user-select: none;
	padding: 0.85rem 1rem;
	background: #fff;
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: 0.375rem;
	transition: border-color 0.15s, background 0.15s;
}
body.fw-intern-page .fw-form__switch:hover {
	border-color: rgba(0, 0, 0, 0.18);
}
body.fw-intern-page .fw-form__switch-input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
body.fw-intern-page .fw-toggle--inline {
	flex-shrink: 0;
}
body.fw-intern-page .fw-form__switch-text {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	font-size: 0.9375rem;
	line-height: 1.4;
}
body.fw-intern-page .fw-form__switch-text strong {
	font-weight: 700;
	color: rgb(var(--fw-c-ink-rgb));
}
body.fw-intern-page .fw-form__switch-text small {
	font-size: 0.8125rem;
	color: rgba(0, 0, 0, 0.55);
	line-height: 1.4;
}
/* Synchronisierung Checkbox ↔ Switch: wenn Checkbox NICHT gecheckt
   (= sichtbar), der Switch ist on. Wenn gecheckt (= versteckt), off.
   Die initial-Klassen `is-on`/`is-off` werden vom PHP gesetzt; das JS
   flippt sie beim Change-Event. */

@media (max-width: 720px) {
	body.fw-intern-page .fw-aktion-row {
		grid-template-columns: 1fr;
		gap: 0.75rem;
	}
}

/* --- Termine-Verwaltung Liste --- */
body.fw-intern-page .fw-termine-admin__filter {
	display: flex;
	gap: 0.5rem;
	margin: 1rem 0;
}
body.fw-intern-page .fw-termine-admin__filter .fw-btn.is-active {
	background: rgb(189, 31, 26);
	color: #fff;
	border-color: rgb(189, 31, 26);
}
body.fw-intern-page .fw-termine-admin__list {
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
	margin-top: 1rem;
}
body.fw-intern-page .fw-termine-admin__row {
	display: grid;
	grid-template-columns: 5rem 1fr auto;
	gap: 1.25rem;
	align-items: center;
	padding: 1rem 1.25rem;
	background: #fff;
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: 0.375rem;
}
body.fw-intern-page .fw-termine-admin__row.is-past { opacity: 0.55; }
body.fw-intern-page .fw-termine-admin__badge {
	display: inline-block;
	margin-left: 0.4rem;
	padding: 0.15rem 0.4rem;
	font-size: 0.625rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgb(120, 90, 30);
	background: rgba(var(--fw-c-gold-rgb, 201 161 76), 0.18);
	border-radius: 0.25rem;
	vertical-align: middle;
}
body.fw-intern-page .fw-termine-admin__date {
	display: flex;
	flex-direction: column;
	align-items: center;
	color: rgb(189, 31, 26);
}
body.fw-intern-page .fw-termine-admin__day {
	font-size: 1.75rem;
	font-weight: 900;
	line-height: 0.95;
	font-feature-settings: "ss01" 1;
}
body.fw-intern-page .fw-termine-admin__month {
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(0, 0, 0, 0.55);
}
body.fw-intern-page .fw-termine-admin__body h2 {
	margin: 0 0 0.15rem;
	font-size: 1.0625rem;
	font-weight: 700;
}
body.fw-intern-page .fw-termine-admin__meta {
	margin: 0;
	font-size: 0.875rem;
	color: rgba(0, 0, 0, 0.6);
}
body.fw-intern-page .fw-termine-admin__actions {
	display: flex;
	gap: 0.5rem;
}

@media (max-width: 720px) {
	body.fw-intern-page .fw-termine-admin__row {
		grid-template-columns: 4rem 1fr;
	}
	body.fw-intern-page .fw-termine-admin__actions {
		grid-column: 1 / -1;
		justify-content: flex-end;
	}
}

/* --- Anhang-Upload (Bild oder PDF) --- */
body.fw-intern-page .fw-anhang {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}
body.fw-intern-page .fw-anhang__current {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	align-items: flex-start;
	padding: 0.75rem;
	background: rgba(0, 0, 0, 0.03);
	border-radius: 0.375rem;
}
body.fw-intern-page .fw-anhang__current[hidden] { display: none; }
body.fw-intern-page .fw-anhang__current img {
	max-width: 240px;
	max-height: 180px;
	width: auto;
	height: auto;
	border-radius: 0.25rem;
	border: 1px solid rgba(0, 0, 0, 0.12);
}
body.fw-intern-page .fw-anhang__pdf {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	color: #BD1F1A;
}
body.fw-intern-page .fw-anhang__pdf a {
	color: rgb(var(--fw-c-ink-rgb, 22 22 22));
	text-decoration: none;
	font-weight: 600;
	font-size: 0.9375rem;
}
body.fw-intern-page .fw-anhang__pdf a:hover { text-decoration: underline; }
body.fw-intern-page .fw-anhang__drop {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	padding: 1.25rem 1rem;
	border: 2px dashed rgba(0, 0, 0, 0.18);
	border-radius: 0.5rem;
	background: rgba(0, 0, 0, 0.02);
	color: rgba(0, 0, 0, 0.6);
	cursor: pointer;
	text-align: center;
}
body.fw-intern-page .fw-anhang__drop:hover {
	border-color: rgba(189, 31, 26, 0.55);
	background: rgba(189, 31, 26, 0.05);
}
body.fw-intern-page .fw-anhang__drop input[type=file] {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	cursor: pointer;
}
body.fw-intern-page .fw-anhang__drop-text strong {
	font-weight: 700;
	color: #161616;
}
body.fw-intern-page .fw-anhang__drop-text small {
	display: block;
	margin-top: 0.25rem;
	font-size: 0.75rem;
	color: rgba(0, 0, 0, 0.5);
}
body.fw-intern-page .fw-anhang__status {
	font-size: 0.8125rem;
	font-weight: 600;
	color: rgb(28, 95, 28);
	min-height: 1.2em;
	margin-top: 0.25rem;
}
body.fw-intern-page .fw-anhang__status.is-error { color: #BD1F1A; }

/* =========================================================================
   Aktions-Pages — Komponenten für FireFit (Downloads + Sponsoren)
   und Altmetallsammlung (zwei-spaltige Annahme-Listen).
   ========================================================================= */

/* ---- Downloads-Liste (PDF, Plakat, Regelwerk) ---- */
.fw-downloads {
	list-style: none;
	margin: 1rem 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.fw-downloads__item {
	margin: 0;
}
.fw-downloads__link {
	display: flex;
	gap: 1rem;
	align-items: center;
	padding: 1rem 1.25rem;
	background: rgb(var(--fw-c-soft-rgb));
	border-left: 3px solid rgb(var(--fw-c-primary-rgb));
	color: rgb(var(--fw-c-ink-rgb));
	text-decoration: none;
	transition: background 0.15s, transform 0.15s;
}
.fw-downloads__link:hover {
	background: rgba(var(--fw-c-primary-rgb) / 0.08);
	transform: translateX(2px);
}
.fw-downloads__icon {
	width: 2.25rem;
	height: 2.25rem;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgb(var(--fw-c-primary-rgb));
	background: #fff;
	border-radius: 0.25rem;
}
.fw-downloads__body {
	display: flex;
	flex-direction: column;
	min-width: 0;
}
.fw-downloads__title {
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: -0.005em;
	color: rgb(var(--fw-c-ink-rgb));
}
.fw-downloads__meta {
	font-size: 0.8125rem;
	color: rgba(var(--fw-c-ink-rgb) / 0.6);
	margin-top: 0.15rem;
}

/* ---- Sponsoren-Sektion (FireFit) ----
   Heller cremiger Hintergrund unterhalb der eigentlichen Inhalte,
   damit die Sponsoren-Wand visuell als „Anhang" wahrgenommen wird.
   Logo-Zellen haben einheitliche Aspect-Ratio, damit das Grid trotz
   heterogener Logo-Geometrien ruhig bleibt. */
.fw-sponsors {
	margin: 4rem 0 0;
	padding: 2.5rem 2rem 2.75rem;
	background: rgb(var(--fw-c-soft-rgb));
	border-top: 1px solid rgba(var(--fw-c-line-rgb) / 0.6);
}
.fw-sponsors__head {
	text-align: center;
	margin: 0 0 2rem;
}
.fw-sponsors__kicker {
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-primary-rgb));
	margin: 0;
}
.fw-sponsors__title {
	font-size: clamp(1.5rem, 1.2rem + 1.2vw, 1.875rem);
	font-weight: 800;
	letter-spacing: -0.015em;
	color: rgb(var(--fw-c-ink-rgb));
	margin: 0.4rem 0 0.5rem;
}
.fw-sponsors__lede {
	font-size: 0.9375rem;
	color: rgba(var(--fw-c-ink-rgb) / 0.7);
	margin: 0;
}
.fw-sponsors__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 0.875rem;
}
.fw-sponsor {
	background: #fff;
	border: 1px solid rgba(var(--fw-c-line-rgb) / 0.5);
	border-radius: var(--fw-r-sm, 0.375rem);
	padding: 1.5rem 1.25rem;
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 5 / 3;
	transition: border-color 0.18s, box-shadow 0.18s;
}
.fw-sponsor:hover {
	border-color: rgba(var(--fw-c-primary-rgb) / 0.35);
	box-shadow: 0 6px 16px -8px rgba(0, 0, 0, 0.18);
}
.fw-sponsor img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
	filter: saturate(0.95);
}

/* ---- Altmetallsammlung: Annahme-Listen (Ja/Nein) ---- */
.fw-altmetall-lists {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.5rem;
	margin: 2.5rem 0 0;
}
.fw-altmetall-list {
	background: #fff;
	padding: 1.5rem 1.5rem 1.5rem;
	border-top: 3px solid;
}
.fw-altmetall-list--yes {
	border-color: rgb(28, 138, 60);
	background: rgba(28, 138, 60, 0.05);
}
.fw-altmetall-list--no {
	border-color: rgb(var(--fw-c-primary-rgb));
	background: rgba(var(--fw-c-primary-rgb) / 0.05);
}
.fw-altmetall-list__head {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin: 0 0 1rem;
}
.fw-altmetall-list__badge {
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	flex-shrink: 0;
}
.fw-altmetall-list--yes .fw-altmetall-list__badge {
	background: rgb(28, 138, 60);
}
.fw-altmetall-list--no .fw-altmetall-list__badge {
	background: rgb(var(--fw-c-primary-rgb));
}
.fw-altmetall-list__title {
	font-size: 1.125rem;
	font-weight: 800;
	letter-spacing: -0.005em;
	color: rgb(var(--fw-c-ink-rgb));
	margin: 0;
}
.fw-altmetall-list__items {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
}
.fw-altmetall-list__items li {
	font-size: 0.9375rem;
	line-height: 1.45;
	color: rgb(var(--fw-c-ink-rgb));
	padding-left: 1rem;
	position: relative;
}
.fw-altmetall-list__items li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.55em;
	width: 0.4rem;
	height: 0.4rem;
	border-radius: 50%;
	background: rgba(var(--fw-c-ink-rgb) / 0.35);
}

@media (max-width: 720px) {
	.fw-altmetall-lists {
		grid-template-columns: 1fr;
	}
	.fw-sponsors {
		padding: 2rem 1rem 2.25rem;
	}
	.fw-sponsors__grid {
		grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	}
}

/* =========================================================================
   Kanonisches 3-Block-Pattern für Abteilungs-Pages
   (Jugendfeuerwehr, Feuerlöwen, Musikzug, Altersabteilung).
   Bewusst drei klar verschiedene Erscheinungsbilder, damit der visuelle
   Rhythmus „Information → Person → Aktion" durchklingt:

     1. .fw-fact-box   — Praktisches (Wann/Wo) im Aushang-Look
     2. .fw-leitung    — Leitung als Portrait-Card mit Avatar
     3. .fw-mitmachen  — Dunkles CTA-Banner als Schluss-Akzent
   ========================================================================= */

/* ---- 1. FACT-BOX ---- */
.fw-fact-box {
	margin: 3rem 0 0;
	background: rgb(var(--fw-c-cream-rgb));
	display: grid;
	grid-template-columns: minmax(0, auto) 1px minmax(0, 1fr);
	gap: 1.75rem;
	padding: 1.75rem 2rem;
	align-items: stretch;
}
.fw-fact-box__data {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	min-width: 11ch;
}
.fw-fact-box__kicker {
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-primary-rgb));
	margin: 0 0 0.25rem;
}
.fw-fact-box__day {
	font-size: clamp(1.625rem, 1.25rem + 1.6vw, 2.125rem);
	font-weight: 900;
	line-height: 1;
	letter-spacing: -0.015em;
	color: rgb(var(--fw-c-ink-rgb));
	margin: 0;
	text-transform: uppercase;
	font-feature-settings: "ss01" 1, "kern" 1;
}
.fw-fact-box__time {
	font-size: 1.125rem;
	font-weight: 700;
	color: rgb(var(--fw-c-ink-rgb));
	margin: 0;
	letter-spacing: 0.005em;
	font-variant-numeric: tabular-nums;
}
.fw-fact-box__place {
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: rgba(var(--fw-c-ink-rgb) / 0.65);
	margin: 0.4rem 0 0;
}
.fw-fact-box__divider {
	background: rgba(var(--fw-c-primary-rgb) / 0.35);
	width: 1px;
	margin: 0.25rem 0;
}
.fw-fact-box__body {
	display: flex;
	align-items: center;
}
.fw-fact-box__text {
	font-size: 1rem;
	line-height: 1.6;
	color: rgb(var(--fw-c-ink-rgb));
	margin: 0;
	max-width: 56ch;
}

@media (max-width: 720px) {
	.fw-fact-box {
		grid-template-columns: 1fr;
		gap: 1.25rem;
		padding: 1.5rem 1.25rem;
	}
	.fw-fact-box__divider {
		width: auto;
		height: 1px;
		margin: 0;
	}
}

/* ---- 2. LEITUNG ---- */
.fw-leitung {
	margin: 2rem 0 0;
	background: #fff;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 1.5rem;
	align-items: center;
	padding: 1.75rem 0.5rem 1.75rem 0.5rem;
	border-bottom: 1px solid rgba(var(--fw-c-line-rgb) / 0.7);
}
.fw-leitung__avatar {
	width: 96px;
	aspect-ratio: 4 / 5;
	background: linear-gradient(135deg, rgba(var(--fw-c-line-rgb) / 0.9), rgba(var(--fw-c-mute-rgb) / 0.2));
	border-radius: var(--fw-r-md);
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	color: rgba(var(--fw-c-mute-rgb) / 0.55);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding-bottom: 0.6rem;
	flex-shrink: 0;
	position: relative;
}
.fw-leitung__avatar img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.fw-leitung__body {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	min-width: 0;
}
.fw-leitung__kicker {
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-primary-rgb));
	margin: 0 0 0.15rem;
}
.fw-leitung__name {
	font-size: clamp(1.375rem, 1.15rem + 0.9vw, 1.625rem);
	font-weight: 800;
	letter-spacing: -0.005em;
	line-height: 1.15;
	color: rgb(var(--fw-c-ink-rgb));
	margin: 0;
}
.fw-leitung__role {
	font-size: 0.9375rem;
	font-weight: 500;
	color: rgba(var(--fw-c-ink-rgb) / 0.7);
	margin: 0.15rem 0 0.4rem;
}
.fw-leitung__contact {
	font-size: 0.875rem;
	margin: 0;
}
.fw-leitung__contact a {
	color: rgb(var(--fw-c-primary-rgb));
	text-decoration: none;
	border-bottom: 1px solid rgba(var(--fw-c-primary-rgb) / 0.35);
	transition: border-color 0.15s;
}
.fw-leitung__contact a:hover {
	border-bottom-color: rgb(var(--fw-c-primary-rgb));
}

@media (max-width: 720px) {
	.fw-leitung {
		grid-template-columns: 1fr;
		text-align: center;
		gap: 1rem;
		justify-items: center;
	}
}

/* ---- 3. MITMACHEN ---- */
.fw-mitmachen {
	margin: 2.5rem 0 0;
	background: rgb(var(--fw-c-ink-rgb));
	color: #fff;
	padding: 2.5rem 2.25rem 2.625rem;
	position: relative;
	overflow: hidden;
	border-top: 2px solid rgb(var(--fw-c-gold-rgb));
}
.fw-mitmachen::before {
	content: "";
	position: absolute;
	right: -120px;
	top: -80px;
	width: 360px;
	height: 360px;
	border-radius: 50%;
	background: radial-gradient(circle at 35% 35%,
	            rgba(var(--fw-c-primary-rgb) / 0.55) 0%,
	            rgba(var(--fw-c-primary-rgb) / 0.18) 35%,
	            transparent 70%);
	pointer-events: none;
	filter: blur(6px);
}
.fw-mitmachen::after {
	content: "";
	position: absolute;
	left: -60px;
	bottom: -100px;
	width: 280px;
	height: 280px;
	border-radius: 50%;
	background: radial-gradient(circle at 60% 40%,
	            rgba(var(--fw-c-gold-rgb) / 0.22) 0%,
	            transparent 60%);
	pointer-events: none;
}
.fw-mitmachen > * {
	position: relative;
	z-index: 1;
}
.fw-mitmachen__kicker {
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-gold-rgb));
	margin: 0;
}
.fw-mitmachen__title {
	font-size: clamp(1.75rem, 1.35rem + 1.7vw, 2.375rem);
	font-weight: 900;
	letter-spacing: -0.02em;
	line-height: 1.05;
	color: #fff;
	margin: 0.5rem 0 0.75rem;
	max-width: 22ch;
}
.fw-mitmachen__text {
	font-size: 1.0625rem;
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.82);
	max-width: 50ch;
	margin: 0 0 1.5rem;
}
.fw-mitmachen__btns {
	display: flex;
	flex-wrap: wrap;
	gap: 0.625rem;
	margin: 0;
}
.fw-mitmachen .fw-btn--primary {
	background: rgb(var(--fw-c-primary-rgb));
	color: #fff;
	box-shadow: 0 8px 24px -10px rgba(var(--fw-c-primary-rgb) / 0.7);
}
.fw-mitmachen .fw-btn--primary:hover {
	background: rgb(var(--fw-c-primary-rgb));
	filter: brightness(1.12);
}
.fw-mitmachen .fw-btn--ghost {
	background: transparent;
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.45);
}
.fw-mitmachen .fw-btn--ghost:hover {
	background: rgba(255, 255, 255, 0.08);
	border-color: #fff;
}

/* Timeline (z.B. Wasserrettung-Geschichte): vertikale Jahres-Liste */
.fw-timeline {
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 0.875rem 1.75rem;
	margin: 0;
	border-top: 1px solid rgba(var(--fw-c-line-rgb) / 0.7);
	padding-top: 1.25rem;
}
.fw-timeline__item {
	display: contents;
}
.fw-timeline__year {
	font-size: 1rem;
	font-weight: 800;
	letter-spacing: 0.02em;
	color: rgb(var(--fw-c-primary-rgb));
	font-variant-numeric: tabular-nums;
	padding: 0.125rem 0;
	border-right: 2px solid rgba(var(--fw-c-primary-rgb) / 0.2);
	padding-right: 1.25rem;
	margin: 0;
	min-width: 4rem;
}
.fw-timeline__text {
	font-size: 0.9375rem;
	line-height: 1.55;
	color: rgb(var(--fw-c-ink-rgb));
	margin: 0;
	padding: 0.125rem 0 0.625rem;
	border-bottom: 1px solid rgba(var(--fw-c-line-rgb) / 0.5);
}
.fw-timeline__item:last-child .fw-timeline__text {
	border-bottom: 0;
}
@media (max-width: 540px) {
	.fw-timeline {
		grid-template-columns: 1fr;
		gap: 0.25rem 0;
	}
	.fw-timeline__year {
		border-right: 0;
		padding-right: 0;
		padding-top: 0.875rem;
	}
	.fw-timeline__text {
		padding-bottom: 1rem;
	}
}

/* Techspecs (z.B. Lichtmast): Schl&uuml;ssel-Wert-Liste in zwei Spalten */
.fw-techspecs {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	column-gap: 2.5rem;
	row-gap: 0;
	margin: 0;
	border-top: 1px solid rgba(var(--fw-c-line-rgb) / 0.7);
}
.fw-techspecs__item {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.75rem 0.25rem;
	border-bottom: 1px solid rgba(var(--fw-c-line-rgb) / 0.7);
	margin: 0;
}
.fw-techspecs__label {
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-mute-rgb));
	margin: 0;
}
.fw-techspecs__value {
	font-size: 0.9375rem;
	font-weight: 700;
	color: rgb(var(--fw-c-ink-rgb));
	font-variant-numeric: tabular-nums;
	margin: 0;
	white-space: nowrap;
}

/* Stages (Nachwuchs-Hub): drei vertikal verkettete Altersstufen mit
 * großem Alters-Badge links + Inhalt rechts. */
.fw-stages {
	list-style: none;
	margin: 1.5rem 0 0;
	padding: 0;
	display: grid;
	gap: 0;
}
.fw-stages__item {
	display: grid;
	grid-template-columns: minmax(7rem, 9rem) 1fr;
	gap: 1.75rem;
	padding: 2rem 0;
	border-top: 1px solid rgba(var(--fw-c-line-rgb) / 0.7);
	margin: 0;
	position: relative;
}
.fw-stages__item:last-child {
	border-bottom: 1px solid rgba(var(--fw-c-line-rgb) / 0.7);
}
.fw-stages__age {
	font-size: clamp(2.25rem, 1.5rem + 2vw, 3.25rem);
	font-weight: 800;
	line-height: 1;
	color: rgb(var(--fw-c-primary-rgb));
	font-feature-settings: "tnum", "lnum";
	letter-spacing: -0.02em;
	display: flex;
	align-items: flex-start;
	padding-top: 0.25rem;
}
.fw-stages__body {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.fw-stages__kicker {
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-mute-rgb));
	margin: 0;
}
.fw-stages__title {
	font-size: clamp(1.5rem, 1.25rem + 1vw, 1.875rem);
	font-weight: 800;
	letter-spacing: -0.01em;
	line-height: 1.15;
	margin: 0;
	color: rgb(var(--fw-c-ink-rgb));
}
.fw-stages__title a {
	color: inherit;
	text-decoration: none;
}
.fw-stages__title a:hover {
	color: rgb(var(--fw-c-primary-rgb));
}
.fw-stages__text {
	font-size: 1rem;
	line-height: 1.55;
	color: rgb(var(--fw-c-ink-rgb));
	max-width: 60ch;
	margin: 0.25rem 0 0;
}
.fw-stages__more {
	margin: 0.5rem 0 0;
	font-size: 0.9375rem;
	font-weight: 700;
}
.fw-stages__more a {
	color: rgb(var(--fw-c-primary-rgb));
	text-decoration: none;
}
.fw-stages__more a:hover {
	text-decoration: underline;
	text-underline-offset: 4px;
}
@media (max-width: 540px) {
	.fw-stages__item {
		grid-template-columns: 1fr;
		gap: 0.5rem;
		padding: 1.5rem 0;
	}
	.fw-stages__age {
		font-size: 2.5rem;
		padding-top: 0;
	}
}

/* Chronik (Geschichte-Page): editorial vertical timeline.
 * Hairline axis on the left, year-marker as small filled dot on axis,
 * year as bold display number above the title (no pill — looks more
 * editorial/serious). Cards are flush rectangles with a thin top hairline
 * and a left red accent — no rounded corners. Photos stack inside cards
 * and break out to be more cinematic. Scroll-reveal via fw-reveal.
 */
.fw-chronik {
	list-style: none;
	margin: 2rem 0 0;
	padding: 0;
	position: relative;
	display: grid;
	gap: 2.25rem;
}
.fw-chronik {
	--fw-chronik-axis: 5.5rem;
}
.fw-chronik::before {
	content: "";
	position: absolute;
	top: 0.5rem;
	bottom: 0.5rem;
	left: calc(var(--fw-chronik-axis) - 0.5px);
	width: 1px;
	background:
		linear-gradient(to bottom,
			transparent 0%,
			rgba(var(--fw-c-primary-rgb) / 0.45) 4%,
			rgba(var(--fw-c-primary-rgb) / 0.45) 96%,
			transparent 100%
		);
}
.fw-chronik__item {
	display: grid;
	grid-template-columns: var(--fw-chronik-axis) 1fr;
	gap: 0;
	margin: 0;
	position: relative;
}
.fw-chronik__item::after {
	/* dot on axis, positioned relative to grid item */
	content: "";
	position: absolute;
	left: calc(var(--fw-chronik-axis) - 0.4375rem);
	top: 0.5rem;
	width: 0.875rem;
	height: 0.875rem;
	border-radius: 999px;
	background: rgb(var(--fw-c-primary-rgb));
	box-shadow: 0 0 0 4px rgb(var(--fw-c-paper-rgb));
	z-index: 2;
}
.fw-chronik__year {
	font-size: clamp(1.625rem, 1.25rem + 1.25vw, 2.125rem);
	font-weight: 800;
	color: rgb(var(--fw-c-primary-rgb));
	letter-spacing: -0.02em;
	line-height: 1;
	font-feature-settings: "tnum", "lnum";
	text-align: right;
	padding: 0.125rem 1.25rem 0 0;
}
.fw-chronik__year > span {
	display: inline-block;
}
.fw-chronik__card {
	background: transparent;
	padding: 0.125rem 0 0.25rem 1.5rem;
	position: relative;
}
.fw-chronik__title {
	font-size: 1.1875rem;
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.25;
	margin: 0 0 0.5rem;
	color: rgb(var(--fw-c-ink-rgb));
}
.fw-chronik__text {
	font-size: 0.9375rem;
	line-height: 1.6;
	color: rgb(var(--fw-c-mute-rgb));
	margin: 0;
	max-width: 64ch;
}
.fw-chronik__media {
	margin: 1rem 0 0;
}
.fw-chronik__media .wp-block-image {
	margin: 0;
}
.fw-chronik__media .wp-block-image img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 0;
}
.fw-chronik__media--grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 0.5rem;
}
@media (max-width: 640px) {
	.fw-chronik {
		--fw-chronik-axis: 1rem;
		gap: 1.75rem;
	}
	.fw-chronik__item {
		grid-template-columns: 1fr;
		gap: 0.375rem;
		padding-left: 2rem;
	}
	.fw-chronik__item::after {
		left: calc(1rem - 0.4375rem);
		top: 0.25rem;
	}
	.fw-chronik__year {
		font-size: 1.375rem;
		text-align: left;
		padding: 0;
	}
	.fw-chronik__card {
		padding-left: 0;
		padding-top: 0.625rem;
		border-top: 0;
	}
}

/* Kommandanten-Doppel-Liste */
.fw-kommandanten {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 0 2.5rem;
	margin: 1rem 0 0;
}
.fw-kommandanten__col {
	margin: 0;
	border-top: 1px solid rgba(var(--fw-c-line-rgb) / 0.7);
}
.fw-kommandanten__row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.625rem 0.25rem;
	border-bottom: 1px solid rgba(var(--fw-c-line-rgb) / 0.7);
	margin: 0;
}
.fw-kommandanten__name {
	font-size: 0.9375rem;
	font-weight: 600;
	color: rgb(var(--fw-c-ink-rgb));
	margin: 0;
}
.fw-kommandanten__when {
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: rgb(var(--fw-c-primary-rgb));
	font-variant-numeric: tabular-nums;
	margin: 0;
	white-space: nowrap;
}

/* Legal-Pages: Impressum + Datenschutz */
.fw-legal-meta {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	margin: 1.5rem 0 0;
	border-left: 3px solid rgb(var(--fw-c-primary-rgb));
	padding: 0.25rem 0 0.25rem 1.25rem;
}
.fw-legal-meta__block {
	margin: 0;
	padding: 0.5rem 0;
}
.fw-legal-meta__name {
	font-size: 1rem;
	margin: 0 0 0.375rem;
	color: rgb(var(--fw-c-ink-rgb));
}
.fw-legal-meta__name strong {
	font-weight: 700;
}
.fw-legal-meta__value {
	font-size: 0.9375rem;
	line-height: 1.55;
	color: rgb(var(--fw-c-ink-rgb));
	margin: 0;
}
.fw-legal-meta__value a {
	color: rgb(var(--fw-c-primary-rgb));
}

/* Sub-Section H3 für legal-Sektionen + andere strukturierte Inhalte */
.fw-subsection-title {
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: rgb(var(--fw-c-ink-rgb));
	margin: 1.5rem 0 0.5rem !important;
	max-width: 60ch;
}

/* Prose-Listen (in Legal-Texten und Long-Form-Pages) */
.fw-prose-list {
	font-size: 0.9375rem;
	line-height: 1.6;
	color: rgb(var(--fw-c-ink-rgb));
	max-width: 60ch;
	margin: 0 0 1rem 1.25rem !important;
	padding: 0;
}
.fw-prose-list li {
	margin: 0.25rem 0;
}

/* Prose-Absätze: für längere Erklärtexte (Geschichte, Hintergrund) */
.fw-prose {
	font-size: 1rem;
	line-height: 1.65;
	color: rgb(var(--fw-c-ink-rgb));
	max-width: 65ch;
	margin-bottom: 0.875rem !important;
}
.fw-prose:last-child {
	margin-bottom: 0 !important;
}

/* =========================================================================
   Interner Bereich /intern/ — Login + Cockpit
   ========================================================================= */

.fw-intern-main {
	max-width: 880px;
	margin: 0 auto;
	padding: 4rem 1.5rem 6rem;
}

/* Login-Form */
.fw-intern-login {
	max-width: 420px;
	margin: 0 auto;
}
.fw-intern-login__head {
	margin: 0 0 2rem;
}
.fw-intern-login__kicker {
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-primary-rgb));
	margin: 0 0 0.5rem;
}
.fw-intern-login__title {
	font-size: clamp(1.875rem, 1.5rem + 1.5vw, 2.5rem);
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.1;
	margin: 0 0 0.75rem;
	color: rgb(var(--fw-c-ink-rgb));
}
.fw-intern-login__lede {
	font-size: 1rem;
	line-height: 1.55;
	color: rgb(var(--fw-c-mute-rgb));
	margin: 0;
}
.fw-intern-login__error {
	margin: 0 0 1.25rem;
	padding: 0.75rem 1rem;
	border-left: 3px solid rgb(var(--fw-c-primary-rgb));
	background: rgba(var(--fw-c-primary-rgb) / 0.06);
	color: rgb(var(--fw-c-primary-rgb));
	font-size: 0.9375rem;
	font-weight: 600;
}
.fw-intern-login__form {
	display: flex;
	flex-direction: column;
	gap: 1.125rem;
}
.fw-intern-login__honeypot {
	position: absolute !important;
	left: -10000px !important;
	top: auto;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.fw-intern-login__field {
	display: block;
}
.fw-intern-login__label {
	display: block;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: rgb(var(--fw-c-ink-rgb));
	margin: 0 0 0.375rem;
}
.fw-intern-login__input {
	width: 100%;
	padding: 0.75rem 0.875rem;
	border: 1px solid rgba(var(--fw-c-line-rgb) / 0.9);
	background: #fff;
	font: inherit;
	color: rgb(var(--fw-c-ink-rgb));
	transition: border-color 150ms ease, box-shadow 150ms ease;
}
.fw-intern-login__input:focus {
	outline: 0;
	border-color: rgb(var(--fw-c-primary-rgb));
	box-shadow: 0 0 0 3px rgba(var(--fw-c-primary-rgb) / 0.15);
}
.fw-intern-login__remember {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.9375rem;
	color: rgb(var(--fw-c-ink-rgb));
}
.fw-intern-login__btn {
	margin: 0.5rem 0 0;
	padding: 0.875rem 1.25rem;
	background: rgb(var(--fw-c-primary-rgb));
	color: #fff;
	border: 0;
	font-weight: 700;
	letter-spacing: 0.02em;
	cursor: pointer;
	transition: background 150ms ease;
}
.fw-intern-login__btn:hover {
	background: rgb(var(--fw-c-primary-dark-rgb));
}
.fw-intern-login__hint {
	margin: 1rem 0 0;
	font-size: 0.8125rem;
	line-height: 1.5;
	color: rgb(var(--fw-c-mute-rgb));
}

/* Cockpit */
.fw-intern-cockpit__head {
	margin: 0 0 2.5rem;
}
.fw-intern-cockpit__kicker {
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-primary-rgb));
	margin: 0 0 0.5rem;
}
.fw-intern-cockpit__title {
	font-size: clamp(1.875rem, 1.5rem + 1.5vw, 2.5rem);
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.1;
	margin: 0 0 0.5rem;
	color: rgb(var(--fw-c-ink-rgb));
}
.fw-intern-cockpit__meta {
	font-size: 0.9375rem;
	color: rgb(var(--fw-c-mute-rgb));
	margin: 0;
}
.fw-intern-cockpit__sep {
	margin: 0 0.5rem;
	opacity: 0.5;
}
.fw-intern-cockpit__logout {
	color: rgb(var(--fw-c-primary-rgb));
	text-decoration: none;
	font-weight: 600;
}
.fw-intern-cockpit__logout:hover {
	text-decoration: underline;
	text-underline-offset: 4px;
}
.fw-intern-cockpit__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: 1.5rem;
}
.fw-intern-cockpit__card {
	background: #fff;
	border: 1px solid rgba(var(--fw-c-line-rgb) / 0.6);
	border-radius: var(--fw-r-md, 0.5rem);
	padding: 1.75rem 1.875rem 1.875rem;
	display: flex;
	flex-direction: column;
	transition: border-color 0.18s, box-shadow 0.18s, transform 0.18s;
}
.fw-intern-cockpit__card:hover {
	border-color: rgba(var(--fw-c-primary-rgb) / 0.4);
	box-shadow: 0 14px 32px -18px rgba(0, 0, 0, 0.25),
	            0 4px 10px -4px rgba(0, 0, 0, 0.08);
	transform: translateY(-2px);
}
.fw-intern-cockpit__card--admin {
	background: rgba(var(--fw-c-gold-rgb) / 0.06);
}
.fw-intern-cockpit__card-kicker {
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgb(var(--fw-c-primary-rgb));
	margin: 0 0 0.5rem;
}
.fw-intern-cockpit__card--admin .fw-intern-cockpit__card-kicker {
	color: rgb(var(--fw-c-gold-rgb));
}
.fw-intern-cockpit__card-title {
	font-size: 1.25rem;
	font-weight: 800;
	letter-spacing: -0.005em;
	line-height: 1.2;
	margin: 0 0 0.625rem;
	color: rgb(var(--fw-c-ink-rgb));
}
.fw-intern-cockpit__card-text {
	font-size: 0.9375rem;
	line-height: 1.55;
	color: rgb(var(--fw-c-mute-rgb));
	margin: 0 0 1rem;
	flex: 1;
}
.fw-intern-cockpit__card-cta {
	margin: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.6rem;
}
.fw-intern-cockpit__card-cta .fw-btn {
	width: auto;
}

/* Footer-Login-Link (dezent) */
.fw-footer__intern {
	font-size: 0.75rem;
	color: rgba(255 255 255 / 0.35);
	text-decoration: none;
	letter-spacing: 0.04em;
	transition: color 150ms ease;
}
.fw-footer__intern:hover {
	color: rgba(255 255 255 / 0.7);
}
.fw-footer__intern svg {
	width: 0.75rem;
	height: 0.75rem;
	vertical-align: -1px;
	margin-right: 0.25rem;
}

/* =========================================================================
   Header: Intern-Link für eingeloggte User
   Wird via render_block_core/html-Filter (frontend-login.php) eingefügt.
   ========================================================================= */
.fw-menu > li.fw-menu__intern {
	margin-left: 0.5rem;
	display: flex;
	align-items: center;
}
.fw-menu > li.fw-menu__intern > a {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.4rem 0.85rem;
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: var(--fw-r-sm, 0.375rem);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.8);
	transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}
.fw-menu > li.fw-menu__intern > a:hover,
.fw-menu > li.fw-menu__intern > a:focus-visible {
	background: rgba(var(--fw-c-primary-rgb, 189 31 26), 0.18);
	border-color: rgba(var(--fw-c-primary-rgb, 189 31 26), 0.55);
	color: #fff;
}
.fw-menu__intern-icon {
	flex: 0 0 auto;
}

/* Hover-Pfeil — der Pillen-Button hat keinen ▾, deshalb muss das Submenu
   trotzdem clean öffnen. Submenu erbt vom .fw-submenu-Style des Themes. */
.fw-menu > li.fw-menu__intern > .fw-submenu {
	min-width: 11rem;
}
.fw-submenu .fw-submenu__logout {
	color: rgb(var(--fw-c-primary-rgb, 189 31 26)) !important;
	font-weight: 600;
	border-top: 1px solid rgba(0, 0, 0, 0.06);
}
.fw-submenu .fw-submenu__logout:hover {
	background: rgba(var(--fw-c-primary-rgb, 189 31 26) / 0.08);
}

/* Mobile-Variante */
.fw-mobile-menu__intern {
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
}
.fw-mobile-menu__intern .fw-mobile-menu__row > a {
	display: inline-flex !important;
	align-items: center;
	gap: 0.5rem;
	color: rgba(255, 255, 255, 0.85) !important;
}

/* =========================================================================
   Intern-Editor (/intern/einsaetze/* + /intern/fahrzeuge/*)
   ========================================================================= */
.fw-intern-main:has(.fw-editor) {
	max-width: 1180px;
}
.fw-editor {
	padding: 1rem 0 4rem;
}
.fw-editor__crumbs {
	font-size: 0.8125rem;
	color: rgba(0, 0, 0, 0.55);
	margin-bottom: 1.25rem;
}
.fw-editor__crumbs a {
	color: rgba(var(--fw-c-primary-rgb, 189 31 26), 0.85);
	text-decoration: none;
}
.fw-editor__crumbs a:hover { text-decoration: underline; }
.fw-editor__crumbs-sep {
	margin: 0 0.4rem;
	color: rgba(0, 0, 0, 0.3);
}
.fw-editor__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.5rem;
	flex-wrap: wrap;
	margin-bottom: 1.5rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}
.fw-editor__head h1 {
	font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem);
	margin: 0;
	line-height: 1.2;
}
.fw-editor__count {
	margin: 0.4rem 0 0;
	font-size: 0.875rem;
	color: rgba(0, 0, 0, 0.55);
}

/* --- Filter-Leiste --- */
.fw-editor__filter {
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
	align-items: flex-end;
	background: rgba(var(--fw-c-mute-rgb, 245 244 240), 0.6);
	padding: 1rem 1.25rem;
	border-radius: var(--fw-r-md, 0.5rem);
	margin-bottom: 1.5rem;
}
.fw-editor__filter-field {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	flex: 1 1 12rem;
	min-width: 0;
}
.fw-editor__filter-field > span {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: rgba(0, 0, 0, 0.6);
}
.fw-editor__filter-field input,
.fw-editor__filter-field select {
	padding: 0.6rem 0.8rem;
	border: 1px solid rgba(0, 0, 0, 0.15);
	border-radius: var(--fw-r-sm, 0.375rem);
	font-size: 0.95rem;
	background: #fff;
}
.fw-editor__filter-reset {
	font-size: 0.8125rem;
	color: rgba(0, 0, 0, 0.55);
	align-self: center;
}

/* --- Tabelle --- */
.fw-editor__table-wrap {
	overflow-x: auto;
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: var(--fw-r-md, 0.5rem);
	background: #fff;
}
.fw-editor__table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
}
.fw-editor__table thead {
	background: rgba(var(--fw-c-mute-rgb, 245 244 240), 0.7);
}
.fw-editor__table th {
	text-align: left;
	font-size: 0.75rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	font-weight: 700;
	color: rgba(0, 0, 0, 0.6);
	padding: 0.85rem 1rem;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
	white-space: nowrap;
}
.fw-editor__table td {
	padding: 0.9rem 1rem;
	vertical-align: top;
	border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}
/* Kein Row-Hover, kein Tap-Highlight — User-Feedback: rosa Schimmer
   (Mobile-Browser-Default für -webkit-tap-highlight-color) wirkt unruhig. */
.fw-editor__table,
.fw-editor__table tbody,
.fw-editor__table thead,
.fw-editor__table tr,
.fw-editor__table th,
.fw-editor__table td,
.fw-editor__table td::before,
.fw-editor__table td::after,
.fw-editor__table a,
.fw-editor__table .fw-pill,
.fw-editor__action,
.fw-form__chip,
.fw-form__chip > span {
	-webkit-tap-highlight-color: transparent;
}
.fw-editor__table tbody tr:last-child td {
	border-bottom: 0;
}
.fw-editor__col-num {
	font-variant-numeric: tabular-nums;
	color: rgba(0, 0, 0, 0.6);
	white-space: nowrap;
}
.fw-editor__col-actions {
	white-space: nowrap;
	text-align: right;
}
.fw-editor__title {
	font-weight: 600;
	color: #161616;
	text-decoration: none;
}
.fw-editor__title:hover {
	color: rgb(var(--fw-c-primary-rgb, 189 31 26));
	text-decoration: underline;
}
.fw-editor__action {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	padding: 0.4rem 0.85rem;
	margin-left: 0.4rem;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	color: #BD1F1A;
	color: rgb(var(--fw-c-primary-rgb, 189 31 26));
	background: #fff;
	text-decoration: none;
	border: 1px solid rgba(189, 31, 26, 0.35);
	border-radius: var(--fw-r-sm, 0.375rem);
	transition: background 0.15s, color 0.15s, border-color 0.15s;
	white-space: nowrap;
}
.fw-editor__action:first-child { margin-left: 0; }
.fw-editor__action:hover,
.fw-editor__action:focus-visible {
	background: #BD1F1A;
	background: rgb(var(--fw-c-primary-rgb, 189 31 26));
	border-color: #BD1F1A;
	border-color: rgb(var(--fw-c-primary-rgb, 189 31 26));
	color: #fff !important;
	text-decoration: none;
	outline: none;
}
.fw-editor__action--danger {
	color: #8C1914;
	border-color: rgba(140, 25, 20, 0.35);
	background: #fff;
}
.fw-editor__action--danger:hover,
.fw-editor__action--danger:focus-visible {
	background: #8C1914;
	border-color: #8C1914;
	color: #fff !important;
}

/* --- Pillen / Status-Marker --- */
.fw-pill {
	display: inline-block;
	padding: 0.18rem 0.55rem;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.08);
	color: rgba(0, 0, 0, 0.7);
}
.fw-pill--green { background: rgba(34, 139, 34, 0.12); color: rgb(28, 105, 28); }
.fw-pill--gold  { background: rgba(var(--fw-c-gold-rgb, 201 161 76), 0.18); color: rgb(120, 90, 30); }
.fw-pill--blue  { background: rgba(30, 120, 200, 0.12); color: rgb(30, 90, 160); }
.fw-pill--red   { background: rgba(var(--fw-c-primary-rgb, 189 31 26), 0.12); color: rgb(var(--fw-c-primary-rgb, 189 31 26)); }
.fw-pill--gray  { /* default */ }

/* --- Empty / Notices --- */
.fw-editor__empty {
	padding: 3rem 1.5rem;
	text-align: center;
	color: rgba(0, 0, 0, 0.55);
	background: #fff;
	border: 1px dashed rgba(0, 0, 0, 0.1);
	border-radius: var(--fw-r-md, 0.5rem);
}
.fw-editor__notices {
	margin-bottom: 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.fw-editor__notice {
	padding: 0.85rem 1.1rem;
	border-radius: var(--fw-r-sm, 0.375rem);
	font-size: 0.9375rem;
	border-left: 3px solid;
}
.fw-editor__notice--error {
	background: rgba(var(--fw-c-primary-rgb, 189 31 26), 0.08);
	border-color: rgb(var(--fw-c-primary-rgb, 189 31 26));
	color: rgb(var(--fw-c-primary-rgb, 189 31 26));
}
.fw-editor__notice--success {
	background: rgba(34, 139, 34, 0.08);
	border-color: rgb(34, 139, 34);
	color: rgb(28, 95, 28);
}
.fw-editor__notice--warn {
	background: rgba(var(--fw-c-gold-rgb, 201 161 76) / 0.12);
	border-color: rgb(var(--fw-c-gold-rgb, 201 161 76));
	color: rgb(120, 88, 28);
}

/* --- Pagination --- */
.fw-editor__pagination {
	margin-top: 1.5rem;
	display: flex;
	gap: 1rem;
	align-items: center;
	justify-content: center;
	font-size: 0.875rem;
}
.fw-editor__pagination a {
	padding: 0.45rem 0.9rem;
	border: 1px solid rgba(0, 0, 0, 0.12);
	border-radius: var(--fw-r-sm, 0.375rem);
	color: #161616;
	text-decoration: none;
}
.fw-editor__pagination a:hover {
	border-color: rgba(var(--fw-c-primary-rgb, 189 31 26), 0.6);
	color: rgb(var(--fw-c-primary-rgb, 189 31 26));
}
.fw-editor__pagination-info {
	color: rgba(0, 0, 0, 0.55);
}

/* --- Sortierbare Tabelle (Fahrzeuge) --- */
.fw-editor__hint {
	margin: 0 0 0.85rem;
	font-size: 0.875rem;
	color: rgba(0, 0, 0, 0.6);
	background: rgba(var(--fw-c-mute-rgb, 245 244 240), 0.6);
	padding: 0.6rem 0.9rem;
	border-radius: var(--fw-r-sm, 0.375rem);
	border-left: 3px solid rgb(var(--fw-c-primary-rgb, 189 31 26));
}
.fw-editor__col-handle {
	width: 90px;
	white-space: nowrap;
	display: inline-flex !important;
	align-items: center;
	gap: 0.25rem;
	color: rgba(0, 0, 0, 0.5);
}
.fw-editor__drag-handle {
	cursor: grab;
	font-size: 1.1rem;
	line-height: 1;
	padding: 0.2rem 0.35rem;
	user-select: none;
	color: rgba(0, 0, 0, 0.4);
}
.fw-editor__drag-handle:hover {
	color: rgb(var(--fw-c-primary-rgb, 189 31 26));
}
.fw-editor__sort-btn {
	border: 1px solid rgba(0, 0, 0, 0.15);
	background: #fff;
	width: 26px;
	height: 26px;
	border-radius: var(--fw-r-sm, 0.375rem);
	font-size: 0.65rem;
	cursor: pointer;
	color: rgba(0, 0, 0, 0.6);
	padding: 0;
	line-height: 1;
	transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.fw-editor__sort-btn:hover {
	background: rgb(var(--fw-c-primary-rgb, 189 31 26));
	color: #fff;
	border-color: rgb(var(--fw-c-primary-rgb, 189 31 26));
}
.fw-editor__table--sortable tr[draggable] {
	cursor: default;
}
.fw-editor__table--sortable tr.is-dragging {
	opacity: 0.4;
}
.fw-editor__table--sortable tr.is-drag-over {
	box-shadow: inset 0 2px 0 rgb(var(--fw-c-primary-rgb, 189 31 26));
}
.fw-editor__sort-status {
	margin-top: 0.6rem;
	font-size: 0.8125rem;
	color: rgb(34, 95, 28);
	min-height: 1.2em;
}
.fw-editor__sort-status.is-error {
	color: rgb(var(--fw-c-primary-rgb, 189 31 26));
}

/* --- Danger-Card (Lösch-Bestätigung) --- */
.fw-editor__danger-card {
	background: rgba(var(--fw-c-primary-rgb, 189 31 26), 0.05);
	border: 1px solid rgba(var(--fw-c-primary-rgb, 189 31 26), 0.2);
	border-radius: var(--fw-r-md, 0.5rem);
	padding: 1.5rem 1.75rem;
}
.fw-editor__danger-card p {
	margin-top: 0;
}
.fw-editor__danger-card form {
	display: flex;
	gap: 0.75rem;
	flex-wrap: wrap;
	margin-top: 1rem;
}

/* =========================================================================
   Form-Komponenten (Editor)
   Selektoren mit body.fw-intern-page-Prefix, um Block-Theme-Defaults
   garantiert zu übersteuern (User-Bug: Form rendert nativ).
   ========================================================================= */
body.fw-intern-page .fw-form {
	background: #fff;
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: var(--fw-r-md, 0.5rem);
	padding: 1.75rem;
}
/* Vertikaler Abstand zwischen Top-Level-Form-Children (Felder, Switch, Aktionen). */
body.fw-intern-page .fw-form > * + * {
	margin-top: 1.25rem;
}
body.fw-intern-page .fw-form__grid {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.25rem 1.5rem;
}
body.fw-intern-page .fw-form__field {
	display: flex !important;
	flex-direction: column !important;
	gap: 0.4rem;
	min-width: 0;
}
body.fw-intern-page .fw-form__field--full {
	grid-column: 1 / -1;
}
.fw-form__label {
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: rgba(0, 0, 0, 0.75);
}
.fw-form__label em {
	color: rgb(var(--fw-c-primary-rgb, 189 31 26));
	font-style: normal;
	font-weight: 700;
	margin-left: 0.15rem;
}
.fw-form__grid--datezeit {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr);
	gap: 1rem;
}
@media (max-width: 720px) {
	.fw-form__grid--datezeit { grid-template-columns: 1fr; }
}

.fw-form__field input[type="text"],
.fw-form__field input[type="search"],
.fw-form__field input[type="number"],
.fw-form__field input[type="datetime-local"],
.fw-form__field input[type="date"],
.fw-form__field input[type="time"],
.fw-form__field input[type="email"],
.fw-form__field input[type="url"],
.fw-form__field input[type="file"],
.fw-form__field select,
.fw-form__field textarea {
	width: 100%;
	padding: 0.65rem 0.85rem;
	border: 1px solid rgba(0, 0, 0, 0.18);
	border-radius: var(--fw-r-sm, 0.375rem);
	font-size: 0.9375rem;
	background: #fff;
	font-family: inherit;
	transition: border-color 0.15s, box-shadow 0.15s;
}
.fw-form__field input:focus,
.fw-form__field select:focus,
.fw-form__field textarea:focus {
	outline: none;
	border-color: rgba(var(--fw-c-primary-rgb, 189 31 26), 0.6);
	box-shadow: 0 0 0 3px rgba(var(--fw-c-primary-rgb, 189 31 26), 0.12);
}
/* Native selects einheitlich mit Chevron-Hintergrund. */
.fw-form__field select,
.fw-editor__filter-field select {
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'><path d='M1 1.5L6 6.5L11 1.5' stroke='%23161616' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");
	background-repeat: no-repeat;
	background-position: right 0.85rem center;
	padding-right: 2.25rem;
	cursor: pointer;
}
.fw-form__field textarea {
	resize: vertical;
	min-height: 5rem;
	font-family: inherit;
	line-height: 1.5;
}
.fw-form__hint {
	margin: 0.3rem 0 0;
	font-size: 0.8125rem;
	color: rgba(0, 0, 0, 0.55);
}
.fw-form__check {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	margin-right: 0.5rem;
	font-size: 0.9375rem;
}
.fw-form__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}
.fw-form__chip {
	display: inline-flex;
	align-items: center;
	cursor: pointer;
	user-select: none;
}
.fw-form__chip > input {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}
.fw-form__chip > span {
	display: inline-block;
	padding: 0.4rem 0.85rem;
	border: 1px solid rgba(0, 0, 0, 0.15);
	border-radius: 999px;
	font-size: 0.875rem;
	background: #fff;
	color: rgba(0, 0, 0, 0.75);
	transition: background 0.15s, border-color 0.15s, color 0.15s;
}
/* Hover bei Chips bewusst dezent — User-Feedback: aktiver State ist klar
   genug, Hover-Boost wirkt unruhig. */
.fw-form__chip > input:checked + span {
	background: #BD1F1A;
	background: rgb(var(--fw-c-primary-rgb, 189 31 26));
	border-color: #BD1F1A;
	border-color: rgb(var(--fw-c-primary-rgb, 189 31 26));
	color: #fff;
}
.fw-form__chip > input:focus-visible + span {
	box-shadow: 0 0 0 3px rgba(var(--fw-c-primary-rgb, 189 31 26), 0.25);
}
.fw-form__chip--inactive > span {
	background: rgba(0, 0, 0, 0.04);
	color: rgba(0, 0, 0, 0.55);
	border-style: dashed;
}
.fw-form__chip--inactive > span em {
	font-style: italic;
	font-size: 0.75rem;
	margin-left: 0.25rem;
	opacity: 0.8;
}

/* Chip-Suche (Filter-Eingabe über der Chip-Liste) + Scroll-Wrapper */
.fw-form__chip-filter {
	width: 100%;
	margin-bottom: 0.6rem;
	padding: 0.55rem 0.85rem;
	border: 1px solid rgba(0, 0, 0, 0.18);
	border-radius: var(--fw-r-sm, 0.375rem);
	font-size: 0.9375rem;
	background: #fff;
}
.fw-form__chip-filter:focus {
	outline: none;
	border-color: rgba(var(--fw-c-primary-rgb, 189 31 26), 0.6);
	box-shadow: 0 0 0 3px rgba(var(--fw-c-primary-rgb, 189 31 26), 0.12);
}
.fw-form__chips--scroll {
	max-height: 14rem;
	overflow-y: auto;
	padding: 0.5rem;
	background: rgba(var(--fw-c-mute-rgb, 245 244 240), 0.4);
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: var(--fw-r-sm, 0.375rem);
	align-content: flex-start;
}
.fw-form__chip-new {
	display: block;
	margin-top: 0.85rem;
}
.fw-form__chip-new input {
	width: 100%;
	margin-top: 0.3rem;
}

/* =========================================================================
   Dropzone (Image Upload mit Drag&Drop + Vorschau)
   ========================================================================= */
.fw-dropzone {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
}
.fw-dropzone__current {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	padding: 0.85rem;
	background: rgba(var(--fw-c-mute-rgb, 245 244 240), 0.55);
	border-radius: var(--fw-r-sm, 0.375rem);
	border: 1px solid rgba(0, 0, 0, 0.06);
}
.fw-dropzone__current img {
	width: 200px;
	max-width: 40%;
	height: auto;
	border-radius: var(--fw-r-sm, 0.375rem);
}
.fw-dropzone__remove {
	margin: 0;
}
.fw-dropzone__zone {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	padding: 2.25rem 1.5rem;
	border: 2px dashed rgba(0, 0, 0, 0.18);
	border-radius: var(--fw-r-md, 0.5rem);
	background: rgba(var(--fw-c-mute-rgb, 245 244 240), 0.35);
	color: rgba(0, 0, 0, 0.65);
	text-align: center;
	cursor: pointer;
	transition: background 0.18s, border-color 0.18s, color 0.18s;
}
.fw-dropzone__zone:hover,
.fw-dropzone__zone:focus-within {
	background: rgba(var(--fw-c-primary-rgb, 189 31 26), 0.06);
	border-color: rgba(var(--fw-c-primary-rgb, 189 31 26), 0.55);
	color: rgb(var(--fw-c-primary-rgb, 189 31 26));
}
.fw-dropzone__zone.is-dragging {
	background: rgba(var(--fw-c-primary-rgb, 189 31 26), 0.12);
	border-color: rgb(var(--fw-c-primary-rgb, 189 31 26));
	color: rgb(var(--fw-c-primary-rgb, 189 31 26));
	transform: scale(1.01);
}
.fw-dropzone__zone input[type="file"] {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	cursor: pointer;
}
.fw-dropzone__icon {
	color: rgba(var(--fw-c-primary-rgb, 189 31 26), 0.55);
}
.fw-dropzone__text {
	font-size: 0.95rem;
	line-height: 1.4;
}
.fw-dropzone__text strong {
	font-weight: 700;
	color: #161616;
}
.fw-dropzone__text span {
	color: rgb(var(--fw-c-primary-rgb, 189 31 26));
	font-weight: 600;
	text-decoration: underline;
}
.fw-dropzone__text small {
	display: block;
	margin-top: 0.4rem;
	font-size: 0.75rem;
	color: rgba(0, 0, 0, 0.5);
}
.fw-dropzone__preview {
	position: relative;
	margin-top: 0.5rem;
}
.fw-dropzone__preview img {
	max-width: 280px;
	max-height: 180px;
	height: auto;
	border-radius: var(--fw-r-sm, 0.375rem);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}
.fw-dropzone__clear {
	position: absolute;
	top: 0.4rem;
	right: 0.4rem;
	width: 28px;
	height: 28px;
	border: 0;
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.7);
	color: #fff;
	font-size: 1.2rem;
	line-height: 1;
	cursor: pointer;
	transition: background 0.15s;
}
.fw-dropzone__clear:hover {
	background: rgb(var(--fw-c-primary-rgb, 189 31 26));
}
.fw-dropzone__zone.is-filled .fw-dropzone__icon,
.fw-dropzone__zone.is-filled .fw-dropzone__text {
	display: none;
}
.fw-form__thumb-current {
	margin-bottom: 0.75rem;
	display: inline-flex;
	flex-direction: column;
	gap: 0.5rem;
	align-items: flex-start;
	padding: 0.75rem;
	background: rgba(var(--fw-c-mute-rgb, 245 244 240), 0.5);
	border-radius: var(--fw-r-sm, 0.375rem);
}
.fw-form__thumb-current img {
	max-width: 240px;
	height: auto;
	border-radius: var(--fw-r-sm, 0.375rem);
}
.fw-form__actions {
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid rgba(0, 0, 0, 0.08);
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: center;
}
.fw-form__actions .fw-btn--danger-ghost {
	margin-left: auto;
}

/* Buttons (falls noch nicht zentral definiert — ergänzend) */
.fw-btn--danger {
	display: inline-block;
	padding: 0.7rem 1.2rem;
	background: rgb(var(--fw-c-primary-rgb, 189 31 26));
	color: #fff;
	border: 1px solid rgb(var(--fw-c-primary-rgb, 189 31 26));
	border-radius: var(--fw-r-sm, 0.375rem);
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.15s;
}
.fw-btn--danger:hover {
	background: rgba(150, 25, 20, 1);
}
.fw-btn--danger-ghost {
	display: inline-block;
	padding: 0.7rem 1.2rem;
	background: transparent;
	color: rgb(var(--fw-c-primary-rgb, 189 31 26));
	border: 1px solid rgba(var(--fw-c-primary-rgb, 189 31 26), 0.4);
	border-radius: var(--fw-r-sm, 0.375rem);
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.15s;
}
.fw-btn--danger-ghost:hover {
	background: rgba(var(--fw-c-primary-rgb, 189 31 26), 0.08);
}

/* ============================================================
 *  Hero-Verwaltung im Cockpit
 *  Bilder-Sektion (nutzt fw-gallery, --hero unterdrückt das
 *  „Beitragsbild"-Label) + Slogan-Sektion mit Add/Sort/Delete.
 * ============================================================ */
.fw-form__section {
	margin-top: 2rem;
	padding: 1.5rem;
	background: #fff;
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: var(--fw-r-md, 0.5rem);
}
.fw-form__section-title {
	margin: 0 0 0.5rem;
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: -0.005em;
}
.fw-form__section .fw-form__hint {
	margin-top: 0;
	margin-bottom: 1.25rem;
}

/* Hero-Variante der Galerie:
   - 16:9 statt 4:3 (entspricht der echten Hero-Geometrie)
   - kein „Beitragsbild"-Label am ersten Item
   - kein Roter Rand am ersten Item */
body.fw-intern-page .fw-gallery--hero .fw-gallery__item {
	aspect-ratio: 16 / 9;
}
body.fw-intern-page .fw-gallery--hero .fw-gallery__list .fw-gallery__item:first-child {
	box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);
}
body.fw-intern-page .fw-gallery--hero .fw-gallery__list .fw-gallery__item:first-child::after {
	content: none;
}

.fw-slogans {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}
.fw-slogan {
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: 0.75rem;
	align-items: stretch;
	padding: 0.85rem;
	background: rgba(var(--fw-c-mute-rgb, 245 244 240) / 0.55);
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: var(--fw-r-sm, 0.375rem);
}
.fw-slogan__handle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 1.5rem;
	color: rgba(0, 0, 0, 0.45);
	font-size: 1.1rem;
	cursor: grab;
	user-select: none;
}
.fw-slogan__fields {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
	gap: 0.75rem;
	min-width: 0;
}
.fw-slogan__fields .fw-form__field {
	margin: 0;
}
.fw-slogan__actions {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	justify-content: center;
}
.fw-slogan__btn {
	width: 1.85rem;
	height: 1.85rem;
	border: 1px solid rgba(0, 0, 0, 0.15);
	background: #fff;
	border-radius: 0.25rem;
	cursor: pointer;
	font-size: 0.75rem;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgba(0, 0, 0, 0.6);
	transition: background 0.12s, color 0.12s, border-color 0.12s;
}
.fw-slogan__btn:hover {
	background: rgb(var(--fw-c-primary-rgb, 189 31 26));
	color: #fff;
	border-color: rgb(var(--fw-c-primary-rgb, 189 31 26));
}
.fw-slogan__btn--del:hover {
	background: #8c1914;
	border-color: #8c1914;
}
.fw-hero-editor__slogan-add {
	margin-top: 1rem;
}
.fw-hero-editor__slogans .fw-form__actions {
	margin-top: 1.25rem;
	border-top: 1px solid rgba(0, 0, 0, 0.06);
	padding-top: 1.25rem;
}

@media (max-width: 768px) {
	.fw-slogan {
		grid-template-columns: auto 1fr;
		grid-template-rows: auto auto;
	}
	.fw-slogan__fields {
		grid-template-columns: 1fr;
		grid-column: 1 / -1;
	}
	.fw-slogan__actions {
		grid-column: 1 / -1;
		flex-direction: row;
		justify-content: flex-end;
	}
}

/* Mobile-Anpassungen — Tabelle wird in Card-Stack umgebaut,
   Form-Grid kollabiert auf eine Spalte. */
@media (max-width: 768px) {
	.fw-form__grid {
		grid-template-columns: 1fr;
	}
	.fw-form {
		padding: 1.25rem;
	}
	.fw-editor__head {
		gap: 0.75rem;
	}
	.fw-form__actions .fw-btn--danger-ghost {
		margin-left: 0;
	}

	/* Tabelle → kompakte Cards */
	.fw-editor__table-wrap {
		overflow-x: visible;
		border: 0;
		background: transparent;
		border-radius: 0;
	}
	.fw-editor__table,
	.fw-editor__table thead,
	.fw-editor__table tbody,
	.fw-editor__table tr,
	.fw-editor__table td {
		display: block;
		width: 100%;
	}
	.fw-editor__table thead {
		display: none;
	}
	.fw-editor__table tr {
		background: #fff;
		border: 1px solid rgba(0, 0, 0, 0.08);
		border-radius: var(--fw-r-md, 0.5rem);
		padding: 0.7rem 0.85rem 0.55rem;
		margin-bottom: 0.5rem;
	}
	.fw-editor__table tbody tr:hover {
		background: #fff;
	}
	.fw-editor__table td {
		padding: 0;
		border: 0;
		font-size: 0.85rem;
		line-height: 1.6;            /* etwas mehr, damit Pillen + Text vertikal harmonieren */
		display: inline;             /* Meta-Felder fließen in einer Zeile */
		color: rgba(0, 0, 0, 0.7);
		vertical-align: middle;
	}
	.fw-editor__table td .fw-pill,
	.fw-editor__table td::before {
		vertical-align: middle;
	}
	.fw-editor__table td::before {
		content: attr(data-label) ":\00a0";
		font-size: 0.7rem;
		font-weight: 700;
		letter-spacing: 0.04em;
		text-transform: uppercase;
		color: rgba(0, 0, 0, 0.45);
	}
	/* Trenner zwischen Meta-Feldern */
	.fw-editor__table td + td:not(.fw-editor__col-actions)::after {
		content: " · ";
		color: rgba(0, 0, 0, 0.25);
		margin: 0 0.15rem;
	}
	/* Title-Cell prominenter, eigene Zeile */
	.fw-editor__table td:has(.fw-editor__title) {
		display: block;
		margin-bottom: 0.35rem;
	}
	.fw-editor__table td:has(.fw-editor__title)::before {
		display: none;
	}
	.fw-editor__title {
		font-size: 1rem;
		font-weight: 700;
		display: inline-block;
	}
	/* Nr.-Cell als kleines Pre-Label vor dem Titel */
	.fw-editor__col-num {
		display: inline-block !important;
		font-size: 0.7rem !important;
		font-weight: 700;
		letter-spacing: 0.04em;
		color: rgb(var(--fw-c-primary-rgb, 189 31 26)) !important;
		margin-right: 0.4rem;
	}
	.fw-editor__col-num::before {
		display: none;
	}
	/* Sort-Handle-Strip auf Mobile ganz oben in der Card */
	.fw-editor__col-handle {
		display: flex !important;
		justify-content: space-between;
		align-items: center;
		width: 100%;
		margin-bottom: 0.4rem;
		padding-bottom: 0.4rem;
		border-bottom: 1px solid rgba(0, 0, 0, 0.06);
	}
	.fw-editor__col-handle::before,
	.fw-editor__col-handle::after {
		display: none !important;
	}
	.fw-editor__sort-btn {
		width: 32px;
		height: 32px;
		font-size: 0.75rem;
	}
	.fw-editor__col-actions {
		display: flex !important;
		gap: 0.4rem;
		flex-wrap: wrap;
		padding-top: 0.55rem !important;
		margin-top: 0.5rem;
		border-top: 1px solid rgba(0, 0, 0, 0.06) !important;
	}
	.fw-editor__col-actions::before,
	.fw-editor__col-actions::after {
		display: none !important;
	}
	.fw-editor__action {
		flex: 1 1 auto;
		justify-content: center;
		padding: 0.5rem 0.7rem;
		font-size: 0.8125rem;
		margin-left: 0;
	}
	/* Filter-Leiste lesbarer */
	.fw-editor__filter-field {
		flex: 1 1 100%;
	}
}

/* =========================================================================
   Datenschutz-Banner (einmaliger Consent)
   ========================================================================= */
.fw-consent {
	position: fixed;
	left: 1rem;
	right: 1rem;
	bottom: 1rem;
	max-width: 520px;
	margin: 0 auto;
	background: #161616;
	color: rgba(255, 255, 255, 0.92);
	border-radius: var(--fw-r-md, 0.5rem);
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
	z-index: 9000;
	font-size: 0.9375rem;
	animation: fw-consent-up 0.3s ease-out;
}
@keyframes fw-consent-up {
	from { transform: translateY(120%); opacity: 0; }
	to   { transform: translateY(0);     opacity: 1; }
}
.fw-consent__inner {
	padding: 1.25rem 1.4rem 1.1rem;
}
.fw-consent__title {
	margin: 0 0 0.5rem;
	font-size: 1.0625rem;
	font-weight: 700;
	color: #fff;
	letter-spacing: 0.01em;
}
.fw-consent__text {
	margin: 0 0 1rem;
	font-size: 0.875rem;
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.82);
}
.fw-consent__text strong {
	color: #fff;
}
.fw-consent__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-bottom: 0.75rem;
}
.fw-consent__options {
	border: 1px solid rgba(255,255,255,.25);
	margin: 1rem 0;
	padding: .75rem 1rem;
	display: flex;
	gap: .8rem 1.2rem;
	flex-wrap: wrap;
	color: rgba(255,255,255,.9);
}
.fw-consent__options legend { font-weight: 700; padding: 0 .35rem; }
.fw-consent__options label { font-size: .9rem; }
.fw-consent__btn {
	flex: 1 1 auto;
	min-width: 10rem;
	padding: 0.6rem 1rem;
	border-radius: var(--fw-r-sm, 0.375rem);
	font-size: 0.875rem;
	font-weight: 600;
	cursor: pointer;
	border: 1px solid transparent;
	font-family: inherit;
	transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.fw-consent__btn--primary {
	background: rgb(var(--fw-c-primary-rgb, 189 31 26));
	color: #fff;
	border-color: rgb(var(--fw-c-primary-rgb, 189 31 26));
}
.fw-consent__btn--primary:hover {
	background: #8C1914;
	border-color: #8C1914;
}
.fw-consent__btn--ghost {
	background: transparent;
	color: rgba(255, 255, 255, 0.85);
	border-color: rgba(255, 255, 255, 0.25);
}
.fw-consent__btn--ghost:hover {
	background: rgba(255, 255, 255, 0.08);
	border-color: rgba(255, 255, 255, 0.5);
	color: #fff;
}
.fw-consent__legal {
	margin: 0;
	font-size: 0.75rem;
	color: rgba(255, 255, 255, 0.6);
	line-height: 1.5;
}
.fw-consent__legal a {
	color: rgba(255, 255, 255, 0.85);
	text-decoration: underline;
}
@media (max-width: 560px) {
	.fw-consent__btn { flex: 1 1 100%; }
}

/* =========================================================================
   Click-to-Load (DSGVO) — generischer Wrapper für externe Embeds
   ========================================================================= */
.fw-ctl {
	position: relative;
}
.fw-ctl__placeholder {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	padding: 1.5rem 1.5rem 1.25rem;
	background: rgba(var(--fw-c-mute-rgb, 245 244 240) / 0.6);
	border: 1px dashed rgba(0, 0, 0, 0.18);
	border-radius: var(--fw-r-md, 0.5rem);
	color: rgba(0, 0, 0, 0.75);
}
.fw-ctl__head {
	display: flex;
	align-items: center;
	gap: 0.6rem;
}
.fw-ctl__icon {
	flex: 0 0 auto;
	color: rgb(var(--fw-c-primary-rgb, 189 31 26));
}
.fw-ctl__title {
	margin: 0;
	font-size: 1.0625rem;
	font-weight: 700;
	color: #161616;
	line-height: 1.3;
}
.fw-ctl__desc {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.5;
	color: rgba(0, 0, 0, 0.7);
}
.fw-ctl__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
	align-items: center;
}
.fw-ctl__btn {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.6rem 1.1rem;
	background: rgb(var(--fw-c-primary-rgb, 189 31 26));
	color: #fff;
	border: 0;
	border-radius: var(--fw-r-sm, 0.375rem);
	font-size: 0.9375rem;
	font-weight: 600;
	cursor: pointer;
	font-family: inherit;
	transition: background 0.15s;
}
.fw-ctl__btn:hover {
	background: #8C1914;
}
.fw-ctl__remember {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.8125rem;
	color: rgba(0, 0, 0, 0.6);
	cursor: pointer;
	user-select: none;
}
.fw-ctl__legal {
	margin: 0;
	font-size: 0.75rem;
	color: rgba(0, 0, 0, 0.55);
	line-height: 1.5;
}
.fw-ctl__legal a {
	color: rgb(var(--fw-c-primary-rgb, 189 31 26));
}
.fw-ctl__slot:empty {
	display: none;
}
/* [hidden] muss display:flex (vom .fw-ctl__placeholder) übersteuern,
   sonst bleibt der Placeholder nach Click sichtbar. */
.fw-ctl__placeholder[hidden] {
	display: none !important;
}
.fw-consent[hidden] {
	display: none !important;
}
/* =========================================================================
   Instagram-Feed (Eigenbau, ersetzt Smash Balloon)
   ========================================================================= */
.fw-ig {
	display: block;
}
.fw-ig__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(var(--fw-ig-cols, 4), 1fr);
	gap: 0.4rem;
}
.fw-ig__item {
	margin: 0;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: var(--fw-r-sm, 0.375rem);
	background: rgba(0, 0, 0, 0.04);
}
.fw-ig__link {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
}
.fw-ig__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s ease;
}
.fw-ig__link:hover .fw-ig__img {
	transform: scale(1.04);
}
.fw-ig__play {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 2.5rem;
	height: 2.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(0, 0, 0, 0.6);
	color: #fff;
	border-radius: 50%;
	font-size: 1rem;
	pointer-events: none;
}
.fw-ig__follow {
	margin: 1rem 0 0;
	text-align: center;
	font-size: 0.9375rem;
}
.fw-ig__follow a {
	color: rgb(var(--fw-c-primary-rgb, 189 31 26));
	font-weight: 600;
	text-decoration: none;
}
.fw-ig__follow a:hover {
	text-decoration: underline;
}
.fw-ig-empty {
	color: rgba(0, 0, 0, 0.55);
	font-style: italic;
}
@media (max-width: 600px) {
	.fw-ig__grid {
		grid-template-columns: repeat(min(var(--fw-ig-cols, 4), 3), 1fr);
	}
}

/* =========================================================================
   Print
   ========================================================================= */
@media print {
	.fw-header, .fw-mobile-overlay, .fw-footer, .fw-cta-band { display: none; }
}
