feat: Onepage nach Filmcamp-Gliederung umgebaut

- Figtree als einzige Schrift, Logo mittig in fester Kopfzeile
- Headerbild ueber volle Breite und Hoehe, ohne Preis, mit Terminleiste
- "Was dich erwartet" stellt die Villa mit animierter Bilderfolge vor,
  darunter Tagesablauf als Karussell (Programm folgt als PDF)
- Preis: regulaerer Preis durchgestrichen, kein Verkaufsstartdatum,
  Ueberschrift "Jetzt Platz sichern mit Early Bird"
- Team als "Mit dabei", danach drei Reels im Hochformat
- Logo, Headerbild, Portraets und Reels ueber feste Dateinamen im
  Medienverzeichnis (docs/MEDIEN.md), ohne Neustart austauschbar
- Widerrufsbelehrung im Admin pflegbar, Seite /widerruf, Live-Verkauf
  ohne Freigabe gesperrt
- Anreise: Abholung am Bahnhof Firenze Santa Maria Novella
- Booking-Link entfernt, Gedankenstriche aus Kundentexten entfernt

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
Nick SzaunigandClaude Opus 5.5 committed 2026-10-01 23:53:18 +02:00
1 parent 3cba3e2341
commit 7203cd1e6e
37 files changed
+962 -517

No files matched your search

+4
View File
@@ -37,6 +37,8 @@ export function toGateFields(camp: Camp): CampGateFields {
taxConfirmed: camp.taxConfirmed,
termsVersion: camp.termsVersion,
termsApproved: camp.termsApproved,
withdrawalText: camp.withdrawalText,
withdrawalApproved: camp.withdrawalApproved,
travelLawChecked: camp.travelLawChecked,
installmentsApproved: camp.installmentsApproved,
installmentRuleApproved: camp.installmentRuleApproved,
@@ -63,6 +65,7 @@ export type PublicCampFacts = {
organizer: { name: string; address: string; email: string; phone: string | null } | null;
termsUrl: string | null;
termsVersion: string | null;
withdrawalText: string | null;
};
export function publicCampFacts(camp: Camp): PublicCampFacts {
@@ -84,5 +87,6 @@ export function publicCampFacts(camp: Camp): PublicCampFacts {
: null,
termsUrl: camp.termsApproved ? camp.termsUrl : null,
termsVersion: camp.termsApproved ? camp.termsVersion : null,
withdrawalText: camp.withdrawalApproved ? camp.withdrawalText : null,
};
}