/* ==========================================================================
   FFW Beilstein – Designsystem
   Eine Datei für WordPress-Vorlagen und HTML-Mockups.

   Farben nach RAL, wie an den Fahrzeugen:
   RAL 3000 Feuerrot (nur Akzent), RAL 7016 Anthrazitgrau, RAL 9005 Tiefschwarz
   ========================================================================== */

@font-face {
  font-family: "Barlow Condensed";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/barlow-condensed-600.woff2") format("woff2");
}
@font-face {
  font-family: "Barlow Condensed";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/barlow-condensed-700.woff2") format("woff2");
}
@font-face {
  font-family: "Source Sans 3";
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url("../fonts/source-sans-3-var.woff2") format("woff2");
}

:root {
  --ffb-rot: #AF2B1E;
  --ffb-rot-dunkel: #8E2217;
  --ffb-anthrazit: #383E42;
  --ffb-anthrazit-2: #2F3437;
  --ffb-schwarz: #0A0A0A;
  --ffb-hell: #F1F1EE;
  --ffb-weiss: #FFFFFF;
  --ffb-text: #1F2326;
  --ffb-text-2: #555C61;
  --ffb-text-dunkel-2: #C9CDD0;
  --ffb-linie: #D9DBD8;
  --ffb-linie-dunkel: rgba(255, 255, 255, .18);

  --ffb-font-head: "Barlow Condensed", "Arial Narrow", Arial, sans-serif;
  --ffb-font-text: "Source Sans 3", "Source Sans Pro", Arial, sans-serif;

  --ffb-breite: 1280px;
  --ffb-rand: clamp(20px, 4vw, 50px);
  --ffb-abstand: clamp(48px, 3.5vw + 34px, 96px);
  --ffb-header-hoehe: 76px;
  --ffb-burg-hoehe: clamp(64px, 9vw, 150px);
  /* Silhouette Burg Hohenbeilstein, exakt aus dem Logo der Wehr übernommen. Eigene Silhouette: in der Mediathek
     ein PNG mit dem Dateinamen burg-silhouette hochladen (schwarz auf transparent). */
  --ffb-burg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2400 160'%3E%3Cpath d='M0 160 L0 156 C392 153 834 104.6 981.7 104.6 L981.7 160 Z'/%3E%3Cpath d='M981.2 104.6 L987.6 101.0 L1005.4 97.4 L1022.9 98.9 L1034.9 94.7 L1034.9 75.7 L1046.6 55.7 L1061.1 75.9 L1064.2 75.9 L1066.9 79.0 L1071.7 75.8 L1074.2 79.0 L1078.6 76.5 L1083.4 79.0 L1088.7 73.8 L1099.0 55.5 L1110.1 74.5 L1110.1 81.8 L1120.4 85.4 L1129.0 85.4 L1131.0 82.8 L1132.7 72.1 L1137.1 65.4 L1139.9 63.7 L1148.0 63.7 L1148.0 36.7 L1161.1 28.0 L1173.9 37.6 L1173.9 62.9 L1175.8 64.0 L1179.2 62.5 L1181.7 64.5 L1184.7 62.5 L1188.1 65.6 L1188.1 62.9 L1191.4 62.9 L1196.4 70.7 L1199.2 80.8 L1236.5 80.8 L1243.5 85.0 L1246.0 88.7 L1249.1 90.1 L1253.0 88.3 L1262.2 88.3 L1262.2 100.5 L1267.7 103.2 L1274.1 110.0 L1279.4 111.8 L1285.5 105.9 L1288.6 110.6 L1288.6 116.7 L1300.3 116.7 L1309.5 121.1 L1314.2 125.3 L1320.1 118.6 L1353.5 115.2 L1364.4 89.2 L1378.8 121.2 L1378.8 134.4 L1388.0 135.5 L1393.6 138.1 L1418.7 159.2 L1418.7 160 L981.2 160 Z'/%3E%3Cpath d='M1418.2 160 L1418.2 159.2 C1615 159.2 2007 155 2400 156 L2400 160 Z'/%3E%3C/svg%3E");
}

/* ---------- Grundlage ---------- */
.ffb-page,
.ffb-page *,
.ffb-page *::before,
.ffb-page *::after { box-sizing: border-box; }

.ffb-page {
  margin: 0;
  background: var(--ffb-weiss);
  color: var(--ffb-text);
  font-family: var(--ffb-font-text);
  font-size: 1.0625rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.ffb-page h1,
.ffb-page h2,
.ffb-page h3 {
  margin: 0;
  color: inherit;
  font-family: var(--ffb-font-head);
  letter-spacing: 0;
  text-transform: none;
}
.ffb-page p { margin: 0; }
.ffb-page a { color: inherit; }
.ffb-page ul,
.ffb-page ol { margin: 0; padding: 0; list-style: none; }
.ffb-page figure { margin: 0; }
.ffb-page img { display: block; max-width: 100%; height: auto; border: 0; border-radius: 0; }
.ffb-page a:focus-visible,
.ffb-page button:focus-visible { outline: 3px solid currentColor; outline-offset: 3px; }

.ffb-sr {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.ffb-skip {
  position: absolute;
  left: 12px;
  top: -100px;
  z-index: 1000;
  padding: 12px 16px;
  background: var(--ffb-weiss);
  color: var(--ffb-text);
  font-weight: 600;
}
.ffb-skip:focus { top: 12px; }

.ffb-container {
  width: 100%;
  max-width: calc(var(--ffb-breite) + 2 * var(--ffb-rand));
  margin: 0 auto;
  padding: 0 var(--ffb-rand);
}
.ffb-section { position: relative; }
.ffb-wrap { padding-top: var(--ffb-abstand); padding-bottom: var(--ffb-abstand); }

/* ---------- Bausteine ---------- */
.ffb-page .ffb-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px 24px;
  margin-bottom: clamp(24px, 2.5vw, 40px);
}
.ffb-page .ffb-h2 {
  font-size: clamp(2rem, 1.4rem + 2vw, 3rem);
  font-weight: 700;
  line-height: 1.02;
}
.ffb-page .ffb-more {
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: var(--ffb-rot);
  text-decoration-thickness: 2px;
  text-underline-offset: 6px;
}
.ffb-page .ffb-more:hover { text-decoration-thickness: 3px; }

.ffb-page .ffb-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.ffb-page .ffb-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 0 30px;
  border: 2px solid transparent;
  border-radius: 2px;
  font-family: var(--ffb-font-head);
  font-size: 1.3125rem;
  font-weight: 600;
  letter-spacing: .01em;
  line-height: 1;
  text-decoration: none;
  transition: background-color .15s, color .15s, border-color .15s;
}
.ffb-page .ffb-btn--primary { background: var(--ffb-rot); color: #fff; }
.ffb-page .ffb-btn--primary:hover { background: var(--ffb-rot-dunkel); }
.ffb-page .ffb-btn--ghost { border-color: #fff; color: #fff; }
.ffb-page .ffb-btn--ghost:hover { background: #fff; color: var(--ffb-schwarz); }

.ffb-page .ffb-code {
  display: inline-block;
  min-width: 46px;
  padding: 5px 8px 3px;
  border-bottom: 3px solid var(--ffb-rot);
  background: var(--ffb-anthrazit);
  color: #fff;
  font-family: var(--ffb-font-head);
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1;
  text-align: center;
}

/* ---------- Header ---------- */
.ffb-page .ffb-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  background: var(--ffb-anthrazit);
  color: #fff;
  transition: background-color .2s;
}
.ffb-page.admin-bar .ffb-header { top: 32px; }
.ffb-page.ffb-header-transparent .ffb-header:not(.is-scrolled) { background: transparent; }
.ffb-page.ffb-header-fest #inhalt { padding-top: var(--ffb-header-hoehe); }

.ffb-page .ffb-header__bar {
  display: flex;
  align-items: center;
  gap: 32px;
  height: var(--ffb-header-hoehe);
}
.ffb-page .ffb-logo {
  display: block;
  flex: none;
  color: #fff;
  font-family: var(--ffb-font-head);
  line-height: .92;
  text-decoration: none;
}
.ffb-page .ffb-logo img { width: auto; height: 52px; display: block; transition: opacity .15s; }
.ffb-page .ffb-logo:hover img { opacity: .85; }
.ffb-page .ffb-logo:focus-visible { outline: 2px solid var(--ffb-rot); outline-offset: 6px; }
.ffb-page .ffb-logo__zeile {
  display: block;
  font-family: var(--ffb-font-text);
  font-size: .8125rem;
  font-weight: 600;
  letter-spacing: .02em;
  line-height: 1.2;
}
.ffb-page .ffb-logo__name {
  display: block;
  font-size: 1.75rem;
  font-weight: 700;
  letter-spacing: .01em;
}

.ffb-page .ffb-nav { display: flex; align-items: center; gap: 32px; margin-left: auto; }
.ffb-page .ffb-nav__liste { display: flex; gap: 28px; }
.ffb-page .ffb-nav__liste a {
  display: block;
  padding: 6px 0;
  border-bottom: 2px solid transparent;
  font-weight: 600;
  text-decoration: none;
}
.ffb-page .ffb-nav__liste a:hover,
.ffb-page .ffb-nav__liste .current-menu-item > a { border-bottom-color: var(--ffb-rot); }
/* Zusatzeinträge, die Enfold in sein Menü hängt (Suche, Burger) */
.ffb-page .ffb-nav__liste .menu-item-avia-special,
.ffb-page .ffb-nav__liste #menu-item-search { display: none; }
/* Untermenü (zweite Ebene) */
.ffb-page .ffb-nav__liste > li { position: relative; }
.ffb-page .ffb-nav__liste .menu-item-has-children > a::after {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-left: 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
}
.ffb-page .ffb-nav__liste > li.menu-item-has-children::after {
  /* unsichtbare Brücke, damit das Untermenü beim Hinüberfahren offen bleibt */
  content: "";
  position: absolute;
  top: 100%;
  left: -16px;
  right: -16px;
  height: 14px;
}
.ffb-page .ffb-nav__liste .sub-menu {
  position: absolute;
  top: calc(100% + 12px);
  left: -16px;
  z-index: 60;
  min-width: 220px;
  padding: 6px 0;
  background: var(--ffb-anthrazit);
  border-top: 3px solid var(--ffb-rot);
  box-shadow: 0 12px 28px rgba(0, 0, 0, .25);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity .15s, transform .15s, visibility 0s linear .35s;
}
.ffb-page .ffb-nav__liste > li:hover > .sub-menu,
.ffb-page .ffb-nav__liste > li:focus-within > .sub-menu,
.ffb-page .ffb-nav__liste .sub-menu:hover {
  opacity: 1;
  visibility: visible;
  transform: none;
  transition: opacity .15s, transform .15s;
}
.ffb-page .ffb-nav__liste .sub-menu a {
  padding: 10px 18px;
  border-bottom: 0;
  border-left: 3px solid transparent;
  color: #fff;
  font-weight: 500;
}
.ffb-page .ffb-nav__liste .sub-menu a:hover,
.ffb-page .ffb-nav__liste .sub-menu .current-menu-item > a { border-left-color: var(--ffb-rot); background: rgba(255, 255, 255, .06); }

.ffb-page .ffb-nav__cta { min-height: 44px; padding: 0 20px; font-size: 1.1875rem; }

.ffb-page .ffb-burger {
  display: none;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  margin: 0 -10px 0 auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: #fff;
  cursor: pointer;
}
.ffb-page .ffb-burger__icon,
.ffb-page .ffb-burger__icon::before,
.ffb-page .ffb-burger__icon::after {
  display: block;
  width: 26px;
  height: 2px;
  background: currentColor;
  transition: transform .2s, opacity .2s;
}
.ffb-page .ffb-burger__icon { position: relative; }
.ffb-page .ffb-burger__icon::before,
.ffb-page .ffb-burger__icon::after { content: ""; position: absolute; left: 0; }
.ffb-page .ffb-burger__icon::before { top: -8px; }
.ffb-page .ffb-burger__icon::after { top: 8px; }
.ffb-page .ffb-burger[aria-expanded="true"] .ffb-burger__icon { background: transparent; }
.ffb-page .ffb-burger[aria-expanded="true"] .ffb-burger__icon::before { transform: translateY(8px) rotate(45deg); }
.ffb-page .ffb-burger[aria-expanded="true"] .ffb-burger__icon::after { transform: translateY(-8px) rotate(-45deg); }

/* ---------- 1 Hero ---------- */
.ffb-page .ffb-hero {
  background: var(--ffb-schwarz) var(--ffb-hero-bild) center 40% / cover no-repeat;
  color: #fff;
}
.ffb-page .ffb-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top,
    rgba(10, 10, 10, .9) 0%,
    rgba(10, 10, 10, .6) 38%,
    rgba(10, 10, 10, .12) 72%,
    rgba(10, 10, 10, .5) 100%);
}
.ffb-page .ffb-hero .ffb-container { position: relative; z-index: 1; }
.ffb-page .ffb-hero__inner {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 88vh;
  min-height: 88svh;
  max-width: 62rem;
  padding: 160px 0 clamp(56px, 6vw, 96px);
}
.ffb-page .ffb-hero__title { font-weight: 400; }
.ffb-page .ffb-hero__kicker {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 20px;
  font-family: var(--ffb-font-text);
  font-size: clamp(1rem, .9rem + .4vw, 1.25rem);
  font-weight: 600;
  line-height: 1.3;
}
.ffb-page .ffb-hero__kicker::before {
  content: "";
  flex: none;
  width: 48px;
  height: 4px;
  background: var(--ffb-rot);
}
.ffb-page .ffb-hero__claim {
  display: block;
  font-family: var(--ffb-font-head);
  font-size: clamp(3.4rem, 1.5rem + 7.2vw, 8.25rem);
  font-weight: 700;
  line-height: .9;
  letter-spacing: -.005em;
}
.ffb-page .ffb-hero__claim span { display: block; }
.ffb-page .ffb-hero .ffb-buttons { margin-top: clamp(28px, 3vw, 44px); }

/* ---------- 2 Zahlenleiste ---------- */
.ffb-page .ffb-stats-section { background: var(--ffb-anthrazit); color: #fff; }
.ffb-page .ffb-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 28px clamp(20px, 3vw, 48px);
  padding: clamp(36px, 4vw, 56px) 0;
}
.ffb-page .ffb-stat { padding-top: 16px; border-top: 3px solid var(--ffb-rot); }
.ffb-page .ffb-stat__num {
  display: block;
  font-family: var(--ffb-font-head);
  font-size: clamp(2.6rem, 1.8rem + 2.6vw, 4.25rem);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.ffb-page .ffb-stat__label {
  display: block;
  margin-top: 8px;
  color: var(--ffb-text-dunkel-2);
  font-size: .9375rem;
  line-height: 1.35;
}

/* ---------- 3 Einsätze + Termine ---------- */
.ffb-page .ffb-einsaetze { background: var(--ffb-hell); }
.ffb-page .ffb-split {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: clamp(32px, 4vw, 64px);
}
.ffb-page .ffb-split > :only-child { grid-column: 1 / -1; }
.ffb-page .ffb-incidents {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.ffb-page .ffb-incident > a,
.ffb-page .ffb-incident > div {
  display: flex;
  flex-direction: column;
  gap: 4px;
  height: 100%;
  padding: 20px;
  border: 1px solid var(--ffb-linie);
  background: var(--ffb-weiss);
  text-decoration: none;
}
.ffb-page .ffb-incident > a:hover { border-color: var(--ffb-anthrazit); }
.ffb-page .ffb-incident .ffb-code { align-self: flex-start; margin-bottom: 12px; }
.ffb-page .ffb-incident__date,
.ffb-page .ffb-incident__place { color: var(--ffb-text-2); font-size: .9375rem; }
.ffb-page .ffb-incident__title {
  color: var(--ffb-text);
  font-family: var(--ffb-font-head);
  font-size: 1.4375rem;
  font-weight: 600;
  line-height: 1.12;
}
.ffb-page .ffb-incident__place { margin-top: auto; padding-top: 6px; }

.ffb-page .ffb-dates li {
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 16px;
  padding: 14px 0;
  border-top: 1px solid var(--ffb-linie);
}
.ffb-page .ffb-dates li:last-child { border-bottom: 1px solid var(--ffb-linie); }
.ffb-page .ffb-date__day {
  display: block;
  font-family: var(--ffb-font-head);
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
}
.ffb-page .ffb-date__month { display: block; color: var(--ffb-text-2); font-size: .875rem; }
.ffb-page .ffb-date__title { display: block; font-weight: 600; line-height: 1.3; text-decoration: none; overflow-wrap: anywhere; hyphens: auto; }
.ffb-page .ffb-date__title:hover { text-decoration: underline; text-decoration-color: var(--ffb-rot); }
.ffb-page .ffb-date__time { display: block; color: var(--ffb-text-2); font-size: .9375rem; }
.ffb-page .ffb-dates-ersatz {
  padding: 18px 20px;
  border-left: 3px solid var(--ffb-rot);
  background: var(--ffb-weiss);
}

/* ---------- 4 Aktuelles ---------- */
.ffb-page .ffb-news { background: var(--ffb-weiss); }
.ffb-page .ffb-posts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(20px, 2.5vw, 32px);
}
.ffb-page .ffb-post a { display: block; text-decoration: none; }
.ffb-page .ffb-post img,
.ffb-page .ffb-post__noimg {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  background: var(--ffb-hell);
}
.ffb-page .ffb-post__date { display: block; margin-top: 14px; color: var(--ffb-text-2); font-size: .9375rem; }
.ffb-page .ffb-post__title {
  display: block;
  margin-top: 4px;
  font-family: var(--ffb-font-head);
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.15;
}
.ffb-page .ffb-post a:hover .ffb-post__title {
  text-decoration: underline;
  text-decoration-color: var(--ffb-rot);
  text-underline-offset: 4px;
}

/* ---------- 5 Mehr als ein Ehrenamt ---------- */
.ffb-page .ffb-ehrenamt { background: var(--ffb-anthrazit); color: #fff; }
.ffb-page .ffb-triad {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(12px, 1.5vw, 20px);
}
.ffb-page .ffb-triad img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.ffb-page .ffb-triad figcaption {
  margin-top: 16px;
  font-family: var(--ffb-font-head);
  font-size: clamp(1.75rem, 1.3rem + 1.4vw, 2.5rem);
  font-weight: 700;
  line-height: 1;
}

/* ---------- 6 Abteilungen ---------- */
.ffb-page .ffb-abteilungen { background: var(--ffb-hell); }
.ffb-page .ffb-depts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(16px, 2vw, 28px);
}
.ffb-page .ffb-dept a { display: block; text-decoration: none; }
.ffb-page .ffb-dept img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.ffb-page .ffb-dept h3 { margin-top: 16px; font-size: 1.5rem; font-weight: 600; line-height: 1.1; }
.ffb-page .ffb-dept p { margin-top: 4px; color: var(--ffb-text-2); font-size: .9375rem; line-height: 1.4; }

/* ---------- 7 Mitmachen mit Burg ----------
   Burg = Platzhalter. Ersetzen durch die Silhouette aus dem Logo
   (SVG-Pfad in der url() tauschen, Füllfarbe %23383E42 beibehalten). */
.ffb-page .ffb-mitmachen { background: var(--ffb-anthrazit); color: #fff; }
.ffb-page .ffb-burg-oben::before {
  content: "";
  display: block;
  height: var(--ffb-burg-hoehe);
  /* Himmel in der Farbe des Abschnitts darüber; die Burg wird ausgespart,
     dort scheint das Anthrazit des Abschnitts durch */
  background: var(--ffb-himmel, var(--ffb-hell));
  -webkit-mask: linear-gradient(#000 0 0), var(--ffb-burg) center bottom / auto 100% no-repeat;
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0), var(--ffb-burg) center bottom / auto 100% no-repeat;
  mask-composite: exclude;
}
.ffb-page .ffb-join {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: clamp(32px, 5vw, 80px);
  align-items: start;
  padding-top: clamp(24px, 3vw, 48px);
}
.ffb-page .ffb-join__lead {
  max-width: 36rem;
  margin-top: 16px;
  color: var(--ffb-text-dunkel-2);
  font-size: 1.1875rem;
}
.ffb-page .ffb-steps { counter-reset: ffb-schritt; margin-top: 32px; }
.ffb-page .ffb-steps li {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 16px;
  padding: 18px 0;
  border-top: 1px solid var(--ffb-linie-dunkel);
  counter-increment: ffb-schritt;
}
.ffb-page .ffb-steps li::before {
  content: counter(ffb-schritt);
  align-self: start;
  justify-self: start;
  padding-bottom: 4px;
  border-bottom: 3px solid var(--ffb-rot);
  font-family: var(--ffb-font-head);
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
}
.ffb-page .ffb-steps strong {
  display: block;
  font-family: var(--ffb-font-head);
  font-size: 1.375rem;
  font-weight: 600;
  line-height: 1.15;
}
.ffb-page .ffb-steps span { display: block; margin-top: 2px; color: var(--ffb-text-dunkel-2); }
.ffb-page .ffb-contact { padding: 24px; background: var(--ffb-anthrazit-2); }
.ffb-page .ffb-contact img { width: 100%; max-width: 240px; aspect-ratio: 1 / 1; object-fit: cover; }
.ffb-page .ffb-contact__role { margin-top: 20px; color: var(--ffb-text-dunkel-2); font-size: .9375rem; }
.ffb-page .ffb-contact__name { font-family: var(--ffb-font-head); font-size: 1.75rem; font-weight: 600; line-height: 1.15; }
.ffb-page .ffb-contact .ffb-btn { margin-top: 20px; }

/* ---------- 8 Footer ---------- */
.ffb-page .ffb-footer { background: var(--ffb-schwarz); color: #fff; }
.ffb-page .ffb-footer__inner { padding-bottom: 0; }
.ffb-page .ffb-notruf {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 20px;
  padding-bottom: 32px;
  border-bottom: 1px solid var(--ffb-linie-dunkel);
}
.ffb-page .ffb-notruf__label { font-family: var(--ffb-font-head); font-size: 1.5rem; font-weight: 600; }
.ffb-page .ffb-notruf__nr {
  font-family: var(--ffb-font-head);
  font-size: clamp(3rem, 2rem + 3vw, 4.5rem);
  font-weight: 700;
  line-height: 1;
  text-decoration: underline;
  text-decoration-color: var(--ffb-rot);
  text-decoration-thickness: 4px;
  text-underline-offset: 8px;
}
.ffb-page .ffb-notruf__hint { color: var(--ffb-text-dunkel-2); }
.ffb-page .ffb-footer__cols {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 32px;
  padding: 32px 0;
}
.ffb-page .ffb-footer h2 { margin-bottom: 10px; font-size: 1.25rem; font-weight: 600; }
.ffb-page .ffb-footer__cols p,
.ffb-page .ffb-footer__cols li { color: var(--ffb-text-dunkel-2); font-size: .9375rem; line-height: 1.7; }
.ffb-page .ffb-footer__cols a {
  text-decoration: underline;
  text-decoration-color: rgba(255, 255, 255, .35);
  text-underline-offset: 3px;
}
.ffb-page .ffb-footer__cols a:hover { text-decoration-color: var(--ffb-rot); }
.ffb-page .ffb-incidents-short li + li { margin-top: 6px; }
.ffb-page .ffb-incidents-short a { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.ffb-page .ffb-incidents-short .ffb-code { min-width: 40px; border-bottom-width: 2px; font-size: 1rem; }
.ffb-page .ffb-footer__legal {
  padding: 20px 0 32px;
  border-top: 1px solid var(--ffb-linie-dunkel);
  color: #8E959A;
  font-size: .875rem;
}

/* ---------- Tablet (bis 989 px) ---------- */
@media (max-width: 989px) {
  :root { --ffb-header-hoehe: 64px; }

  .ffb-page .ffb-burger { display: inline-flex; }
  .ffb-page .ffb-nav {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    height: calc(100vh - var(--ffb-header-hoehe));
    height: calc(100dvh - var(--ffb-header-hoehe));
    flex-direction: column;
    align-items: stretch;
    gap: 28px;
    margin: 0;
    padding: 8px var(--ffb-rand) 40px;
    overflow-y: auto;
    background: var(--ffb-anthrazit);
    opacity: 0;
    visibility: hidden;
    /* Wichtig: geschlossenes Menü darf keine Klicks abfangen. „visibility: hidden“
       allein reicht nicht, weil Untermenüs darin wieder „visible“ sind. */
    pointer-events: none;
    transform: translateY(-8px);
    transition: opacity .2s, transform .2s, visibility 0s linear .2s;
  }
  .ffb-page .ffb-nav .sub-menu { visibility: inherit; }
  .ffb-page.ffb-menue-offen .ffb-nav { pointer-events: auto; }
  .ffb-page.ffb-menue-offen { overflow: hidden; }
  .ffb-page.ffb-menue-offen .ffb-header { background: var(--ffb-anthrazit); }
  .ffb-page.ffb-menue-offen .ffb-nav {
    opacity: 1;
    visibility: visible;
    transform: none;
    transition: opacity .2s, transform .2s;
  }
  .ffb-page .ffb-nav__liste { flex-direction: column; gap: 0; }
  .ffb-page .ffb-nav__liste a {
    padding: 14px 0;
    border-bottom: 1px solid var(--ffb-linie-dunkel);
    font-family: var(--ffb-font-head);
    font-size: 1.75rem;
  }
  .ffb-page .ffb-nav__liste .menu-item-has-children > a::after { display: none; }
  .ffb-page .ffb-nav__liste .sub-menu {
    position: static;
    min-width: 0;
    padding: 0;
    background: none;
    border-top: 0;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    transform: none;
  }
  .ffb-page .ffb-nav__liste .sub-menu a {
    padding: 12px 0 12px 18px;
    border-left: 3px solid var(--ffb-rot);
    border-bottom: 1px solid var(--ffb-linie-dunkel);
    font-family: var(--ffb-font-head);
    font-size: 1.25rem;
  }
  .ffb-page .ffb-nav__cta { width: 100%; min-height: 52px; font-size: 1.3125rem; }

  .ffb-page .ffb-split,
  .ffb-page .ffb-join { grid-template-columns: 1fr; }
  .ffb-page .ffb-depts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 782px) {
  .ffb-page.admin-bar .ffb-header { top: 46px; }
}

/* ---------- Mobil (bis 767 px) ---------- */
@media (max-width: 767px) {
  .ffb-page .ffb-hero { background-image: var(--ffb-hero-bild-mobil); background-position: center; }
  .ffb-page .ffb-hero__inner { min-height: 80vh; min-height: 80svh; padding-top: 120px; }
  .ffb-page .ffb-hero .ffb-buttons .ffb-btn { flex: 1 1 100%; }

  .ffb-page .ffb-incidents { grid-template-columns: 1fr; gap: 10px; }
  .ffb-page .ffb-incidents:not(.ffb-incidents--liste) .ffb-incident > a {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 14px;
    row-gap: 2px;
    padding: 14px 16px;
  }
  .ffb-page .ffb-incidents:not(.ffb-incidents--liste) .ffb-code { grid-row: 1 / span 3; margin-bottom: 0; }
  .ffb-page .ffb-incidents:not(.ffb-incidents--liste) .ffb-incident__place { padding-top: 0; }

  .ffb-page .ffb-posts { grid-template-columns: 1fr; gap: 0; }
  .ffb-page .ffb-post a {
    display: grid;
    grid-template-columns: 96px 1fr;
    grid-template-rows: auto 1fr;
    align-items: start;
    gap: 2px 14px;
    padding: 14px 0;
    border-top: 1px solid var(--ffb-linie);
  }
  .ffb-page .ffb-post img,
  .ffb-page .ffb-post__noimg { aspect-ratio: 1 / 1; grid-row: 1 / span 2; }
  .ffb-page .ffb-post__date { margin-top: 0; }
  .ffb-page .ffb-post__title { font-size: 1.25rem; }

  .ffb-page .ffb-triad { grid-template-columns: 1fr; gap: 28px; }
  .ffb-page .ffb-triad img { aspect-ratio: 3 / 2; }

  .ffb-page .ffb-depts {
    grid-auto-flow: column;
    grid-template-columns: none;
    grid-auto-columns: 72%;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    padding-bottom: 10px;
  }
  .ffb-page .ffb-dept { scroll-snap-align: start; }

  .ffb-page .ffb-contact img { max-width: 160px; }
  .ffb-page .ffb-contact .ffb-btn { width: 100%; }
}

@media (max-width: 600px) {
  /* WordPress-Adminleiste scrollt auf kleinen Geräten mit */
  .ffb-page.admin-bar .ffb-header { top: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .ffb-page *,
  .ffb-page *::before,
  .ffb-page *::after { transition: none !important; scroll-behavior: auto !important; }
}

/* ==========================================================================
   Unterseiten
   ========================================================================== */

:root {
  --ffb-typ-b: var(--ffb-rot);
  --ffb-typ-th: #FFFFFF;
  --ffb-typ-bma: #9AA1A6;
  --ffb-typ-u: #D9A59E;
  --ffb-typ-t: #9AA1A6;
  --ffb-typ-s: #62696E;
}
.ffb-page [hidden] { display: none !important; }
.ffb-page button { font: inherit; }

/* ---------- Seitenkopf ---------- */
.ffb-page .ffb-pagehead { background: var(--ffb-anthrazit); color: #fff; }
.ffb-page .ffb-pagehead__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: 32px clamp(32px, 5vw, 80px);
  align-items: end;
  padding: clamp(48px, 5vw, 80px) 0 clamp(32px, 4vw, 56px);
}
.ffb-page .ffb-kicker {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
  font-size: clamp(1rem, .95rem + .25vw, 1.125rem);
  font-weight: 600;
}
.ffb-page .ffb-kicker::before {
  content: "";
  flex: none;
  width: 48px;
  height: 4px;
  background: var(--ffb-rot);
}
.ffb-page .ffb-h1 {
  font-size: clamp(3rem, 1.8rem + 4.6vw, 6rem);
  font-weight: 700;
  line-height: .92;
}
.ffb-page .ffb-h1--lang { font-size: clamp(2.5rem, 1.6rem + 3.4vw, 4.75rem); line-height: .96; }
.ffb-page .ffb-lead {
  max-width: 38rem;
  margin-top: 20px;
  color: var(--ffb-text-dunkel-2);
  font-size: clamp(1.0625rem, 1rem + .3vw, 1.25rem);
}
.ffb-page .ffb-crumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  margin-bottom: 24px;
  color: var(--ffb-text-dunkel-2);
  font-size: .9375rem;
}
.ffb-page .ffb-crumbs li + li::before { content: "/"; margin-right: 10px; color: #8E959A; }
.ffb-page .ffb-crumbs a {
  text-decoration: underline;
  text-decoration-color: rgba(255, 255, 255, .35);
  text-underline-offset: 3px;
}
.ffb-page .ffb-pagehead .ffb-code { background: #fff; color: var(--ffb-anthrazit); }

/* Jahreszahl mit Aufteilung nach Einsatzart */
.ffb-page .ffb-yearstat__num {
  display: block;
  font-family: var(--ffb-font-head);
  font-size: clamp(3.5rem, 2.5rem + 3vw, 5.5rem);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.ffb-page .ffb-yearstat__label { display: block; margin-top: 6px; color: var(--ffb-text-dunkel-2); }
.ffb-page .ffb-stackbar { display: flex; gap: 2px; height: 12px; margin-top: 24px; }
.ffb-page .ffb-stackbar span { display: block; height: 100%; }
.ffb-page .ffb-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  margin-top: 14px;
  color: var(--ffb-text-dunkel-2);
  font-size: .9375rem;
}
.ffb-page .ffb-legend li { display: flex; align-items: center; gap: 8px; }
.ffb-page .ffb-legend i { display: inline-block; width: 12px; height: 12px; }
.ffb-page .ffb-typ-b { background: var(--ffb-typ-b); }
.ffb-page .ffb-typ-th { background: var(--ffb-typ-th); }
.ffb-page .ffb-typ-bma { background: var(--ffb-typ-bma); }
.ffb-page .ffb-typ-s { background: var(--ffb-typ-s); }
.ffb-page .ffb-typ-u { background: var(--ffb-typ-u); }
.ffb-page .ffb-typ-t { background: var(--ffb-typ-t); }

/* Reiter (Jahre) am unteren Rand des Seitenkopfs */
.ffb-page .ffb-tabs {
  display: flex;
  gap: 28px;
  overflow-x: auto;
  border-top: 1px solid var(--ffb-linie-dunkel);
  scrollbar-width: none;
}
.ffb-page .ffb-tabs::-webkit-scrollbar { display: none; }
.ffb-page .ffb-tabs a {
  flex: none;
  padding: 16px 0 13px;
  border-bottom: 3px solid transparent;
  color: var(--ffb-text-dunkel-2);
  font-family: var(--ffb-font-head);
  font-size: 1.375rem;
  font-weight: 600;
  text-decoration: none;
}
.ffb-page .ffb-tabs a:hover { color: #fff; }
.ffb-page .ffb-tabs a[aria-current="page"] { border-bottom-color: var(--ffb-rot); color: #fff; }
.ffb-page .ffb-tabs .ffb-tabs__rest { margin-left: auto; }

/* ---------- Werkzeugleiste: Ansicht und Filter ---------- */
.ffb-page .ffb-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: clamp(28px, 3vw, 44px);
}
.ffb-page .ffb-segment { display: inline-flex; border: 1px solid var(--ffb-anthrazit); }
.ffb-page .ffb-segment button {
  min-height: 42px;
  padding: 0 18px;
  border: 0;
  background: transparent;
  color: var(--ffb-text);
  font-weight: 600;
  cursor: pointer;
}
.ffb-page .ffb-segment button[aria-selected="true"] { background: var(--ffb-anthrazit); color: #fff; }
.ffb-page .ffb-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ffb-page .ffb-chip {
  display: inline-flex;
  flex: none;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 0 14px;
  border: 1px solid var(--ffb-linie);
  background: var(--ffb-weiss);
  color: var(--ffb-text);
  font-size: .9375rem;
  font-weight: 600;
  cursor: pointer;
}
.ffb-page .ffb-chip:hover { border-color: var(--ffb-anthrazit); }
.ffb-page .ffb-chip span { color: var(--ffb-text-2); font-weight: 400; }
.ffb-page .ffb-chip[aria-pressed="true"] { border-color: var(--ffb-anthrazit); background: var(--ffb-anthrazit); color: #fff; }
.ffb-page .ffb-chip[aria-pressed="true"] span { color: var(--ffb-text-dunkel-2); }

/* ---------- Einsatzliste nach Monaten ---------- */
.ffb-page .ffb-month + .ffb-month { margin-top: clamp(36px, 4vw, 56px); }
.ffb-page .ffb-month__head {
  display: flex;
  align-items: baseline;
  gap: 14px;
  margin-bottom: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--ffb-linie);
}
.ffb-page .ffb-month__head h2 { font-size: 1.75rem; font-weight: 700; }
.ffb-page .ffb-month__head span { color: var(--ffb-text-2); font-size: .9375rem; }

.ffb-page .ffb-incidents--liste .ffb-incident__place { margin-top: 0; padding-top: 0; }
.ffb-page .ffb-incident__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.ffb-page .ffb-incident__top .ffb-code { margin: 0; }
.ffb-page .ffb-incident__nr { color: var(--ffb-text-2); font-size: .875rem; font-variant-numeric: tabular-nums; }
.ffb-page .ffb-incident__vehicles {
  margin-top: auto;
  padding-top: 12px;
  color: var(--ffb-text-2);
  font-size: .875rem;
}
.ffb-page .ffb-incident__vehicles::before {
  content: "";
  display: block;
  margin-bottom: 10px;
  border-top: 1px solid var(--ffb-linie);
}
.ffb-page .ffb-tag {
  display: inline-block;
  padding: 2px 8px;
  border: 1px solid var(--ffb-text-2);
  color: var(--ffb-text-2);
  font-size: .8125rem;
  font-weight: 600;
  line-height: 1.4;
}

/* Einsatz mit ausführlichem Bericht: gleiche Kachelhöhe, rote Oberkante, Vorschaubild */
.ffb-page .ffb-incident--bericht > a { border-top: 3px solid var(--ffb-rot); padding-top: 18px; }
.ffb-page .ffb-incident__more {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: auto;
  padding-top: 10px;
  border-top: 1px solid var(--ffb-linie);
}
.ffb-page .ffb-incident__vehicles.ffb-incident__more::before { display: none; }
.ffb-page .ffb-incident--bericht .ffb-incident__place { margin-bottom: 12px; }
.ffb-page .ffb-incident__more img { flex: none; width: 56px; height: 42px; object-fit: cover; }
.ffb-page .ffb-incident__cta {
  color: var(--ffb-text);
  font-size: 1rem;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: var(--ffb-rot);
  text-decoration-thickness: 2px;
  text-underline-offset: 5px;
}

.ffb-page .ffb-btn--dunkel { border-color: var(--ffb-anthrazit); color: var(--ffb-anthrazit); background: transparent; cursor: pointer; }
.ffb-page .ffb-btn--dunkel:hover { background: var(--ffb-anthrazit); color: #fff; }
.ffb-page .ffb-mehr-laden { display: flex; justify-content: center; margin-top: clamp(32px, 4vw, 48px); }

/* ---------- Statistik ---------- */
.ffb-page .ffb-statgrid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px; }
.ffb-page .ffb-card {
  grid-column: span 12;
  padding: clamp(20px, 2.5vw, 32px);
  border: 1px solid var(--ffb-linie);
  background: var(--ffb-weiss);
}
.ffb-page .ffb-card--4 { grid-column: span 4; }
.ffb-page .ffb-card--6 { grid-column: span 6; }
.ffb-page .ffb-card--8 { grid-column: span 8; }
.ffb-page .ffb-card h3 { margin-bottom: 20px; font-size: 1.375rem; font-weight: 600; line-height: 1.15; }
.ffb-page .ffb-card__hinweis { margin-top: 16px; color: var(--ffb-text-2); font-size: .875rem; }

.ffb-page .ffb-bars li {
  display: grid;
  grid-template-columns: 200px minmax(0, 1fr) 44px;
  align-items: center;
  gap: 14px;
  padding: 8px 0;
}
.ffb-page .ffb-bars__label { display: flex; align-items: center; gap: 10px; }
.ffb-page .ffb-bars__label .ffb-code { min-width: 44px; font-size: 1rem; }
.ffb-page .ffb-bars__track { display: block; height: 14px; background: var(--ffb-hell); }
.ffb-page .ffb-bars__fill { display: block; width: var(--w); height: 100%; background: var(--ffb-anthrazit); }
.ffb-page .ffb-bars__fill--akzent { background: var(--ffb-rot); }
.ffb-page .ffb-bars__num {
  font-family: var(--ffb-font-head);
  font-size: 1.375rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  text-align: right;
}

.ffb-page .ffb-cols {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: end;
  gap: 6px;
  height: 200px;
}
.ffb-page .ffb-cols li { display: flex; flex-direction: column; justify-content: flex-end; height: 100%; text-align: center; }
.ffb-page .ffb-cols__num { margin-bottom: 4px; font-size: .8125rem; font-weight: 600; }
.ffb-page .ffb-cols__bar { display: block; height: var(--h); min-height: 2px; background: var(--ffb-anthrazit); }
.ffb-page .ffb-cols__leer .ffb-cols__bar { background: var(--ffb-linie); }
.ffb-page .ffb-cols__label { margin-top: 6px; color: var(--ffb-text-2); font-size: .8125rem; }

.ffb-page .ffb-kpis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.ffb-page .ffb-kpi__num {
  display: block;
  font-family: var(--ffb-font-head);
  font-size: clamp(2.25rem, 1.8rem + 1.4vw, 3rem);
  font-weight: 600;
  line-height: 1;
}
.ffb-page .ffb-kpi__label { display: block; margin-top: 6px; color: var(--ffb-text-2); font-size: .9375rem; line-height: 1.35; }

/* ---------- Einsatzbericht ---------- */
.ffb-page .ffb-pagehead--bericht .ffb-pagehead__inner {
  grid-template-columns: minmax(0, 1fr);
  padding-bottom: calc(clamp(40px, 6vw, 96px) + 40px);
}
.ffb-page .ffb-reportmeta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-bottom: 18px; color: var(--ffb-text-dunkel-2); }
.ffb-page .ffb-reportdate { margin-top: 20px; color: var(--ffb-text-dunkel-2); font-size: 1.125rem; }
.ffb-page .ffb-reportimg { position: relative; z-index: 1; margin-top: calc(-1 * clamp(40px, 6vw, 96px)); }
.ffb-page .ffb-reportimg img { width: 100%; aspect-ratio: 2 / 1; object-fit: cover; }
.ffb-page .ffb-reportimg figcaption,
.ffb-page .ffb-gallery figcaption { margin-top: 8px; color: var(--ffb-text-2); font-size: .875rem; }

.ffb-page .ffb-report {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: clamp(32px, 5vw, 80px);
  align-items: start;
}
.ffb-page .ffb-seite__rand { min-width: 0; display: grid; gap: 16px; align-content: start; }
.ffb-page .ffb-facts {
  position: sticky;
  top: calc(var(--ffb-header-hoehe) + 24px);
  padding: 24px;
  background: var(--ffb-hell);
}
.ffb-page .ffb-facts h2 { margin-bottom: 8px; font-size: 1.375rem; font-weight: 600; }
.ffb-page .ffb-facts dl { margin: 0; }
.ffb-page .ffb-facts dl > div { padding: 12px 0; border-top: 1px solid var(--ffb-linie); }
.ffb-page .ffb-facts dt { color: var(--ffb-text-2); font-size: .875rem; }
.ffb-page .ffb-facts dd { margin: 2px 0 0; font-weight: 600; line-height: 1.4; }
.ffb-page .ffb-facts dd small { color: var(--ffb-text-2); font-size: .875rem; font-weight: 400; }
.ffb-page .ffb-vehicles { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.ffb-page .ffb-vehicles li {
  padding: 3px 8px;
  border: 1px solid var(--ffb-linie);
  background: var(--ffb-weiss);
  font-family: var(--ffb-font-head);
  font-size: 1.0625rem;
  font-weight: 600;
}

.ffb-page .ffb-prose { max-width: 42rem; font-size: 1.1875rem; line-height: 1.65; }
.ffb-page .ffb-prose h2 { margin: 1.6em 0 .35em; font-size: 1.75rem; font-weight: 700; line-height: 1.1; }
.ffb-page .ffb-prose > :first-child { margin-top: 0; }
.ffb-page .ffb-prose p + p { margin-top: .9em; }
.ffb-page .ffb-prose a { text-decoration-color: var(--ffb-rot); text-underline-offset: 3px; }

.ffb-page .ffb-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 40px; }
.ffb-page .ffb-gallery img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }

.ffb-page .ffb-pager {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: clamp(48px, 5vw, 72px);
}
.ffb-page .ffb-pager a { display: block; height: 100%; padding: 20px; border: 1px solid var(--ffb-linie); text-decoration: none; }
.ffb-page .ffb-pager a:hover { border-color: var(--ffb-anthrazit); }
.ffb-page .ffb-pager__dir { display: block; margin-bottom: 10px; color: var(--ffb-text-2); font-size: .875rem; }
.ffb-page .ffb-pager__title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--ffb-font-head);
  font-size: 1.3125rem;
  font-weight: 600;
  line-height: 1.15;
}
.ffb-page .ffb-pager__next { text-align: right; }
.ffb-page .ffb-pager__next .ffb-pager__title { justify-content: flex-end; }

/* Kurzes Mitmachen-Band über dem Footer */
.ffb-page .ffb-cta { background: var(--ffb-anthrazit); color: #fff; }
.ffb-page .ffb-cta__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px 40px;
  padding-top: clamp(20px, 2.5vw, 32px);
  padding-bottom: clamp(48px, 5vw, 72px);
}
.ffb-page .ffb-cta p { margin-top: 8px; color: var(--ffb-text-dunkel-2); }
/* Burg über weißem statt hellgrauem Abschnitt */
.ffb-page .ffb-burg-weiss { --ffb-himmel: var(--ffb-weiss); }

@media (max-width: 989px) {
  .ffb-page .ffb-pagehead__inner { grid-template-columns: 1fr; align-items: start; }
  .ffb-page .ffb-incidents--liste { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ffb-page .ffb-card--4,
  .ffb-page .ffb-card--6,
  .ffb-page .ffb-card--8 { grid-column: span 12; }
  .ffb-page .ffb-report { grid-template-columns: 1fr; }
  .ffb-page .ffb-facts { position: static; order: -1; }
}

@media (max-width: 767px) {
  .ffb-page .ffb-tabs { gap: 22px; }
  .ffb-page .ffb-toolbar { display: grid; grid-template-columns: minmax(0, 1fr); justify-items: start; }
  .ffb-page .ffb-segment { align-self: flex-start; }
  .ffb-page .ffb-chips {
    min-width: 0;
    max-width: calc(100% + var(--ffb-rand));
    flex-wrap: nowrap;
    margin-right: calc(-1 * var(--ffb-rand));
    padding-right: var(--ffb-rand);
    overflow-x: auto;
    scrollbar-width: none;
  }
  .ffb-page .ffb-incidents--liste { grid-template-columns: 1fr; }
  .ffb-page .ffb-bars li { grid-template-columns: 96px minmax(0, 1fr) 32px; gap: 10px; }
  .ffb-page .ffb-bars__name { display: none; }
  .ffb-page .ffb-incidents--liste .ffb-incident > div,
  .ffb-page .ffb-incidents--liste .ffb-incident > a { padding: 14px 16px; }
  .ffb-page .ffb-incidents--liste .ffb-incident--bericht > a { padding-top: 12px; }
  .ffb-page .ffb-incidents--liste .ffb-incident__top { margin-bottom: 8px; }
  .ffb-page .ffb-incidents--liste .ffb-incident__vehicles { padding-top: 4px; }
  .ffb-page .ffb-incidents--liste .ffb-incident__vehicles::before { display: none; }
  .ffb-page .ffb-incidents--liste .ffb-incident__more { margin-top: 8px; padding-top: 10px; }
  .ffb-page .ffb-cols { height: 150px; gap: 3px; }
  .ffb-page .ffb-cols__num { font-size: .75rem; }
  .ffb-page .ffb-gallery { grid-template-columns: 1fr 1fr; }
  .ffb-page .ffb-gallery figure:first-child { grid-column: 1 / -1; }
  .ffb-page .ffb-pager { grid-template-columns: 1fr; }
  .ffb-page .ffb-reportimg img { aspect-ratio: 16 / 9; }
  .ffb-page .ffb-facts dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; }
  .ffb-page .ffb-facts dl > div:has(.ffb-vehicles),
  .ffb-page .ffb-facts dl > div:last-child { grid-column: 1 / -1; }
}

/* ---------- Seite im Aufbau ---------- */
/* Rot-weiße Warnmarkierung wie an den Fahrzeugen */
.ffb-page .ffb-absperrband {
  height: 14px;
  background: repeating-linear-gradient(-45deg, var(--ffb-rot) 0 18px, #fff 18px 36px);
}
.ffb-page .ffb-pagehead--aufbau .ffb-pagehead__inner {
  grid-template-columns: minmax(0, 1fr);
  min-height: 46vh;
  align-content: end;
}
.ffb-page .ffb-status {
  display: inline-block;
  margin-bottom: 20px;
  padding: 6px 12px;
  border: 1px solid rgba(255, 255, 255, .5);
  font-size: .9375rem;
  font-weight: 600;
}
.ffb-page .ffb-hinweistext { max-width: 42rem; margin-top: 20px; color: var(--ffb-text-dunkel-2); font-size: clamp(1.0625rem, 1rem + .3vw, 1.25rem); }
.ffb-page .ffb-hinweistext p + p { margin-top: .8em; }

.ffb-page .ffb-linkcards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
}
.ffb-page .ffb-linkcard a {
  display: flex;
  flex-direction: column;
  gap: 8px;
  height: 100%;
  padding: 24px;
  border: 1px solid var(--ffb-linie);
  background: var(--ffb-weiss);
  text-decoration: none;
}
.ffb-page .ffb-linkcard a:hover { border-color: var(--ffb-anthrazit); }
.ffb-page .ffb-linkcard__titel {
  font-family: var(--ffb-font-head);
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.05;
  text-decoration: underline;
  text-decoration-color: var(--ffb-rot);
  text-decoration-thickness: 3px;
  text-underline-offset: 6px;
}
.ffb-page .ffb-linkcard__text { color: var(--ffb-text-2); }
.ffb-page .ffb-linkcard--notruf a { border-color: var(--ffb-anthrazit); background: var(--ffb-anthrazit); color: #fff; }
.ffb-page .ffb-linkcard--notruf .ffb-linkcard__text { color: var(--ffb-text-dunkel-2); }

/* ==========================================================================
   Redaktionsseiten (Standard, Abteilung, Fahrzeuge, Aktuelles, Beitrag)
   ========================================================================== */

/* Seitenkopf mit Foto (Beitragsbild der Seite) */
.ffb-page .ffb-pagehead--bild {
  background: var(--ffb-schwarz) var(--ffb-kopf-bild) center 40% / cover no-repeat;
}
.ffb-page .ffb-pagehead--bild::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(10, 10, 10, .88) 0%, rgba(10, 10, 10, .55) 45%, rgba(10, 10, 10, .2) 100%);
}
.ffb-page .ffb-pagehead--bild .ffb-container { position: relative; z-index: 1; }
.ffb-page .ffb-pagehead--bild .ffb-pagehead__inner { min-height: 58vh; min-height: 58svh; }
.ffb-page .ffb-pagehead--ohnebild .ffb-pagehead__inner { padding-bottom: clamp(32px, 4vw, 56px); }
.ffb-page .ffb-tag--hell { border-color: rgba(255, 255, 255, .6); color: #fff; }

.ffb-page .ffb-hinweis-redaktion {
  margin: 24px 0;
  padding: 14px 18px;
  border: 1px dashed var(--ffb-anthrazit);
  background: var(--ffb-hell);
  color: var(--ffb-text);
  font-size: .9375rem;
}

.ffb-page .ffb-seitenbild { margin: 0 0 clamp(32px, 4vw, 56px); }
.ffb-page .ffb-seitenbild img { width: 100%; aspect-ratio: 2 / 1; object-fit: cover; }

/* Seite mit Randspalte */
.ffb-page .ffb-seite {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: clamp(32px, 5vw, 80px);
  align-items: start;
}
.ffb-page .ffb-seite__rand > * + * { margin-top: 20px; }
.ffb-page .ffb-facts--statisch { position: static; }
.ffb-page .ffb-randblock { min-width: 0; padding: 22px 24px; background: var(--ffb-hell); border-top: 3px solid var(--ffb-rot); }
.ffb-page .ffb-randblock__titel { margin-bottom: 12px; font-size: 1.375rem; font-weight: 600; }
.ffb-page .ffb-randblock__mehr { margin-top: 16px; }
.ffb-page .ffb-randblock .ffb-dates li { grid-template-columns: 40px minmax(0, 1fr); gap: 12px; }
.ffb-page .ffb-randblock .ffb-date__day { font-size: 1.625rem; }
.ffb-page .ffb-dates li > span:last-child { min-width: 0; }
.ffb-page .ffb-dates .ffb-termin__kats { margin-top: 6px; }
.ffb-page .ffb-dates .ffb-katchip { max-width: 100%; white-space: normal; }
.ffb-page .ffb-personen li { padding: 14px 0; border-top: 1px solid var(--ffb-linie); }
.ffb-page .ffb-personen li:first-child { padding-top: 0; border-top: 0; }
.ffb-page .ffb-person__name { display: block; font-family: var(--ffb-font-head); font-size: 1.3125rem; font-weight: 600; line-height: 1.15; }
.ffb-page .ffb-person__funktion { display: block; margin-bottom: 6px; color: var(--ffb-text-2); font-size: .9375rem; }
.ffb-page .ffb-person a {
  display: block;
  width: fit-content;
  margin-top: 2px;
  text-decoration: underline;
  text-decoration-color: var(--ffb-rot);
  text-underline-offset: 3px;
  overflow-wrap: anywhere;
}

/* Fließtext aus dem Editor */
.ffb-page .ffb-inhalt { max-width: 46rem; }
.ffb-page .ffb-inhalt h2 { margin: 1.6em 0 .4em; font-size: clamp(1.625rem, 1.4rem + .8vw, 2rem); font-weight: 700; line-height: 1.1; }
.ffb-page .ffb-inhalt h3 { margin: 1.4em 0 .3em; font-size: 1.375rem; font-weight: 600; line-height: 1.15; }
.ffb-page .ffb-inhalt h4 { margin: 1.2em 0 .2em; font-size: 1.125rem; }
.ffb-page .ffb-inhalt > :first-child { margin-top: 0; }
.ffb-page .ffb-inhalt p,
.ffb-page .ffb-inhalt ul,
.ffb-page .ffb-inhalt ol,
.ffb-page .ffb-inhalt table,
.ffb-page .ffb-inhalt blockquote,
.ffb-page .ffb-inhalt figure { margin: 0 0 1em; }
.ffb-page .ffb-inhalt ul { padding-left: 1.3em; list-style: square; }
.ffb-page .ffb-inhalt ol { padding-left: 1.5em; list-style: decimal; }
.ffb-page .ffb-inhalt li + li { margin-top: .3em; }
.ffb-page .ffb-inhalt ul li::marker { color: var(--ffb-rot); }
.ffb-page .ffb-inhalt a { text-decoration: underline; text-decoration-color: var(--ffb-rot); text-underline-offset: 3px; overflow-wrap: anywhere; }
.ffb-page .ffb-inhalt strong { font-weight: 600; }
.ffb-page .ffb-inhalt blockquote { padding: 4px 0 4px 20px; border-left: 3px solid var(--ffb-rot); font-size: 1.25rem; }
.ffb-page .ffb-inhalt hr { margin: 2em 0; border: 0; border-top: 1px solid var(--ffb-linie); }
.ffb-page .ffb-inhalt table { width: 100%; border-collapse: collapse; font-size: 1rem; }
.ffb-page .ffb-inhalt th,
.ffb-page .ffb-inhalt td { padding: 10px 12px 10px 0; border-bottom: 1px solid var(--ffb-linie); text-align: left; vertical-align: top; }
.ffb-page .ffb-inhalt img { height: auto; }
.ffb-page .ffb-inhalt figcaption,
.ffb-page .ffb-inhalt .wp-caption-text { margin-top: 8px; color: var(--ffb-text-2); font-size: .875rem; }
.ffb-page .ffb-inhalt .wp-block-gallery,
.ffb-page .ffb-inhalt .gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  padding: 0;
  list-style: none;
}
.ffb-page .ffb-inhalt .wp-block-gallery figure,
.ffb-page .ffb-inhalt .gallery-item { width: auto !important; margin: 0; }
.ffb-page .ffb-inhalt .wp-block-gallery img,
.ffb-page .ffb-inhalt .gallery img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.ffb-page .ffb-inhalt .wp-block-button__link,
.ffb-page .ffb-inhalt .ffb-btn {
  display: inline-flex;
  align-items: center;
  min-height: 48px;
  padding: 0 26px;
  background: var(--ffb-rot);
  color: #fff;
  font-family: var(--ffb-font-head);
  font-size: 1.25rem;
  font-weight: 600;
  text-decoration: none;
}
.ffb-page .ffb-nach-liste { margin-top: clamp(40px, 5vw, 72px); }

/* Fahrzeuge */
.ffb-page .ffb-fahrzeuge { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 360px), 1fr)); gap: 20px; }
.ffb-page .ffb-fahrzeug { display: flex; flex-direction: column; border: 1px solid var(--ffb-linie); background: var(--ffb-weiss); }
.ffb-page .ffb-fahrzeug > img,
.ffb-page .ffb-fahrzeug__bild img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.ffb-page .ffb-fahrzeug__bild { display: block; overflow: hidden; }
.ffb-page .ffb-fahrzeug__bild img { transition: transform .3s; }
.ffb-page .ffb-fahrzeug__bild:hover img { transform: scale(1.02); }

/* Fahrzeug-Unterseite: Einsatzzahl rechts neben dem Titel */
@media (min-width: 990px) {
  .ffb-page .ffb-pagehead--fahrzeug .ffb-pagehead__inner { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); }
}
.ffb-page .ffb-fahrzeug__text { display: flex; flex: 1; flex-direction: column; gap: 12px; padding: 24px; }
.ffb-page .ffb-fahrzeug__name { font-size: 2.25rem; font-weight: 700; line-height: 1; }
.ffb-page .ffb-fahrzeug__text > p:not(.ffb-fahrzeug__fuss) { color: var(--ffb-text-2); }
.ffb-page .ffb-fahrzeug__daten { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; margin: 0; }
.ffb-page .ffb-fahrzeug__daten div { padding: 8px 0; border-top: 1px solid var(--ffb-linie); }
.ffb-page .ffb-fahrzeug__daten dt { color: var(--ffb-text-2); font-size: .8125rem; }
.ffb-page .ffb-fahrzeug__daten dd { margin: 0; font-weight: 600; }
.ffb-page .ffb-fahrzeug__fuss {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px 16px;
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid var(--ffb-linie);
  color: var(--ffb-text-2);
  font-size: .9375rem;
}

/* Seitenweise blättern */
.ffb-page .ffb-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 16px 24px;
  margin-top: clamp(40px, 4vw, 56px);
}
.ffb-page .ffb-pagination__info { color: var(--ffb-text-2); }

@media (max-width: 989px) {
  .ffb-page .ffb-seite { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .ffb-page .ffb-inhalt .wp-block-gallery,
  .ffb-page .ffb-inhalt .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ffb-page .ffb-inhalt table { display: block; overflow-x: auto; }
  .ffb-page .ffb-fahrzeug__name { font-size: 2rem; }
}

/* ==========================================================================
   Galerie mit Beschreibungen und "Medien und Text" (z. B. Fahrzeugansichten)
   ========================================================================== */
.ffb-page .ffb-inhalt .wp-block-gallery.columns-1 { grid-template-columns: 1fr; }
.ffb-page .ffb-inhalt .wp-block-gallery.columns-2,
.ffb-page .ffb-pagehead--fahrzeug ~ .ffb-section .ffb-inhalt .wp-block-gallery.columns-default { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ffb-page .ffb-inhalt .wp-block-gallery.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ffb-page .ffb-inhalt .wp-block-gallery { gap: 20px 16px; align-items: start; }
.ffb-page .ffb-inhalt .wp-block-gallery.has-nested-images figure.wp-block-image {
  display: block;
  position: static;
  margin: 0;
}
.ffb-page .ffb-inhalt .wp-block-gallery.has-nested-images figure.wp-block-image::before,
.ffb-page .ffb-inhalt .wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption)::before { display: none; content: none; }
.ffb-page .ffb-inhalt .wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
  position: static;
  max-height: none;
  margin: 10px 0 0;
  padding: 0;
  overflow: visible;
  background: none;
  color: var(--ffb-text-2);
  font-size: .9375rem;
  line-height: 1.45;
  text-align: left;
  text-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.ffb-page .ffb-inhalt figcaption strong {
  display: block;
  margin-bottom: 2px;
  color: var(--ffb-text);
  font-family: var(--ffb-font-head);
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.15;
}
.ffb-page .ffb-inhalt .wp-block-gallery .wp-lightbox-container,
.ffb-page .ffb-inhalt .wp-block-media-text .wp-lightbox-container { display: block; }

.ffb-page .ffb-inhalt .wp-block-media-text {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 24px;
  align-items: center;
  margin: 2em 0;
}
.ffb-page .ffb-inhalt .wp-block-media-text.has-media-on-the-right .wp-block-media-text__media { order: 2; }
.ffb-page .ffb-inhalt .wp-block-media-text__media { margin: 0; }
.ffb-page .ffb-inhalt .wp-block-media-text__media img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.ffb-page .ffb-inhalt .wp-block-media-text__content { padding: 0; }
.ffb-page .ffb-inhalt .wp-block-media-text__content > :first-child { margin-top: 0; }

@media (max-width: 767px) {
  .ffb-page .ffb-inhalt .wp-block-gallery.columns-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ffb-page .ffb-inhalt .wp-block-media-text.is-stacked-on-mobile { grid-template-columns: 1fr; }
  .ffb-page .ffb-inhalt .wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__media { order: 0; }
}
@media (max-width: 767px) {
  .ffb-page .ffb-inhalt .wp-block-gallery:has(figcaption) { grid-template-columns: 1fr; }
}


/* ==========================================================================
   Ansichten: Bildbetrachter für Galerien (Fahrzeugseiten)
   ========================================================================== */
.ffb-page .ffb-ansichten { margin: 32px 0 40px; outline-offset: 4px; }
.ffb-page .ffb-ansichten__buehne {
  position: relative;
  overflow: hidden;
  aspect-ratio: 3 / 2;
  background: var(--ffb-anthrazit);
}
.ffb-page .ffb-ansichten__bild {
  width: 100%;
  height: 100%;
  object-fit: contain;
  cursor: zoom-in;
}
.ffb-page .ffb-ansichten__pfeil {
  position: absolute;
  top: 50%;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  margin-top: -24px;
  padding: 0;
  border: 0;
  background: rgba(10, 10, 10, .6);
  color: #fff;
  cursor: pointer;
  transition: background-color .15s;
}
.ffb-page .ffb-ansichten__pfeil:hover { background: var(--ffb-rot); }
.ffb-page .ffb-ansichten__pfeil::before {
  content: "";
  width: 12px;
  height: 12px;
  border-top: 3px solid currentColor;
  border-right: 3px solid currentColor;
}
.ffb-page .ffb-ansichten__pfeil--zurueck { left: 0; }
.ffb-page .ffb-ansichten__pfeil--zurueck::before { transform: translateX(3px) rotate(-135deg); }
.ffb-page .ffb-ansichten__pfeil--weiter { right: 0; }
.ffb-page .ffb-ansichten__pfeil--weiter::before { transform: translateX(-3px) rotate(45deg); }
.ffb-page .ffb-ansichten__zaehler {
  position: absolute;
  left: 0;
  bottom: 0;
  padding: 6px 12px 4px;
  background: rgba(10, 10, 10, .7);
  color: #fff;
  font-family: var(--ffb-font-head);
  font-size: 1.0625rem;
  font-weight: 600;
  pointer-events: none;
}
.ffb-page .ffb-ansichten__text {
  padding: 16px 0 0 16px;
  border-left: 3px solid var(--ffb-rot);
  margin-top: 16px;
}
.ffb-page .ffb-ansichten__text strong { font-weight: 600; }
.ffb-page .ffb-ansichten__leiste {
  display: flex;
  gap: 8px;
  margin-top: 16px;
  padding-bottom: 4px;
  overflow-x: auto;
  scrollbar-width: thin;
}
.ffb-page .ffb-ansichten__leiste button {
  position: relative;
  flex: 0 0 104px;
  padding: 0;
  border: 0;
  background: var(--ffb-hell);
  cursor: pointer;
  opacity: .6;
  transition: opacity .15s;
}
.ffb-page .ffb-ansichten__leiste button:hover,
.ffb-page .ffb-ansichten__leiste button[aria-current="true"] { opacity: 1; }
.ffb-page .ffb-ansichten__leiste button[aria-current="true"]::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 4px;
  background: var(--ffb-rot);
}
.ffb-page .ffb-ansichten__leiste img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }

.ffb-zoom { max-width: 96vw; max-height: 96vh; padding: 0; border: 0; background: transparent; }
.ffb-zoom::backdrop { background: rgba(10, 10, 10, .92); }
.ffb-zoom img { display: block; max-width: 96vw; max-height: 92vh; object-fit: contain; cursor: zoom-out; }
.ffb-zoom__zu {
  position: fixed;
  top: 16px;
  right: 16px;
  width: 48px;
  height: 48px;
  border: 0;
  background: var(--ffb-rot);
  cursor: pointer;
}
.ffb-zoom__zu::before,
.ffb-zoom__zu::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 22px;
  height: 3px;
  margin: -1.5px 0 0 -11px;
  background: #fff;
}
.ffb-zoom__zu::before { transform: rotate(45deg); }
.ffb-zoom__zu::after { transform: rotate(-45deg); }

@media (max-width: 767px) {
  .ffb-page .ffb-ansichten { margin-left: calc(-1 * var(--ffb-rand)); margin-right: calc(-1 * var(--ffb-rand)); }
  .ffb-page .ffb-ansichten__text,
  .ffb-page .ffb-ansichten__leiste { margin-left: var(--ffb-rand); margin-right: var(--ffb-rand); }
  .ffb-page .ffb-ansichten__leiste button { flex-basis: 84px; }
}

/* Kalender: Pfeil im Abo-Button auf rotem Grund weiß */


/* ==========================================================================
   Fahrzeug-Unterseite: Bühne, Eckdaten, Sprungnavigation, Steckbrief, Beladung
   ========================================================================== */
.ffb-page .ffb-fzhero {
  background: var(--ffb-anthrazit) var(--ffb-fz-bild, none) center / cover no-repeat;
  color: #fff;
}
.ffb-page .ffb-fzhero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(10, 10, 10, .88) 0%, rgba(10, 10, 10, .45) 45%, rgba(10, 10, 10, .15) 75%, rgba(10, 10, 10, .4) 100%);
}
.ffb-page .ffb-fzhero--ohnebild::before { background: none; }
.ffb-page .ffb-fzhero__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: clamp(420px, 68vh, 760px);
  padding-top: clamp(24px, 3vw, 40px);
  padding-bottom: clamp(40px, 5vw, 72px);
}
.ffb-page .ffb-fzhero--ohnebild .ffb-fzhero__inner { min-height: clamp(280px, 40vh, 420px); }
.ffb-page .ffb-fzhero__zurueck {
  align-self: flex-start;
  color: #fff;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: var(--ffb-rot);
  text-decoration-thickness: 2px;
  text-underline-offset: 5px;
}
.ffb-page .ffb-fzhero__text { max-width: none; }
.ffb-page .ffb-fzhero h1 { -webkit-hyphens: auto; hyphens: auto; }
.ffb-page .ffb-fzhero__kurz {
  margin-bottom: 16px;
  padding: 7px 12px 5px;
  background: #fff;
  color: var(--ffb-anthrazit);
  font-size: 1.375rem;
}
.ffb-page .ffb-fzhero__untertitel { margin-top: 14px; color: var(--ffb-text-dunkel-2); font-size: clamp(1.0625rem, 1rem + .4vw, 1.3125rem); }
.ffb-page .ffb-stat__num--text { font-size: clamp(1.875rem, 1.4rem + 1.6vw, 3rem); }

.ffb-page .ffb-sprungnav {
  position: sticky;
  top: var(--ffb-header-hoehe);
  z-index: 50;
  background: var(--ffb-weiss);
  border-bottom: 1px solid var(--ffb-linie);
}
.ffb-page.admin-bar .ffb-sprungnav { top: calc(var(--ffb-header-hoehe) + 32px); }
.ffb-page .ffb-sprungnav ul { display: flex; gap: 28px; overflow-x: auto; scrollbar-width: none; }
.ffb-page .ffb-sprungnav ul::-webkit-scrollbar { display: none; }
.ffb-page .ffb-sprungnav a {
  display: block;
  flex: none;
  padding: 15px 0 12px;
  border-bottom: 3px solid transparent;
  color: var(--ffb-text-2);
  font-family: var(--ffb-font-head);
  font-size: 1.25rem;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}
.ffb-page .ffb-sprungnav a:hover { color: var(--ffb-text); }
.ffb-page .ffb-sprungnav a[aria-current="true"] { border-bottom-color: var(--ffb-rot); color: var(--ffb-text); }
.ffb-page .ffb-abschnitt { scroll-margin-top: calc(var(--ffb-header-hoehe) + 56px); }
.ffb-page .ffb-abschnitt--hell { background: var(--ffb-hell); }

.ffb-page .ffb-abschnitt__kopf {
  display: flex;
  align-items: flex-start;
  gap: clamp(16px, 2vw, 28px);
  margin-bottom: clamp(28px, 3vw, 44px);
  padding-bottom: 20px;
  border-bottom: 1px solid var(--ffb-linie);
}
.ffb-page .ffb-abschnitt__nr {
  font-family: var(--ffb-font-head);
  font-size: clamp(2.75rem, 2rem + 2.4vw, 4.25rem);
  font-weight: 700;
  line-height: .85;
  color: transparent;
  -webkit-text-stroke: 1.5px var(--ffb-rot);
}
.ffb-page .ffb-abschnitt__kopf p { margin-top: 6px; color: var(--ffb-text-2); }
.ffb-page .ffb-abschnitt__mehr { margin-top: 28px; }

.ffb-page .ffb-steckbrief {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
  gap: 12px;
  margin: 0;
}
.ffb-page .ffb-steckbrief > div {
  padding: 18px 20px;
  border: 1px solid var(--ffb-linie);
  border-top: 3px solid var(--ffb-anthrazit);
  background: var(--ffb-weiss);
}
.ffb-page .ffb-steckbrief dt { color: var(--ffb-text-2); font-size: .875rem; }
.ffb-page .ffb-steckbrief dd {
  margin: 4px 0 0;
  font-family: var(--ffb-font-head);
  font-size: 1.4375rem;
  font-weight: 600;
  line-height: 1.15;
}

/* Beladung: volle Breite, Geräteräume mit Foto im Wechsel links und rechts */
.ffb-page .ffb-beladung { max-width: none; }
.ffb-page .ffb-beladung > :where(p, ul, ol, h2, h3, h4, blockquote) { max-width: 46rem; }
.ffb-page .ffb-beladung .wp-block-media-text {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(24px, 4vw, 64px);
  align-items: center;
  margin: 0;
  padding: clamp(28px, 3.5vw, 48px) 0;
  border-top: 1px solid var(--ffb-linie);
}
.ffb-page .ffb-beladung > .wp-block-media-text:first-child { padding-top: 0; border-top: 0; }
.ffb-page .ffb-beladung .wp-block-media-text__media { margin: 0; }
.ffb-page .ffb-beladung .wp-block-media-text__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  background: var(--ffb-hell);
}
.ffb-page .ffb-beladung .wp-block-media-text__content { padding: 0; }
.ffb-page .ffb-beladung .wp-block-media-text__content h3 {
  margin: 0 0 .5em;
  padding-left: 14px;
  border-left: 4px solid var(--ffb-rot);
  font-size: clamp(1.5rem, 1.3rem + .6vw, 1.875rem);
  font-weight: 700;
}
.ffb-page .ffb-beladung .wp-block-media-text__content ul {
  margin-top: 1em;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--ffb-linie);
}
.ffb-page .ffb-beladung .wp-block-media-text__content li {
  margin: 0;
  padding: 9px 0 9px 22px;
  border-bottom: 1px solid var(--ffb-linie);
  position: relative;
}
.ffb-page .ffb-beladung .wp-block-media-text__content li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 1.05em;
  width: 8px;
  height: 8px;
  background: var(--ffb-rot);
}
/* Foto links, Text rechts; jeder zweite Geräteraum umgekehrt (WordPress setzt feste Rasterplätze) */
.ffb-page .ffb-beladung .wp-block-media-text > .wp-block-media-text__media { grid-column: 1; grid-row: 1; }
.ffb-page .ffb-beladung .wp-block-media-text > .wp-block-media-text__content { grid-column: 2; grid-row: 1; }
.ffb-page .ffb-beladung .wp-block-media-text:nth-child(even of .wp-block-media-text) > .wp-block-media-text__media,
.ffb-page .ffb-beladung .wp-block-media-text.has-media-on-the-right > .wp-block-media-text__media { grid-column: 2; }
.ffb-page .ffb-beladung .wp-block-media-text:nth-child(even of .wp-block-media-text) > .wp-block-media-text__content,
.ffb-page .ffb-beladung .wp-block-media-text.has-media-on-the-right > .wp-block-media-text__content { grid-column: 1; }

@media (max-width: 767px) {
  .ffb-page .ffb-fzhero__inner { min-height: clamp(380px, 72svh, 620px); }
  .ffb-page .ffb-sprungnav ul { gap: 22px; }
  .ffb-page .ffb-steckbrief { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .ffb-page .ffb-steckbrief > div { padding: 14px 14px; }
  .ffb-page .ffb-steckbrief dd { font-size: 1.1875rem; overflow-wrap: anywhere; }
  .ffb-page .ffb-beladung .wp-block-media-text { grid-template-columns: 1fr; gap: 18px; }
  .ffb-page .ffb-beladung .wp-block-media-text > .wp-block-media-text__media { grid-column: 1 !important; grid-row: 1; }
  .ffb-page .ffb-beladung .wp-block-media-text > .wp-block-media-text__content { grid-column: 1 !important; grid-row: 2; }
}

/* Lange deutsche Wörter (z. B. Hilfeleistungslöschgruppenfahrzeug) umbrechen statt überstehen */
.ffb-page h1,
.ffb-page h2,
.ffb-page h3 { overflow-wrap: break-word; }
@media (max-width: 767px) {
  .ffb-page h1,
  .ffb-page h2,
  .ffb-page h3 { -webkit-hyphens: auto; hyphens: auto; }
}


/* Geräteräume aus dem Formular "Fahrzeugdaten" */
.ffb-page .ffb-raum {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(24px, 4vw, 64px);
  align-items: center;
  padding: clamp(28px, 3.5vw, 48px) 0;
  border-top: 1px solid var(--ffb-linie);
}
.ffb-page .ffb-raum:first-child { padding-top: 0; border-top: 0; }
.ffb-page .ffb-raum__bild { margin: 0; }
.ffb-page .ffb-raum__bild img,
.ffb-page .ffb-raum__leer {
  display: grid;
  place-items: center;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  background: var(--ffb-hell);
  color: var(--ffb-text-2);
}
.ffb-page .ffb-raum--leer .ffb-raum__leer { outline: 2px dashed var(--ffb-linie); outline-offset: -2px; }
.ffb-page .ffb-raum:nth-child(even) .ffb-raum__bild { order: 2; }
.ffb-page .ffb-raum__text h3 {
  margin: 0 0 .5em;
  padding-left: 14px;
  border-left: 4px solid var(--ffb-rot);
  font-size: clamp(1.5rem, 1.3rem + .6vw, 1.875rem);
  font-weight: 700;
  line-height: 1.1;
}
.ffb-page .ffb-raum__text p { max-width: 38rem; }
.ffb-page .ffb-raum__text p + p { margin-top: .7em; }
.ffb-page .ffb-raum__text ul { margin-top: 1em; border-top: 1px solid var(--ffb-linie); }
.ffb-page .ffb-raum__text li {
  position: relative;
  padding: 9px 0 9px 22px;
  border-bottom: 1px solid var(--ffb-linie);
}
.ffb-page .ffb-raum__text li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 1.05em;
  width: 8px;
  height: 8px;
  background: var(--ffb-rot);
}
.ffb-page .ffb-raeume + .ffb-beladung { margin-top: clamp(32px, 4vw, 56px); }
.ffb-page .ffb-ansichten-bereich { max-width: none; }
.ffb-page .ffb-ansichten-bereich .ffb-ansichten { margin-top: 0; }
@media (max-width: 767px) {
  .ffb-page .ffb-raum { grid-template-columns: 1fr; gap: 18px; }
  .ffb-page .ffb-raum:nth-child(even) .ffb-raum__bild { order: 0; }
}


/* Mitmachen: Wer, Wann, Wo */
.ffb-page .ffb-join__fakten {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
  max-width: 40rem;
  margin: 24px 0 0;
}
.ffb-page .ffb-join__fakten > div { padding: 12px 14px; border-left: 3px solid var(--ffb-rot); background: var(--ffb-anthrazit-2); }
.ffb-page .ffb-join__fakten dt { color: var(--ffb-text-dunkel-2); font-size: .875rem; }
.ffb-page .ffb-join__fakten dd { margin: 2px 0 0; font-weight: 600; line-height: 1.35; }


/* Einsatzfotos unter dem Bericht */
.ffb-page .ffb-einsatzfotos { margin-top: clamp(32px, 4vw, 48px); padding-top: clamp(24px, 3vw, 36px); border-top: 1px solid var(--ffb-linie); }
.ffb-page .ffb-einsatzfotos > h2 { margin: 0 0 16px; font-size: 1.75rem; font-weight: 700; }
.ffb-page .ffb-einsatzfotos .ffb-ansichten { margin: 0; }

/* ==========================================================================
   Version 0.3: Im Aufbau mit Bild, Abteilungskachel „Im Aufbau“,
   Terminkategorien, Feuerwehrsignet
   ========================================================================== */
.ffb-page .ffb-pagehead--aufbau-bild {
  background: var(--ffb-anthrazit) var(--ffb-kopfbild) center / cover no-repeat;
}
.ffb-page .ffb-pagehead--aufbau-bild::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(10, 10, 10, .88) 0%, rgba(10, 10, 10, .6) 55%, rgba(10, 10, 10, .35) 100%);
}
.ffb-page .ffb-pagehead--aufbau-bild .ffb-container { position: relative; z-index: 1; }
.ffb-page .ffb-pagehead--aufbau-bild .ffb-pagehead__inner { min-height: clamp(260px, 36vh, 420px); align-items: end; }
.ffb-page .ffb-aufbau__signet {
  width: clamp(96px, 12vw, 170px);
  height: auto;
  opacity: .9;
  justify-self: end;
}
.ffb-page .ffb-aufbau-fakten { padding-bottom: 0; }

.ffb-page .ffb-dept { position: relative; }
.ffb-page .ffb-dept__status {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 1;
  padding: 4px 9px 3px;
  background: var(--ffb-schwarz);
  border-left: 3px solid var(--ffb-rot);
  color: #fff;
  font-family: var(--ffb-font-head);
  font-size: .9375rem;
  font-weight: 600;
}

.ffb-page .ffb-termine__filter { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.ffb-page a.ffb-chip { text-decoration: none; color: var(--ffb-text); }
.ffb-page .ffb-chip.is-active { background: var(--ffb-anthrazit); border-color: var(--ffb-anthrazit); color: #fff; }
.ffb-page .ffb-date__kat {
  display: inline-block;
  margin-left: 6px;
  padding: 0 6px;
  border: 1px solid var(--ffb-linie);
  color: var(--ffb-text-2);
  font-size: .8125rem;
}

.ffb-page .ffb-footer__legal { display: flex; align-items: center; gap: 12px; }
.ffb-page .ffb-footer__signet { width: 40px; height: auto; }
@media (max-width: 767px) {
  .ffb-page .ffb-aufbau__signet { display: none; }
  .ffb-page .ffb-termine__filter { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
}
.ffb-page .ffb-pagehead--aufbau-bild { position: relative; overflow: hidden; }
@media (min-width: 768px) {
  .ffb-page .ffb-pagehead--aufbau .ffb-pagehead__inner { grid-template-columns: minmax(0, 1fr) auto; }
}
.ffb-page .ffb-termine__filter { margin-top: 8px; }


/* Termine: Farbpunkte der Kategorien, Kalender-Abo, Titel im Block-Modus */
.ffb-page .ffb-chip__punkt { display: inline-block; width: 10px; height: 10px; margin-right: 7px; border-radius: 50%; vertical-align: 1px; box-shadow: 0 0 0 1px rgba(0,0,0,.12); }

/* ==========================================================================
   Seite im Aufbau: eigenständige Baustellenseite
   ========================================================================== */
.ffb-page .ffb-baustelle { background: var(--ffb-anthrazit); color: #fff; }
.ffb-page .ffb-baustelle__band {
  height: 14px;
  background: repeating-linear-gradient(-45deg, var(--ffb-rot) 0 18px, #fff 18px 36px);
}
.ffb-page .ffb-baustelle__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: clamp(24px, 4vw, 64px);
  align-items: center;
  padding-top: clamp(40px, 6vw, 80px);
  padding-bottom: clamp(40px, 6vw, 80px);
}
.ffb-page .ffb-baustelle__inner--ohnebild { grid-template-columns: minmax(0, 1fr); max-width: 56rem; }
.ffb-page .ffb-baustelle .ffb-status { border-color: rgba(255, 255, 255, .55); }
.ffb-page .ffb-baustelle h1 { margin: 0; }
.ffb-page .ffb-baustelle__lead {
  max-width: 40rem;
  margin-top: 16px;
  color: var(--ffb-text-dunkel-2);
  font-size: clamp(1.0625rem, 1rem + .4vw, 1.3125rem);
}
.ffb-page .ffb-baustelle__notruf {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid rgba(255, 255, 255, .2);
}
.ffb-page .ffb-baustelle__notruf span { color: var(--ffb-text-dunkel-2); font-size: 1.0625rem; }
.ffb-page .ffb-baustelle__notruf a {
  font-family: var(--ffb-font-head);
  font-size: clamp(2.25rem, 1.8rem + 1.8vw, 3.25rem);
  font-weight: 700;
  line-height: 1;
  color: #fff;
  text-decoration: underline;
  text-decoration-color: var(--ffb-rot);
  text-decoration-thickness: 4px;
  text-underline-offset: 6px;
}
.ffb-page .ffb-baustelle__bild { margin: 0; }
.ffb-page .ffb-baustelle__bild img { display: block; width: 100%; height: auto; }
.ffb-page .ffb-baustelle__bild--signet { justify-self: center; max-width: 220px; opacity: .9; }
.ffb-page .ffb-aufbau-fakten .ffb-h2 { margin-bottom: 20px; }

@media (max-width: 767px) {
  .ffb-page .ffb-baustelle__inner { grid-template-columns: 1fr; }
  .ffb-page .ffb-baustelle__bild { order: -1; }
}

/* Termine: eigene Filter statt der Kategorie-Auswahl des Kalenders */
.ffb-page .ffb-termine__filter { margin-bottom: 8px; }
.ffb-page .ffb-filter--unter { margin-bottom: 24px; }
.ffb-page .ffb-filter--unter .ffb-chip { font-size: .9375rem; padding: 6px 12px; }
/* Auswahlfeld "Art" */
.ffb-page .ffb-auswahl { display: inline-flex; align-items: center; gap: 10px; }
.ffb-page .ffb-auswahl > span { font-family: var(--ffb-font-head); font-size: 1.0625rem; font-weight: 600; color: var(--ffb-text-2); }
.ffb-page .ffb-auswahl select {
  min-height: 42px;
  padding: 8px 38px 8px 12px;
  border: 0;
  border-bottom: 2px solid var(--ffb-linie);
  border-radius: 0;
  background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23555C61' stroke-width='2'/%3E%3C/svg%3E") right 10px center / 12px 8px no-repeat;
  color: var(--ffb-text);
  font-family: var(--ffb-font-head);
  font-size: 1.125rem;
  font-weight: 600;
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
}
.ffb-page .ffb-auswahl select:hover { border-bottom-color: var(--ffb-anthrazit); }
.ffb-page .ffb-auswahl select:focus-visible { outline: 2px solid var(--ffb-rot); outline-offset: 3px; }

/* Kasten "Termine in den eigenen Kalender" */
.ffb-page .ffb-abo {
  margin-top: clamp(48px, 7vw, 88px);
  padding: clamp(26px, 3.5vw, 40px);
  background: var(--ffb-hell);
  border-top: 3px solid var(--ffb-rot);
}
.ffb-page .ffb-abo__titel { margin: 0 0 6px; font-family: var(--ffb-font-head); font-size: clamp(1.5rem, 1.3rem + .7vw, 2rem); font-weight: 700; }
.ffb-page .ffb-abo__text { margin: 0 0 20px; max-width: 46rem; color: var(--ffb-text-2); }
.ffb-page .ffb-abo__gruppe { border: 0; margin: 0 0 24px; padding: 0; }
.ffb-page .ffb-abo__alle {
  font-size: 1.0625rem;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 40px;
  margin-bottom: 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--ffb-linie);
  width: 100%;
  cursor: pointer;
}
.ffb-page .ffb-abo__spalten {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 8px clamp(20px, 3vw, 40px);
}
.ffb-page .ffb-abo__gruppe-block { display: grid; gap: 2px; align-content: start; }
.ffb-page .ffb-abo label { display: flex; align-items: center; gap: 10px; min-height: 36px; cursor: pointer; }
.ffb-page .ffb-abo__haupt { font-weight: 600; }
.ffb-page .ffb-abo__unter { padding-left: 30px; font-size: .9375rem; }
.ffb-page .ffb-abo input[type="checkbox"] { width: 19px; height: 19px; accent-color: var(--ffb-rot); flex: none; }
.ffb-page .ffb-abo .ffb-chip__punkt { margin-right: 0; }
.ffb-page .ffb-abo__zeile { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--ffb-linie); }
.ffb-page .ffb-abo__hinweis { margin-top: 12px; color: var(--ffb-text-2); font-size: .9375rem; }

@media (max-width: 767px) {
  .ffb-page .ffb-termin { grid-template-columns: 56px minmax(0, 1fr); gap: 14px; padding: 12px 14px 12px 11px; }
  .ffb-page .ffb-termin__tag { font-size: 1.75rem; }
  .ffb-page .ffb-termin__kats { grid-column: 2; flex-direction: row; }
  .ffb-page .ffb-katchip--art { padding-left: 0; }
  .ffb-page .ffb-auswahl { width: 100%; }
  .ffb-page .ffb-auswahl select { flex: 1; }
  .ffb-page .ffb-abo__zeile > * { width: 100%; text-align: center; }
}

/* Wegweiser zu Unterseiten, zum Beispiel Führung und Einsatzgebiet */
.ffb-page .ffb-linkcard { position: relative; }
.ffb-page .ffb-linkcard__status {
  display: inline-block;
  margin-top: 10px;
  padding: 2px 8px;
  border: 1px solid var(--ffb-linie);
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--ffb-text-2);
}

/* Termine: Monatsansicht */
.ffb-page .ffb-kalender + .ffb-kalender { margin-top: clamp(28px, 4vw, 44px); }
.ffb-page .ffb-kalender__raster { border: 1px solid var(--ffb-linie); background: var(--ffb-linie); display: grid; gap: 1px; }
.ffb-page .ffb-kalender__kopf,
.ffb-page .ffb-kalender__woche { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; }
.ffb-page .ffb-kalender__kopf span {
  padding: 8px 6px;
  background: var(--ffb-anthrazit);
  color: #fff;
  font-family: var(--ffb-font-head);
  font-size: .9375rem;
  font-weight: 600;
  text-align: center;
}
.ffb-page .ffb-kalender__tag { min-height: 104px; padding: 6px; background: var(--ffb-weiss); }
.ffb-page .ffb-kalender__tag--leer { background: var(--ffb-hell); }
.ffb-page .ffb-kalender__zahl { display: block; font-family: var(--ffb-font-head); font-size: 1.0625rem; font-weight: 600; color: var(--ffb-text-2); }
.ffb-page .ffb-kalender__tag.hat-termine .ffb-kalender__zahl { color: var(--ffb-text); }
.ffb-page .ffb-kalender__tag.is-heute { box-shadow: inset 0 0 0 2px var(--ffb-rot); }
.ffb-page .ffb-kalender__termin {
  display: block;
  margin-top: 5px;
  padding: 5px 6px 5px 8px;
  background: var(--ffb-hell);
  border-left: 3px solid var(--ffb-anthrazit);
  font-size: .8125rem;
  line-height: 1.25;
  color: var(--ffb-text);
  text-decoration: none;
}
.ffb-page .ffb-kalender__termin:hover { background: var(--ffb-weiss); border-left-color: var(--ffb-rot); }
.ffb-page .ffb-kalender__punkt { display: block; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; }
.ffb-page .ffb-kalender__termin { position: relative; }
.ffb-page .ffb-kalender__zeit { display: block; color: var(--ffb-text-2); font-size: .75rem; }
.ffb-page .ffb-kalender__titel { display: block; font-weight: 600; overflow-wrap: anywhere; }

@media (max-width: 767px) {
  .ffb-page .ffb-kalender__raster { display: block; border: 0; background: none; }
  .ffb-page .ffb-kalender__kopf { display: none; }
  .ffb-page .ffb-kalender__woche { display: block; }
  .ffb-page .ffb-kalender__tag--leer { display: none; }
  .ffb-page .ffb-kalender__tag {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 12px;
    min-height: 0;
    padding: 10px 12px;
    border: 1px solid var(--ffb-linie);
    margin-bottom: -1px;
  }
  .ffb-page .ffb-kalender__tag:not(.hat-termine) { display: none; }
  .ffb-page .ffb-kalender__zahl { grid-column: 1; grid-row: 1; font-size: 1.5rem; }
  .ffb-page .ffb-kalender__termin { grid-column: 2; margin-top: 0; }
  .ffb-page .ffb-kalender__termin + .ffb-kalender__termin { margin-top: 6px; }
}

/* 404: Suchfeld */
.ffb-page .ffb-suche { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.ffb-page .ffb-suche input {
  flex: 1 1 260px;
  min-height: 48px;
  padding: 10px 14px;
  border: 1px solid rgba(255, 255, 255, .4);
  background: rgba(255, 255, 255, .06);
  color: #fff;
  font: inherit;
  font-size: 1.0625rem;
}
.ffb-page .ffb-suche input::placeholder { color: var(--ffb-text-dunkel-2); }
.ffb-page .ffb-suche input:focus { outline: 2px solid var(--ffb-rot); outline-offset: 2px; }
.ffb-page .ffb-baustelle--404 .ffb-baustelle__notruf { margin-top: 24px; }


/* Filterleiste: ruhige Reiter statt Chips */
/* ==========================================================================
   Terminliste
   ========================================================================== */
.ffb-page .ffb-termine-liste { display: grid; gap: 2px; }
.ffb-page .ffb-termin {
  position: relative;
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) minmax(160px, 240px);
  gap: clamp(16px, 2vw, 28px);
  align-items: center;
  padding: 14px 20px 14px 17px;
  background: var(--ffb-weiss);
  border: 1px solid var(--ffb-linie);
  border-left: 3px solid var(--ffb-katfarbe, var(--ffb-anthrazit));
}
.ffb-page .ffb-termin:hover { border-color: var(--ffb-anthrazit); border-left-color: var(--ffb-katfarbe, var(--ffb-anthrazit)); }
.ffb-page .ffb-termin__datum { display: grid; justify-items: center; line-height: 1; }
.ffb-page .ffb-termin__wochentag,
.ffb-page .ffb-termin__monat { font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: var(--ffb-text-2); }
.ffb-page .ffb-termin__tag { font-family: var(--ffb-font-head); font-size: 2rem; font-weight: 700; margin: 3px 0; }
.ffb-page .ffb-termin__inhalt { display: grid; gap: 2px; min-width: 0; }
.ffb-page .ffb-termin__zeit { color: var(--ffb-text-2); font-size: .875rem; }
.ffb-page .ffb-termin__titel {
  font-family: var(--ffb-font-head);
  font-size: clamp(1.1875rem, 1.1rem + .35vw, 1.375rem);
  font-weight: 600;
  line-height: 1.2;
  color: var(--ffb-text);
  text-decoration: none;
  overflow-wrap: anywhere;
}
.ffb-page .ffb-termin__titel::after { content: ""; position: absolute; inset: 0; }
.ffb-page .ffb-termin__titel:hover { text-decoration: underline; text-decoration-color: var(--ffb-rot); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.ffb-page .ffb-termin__ort { color: var(--ffb-text-2); font-size: .875rem; }
.ffb-page .ffb-termin__kats { display: grid; justify-items: start; gap: 2px; min-width: 0; }
.ffb-page .ffb-katchip {
  display: flex;
  align-items: flex-start;
  max-width: 100%;
  font-size: .875rem;
  line-height: 1.3;
  color: var(--ffb-text);
  overflow-wrap: anywhere;
}
.ffb-page .ffb-katchip .ffb-chip__punkt { margin-top: .28em; }
.ffb-page .ffb-katchip--art { padding-left: 17px; color: var(--ffb-text-2); font-size: .8125rem; }
.ffb-page .ffb-termin__kats { padding-right: 2px; }
.ffb-page .ffb-chip__punkt { display: inline-block; width: 10px; height: 10px; margin-right: 7px; border-radius: 50%; flex: none; }

@media (max-width: 989px) and (min-width: 768px) {
  .ffb-page .ffb-termin { grid-template-columns: 66px minmax(0, 1fr) minmax(130px, 180px); }
}

.ffb-page .ffb-filterleiste {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 24px;
  border-bottom: 1px solid var(--ffb-linie);
}
.ffb-page .ffb-filterleiste button {
  position: relative;
  padding: 8px 0 10px;
  border: 0;
  border-bottom: 3px solid transparent;
  background: none;
  color: var(--ffb-text-2);
  font-family: var(--ffb-font-head);
  font-size: 1.25rem;
  font-weight: 600;
  cursor: pointer;
}
.ffb-page .ffb-filterleiste button::before {
  content: "";
  display: inline-block;
  width: 10px;
  height: 10px;
  margin-right: 9px;
  border-radius: 50%;
  background: var(--ffb-katfarbe, transparent);
  vertical-align: 1px;
}
.ffb-page .ffb-filterleiste button:first-child::before { display: none; }
.ffb-page .ffb-filterleiste button span {
  margin-left: 7px;
  font-size: .9375rem;
  font-weight: 400;
  color: var(--ffb-text-2);
}
.ffb-page .ffb-filterleiste button:hover { color: var(--ffb-text); }
.ffb-page .ffb-filterleiste button[aria-pressed="true"] { border-bottom-color: var(--ffb-rot); color: var(--ffb-text); }

/* Monat für Monat blättern */
.ffb-page .ffb-monatsnav {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 20px;
}
.ffb-page .ffb-monatsnav button {
  width: 44px;
  height: 44px;
  border: 1px solid var(--ffb-linie);
  background: var(--ffb-weiss);
  color: var(--ffb-text);
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
}
.ffb-page .ffb-monatsnav button:hover:not(:disabled) { border-color: var(--ffb-anthrazit); background: var(--ffb-anthrazit); color: #fff; }
.ffb-page .ffb-monatsnav button:disabled { opacity: .35; cursor: default; }
.ffb-page .ffb-monatsnav__name {
  font-family: var(--ffb-font-head);
  font-size: clamp(1.5rem, 1.3rem + .8vw, 2rem);
  font-weight: 700;
}

@media (max-width: 767px) {
  .ffb-page .ffb-filterleiste { flex-wrap: nowrap; overflow-x: auto; gap: 20px; scrollbar-width: none; }
  .ffb-page .ffb-filterleiste::-webkit-scrollbar { display: none; }
  .ffb-page .ffb-filterleiste button { flex: none; font-size: 1.125rem; white-space: nowrap; }
  .ffb-page .ffb-abo__spalten { grid-template-columns: minmax(0, 1fr); gap: 4px; }
}

/* Filterleiste und Art-Auswahl in einer Gruppe */
.ffb-page .ffb-filtergruppe { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px 28px; }
@media (max-width: 767px) {
  .ffb-page .ffb-filtergruppe { width: 100%; }
  .ffb-page .ffb-filterleiste { width: 100%; gap: 2px 18px; }
  .ffb-page .ffb-filterleiste button { font-size: 1.0625rem; }
}

@media (max-width: 767px) {
  .ffb-page .ffb-termin {
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 14px;
    padding: 12px 14px 12px 11px;
  }
  .ffb-page .ffb-termin__tag { font-size: 1.75rem; }
  .ffb-page .ffb-termin__kats { grid-column: 2; display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 4px; }
  .ffb-page .ffb-katchip { white-space: normal; }
  .ffb-page .ffb-katchip--art { padding-left: 0; }
}


/* Fahrzeuge: Zustand „Kommt bald“ und „Außer Dienst“ */
.ffb-page .ffb-fzstatus {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  margin-bottom: 10px;
  padding: 4px 10px;
  border: 1px solid var(--ffb-linie);
  background: var(--ffb-weiss);
  font-family: var(--ffb-font-head);
  font-size: .9375rem;
  font-weight: 600;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: var(--ffb-text-2);
}
.ffb-page .ffb-fzstatus--geplant { border-color: var(--ffb-rot); color: var(--ffb-rot); }
.ffb-page .ffb-fzhero .ffb-fzstatus { margin-bottom: 16px; background: transparent; border-color: rgba(255, 255, 255, .5); color: #fff; }
.ffb-page .ffb-fzhero .ffb-fzstatus--geplant { border-color: var(--ffb-rot); background: var(--ffb-rot); color: #fff; }
.ffb-page .ffb-fahrzeug--ausser-dienst,
.ffb-page .ffb-fahrzeug--geplant { background: var(--ffb-hell); }
.ffb-page .ffb-fahrzeug--ausser-dienst .ffb-fahrzeug__bild img,
.ffb-page .ffb-fahrzeug--ausser-dienst > img { filter: grayscale(1); opacity: .75; }
.ffb-page .ffb-fahrzeug--geplant .ffb-fahrzeug__bild img,
.ffb-page .ffb-fahrzeug--geplant > img { opacity: .55; }
.ffb-page .ffb-fahrzeug--ausser-dienst .ffb-fahrzeug__name,
.ffb-page .ffb-fahrzeug--geplant .ffb-fahrzeug__name { color: var(--ffb-text-2); }
.ffb-page .ffb-fahrzeug__zeitraum { margin: -4px 0 10px; color: var(--ffb-text-2); font-size: .9375rem; }
.ffb-page .ffb-head--gruppe { margin-top: clamp(40px, 5vw, 64px); }
.ffb-page .ffb-fahrzeuge + .ffb-head--gruppe { border-top: 1px solid var(--ffb-linie); padding-top: clamp(28px, 3vw, 40px); }

@media (max-width: 767px) { .ffb-page .ffb-logo img { height: 36px; } }


/* Zurück nach oben */
.ffb-page .ffb-nach-oben {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 90;
  width: 48px;
  height: 48px;
  border: 0;
  background: var(--ffb-anthrazit);
  color: #fff;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(0, 0, 0, .25);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity .2s, transform .2s, visibility 0s linear .2s;
}
.ffb-page .ffb-nach-oben.is-sichtbar { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.ffb-page .ffb-nach-oben:hover { background: var(--ffb-rot); }
.ffb-page .ffb-nach-oben:focus-visible { outline: 2px solid var(--ffb-rot); outline-offset: 3px; }
.ffb-page .ffb-nach-oben::before { content: ""; display: block; width: 12px; height: 12px; margin: 4px auto 0; border-top: 3px solid currentColor; border-left: 3px solid currentColor; transform: rotate(45deg); }
@media (max-width: 767px) { .ffb-page .ffb-nach-oben { display: none; } }
@media (prefers-reduced-motion: reduce) { .ffb-page .ffb-nach-oben { transition: none; } }


/* Infobanner */
.ffb-page .ffb-banner { background: var(--ffb-anthrazit); color: #fff; border-top: 3px solid var(--ffb-rot); }
.ffb-page .ffb-banner--dringend { background: var(--ffb-rot); border-top-color: #7a1d14; }
.ffb-page .ffb-banner__inner { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 24px; padding: 14px 0; }
.ffb-page .ffb-banner__label {
  font-family: var(--ffb-font-head);
  font-weight: 700;
  font-size: 1.0625rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  padding: 3px 10px;
  border: 1px solid rgba(255, 255, 255, .55);
}
.ffb-page .ffb-banner__text { flex: 1; min-width: 220px; font-size: 1.0625rem; }
.ffb-page .ffb-banner .ffb-btn { padding: 9px 16px; font-size: .9375rem; }
.ffb-page .ffb-banner--dringend .ffb-btn--primary { background: #fff; color: var(--ffb-rot); }
.ffb-page .ffb-banner--dringend .ffb-btn--primary:hover { background: var(--ffb-anthrazit); color: #fff; }

/* Kontaktseite */
.ffb-page .ffb-personen { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 330px), 1fr)); gap: 16px; }
.ffb-page .ffb-person {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  padding: 18px;
  background: var(--ffb-weiss);
  border: 1px solid var(--ffb-linie);
  border-top: 3px solid var(--ffb-anthrazit);
}
.ffb-page .ffb-person__bild { width: 72px; height: 72px; border-radius: 50%; overflow: hidden; background: var(--ffb-hell); display: grid; place-items: center; }
.ffb-page .ffb-person__bild img { width: 100%; height: 100%; object-fit: cover; }
.ffb-page .ffb-person__initial { font-family: var(--ffb-font-head); font-size: 1.5rem; font-weight: 700; color: var(--ffb-text-2); }
.ffb-page .ffb-person__name { display: block; font-family: var(--ffb-font-head); font-size: 1.3125rem; font-weight: 600; line-height: 1.15; }
.ffb-page .ffb-person__rolle { display: block; color: var(--ffb-text-2); font-size: .9375rem; margin: 2px 0 8px; }
.ffb-page .ffb-person__mail { font-size: .9375rem; overflow-wrap: anywhere; }

/* Kontaktformular */
.ffb-page .ffb-form { max-width: 640px; display: grid; gap: 14px; }
.ffb-page .ffb-form label { display: grid; gap: 6px; font-weight: 600; }
.ffb-page .ffb-form input[type="text"],
.ffb-page .ffb-form input[type="email"],
.ffb-page .ffb-form textarea {
  padding: 12px 14px;
  border: 1px solid var(--ffb-linie);
  background: var(--ffb-weiss);
  font: inherit;
  font-weight: 400;
  font-size: 1rem;
  color: var(--ffb-text);
}
.ffb-page .ffb-form input:focus-visible,
.ffb-page .ffb-form textarea:focus-visible { outline: 2px solid var(--ffb-rot); outline-offset: 2px; }
.ffb-page .ffb-form__zeile { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ffb-page .ffb-form .ffb-check { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; font-size: .9375rem; color: var(--ffb-text-2); }
.ffb-page .ffb-form .ffb-check input { width: 20px; height: 20px; accent-color: var(--ffb-rot); margin-top: 2px; flex: none; }
.ffb-page .ffb-form__fuss { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.ffb-page .ffb-form__hinweis { color: var(--ffb-text-2); font-size: .9375rem; }
.ffb-page .ffb-form__honig { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ffb-page .ffb-meldung { padding: 16px 18px; margin-bottom: 20px; border-left: 3px solid var(--ffb-rot); background: var(--ffb-hell); }
.ffb-page .ffb-meldung--fehler { border-left-color: #B3261E; }
@media (max-width: 767px) {
  .ffb-page .ffb-form__zeile { grid-template-columns: 1fr; }
  .ffb-page .ffb-banner__inner { padding: 12px 0; }
}

/* Lange E-Mail-Adressen brechen um statt über den Rand zu laufen */
.ffb-page .ffb-facts dd a,
.ffb-page .ffb-person__mail { overflow-wrap: anywhere; }


/* Burg über dem Footer: der Himmel nimmt die Farbe des Abschnitts darüber (setzt ffb.js) */
.ffb-page .ffb-footer.ffb-burg-oben { padding-top: 0; }
.ffb-page .ffb-footer.ffb-burg-oben::before { margin-bottom: clamp(28px, 4vw, 56px); }
.ffb-page .ffb-footer__person { margin-top: 14px; padding-top: 12px; border-top: 1px solid rgba(255, 255, 255, .14); }
.ffb-page .ffb-footer__person strong { display: block; font-family: var(--ffb-font-head); font-size: 1.0625rem; color: #fff; }
.ffb-page .ffb-footer__person span { color: var(--ffb-text-dunkel-2); font-size: .9rem; }
.ffb-page .ffb-footer__alle { display: inline-block; margin-top: 10px; font-weight: 600; }


/* Kontaktseite: je Person ein Abschnitt, Foto rechts */
.ffb-page .ffb-kontaktperson {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 24px 48px;
  padding: 28px 0 40px;
  border-bottom: 1px solid var(--ffb-linie);
}
.ffb-page .ffb-kontaktperson:last-child { border-bottom: 0; }
.ffb-page .ffb-kontaktperson__funktion {
  display: inline-block;
  margin: 0 0 16px;
  padding-bottom: 6px;
  border-bottom: 3px solid var(--ffb-rot);
  font-family: var(--ffb-font-head);
  font-size: clamp(1.75rem, 1.4rem + 1vw, 2.375rem);
  font-weight: 700;
  line-height: 1;
}
.ffb-page .ffb-kontaktperson__name { display: block; font-family: var(--ffb-font-head); font-size: 1.5rem; font-weight: 600; }
.ffb-page .ffb-kontaktperson__rang { display: block; color: var(--ffb-text-2); margin-top: 2px; }
.ffb-page .ffb-kontaktperson__aktionen { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0 20px; }
.ffb-page .ffb-kontaktperson__aktionen .ffb-btn { padding: 9px 14px; font-size: .9375rem; }
.ffb-page .ffb-kontaktperson__h { margin: 0 0 6px; font-family: var(--ffb-font-head); font-size: 1.125rem; font-weight: 600; }
.ffb-page .ffb-kontaktperson__liste { margin: 0; padding-left: 1.2em; }
.ffb-page .ffb-kontaktperson__liste li::marker { color: var(--ffb-rot); }
.ffb-page .ffb-kontaktperson__foto { margin: 0; align-self: start; }
.ffb-page .ffb-kontaktperson__foto img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; }
.ffb-page .ffb-form select { padding: 12px 14px; border: 1px solid var(--ffb-linie); background: var(--ffb-weiss); font: inherit; font-weight: 400; font-size: 1rem; color: var(--ffb-text); }
@media (max-width: 767px) {
  .ffb-page .ffb-kontaktperson { grid-template-columns: 1fr; }
  .ffb-page .ffb-kontaktperson__foto { order: -1; max-width: 220px; }
}

.ffb-page .ffb-kontaktperson--ohnefoto { grid-template-columns: minmax(0, 1fr); }

/* Fußzeile: Links sichtbar */
.ffb-page .ffb-footer__legal a { color: #fff; text-decoration: underline; text-decoration-color: var(--ffb-rot); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.ffb-page .ffb-footer__legal a:hover { color: var(--ffb-rot-hell, #E06A5C); }


/* Vorschauleiste für Redakteure */
.ffb-page .ffb-vorschau { position: fixed; left: 0; right: 0; bottom: 0; z-index: 95; background: var(--ffb-rot); color: #fff; font-size: .9375rem; box-shadow: 0 -4px 16px rgba(0,0,0,.25); }
.ffb-page .ffb-vorschau__inner { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; max-width: var(--ffb-max, 1200px); margin: 0 auto; padding: 10px 20px; }
.ffb-page .ffb-vorschau__inner strong { font-family: var(--ffb-font-head); font-size: 1.0625rem; text-transform: uppercase; letter-spacing: .04em; }
.ffb-page .ffb-vorschau__knopf { display: inline-block; padding: 6px 12px; border: 1px solid #fff; background: #fff; color: var(--ffb-rot); font: inherit; font-weight: 600; text-decoration: none; cursor: pointer; }
.ffb-page .ffb-vorschau__knopf--leise { background: transparent; color: #fff; }
.ffb-page .ffb-vorschau__knopf:hover { background: var(--ffb-anthrazit); color: #fff; border-color: var(--ffb-anthrazit); }
.ffb-page:has(.ffb-vorschau) .ffb-nach-oben { bottom: 72px; }
