Compare commits

...

16 Commits

Author SHA1 Message Date
3711998568 Sponsoren-Firmen mit Websites verlinkt; Rahmen-Style fuer zukuenftige Sponsor-Logos vorbereitet 2026-08-13 13:33:37 +00:00
b98caa6c95 Fliesstexte entfernt: Schlauchboot (falsch, kein Motor) und TSA-Anhaenger 2026-08-13 13:01:03 +00:00
7f591ac06f Dienstplan 2. Halbjahr 2026 als CSV uebernommen; Fahrzeug-Untertitel unter Bildern entfernt; TSF-W als ersetzt markiert 2026-08-13 12:57:53 +00:00
6e30f5bda1 ELW-Karte: ehemaliges Index-Bild (Transit vor dem Geraetehaus) als Kartenbild 2026-08-06 14:25:17 +00:00
29c7869cde ELW-Karte auf Technik-Seite: Wehr-Foto 2026 (ELW vor dem Geraetehaus) als Kartenbild 2026-08-06 14:23:23 +00:00
1f6ddf2c98 Startseite: Wehr-Foto 2026 wieder zweispaltig neben Geraehaus-Text; ELW-Karte zurück auf vorheriges Bild 2026-08-06 14:21:01 +00:00
db9bd67ae3 Fix: Karten-Overlap auf Förderverein-Seite (gestapelte gl-cards), 2. Bild von Startseite entfernt, ELW-Bild durch aktuellen Transit aus Wehr-Foto 2026 ersetzt 2026-08-06 14:18:03 +00:00
735ad4b506 Datenschutzseite, Wehr-Foto 2026 auf Startseite, Dienstplan-PDFs verlinkt, Jugendwart im Organigramm aktualisiert (Reißig, Manuel) 2026-08-06 14:09:05 +00:00
609f44ca75 Aktualisieren der daten 2026-08-06 15:25:33 +02:00
910becb0a7 änderung text auf index 2026-08-06 15:09:26 +02:00
Pascal
5774b22f11 Finales Redesign: graue Light-Variante als Website, neue Subpages (Veranstaltungen, Kontakt), Bilder & Logos eingebunden, Altlasten entfernt 2026-08-06 12:40:33 +00:00
Pascal
3c32404ad3 Zwei Design-Varianten (rot/grau) als Redesign mit zentralen Datenquellen 2026-08-06 12:36:53 +00:00
7147bcbe25 proof of concept der farbänderung auf der startseite 2026-05-21 13:39:54 +02:00
7c56bbbc5e Hinzufügen ffw transp im root dir da pfad in technik subpages broken ist D: und ich zu faul für fix bin 2026-03-17 16:21:54 +01:00
5f56fa0194 Korrektur für mobile capability 2026-03-17 16:14:54 +01:00
c787616b9b Umbau code structure mit neuen dirs und vibecoding 2026-03-17 15:31:05 +01:00
86 changed files with 2945 additions and 3176 deletions

View File

@ -1,304 +0,0 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Geschichte | Feuerwehr Stadt Wehlen</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="nav.css">
<style>
:root {
--fw-rot: #900000;
--fw-grau: #616161;
}
body {
background-color: #f8f9fa;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
/* Header mit dem Logo im Hintergrund */
.history-page-header {
position: relative;
text-align: center;
padding: 60px 0;
background-color: #fff;
overflow: hidden;
border-bottom: 1px solid #dee2e6;
}
.header-bg-icon {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
height: 120%;
opacity: 0.07;
z-index: 0;
pointer-events: none;
}
.history-page-header h1, .history-page-header p {
position: relative;
z-index: 1;
}
.history-page-header h1 {
color: var(--fw-rot);
font-weight: 800;
margin-bottom: 10px;
text-transform: uppercase;
}
/* Container & Accordion */
.history-container {
max-width: 900px;
margin: 40px auto;
padding: 0 15px;
}
.accordion-item {
border: none !important;
margin-bottom: 1.5rem;
box-shadow: 0 4px 12px rgba(0,0,0,0.08);
border-radius: 8px !important;
overflow: hidden;
border-left: 5px solid var(--fw-rot) !important;
}
.accordion-button {
font-weight: bold;
font-size: 1.2rem;
color: #333;
background-color: #fff !important;
padding: 1.25rem;
}
.accordion-button:not(.collapsed) {
color: var(--fw-rot);
box-shadow: none;
}
.accordion-button:focus { box-shadow: none; }
.accordion-body {
background-color: #fff;
padding: 2.5rem;
line-height: 1.8;
}
section h2 {
color: var(--fw-rot);
font-weight: 700;
margin-bottom: 1.5rem;
}
blockquote {
font-style: italic;
border-left: 4px solid var(--fw-rot) !important;
padding: 15px 20px;
background-color: #f9f9f9;
margin: 25px 0;
border-radius: 0 8px 8px 0;
}
.btn-custom {
background-color: var(--fw-grau);
color: white;
border: none;
padding: 10px 25px;
border-radius: 8px;
transition: 0.3s;
font-weight: 600;
}
.btn-custom:hover {
background-color: var(--fw-rot) !important;
color: white;
}
footer { background-color: #fff; border-top: 1px solid #dee2e6; }
</style>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-custom">
<div class="container-fluid">
<a class="navbar-brand d-flex align-items-center" href="index.html">
<img src="ffw_transp_72.gif" alt="Feuerwehr Stadt Wehlen" style="height: 3em; width: auto; margin-right: 10px;">
<span>Feuerwehr Stadt Wehlen</span>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ms-auto">
<li class="nav-item"><a class="nav-link" href="#">Aktuelles</a></li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" data-bs-toggle="dropdown">Über uns</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="Geschichte.html">Geschichte</a></li>
<li><a class="dropdown-item" href="technik.html">Technik</a></li>
<li><a class="dropdown-item" href="#">Mitglieder</a></li>
</ul>
</li>
<li class="nav-item"><a class="nav-link" href="#">Veranstaltungen</a></li>
<li class="nav-item"><a class="nav-link" href="#">Kontakt/Impressum</a></li>
</ul>
</div>
</div>
</nav>
<div class="history-page-header">
<img src="ffw_transp_72.gif" class="header-bg-icon" alt="BG-Icon">
<h1>Unsere Geschichte</h1>
<p class="lead text-muted">Chronik der FFw Stadt Wehlen seit 1865</p>
</div>
<div class="history-container">
<div class="accordion accordion-flush" id="fireHistoryAccordion">
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne">
1865 - 1900
</button>
</h2>
<div id="collapseOne" class="accordion-collapse collapse" data-bs-parent="#fireHistoryAccordion">
<div class="accordion-body">
<section style="max-width: 800px; margin: auto; text-align: justify;">
<h2>Die Anfänge der Feuerwehr in Stadt Wehlen</h2>
<p>Die Feuerwehr unseres Wehlstädtchens wird in den Berichten, die heute noch im Archiv lagern, um <strong>1865</strong> zum ersten Mal erwähnt. Damals war es eine <strong>Pflichtfeuerwehr</strong>, d. h. alle Männer von <strong>18 bis 50 Jahren</strong> wurden erfasst und nach einem strengen Gesetz verpflichtet.</p>
<p>Im Jahr <strong>1899</strong> versuchte man erstmals, die Männer der Pflichtfeuerwehr zu überzeugen, eine <strong>Freiwillige Feuerwehr</strong> aufzubauen. Der Vorschlag kam von der <strong>Feuerwehr Pirna</strong>. Doch der damalige Stadtgemeinderat von Stadt Wehlen lehnte ab:</p>
<blockquote style="font-style: italic; border-left: 4px solid #900000; padding-left: 10px;">
„... es wäre nicht nötig und außerdem zu kostspielig.“
</blockquote>
</section>
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseTwo">
1901 - 1945
</button>
</h2>
<div id="collapseTwo" class="accordion-collapse collapse" data-bs-parent="#fireHistoryAccordion">
<div class="accordion-body">
<section style="max-width: 800px; margin: auto; text-align: justify;">
<h2>Die Gründung der Freiwilligen Feuerwehr Stadt Wehlen</h2>
<p>Am <strong>27. Januar 1901</strong> wurde der Wehlener Gemeinderat durch Herrn Branddirektor Jäger angeschrieben und darauf hingewiesen, dass Stadt Wehlen im Bezirk die letzte Stadt sei, die keine freiwillige Feuerwehr besitze.</p>
<p>Am <strong>8. Februar 1901</strong> wurde die noch bestehende Pflichtfeuerwehr in die <strong>"Elbterrasse"</strong> gerufen und zur Generalversammlung geladen. Von den 44 anwesenden Herren erklärten sich 30 bereit, einzutreten.</p>
<h3>Die offizielle Gründung</h3>
<p>Am <strong>12. März 1901</strong> wurde die Freiwillige Feuerwehr Stadt Wehlen offiziell gegründet. Das Grundgesetz der Feuerwehr beinhaltete in 14 Paragraphen die Pflichten und Rechte.</p>
<h3>Ausrüstung der Feuerwehr</h3>
<ul>
<li>1 vierrädrige Abprotzspritze</li>
<li>430 Meter Hanf-Schlauch</li>
<li>18 Schöpeimer</li>
<li>1 Steigleiter (8,80 m)</li>
<li>1 Leiterwagen, 3 Hakenleitern, 2 Anlegeleitern, 5 Feuerhaken</li>
</ul>
<h3>Technische Entwicklung</h3>
<p>In den Jahren <strong>1903 bis 1904</strong> erhielt Stadt Wehlen eine zentrale Wasserleitung mit 31 Unterflurhydranten. 1935 erhielt die Feuerwehr eine Motorspritze sowie einen Mannschaftswagen vom Typ <strong>Mercedes</strong>.</p>
<button type="button" class="btn btn-custom mt-3" data-bs-toggle="modal" data-bs-target="#imageModal">
Öffne Zeitungsartikel von 1921
</button>
</section>
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseThree">
1946 - 1989
</button>
</h2>
<div id="collapseThree" class="accordion-collapse collapse" data-bs-parent="#fireHistoryAccordion">
<div class="accordion-body">
<section style="max-width: 800px; margin: auto; text-align: justify;">
<h2>Wiederaufbau nach 1949</h2>
<p>Große Anstrengungen unternahmen die Kameraden nach <strong>1949</strong>, um wieder eine arbeitsfähige Wehr aufzubauen. Zur Gründung eines Fanfarenzuges wurden Gelder gespendet, und nach einem Jahr konnten wir das erste Mal öffentlich auftreten.</p>
<h3>Die Löschgruppe Stadt Wehlen II</h3>
<p>Am <strong>1. April 1956</strong> wurde im Ortsteil Pötzscha eine Löschgruppe gegründet, da die Brände an der Bahnlinie zunahmen.</p>
<h3>Einsätze und Katastrophen</h3>
<p>1957 leisteten wir Hilfe bei der Unwetterkatastrophe in Pirna. Im <strong>Juli 1958</strong> folgte ein schweres Unwetter in Stadt Wehlen (Waldidylle). Ein weiterer Meilenstein war der Großbrand der Sparkasse am Markt am <strong>24. Dezember 1963</strong> bei -20°C.</p>
<p>1967 erhielten wir unser erstes Kleinlöschfahrzeug <strong>B 1000</strong>, und 1971 das Löschfahrzeug <strong>LO 1800</strong>.</p>
</section>
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseFour">
1990 - 1994
</button>
</h2>
<div id="collapseFour" class="accordion-collapse collapse" data-bs-parent="#fireHistoryAccordion">
<div class="accordion-body">
<section style="max-width: 800px; margin: auto; text-align: justify;">
<h2>Nach der Wiedervereinigung 1990</h2>
<p>Nach der Wiedervereinigung konnten wir preisgünstig Technik erwerben, darunter ein B 1000 für Pötzscha. 1991 feierte die Wehr ihr <strong>90-jähriges Jubiläum</strong>.</p>
<p>Im November 1991 erhielten wir ein Löschfahrzeug vom Typ Opel als Geschenk unserer Partnerfeuerwehr aus <strong>Deuschelried/Wangen</strong>. 1993/94 wurde das Gerätehaus in Pötzscha vergrößert.</p>
</section>
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseFive">
1995 - heute
</button>
</h2>
<div id="collapseFive" class="accordion-collapse collapse" data-bs-parent="#fireHistoryAccordion">
<div class="accordion-body">
<section style="max-width: 800px; margin: auto; text-align: justify;">
<h2>Hochwasser 2002</h2>
<p>Am <strong>13.08.2002</strong> wurden wir zum Hochwasser nach Pirna gerufen. In den folgenden Tagen erreichte die Elbe in Stadt Wehlen einen historischen Höchststand von <strong>12,04 m</strong>.</p>
<p>Wir erhielten massive Unterstützung durch die Feuerwehren aus <strong>Trochtelfingen, Wangen und Forst</strong>. Die Kameraden waren vom 13.08. bis 31.08. im Dauereinsatz, oft 16-18 Stunden täglich.</p>
</section>
</div>
</div>
</div>
</div>
</div>
<div class="modal fade" id="imageModal" tabindex="-1">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Originalausschnitt von 1921</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
</div>
<div class="modal-body text-center">
<img src="ffw_wehlen_1921.jpeg" alt="Zeitung 1921" class="img-fluid rounded shadow">
</div>
</div>
</div>
</div>
<footer class="container-fluid py-4">
<div class="row justify-content-center align-items-center">
<div class="col-lg-4 col-md-5 text-lg-end text-center mb-3 mb-lg-0">
<h6 class="fw-bold text-decoration-underline">Letzte Aktualisierung</h6>
<p class="mb-0">17. März 2026</p>
<small class="text-muted">(Version 1.2)</small>
</div>
<div class="col-lg-1 d-none d-lg-block"></div>
<div class="col-lg-4 col-md-5 text-lg-start text-center">
<h6 class="fw-bold text-decoration-underline">Statistik der FFw Stadt Wehlen</h6>
<p class="mb-0 small"><strong>Aktive:</strong> 27 | <strong>Jugend:</strong> 23 | <strong>Passive:</strong> 9 | <strong>Förderverein:</strong> 172</p>
</div>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

View File

@ -0,0 +1,78 @@
# Feuerwehr Stadt Wehlen Webseite
Modernes Redesign im hellen „Modern Light"-Design: hellgrauer Hintergrund,
weiße abgerundete Karten, roter Header mit Logo-Muster. Vollständig
mobile-optimiert (responsives Grid, Hamburger-Menü, Karten statt Tabellen
auf dem Smartphone).
## Seiten
| Datei | Inhalt |
|---|---|
| `index.html` | Start: Hero, Gerätehaus, Wehr-Foto 2026, Termine, Schnellzugriff |
| `geschichte.html` | Wehrgeschichte seit 1865 als Accordion (inkl. Zeitungsartikel 1921) |
| `technik.html` | Fahrzeug-Übersicht mit Kategorie-Filter |
| `fahrzeug.html` | Detailseite, datengetrieben via `?id=lf10` usw. |
| `mitglieder.html` | Organigramm & Mitgliederlisten |
| `jugendfeuerwehr.html` | Jugendfeuerwehr: Infos, Ansprechpartner, JFw-Dienstplan |
| `foerderverein.html` | Förderverein: Mitgliedschaft, Formulare, Sponsoren |
| `dienstplan.html` | Nächste Termine, komplette Termintabelle, Dienstplan-PDFs |
| `veranstaltungen.html` | Feste & Veranstaltungen (aus der CSV gefiltert) |
| `kontakt.html` | Kontakt & Impressum |
| `datenschutz.html` | Datenschutzerklärung |
## Struktur
```
assets/
style.css Komplettes Design (Farben in :root-Variablen)
components.js Navbar, Footer, Hero + alle Renderer
data/ ZENTRALE DATENQUELLEN Inhalte nur HIER pflegen
fahrzeuge.js Fahrzeuge/Boote/Anhänger inkl. Technikdaten & Bilder
geschichte.js Geschichts-Epochen
mitglieder.js Organigramm & Mitgliederlisten
foerderverein.js Downloads & Sponsoren des Fördervereins
dienste.js Liest dienstplan/dienstplan.csv, befüllt alle Terminbereiche
dienstplan/
dienstplan.csv Termine (einzige Quelle für Dienstplan & Veranstaltungen)
downloads/ PDFs (Dienstpläne, Formulare, Satzung, Protokolle)
bilder/, technik/, geschichte/ Bildmaterial
```
## Prinzip
- Inhalte liegen zentral in `data/` bzw. `dienstplan/dienstplan.csv`
die Seiten rendern daraus automatisch ihr Markup.
- Navbar, Footer und Hero liegen in `assets/components.js` und werden in
die Platzhalter `#site-header` / `#site-footer` / `#site-hero` eingefügt.
- `window.FFW_BASE` (im `<head>` jeder Seite) ist der Pfad zum
Projekt-Root bei Seiten im Root einfach `""`.
- Der aktive Menüpunkt wird über `<body data-page="...">` gesteuert.
## Inhalte ändern
| Was | Wo |
|---|---|
| Termine / Dienstplan / Veranstaltungen | `dienstplan/dienstplan.csv` |
| Fahrzeugdaten, Bilder, Beladung | `data/fahrzeuge.js` |
| Geschichtstexte | `data/geschichte.js` |
| Mitglieder / Organigramm | `data/mitglieder.js` |
| Sponsoren / Förderverein-Dokumente | `data/foerderverein.js` |
| Menü / Footer / Hero / Statistik | `assets/components.js` |
| Farben | `assets/style.css` (`:root`-Variablen oben) |
## Lokal ansehen
```sh
python3 -m http.server 8000
# dann http://localhost:8000/ öffnen
```
## Hinweise
- Der ELW 1 hat aktuell keine Detailseite die Karte ist mit
„Demnächst" markiert (`inArbeit: true` in `data/fahrzeuge.js`).
- Die Datenschutzerklärung wurde aus dem alten Stand übernommen;
Abschnitte über nicht mehr genutzte Dienste (Google Analytics,
YouTube, Typekit) wurden entfernt.
- Frühere Design-Entwürfe sind in der Git-Historie erhalten.

View File

@ -1,198 +0,0 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Hydrantenwagen Modell H.I. | FFw Stadt Wehlen</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="../../../nav.css">
<style>
:root {
--fw-rot: #900000;
--fw-grau: #616161;
--bg-light: #f8f9fa;
}
body {
background-color: var(--bg-light);
font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}
/* Nav-Korrektur */
.navbar { margin-bottom: 0; }
/* Zurück-Button Bereich */
.top-bar {
background: #fff;
padding: 15px 0;
border-bottom: 1px solid #dee2e6;
}
.custom-btn {
background-color: var(--fw-grau);
color: white;
border: none;
border-radius: 8px;
padding: 8px 20px;
transition: all 0.3s ease;
font-weight: 600;
text-decoration: none;
display: inline-block;
}
.custom-btn:hover {
background-color: var(--fw-rot) !important;
color: white;
transform: translateX(-5px);
}
/* Detail-Container */
.detail-card {
background: #fff;
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0,0,0,0.08);
border-left: 5px solid var(--fw-rot);
padding: 30px;
margin-top: 30px;
margin-bottom: 50px;
}
h1 {
color: var(--fw-rot);
font-weight: 800;
margin-bottom: 25px;
border-bottom: 2px solid #eee;
padding-bottom: 10px;
}
.info-label {
font-weight: 700;
color: var(--fw-grau);
width: 180px;
display: inline-block;
}
.spec-list {
list-style: none;
padding-left: 0;
}
.spec-list li {
padding: 8px 0;
border-bottom: 1px solid #f1f1f1;
}
/* Beladungs-Liste */
.beladung-title {
margin-top: 30px;
color: var(--fw-rot);
font-weight: 700;
}
.beladung-list {
padding-left: 20px;
}
.beladung-list li {
margin-bottom: 5px;
}
/* Carousel Styling */
.carousel-item img {
border-radius: 8px;
box-shadow: 0 4px 10px rgba(0,0,0,0.15);
max-height: 500px;
object-fit: cover;
}
.carousel-control-prev-icon, .carousel-control-next-icon {
background-color: var(--fw-rot);
border-radius: 50%;
background-size: 50%;
}
/* Mobile Anpassung */
@media (max-width: 768px) {
.info-label { width: 100%; display: block; margin-bottom: 2px; }
.detail-card { padding: 20px; }
}
</style>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-custom">
<div class="container-fluid">
<a class="navbar-brand d-flex align-items-center" href="../../../index.html">
<img src="../../../ffw_transp_72.gif" alt="Logo" style="height: 3em; margin-right: 10px;">
<span>Feuerwehr Stadt Wehlen</span>
</a>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ms-auto">
<li class="nav-item"><a class="nav-link" href="../../../technik.html">Technik</a></li>
</ul>
</div>
</div>
</nav>
<div class="top-bar">
<div class="container">
<a href="../../technik.html" class="custom-btn">← Zurück zur Übersicht</a>
</div>
</div>
<div class="container">
<div class="detail-card">
<div class="row">
<div class="col-lg-7">
<h1>Hydrantenwagen Modell H.I.</h1>
<ul class="spec-list">
<li><span class="info-label">Bezeichnung:</span> Hydrantenwagen Modell H.I.</li>
<li><span class="info-label">Stationierung:</span> Stadt Wehlen</li>
<li><span class="info-label">Hersteller:</span> C.A. Schöne Fabrik Dresden</li>
<li><span class="info-label">Baujahr:</span> 1905</li>
<li><span class="info-label">Funkrufname:</span> -</li>
<li><span class="info-label">Fahrzeugdaten:</span> -</li>
</ul>
<h3 class="beladung-title">Feuerwehrtechnische Beladung:</h3>
<ul class="beladung-list">
<li>Kupferner Hydrantenaufsatz mit 2 Auslässen</li>
<li>Sächsisches Normalgewinde, Spindelventile</li>
<li>Kupferne Normalstrahlrohre in Leine geflochten</li>
<li>17 Satz zu je 15 m - insgesamt 255 m Flachsschlauch</li>
<li>17 Paar Patent-Honigkupplungen</li>
<li>4 Übersetzungsstücke auf sächsisches Normalgewinde</li>
</ul>
</div>
<div class="col-lg-5 mt-4 mt-lg-0">
<div id="hydrantenwagenCarousel" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="t_hydrantenwagen_1.jpg" class="d-block w-100" alt="Hydrantenwagen Bild 1">
</div>
<div class="carousel-item">
<img src="t_hydrantenwagen_2.jpg" class="d-block w-100" alt="Hydrantenwagen Bild 2">
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#hydrantenwagenCarousel" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Zurück</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#hydrantenwagenCarousel" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Weiter</span>
</button>
</div>
<p class="text-center text-muted mt-2 small"><em>Klicken zum Blättern</em></p>
</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

View File

@ -1,174 +0,0 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>TSA Tragkraftspritzenanhänger | FFw Stadt Wehlen</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="../../../nav.css">
<style>
:root {
--fw-rot: #900000;
--fw-grau: #616161;
--bg-light: #f8f9fa;
}
body {
background-color: var(--bg-light);
font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}
.top-bar {
background: #fff;
padding: 15px 0;
border-bottom: 1px solid #dee2e6;
}
.custom-btn {
background-color: var(--fw-grau);
color: white;
border: none;
border-radius: 8px;
padding: 8px 20px;
transition: all 0.3s ease;
font-weight: 600;
text-decoration: none;
display: inline-block;
}
.custom-btn:hover {
background-color: var(--fw-rot) !important;
color: white;
transform: translateX(-5px);
}
.detail-card {
background: #fff;
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0,0,0,0.08);
border-left: 5px solid var(--fw-rot);
padding: 30px;
margin-top: 30px;
margin-bottom: 50px;
}
h1 {
color: var(--fw-rot);
font-weight: 800;
margin-bottom: 25px;
border-bottom: 2px solid #eee;
padding-bottom: 10px;
}
.info-label {
font-weight: 700;
color: var(--fw-grau);
width: 160px;
display: inline-block;
}
.spec-list {
list-style: none;
padding-left: 0;
}
.spec-list li {
padding: 8px 0;
border-bottom: 1px solid #f1f1f1;
}
.section-title {
margin-top: 30px;
color: var(--fw-rot);
font-weight: 700;
}
.carousel-item img {
border-radius: 8px;
box-shadow: 0 4px 10px rgba(0,0,0,0.15);
max-height: 450px;
object-fit: cover;
}
.pump-highlight {
background-color: #fdf2f2;
border: 1px dashed var(--fw-rot);
padding: 15px;
border-radius: 8px;
margin-top: 20px;
}
</style>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-custom">
<div class="container-fluid">
<a class="navbar-brand d-flex align-items-center" href="../../../index.html">
<img src="../../../ffw_transp_72.gif" alt="Logo" style="height: 3em; margin-right: 10px;">
<span>Feuerwehr Stadt Wehlen</span>
</a>
</div>
</nav>
<div class="top-bar">
<div class="container">
<a href="../../technik.html" class="custom-btn">← Zurück zur Technik-Übersicht</a>
</div>
</div>
<div class="container">
<div class="detail-card">
<div class="row">
<div class="col-lg-7">
<h1>Tragkraftspritzenanhänger (TSA)</h1>
<ul class="spec-list">
<li><span class="info-label">Bezeichnung:</span> TSA Tragkraftspritzenanhänger</li>
<li><span class="info-label">Standort:</span> Stadt Wehlen</li>
<li><span class="info-label">Typ:</span> Ziegler TSA SDAH</li>
<li><span class="info-label">Baujahr:</span> Februar 2004</li>
</ul>
<h4 class="section-title">Technische Daten</h4>
<ul class="spec-list">
<li><span class="info-label">Maße:</span> L 4,00m | B 1,80m | H 2,00m</li>
<li><span class="info-label">Gesamtgewicht:</span> 1.200 kg</li>
<li><span class="info-label">Ausstattung:</span> Verstellbare Zugdeichsel, Stützrad & Heckstützen</li>
</ul>
<h4 class="section-title">Feuerwehrtechnische Beladung</h4>
<p>Der Anhänger verfügt über eine komplette DIN-Beladung für eine Löschgruppe.</p>
<div class="pump-highlight">
<p class="mb-0"><strong>Hauptausrüstung:</strong> Tragkraftspritze Magirus 4-Takt</p>
</div>
</div>
<div class="col-lg-5 mt-4 mt-lg-0">
<div id="tsaCarousel" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="t_tsa_1.jpg" class="d-block w-100" alt="TSA Bild 1">
</div>
<div class="carousel-item">
<img src="t_tsa_2.jpg" class="d-block w-100" alt="TSA Bild 2">
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#tsaCarousel" data-bs-slide="prev">
<span class="carousel-control-prev-icon"></span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#tsaCarousel" data-bs-slide="next">
<span class="carousel-control-next-icon"></span>
</button>
</div>
<p class="text-center text-muted mt-3 small"><em>Effektive Wasserförderung durch moderne Magirus-Technik</em></p>
</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

View File

@ -1,153 +0,0 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Transportanhänger | FFw Stadt Wehlen</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="../../../nav.css">
<style>
:root {
--fw-rot: #900000;
--fw-grau: #616161;
--bg-light: #f8f9fa;
}
body {
background-color: var(--bg-light);
font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}
.top-bar {
background: #fff;
padding: 15px 0;
border-bottom: 1px solid #dee2e6;
}
.custom-btn {
background-color: var(--fw-grau);
color: white;
border: none;
border-radius: 8px;
padding: 8px 20px;
transition: all 0.3s ease;
font-weight: 600;
text-decoration: none;
display: inline-block;
}
.custom-btn:hover {
background-color: var(--fw-rot) !important;
color: white;
transform: translateX(-5px);
}
.detail-card {
background: #fff;
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0,0,0,0.08);
border-left: 5px solid var(--fw-rot);
padding: 30px;
margin-top: 30px;
margin-bottom: 50px;
}
h1 {
color: var(--fw-rot);
font-weight: 800;
margin-bottom: 25px;
border-bottom: 2px solid #eee;
padding-bottom: 10px;
}
.info-label {
font-weight: 700;
color: var(--fw-grau);
width: 160px;
display: inline-block;
}
.spec-list {
list-style: none;
padding-left: 0;
}
.spec-list li {
padding: 8px 0;
border-bottom: 1px solid #f1f1f1;
}
.section-title {
margin-top: 30px;
color: var(--fw-rot);
font-weight: 700;
}
.vehicle-img {
border-radius: 8px;
box-shadow: 0 4px 10px rgba(0,0,0,0.15);
width: 100%;
height: auto;
}
</style>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-custom">
<div class="container-fluid">
<a class="navbar-brand d-flex align-items-center" href="../../../index.html">
<img src="../../../ffw_transp_72.gif" alt="Logo" style="height: 3em; margin-right: 10px;">
<span>Feuerwehr Stadt Wehlen</span>
</a>
</div>
</nav>
<div class="top-bar">
<div class="container">
<a href="../../technik.html" class="custom-btn">← Zurück zur Technik-Übersicht</a>
</div>
</div>
<div class="container">
<div class="detail-card">
<div class="row">
<div class="col-lg-7">
<h1>Transportanhänger</h1>
<ul class="spec-list">
<li><span class="info-label">Bezeichnung:</span> Transportanhänger</li>
<li><span class="info-label">Standort:</span> Stadt Wehlen</li>
<li><span class="info-label">Typ:</span> Humbauer H12</li>
<li><span class="info-label">Baujahr:</span> April 2004</li>
<li><span class="info-label">Gesamtgewicht:</span> 1.200 kg</li>
</ul>
<h4 class="section-title">Technische Daten</h4>
<ul class="spec-list">
<li><span class="info-label">Maße:</span> L 3,75m | B 1,77m | H 2,35m</li>
<li><span class="info-label">Sicherheit:</span> Feststellbremse</li>
<li><span class="info-label">Aufbau:</span> Hochplane, Stützrad & Heckstützen</li>
</ul>
<h4 class="section-title">Nutzung & Beladung</h4>
<p>Dieser Anhänger ist ein flexibler Allrounder für die Logistik der Feuerwehr Stadt Wehlen. Er wird unter anderem für folgende Zwecke genutzt:</p>
<ul>
<li>Transport der Ausstattung für die <strong>Jugendfeuerwehr</strong></li>
<li>Mitführung eines TSA-Einschubs mit <strong>Tragkraftspritze TS 3</strong></li>
<li>Allgemeine Materialtransporte bei Einsätzen und Übungen</li>
</ul>
</div>
<div class="col-lg-5 mt-4 mt-lg-0">
<img src="t_transportanhaenger.jpg" class="vehicle-img" alt="Transportanhänger FFw Wehlen">
<p class="text-center text-muted mt-3 small"><em>Vielseitiges Logistikfahrzeug für Ausbildung und Einsatz</em></p>
</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

View File

@ -1,181 +0,0 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>VRW Vorausrüstwagen | FFw Stadt Wehlen</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="../../../nav.css">
<style>
:root {
--fw-rot: #900000;
--fw-grau: #616161;
--bg-light: #f8f9fa;
}
body {
background-color: var(--bg-light);
font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}
.top-bar {
background: #fff;
padding: 15px 0;
border-bottom: 1px solid #dee2e6;
}
.custom-btn {
background-color: var(--fw-grau);
color: white;
border: none;
border-radius: 8px;
padding: 8px 20px;
transition: all 0.3s ease;
font-weight: 600;
text-decoration: none;
display: inline-block;
}
.custom-btn:hover {
background-color: var(--fw-rot) !important;
color: white;
transform: translateX(-5px);
}
.detail-card {
background: #fff;
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0,0,0,0.08);
border-left: 5px solid var(--fw-rot);
padding: 30px;
margin-top: 30px;
margin-bottom: 50px;
}
h1 {
color: var(--fw-rot);
font-weight: 800;
margin-bottom: 25px;
border-bottom: 2px solid #eee;
padding-bottom: 10px;
}
.info-label {
font-weight: 700;
color: var(--fw-grau);
width: 160px;
display: inline-block;
}
.spec-list {
list-style: none;
padding-left: 0;
}
.spec-list li {
padding: 8px 0;
border-bottom: 1px solid #f1f1f1;
}
.section-title {
margin-top: 30px;
color: var(--fw-rot);
font-weight: 700;
border-left: 3px solid var(--fw-rot);
padding-left: 10px;
}
.vehicle-img {
border-radius: 8px;
box-shadow: 0 4px 10px rgba(0,0,0,0.15);
width: 100%;
transition: transform 0.3s ease;
}
.tech-box {
background: #fdf2f2;
padding: 15px;
border-radius: 8px;
border: 1px solid #f5dada;
margin-top: 15px;
}
</style>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-custom">
<div class="container-fluid">
<a class="navbar-brand d-flex align-items-center" href="../../../index.html">
<img src="../../../ffw_transp_72.gif" alt="Logo" style="height: 3em; margin-right: 10px;">
<span>Feuerwehr Stadt Wehlen</span>
</a>
</div>
</nav>
<div class="top-bar">
<div class="container">
<a href="../../technik.html" class="custom-btn">← Zurück zur Technik-Übersicht</a>
</div>
</div>
<div class="container">
<div class="detail-card">
<div class="row">
<div class="col-lg-7">
<h1>Vorausrüstwagen (VRW)</h1>
<ul class="spec-list">
<li><span class="info-label">Bezeichnung:</span> VRW (Quad)</li>
<li><span class="info-label">Funkrufname:</span> Florian Stadt Wehlen 53-1</li>
<li><span class="info-label">Typ:</span> Suzuki KingQuad</li>
<li><span class="info-label">Baujahr:</span> Mai 2006</li>
<li><span class="info-label">Gewicht:</span> 470 kg</li>
</ul>
<h4 class="section-title">Fahrzeugdaten & Sondersignalanlage</h4>
<ul class="spec-list">
<li><span class="info-label">Antrieb:</span> Allrad mit Differentialsperre</li>
<li><span class="info-label">Signale:</span> Blitzkennleuchte (Dach + Front), Martins-Horn</li>
<li><span class="info-label">Beleuchtung:</span> Arbeitsscheinwerfer vorn & hinten</li>
<li><span class="info-label">Maße:</span> L 2,20m | B 1,25m | H 2,00m</li>
</ul>
<h4 class="section-title">Schwerpunkt: Technische Hilfeleistung</h4>
<div class="tech-box">
<div class="row">
<div class="col-md-6">
<ul class="spec-list small border-0">
<li class="border-0"><strong>Rettungssatz:</strong> Lukas SC 350 Kombigerät</li>
<li class="border-0">Lukas Kompaktaggregat P 610 OG</li>
<li class="border-0">Lukas Rettungszylinder</li>
<li class="border-0">MicroCAFS-Löscher (10 Liter)</li>
</ul>
</div>
<div class="col-md-6">
<ul class="spec-list small border-0">
<li class="border-0"><strong>Medizin:</strong> Defibrillator & Sanitätsrucksack</li>
<li class="border-0">Stabilisations- & Unterbausystem</li>
<li class="border-0">Glas-Ex & Werkzeug VU / Elektro</li>
</ul>
</div>
</div>
</div>
</div>
<div class="col-lg-5 mt-4 mt-lg-0">
<img src="t_vrw_1.jpg" class="vehicle-img" alt="VRW Suzuki KingQuad">
<p class="text-center text-muted mt-3 small"><em>Extrem geländegängig für schnelle Hilfe in unwegsamem Gelände</em></p>
<div class="alert alert-secondary mt-4 small">
<strong>Hinweis:</strong> Dieses Fahrzeug ermöglicht durch seine kompakten Maße einen Erstzugriff bei Verkehrsunfällen oder in engen Gassen, bevor schwerere Fahrzeuge eintreffen können.
</div>
</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

View File

@ -1,4 +0,0 @@
.bildertechnik{
max-width: 15em; /* Ensures the carousel doesn't overflow the column */
margin: 0 auto
}

View File

@ -1,191 +0,0 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Löschfahrzeug LF 1 | FFw Stadt Wehlen</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="../../../nav.css">
<style>
:root {
--fw-rot: #900000;
--fw-grau: #616161;
--bg-light: #f8f9fa;
}
body {
background-color: var(--bg-light);
font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}
/* Top Bar mit Zurück-Link */
.top-bar {
background: #fff;
padding: 15px 0;
border-bottom: 1px solid #dee2e6;
}
.custom-btn {
background-color: var(--fw-grau);
color: white;
border: none;
border-radius: 8px;
padding: 8px 20px;
transition: all 0.3s ease;
font-weight: 600;
text-decoration: none;
display: inline-block;
}
.custom-btn:hover {
background-color: var(--fw-rot) !important;
color: white;
transform: translateX(-5px);
}
/* Detail-Container */
.detail-card {
background: #fff;
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0,0,0,0.08);
border-left: 5px solid var(--fw-rot);
padding: 30px;
margin-top: 30px;
margin-bottom: 50px;
}
h1 {
color: var(--fw-rot);
font-weight: 800;
margin-bottom: 25px;
border-bottom: 2px solid #eee;
padding-bottom: 10px;
}
.info-label {
font-weight: 700;
color: var(--fw-grau);
width: 180px;
display: inline-block;
}
.spec-list {
list-style: none;
padding-left: 0;
}
.spec-list li {
padding: 8px 0;
border-bottom: 1px solid #f1f1f1;
}
.beladung-title {
margin-top: 30px;
color: var(--fw-rot);
font-weight: 700;
}
.beladung-list {
padding-left: 20px;
}
/* Carousel Styling */
.carousel-item img {
border-radius: 8px;
box-shadow: 0 4px 10px rgba(0,0,0,0.15);
max-height: 500px;
object-fit: cover;
}
.carousel-control-prev-icon, .carousel-control-next-icon {
background-color: var(--fw-rot);
border-radius: 50%;
background-size: 50%;
}
@media (max-width: 768px) {
.info-label { width: 100%; display: block; margin-bottom: 2px; }
}
</style>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-custom">
<div class="container-fluid">
<a class="navbar-brand d-flex align-items-center" href="../../../index.html">
<img src="../../../ffw_transp_72.gif" alt="Logo" style="height: 3em; margin-right: 10px;">
<span>Feuerwehr Stadt Wehlen</span>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ms-auto">
<li class="nav-item"><a class="nav-link" href="../../../Geschichte.html">Geschichte</a></li>
<li class="nav-item"><a class="nav-link active" href="../../../technik.html">Technik</a></li>
<li class="nav-item"><a class="nav-link" href="#">Kontakt/Impressum</a></li>
</ul>
</div>
</div>
</nav>
<div class="top-bar">
<div class="container">
<a href="../../technik.html" class="custom-btn">← Zurück zur Technik-Übersicht</a>
</div>
</div>
<div class="container">
<div class="detail-card">
<div class="row">
<div class="col-lg-7">
<h1>Löschfahrzeug LF 1</h1>
<ul class="spec-list">
<li><span class="info-label">Bezeichnung:</span> Löschfahrzeug LF 1</li>
<li><span class="info-label">Stationierung:</span> Stadt Wehlen</li>
<li><span class="info-label">Typ:</span> umgebautes Postfahrrad</li>
<li><span class="info-label">Baujahr:</span> Mai 2003</li>
<li><span class="info-label">Funkrufname:</span> -</li>
<li><span class="info-label">Fahrzeugdaten:</span> 26er Herrenfahrrad</li>
</ul>
<h3 class="beladung-title">Feuerwehrtechnische Beladung:</h3>
<ul class="beladung-list">
<li>Sirene mit Handkurbel</li>
<li>Blitzleuchte</li>
<li>Kübelspritze als Spendenkübel</li>
<li>C-Schlauch + Strahlrohr für Schnellangriff</li>
</ul>
</div>
<div class="col-lg-5 mt-4 mt-lg-0">
<div id="lf1Carousel" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="../technikpage/t_lf1_1.jpg" class="d-block w-100" alt="LF 1 Bild 1">
</div>
<div class="carousel-item">
<img src="t_lf1_2.jpg" class="d-block w-100" alt="LF 1 Bild 2">
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#lf1Carousel" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Zurück</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#lf1Carousel" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Weiter</span>
</button>
</div>
<p class="text-center text-muted mt-2 small"><em>Unser historisches Sammlerrad</em></p>
</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

View File

@ -1,212 +0,0 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LF 10/6 | FFw Stadt Wehlen</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="../../../nav.css">
<style>
:root {
--fw-rot: #900000;
--fw-grau: #616161;
--bg-light: #f8f9fa;
}
body {
background-color: var(--bg-light);
font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}
.top-bar {
background: #fff;
padding: 15px 0;
border-bottom: 1px solid #dee2e6;
}
.custom-btn {
background-color: var(--fw-grau);
color: white;
border: none;
border-radius: 8px;
padding: 8px 20px;
transition: all 0.3s ease;
font-weight: 600;
text-decoration: none;
display: inline-block;
}
.custom-btn:hover {
background-color: var(--fw-rot) !important;
color: white;
transform: translateX(-5px);
}
.detail-card {
background: #fff;
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0,0,0,0.08);
border-left: 5px solid var(--fw-rot);
padding: 30px;
margin-top: 30px;
margin-bottom: 50px;
}
h1 {
color: var(--fw-rot);
font-weight: 800;
margin-bottom: 25px;
border-bottom: 2px solid #eee;
padding-bottom: 10px;
}
.info-label {
font-weight: 700;
color: var(--fw-grau);
width: 160px;
display: inline-block;
}
.spec-list {
list-style: none;
padding-left: 0;
}
.spec-list li {
padding: 6px 0;
border-bottom: 1px solid #f1f1f1;
}
.section-title {
margin-top: 30px;
color: var(--fw-rot);
font-weight: 700;
border-left: 3px solid var(--fw-rot);
padding-left: 10px;
}
.beladung-grid {
column-count: 2; /* Teilt die lange Liste in zwei Spalten */
column-gap: 30px;
padding-left: 20px;
}
/* Carousel Styling */
.carousel-item img {
border-radius: 8px;
box-shadow: 0 4px 10px rgba(0,0,0,0.15);
max-height: 550px;
object-fit: cover;
}
.carousel-control-prev-icon, .carousel-control-next-icon {
background-color: var(--fw-rot);
border-radius: 50%;
background-size: 50%;
}
@media (max-width: 992px) {
.beladung-grid { column-count: 1; }
}
</style>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-custom">
<div class="container-fluid">
<a class="navbar-brand d-flex align-items-center" href="../../../index.html">
<img src="../../../ffw_transp_72.gif" alt="Logo" style="height: 3em; margin-right: 10px;">
<span>Feuerwehr Stadt Wehlen</span>
</a>
</div>
</nav>
<div class="top-bar">
<div class="container">
<a href="../../technik.html" class="custom-btn">← Zurück zur Technik-Übersicht</a>
</div>
</div>
<div class="container">
<div class="detail-card">
<div class="row">
<div class="col-lg-7">
<h1>Löschgruppenfahrzeug LF 10/6</h1>
<ul class="spec-list">
<li><span class="info-label">Bezeichnung:</span> LF 10/6</li>
<li><span class="info-label">Funkrufname:</span> Florian Stadt Wehlen 42-1</li>
<li><span class="info-label">Fahrgestell:</span> MB Atego 818 F (Straßenfahrgestell)</li>
<li><span class="info-label">Baujahr:</span> Juli 2007</li>
<li><span class="info-label">Motorleistung:</span> 180 PS</li>
<li><span class="info-label">Gesamtgewicht:</span> 8.600 kg</li>
</ul>
<h4 class="section-title">Technische Daten & Ausstattung</h4>
<ul class="spec-list small">
<li><strong>Maße:</strong> L 6,39m | B 2,32m | H 3,00m (Radstand 3,32m)</li>
<li><strong>Sicherheit:</strong> ABS, Differentialsperre hinten</li>
<li><strong>Licht/Warn:</strong> Top-Integro Kabinendachmodul, Martin-Horn (4 Becher), Umfeldbeleuchtung, Pneumatik-Lichtmast (2x 1000W)</li>
</ul>
<h4 class="section-title">Feuerwehrtechnische Beladung</h4>
<div class="beladung-grid small">
<ul class="mb-0">
<li>FPN 10-1000-1H Einbaupumpe</li>
<li>600 Liter Wassertank</li>
<li>Tragkraftspritze TS 8/8</li>
<li>Stromerzeuger 6,5 kW (Eisemann)</li>
<li>3-teilige Schiebeleiter</li>
<li>Lukas Schere/Spreizer Kombi SC 350</li>
<li>Lukas Kompaktaggregat</li>
<li>Wärmebildkamera Bullard Eclipse</li>
<li>Defibrillator (AED) "Zoll"</li>
<li>Sanitätsrucksack</li>
<li>Watthosen & Absturzsicherung</li>
<li>Ölbindemittel & Kettensäge</li>
<li>Schornsteinfegerwerkzeug</li>
<li>Waldbrandpatschen</li>
</ul>
</div>
</div>
<div class="col-lg-5 mt-4 mt-lg-0">
<div id="lf10Carousel" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="t_lf10_6_1.jpg" class="d-block w-100" alt="LF 10 Bild 1">
</div>
<div class="carousel-item">
<img src="t_lf10_6_2.jpg" class="d-block w-100" alt="LF 10 Bild 2">
</div>
<div class="carousel-item">
<img src="t_lf10_6_3.jpg" class="d-block w-100" alt="LF 10 Bild 3">
</div>
<div class="carousel-item">
<img src="t_lf10_6_4.jpg" class="d-block w-100" alt="LF 10 Bild 4">
</div>
<div class="carousel-item">
<img src="t_lf10_6_5.jpg" class="d-block w-100" alt="LF 10 Bild 5">
</div>
<div class="carousel-item">
<img src="t_lf10_6_6.jpg" class="d-block w-100" alt="LF 10 Bild 6">
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#lf10Carousel" data-bs-slide="prev">
<span class="carousel-control-prev-icon"></span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#lf10Carousel" data-bs-slide="next">
<span class="carousel-control-next-icon"></span>
</button>
</div>
<p class="text-center text-muted mt-3 small"><em>Unser Erstangriffsfahrzeug für Brand & Hilfeleistung</em></p>
</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

View File

@ -1,169 +0,0 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Feuerwehrboot RTB 1 | FFw Stadt Wehlen</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="../../../nav.css">
<style>
:root {
--fw-rot: #900000;
--fw-grau: #616161;
--bg-light: #f8f9fa;
}
body {
background-color: var(--bg-light);
font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}
.top-bar {
background: #fff;
padding: 15px 0;
border-bottom: 1px solid #dee2e6;
}
.custom-btn {
background-color: var(--fw-grau);
color: white;
border: none;
border-radius: 8px;
padding: 8px 20px;
transition: all 0.3s ease;
font-weight: 600;
text-decoration: none;
display: inline-block;
}
.custom-btn:hover {
background-color: var(--fw-rot) !important;
color: white;
transform: translateX(-5px);
}
.detail-card {
background: #fff;
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0,0,0,0.08);
border-left: 5px solid var(--fw-rot);
padding: 30px;
margin-top: 30px;
margin-bottom: 50px;
}
h1 {
color: var(--fw-rot);
font-weight: 800;
margin-bottom: 25px;
border-bottom: 2px solid #eee;
padding-bottom: 10px;
}
.info-label {
font-weight: 700;
color: var(--fw-grau);
width: 160px;
display: inline-block;
}
.spec-list {
list-style: none;
padding-left: 0;
}
.spec-list li {
padding: 8px 0;
border-bottom: 1px solid #f1f1f1;
}
.section-title {
margin-top: 30px;
color: var(--fw-rot);
font-weight: 700;
}
.carousel-item img {
border-radius: 8px;
box-shadow: 0 4px 10px rgba(0,0,0,0.15);
max-height: 450px;
object-fit: cover;
}
.carousel-control-prev-icon, .carousel-control-next-icon {
background-color: var(--fw-rot);
border-radius: 50%;
background-size: 50%;
}
</style>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-custom">
<div class="container-fluid">
<a class="navbar-brand d-flex align-items-center" href="../../../index.html">
<img src="../../../ffw_transp_72.gif" alt="Logo" style="height: 3em; margin-right: 10px;">
<span>Feuerwehr Stadt Wehlen</span>
</a>
</div>
</nav>
<div class="top-bar">
<div class="container">
<a href="../../technik.html" class="custom-btn">← Zurück zur Technik-Übersicht</a>
</div>
</div>
<div class="container">
<div class="detail-card">
<div class="row">
<div class="col-lg-7">
<h1>Feuerwehrboot RTB 1</h1>
<ul class="spec-list">
<li><span class="info-label">Bezeichnung:</span> Rettungsboot RTB 1 (DIN 14961)</li>
<li><span class="info-label">Standort:</span> Stadtteil Pötzscha</li>
<li><span class="info-label">Typ:</span> Barru LGL 400-BKL</li>
<li><span class="info-label">Baujahr:</span> März 2014</li>
<li><span class="info-label">Zuladung:</span> 550 kg (max. 5 Personen)</li>
</ul>
<h4 class="section-title">Technische Daten</h4>
<ul class="spec-list">
<li><span class="info-label">Maße:</span> L 4,13m | B 1,80m | T 0,18m</li>
<li><span class="info-label">Motorisierung:</span> Suzuki 25 PS (3-Zyl. 4-Takt)</li>
<li><span class="info-label">Ausstattung:</span> Bugklappe, Hochwasserräder, Tragereling</li>
</ul>
<h4 class="section-title">Ausrüstung</h4>
<p>Komplette Beladung nach DIN, inklusive Rettungsmittel für Wasser- und Eisnotfälle sowie Klappsitzbänke für den Mannschaftstransport.</p>
</div>
<div class="col-lg-5 mt-4 mt-lg-0">
<div id="rtbCarousel" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="t_aluboot_rtb1_1.jpg" class="d-block w-100" alt="RTB 1 Bild 1">
</div>
<div class="carousel-item">
<img src="t_aluboot_rtb1_2.jpg" class="d-block w-100" alt="RTB 1 Bild 2">
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#rtbCarousel" data-bs-slide="prev">
<span class="carousel-control-prev-icon"></span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#rtbCarousel" data-bs-slide="next">
<span class="carousel-control-next-icon"></span>
</button>
</div>
<p class="text-center text-muted mt-3 small"><em>Einsatzbereit auf der Elbe und in Hochwassergebieten</em></p>
</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

View File

@ -1,153 +0,0 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Schlauchboot RTB 1 | FFw Stadt Wehlen</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="../../../nav.css">
<style>
:root {
--fw-rot: #900000;
--fw-grau: #616161;
--bg-light: #f8f9fa;
}
body {
background-color: var(--bg-light);
font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}
.top-bar {
background: #fff;
padding: 15px 0;
border-bottom: 1px solid #dee2e6;
}
.custom-btn {
background-color: var(--fw-grau);
color: white;
border: none;
border-radius: 8px;
padding: 8px 20px;
transition: all 0.3s ease;
font-weight: 600;
text-decoration: none;
display: inline-block;
}
.custom-btn:hover {
background-color: var(--fw-rot) !important;
color: white;
transform: translateX(-5px);
}
.detail-card {
background: #fff;
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0,0,0,0.08);
border-left: 5px solid var(--fw-rot);
padding: 30px;
margin-top: 30px;
margin-bottom: 50px;
}
h1 {
color: var(--fw-rot);
font-weight: 800;
margin-bottom: 25px;
border-bottom: 2px solid #eee;
padding-bottom: 10px;
}
.info-label {
font-weight: 700;
color: var(--fw-grau);
width: 160px;
display: inline-block;
}
.spec-list {
list-style: none;
padding-left: 0;
}
.spec-list li {
padding: 8px 0;
border-bottom: 1px solid #f1f1f1;
}
.section-title {
margin-top: 30px;
color: var(--fw-rot);
font-weight: 700;
}
.carousel-item img {
border-radius: 8px;
box-shadow: 0 4px 10px rgba(0,0,0,0.15);
max-height: 450px;
object-fit: cover;
}
</style>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-custom">
<div class="container-fluid">
<a class="navbar-brand d-flex align-items-center" href="../../../index.html">
<img src="../../../ffw_transp_72.gif" alt="Logo" style="height: 3em; margin-right: 10px;">
<span>Feuerwehr Stadt Wehlen</span>
</a>
</div>
</nav>
<div class="top-bar">
<div class="container">
<a href="../../technik.html" class="custom-btn">← Zurück zur Technik-Übersicht</a>
</div>
</div>
<div class="container">
<div class="detail-card">
<div class="row">
<div class="col-lg-7">
<h1>Feuerwehrschlauchboot RTB 1</h1>
<ul class="spec-list">
<li><span class="info-label">Bezeichnung:</span> Rettungsschlauchboot RTB 1</li>
<li><span class="info-label">Standort:</span> Stadt Wehlen</li>
<li><span class="info-label">Baujahr:</span> Mai 2003</li>
<li><span class="info-label">Gewicht:</span> 33 kg (extrem leicht/mobil)</li>
</ul>
<h4 class="section-title">Technische Daten</h4>
<ul class="spec-list">
<li><span class="info-label">Maße:</span> L 3,00m | B 1,20m</li>
<li><span class="info-label">Sicherheit:</span> 4 separate Luftkammern</li>
<li><span class="info-label">Zuladung:</span> 570 kg (max. 3 Personen)</li>
</ul>
<h4 class="section-title">Einsatzzweck</h4>
<p>Das Schlauchboot dient primär der schnellen Menschenrettung in ufernahen Bereichen oder auf stehenden Gewässern. Aufgrund seines geringen Gewichts kann es von zwei Einsatzkräften problemlos zu schwer zugänglichen Stellen getragen werden.</p>
</div>
<div class="col-lg-5 mt-4 mt-lg-0">
<div id="rtbSchlauchCarousel" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="t_schlauchboot.jpg" class="d-block w-100" alt="Schlauchboot RTB 1">
</div>
</div>
</div>
<p class="text-center text-muted mt-3 small"><em>Flexibel einsetzbar für die Wasserrettung</em></p>
</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

View File

@ -1,179 +0,0 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Feuerwehrboot RTB 2 | FFw Stadt Wehlen</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="../../../nav.css">
<style>
:root {
--fw-rot: #900000;
--fw-grau: #616161;
--bg-light: #f8f9fa;
}
body {
background-color: var(--bg-light);
font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}
.top-bar {
background: #fff;
padding: 15px 0;
border-bottom: 1px solid #dee2e6;
}
.custom-btn {
background-color: var(--fw-grau);
color: white;
border: none;
border-radius: 8px;
padding: 8px 20px;
transition: all 0.3s ease;
font-weight: 600;
text-decoration: none;
display: inline-block;
}
.custom-btn:hover {
background-color: var(--fw-rot) !important;
color: white;
transform: translateX(-5px);
}
.detail-card {
background: #fff;
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0,0,0,0.08);
border-left: 5px solid var(--fw-rot);
padding: 30px;
margin-top: 30px;
margin-bottom: 50px;
}
h1 {
color: var(--fw-rot);
font-weight: 800;
margin-bottom: 25px;
border-bottom: 2px solid #eee;
padding-bottom: 10px;
}
.info-label {
font-weight: 700;
color: var(--fw-grau);
width: 160px;
display: inline-block;
}
.spec-list {
list-style: none;
padding-left: 0;
}
.spec-list li {
padding: 8px 0;
border-bottom: 1px solid #f1f1f1;
}
.section-title {
margin-top: 30px;
color: var(--fw-rot);
font-weight: 700;
}
.carousel-item img {
border-radius: 8px;
box-shadow: 0 4px 10px rgba(0,0,0,0.15);
max-height: 450px;
object-fit: cover;
}
.carousel-control-prev-icon, .carousel-control-next-icon {
background-color: var(--fw-rot);
border-radius: 50%;
background-size: 50%;
}
</style>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-custom">
<div class="container-fluid">
<a class="navbar-brand d-flex align-items-center" href="../../../index.html">
<img src="../../../ffw_transp_72.gif" alt="Logo" style="height: 3em; margin-right: 10px;">
<span>Feuerwehr Stadt Wehlen</span>
</a>
</div>
</nav>
<div class="top-bar">
<div class="container">
<a href="../../technik.html" class="custom-btn">← Zurück zur Technik-Übersicht</a>
</div>
</div>
<div class="container">
<div class="detail-card">
<div class="row">
<div class="col-lg-7">
<h1>Feuerwehrboot RTB 2</h1>
<ul class="spec-list">
<li><span class="info-label">Bezeichnung:</span> Rettungsboot RTB 2</li>
<li><span class="info-label">Funkrufname:</span> Florian Stadt Wehlen 79-1</li>
<li><span class="info-label">Typ:</span> Fiskas Buster "L" Aluminium</li>
<li><span class="info-label">Baujahr:</span> Mai 2003</li>
<li><span class="info-label">Zuladung:</span> 590 kg (max. 6 Personen)</li>
</ul>
<h4 class="section-title">Technische Daten</h4>
<ul class="spec-list">
<li><span class="info-label">Maße:</span> L 4,90m | B 1,97m | T 0,29m</li>
<li><span class="info-label">Gewicht:</span> 450 kg</li>
<li><span class="info-label">Motorisierung:</span> Suzuki 40 PS (3-Zyl. 4-Takt)</li>
<li><span class="info-label">Speed:</span> max. 33 Knoten (ca. 61 km/h)</li>
</ul>
<h4 class="section-title">Ausstattung & Beladung</h4>
<ul class="spec-list small">
<li>Sondersignalanlage: Blitzkennleuchte & Martinshorn auf Bügel</li>
<li>Beleuchtung: Suchscheinwerfer (fest) + 2 flexible Suchscheinwerfer</li>
<li>Technik: Echolot zur Tiefenmessung</li>
<li>Rettung: Rettungsbrett & Rettungsmittel nach DIN</li>
<li>Besonderheit: TS 3 einsetzbar</li>
</ul>
</div>
<div class="col-lg-5 mt-4 mt-lg-0">
<div id="rtb2Carousel" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="t_rtb2_1.jpg" class="d-block w-100" alt="RTB 2 Bild 1">
</div>
<div class="carousel-item">
<img src="t_rtb2_2.jpg" class="d-block w-100" alt="RTB 2 Bild 2">
</div>
<div class="carousel-item">
<img src="t_rtb2_3.jpg" class="d-block w-100" alt="RTB 2 Bild 3">
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#rtb2Carousel" data-bs-slide="prev">
<span class="carousel-control-prev-icon"></span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#rtb2Carousel" data-bs-slide="next">
<span class="carousel-control-next-icon"></span>
</button>
</div>
<p class="text-center text-muted mt-3 small"><em>Schnelleinsatzboot für Rettungseinsätze auf der Elbe</em></p>
</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

View File

@ -1,177 +0,0 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>STA Schlauchtransportanhänger | FFw Stadt Wehlen</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="../../../nav.css">
<style>
:root {
--fw-rot: #900000;
--fw-grau: #616161;
--bg-light: #f8f9fa;
}
body {
background-color: var(--bg-light);
font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}
.top-bar {
background: #fff;
padding: 15px 0;
border-bottom: 1px solid #dee2e6;
}
.custom-btn {
background-color: var(--fw-grau);
color: white;
border: none;
border-radius: 8px;
padding: 8px 20px;
transition: all 0.3s ease;
font-weight: 600;
text-decoration: none;
display: inline-block;
}
.custom-btn:hover {
background-color: var(--fw-rot) !important;
color: white;
transform: translateX(-5px);
}
.detail-card {
background: #fff;
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0,0,0,0.08);
border-left: 5px solid var(--fw-rot);
padding: 30px;
margin-top: 30px;
margin-bottom: 50px;
}
h1 {
color: var(--fw-rot);
font-weight: 800;
margin-bottom: 25px;
border-bottom: 2px solid #eee;
padding-bottom: 10px;
}
.info-label {
font-weight: 700;
color: var(--fw-grau);
width: 160px;
display: inline-block;
}
.spec-list {
list-style: none;
padding-left: 0;
}
.spec-list li {
padding: 8px 0;
border-bottom: 1px solid #f1f1f1;
}
.section-title {
margin-top: 30px;
color: var(--fw-rot);
font-weight: 700;
}
.carousel-item img {
border-radius: 8px;
box-shadow: 0 4px 10px rgba(0,0,0,0.15);
max-height: 450px;
object-fit: cover;
}
.highlight-box {
background: #fdf2f2;
border: 1px dashed var(--fw-rot);
padding: 15px;
border-radius: 8px;
margin-top: 20px;
}
</style>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-custom">
<div class="container-fluid">
<a class="navbar-brand d-flex align-items-center" href="../../../index.html">
<img src="../../../ffw_transp_72.gif" alt="Logo" style="height: 3em; margin-right: 10px;">
<span>Feuerwehr Stadt Wehlen</span>
</a>
</div>
</nav>
<div class="top-bar">
<div class="container">
<a href="../../technik.html" class="custom-btn">← Zurück zur Technik-Übersicht</a>
</div>
</div>
<div class="container">
<div class="detail-card">
<div class="row">
<div class="col-lg-7">
<h1>Schlauchtransportanhänger (STA)</h1>
<ul class="spec-list">
<li><span class="info-label">Bezeichnung:</span> STA</li>
<li><span class="info-label">Standort:</span> Stadt Wehlen</li>
<li><span class="info-label">Typ:</span> Humbauer HA75/100</li>
<li><span class="info-label">Baujahr:</span> Dezember 2004</li>
<li><span class="info-label">Gesamtgewicht:</span> 750 kg</li>
</ul>
<h4 class="section-title">Technische Details</h4>
<ul class="spec-list">
<li><span class="info-label">Maße:</span> L 3,56m | B 1,79m | H 2,35m</li>
<li><span class="info-label">Ausstattung:</span> Hochplane, Heck-Arbeitsbeleuchtung, Stützrad & Heckstützen</li>
</ul>
<h4 class="section-title">Feuerwehrtechnische Beladung</h4>
<div class="highlight-box">
<p class="mb-2"><strong>Schlauchmaterial:</strong></p>
<ul class="mb-3">
<li><strong>38 B-Schläuche</strong> (à 20m) in Buchten gekoppelt</li>
<li>2 Tragekörbe mit je 3 x 20m C-Schläuchen</li>
</ul>
<p class="mb-0 small">Zusätzlich: Standrohr, Schlüssel, 2 C-Strahlrohre, Verteiler, Schlauchbrücken und Kupplungsschlüssel.</p>
</div>
</div>
<div class="col-lg-5 mt-4 mt-lg-0">
<div id="staCarousel" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="t_sta_1.jpg" class="d-block w-100" alt="STA Bild 1">
</div>
<div class="carousel-item">
<img src="t_sta_2.jpg" class="d-block w-100" alt="STA Bild 2">
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#staCarousel" data-bs-slide="prev">
<span class="carousel-control-prev-icon"></span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#staCarousel" data-bs-slide="next">
<span class="carousel-control-next-icon"></span>
</button>
</div>
<p class="text-center text-muted mt-3 small"><em>Ermöglicht das schnelle Verlegen von ca. 760m B-Leitung während der Fahrt</em></p>
</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

View File

@ -1,197 +0,0 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>TSF Pötzscha | FFw Stadt Wehlen</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="../../../nav.css">
<style>
:root {
--fw-rot: #900000;
--fw-grau: #616161;
--bg-light: #f8f9fa;
}
body {
background-color: var(--bg-light);
font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}
.top-bar {
background: #fff;
padding: 15px 0;
border-bottom: 1px solid #dee2e6;
}
.custom-btn {
background-color: var(--fw-grau);
color: white;
border: none;
border-radius: 8px;
padding: 8px 20px;
transition: all 0.3s ease;
font-weight: 600;
text-decoration: none;
display: inline-block;
}
.custom-btn:hover {
background-color: var(--fw-rot) !important;
color: white;
transform: translateX(-5px);
}
.detail-card {
background: #fff;
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0,0,0,0.08);
border-left: 5px solid var(--fw-rot);
padding: 30px;
margin-top: 30px;
margin-bottom: 50px;
}
h1 {
color: var(--fw-rot);
font-weight: 800;
margin-bottom: 25px;
border-bottom: 2px solid #eee;
padding-bottom: 10px;
}
.info-label {
font-weight: 700;
color: var(--fw-grau);
width: 160px;
display: inline-block;
}
.spec-list {
list-style: none;
padding-left: 0;
}
.spec-list li {
padding: 8px 0;
border-bottom: 1px solid #f1f1f1;
}
.section-title {
margin-top: 30px;
color: var(--fw-rot);
font-weight: 700;
border-left: 3px solid var(--fw-rot);
padding-left: 10px;
}
.carousel-item img {
border-radius: 8px;
box-shadow: 0 4px 10px rgba(0,0,0,0.15);
max-height: 450px;
object-fit: cover;
}
.highlight-badge {
background-color: var(--fw-rot);
color: white;
padding: 4px 12px;
border-radius: 20px;
font-size: 0.9rem;
margin-bottom: 15px;
display: inline-block;
}
</style>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-custom">
<div class="container-fluid">
<a class="navbar-brand d-flex align-items-center" href="../../../index.html">
<img src="../../../ffw_transp_72.gif" alt="Logo" style="height: 3em; margin-right: 10px;">
<span>Feuerwehr Stadt Wehlen</span>
</a>
</div>
</nav>
<div class="top-bar">
<div class="container">
<a href="../../technik.html" class="custom-btn">← Zurück zur Technik-Übersicht</a>
</div>
</div>
<div class="container">
<div class="detail-card">
<div class="row">
<div class="col-lg-7">
<span class="highlight-badge">Standort: Pötzscha</span>
<h1>Tragkraftspritzenfahrzeug (TSF)</h1>
<ul class="spec-list">
<li><span class="info-label">Bezeichnung:</span> TSF</li>
<li><span class="info-label">Funkrufname:</span> Florian Pötzscha 47-1</li>
<li><span class="info-label">Fahrgestell:</span> FIAT Ducato MAXI 2.3</li>
<li><span class="info-label">Baujahr:</span> August 2002</li>
<li><span class="info-label">Besatzung:</span> 1/5 (Staffel)</li>
</ul>
<h4 class="section-title">Fahrzeugdaten</h4>
<ul class="spec-list">
<li><span class="info-label">Leistung:</span> 81 kW (110 PS)</li>
<li><span class="info-label">Gesamtgewicht:</span> 3.500 kg</li>
<li><span class="info-label">Maße:</span> L 5,20m | B 2,07m | H 2,39m</li>
<li><span class="info-label">Ausstattung:</span> Pneumatischer Lichtmast (2x 80W LED), Umfeldbeleuchtung, RTK 6</li>
</ul>
<h4 class="section-title">Feuerwehrtechnische Beladung</h4>
<div class="row mt-3">
<div class="col-md-6">
<ul class="spec-list small">
<li>Tragkraftspritze TS 8/8</li>
<li>4 Pressluftatmer (PA)</li>
<li>4-teilige Steckleiter</li>
<li>Stromerzeuger 3,5 kW</li>
</ul>
</div>
<div class="col-md-6">
<ul class="spec-list small">
<li>Motorsäge (Kettensäge)</li>
<li>Verkehrsabsicherung (VKU)</li>
<li>Sanitätsrucksack</li>
<li>Lichtstativ (2x 1000W)</li>
</ul>
</div>
</div>
</div>
<div class="col-lg-5 mt-4 mt-lg-0">
<div id="tsfCarousel" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="t_tsf_01.jpg" class="d-block w-100" alt="TSF Frontansicht">
</div>
<div class="carousel-item">
<img src="t_tsf_02.jpg" class="d-block w-100" alt="TSF Seitenansicht">
</div>
<div class="carousel-item">
<img src="t_tsf_06.jpg" class="d-block w-100" alt="TSF Heckansicht">
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#tsfCarousel" data-bs-slide="prev">
<span class="carousel-control-prev-icon"></span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#tsfCarousel" data-bs-slide="next">
<span class="carousel-control-next-icon"></span>
</button>
</div>
<p class="text-center text-muted mt-3 small"><em>Vielseitiges Einsatzfahrzeug der Ortswehr Pötzscha</em></p>
</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

20
acc.css
View File

@ -1,20 +0,0 @@
.history-container{
max-width: 45em;
margin: auto;
}
/* Custom style for the close button */
.custom-close {
background-color: red; /* Red background */
border: none; /* Remove border */
width: 30px; /* Adjust width if needed */
height: 30px; /* Adjust height if needed */
color: white; /* White X color */
border-radius: 50%; /* Make the button round */
}
.custom-close:focus {
outline: none; /* Remove the outline when focused */
}

367
assets/components.js Normal file
View File

@ -0,0 +1,367 @@
/* ======================================================
components.js Feuerwehr Stadt Wehlen (Modern Light)
------------------------------------------------------
Rendert alle wiederkehrenden Elemente und die Inhalte
aus den zentralen Daten-Dateien (data/).
Erwartet window.FFW_BASE (Pfad zum Projekt-Root).
Aktiver Navigationspunkt über <body data-page="...">.
====================================================== */
(function () {
const base = window.FFW_BASE || "";
const page = document.body.dataset.page || "";
/* ======================================================
NAVIGATION & FOOTER
====================================================== */
const NAV = `
<nav class="navbar navbar-expand-lg gl-navbar sticky-top">
<div class="container">
<a class="navbar-brand" href="index.html">
<img src="${base}bilder/ffw_transp_72.gif" alt="Logo Feuerwehr Stadt Wehlen">
<span>Feuerwehr Stadt Wehlen</span>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#glNav"
aria-controls="glNav" aria-expanded="false" aria-label="Menü öffnen">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="glNav">
<ul class="navbar-nav ms-auto">
<li class="nav-item"><a class="nav-link" data-page="start" href="index.html">Startseite</a></li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" data-page="ueber" role="button" data-bs-toggle="dropdown" aria-expanded="false">Über uns</a>
<ul class="dropdown-menu dropdown-menu-end">
<li><a class="dropdown-item" data-page="geschichte" href="geschichte.html">Geschichte</a></li>
<li><a class="dropdown-item" data-page="technik" href="technik.html">Technik</a></li>
<li><a class="dropdown-item" data-page="mitglieder" href="mitglieder.html">Organigramm</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" data-page="jugendfeuerwehr" href="jugendfeuerwehr.html">Jugendfeuerwehr</a></li>
<li><a class="dropdown-item" data-page="foerderverein" href="foerderverein.html">Förderverein</a></li>
</ul>
</li>
<li class="nav-item"><a class="nav-link" data-page="dienstplan" href="dienstplan.html">Dienstplan</a></li>
<li class="nav-item"><a class="nav-link" data-page="veranstaltungen" href="veranstaltungen.html">Veranstaltungen</a></li>
<li class="nav-item"><a class="nav-link" data-page="kontakt" href="kontakt.html">Kontakt / Impressum</a></li>
</ul>
</div>
</div>
</nav>`;
const FOOTER = `
<footer class="gl-footer">
<div class="container">
<div class="row g-4 text-center text-md-start align-items-start">
<div class="col-md-3">
<div class="footer-brand">
<img src="${base}bilder/ffw_transp_72.gif" alt="Logo Feuerwehr Stadt Wehlen">
<span>Feuerwehr<br>Stadt Wehlen</span>
</div>
</div>
<div class="col-md-3">
<h6>Letzte Aktualisierung</h6>
<p>17. März 2026</p>
<small>(Version 1.2)</small>
</div>
<div class="col-md-3">
<h6>Kleine Statistik der FFw Stadt Wehlen</h6>
<p><strong>Aktive:</strong> 22 | <strong>Jugend:</strong> 20 | <strong>Passive:</strong> 13 | <strong>Förderverein:</strong> 161</p>
</div>
<div class="col-md-3">
<h6>Navigation</h6>
<ul class="footer-nav justify-content-center justify-content-md-start">
<li><a href="geschichte.html">Geschichte</a></li>
<li><a href="technik.html">Technik</a></li>
<li><a href="mitglieder.html">Organigramm</a></li>
<li><a href="jugendfeuerwehr.html">Jugendfeuerwehr</a></li>
<li><a href="foerderverein.html">Förderverein</a></li>
<li><a href="dienstplan.html">Dienstplan</a></li>
<li><a href="veranstaltungen.html">Veranstaltungen</a></li>
<li><a href="kontakt.html">Kontakt / Impressum</a></li>
<li><a href="datenschutz.html">Datenschutz</a></li>
</ul>
</div>
</div>
</div>
</footer>`;
const headerMount = document.getElementById("site-header");
if (headerMount) headerMount.innerHTML = NAV;
const footerMount = document.getElementById("site-footer");
if (footerMount) footerMount.innerHTML = FOOTER;
/* Aktiven Menüpunkt markieren */
document.querySelectorAll(`[data-page="${page}"]`).forEach(el => el.classList.add("active"));
/* ======================================================
HERO (Startseite) helle Split-Karte + Statistik
====================================================== */
const heroMount = document.getElementById("site-hero");
if (heroMount) {
heroMount.innerHTML = `
<section class="gl-hero container">
<div class="gl-hero-karte">
<div class="row g-0">
<div class="col-lg-6 d-flex align-items-center">
<div class="gl-hero-text">
<span class="gl-hero-badge">Freiwillige Feuerwehr seit 1901</span>
<h1>Feuerwehr <span class="highlight">Stadt Wehlen</span></h1>
<p>Ehrenamtlich im Einsatz für Stadt Wehlen und Pötzscha bei Brand, Hilfeleistung und Wasserrettung auf der Elbe.</p>
<div class="gl-hero-cta">
<a class="btn-pill" href="technik.html">Unsere Technik</a>
<a class="btn-pill btn-pill-ghost" href="dienstplan.html">Dienstplan &amp; Termine</a>
</div>
</div>
</div>
<div class="col-lg-6">
<div class="gl-hero-bild" style="--hero-bild: url('${base}bilder/geraetehaus.png')" role="img" aria-label="Gerätehaus der Feuerwehr Stadt Wehlen"></div>
</div>
</div>
</div>
<div class="row g-3 mt-2">
<div class="col-6 col-md-3"><div class="stat-kachel"><div class="zahl">22</div><div class="label">Aktive</div></div></div>
<div class="col-6 col-md-3"><div class="stat-kachel"><div class="zahl">20</div><div class="label">Jugendfeuerwehr</div></div></div>
<div class="col-6 col-md-3"><div class="stat-kachel"><div class="zahl">13</div><div class="label">Passive</div></div></div>
<div class="col-6 col-md-3"><div class="stat-kachel"><div class="zahl">161</div><div class="label">Förderverein</div></div></div>
</div>
</section>`;
}
/* ======================================================
GESCHICHTE Accordion
====================================================== */
const geschichteMount = document.getElementById("geschichte-inhalt");
if (geschichteMount && window.FFW_GESCHICHTE) {
const items = window.FFW_GESCHICHTE.map((epoche, i) => {
const inhalt = epoche.eintraege.map(e => {
const bildBtn = e.bild
? `<button type="button" class="btn-pill mt-3" data-bs-toggle="modal" data-bs-target="#modal1921">${window.FFW_GESCHICHTE_BILD.button}</button>`
: "";
return `${e.titel ? `<h2>${e.titel}</h2>` : ""}${e.html}${bildBtn}`;
}).join("");
return `
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button${i === 0 ? "" : " collapsed"}" type="button"
data-bs-toggle="collapse" data-bs-target="#epoche${i}"
aria-expanded="${i === 0}" aria-controls="epoche${i}">
${epoche.zeitraum}
</button>
</h2>
<div id="epoche${i}" class="accordion-collapse collapse${i === 0 ? " show" : ""}" data-bs-parent="#geschichteAccordion">
<div class="accordion-body">${inhalt}</div>
</div>
</div>`;
}).join("");
geschichteMount.innerHTML = `
<div class="accordion gl-accordion" id="geschichteAccordion">${items}</div>`;
/* Modal für den Zeitungsartikel von 1921 */
document.body.insertAdjacentHTML("beforeend", `
<div class="modal fade" id="modal1921" tabindex="-1" aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">${window.FFW_GESCHICHTE_BILD.titel}</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Schließen"></button>
</div>
<div class="modal-body text-center">
<img src="${base}${window.FFW_GESCHICHTE_BILD.src}" alt="${window.FFW_GESCHICHTE_BILD.titel}" class="img-fluid rounded">
</div>
</div>
</div>
</div>`);
}
/* ======================================================
TECHNIK Kartenraster mit Kategorie-Filter
====================================================== */
const technikMount = document.getElementById("technik-grid");
if (technikMount && window.FFW_FAHRZEUGE) {
const kategorien = [...new Set(window.FFW_FAHRZEUGE.map(f => f.kategorie))];
const filterBtns = [`<button class="filter-btn active" data-filter="alle">Alle</button>`]
.concat(kategorien.map(k => `<button class="filter-btn" data-filter="${k}">${k}</button>`))
.join("");
const karten = window.FFW_FAHRZEUGE.map(f => {
const inner = `
<div class="bild-wrap">
<img src="${base}${f.karte}" alt="${f.name}" loading="lazy">
<span class="kat-chip">${f.kategorie}</span>
${f.inArbeit ? `<span class="bald-chip">Demnächst</span>` : ""}
</div>
<div class="body"><h5>${f.name}</h5><span class="pfeil"></span></div>`;
return `<div class="col-md-4 col-sm-6 tech-item" data-kategorie="${f.kategorie}">
${f.inArbeit
? `<div class="tech-card">${inner}</div>`
: `<a class="tech-card" href="fahrzeug.html?id=${f.id}">${inner}</a>`}
</div>`;
}).join("");
technikMount.innerHTML = `
<div class="filter-leiste">${filterBtns}</div>
<div class="row g-4">${karten}</div>`;
technikMount.querySelectorAll(".filter-btn").forEach(btn => {
btn.addEventListener("click", () => {
technikMount.querySelectorAll(".filter-btn").forEach(b => b.classList.remove("active"));
btn.classList.add("active");
const filter = btn.dataset.filter;
technikMount.querySelectorAll(".tech-item").forEach(item => {
item.classList.toggle("d-none", filter !== "alle" && item.dataset.kategorie !== filter);
});
});
});
}
/* ======================================================
FAHRZEUG Detailseite (datengetrieben via ?id=)
====================================================== */
const fzMount = document.getElementById("fahrzeug-detail");
if (fzMount && window.FFW_FAHRZEUGE) {
const id = new URLSearchParams(location.search).get("id");
const f = window.FFW_FAHRZEUGE.find(x => x.id === id);
if (!f || f.inArbeit) {
fzMount.innerHTML = `
<div class="fz-karte text-center">
<h3>Fahrzeug nicht gefunden</h3>
<p class="termin-beschr">Dieses Fahrzeug existiert nicht (mehr) oder die Seite befindet sich im Aufbau.</p>
<a class="btn-pill mt-3" href="technik.html"> Zurück zur Technik-Übersicht</a>
</div>`;
} else {
document.title = `${f.titel} | Feuerwehr Stadt Wehlen`;
const specs = f.daten.map(([label, wert]) =>
`<li><span class="spec-label">${label}</span><span>${wert}</span></li>`).join("");
const bereiche = (f.bereiche || []).map(b => `
<h3 class="fz-sektion">${b.titel}</h3>
<ul class="fz-punkte">${b.punkte.map(p => `<li>${p}</li>`).join("")}</ul>`).join("");
const galerie = f.bilder.length > 1
? `<div id="fahrzeugCarousel" class="carousel slide">
<div class="carousel-inner">
${f.bilder.map((b, i) => `<div class="carousel-item${i === 0 ? " active" : ""}"><img src="${base}${b.src}" class="d-block w-100" alt="${b.alt}" loading="lazy"></div>`).join("")}
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#fahrzeugCarousel" data-bs-slide="prev"><span class="carousel-control-prev-icon"></span><span class="visually-hidden">Zurück</span></button>
<button class="carousel-control-next" type="button" data-bs-target="#fahrzeugCarousel" data-bs-slide="next"><span class="carousel-control-next-icon"></span><span class="visually-hidden">Weiter</span></button>
</div>`
: `<img src="${base}${f.bilder[0].src}" class="img-fluid w-100 fz-einzelbild" alt="${f.bilder[0].alt}" loading="lazy">`;
fzMount.innerHTML = `
<div class="row g-4">
<div class="col-lg-7">
<div class="fz-karte">
${f.standort ? `<span class="standort-chip">Standort: ${f.standort}</span>` : ""}
<h3>Fahrzeugdaten</h3>
<ul class="spec-list">${specs}</ul>
${bereiche}
${f.text ? `<p class="mt-4 mb-0">${f.text}</p>` : ""}
</div>
</div>
<div class="col-lg-5">
${galerie}
${f.hinweis ? `<div class="fz-hinweis">${f.hinweis}</div>` : ""}
</div>
</div>`;
const carouselEl = fzMount.querySelector("#fahrzeugCarousel");
if (carouselEl && window.bootstrap) new bootstrap.Carousel(carouselEl, { interval: 5000 });
}
}
/* ======================================================
MITGLIEDER Organigramm
====================================================== */
const orgMount = document.getElementById("mitglieder-inhalt");
if (orgMount && window.FFW_MITGLIEDER) {
const M = window.FFW_MITGLIEDER;
const box = (eintrag, klasse = "") => `
<div class="org-box ${klasse}">
<span class="rolle">${eintrag.rolle}</span>
<span class="name">${eintrag.namen.join("<br>")}</span>
</div>`;
const ebene = (eintraege, klasse = "") =>
`<div class="org-ebene">${eintraege.map(e => box(e, klasse)).join("")}</div>`;
const gruppen = M.gruppen.map(g => {
const inhalt = g.abschnitte
? g.abschnitte.map(a => `<span class="label">${a.label}</span><ul>${a.namen.map(n => `<li>${n}</li>`).join("")}</ul>`).join("")
: `<ul>${g.namen.map(n => `<li>${n}</li>`).join("")}</ul>`;
return `<div class="org-gruppe"><h3>${g.titel}</h3>${inhalt}</div>`;
}).join("");
orgMount.innerHTML = `
${ebene([M.fuehrung[0]], "fuehrung")}
${ebene([M.fuehrung[1]], "fuehrung")}
${ebene(M.stab)}
${ebene(M.fachwarte)}
<div class="org-gruppen">${gruppen}</div>`;
}
/* ======================================================
FÖRDERVEREIN Downloads & Sponsoren
====================================================== */
const dlMount = document.getElementById("foerderverein-downloads");
if (dlMount && window.FFW_FOERDERVEREIN) {
const F = window.FFW_FOERDERVEREIN;
dlMount.innerHTML = `<div class="row g-4">${F.downloads.map(d => `
<div class="col-md-6 col-lg-3">
<a class="gl-card text-center" href="${base}${d.datei}" target="_blank" rel="noopener">
<h3>${d.titel}</h3>
<p class="beschreibung">${d.beschr}</p>
<span class="mehr">PDF öffnen </span>
</a>
</div>`).join("")}
</div>`;
}
const spMount = document.getElementById("sponsoren-inhalt");
if (spMount && window.FFW_FOERDERVEREIN) {
const F = window.FFW_FOERDERVEREIN;
const privat = Object.entries(F.sponsorenPrivat).map(([gruppe, namen]) => `
<div class="col-md-4">
<div class="org-gruppe h-100">
<h3>${gruppe}</h3>
<ul>${namen.map(n => `<li>${n}</li>`).join("")}</ul>
</div>
</div>`).join("");
const firmen = F.sponsorenFirmen.map(f => `
<div class="col-md-6 col-lg-4">
<div class="sponsor-firma">
${f.logo ? `<img class="sponsor-logo" src="${base}${f.logo}" alt="Logo ${f.name}" loading="lazy">` : ""}
${f.web
? `<strong><a href="${f.web}" target="_blank" rel="noopener noreferrer">${f.name} <span class="pfeil">↗</span></a></strong>`
: `<strong>${f.name}</strong>`}
<span>${f.ort}</span>
${f.tel ? `<span>Tel.: ${f.tel}</span>` : ""}
</div>
</div>`).join("");
spMount.innerHTML = `
<h2 class="abschnitt-titel mt-5">Unsere Sponsoren</h2>
<p class="abschnitt-sub">Herzlichen Dank für die Unterstützung!</p>
<h3 class="fz-sektion">Privatpersonen</h3>
<div class="row g-4 mb-4">${privat}</div>
<h3 class="fz-sektion">Vereine</h3>
<div class="org-gruppe mb-4" style="max-width: 420px;">
<ul>${F.sponsorenVereine.map(v => `<li>${v}</li>`).join("")}</ul>
</div>
<h3 class="fz-sektion">Firmen</h3>
<div class="row g-3">${firmen}</div>`;
}
})();

765
assets/style.css Normal file
View File

@ -0,0 +1,765 @@
/* ======================================================
style.css Feuerwehr Stadt Wehlen ("Modern Light")
------------------------------------------------------
Helles, modernes Design: hellgrauer Hintergrund, weiße
abgerundete Karten mit weichen Schatten, viel Weißraum.
Rot nur als Akzent der Header trägt das rote
Logo-Muster. Mobile-first.
====================================================== */
:root {
--rot: #b30000;
--rot-dunkel: #8a0000;
--bg: #eef0f4;
--karte: #ffffff;
--text: #2b2f36;
--muted: #6b7280;
--border: #e3e6ea;
--schatten: 0 6px 24px rgba(30, 34, 45, 0.08);
--schatten-hover: 0 14px 34px rgba(30, 34, 45, 0.14);
--radius: 16px;
--pattern: url('../bilder/logo2.jpeg');
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
margin: 0;
background: var(--bg);
color: var(--text);
font-family: "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
line-height: 1.65;
min-height: 100vh;
display: flex;
flex-direction: column;
overflow-x: hidden;
}
main { flex: 1 0 auto; }
::selection { background: var(--rot); color: #fff; }
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb { background: #b9bec7; border-radius: 6px; }
::-webkit-scrollbar-thumb:hover { background: var(--rot); }
/* ------------------------------------------------------
Typografie
------------------------------------------------------ */
h1, h2, h3, h4, h5 { font-weight: 700; color: var(--text); }
a { color: var(--rot); }
a:hover { color: var(--rot-dunkel); }
.abschnitt-titel {
font-size: 1.6rem;
margin-bottom: 0.4rem;
}
.abschnitt-sub {
color: var(--muted);
margin-bottom: 1.8rem;
}
/* ------------------------------------------------------
Buttons (abgerundet, Pill-Form)
------------------------------------------------------ */
.btn-pill {
display: inline-block;
background: var(--rot);
color: #fff !important;
font-weight: 600;
text-decoration: none;
padding: 0.75rem 1.7rem;
border: none;
border-radius: 999px;
box-shadow: 0 6px 16px rgba(179, 0, 0, 0.28);
transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
.btn-pill:hover {
background: var(--rot-dunkel);
transform: translateY(-2px);
box-shadow: 0 10px 22px rgba(179, 0, 0, 0.34);
}
.btn-pill-ghost {
background: #fff;
color: var(--rot) !important;
box-shadow: inset 0 0 0 2px var(--rot);
}
.btn-pill-ghost:hover { background: var(--rot); color: #fff !important; }
/* ------------------------------------------------------
Navbar (rot mit Logo-Muster, weiße Schrift)
------------------------------------------------------ */
.gl-navbar {
background-color: var(--rot);
background-image: var(--pattern);
background-size: 9em;
background-repeat: repeat;
background-blend-mode: multiply;
box-shadow: 0 4px 18px rgba(0, 0, 0, 0.22);
padding: 0.9rem 0;
}
.gl-navbar .navbar-brand {
color: #fff !important;
font-weight: 700;
font-size: 1.25rem;
display: flex;
align-items: center;
gap: 0.6rem;
text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.55);
}
.gl-navbar .navbar-brand img { height: 2.6em; width: auto; }
.gl-navbar .nav-link {
color: rgba(255, 255, 255, 0.92) !important;
font-weight: 600;
border-radius: 999px;
padding: 0.45rem 1rem !important;
margin: 0 0.1rem;
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.45);
transition: background 0.2s ease, color 0.2s ease;
}
.gl-navbar .nav-link:hover { background: rgba(255, 255, 255, 0.18); color: #fff !important; }
.gl-navbar .nav-link.active {
background: #fff;
color: var(--rot) !important;
text-shadow: none;
}
.gl-navbar .dropdown-menu {
border: none;
border-radius: 14px;
box-shadow: var(--schatten-hover);
padding: 0.5rem;
}
.gl-navbar .dropdown-item { border-radius: 10px; font-weight: 500; color: var(--text); }
.gl-navbar .dropdown-item:hover,
.gl-navbar .dropdown-item.active { background: rgba(179, 0, 0, 0.08); color: var(--rot); }
.gl-navbar .navbar-toggler { border-color: rgba(255, 255, 255, 0.7); }
.gl-navbar .navbar-toggler-icon {
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23ffffff' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
/* ------------------------------------------------------
Hero (Startseite) helle Split-Karte
------------------------------------------------------ */
.gl-hero { padding: 3rem 0 1rem; }
.gl-hero-karte {
background: var(--karte);
border-radius: 24px;
box-shadow: var(--schatten);
overflow: hidden;
}
.gl-hero-text { padding: 2.5rem; }
.gl-hero-badge {
display: inline-block;
background: rgba(179, 0, 0, 0.09);
color: var(--rot);
font-weight: 700;
font-size: 0.8rem;
letter-spacing: 0.06em;
text-transform: uppercase;
border-radius: 999px;
padding: 0.35rem 1rem;
margin-bottom: 1.1rem;
}
.gl-hero h1 { font-size: clamp(1.9rem, 4.5vw, 3rem); line-height: 1.15; margin-bottom: 1rem; }
.gl-hero h1 .highlight { color: var(--rot); }
.gl-hero p { color: var(--muted); font-size: 1.08rem; }
.gl-hero-cta { display: flex; flex-wrap: wrap; gap: 0.8rem; margin-top: 1.6rem; }
.gl-hero-bild {
min-height: 260px;
height: 100%;
background: var(--hero-bild) center/cover no-repeat;
}
/* ------------------------------------------------------
Statistik-Kacheln (Startseite)
------------------------------------------------------ */
.stat-kachel {
background: var(--karte);
border-radius: var(--radius);
box-shadow: var(--schatten);
text-align: center;
padding: 1.4rem 1rem;
height: 100%;
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.stat-kachel:hover { transform: translateY(-4px); box-shadow: var(--schatten-hover); }
.stat-kachel .zahl { font-size: 2rem; font-weight: 800; color: var(--rot); line-height: 1.1; }
.stat-kachel .label { color: var(--muted); font-size: 0.9rem; font-weight: 600; }
/* ------------------------------------------------------
Karten (Termine, Quicklinks)
------------------------------------------------------ */
.gl-card {
background: var(--karte);
border-radius: var(--radius);
box-shadow: var(--schatten);
padding: 1.6rem;
height: 100%;
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
a.gl-card { display: block; text-decoration: none; color: inherit; }
.gl-card:hover { transform: translateY(-4px); box-shadow: var(--schatten-hover); }
/* Gestapelte Karten in EINER Spalte: height:100% würde sich sonst
aufaddieren und die Karten über die nächste Sektion schieben */
.gl-card.h-auto { height: auto; }
.gl-card h3 { font-size: 1.15rem; margin-bottom: 0.9rem; }
.gl-card h3 .icon {
display: inline-flex;
align-items: center;
justify-content: center;
width: 2.2rem;
height: 2.2rem;
border-radius: 12px;
background: rgba(179, 0, 0, 0.09);
margin-right: 0.6rem;
vertical-align: middle;
}
.gl-card .termin-datum { font-weight: 700; font-size: 1.08rem; margin-bottom: 0.25rem; }
.gl-card .termin-art { color: var(--rot); font-weight: 600; margin-bottom: 0.25rem; }
.gl-card .termin-beschr { color: var(--muted); margin-bottom: 0; }
.gl-card .mehr { color: var(--rot); font-weight: 600; margin-top: 0.8rem; display: inline-block; }
.gl-card p.beschreibung { color: var(--muted); margin-bottom: 0; }
/* ------------------------------------------------------
Seitenkopf (Unterseiten) rotes Musterband
------------------------------------------------------ */
.gl-seitenkopf {
background-color: var(--rot);
background-image: var(--pattern);
background-size: 11em;
background-repeat: repeat;
background-blend-mode: multiply;
color: #fff;
padding: 3.2rem 0;
text-align: center;
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);
}
.gl-seitenkopf h1 { color: #fff; font-size: clamp(1.7rem, 4.5vw, 2.6rem); margin: 0; text-shadow: 1px 2px 4px rgba(0, 0, 0, 0.45); }
.gl-seitenkopf .untertitel { color: rgba(255, 255, 255, 0.88); margin: 0.5rem 0 0; text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.4); }
.gl-seitenkopf a { color: #fff; }
/* ------------------------------------------------------
Geschichte Accordion
------------------------------------------------------ */
.gl-accordion .accordion-item {
background: var(--karte);
border: none;
border-radius: var(--radius) !important;
box-shadow: var(--schatten);
margin-bottom: 1rem;
overflow: hidden;
}
.gl-accordion .accordion-button {
font-weight: 700;
font-size: 1.15rem;
color: var(--text);
background: var(--karte);
padding: 1.2rem 1.5rem;
}
.gl-accordion .accordion-button:not(.collapsed) {
background: var(--rot);
color: #fff;
box-shadow: none;
}
.gl-accordion .accordion-button:not(.collapsed)::after {
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}
.gl-accordion .accordion-button:focus { box-shadow: none; border: none; }
.gl-accordion .accordion-body { padding: 1.6rem 1.8rem; }
.gl-accordion .accordion-body h2,
.gl-accordion .accordion-body h3 {
color: var(--rot);
font-size: 1.15rem;
margin-top: 1.4rem;
padding-bottom: 0.35rem;
border-bottom: 1px solid var(--border);
}
.gl-accordion .accordion-body h2:first-child,
.gl-accordion .accordion-body h3:first-child { margin-top: 0; }
.gl-accordion blockquote {
border-left: 4px solid var(--rot);
background: #faf5f5;
border-radius: 0 12px 12px 0;
padding: 1rem 1.4rem;
margin: 1.4rem 0;
font-style: italic;
color: #5a3a3a;
}
/* ------------------------------------------------------
Technik Kartenraster mit Kategorie-Filter
------------------------------------------------------ */
.filter-leiste {
display: flex;
flex-wrap: wrap;
gap: 0.6rem;
margin-bottom: 2rem;
}
.filter-btn {
background: var(--karte);
border: 2px solid var(--border);
color: var(--text);
font-weight: 600;
border-radius: 999px;
padding: 0.45rem 1.2rem;
cursor: pointer;
transition: all 0.2s ease;
}
.filter-btn:hover { border-color: var(--rot); color: var(--rot); }
.filter-btn.active {
background: var(--rot);
border-color: var(--rot);
color: #fff;
box-shadow: 0 6px 14px rgba(179, 0, 0, 0.3);
}
.tech-card {
display: block;
background: var(--karte);
border-radius: var(--radius);
box-shadow: var(--schatten);
overflow: hidden;
text-decoration: none;
color: inherit;
height: 100%;
transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.tech-card:hover { transform: translateY(-6px); box-shadow: var(--schatten-hover); }
.tech-card .bild-wrap { position: relative; height: 200px; overflow: hidden; }
.tech-card .bild-wrap img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.35s ease;
}
.tech-card:hover .bild-wrap img { transform: scale(1.07); }
.tech-card .kat-chip {
position: absolute;
top: 12px;
left: 12px;
background: rgba(255, 255, 255, 0.94);
color: var(--rot);
font-size: 0.72rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.06em;
border-radius: 999px;
padding: 0.25rem 0.8rem;
}
.tech-card .bald-chip {
position: absolute;
top: 12px;
right: 12px;
background: var(--rot);
color: #fff;
font-size: 0.72rem;
font-weight: 700;
border-radius: 999px;
padding: 0.25rem 0.8rem;
}
.tech-card .body { padding: 1.2rem 1.4rem; display: flex; justify-content: space-between; align-items: center; gap: 0.6rem; }
.tech-card .body h5 { margin: 0; font-weight: 700; }
.tech-card .body .pfeil { color: var(--rot); font-weight: 700; transition: transform 0.25s ease; }
.tech-card:hover .body .pfeil { transform: translateX(5px); }
/* ------------------------------------------------------
Fahrzeug-Detail
------------------------------------------------------ */
.fz-karte {
background: var(--karte);
border-radius: var(--radius);
box-shadow: var(--schatten);
padding: 2rem;
}
.standort-chip {
display: inline-block;
background: rgba(179, 0, 0, 0.09);
color: var(--rot);
font-weight: 700;
font-size: 0.8rem;
text-transform: uppercase;
letter-spacing: 0.06em;
border-radius: 999px;
padding: 0.3rem 1rem;
margin-bottom: 1.2rem;
}
.spec-list { list-style: none; padding: 0; margin: 0; }
.spec-list li {
display: flex;
flex-wrap: wrap;
gap: 0.2rem 1rem;
padding: 0.65rem 0;
border-bottom: 1px solid var(--border);
}
.spec-list li:last-child { border-bottom: none; }
.spec-list .spec-label { min-width: 160px; color: var(--muted); font-weight: 600; }
.fz-sektion {
color: var(--rot);
font-size: 1.05rem;
margin: 1.8rem 0 0.7rem;
padding-bottom: 0.3rem;
border-bottom: 2px solid rgba(179, 0, 0, 0.15);
}
.fz-punkte { margin: 0; padding-left: 1.2rem; }
.fz-punkte li { padding: 0.2rem 0; }
.fz-punkte li::marker { color: var(--rot); }
.fz-hinweis {
margin-top: 1.2rem;
padding: 1rem 1.3rem;
background: #fff8f6;
border-left: 4px solid var(--rot);
border-radius: 0 12px 12px 0;
color: #6b4a4a;
font-style: italic;
}
#fahrzeugCarousel { border-radius: var(--radius); overflow: hidden; box-shadow: var(--schatten); }
#fahrzeugCarousel .carousel-item img { max-height: 480px; object-fit: cover; }
#fahrzeugCarousel .carousel-control-prev-icon,
#fahrzeugCarousel .carousel-control-next-icon {
background-color: rgba(179, 0, 0, 0.85);
background-size: 55%;
border-radius: 50%;
padding: 1.2rem;
}
.fz-einzelbild { border-radius: var(--radius); box-shadow: var(--schatten); }
/* ------------------------------------------------------
Mitglieder / Organigramm
------------------------------------------------------ */
.org-ebene {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 1rem;
position: relative;
padding-top: 1.6rem;
}
.org-ebene + .org-ebene::before {
content: "";
position: absolute;
top: 0;
left: 50%;
width: 2px;
height: 1.6rem;
background: #c9ccd2;
transform: translateX(-50%);
}
.org-box {
background: var(--karte);
border-radius: 14px;
box-shadow: var(--schatten);
padding: 1rem 1.5rem;
min-width: 210px;
text-align: center;
}
.org-box.fuehrung { box-shadow: var(--schatten), inset 0 4px 0 var(--rot); }
.org-box .rolle {
display: inline-block;
background: rgba(179, 0, 0, 0.09);
color: var(--rot);
border-radius: 999px;
font-size: 0.72rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.07em;
padding: 0.2rem 0.8rem;
margin-bottom: 0.5rem;
}
.org-box .name { display: block; font-weight: 700; line-height: 1.55; }
.org-gruppen { display: grid; gap: 1.2rem; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); margin-top: 2.8rem; }
.org-gruppe {
background: var(--karte);
border-radius: var(--radius);
box-shadow: var(--schatten);
padding: 1.4rem 1.6rem;
}
.org-gruppe h3 { font-size: 1.05rem; color: var(--rot); margin-bottom: 0.9rem; }
.org-gruppe .label { color: var(--muted); font-weight: 700; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.07em; display: block; margin-top: 0.8rem; }
.org-gruppe ul { list-style: none; margin: 0; padding: 0; }
.org-gruppe li { padding: 0.18rem 0; font-size: 0.95rem; }
/* ------------------------------------------------------
Dienstplan-Tabelle
------------------------------------------------------ */
.termin-tabelle-wrap {
background: var(--karte);
border-radius: var(--radius);
box-shadow: var(--schatten);
overflow: hidden;
}
.termin-tabelle { width: 100%; border-collapse: collapse; }
.termin-tabelle th {
background: var(--rot);
color: #fff;
font-size: 0.82rem;
text-transform: uppercase;
letter-spacing: 0.06em;
padding: 1rem 1.2rem;
text-align: left;
}
.termin-tabelle td { padding: 0.9rem 1.2rem; border-top: 1px solid var(--border); vertical-align: top; }
.termin-tabelle tbody tr { transition: background 0.15s ease; }
.termin-tabelle tbody tr:hover { background: #faf5f5; }
.termin-tabelle tr.termin-is-next td { background: rgba(179, 0, 0, 0.05); box-shadow: inset 4px 0 0 var(--rot); font-weight: 600; }
.termin-badge {
display: inline-block;
background: #eef0f4;
color: var(--text);
font-size: 0.75rem;
font-weight: 700;
border-radius: 999px;
padding: 0.25rem 0.8rem;
white-space: nowrap;
}
.termin-badge-fest, .termin-badge-feier { background: var(--rot); color: #fff; }
.termin-badge-praxis, .termin-badge-ausbildung { background: #e7ecf5; color: #31517f; }
@media (max-width: 768px) {
.termin-tabelle-wrap { background: transparent; box-shadow: none; overflow: visible; }
.termin-tabelle thead { display: none; }
.termin-tabelle tr {
display: block;
background: var(--karte);
border-radius: var(--radius);
box-shadow: var(--schatten);
margin-bottom: 1rem;
padding: 0.8rem 0.4rem;
}
.termin-tabelle tr.termin-is-next { box-shadow: var(--schatten), inset 4px 0 0 var(--rot); }
.termin-tabelle td { display: flex; gap: 0.8rem; border: none; padding: 0.3rem 1.2rem; }
.termin-tabelle td::before {
content: attr(data-label);
min-width: 105px;
color: var(--muted);
font-size: 0.75rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.05em;
}
}
/* ------------------------------------------------------
Footer (dunkelgrau)
------------------------------------------------------ */
.gl-footer {
background: #23272e;
color: #aab0ba;
padding: 2.8rem 0;
margin-top: 4.5rem;
border-top: 5px solid var(--rot);
}
.gl-footer h6 {
color: #fff;
font-size: 0.9rem;
text-transform: uppercase;
letter-spacing: 0.07em;
margin-bottom: 0.7rem;
}
.gl-footer p, .gl-footer small { margin-bottom: 0.2rem; }
.gl-footer .footer-nav { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 0.4rem 1.3rem; justify-content: center; }
.gl-footer .footer-nav a { color: #d7dbe1; text-decoration: none; font-size: 0.92rem; }
.gl-footer .footer-nav a:hover { color: #fff; text-decoration: underline; }
.gl-footer .footer-brand {
display: flex;
align-items: center;
justify-content: center;
gap: 0.8rem;
color: #fff;
font-weight: 700;
line-height: 1.3;
}
@media (min-width: 768px) {
.gl-footer .footer-brand { justify-content: flex-start; }
}
.gl-footer .footer-brand img { height: 3.2em; width: auto; }
/* ------------------------------------------------------
Bild-Karte (z.B. Gerätehaus auf der Startseite)
------------------------------------------------------ */
.bild-karte {
border-radius: var(--radius);
box-shadow: var(--schatten);
overflow: hidden;
height: 100%;
min-height: 260px;
}
.bild-karte img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
/* ------------------------------------------------------
Veranstaltungs-Karten
------------------------------------------------------ */
.va-card {
background: var(--karte);
border-radius: var(--radius);
box-shadow: var(--schatten);
padding: 1.6rem;
height: 100%;
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.va-card:hover { transform: translateY(-4px); box-shadow: var(--schatten-hover); }
.va-card .va-datum { font-weight: 800; font-size: 1.15rem; margin-bottom: 0.2rem; }
.va-card .va-titel { color: var(--rot); font-weight: 700; margin-bottom: 0.4rem; }
.va-card .va-details { color: var(--muted); margin-bottom: 0; }
/* ------------------------------------------------------
Kontakt-Seite
------------------------------------------------------ */
.notruf-card {
background: var(--rot);
color: #fff;
border-radius: var(--radius);
box-shadow: 0 10px 26px rgba(179, 0, 0, 0.35);
padding: 2rem;
text-align: center;
height: 100%;
}
.notruf-card .nummer { font-size: 3rem; font-weight: 800; line-height: 1; }
.notruf-card p { color: rgba(255, 255, 255, 0.9); margin-bottom: 0; }
.kontakt-dl { display: grid; grid-template-columns: auto 1fr; gap: 0.4rem 1.2rem; margin: 0; }
.kontakt-dl dt { color: var(--muted); font-weight: 600; }
.kontakt-dl dd { margin: 0; font-weight: 600; }
/* ------------------------------------------------------
Sponsoren (Förderverein)
------------------------------------------------------ */
.sponsor-firma {
background: var(--karte);
border-radius: 12px;
box-shadow: var(--schatten);
padding: 1rem 1.2rem;
display: flex;
flex-direction: column;
gap: 0.15rem;
height: 100%;
}
.sponsor-firma strong { color: var(--text); }
.sponsor-firma span { color: var(--muted); font-size: 0.88rem; }
.sponsor-firma a { color: var(--text); text-decoration: none; }
.sponsor-firma a:hover { color: var(--rot); text-decoration: underline; }
.sponsor-firma a .pfeil { color: var(--rot); font-weight: 700; text-decoration: none; }
/* Für später: Sponsor-Logo im Rahmen (Eigenschaft "logo" in data/foerderverein.js) */
.sponsor-logo {
max-height: 64px;
width: auto;
max-width: 100%;
object-fit: contain;
border: 1px solid var(--border);
border-radius: 10px;
padding: 0.4rem;
margin-bottom: 0.5rem;
background: #fff;
}
/* ------------------------------------------------------
Datenschutz / Fließtext-Seiten
------------------------------------------------------ */
.text-seite h2 {
color: var(--rot);
font-size: 1.2rem;
margin-top: 2rem;
margin-bottom: 0.6rem;
}
.text-seite p, .text-seite li { color: var(--text); }
.text-seite ul { padding-left: 1.3rem; }
/* ------------------------------------------------------
Modal (Zeitungsartikel etc.)
------------------------------------------------------ */
.modal-content { border: none; border-radius: var(--radius); box-shadow: var(--schatten-hover); }
.modal-header { border-bottom: 1px solid var(--border); }
.modal-title { color: var(--rot); font-weight: 700; }

BIN
bilder/foto_wehr_2026.jpg Normal file

Binary file not shown.

View File

@ -1,35 +0,0 @@
.carousel-container {
max-height: 12em; /* Adjust the max-width to a smaller size */
max-width: 25em;
background-color: #ffffff;
margin: auto; /* Center the carousel */
}
.carousel-container img {
width: 100%;
height: auto;
max-height: 12em;
object-fit: contain; /* Prevents cropping while keeping aspect ratio */
}
.carousel-control-next-icon {
background-color: #616161; /* Change the background color to black */
background-image: none; /* Remove the default icon */
}
.carousel-control-next-icon::after {
color: white; /* Set the arrow color to white for contrast */
font-size: 2em; /* Adjust the size of the arrow */
}
.carousel-control-prev-icon {
background-color: #616161; /* Change the background color to black */
background-image: none; /* Remove the default icon */
}
.carousel-control-prev-icon::after {
color: white; /* Set the arrow color to white for contrast */
font-size: 2em; /* Adjust the size of the arrow */
}

103
data/dienste.js Normal file
View File

@ -0,0 +1,103 @@
/* ======================================================
dienste.js ZENTRALE Logik für Dienstplan & Termine
------------------------------------------------------
Liest dienstplan/dienstplan.csv (einzige Datenquelle) und
befüllt je nachdem, was auf der Seite vorhanden ist:
#nextDienst nächster Dienst (Kurzform, Startseite)
#nextEvent nächste Veranstaltung (Kurzform)
#dienstplan-liste komplette Terminliste (Dienstplan-Seite)
Das Markup nutzt design-neutrale Klassen (termin-*),
die von der jeweiligen Varianten-CSS gestylt werden.
====================================================== */
(function () {
const csvPfad = (window.FFW_BASE || "") + "dienstplan/dienstplan.csv";
fetch(csvPfad)
.then(res => res.text())
.then(text => {
const today = new Date().setHours(0, 0, 0, 0);
const termine = text.trim().split(/\r?\n/).slice(1).map(line => {
const [d, tag, zeit, ort, art, beschr] = line.split(line.includes(";") ? ";" : ",");
const [y, m, day] = d.trim().split("-");
return {
datum: new Date(y, m - 1, day),
tag: tag.trim(),
zeit: zeit.trim(),
ort: ort.trim(),
art: art.trim(),
beschr: beschr.trim()
};
})
.filter(t => t.datum >= today)
.sort((a, b) => a.datum - b.datum);
const istFest = t => /fest|feier/i.test(t.art);
const datumFormatiert = t => t.datum.toLocaleDateString("de-DE");
/* ---------- Kurzform: nächster Dienst / Veranstaltung ---------- */
const renderKurz = (id, filterFn) => {
const el = document.getElementById(id);
if (!el) return;
const t = termine.find(filterFn);
el.innerHTML = t
? `<p class="termin-datum">${t.tag}., ${datumFormatiert(t)} | ${t.zeit} Uhr</p>
<p class="termin-art">${t.art}</p>
<p class="termin-beschr">${t.beschr} (${t.ort})</p>`
: `<p class="termin-beschr">Keine weiteren Termine geplant</p>`;
};
renderKurz("nextDienst", t => !istFest(t));
renderKurz("nextEvent", istFest);
/* ---------- Komplette Terminliste (Dienstplan-Seite) ---------- */
const liste = document.getElementById("dienstplan-liste");
if (liste) {
if (!termine.length) {
liste.innerHTML = `<p class="termin-beschr">Aktuell sind keine Termine geplant.</p>`;
return;
}
const naechster = termine[0];
const zeilen = termine.map(t => `
<tr class="${t === naechster ? "termin-is-next" : ""}">
<td data-label="Datum">${t.tag}., ${datumFormatiert(t)}</td>
<td data-label="Uhrzeit">${t.zeit} Uhr</td>
<td data-label="Art"><span class="termin-badge termin-badge-${t.art.toLowerCase()}">${t.art}</span></td>
<td data-label="Beschreibung">${t.beschr}</td>
<td data-label="Ort">${t.ort}</td>
</tr>`).join("");
liste.innerHTML = `
<table class="termin-tabelle">
<thead>
<tr><th>Datum</th><th>Uhrzeit</th><th>Art</th><th>Beschreibung</th><th>Ort</th></tr>
</thead>
<tbody>${zeilen}</tbody>
</table>`;
}
/* ---------- Veranstaltungen-Seite (nur Feste & Feiern) ---------- */
const vaMount = document.getElementById("veranstaltungen-liste");
if (vaMount) {
const events = termine.filter(istFest);
vaMount.innerHTML = events.length
? `<div class="row g-4">${events.map(t => `
<div class="col-md-6">
<div class="va-card">
<p class="va-datum">${t.tag}., ${datumFormatiert(t)}</p>
<p class="va-titel">${t.beschr}</p>
<p class="va-details">${t.art} · Beginn: ${t.zeit} Uhr · Ort: ${t.ort}</p>
</div>
</div>`).join("")}
</div>`
: `<div class="gl-card"><p class="termin-beschr mb-0">Aktuell sind keine Veranstaltungen geplant. Neue Termine werden hier bekannt gegeben.</p></div>`;
}
})
.catch(err => console.error("Fehler beim Laden des Dienstplans:", err));
})();

429
data/fahrzeuge.js Normal file
View File

@ -0,0 +1,429 @@
/* ======================================================
fahrzeuge.js ZENTRALE DATENQUELLE für Technik/Fahrzeuge
------------------------------------------------------
Wird von BEIDEN Design-Varianten (rot & grau) genutzt.
Pfade sind relativ zum Projekt-Root und werden beim
Rendern mit window.FFW_BASE präfixiert.
Struktur pro Eintrag:
id eindeutige Kennung (für fahrzeug.html?id=...)
kategorie Gruppierung (Fahrzeuge / Boote / Anhänger / Tradition)
karte Bild für die Technik-Übersicht
name Kurzname für Karten
titel voller Titel der Detailseite
standort optional, wird als Badge angezeigt
bilder Galerie der Detailseite [{src, alt}]
hinweis optionaler Untertitel unter der Galerie
text optionaler Fließtext
daten Stammdaten [[Label, Wert], ...]
bereiche weitere Sektionen [{titel, punkte: [...]}]
inArbeit true = Karte ohne Detailseite (z.B. ELW 1)
====================================================== */
window.FFW_FAHRZEUGE = [
{
id: "lf10",
kategorie: "Fahrzeuge",
karte: "technik/technikpage/t_lf10_6_1.jpg",
name: "LF 10/6",
titel: "Löschgruppenfahrzeug LF 10/6",
bilder: [
{ src: "technik/lf10/t_lf10_6_1.jpg", alt: "LF 10 Bild 1" },
{ src: "technik/lf10/t_lf10_6_2.jpg", alt: "LF 10 Bild 2" },
{ src: "technik/lf10/t_lf10_6_3.jpg", alt: "LF 10 Bild 3" },
{ src: "technik/lf10/t_lf10_6_4.jpg", alt: "LF 10 Bild 4" },
{ src: "technik/lf10/t_lf10_6_5.jpg", alt: "LF 10 Bild 5" },
{ src: "technik/lf10/t_lf10_6_6.jpg", alt: "LF 10 Bild 6" }
],
daten: [
["Bezeichnung", "LF 10/6"],
["Funkrufname", "Florian Stadt Wehlen 42-1"],
["Fahrgestell", "MB Atego 818 F"],
["Baujahr", "Juli 2007"],
["Motorleistung", "180 PS"],
["Gesamtgewicht", "8.600 kg"]
],
bereiche: [
{
titel: "Technische Daten & Ausstattung",
punkte: [
"Maße: L 6,39m | B 2,32m | H 3,00m",
"Sicherheit: ABS, Differentialsperre hinten",
"Licht/Warn: Martin-Horn (4 Becher), Pneumatik-Lichtmast (2x 1000W)"
]
},
{
titel: "Feuerwehrtechnische Beladung",
punkte: [
"FPN 10-1000-1H Einbaupumpe",
"600 Liter Wassertank",
"Tragkraftspritze TS 8/8",
"Stromerzeuger 6,5 kW (Eisemann)",
"3-teilige Schiebeleiter",
"Lukas Schere/Spreizer Kombi SC 350",
"Wärmebildkamera Bullard Eclipse",
"Defibrillator (AED) \"Zoll\"",
"Sanitätsrucksack & Watthosen",
"Ölbindemittel & Kettensäge"
]
}
]
},
{
id: "tsf",
kategorie: "Fahrzeuge",
karte: "technik/technikpage/t_tsf_01.jpg",
name: "TSF-W",
titel: "Tragkraftspritzenfahrzeug (TSF)",
standort: "Pötzscha",
bilder: [
{ src: "technik/tsf/t_tsf_01.jpg", alt: "TSF Frontansicht" },
{ src: "technik/tsf/t_tsf_02.jpg", alt: "TSF Seitenansicht" },
{ src: "technik/tsf/t_tsf_06.jpg", alt: "TSF Heckansicht" }
],
text: "Hinweis: Das TSF-W wurde mittlerweile außer Dienst gestellt und durch ein neues Fahrzeug ersetzt. Wir stellen das neue Fahrzeug hier in Kürze vor.",
daten: [
["Funkrufname", "Florian Pötzscha 47-1"],
["Fahrgestell", "FIAT Ducato MAXI 2.3"],
["Baujahr", "August 2002"],
["Besatzung", "1/5 (Staffelbesatzung)"]
],
bereiche: [
{
titel: "Technische Details",
punkte: [
"Leistung: 81 kW (110 PS)",
"Gesamtgewicht: 3.500 kg (B-Führerschein fähig)",
"Maße: L 5,20m | B 2,07m | H 2,39m",
"Sondersignalanlage: Hella RTK 6"
]
},
{
titel: "Feuerwehrtechnische Beladung",
punkte: [
"Tragkraftspritze TS 8/8",
"4 Pressluftatmer (PA)",
"4-teilige Steckleiter",
"Stromerzeuger 3,5 kW",
"Motorsäge & Zubehör",
"Lichtmast (2x 80W LED)",
"Sanitätsrucksack",
"Absicherungsmaterial"
]
}
]
},
{
id: "vrw",
kategorie: "Fahrzeuge",
karte: "technik/technikpage/t_vrw_1.jpg",
name: "VRW Quad",
titel: "Vorausrüstwagen (VRW)",
bilder: [
{ src: "technik/VRW-Quad/t_vrw_1.jpg", alt: "VRW Suzuki KingQuad" }
],
text: "Einsatztaktik: Das Fahrzeug ermöglicht durch seine kompakten Maße einen schnellen Erstzugriff bei Verkehrsunfällen oder im Waldgelände, noch bevor die Großfahrzeuge eintreffen.",
daten: [
["Bezeichnung", "VRW (Quad)"],
["Funkrufname", "Florian Stadt Wehlen 53-1"],
["Fahrgestell", "Suzuki KingQuad"],
["Baujahr", "Mai 2006"],
["Einsatzgewicht", "470 kg"]
],
bereiche: [
{
titel: "Technische Daten",
punkte: [
"Antrieb: 4x4 Allrad / Differentialsperre",
"Sondersignal: Blitzkennleuchte & Martins-Horn",
"Zusatzausstattung: Arbeitsscheinwerfer LED",
"Maße: L 2,20m | B 1,25m | H 2,00m"
]
},
{
titel: "Spezialausrüstung: TH-Rettung",
punkte: [
"Hydraulik: Lukas SC 350 Kombigerät",
"Lukas Kompaktaggregat P 610 OG",
"Lukas Rettungszylinder",
"Medizin: Defibrillator (AED)",
"Sanitätsrucksack & Sauerstoff",
"Löschtechnik: 10L MicroCAFS"
]
}
]
},
{
id: "elw1",
kategorie: "Fahrzeuge",
karte: "bilder/geraetehaus.webp",
name: "ELW 1",
titel: "Einsatzleitwagen ELW 1",
inArbeit: true,
bilder: [],
daten: [],
bereiche: []
},
{
id: "rtb1",
kategorie: "Boote",
karte: "technik/technikpage/t_aluboot_rtb1_1.jpg",
name: "Aluboot RTB 1",
titel: "Feuerwehrboot (RTB 1)",
standort: "Pötzscha",
bilder: [
{ src: "technik/rtb1/t_aluboot_rtb1_1.jpg", alt: "RTB 1 auf der Elbe" },
{ src: "technik/rtb1/t_aluboot_rtb1_2.jpg", alt: "RTB 1 Details" }
],
text: "Das RTB 1 ist ein extrem vielseitiges Arbeitsmittel. Durch die absenkbare Bugklappe können Personen im Wasser ohne Kraftaufwand direkt aufgenommen werden. Zudem dient es bei Hochwasser als wichtiges Transportmittel für Sandsäcke oder zur Evakuierung in engen Gassen.",
daten: [
["Bezeichnung", "Rettungsboot RTB 1"],
["Norm", "DIN 14961"],
["Typ", "Barru LGL 400-BKL"],
["Baujahr", "März 2014"],
["Zuladung", "550 kg (max. 5 Personen)"]
],
bereiche: [
{
titel: "Technische Details",
punkte: [
"Maße: L 4,13m | B 1,80m | T 0,18m",
"Motorisierung: Suzuki 25 PS (4-Takt)",
"Besonderheit: Absenkbare Bugklappe",
"Zubehör: Hochwasserräder für Landtransport"
]
}
]
},
{
id: "rtb2",
kategorie: "Boote",
karte: "technik/technikpage/t_rtb2_1.jpg",
name: "Rettungsboot RTB 2",
titel: "Feuerwehrboot RTB 2",
bilder: [
{ src: "technik/rtb2/t_rtb2_1.jpg", alt: "RTB 2 Bild 1" },
{ src: "technik/rtb2/t_rtb2_2.jpg", alt: "RTB 2 Bild 2" },
{ src: "technik/rtb2/t_rtb2_3.jpg", alt: "RTB 2 Bild 3" }
],
daten: [
["Bezeichnung", "Rettungsboot RTB 2"],
["Funkrufname", "Florian Stadt Wehlen 79-1"],
["Typ", "Fiskas Buster \"L\" Aluminium"],
["Zuladung", "590 kg (max. 6 Personen)"]
],
bereiche: [
{
titel: "Technische Daten",
punkte: [
"Maße: L 4,90m | B 1,97m | T 0,29m",
"Motorisierung: Suzuki 40 PS (3-Zyl. 4-Takt)",
"Speed: max. 33 Knoten (~ 61 km/h)"
]
},
{
titel: "Ausstattung & Beladung",
punkte: [
"Sondersignal: Blitzkennleuchte & Martinshorn auf Gerätebügel",
"Beleuchtung: 1x Fest-Suchscheinwerfer, 2x Hand-Suchscheinwerfer",
"Navigation: Echolot zur Tiefen- & Hindernismessung",
"Rettungsmittel: Rettungsbrett & Notfall-Set nach DIN"
]
}
]
},
{
id: "schlauchboot",
kategorie: "Boote",
karte: "technik/technikpage/t_schlauchboot.jpg",
name: "RTB 1 Schlauchboot",
titel: "Schlauchboot RTB 1",
bilder: [
{ src: "technik/rtb1schlauchboot/t_schlauchboot.jpg", alt: "Schlauchboot RTB 1" }
],
daten: [
["Bezeichnung", "Rettungsschlauchboot RTB 1"],
["Standort", "Stadt Wehlen"],
["Baujahr", "Mai 2003"],
["Gewicht", "33 kg (leicht & mobil)"]
],
bereiche: [
{
titel: "Leistungsdaten",
punkte: [
"Maße: L 3,00m | B 1,20m",
"Sicherheit: 4 separate Luftkammern",
"Zuladung: 570 kg (max. 3 Personen)"
]
}
]
},
{
id: "sta",
kategorie: "Anhänger",
karte: "technik/technikpage/t_sta_1.jpg",
name: "STA Anhänger",
titel: "Schlauchtransportanhänger (STA)",
bilder: [
{ src: "technik/sta/t_sta_1.jpg", alt: "STA Bild 1" },
{ src: "technik/sta/t_sta_2.jpg", alt: "STA Bild 2" }
],
daten: [
["Bezeichnung", "Schlauchtransportanhänger (STA)"],
["Standort", "Stadt Wehlen"],
["Typ", "Humbauer HA75/100"],
["Baujahr", "Dezember 2004"],
["Gesamtgewicht", "750 kg"]
],
bereiche: [
{
titel: "Technische Details",
punkte: [
"Maße: L 3,56m | B 1,79m | H 2,35m",
"Ausstattung: Hochplane, Heck-Arbeitsbeleuchtung",
"Besonderheit: Schnellverlege-Vorrichtung"
]
},
{
titel: "Feuerwehrtechnische Beladung",
punkte: [
"38 B-Schläuche (insgesamt 760m), in Buchten gekoppelt",
"2 Tragekörbe mit je 3 x 20m C-Schläuchen",
"Armaturen: Standrohr, Hydrantenschlüssel, 2 C-Strahlrohre, Verteiler, Schlauchbrücken und Kupplungsschlüssel"
]
}
]
},
{
id: "tsa",
kategorie: "Anhänger",
karte: "technik/technikpage/t_tsa_1.jpg",
name: "TSA Anhänger",
titel: "Tragkraftspritzenanhänger (TSA)",
bilder: [
{ src: "technik/TSA-Anhaenger/t_tsa_1.jpg", alt: "TSA Bild 1" },
{ src: "technik/TSA-Anhaenger/t_tsa_2.jpg", alt: "TSA Bild 2" }
],
daten: [
["Bezeichnung", "Tragkraftspritzenanhänger (TSA)"],
["Standort", "Stadt Wehlen"],
["Typ", "Ziegler TSA SDAH"],
["Baujahr", "Februar 2004"]
],
bereiche: [
{
titel: "Technische Daten",
punkte: [
"Maße: L 4,00m | B 1,80m | H 2,00m",
"Gesamtgewicht: 1.200 kg",
"Details: Verstellbare Zugdeichsel, Heckstützen"
]
},
{
titel: "Feuerwehrtechnische Beladung",
punkte: [
"Tragkraftspritze Magirus (4-Takt-Motor)",
"4 Saugschläuche (A), Saugkorb",
"B- und C-Schläuche nach DIN",
"Armaturen: Strahlrohre, Verteiler, Standrohr"
]
}
]
},
{
id: "transportanhaenger",
kategorie: "Anhänger",
karte: "technik/technikpage/t_transportanhaenger.jpg",
name: "Transportanhänger",
titel: "Transportanhänger",
bilder: [
{ src: "technik/Transporthaenger/t_transportanhaenger.jpg", alt: "Transportanhänger FFw Wehlen" }
],
text: "Dieser Anhänger ist unser flexibler Allrounder für Logistikaufgaben. Ob Ausbildung oder Einsatz der Anhänger passt sich an.",
daten: [
["Bezeichnung", "Transportanhänger"],
["Standort", "Stadt Wehlen"],
["Typ", "Humbauer H12"],
["Baujahr", "April 2004"],
["Gesamtgewicht", "1.200 kg"]
],
bereiche: [
{
titel: "Technische Daten",
punkte: [
"Maße: L 3,75m | B 1,77m | H 2,35m",
"Sicherheit: Feststellbremse",
"Aufbau: Hochplane, Stützrad & Heckstützen"
]
},
{
titel: "Nutzung & Beladung",
punkte: [
"Jugendfeuerwehr: Transport der Übungsausstattung",
"Löschwasser: Mitführung eines TSA-Einschubs mit Tragkraftspritze TS 3",
"Logistik: Transport von Sandsäcken, Ölbindemittel oder verschmutztem Material"
]
}
]
},
{
id: "hydrantenwagen",
kategorie: "Tradition",
karte: "technik/technikpage/t_hydrantenwagen_1.jpg",
name: "Hydrantenwagen (1905)",
titel: "Hydrantenwagen Modell H.I.",
bilder: [
{ src: "technik/Hydrantenwagen/t_hydrantenwagen_1.jpg", alt: "Hydrantenwagen Bild 1" },
{ src: "technik/Hydrantenwagen/t_hydrantenwagen_2.jpg", alt: "Hydrantenwagen Bild 2" }
],
daten: [
["Bezeichnung", "Hydrantenwagen Modell H.I."],
["Stationierung", "Stadt Wehlen"],
["Hersteller", "C.A. Schöne Fabrik Dresden"],
["Baujahr", "1905"],
["Typ", "Historisches Handzug-Gerät"]
],
bereiche: [
{
titel: "Feuerwehrtechnische Beladung",
punkte: [
"Kupferner Hydrantenaufsatz (2 Auslässe)",
"Sächsisches Normalgewinde, Spindelventile",
"Kupferne Normalstrahlrohre (in Leine geflochten)",
"255 m Flachsschlauch (17 Satz à 15 m)",
"17 Paar Patent-Honigkupplungen",
"4 Übersetzungsstücke (Sächs. Normalgewinde)"
]
}
]
},
{
id: "lf1",
kategorie: "Tradition",
karte: "technik/technikpage/t_lf1_1.jpg",
name: "Postfahrrad LF 1",
titel: "Löschfahrzeug LF 1",
bilder: [
{ src: "technik/lf1/t_lf1_2.jpg", alt: "LF 1 Fahrrad" }
],
text: "Das LF 1 ist unser ganzer Stolz bei Festumzügen. Das ehemalige Postrad wurde in liebevoller Kleinarbeit zum \"kleinsten Löschfahrzeug der Welt\" umgebaut. Es dient primär der Traditionspflege und der Spendensammlung bei Veranstaltungen.",
daten: [
["Bezeichnung", "Löschfahrzeug LF 1"],
["Stationierung", "Stadt Wehlen"],
["Typ", "Umgebautes Postfahrrad"],
["Baujahr", "Mai 2003"],
["Fahrzeugdaten", "26er Herrenfahrrad"]
],
bereiche: [
{
titel: "Feuerwehrtechnische Beladung",
punkte: [
"Sirene mit Handkurbel (akustisches Signal)",
"Blitzleuchte (optisches Signal)",
"Kübelspritze (als Spendenkübel umfunktioniert)",
"C-Schlauch + Strahlrohr (Schnellangriff-Attrappe)"
]
}
]
}
];

81
data/foerderverein.js Normal file
View File

@ -0,0 +1,81 @@
/* ======================================================
foerderverein.js ZENTRALE DATENQUELLE Förderverein
------------------------------------------------------
Sponsoren-Listen und Downloads des
"Verein zur Förderung der Freiwilligen Feuerwehr
Stadt Wehlen e.V."
====================================================== */
window.FFW_FOERDERVEREIN = {
downloads: [
{ titel: "Beitrittsformular", beschr: "Werden Sie förderndes Mitglied", datei: "downloads/beitritt_foerderverein.pdf" },
{ titel: "Spendenformular", beschr: "Unterstützen Sie uns mit einer Spende", datei: "downloads/spendenformular.pdf" },
{ titel: "Satzung", beschr: "Satzung des Fördervereins", datei: "downloads/satzung_foerderverein.pdf" },
{ titel: "Protokoll JHV 2026", beschr: "Protokoll der Jahreshauptversammlung 2026", datei: "downloads/protokoll_jhv_2026.pdf" }
],
sponsorenPrivat: {
"A J": [
"Achilles, Werner", "Aehlig, Gerold", "Arnold, Markus", "Berger, Iren",
"Berger, Tim", "Böhme, Uwe u. Elke", "Dernoscheck, Rolf",
"Doderer, Anita u. Jürgen", "Fabian, Dr. Alexander", "Fabian, Philipp",
"Felgner, Bernd", "Felgner, Sigrid", "Fuhrmann, Roger",
"Georgi, Uwe Imbiss zur Habe", "Gottlöber, Gerald", "Gottlöber, Volkmar",
"Gronkowski, Marcus", "Günther, Klaus", "Haase, Peter", "Hantzsch, Lothar",
"Heide, Günther und Sybille", "Heine, Dr. Steffen", "Hendrych, H.",
"Hennig, Denise", "Hoffmann, Mike", "Hübsch, Margitta",
"Hüttenrauch, Dr. Ulrich", "Isleb, Elke", "Isleb, Antje", "Israel, Thomas",
"Jahn, Holger", "Jung, Olaf"
],
"K R": [
"Fam. Karsch (Erbengemeinschaft)", "Klinger, Matthias", "Familie Kling",
"Familie Krischke", "Lau, Christine", "Liebezeit, Olaf", "Lucia, Maria",
"Matzke, Tilo", "Michel, Anette u. Roberto", "Michel, Marcel",
"Nauck, Prof. Gunnar", "Näther, Dirk", "Neise, Christian",
"Pfitzner, Henry", "Reuschle, Reinhold", "Richter, Lore",
"Richter, Wieland", "Rösch, Arne", "Ruppert, Erich", "Familie Runge",
"Rühle, Jens"
],
"S Z": [
"Schindler, Karl-Heinz", "Schlenkrich, Heiko", "Schmidt, Gisela",
"Schöne, Sophie", "Slesaczeck, Peter", "Stephan, Heidi", "Stephan, Jörg",
"Täubrich, Bernd", "Teumer, Heidi", "Thieme, Georg", "Thomas, Gunter",
"Tredopp, Dr. Reiner", "Vogel, Rosemarie", "Vogel, Wolfgang",
"Wachtel, Herrmann", "Familie Wade", "Weber, Dr. Gerd", "Wirker, Achim",
"Welyn Service GmbH", "Wohnungseigentümer Elbufer 2, 3a, 3b",
"Zacek, Reni", "Zoske, Winfried"
]
},
sponsorenVereine: [
"Kanusport Dresden e.V.",
"Lions Club Dresden",
"Lions Club Hamburg"
],
sponsorenFirmen: [
{ name: "Tonis Bäckerladen", ort: "Pirnaer Str. 111, 01829 Stadt Wehlen", tel: "(035024) 70381" },
{ name: "Autolackiererei Jacob", ort: "August-Bebel-Str. 11, 01809 Heidenau", tel: "(03529) 517429", web: "https://www.autolackierer-jacob.de/" },
{ name: "AXA Uwe Bogott", ort: "Lange Str. 44, 01796 Pirna", tel: "(03501) 523759" },
{ name: "Elektro Fröde", ort: "Nordstraße 2, 01796 Pirna", tel: "(035024) 70429", web: "https://www.froede-dlg.de/" },
{ name: "FUKA GmbH", ort: "Ringstr. 29, 50765 Köln", tel: "(0221) 539958-16", web: "https://www.fuka.de/en" },
{ name: "Elektro Fröde DLG", ort: "Nordstraße 2, 01796 Pirna", tel: "(035024) 71494", web: "https://www.froede-dlg.de/" },
{ name: "Heine Der Dachdeckermeister", ort: "Teichweg 12, 01829 Stadt Wehlen / OT Dorf Wehlen", tel: "(035024) 71498", web: "https://www.dachdecker.com/stadt-wehlen/ralf-heine-dachdeckermeister-aUKZ5c" },
{ name: "Auto-Service Höhne & Weber GbR", ort: "Pirnaer Str. 7A, 01829 Stadt Wehlen / OT Dorf Wehlen", tel: "(035024) 70640" },
{ name: "Hotel „Café Richter“", ort: "Karl-Marx-Platz 4, 01829 Stadt Wehlen", tel: "" },
{ name: "Friseur Michel", ort: "Markt 2, 01829 Stadt Wehlen", tel: "(035024) 70482" },
{ name: "Café Welyn", ort: "Markt 8, 01829 Stadt Wehlen", tel: "(035024) 79380", web: "https://www.cafe-welyn.de/" },
{ name: "Fa. Elbbikes", ort: "Oberer Platz 4, 01796 Pirna", tel: "(0176) 20348686", web: "https://www.elbbikes.de/seite/" },
{ name: "Optik Quendt", ort: "Breite Str. 21, 01796 Pirna", tel: "(03501) 528436", web: "http://www.quendt-optik.de/" },
{ name: "Ferienwohnung Mathe", ort: "Bahnhofstr. 7, 01829 Stadt Wehlen / OT Pötzscha", tel: "(03520) 70718", web: "https://www.ferienwohnungmathe.de/" },
{ name: "Müller Arbeitsbühnen GmbH", ort: "Dresdner Str. 88, 01809 Heidenau", tel: "(03529) 529610" },
{ name: "Textildruck High Tex", ort: "Hauptstr. 44, 01809 Heidenau", tel: "(035029) 516181", web: "https://www.hei-tex.de/" },
{ name: "Montagebau Grundmann", ort: "Basteistr. 9a, 01829 Stadt Wehlen", tel: "(0151) 14006774" },
{ name: "Autohaus Bernd Förster", ort: "Lohmener Str. 13a, 01796 Pirna / OT Copitz", tel: "(03501) 56830", web: "https://www.team-foerster.de/" },
{ name: "Pension & Gaststätte „Zur alten Säge“", ort: "Schustergasse 8, 01829 Stadt Wehlen", tel: "(035024) 70622", web: "https://pension-zur-alten-saege.de/" },
{ name: "Blitzschutztechnik Roll", ort: "Feldgasse 3, 01829 Stadt Wehlen", tel: "(035024) 79850", web: "https://www.blitzschutztechnik-roll.de/" },
{ name: "Industriebedarf Jacob", ort: "Mittelweg 7, 01829 Stadt Wehlen / OT Dorf Wehlen", tel: "(035024) 70264" },
{ name: "Zimmerei Gottlöber", ort: "Wehlener Str. 29, 01796 Pirna / OT Naundorf", tel: "(0174) 9755212" },
{ name: "Tischlerei Pohl", ort: "Bahnhofstr. 7b, 01829 Stadt Wehlen / OT Pötzscha", tel: "(035020) 70213", web: "https://www.montage-tischlerei.de/" }
]
};

138
data/geschichte.js Normal file
View File

@ -0,0 +1,138 @@
/* ======================================================
geschichte.js ZENTRALE DATENQUELLE für die Geschichte
------------------------------------------------------
Wird von BEIDEN Design-Varianten genutzt.
Rot rendert daraus eine Zeitleiste mit Tabs,
Grau ein Accordion Inhalt bleibt identisch.
zeitraum Beschriftung (z.B. "1901 1945")
eintraege Blöcke [{titel?, html}] pro Epoche
bild true: Button für den Zeitungsartikel 1921
====================================================== */
window.FFW_GESCHICHTE_BILD = {
src: "geschichte/ffw_wehlen_1921.jpeg",
titel: "Zeitungsartikel von 1921",
button: "Zeitungsartikel von 1921 ansehen"
};
window.FFW_GESCHICHTE = [
{
zeitraum: "1865 1900",
eintraege: [
{
titel: "Die Anfänge der Feuerwehr in Stadt Wehlen",
html: `
<p>Die Feuerwehr unseres Wehlstädtchens wird in den Berichten, die heute noch im Archiv lagern, um <strong>1865</strong> zum ersten Mal erwähnt. Damals war es eine <strong>Pflichtfeuerwehr</strong>, d. h. alle Männer von <strong>18 bis 50 Jahren</strong> wurden erfasst und nach einem strengen Gesetz verpflichtet.</p>
<p>Im Jahr <strong>1899</strong> versuchte man erstmals, die Männer der Pflichtfeuerwehr zu überzeugen, eine <strong>Freiwillige Feuerwehr</strong> aufzubauen. Der Vorschlag kam von der <strong>Feuerwehr Pirna</strong>. Doch der damalige Stadtgemeinderat von Stadt Wehlen lehnte ab:</p>
<blockquote>... es wäre nicht nötig und außerdem zu kostspielig.</blockquote>`
}
]
},
{
zeitraum: "1901 1945",
eintraege: [
{
titel: "Die Gründung der Freiwilligen Feuerwehr Stadt Wehlen",
html: `
<p>Am <strong>27. Januar 1901</strong> wurde der Wehlener Gemeinderat durch Herrn Branddirektor Jäger angeschrieben und darauf hingewiesen, dass Stadt Wehlen im Bezirk die letzte Stadt sei, die keine freiwillige Feuerwehr besitze. Er bat um Unterstützung und um die Gründung einer Freiwilligen Feuerwehr.</p>
<p>Am <strong>8. Februar 1901</strong> wurde die noch bestehende Pflichtfeuerwehr in die <strong>"Elbterrasse"</strong> gerufen und zur Generalversammlung geladen. Bei unentschuldigtem Fehlen wurde Strafe angedroht. Der Abend wurde durch Herrn Branddirektor Jäger genutzt, um über die Vorteile einer Freiwilligen Feuerwehr zu sprechen. Zu diesem Vortrag waren alle Stadträte und Stadtverordneten anwesend, und Herr Bürgermeister Schaale unterstrich die Worte von Herrn Jäger und setzte sich stark für die Gründung einer Freiwilligen Feuerwehr ein.</p>
<p>Von den 44 anwesenden Herren der Pflichtfeuerwehr erklärten sich 30 bereit, in die Freiwillige Feuerwehr einzutreten. So meldete der Bürgermeister die Mitgliedschaft zum Bezirksverband Sächsischer Feuerwehren an.</p>
<p>Im Februar 1901 konnte Bürgermeister Schaale den Gemeinden <strong>Hohnstein, Gottleuba, Berggießhübel, Neundorf, Rabenau</strong> und <strong>Siebenlehn</strong> vom Entschluss zur Gründung einer Freiwilligen Feuerwehr Mitteilung machen. Er rief die Gemeinden und Städte zur Unterstützung auf.</p>`
},
{
titel: "Die offizielle Gründung",
html: `
<p>Am <strong>9. März 1901</strong> fand im Hotel <strong>"Elbterrasse"</strong> die Konstituierung der Freiwilligen Feuerwehr Stadt Wehlen statt. Am <strong>12. März 1901</strong> wurde die Freiwillige Feuerwehr Stadt Wehlen offiziell gegründet.</p>
<p>Das Grundgesetz der Feuerwehr wurde bekannt gegeben, welches in 14 Paragraphen die Pflichten und Rechte des Feuerwehrmannes beinhaltete. So hieß es in §1:</p>
<blockquote>"Zweck der Freiwilligen Feuerwehr ist, bei ausbrechenden Bränden im Gemeindebezirk in geordneter Weise rettend und schützend Beistand zu leisten. Bei entstehenden Bränden in den benachbarten Orten und zwar bis 2 Stunden entfernt, leistet die Feuerwehr mit einem Teil der Mannschaft gleichfalls Hilfe."</blockquote>`
},
{
titel: "Ausrüstung der Feuerwehr",
html: `
<ul>
<li>1 vierrädrige Abprotzspritze</li>
<li>430 Meter Hanf-Schlauch</li>
<li>18 Schöpeimer</li>
<li>1 Steigleiter (8,80 m)</li>
<li>1 Leiterwagen</li>
<li>3 Hakenleitern</li>
<li>2 Anlegeleitern</li>
<li>5 Feuerhaken</li>
</ul>`
},
{
titel: "Technische Entwicklung",
html: `
<p>In den Jahren <strong>1903 bis 1904</strong> ließ Herr Ingenieur Mennicke als Geschenk für Stadt Wehlen eine zentrale Wasserleitung errichten. Dies war ein großer Vorteil für die Feuerwehr, denn nun konnten alle Punkte der Stadt mit Löschwasser aus dem zentralen Rohrnetz über <strong>31 Unterflurhydranten</strong> und <strong>1 Oberflurhydrant</strong> erreicht werden.</p>
<p>Am <strong>23. Oktober 1921</strong> fand in Stadt Wehlen der <strong>20. Bezirkstag der Feuerwehren</strong> statt. Um 10 Uhr trafen 57 Feuerwehren ein, und in der "Elbterrasse" wurde eine Festsitzung abgehalten. Anschließend wurde eine Großübung am Hotel <strong>"Sächsische Schweiz"</strong> vor über 500 Gästen und Einwohnern durchgeführt. Am Nachmittag folgte ein großer Umzug mit <strong>vier Blaskapellen</strong> und <strong>zwei Spielmannszügen</strong>.</p>`
},
{
titel: "Weitere Meilensteine",
html: `
<p>Am <strong>24. Mai 1925</strong> wurde das Feuerwehrdepot auf der Pirnaer Straße festlich eingeweiht. Hier stand die Feuerwehr unter der Leitung von Dachdeckermeister Otto Israel.</p>
<p>1934 begann der Kampf um eine Motorspritze. Am <strong>12. Februar 1935</strong> wurde schließlich angeordnet, dass Stadt Wehlen eine Motorspritze beschaffen muss. Im gleichen Jahr erhielt die Feuerwehr eine Motorspritze sowie einen Mannschaftswagen vom Typ <strong>Mercedes</strong>.</p>`
},
{
titel: "Die Feuerwehr im Zweiten Weltkrieg",
html: `
<p>Während des <strong>Zweiten Weltkriegs (19391945)</strong> übernahm die Wehr gemeinsam mit einer verpflichteten Frauengruppe den Schutz der Stadt. Unter dem Kommando von Hauptmann Fröde wurde ein straffer Dienst verlangt. Jede Woche wurden ein Dienstappell mit Überprüfung der Uniformen und Gerätschaften sowie zweistündige Übungen durchgeführt.</p>`,
bild: true
}
]
},
{
zeitraum: "1946 1989",
eintraege: [
{
titel: "Wiederaufbau der Freiwilligen Feuerwehr nach 1949",
html: `
<p>Große Anstrengungen unternahmen die Kameraden nach <strong>1949</strong>. Kamerad Weber war damals der Jüngste, der die Wehr als Leiter übernahm. Wir wurden zum Beispiel zur Abholzung von Wäldern aufgerufen, damit die Bürger Feuerholz bekamen. Zur Erneuerung des Sportplatzes leisteten die Kameraden freiwillige Stunden.</p>
<p>So wurden zur Gründung eines <strong>Fanfarenzuges</strong> von Bürgern der Stadt Gelder gespendet. Nach einem Jahr konnten wir das erste Mal öffentlich auftreten und marschierten bei Veranstaltungen wie dem 1. Mai an der Spitze mit.</p>`
},
{
titel: "Der LKW und die Gründung der Löschgruppe Stadt Wehlen II",
html: `
<p>1956 kaufte der Rat der Stadt einen LKW, den die Kameraden als Zugkraftwagen ausbauten. Am <strong>1. April 1956</strong> wurde in Stadt Wehlen II (Pötzscha), unter Führung des Kameraden Böhme, eine Löschgruppe gegründet, da die Brände an der Bahnlinie zunahmen.</p>`
},
{
titel: "Unwetterkatastrophen und die \"Reinigungswasser-Suppe\"",
html: `
<p>1957 wurden die Kameraden zur Unwetterkatastrophe nach Pirna alarmiert. Dort pumpten wir Wasser aus Kellern und retteten Margarinewürfel. Da wir hungrig waren, schöpften wir aus unbewachten Feldküchen vermeintliche Suppe. Am Morgen stellte sich heraus: Es war <strong>heißes Reinigungswasser</strong>! Eine Geschichte, die heute noch erzählt wird.</p>`
},
{
titel: "Der Sparkassenbrand 1963",
html: `
<p>Am <strong>24. Dezember 1963</strong> brannte die Sparkasse am Markt. Bei <strong>-20°C</strong> und Orkanböen waren die Kameraden auf der Leiter teilweise angefroren. Trotzdem gelang es, die Kirche und die Nachbarhäuser zu retten. 1967 erhielten wir dafür unser erstes typenmäßiges Fahrzeug das Kleinlöschfahrzeug <strong>B 1000</strong>.</p>`
},
{
titel: "Entwicklungen der 70er und 80er",
html: `
<p>1971 bekamen wir das Löschfahrzeug <strong>LO 1800</strong>. In 20 Abenden wurde dafür eine Fahrzeughalle errichtet. <strong>1980</strong> wurde der erste Bauabschnitt des Gerätehauses an der Kirchstraße abgeschlossen.</p>`
}
]
},
{
zeitraum: "1990 1994",
eintraege: [
{
titel: "Nach der Wiedervereinigung 1990",
html: `
<p>Wir konnten preisgünstig Technik erwerben, darunter ein B 1000 für Pötzscha. 1991 feierte die Feuerwehr ihr <strong>90-jähriges Jubiläum</strong> mit einem großen Feuerwehrball im Cafe Richter.</p>
<p>Vom <strong>22. 23. November 1991</strong> erhielten wir von den Kameraden aus Deuschelried/Wangen ein Löschfahrzeug vom Typ <strong>Opel</strong> als Geschenk. Die Freundschaft wurde mit einer Dampferfahrt gefestigt. 1993/94 wurde das Gerätehaus in Pötzscha vergrößert.</p>`
}
]
},
{
zeitraum: "1995 heute",
eintraege: [
{
titel: "Hochwasser 2002",
html: `
<p>Am <strong>13.08.2002</strong> wurden wir nach Pirna gerufen, um Bürger mit dem Schlauchboot zu evakuieren. Zurück in Wehlen begannen die Vorbereitungen gegen das Elbehochwasser. Bürger wie Eckhard, Mike Hofmann, Ronny Roll und Herr Pfeiler unterstützten mit ihren Booten.</p>
<p>Am 15.08. kam die Schocknachricht: Es sollten noch 23 Meter dazu kommen. Die Leitstelle wurde in die Grundschule verlegt. Etwa 70 % der Bürger waren ohne Gas und Strom. In der Nacht zum 17.08. erreichte die Elbe den Höchststand von <strong>12,04 m</strong>.</p>
<p>Hilfe kam von den Feuerwehren aus Trochtelfingen, Wangen und Forst sowie später durch 12 Fahrzeuge aus dem Wartburgkreis. Die Kameraden leisteten tägliche Dienste von 1618 Stunden, um die Stadt vom Schlamm zu befreien.</p>`
}
]
}
];

53
data/mitglieder.js Normal file
View File

@ -0,0 +1,53 @@
/* ======================================================
mitglieder.js ZENTRALE DATENQUELLE für das Organigramm
------------------------------------------------------
Wird von BEIDEN Design-Varianten genutzt.
====================================================== */
window.FFW_MITGLIEDER = {
fuehrung: [
{ rolle: "Wehrleiter", namen: ["Herzog, André"] },
{ rolle: "Stellvertreter", namen: ["Flössel, Markus", "Drechsel, Manuel"] }
],
stab: [
{ rolle: "Schriftführer", namen: ["Flössel, Markus"] },
{ rolle: "Kassenwart", namen: ["Marder, Uwe"] }
],
fachwarte: [
{ rolle: "Atemschutz-Gerätewart", namen: ["Reißig, Kersten"] },
{ rolle: "Gerätewart", namen: ["Blümel, Dirk"] },
{ rolle: "Jugendwart", namen: ["Reißig, Manuel"] },
{ rolle: "Altersabteilung", namen: ["Dittmann, Frank"] }
],
gruppen: [
{
titel: "Atemschutzträger",
namen: [
"Blümel, Dirk", "Flössel, Markus", "Gottlöber, Heiko", "Herzog, Nico",
"Hübsch, Alexander", "Hübsch, Sebastian", "John, Marko", "Kurze, Steffen"
]
},
{
titel: "Maschinisten",
namen: [
"Blümel, Dirk", "Drechsel, Manuel", "Flössel, Markus", "Herzog, André",
"Hübsch, Alexander", "Hübsch, Sebastian", "John, Marko", "Marder, Uwe"
]
},
{
titel: "Führung",
abschnitte: [
{ label: "Zugführer", namen: ["Kurze, Steffen"] },
{ label: "Verbandsführer", namen: ["Mathe, Thomas"] },
{ label: "Gruppenführer", namen: ["Blümel, Dirk", "Drechsel, Manuel", "Flössel, Markus", "Herzog, André"] }
]
},
{
titel: "Mannschaft",
abschnitte: [
{ label: "Truppführer", namen: ["Gottlöber, Heiko", "Hübsch, Alexander", "Hübsch, Sebastian", "John, Marko", "Marder, Uwe"] },
{ label: "Truppmann", namen: ["Caspari, Patrick", "Herzog, Nico", "Marder, Lukas", "Mathe, Albert", "Pohl, Michael", "Riedel, Pascal", "Pintaske, Florian"] }
]
}
]
};

150
datenschutz.html Normal file
View File

@ -0,0 +1,150 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Datenschutz | Feuerwehr Stadt Wehlen</title>
<meta name="description" content="Datenschutzerklärung der Feuerwehr Stadt Wehlen." />
<script>window.FFW_BASE = "";</script>
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH"
crossorigin="anonymous"
/>
<link rel="stylesheet" href="assets/style.css" />
<link rel="icon" type="image/gif" href="bilder/ffw_transp_72.gif" />
</head>
<body data-page="kontakt">
<div id="site-header"></div>
<main>
<header class="gl-seitenkopf">
<div class="container">
<h1>Datenschutzerklärung</h1>
<p class="untertitel">Informationen zur Verarbeitung personenbezogener Daten</p>
</div>
</header>
<section class="container py-5" style="max-width: 900px;">
<div class="gl-card text-seite">
<p>Diese Datenschutzerklärung klärt Sie über die Art, den Umfang und Zweck der Verarbeitung von personenbezogenen Daten (nachfolgend kurz „Daten") innerhalb unseres Onlineangebotes und der mit ihm verbundenen Webseiten, Funktionen und Inhalte sowie externen Onlinepräsenzen, wie z.B. unser Social Media Profile auf (nachfolgend gemeinsam bezeichnet als „Onlineangebot"). Im Hinblick auf die verwendeten Begrifflichkeiten, wie z.B. „Verarbeitung" oder „Verantwortlicher" verweisen wir auf die Definitionen im Art. 4 der Datenschutzgrundverordnung (DSGVO).</p>
<h2>Verantwortlicher</h2>
<p>
Michael Brune<br>
Organisation Freiwillige Feuerwehr Stadt Wehlen<br>
Pirnaer Strasse 102<br>
01829 Stadt Wehlen<br>
Deutschland
</p>
<p>
E-Mail: <a href="mailto:feuerwehr.stadt.wehlen@web.de">feuerwehr.stadt.wehlen@web.de</a><br>
<a href="kontakt.html">Zum Impressum / Kontakt</a>
</p>
<h2>Arten der verarbeiteten Daten</h2>
<ul>
<li>Bestandsdaten (z.B., Namen, Adressen).</li>
<li>Kontaktdaten (z.B., E-Mail, Telefonnummern).</li>
<li>Inhaltsdaten (z.B., Texteingaben, Fotografien, Videos).</li>
<li>Nutzungsdaten (z.B., besuchte Webseiten, Interesse an Inhalten, Zugriffszeiten).</li>
<li>Meta-/Kommunikationsdaten (z.B., Geräte-Informationen, IP-Adressen).</li>
</ul>
<h2>Kategorien betroffener Personen</h2>
<p>Besucher und Nutzer des Onlineangebotes (Nachfolgend bezeichnen wir die betroffenen Personen zusammenfassend auch als „Nutzer").</p>
<h2>Zweck der Verarbeitung</h2>
<ul>
<li>Zurverfügungstellung des Onlineangebotes, seiner Funktionen und Inhalte.</li>
<li>Beantwortung von Kontaktanfragen und Kommunikation mit Nutzern.</li>
<li>Sicherheitsmaßnahmen.</li>
<li>Reichweitenmessung/Marketing</li>
</ul>
<h2>Verwendete Begrifflichkeiten</h2>
<p>„Personenbezogene Daten" sind alle Informationen, die sich auf eine identifizierte oder identifizierbare natürliche Person (im Folgenden „betroffene Person") beziehen; als identifizierbar wird eine natürliche Person angesehen, die direkt oder indirekt, insbesondere mittels Zuordnung zu einer Kennung wie einem Namen, zu einer Kennnummer, zu Standortdaten, zu einer Online-Kennung (z.B. Cookie) oder zu einem oder mehreren besonderen Merkmalen identifiziert werden kann, die Ausdruck der physischen, physiologischen, genetischen, psychischen, wirtschaftlichen, kulturellen oder sozialen Identität dieser natürlichen Person sind.</p>
<p>„Verarbeitung" ist jeder mit oder ohne Hilfe automatisierter Verfahren ausgeführte Vorgang oder jede solche Vorgangsreihe im Zusammenhang mit personenbezogenen Daten. Der Begriff reicht weit und umfasst praktisch jeden Umgang mit Daten.</p>
<p>„Pseudonymisierung" die Verarbeitung personenbezogener Daten in einer Weise, dass die personenbezogenen Daten ohne Hinzuziehung zusätzlicher Informationen nicht mehr einer spezifischen betroffenen Person zugeordnet werden können, sofern diese zusätzlichen Informationen gesondert aufbewahrt werden und technischen und organisatorischen Maßnahmen unterliegen, die gewährleisten, dass die personenbezogenen Daten nicht einer identifizierten oder identifizierbaren natürlichen Person zugewiesen werden.</p>
<p>„Profiling" jede Art der automatisierten Verarbeitung personenbezogener Daten, die darin besteht, dass diese personenbezogenen Daten verwendet werden, um bestimmte persönliche Aspekte, die sich auf eine natürliche Person beziehen, zu bewerten, insbesondere um Aspekte bezüglich Arbeitsleistung, wirtschaftliche Lage, Gesundheit, persönliche Vorlieben, Interessen, Zuverlässigkeit, Verhalten, Aufenthaltsort oder Ortswechsel dieser natürlichen Person zu analysieren oder vorherzusagen.</p>
<p>Als „Verantwortlicher" wird die natürliche oder juristische Person, Behörde, Einrichtung oder andere Stelle, die allein oder gemeinsam mit anderen über die Zwecke und Mittel der Verarbeitung von personenbezogenen Daten entscheidet, bezeichnet.</p>
<p>„Auftragsverarbeiter" eine natürliche oder juristische Person, Behörde, Einrichtung oder andere Stelle, die personenbezogene Daten im Auftrag des Verantwortlichen verarbeitet.</p>
<h2>Maßgebliche Rechtsgrundlagen</h2>
<p>Nach Maßgabe des Art. 13 DSGVO teilen wir Ihnen die Rechtsgrundlagen unserer Datenverarbeitungen mit. Sofern die Rechtsgrundlage in der Datenschutzerklärung nicht genannt wird, gilt Folgendes: Die Rechtsgrundlage für die Einholung von Einwilligungen ist Art. 6 Abs. 1 lit. a und Art. 7 DSGVO, die Rechtsgrundlage für die Verarbeitung zur Erfüllung unserer Leistungen und Durchführung vertraglicher Maßnahmen sowie Beantwortung von Anfragen ist Art. 6 Abs. 1 lit. b DSGVO, die Rechtsgrundlage für die Verarbeitung zur Erfüllung unserer rechtlichen Verpflichtungen ist Art. 6 Abs. 1 lit. c DSGVO, und die Rechtsgrundlage für die Verarbeitung zur Wahrung unserer berechtigten Interessen ist Art. 6 Abs. 1 lit. f DSGVO. Für den Fall, dass lebenswichtige Interessen der betroffenen Person oder einer anderen natürlichen Person eine Verarbeitung personenbezogener Daten erforderlich machen, dient Art. 6 Abs. 1 lit. d DSGVO als Rechtsgrundlage.</p>
<h2>Sicherheitsmaßnahmen</h2>
<p>Wir treffen nach Maßgabe des Art. 32 DSGVO unter Berücksichtigung des Stands der Technik, der Implementierungskosten und der Art, des Umfangs, der Umstände und der Zwecke der Verarbeitung sowie der unterschiedlichen Eintrittswahrscheinlichkeit und Schwere des Risikos für die Rechte und Freiheiten natürlicher Personen, geeignete technische und organisatorische Maßnahmen, um ein dem Risiko angemessenes Schutzniveau zu gewährleisten.</p>
<p>Zu den Maßnahmen gehören insbesondere die Sicherung der Vertraulichkeit, Integrität und Verfügbarkeit von Daten durch Kontrolle des physischen Zugangs zu den Daten, als auch des sie betreffenden Zugriffs, der Eingabe, Weitergabe, der Sicherung der Verfügbarkeit und ihrer Trennung. Des Weiteren haben wir Verfahren eingerichtet, die eine Wahrnehmung von Betroffenenrechten, Löschung von Daten und Reaktion auf Gefährdung der Daten gewährleisten. Ferner berücksichtigen wir den Schutz personenbezogener Daten bereits bei der Entwicklung, bzw. Auswahl von Hardware, Software sowie Verfahren, entsprechend dem Prinzip des Datenschutzes durch Technikgestaltung und durch datenschutzfreundliche Voreinstellungen (Art. 25 DSGVO).</p>
<h2>Zusammenarbeit mit Auftragsverarbeitern und Dritten</h2>
<p>Sofern wir im Rahmen unserer Verarbeitung Daten gegenüber anderen Personen und Unternehmen (Auftragsverarbeitern oder Dritten) offenbaren, sie an diese übermitteln oder ihnen sonst Zugriff auf die Daten gewähren, erfolgt dies nur auf Grundlage einer gesetzlichen Erlaubnis (z.B. wenn eine Übermittlung der Daten an Dritte, wie an Zahlungsdienstleister, gem. Art. 6 Abs. 1 lit. b DSGVO zur Vertragserfüllung erforderlich ist), Sie eingewilligt haben, eine rechtliche Verpflichtung dies vorsieht oder auf Grundlage unserer berechtigten Interessen (z.B. beim Einsatz von Beauftragten, Webhostern, etc.).</p>
<p>Sofern wir Dritte mit der Verarbeitung von Daten auf Grundlage eines sog. „Auftragsverarbeitungsvertrages" beauftragen, geschieht dies auf Grundlage des Art. 28 DSGVO.</p>
<h2>Übermittlungen in Drittländer</h2>
<p>Sofern wir Daten in einem Drittland (d.h. außerhalb der Europäischen Union (EU) oder des Europäischen Wirtschaftsraums (EWR)) verarbeiten oder dies im Rahmen der Inanspruchnahme von Diensten Dritter oder Offenlegung, bzw. Übermittlung von Daten an Dritte geschieht, erfolgt dies nur, wenn es zur Erfüllung unserer (vor)vertraglichen Pflichten, auf Grundlage Ihrer Einwilligung, aufgrund einer rechtlichen Verpflichtung oder auf Grundlage unserer berechtigten Interessen geschieht. Vorbehaltlich gesetzlicher oder vertraglicher Erlaubnisse, verarbeiten oder lassen wir die Daten in einem Drittland nur beim Vorliegen der besonderen Voraussetzungen der Art. 44 ff. DSGVO verarbeiten. D.h. die Verarbeitung erfolgt z.B. auf Grundlage besonderer Garantien, wie der offiziell anerkannten Feststellung eines der EU entsprechenden Datenschutzniveaus oder Beachtung offiziell anerkannter spezieller vertraglicher Verpflichtungen (so genannte „Standardvertragsklauseln").</p>
<h2>Rechte der betroffenen Personen</h2>
<p>Sie haben das Recht, eine Bestätigung darüber zu verlangen, ob betreffende Daten verarbeitet werden und auf Auskunft über diese Daten sowie auf weitere Informationen und Kopie der Daten entsprechend Art. 15 DSGVO.</p>
<p>Sie haben entsprechend Art. 16 DSGVO das Recht, die Vervollständigung der Sie betreffenden Daten oder die Berichtigung der Sie betreffenden unrichtigen Daten zu verlangen.</p>
<p>Sie haben nach Maßgabe des Art. 17 DSGVO das Recht zu verlangen, dass betreffende Daten unverzüglich gelöscht werden, bzw. alternativ nach Maßgabe des Art. 18 DSGVO eine Einschränkung der Verarbeitung der Daten zu verlangen.</p>
<p>Sie haben das Recht zu verlangen, dass die Sie betreffenden Daten, die Sie uns bereitgestellt haben nach Maßgabe des Art. 20 DSGVO zu erhalten und deren Übermittlung an andere Verantwortliche zu fordern.</p>
<p>Sie haben ferner gem. Art. 77 DSGVO das Recht, eine Beschwerde bei der zuständigen Aufsichtsbehörde einzureichen.</p>
<h2>Widerrufsrecht</h2>
<p>Sie haben das Recht, erteilte Einwilligungen gem. Art. 7 Abs. 3 DSGVO mit Wirkung für die Zukunft zu widerrufen.</p>
<h2>Widerspruchsrecht</h2>
<p>Sie können der künftigen Verarbeitung der Sie betreffenden Daten nach Maßgabe des Art. 21 DSGVO jederzeit widersprechen. Der Widerspruch kann insbesondere gegen die Verarbeitung für Zwecke der Direktwerbung erfolgen.</p>
<h2>Cookies und Widerspruchsrecht bei Direktwerbung</h2>
<p>Als „Cookies" werden kleine Dateien bezeichnet, die auf Rechnern der Nutzer gespeichert werden. Innerhalb der Cookies können unterschiedliche Angaben gespeichert werden. Ein Cookie dient primär dazu, die Angaben zu einem Nutzer (bzw. dem Gerät auf dem das Cookie gespeichert ist) während oder auch nach seinem Besuch innerhalb eines Onlineangebotes zu speichern. Als temporäre Cookies, bzw. „Session-Cookies" oder „transiente Cookies", werden Cookies bezeichnet, die gelöscht werden, nachdem ein Nutzer ein Onlineangebot verlässt und seinen Browser schließt. In einem solchen Cookie kann z.B. der Inhalt eines Warenkorbs in einem Onlineshop oder ein Login-Status gespeichert werden. Als „permanent" oder „persistent" werden Cookies bezeichnet, die auch nach dem Schließen des Browsers gespeichert bleiben. So kann z.B. der Login-Status gespeichert werden, wenn die Nutzer diese nach mehreren Tagen aufsuchen. Ebenso können in einem solchen Cookie die Interessen der Nutzer gespeichert werden, die für Reichweitenmessung oder Marketingzwecke verwendet werden. Als „Third-Party-Cookie" werden Cookies bezeichnet, die von anderen Anbietern als dem Verantwortlichen, der das Onlineangebot betreibt, angeboten werden (andernfalls, wenn es nur dessen Cookies sind spricht man von „First-Party Cookies").</p>
<p>Wir können temporäre und permanente Cookies einsetzen und klären hierüber im Rahmen unserer Datenschutzerklärung auf.</p>
<p>Falls die Nutzer nicht möchten, dass Cookies auf ihrem Rechner gespeichert werden, werden sie gebeten die entsprechende Option in den Systemeinstellungen ihres Browsers zu deaktivieren. Gespeicherte Cookies können in den Systemeinstellungen des Browsers gelöscht werden. Der Ausschluss von Cookies kann zu Funktionseinschränkungen dieses Onlineangebotes führen.</p>
<p>Ein genereller Widerspruch gegen den Einsatz der zu Zwecken des Onlinemarketing eingesetzten Cookies kann bei einer Vielzahl der Dienste, vor allem im Fall des Trackings, über die US-amerikanische Seite <a href="http://www.aboutads.info/choices/" target="_blank" rel="noopener">http://www.aboutads.info/choices/</a> oder die EU-Seite <a href="http://www.youronlinechoices.com/" target="_blank" rel="noopener">http://www.youronlinechoices.com/</a> erklärt werden. Des Weiteren kann die Speicherung von Cookies mittels deren Abschaltung in den Einstellungen des Browsers erreicht werden. Bitte beachten Sie, dass dann gegebenenfalls nicht alle Funktionen dieses Onlineangebotes genutzt werden können.</p>
<h2>Löschung von Daten</h2>
<p>Die von uns verarbeiteten Daten werden nach Maßgabe der Art. 17 und 18 DSGVO gelöscht oder in ihrer Verarbeitung eingeschränkt. Sofern nicht im Rahmen dieser Datenschutzerklärung ausdrücklich angegeben, werden die bei uns gespeicherten Daten gelöscht, sobald sie für ihre Zweckbestimmung nicht mehr erforderlich sind und der Löschung keine gesetzlichen Aufbewahrungspflichten entgegenstehen. Sofern die Daten nicht gelöscht werden, weil sie für andere und gesetzlich zulässige Zwecke erforderlich sind, wird deren Verarbeitung eingeschränkt. D.h. die Daten werden gesperrt und nicht für andere Zwecke verarbeitet. Das gilt z.B. für Daten, die aus handels- oder steuerrechtlichen Gründen aufbewahrt werden müssen.</p>
<p>Nach gesetzlichen Vorgaben in Deutschland erfolgt die Aufbewahrung insbesondere für 10 Jahre gemäß §§ 147 Abs. 1 AO, 257 Abs. 1 Nr. 1 und 4, Abs. 4 HGB (Bücher, Aufzeichnungen, Lageberichte, Buchungsbelege, Handelsbücher, für Besteuerung relevanter Unterlagen, etc.) und 6 Jahre gemäß § 257 Abs. 1 Nr. 2 und 3, Abs. 4 HGB (Handelsbriefe).</p>
<h2>Erbringung unserer satzungs- und geschäftsgemäßen Leistungen</h2>
<p>Wir verarbeiten die Daten unserer Mitglieder, Unterstützer, Interessenten, Kunden oder sonstiger Personen entsprechend Art. 6 Abs. 1 lit. b. DSGVO, sofern wir ihnen gegenüber vertragliche Leistungen anbieten oder im Rahmen bestehender geschäftlicher Beziehung, z.B. gegenüber Mitgliedern, tätig werden oder selbst Empfänger von Leistungen und Zuwendungen sind. Im Übrigen verarbeiten wir die Daten betroffener Personen gem. Art. 6 Abs. 1 lit. f. DSGVO auf Grundlage unserer berechtigten Interessen, z.B. wenn es sich um administrative Aufgaben oder Öffentlichkeitsarbeit handelt.</p>
<p>Die hierbei verarbeiteten Daten, die Art, der Umfang und der Zweck und die Erforderlichkeit ihrer Verarbeitung bestimmen sich nach dem zugrundeliegenden Vertragsverhältnis. Dazu gehören grundsätzlich Bestands- und Stammdaten der Personen (z.B., Name, Adresse, etc.), als auch die Kontaktdaten (z.B., E-Mailadresse, Telefon, etc.), die Vertragsdaten (z.B., in Anspruch genommene Leistungen, mitgeteilte Inhalte und Informationen, Namen von Kontaktpersonen) und sofern wir zahlungspflichtige Leistungen oder Produkte anbieten, Zahlungsdaten (z.B., Bankverbindung, Zahlungshistorie, etc.).</p>
<p>Wir löschen Daten, die zur Erbringung unserer satzungs- und geschäftsmäßigen Zwecke nicht mehr erforderlich sind. Dies bestimmt sich entsprechend der jeweiligen Aufgaben und vertraglichen Beziehungen. Im Fall geschäftlicher Verarbeitung bewahren wir die Daten so lange auf, wie sie zur Geschäftsabwicklung, als auch im Hinblick auf etwaige Gewährleistungs- oder Haftungspflichten relevant sein können. Die Erforderlichkeit der Aufbewahrung der Daten wird alle drei Jahre überprüft; im Übrigen gelten die gesetzlichen Aufbewahrungspflichten.</p>
<h2>Hosting</h2>
<p>Die von uns in Anspruch genommenen Hosting-Leistungen dienen der Zurverfügungstellung der folgenden Leistungen: Infrastruktur- und Plattformdienstleistungen, Rechenkapazität, Speicherplatz und Datenbankdienste, Sicherheitsleistungen sowie technische Wartungsleistungen, die wir zum Zwecke des Betriebs dieses Onlineangebotes einsetzen.</p>
<p>Hierbei verarbeiten wir, bzw. unser Hostinganbieter Bestandsdaten, Kontaktdaten, Inhaltsdaten, Vertragsdaten, Nutzungsdaten, Meta- und Kommunikationsdaten von Kunden, Interessenten und Besuchern dieses Onlineangebotes auf Grundlage unserer berechtigten Interessen an einer effizienten und sicheren Zurverfügungstellung dieses Onlineangebotes gem. Art. 6 Abs. 1 lit. f DSGVO i.V.m. Art. 28 DSGVO (Abschluss Auftragsverarbeitungsvertrag).</p>
<h2>Erhebung von Zugriffsdaten und Logfiles</h2>
<p>Wir, bzw. unser Hostinganbieter, erhebt auf Grundlage unserer berechtigten Interessen im Sinne des Art. 6 Abs. 1 lit. f. DSGVO Daten über jeden Zugriff auf den Server, auf dem sich dieser Dienst befindet (sogenannte Serverlogfiles). Zu den Zugriffsdaten gehören Name der abgerufenen Webseite, Datei, Datum und Uhrzeit des Abrufs, übertragene Datenmenge, Meldung über erfolgreichen Abruf, Browsertyp nebst Version, das Betriebssystem des Nutzers, Referrer URL (die zuvor besuchte Seite), IP-Adresse und der anfragende Provider.</p>
<p>Logfile-Informationen werden aus Sicherheitsgründen (z.B. zur Aufklärung von Missbrauchs- oder Betrugshandlungen) für die Dauer von maximal 7 Tagen gespeichert und danach gelöscht. Daten, deren weitere Aufbewahrung zu Beweiszwecken erforderlich ist, sind bis zur endgültigen Klärung des jeweiligen Vorfalls von der Löschung ausgenommen.</p>
<h2>Onlinepräsenzen in sozialen Medien</h2>
<p>Wir unterhalten Onlinepräsenzen innerhalb sozialer Netzwerke und Plattformen, um mit den dort aktiven Kunden, Interessenten und Nutzern kommunizieren und sie dort über unsere Leistungen informieren zu können. Beim Aufruf der jeweiligen Netzwerke und Plattformen gelten die Geschäftsbedingungen und die Datenverarbeitungsrichtlinien deren jeweiligen Betreiber.</p>
<p>Soweit nicht anders im Rahmen unserer Datenschutzerklärung angegeben, verarbeiten wir die Daten der Nutzer sofern diese mit uns innerhalb der sozialen Netzwerke und Plattformen kommunizieren, z.B. Beiträge auf unseren Onlinepräsenzen verfassen oder uns Nachrichten zusenden.</p>
<h2>Einbindung von Diensten und Inhalten Dritter</h2>
<p>Wir setzen innerhalb unseres Onlineangebotes auf Grundlage unserer berechtigten Interessen (d.h. Interesse an der Analyse, Optimierung und wirtschaftlichem Betrieb unseres Onlineangebotes im Sinne des Art. 6 Abs. 1 lit. f. DSGVO) Inhalts- oder Serviceangebote von Drittanbietern ein, um deren Inhalte und Services, wie z.B. Videos oder Schriftarten einzubinden (nachfolgend einheitlich bezeichnet als „Inhalte").</p>
<p>Dies setzt immer voraus, dass die Drittanbieter dieser Inhalte, die IP-Adresse der Nutzer wahrnehmen, da sie ohne die IP-Adresse die Inhalte nicht an deren Browser senden könnten. Die IP-Adresse ist damit für die Darstellung dieser Inhalte erforderlich. Wir bemühen uns nur solche Inhalte zu verwenden, deren jeweilige Anbieter die IP-Adresse lediglich zur Auslieferung der Inhalte verwenden. Drittanbieter können ferner so genannte Pixel-Tags (unsichtbare Grafiken, auch als "Web Beacons" bezeichnet) für statistische oder Marketingzwecke verwenden. Durch die "Pixel-Tags" können Informationen, wie der Besucherverkehr auf den Seiten dieser Website ausgewertet werden. Die pseudonymen Informationen können ferner in Cookies auf dem Gerät der Nutzer gespeichert werden und unter anderem technische Informationen zum Browser und Betriebssystem, verweisende Webseiten, Besuchszeit sowie weitere Angaben zur Nutzung unseres Onlineangebotes enthalten, als auch mit solchen Informationen aus anderen Quellen verbunden werden.</p>
<p class="termin-beschr mt-4 mb-0"><small>Erstellt mit Datenschutz-Generator.de von RA Dr. Thomas Schwenke</small></p>
</div>
</section>
</main>
<div id="site-footer"></div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"
integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz"
crossorigin="anonymous"></script>
<script src="assets/components.js"></script>
</body>
</html>

85
dienstplan.html Normal file
View File

@ -0,0 +1,85 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Dienstplan &amp; Termine | Feuerwehr Stadt Wehlen</title>
<meta name="description" content="Dienstplan, Übungen und Veranstaltungen der Feuerwehr Stadt Wehlen." />
<script>window.FFW_BASE = "";</script>
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH"
crossorigin="anonymous"
/>
<link rel="stylesheet" href="assets/style.css" />
<link rel="icon" type="image/gif" href="bilder/ffw_transp_72.gif" />
</head>
<body data-page="dienstplan">
<div id="site-header"></div>
<main>
<header class="gl-seitenkopf">
<div class="container">
<h1>Dienstplan &amp; Termine</h1>
<p class="untertitel">Übungen, Dienste und Veranstaltungen der Feuerwehr Stadt Wehlen</p>
</div>
</header>
<section class="container py-5">
<div class="row g-4 mb-5">
<div class="col-md-6">
<div class="gl-card">
<h3>Nächster Dienst</h3>
<div id="nextDienst"><p class="termin-beschr">Wird geladen …</p></div>
</div>
</div>
<div class="col-md-6">
<div class="gl-card">
<h3>Nächste Veranstaltung</h3>
<div id="nextEvent"><p class="termin-beschr">Wird geladen …</p></div>
</div>
</div>
</div>
<h2 class="abschnitt-titel">Alle Termine</h2>
<p class="abschnitt-sub">Der nächste Termin ist rot markiert.</p>
<div class="termin-tabelle-wrap">
<div id="dienstplan-liste"><p class="termin-beschr p-3">Wird geladen …</p></div>
</div>
</section>
<section class="container pb-5">
<div class="row g-4">
<div class="col-md-6">
<a class="gl-card text-center" href="downloads/dienstplan_2026_2_halbjahr.pdf" target="_blank" rel="noopener">
<h3>Dienstplan als PDF</h3>
<p class="beschreibung">Dienstplan 2026 (2. Halbjahr) der Einsatzabteilung</p>
<span class="mehr">PDF öffnen ↗</span>
</a>
</div>
<div class="col-md-6">
<a class="gl-card text-center" href="downloads/dienstplan_jfw_2026.pdf" target="_blank" rel="noopener">
<h3>Dienstplan Jugendfeuerwehr</h3>
<p class="beschreibung">Dienstplan 2026 (2. Halbjahr) der Jugendfeuerwehr</p>
<span class="mehr">PDF öffnen ↗</span>
</a>
</div>
</div>
</section>
</main>
<div id="site-footer"></div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"
integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz"
crossorigin="anonymous"></script>
<script src="data/dienste.js"></script>
<script src="assets/components.js"></script>
</body>
</html>

View File

@ -1,24 +0,0 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<title>Nächster Feuerwehr-Dienst</title>
<style>
.dienst {
border: 2px solid #c00;
padding: 1rem;
max-width: 400px;
font-family: Arial, sans-serif;
}
</style>
</head>
<body>
<h2>Nächster Dienst</h2>
<div id="nextDienst" class="dienst">
Wird geladen…
</div>
<script src="dienstplan.js"></script>
</body>
</html>

View File

@ -1,9 +1,44 @@
datum,tag,zeit,ort,art,beschreibung
2026-03-23,Mo,19:00,SW/Pö,Gemeinsamer Dienst,Atemschutznotfalltraining
2026-04-06,Mo,19:00,Stadt Wehlen,Praxis,Leitern und Knoten
2026-04-20,Mo,19:00,SW/Pö,Gemeinsamer Dienst,Fahrzeugkunde & Beladung
2026-04-30,Do,18:00,Stadt Wehlen,Fest,Absicherung Maifeuer
2026-05-04,Mo,19:00,Stadt Wehlen,Ausbildung,Gefahren an der Einsatzstelle
2026-05-18,Mo,19:00,SW/Pö,Gemeinsamer Dienst,Löschangriff nass
2026-11-11,Mi,17:00,Stadt Wehlen,Fest,Absicherung Martinsumzug
2026-12-14,Mo,18:30,SW/Pö,Feier,Weihnachtsfeier
2026-07-03,Fr,19:00,SW/Pö,Praxis,Bootsausbildung
2026-07-11,Sa,08:00,Elbe,Sonderdienst,Elbeschwimmen
2026-07-13,Mo,19:00,SW/Pö,Gemeinsamer Dienst,Maschinisten-Dienst
2026-07-17,Fr,19:00,Stadt Wehlen,Praxis,FwDV3 - Gruppenübungen
2026-07-22,Mi,19:00,Stadt Wehlen,Sonderdienst,Weiterbildung CommandX 5
2026-07-31,Fr,19:00,Stadt Wehlen,Theorie/Praxis,FwDV10
2026-08-04,Di,19:00,Pötzscha,Sonderdienst,OfwA
2026-08-10,Mo,19:00,SW/Pö,Gemeinsamer Dienst,Maschinisten-Dienst
2026-08-14,Fr,17:30,Pötzscha,Praxis,Dienstsport Freibad
2026-08-14,Fr,17:00,Stadt Wehlen,Sonderdienst,Zuckertüten (Abgabe durch Eltern)
2026-08-15,Sa,09:00,Stadt Wehlen,Sonderdienst,Einschulung - Zuckertütenübergabe
2026-08-22,Sa,16:00,Dorf Wehlen,Fest,85 Jahre FFw Dorf Wehlen
2026-08-26,Mi,19:00,SW/Pö,Sonderdienst,Arbeitsdienst für ALLE - JFw Zeltlager Aufbau
2026-08-28,Fr,19:00,Pötzscha,Praxis,FwDV10
2026-08-28,Fr,,Pötzscha,Sonderdienst,JFw Zeltlager (bis 30.08.)
2026-08-31,Mo,19:00,Pötzscha,Sonderdienst,Abbau - JFw Zeltlager
2026-09-02,Mi,09:00,Stadt Wehlen,Sonderdienst,Foto 1. Klasse - vor GH mit LF10/6
2026-09-05,Sa,,Forst,Fest,Feuerwehrjubiläum - Forst
2026-09-07,Mo,19:00,SW/Pö,Gemeinsamer Dienst,Maschinisten-Dienst
2026-09-11,Fr,19:00,Stadt Wehlen,Gemeinsamer Dienst,Lange Wegstrecke Stadt Wehlen
2026-09-15,Di,19:00,Stadt Wehlen,Sonderdienst,Weiterbildung CommandX 5
2026-09-22,Di,19:00,Stadt Wehlen,Sonderdienst,OfwA
2026-09-25,Fr,19:00,Stadt Wehlen,Theorie/Praxis,Atemschutz & Fahrzeug/Gerätekunde
2026-09-26,Sa,08:00,DW/SW/Pö,Gemeinsamer Dienst,Gemeindeübung mit DRK
2026-10-02,Fr,19:00,Dorf Wehlen,Fest,Kirmes
2026-10-05,Mo,19:00,SW/Pö,Gemeinsamer Dienst,Maschinisten-Dienst
2026-10-06,Di,19:00,Stadt Wehlen,Sonderdienst,OfwA (Sondersitzung Oktoberfest)
2026-10-09,Fr,19:00,Stadt Wehlen,Praxis,Arbeiten im absturzgefährdeten Bereich
2026-10-23,Fr,16:00,Stadt Wehlen,Sonderdienst,Aufbau Oktoberfest
2026-10-24,Sa,08:00,Stadt Wehlen,Fest,Oktoberfest
2026-10-25,So,11:00,Stadt Wehlen,Sonderdienst,Abbau Oktoberfest
2026-11-02,Mo,19:00,SW/Pö,Gemeinsamer Dienst,Maschinisten-Dienst
2026-11-06,Fr,16:00,Stadt Wehlen,Gemeinsamer Dienst,Ausbildung Motorkettensäge - KGV
2026-11-10,Di,19:00,SW/Pö,Sonderdienst,Arbeitsdienst für ALLE
2026-11-15,So,10:00,Stadt Wehlen,Sonderdienst,Volkstrauertag
2026-11-17,Di,19:00,Stadt Wehlen,Sonderdienst,OfwA
2026-11-20,Fr,19:00,Stadt Wehlen,Praxis,Grundlagen THL
2026-11-24,Di,19:00,Stadt Wehlen,Gemeinsamer Dienst,Führungskräfteweiterbildung
2026-11-30,Mo,19:00,SW/Pö,Gemeinsamer Dienst,Maschinisten-Dienst
2026-12-04,Fr,19:00,Stadt Wehlen,Gemeinsamer Dienst,Gefahren bei Solaranlagen
2026-12-05,Sa,,Stadt Wehlen,Fest,Weihnachtsfeier
2026-12-18,Fr,19:00,Stadt Wehlen,Theorie/Praxis,ThBB - Bahn
2027-01-15,Fr,19:00,Stadt Wehlen,Theorie,Arbeitsschutz

Internal Server Error - Gitea: Git with a cup of tea
500 Internal Server Error

Gitea Version: 1.23.7