/* Kopfzeile: Titel und Slogan in Weiss */
.container-header .navbar-brand,
.container-header .navbar-brand a,
.container-header .brand-logo,
.container-header .brand-logo span,
.container-header .site-description {
  color: #fff !important;
}
.container-header .navbar-brand a:hover {
  opacity: .85;
}

/* ===== Einsatzberichte: Infokasten mit den Einsatzdaten ===== */
.com-content-article .fields-container {
  list-style: none;
  margin: 0 0 1.5rem;
  padding: 1rem 1.25rem;
  background: #f6f6f7;
  border-left: 4px solid #b3161c;
  border-radius: 6px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: .35rem 1.5rem;
}
.com-content-article .fields-container .field-entry { margin: 0; }
.com-content-article .fields-container .field-label { font-weight: 600; color: #555; }

/* ===== Einsatzbilder als Raster ===== */
.einsatz-galerie {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: .5rem;
  margin: .5rem 0 1.5rem;
}
.einsatz-galerie a { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 6px; background: #eee; }
.einsatz-galerie img { width: 100%; height: 100%; object-fit: cover; transition: transform .2s; }
.einsatz-galerie a:hover img { transform: scale(1.05); }
.einsatz-karte, .video-link { margin-top: .5rem; }


/* ===== Hauptmenü in der roten Kopfzeile: weiße Schrift ===== */
.container-header .mod-menu > li > a,
.container-header .mod-menu > li > span,
.container-header .mod-menu > li > button,
.container-header .metismenu > li > a,
.container-header .metismenu > li > button { color: #fff !important; }
.container-header .metismenu > li > a:hover,
.container-header .metismenu > li.active > a,
.container-header .metismenu > li.current > a { background: rgba(255,255,255,.15); border-radius: 4px; }
.container-header .metismenu .mm-toggler::after { border-top-color: #fff; }
.container-header .navbar-toggler { color: #fff; border-color: rgba(255,255,255,.6); }
/* Untermenüs: dunkle Schrift auf Weiß */
.container-header .metismenu ul a { color: #22262a !important; }

/* ===== Fußzeilenmenü nebeneinander ===== */
.footer .mod-menu { display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; list-style: none; padding: 0; margin: 0; }
.footer .mod-menu a { color: #fff; }



/* ===== Dienstgrade ===== */
.dienstgrade { display: grid; gap: 1rem; }
.dienstgrad { display: flex; gap: 1rem; align-items: flex-start; padding: 1rem; background: #f6f6f7; border-radius: 6px; }
.dienstgrad img { width: 90px; flex: 0 0 90px; height: auto; }
.dienstgrad h3 { margin-top: 0; font-size: 1.2rem; }
.dienstgrad ul { margin-bottom: .5rem; }

/* ===== Downloads ===== */
.download-liste { list-style: none; padding-left: 0; }
.download-liste li { padding: .35rem 0 .35rem 1.6rem; border-bottom: 1px solid #eee; position: relative; }
.download-liste li::before { content: "\1F4C4"; position: absolute; left: 0; }
.download-liste small { color: #666; }

/* ===== Einsatz-Übersicht als Karten ===== */
.blog-items.columns-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 1.5rem; }
@media (max-width: 991px) { .blog-items.columns-3 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 575px) { .blog-items.columns-3 { grid-template-columns: 1fr !important; } }
.blog-items .blog-item {
  display: flex; flex-direction: column; position: relative; overflow: hidden;
  background: #fff; border: 1px solid #e3e5e8; border-radius: 8px; padding: 0; margin: 0;
  box-shadow: 0 1px 3px rgba(0,0,0,.06); transition: box-shadow .2s, transform .2s;
}
.blog-items .blog-item:hover { box-shadow: 0 6px 18px rgba(0,0,0,.12); transform: translateY(-2px); }
.blog-item figure.item-image { float: none; margin: 0; width: 100%; }
.blog-item figure.item-image img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 0; }
/* Platzhalter, wenn kein Foto vorhanden ist */
.blog-items .blog-item:not(:has(.item-image))::before {
  content: ""; display: block; aspect-ratio: 16 / 10;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7h3l2-3h8l2 3h3v12H3z'/%3E%3Ccircle cx='12' cy='13' r='4'/%3E%3Cline x1='2' y1='2' x2='22' y2='22'/%3E%3C/svg%3E") center / 64px 64px no-repeat, linear-gradient(135deg, #7d0f13, #b3161c);
  opacity: .95;
}
.blog-item .item-content { display: flex; flex-direction: column; flex: 1; padding: .9rem 1rem 1.1rem; }
.blog-item .page-header h2 { font-size: 1.12rem; line-height: 1.3; margin: 0 0 .5rem; }
.blog-item .page-header h2 a { color: #22262a; text-decoration: none; }
.blog-item .page-header h2 a::after { content: ""; position: absolute; inset: 0; z-index: 1; } /* ganze Karte klickbar */
.blog-item:hover .page-header h2 a { color: #b3161c; }
.blog-item .icons { position: absolute; top: .5rem; right: .5rem; z-index: 2; background: #fff; border-radius: 4px; padding: 0 .3rem; }
/* Kleine Etiketten: Datum, Einsatzart, Ort */
.blog-item .fields-container { display: flex !important; flex-wrap: wrap; gap: .35rem; list-style: none; margin: 0 0 .6rem; padding: 0; background: none; border: 0; }
.blog-item .fields-container .field-entry { display: none; }
.blog-item .fields-container .field-label { display: none; }
.blog-item .fields-container .field-entry.einsatzdatum,
.blog-item .fields-container .field-entry.einsatzart,
.blog-item .fields-container .field-entry.einsatzort { display: inline-block; font-size: .78rem; padding: .12rem .5rem; border-radius: 3px; background: #f1f2f4; color: #444; }
.blog-item .fields-container .field-entry.einsatzart { background: #fde8e8; color: #9b1218; font-weight: 600; }
/* Nur die ersten drei Zeilen des Berichts */
.blog-item .item-content > p { margin: 0; font-size: .92rem; color: #555; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.blog-item .item-content > p ~ p, .blog-item .readmore { display: none; }


/* ===== Historie ===== */
.historie-eckdaten { background: #fbf3f3; border-left: 5px solid #b3161c; border-radius: 6px; padding: 1rem 1.25rem; margin: 1.5rem 0 2rem; }
.historie-eckdaten h2 { margin-top: 0; font-size: 1.25rem; color: #b3161c; }
.historie-eckdaten ul { list-style: none; padding: 0; margin: 0; columns: 2; column-gap: 2rem; }
.historie-eckdaten li { break-inside: avoid; padding: .3rem 0; border-bottom: 1px dashed #e2c4c5; }
.historie-eckdaten li strong { display: inline-block; min-width: 3.2rem; color: #b3161c; }
.historie-eckdaten ~ h2 { clear: both; margin-top: 2.25rem; padding-bottom: .3rem; border-bottom: 2px solid #b3161c; }
.historie-bild { float: right; clear: right; width: 300px; max-width: 45%; margin: .25rem 0 1rem 1.5rem; }
.historie-bild-links { float: left; clear: none; margin: .25rem 1.5rem 1rem 0; }
.historie-bild img { width: 100%; height: auto; border-radius: 6px; box-shadow: 0 2px 8px rgba(0,0,0,.15); }
.historie-bild figcaption { font-size: .85rem; color: #666; text-align: center; margin-top: .35rem; font-style: italic; }
.historie-tabelle { width: auto; min-width: 50%; margin: 1rem 0 1.5rem; }
.historie-tabelle caption { caption-side: top; font-weight: 700; color: #b3161c; }
.historie-tabelle td:first-child { font-weight: 600; white-space: nowrap; padding-right: 1.5rem; }
.historie-tabelle tr:nth-child(odd) td { background: #fbf3f3; }
@media (max-width: 767px) {
  .historie-eckdaten ul { columns: 1; }
  .historie-bild, .historie-bild-links { float: none; width: 100%; max-width: 100%; margin: 1rem 0; }
  .historie-tabelle { width: 100%; }
}


/* ===== Förderverein ===== */
.fv-beitrag { display: flex; gap: 1.5rem; align-items: center; background: #fbf3f3; border-left: 5px solid #b3161c; border-radius: 6px; padding: 1.25rem 1.5rem; margin: 2rem 0; clear: both; }
.fv-beitrag h2 { margin-top: 0; color: #b3161c; font-size: 1.35rem; }
.fv-beitrag p:last-child { margin-bottom: 0; }
.fv-beitrag-betrag { flex: 0 0 auto; width: 8.5rem; height: 8.5rem; border-radius: 50%; background: #b3161c; color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 2.2rem; font-weight: 700; line-height: 1.1; }
.fv-beitrag-betrag span { font-size: .85rem; font-weight: 400; }
.fv-downloads .btn { margin: .25rem .5rem .25rem 0; }
.kontakt-karten { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1.25rem; margin: 1rem 0 2rem; }
.kontakt-karte { border: 1px solid #e5d5d6; border-top: 4px solid #b3161c; border-radius: 6px; padding: 1rem 1.25rem; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.06); }
.kontakt-karte h3 { font-size: 1.1rem; color: #b3161c; margin-top: 0; }
.kontakt-karte p:last-child { margin-bottom: 0; }
@media (max-width: 767px) {
  .fv-beitrag { flex-direction: column; text-align: center; }
  .kontakt-karten { grid-template-columns: 1fr; }
}
.fv-downloads .btn-outline-primary { color: #b3161c; border-color: #b3161c; background: #fff; }
.fv-downloads .btn-outline-primary:hover { color: #fff; background: #b3161c; }

/* ===== Partnerschaft ===== */
.partner-zitat { margin: 1rem 0 1.25rem; padding: .9rem 1.25rem; border-left: 4px solid #b3161c; background: #f7f7f7; font-style: italic; font-size: 1.1rem; border-radius: 0 6px 6px 0; }
.video-karten { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1rem; margin: 1rem 0 2rem; }
.video-karte { display: flex; align-items: center; gap: .9rem; padding: 1rem; border: 1px solid #e5d5d6; border-radius: 6px; background: #fff; color: #222 !important; text-decoration: none !important; box-shadow: 0 1px 4px rgba(0,0,0,.06); transition: box-shadow .15s, transform .15s; }
.video-karte:hover { box-shadow: 0 4px 12px rgba(0,0,0,.15); transform: translateY(-2px); }
.video-play { flex: 0 0 auto; width: 2.8rem; height: 2.8rem; border-radius: 50%; background: #b3161c; color: #fff; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; padding-left: .15rem; }
@media (max-width: 767px) { .video-karten { grid-template-columns: 1fr; } }
.video-play { font-size: 0 !important; padding-left: .2rem; }
.video-play::before { content: ""; border-style: solid; border-width: .5rem 0 .5rem .85rem; border-color: transparent transparent transparent #fff; }

.partner-wappen { display: flex; justify-content: center; align-items: center; gap: 2.5rem; margin: 1.5rem 0 2rem; padding: 1.5rem 1rem; background: linear-gradient(90deg, #f3f6fb, #fff 50%, #fbf3f3); border-radius: 8px; }
.partner-wappen figure { margin: 0; text-align: center; }
.partner-wappen img { width: 130px; height: auto; filter: drop-shadow(0 3px 6px rgba(0,0,0,.2)); }
.partner-wappen figcaption { margin-top: .5rem; font-weight: 700; font-size: 1.1rem; line-height: 1.25; }
.partner-wappen figcaption small { font-weight: 400; color: #666; font-size: .8rem; }
.partner-wappen-verbindung { display: flex; flex-direction: column; align-items: center; color: #b3161c; font-weight: 700; font-size: 1.6rem; line-height: 1.1; }
.partner-wappen-verbindung span { font-size: .85rem; font-weight: 400; color: #555; }
.partner-wappen-verbindung::before { content: ""; display: block; width: 4rem; height: 3px; background: #b3161c; margin-bottom: .4rem; border-radius: 2px; }
@media (max-width: 575px) { .partner-wappen { gap: 1rem; } .partner-wappen img { width: 90px; } .partner-wappen figcaption small { display: none; } }

/* ===== Dienstgrade (neu) ===== */
.dg-truppe { --dg: #c8102e; } .dg-gruppe { --dg: #e07b00; } .dg-zug { --dg: #7d0f13; } .dg-leitung { --dg: #5a5a5a; }
.dg-uebersicht { display: grid; grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); gap: .5rem; margin: 1.5rem 0; }
.dg-uebersicht a { display: flex; flex-direction: column; align-items: center; gap: .35rem; padding: .6rem .3rem; border-radius: 6px; border-bottom: 3px solid var(--dg); background: #fafafa; color: #222 !important; text-decoration: none !important; font-size: .72rem; line-height: 1.2; text-align: center; transition: background .15s, transform .15s; }
.dg-uebersicht a:hover { background: #fbf3f3; transform: translateY(-2px); }
.dg-uebersicht img { width: 30px; height: auto; }
.dg-gruppe-titel { border-bottom: 3px solid var(--dg) !important; padding-bottom: .3rem; margin-top: 2.25rem; }
.dg-karten { display: grid; gap: 1rem; margin: 1rem 0 1.5rem; }
.dg-karte { display: flex; gap: 1.25rem; align-items: flex-start; padding: 1rem 1.25rem; background: #fff; border: 1px solid #e6e6e6; border-left: 5px solid var(--dg); border-radius: 6px; box-shadow: 0 1px 4px rgba(0,0,0,.05); scroll-margin-top: 170px; }
.dg-karte > img { flex: 0 0 auto; width: 40px; height: auto; }
.dg-inhalt { flex: 1; min-width: 0; }
.dg-karte h3 { margin: 0 0 .5rem; font-size: 1.15rem; color: var(--dg); }
.dg-karte h3 small { display: block; font-size: .8rem; font-weight: 400; color: #777; }
.dg-tabelle { width: 100%; font-size: .9rem; border-collapse: collapse; }
.dg-tabelle th { text-align: left; font-size: .75rem; text-transform: uppercase; letter-spacing: .03em; color: #777; padding: .25rem .5rem; border-bottom: 1px solid #ddd; }
.dg-tabelle td { padding: .4rem .5rem; border-bottom: 1px solid #f0f0f0; vertical-align: top; }
.dg-tabelle td:first-child { font-weight: 600; width: 38%; }
.dg-tabelle tr:last-child td { border-bottom: 0; }
.dg-quelle { margin-top: 2rem; color: #777; }
@media (max-width: 575px) {
  .dg-tabelle thead { display: none; }
  .dg-tabelle tr, .dg-tabelle td { display: block; width: auto !important; }
  .dg-tabelle td { border: 0; padding: .1rem 0; }
  .dg-tabelle tr { padding: .4rem 0; border-bottom: 1px solid #eee; }
  .dg-karte { padding: .8rem; gap: .8rem; }
}
.dg-uebersicht { grid-template-columns: repeat(7, minmax(0,1fr)); }
.dg-uebersicht a { hyphens: auto; overflow-wrap: anywhere; }
@media (max-width: 767px) { .dg-uebersicht { grid-template-columns: repeat(4, minmax(0,1fr)); } }

/* ===== Fahrzeuge ===== */
.fz-kopf { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(0,1fr); gap: 1.5rem; align-items: stretch; margin: 1.5rem 0 2rem; }
.fz-bild { margin: 0; }
.fz-bild img { width: 100%; height: 100%; object-fit: cover; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,.15); }
.fz-steckbrief { background: #fbf3f3; border-top: 5px solid #b3161c; border-radius: 8px; padding: 1.25rem 1.5rem; }
.fz-funkrufname { font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; color: #777; margin-bottom: .25rem; }
.fz-funkrufname::after { content: ""; display: block; }
.fz-steckbrief .fz-funkrufname { font-size: 1.4rem; font-weight: 700; color: #b3161c; text-transform: none; letter-spacing: 0; margin-bottom: .75rem; }
.fz-steckbrief table { width: 100%; border-collapse: collapse; }
.fz-steckbrief th, .fz-steckbrief td { padding: .45rem 0; border-bottom: 1px dashed #e2c4c5; vertical-align: top; text-align: left; }
.fz-steckbrief tr:last-child th, .fz-steckbrief tr:last-child td { border-bottom: 0; }
.fz-steckbrief th { width: 40%; font-weight: 600; color: #555; padding-right: 1rem; }
.fz-ausstattung { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1.25rem; margin: 1rem 0 2rem; }
.fz-ausstattung > div { border: 1px solid #e5d5d6; border-left: 5px solid #b3161c; border-radius: 6px; padding: 1rem 1.25rem; }
.fz-ausstattung h3 { font-size: 1.05rem; color: #b3161c; margin-top: 0; }
.fz-ausstattung ul { margin-bottom: 0; padding-left: 1.2rem; }
@media (max-width: 767px) { .fz-kopf, .fz-ausstattung { grid-template-columns: 1fr; } }

.fz-karten { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.25rem; margin: 1.5rem 0 2rem; }
.fz-karte { display: flex; flex-direction: column; border-radius: 8px; overflow: hidden; background: #fff; border: 1px solid #e6e6e6; box-shadow: 0 1px 4px rgba(0,0,0,.06); color: #222 !important; text-decoration: none !important; transition: box-shadow .15s, transform .15s; }
.fz-karte:hover { box-shadow: 0 6px 16px rgba(0,0,0,.15); transform: translateY(-3px); }
.fz-karte img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.fz-karte-text { padding: .8rem 1rem 1rem; border-top: 4px solid #b3161c; }
.fz-karte-text strong { display: block; font-size: 1.2rem; color: #b3161c; }
.fz-karte-text small { color: #666; }
@media (max-width: 991px) { .fz-karten { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 575px) { .fz-karten { grid-template-columns: 1fr; } }
.com-content-article__body h2, .com-content-article__body .einsatz-galerie { clear: both; }

/* ===== Ausbildung ===== */
.ausb-steckbrief { margin: 1.5rem 0 2rem; }
.ausb-steckbrief th { width: 30%; }
.ausb-themen { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 1rem; margin: 1rem 0 2rem; }
.ausb-themen > div { display: flex; flex-direction: column; gap: .3rem; padding: 1rem; border: 1px solid #e6e6e6; border-top: 4px solid #b3161c; border-radius: 6px; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.05); }
.ausb-themen strong { color: #b3161c; font-size: 1.02rem; }
.ausb-themen span { font-size: .88rem; color: #555; }
.ausb-weg { list-style: none; counter-reset: weg; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 0; padding: 0; margin: 1.25rem 0 1rem; }
.ausb-weg li { counter-increment: weg; position: relative; padding: 3.2rem .75rem 0; text-align: center; }
.ausb-weg li::before { content: counter(weg); position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 2.4rem; height: 2.4rem; border-radius: 50%; background: #b3161c; color: #fff; font-weight: 700; display: flex; align-items: center; justify-content: center; z-index: 1; }
.ausb-weg li::after { content: ""; position: absolute; top: 1.15rem; left: 50%; width: 100%; height: 3px; background: #e2c4c5; }
.ausb-weg li:last-child::after { display: none; }
.ausb-weg li:first-child::before { background: #7d0f13; box-shadow: 0 0 0 4px #f3d6d7; }
.ausb-weg strong { display: block; }
.ausb-weg span { font-size: .85rem; color: #666; }
.ausb-downloads { margin-top: 2rem; }
.ausb-downloads ul { columns: 1 !important; }
@media (max-width: 991px) { .ausb-themen { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 767px) {
  .ausb-weg { grid-template-columns: 1fr; gap: 1rem; }
  .ausb-weg li { padding: .2rem 0 0 3.4rem; text-align: left; min-height: 2.6rem; }
  .ausb-weg li::before { left: 0; transform: none; }
  .ausb-weg li::after { display: none; }
}
@media (max-width: 575px) { .ausb-themen { grid-template-columns: 1fr; } }
.historie-eckdaten .download-liste li { padding-left: 1.6rem; }
.ausb-weg.schritt-2 li:first-child::before { background: #b3161c; box-shadow: none; }
.ausb-weg.schritt-2 li:nth-child(2)::before { background: #7d0f13; box-shadow: 0 0 0 4px #f3d6d7; }

/* ===== Knoten ===== */
.kn-befestigen { --kn: #b3161c; } .kn-sichern { --kn: #e07b00; } .kn-verbinden { --kn: #1d6fb8; } .kn-retten { --kn: #2e8b3d; }
.kn-legende { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0; }
.kn-legende span { padding: .2rem .7rem; border-radius: 999px; background: var(--kn); color: #fff; font-size: .8rem; font-weight: 600; }
.kn-karten { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.25rem; margin: 1rem 0 1.5rem; }
.kn-karte { display: flex; flex-direction: column; padding: 1rem 1.25rem; background: #fff; border: 1px solid #e6e6e6; border-top: 5px solid var(--kn); border-radius: 6px; box-shadow: 0 1px 4px rgba(0,0,0,.05); }
.kn-zweck { align-self: flex-start; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--kn); }
.kn-karte h3 { font-size: 1.1rem; margin: .3rem 0 .5rem; }
.kn-karte p { font-size: .92rem; color: #444; flex: 1; }
.kn-video { display: inline-flex; align-items: center; gap: .6rem; font-weight: 600; color: #b3161c !important; text-decoration: none !important; }
.kn-video .video-play { width: 2rem; height: 2rem; }
.kn-video .video-play::before { border-width: .38rem 0 .38rem .62rem; }
.kn-video:hover { text-decoration: underline !important; }
.kn-hinweis { color: #666; }
@media (max-width: 991px) { .kn-karten { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 575px) { .kn-karten { grid-template-columns: 1fr; } }

/* ===== Leitern ===== */
.ausb-themen.ausb-themen-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.leiter-tabelle { margin: 1rem 0 .5rem; }
.leiter-tabelle thead th { background: #b3161c; color: #fff; border: 0; font-weight: 600; }
.leiter-tabelle td { vertical-align: top; }
.leiter-tabelle td small { color: #666; }
.leiter-tabelle tbody tr:nth-child(odd) td { background: #fbf3f3; }
.pdf-symbol { font-size: .7rem !important; font-weight: 700; padding-left: 0 !important; }
.pdf-symbol::before { display: none; }
@media (max-width: 767px) { .ausb-themen.ausb-themen-3 { grid-template-columns: 1fr; } }
.video-karten:has(> :nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0,1fr)); }
@media (max-width: 767px) { .video-karten:has(> :nth-child(2):last-child) { grid-template-columns: 1fr; } }

/* ===== Drehleiter-Ausbildung ===== */
.dl-schritte { list-style: none; counter-reset: dl; padding: 0; margin: 1rem 0; display: grid; gap: .75rem; }
.dl-schritte li { counter-increment: dl; position: relative; padding: .8rem 1rem .8rem 3.6rem; background: #fff; border: 1px solid #e6e6e6; border-left: 5px solid #b3161c; border-radius: 6px; }
.dl-schritte li::before { content: counter(dl); position: absolute; left: .9rem; top: 50%; transform: translateY(-50%); width: 2rem; height: 2rem; border-radius: 50%; background: #b3161c; color: #fff; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.dl-schritte strong { display: block; }
.dl-schritte span { font-size: .9rem; color: #555; }

/* ===== FAQ (Jugend-/Kinderfeuerwehr) ===== */
.jf-faq { display: grid; gap: .6rem; margin: 1rem 0 2rem; }
.jf-faq details { border: 1px solid #e6e6e6; border-left: 5px solid #b3161c; border-radius: 6px; background: #fff; }
.jf-faq summary { cursor: pointer; padding: .8rem 1rem; font-weight: 600; list-style: none; position: relative; padding-right: 2.5rem; }
.jf-faq summary::-webkit-details-marker { display: none; }
.jf-faq summary::after { content: "+"; position: absolute; right: 1rem; top: 50%; transform: translateY(-50%); font-size: 1.4rem; color: #b3161c; font-weight: 400; }
.jf-faq details[open] summary::after { content: "\2013"; }
.jf-faq details[open] summary { border-bottom: 1px solid #f0e0e0; }
.jf-faq details p { margin: 0; padding: .8rem 1rem; color: #444; }

/* ===== Bürgerinfo ===== */
.notruf-box { display: flex; align-items: center; gap: 1.25rem; background: #b3161c; color: #fff; border-radius: 8px; padding: 1rem 1.5rem; margin: 1.25rem 0 2rem; }
.notruf-nummer { font-size: 2.6rem; font-weight: 800; line-height: 1; background: #fff; color: #b3161c; border-radius: 8px; padding: .4rem .9rem; }
.notruf-box strong { font-size: 1.1rem; }
.bi-regeln { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1.25rem; margin: 1rem 0 2rem; }
.bi-regeln > div { border-radius: 6px; padding: 1rem 1.25rem; border: 1px solid #e6e6e6; }
.bi-ja { border-top: 5px solid #2e8b3d !important; background: #f3faf4; }
.bi-nein { border-top: 5px solid #b3161c !important; background: #fdf3f3; }
.bi-regeln h3 { font-size: 1.05rem; margin-top: 0; }
.bi-ja h3 { color: #2e8b3d; } .bi-nein h3 { color: #b3161c; }
.bi-regeln ul { margin: 0; padding-left: 1.2rem; }
.bi-ja li::marker { content: "\2714  "; color: #2e8b3d; }
.bi-nein li::marker { content: "\2716  "; color: #b3161c; }
/* Übersicht Bürgerinfo: Karten ohne Bild */
.itemid-137 .blog-items .blog-item::before, .itemid-137 .blog-items .blog-item .item-image { display: none !important; }
.itemid-137 .blog-items .blog-item { border-top: 5px solid #b3161c; padding-top: .25rem; }
.itemid-137 .blog-items .blog-item .item-content > p { -webkit-line-clamp: 5; }
.itemid-137 .blog-items .blog-item .readmore { display: block !important; margin-top: .5rem; }
@media (max-width: 767px) { .bi-regeln { grid-template-columns: 1fr; } .notruf-box { flex-direction: column; text-align: center; } }
.bi-regeln ul { list-style: none; padding-left: 0; }
.bi-regeln li { position: relative; padding-left: 1.6rem; margin-bottom: .3rem; }
.bi-regeln li::marker { content: none; }
.bi-regeln li::before { position: absolute; left: 0; top: 0; font-weight: 700; font-family: Arial, sans-serif; }
.bi-ja li::before { content: "\2713"; color: #2e8b3d; }
.bi-nein li::before { content: "\2717"; color: #b3161c; }

/* ===== Downloads (neu) ===== */
.dlx-nav { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.25rem 0 1.5rem; }
.dlx-nav a { padding: .35rem .85rem; border-radius: 999px; background: #fbf3f3; border: 1px solid #e2c4c5; color: #7d0f13 !important; text-decoration: none !important; font-size: .88rem; font-weight: 600; transition: background .15s, color .15s; }
.dlx-nav a:hover { background: #b3161c; color: #fff !important; }
.dlx-gruppe { margin-top: 2rem; padding-bottom: .3rem; border-bottom: 3px solid #b3161c; }
.dlx-karten { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1.25rem; margin: 1rem 0 1.5rem; align-items: start; }
.dlx-karte { background: #fff; border: 1px solid #e6e6e6; border-radius: 8px; box-shadow: 0 1px 4px rgba(0,0,0,.05); overflow: hidden; scroll-margin-top: 170px; }
.dlx-kopf { background: linear-gradient(135deg,#7d0f13,#b3161c); color: #fff; padding: .75rem 1.1rem; }
.dlx-kopf h3 { margin: 0; font-size: 1.1rem; color: #fff; }
.dlx-sub { font-size: .8rem; opacity: .85; }
.dlx-liste { list-style: none; margin: 0; padding: 0; }
.dlx-liste li + li { border-top: 1px solid #f0f0f0; }
.dlx-liste a { display: flex; align-items: center; gap: .85rem; padding: .7rem 1.1rem; color: #222 !important; text-decoration: none !important; transition: background .15s; }
.dlx-liste a:hover { background: #fbf3f3; }
.dlx-typ { flex: 0 0 auto; width: 2.4rem; height: 2.9rem; border-radius: 4px; background: #b3161c; color: #fff; font-size: .68rem; font-weight: 800; display: flex; align-items: flex-end; justify-content: center; padding-bottom: .35rem; position: relative; clip-path: polygon(0 0, 72% 0, 100% 22%, 100% 100%, 0 100%); }
.dlx-titel { flex: 1; min-width: 0; font-weight: 600; font-size: .93rem; line-height: 1.3; }
.dlx-titel small { display: block; font-weight: 400; color: #777; font-size: .78rem; margin-top: .15rem; }
.dlx-pfeil { flex: 0 0 auto; width: 2rem; height: 2rem; border-radius: 50%; border: 2px solid #e2c4c5; color: #b3161c; display: flex; align-items: center; justify-content: center; font-weight: 700; transition: background .15s, color .15s, border-color .15s; }
.dlx-liste a:hover .dlx-pfeil { background: #b3161c; border-color: #b3161c; color: #fff; }
@media (max-width: 767px) { .dlx-karten { grid-template-columns: 1fr; } }

/* ===== Wer wir sind ===== */
.wws-motto { background: linear-gradient(135deg,#7d0f13,#b3161c); color: #fff; border-radius: 8px; padding: 1.6rem 1.5rem; margin: 1rem 0 1.5rem; text-align: center; }
.wws-motto span { font-size: 1.7rem; font-weight: 700; font-style: italic; line-height: 1.3; }
.wws-intro { display: flex; flex-direction: column; justify-content: space-between; gap: 1rem; }
.wws-intro p { font-size: 1.05rem; margin: 0; }
.wws-zahl { display: flex; align-items: center; gap: 1rem; background: #fbf3f3; border-left: 5px solid #b3161c; border-radius: 6px; padding: 1rem 1.25rem; }
.wws-zahl strong { font-size: 2.3rem; line-height: 1; color: #b3161c; white-space: nowrap; }
.wws-zahl span { font-size: .95rem; color: #444; }
.wws-aufgaben { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 1rem; margin: 1rem 0 2rem; }
.wws-aufgaben > div { position: relative; padding: 3.6rem 1rem 1rem; border: 1px solid #e6e6e6; border-top: 4px solid #b3161c; border-radius: 6px; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.05); }
.wws-aufgaben > div::before { position: absolute; top: .9rem; left: 1rem; width: 2.3rem; height: 2.3rem; border-radius: 50%; background: #b3161c; color: #fff; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; font-weight: 700; font-family: Arial, sans-serif; }
.wws-loeschen::before { content: "1"; } .wws-helfen::before { content: "2"; } .wws-retten::before { content: "3"; } .wws-vorbeugen::before { content: "4"; }
.wws-aufgaben strong { display: block; color: #b3161c; font-size: 1.05rem; margin-bottom: .3rem; }
.wws-aufgaben span { font-size: .9rem; color: #444; }
.wws-ehrenamt { border-left: 4px solid #e2c4c5; padding-left: 1.25rem; margin-bottom: 2rem; }
.wws-mitmachen { background: linear-gradient(135deg,#7d0f13,#b3161c); color: #fff; border-radius: 10px; padding: 1.5rem 1.75rem; margin: 2rem 0 1rem; }
.wws-mitmachen h2 { color: #fff; border: 0 !important; margin-top: 0; }
.wws-mitmachen a:not(.btn) { color: inherit; }
.wws-wege { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1rem; margin: 1rem 0 1.25rem; }
.wws-wege a { display: block; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.35); border-radius: 8px; padding: 1rem; color: #fff !important; text-decoration: none !important; transition: background .15s, transform .15s; }
.wws-wege a:hover { background: rgba(255,255,255,.22); transform: translateY(-2px); }
.wws-wege strong { display: block; font-size: 1.15rem; margin-bottom: .25rem; }
.wws-wege strong::after { content: " \2192"; }
.wws-wege span { font-size: .9rem; opacity: .9; }
.wws-knoepfe { margin: 0; }
.wws-knoepfe .btn { margin: .25rem .5rem .25rem 0; font-weight: 600; }
.wws-knoepfe .btn-light { color: #b3161c !important; }
.wws-knoepfe .btn-outline-light { color: #fff !important; }
@media (max-width: 991px) { .wws-aufgaben { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 767px) { .wws-wege { grid-template-columns: 1fr; } .wws-motto span { font-size: 1.3rem; } }
@media (max-width: 575px) { .wws-aufgaben { grid-template-columns: 1fr; } }

/* ===== Historie (Zeitstrahl) ===== */
.hz-zeitstrahl { background: linear-gradient(135deg,#7d0f13,#b3161c); color: #fff; border-radius: 10px; padding: 1.4rem 1.5rem 1.2rem; margin: 1.5rem 0 2.5rem; }
.hz-zeitstrahl h2 { color: #fff; margin: 0 0 1rem; font-size: 1.3rem; border: 0 !important; }
.hz-zeitstrahl ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .6rem; }
.hz-zeitstrahl li { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.25); border-radius: 6px; padding: .55rem .75rem; }
.hz-jahr { display: block; font-size: 1.35rem; font-weight: 800; line-height: 1.1; }
.hz-text { font-size: .85rem; opacity: .92; }
.hz-epochen { position: relative; margin-left: 1.1rem; padding-left: 2.2rem; border-left: 3px solid #e2c4c5; }
.hz-epoche { position: relative; padding-bottom: 1.5rem; }
.hz-epoche::after { content: ""; display: block; clear: both; }
.hz-epoche::before { content: ""; position: absolute; left: calc(-2.2rem - 10px); top: .35rem; width: 17px; height: 17px; border-radius: 50%; background: #b3161c; box-shadow: 0 0 0 4px #fff, 0 0 0 6px #e2c4c5; }
.hz-marke { display: inline-block; background: #b3161c; color: #fff; font-weight: 700; font-size: .85rem; padding: .15rem .65rem; border-radius: 999px; }
.hz-epoche h2 { margin-top: .4rem !important; border-bottom: 0 !important; clear: none !important; font-size: 1.55rem; }
.hz-epoche h2 small { display: none; }
.hz-epoche .historie-bild { margin-top: 0; }
@media (max-width: 767px) { .hz-epochen { margin-left: .4rem; padding-left: 1.4rem; } .hz-epoche::before { left: calc(-1.4rem - 10px); } }

/* ===== Kontakt ===== */
.kontakt-karten.kontakt-karten-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.kontakt-karte small { color: #777; }
.kontakt-karte p + p { margin-top: .5rem; }
@media (max-width: 991px) { .kontakt-karten.kontakt-karten-3 { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 575px) { .kontakt-karten.kontakt-karten-3 { grid-template-columns: 1fr; } }

/* ===== Startseite & Kopfbereich (Layout wie Entwurf) ===== */
/* Logo-Kreis vor dem Seitentitel */
.header .navbar-brand .brand-logo { display: inline-flex; align-items: center; gap: .9rem; }
.header .navbar-brand .brand-logo::before { content: "FF"; flex: 0 0 auto; width: 3.2rem; height: 3.2rem; border-radius: 50%; background: #fff; color: #b3161c; font-weight: 800; font-size: 1.15rem; display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 2px 6px rgba(0,0,0,.25); }
/* Notruf-Knopf */
.notruf-btn { display: inline-flex; align-items: center; gap: .4rem; padding: .35rem .9rem; border: 2px solid rgba(255,255,255,.75); border-radius: 6px; background: rgba(255,255,255,.12); color: #fff !important; text-decoration: none !important; font-size: .9rem; white-space: nowrap; }
.notruf-btn strong { font-size: 1.25rem; }
.notruf-btn:hover { background: #fff; color: #b3161c !important; }
.container-search { display: flex; align-items: center; }
/* Banner */
.container-banner { padding: 0; }
.hero { position: relative; min-height: 300px; display: flex; align-items: flex-end; background: linear-gradient(90deg, rgba(20,20,20,.88) 0%, rgba(20,20,20,.55) 55%, rgba(20,20,20,.25) 100%), url("../../../../../images/TLF/klein/IMG_6537.jpg") center 55% / cover no-repeat; color: #fff; }
.hero-inhalt { width: 100%; max-width: 1320px; margin: 0 auto; padding: 3rem 1.5rem 2.25rem; }
.hero-badge { display: inline-block; background: #b3161c; color: #fff; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: .25rem .6rem; border-radius: 3px; margin-bottom: .9rem; }
.hero h2 { color: #fff; font-size: 2.3rem; font-weight: 800; margin: 0 0 .5rem; border: 0 !important; }
.hero p { font-size: 1.1rem; max-width: 40rem; margin-bottom: 1rem; opacity: .95; }
.hero-knoepfe .btn { margin: .25rem .5rem .25rem 0; font-weight: 600; }
.hero-knoepfe .btn-light { color: #b3161c !important; }
/* Überschrift „Letzte Einsätze“ */
.itemid-142 .com-content-category-blog > .page-header h1, .itemid-142 .blog > .page-header h1 { display: inline-block; font-size: 1.6rem; padding-bottom: .4rem; border-bottom: 4px solid #b3161c; }
/* Zwei Karten pro Reihe */
.blog-items.columns-2 { display: grid !important; grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 1.25rem; }
@media (max-width: 575px) { .blog-items.columns-2 { grid-template-columns: 1fr !important; } }
.alle-einsaetze { margin: .5rem 0 1rem; }
.alle-einsaetze .btn { font-weight: 600; padding: .55rem 1.2rem; }
/* Seitenleiste */
.container-sidebar-right .moduletable, .container-sidebar-right .card { border: 0; background: transparent; box-shadow: none; padding: 0; margin-bottom: 1.25rem; }
.sb-karte { background: #fff; border: 1px solid #e3e3e3; border-radius: 8px; overflow: hidden; box-shadow: 0 1px 4px rgba(0,0,0,.05); }
.sb-titel { margin: 0; font-size: 1.05rem; padding: .8rem 1rem; background: #f6f6f6; border-bottom: 1px solid #e3e3e3; }
.sb-titel a { color: inherit; text-decoration: none; }
.ez-liste, .termin-liste { list-style: none; margin: 0; padding: .25rem 1rem; }
.ez-liste li { display: flex; justify-content: space-between; align-items: center; padding: .65rem 0; border-bottom: 1px solid #eee; }
.ez-liste li:last-child { border-bottom: 0; }
.ez-liste strong { color: #b3161c; font-size: 1.4rem; font-weight: 800; }
.ez-summe { margin: 0; padding: .6rem 1rem; background: #fbf3f3; font-size: .9rem; color: #555; }
.termin-liste li { display: flex; gap: .8rem; align-items: flex-start; padding: .65rem 0; border-bottom: 1px solid #eee; }
.termin-liste li:last-child { border-bottom: 0; }
.termin-tag { flex: 0 0 auto; width: 2.6rem; height: 2.6rem; border-radius: 6px; background: #b3161c; color: #fff; font-weight: 800; font-size: .85rem; display: flex; align-items: center; justify-content: center; }
.termin-liste small { color: #777; }
.sb-cta { background: linear-gradient(135deg,#7d0f13,#b3161c); color: #fff; border: 0; }
.sb-cta .sb-titel { background: rgba(0,0,0,.15); color: #fff; border-bottom: 1px solid rgba(255,255,255,.2); }
.sb-cta p { padding: 0 1rem; margin: .9rem 0; }
.sb-cta .btn-light { color: #b3161c !important; font-weight: 600; }
@media (max-width: 767px) { .hero h2 { font-size: 1.6rem; } .hero { min-height: 240px; } }
.container-header .container-search { position: absolute; top: 1.3rem; right: max(1rem, calc((100% - 1320px) / 2 + 1rem)); margin: 0; }
@media (max-width: 991px) { .container-header .container-search { top: .9rem; } .notruf-btn span { display: none; } }
.blog-items.columns-2 .blog-item::before, .blog-items.columns-2 .item-image img { aspect-ratio: 16 / 8 !important; }
.container-main-bottom .card, .container-main-bottom .moduletable { border: 0; background: transparent; box-shadow: none; padding: 0; }
.container-main-bottom .card-body { padding: 0; }
.blog-items .blog-item .item-content > ul, .blog-items .blog-item .item-content > ol, .blog-items .blog-item .item-content > table { display: none; }
.main-bottom.card { border: 0; background: transparent; box-shadow: none; }
.main-bottom.card > .card-body { padding: 0; }

/* ===== Fußzeile: Copyright rechts ===== */
.container-footer > .grid-child { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 1rem; }
.container-footer .copyright { margin: 0; color: rgba(255,255,255,.8); font-size: .9rem; }
@media (max-width: 575px) { .container-footer > .grid-child { flex-direction: column; align-items: flex-start; } }

/* Logo: Feuerwehr-Signet im weißen Kreis */
.header .navbar-brand .brand-logo::before { content: ""; background: #fff url("../../../../../images/logo/feuerwehr-signet.png") center / 78% no-repeat; }
.header .navbar-brand .brand-logo::before { width: 3.8rem; height: 3.8rem; background-size: 88%; }
@media (max-width: 575px) { .header .navbar-brand .brand-logo::before { width: 3rem; height: 3rem; } }

/* ===== Veranstaltungs-Hinweis (Startseite) ===== */
.main-top.card:has(.event-teaser) { border: 0; background: transparent; box-shadow: none; }
.main-top.card:has(.event-teaser) > .card-body { padding: 0; }
.event-teaser { display: grid; grid-template-columns: 230px minmax(0,1fr); gap: 1.5rem; align-items: center; background: linear-gradient(135deg,#1c1c1c 0%,#2b0a0b 55%,#7d0f13 100%); color: #fff; border-radius: 10px; padding: 1.25rem; margin: 0 0 2rem; box-shadow: 0 6px 18px rgba(0,0,0,.18); position: relative; overflow: hidden; }
.event-teaser::after { content: ""; position: absolute; right: -60px; top: -60px; width: 220px; height: 220px; border-radius: 50%; background: rgba(255,255,255,.05); }
.event-flyer { position: relative; display: block; transform: rotate(-3deg); transition: transform .2s; }
.event-flyer:hover { transform: rotate(0) scale(1.03); }
.event-flyer img { width: 100%; height: auto; border-radius: 6px; border: 4px solid #fff; box-shadow: 0 8px 20px rgba(0,0,0,.45); }
.event-lupe { position: absolute; left: 50%; bottom: .6rem; transform: translateX(-50%); background: rgba(0,0,0,.7); color: #fff; font-size: .75rem; padding: .2rem .6rem; border-radius: 999px; white-space: nowrap; }
.event-info { position: relative; z-index: 1; }
.event-kopf { display: flex; align-items: center; gap: 1rem; margin: .4rem 0 .9rem; }
.event-datum { flex: 0 0 auto; width: 4.2rem; border-radius: 8px; overflow: hidden; text-align: center; background: #fff; color: #b3161c; box-shadow: 0 3px 8px rgba(0,0,0,.3); }
.event-datum strong { display: block; font-size: 1.9rem; line-height: 1.1; padding-top: .2rem; }
.event-datum span { display: block; background: #b3161c; color: #fff; font-size: .75rem; font-weight: 700; text-transform: uppercase; padding: .15rem 0; }
.event-teaser h2 { color: #fff; margin: 0; font-size: 1.7rem; font-weight: 800; border: 0 !important; clear: none !important; }
.event-zeit { margin: .2rem 0 0; opacity: .85; }
.event-fakten { list-style: none; padding: 0; margin: 0 0 .8rem; }
.event-fakten li { padding: .25rem 0 .25rem 1.4rem; position: relative; }
.event-fakten li::before { content: ""; position: absolute; left: 0; top: .7rem; width: .6rem; height: .6rem; border-radius: 50%; background: #e3242b; }
.event-fakten strong { font-size: 1.15rem; }
.event-countdown { margin: 0 0 .9rem; padding: .45rem .8rem; background: rgba(255,255,255,.1); border-left: 4px solid #e3242b; border-radius: 4px; }
.event-countdown:empty { display: none; }
.event-knoepfe { margin: 0 0 .4rem; }
.event-knoepfe .btn { font-weight: 700; }
.event-hinweis { margin: 0; font-size: .85rem; opacity: .75; }
@media (max-width: 767px) { .event-teaser { grid-template-columns: 1fr; } .event-flyer { max-width: 220px; margin: 0 auto; } .event-teaser h2 { font-size: 1.35rem; } }
