Compare commits

7 Commits

Author SHA1 Message Date
33fbdbc18a Kontaktformular: sendet an Directus (Flow → Mail an den Verein)
- Formular POSTet an die öffentliche Directus-Collection contact_messages
  (Name, E-Mail, Betreff, Nachricht) + Honeypot gegen Spam + Sende-/Fehler-Status
  mit mailto-Fallback. Öffentliche CMS-URL hartkodiert (Build-Env wäre die interne
  Docker-Adresse).
- Datenschutz §5 angepasst: Formular speichert jetzt in selbstgehostetem Directus
  und benachrichtigt den Vorstand per Mail (statt mailto).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 12:58:13 +02:00
ec56e907c8 über-uns: Abschnitt "Unsere Kita" — Werte-Akrostichon + Haus-Credo
Aus dem Kita-Leitbild (EJF-Video): das KITA-REGENBOGEN-Akrostichon (14 Werte mit
Regenbogen-Initialen) und das Credo "Wie muss ein Haus sein, in dem Kinder groß
werden?" mit den sechs Leitsätzen. Klar als Worte der Kita gekennzeichnet.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 08:28:31 +02:00
8fbd6cd5aa Kita-Status korrigiert: "Integrationskita/-kindertagesstätte" → "Kita/Kindertagesstätte"
Die Kita hat keinen Integrationsstatus mehr (offiziell: Kindertagesstätte "Regenbogen",
Träger EJF). Entfernt in: Footer-Adresse, Meta-Descriptions, c/o-Angaben (Impressum,
Datenschutz, Kontakt), Über-uns- und Presse-Text. Inklusion bleibt als Vereinswert
("jedes Kind zählt — unabhängig von Herkunft, Behinderung oder Kontostand").
Satzung-Seite/-PDF unverändert (wortgleicher beschlossener Satzungstext).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 08:22:01 +02:00
d63331c72b Standort korrigiert: Berlin-Tegel → Berlin-Heiligensee (13503); Hero-Datum als "Förderverein seit 2019" präzisiert
- Ort war durchgängig falsch (13503 = Heiligensee, nicht Tegel): Footer-Adresse,
  Meta-Descriptions (Start, Mitglied werden, Presse, Layout-Default), Presse-Boilerplate
- Hero-Eyebrow: "seit 2019" → "Förderverein seit 2019" (2019 = Vereinsgründung lt. Satzung,
  nicht das Kita-Alter → keine Verwechslung)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 14:22:16 +02:00
18487d2bea Dokumente: Satzung-Seite + gebrandete PDFs (Satzung, Beitragsordnung, Aufnahmeantrag)
- /satzung: vollständige Satzung (Stand 22.01.2020) als On-Site-Seite mit
  Print-CSS (Druck == PDF). Text 1:1 aus dem Original.
- Gebrandete Download-PDFs in public/dokumente/: satzung.pdf (aus der Seite
  gerendert), beitragsordnung.pdf, aufnahmeantrag.pdf (Formular inkl.
  SEPA-Mandat) — erzeugt via Chrome --headless --print-to-pdf
- Quellen + Regenerier-Skript in docs-src/ (gen.sh, README)
- Downloads verdrahtet: mitglied-werden (toter Beitrittserklärung-Link
  -> aufnahmeantrag.pdf, plus Beitragsordnung + Satzung), Footer (Satzung)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 09:49:16 +02:00
7f9328f2ef Header: responsive Bildmarke + Apex Brush wordmark lockup
- Replace the baked-in full-logo PNG in the header with the standalone
  Bildmarke (SVG) + live Apex Brush wordmark; "Regenbogen" uses the
  rainbow gradient (same as headings)
- Responsive: icon-only on mobile, two-line wordmark on sm–lg, one-line
  on xl; move nav breakpoint md->lg so the two-line wordmark doesn't
  collide with the inline nav (tablet uses the menu button)
- Footer and elsewhere keep the full logo

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 08:59:15 +02:00
1633bb18ac Merge 'design/playful-paper': Warm Paper redesign, real logo + webfont, polished pages 2026-06-06 14:19:33 +02:00
20 changed files with 739 additions and 49 deletions

21
docs-src/README.md Normal file
View File

@@ -0,0 +1,21 @@
# Vereinsdokumente → gebrandete PDFs
Quelldateien für die offiziellen PDFs unter `public/dokumente/`. Texte sind **1:1**
aus den Originalen (Satzung Stand 22.01.2020, Beitragsordnung beschlossen 06.04.2019)
übernommen — bei inhaltlichen Änderungen hier anpassen und neu generieren.
| PDF | Quelle | Auch online? |
|-----|--------|--------------|
| `satzung.pdf` | Astro-Seite `src/pages/satzung.astro` (Print-CSS) | ✅ `/satzung` |
| `beitragsordnung.pdf` | `docs-src/beitragsordnung.html` | ❌ nur Download |
| `aufnahmeantrag.pdf` | `docs-src/aufnahmeantrag.html` (Formular + SEPA-Mandat) | ❌ nur Download |
## Neu generieren
```sh
npm run dev # nötig für satzung.pdf (rendert /satzung)
bash docs-src/gen.sh # schreibt nach public/dokumente/
```
PDFs werden mit Google Chrome (`--headless --print-to-pdf`) erzeugt, damit die
`@media print`-Darstellung exakt dem PDF entspricht.

View File

@@ -0,0 +1,137 @@
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8" />
<title>Aufnahmeantrag Kitafreunde Regenbogen e.V.</title>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600..800&family=Hanken+Grotesk:wght@400..700&display=swap" rel="stylesheet" />
<style>
@page { size: A4; margin: 15mm 18mm 16mm; }
* { box-sizing: border-box; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
html, body { margin: 0; }
body { font-family: "Hanken Grotesk", system-ui, sans-serif; color: #1a1a1a; font-size: 10pt; line-height: 1.55; }
.doc-head { display: flex; align-items: center; gap: 14px; }
.doc-head img { height: 46px; width: auto; }
.doc-kicker { font-size: 9pt; color: #555; margin: 0; }
.doc-title { font-family: "Fraunces", Georgia, serif; font-size: 21pt; font-weight: 800; color: #2A2433; margin: 0; line-height: 1; }
.doc-meta { font-size: 9pt; color: #555; margin: 2px 0 0; }
.rule { height: 6px; border-radius: 99px; margin: 9px 0 16px; background: linear-gradient(90deg,#E8192C,#F5820D,#F9C80E,#00A651,#00AEEF,#3B4FA8,#6B3FA0); }
.lead { margin: 0 0 4px; }
.sec { font-family: "Fraunces", Georgia, serif; color: #4D2C78; font-size: 11.5pt; font-weight: 700; margin: 16px 0 7px; break-after: avoid; }
p { margin: .5em 0; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 9px 26px; margin: 4px 0; }
.field { border-bottom: 1px solid #9a9a9a; min-height: 30px; padding: 2px 2px 0; }
.field span { font-size: 8.5pt; color: #555; }
.field.wide { grid-column: 1 / -1; }
.opt { display: flex; gap: 9px; align-items: flex-start; margin: 6px 0; break-inside: avoid; }
.box { width: 12px; height: 12px; border: 1.5px solid #555; border-radius: 2px; flex: 0 0 auto; margin-top: 2px; }
.fill { display: inline-block; min-width: 70px; border-bottom: 1px solid #9a9a9a; }
.feerow { display: flex; justify-content: space-between; align-items: baseline; border-bottom: 1px solid #9a9a9a; padding: 4px 2px; margin-top: 6px; }
.feerow b { font-weight: 600; }
.ack { font-size: 9.5pt; color: #222; }
.sign { margin-top: 34px; }
.sign .line { border-top: 1px solid #555; }
.sign .cap { font-size: 8.5pt; color: #555; margin-top: 4px; }
.acct .field { max-width: 78%; }
.pagebreak { break-before: page; }
</style>
</head>
<body>
<header class="doc-head">
<img src="../public/logo/bildmarke.svg" alt="" />
<div>
<p class="doc-kicker">Förderverein Kitafreunde Regenbogen e.V.</p>
<h1 class="doc-title">Aufnahmeantrag</h1>
<p class="doc-meta">für Vereinsmitglieder</p>
</div>
</header>
<div class="rule"></div>
<p class="lead">Hiermit beantrage ich die Aufnahme als Mitglied in den Verein „Kitafreunde Regenbogen e.V.".</p>
<p class="sec">Persönliche Angaben</p>
<div class="grid2">
<div class="field"><span>Name</span></div>
<div class="field"><span>Vorname</span></div>
<div class="field"><span>Straße, Hausnummer</span></div>
<div class="field"><span>PLZ, Ort</span></div>
<div class="field"><span>Telefon</span></div>
<div class="field"><span>E-Mail</span></div>
<div class="field"><span>Geburtsdatum</span></div>
<div class="field"><span>Eintrittsdatum</span></div>
<div class="field wide"><span>Die Aufnahme in den Verein wird beantragt ab</span></div>
</div>
<p class="sec">Ich beantrage die Aufnahme als</p>
<div class="opt"><span class="box"></span><span>passives Mitglied, Einzelperson, Mindestbeitrag: 6,00 €</span></div>
<div class="opt"><span class="box"></span><span>passives Mitglied, juristische Person, Mindestbeitrag: 240,00 €</span></div>
<div class="opt"><span class="box"></span><span>passives Mitglied, Kinder bis zum vollendeten 16. Lebensjahr, beitragsfrei</span></div>
<div class="opt"><span class="box"></span><span>aktives Mitglied, ermäßigt, Mindestbeitrag: 6,00 €</span></div>
<div class="opt"><span class="box"></span><span>aktives Mitglied, Mindestbeitrag: 12,00 €</span></div>
<p class="sec">Mitgliedsbeitrag</p>
<div class="feerow"><b>Aufnahmegebühr einmalig</b><span>5,00 €</span></div>
<div class="opt"><span class="box"></span><span>Mindestbeitrag siehe oben</span></div>
<div class="opt"><span class="box"></span><span>ich zahle einen höheren Beitrag von <span class="fill">&nbsp;</span> EUR.</span></div>
<p style="margin-top:12px">Die Zahlung des Mitgliedsbeitrags erfolgt jährlich 01.04 per</p>
<div class="opt"><span class="box"></span><span>Lastschrift, die Einzugsermächtigung ist beigefügt</span></div>
<div class="opt"><span class="box"></span><span>Überweisung</span></div>
<p class="sec">Aufnahme</p>
<p>Die Aufnahme in den Verein erfolgt auf Beschluss des Vorstandes.</p>
<p class="sec">Regularien des Vereins</p>
<p class="ack">Ich erkenne mit meiner Unterschrift die Satzung des Vereins sowie die Festsetzungen der Beiträge in der jeweils gültigen Fassung an. Mit meiner Unterschrift bestätige ich zudem, die Satzung des Vereins in ihrer aktuell gültigen Fassung erhalten zu haben.</p>
<p class="sec">Einwilligung in den Versand von Rundschreiben</p>
<p class="ack">Ich bin damit einverstanden, dass ich Rundschreiben des Vereins erhalte. Diese Einwilligung kann von Ihnen jederzeit ohne Angaben von Gründen widerrufen werden. Die Rechtmäßigkeit der Verarbeitung vor Erhalt des Widerrufs bleibt hiervon unberührt.</p>
<p class="sec">Datenschutzhinweise</p>
<p class="ack">Der Schutz personenbezogener Daten ist uns ein wichtiges Anliegen. Deshalb achten wir auf die Einhaltung der datenschutzrechtlichen Vorgaben, welche sich insbesondere aus der Europäischen Datenschutz-Grundverordnung (DS-GVO) und aus dem Bundesdatenschutzgesetz (BDSG) ergeben. In der beigefügten Anlage informieren wir Sie über die Einzelheiten der von uns zur Erfüllung der Vereinsmitgliedschaft durchgeführten Verarbeitung personenbezogener Daten und Ihrer jeweiligen Rechte als betroffene Person.</p>
<div class="sign">
<div class="line"></div>
<div class="cap">Ort, Datum, Unterschrift (bei Minderjährigen der gesetzliche Vertreter/Erziehungsberechtigte)</div>
</div>
<!-- SEPA-Mandat auf neuer Seite -->
<div class="pagebreak"></div>
<header class="doc-head">
<img src="../public/logo/bildmarke.svg" alt="" />
<div>
<p class="doc-kicker">Förderverein Kitafreunde Regenbogen e.V.</p>
<h1 class="doc-title" style="font-size:18pt">SEPA-Lastschriftmandat</h1>
</div>
</header>
<div class="rule"></div>
<p>Hiermit ermächtige ich den Verein „Kitafreunde Regenbogen e.V." widerruflich, meinen Mitgliedsbeitrag und die sonstigen Beiträge und Gebühren, die gemäß Vereinssatzung oder Beitragsordnung zu leisten sind, bei Fälligkeit von meinem Konto durch Lastschrift einzuziehen. Zugleich weise ich mein Kreditinstitut an, die vom Verein „Kitafreunde Regenbogen e.V." auf mein Konto gezogenen Lastschriften einzulösen.</p>
<p>Gläubiger-ID und Mandatsreferenz werden mir gesondert mitgeteilt.</p>
<p><b>Hinweis:</b> Ich kann innerhalb von acht Wochen, beginnend mit dem Belastungsdatum, die Erstattung des belasteten Betrages verlangen. Es gelten dabei die mit meinem Kreditinstitut vereinbarten Bedingungen.</p>
<div class="acct" style="margin-top:18px">
<div class="field"><span>Name des Kontoinhabers</span></div>
<div class="field" style="margin-top:9px"><span>Straße, Hausnummer</span></div>
<div class="field" style="margin-top:9px"><span>PLZ, Ort</span></div>
<div class="field" style="margin-top:9px"><span>IBAN</span></div>
<div class="field" style="margin-top:9px"><span>BIC</span></div>
<div class="field" style="margin-top:9px"><span>Name des Kreditinstituts</span></div>
</div>
<p style="margin-top:16px" class="ack">Die Daten werden zur Vereinsverwaltung auf elektronischen Datenträgern während der Mitgliedschaft gespeichert.</p>
<div class="sign">
<div class="line"></div>
<div class="cap">Ort, Datum, Unterschrift</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,78 @@
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8" />
<title>Beitragsordnung Kitafreunde Regenbogen e.V.</title>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600..800&family=Hanken+Grotesk:wght@400..700&display=swap" rel="stylesheet" />
<style>
@page { size: A4; margin: 16mm 18mm 18mm; }
* { box-sizing: border-box; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
html, body { margin: 0; }
body { font-family: "Hanken Grotesk", system-ui, sans-serif; color: #1a1a1a; font-size: 10.5pt; line-height: 1.6; }
.doc-head { display: flex; align-items: center; gap: 14px; }
.doc-head img { height: 46px; width: auto; }
.doc-kicker { font-size: 9pt; color: #555; margin: 0; }
.doc-title { font-family: "Fraunces", Georgia, serif; font-size: 22pt; font-weight: 800; color: #2A2433; margin: 0; line-height: 1; }
.doc-meta { font-size: 9pt; color: #555; margin: 2px 0 0; }
.rule { height: 6px; border-radius: 99px; margin: 10px 0 22px; background: linear-gradient(90deg,#E8192C,#F5820D,#F9C80E,#00A651,#00AEEF,#3B4FA8,#6B3FA0); }
h2 { font-family: "Fraunces", Georgia, serif; color: #4D2C78; font-size: 12.5pt; font-weight: 700; margin: 1.5em 0 .5em; padding-top: .7em; border-top: 1px solid #ddd; break-after: avoid; }
h2:first-of-type { border-top: 0; padding-top: 0; margin-top: 0; }
p { margin: .6em 0; }
ol.lvl1 { list-style: none; counter-reset: l1; margin: .5em 0; padding: 0; }
ol.lvl1 > li { counter-increment: l1; position: relative; padding-left: 2.1em; margin: .45em 0; break-inside: avoid; }
ol.lvl1 > li::before { content: counter(l1) "."; position: absolute; left: 0; top: 0; font-weight: 700; color: #4D2C78; font-variant-numeric: tabular-nums; }
ol.lvl2 { list-style: none; counter-reset: l2; margin: .4em 0; padding: 0; }
ol.lvl2 > li { counter-increment: l2; position: relative; padding-left: 2.1em; margin: .35em 0; break-inside: avoid; }
ol.lvl2 > li::before { content: counter(l2, lower-alpha) ")"; position: absolute; left: 0; top: 0; font-weight: 600; color: #B45309; }
.foot { margin-top: 1.8em; padding-top: .7em; border-top: 1px solid #ddd; font-size: 8pt; color: #777; text-align: center; }
</style>
</head>
<body>
<header class="doc-head">
<img src="../public/logo/bildmarke.svg" alt="" />
<div>
<p class="doc-kicker">Förderverein Kitafreunde Regenbogen e.V.</p>
<h1 class="doc-title">Beitragsordnung</h1>
<p class="doc-meta">Beitrags- und Gebührenordnung · beschlossen 06.04.2019</p>
</div>
</header>
<div class="rule"></div>
<h2>§ 1 Grundsatz</h2>
<p>Diese Beitragsordnung ist nicht Bestandteil der Satzung. Sie regelt die Beitragsverpflichtung der Mitglieder sowie Höhe und Umfang zu erhebender Gebühren. Sie kann nur von der Mitgliederversammlung des Vereins geändert werden.</p>
<p>Mögliche Gebühren kann hingegen der Vorstand entsprechend festgelegen. Eine Gebührentabelle wird bei Bedarf im Aushang des Vereins in der Kita Regenbogen veröffentlich.</p>
<h2>§ 2 Beschlüsse</h2>
<p>Die Mitgliederversammlung beschließt die Höhe der Beiträge. Der festgesetzte Beitrag wird jeweils zum 01.04. eines jeden Jahres erhoben und ist mit diesem Zeitpunkt fällig.</p>
<h2>§ 3 Beiträge</h2>
<ol class="lvl1">
<li>Die Aufnahmegebühr beträgt 5,00 EUR und ist mit der nächsten Beitragsabrechnung fällig.</li>
<li>Bei einem Vereinsbeitritt nach dem 01.04. eines Jahres werden Aufnahmegebühr und Mitgliedbeitrag sofort fällig.</li>
<li>Der Beitrag pro Kalenderjahr beträgt mindestens:
<ol class="lvl2">
<li>Passive Mitgliedschaft, Einzelperson ohne Stimmrecht: 6,00 EUR (Fördermitglied)</li>
<li>Passive Mitgliedschaft, juristische Person: 240,00 EUR (Fördermitglied)</li>
<li>Passive Mitgliedschaft, Kinder bis zum vollendeten 16. Lebensjahr: kostenlos</li>
<li>Aktive Mitgliedschaft, ermäßigt (Soziale Kriterien, Mitarbeiter der Kita): 6,00 EUR</li>
<li>Aktive Mitgliedschaft, normal: 12,00 EUR</li>
</ol>
</li>
<li>Der Mitgliedsbeitrag wird durch Einzugsermächtigung zum 01.04. eines jeden Jahres vom Girokonto abgebucht.</li>
<li>Mitglieder, die nicht am SEPA-Lastschriftverfahren teilnehmen, entrichten ihre Beiträge</li>
<li>Anfallende Rücklastschriftgebühren zahlt das Mitglied.</li>
<li>Bei Mahnungen werden Mahngebühren in Höhe von 3,00 EUR pro Mahnung gegenüber dem Mitglied erhoben.</li>
<li>Bei Überweisungen bitte als Verwendungszweck den Namen und die Mitgliedsnummer mit angeben.</li>
</ol>
<h2>§ 4 Spenden und Spendenbescheinigungen</h2>
<p>Zur Erfüllung der satzungsgemäßen Vereinsziele sind Spenden erwünscht. Die Spenden können Ihrem Zweck entsprechend ausgewiesen sein. Spendenbescheinigungen werden am Jahresende gemäß den gesetzlichen Bestimmungen ausgestellt.</p>
<h2>§ 5 Gültigkeit</h2>
<p>Die Beitragsordnung wurde am 06.04.2019 auf der Gründungsversammlung beschlossen und tritt mit Eintragung des Vereins ins Vereinsregister in Kraft.</p>
<p class="foot">Beitrags- und Gebührenordnung „Kitafreunde Regenbogen e.V." · beschlossen 06.04.2019</p>
</body>
</html>

37
docs-src/gen.sh Executable file
View File

@@ -0,0 +1,37 @@
#!/usr/bin/env bash
#
# Regeneriert die gebrandeten PDFs in public/dokumente/.
#
# Voraussetzungen:
# - Google Chrome installiert (/Applications/Google Chrome.app)
# - Für satzung.pdf: Dev-Server läuft -> npm run dev (http://localhost:4321)
#
# Quelle der PDFs:
# - satzung.pdf <- die Astro-Seite /satzung (Print-CSS == PDF)
# - beitragsordnung.pdf <- docs-src/beitragsordnung.html
# - aufnahmeantrag.pdf <- docs-src/aufnahmeantrag.html
#
# Aufruf: bash docs-src/gen.sh
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
CHROME="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
OUT="$ROOT/public/dokumente"
mkdir -p "$OUT"
gen() { # $1 = url/file, $2 = output filename
local prof; prof="$(mktemp -d)"
# perl alarm = harte 45s-Schranke (macOS hat kein `timeout`; Chrome hängt gelegentlich)
perl -e 'alarm 45; exec @ARGV' \
"$CHROME" --headless=new --disable-gpu --no-first-run --no-default-browser-check \
--user-data-dir="$prof" --hide-scrollbars --no-pdf-header-footer \
--print-to-pdf="$OUT/$2" "$1" >/dev/null 2>&1 || true
rm -rf "$prof"
echo " -> $2 ($(du -h "$OUT/$2" | cut -f1))"
}
echo "Generiere PDFs ..."
gen "http://localhost:4321/satzung" "satzung.pdf"
gen "file://$ROOT/docs-src/beitragsordnung.html" "beitragsordnung.pdf"
gen "file://$ROOT/docs-src/aufnahmeantrag.html" "aufnahmeantrag.pdf"
echo "Fertig."

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 204 KiB

View File

@@ -14,8 +14,8 @@ const year = new Date().getFullYear();
<div class="md:col-span-1"> <div class="md:col-span-1">
<img src="/logo/logo.png" alt="Kitafreunde Regenbogen" class="h-24 w-auto mb-4" width="744" height="745" /> <img src="/logo/logo.png" alt="Kitafreunde Regenbogen" class="h-24 w-auto mb-4" width="744" height="745" />
<p class="text-sm text-[var(--color-text-muted)] leading-relaxed"> <p class="text-sm text-[var(--color-text-muted)] leading-relaxed">
Förderverein der Integrationskita Regenbogen<br> Förderverein der Kita Regenbogen<br>
Keilerstraße 23 · 13503 Berlin-Tegel Keilerstraße 23 · 13503 Berlin-Heiligensee
</p> </p>
<p class="eyebrow mt-5 !text-[var(--color-rb-violet)]">Mit Herz für alle Kinder</p> <p class="eyebrow mt-5 !text-[var(--color-rb-violet)]">Mit Herz für alle Kinder</p>
</div> </div>
@@ -28,6 +28,7 @@ const year = new Date().getFullYear();
<li><a href="/projekte" class="hover:text-[var(--color-primary)]">Projekte</a></li> <li><a href="/projekte" class="hover:text-[var(--color-primary)]">Projekte</a></li>
<li><a href="/aktuelles" class="hover:text-[var(--color-primary)]">Aktuelles</a></li> <li><a href="/aktuelles" class="hover:text-[var(--color-primary)]">Aktuelles</a></li>
<li><a href="/presse" class="hover:text-[var(--color-primary)]">Presse</a></li> <li><a href="/presse" class="hover:text-[var(--color-primary)]">Presse</a></li>
<li><a href="/satzung" class="hover:text-[var(--color-primary)]">Satzung</a></li>
</ul> </ul>
</div> </div>

View File

@@ -15,13 +15,22 @@ const isActive = (href: string) => pathname === href || pathname.startsWith(href
<div class="bg-[var(--color-paper)]/85 backdrop-blur-md border-b border-[var(--color-border)]"> <div class="bg-[var(--color-paper)]/85 backdrop-blur-md border-b border-[var(--color-border)]">
<div class="max-w-6xl mx-auto px-4 flex items-center justify-between gap-4 py-3"> <div class="max-w-6xl mx-auto px-4 flex items-center justify-between gap-4 py-3">
<!-- Logo: jetzt mit Präsenz --> <!-- Logo: Bildmarke + Apex-Brush-Wortmarke (responsiv) -->
<a href="/" class="shrink-0 transition-transform duration-200 hover:-rotate-2 hover:scale-[1.03]" aria-label="Kitafreunde Regenbogen — Startseite"> <a href="/" class="group shrink-0 flex items-center gap-2.5" aria-label="Kitafreunde Regenbogen — Startseite">
<img src="/logo/logo.png" alt="Kitafreunde Regenbogen" class="h-14 sm:h-16 w-auto" width="744" height="745" /> <img
src="/logo/bildmarke.svg" alt=""
class="h-12 lg:h-14 w-auto transition-transform duration-200 group-hover:-rotate-3 group-hover:scale-105"
width="159" height="177"
/>
<!-- Wortmarke: mobil aus · smxl zweizeilig · xl+ einzeilig -->
<span class="hidden sm:flex font-brand text-[var(--color-primary)] leading-[0.9] flex-col xl:flex-row xl:items-baseline xl:gap-2 text-[26px] xl:text-[30px]">
<span>Kitafreunde</span>
<span class="rainbow-text">Regenbogen</span>
</span>
</a> </a>
<!-- Desktop Nav --> <!-- Desktop Nav (ab lg, damit die zweizeilige Wortmarke Platz hat) -->
<nav class="hidden md:flex items-center gap-7 text-[15px] font-semibold"> <nav class="hidden lg:flex items-center gap-6 text-[15px] font-semibold">
{nav.map(({ href, label }) => ( {nav.map(({ href, label }) => (
<a <a
href={href} href={href}
@@ -38,14 +47,14 @@ const isActive = (href: string) => pathname === href || pathname.startsWith(href
))} ))}
</nav> </nav>
<a href="/mitglied-werden" class="btn-primary text-sm hidden md:inline-flex"> <a href="/mitglied-werden" class="btn-primary text-sm hidden lg:inline-flex">
<span aria-hidden="true">♥</span> Mitglied werden <span aria-hidden="true">♥</span> Mitglied werden
</a> </a>
<!-- Mobile Button --> <!-- Mobile/Tablet Button -->
<button <button
id="mobile-menu-btn" id="mobile-menu-btn"
class="md:hidden p-2 rounded-xl text-[var(--color-primary)] hover:bg-[var(--color-surface-alt)]" class="lg:hidden p-2 rounded-xl text-[var(--color-primary)] hover:bg-[var(--color-surface-alt)]"
aria-label="Menü öffnen" aria-expanded="false" aria-label="Menü öffnen" aria-expanded="false"
> >
<svg xmlns="http://www.w3.org/2000/svg" class="w-7 h-7" fill="none" viewBox="0 0 24 24" stroke="currentColor"> <svg xmlns="http://www.w3.org/2000/svg" class="w-7 h-7" fill="none" viewBox="0 0 24 24" stroke="currentColor">
@@ -54,8 +63,8 @@ const isActive = (href: string) => pathname === href || pathname.startsWith(href
</button> </button>
</div> </div>
<!-- Mobile Nav --> <!-- Mobile/Tablet Nav -->
<div id="mobile-menu" class="hidden md:hidden border-t border-[var(--color-border)] bg-[var(--color-paper)]"> <div id="mobile-menu" class="hidden lg:hidden border-t border-[var(--color-border)] bg-[var(--color-paper)]">
<div class="px-4 py-5 flex flex-col gap-1 text-base font-semibold"> <div class="px-4 py-5 flex flex-col gap-1 text-base font-semibold">
{nav.map(({ href, label }) => ( {nav.map(({ href, label }) => (
<a href={href} <a href={href}

View File

@@ -11,7 +11,7 @@ interface Props {
const { const {
title, title,
description = "Der Förderverein der Integrationskita Regenbogen in Berlin-Tegel. Für das Besondere. Für alle Kinder.", description = "Der Förderverein der Kita Regenbogen in Berlin-Heiligensee. Für das Besondere. Für alle Kinder.",
ogImage = "/og-default.jpg", ogImage = "/og-default.jpg",
} = Astro.props; } = Astro.props;

View File

@@ -23,7 +23,7 @@ const settings = await getSettings();
</p> </p>
<div class="mt-3"> <div class="mt-3">
<p class="font-semibold text-[var(--color-text)]">Kitafreunde Regenbogen e.V.</p> <p class="font-semibold text-[var(--color-text)]">Kitafreunde Regenbogen e.V.</p>
<p>c/o Integrationskindertagesstätte Regenbogen</p> <p>c/o Kindertagesstätte Regenbogen</p>
<p>Keilerstraße 23 · 13503 Berlin</p> <p>Keilerstraße 23 · 13503 Berlin</p>
{settings?.contact_email && ( {settings?.contact_email && (
<p class="mt-1">E-Mail: <a href={`mailto:${settings.contact_email}`} class="text-[var(--color-primary)] hover:underline">{settings.contact_email}</a></p> <p class="mt-1">E-Mail: <a href={`mailto:${settings.contact_email}`} class="text-[var(--color-primary)] hover:underline">{settings.contact_email}</a></p>
@@ -91,7 +91,7 @@ const settings = await getSettings();
</div> </div>
<div class="card"> <div class="card">
<h2 class="font-bold text-[var(--color-text)] mb-3">5. Kontaktaufnahme per E-Mail</h2> <h2 class="font-bold text-[var(--color-text)] mb-3">5. Kontaktaufnahme per E-Mail und Formular</h2>
<p> <p>
Wenn du uns per E-Mail kontaktierst, werden deine Angaben (E-Mail-Adresse, Wenn du uns per E-Mail kontaktierst, werden deine Angaben (E-Mail-Adresse,
ggf. Name und Nachrichteninhalt) zum Zweck der Bearbeitung deiner Anfrage ggf. Name und Nachrichteninhalt) zum Zweck der Bearbeitung deiner Anfrage
@@ -104,8 +104,11 @@ const settings = await getSettings();
Aufbewahrungspflichten entgegenstehen. Aufbewahrungspflichten entgegenstehen.
</p> </p>
<p class="mt-3"> <p class="mt-3">
Das Kontaktformular auf dieser Website funktioniert als mailto-Link — es werden Das Kontaktformular übermittelt deine Angaben (Name, E-Mail, Betreff, Nachricht) an
keine Formulardaten auf unseren Servern gespeichert oder verarbeitet. unser selbst gehostetes Redaktionssystem (Directus, Server in Deutschland) und
benachrichtigt den Vorstand per E-Mail. Die Daten werden ausschließlich zur Bearbeitung
deiner Anfrage verwendet, nicht an Dritte weitergegeben und nach Erledigung gelöscht,
soweit keine gesetzlichen Aufbewahrungspflichten bestehen.
</p> </p>
</div> </div>

View File

@@ -18,7 +18,7 @@ const settings = await getSettings();
<div class="card"> <div class="card">
<h2 class="font-bold text-[var(--color-text)] mb-3">Angaben gemäß § 5 TMG</h2> <h2 class="font-bold text-[var(--color-text)] mb-3">Angaben gemäß § 5 TMG</h2>
<p class="font-semibold text-[var(--color-text)]">Kitafreunde Regenbogen e.V.</p> <p class="font-semibold text-[var(--color-text)]">Kitafreunde Regenbogen e.V.</p>
<p>c/o Integrationskindertagesstätte Regenbogen</p> <p>c/o Kindertagesstätte Regenbogen</p>
<p>Keilerstraße 23</p> <p>Keilerstraße 23</p>
<p>13503 Berlin</p> <p>13503 Berlin</p>
</div> </div>

View File

@@ -32,7 +32,7 @@ const projectsToShow = featuredProjects.length > 0 ? null : fallbackProjects;
<Layout <Layout
title="Mehr als Kita. Mehr als genug." title="Mehr als Kita. Mehr als genug."
description="Der Kitafreunde Regenbogen e.V. ist der Förderverein der Integrationskita Regenbogen in Berlin-Tegel. Für das Besondere. Für alle Kinder." description="Der Kitafreunde Regenbogen e.V. ist der Förderverein der Kita Regenbogen in Berlin-Heiligensee. Für das Besondere. Für alle Kinder."
> >
<!-- ===================== HERO ===================== --> <!-- ===================== HERO ===================== -->
<section class="relative overflow-hidden"> <section class="relative overflow-hidden">
@@ -44,7 +44,7 @@ const projectsToShow = featuredProjects.length > 0 ? null : fallbackProjects;
<div class="section grid lg:grid-cols-2 gap-12 items-center pt-14 pb-24 md:pt-20"> <div class="section grid lg:grid-cols-2 gap-12 items-center pt-14 pb-24 md:pt-20">
<!-- Text --> <!-- Text -->
<div class="text-center lg:text-left"> <div class="text-center lg:text-left">
<p class="eyebrow reveal d1">Berlin-Tegel · seit 2019</p> <p class="eyebrow reveal d1">Berlin-Heiligensee · Förderverein seit 2019</p>
<h1 class="reveal d2 mt-3 text-[clamp(2.6rem,7vw,4.7rem)] text-[var(--color-text)] font-black leading-[0.98]"> <h1 class="reveal d2 mt-3 text-[clamp(2.6rem,7vw,4.7rem)] text-[var(--color-text)] font-black leading-[0.98]">
Mehr als Kita.<br> Mehr als Kita.<br>
<span class="squiggle rainbow-text">Mehr als genug.</span> <span class="squiggle rainbow-text">Mehr als genug.</span>

View File

@@ -4,6 +4,10 @@ import PageHeader from "../components/PageHeader.astro";
import { getSettings } from "../lib/directus"; import { getSettings } from "../lib/directus";
const settings = await getSettings(); const settings = await getSettings();
// Öffentliche CMS-URL für den Browser-Fetch — NICHT import.meta.env.DIRECTUS_URL,
// das ist beim Build (im Rebuild-Container) die interne Docker-Adresse.
const cmsPublicUrl = "https://cms.kitafreunde-regenbogen.de";
const contactEmail = settings?.contact_email ?? "info@kitafreunde-regenbogen.de";
--- ---
<Layout title="Kontakt" description="Kontakt zum Kitafreunde Regenbogen e.V. — schreib uns, werde Mitglied oder bring eine Idee ein."> <Layout title="Kontakt" description="Kontakt zum Kitafreunde Regenbogen e.V. — schreib uns, werde Mitglied oder bring eine Idee ein.">
@@ -19,7 +23,7 @@ const settings = await getSettings();
<div class="card"> <div class="card">
<h2 class="font-bold mb-3">Kitafreunde Regenbogen e.V.</h2> <h2 class="font-bold mb-3">Kitafreunde Regenbogen e.V.</h2>
<p class="text-sm text-[var(--color-text-muted)] leading-relaxed"> <p class="text-sm text-[var(--color-text-muted)] leading-relaxed">
c/o Integrationskita Regenbogen<br> c/o Kita Regenbogen<br>
Keilerstraße 23<br> Keilerstraße 23<br>
13503 Berlin 13503 Berlin
</p> </p>
@@ -54,39 +58,99 @@ const settings = await getSettings();
)} )}
</div> </div>
<!-- Formular (statisches HTML, ohne Backend) --> <!-- Formular: sendet an Directus → Flow benachrichtigt den Verein per Mail -->
<div class="card"> <div class="card">
<h2 class="font-bold mb-4">Direkte Nachricht</h2> <h2 class="font-bold mb-4">Direkte Nachricht</h2>
<p class="text-sm text-[var(--color-text-muted)] mb-6">
Dieses Formular öffnet deinen E-Mail-Client.
</p>
<form <form
action={`mailto:${settings?.contact_email ?? "info@kitafreunde-regenbogen.de"}`} id="contact-form"
method="get"
enctype="text/plain"
class="space-y-4" class="space-y-4"
data-endpoint={`${cmsPublicUrl}/items/contact_messages`}
data-fallback={contactEmail}
> >
<div class="grid sm:grid-cols-2 gap-4">
<div>
<label for="cf-name" class="block text-sm font-medium mb-1">Name</label>
<input id="cf-name" name="name" type="text" required autocomplete="name"
class="w-full border border-[var(--color-border)] rounded-xl px-4 py-2.5 text-sm focus:outline-none focus:border-[var(--color-primary)]" />
</div>
<div>
<label for="cf-email" class="block text-sm font-medium mb-1">E-Mail</label>
<input id="cf-email" name="email" type="email" required autocomplete="email"
class="w-full border border-[var(--color-border)] rounded-xl px-4 py-2.5 text-sm focus:outline-none focus:border-[var(--color-primary)]" />
</div>
</div>
<div> <div>
<label for="subject" class="block text-sm font-medium mb-1">Betreff</label> <label for="cf-subject" class="block text-sm font-medium mb-1">Betreff</label>
<select id="subject" name="subject" class="w-full border border-[var(--color-border)] rounded-xl px-4 py-2.5 text-sm focus:outline-none focus:border-[var(--color-primary)]"> <select id="cf-subject" name="subject"
class="w-full border border-[var(--color-border)] rounded-xl px-4 py-2.5 text-sm focus:outline-none focus:border-[var(--color-primary)]">
<option value="Mitgliedschaft">Mitgliedschaft</option> <option value="Mitgliedschaft">Mitgliedschaft</option>
<option value="Projektidee">Projektidee einbringen</option> <option value="Projektidee">Projektidee einbringen</option>
<option value="Spende/Kooperation">Spende / Kooperation</option> <option value="Spende / Kooperation">Spende / Kooperation</option>
<option value="Presseanfrage">Presseanfrage</option> <option value="Presseanfrage">Presseanfrage</option>
<option value="Allgemeine Anfrage">Allgemeine Anfrage</option> <option value="Allgemeine Anfrage">Allgemeine Anfrage</option>
</select> </select>
</div> </div>
<div> <div>
<label for="body" class="block text-sm font-medium mb-1">Nachricht</label> <label for="cf-message" class="block text-sm font-medium mb-1">Nachricht</label>
<textarea id="body" name="body" rows="5" <textarea id="cf-message" name="message" rows="5" required
class="w-full border border-[var(--color-border)] rounded-xl px-4 py-2.5 text-sm focus:outline-none focus:border-[var(--color-primary)] resize-none" class="w-full border border-[var(--color-border)] rounded-xl px-4 py-2.5 text-sm focus:outline-none focus:border-[var(--color-primary)] resize-none"
placeholder="Deine Nachricht..."></textarea> placeholder="Deine Nachricht..."></textarea>
</div> </div>
<button type="submit" class="btn-primary w-full justify-center"> <!-- Honeypot gegen Spam: für Menschen unsichtbar, bitte leer lassen -->
E-Mail öffnen → <div aria-hidden="true" style="position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;">
<label>Website<input type="text" name="website" tabindex="-1" autocomplete="off" /></label>
</div>
<button type="submit" id="cf-submit" class="btn-primary w-full justify-center">
<span aria-hidden="true">✉</span> Nachricht senden
</button> </button>
<p id="cf-status" class="text-sm hidden" role="status" aria-live="polite"></p>
</form> </form>
</div> </div>
</div> </div>
</section> </section>
<script>
const form = document.getElementById("contact-form");
if (form) {
const statusEl = document.getElementById("cf-status");
const btn = document.getElementById("cf-submit");
const setStatus = (msg, color) => {
statusEl.innerHTML = msg;
statusEl.style.color = color;
statusEl.classList.remove("hidden");
};
form.addEventListener("submit", async (e) => {
e.preventDefault();
const data = new FormData(form);
if (data.get("website")) return; // Honeypot: stiller Bot-Abbruch
const endpoint = form.dataset.endpoint;
const fallback = form.dataset.fallback;
const payload = {
name: (data.get("name") || "").toString().trim(),
email: (data.get("email") || "").toString().trim(),
subject: (data.get("subject") || "").toString(),
message: (data.get("message") || "").toString().trim(),
};
btn.disabled = true;
setStatus("Senden…", "var(--color-text-muted)");
try {
const res = await fetch(endpoint, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(payload),
});
if (!res.ok) throw new Error("HTTP " + res.status);
form.reset();
setStatus("Danke! Deine Nachricht ist angekommen — wir melden uns bald.", "var(--color-rb-green)");
} catch (err) {
setStatus(
`Senden hat gerade nicht geklappt. Schreib uns gern direkt: <a class="underline font-medium" href="mailto:${fallback}">${fallback}</a>`,
"var(--color-rb-red)",
);
} finally {
btn.disabled = false;
}
});
}
</script>
</Layout> </Layout>

View File

@@ -9,7 +9,7 @@ const settings = await getSettings();
<Layout <Layout
title="Mitglied werden" title="Mitglied werden"
description="Mitglied beim Kitafreunde Regenbogen e.V. werden. Steuerlich absetzbar. Keine Verpflichtungen. Direkte Wirkung für Kinder in Berlin-Tegel." description="Mitglied beim Kitafreunde Regenbogen e.V. werden. Steuerlich absetzbar. Keine Verpflichtungen. Direkte Wirkung für Kinder in Berlin-Heiligensee."
> >
<PageHeader eyebrow="Mitglied werden"> <PageHeader eyebrow="Mitglied werden">
Dabei sein.<br><span class="squiggle rainbow-text">So einfach wie möglich.</span> Dabei sein.<br><span class="squiggle rainbow-text">So einfach wie möglich.</span>
@@ -92,10 +92,12 @@ const settings = await getSettings();
</div> </div>
))} ))}
</div> </div>
<div class="mt-10 text-center"> <div class="mt-10 flex flex-col sm:flex-row flex-wrap gap-3 justify-center">
<a href="/Beitrittserklarung-Kitafreunde-Regenbogen.pdf" class="btn-primary" download> <a href="/dokumente/aufnahmeantrag.pdf" class="btn-primary" download>
Beitrittserklärung als PDF <span aria-hidden="true">⬇</span> Aufnahmeantrag als PDF
</a> </a>
<a href="/dokumente/beitragsordnung.pdf" class="btn-secondary" download>Beitragsordnung (PDF)</a>
<a href="/satzung" class="btn-secondary">Satzung lesen</a>
</div> </div>
</section> </section>

View File

@@ -6,7 +6,7 @@ import { getSettings } from "../lib/directus";
const settings = await getSettings(); const settings = await getSettings();
--- ---
<Layout title="Presse" description="Pressekontakt und Informationen zum Kitafreunde Regenbogen e.V., Förderverein der Integrationskita Regenbogen in Berlin-Tegel."> <Layout title="Presse" description="Pressekontakt und Informationen zum Kitafreunde Regenbogen e.V., Förderverein der Kita Regenbogen in Berlin-Heiligensee.">
<PageHeader eyebrow="Presse"> <PageHeader eyebrow="Presse">
Kontakt für Presse<br>und <span class="squiggle rainbow-text">Medien.</span> Kontakt für Presse<br>und <span class="squiggle rainbow-text">Medien.</span>
<Fragment slot="lead">Pressekontakt, Boilerplate und Pressekit zum Verein.</Fragment> <Fragment slot="lead">Pressekontakt, Boilerplate und Pressekit zum Verein.</Fragment>
@@ -48,15 +48,15 @@ const settings = await getSettings();
<div class="card bg-[var(--color-surface-alt)] prose prose-sm max-w-none text-[var(--color-text-muted)]"> <div class="card bg-[var(--color-surface-alt)] prose prose-sm max-w-none text-[var(--color-text-muted)]">
<p> <p>
Der Kitafreunde Regenbogen e.V. ist der gemeinnützige Förderverein der Der Kitafreunde Regenbogen e.V. ist der gemeinnützige Förderverein der
Integrationskindertagesstätte „Regenbogen" in Berlin-Tegel (Keilerstraße 23, Kindertagesstätte „Regenbogen" in Berlin-Heiligensee (Keilerstraße 23,
13503 Berlin). Der Verein ermöglicht Projekte, Erlebnisse und Teilhabe, die über 13503 Berlin). Der Verein ermöglicht Projekte, Erlebnisse und Teilhabe, die über
die staatlich finanzierte Grundversorgung hinausgehen. die staatlich finanzierte Grundversorgung hinausgehen.
</p> </p>
<p> <p>
Schwerpunkte sind kulturelle Bildung, Naturerfahrung und die finanzielle Unterstützung Schwerpunkte sind kulturelle Bildung, Naturerfahrung und die finanzielle Unterstützung
von Kindern aus einkommensschwachen Familien. Als Förderverein einer Integrationskita von Kindern aus einkommensschwachen Familien. Der Kitafreunde Regenbogen e.V. setzt
setzt sich der Kitafreunde Regenbogen e.V. dafür ein, dass ein Ort, an dem Kinder mit sich dafür ein, dass dieser Ort, an dem Kinder gemeinsam aufwachsen, mehr kann als
und ohne Behinderung gemeinsam aufwachsen, mehr kann als das Minimum. das Minimum.
</p> </p>
<p class="text-xs"> <p class="text-xs">
Vereinssitz: Berlin &middot; Gemeinnützig anerkannt Vereinssitz: Berlin &middot; Gemeinnützig anerkannt

View File

@@ -19,7 +19,7 @@ const statusColor: Record<string, string> = {
<Layout <Layout
title="Projekte" title="Projekte"
description="Aktuelle und vergangene Projekte des Kitafreunde Regenbogen e.V.: Theater, Natur, Musik, Ausflüge — für alle Kinder der Integrationskita Regenbogen Berlin." description="Aktuelle und vergangene Projekte des Kitafreunde Regenbogen e.V.: Theater, Natur, Musik, Ausflüge — für alle Kinder der Kita Regenbogen Berlin."
> >
<PageHeader eyebrow="Projekte"> <PageHeader eyebrow="Projekte">
Was wir schon gemacht haben.<br><span class="squiggle rainbow-text">Was als nächstes kommt.</span> Was wir schon gemacht haben.<br><span class="squiggle rainbow-text">Was als nächstes kommt.</span>

273
src/pages/satzung.astro Normal file
View File

@@ -0,0 +1,273 @@
---
import Layout from "../layouts/Layout.astro";
import PageHeader from "../components/PageHeader.astro";
---
<Layout
title="Satzung"
description="Die vollständige Satzung des Fördervereins Kitafreunde Regenbogen e.V. — Stand 22.01.2020. Online lesen oder als PDF herunterladen."
>
<!-- Bildschirm-Kopf -->
<div class="screen-only">
<PageHeader eyebrow="Vereinssatzung">
Unsere <span class="squiggle rainbow-text">Satzung.</span>
<Fragment slot="lead">
Die vollständige Satzung des Fördervereins „Kitafreunde Regenbogen e.V." — Stand 22.01.2020.
</Fragment>
</PageHeader>
<div class="section pt-2 max-w-3xl flex flex-wrap gap-3">
<a href="/dokumente/satzung.pdf" class="btn-primary text-sm" download>
<span aria-hidden="true">⬇</span> Satzung als PDF
</a>
<a href="/dokumente/beitragsordnung.pdf" class="btn-secondary text-sm" download>Beitragsordnung (PDF)</a>
</div>
</div>
<article class="section pt-6 max-w-3xl legal">
<!-- Druck-Kopf (nur im PDF/Print sichtbar) -->
<header class="doc-head print-only">
<img src="/logo/bildmarke.svg" alt="" class="doc-logo" />
<div>
<p class="doc-kicker">Förderverein Kitafreunde Regenbogen e.V.</p>
<h1 class="doc-title">Satzung</h1>
<p class="doc-meta">Stand 22.01.2020</p>
</div>
</header>
<div class="rainbow-bar doc-rule"></div>
<div class="legal-body">
<h2>§ 1 Name, Sitz, Geschäftsjahr</h2>
<ol class="lvl1">
<li>Der Verein führt den Namen „Kitafreunde Regenbogen" und soll ins Vereinsregister eingetragen werden. Nach der Eintragung führt er den Zusatz e.V.</li>
<li>Der Verein hat seinen Sitz in Berlin. Der Verein wurde am 06.04.2019 errichtet.</li>
<li>Das Geschäftsjahr ist das Kalenderjahr.</li>
</ol>
<h2>§ 2 Zweck und Aufgaben des Vereins</h2>
<ol class="lvl1">
<li>Der Verein verfolgt den gemeinnützigen Zweck der der Förderung der Erziehung, Bildung und Jugendhilfe sowie mildtätige Zwecke.</li>
<li>Der Zweck wird insbesondere erfüllt durch
<ol class="lvl2">
<li>Ideelle und materielle Unterstützung der Integrationskindertagesstätte "Regenbogen", Keilerstrasse 23, 13503 Berlin, kurz KITA Regenbogen (§ 58 Nr. 1 AO)</li>
<li>Beschaffung von Lehr-, Lern- und Anschauungsmaterial, Spielmitteln sowie Einrichtungs- und Ausstattungsgegenständen einschließlich Wartung und Pflege</li>
<li>Beschaffung von Sport- und Spielgeräten</li>
<li>Unterstützung der Kindertagesstätte bei der Gestaltung und Pflege ihrer Anlage</li>
<li>Unterstützung bei der Herausgabe einer Zeitung an der KITA Regenbogen</li>
<li>Initiativen im Freizeitbereich (z. B. Organisation und Durchführung von Veranstaltungen oder gemeinsamen Besuchen verschiedener Einrichtungen)</li>
<li>Zuschüsse zu Veranstaltungen der Kindertagesstätte, die dem Vereinszweck dienen</li>
<li>Ausrichtungen von Veranstaltungen für Kinder, Eltern und die in der Kita tätigen Kräfte in kultureller, organisatorischer und/oder materieller Weise</li>
<li>Förderung der Selbstdarstellung der KITA Regenbogen und des Vereins in der Öffentlichkeit</li>
<li>Finanzielle Unterstützung bedürftiger Kinder bei der Teilnahme an Gemeinschaftsveranstaltungen</li>
</ol>
</li>
<li>Der Verein ist politisch und konfessionell neutral</li>
</ol>
<h2>§ 3 Gemeinnützigkeit</h2>
<ol class="lvl1">
<li>Der Verein verfolgt ausschließlich und unmittelbar gemeinnützige und mildtätige Zwecke im Sinne des Abschnitts „Steuerbegünstigte Zwecke" der Abgabenordnung. Er ist selbstlos tätig und verfolgt nicht in erster Linie eigenwirtschaftliche Zwecke.</li>
<li>Mittel des Vereins dürfen nur für die satzungsgemäßen Zwecke verwendet werden. Die Mittel zum Erreichen dieser Zwecke werden durch Mitgliedsbeiträge, Spenden und sonstige Einnahmen aufgebracht. Es darf keine Person durch Ausgaben, die dem Zweck des Vereins fremd sind, oder durch unverhältnismäßig hohe Vergütungen begünstigt werden. Die Mitglieder des Vereins erhalten keine Zuwendungen aus Mitteln des Vereins.</li>
</ol>
<h2>§ 4 Mitgliedschaft</h2>
<ol class="lvl1">
<li>Mitglied kann jede natürliche oder juristische Person, Personenvereinigung werden, die bereit ist, Ziele und Satzungszwecke des Vereins nachhaltig zu fördern.</li>
<li>Der Verein unterscheidet zwei Formen der Mitgliedschaft:
<ol class="lvl2">
<li>Die aktive Mitgliedschaft</li>
<li>Die passive Mitgliedschaft (Fördermitgliedschaft)</li>
</ol>
<p class="zu"><strong>Zu a)</strong> Die aktive Mitgliedschaft ist für jenen Personenkreis geschaffen, der durch die Zahlung eines jährlichen Mitgliedsbeitrages als auch durch aktives Mitwirken an den Zielsetzungen des Vereins mitwirken möchte. Aus der Mitwirkung innerhalb der aktiven Mitgliedschaft ergibt sich die volle Stimmberechtigung bei allen Vereinsentscheidungen</p>
<p class="zu"><strong>Zu b)</strong> Die passive Mitgliedschaft ist für Personen geschaffen, die aus individuellen Gründen heraus nicht am Vereinsleben teilnehmen möchten, sich aber mit den Zielen des Vereins identifizieren. Passivmitglieder können jederzeit das Vereinsleben mitgestalten, haben bei Vereinsentscheidungen aber kein Stimmrecht. Passivmitglieder benötigen keine Aufnahmegebühr.</p>
</li>
<li>Die Besetzung von Vorstandsämtern durch Passivmitglieder ist nicht möglich. Passivmitglieder werden in der Mitgliederliste des Vereins aufgenommen. Weitere Ansprüche an die von der Hauptversammlung festgelegten Vereinsleistungen bestehen nicht.</li>
<li>Zu Ehrenmitgliedern können Personen ernannt werden, die sich in besonderer Weise um die Ziele des Vereins verdient gemacht haben. Ehrenmitglieder werden vom Vorstand vorgeschlagen und sind von der nächsten Mitgliederversammlung zu bestätigen. Sie sind von der Beitragszahlung befreit und haben Stimmrecht auf der Mitgliederversammlung.</li>
<li>Die Mitgliedschaft im Verein wird erworben durch einen schriftlichen Aufnahmeantrag gegenüber dem Vorstand und bedarf dessen Zustimmung. Eine Ablehnung des Antrags braucht nicht begründet zu werden.</li>
<li>Die Mitgliedschaft endet durch
<ol class="lvl2">
<li>Austritt, der vom Mitglied jederzeit schriftlich gegenüber dem Vorstand erklärt werden kann;</li>
<li>Tod des Mitglieds oder Auflösung der juristischen Person;</li>
<li>Ausschluss aus wichtigem Grund. Darüber entscheidet der Vorstand durch Beschluss. Ein wichtiger Grund liegt insbesondere dann vor, wenn ein Mitglied einen schweren Verstoß gegen den Zweck des Vereins begeht oder dessen Ansehen schädigt. Vor einer Entscheidung ist der/dem Betroffenen Gelegenheit zu geben, sich zu äußern. Der Beschluss des Vorstandes ist mit einer Begründung versehen dem Mitglied schriftlich mitzuteilen. Gegen diese Entscheidung kann die/der Ausgeschlossene beim Vorstand binnen eines Monats nach Empfang der Mitteilung schriftlich Widerspruch einlegen. Die nächste Mitgliederversammlung entscheidet dann über den Ausschluss.</li>
<li>Wenn ein Mitglied mit der Zahlung von mehr als einem Jahresbeitrag im Rückstand ist, kann es aus der Mitgliederliste gestrichen werden.</li>
</ol>
</li>
<li>Im Falle des Ausscheidens besteht kein Anspruch auf anteilige Erstattung des entrichteten Jahresbeitrages.</li>
</ol>
<h2>§ 5 Mitgliedsbeiträge</h2>
<ol class="lvl1">
<li>Der Verein erhebt von seinen Mitgliedern einen jährlichen Mitgliedsbeitrag sowie eine Aufnahmegebühr für aktive Mitglieder. Mindestbeiträge und Aufnahmegebühr werden von der Hauptversammlung festgelegt. Über diesen Mindestbeitrag hinaus kann jedes Mitglied seinen Beitrag nach eigenem Ermessen festlegen. Als Leitlinien sollen gelten:
<ol class="lvl2">
<li>Die Mitgliedsbeiträge sollten den individuellen Möglichkeiten der Mitglieder Rechnung tragen und insofern frei wählbar bleiben, in der Höhe aber nicht unterhalb der Aufnahmegebühr liegen.</li>
<li>Die Aufnahmegebühr ist so gering wie möglich zu halten, muss aber gewährleisten, dass die der Mitgliedschaft entspringenden Bearbeitungskosten gedeckt sind, um nicht auf die eigentlichen Mitgliedsbeiträge zurückgreifen zu müssen; sie beträgt EUR 5,00.</li>
</ol>
</li>
<li>Die Mitgliedsbeiträge werden nach sozialen Kriterien gestaffelt.</li>
<li>Zahlungs- und Erfüllungsort für alle Leistungen der Mitglieder an den Verein ist Berlin.</li>
<li>Ehrenmitglieder sind von der Beitragszahlung befreit.</li>
<li>Bei Beendigung der Mitgliedschaft, gleich aus welchem Grund, erlöschen alle Ansprüche aus dem Mitgliedsverhältnis. Eine Rückgewähr von Beiträgen, Spenden oder sonstigen Unterstützungsleistungen ist grundsätzlich ausgeschlossen. Der Anspruch des Vereins auf rückständige Beitragsforderungen bleibt hiervon unberührt.</li>
</ol>
<h2>§ 6 Organe des Vereins</h2>
<p>Organe des Vereins sind</p>
<ol class="lvl1">
<li>die Mitgliederversammlung</li>
<li>der Vorstand</li>
</ol>
<h2>§ 7 Mitgliederversammlung</h2>
<ol class="lvl1">
<li>Oberstes Organ ist die Mitgliederversammlung, die jährlich durchzuführen ist.
<ol class="lvl2">
<li>Die Einladung erhalten die Mitglieder in Textform (z.B. Mail, Fax oder Briefpost) zwei Wochen vor der Mitgliederversammlung unter Angabe der Tagesordnung.</li>
<li>Anträge zur Tagesordnung sind spätestens eine Woche vor der Mitgliederversammlung schriftlich beim Vorstand einzureichen.</li>
<li>Eine außerordentliche Mitgliederversammlung wird einberufen, wenn mindestens ein Viertel der Mitglieder dies schriftlich beantragt.</li>
</ol>
</li>
<li>Die Mitgliederversammlung wird von der/dem Vorsitzenden oder einem anderen Mitglied des Vorstandes geleitet.
<ol class="lvl2">
<li>Jede ordnungsgemäß einberufene Mitgliederversammlung ist beschlussfähig. Sie beschließt über Anträge mit einfacher Mehrheit der abgegebenen gültigen Stimmen, soweit die Satzung nicht anderes bestimmt.</li>
<li>Gewählt wird in offener Abstimmung. Wird von einem Viertel der anwesenden stimmberechtigten Mitglieder die geheime Wahl verlangt, muss die Abstimmung geheim erfolgen.</li>
<li>Jedes aktive Mitglied hat mit Vollendung des 16. Lebensjahrs eine Stimme, die nur persönlich ausgeübt werden darf. Eine Stimmrechtsübertragung ist ausgeschlossen.</li>
<li>Werden auf einer Mitgliederversammlung Dringlichkeitsanträge gestellt, beschließt die Versammlung zunächst mit Zwei-Drittel-Mehrheit über die Dringlichkeit. Bei Bestätigung der Dringlichkeit kann über den Antrag in der Versammlung beraten und beschlossen werden. Dringlichkeitsanträge auf Abänderung der Satzung sind nicht zulässig.</li>
<li>Für Wahlen gilt Folgendes: Hat im ersten Wahlgang keine der kandidierenden Personen die Mehrheit der abgegebenen Stimmen erreicht, findet eine Stichwahl zwischen den beiden Personen statt, welche die höchsten Stimmzahlen erreicht haben. Gewählt ist dann die Person, welche die meisten Stimmen auf sich vereinigt.</li>
<li>Beschlüsse werden mit einfacher Mehrheit der abgegebenen gültigen Stimmen gefasst.</li>
</ol>
</li>
<li>Zu den Aufgaben der Mitgliederversammlung gehören insbesondere:
<ol class="lvl2">
<li>Entgegennahme der Berichte des Vorstandes und der Kassenprüfung</li>
<li>Entlastung des Vorstandes</li>
<li>Wahl (ggf. auch Abwahl) des Vorstandes</li>
<li>Wahl der Kassenprüfer/innen</li>
<li>Bestätigung der Ernennung von Ehrenmitgliedern</li>
<li>Bestätigung der vom Vorstand bestellten Beisitzer/innen und Beiräte</li>
<li>Festsetzung der Mindesthöhe des Mitgliedsbeitrags</li>
<li>Beratung über die geplante Verwendung der Mittel</li>
<li>Entscheidung über gestellte Anträge</li>
<li>Änderung der Satzung (Ausnahme § 9 Abs.3)</li>
<li>Auflösung des Vereins</li>
</ol>
</li>
<li>Über die Mitgliederversammlung und deren Beschlüsse ist ein Protokoll anzufertigen, das von der Protokollführung zu unterschreiben und von der Versammlungsleitung gegenzuzeichnen ist.</li>
<li>Weitere Einzelheiten zum Ablauf der Mitgliederversammlung können in der „Geschäftsordnung für die Mitgliederversammlung" geregelt werden.</li>
</ol>
<h2>§ 8 Der Vorstand</h2>
<ol class="lvl1">
<li>Der Vorstand des Vereins setzt sich wie folgt zusammen:
<ol class="lvl2">
<li>Vorsitzende/r <span class="note">(Vorstand im Sinne des § 26 BGB)</span></li>
<li>Stellvertretende/r Vorsitzende/r <span class="note">(Vorstand im Sinne des § 26 BGB)</span></li>
<li>Bis zu zwei Beisitzer, die bei Bedarf berufen werden können, Vorstand und Beisitzer bilden den erweiterten Vorstand</li>
</ol>
</li>
<li>Ständiger Teilnehmer an allen Vorstandssitzungen sollte ein Mitglied des Kindergartenpersonals sein. Ist dieser Teilnehmer Mitglied im Förderverein, ist er automatisch stimmberechtigter Beisitzer.</li>
<li>Die Vorstandsmitglieder im Sinne des § 26 BGB können den Verein gerichtlich und außergerichtlich allein vertreten, wobei sie an die Vorstandsbeschlüsse gebunden sind.</li>
<li>Die einzelnen Mitglieder des Vorstandes werden jeweils für zwei Jahre gewählt und bleiben bis zur Neuwahl im Amt. Jedes Vorstandsmitglied ist einzeln zu wählen. Scheidet ein Mitglied des Vorstandes während der Amtsperiode aus, so kann der Vorstand ein Ersatzmitglied bis zur nächsten Mitgliederversammlung benennen.</li>
<li>Dem Vorstand obliegt die Führung der laufenden Geschäfte einschließlich der Beschlussfassung über die Verwendung der Mittel. Zur Festlegung seiner Arbeitsweise kann sich der Vorstand eine Geschäftsordnung geben.</li>
<li>Der Vorstand ist beschlussfähig, wenn mindestens die Hälfte der Vorstandsmitglieder an der Sitzung teilnimmt. Beschlüsse werden mit einfacher Mehrheit gefasst. Von den Vorstandssitzungen sind Protokolle anzufertigen.</li>
<li>Beschlüsse können auch in Textform im Umlaufverfahren gefasst werden.</li>
<li>Die Beisitzer/innen werden vom Vorstand für jeweils ein Jahr bestellt und sind von der nächsten Mitgliederversammlung zu bestätigen. Eine Bestellung ist jederzeit widerrufbar. Die Mitgliederversammlung kann Beisitzer/innen vorschlagen.</li>
<li>Die Beisitzer/innen werden vom Vorstand mit Aufgaben betraut. Sie sind zu den Sitzungen des erweiterten Vorstandes einzuladen und können an ihnen mit beratender Stimme teilnehmen</li>
</ol>
<h2>§ 9 Kassenprüfer</h2>
<ol class="lvl1">
<li>Die Kasse und die Rechnungslegung des Vereins werden mindestens einmal im Jahr von wenigstens zwei Personen geprüft, die hierzu von der Mitgliederversammlung für jeweils ein Geschäftsjahr zu wählen sind. Die Kassenprüfer/innen dürfen weder Mitglieder des Vorstandes noch Angestellte des Vereins sein.</li>
<li>Sie erstatten in der dem Geschäftsjahr folgenden Mitgliederversammlung Bericht und empfehlen bei ordnungsgemäßer Kassenführung der Mitgliederversammlung die Entlastung.</li>
</ol>
<h2>§ 10 Satzungsänderungen</h2>
<ol class="lvl1">
<li>Eine Satzungsänderung kann nur beschlossen werden, wenn sie bei der Einberufung zur Mitgliederversammlung als Tagesordnungspunkt gesondert aufgeführt ist.</li>
<li>Eine Satzungsänderung bedarf einer Zwei-Drittel-Mehrheit der abgegebenen gültigen Stimmen.</li>
<li>Änderungen oder Ergänzungen der Satzung aufgrund einer Auflage des Finanzamts oder des Registergerichts können vom Vorstand beschlossen werden. Sie sind auf der nächsten Mitgliederversammlung mitzuteilen.</li>
</ol>
<h2>§ 11 Auflösung</h2>
<ol class="lvl1">
<li>Die Auflösung des Vereins kann nur von einer zu diesem Zweck einberufenen außerordentlichen Mitgliederversammlung mit Drei-Viertel-Mehrheit der abgegebenen gültigen Stimmen beschlossen werden.</li>
<li>Bei Auflösung des Vereins oder bei Wegfall der steuerbegünstigten Zwecke fällt das Vermögen des Vereins an den Träger der KITA Regenbogen, die EJF gemeinnützige AG, die es unmittelbar und ausschließlich für gemeinnützige Zwecke, insbesondere zu Gunsten der KITA Regenbogen, zu verwenden hat.</li>
</ol>
<p class="doc-foot">Satzung des Fördervereins „Kitafreunde Regenbogen e.V." · Stand 22.01.2020</p>
</div>
</article>
</Layout>
<style is:global>
/* ===== Satzung: Bildschirm ===== */
.legal .legal-body {
background: #fff;
border: 1px solid var(--color-border);
border-radius: 1.25rem;
padding: 2.5rem;
box-shadow: 0 18px 40px -28px rgba(42,36,51,0.3);
}
.legal h2 {
font-family: var(--font-display);
color: var(--color-primary);
font-size: 1.4rem;
font-weight: 700;
margin: 2em 0 0.6em;
padding-top: 0.8em;
border-top: 2px solid var(--color-border);
break-after: avoid;
}
.legal h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.legal p { margin: 0.7em 0; line-height: 1.7; color: var(--color-text); }
.legal .zu { margin-left: 1.6em; color: var(--color-text-muted); }
.legal .note { color: var(--color-text-muted); white-space: nowrap; }
.legal ol.lvl1 { list-style: none; counter-reset: l1; margin: 0.6em 0; padding: 0; }
.legal ol.lvl1 > li { counter-increment: l1; position: relative; padding-left: 2.1em; margin: 0.55em 0; line-height: 1.7; break-inside: avoid; }
.legal ol.lvl1 > li::before {
content: counter(l1) ".";
position: absolute; left: 0; top: 0;
font-weight: 700; color: var(--color-primary);
font-variant-numeric: tabular-nums;
}
.legal ol.lvl2 { list-style: none; counter-reset: l2; margin: 0.5em 0; padding: 0; }
.legal ol.lvl2 > li { counter-increment: l2; position: relative; padding-left: 2.1em; margin: 0.4em 0; line-height: 1.65; break-inside: avoid; }
.legal ol.lvl2 > li::before {
content: counter(l2, lower-alpha) ")";
position: absolute; left: 0; top: 0;
font-weight: 600; color: var(--color-accent-dark);
}
.doc-head { display: none; align-items: center; gap: 0.9rem; }
.doc-rule { display: none; height: 6px; border-radius: 99px; margin: 0.6rem 0 1.6rem; }
.doc-foot { display: none; }
.print-only { display: none; }
/* ===== Satzung: Druck / PDF ===== */
@media print {
@page { size: A4; margin: 16mm 18mm 18mm; }
:root { background: #fff; }
html { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
body { background: #fff !important; }
body::before { display: none !important; } /* Papierkorn weg */
body > header, body > footer, .screen-only { display: none !important; }
.legal { padding: 0 !important; max-width: none !important; margin: 0 !important; }
.legal .legal-body { border: 0; border-radius: 0; padding: 0; box-shadow: none; }
.print-only { display: block; }
.doc-head { display: flex; }
.doc-logo { height: 46px; width: auto; }
.doc-kicker { font-size: 9pt; color: #555; margin: 0; }
.doc-title { font-family: var(--font-display); font-size: 22pt; font-weight: 800; color: #2A2433; margin: 0; line-height: 1; }
.doc-meta { font-size: 9pt; color: #555; margin: 2px 0 0; }
.doc-rule { display: block; }
.legal { font-size: 10pt; color: #1a1a1a; }
.legal h2 { font-size: 12.5pt; color: #4D2C78; border-top-color: #ddd; margin-top: 1.4em; }
.legal ol.lvl1 > li::before { color: #4D2C78; }
.legal ol.lvl2 > li::before { color: #B45309; }
.legal p, .legal li { color: #1a1a1a; }
.doc-foot { display: block; margin-top: 1.6em; padding-top: 0.8em; border-top: 1px solid #ddd; font-size: 8pt; color: #777; text-align: center; }
}
</style>

View File

@@ -13,11 +13,30 @@ const roleLabel: Record<string, string> = {
treasurer: "Kassenwart/in", treasurer: "Kassenwart/in",
board: "Beisitz", board: "Beisitz",
}; };
// Werte-Akrostichon der Kita Regenbogen (aus dem Kita-Leitbild)
const kitaAkrostichon = [
"Kreativ", "Individuell", "Transparent", "Authentisch",
"Ressourcenorientiert", "Energiegeladen", "Großzügig", "Engagiert",
"Neugierig", "Bedürfnisorientiert", "Offen", "Gelassen", "Einfühlsam", "Nachhaltig",
];
const rbCycle = [
"var(--color-rb-red)", "var(--color-rb-orange)", "var(--color-rb-yellow)",
"var(--color-rb-green)", "var(--color-rb-cyan)", "var(--color-rb-blue)", "var(--color-rb-violet)",
];
const kitaHaus = [
"Voller Respekt und Wertschätzung",
"mit Platz für Individualität",
"mit Ritualen, die Orientierung bieten",
"mit Freiraum für eigene Ideen und Gedanken",
"mit der Möglichkeit, Fehler zu machen",
"mit viel Zeit zum Spielen",
];
--- ---
<Layout <Layout
title="Über uns" title="Über uns"
description="Wer sind die Kitafreunde Regenbogen? Der Förderverein der Integrationskita Regenbogen Berlin — gegründet von Eltern, getragen von einer Gemeinschaft." description="Wer sind die Kitafreunde Regenbogen? Der Förderverein der Kita Regenbogen Berlin — gegründet von Eltern, getragen von einer Gemeinschaft."
> >
<!-- Hero --> <!-- Hero -->
<PageHeader eyebrow="Über uns"> <PageHeader eyebrow="Über uns">
@@ -46,9 +65,8 @@ const roleLabel: Record<string, string> = {
Nicht durch das Land. Nicht durch den Träger. Durch uns. Nicht durch das Land. Nicht durch den Träger. Durch uns.
</p> </p>
<p> <p>
Die Kita Regenbogen ist eine Integrationskita — Kinder mit und ohne Behinderung lernen, Die Kita Regenbogen ist ein Ort, an dem Kinder gemeinsam spielen, lernen und
spielen und wachsen gemeinsam. Das ist keine Besonderheit, die man erklärt. Das ist einfach, wachsen — und der Förderverein trägt diese Haltung nach außen:
wie es richtig ist. Und der Förderverein trägt diese Haltung nach außen:
Alle sind dabei. Alle zählen. Kein Abstrich, kein Sonderfall. Alle sind dabei. Alle zählen. Kein Abstrich, kein Sonderfall.
</p> </p>
<p> <p>
@@ -86,6 +104,52 @@ const roleLabel: Record<string, string> = {
</div> </div>
</section> </section>
<!-- Unsere Kita -->
<Wave color="var(--color-paper-2)" />
<section class="bg-[var(--color-paper-2)]">
<div class="section">
<div class="max-w-3xl mb-12">
<p class="eyebrow">Unsere Kita</p>
<h2 class="mt-2 text-3xl md:text-4xl font-bold">Wofür die Kita steht.</h2>
<p class="mt-4 text-[var(--color-text-muted)] leading-relaxed">
Die bewegungsfreundliche Kita „Regenbogen" (Träger: EJF) in Berlin-Heiligensee — in ihren eigenen Worten.
</p>
</div>
<div class="grid md:grid-cols-2 gap-7 items-start">
<!-- Credo -->
<div class="sticker tilt-l">
<Decor type="heart" class="w-10 mb-4 anim-float" />
<p class="font-display text-xl md:text-2xl font-semibold text-[var(--color-text)] mb-5 leading-snug">
„Wie muss ein Haus sein, in dem Kinder groß werden?"
</p>
<ul class="space-y-3">
{kitaHaus.map((item) => (
<li class="flex gap-3 items-start">
<span class="text-[var(--color-rb-green)] font-bold mt-0.5">✓</span>
<span class="text-[var(--color-text)] leading-relaxed">{item}</span>
</li>
))}
</ul>
</div>
<!-- Akrostichon -->
<div class="sticker">
<p class="eyebrow !text-[var(--color-rb-violet)] mb-4">Kita Regenbogen</p>
<ul class="space-y-1.5">
{kitaAkrostichon.map((word, i) => (
<li class:list={["flex items-baseline gap-3", i === 3 && "mb-3"]}>
<span class="font-display font-black text-2xl md:text-3xl leading-none w-7 shrink-0 text-center" style={`color:${rbCycle[i % 7]}`}>{word.charAt(0)}</span>
<span class="text-[var(--color-text)] text-lg">{word.slice(1)}</span>
</li>
))}
</ul>
</div>
</div>
</div>
</section>
<Wave color="var(--color-paper)" flip={true} />
<!-- Team --> <!-- Team -->
{team.length > 0 && ( {team.length > 0 && (
<Fragment> <Fragment>