Compare commits

..

2 Commits

Author SHA1 Message Date
af6eafdd21 menue 2026-02-06 02:11:23 +01:00
099b5d80e1 menue 2026-02-06 02:10:35 +01:00
80 changed files with 3587 additions and 886 deletions

View File

Binary file not shown.

Binary file not shown.

BIN
public/head_pillen.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
public/iStock-975006448.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 MiB

View File

@ -1,70 +1 @@
{ {"hero": {"kicker": "Ihr starker Partner für Sicherheit", "title": "Ihr starker Partner für Sicherheit.", "subtitle": "Unabhängige Versicherung- und Finanzberatung persönlich, verlässlich und auf Ihre Ziele ausgerichtet.", "primaryCta": "Jetzt beraten lassen", "secondaryCta": "Unsere Leistungen"}, "tabs": {"overview": "Philosophie", "leistungen": "Leistungen", "partner": "Partner", "events": "Events", "kontakt": "Kontakt", "team": "Team", "karriere": "Karriere"}}
"hero": {
"kicker": "Über unsere Agentur",
"title": "Agentur Mizera & Partner.",
"subtitle": "Unabhängig, transparent und persönlich seit 1994 an Ihrer Seite.",
"primaryCta": "Jetzt beraten lassen",
"secondaryCta": "Jetzt berechnen"
},
"intro": {
"title": "Über unsere Agentur",
"subtitle": "Unabhängig, transparent und persönlich seit 1994"
},
"sections": [
{
"title": "Unsere Philosophie",
"description": "Unabhängig, transparent und persönlich seit 1994 an Ihrer Seite",
"features": [
"Unabhängigkeit von Versicherungsunternehmen",
"Transparente und verständliche Beratung",
"Maßgeschneiderte Lösungen für Privat- und Geschäftskunden",
"Langfristige Kundenbeziehungen"
]
},
{
"title": "Unsere Werte",
"description": "Was uns in der Beratung wichtig ist",
"features": [
"Persönliche Betreuung vor Ort",
"Regelmäßige Weiterbildung",
"Fairer Preis-Leistungsanspruch",
"Qualität und Verlässlichkeit"
]
},
{
"title": "Unser Team",
"description": "Erfahrung und Fachwissen direkt für Sie erreichbar",
"features": [
"Marian Adam Geschäftsführer",
"Versicherungsfachmann (BWV)",
"Seit 1994 im Versicherungswesen",
"Spezialisierung: Betriebliche Altersversorgung (DVA)"
]
},
{
"title": "Unsere Arbeitsweise",
"description": "Strukturiert, unabhängig und mit Blick auf das Wesentliche",
"features": [
"Vergleich von über 50 Versicherungsgesellschaften",
"Individuelle Risikoanalyse",
"Regelmäßige Vertragsüberprüfung",
"Unterstützung im Schadensfall"
]
}
],
"achievementsTitle": "Unsere Erfolge in Zahlen",
"achievements": [
"Über 25 Jahre Erfahrung",
"Mehr als 1.000 zufriedene Kunden",
"50+ Versicherungspartner",
"Zertifizierte Fachexperten",
"Unabhängige Beratung",
"Persönliche Betreuung"
],
"contact": {
"title": "Lernen Sie uns kennen",
"subtitle": "Wir freuen uns darauf, Sie persönlich kennenzulernen und Ihnen unsere Agentur vorzustellen.",
"primaryCta": "Beratung vereinbaren",
"secondaryCta": "Kontakt aufnehmen"
}
}

Binary file not shown.

View File

@ -0,0 +1 @@
{"title": "Altersvorsorge", "subtitle": "Sorgen Sie frühzeitig für Ihre finanzielle Zukunft vor", "topics": {"riester": {"title": "Riester-Rente"}, "ruerup": {"title": "Rürup-Rente"}, "betrieblich": {"title": "Betriebliche Altersvorsorge"}, "privat": {"title": "Private Rentenversicherung"}, "kapital": {"title": "Kapitallebensversicherung"}, "fonds": {"title": "Fondsgebundene Versicherung"}, "zukunft": {"title": "Zukunftsvorsorge"}, "sparplan": {"title": "Sparplan"}, "investment": {"title": "Investmentfonds"}, "etf": {"title": "ETF-Sparplan"}}}

Binary file not shown.

View File

@ -13,7 +13,12 @@
"phoneInvalid": "Ungültige Telefonnummer", "phoneInvalid": "Ungültige Telefonnummer",
"successMessage": "Ihre Nachricht wurde erfolgreich gesendet!", "successMessage": "Ihre Nachricht wurde erfolgreich gesendet!",
"errorMessage": "Ein Fehler ist aufgetreten. Bitte versuchen Sie es später noch einmal.", "errorMessage": "Ein Fehler ist aufgetreten. Bitte versuchen Sie es später noch einmal.",
"notFound": {
"message": "Ups! Seite nicht gefunden",
"backHome": "Zur Startseite"
},
"generalNotice": { "generalNotice": {
"title": "Wichtiger Hinweis:",
"text": "Hinweis:\nDie auf diesen Seiten enthaltenen Tipps und Informationen stellen allgemeine, unverbindliche Hinweise zu Versicherungen dar. Es handelt sich um eine private Meinungsäußerung ohne Anspruch auf Richtigkeit, Vollständigkeit oder Haftung und ersetzt keine individuelle Beratung. Maßgeblich sind ausschließlich die jeweiligen Versicherungsbedingungen des Versicherungsunternehmens." "text": "Hinweis:\nDie auf diesen Seiten enthaltenen Tipps und Informationen stellen allgemeine, unverbindliche Hinweise zu Versicherungen dar. Es handelt sich um eine private Meinungsäußerung ohne Anspruch auf Richtigkeit, Vollständigkeit oder Haftung und ersetzt keine individuelle Beratung. Maßgeblich sind ausschließlich die jeweiligen Versicherungsbedingungen des Versicherungsunternehmens."
}, },
"nav": { "nav": {

View File

@ -0,0 +1,70 @@
{
"title": "Haftpflicht (Familie)",
"tabs": {
"overview": "Übersicht",
"details": "Details",
"form": "Anfrage",
"claims": "Schaden",
"catalog": "Ratgeber"
},
"overview": {
"badge": "Schutz vor hohen Forderungen",
"title": "Privathaftpflicht für Familien",
"subtitle": "Kinder & Eltern abgesichert",
"description": "Wenn etwas passiert, kann es teuer werden. Die Privathaftpflicht schützt vor Schadenersatzforderungen.",
"primaryButton": "Angebot anfordern",
"secondaryButton": "Beratung",
"card1Title": "Familien-Schutz",
"card1Subtitle": "Kinder mitversichert",
"card2Title": "Hohe Deckung",
"card2Subtitle": "sinnvoll & wichtig",
"rightCardTitle": "Alltag, Spiel, Missgeschick",
"rightCardText": "Tarifcheck schnell und fair."
},
"details": {
"title": "Worauf achten?",
"description": "Deckungssumme, deliktunfähige Kinder, Mietsachschäden, Schlüsselverlust, Forderungsausfalldeckung.",
"item1Title": "Deliktunfähig",
"item1Desc": "Absicherung bei Schäden durch kleine Kinder.",
"item2Title": "Schlüssel/Miete",
"item2Desc": "Wichtige Bausteine im Alltag.",
"tipTitle": "Tipp",
"tipSubtitle": "Deckungssumme nicht zu niedrig",
"tipText": "Heute sind 1050 Mio. € häufig sinnvoll."
},
"form": {
"title": "Anfrageformular",
"subtitle": "Wir vergleichen passende Tarife für deine Familie.",
"openContact": "Kontaktformular öffnen",
"savePdf": "Als PDF speichern",
"directTitle": "Direktkontakt",
"directSubtitle": "Wenn es schnell gehen soll.",
"phone": "Telefon: 0171 / 9864053",
"email": "E-Mail: info@finanzen-mizera.de"
},
"claims": {
"title": "Schadenmeldung",
"subtitle": "Kurz-Checkliste für den Schadenfall.",
"item1Title": "Daten sichern",
"item1Desc": "Fotos, Zeugen, Ablauf notieren.",
"item2Title": "Melden",
"item2Desc": "Wir helfen bei der Regulierung.",
"noteTitle": "Hinweis",
"noteSubtitle": "Keine Schuldanerkenntnisse",
"noteText": "Keine Zusagen ohne Prüfung. Erst melden."
},
"catalog": {
"title": "Ratgeber",
"subtitle": "Typische Fragen in Familien.",
"summaryTitle": "Das Gröbste auf einen Blick",
"summarySubtitle": "Beispiele Details je nach Tarif.",
"rows": {
"row1": "Sind Kinder deliktunfähig mitversichert?",
"row2": "Mietsachschäden enthalten?",
"row3": "Schlüsselverlust enthalten?",
"row4": "Forderungsausfalldeckung vorhanden?"
},
"questionTitle": "Frage?",
"questionSubtitle": "Wir beraten persönlich."
}
}

View File

@ -0,0 +1,55 @@
{
"title": "Familienpakete",
"tabs": {
"overview": "Übersicht",
"details": "Details",
"form": "Anfrage",
"catalog": "Ratgeber"
},
"overview": {
"badge": "Alles aus einer Hand",
"title": "Familienpakete",
"subtitle": "kombinieren & sparen",
"description": "Mit passenden Paketen lassen sich Leistungen bündeln und oft Beiträge optimieren.",
"primaryButton": "Beratung anfordern",
"secondaryButton": "Kontakt",
"card1Title": "Sinnvoll",
"card1Subtitle": "Bausteine passend",
"card2Title": "Familie",
"card2Subtitle": "ein Vertrag",
"rightCardTitle": "einfach, klar, passend",
"rightCardText": "Wir vergleichen Optionen und erklären verständlich."
},
"details": {
"title": "Beispiele",
"description": "Unfall + Haftpflicht + Zusatz je nach Bedarf.",
"combosTitle": "Typische Kombinationen",
"combosSubtitle": "Beispiele",
"combo1": "Kinderunfall + Haftpflicht",
"combo2": "Zahn + Stationär",
"combo3": "Reise + Ausland",
"tipTitle": "Tipp",
"tipSubtitle": "Keine Doppelungen",
"tipText": "Wir prüfen, was schon vorhanden ist."
},
"form": {
"title": "Anfrageformular",
"subtitle": "Wir bauen ein Paket passend zu deiner Familie.",
"openContact": "Kontaktformular öffnen",
"savePdf": "Als PDF speichern",
"directTitle": "Direktkontakt",
"directSubtitle": "Wenn es schnell gehen soll.",
"phone": "Telefon: 0171 / 9864053",
"email": "E-Mail: info@finanzen-mizera.de"
},
"catalog": {
"title": "Ratgeber",
"subtitle": "So findest du das passende Paket.",
"checklistTitle": "Checkliste",
"checklistSubtitle": "Beispiele",
"row1": "Welche Risiken sind wichtig?",
"row2": "Budget pro Monat",
"row3": "Bestehende Verträge prüfen",
"row4": "Leistung vor Preis"
}
}

View File

@ -0,0 +1,65 @@
{
"hero": {
"kicker": "Familien & Kinder",
"title": "Reise & Ausland",
"subtitle": "Auslandsreisekranken & mehr",
"primaryCta": "Beratung",
"secondaryCta": "Zur Übersicht"
},
"tabs": {
"overview": "Übersicht",
"details": "Details",
"form": "Anfrage",
"catalog": "Ratgeber"
},
"overview": {
"badge": "Sicher reisen mit Familie",
"title": "Reise & Auslandsschutz",
"subtitle": "Auslandsreisekranken & mehr",
"description": "Medizinische Behandlungen im Ausland können teuer werden. Passender Schutz sorgt für Sicherheit.",
"primaryButton": "Angebot anfordern",
"secondaryButton": "Beratung",
"card1Title": "Weltweit",
"card1Subtitle": "auch Familie",
"card2Title": "Schnell",
"card2Subtitle": "im Notfall",
"rightCardTitle": "Urlaub, Besuch, Ausland",
"rightCardText": "Tarifcheck passend zur Reise."
},
"details": {
"title": "Wichtige Bausteine",
"description": "Auslandsreisekranken, Rücktransport, Reiserücktritt (je nach Bedarf).",
"item1Title": "Rücktransport",
"item1Desc": "Wenn medizinisch sinnvoll.",
"item2Title": "Familie",
"item2Desc": "Ein Vertrag alle abgesichert.",
"hintTitle": "Hinweis",
"hintSubtitle": "EU-Karte reicht oft nicht",
"hintText": "Privatkliniken & Rücktransport sind oft nicht abgedeckt."
},
"form": {
"title": "Anfrageformular",
"subtitle": "Wir vergleichen passende Tarife für deine Reisen.",
"openContact": "Kontaktformular öffnen",
"savePdf": "Als PDF speichern",
"directTitle": "Direktkontakt",
"directSubtitle": "Wenn es schnell gehen soll.",
"phone": "Telefon: 0171 / 9864053",
"email": "E-Mail: info@finanzen-mizera.de"
},
"catalog": {
"title": "Ratgeber",
"subtitle": "Kurz-Checkliste vor der Reise.",
"checklistTitle": "Checkliste",
"checklistSubtitle": "Beispiele je nach Reiseziel.",
"tipTitle": "Tipp",
"tipSubtitle": "Früh prüfen",
"tipText": "Am besten vor der Buchung klären.",
"rows": {
"row1": "Reiseziel & Dauer",
"row2": "Rücktransport enthalten?",
"row3": "Familientarif vs. Einzelverträge",
"row4": "Reiserücktritt nötig?"
}
}
}

View File

@ -0,0 +1,62 @@
{
"hero": {
"kicker": "Familien & Kinder",
"title": "Vorsorge",
"subtitle": "Absicherung & Planung",
"primaryCta": "Beratung",
"secondaryCta": "Zur Übersicht"
},
"tabs": {
"overview": "Übersicht",
"details": "Details",
"form": "Anfrage",
"catalog": "Ratgeber"
},
"overview": {
"badge": "Finanziell vorsorgen",
"title": "Familienvorsorge",
"subtitle": "Absicherung & Planung",
"description": "Vorsorge bedeutet: die Familie schützen und Zukunft planen verständlich und transparent.",
"primaryButton": "Beratung anfordern",
"secondaryButton": "Kontakt",
"card1Title": "Absicherung",
"card1Subtitle": "Risiken reduzieren",
"card2Title": "Planung",
"card2Subtitle": "einfach & klar",
"rightCardTitle": "Zukunft für die Familie",
"rightCardText": "Wir erklären verständlich ohne Fachchinesisch."
},
"details": {
"title": "Mögliche Themen",
"description": "Absicherung, Vermögensaufbau, Altersvorsorge passend zur Familie.",
"item1Title": "Risikoschutz",
"item1Desc": "z. B. Absicherung bei Ausfall.",
"item2Title": "Vermögen",
"item2Desc": "aufbauen und strukturieren.",
"tipTitle": "Tipp",
"tipSubtitle": "Einfach anfangen",
"tipText": "Kleine Schritte sind besser als gar nicht starten."
},
"form": {
"title": "Anfrageformular",
"subtitle": "Kurz beschreiben wir melden uns mit Vorschlägen.",
"openContact": "Kontaktformular öffnen",
"savePdf": "Als PDF speichern",
"directTitle": "Direktkontakt",
"directSubtitle": "Wenn es schnell gehen soll.",
"phone": "Telefon: 0171 / 9864053",
"email": "E-Mail: info@finanzen-mizera.de"
},
"catalog": {
"title": "Ratgeber",
"subtitle": "Worauf Familien oft Wert legen.",
"checklistTitle": "Checkliste",
"checklistSubtitle": "Beispiele",
"rows": {
"row1": "Monatliches Budget",
"row2": "Ziele (Schule, Haus, Rente)",
"row3": "Risikopuffer",
"row4": "Bestehende Verträge"
}
}
}

View File

@ -1,42 +1 @@
{ {"hero": {"kicker": "Finanzen", "title": "Finanzielle Sicherheit mit Plan", "subtitle": "Unabhängige Beratung zu Vermögensaufbau, Altersvorsorge und Finanzierung verständlich und transparent.", "primaryCta": "Jetzt beraten lassen", "secondaryCta": "Alle Leistungen"}, "section": {"title": "Finanzlösungen", "subtitle": "Wir bieten Ihnen umfassende Finanzberatung für alle Lebensbereiche von der Altersvorsorge bis zur Immobilienfinanzierung."}, "services": {"finanzberatung": {"title": "Finanzberatung", "description": "Umfassende Beratung für Ihre finanzielle Zukunft", "features": {"vermoegen": "Vermögensaufbau", "altersvorsorge": "Altersvorsorge", "sparplaene": "Sparpläne", "investment": "Investmentberatung", "steuer": "Steuerplanung"}}, "vorsorge": {"title": "Vorsorgelösungen", "description": "Sichere Absicherung für alle Lebensphasen", "features": {"privat": "Private Rentenversicherung", "riester": "Riester-Rente", "ruerup": "Rürup-Rente", "betrieblich": "Betriebliche Altersvorsorge"}}, "vermoegen": {"title": "Vermögensmanagement", "description": "Professionelle Verwaltung Ihres Vermögens", "features": {"fonds": "Fondsberatung", "aktien": "Aktienberatung", "immobilien": "Immobilienfinanzierung", "nachlass": "Nachlassplanung"}}, "kredit": {"title": "Kreditberatung", "description": "Optimale Finanzierungslösungen", "features": {"haus": "Hausfinanzierung", "vergleich": "Kreditvergleich", "umschuldung": "Umschuldung", "foerderung": "Fördermittelberatung"}}}, "highlights": {"unabhaengig": "Unabhängige und objektive Beratung", "transparent": "Transparente Kostenstruktur", "individuell": "Individuelle Lösungsansätze", "langfristig": "Langfristige Strategien statt kurzfristiger Trends", "ueberpruefung": "Regelmäßige Überprüfung und Anpassung", "verstaendlich": "Verständliche Empfehlungen ohne Fachchinesisch"}}
"hero": {
"kicker": "Finanzen",
"title": "Finanzielle Sicherheit mit Plan",
"subtitle": "Unabhängige Beratung zu Vermögensaufbau, Altersvorsorge und Finanzierung verständlich und transparent.",
"primaryCta": "Jetzt beraten lassen",
"secondaryCta": "Alle Leistungen"
},
"intro": {
"title": "Finanzen & Vorsorge",
"subtitle": "Vermögensaufbau, Vorsorge und Finanzierung klar strukturiert und verständlich."
},
"services": {
"title": "Unsere Leistungen im Überblick"
},
"tabs": {
"finanzberatung": "Finanzberatung",
"vorsorge": "Vorsorgelösungen",
"vermoegen": "Vermögensmanagement",
"kredit": "Kreditberatung"
},
"badge": {
"since1994": "Seit 1994 an Ihrer Seite"
},
"finanzberatung": {
"headline": "Finanzberatung",
"subheadline": "Vermögen, Vorsorge, Planung",
"welcome": "Herzlich willkommen",
"lead": "Umfassende Beratung für Ihre finanzielle Zukunft",
"featuresTitle": "Schwerpunkte",
"primaryCta": "Beratung vereinbaren",
"secondaryCta": "Leistungen ansehen",
"imageCaption": "Finanzplanung klar, transparent und auf Ihre Ziele ausgerichtet."
},
"highlightsTitle": "Was Sie bei uns erwarten dürfen",
"contact": {
"title": "Persönliche Finanzberatung",
"subtitle": "Lassen Sie uns gemeinsam eine Strategie entwickeln, die zu Ihrer Situation und Ihren Zielen passt.",
"primaryCta": "Beratung vereinbaren",
"secondaryCta": "Kontakt aufnehmen"
}
}

Binary file not shown.

View File

@ -1,88 +1 @@
{ {"topics": {"flotten": {"title": "Flottenversicherung", "subtitle": "Optimaler Schutz für Ihren Fuhrpark\nSicher und wirtschaftlich.", "links": {"management": "Flottenmanagement"}}, "betriebsrente": {"title": "Betriebsrente (BAV)", "subtitle": "Altersvorsorge für Ihre Mitarbeiter\nZukunftssichere Lösungen.", "links": {"vorsorge": "Mitarbeiter-Vorsorge"}}, "betriebskranken": {"title": "Betriebskrankenversicherung", "subtitle": "Gesundheitsschutz für Ihr Team\nLeistungsstarke Absicherung.", "links": {"gesundheit": "Mitarbeiter-Gesundheitsschutz"}}, "cyber": {"title": "Cyber-Versicherung", "subtitle": "Schutz vor digitalen Risiken\nSicherheit für Ihr Unternehmen.", "links": {"digital": "Digitaler Schutz"}}, "gebaeude": {"title": "Gebäudeversicherung", "subtitle": "Kompletter Schutz für Immobilien\nWohn- und Gewerbeobjekte.", "links": {"immobilien": "Immobilien-Schutz"}}, "rechtsschutz": {"title": "Betriebs-Rechtsschutz", "subtitle": "Rechtliche Sicherheit für Unternehmen\nPrävention und Vertretung.", "links": {"recht": "Rechtliche Absicherung"}}, "risiko": {"title": "Betriebs-Risikoschutz", "subtitle": "Umfassender Schutz für Unternehmen\nIndividuelle Lösungen.", "links": {"unternehmensschutz": "Unternehmens-Schutz"}}, "sach": {"title": "Sachversicherung", "subtitle": "Schutz für Betriebsvermögen\nWertgegenstände und Ausrüstung.", "links": {"vermoegen": "Betriebsvermögen"}}, "umwelt": {"title": "Umwelthaftpflicht", "subtitle": "Umweltrechtliche Absicherung\nSchutz vor Umweltrisiken.", "links": {"umweltschutz": "Umwelt-Schutz"}}, "vermoegenssicherung": {"title": "Vermögenssicherung", "subtitle": "Unternehmensvermögen absichern\nIndividuelle Konzepte.", "links": {"vermoegen": "Unternehmens-Vermögen"}}}}
"cta": {
"title": "Bereit für die optimale Absicherung?",
"contact": "Kontakt aufnehmen",
"service": "Unsere Services",
"subtitle": "Kontaktieren Sie uns für ein unverbindliches Beratungsgespräch"
},
"hero": {
"kicker": "Versicherungen für Geschäftskunden",
"title": "Sicherheit für Ihr Unternehmen.",
"secondaryCta": "Alle Leistungen",
"primaryCta": "Jetzt beraten lassen",
"subtitle": "Professionelle Versicherungsberatung für Unternehmen und Selbstständige individuell, transparent und zuverlässig."
},
"benefits": {
"items": [
{
"description": "Günstige Konditionen durch exzellente Verbindungen zu führenden Versicherern",
"title": "Wettbewerbsvorteile"
},
{
"description": "Alles aus einer Hand - von der Beratung bis zur Schadensabwicklung",
"title": "Zeitersparnis"
},
{
"description": "Individuelle Risikobetrachtung für beste Preis-Leistungs-Verhältnis",
"title": "Kostenoptimierung"
},
{
"description": "Dedizierter Ansprechpartner für alle Ihre Versicherungsangelegenheiten",
"title": "Persönliche Betreuung"
}
],
"title": "Ihre Vorteile als Geschäftskunde"
},
"services": {
"items": [
{
"title": "Betriebsversicherung",
"description": "Umfassender Schutz für Ihr Unternehmen",
"features": [
"Betriebshaftpflicht",
"Betriebsinhaltversicherung",
"Betriebsunterbrechungsversicherung"
]
},
{
"title": "Fuhrparkversicherung",
"description": "Optimale Lösungen für Ihre Fahrzeugflotte",
"features": [
"Flottenversicherung",
"Transportversicherung",
"Fahrerunfallversicherung"
]
},
{
"title": "Mitarbeiterschutz",
"description": "Sicherheit für Ihre wertvollsten Mitarbeiter",
"features": [
"Betriebsunfallversicherung",
"Krankentagegeldversicherung",
"Altersvorsorge"
]
},
{
"title": "Vermögensmanagement",
"description": "Strategische Sicherung Ihres Unternehmensvermögens",
"features": [
"Vermögensschadenhaftpflicht",
"D\u0026O-Versicherung",
"Rechtsschutzversicherung"
]
}
],
"title": "Unsere Geschäftskunden-Lösungen"
},
"focus": {
"title": "Unsere Schwerpunkte",
"items": {
"risk": "Risikoschutz",
"property": "Sachversicherung",
"fleet": "Flottenversicherung",
"assets": "Vermögenssicherung",
"liability": "Betriebshaftpflicht"
},
"learnMore": "Mehr erfahren"
}
}

Binary file not shown.

View File

@ -0,0 +1,19 @@
{
"meta": {
"title": "Gesundheitsvorsorge - Agentur Mizera",
"description": "Gesundheitsvorsorge: Umfassende Vorsorge und Prävention für Ihre Gesundheit. Unabhängige Beratung für alle Bereiche der Gesundheitsvorsorge."
},
"hero": {
"title": "Gesundheitsvorsorge",
"subtitle": "Umfassender Schutz für Ihre Gesundheit - im In- und Ausland",
"primaryCta": "Jetzt beraten lassen",
"secondaryCta": "Vergleich starten"
},
"tiles": {
"title": "Wählen Sie Ihren Versicherungsschutz",
"subtitle": "Wir bieten Ihnen maßgeschneiderte Lösungen für alle Bereiche der Gesundheitsvorsorge",
"pkv": "Private Krankenversicherung",
"zahn": "Zahnzusatzversicherung",
"ausland": "Auslandsreisekrankenversicherung"
}
}

View File

@ -85,6 +85,92 @@
"item6": { "title": "Unfall Was jetzt?" } "item6": { "title": "Unfall Was jetzt?" }
}, },
"topTopics": {
"kicker": "Bestseller",
"title": "Die beliebtesten Themen",
"subtitle": "Wählen Sie ein Thema und starten Sie mit wenigen Klicks.",
"allTopics": "Alle Themen anzeigen",
"items": {
"kfz": {
"title": "KFZ-Versicherung",
"description": "Tarife vergleichen und schnell zum passenden Schutz.",
"cta": "Jetzt informieren"
},
"privatkunden": {
"title": "Privatkunden",
"description": "Versicherungen für Alltag, Familie und Zuhause.",
"cta": "Jetzt informieren"
},
"gesundheit": {
"title": "Gesundheitsvorsorge",
"description": "Optimal abgesichert privat und individuell.",
"cta": "Mehr erfahren"
},
"zahnzusatz": {
"title": "Zahnzusatzversicherung",
"description": "Zahnersatz und -erhalt nach Maß: Stellen Sie sich die Leistungen nach Ihren Wünschen zusammen.",
"cta": "Jetzt informieren"
},
"ausland": {
"title": "Auslandskrankenversicherung",
"description": "Auch im Urlaub bestens abgesichert: weltweiter Schutz für medizinische Versorgung.",
"cta": "Jetzt informieren"
},
"sterbegeld": {
"title": "Sterbegeldversicherung",
"description": "Für Ihre Liebsten vorsorgen: finanzielle Sicherheit im Todesfall.",
"cta": "Jetzt informieren"
},
"rechtsschutz": {
"title": "Rechtsschutzversicherung",
"description": "Ihre Rechte schützen passende Bausteine finden.",
"cta": "Mehr erfahren"
},
"senioren": {
"title": "Senioren",
"description": "Sicherheit und Komfort Lösungen für jede Lebensphase.",
"cta": "Alle Themen"
},
"finanzen": {
"title": "Finanzen",
"description": "Vermögensaufbau, Altersvorsorge und Finanzierung.",
"cta": "Zur Übersicht"
}
}
},
"topTopicsExtra": {
"kicker": "Weitere Themen",
"title": "Mehr Absicherung passend zu Ihrer Situation",
"subtitle": "Beliebte Zusatzlösungen schnell erklärt und einfach anfragen.",
"items": {
"zahnzusatz": {
"title": "Zahnzusatzversicherung im Vergleich",
"description": "Zahnersatz und -erhalt nach Maß: Stellen Sie sich die Leistungen nach Ihren Wünschen zusammen.",
"cta": "Jetzt informieren",
"pricePrefix": "z.B.",
"priceValue": "21.95",
"priceUnit": "monatlich"
},
"ausland": {
"title": "Auslandskrankenversicherung",
"description": "Auch im Urlaub bestens abgesichert: mit der Auslandsreisekrankenversicherung - weltweiter Schutz für medizinische Versorgung.",
"cta": "Jetzt informieren",
"pricePrefix": "z.B. ab",
"priceValue": "9.90",
"priceUnit": "jährlich"
},
"sterbegeld": {
"title": "Sterbegeldversicherung",
"description": "Für Ihre Liebsten vorsorgen: finanzielle Sicherheit im Todesfall.",
"cta": "Jetzt informieren",
"pricePrefix": "z.B.\nBeitragsbeispiel",
"priceValue": "40,75",
"priceUnit": "pro Monat für 12.500 € Versicherungssumme\n• Männer/Frauen: ab 53 Jahre"
}
}
},
"services": { "services": {
"title": "Unsere Leistungen", "title": "Unsere Leistungen",
"subtitle": "Alles aus einer Hand für Ihren optimalen Schutz", "subtitle": "Alles aus einer Hand für Ihren optimalen Schutz",

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
{"title": "Krankheits-Schutzbrief", "subtitle": "Umfassender Schutz bei schweren Krankheiten", "tabs": {"overview": "Übersicht", "details": "Details", "calculator": "Rechner", "form": "Anfrage", "brochure": "PDF"}}

Binary file not shown.

View File

@ -28,5 +28,6 @@
"accidentInsurance": "Unfallversicherung", "accidentInsurance": "Unfallversicherung",
"service": "Service", "service": "Service",
"carInsurance": "KFZ-Versicherung", "carInsurance": "KFZ-Versicherung",
"propertyInsurance": "Sachversicherung" "propertyInsurance": "Sachversicherung",
"houseAndApartment": "Haus & Wohnung"
} }

View File

@ -1,56 +1 @@
{ {"topics": {"kfz": "KFZ-Fahrzeuge", "sach": "Sachversicherung", "gesundheit": "Gesundheitsvorsorge", "vermoegen": "Vermögenssicherung", "risiko": "Risikoschutz", "altersvorsorge": "Altersvorsorge"}, "services": {"kfz": {"title": "KFZ-Versicherung", "description": "Perfekter Schutz für Ihr Fahrzeug individuell und fair", "features": {"auto": "Autoversicherung", "motorrad": "Motorradversicherung", "quad": "Quadversicherung", "fairmobil": "FairMobil", "drittfahrer": "Drittfahrer-Schutz", "flotte": "Flottenversicherung"}}, "sach": {"title": "Sachversicherung", "description": "Ihr Hab und Gut bestens abgesichert", "features": {"hausrat": "Hausratversicherung", "unfall": "Unfallversicherung"}}, "gesundheit": {"title": "Gesundheitsvorsorge", "description": "Optimale medizinische Versorgung für die ganze Familie", "features": {"pkv": "Private Krankenversicherung", "zahn": "Zahnzusatzversicherung", "ausland": "Auslandsreisekrankenversicherung", "krankengeld": "Krankentagegeldversicherung"}}, "vermoegen": {"title": "Vermögenssicherung", "description": "Sichern Sie Ihre finanzielle Zukunft", "features": {"altersvorsorge": "Altersvorsorge", "risiko": "Risikolebensversicherung", "beruf": "Berufsunfähigkeitsversicherung"}}, "risiko": {"title": "Risikoschutz", "description": "Umfassender Schutz für alle Lebenslagen", "features": {"haftpflicht": "Private Haftpflicht", "rechtsschutz": "Rechtsschutzversicherung", "unfall": "Unfallversicherung"}}}, "details": {"label": "Details:", "kfz": {"autoversicherung": "Autoversicherung", "motorradversicherung": "Motorradversicherung", "quadversicherung": "Quadversicherung", "fairmobil": "FairMobil", "drittfahrerSchutz": "Drittfahrer-Schutz", "flottenversicherung": "Flottenversicherung"}, "sach": {"hausratversicherung": "Hausratversicherung", "wohngebaeudeversicherung": "Wohngebäudeversicherung", "unfallversicherung": "Unfallversicherung"}, "gesundheit": {"privateKrankenversicherung": "Private Krankenversicherung", "zahnzusatzversicherung": "Zahnzusatzversicherung", "auslandsreisekrankenversicherung": "Auslandsreisekrankenversicherung"}, "vermoegen": {"lebensversicherung": "Lebensversicherung", "risikolebensversicherung": "Risikolebensversicherung", "wohngebaeudeversicherung": "Wohngebäudeversicherung"}, "risiko": {"unfallversicherung": "Unfallversicherung", "rechtsschutzversicherung": "Rechtsschutzversicherung"}, "altersvorsorge": {"privateRentenversicherung": "Private Rentenversicherung", "riester": "Riester-Rente", "ruerup": "Rürup-Rente", "bav": "Betriebliche Altersvorsorge"}}}
"title": "Privatkunden",
"subtitle": "Maßgeschneiderte Versicherungs-lösungen für private Haushalte",
"services": [
{
"title": "Gesundheitsvorsorge",
"description": "Optimale medizinische Versorgung für die ganze Familie",
"features": [
"Private Krankenversicherung",
"Zahnzusatzversicherung",
"Auslandsreisekrankenversicherung",
"Krankentagegeldversicherung"
]
},
{
"title": "Risikoschutz",
"description": "Umfassender Schutz für alle Lebensbereiche",
"features": [
"Unfallversicherung",
"Haftpflichtversicherung",
"Rechtsschutzversicherung"
]
},
{
"title": "Vermögenssicherung",
"description": "Schutz Ihres Lebenswerks und Ihrer Familie",
"features": [
"Lebensversicherung",
"Risikolebensversicherung",
"Wohngebäudeversicherung",
"Hausratversicherung"
]
},
{
"title": "Vorsorge",
"description": "Sorgenfreie Zukunft für Sie und Ihre Liebsten",
"features": [
"Private Altersvorsorge",
"Riester-Rente",
"Rürup-Rente",
"Betriebliche Altersvorsorge"
]
}
],
"contactTitle": "Persönliche Beratung",
"contactDescription": "Lassen Sie sich von unseren Experten beraten und finden Sie die optimale Versicherung für Ihre Bedürfnisse.",
"phoneButton": "Jetzt beraten lassen",
"emailButton": "Angebot anfordern",
"submenu": {
"title": "Untermenü",
"kfz": "KFZ",
"hausrat": "Hausrat",
"haftpflicht": "Haftpflicht",
"unfall": "Unfall"
}
}

Binary file not shown.

View File

@ -0,0 +1 @@
{"title": "Risikolebensversicherung", "subtitle": "Optimaler Schutz für Ihre Familie im Todesfall", "tabs": {"overview": "Übersicht", "details": "Details", "calculator": "Rechner", "form": "Anfrage", "brochure": "PDF"}, "buttons": {"consultation": "Jetzt beraten lassen", "calculator": "Beitrag berechnen"}, "overview": {"subtitle": "Ihre Familie optimal absichern", "tagline": "Finanzielle Sicherheit für Ihre Liebsten", "description": "Eine Risikolebensversicherung bietet reinen Todesfallschutz zu günstigen Beiträgen. Im Todesfall der versicherten Person wird die vereinbarte Versicherungssumme an die Hinterbliebenen ausgezahlt.", "benefit1": {"title": "Reiner Risikoschutz", "description": "Kein Sparanteil - nur Schutz für den Todesfall"}, "benefit2": {"title": "Günstige Beiträge", "description": "Deutlich günstiger als kapitalbildende Lebensversicherung"}, "benefit3": {"title": "Flexible Laufzeiten", "description": "Anpassbar an Ihre individuelle Situation"}, "features": {"title": "Leistungen im Überblick", "item1": "Todesfallleistung", "item2": "Kreditabsicherung möglich", "item3": "Steuerfrei (§20 EStG)", "item4": "Unabhängige Tarifauswahl"}}, "details": {"title": "Details zur Risikolebensversicherung", "what": {"title": "Was ist eine Risikolebensversicherung?", "description": "Eine Risikolebensversicherung ist eine reine Risikoversicherung, die nur im Todesfall der versicherten Person leistet. Im Gegensatz zur kapitalbildenden Lebensversicherung enthält sie keinen Sparanteil und ist daher deutlich günstiger."}, "features": {"title": "Wichtigste Merkmale", "item1": "Reiner Todesfallschutz ohne Kapitalbildung", "item2": "Günstige monatliche Beiträge", "item3": "Flexible Versicherungssummen (typisch 100.000 - 1.000.000)", "item4": "Laufzeiten meist 10, 15, 20 oder 30 Jahre", "item5": "Steuerfreie Auszahlung an Hinterbliebene"}, "suitable": {"title": "Für wen geeignet?", "item1": "Familien mit Kindern zur Absicherung des Einkommensverlusts", "item2": "Hausbesitzer zur Absicherung von Immobiliendarlehen", "item3": "Selbstständige zur Absicherung von Geschäftspartnern", "item4": "Alle, die Hinterbliebene finanziell absichern möchten"}}, "benefits": {"family": {"title": "Familienschutz", "description": "Sichert Ihre Familie finanziell ab"}, "death": {"title": "Todesfallschutz", "description": "Zahlung bei Tod der versicherten Person"}, "cheap": {"title": "Günstige Beiträge", "description": "Reiner Risikoschutz ohne Sparanteil"}, "easy": {"title": "Einfacher Abschluss", "description": "Schnelle und unkomplizierte Beantragung"}}}

Binary file not shown.

View File

@ -0,0 +1,14 @@
{
"hero": {
"title": "Risikoschutz",
"subtitle": "Umfassender Schutz für Sie und Ihre Familie bei unvorhergesehenen Ereignissen"
},
"topics": {
"unfall": "Unfallversicherung",
"bu": "Berufsunfähigkeitsversicherung",
"haftpflicht": "Haftpflichtversicherung",
"rechtsschutz": "Rechtsschutzversicherung",
"tierhalter": "Tierhalterhaftpflicht",
"dread": "Dread-Disease Versicherung"
}
}

View File

@ -0,0 +1,14 @@
{
"hero": {
"title": "Sachversicherung",
"subtitle": "Schutz für Ihr Hab und Gut - von Hausrat bis Immobilie"
},
"topics": {
"hausrat": "Hausratversicherung",
"wohngebaeude": "Wohngebäudeversicherung",
"haftpflicht": "Haftpflichtversicherung",
"tiere": "Tierversicherung",
"rechtsschutz": "Rechtsschutzversicherung",
"elektro": "Elektrogeräteversicherung"
}
}

View File

@ -0,0 +1 @@
{"title": "Vermögenssicherung", "subtitle": "Sichern Sie Ihr Vermögen und bauen Sie Ihren Wohlstand auf", "topics": {"lebensversicherung": "Lebensversicherung", "risikolebensversicherung": "Risikolebensversicherung", "krankheitsschutzbrief": "Krankheits-Schutzbrief", "wohngebaeudeversicherung": "Wohngebäudeversicherung", "altersvorsorge": "Altersvorsorge", "gesundheitsvorsorge": "Gesundheitsvorsorge", "risikoschutz": "Risikoschutz"}}

Binary file not shown.

View File

@ -1,164 +1 @@
{ {"hero": {"kicker": "Twój silny partner w bezpieczeństwie", "title": "Twój silny partner w bezpieczeństwie.", "subtitle": "Niezależne doradztwo ubezpieczeniowe i finansowe - osobiste, niezawodne i dostosowane do Twoich celów.", "primaryCta": "Skonsultuj się teraz", "secondaryCta": "Nasze usługi"}, "tabs": {"overview": "Filozofia", "leistungen": "Usługi", "partner": "Partnerzy", "events": "Wydarzenia", "kontakt": "Kontakt", "team": "Zespół", "karriere": "Kariera"}}
"hero": {
"kicker": "O naszej agencji",
"title": "Agentur Mizera & Partner.",
"subtitle": "Niezależnie, przejrzyście i osobiście od 1994 roku po Twojej stronie.",
"primaryCta": "Skorzystaj z konsultacji",
"secondaryCta": "Oblicz teraz"
},
"intro": {
"title": "O naszej agencji",
"subtitle": "Niezależnie, przejrzyście i osobiście od 1994 roku"
},
"sections": [
{
"title": "Nasza filozofia",
"description": "Niezależnie, przejrzyście i osobiście od 1994 roku",
"features": [
"Niezależność od towarzystw ubezpieczeniowych",
"Przejrzyste i zrozumiałe doradztwo",
"Rozwiązania dopasowane dla klientów prywatnych i firm",
"Długoterminowe relacje z klientami"
]
},
{
"title": "Nasze wartości",
"description": "Co jest dla nas ważne w doradztwie",
"features": [
"Osobista opieka na miejscu",
"Regularne szkolenia",
"Uczciwy stosunek ceny do zakresu",
"Jakość i niezawodność"
]
},
{
"title": "Nasz zespół",
"description": "Doświadczenie i wiedza dostępni dla Ciebie",
"features": [
"Marian Adam właściciel",
"Specjalista ubezpieczeniowy (BWV)",
"W branży od 1994 roku",
"Specjalizacja: pracownicze programy emerytalne (DVA)"
]
},
{
"title": "Jak pracujemy",
"description": "Strukturalnie, niezależnie i z fokussem na najważniejsze",
"features": [
"Porównanie ponad 50 towarzystw ubezpieczeniowych",
"Indywidualna analiza ryzyka",
"Regularny przegląd polis",
"Wsparcie w razie szkody"
]
}
],
"achievementsTitle": "Nasze wyniki w liczbach",
"achievements": [
"Ponad 25 lat doświadczenia",
"Ponad 1 000 zadowolonych klientów",
"50+ partnerów ubezpieczeniowych",
"Certyfikowani eksperci",
"Niezależne doradztwo",
"Osobista opieka"
],
"contact": {
"title": "Poznaj nas",
"subtitle": "Chętnie poznamy Cię osobiście i przedstawimy naszą agencję.",
"primaryCta": "Umów konsultację",
"secondaryCta": "Skontaktuj się"
},
"tabs": {
"overview": "Filozofia",
"leistungen": "Usługi agencji",
"philosophie": "Ubezpieczenia partnerskie",
"kontakt": "Usługi finansowe",
"links": "Linki",
"vermoegensverwaltung": "Zarządzanie majątkiem",
"investmentbanken": "Banki inwestycyjne"
},
"philosophy": {
"title": "Filozofia",
"subtitle": "Niezależnie, przejrzyście i osobiście od 1994 roku po Twojej stronie.",
"description": "Jako niezależny makler działamy wyłącznie w Twoim interesie. Znajdujemy najlepsze rozwiązania spośród ponad 50 towarzystw ubezpieczeniowych bez ukrytych kosztów i z pełną transparentnością.",
"points": [
"Niezależność od towarzystw ubezpieczeniowych",
"Przejrzyste i zrozumiałe doradztwo",
"Rozwiązania dopasowane dla klientów prywatnych i firm",
"Długoterminowe relacje z klientami"
]
},
"leistungen": {
"title": "Usługi agencji",
"subtitle": "Kompleksowe doradztwo ubezpieczeniowe i finansowe",
"description": "Oferujemy pełne spektrum usług od analizy potrzeb przez porównanie ofert aż do wsparcia w razie szkody. Skupiamy się na tym, co dla Ciebie ważne.",
"points": [
"Analiza potrzeb i ryzyka",
"Porównanie ponad 50 towarzystw ubezpieczeniowych",
"Indywidualne dopasowanie polis",
"Wsparcie w razie szkody",
"Regularny przegląd i optymalizacja polis"
]
},
"partnerversicherungen": {
"title": "Ubezpieczenia partnerskie",
"subtitle": "Nasi partnerzy ubezpieczeniowi",
"description": "Współpracujemy z wiodącymi towarzystwami ubezpieczeniowymi, aby zapewnić Ci najlepsze warunki. Poniżej znajdziesz alfabetyczną listę naszych partnerów z linkami do ich stron.",
"note": "Kliknij na logo lub nazwę, aby przejść do strony partnera."
},
"finanzdienstleistungen": {
"title": "Usługi finansowe",
"subtitle": "Kompleksowe doradztwo finansowe",
"description": "Oprócz ubezpieczeń oferujemy również doradztwo w zakresie finansów od kredytów hipotecznych po inwestycje i emerytury.",
"points": [
"Doradztwo kredytowe hipoteczne",
"Planowanie emerytalne",
"Inwestycje i zarządzanie majątkiem",
"Porównanie ofert finansowych",
"Wsparcie w decyzjach finansowych"
]
},
"links": {
"title": "Linki",
"subtitle": "Przydatne linki i zasoby"
},
"vermoegensverwaltung": {
"title": "Zarządzanie majątkiem",
"subtitle": "Strukturalne planowanie majątku transparentnie i niezależnie",
"description": "Wspieramy Cię w strukturalnym planowaniu majątku transparentnie, niezależnie i zorientowane na Twoje cele.",
"services": [
{
"title": "Analiza majątku",
"description": "Podstawowa analiza Twojej obecnej sytuacji finansowej i majątkowej."
},
{
"title": "Strategia inwestycyjna",
"description": "Opracowanie spersonalizowanej strategii inwestycyjnej zgodnej z Twoimi celami."
},
{
"title": "Dywersyfikacja",
"description": "Dywersyfikacja inwestycji w celu minimalizacji ryzyka i maksymalizacji zysków."
},
{
"title": "Regularny przegląd",
"description": "Regularny przegląd i dostosowanie strategii do zmieniających się warunków."
}
]
},
"investmentbanken": {
"title": "Banki inwestycyjne",
"subtitle": "Nasi partnerzy bankowi",
"description": "Współpracujemy z renomowanymi bankami inwestycyjnymi, aby zapewnić Ci dostęp do najlepszych produktów finansowych.",
"partners": [
{
"name": "Commerzbank",
"url": "https://www.commerzbank.de",
"description": "Jedna z największych niemieckich banków z pełną gamą usług finansowych."
},
{
"name": "Sutor Bank",
"url": "https://www.sutorbank.de",
"description": "Specjalistyczny bank z naciskiem na doradztwo inwestycyjne i zarządzanie majątkiem."
}
]
}
}

Binary file not shown.

View File

@ -0,0 +1 @@
{"title": "Zabezpieczenie emerytalne", "subtitle": "Zadbaj o swoją przyszłość finansową na czas", "topics": {"riester": {"title": "Renta Riester"}, "ruerup": {"title": "Renta Rürup"}, "betrieblich": {"title": "Pracownicze ubezpieczenie emerytalne"}, "privat": {"title": "Prywatne ubezpieczenie emerytalne"}, "kapital": {"title": "Ubezpieczenie na życie z kapitalizacją"}, "fonds": {"title": "Ubezpieczenie powiązane z funduszami"}, "zukunft": {"title": "Zabezpieczenie przyszłości"}, "sparplan": {"title": "Plan oszczędnościowy"}, "investment": {"title": "Fundusze inwestycyjne"}, "etf": {"title": "Plan oszczędnościowy ETF"}}}

Binary file not shown.

View File

@ -13,7 +13,12 @@
"phoneInvalid": "Nieprawidłowy numer telefonu", "phoneInvalid": "Nieprawidłowy numer telefonu",
"successMessage": "Twoja wiadomość została wysłana!", "successMessage": "Twoja wiadomość została wysłana!",
"errorMessage": "Wystąpił błąd. Prosimy spróbować później.", "errorMessage": "Wystąpił błąd. Prosimy spróbować później.",
"notFound": {
"message": "Ups! Nie znaleziono strony",
"backHome": "Wróć na stronę główną"
},
"generalNotice": { "generalNotice": {
"title": "Ważna informacja:",
"text": "Uwaga:\nWskazówki i informacje na tych stronach mają charakter ogólny i niewiążący. To prywatna opinia bez gwarancji poprawności, kompletności ani odpowiedzialności i nie zastępuje indywidualnej porady. Wiążące są wyłącznie warunki ubezpieczenia danego ubezpieczyciela." "text": "Uwaga:\nWskazówki i informacje na tych stronach mają charakter ogólny i niewiążący. To prywatna opinia bez gwarancji poprawności, kompletności ani odpowiedzialności i nie zastępuje indywidualnej porady. Wiążące są wyłącznie warunki ubezpieczenia danego ubezpieczyciela."
}, },
"nav": { "nav": {

View File

@ -0,0 +1,70 @@
{
"title": "OC (rodzina)",
"tabs": {
"overview": "Przegląd",
"details": "Szczegóły",
"form": "Zapytanie",
"claims": "Szkoda",
"catalog": "Poradnik"
},
"overview": {
"badge": "Ochrona przed wysokimi roszczeniami",
"title": "Prywatne OC dla rodzin",
"subtitle": "Dzieci i rodzice pod ochroną",
"description": "Gdy coś się wydarzy, koszty mogą być wysokie. Prywatne OC chroni przed roszczeniami odszkodowawczymi.",
"primaryButton": "Poproś o ofertę",
"secondaryButton": "Konsultacja",
"card1Title": "Ochrona rodziny",
"card1Subtitle": "dzieci w pakiecie",
"card2Title": "Wysoka suma",
"card2Subtitle": "ważne i sensowne",
"rightCardTitle": "Codzienność, zabawa, przypadek",
"rightCardText": "Porównanie szybko i uczciwie."
},
"details": {
"title": "Na co zwrócić uwagę?",
"description": "Suma ubezpieczenia, dzieci nieponoszące winy, szkody w wynajmie, utrata kluczy, ochrona przy braku wypłaty od sprawcy.",
"item1Title": "Brak odpowiedzialności dzieci",
"item1Desc": "Ochrona przy szkodach wyrządzonych przez małe dzieci.",
"item2Title": "Klucze / najem",
"item2Desc": "Ważne elementy w życiu codziennym.",
"tipTitle": "Wskazówka",
"tipSubtitle": "Nie za niska suma",
"tipText": "Obecnie często sensowne jest 1050 mln €."
},
"form": {
"title": "Formularz zapytania",
"subtitle": "Porównamy odpowiednie oferty dla Twojej rodziny.",
"openContact": "Otwórz formularz kontaktowy",
"savePdf": "Zapisz jako PDF",
"directTitle": "Kontakt bezpośredni",
"directSubtitle": "Gdy liczy się czas.",
"phone": "Telefon: 0171 / 9864053",
"email": "E-mail: info@finanzen-mizera.de"
},
"claims": {
"title": "Zgłoszenie szkody",
"subtitle": "Krótka checklista na wypadek szkody.",
"item1Title": "Zabezpiecz dane",
"item1Desc": "Zdjęcia, świadkowie, opisz przebieg.",
"item2Title": "Zgłoś",
"item2Desc": "Pomożemy w likwidacji szkody.",
"noteTitle": "Uwaga",
"noteSubtitle": "Bez uznania winy",
"noteText": "Nie składaj obietnic bez weryfikacji. Najpierw zgłoś."
},
"catalog": {
"title": "Poradnik",
"subtitle": "Typowe pytania rodzin.",
"summaryTitle": "Najważniejsze w skrócie",
"summarySubtitle": "Przykłady szczegóły zależą od taryfy.",
"rows": {
"row1": "Czy dzieci bez odpowiedzialności są objęte?",
"row2": "Czy szkody w wynajmie są w pakiecie?",
"row3": "Czy utrata kluczy jest w pakiecie?",
"row4": "Czy jest ochrona przy braku wypłaty od sprawcy?"
},
"questionTitle": "Pytanie?",
"questionSubtitle": "Doradzimy osobiście."
}
}

View File

@ -0,0 +1,55 @@
{
"title": "Pakiety rodzinne",
"tabs": {
"overview": "Przegląd",
"details": "Szczegóły",
"form": "Zapytanie",
"catalog": "Poradnik"
},
"overview": {
"badge": "Wszystko w jednym miejscu",
"title": "Pakiety rodzinne",
"subtitle": "łącz i oszczędzaj",
"description": "Dzięki pakietom można połączyć zakres ochrony i często zoptymalizować składkę.",
"primaryButton": "Poproś o konsultację",
"secondaryButton": "Kontakt",
"card1Title": "Sensownie",
"card1Subtitle": "dopasowane elementy",
"card2Title": "Rodzina",
"card2Subtitle": "jedna umowa",
"rightCardTitle": "prosto, jasno, dopasowane",
"rightCardText": "Porównamy opcje i wyjaśnimy zrozumiale."
},
"details": {
"title": "Przykłady",
"description": "Wypadek + OC + dodatki zależnie od potrzeb.",
"combosTitle": "Typowe zestawy",
"combosSubtitle": "Przykłady",
"combo1": "Wypadek dziecka + OC",
"combo2": "Zęby + szpital",
"combo3": "Podróż + zagranica",
"tipTitle": "Wskazówka",
"tipSubtitle": "Bez dublowania",
"tipText": "Sprawdzimy, co już masz."
},
"form": {
"title": "Formularz zapytania",
"subtitle": "Zbudujemy pakiet dopasowany do Twojej rodziny.",
"openContact": "Otwórz formularz kontaktowy",
"savePdf": "Zapisz jako PDF",
"directTitle": "Kontakt bezpośredni",
"directSubtitle": "Gdy liczy się czas.",
"phone": "Telefon: 0171 / 9864053",
"email": "E-mail: info@finanzen-mizera.de"
},
"catalog": {
"title": "Poradnik",
"subtitle": "Jak wybrać odpowiedni pakiet.",
"checklistTitle": "Checklista",
"checklistSubtitle": "Przykłady",
"row1": "Jakie ryzyka są ważne?",
"row2": "Budżet miesięczny",
"row3": "Sprawdź obecne umowy",
"row4": "Zakres przed ceną"
}
}

View File

@ -0,0 +1,65 @@
{
"hero": {
"kicker": "Rodzina i dzieci",
"title": "Podróż i zagranica",
"subtitle": "Ubezpieczenie podróżne i więcej",
"primaryCta": "Konsultacja",
"secondaryCta": "Do przeglądu"
},
"tabs": {
"overview": "Przegląd",
"details": "Szczegóły",
"form": "Zapytanie",
"catalog": "Poradnik"
},
"overview": {
"badge": "Bezpieczne podróże z rodziną",
"title": "Ochrona w podróży",
"subtitle": "Ubezpieczenie podróżne i więcej",
"description": "Leczenie za granicą może być kosztowne. Odpowiednia ochrona daje bezpieczeństwo.",
"primaryButton": "Poproś o ofertę",
"secondaryButton": "Konsultacja",
"card1Title": "Na całym świecie",
"card1Subtitle": "również rodzina",
"card2Title": "Szybko",
"card2Subtitle": "w razie potrzeby",
"rightCardTitle": "Wakacje, wizyta, zagranica",
"rightCardText": "Porównanie dopasowane do podróży."
},
"details": {
"title": "Ważne elementy",
"description": "Ubezpieczenie podróżne, transport powrotny, rezygnacja z podróży (wg potrzeb).",
"item1Title": "Transport powrotny",
"item1Desc": "Gdy jest medycznie uzasadniony.",
"item2Title": "Rodzina",
"item2Desc": "Jedna umowa wszyscy chronieni.",
"hintTitle": "Uwaga",
"hintSubtitle": "Karta EKUZ często nie wystarcza",
"hintText": "Prywatne kliniki i transport powrotny często nie są objęte."
},
"form": {
"title": "Formularz zapytania",
"subtitle": "Porównamy odpowiednie oferty dla Twoich podróży.",
"openContact": "Otwórz formularz kontaktowy",
"savePdf": "Zapisz jako PDF",
"directTitle": "Kontakt bezpośredni",
"directSubtitle": "Gdy liczy się czas.",
"phone": "Telefon: 0171 / 9864053",
"email": "E-mail: info@finanzen-mizera.de"
},
"catalog": {
"title": "Poradnik",
"subtitle": "Krótka checklista przed podróżą.",
"checklistTitle": "Checklista",
"checklistSubtitle": "Przykłady zależnie od celu podróży.",
"tipTitle": "Wskazówka",
"tipSubtitle": "Sprawdź wcześniej",
"tipText": "Najlepiej ustalić przed rezerwacją.",
"rows": {
"row1": "Cel i czas trwania",
"row2": "Czy obejmuje transport powrotny?",
"row3": "Taryfa rodzinna vs. indywidualne",
"row4": "Czy potrzebna jest rezygnacja z podróży?"
}
}
}

View File

@ -0,0 +1,62 @@
{
"hero": {
"kicker": "Rodzina i dzieci",
"title": "Zabezpieczenie",
"subtitle": "Ochrona i planowanie",
"primaryCta": "Konsultacja",
"secondaryCta": "Do przeglądu"
},
"tabs": {
"overview": "Przegląd",
"details": "Szczegóły",
"form": "Zapytanie",
"catalog": "Poradnik"
},
"overview": {
"badge": "Zadbaj o finanse",
"title": "Zabezpieczenie rodziny",
"subtitle": "Ochrona i planowanie",
"description": "Zabezpieczenie oznacza ochronę rodziny i planowanie przyszłości jasno i przejrzyście.",
"primaryButton": "Poproś o konsultację",
"secondaryButton": "Kontakt",
"card1Title": "Ochrona",
"card1Subtitle": "mniej ryzyka",
"card2Title": "Plan",
"card2Subtitle": "prosto i jasno",
"rightCardTitle": "Przyszłość rodziny",
"rightCardText": "Wyjaśniamy zrozumiale bez żargonu."
},
"details": {
"title": "Możliwe tematy",
"description": "Ochrona, budowanie majątku, emerytura dopasowane do rodziny.",
"item1Title": "Ochrona ryzyka",
"item1Desc": "np. zabezpieczenie na wypadek utraty dochodu.",
"item2Title": "Majątek",
"item2Desc": "budowanie i porządkowanie.",
"tipTitle": "Wskazówka",
"tipSubtitle": "Zacznij prosto",
"tipText": "Małe kroki są lepsze niż brak działania."
},
"form": {
"title": "Formularz zapytania",
"subtitle": "Opisz krótko wrócimy z propozycjami.",
"openContact": "Otwórz formularz kontaktowy",
"savePdf": "Zapisz jako PDF",
"directTitle": "Kontakt bezpośredni",
"directSubtitle": "Gdy liczy się czas.",
"phone": "Telefon: 0171 / 9864053",
"email": "E-mail: info@finanzen-mizera.de"
},
"catalog": {
"title": "Poradnik",
"subtitle": "Na co rodziny często zwracają uwagę.",
"checklistTitle": "Checklista",
"checklistSubtitle": "Przykłady",
"rows": {
"row1": "Miesięczny budżet",
"row2": "Cele (szkoła, dom, emerytura)",
"row3": "Bufor bezpieczeństwa",
"row4": "Obecne umowy"
}
}
}

View File

@ -1,42 +1 @@
{ {"hero": {"kicker": "Finanse", "title": "Bezpieczeństwo finansowe z planem", "subtitle": "Niezależne doradztwo w zakresie budowania majątku, zabezpieczenia emerytalnego i finansowania zrozumiałe i transparentne.", "primaryCta": "Skonsultuj się teraz", "secondaryCta": "Wszystkie usługi"}, "section": {"title": "Rozwiązania finansowe", "subtitle": "Oferujemy kompleksowe doradztwo finansowe dla wszystkich obszarów życia od zabezpieczenia emerytalnego po finansowanie nieruchomości."}, "services": {"finanzberatung": {"title": "Doradztwo finansowe", "description": "Kompleksowe doradztwo dla Twojej przyszłości finansowej", "features": {"vermoegen": "Budowanie majątku", "altersvorsorge": "Zabezpieczenie emerytalne", "sparplaene": "Plany oszczędnościowe", "investment": "Doradztwo inwestycyjne", "steuer": "Planowanie podatkowe"}}, "vorsorge": {"title": "Rozwiązania zabezpieczające", "description": "Bezpieczne zabezpieczenie dla wszystkich faz życia", "features": {"privat": "Prywatne ubezpieczenie emerytalne", "riester": "Renta Riester", "ruerup": "Renta Rürup", "betrieblich": "Pracownicze ubezpieczenie emerytalne"}}, "vermoegen": {"title": "Zarządzanie majątkiem", "description": "Profesjonalne zarządzanie Twoim majątkiem", "features": {"fonds": "Doradztwo funduszowe", "aktien": "Doradztwo akcyjne", "immobilien": "Finansowanie nieruchomości", "nachlass": "Planowanie spadku"}}, "kredit": {"title": "Doradztwo kredytowe", "description": "Optymalne rozwiązania finansowania", "features": {"haus": "Finansowanie domu", "vergleich": "Porównanie kredytów", "umschuldung": "Refinansowanie", "foerderung": "Doradztwo dotacyjne"}}}, "highlights": {"unabhaengig": "Niezależne i obiektywne doradztwo", "transparent": "Transparentna struktura kosztów", "individuell": "Indywidualne podejścia", "langfristig": "Długoterminowe strategie zamiast krótkoterminowych trendów", "ueberpruefung": "Regularna weryfikacja i dostosowanie", "verstaendlich": "Zrozumiałe rekomendacje bez żargonu branżowego"}}
"hero": {
"kicker": "Finanse i zabezpieczenie",
"title": "Bezpieczeństwo finansowe z planem.",
"subtitle": "Niezależne doradztwo w zakresie budowania majątku, emerytury i finansowania jasno i przejrzyście.",
"primaryCta": "Umów konsultację",
"secondaryCta": "Wszystkie usługi"
},
"intro": {
"title": "Finanse i zabezpieczenie",
"subtitle": "Budowanie majątku, zabezpieczenie i finansowanie przejrzyście i zrozumiale."
},
"services": {
"title": "Nasze usługi w skrócie"
},
"tabs": {
"finanzberatung": "Doradztwo finansowe",
"vorsorge": "Rozwiązania emerytalne",
"vermoegen": "Zarządzanie majątkiem",
"kredit": "Doradztwo kredytowe"
},
"badge": {
"since1994": "Po Twojej stronie od 1994"
},
"finanzberatung": {
"headline": "Doradztwo finansowe",
"subheadline": "Majątek, zabezpieczenie, plan",
"welcome": "Witamy",
"lead": "Kompleksowe doradztwo dla Twojej przyszłości finansowej",
"featuresTitle": "Zakres",
"primaryCta": "Umów konsultację",
"secondaryCta": "Zobacz usługi",
"imageCaption": "Plan finansowy przejrzyście i zgodnie z Twoimi celami."
},
"highlightsTitle": "Czego możesz od nas oczekiwać",
"contact": {
"title": "Indywidualne doradztwo finansowe",
"subtitle": "Wspólnie opracujemy strategię dopasowaną do Twojej sytuacji i celów.",
"primaryCta": "Umów konsultację",
"secondaryCta": "Skontaktuj się"
}
}

Binary file not shown.

View File

@ -1,88 +1 @@
{ {"topics": {"flotten": {"title": "Ubezpieczenie flot", "subtitle": "Optymalna ochrona dla Twojej floty\nBezpieczne i ekonomiczne.", "links": {"management": "Zarządzanie flotą"}}, "betriebsrente": {"title": "Emerytura pracownicza (BAV)", "subtitle": "Zabezpieczenie emerytalne dla pracowników\nRozwiązania na przyszłość.", "links": {"vorsorge": "Zabezpieczenie pracowników"}}, "betriebskranken": {"title": "Ubezpieczenie chorobowe pracownicze", "subtitle": "Ochrona zdrowia dla Twojego zespołu\nWysokie świadczenia.", "links": {"gesundheit": "Ochrona zdrowia pracowników"}}, "cyber": {"title": "Ubezpieczenie cybernetyczne", "subtitle": "Ochrona przed cyfrowymi ryzykami\nBezpieczeństwo dla Twojej firmy.", "links": {"digital": "Ochrona cyfrowa"}}, "gebaeude": {"title": "Ubezpieczenie budynków", "subtitle": "Kompletna ochrona nieruchomości\nObiekty mieszkalne i komercyjne.", "links": {"immobilien": "Ochrona nieruchomości"}}, "rechtsschutz": {"title": "Ochrona prawna firmowa", "subtitle": "Bezpieczeństwo prawne dla firm\nPrewencja i reprezentacja.", "links": {"recht": "Ochrona prawna"}}, "risiko": {"title": "Ochrona ryzyka firmowego", "subtitle": "Kompleksowa ochrona dla firm\nIndywidualne rozwiązania.", "links": {"unternehmensschutz": "Ochrona firmy"}}, "sach": {"title": "Ubezpieczenie majątkowe", "subtitle": "Ochrona majątku firmowego\nWartości i wyposażenie.", "links": {"vermoegen": "Majątek firmowy"}}, "umwelt": {"title": "Odpowiedzialność cywilna za szkody środowiskowe", "subtitle": "Ochrona środowiskowa\nOchrona przed ryzykami ekologicznymi.", "links": {"umweltschutz": "Ochrona środowiska"}}, "vermoegenssicherung": {"title": "Zabezpieczenie majątku", "subtitle": "Zabezpieczenie majątku firmowego\nIndywidualne koncepcje.", "links": {"vermoegen": "Majątek firmy"}}}}
"cta": {
"title": "Gotowy na optymalną ochronę?",
"contact": "Skontaktuj się",
"service": "Nasze usługi",
"subtitle": "Skontaktuj się z nami w sprawie niezobowiązującej konsultacji"
},
"hero": {
"kicker": "Ubezpieczenia dla firm",
"title": "Bezpieczeństwo dla Twojej firmy.",
"secondaryCta": "Wszystkie usługi",
"primaryCta": "Skorzystaj z konsultacji",
"subtitle": "Profesjonalne doradztwo ubezpieczeniowe dla firm i osób samozatrudnionych indywidualnie, przejrzyście i rzetelnie."
},
"benefits": {
"items": [
{
"description": "Korzystne warunki dzięki dobrym relacjom z wiodącymi ubezpieczycielami",
"title": "Przewaga konkurencyjna"
},
{
"description": "Wszystko w jednym miejscu od doradztwa po likwidację szkód",
"title": "Oszczędność czasu"
},
{
"description": "Indywidualna analiza ryzyka dla najlepszego stosunku ceny do zakresu",
"title": "Optymalizacja kosztów"
},
{
"description": "Dedykowany opiekun w sprawach ubezpieczeniowych",
"title": "Osobista opieka"
}
],
"title": "Twoje korzyści jako klient firmowy"
},
"services": {
"items": [
{
"title": "Ubezpieczenia firmowe",
"description": "Kompleksowa ochrona Twojej firmy",
"features": [
"OC działalności",
"Ubezpieczenie mienia firmowego",
"Ubezpieczenie przerw w działalności"
]
},
{
"title": "Ubezpieczenie floty",
"description": "Optymalne rozwiązania dla floty pojazdów",
"features": [
"Ubezpieczenie flotowe",
"Ubezpieczenie transportowe",
"NNW kierowcy"
]
},
{
"title": "Ochrona pracowników",
"description": "Bezpieczeństwo dla Twoich pracowników",
"features": [
"Ubezpieczenie wypadkowe",
"Ubezpieczenie zasiłku chorobowego",
"Zabezpieczenie emerytalne"
]
},
{
"title": "Zarządzanie majątkiem",
"description": "Strategiczne zabezpieczenie majątku firmy",
"features": [
"OC szkód majątkowych",
"Ubezpieczenie D\u0026O",
"Ubezpieczenie ochrony prawnej"
]
}
],
"title": "Rozwiązania dla firm"
},
"focus": {
"title": "Nasze obszary specjalizacji",
"items": {
"risk": "Ochrona ryzyka",
"property": "Ubezpieczenia majątkowe",
"fleet": "Ubezpieczenie flotowe",
"assets": "Zabezpieczenie majątku",
"liability": "OC działalności"
},
"learnMore": "Dowiedz się więcej"
}
}

Binary file not shown.

View File

@ -0,0 +1,19 @@
{
"meta": {
"title": "Ochrona zdrowia - Agentur Mizera",
"description": "Ochrona zdrowia: kompleksowa profilaktyka i prewencja. Niezależne doradztwo we wszystkich obszarach ochrony zdrowia."
},
"hero": {
"title": "Ochrona zdrowia",
"subtitle": "Kompleksowa ochrona zdrowia - w kraju i za granicą",
"primaryCta": "Umów konsultację",
"secondaryCta": "Rozpocznij porównanie"
},
"tiles": {
"title": "Wybierz zakres ochrony",
"subtitle": "Oferujemy rozwiązania dopasowane do wszystkich obszarów ochrony zdrowia",
"pkv": "Prywatne ubezpieczenie zdrowotne",
"zahn": "Dodatkowe ubezpieczenie stomatologiczne",
"ausland": "Ubezpieczenie podróżne"
}
}

View File

@ -98,6 +98,92 @@
"gesundheitsvorsorge": { "description": "Profilaktyka i prewencja" } "gesundheitsvorsorge": { "description": "Profilaktyka i prewencja" }
}, },
"topTopics": {
"kicker": "Bestsellery",
"title": "Najpopularniejsze tematy",
"subtitle": "Wybierz temat i zacznij w kilka kliknięć.",
"allTopics": "Pokaż wszystkie tematy",
"items": {
"kfz": {
"title": "Ubezpieczenie KFZ",
"description": "Porównaj oferty i szybko wybierz odpowiednią ochronę.",
"cta": "Dowiedz się więcej"
},
"privatkunden": {
"title": "Klienci prywatni",
"description": "Ubezpieczenia dla życia codziennego, rodziny i domu.",
"cta": "Dowiedz się więcej"
},
"gesundheit": {
"title": "Ochrona zdrowia",
"description": "Indywidualna ochrona zdrowotna dopasowana do Ciebie.",
"cta": "Więcej informacji"
},
"zahnzusatz": {
"title": "Dodatkowe ubezpieczenie stomatologiczne",
"description": "Uzupełnienia i leczenie zębów dopasowane do potrzeb: wybierz zakres świadczeń, który Ci odpowiada.",
"cta": "Dowiedz się więcej"
},
"ausland": {
"title": "Ubezpieczenie zdrowotne w podróży",
"description": "Bezpiecznie na urlopie: ochrona na całym świecie dla opieki medycznej.",
"cta": "Dowiedz się więcej"
},
"sterbegeld": {
"title": "Ubezpieczenie pogrzebowe",
"description": "Zadbaj o bliskich: bezpieczeństwo finansowe na wypadek śmierci.",
"cta": "Dowiedz się więcej"
},
"rechtsschutz": {
"title": "Ubezpieczenie ochrony prawnej",
"description": "Chroń swoje prawa dobierz odpowiednie moduły.",
"cta": "Więcej informacji"
},
"senioren": {
"title": "Seniorzy",
"description": "Bezpieczeństwo i komfort rozwiązania na każdym etapie życia.",
"cta": "Wszystkie tematy"
},
"finanzen": {
"title": "Finanse",
"description": "Budowanie majątku, emerytura i finansowanie.",
"cta": "Przejdź do strony"
}
}
},
"topTopicsExtra": {
"kicker": "Dodatkowe tematy",
"title": "Więcej ochrony dopasowane do Twojej sytuacji",
"subtitle": "Popularne ubezpieczenia dodatkowe krótko, jasno i z możliwością zapytania.",
"items": {
"zahnzusatz": {
"title": "Ubezpieczenie stomatologiczne porównanie",
"description": "Uzupełnienia i leczenie zębów dopasowane do potrzeb: wybierz zakres świadczeń, który Ci odpowiada.",
"cta": "Dowiedz się więcej",
"pricePrefix": "np.",
"priceValue": "21.95",
"priceUnit": "miesięcznie"
},
"ausland": {
"title": "Ubezpieczenie zdrowotne w podróży",
"description": "Bezpiecznie na urlopie: z ubezpieczeniem zdrowotnym w podróży ochrona na całym świecie dla opieki medycznej.",
"cta": "Dowiedz się więcej",
"pricePrefix": "np. od",
"priceValue": "9.90",
"priceUnit": "rocznie"
},
"sterbegeld": {
"title": "Ubezpieczenie pogrzebowe",
"description": "Zadbaj o bliskich: bezpieczeństwo finansowe na wypadek śmierci.",
"cta": "Dowiedz się więcej",
"pricePrefix": "np.\nPrzykład składki",
"priceValue": "40,75",
"priceUnit": "miesięcznie dla sumy ubezpieczenia 12 500 €\n• Kobiety/Mężczyźni: od 53 lat"
}
}
},
"experience": { "experience": {
"title": "Ponad {{years}} lata doświadczenia", "title": "Ponad {{years}} lata doświadczenia",
"description": "Od 1994 roku oferuję moim klientom w Düsseldorfie i okolicach profesjonalne i niezależne doradztwo ubezpieczeniowe. Moim celem jest znalezienie dla każdego optymalnej ochrony na uczciwych warunkach." "description": "Od 1994 roku oferuję moim klientom w Düsseldorfie i okolicach profesjonalne i niezależne doradztwo ubezpieczeniowe. Moim celem jest znalezienie dla każdego optymalnej ochrony na uczciwych warunkach."

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
{"title": "List ochrony przed chorobami", "subtitle": "Kompleksowa ochrona w przypadku ciężkich chorób", "tabs": {"overview": "Przegląd", "details": "Szczegóły", "calculator": "Kalkulator", "form": "Zapytanie", "brochure": "PDF"}}

Binary file not shown.

View File

@ -28,5 +28,6 @@
"accidentInsurance": "Ubezpieczenie od wypadków", "accidentInsurance": "Ubezpieczenie od wypadków",
"service": "Serwis", "service": "Serwis",
"carInsurance": "Ubezpieczenie komunikacyjne", "carInsurance": "Ubezpieczenie komunikacyjne",
"propertyInsurance": "Ubezpieczenia majątkowe" "propertyInsurance": "Ubezpieczenia majątkowe",
"houseAndApartment": "Dom i mieszkanie"
} }

View File

@ -1,67 +1 @@
{ {"topics": {"kfz": "Pojazdy KFZ", "sach": "Ubezpieczenia majątkowe", "gesundheit": "Ochrona zdrowia", "vermoegen": "Zabezpieczenie majątku", "risiko": "Ochrona ryzyka", "altersvorsorge": "Zabezpieczenie emerytalne"}, "services": {"kfz": {"title": "Ubezpieczenie KFZ", "description": "Doskonała ochrona dla Twojego pojazdu - indywidualna i sprawiedliwa", "features": {"auto": "Ubezpieczenie auta", "motorrad": "Ubezpieczenie motocykla", "quad": "Ubezpieczenie quada", "fairmobil": "FairMobil", "drittfahrer": "Ochrona kierowcy", "flotte": "Ubezpieczenie floty"}}, "sach": {"title": "Ubezpieczenia majątkowe", "description": "Najlepsza ochrona Twojego mienia", "features": {"hausrat": "Ubezpieczenie mienia ruchomego", "unfall": "Ubezpieczenie od wypadków"}}, "gesundheit": {"title": "Ochrona zdrowia", "description": "Optymalna opieka medyczna dla całej rodziny", "features": {"pkv": "Prywatne ubezpieczenie zdrowotne", "zahn": "Dodatkowe ubezpieczenie stomatologiczne", "ausland": "Ubezpieczenie podróżne", "krankengeld": "Ubezpieczenie chorobowe"}}, "vermoegen": {"title": "Zabezpieczenie majątku", "description": "Zabezpiecz swoją przyszłość finansową", "features": {"altersvorsorge": "Zabezpieczenie emerytalne", "risiko": "Ubezpieczenie na życie i ryzyko", "beruf": "Ubezpieczenie od niezdolności do pracy"}}, "risiko": {"title": "Ochrona ryzyka", "description": "Kompleksowa ochrona na wszystkie sytuacje życiowe", "features": {"haftpflicht": "Prywatne ubezpieczenie odpowiedzialności", "rechtsschutz": "Ochrona prawna", "unfall": "Ubezpieczenie od wypadków"}}}, "details": {"label": "Szczegóły:", "kfz": {"autoversicherung": "Ubezpieczenie auta", "motorradversicherung": "Ubezpieczenie motocykla", "quadversicherung": "Ubezpieczenie quada", "fairmobil": "FairMobil", "drittfahrerSchutz": "Ochrona kierowcy", "flottenversicherung": "Ubezpieczenie floty"}, "sach": {"hausratversicherung": "Ubezpieczenie mienia ruchomego", "wohngebaeudeversicherung": "Ubezpieczenie budynku", "unfallversicherung": "Ubezpieczenie od wypadków"}, "gesundheit": {"privateKrankenversicherung": "Prywatne ubezpieczenie zdrowotne", "zahnzusatzversicherung": "Dodatkowe ubezpieczenie stomatologiczne", "auslandsreisekrankenversicherung": "Ubezpieczenie podróżne"}, "vermoegen": {"lebensversicherung": "Ubezpieczenie na życie", "risikolebensversicherung": "Ubezpieczenie na życie (ryzyko)", "wohngebaeudeversicherung": "Ubezpieczenie budynku"}, "risiko": {"unfallversicherung": "Ubezpieczenie od wypadków", "rechtsschutzversicherung": "Ochrona prawna"}, "altersvorsorge": {"privateRentenversicherung": "Prywatne ubezpieczenie emerytalne", "riester": "Emerytura Riester", "ruerup": "Emerytura Rürup", "bav": "Pracowniczy program emerytalny"}}, "benefits": {"title": "Twoje korzyści jako klient prywatny", "subtitle": "Oferujemy rozwiązania dopasowane do Twojej indywidualnej ochrony", "items": {"protection": {"title": "Kompleksowa ochrona", "desc": "Na wszystkie sytuacje życiowe"}, "family": {"title": "Przyjazne rodzinie", "desc": "Optymalne rozwiązania dla rodzin"}, "optimization": {"title": "Optymalizacja umów", "desc": "Poprawa istniejących polis"}, "fastHelp": {"title": "Szybka pomoc", "desc": "Sprawna likwidacja szkód"}, "transparentCosts": {"title": "Przejrzyste koszty", "desc": "Bez ukrytych opłat"}, "localSupport": {"title": "Osobista opieka", "desc": "Na miejscu, blisko Ciebie"}}}, "contactCta": {"title": "Skontaktuj się z nami", "subtitle": "Umów się na niezobowiązującą konsultację w sprawie rozwiązań dla klientów prywatnych.", "call": "Zadzwoń teraz", "requestOffer": "Poproś o ofertę"}}
"title": "Klienci prywatni",
"subtitle": "Dostosowane rozwiązania ubezpieczeniowe dla gospodarstw domowych",
"hero": {
"kicker": "Ubezpieczenia dla klientów prywatnych",
"title": "Bezpieczeństwo dla Twojej rodziny i domu.",
"subtitle": "Indywidualne doradztwo dla każdego obszaru życia od ubezpieczenia komunikacyjnego po zabezpieczenie emerytalne.",
"primaryCta": "Skorzystaj z konsultacji",
"secondaryCta": "Wszystkie usługi"
},
"topics": {
"title": "Tematy dla klientów prywatnych",
"subtitle": "Najważniejsze ubezpieczenia dla Twojego prywatnego zabezpieczenia"
},
"services": [
{
"title": "Opieka zdrowotna",
"description": "Optymalna opieka medyczna dla całej rodziny",
"features": [
"Prywatne ubezpieczenie zdrowotne",
"Ubezpieczenie dodatkowe stomatologiczne",
"Ubezpieczenie podróżne za granicą",
"Ubezpieczenie zasiłku chorobowego"
]
},
{
"title": "Ochrona przed ryzykiem",
"description": "Kompleksowa ochrona we wszystkich obszarach życia",
"features": [
"Ubezpieczenie od wypadków",
"Ubezpieczenie OC",
"Ubezpieczenie ochrony prawnej"
]
},
{
"title": "Zabezpieczenie majątku",
"description": "Ochrona Twojego dorobku życia i Twojej rodziny",
"features": [
"Ubezpieczenie na życie",
"Ubezpieczenie ryzykowne na życie",
"Ubezpieczenie budynków mieszkalnych",
"Ubezpieczenie gospodarstwa domowego"
]
},
{
"title": "Zabezpieczenie na przyszłość",
"description": "Beztroska przyszłość dla Ciebie i Twoich bliskich",
"features": [
"Prywatne ubezpieczenie emerytalne",
"Renta Riester",
"Renta Rürup",
"Pracownicze ubezpieczenie emerytalne"
]
}
],
"contactTitle": "Porady osobiste",
"contactDescription": "Skorzystaj z porady naszych ekspertów i znajdź optymalne ubezpieczenie dla Twoich potrzeb.",
"phoneButton": "Poradź się teraz",
"emailButton": "Poproś o ofertę",
"submenu": {
"title": "Podmenu",
"kfz": "Ubezpieczenie komunikacyjne",
"hausrat": "Ubezpieczenie mieszkania",
"haftpflicht": "Odpowiedzialność cywilna",
"unfall": "Ubezpieczenie od wypadków"
}
}

Binary file not shown.

View File

@ -0,0 +1 @@
{"title": "Ubezpieczenie na życie i ryzyko", "subtitle": "Optymalna ochrona dla Twojej rodziny w przypadku śmierci", "tabs": {"overview": "Przegląd", "details": "Szczegóły", "calculator": "Kalkulator", "form": "Zapytanie", "brochure": "PDF"}, "buttons": {"consultation": "Skonsultuj się teraz", "calculator": "Oblicz składkę"}, "overview": {"subtitle": "Optymalna ochrona Twojej rodziny", "tagline": "Bezpieczeństwo finansowe dla Twoich bliskich", "description": "Ubezpieczenie na życie i ryzyko oferuje czystą ochronę na wypadek śmierci za niskie składki. W przypadku śmierci ubezpieczonej osoby, uzgodniona suma ubezpieczenia zostanie wypłacona spadkobiercom.", "benefit1": {"title": "Czysta ochrona ryzyka", "description": "Brak oszczędności - tylko ochrona na wypadek śmierci"}, "benefit2": {"title": "Niskie składki", "description": "Znacznie tańsze niż ubezpieczenie na życie z oszczędnościami"}, "benefit3": {"title": "Elastyczny okres", "description": "Dostosowane do Twojej indywidualnej sytuacji"}, "features": {"title": "Świadczenia w przeglądzie", "item1": "Świadczenie na wypadek śmierci", "item2": "Możliwe zabezpieczenie kredytu", "item3": "Zwolnienie z podatku (§20 EStG)", "item4": "Niezależny wybór taryfy"}}, "details": {"title": "Szczegóły ubezpieczenia na życie i ryzyko", "what": {"title": "Co to jest ubezpieczenie na życie i ryzyko?", "description": "Ubezpieczenie na życie i ryzyko to czysta ubezpieczenie ryzyka, które wypłaca tylko w przypadku śmierci ubezpieczonej osoby. W przeciwieństwie do ubezpieczenia na życie z oszczędnościami, nie zawiera części oszczędnościowej i jest więc znacznie tańsze."}, "features": {"title": "Najważniejsze cechy", "item1": "Czysta ochrona na wypadek śmierci bez tworzenia kapitału", "item2": "Niskie miesięczne składki", "item3": "Elastyczne sumy ubezpieczenia (typowo 100.000 - 1.000.000)", "item4": "Okresy głównie 10, 15, 20 lub 30 lat", "item5": "Zwolniona z podatku wypłata dla spadkobierców"}, "suitable": {"title": "Dla kogo odpowiednie?", "item1": "Rodziny z dziećmi do zabezpieczenia utraty dochodu", "item2": "Właściciele domów do zabezpieczenia kredytów hipotecznych", "item3": "Samozatrudnieni do zabezpieczenia partnerów biznesowych", "item4": "Wszyscy, którzy chcą finansowo zabezpieczyć spadkobierców"}}, "benefits": {"family": {"title": "Ochrona rodziny", "description": "Zabezpiecza finansowo Twoją rodzinę"}, "death": {"title": "Ochrona na wypadek śmierci", "description": "Wypłata w przypadku śmierci ubezpieczonej osoby"}, "cheap": {"title": "Niskie składki", "description": "Czysta ochrona ryzyka bez części oszczędnościowej"}, "easy": {"title": "Łatwe zawarcie", "description": "Szybkie i nieskomplikowane podpisanie umowy"}}}

Binary file not shown.

View File

@ -0,0 +1,14 @@
{
"hero": {
"title": "Ochrona ryzyka",
"subtitle": "Kompleksowa ochrona dla Ciebie i Twojej rodziny w nieprzewidzianych sytuacjach"
},
"topics": {
"unfall": "Ubezpieczenie od wypadków",
"bu": "Ubezpieczenie od niezdolności do pracy",
"haftpflicht": "Ubezpieczenie OC",
"rechtsschutz": "Ubezpieczenie ochrony prawnej",
"tierhalter": "OC posiadacza zwierząt",
"dread": "Ubezpieczenie na wypadek poważnych chorób"
}
}

View File

@ -0,0 +1,14 @@
{
"hero": {
"title": "Ubezpieczenia majątkowe",
"subtitle": "Ochrona Twojego mienia - od wyposażenia domu po nieruchomość"
},
"topics": {
"hausrat": "Ubezpieczenie mienia ruchomego",
"wohngebaeude": "Ubezpieczenie budynku",
"haftpflicht": "Ubezpieczenie OC",
"tiere": "Ubezpieczenie zwierząt",
"rechtsschutz": "Ubezpieczenie ochrony prawnej",
"elektro": "Ubezpieczenie sprzętu elektronicznego"
}
}

View File

@ -0,0 +1 @@
{"title": "Ochrona Majątku", "subtitle": "Zabezpiecz swój majątek i buduj bogactwo", "topics": {"lebensversicherung": "Ubezpieczenie na życie", "risikolebensversicherung": "Ubezpieczenie na życie i ryzyko", "krankheitsschutzbrief": "List ochrony przed chorobami", "wohngebaeudeversicherung": "Ubezpieczenie budynku mieszkalnego", "altersvorsorge": "Ubezpieczenie emerytalne", "gesundheitsvorsorge": "Ochrona zdrowia", "risikoschutz": "Ochrona przed ryzykiem"}}

Binary file not shown.

View File

@ -54,6 +54,8 @@ import SeniorenSterbegeldversicherung from "./pages/SeniorenSterbegeldversicheru
import PrivateKrankenversicherung from "./pages/PrivateKrankenversicherung"; import PrivateKrankenversicherung from "./pages/PrivateKrankenversicherung";
import Zahnzusatzversicherung from "./pages/Zahnzusatzversicherung"; import Zahnzusatzversicherung from "./pages/Zahnzusatzversicherung";
import Auslandsreisekrankenversicherung from "./pages/Auslandsreisekrankenversicherung"; import Auslandsreisekrankenversicherung from "./pages/Auslandsreisekrankenversicherung";
import Risikolebensversicherung from "./pages/Risikolebensversicherung";
import Krankheitsschutzbrief from "./pages/Krankheitsschutzbrief";
import Gesundheitsvorsorge from "./pages/Gesundheitsvorsorge"; import Gesundheitsvorsorge from "./pages/Gesundheitsvorsorge";
import Altersvorsorge from "./pages/Altersvorsorge"; import Altersvorsorge from "./pages/Altersvorsorge";
import Risikoschutz from "./pages/Risikoschutz"; import Risikoschutz from "./pages/Risikoschutz";
@ -117,7 +119,7 @@ const App = () => {
<Toaster /> <Toaster />
<Sonner /> <Sonner />
<ErrorBoundary> <ErrorBoundary>
<BrowserRouter> <BrowserRouter basename={import.meta.env.BASE_URL}>
<Routes> <Routes>
<Route path="/" element={<Index />} /> <Route path="/" element={<Index />} />
<Route path="/kfz" element={<KFZ />} /> <Route path="/kfz" element={<KFZ />} />
@ -168,6 +170,8 @@ const App = () => {
<Route path="/private-krankenversicherung" element={<PrivateKrankenversicherung />} /> <Route path="/private-krankenversicherung" element={<PrivateKrankenversicherung />} />
<Route path="/zahnzusatzversicherung" element={<Zahnzusatzversicherung />} /> <Route path="/zahnzusatzversicherung" element={<Zahnzusatzversicherung />} />
<Route path="/auslandsreisekrankenversicherung" element={<Auslandsreisekrankenversicherung />} /> <Route path="/auslandsreisekrankenversicherung" element={<Auslandsreisekrankenversicherung />} />
<Route path="/risikolebensversicherung" element={<Risikolebensversicherung />} />
<Route path="/krankheitsschutzbrief" element={<Krankheitsschutzbrief />} />
<Route path="/gesundheitsvorsorge" element={<Gesundheitsvorsorge />} /> <Route path="/gesundheitsvorsorge" element={<Gesundheitsvorsorge />} />
<Route path="/altersvorsorge" element={<Altersvorsorge />} /> <Route path="/altersvorsorge" element={<Altersvorsorge />} />
<Route path="/risikoschutz" element={<Risikoschutz />} /> <Route path="/risikoschutz" element={<Risikoschutz />} />

View File

@ -1,18 +1,24 @@
import { AlertTriangle } from 'lucide-react'; import { AlertTriangle } from 'lucide-react';
import { useTranslation } from 'react-i18next';
type Props = { type Props = {
className?: string; className?: string;
}; };
export default function GeneralNotice({ className }: Props) { export default function GeneralNotice({ className }: Props) {
const { t } = useTranslation('common');
return ( return (
<div className={className ?? 'mt-8 rounded-md border border-amber-200 bg-amber-50/80 p-4'}> <div className={className ?? 'mt-8 rounded-md border border-amber-200 bg-amber-50/80 p-4'}>
<div className="flex items-start gap-3"> <div className="flex items-start gap-3">
<AlertTriangle className="w-6 h-6 text-amber-600 mt-0.5 flex-shrink-0" /> <AlertTriangle className="w-6 h-6 text-amber-600 mt-0.5 flex-shrink-0" />
<div className="text-base text-amber-800 leading-relaxed"> <div className="text-base text-amber-800 leading-relaxed">
<h4 className="font-semibold mb-2">Wichtiger Hinweis:</h4> <h4 className="font-semibold mb-2">{t('generalNotice.title', 'Wichtiger Hinweis:')}</h4>
<p> <p>
Die auf diesen Seiten enthaltenen Tipps und Informationen stellen allgemeine, unverbindliche Hinweise zu Versicherungen dar. Es handelt sich um eine private Meinungsäußerung ohne Anspruch auf Richtigkeit, Vollständigkeit oder Haftung und ersetzt keine individuelle Beratung. Maßgeblich sind ausschließlich die jeweiligen Versicherungsbedingungen des Versicherungsunternehmens. {t(
'generalNotice.text',
'Die auf diesen Seiten enthaltenen Tipps und Informationen stellen allgemeine, unverbindliche Hinweise zu Versicherungen dar. Es handelt sich um eine private Meinungsäußerung ohne Anspruch auf Richtigkeit, Vollständigkeit oder Haftung und ersetzt keine individuelle Beratung. Maßgeblich sind ausschließlich die jeweiligen Versicherungsbedingungen des Versicherungsunternehmens.'
)}
</p> </p>
</div> </div>
</div> </div>

View File

@ -18,6 +18,8 @@ const Header = () => {
const navigation = [ const navigation = [
{ name: t('home'), href: '/', icon: Home }, { name: t('home'), href: '/', icon: Home },
{ name: t('privateCustomers'), href: '/privatkunden', icon: Users }, { name: t('privateCustomers'), href: '/privatkunden', icon: Users },
{ name: t('houseAndApartment', 'Haus & Wohnung'), href: '/sachversicherung', icon: Home },
{ name: t('health', 'Gesundheit'), href: '/gesundheitsvorsorge', icon: Shield },
{ name: t('familiesAndChildren', 'Familien & Kinder'), href: '/familien-kinder', icon: Users }, { name: t('familiesAndChildren', 'Familien & Kinder'), href: '/familien-kinder', icon: Users },
{ name: t('seniors'), href: '/senioren', icon: Shield }, { name: t('seniors'), href: '/senioren', icon: Shield },
{ name: t('businessCustomers'), href: '/geschaeftskunden', icon: Truck }, { name: t('businessCustomers'), href: '/geschaeftskunden', icon: Truck },
@ -35,11 +37,80 @@ const Header = () => {
{ name: t('accidentInsurance', 'Unfall'), href: '/unfall', icon: Shield }, { name: t('accidentInsurance', 'Unfall'), href: '/unfall', icon: Shield },
{ name: t('carInsurance', 'KFZ'), href: '/kfz', icon: Truck }, { name: t('carInsurance', 'KFZ'), href: '/kfz', icon: Truck },
{ name: t('services', 'Leistungen'), href: '/leistungen', icon: FileText }, { name: t('services', 'Leistungen'), href: '/leistungen', icon: FileText },
{ name: 'Risikolebensversicherung', href: '/risikolebensversicherung', icon: Shield },
{ name: 'Sterbegeldversicherung', href: '/senioren-sterbegeldversicherung', icon: Shield },
{ name: 'Sterbegeld', href: '/senioren-sterbegeldversicherung', icon: Shield },
{ name: 'Bestattungsvorsorge', href: '/senioren-sterbegeldversicherung', icon: Shield },
{ name: 'Krankheits-Schutzbrief', href: '/krankheitsschutzbrief', icon: Shield },
{ name: 'Vermögenssicherung', href: '/vermoegenssicherung', icon: Shield },
{ name: 'Autoversicherung', href: '/autoversicherung', icon: Truck },
{ name: 'Motorradversicherung', href: '/motorradversicherung', icon: Truck },
{ name: 'Quadversicherung', href: '/quadversicherung', icon: Truck },
{ name: 'Quad', href: '/quadversicherung', icon: Truck },
{ name: 'FairMobil', href: '/fairmobil', icon: Truck },
{ name: 'Flottenversicherung', href: '/flottenversicherung', icon: Truck },
{ name: 'Drittfahrer-Schutz', href: '/drittfahrer-schutz', icon: Shield },
{ name: 'Hausratversicherung', href: '/hausratversicherung', icon: Shield },
{ name: 'Wohngebäudeversicherung', href: '/hausrat', icon: Shield },
{ name: 'Haftpflichtversicherung', href: '/haftpflicht', icon: Shield },
{ name: 'Haftpflicht', href: '/haftpflicht', icon: Shield },
{ name: 'Rechtsschutzversicherung', href: '/rechtsschutzversicherung', icon: Shield },
{ name: 'Tierversicherung', href: '/tierversicherung', icon: Shield },
{ name: 'Hundeversicherung', href: '/tierversicherung/hunde', icon: Shield },
{ name: 'Pferdeversicherung', href: '/tierversicherung/pferde', icon: Shield },
{ name: 'Katzenversicherung', href: '/tierversicherung/katzen', icon: Shield },
{ name: 'Familien & Kinder', href: '/familien-kinder', icon: Users },
{ name: 'Kinderunfall', href: '/familien-kinder/kinderunfall', icon: Shield },
{ name: 'Kinder Gesundheit', href: '/familien-kinder/gesundheit', icon: Shield },
{ name: 'Kinder Zahn', href: '/familien-kinder/gesundheit/zahn', icon: Shield },
{ name: 'Familien Reise', href: '/familien-kinder/reise', icon: Shield },
{ name: 'Familien Vorsorge', href: '/familien-kinder/vorsorge', icon: Shield },
{ name: 'Private Krankenversicherung', href: '/private-krankenversicherung', icon: Shield },
{ name: 'Zahnzusatzversicherung', href: '/zahnzusatzversicherung', icon: Shield },
{ name: 'Auslandsreisekrankenversicherung', href: '/auslandsreisekrankenversicherung', icon: Shield },
{ name: 'Gesundheitsvorsorge', href: '/gesundheitsvorsorge', icon: Shield },
{ name: 'Altersvorsorge', href: '/altersvorsorge', icon: Shield },
{ name: 'Risikoschutz', href: '/risikoschutz', icon: Shield },
{ name: 'Sachversicherung', href: '/sachversicherung', icon: Shield },
{ name: 'Riester-Rente', href: '/riester-rente', icon: FileText },
{ name: 'Tagesgeld', href: '/tagesgeld', icon: FileText },
{ name: 'Investmentsparplan', href: '/investmentsparplan', icon: FileText },
{ name: 'Depots', href: '/depots', icon: FileText },
{ name: 'Beteiligungen', href: '/beteiligungen', icon: FileText },
{ name: 'Finanzierung', href: '/finanzierung', icon: FileText },
{ name: 'Kreditvergleich', href: '/kreditvergleich', icon: FileText },
{ name: 'Kreditabsicherung', href: '/kreditabsicherung', icon: FileText },
{ name: 'Brutto-Netto-Rechner', href: '/bruttolnetto', icon: FileText },
{ name: 'Senioren Altersvorsorge', href: '/senioren-altersvorsorge', icon: Shield },
{ name: 'Senioren Gesundheitsvorsorge', href: '/senioren-gesundheitsvorsorge', icon: Shield },
{ name: 'Senioren Risikoschutz', href: '/senioren-risikoschutz', icon: Shield },
{ name: 'Geschäftskunden Flottenversicherung', href: '/geschaeftskunden/flottenversicherung', icon: Truck },
{ name: 'Geschäftskunden Betriebsrente', href: '/geschaeftskunden/betriebsrente', icon: FileText },
{ name: 'Geschäftskunden Betriebshaftpflicht', href: '/geschaeftskunden/betriebshaftpflicht', icon: Shield },
{ name: 'Geschäftskunden Betriebsunterbrechung', href: '/geschaeftskunden/betriebsunterbrechung', icon: Shield },
{ name: 'Geschäftskunden Betriebskrankenversicherung', href: '/geschaeftskunden/betriebskrankenversicherung', icon: Shield },
{ name: 'Geschäftskunden Cyber-Versicherung', href: '/geschaeftskunden/cyber-versicherung', icon: Shield },
{ name: 'Geschäftskunden Gebäudeversicherung', href: '/geschaeftskunden/gebaeudeversicherung', icon: Shield },
{ name: 'Geschäftskunden Rechtsschutz', href: '/geschaeftskunden/rechtsschutz', icon: Shield },
{ name: 'Geschäftskunden Risikoschutz', href: '/geschaeftskunden/risikoschutz', icon: Shield },
{ name: 'Geschäftskunden Sachversicherung', href: '/geschaeftskunden/sachversicherung', icon: Shield },
{ name: 'Geschäftskunden Umwelthaftpflicht', href: '/geschaeftskunden/umwelthaftpflicht', icon: Shield },
{ name: 'Geschäftskunden Vermögenssicherung', href: '/geschaeftskunden/vermoegenssicherung', icon: Shield },
]; ];
const normalizedQuery = searchQuery.trim().toLowerCase(); const normalizedQuery = searchQuery.trim().toLowerCase();
const filteredItems = normalizedQuery const filteredItems = normalizedQuery
? searchItems.filter((item) => item.name.toLowerCase().includes(normalizedQuery)) ? searchItems
.filter((item) => item.name.toLowerCase().includes(normalizedQuery))
.sort((a, b) => {
const aName = a.name.toLowerCase();
const bName = b.name.toLowerCase();
const aStarts = aName.startsWith(normalizedQuery);
const bStarts = bName.startsWith(normalizedQuery);
if (aStarts && !bStarts) return -1;
if (!aStarts && bStarts) return 1;
return aName.localeCompare(bName, 'de', { sensitivity: 'base' });
})
: []; : [];
return ( return (
@ -73,7 +144,7 @@ const Header = () => {
{filteredItems.length > 0 && ( {filteredItems.length > 0 && (
<div className="absolute right-0 mt-2 w-72 rounded-md border border-gray-200 bg-white shadow-sm overflow-hidden z-50"> <div className="absolute right-0 mt-2 w-72 rounded-md border border-gray-200 bg-white shadow-sm overflow-hidden z-50">
{filteredItems.slice(0, 8).map((item) => ( {filteredItems.slice(0, 20).map((item) => (
<button <button
key={`${item.href}-${item.name}`} key={`${item.href}-${item.name}`}
type="button" type="button"

View File

@ -44,6 +44,16 @@ i18n
'geschaeftskunden', 'geschaeftskunden',
'service', 'service',
'unfall', 'unfall',
'gesundheitsvorsorge',
'risikoschutz',
'sachversicherung',
'familienreise',
'familienvorsorge',
'familienpakete',
'familienhaftpflicht',
'vermoegenssicherung',
'risikolebensversicherung',
'krankheitsschutzbrief',
], ],
interpolation: { interpolation: {
escapeValue: false, escapeValue: false,

View File

@ -9,7 +9,7 @@ import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
import GeneralNotice from '@/components/GeneralNotice'; import GeneralNotice from '@/components/GeneralNotice';
const Agentur = () => { const Agentur = () => {
const { t } = useTranslation(); const { t } = useTranslation('agentur');
const baseUrl = import.meta.env.BASE_URL; const baseUrl = import.meta.env.BASE_URL;
const assetUrl = (fileName: string) => `${baseUrl}${encodeURI(fileName)}`; const assetUrl = (fileName: string) => `${baseUrl}${encodeURI(fileName)}`;
@ -51,7 +51,7 @@ const Agentur = () => {
slides={[ slides={[
{ {
id: 'agentur-1', id: 'agentur-1',
kicker: 'Ihr starker Partner für Sicherheit', kicker: t('hero.kicker', 'Ihr starker Partner für Sicherheit'),
title: t('hero.title', 'Ihr starker Partner für Sicherheit.'), title: t('hero.title', 'Ihr starker Partner für Sicherheit.'),
subtitle: t( subtitle: t(
'hero.subtitle', 'hero.subtitle',
@ -80,21 +80,21 @@ const Agentur = () => {
className="relative px-2 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0" className="relative px-2 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0"
> >
<Home className="w-4 h-4 mr-1" /> <Home className="w-4 h-4 mr-1" />
Philosophie {t('tabs.overview', 'Philosophie')}
</TabsTrigger> </TabsTrigger>
<TabsTrigger <TabsTrigger
value="leistungen" value="leistungen"
className="relative px-2 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0" className="relative px-2 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0"
> >
<Star className="w-4 h-4 mr-1" /> <Star className="w-4 h-4 mr-1" />
Leistungen {t('tabs.leistungen', 'Leistungen')}
</TabsTrigger> </TabsTrigger>
<TabsTrigger <TabsTrigger
value="philosophie" value="philosophie"
className="relative px-2 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0" className="relative px-2 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0"
> >
<Users className="w-4 h-4 mr-1" /> <Users className="w-4 h-4 mr-1" />
Partner {t('tabs.partner', 'Partner')}
</TabsTrigger> </TabsTrigger>
<TabsTrigger <TabsTrigger
value="events" value="events"

View File

@ -1,44 +1,66 @@
import React from 'react'; import React from 'react';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import { useTranslation } from 'react-i18next';
import { Heart, Shield, TrendingUp, PiggyBank, Home, Calculator } from 'lucide-react'; import { Heart, Shield, TrendingUp, PiggyBank, Home, Calculator } from 'lucide-react';
import Layout from '@/components/Layout'; import Layout from '@/components/Layout';
import { Card } from '@/components/ui/card'; import { Card } from '@/components/ui/card';
import Disclaimer from '@/components/Disclaimer'; import Disclaimer from '@/components/Disclaimer';
const Altersvorsorge = () => { const Altersvorsorge = () => {
const { t } = useTranslation('altersvorsorge');
const baseUrl = import.meta.env.BASE_URL; const baseUrl = import.meta.env.BASE_URL;
const assetUrl = (fileName: string) => `${baseUrl}${encodeURI(fileName)}`; const assetUrl = (fileName: string) => `${baseUrl}${encodeURI(fileName)}`;
const topics = [ const topics = [
{ {
title: 'Riester-Rente', title: t('topics.riester.title', 'Riester-Rente'),
href: '/riester-rente', href: '/riester-rente',
image: assetUrl('iStock-957363908.jpg') image: assetUrl('iStock-957363908.jpg')
}, },
{ {
title: 'Rürup-Rente', title: t('topics.ruerup.title', 'Rürup-Rente'),
href: '/ruerup-rente', href: '/ruerup-rente',
image: assetUrl('iStock-943842590.jpg') image: assetUrl('iStock-943842590.jpg')
}, },
{ {
title: 'Betriebliche Altersvorsorge', title: t('topics.betrieblich.title', 'Betriebliche Altersvorsorge'),
href: '/betriebliche-altersvorsorge', href: '/betriebliche-altersvorsorge',
image: assetUrl('Fotolia_8654128_XS.jpg') image: assetUrl('Fotolia_8654128_XS.jpg')
}, },
{ {
title: 'Private Rentenversicherung', title: t('topics.privat.title', 'Private Rentenversicherung'),
href: '/private-rentenversicherung', href: '/private-rentenversicherung',
image: assetUrl('iStock-495809266.jpg') image: assetUrl('iStock-495809266.jpg')
}, },
{ {
title: 'Kapitallebensversicherung', title: t('topics.kapital.title', 'Kapitallebensversicherung'),
href: '/kapitallebensversicherung', href: '/kapitallebensversicherung',
image: assetUrl('Fotolia_67327775_XS.jpg') image: assetUrl('Fotolia_67327775_XS.jpg')
}, },
{ {
title: 'Fondsgebundene Versicherung', title: t('topics.fonds.title', 'Fondsgebundene Versicherung'),
href: '/fondsgebundene-versicherung', href: '/fondsgebundene-versicherung',
image: assetUrl('iStock-970876204.jpg') image: assetUrl('iStock-923620990.jpg')
},
{
title: t('topics.zukunft.title', 'Zukunftsvorsorge'),
href: '/zukunftsvorsorge',
image: assetUrl('iStock-618896642.jpg')
},
{
title: t('topics.sparplan.title', 'Sparplan'),
href: '/sparplan',
image: assetUrl('iStock-957363908.jpg')
},
{
title: t('topics.investment.title', 'Investmentfonds'),
href: '/investmentfonds',
image: assetUrl('iStock-635975818.jpg')
},
{
title: t('topics.etf.title', 'ETF-Sparplan'),
href: '/etf-sparplan',
image: assetUrl('iStock-1346163204.jpg')
} }
]; ];
@ -50,10 +72,10 @@ const Altersvorsorge = () => {
<div className="container mx-auto px-4"> <div className="container mx-auto px-4">
<div className="max-w-4xl mx-auto text-center"> <div className="max-w-4xl mx-auto text-center">
<h1 className="text-4xl font-bold text-gray-900 mb-6"> <h1 className="text-4xl font-bold text-gray-900 mb-6">
Altersvorsorge {t('title', 'Altersvorsorge')}
</h1> </h1>
<p className="text-xl text-gray-600 mb-8"> <p className="text-xl text-gray-600 mb-8">
Sorgen Sie frühzeitig für Ihre finanzielle Zukunft vor {t('subtitle', 'Sorgen Sie frühzeitig für Ihre finanzielle Zukunft vor')}
</p> </p>
</div> </div>
</div> </div>

View File

@ -1,5 +1,6 @@
import React, { useState } from 'react'; import React, { useState } from 'react';
import { Link, useNavigate } from 'react-router-dom'; import { Link, useNavigate } from 'react-router-dom';
import { useTranslation } from 'react-i18next';
import { Users, Shield, Phone, Mail, CheckCircle, Download, Home, FileText, Calculator } from 'lucide-react'; import { Users, Shield, Phone, Mail, CheckCircle, Download, Home, FileText, Calculator } from 'lucide-react';
import Layout from '@/components/Layout'; import Layout from '@/components/Layout';
import GeneralNotice from '@/components/GeneralNotice'; import GeneralNotice from '@/components/GeneralNotice';
@ -11,6 +12,7 @@ import RightImageCard from '@/components/tab-pages/RightImageCard';
const Familienpakete = () => { const Familienpakete = () => {
const navigate = useNavigate(); const navigate = useNavigate();
const { t } = useTranslation('familienpakete');
const baseUrl = import.meta.env.BASE_URL; const baseUrl = import.meta.env.BASE_URL;
const assetUrl = (fileName: string) => `${baseUrl}${encodeURI(fileName)}`; const assetUrl = (fileName: string) => `${baseUrl}${encodeURI(fileName)}`;
const [activeTab, setActiveTab] = useState('overview'); const [activeTab, setActiveTab] = useState('overview');
@ -20,7 +22,7 @@ const Familienpakete = () => {
<div className="min-h-screen bg-gray-50"> <div className="min-h-screen bg-gray-50">
<div className="container mx-auto px-4 md:px-6 py-8"> <div className="container mx-auto px-4 md:px-6 py-8">
<div className="max-w-screen-2xl mx-auto"> <div className="max-w-screen-2xl mx-auto">
<h2 className="text-2xl font-bold text-gray-900 mb-6 text-center">Familienpakete</h2> <h2 className="text-2xl font-bold text-gray-900 mb-6 text-center">{t('title', 'Familienpakete')}</h2>
<div className="bg-white rounded-lg border border-gray-200 shadow-sm"> <div className="bg-white rounded-lg border border-gray-200 shadow-sm">
<Tabs value={activeTab} onValueChange={setActiveTab} className="w-full"> <Tabs value={activeTab} onValueChange={setActiveTab} className="w-full">
@ -31,28 +33,28 @@ const Familienpakete = () => {
className="relative px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0" className="relative px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0"
> >
<Home className="w-4 h-4 mr-1.5" /> <Home className="w-4 h-4 mr-1.5" />
Übersicht {t('tabs.overview', 'Übersicht')}
</TabsTrigger> </TabsTrigger>
<TabsTrigger <TabsTrigger
value="details" value="details"
className="relative px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0" className="relative px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0"
> >
<FileText className="w-4 h-4 mr-1.5" /> <FileText className="w-4 h-4 mr-1.5" />
Details {t('tabs.details', 'Details')}
</TabsTrigger> </TabsTrigger>
<TabsTrigger <TabsTrigger
value="form" value="form"
className="relative px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0" className="relative px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0"
> >
<Phone className="w-4 h-4 mr-1.5" /> <Phone className="w-4 h-4 mr-1.5" />
Anfrage {t('tabs.form', 'Anfrage')}
</TabsTrigger> </TabsTrigger>
<TabsTrigger <TabsTrigger
value="catalog" value="catalog"
className="relative px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0" className="relative px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0"
> >
<Shield className="w-4 h-4 mr-1.5" /> <Shield className="w-4 h-4 mr-1.5" />
Ratgeber {t('tabs.catalog', 'Ratgeber')}
</TabsTrigger> </TabsTrigger>
</TabsList> </TabsList>
</div> </div>
@ -65,22 +67,25 @@ const Familienpakete = () => {
<> <>
<div className="inline-flex items-center gap-2 rounded-full bg-green-50 border border-green-200 px-3 py-1 text-sm text-green-800 mb-4"> <div className="inline-flex items-center gap-2 rounded-full bg-green-50 border border-green-200 px-3 py-1 text-sm text-green-800 mb-4">
<Users className="w-4 h-4" /> <Users className="w-4 h-4" />
<span>Alles aus einer Hand</span> <span>{t('overview.badge', 'Alles aus einer Hand')}</span>
</div> </div>
<h1 className="text-3xl md:text-4xl font-bold text-gray-900 leading-tight"> <h1 className="text-3xl md:text-4xl font-bold text-gray-900 leading-tight">
Familienpakete {t('overview.title', 'Familienpakete')}
<span className="block text-green-700">kombinieren & sparen</span> <span className="block text-green-700">{t('overview.subtitle', 'kombinieren & sparen')}</span>
</h1> </h1>
<p className="mt-4 text-gray-600 text-lg"> <p className="mt-4 text-gray-600 text-lg">
Mit passenden Paketen lassen sich Leistungen bündeln und oft Beiträge optimieren. {t(
'overview.description',
'Mit passenden Paketen lassen sich Leistungen bündeln und oft Beiträge optimieren.'
)}
</p> </p>
<div className="mt-6 flex flex-col sm:flex-row gap-3"> <div className="mt-6 flex flex-col sm:flex-row gap-3">
<Button onClick={() => setActiveTab('form')} className="bg-green-700 hover:bg-green-800"> <Button onClick={() => setActiveTab('form')} className="bg-green-700 hover:bg-green-800">
Beratung anfordern {t('overview.primaryButton', 'Beratung anfordern')}
</Button> </Button>
<Button variant="outline" onClick={() => navigate('/kontakt')} className="border-gray-300"> <Button variant="outline" onClick={() => navigate('/kontakt')} className="border-gray-300">
Kontakt {t('overview.secondaryButton', 'Kontakt')}
</Button> </Button>
</div> </div>
@ -88,15 +93,15 @@ const Familienpakete = () => {
<div className="flex items-center gap-3 rounded-lg border border-gray-200 bg-white p-3"> <div className="flex items-center gap-3 rounded-lg border border-gray-200 bg-white p-3">
<Shield className="w-5 h-5 text-green-700" /> <Shield className="w-5 h-5 text-green-700" />
<div className="text-sm"> <div className="text-sm">
<div className="font-semibold text-gray-900">Sinnvoll</div> <div className="font-semibold text-gray-900">{t('overview.card1Title', 'Sinnvoll')}</div>
<div className="text-gray-600">Bausteine passend</div> <div className="text-gray-600">{t('overview.card1Subtitle', 'Bausteine passend')}</div>
</div> </div>
</div> </div>
<div className="flex items-center gap-3 rounded-lg border border-gray-200 bg-white p-3"> <div className="flex items-center gap-3 rounded-lg border border-gray-200 bg-white p-3">
<Users className="w-5 h-5 text-green-700" /> <Users className="w-5 h-5 text-green-700" />
<div className="text-sm"> <div className="text-sm">
<div className="font-semibold text-gray-900">Familie</div> <div className="font-semibold text-gray-900">{t('overview.card2Title', 'Familie')}</div>
<div className="text-gray-600">ein Vertrag</div> <div className="text-gray-600">{t('overview.card2Subtitle', 'ein Vertrag')}</div>
</div> </div>
</div> </div>
</div> </div>
@ -117,9 +122,11 @@ const Familienpakete = () => {
<div className="p-5"> <div className="p-5">
<div className="flex items-center gap-2 text-sm text-gray-600"> <div className="flex items-center gap-2 text-sm text-gray-600">
<Users className="w-4 h-4" /> <Users className="w-4 h-4" />
<span>einfach, klar, passend</span> <span>{t('overview.rightCardTitle', 'einfach, klar, passend')}</span>
</div>
<div className="mt-2 text-sm text-gray-600">
{t('overview.rightCardText', 'Wir vergleichen Optionen und erklären verständlich.')}
</div> </div>
<div className="mt-2 text-sm text-gray-600">Wir vergleichen Optionen und erklären verständlich.</div>
</div> </div>
</div> </div>
</div> </div>
@ -131,20 +138,20 @@ const Familienpakete = () => {
<TwoColumnTab <TwoColumnTab
left={ left={
<> <>
<h3 className="text-2xl font-bold text-gray-900">Beispiele</h3> <h3 className="text-2xl font-bold text-gray-900">{t('details.title', 'Beispiele')}</h3>
<p className="mt-2 text-gray-600">Unfall + Haftpflicht + Zusatz je nach Bedarf.</p> <p className="mt-2 text-gray-600">{t('details.description', 'Unfall + Haftpflicht + Zusatz je nach Bedarf.')}</p>
<Card className="mt-6 border-gray-200"> <Card className="mt-6 border-gray-200">
<CardHeader> <CardHeader>
<CardTitle className="text-lg">Typische Kombinationen</CardTitle> <CardTitle className="text-lg">{t('details.combosTitle', 'Typische Kombinationen')}</CardTitle>
<CardDescription>Beispiele</CardDescription> <CardDescription>{t('details.combosSubtitle', 'Beispiele')}</CardDescription>
</CardHeader> </CardHeader>
<CardContent className="text-sm"> <CardContent className="text-sm">
<div className="space-y-2"> <div className="space-y-2">
{[ {[
'Kinderunfall + Haftpflicht', t('details.combo1', 'Kinderunfall + Haftpflicht'),
'Zahn + Stationär', t('details.combo2', 'Zahn + Stationär'),
'Reise + Ausland', t('details.combo3', 'Reise + Ausland'),
].map((row) => ( ].map((row) => (
<div key={row} className="flex items-start gap-2"> <div key={row} className="flex items-start gap-2">
<CheckCircle className="w-4 h-4 text-green-700 mt-0.5" /> <CheckCircle className="w-4 h-4 text-green-700 mt-0.5" />
@ -159,10 +166,10 @@ const Familienpakete = () => {
right={ right={
<Card className="border-gray-200"> <Card className="border-gray-200">
<CardHeader> <CardHeader>
<CardTitle className="text-lg">Tipp</CardTitle> <CardTitle className="text-lg">{t('details.tipTitle', 'Tipp')}</CardTitle>
<CardDescription>Keine Doppelungen</CardDescription> <CardDescription>{t('details.tipSubtitle', 'Keine Doppelungen')}</CardDescription>
</CardHeader> </CardHeader>
<CardContent className="text-sm text-gray-700">Wir prüfen, was schon vorhanden ist.</CardContent> <CardContent className="text-sm text-gray-700">{t('details.tipText', 'Wir prüfen, was schon vorhanden ist.')}</CardContent>
</Card> </Card>
} }
/> />
@ -172,16 +179,16 @@ const Familienpakete = () => {
<TwoColumnTab <TwoColumnTab
left={ left={
<> <>
<h3 className="text-2xl font-bold text-gray-900">Anfrageformular</h3> <h3 className="text-2xl font-bold text-gray-900">{t('form.title', 'Anfrageformular')}</h3>
<p className="mt-2 text-gray-600">Wir bauen ein Paket passend zu deiner Familie.</p> <p className="mt-2 text-gray-600">{t('form.subtitle', 'Wir bauen ein Paket passend zu deiner Familie.')}</p>
<div className="mt-4 flex flex-col sm:flex-row gap-3"> <div className="mt-4 flex flex-col sm:flex-row gap-3">
<Link to="/contact" className="inline-flex"> <Link to="/contact" className="inline-flex">
<Button className="bg-green-700 hover:bg-green-800">Kontaktformular öffnen</Button> <Button className="bg-green-700 hover:bg-green-800">{t('form.openContact', 'Kontaktformular öffnen')}</Button>
</Link> </Link>
<Button variant="outline" className="gap-2" onClick={() => window.print()}> <Button variant="outline" className="gap-2" onClick={() => window.print()}>
<Download className="w-4 h-4" /> <Download className="w-4 h-4" />
Als PDF speichern {t('form.savePdf', 'Als PDF speichern')}
</Button> </Button>
</div> </div>
</> </>
@ -190,17 +197,17 @@ const Familienpakete = () => {
<RightImageCard src={assetUrl('iStock-956005062.jpg')} alt="Anfrage"> <RightImageCard src={assetUrl('iStock-956005062.jpg')} alt="Anfrage">
<Card className="border-gray-200"> <Card className="border-gray-200">
<CardHeader> <CardHeader>
<CardTitle className="text-lg">Direktkontakt</CardTitle> <CardTitle className="text-lg">{t('form.directTitle', 'Direktkontakt')}</CardTitle>
<CardDescription>Wenn es schnell gehen soll.</CardDescription> <CardDescription>{t('form.directSubtitle', 'Wenn es schnell gehen soll.')}</CardDescription>
</CardHeader> </CardHeader>
<CardContent className="space-y-3 text-sm text-gray-700"> <CardContent className="space-y-3 text-sm text-gray-700">
<div className="flex items-center gap-2"> <div className="flex items-center gap-2">
<Phone className="w-4 h-4 text-green-700" /> <Phone className="w-4 h-4 text-green-700" />
<span>Telefon: 0171 / 9864053</span> <span>{t('form.phone', 'Telefon: 0171 / 9864053')}</span>
</div> </div>
<div className="flex items-center gap-2"> <div className="flex items-center gap-2">
<Mail className="w-4 h-4 text-green-700" /> <Mail className="w-4 h-4 text-green-700" />
<span>E-Mail: info@finanzen-mizera.de</span> <span>{t('form.email', 'E-Mail: info@finanzen-mizera.de')}</span>
</div> </div>
</CardContent> </CardContent>
</Card> </Card>
@ -213,21 +220,21 @@ const Familienpakete = () => {
<TwoColumnTab <TwoColumnTab
left={ left={
<> <>
<h3 className="text-2xl font-bold text-gray-900">Ratgeber</h3> <h3 className="text-2xl font-bold text-gray-900">{t('catalog.title', 'Ratgeber')}</h3>
<p className="mt-2 text-gray-600">So findest du das passende Paket.</p> <p className="mt-2 text-gray-600">{t('catalog.subtitle', 'So findest du das passende Paket.')}</p>
<Card className="mt-6 border-gray-200"> <Card className="mt-6 border-gray-200">
<CardHeader> <CardHeader>
<CardTitle className="text-lg">Checkliste</CardTitle> <CardTitle className="text-lg">{t('catalog.checklistTitle', 'Checkliste')}</CardTitle>
<CardDescription>Beispiele</CardDescription> <CardDescription>{t('catalog.checklistSubtitle', 'Beispiele')}</CardDescription>
</CardHeader> </CardHeader>
<CardContent className="text-sm"> <CardContent className="text-sm">
<div className="space-y-2"> <div className="space-y-2">
{[ {[
'Welche Risiken sind wichtig?', t('catalog.row1', 'Welche Risiken sind wichtig?'),
'Budget pro Monat', t('catalog.row2', 'Budget pro Monat'),
'Bestehende Verträge prüfen', t('catalog.row3', 'Bestehende Verträge prüfen'),
'Leistung vor Preis', t('catalog.row4', 'Leistung vor Preis'),
].map((row) => ( ].map((row) => (
<div key={row} className="flex items-start gap-2"> <div key={row} className="flex items-start gap-2">
<CheckCircle className="w-4 h-4 text-green-700 mt-0.5" /> <CheckCircle className="w-4 h-4 text-green-700 mt-0.5" />

View File

@ -22,37 +22,58 @@ const Finanzen = () => {
const services = [ const services = [
{ {
icon: Calculator, icon: Calculator,
title: 'Finanzberatung', title: t('services.finanzberatung.title', 'Finanzberatung'),
description: 'Umfassende Beratung für Ihre finanzielle Zukunft', description: t('services.finanzberatung.description', 'Umfassende Beratung für Ihre finanzielle Zukunft'),
features: ['Vermögensaufbau', 'Altersvorsorge', 'Sparpläne', 'Investmentberatung', 'Steuerplanung'] features: [
t('services.finanzberatung.features.vermoegen', 'Vermögensaufbau'),
t('services.finanzberatung.features.altersvorsorge', 'Altersvorsorge'),
t('services.finanzberatung.features.sparplaene', 'Sparpläne'),
t('services.finanzberatung.features.investment', 'Investmentberatung'),
t('services.finanzberatung.features.steuer', 'Steuerplanung')
]
}, },
{ {
icon: Shield, icon: Shield,
title: 'Vorsorgelösungen', title: t('services.vorsorge.title', 'Vorsorgelösungen'),
description: 'Sichere Absicherung für alle Lebensphasen', description: t('services.vorsorge.description', 'Sichere Absicherung für alle Lebensphasen'),
features: ['Private Rentenversicherung', 'Riester-Rente', 'Rürup-Rente', 'Betriebliche Altersvorsorge'] features: [
t('services.vorsorge.features.privat', 'Private Rentenversicherung'),
t('services.vorsorge.features.riester', 'Riester-Rente'),
t('services.vorsorge.features.ruerup', 'Rürup-Rente'),
t('services.vorsorge.features.betrieblich', 'Betriebliche Altersvorsorge')
]
}, },
{ {
icon: PiggyBank, icon: PiggyBank,
title: 'Vermögensmanagement', title: t('services.vermoegen.title', 'Vermögensmanagement'),
description: 'Professionelle Verwaltung Ihres Vermögens', description: t('services.vermoegen.description', 'Professionelle Verwaltung Ihres Vermögens'),
features: ['Fondsberatung', 'Aktienberatung', 'Immobilienfinanzierung', 'Nachlassplanung'] features: [
t('services.vermoegen.features.fonds', 'Fondsberatung'),
t('services.vermoegen.features.aktien', 'Aktienberatung'),
t('services.vermoegen.features.immobilien', 'Immobilienfinanzierung'),
t('services.vermoegen.features.nachlass', 'Nachlassplanung')
]
}, },
{ {
icon: FileText, icon: FileText,
title: 'Kreditberatung', title: t('services.kredit.title', 'Kreditberatung'),
description: 'Optimale Finanzierungslösungen', description: t('services.kredit.description', 'Optimale Finanzierungslösungen'),
features: ['Hausfinanzierung', 'Kreditvergleich', 'Umschuldung', 'Fördermittelberatung'] features: [
t('services.kredit.features.haus', 'Hausfinanzierung'),
t('services.kredit.features.vergleich', 'Kreditvergleich'),
t('services.kredit.features.umschuldung', 'Umschuldung'),
t('services.kredit.features.foerderung', 'Fördermittelberatung')
]
} }
]; ];
const highlights = [ const highlights = [
'Unabhängige und objektive Beratung', t('highlights.unabhaengig', 'Unabhängige und objektive Beratung'),
'Transparente Kostenstruktur', t('highlights.transparent', 'Transparente Kostenstruktur'),
'Individuelle Lösungsansätze', t('highlights.individuell', 'Individuelle Lösungsansätze'),
'Langfristige Strategien statt kurzfristiger Trends', t('highlights.langfristig', 'Langfristige Strategien statt kurzfristiger Trends'),
'Regelmäßige Überprüfung und Anpassung', t('highlights.ueberpruefung', 'Regelmäßige Überprüfung und Anpassung'),
'Verständliche Empfehlungen ohne Fachchinesisch', t('highlights.verstaendlich', 'Verständliche Empfehlungen ohne Fachchinesisch'),
]; ];
return ( return (
@ -62,7 +83,7 @@ const Finanzen = () => {
slides={[ slides={[
{ {
id: 'finanzen-1', id: 'finanzen-1',
kicker: 'Finanzen', kicker: t('hero.kicker', 'Finanzen'),
title: t('hero.title', 'Finanzielle Sicherheit mit Plan'), title: t('hero.title', 'Finanzielle Sicherheit mit Plan'),
subtitle: t( subtitle: t(
'hero.subtitle', 'hero.subtitle',
@ -83,9 +104,10 @@ const Finanzen = () => {
<div className="container mx-auto px-4"> <div className="container mx-auto px-4">
<div className="text-center mb-12"> <div className="text-center mb-12">
<h2 className="text-4xl md:text-5xl font-bold text-gray-900 mb-4"> <h2 className="text-4xl md:text-5xl font-bold text-gray-900 mb-4">
Finanzlösungen {t('section.title', 'Finanzlösungen')}
</h2> </h2>
<p className="text-xl text-gray-600 max-w-3xl mx-auto"> <p className="text-xl text-gray-600 max-w-3xl mx-auto">
{t('section.subtitle', 'Wir bieten Ihnen umfassende Finanzberatung für alle Lebensbereiche von der Altersvorsorge bis zur Immobilienfinanzierung.')}
Die wichtigsten Lösungen für Ihre finanzielle Zukunft Die wichtigsten Lösungen für Ihre finanzielle Zukunft
</p> </p>
</div> </div>

View File

@ -27,17 +27,17 @@ const Geschaeftskunden = () => {
const pool = [ const pool = [
{ {
id: 'flottenversicherung', id: 'flottenversicherung',
title: 'Flottenversicherung', title: t('topics.flotten.title', 'Flottenversicherung'),
subtitle: 'Optimaler Schutz für Ihren Fuhrpark\nSicher und wirtschaftlich.', subtitle: t('topics.flotten.subtitle', 'Optimaler Schutz für Ihren Fuhrpark\nSicher und wirtschaftlich.'),
href: '/geschaeftskunden/flottenversicherung', href: '/geschaeftskunden/flottenversicherung',
image: assetUrl('Geascheaftskunden/iStock-637230106.jpg'), image: assetUrl('Geascheaftskunden/iStock-637230106.jpg'),
links: [ links: [
{ title: 'Flottenmanagement', href: '/geschaeftskunden/flottenversicherung' }, { title: t('topics.flotten.links.management', 'Flottenmanagement'), href: '/geschaeftskunden/flottenversicherung' },
], ],
}, },
{ {
id: 'betriebsrente', id: 'betriebsrente',
title: 'Betriebsrente (BAV)', title: t('topics.betriebsrente.title', 'Betriebsrente (BAV)'),
subtitle: 'Altersvorsorge für Ihre Mitarbeiter\nZukunftssichere Lösungen.', subtitle: 'Altersvorsorge für Ihre Mitarbeiter\nZukunftssichere Lösungen.',
href: '/geschaeftskunden/betriebsrente', href: '/geschaeftskunden/betriebsrente',
image: assetUrl('Geascheaftskunden/iStock-917884956.jpg'), image: assetUrl('Geascheaftskunden/iStock-917884956.jpg'),

View File

@ -1,37 +1,45 @@
import React, { useEffect } from 'react'; import React, { useEffect } from 'react';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import { Heart, Shield, Plane, ArrowRight } from 'lucide-react'; import { Heart, Shield, Plane, ArrowRight } from 'lucide-react';
import { useTranslation } from 'react-i18next';
import Layout from '@/components/Layout'; import Layout from '@/components/Layout';
import { Button } from '@/components/ui/button'; import { Button } from '@/components/ui/button';
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card';
import Disclaimer from '@/components/Disclaimer'; import Disclaimer from '@/components/Disclaimer';
const Gesundheitsvorsorge = () => { const Gesundheitsvorsorge = () => {
const { t } = useTranslation('gesundheitsvorsorge');
const baseUrl = import.meta.env.BASE_URL; const baseUrl = import.meta.env.BASE_URL;
const assetUrl = (fileName: string) => `${baseUrl}${encodeURI(fileName)}`; const assetUrl = (fileName: string) => `${baseUrl}${encodeURI(fileName)}`;
// Add SEO metadata for search // Add SEO metadata for search
useEffect(() => { useEffect(() => {
document.title = 'Gesundheitsvorsorge - Agentur Mizera'; document.title = t('meta.title', 'Gesundheitsvorsorge - Agentur Mizera');
const metaDescription = document.querySelector('meta[name="description"]'); const metaDescription = document.querySelector('meta[name="description"]');
if (metaDescription) { if (metaDescription) {
metaDescription.setAttribute('content', 'Gesundheitsvorsorge: Umfassende Vorsorge und Prävention für Ihre Gesundheit. Unabhängige Beratung für alle Bereiche der Gesundheitsvorsorge.'); metaDescription.setAttribute(
'content',
t(
'meta.description',
'Gesundheitsvorsorge: Umfassende Vorsorge und Prävention für Ihre Gesundheit. Unabhängige Beratung für alle Bereiche der Gesundheitsvorsorge.'
)
);
} }
}, []); }, [t]);
const healthTopics = [ const healthTopics = [
{ {
title: 'Private Krankenversicherung', title: t('tiles.pkv', 'Private Krankenversicherung'),
href: '/private-krankenversicherung', href: '/private-krankenversicherung',
image: assetUrl('head_kranken.jpg') image: assetUrl('head_kranken.jpg')
}, },
{ {
title: 'Zahnzusatzversicherung', title: t('tiles.zahn', 'Zahnzusatzversicherung'),
href: '/zahnzusatzversicherung', href: '/zahnzusatzversicherung',
image: assetUrl('Fotolia_45263348_S.jpg') image: assetUrl('Fotolia_45263348_S.jpg')
}, },
{ {
title: 'Auslandsreisekrankenversicherung', title: t('tiles.ausland', 'Auslandsreisekrankenversicherung'),
href: '/auslandsreisekrankenversicherung', href: '/auslandsreisekrankenversicherung',
image: assetUrl('iStock-637584740.jpg') image: assetUrl('iStock-637584740.jpg')
} }
@ -51,18 +59,18 @@ const Gesundheitsvorsorge = () => {
<div className="max-w-3xl"> <div className="max-w-3xl">
<div className="bg-black/40 text-white px-8 py-6 md:px-10 md:py-8 shadow-lg"> <div className="bg-black/40 text-white px-8 py-6 md:px-10 md:py-8 shadow-lg">
<h1 className="text-4xl md:text-5xl font-bold text-white mb-6"> <h1 className="text-4xl md:text-5xl font-bold text-white mb-6">
Gesundheitsvorsorge {t('hero.title', 'Gesundheitsvorsorge')}
</h1> </h1>
<p className="text-xl text-white/90 mb-8 max-w-2xl"> <p className="text-xl text-white/90 mb-8 max-w-2xl">
Umfassender Schutz für Ihre Gesundheit - im In- und Ausland {t('hero.subtitle', 'Umfassender Schutz für Ihre Gesundheit - im In- und Ausland')}
</p> </p>
<div className="flex flex-col sm:flex-row gap-4"> <div className="flex flex-col sm:flex-row gap-4">
<Button size="lg" className="bg-blue-600 hover:bg-blue-700 text-white"> <Button size="lg" className="bg-blue-600 hover:bg-blue-700 text-white">
Jetzt beraten lassen {t('hero.primaryCta', 'Jetzt beraten lassen')}
<ArrowRight className="ml-2 w-5 h-5" /> <ArrowRight className="ml-2 w-5 h-5" />
</Button> </Button>
<Button size="lg" variant="outline" className="bg-white/10 border-white text-white hover:bg-white/20"> <Button size="lg" variant="outline" className="bg-white/10 border-white text-white hover:bg-white/20">
Vergleich starten {t('hero.secondaryCta', 'Vergleich starten')}
</Button> </Button>
</div> </div>
</div> </div>
@ -76,10 +84,10 @@ const Gesundheitsvorsorge = () => {
<div className="max-w-6xl mx-auto"> <div className="max-w-6xl mx-auto">
<div className="text-center mb-12"> <div className="text-center mb-12">
<h2 className="text-3xl font-bold text-gray-900 mb-4"> <h2 className="text-3xl font-bold text-gray-900 mb-4">
Wählen Sie Ihren Versicherungsschutz {t('tiles.title', 'Wählen Sie Ihren Versicherungsschutz')}
</h2> </h2>
<p className="text-lg text-gray-600 max-w-3xl mx-auto"> <p className="text-lg text-gray-600 max-w-3xl mx-auto">
Wir bieten Ihnen maßgeschneiderte Lösungen für alle Bereiche der Gesundheitsvorsorge {t('tiles.subtitle', 'Wir bieten Ihnen maßgeschneiderte Lösungen für alle Bereiche der Gesundheitsvorsorge')}
</p> </p>
</div> </div>

View File

@ -9,12 +9,14 @@ import HeroSlider from '@/components/HeroSlider';
import Disclaimer from '@/components/Disclaimer'; import Disclaimer from '@/components/Disclaimer';
const Index = () => { const Index = () => {
const { t } = useTranslation('home'); const { t, i18n } = useTranslation('home');
const navigate = useNavigate(); const navigate = useNavigate();
const assetUrl = (fileName: string) => `${import.meta.env.BASE_URL}${encodeURI(fileName)}`; const assetUrl = (fileName: string) => `${import.meta.env.BASE_URL}${encodeURI(fileName)}`;
const [yearsOfExperience, setYearsOfExperience] = useState(new Date().getFullYear() - 1994); const [yearsOfExperience, setYearsOfExperience] = useState(new Date().getFullYear() - 1994);
const [focusTopics, setFocusTopics] = useState<Array<{ title: string; href: string; image: string }>>([]); const [focusTopics, setFocusTopics] = useState<
Array<{ id: string; title: string; description: string; cta: string; href: string; image: string }>
>([]);
// Berechne die Erfahrungsjahre seit 1994 // Berechne die Erfahrungsjahre seit 1994
useEffect(() => { useEffect(() => {
@ -24,32 +26,83 @@ const Index = () => {
}, []); }, []);
useEffect(() => { useEffect(() => {
const assetUrl = (fileName: string) => `${import.meta.env.BASE_URL}${encodeURI(fileName)}`;
const pool = [ const pool = [
{ title: 'KFZ-Fahrzeuge', href: '/kfz', image: import.meta.env.BASE_URL + encodeURI('Fotolia_8654128_XS.jpg') }, {
{ title: 'Privatkunden', href: '/privatkunden', image: import.meta.env.BASE_URL + encodeURI('Fotolia_11700075_XS.jpg') }, id: 'kfz',
{ title: 'Senioren', href: '/senioren', image: import.meta.env.BASE_URL + encodeURI('Fotolia_8218560_XS.jpg') }, title: t('topTopics.items.kfz.title', 'KFZ-Versicherung'),
{ title: 'Hausrat', href: '/hausrat', image: import.meta.env.BASE_URL + encodeURI('iStock-482694353.jpg') }, description: t('topTopics.items.kfz.description', 'Tarife vergleichen und schnell zum passenden Schutz.'),
{ title: 'Rechtsschutzversicherung', href: '/rechtsschutzversicherung', image: import.meta.env.BASE_URL + encodeURI('iStock-1067720324.jpg') }, cta: t('topTopics.items.kfz.cta', 'Jetzt informieren'),
{ title: 'Unfall Was jetzt?', href: '/unfall', image: import.meta.env.BASE_URL + encodeURI('iStock-523830845.jpg') }, href: '/kfz',
{ title: 'Familien & Kinder', href: '/familien-kinder', image: import.meta.env.BASE_URL + encodeURI('iStock-956005062.jpg') }, image: assetUrl('Fotolia_8654128_XS.jpg'),
{ title: 'Tier­ver­si­che­rungen', href: '/tierversicherung', image: import.meta.env.BASE_URL + encodeURI('Tiere/DSC_4029.JPG?v=1') }, },
{ title: 'Finanzen', href: '/finanzen', image: import.meta.env.BASE_URL + encodeURI('iStock-957363908.jpg') }, {
{ title: 'Private Krankenversicherung', href: '/private-krankenversicherung', image: import.meta.env.BASE_URL + encodeURI('head_kranken.jpg') }, id: 'privatkunden',
{ title: 'Zahnzusatzversicherung', href: '/zahnzusatzversicherung', image: import.meta.env.BASE_URL + encodeURI('Fotolia_45263348_S.jpg') }, title: t('topTopics.items.privatkunden.title', 'Privatkunden'),
{ title: 'Auslandsreisekrankenversicherung', href: '/auslandsreisekrankenversicherung', image: import.meta.env.BASE_URL + encodeURI('iStock-637584740.jpg') }, description: t('topTopics.items.privatkunden.description', 'Versicherungen für Alltag, Familie und Zuhause.'),
{ title: 'Gesundheitsvorsorge', href: '/gesundheitsvorsorge', image: import.meta.env.BASE_URL + encodeURI('iStock-819100588.jpg') }, cta: t('topTopics.items.privatkunden.cta', 'Jetzt informieren'),
{ title: 'Sterbegeldversicherung', href: '/senioren-sterbegeldversicherung', image: import.meta.env.BASE_URL + encodeURI('iStock-939772870.jpg') }, href: '/privatkunden',
image: assetUrl('Fotolia_11700075_XS.jpg'),
},
{
id: 'gesundheit',
title: t('topTopics.items.gesundheit.title', 'Gesundheitsvorsorge'),
description: t('topTopics.items.gesundheit.description', 'Optimal abgesichert privat und individuell.'),
cta: t('topTopics.items.gesundheit.cta', 'Mehr erfahren'),
href: '/gesundheitsvorsorge',
image: assetUrl('head_kranken.jpg'),
},
{
id: 'zahnzusatz',
title: t('topTopics.items.zahnzusatz.title', 'Zahnzusatzversicherung'),
description: t('topTopics.items.zahnzusatz.description', 'Zahnersatz und -erhalt nach Maß: Stellen Sie sich die Leistungen nach Ihren Wünschen zusammen.'),
cta: t('topTopics.items.zahnzusatz.cta', 'Jetzt informieren'),
href: '/zahnzusatzversicherung',
image: assetUrl('Fotolia_45263348_S.jpg'),
},
{
id: 'ausland',
title: t('topTopics.items.ausland.title', 'Auslandskrankenversicherung'),
description: t('topTopics.items.ausland.description', 'Auch im Urlaub bestens abgesichert: weltweiter Schutz für medizinische Versorgung.'),
cta: t('topTopics.items.ausland.cta', 'Jetzt informieren'),
href: '/auslandsreisekrankenversicherung',
image: assetUrl('iStock-637584740.jpg'),
},
{
id: 'sterbegeld',
title: t('topTopics.items.sterbegeld.title', 'Sterbegeldversicherung'),
description: t('topTopics.items.sterbegeld.description', 'Für Ihre Liebsten vorsorgen: finanzielle Sicherheit im Todesfall.'),
cta: t('topTopics.items.sterbegeld.cta', 'Jetzt informieren'),
href: '/senioren-sterbegeldversicherung',
image: assetUrl('iStock-939772870.jpg'),
},
{
id: 'rechtsschutz',
title: t('topTopics.items.rechtsschutz.title', 'Rechtsschutzversicherung'),
description: t('topTopics.items.rechtsschutz.description', 'Ihre Rechte schützen passende Bausteine finden.'),
cta: t('topTopics.items.rechtsschutz.cta', 'Mehr erfahren'),
href: '/rechtsschutzversicherung',
image: assetUrl('iStock-1067720324.jpg'),
},
{
id: 'senioren',
title: t('topTopics.items.senioren.title', 'Senioren'),
description: t('topTopics.items.senioren.description', 'Sicherheit und Komfort Lösungen für jede Lebensphase.'),
cta: t('topTopics.items.senioren.cta', 'Alle Themen'),
href: '/senioren',
image: assetUrl('Fotolia_8218560_XS.jpg'),
},
{
id: 'finanzen',
title: t('topTopics.items.finanzen.title', 'Finanzen'),
description: t('topTopics.items.finanzen.description', 'Vermögensaufbau, Altersvorsorge und Finanzierung.'),
cta: t('topTopics.items.finanzen.cta', 'Zur Übersicht'),
href: '/finanzen',
image: assetUrl('iStock-957363908.jpg'),
},
]; ];
setFocusTopics( setFocusTopics(pool);
[...pool].sort((a, b) => }, [i18n.language, t]);
a.title.localeCompare(b.title, 'de-DE', { sensitivity: 'base' })
)
);
}, []);
const benefits = [ const benefits = [
t('benefits.benefit1', { t('benefits.benefit1', {
@ -268,58 +321,155 @@ const Index = () => {
]} ]}
/> />
{(() => {
const extraTopicIds = new Set(['zahnzusatz', 'ausland', 'sterbegeld']);
const mainTopics = focusTopics.filter((x) => !extraTopicIds.has(x.id));
const extraTopics = focusTopics.filter((x) => extraTopicIds.has(x.id));
const getExtraMeta = (id: string) => {
const priceValue = t(`topTopicsExtra.items.${id}.priceValue`, '');
const priceUnit = t(`topTopicsExtra.items.${id}.priceUnit`, '');
const pricePrefix = t(`topTopicsExtra.items.${id}.pricePrefix`, 'z.B. ab');
const title = t(`topTopicsExtra.items.${id}.title`, '');
const description = t(`topTopicsExtra.items.${id}.description`, '');
const cta = t(`topTopicsExtra.items.${id}.cta`, 'Jetzt informieren');
return {
title: title || undefined,
description: description || undefined,
cta,
pricePrefix: priceValue ? pricePrefix : undefined,
priceValue: priceValue || undefined,
priceUnit: priceValue ? priceUnit : undefined,
};
};
return (
<>
{/* Tematy dla klientów prywatnych */} {/* Tematy dla klientów prywatnych */}
<section className="py-16 bg-gradient-to-br from-gray-50 to-blue-50"> <section className="py-16 bg-gradient-to-br from-gray-50 to-blue-50">
<div className="container mx-auto px-4"> <div className="container mx-auto px-4">
<div className="text-center mb-12"> <div className="text-center mb-12">
<div className="text-xs uppercase tracking-widest text-gray-500 font-semibold mb-3">
{t('topTopics.kicker', 'Bestseller')}
</div>
<h2 className="text-4xl md:text-5xl font-bold text-gray-900 mb-4"> <h2 className="text-4xl md:text-5xl font-bold text-gray-900 mb-4">
{t('topics.title', 'Unsere Leistungen')} {t('topTopics.title', 'Die beliebtesten Themen')}
</h2> </h2>
<p className="text-xl text-gray-600 max-w-3xl mx-auto"> <p className="text-xl text-gray-600 max-w-3xl mx-auto">
{t('topics.subtitle', 'Die wichtigsten Lösungen für Ihre private Absicherung')} {t('topTopics.subtitle', 'Wählen Sie ein Thema und starten Sie mit wenigen Klicks.')}
</p> </p>
</div> </div>
<div className="grid sm:grid-cols-2 lg:grid-cols-3 gap-6 max-w-6xl mx-auto"> <div className="grid md:grid-cols-2 lg:grid-cols-3 gap-6 max-w-6xl mx-auto">
{focusTopics.map((item) => ( {mainTopics.map((item) => (
<Link <Card key={item.id} className="overflow-hidden shadow-lg hover:shadow-2xl transition-shadow">
key={`${item.href}-${item.title}`} <div className="relative h-44">
to={item.href}
className="group block transform transition-all duration-300 hover:scale-105"
>
<div className="relative h-44 md:h-50 overflow-hidden rounded-xl shadow-lg group-hover:shadow-2xl transition-shadow duration-300">
<div <div
className="absolute inset-0 bg-cover bg-center transform transition-transform duration-500 group-hover:scale-110" className="absolute inset-0 bg-cover bg-center"
style={{ backgroundImage: `url(${item.image})` }} style={{ backgroundImage: `url(${item.image})` }}
/> />
<div className="absolute inset-0 bg-gradient-to-t from-black/70 via-black/20 to-transparent" /> <div className="absolute inset-0 bg-gradient-to-t from-black/50 via-black/10 to-transparent" />
{/* Overlay mit Titel und Beschreibung */}
<div className="absolute bottom-0 left-0 right-0 p-4 text-white">
<div className="text-xl font-black">{item.title.replace('Versicherung', '').trim()}</div>
<div className="text-sm text-white/90 mt-1">
{item.title === 'KFZ-Fahrzeuge' && t('topics.kfz.description', 'Autoversicherung & Kfz')}
{item.title === 'Privatkunden' && t('topics.privatkunden.description', 'Sicherheit & Vorsorge')}
{item.title === 'Senioren' && t('topics.senioren.description', 'Wohlbefinden im Alter')}
{item.title === 'Hausrat' && t('topics.hausrat.description', 'Schutz für Ihr Zuhause')}
{item.title === 'Rechtsschutzversicherung' && t('topics.rechtsschutz.description', 'Ihre Rechte schützen')}
{item.title === 'Unfall Was jetzt?' && t('topics.unfall.description', 'Schnelle Hilfe')}
{item.title === 'Familien & Kinder' && t('topics.familie.description', 'Für Ihre Familie')}
{item.title === 'Tier­ver­si­che­rungen' && t('topics.tiere.description', 'Schutz für Ihre Haustiere')}
{item.title === 'Finanzen' && t('topics.finanzen.description', 'Ihre finanzielle Zukunft')}
{item.title === 'Private Krankenversicherung' && t('topics.privateKrankenversicherung.description', 'Optimaler Gesundheitsschutz')}
{item.title === 'Zahnzusatzversicherung' && t('topics.zahnzusatzversicherung.description', 'Perfekter Zahnschutz')}
{item.title === 'Auslandsreisekrankenversicherung' && t('topics.auslandsreisekrankenversicherung.description', 'Sorgenfrei reisen')}
{item.title === 'Gesundheitsvorsorge' && t('topics.gesundheitsvorsorge.description', 'Vorsorge & Prävention')}
</div>
</div>
</div> </div>
<CardContent className="p-6">
<div className="text-lg font-bold text-gray-900 mb-2">{item.title}</div>
<div className="text-sm text-gray-600 mb-5">{item.description}</div>
<Button asChild className="w-full">
<Link to={item.href}>
{item.cta}
<ArrowRight className="ml-2 h-4 w-4" />
</Link> </Link>
</Button>
</CardContent>
</Card>
))} ))}
</div> </div>
<div className="max-w-6xl mx-auto mt-12">
<div className="text-center mb-8">
<div className="text-xs uppercase tracking-widest text-gray-500 font-semibold mb-3">
{t('topTopicsExtra.kicker', 'Weitere Themen')}
</div>
<h3 className="text-2xl md:text-3xl font-bold text-gray-900 mb-3">
{t('topTopicsExtra.title', 'Mehr Absicherung passend zu Ihrer Situation')}
</h3>
<p className="text-lg text-gray-600 max-w-3xl mx-auto">
{t('topTopicsExtra.subtitle', 'Beliebte Zusatzlösungen schnell erklärt und einfach anfragen.')}
</p>
</div>
<div className="grid md:grid-cols-3 gap-6">
{extraTopics.map((item) => {
const meta = getExtraMeta(item.id);
const title = meta.title ?? item.title;
const description = meta.description ?? item.description;
return (
<Card
key={item.id}
className="border border-gray-200 shadow-sm hover:shadow-md transition-shadow rounded-xl overflow-hidden flex flex-col"
>
<div className="relative h-32 rounded-t-xl overflow-hidden">
<div
className="absolute inset-0 bg-cover bg-center"
style={{ backgroundImage: `url(${item.image})` }}
/>
<div className="absolute inset-0 bg-gradient-to-t from-black/30 via-black/0 to-transparent" />
</div>
<CardContent className="p-6 flex-1 flex flex-col">
<div className="text-lg font-semibold text-gray-900 mb-3 leading-snug">{title}</div>
<div className="text-sm text-gray-600 mb-6">{description}</div>
<div className="mt-auto">
{meta.priceValue ? (
<div className="mb-6">
<div className="text-xs text-gray-500 font-semibold mb-2 whitespace-pre-line">
{meta.pricePrefix}
</div>
<div className="text-3xl font-extrabold text-gray-900 leading-none">
{meta.priceValue}
</div>
{meta.priceUnit ? (
<div className="mt-2 text-sm text-gray-600 whitespace-pre-line leading-relaxed">
{meta.priceUnit}
</div>
) : null}
</div>
) : null}
<Button
asChild
className="w-full rounded-full py-6 bg-[#7a0000] hover:bg-[#5f0000] text-white"
>
<Link to={item.href}>
{meta.cta}
<ArrowRight className="ml-2 h-4 w-4" />
</Link>
</Button>
</div>
</CardContent>
</Card>
);
})}
</div>
</div>
<div className="max-w-6xl mx-auto mt-10 flex justify-center">
<Button asChild variant="outline" className="px-8">
<Link to="/leistungen">
{t('topTopics.allTopics', 'Alle Themen anzeigen')}
<ArrowRight className="ml-2 h-4 w-4" />
</Link>
</Button>
</div>
</div> </div>
</section> </section>
</>
);
})()}
{/* Experience Section */} {/* Experience Section */}
<section className="py-12 bg-white"> <section className="py-12 bg-white">
<div className="container mx-auto px-4"> <div className="container mx-auto px-4">

View File

@ -0,0 +1,797 @@
import React, { useState } from 'react';
import { Link, useNavigate } from 'react-router-dom';
import { useTranslation } from 'react-i18next';
import { Shield, Phone, Mail, CheckCircle, Star, Car, FileText, Calculator, Users, Download, Search, AlertCircle, AlertTriangle, Clock, FileCheck, PhoneCall, MapPin, Gauge, Heart, UserCheck, Pill, Stethoscope } from 'lucide-react';
import Layout from '@/components/Layout';
import { Button } from '@/components/ui/button';
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card';
import { Progress } from '@/components/ui/progress';
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
import GeneralNotice from '@/components/GeneralNotice';
import TwoColumnTab from '@/components/tab-pages/TwoColumnTab';
import RightImageCard from '@/components/tab-pages/RightImageCard';
const Krankheitsschutzbrief = () => {
const { t } = useTranslation('krankheitsschutzbrief');
// Add SEO metadata for search
React.useEffect(() => {
document.title = 'Krankheits-Schutzbrief - Agentur Mizera';
const metaDescription = document.querySelector('meta[name="description"]');
if (metaDescription) {
metaDescription.setAttribute('content', 'Krankheits-Schutzbrief: Umfassender Schutz bei schweren Krankheiten. Unabhängige Beratung und Tarifvergleich für Krankheits-Schutzbriefe.');
}
}, []);
const navigate = useNavigate();
const baseUrl = import.meta.env.BASE_URL;
const assetUrl = (fileName: string) => `${baseUrl}${encodeURI(fileName)}`;
const [activeTab, setActiveTab] = useState('overview');
const [formData, setFormData] = useState({
name: '',
phone: '',
email: '',
age: '',
coverageAmount: '',
duration: '',
healthStatus: '',
smoker: '',
message: ''
});
const handleFormChange = (
e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>
) => {
const { name, value } = e.target;
setFormData((prev) => ({
...prev,
[name]: value
}));
};
const handleFormSubmit = (e: React.FormEvent) => {
e.preventDefault();
console.log('Form submitted:', formData);
navigate('/contact');
};
const benefits = [
{
icon: Shield,
title: 'Krankheitsschutz',
description: 'Finanzielle Absicherung bei schweren Krankheiten',
},
{
icon: Heart,
title: 'Sofortleistung',
description: 'Schnelle Auszahlung bei Diagnosestellung',
},
{
icon: Calculator,
title: 'Günstige Beiträge',
description: 'Schutz zu fairen und transparenten Konditionen',
},
{
icon: UserCheck,
title: 'Einfacher Abschluss',
description: 'Unkomplizierte Vertragsaufnahme ohne Gesundheitsprüfungen',
},
{
icon: FileText,
title: 'Flexible Laufzeiten',
description: 'Anpassbar an Ihre persönliche Situation',
},
{
icon: Stethoscope,
title: 'Medizinische Vorsorge',
description: 'Zusätzlicher Schutz für Ihre Gesundheit',
},
];
const services = [
'Leistung bei Krebserkrankungen',
'Herz-Kreislauf-Erkrankungen',
'Schlaganfall-Versorgung',
'Organversagen-Schutz',
'Multiple Sklerose Abdeckung',
'Parkinson-Erkrankung',
'Sofortauszahlung ohne Wartezeit',
'Beratung bei Krankheitsfällen',
];
return (
<Layout>
<div className="min-h-screen bg-gray-50">
{/* Hero Section */}
<div className="relative">
<div
className="h-96 bg-cover bg-center relative"
style={{ backgroundImage: `url(${assetUrl('head_pillen.jpg')})` }}
>
<div className="absolute inset-0 bg-gray-900/20" />
<div className="relative container mx-auto px-4 h-full flex items-center">
<div className="max-w-3xl">
<div className="bg-black/40 text-white px-8 py-6 md:px-10 md:py-8 shadow-lg">
<h1 className="text-4xl md:text-5xl font-bold text-white mb-6">
Krankheits-Schutzbrief
</h1>
<p className="text-xl text-white/90 mb-8 max-w-2xl">
Umfassender Schutz bei schweren Krankheiten
</p>
<div className="flex flex-col sm:flex-row gap-4">
<Button onClick={() => setActiveTab('form')} size="lg" className="bg-blue-600 hover:bg-blue-700 text-white">
Jetzt beraten lassen
</Button>
<Button onClick={() => setActiveTab('calculator')} size="lg" variant="outline" className="bg-white/10 border-white text-white hover:bg-white/20">
Beitrag berechnen
</Button>
</div>
</div>
</div>
</div>
</div>
</div>
{/* Content */}
<style>{`
[data-state="active"] {
outline: none !important;
border: none !important;
box-shadow: none !important;
}
button:focus {
outline: none !important;
border: none !important;
box-shadow: none !important;
}
button:focus-visible {
outline: none !important;
border: none !important;
box-shadow: none !important;
}
`}</style>
<div className="container mx-auto px-4 md:px-6 py-8">
<div className="max-w-screen-2xl mx-auto">
<h2 className="text-2xl font-bold text-gray-900 mb-6 text-center">
Krankheits-Schutzbrief
</h2>
<div className="bg-white rounded-lg border border-gray-200 shadow-sm">
<Tabs
value={activeTab}
onValueChange={(next) => {
setActiveTab(next);
}}
className="w-full"
id="tab-section"
>
<div className="border-b border-gray-100 px-4 pt-6 pb-2 bg-gradient-to-r from-blue-50 to-white">
<TabsList className="grid grid-cols-5 gap-2 w-full h-auto bg-transparent border-0 shadow-none">
<TabsTrigger
value="overview"
className="relative px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0"
>
<Shield className="w-4 h-4 mr-1.5" />
{t('tabs.overview', 'Übersicht')}
</TabsTrigger>
<TabsTrigger
value="details"
className="relative px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0"
>
<FileText className="w-4 h-4 mr-1.5" />
{t('tabs.details', 'Details')}
</TabsTrigger>
<TabsTrigger
value="calculator"
className="relative px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0"
>
<Calculator className="w-4 h-4 mr-1.5" />
{t('tabs.calculator', 'Rechner')}
</TabsTrigger>
<TabsTrigger
value="form"
className="relative px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0"
>
<Phone className="w-4 h-4 mr-1.5" />
{t('tabs.form', 'Anfrage')}
</TabsTrigger>
<TabsTrigger
value="brochure"
className="relative px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0"
>
<Download className="w-4 h-4 mr-1.5" />
{t('tabs.brochure', 'PDF')}
</TabsTrigger>
</TabsList>
</div>
<div className="p-4 md:p-6">
<TabsContent value="overview" className="mt-0">
<TwoColumnTab
className="gap-8 items-center"
left={
<>
<div className="inline-flex items-center gap-2 rounded-full bg-blue-50 border border-blue-200 px-3 py-1 text-sm text-blue-800 mb-4">
<Star className="w-4 h-4" />
<span>Schutz bei schweren Krankheiten</span>
</div>
<h1 className="text-3xl md:text-4xl font-bold text-gray-900 leading-tight">
Krankheits-Schutzbrief
<span className="block text-blue-700">Finanzielle Sicherheit in schweren Zeiten</span>
</h1>
<p className="mt-4 text-gray-600 text-lg">
Umfassender Schutz bei schweren Krankheiten mit sofortiger Leistungsauszahlung und flexibler Gestaltung.
</p>
<div className="mt-6 flex flex-col sm:flex-row gap-3">
<Button onClick={() => setActiveTab('form')} className="bg-blue-700 hover:bg-blue-800">
Angebot anfordern
</Button>
<Button variant="outline" onClick={() => navigate('/kontakt')} className="border-gray-300">
Beratung
</Button>
</div>
<div className="mt-6 grid grid-cols-1 sm:grid-cols-2 gap-3">
<div className="flex items-center gap-3 rounded-lg border border-gray-200 bg-white p-3">
<Shield className="w-5 h-5 text-blue-700" />
<div className="text-sm">
<div className="font-semibold text-gray-900">Krankheitsschutz</div>
<div className="text-gray-600">Finanzielle Absicherung bei schweren Krankheiten</div>
</div>
</div>
<div className="flex items-center gap-3 rounded-lg border border-gray-200 bg-white p-3">
<Heart className="w-5 h-5 text-blue-700" />
<div className="text-sm">
<div className="font-semibold text-gray-900">Sofortleistung</div>
<div className="text-gray-600">Schnelle Auszahlung bei Diagnosestellung</div>
</div>
</div>
</div>
</>
}
right={
(
<div className="relative">
<div className="absolute inset-0 bg-gradient-to-tr from-blue-100 to-white rounded-2xl" />
<div className="relative rounded-2xl border border-gray-200 bg-white shadow-sm overflow-hidden">
<img
src={assetUrl('head_pillen.jpg')}
alt="Krankheits-Schutzbrief"
className="w-full h-[240px] object-cover"
onError={(e) => {
(e.currentTarget as HTMLImageElement).style.display = 'none';
}}
/>
<div className="p-5">
<div className="flex items-center gap-2 text-sm text-gray-600">
<Pill className="w-4 h-4" />
<span>Krebserkrankungen, Herzinfarkt, Schlaganfall, Sofortleistung</span>
</div>
<div className="mt-2 text-sm text-gray-600">
Tarifcheck schnell, fair und passend zu Ihrer Gesundheitssituation.
</div>
</div>
</div>
</div>
)
}
/>
<div className="mt-10 bg-white rounded-xl border border-gray-200 p-6">
<h3 className="text-xl font-bold text-gray-900 mb-4">Kurz & klar</h3>
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
<Card className="border-gray-200">
<CardHeader>
<CardTitle className="text-base flex items-center gap-2">
<CheckCircle className="w-4 h-4 text-blue-700" />
Schwerkrankenschutz
</CardTitle>
<CardDescription>Finanzielle Sicherheit bei schweren Erkrankungen.</CardDescription>
</CardHeader>
</Card>
<Card className="border-gray-200">
<CardHeader>
<CardTitle className="text-base flex items-center gap-2">
<Calculator className="w-4 h-4 text-blue-700" />
Sofortauszahlung
</CardTitle>
<CardDescription>Keine Wartezeit bei Diagnosestellung.</CardDescription>
</CardHeader>
</Card>
<Card className="border-gray-200">
<CardHeader>
<CardTitle className="text-base flex items-center gap-2">
<PhoneCall className="w-4 h-4 text-blue-700" />
Persönliche Beratung
</CardTitle>
<CardDescription>Wir finden den passenden Schutz für Sie.</CardDescription>
</CardHeader>
</Card>
</div>
</div>
<div className="mt-6 rounded-xl bg-blue-700 p-6 text-white">
<h3 className="text-2xl font-bold">Was beeinflusst die Kosten des Krankheits-Schutzbriefs?</h3>
<div className="mt-6 grid grid-cols-1 md:grid-cols-2 gap-6">
<div className="rounded-lg bg-white/10 p-4">
<UserCheck className="w-10 h-10 text-white/90" strokeWidth={1.25} />
<div className="mt-3 text-lg font-semibold">Alter und Gesundheitszustand</div>
<div className="mt-1 text-sm text-white/85">
Jüngere und gesündere Personen zahlen geringere Beiträge.
</div>
</div>
<div className="rounded-lg bg-white/10 p-4">
<Calculator className="w-10 h-10 text-white/90" strokeWidth={1.25} />
<div className="mt-3 text-lg font-semibold">Versicherungssumme</div>
<div className="mt-1 text-sm text-white/85">
Höhere Leistungen bei schweren Krankheiten kosten mehr.
</div>
</div>
<div className="rounded-lg bg-white/10 p-4">
<Clock className="w-10 h-10 text-white/90" strokeWidth={1.25} />
<div className="mt-3 text-lg font-semibold">Laufzeit</div>
<div className="mt-1 text-sm text-white/85">
Längere Laufzeiten können günstigere Konditionen ermöglichen.
</div>
</div>
<div className="rounded-lg bg-white/10 p-4">
<AlertTriangle className="w-10 h-10 text-white/90" strokeWidth={1.25} />
<div className="mt-3 text-lg font-semibold">Leistungsumfang</div>
<div className="mt-1 text-sm text-white/85">
Anzahl der versicherten Krankheiten beeinflusst die Prämie.
</div>
</div>
</div>
<div className="mt-6 rounded-lg bg-white/10 p-4 text-sm text-white/90">
Beispiel: Beiträge liegen in Deutschland meist zwischen 10 und 80 monatlich.
</div>
</div>
</TabsContent>
<TabsContent value="details" className="mt-0">
<TwoColumnTab
left={
<>
<h3 className="text-2xl font-bold text-gray-900">Details & Vorteile</h3>
<p className="mt-2 text-gray-600">
Umfassender Schutz bei schweren Krankheiten mit sofortiger Leistungsauszahlung und flexibler Gestaltung.
</p>
<div className="mt-6 grid grid-cols-1 md:grid-cols-2 gap-4">
{benefits.map((benefit, index) => (
<Card key={index} className="border-gray-200">
<CardHeader>
<CardTitle className="text-base flex items-center gap-2">
<benefit.icon className="w-5 h-5 text-blue-700" />
{benefit.title}
</CardTitle>
<CardDescription>{benefit.description}</CardDescription>
</CardHeader>
</Card>
))}
</div>
<div className="mt-6">
<h4 className="text-lg font-semibold text-gray-900 mb-3">Versicherte Krankheiten</h4>
<div className="rounded-lg border border-gray-200 bg-white overflow-hidden">
<table className="w-full">
<thead className="bg-gray-50 border-b border-gray-200">
<tr>
<th className="px-4 py-3 text-left text-sm font-medium text-gray-900">Krankheitsgruppe</th>
<th className="px-4 py-3 text-left text-sm font-medium text-gray-900">Beispiele</th>
<th className="px-4 py-3 text-left text-sm font-medium text-gray-900">Leistung</th>
</tr>
</thead>
<tbody className="divide-y divide-gray-200">
<tr className="hover:bg-gray-50">
<td className="px-4 py-3 text-sm font-medium text-gray-900">Krebserkrankungen</td>
<td className="px-4 py-3 text-sm text-gray-700">Brustkrebs, Lungenkrebs, Darmkrebs, Prostatakrebs</td>
<td className="px-4 py-3 text-sm text-gray-700">Sofortauszahlung bei Diagnose</td>
</tr>
<tr className="hover:bg-gray-50">
<td className="px-4 py-3 text-sm font-medium text-gray-900">Herz-Kreislauf</td>
<td className="px-4 py-3 text-sm text-gray-700">Herzinfarkt, Herzinsuffizienz, Koronare Herzkrankheit</td>
<td className="px-4 py-3 text-sm text-gray-700">100% der vereinbarten Summe</td>
</tr>
<tr className="hover:bg-gray-50">
<td className="px-4 py-3 text-sm font-medium text-gray-900">Schlaganfall</td>
<td className="px-4 py-3 text-sm text-gray-700">Ischämischer und hämorrhagischer Schlaganfall</td>
<td className="px-4 py-3 text-sm text-gray-700">Sofortleistung bei bleibenden Schäden</td>
</tr>
<tr className="hover:bg-gray-50">
<td className="px-4 py-3 text-sm font-medium text-gray-900">Organversagen</td>
<td className="px-4 py-3 text-sm text-gray-700">Nierenversagen, Leberversagen, Pankreasversagen</td>
<td className="px-4 py-3 text-sm text-gray-700">Vollständige Auszahlung</td>
</tr>
<tr className="hover:bg-gray-50">
<td className="px-4 py-3 text-sm font-medium text-gray-900">Nervensystem</td>
<td className="px-4 py-3 text-sm text-gray-700">Multiple Sklerose, Parkinson, ALS</td>
<td className="px-4 py-3 text-sm text-gray-700">Progressive Leistungsauszahlung</td>
</tr>
<tr className="hover:bg-gray-50">
<td className="px-4 py-3 text-sm font-medium text-gray-900">Weitere Krankheiten</td>
<td className="px-4 py-3 text-sm text-gray-700">Blindheit, Taubheit, Verbrennungen, Koma</td>
<td className="px-4 py-3 text-sm text-gray-700">Je nach Schweregrad</td>
</tr>
</tbody>
</table>
</div>
<div className="mt-4 p-4 bg-blue-50 rounded-lg border border-blue-200">
<p className="text-sm text-blue-900">
<strong>Hinweis:</strong> Die genauen Krankheiten und Bedingungen entnehmen Sie bitte der
<a href="/PDF/Kundenbroschüre.pdf" download className="text-blue-700 hover:text-blue-800 underline ml-1">Kundenbroschüre</a>.
</p>
</div>
</div>
</>
}
right={
<RightImageCard src={assetUrl('head_pillen.jpg')} alt="Details & Vorteile">
<Card className="border-gray-200">
<CardHeader>
<CardTitle className="text-lg">Tipp</CardTitle>
<CardDescription>Leistungsumfang sorgfältig prüfen.</CardDescription>
</CardHeader>
<CardContent className="text-sm text-gray-700">
Achten Sie auf welche Krankheiten versichert sind und ob Vorerkrankungen
ausgeschlossen sind. Prüfen Sie auch die Höhe der Sofortleistung.
</CardContent>
</Card>
</RightImageCard>
}
/>
</TabsContent>
<TabsContent value="calculator" className="mt-0">
<TwoColumnTab
left={
<>
<h3 className="text-2xl font-bold text-gray-900">Krankheits-Schutz-Vergleichsrechner</h3>
<p className="mt-2 text-gray-600">
Ein Richtwert hilft bei der Orientierung. Für ein exaktes Angebot brauchen
wir u. a. Alter, Gesundheitszustand und gewünschte Leistungssumme.
</p>
<Card className="mt-6 border-gray-200">
<CardHeader>
<CardTitle className="text-lg flex items-center gap-2">
<Calculator className="w-5 h-5 text-blue-700" />
Grobe Beitragsschätzung
</CardTitle>
<CardDescription>Unverbindlich wir kalkulieren danach exakt.</CardDescription>
</CardHeader>
<CardContent className="space-y-4">
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
<div>
<label className="text-sm font-medium text-gray-700">Alter</label>
<select
name="age"
value={formData.age}
onChange={handleFormChange}
className="mt-1 w-full rounded-md border border-gray-300 bg-white px-3 py-2 text-sm"
>
<option value="">Bitte wählen</option>
<option value="18-25">18-25 Jahre</option>
<option value="26-35">26-35 Jahre</option>
<option value="36-45">36-45 Jahre</option>
<option value="46-55">46-55 Jahre</option>
<option value="56-65">56-65 Jahre</option>
</select>
</div>
<div>
<label className="text-sm font-medium text-gray-700">Leistungssumme</label>
<select
name="coverageAmount"
value={formData.coverageAmount}
onChange={handleFormChange}
className="mt-1 w-full rounded-md border border-gray-300 bg-white px-3 py-2 text-sm"
>
<option value="">Bitte wählen</option>
<option value="25000">25.000 </option>
<option value="50000">50.000 </option>
<option value="75000">75.000 </option>
<option value="100000">100.000 </option>
<option value="200000">200.000 </option>
</select>
</div>
</div>
<div className="rounded-lg border border-blue-200 bg-blue-50 p-4">
<div className="text-sm text-blue-900 font-semibold">Richtwert (Beispiel)</div>
<div className="mt-1 text-sm text-blue-900">
Krankheits-Schutzbrief ab <span className="font-bold">ca. 10 </span>/Monat
</div>
<div className="text-xs text-blue-900/80 mt-2">
Abhängig von Alter, Gesundheitszustand, Leistungssumme und Umfang.
</div>
</div>
<Button onClick={() => setActiveTab('form')} className="w-full bg-blue-700 hover:bg-blue-800">
Jetzt konkretes Angebot anfordern
</Button>
</CardContent>
</Card>
</>
}
right={
<RightImageCard src={assetUrl('head_pillen.jpg')} alt="Krankheits-Schutz-Vergleichsrechner">
<Card className="border-gray-200">
<CardHeader>
<CardTitle className="text-lg">Was wir fürs Angebot brauchen</CardTitle>
<CardDescription>Je genauer, desto besser.</CardDescription>
</CardHeader>
<CardContent className="space-y-3 text-sm text-gray-700">
<div className="flex items-start gap-2">
<FileText className="w-4 h-4 text-blue-700 mt-0.5" />
<span>Alter und Gesundheitszustand</span>
</div>
<div className="flex items-start gap-2">
<Search className="w-4 h-4 text-blue-700 mt-0.5" />
<span>Vorerkrankungen und Risikofaktoren</span>
</div>
<div className="flex items-start gap-2">
<AlertCircle className="w-4 h-4 text-blue-700 mt-0.5" />
<span>Gewünschte Leistungssumme und Krankheiten</span>
</div>
</CardContent>
</Card>
</RightImageCard>
}
/>
</TabsContent>
<TabsContent value="form" className="mt-0">
<TwoColumnTab
left={
<>
<h3 className="text-2xl font-bold text-gray-900">Anfrageformular</h3>
<p className="mt-2 text-gray-600">
Sende uns deine Eckdaten wir melden uns mit einem passenden Angebot.
</p>
<Card className="mt-6 border-gray-200">
<CardContent className="p-6">
<form onSubmit={handleFormSubmit} className="space-y-4">
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
<div>
<label className="text-sm font-medium text-gray-700">Name</label>
<input
name="name"
value={formData.name}
onChange={handleFormChange}
className="mt-1 w-full rounded-md border border-gray-300 px-3 py-2 text-sm"
required
/>
</div>
<div>
<label className="text-sm font-medium text-gray-700">Telefon</label>
<input
name="phone"
value={formData.phone}
onChange={handleFormChange}
className="mt-1 w-full rounded-md border border-gray-300 px-3 py-2 text-sm"
/>
</div>
</div>
<div>
<label className="text-sm font-medium text-gray-700">E-Mail</label>
<input
type="email"
name="email"
value={formData.email}
onChange={handleFormChange}
className="mt-1 w-full rounded-md border border-gray-300 px-3 py-2 text-sm"
required
/>
</div>
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
<div>
<label className="text-sm font-medium text-gray-700">Alter</label>
<select
name="age"
value={formData.age}
onChange={handleFormChange}
className="mt-1 w-full rounded-md border border-gray-300 bg-white px-3 py-2 text-sm"
>
<option value="">Bitte wählen</option>
<option value="18-25">18-25 Jahre</option>
<option value="26-35">26-35 Jahre</option>
<option value="36-45">36-45 Jahre</option>
<option value="46-55">46-55 Jahre</option>
<option value="56-65">56-65 Jahre</option>
</select>
</div>
<div>
<label className="text-sm font-medium text-gray-700">Leistungssumme</label>
<select
name="coverageAmount"
value={formData.coverageAmount}
onChange={handleFormChange}
className="mt-1 w-full rounded-md border border-gray-300 bg-white px-3 py-2 text-sm"
>
<option value="">Bitte wählen</option>
<option value="25000">25.000 </option>
<option value="50000">50.000 </option>
<option value="75000">75.000 </option>
<option value="100000">100.000 </option>
<option value="200000">200.000 </option>
</select>
</div>
<div>
<label className="text-sm font-medium text-gray-700">Laufzeit</label>
<select
name="duration"
value={formData.duration}
onChange={handleFormChange}
className="mt-1 w-full rounded-md border border-gray-300 bg-white px-3 py-2 text-sm"
>
<option value="">Bitte wählen</option>
<option value="5">5 Jahre</option>
<option value="10">10 Jahre</option>
<option value="15">15 Jahre</option>
<option value="20">20 Jahre</option>
<option value="30">30 Jahre</option>
</select>
</div>
</div>
<div>
<label className="text-sm font-medium text-gray-700">Gesundheitszustand</label>
<select
name="healthStatus"
value={formData.healthStatus}
onChange={handleFormChange}
className="mt-1 w-full rounded-md border border-gray-300 bg-white px-3 py-2 text-sm"
>
<option value="">Bitte wählen</option>
<option value="gesund">Gesund</option>
<option value="kleine-beschwerden">Kleine Beschwerden</option>
<option value="chronisch">Chronische Erkrankungen</option>
<option value="unbekannt">Möchte ich nicht angeben</option>
</select>
</div>
<div>
<label className="text-sm font-medium text-gray-700">
Haben Sie in den letzten 12 Monaten, wenn auch nur gelegentlich, geraucht und/oder Nikotin konsumiert?*
</label>
<select
name="smoker"
value={formData.smoker}
onChange={handleFormChange}
className="mt-1 w-full rounded-md border border-gray-300 bg-white px-3 py-2 text-sm"
>
<option value="">Bitte wählen</option>
<option value="ja">Ja</option>
<option value="nein">Nein</option>
</select>
<div className="mt-2 text-xs text-gray-600">
<p className="font-semibold">* Rauchen und/oder Nikotinkonsum ist:</p>
<p>a) Rauchen von Zigarette, Zigarillo, Zigarre, Pfeife, Tabak, Shisha oder Wasserpfeife,</p>
<p>b) Konsum von E-Zigarette, E-Pfeife, E-Zigarre, Schnupftabak, Kautabak, Nikotinersatzprodukte wie Nikotinpflaster oder Kaugummi.</p>
</div>
</div>
<div>
<label className="text-sm font-medium text-gray-700">Nachricht</label>
<textarea
name="message"
value={formData.message}
onChange={handleFormChange}
className="mt-1 w-full rounded-md border border-gray-300 px-3 py-2 text-sm min-h-[120px]"
placeholder="Welche Krankheiten sollen versichert sein?"
/>
</div>
<Button type="submit" className="bg-blue-700 hover:bg-blue-800">
Anfrage senden
</Button>
</form>
</CardContent>
</Card>
</>
}
right={
<RightImageCard src="/head_kontakt_agentur_mizera.jpg" alt="Anfrageformular">
<Card className="border-gray-200">
<CardHeader>
<CardTitle className="text-lg">Direktkontakt</CardTitle>
<CardDescription>Wenn es schnell gehen soll.</CardDescription>
</CardHeader>
<CardContent className="space-y-3 text-sm text-gray-700">
<div className="flex items-center gap-2">
<Phone className="w-4 h-4 text-blue-700" />
<span>Telefon: <a href="tel:01719864053" className="text-blue-600 hover:text-blue-800 underline">0171 / 9864053</a> <a href="https://wa.me/491719864053" target="_blank" rel="noreferrer" className="text-green-600 hover:text-green-800 underline">(WhatsApp)</a></span>
</div>
<div className="flex items-center gap-2">
<Mail className="w-4 h-4 text-blue-700" />
<span>E-Mail: <a href="mailto:info@finanzen-mizera.de" className="text-blue-600 hover:text-blue-800 underline">info@finanzen-mizera.de</a></span>
</div>
<div className="pt-2">
<Button variant="outline" className="w-full" onClick={() => navigate('/contact')}>
Kontaktseite
</Button>
</div>
</CardContent>
</Card>
</RightImageCard>
}
/>
</TabsContent>
<TabsContent value="brochure" className="mt-0">
<TwoColumnTab
left={
<>
<h3 className="text-2xl font-bold text-gray-900">Kundenbroschüre (PDF)</h3>
<p className="mt-2 text-gray-600">Broschüre als PDF zum Download.</p>
<Card className="mt-6 border-gray-200">
<CardHeader>
<CardTitle className="text-lg">Krankheits-Schutzbrief (PDF)</CardTitle>
<CardDescription>Informationsbroschüre zur Krankheits-Schutzversicherung</CardDescription>
</CardHeader>
<CardContent className="space-y-4">
<div className="flex flex-col md:flex-row gap-4 items-center">
<div className="flex-1">
<a href="/PDF/Kundenbroschüre.pdf" download className="block">
<Button className="bg-blue-700 hover:bg-blue-800 w-full">
<Download className="w-4 h-4 mr-2" />
PDF herunterladen
</Button>
</a>
</div>
<div className="flex flex-col items-center gap-1">
<div className="w-20 h-20 bg-white border-2 border-gray-300 rounded-lg p-1 flex items-center justify-center">
<div className="text-center">
<div className="w-16 h-16 bg-gray-100 rounded flex items-center justify-center">
<div className="text-xs text-gray-600 text-center font-semibold">
QR-Code
</div>
</div>
</div>
</div>
<p className="text-xs text-gray-600 text-center">
Scan für Zugriff
</p>
</div>
</div>
</CardContent>
</Card>
</>
}
right={
<RightImageCard src={assetUrl('head_pillen.jpg')} alt="Kundenbroschüre">
<Card className="border-gray-200">
<CardHeader>
<CardTitle className="text-lg">Hinweis</CardTitle>
<CardDescription>Bei Fragen beraten wir gerne.</CardDescription>
</CardHeader>
</Card>
</RightImageCard>
}
/>
</TabsContent>
<GeneralNotice />
</div>
</Tabs>
</div>
</div>
</div>
</div>
</Layout>
);
};
export default Krankheitsschutzbrief;

View File

@ -1,8 +1,10 @@
import { useLocation } from "react-router-dom"; import { useLocation } from "react-router-dom";
import { useEffect } from "react"; import { useEffect } from "react";
import { useTranslation } from "react-i18next";
const NotFound = () => { const NotFound = () => {
const location = useLocation(); const location = useLocation();
const { t } = useTranslation('common');
useEffect(() => { useEffect(() => {
console.error("404 Error: User attempted to access non-existent route:", location.pathname); console.error("404 Error: User attempted to access non-existent route:", location.pathname);
@ -12,9 +14,9 @@ const NotFound = () => {
<div className="flex min-h-screen items-center justify-center bg-muted"> <div className="flex min-h-screen items-center justify-center bg-muted">
<div className="text-center"> <div className="text-center">
<h1 className="mb-4 text-4xl font-bold">404</h1> <h1 className="mb-4 text-4xl font-bold">404</h1>
<p className="mb-4 text-xl text-muted-foreground">Oops! Page not found</p> <p className="mb-4 text-xl text-muted-foreground">{t('notFound.message', 'Seite nicht gefunden')}</p>
<a href="/" className="text-primary underline hover:text-primary/90"> <a href="/" className="text-primary underline hover:text-primary/90">
Return to Home {t('notFound.backHome', 'Zur Startseite')}
</a> </a>
</div> </div>
</div> </div>

View File

@ -7,63 +7,94 @@ import Layout from '@/components/Layout';
import HeroSlider from '@/components/HeroSlider'; import HeroSlider from '@/components/HeroSlider';
const Privatkunden = () => { const Privatkunden = () => {
const { t } = useTranslation('privatkunden'); const { t, i18n } = useTranslation('privatkunden');
const navigate = useNavigate(); const navigate = useNavigate();
const baseUrl = import.meta.env.BASE_URL; const baseUrl = import.meta.env.BASE_URL;
const assetUrl = (fileName: string) => `${baseUrl}${encodeURI(fileName)}`; const assetUrl = (fileName: string) => `${baseUrl}${encodeURI(fileName)}`;
const [focusTopics, setFocusTopics] = useState<Array<{ title: string; href: string; image: string }>>([]); const [focusTopics, setFocusTopics] = useState<
Array<{ id: string; title: string; href: string; image: string }>
>([]);
useEffect(() => { useEffect(() => {
const pool = [ const pool = [
{ title: 'KFZ-Fahrzeuge', href: '/kfz', image: assetUrl('Fotolia_8654128_XS.jpg') }, { id: 'kfz', title: t('topics.kfz', 'KFZ-Fahrzeuge'), href: '/kfz', image: assetUrl('Fotolia_8654128_XS.jpg') },
{ title: 'Sachversicherung', href: '/sachversicherung', image: assetUrl('iStock-943842590.jpg') }, { id: 'sach', title: t('topics.sach', 'Sachversicherung'), href: '/sachversicherung', image: assetUrl('iStock-943842590.jpg') },
{ title: 'Gesundheitsvorsorge', href: '/gesundheitsvorsorge', image: assetUrl('iStock-819100588.jpg') }, { id: 'gesundheit', title: t('topics.gesundheit', 'Gesundheitsvorsorge'), href: '/gesundheitsvorsorge', image: assetUrl('iStock-819100588.jpg') },
{ title: 'Vermögenssicherung', href: '/vermoegenssicherung', image: assetUrl('iStock-495809266.jpg') }, { id: 'vermoegen', title: t('topics.vermoegen', 'Vermögenssicherung'), href: '/vermoegenssicherung', image: assetUrl('iStock-495809266.jpg') },
{ title: 'Risikoschutz', href: '/risikoschutz', image: assetUrl('iStock-970876204.jpg') }, { id: 'risiko', title: t('topics.risiko', 'Risikoschutz'), href: '/risikoschutz', image: assetUrl('iStock-970876204.jpg') },
{ title: 'Altersvorsorge', href: '/altersvorsorge', image: assetUrl('Fotolia_67327775_XS.jpg') }, { id: 'altersvorsorge', title: t('topics.altersvorsorge', 'Altersvorsorge'), href: '/altersvorsorge', image: assetUrl('Fotolia_67327775_XS.jpg') },
]; ];
setFocusTopics( setFocusTopics(
[...pool].sort((a, b) => a.title.localeCompare(b.title, 'de', { sensitivity: 'base' })) [...pool].sort((a, b) => a.title.localeCompare(b.title, i18n.language || 'de', { sensitivity: 'base' }))
); );
}, []); }, [i18n.language, t]);
const services = [ const services = [
{ {
icon: Shield, icon: Shield,
title: 'KFZ-Versicherung', title: t('services.kfz.title', 'KFZ-Versicherung'),
description: 'Perfekter Schutz für Ihr Fahrzeug individuell und fair', description: t('services.kfz.description', 'Perfekter Schutz für Ihr Fahrzeug individuell und fair'),
features: ['Autoversicherung', 'Motorradversicherung', 'Quadversicherung', 'FairMobil', 'Drittfahrer-Schutz', 'Flottenversicherung'] features: [
t('services.kfz.features.auto', 'Autoversicherung'),
t('services.kfz.features.motorrad', 'Motorradversicherung'),
t('services.kfz.features.quad', 'Quadversicherung'),
t('services.kfz.features.fairmobil', 'FairMobil'),
t('services.kfz.features.drittfahrer', 'Drittfahrer-Schutz'),
t('services.kfz.features.flotte', 'Flottenversicherung')
]
}, },
{ {
icon: Shield, icon: Shield,
title: 'Sachversicherung', title: t('services.sach.title', 'Sachversicherung'),
description: 'Ihr Hab und Gut bestens abgesichert', description: t('services.sach.description', 'Ihr Hab und Gut bestens abgesichert'),
features: ['Hausratversicherung', 'Unfallversicherung'] features: [
t('services.sach.features.hausrat', 'Hausratversicherung'),
t('services.sach.features.unfall', 'Unfallversicherung'),
]
}, },
{ {
icon: Shield, icon: Shield,
title: 'Gesundheitsvorsorge', title: t('services.gesundheit.title', 'Gesundheitsvorsorge'),
description: 'Optimale medizinische Versorgung für die ganze Familie', description: t('services.gesundheit.description', 'Optimale medizinische Versorgung für die ganze Familie'),
features: ['Private Krankenversicherung', 'Zahnzusatzversicherung', 'Auslandsreisekrankenversicherung', 'Krankentagegeldversicherung'] features: [
t('services.gesundheit.features.pkv', 'Private Krankenversicherung'),
t('services.gesundheit.features.zahn', 'Zahnzusatzversicherung'),
t('services.gesundheit.features.ausland', 'Auslandsreisekrankenversicherung'),
t('services.gesundheit.features.ktg', 'Krankentagegeldversicherung'),
]
}, },
{ {
icon: Shield, icon: Shield,
title: 'Vermögenssicherung', title: t('services.vermoegen.title', 'Vermögenssicherung'),
description: 'Schutz Ihres Lebenswerks und Ihrer Familie', description: t('services.vermoegen.description', 'Schutz Ihres Lebenswerks und Ihrer Familie'),
features: ['Lebensversicherung', 'Risikolebensversicherung', 'Wohngebäudeversicherung', 'Hausratversicherung'] features: [
t('services.vermoegen.features.lebensversicherung', 'Lebensversicherung'),
t('services.vermoegen.features.risikolebensversicherung', 'Risikolebensversicherung'),
t('services.vermoegen.features.wohngebaeudeversicherung', 'Wohngebäudeversicherung'),
t('services.vermoegen.features.hausratversicherung', 'Hausratversicherung'),
]
}, },
{ {
icon: Shield, icon: Shield,
title: 'Risikoschutz', title: t('services.risiko.title', 'Risikoschutz'),
description: 'Umfassender Schutz für alle Lebensbereiche', description: t('services.risiko.description', 'Umfassender Schutz für alle Lebensbereiche'),
features: ['Unfallversicherung', 'Haftpflichtversicherung', 'Rechtsschutzversicherung'] features: [
t('services.risiko.features.unfallversicherung', 'Unfallversicherung'),
t('services.risiko.features.haftpflichtversicherung', 'Haftpflichtversicherung'),
t('services.risiko.features.rechtsschutzversicherung', 'Rechtsschutzversicherung'),
]
}, },
{ {
icon: Users, icon: Users,
title: 'Altersvorsorge', title: t('services.altersvorsorge.title', 'Altersvorsorge'),
description: 'Sichere Rente und finanzielle Unabhängigkeit', description: t('services.altersvorsorge.description', 'Sichere Rente und finanzielle Unabhängigkeit'),
features: ['Private Rentenversicherung', 'Riester-Rente', 'Rürup-Rente', 'Betriebliche Altersvorsorge'] features: [
t('services.altersvorsorge.features.privateRente', 'Private Rentenversicherung'),
t('services.altersvorsorge.features.riesterRente', 'Riester-Rente'),
t('services.altersvorsorge.features.ruerupRente', 'Rürup-Rente'),
t('services.altersvorsorge.features.bav', 'Betriebliche Altersvorsorge'),
]
} }
]; ];
@ -129,17 +160,17 @@ const Privatkunden = () => {
{/* Links unter dem Bild */} {/* Links unter dem Bild */}
<div className="mt-4 p-4 bg-white rounded-lg shadow-md"> <div className="mt-4 p-4 bg-white rounded-lg shadow-md">
{item.title === 'KFZ-Fahrzeuge' && ( {item.id === 'kfz' && (
<div className="space-y-2"> <div className="space-y-2">
<div className="text-xs uppercase tracking-wide text-gray-500 font-semibold mb-3">Details:</div> <div className="text-xs uppercase tracking-wide text-gray-500 font-semibold mb-3">{t('details.label', 'Details:')}</div>
<div className="grid grid-cols-1 gap-2"> <div className="grid grid-cols-1 gap-2">
{[ {[
{ title: 'Autoversicherung', href: '/autoversicherung' }, { title: t('details.kfz.autoversicherung', 'Autoversicherung'), href: '/autoversicherung' },
{ title: 'Motorradversicherung', href: '/motorradversicherung' }, { title: t('details.kfz.motorradversicherung', 'Motorradversicherung'), href: '/motorradversicherung' },
{ title: 'Quadversicherung', href: '/quadversicherung' }, { title: t('details.kfz.quadversicherung', 'Quadversicherung'), href: '/quadversicherung' },
{ title: 'FairMobil', href: '/fairmobil' }, { title: t('details.kfz.fairmobil', 'FairMobil'), href: '/fairmobil' },
{ title: 'Drittfahrer-Schutz', href: '/drittfahrer-schutz' }, { title: t('details.kfz.drittfahrerSchutz', 'Drittfahrer-Schutz'), href: '/drittfahrer-schutz' },
{ title: 'Flottenversicherung', href: '/flottenversicherung' } { title: t('details.kfz.flottenversicherung', 'Flottenversicherung'), href: '/flottenversicherung' }
].map((link) => ( ].map((link) => (
<Link <Link
key={link.href} key={link.href}
@ -156,14 +187,14 @@ const Privatkunden = () => {
)} )}
{/* Zusätzliche Links unter dem Bild für Sachversicherung */} {/* Zusätzliche Links unter dem Bild für Sachversicherung */}
{item.title === 'Sachversicherung' && ( {item.id === 'sach' && (
<div className="space-y-2"> <div className="space-y-2">
<div className="text-xs uppercase tracking-wide text-gray-500 font-semibold mb-3">Details:</div> <div className="text-xs uppercase tracking-wide text-gray-500 font-semibold mb-3">{t('details.label', 'Details:')}</div>
<div className="grid grid-cols-1 gap-2"> <div className="grid grid-cols-1 gap-2">
{[ {[
{ title: 'Hausratversicherung', href: '/hausratversicherung' }, { title: t('details.sach.hausratversicherung', 'Hausratversicherung'), href: '/hausratversicherung' },
{ title: 'Wohngebäudeversicherung', href: '/hausrat' }, { title: t('details.sach.wohngebaeudeversicherung', 'Wohngebäudeversicherung'), href: '/hausrat' },
{ title: 'Unfallversicherung', href: '/unfall' } { title: t('details.sach.unfallversicherung', 'Unfallversicherung'), href: '/unfall' }
].map((link) => ( ].map((link) => (
<Link <Link
key={link.href} key={link.href}
@ -180,14 +211,14 @@ const Privatkunden = () => {
)} )}
{/* Zusätzliche Links unter dem Bild für Gesundheitsvorsorge */} {/* Zusätzliche Links unter dem Bild für Gesundheitsvorsorge */}
{item.title === 'Gesundheitsvorsorge' && ( {item.id === 'gesundheit' && (
<div className="space-y-2"> <div className="space-y-2">
<div className="text-xs uppercase tracking-wide text-gray-500 font-semibold mb-3">Details:</div> <div className="text-xs uppercase tracking-wide text-gray-500 font-semibold mb-3">{t('details.label', 'Details:')}</div>
<div className="grid grid-cols-1 gap-2"> <div className="grid grid-cols-1 gap-2">
{[ {[
{ title: 'Private Krankenversicherung', href: '/private-krankenversicherung' }, { title: t('details.gesundheit.privateKrankenversicherung', 'Private Krankenversicherung'), href: '/private-krankenversicherung' },
{ title: 'Zahnzusatzversicherung', href: '/zahnzusatzversicherung' }, { title: t('details.gesundheit.zahnzusatzversicherung', 'Zahnzusatzversicherung'), href: '/zahnzusatzversicherung' },
{ title: 'Auslandsreisekrankenversicherung', href: '/auslandsreisekrankenversicherung' } { title: t('details.gesundheit.auslandsreisekrankenversicherung', 'Auslandsreisekrankenversicherung'), href: '/auslandsreisekrankenversicherung' }
].map((link) => ( ].map((link) => (
<Link <Link
key={`${link.href}-${link.title}`} key={`${link.href}-${link.title}`}
@ -204,14 +235,14 @@ const Privatkunden = () => {
)} )}
{/* Zusätzliche Links unter dem Bild für Vermögenssicherung */} {/* Zusätzliche Links unter dem Bild für Vermögenssicherung */}
{item.title === 'Vermögenssicherung' && ( {item.id === 'vermoegen' && (
<div className="space-y-2"> <div className="space-y-2">
<div className="text-xs uppercase tracking-wide text-gray-500 font-semibold mb-3">Details:</div> <div className="text-xs uppercase tracking-wide text-gray-500 font-semibold mb-3">{t('details.label', 'Details:')}</div>
<div className="grid grid-cols-1 gap-2"> <div className="grid grid-cols-1 gap-2">
{[ {[
{ title: 'Lebensversicherung', href: '/finanzen' }, { title: t('details.vermoegen.lebensversicherung', 'Lebensversicherung'), href: '/finanzen' },
{ title: 'Risikolebensversicherung', href: '/finanzen' }, { title: t('details.vermoegen.risikolebensversicherung', 'Risikolebensversicherung'), href: '/finanzen' },
{ title: 'Wohngebäudeversicherung', href: '/hausrat' } { title: t('details.vermoegen.wohngebaeudeversicherung', 'Wohngebäudeversicherung'), href: '/hausrat' }
].map((link) => ( ].map((link) => (
<Link <Link
key={`${link.href}-${link.title}`} key={`${link.href}-${link.title}`}
@ -228,13 +259,13 @@ const Privatkunden = () => {
)} )}
{/* Zusätzliche Links unter dem Bild für Risikoschutz */} {/* Zusätzliche Links unter dem Bild für Risikoschutz */}
{item.title === 'Risikoschutz' && ( {item.id === 'risiko' && (
<div className="space-y-2"> <div className="space-y-2">
<div className="text-xs uppercase tracking-wide text-gray-500 font-semibold mb-3">Details:</div> <div className="text-xs uppercase tracking-wide text-gray-500 font-semibold mb-3">{t('details.label', 'Details:')}</div>
<div className="grid grid-cols-1 gap-2"> <div className="grid grid-cols-1 gap-2">
{[ {[
{ title: 'Unfallversicherung', href: '/unfall' }, { title: t('details.risiko.unfallversicherung', 'Unfallversicherung'), href: '/unfall' },
{ title: 'Rechtsschutzversicherung', href: '/service' } { title: t('details.risiko.rechtsschutzversicherung', 'Rechtsschutzversicherung'), href: '/service' }
].map((link) => ( ].map((link) => (
<Link <Link
key={`${link.href}-${link.title}`} key={`${link.href}-${link.title}`}
@ -251,15 +282,15 @@ const Privatkunden = () => {
)} )}
{/* Zusätzliche Links unter dem Bild für Altersvorsorge */} {/* Zusätzliche Links unter dem Bild für Altersvorsorge */}
{item.title === 'Altersvorsorge' && ( {item.id === 'altersvorsorge' && (
<div className="space-y-2"> <div className="space-y-2">
<div className="text-xs uppercase tracking-wide text-gray-500 font-semibold mb-3">Details:</div> <div className="text-xs uppercase tracking-wide text-gray-500 font-semibold mb-3">{t('details.label', 'Details:')}</div>
<div className="grid grid-cols-1 gap-2"> <div className="grid grid-cols-1 gap-2">
{[ {[
{ title: 'Private Rentenversicherung', href: '/finanzen' }, { title: t('details.altersvorsorge.privateRentenversicherung', 'Private Rentenversicherung'), href: '/finanzen' },
{ title: 'Riester-Rente', href: '/finanzen' }, { title: t('details.altersvorsorge.riester', 'Riester-Rente'), href: '/finanzen' },
{ title: 'Rürup-Rente', href: '/finanzen' }, { title: t('details.altersvorsorge.ruerup', 'Rürup-Rente'), href: '/finanzen' },
{ title: 'Betriebliche Altersvorsorge', href: '/finanzen' } { title: t('details.altersvorsorge.bav', 'Betriebliche Altersvorsorge'), href: '/finanzen' }
].map((link) => ( ].map((link) => (
<Link <Link
key={`${link.href}-${link.title}`} key={`${link.href}-${link.title}`}
@ -289,22 +320,22 @@ const Privatkunden = () => {
<div className="mb-20"> <div className="mb-20">
<div className="text-center mb-12"> <div className="text-center mb-12">
<h2 className="text-3xl md:text-4xl font-bold text-gray-900 mb-4"> <h2 className="text-3xl md:text-4xl font-bold text-gray-900 mb-4">
Ihre Vorteile als Privatkunde {t('benefits.title', 'Ihre Vorteile als Privatkunde')}
</h2> </h2>
<p className="text-lg text-gray-600 max-w-2xl mx-auto"> <p className="text-lg text-gray-600 max-w-2xl mx-auto">
Wir bieten Ihnen maßgeschneiderte Lösungen für Ihre persönliche Absicherung {t('benefits.subtitle', 'Wir bieten Ihnen maßgeschneiderte Lösungen für Ihre persönliche Absicherung')}
</p> </p>
</div> </div>
<div className="bg-gradient-to-r from-blue-50 to-indigo-50 rounded-2xl p-10 shadow-xl"> <div className="bg-gradient-to-r from-blue-50 to-indigo-50 rounded-2xl p-10 shadow-xl">
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-8"> <div className="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
{[ {[
{ icon: Shield, title: 'Umfassender Schutz', desc: 'Für alle Lebensbereiche' }, { icon: Shield, title: t('benefits.items.protection.title', 'Umfassender Schutz'), desc: t('benefits.items.protection.desc', 'Für alle Lebensbereiche') },
{ icon: Users, title: 'Familienfreundlich', desc: 'Optimale Lösungen für Familien' }, { icon: Users, title: t('benefits.items.family.title', 'Familienfreundlich'), desc: t('benefits.items.family.desc', 'Optimale Lösungen für Familien') },
{ icon: TrendingUp, title: 'Vertragsoptimierung', desc: 'Bestehende Verträge verbessern' }, { icon: TrendingUp, title: t('benefits.items.optimization.title', 'Vertragsoptimierung'), desc: t('benefits.items.optimization.desc', 'Bestehende Verträge verbessern') },
{ icon: Clock, title: 'Schnelle Hilfe', desc: 'Rasche Schadenabwicklung' }, { icon: Clock, title: t('benefits.items.fastHelp.title', 'Schnelle Hilfe'), desc: t('benefits.items.fastHelp.desc', 'Rasche Schadenabwicklung') },
{ icon: DollarSign, title: 'Transparente Kosten', desc: 'Keine versteckten Gebühren' }, { icon: DollarSign, title: t('benefits.items.transparentCosts.title', 'Transparente Kosten'), desc: t('benefits.items.transparentCosts.desc', 'Keine versteckten Gebühren') },
{ icon: MapPin, title: 'Persönliche Betreuung', desc: 'Vor Ort in Ihrer Nähe' } { icon: MapPin, title: t('benefits.items.localSupport.title', 'Persönliche Betreuung'), desc: t('benefits.items.localSupport.desc', 'Vor Ort in Ihrer Nähe') }
].map((benefit, index) => { ].map((benefit, index) => {
const Icon = benefit.icon; const Icon = benefit.icon;
return ( return (
@ -326,19 +357,19 @@ const Privatkunden = () => {
{/* Contact Section */} {/* Contact Section */}
<div className="bg-gradient-to-r from-blue-600 to-indigo-600 rounded-2xl p-10 text-center text-white shadow-2xl"> <div className="bg-gradient-to-r from-blue-600 to-indigo-600 rounded-2xl p-10 text-center text-white shadow-2xl">
<h2 className="text-3xl md:text-4xl font-bold mb-4"> <h2 className="text-3xl md:text-4xl font-bold mb-4">
Kontaktieren Sie uns {t('contactCta.title', 'Kontaktieren Sie uns')}
</h2> </h2>
<p className="text-lg text-blue-100 mb-8 max-w-2xl mx-auto"> <p className="text-lg text-blue-100 mb-8 max-w-2xl mx-auto">
Lassen Sie sich unverbindlich zu Ihren Privatkunden-Lösungen beraten. {t('contactCta.subtitle', 'Lassen Sie sich unverbindlich zu Ihren Privatkunden-Lösungen beraten.')}
</p> </p>
<div className="flex flex-col sm:flex-row gap-4 justify-center"> <div className="flex flex-col sm:flex-row gap-4 justify-center">
<Button className="bg-white text-blue-600 hover:bg-gray-100 px-8 py-3 text-lg font-semibold shadow-lg"> <Button className="bg-white text-blue-600 hover:bg-gray-100 px-8 py-3 text-lg font-semibold shadow-lg">
<Phone className="h-5 w-5 mr-2" /> <Phone className="h-5 w-5 mr-2" />
Jetzt anrufen {t('contactCta.call', 'Jetzt anrufen')}
</Button> </Button>
<Button variant="outline" className="border-white text-white hover:bg-white hover:text-blue-600 px-8 py-3 text-lg font-semibold"> <Button variant="outline" className="border-white text-white hover:bg-white hover:text-blue-600 px-8 py-3 text-lg font-semibold">
<Mail className="h-5 w-5 mr-2" /> <Mail className="h-5 w-5 mr-2" />
Angebot anfordern {t('contactCta.requestOffer', 'Angebot anfordern')}
</Button> </Button>
</div> </div>
</div> </div>

View File

@ -0,0 +1,665 @@
import React, { useState } from 'react';
import { Link, useNavigate } from 'react-router-dom';
import { useTranslation } from 'react-i18next';
import { Shield, Phone, Mail, CheckCircle, Star, Car, FileText, Calculator, Users, Download, Search, AlertCircle, AlertTriangle, Clock, FileCheck, PhoneCall, MapPin, Gauge, Heart, UserCheck } from 'lucide-react';
import Layout from '@/components/Layout';
import { Button } from '@/components/ui/button';
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card';
import { Progress } from '@/components/ui/progress';
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
import GeneralNotice from '@/components/GeneralNotice';
import TwoColumnTab from '@/components/tab-pages/TwoColumnTab';
import RightImageCard from '@/components/tab-pages/RightImageCard';
const Risikolebensversicherung = () => {
const { t } = useTranslation('risikolebensversicherung');
// Add SEO metadata for search
React.useEffect(() => {
document.title = t('title', 'Risikolebensversicherung') + ' - Agentur Mizera';
const metaDescription = document.querySelector('meta[name="description"]');
if (metaDescription) {
metaDescription.setAttribute('content', t('title', 'Risikolebensversicherung') + ': ' + t('subtitle', 'Optimaler Schutz für Ihre Familie im Todesfall') + '. Unabhängige Beratung und Tarifvergleich für Risikolebensversicherungen.');
}
}, []);
const navigate = useNavigate();
const baseUrl = import.meta.env.BASE_URL;
const assetUrl = (fileName: string) => `${baseUrl}${encodeURI(fileName)}`;
const [activeTab, setActiveTab] = useState('overview');
const [formData, setFormData] = useState({
name: '',
phone: '',
email: '',
age: '',
coverageAmount: '',
duration: '',
healthStatus: '',
message: ''
});
const handleFormChange = (
e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>
) => {
const { name, value } = e.target;
setFormData((prev) => ({
...prev,
[name]: value
}));
};
const handleSubmit = (e: React.FormEvent) => {
e.preventDefault();
const subject = encodeURIComponent(`Anfrage Risikolebensversicherung - ${formData.name}`);
const body = encodeURIComponent(
`Name: ${formData.name}\nTelefon: ${formData.phone}\nE-Mail: ${formData.email}\nAlter: ${formData.age}\nVersicherungssumme: ${formData.coverageAmount}\nLaufzeit: ${formData.duration} Jahre\nGesundheitszustand: ${formData.healthStatus}\n\nNachricht:\n${formData.message}`
);
window.location.href = `mailto:info@finanzen-mizera.de?subject=${subject}&body=${body}`;
};
const benefits = [
{
icon: Users,
title: t('benefits.family.title', 'Familienschutz'),
description: t('benefits.family.description', 'Sichert Ihre Familie finanziell ab')
},
{
icon: Shield,
title: t('benefits.death.title', 'Todesfallschutz'),
description: t('benefits.death.description', 'Zahlung bei Tod der versicherten Person')
},
{
icon: Calculator,
title: t('benefits.cheap.title', 'Günstige Beiträge'),
description: t('benefits.cheap.description', 'Reiner Risikoschutz ohne Sparanteil')
},
{
icon: FileCheck,
title: t('benefits.easy.title', 'Einfacher Abschluss'),
description: t('benefits.easy.description', 'Schnelle und unkomplizierte Beantragung')
}
];
return (
<Layout>
<div className="min-h-screen bg-gray-50">
{/* Hero Section */}
<div className="relative">
<div
className="h-96 bg-cover bg-center relative"
style={{ backgroundImage: `url(${assetUrl('iStock-975006448.jpg')})` }}
>
<div className="absolute inset-0 bg-gray-900/20" />
<div className="relative container mx-auto px-4 h-full flex items-center">
<div className="max-w-3xl">
<div className="bg-black/40 text-white px-8 py-6 md:px-10 md:py-8 shadow-lg">
<h1 className="text-4xl md:text-5xl font-bold text-white mb-6">
{t('title', 'Risikolebensversicherung')}
</h1>
<p className="text-xl text-white/90 mb-8 max-w-2xl">
{t('subtitle', 'Optimaler Schutz für Ihre Familie im Todesfall')}
</p>
<div className="flex flex-col sm:flex-row gap-4">
<Button onClick={() => setActiveTab('form')} size="lg" className="bg-blue-600 hover:bg-blue-700 text-white">
{t('buttons.consultation', 'Jetzt beraten lassen')}
</Button>
<Button onClick={() => setActiveTab('calculator')} size="lg" variant="outline" className="bg-white/10 border-white text-white hover:bg-white/20">
{t('buttons.calculator', 'Beitrag berechnen')}
</Button>
</div>
</div>
</div>
</div>
</div>
</div>
{/* Content */}
<style>{`
[data-state="active"] {
outline: none !important;
border: none !important;
box-shadow: none !important;
}
button:focus-visible {
outline: none !important;
border: none !important;
box-shadow: none !important;
}
`}</style>
<div className="container mx-auto px-4 md:px-6 py-8">
<div className="max-w-screen-2xl mx-auto">
<h2 className="text-2xl font-bold text-gray-900 mb-6 text-center">
{t('title', 'Risikolebensversicherung')}
</h2>
<div className="bg-white rounded-lg border border-gray-200 shadow-sm">
<Tabs
value={activeTab}
onValueChange={(next) => {
setActiveTab(next);
}}
className="w-full"
id="tab-section"
>
<div className="border-b border-gray-100 px-4 pt-6 pb-2 bg-gradient-to-r from-blue-50 to-white">
<TabsList className="grid grid-cols-5 gap-2 w-full h-auto bg-transparent border-0 shadow-none">
<TabsTrigger
value="overview"
className="relative px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0"
>
<Shield className="w-4 h-4 mr-1.5" />
{t('tabs.overview', 'Übersicht')}
</TabsTrigger>
<TabsTrigger
value="details"
className="relative px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0"
>
<FileText className="w-4 h-4 mr-1.5" />
{t('tabs.details', 'Details')}
</TabsTrigger>
<TabsTrigger
value="calculator"
className="relative px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0"
>
<Calculator className="w-4 h-4 mr-1.5" />
{t('tabs.calculator', 'Rechner')}
</TabsTrigger>
<TabsTrigger
value="form"
className="relative px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0"
>
<Phone className="w-4 h-4 mr-1.5" />
{t('tabs.form', 'Anfrage')}
</TabsTrigger>
<TabsTrigger
value="brochure"
className="relative px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0"
>
<Download className="w-4 h-4 mr-1.5" />
{t('tabs.brochure', 'PDF')}
</TabsTrigger>
</TabsList>
</div>
<TabsContent value="overview" className="mt-0">
<TwoColumnTab
left={
<>
<div className="flex items-center gap-2 mb-6">
<div className="w-8 h-8 bg-blue-100 rounded-full flex items-center justify-center">
<Shield className="w-4 h-4 text-blue-700" />
</div>
<span className="text-lg font-semibold text-gray-900">{t('overview.subtitle', 'Ihre Familie optimal absichern')}</span>
</div>
<h1 className="text-3xl md:text-4xl font-bold text-gray-900 leading-tight">
{t('title', 'Risikolebensversicherung')}
<span className="block text-blue-700">{t('overview.tagline', 'Finanzielle Sicherheit für Ihre Liebsten')}</span>
</h1>
<p className="mt-4 text-gray-600 text-lg">
{t('overview.description', 'Eine Risikolebensversicherung bietet reinen Todesfallschutz zu günstigen Beiträgen. Im Todesfall der versicherten Person wird die vereinbarte Versicherungssumme an die Hinterbliebenen ausgezahlt.')}
</p>
<div className="mt-8 space-y-4">
<div className="flex items-start gap-3">
<CheckCircle className="w-5 h-5 text-green-600 mt-0.5 flex-shrink-0" />
<div>
<h3 className="font-semibold text-gray-900">{t('overview.benefit1.title', 'Reiner Risikoschutz')}</h3>
<p className="text-gray-600">{t('overview.benefit1.description', 'Kein Sparanteil - nur Schutz für den Todesfall')}</p>
</div>
</div>
<div className="flex items-start gap-3">
<CheckCircle className="w-5 h-5 text-green-600 mt-0.5 flex-shrink-0" />
<div>
<h3 className="font-semibold text-gray-900">{t('overview.benefit2.title', 'Günstige Beiträge')}</h3>
<p className="text-gray-600">{t('overview.benefit2.description', 'Deutlich günstiger als kapitalbildende Lebensversicherung')}</p>
</div>
</div>
<div className="flex items-start gap-3">
<CheckCircle className="w-5 h-5 text-green-600 mt-0.5 flex-shrink-0" />
<div>
<h3 className="font-semibold text-gray-900">{t('overview.benefit3.title', 'Flexible Laufzeiten')}</h3>
<p className="text-gray-600">{t('overview.benefit3.description', 'Anpassbar an Ihre individuelle Situation')}</p>
</div>
</div>
</div>
</>
}
right={
<RightImageCard src={assetUrl('iStock-975006448.jpg')} alt="Risikolebensversicherung">
<div className="space-y-4">
<h3 className="text-lg font-semibold text-gray-900">{t('overview.features.title', 'Leistungen im Überblick')}</h3>
<div className="space-y-3">
<div className="flex items-center gap-2">
<CheckCircle className="w-4 h-4 text-green-600" />
<span className="text-sm">{t('overview.features.item1', 'Todesfallleistung')}</span>
</div>
<div className="flex items-center gap-2">
<CheckCircle className="w-4 h-4 text-green-600" />
<span className="text-sm">{t('overview.features.item2', 'Kreditabsicherung möglich')}</span>
</div>
<div className="flex items-center gap-2">
<CheckCircle className="w-4 h-4 text-green-600" />
<span className="text-sm">{t('overview.features.item3', 'Steuerfrei (§20 EStG)')}</span>
</div>
<div className="flex items-center gap-2">
<CheckCircle className="w-4 h-4 text-green-600" />
<span className="text-sm">{t('overview.features.item4', 'Unabhängige Tarifauswahl')}</span>
</div>
</div>
</div>
</RightImageCard>
}
/>
</TabsContent>
<TabsContent value="details" className="mt-0">
<TwoColumnTab
left={
<>
<h3 className="text-2xl font-bold text-gray-900">{t('details.title', 'Details zur Risikolebensversicherung')}</h3>
<div className="mt-6 space-y-6">
<div>
<h4 className="text-lg font-semibold text-gray-900 mb-3">{t('details.what.title', 'Was ist eine Risikolebensversicherung?')}</h4>
<p className="text-gray-600">
{t('details.what.description', 'Eine Risikolebensversicherung ist eine reine Risikoversicherung, die nur im Todesfall der versicherten Person leistet. Im Gegensatz zur kapitalbildenden Lebensversicherung enthält sie keinen Sparanteil und ist daher deutlich günstiger.')}
</p>
</div>
<div>
<h4 className="text-lg font-semibold text-gray-900 mb-3">{t('details.features.title', 'Wichtigste Merkmale')}</h4>
<ul className="space-y-2 text-gray-600">
<li> {t('details.features.item1', 'Reiner Todesfallschutz ohne Kapitalbildung')}</li>
<li> {t('details.features.item2', 'Günstige monatliche Beiträge')}</li>
<li> {t('details.features.item3', 'Flexible Versicherungssummen (typisch 100.000€ - 1.000.000€)')}</li>
<li> {t('details.features.item4', 'Laufzeiten meist 10, 15, 20 oder 30 Jahre')}</li>
<li> {t('details.features.item5', 'Steuerfreie Auszahlung an Hinterbliebene')}</li>
</ul>
</div>
<div>
<h4 className="text-lg font-semibold text-gray-900 mb-3">{t('details.suitable.title', 'Für wen geeignet?')}</h4>
<ul className="space-y-2 text-gray-600">
<li> {t('details.suitable.item1', 'Familien mit Kindern zur Absicherung des Einkommensverlusts')}</li>
<li> {t('details.suitable.item2', 'Hausbesitzer zur Absicherung von Immobiliendarlehen')}</li>
<li> {t('details.suitable.item3', 'Selbstständige zur Absicherung von Geschäftspartnern')}</li>
<li> {t('details.suitable.item4', 'Alle, die Hinterbliebene finanziell absichern möchten')}</li>
</ul>
</div>
</div>
</>
}
right={
<RightImageCard src={assetUrl('iStock-975006448.jpg')} alt="Details">
<div className="space-y-4">
<h3 className="text-lg font-semibold text-gray-900">Beispielrechnung</h3>
<div className="bg-blue-50 rounded-lg p-4">
<div className="text-sm text-blue-900 font-semibold mb-2">Beispiel: 40-jähriger Mann, Nichtraucher</div>
<div className="space-y-2 text-sm text-blue-900">
<div> Versicherungssumme: 250.000</div>
<div> Laufzeit: 20 Jahre</div>
<div> Monatlicher Beitrag: ca. 15-25</div>
</div>
</div>
<div className="mt-6 rounded-xl bg-blue-700 p-6 text-white">
<h3 className="text-2xl font-bold">Was beeinflusst die Kosten?</h3>
<div className="mt-6 grid grid-cols-1 md:grid-cols-2 gap-6">
<div className="rounded-lg bg-white/10 p-4">
<h4 className="font-semibold mb-2">Risikofaktoren</h4>
<ul className="text-sm space-y-1">
<li> Alter bei Vertragsbeginn</li>
<li> Gesundheitszustand</li>
<li> Raucherstatus</li>
<li> Berufliche Risiken</li>
</ul>
</div>
<div className="rounded-lg bg-white/10 p-4">
<h4 className="font-semibold mb-2">Vertragsdetails</h4>
<ul className="text-sm space-y-1">
<li> Versicherungssumme</li>
<li> Laufzeit</li>
<li> Einschließungen</li>
<li> Zahlweise (monatlich/jährlich)</li>
</ul>
</div>
</div>
</div>
</div>
</RightImageCard>
}
/>
</TabsContent>
<TabsContent value="calculator" className="mt-0">
<TwoColumnTab
left={
<>
<h3 className="text-2xl font-bold text-gray-900">Beitragsrechner</h3>
<p className="mt-2 text-gray-600">
Berechnen Sie grob den monatlichen Beitrag für Ihre Risikolebensversicherung.
</p>
<div className="mt-6 space-y-4">
<div>
<label className="block text-sm font-medium text-gray-700 mb-1">Alter</label>
<input
type="number"
placeholder="z.B. 35"
className="w-full rounded-md border border-gray-300 px-3 py-2 text-sm"
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 mb-1">Versicherungssumme ()</label>
<input
type="number"
placeholder="z.B. 250000"
className="w-full rounded-md border border-gray-300 px-3 py-2 text-sm"
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 mb-1">Laufzeit (Jahre)</label>
<select className="w-full rounded-md border border-gray-300 px-3 py-2 text-sm">
<option value="">Bitte wählen</option>
<option value="10">10 Jahre</option>
<option value="15">15 Jahre</option>
<option value="20">20 Jahre</option>
<option value="30">30 Jahre</option>
</select>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 mb-1">Raucherstatus</label>
<select className="w-full rounded-md border border-gray-300 px-3 py-2 text-sm">
<option value="">Bitte wählen</option>
<option value="nein">Nichtraucher</option>
<option value="ja">Raucher</option>
</select>
</div>
<Button className="w-full bg-blue-700 hover:bg-blue-800">
Beitrag berechnen
</Button>
</div>
<div className="mt-6 p-4 bg-blue-50 rounded-lg border border-blue-200">
<div className="text-sm text-blue-900 font-semibold">Unverbindliche Schätzung</div>
<div className="mt-1 text-sm text-blue-900">
Monatlicher Beitrag: <span className="font-bold">ca. 15-25 </span>
</div>
<div className="text-xs text-blue-900/80 mt-2">
Dies ist eine grobe Schätzung. Der genaue Beitrag hängt von vielen Faktoren ab und wird vom Versicherer individuell berechnet.
</div>
</div>
</>
}
right={
<RightImageCard src={assetUrl('iStock-975006448.jpg')} alt="Rechner">
<div className="space-y-4">
<h3 className="text-lg font-semibold text-gray-900">Beispielrechnungen</h3>
<div className="space-y-3">
<div className="border rounded-lg p-3">
<div className="text-sm font-semibold text-gray-900">Beispiel 1: Junge Familie</div>
<div className="text-xs text-gray-600 mt-1">
35 Jahre, Nichtraucher, 250.000, 20 Jahre<br/>
<strong>Monatlich ca. 15-20 </strong>
</div>
</div>
<div className="border rounded-lg p-3">
<div className="text-sm font-semibold text-gray-900">Beispiel 2: Immobilienfinanzierung</div>
<div className="text-xs text-gray-600 mt-1">
40 Jahre, Nichtraucher, 200.000, 15 Jahre<br/>
<strong>Monatlich ca. 20-30 </strong>
</div>
</div>
<div className="border rounded-lg p-3">
<div className="text-sm font-semibold text-gray-900">Beispiel 3: Ältere Person</div>
<div className="text-xs text-gray-600 mt-1">
50 Jahre, Raucher, 100.000, 10 Jahre<br/>
<strong>Monatlich ca. 40-60 </strong>
</div>
</div>
</div>
<div className="mt-4 p-3 bg-yellow-50 rounded-lg border border-yellow-200">
<div className="text-xs text-yellow-900">
<strong>Hinweis:</strong> Dies sind nur Beispiele. Der tatsächliche Beitrag wird individuell berechnet.
</div>
</div>
</div>
</RightImageCard>
}
/>
</TabsContent>
<TabsContent value="form" className="mt-0">
<TwoColumnTab
left={
<>
<h3 className="text-2xl font-bold text-gray-900">Beratungsanfrage</h3>
<p className="mt-2 text-gray-600">
Füllen Sie das Formular aus und wir erstellen Ihnen ein unverbindliches Angebot.
</p>
<form onSubmit={handleSubmit} className="mt-6 space-y-4">
<div>
<label className="block text-sm font-medium text-gray-700">Name*</label>
<input
type="text"
name="name"
value={formData.name}
onChange={handleFormChange}
required
className="mt-1 w-full rounded-md border border-gray-300 px-3 py-2 text-sm"
placeholder="Ihr vollständiger Name"
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700">Telefon*</label>
<input
type="tel"
name="phone"
value={formData.phone}
onChange={handleFormChange}
required
className="mt-1 w-full rounded-md border border-gray-300 px-3 py-2 text-sm"
placeholder="Ihre Telefonnummer"
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700">E-Mail*</label>
<input
type="email"
name="email"
value={formData.email}
onChange={handleFormChange}
required
className="mt-1 w-full rounded-md border border-gray-300 px-3 py-2 text-sm"
placeholder="Ihre E-Mail-Adresse"
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700">Alter*</label>
<input
type="number"
name="age"
value={formData.age}
onChange={handleFormChange}
required
className="mt-1 w-full rounded-md border border-gray-300 px-3 py-2 text-sm"
placeholder="Ihr Alter in Jahren"
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700">Versicherungssumme ()</label>
<input
type="number"
name="coverageAmount"
value={formData.coverageAmount}
onChange={handleFormChange}
className="mt-1 w-full rounded-md border border-gray-300 px-3 py-2 text-sm"
placeholder="z.B. 250000"
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700">Laufzeit (Jahre)</label>
<select
name="duration"
value={formData.duration}
onChange={handleFormChange}
className="mt-1 w-full rounded-md border border-gray-300 bg-white px-3 py-2 text-sm"
>
<option value="">Bitte wählen</option>
<option value="10">10 Jahre</option>
<option value="15">15 Jahre</option>
<option value="20">20 Jahre</option>
<option value="30">30 Jahre</option>
</select>
</div>
<div>
<label className="block text-sm font-medium text-gray-700">Gesundheitszustand</label>
<select
name="healthStatus"
value={formData.healthStatus}
onChange={handleFormChange}
className="mt-1 w-full rounded-md border border-gray-300 bg-white px-3 py-2 text-sm"
>
<option value="">Bitte wählen</option>
<option value="gesund">Gesund</option>
<option value="kleine-beschwerden">Kleine Beschwerden</option>
<option value="chronisch">Chronische Erkrankungen</option>
<option value="unbekannt">Möchte ich nicht angeben</option>
</select>
</div>
<div>
<label className="block text-sm font-medium text-gray-700">Nachricht</label>
<textarea
name="message"
value={formData.message}
onChange={handleFormChange}
className="mt-1 w-full rounded-md border border-gray-300 px-3 py-2 text-sm min-h-[120px]"
placeholder="Zusätzliche Informationen oder Fragen..."
/>
</div>
<Button type="submit" className="bg-blue-700 hover:bg-blue-800">
Anfrage senden
</Button>
</form>
</>
}
right={
<RightImageCard src="/head_kontakt_agentur_mizera.jpg" alt="Anfrageformular">
<Card className="border-gray-200">
<CardHeader>
<CardTitle className="text-lg">Direktkontakt</CardTitle>
<CardDescription>Wenn es schnell gehen soll.</CardDescription>
</CardHeader>
<CardContent className="space-y-3 text-sm text-gray-700">
<div className="flex items-center gap-2">
<Phone className="w-4 h-4 text-blue-700" />
<span>Telefon: <a href="tel:01719864053" className="text-blue-600 hover:text-blue-800 underline">0171 / 9864053</a> <a href="https://wa.me/491719864053" target="_blank" rel="noreferrer" className="text-green-600 hover:text-green-800 underline">(WhatsApp)</a></span>
</div>
<div className="flex items-center gap-2">
<Mail className="w-4 h-4 text-blue-700" />
<span>E-Mail: <a href="mailto:info@finanzen-mizera.de" className="text-blue-600 hover:text-blue-800 underline">info@finanzen-mizera.de</a></span>
</div>
<div className="pt-2">
<Button variant="outline" className="w-full" onClick={() => navigate('/contact')}>
Kontaktseite
</Button>
</div>
</CardContent>
</Card>
</RightImageCard>
}
/>
</TabsContent>
<TabsContent value="brochure" className="mt-0">
<TwoColumnTab
left={
<>
<h3 className="text-2xl font-bold text-gray-900">Informationsmaterial</h3>
<p className="mt-2 text-gray-600">
Laden Sie unsere Informationsbroschüre zur Risikolebensversicherung herunter.
</p>
<Card className="mt-6 border-gray-200">
<CardHeader>
<CardTitle className="text-lg">Risikolebensversicherung (PDF)</CardTitle>
<CardDescription>Informationsbroschüre zur Risikolebensversicherung</CardDescription>
</CardHeader>
<CardContent>
<a href="/PDF/PR_DEGTP_PP_2DE.pdf" download>
<Button className="bg-blue-700 hover:bg-blue-800 w-full">PDF herunterladen</Button>
</a>
</CardContent>
</Card>
</>
}
right={
<RightImageCard src={assetUrl('iStock-975006448.jpg')} alt="Informationsmaterial">
<Card className="border-gray-200">
<CardHeader>
<CardTitle className="text-lg">Hinweis</CardTitle>
<CardDescription>Bei Fragen beraten wir gerne.</CardDescription>
</CardHeader>
<CardContent className="space-y-3 text-sm text-gray-700">
<div className="flex items-center gap-2">
<Phone className="w-4 h-4 text-blue-700" />
<span>Telefon: <a href="tel:01719864053" className="text-blue-600 hover:text-blue-800 underline">0171 / 9864053</a></span>
</div>
<div className="flex items-center gap-2">
<Mail className="w-4 h-4 text-blue-700" />
<span>E-Mail: <a href="mailto:info@finanzen-mizera.de" className="text-blue-600 hover:text-blue-800 underline">info@finanzen-mizera.de</a></span>
</div>
</CardContent>
</Card>
</RightImageCard>
}
/>
</TabsContent>
</Tabs>
</div>
{/* Benefits Section */}
<div className="mt-12 grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6">
{benefits.map((benefit, index) => {
const Icon = benefit.icon;
return (
<Card key={index} className="text-center">
<CardContent className="p-6">
<div className="w-12 h-12 bg-blue-100 rounded-full flex items-center justify-center mx-auto mb-4">
<Icon className="w-6 h-6 text-blue-700" />
</div>
<h3 className="font-semibold text-gray-900 mb-2">{benefit.title}</h3>
<p className="text-sm text-gray-600">{benefit.description}</p>
</CardContent>
</Card>
);
})}
</div>
{/* General Notice */}
<GeneralNotice />
</div>
</div>
</div>
</Layout>
);
};
export default Risikolebensversicherung;

View File

@ -0,0 +1,693 @@
import React, { useState } from 'react';
import { Link, useNavigate } from 'react-router-dom';
import { useTranslation } from 'react-i18next';
import { Shield, Phone, Mail, CheckCircle, Star, Car, FileText, Calculator, Users, Download, Search, AlertCircle, AlertTriangle, Clock, FileCheck, PhoneCall, MapPin, Gauge, Heart } from 'lucide-react';
import Layout from '@/components/Layout';
import { Button } from '@/components/ui/button';
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card';
import { Progress } from '@/components/ui/progress';
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
import GeneralNotice from '@/components/GeneralNotice';
import TwoColumnTab from '@/components/tab-pages/TwoColumnTab';
import RightImageCard from '@/components/tab-pages/RightImageCard';
const Auslandsreisekrankenversicherung = () => {
const { t } = useTranslation('auslandsreisekrankenversicherung');
// Add SEO metadata for search
React.useEffect(() => {
document.title = 'Auslandsreisekrankenversicherung - Agentur Mizera';
const metaDescription = document.querySelector('meta[name="description"]');
if (metaDescription) {
metaDescription.setAttribute('content', 'Auslandsreisekrankenversicherung: Sorgenfrei reisen mit umfassendem Schutz im Ausland. Unabhängige Beratung und Tarifvergleich für Reiseversicherungen.');
}
}, []);
const navigate = useNavigate();
const baseUrl = import.meta.env.BASE_URL;
const assetUrl = (fileName: string) => `${baseUrl}${encodeURI(fileName)}`;
const [activeTab, setActiveTab] = useState('overview');
const [formData, setFormData] = useState({
name: '',
phone: '',
email: '',
destination: '',
travelDuration: '',
coverageType: '',
message: ''
});
const handleFormChange = (
e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>
) => {
const { name, value } = e.target;
setFormData((prev) => ({
...prev,
[name]: value
}));
};
const handleFormSubmit = (e: React.FormEvent) => {
e.preventDefault();
console.log('Form submitted:', formData);
navigate('/contact');
};
const benefits = [
{
icon: Shield,
title: 'Weltweiter Schutz',
description: 'Sicherheit bei Reisen in alle Länder',
},
{
icon: Heart,
title: 'Medizinische Notfälle',
description: 'Sofortige Hilfe bei Krankheit und Unfall',
},
{
icon: Star,
title: 'Kostenübernahme',
description: 'Übernahme von Arzt- und Krankenhauskosten',
},
{
icon: Users,
title: 'Rückholung',
description: 'Organisation des medizinischen Rücktransports',
},
{
icon: FileText,
title: '24h Hotline',
description: 'Rund um die Uhr erreichbare Notfallnummer',
},
{
icon: Shield,
title: 'Dental-Schutz',
description: 'Zahnbehandlungen im Ausland mitversichert',
},
];
const services = [
'Ärztliche Behandlungen im Ausland',
'Krankenhausaufenthalte',
'Notfall-Operationen',
'Medikamenteneinbezug',
'Zahnbehandlungen',
'Augenoptikerleistungen',
'Rücktransport nach Deutschland',
'Kostenlose Notfall-Hotline',
];
return (
<Layout>
<div className="min-h-screen bg-gray-50">
{/* Hero Section */}
<div className="relative">
<div
className="h-96 bg-cover bg-center relative"
style={{ backgroundImage: `url(${assetUrl('iStock-637584740.jpg')})` }}
>
<div className="absolute inset-0 bg-gray-900/20" />
<div className="relative container mx-auto px-4 h-full flex items-center">
<div className="max-w-3xl">
<div className="bg-black/40 text-white px-8 py-6 md:px-10 md:py-8 shadow-lg">
<h1 className="text-4xl md:text-5xl font-bold text-white mb-6">
Auslandsreisekrankenversicherung
</h1>
<p className="text-xl text-white/90 mb-8 max-w-2xl">
Sorgenfrei reisen mit umfassendem Schutz im Ausland
</p>
<div className="flex flex-col sm:flex-row gap-4">
<Button onClick={() => setActiveTab('form')} size="lg" className="bg-blue-600 hover:bg-blue-700 text-white">
Jetzt beraten lassen
</Button>
<Button onClick={() => setActiveTab('calculator')} size="lg" variant="outline" className="bg-white/10 border-white text-white hover:bg-white/20">
Beitrag berechnen
</Button>
</div>
</div>
</div>
</div>
</div>
</div>
{/* Content */}
<style>{`
[data-state="active"] {
outline: none !important;
border: none !important;
box-shadow: none !important;
}
button:focus {
outline: none !important;
border: none !important;
box-shadow: none !important;
}
button:focus-visible {
outline: none !important;
border: none !important;
box-shadow: none !important;
}
`}</style>
<div className="container mx-auto px-4 md:px-6 py-8">
<div className="max-w-screen-2xl mx-auto">
<h2 className="text-2xl font-bold text-gray-900 mb-6 text-center">
Auslandsreisekrankenversicherung
</h2>
<div className="bg-white rounded-lg border border-gray-200 shadow-sm">
<Tabs
value={activeTab}
onValueChange={(next) => {
setActiveTab(next);
}}
className="w-full"
id="tab-section"
>
<div className="border-b border-gray-100 px-4 pt-6 pb-2 bg-gradient-to-r from-blue-50 to-white">
<TabsList className="grid grid-cols-5 gap-2 w-full h-auto bg-transparent border-0 shadow-none">
<TabsTrigger
value="overview"
className="relative px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0"
>
<Shield className="w-4 h-4 mr-1.5" />
{t('tabs.overview', 'Übersicht')}
</TabsTrigger>
<TabsTrigger
value="details"
className="relative px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0"
>
<FileText className="w-4 h-4 mr-1.5" />
{t('tabs.details', 'Details')}
</TabsTrigger>
<TabsTrigger
value="calculator"
className="relative px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0"
>
<Calculator className="w-4 h-4 mr-1.5" />
{t('tabs.calculator', 'Rechner')}
</TabsTrigger>
<TabsTrigger
value="form"
className="relative px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0"
>
<Phone className="w-4 h-4 mr-1.5" />
{t('tabs.form', 'Anfrage')}
</TabsTrigger>
<TabsTrigger
value="brochure"
className="relative px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0"
>
<Download className="w-4 h-4 mr-1.5" />
{t('tabs.brochure', 'PDF')}
</TabsTrigger>
</TabsList>
</div>
<div className="p-4 md:p-6">
<TabsContent value="overview" className="mt-0">
<TwoColumnTab
className="gap-8 items-center"
left={
<>
<div className="inline-flex items-center gap-2 rounded-full bg-blue-50 border border-blue-200 px-3 py-1 text-sm text-blue-800 mb-4">
<Star className="w-4 h-4" />
<span>Sicher reisen optimal geschützt</span>
</div>
<h1 className="text-3xl md:text-4xl font-bold text-gray-900 leading-tight">
Auslandsreisekrankenversicherung
<span className="block text-blue-700">Sorgenfrei reisen in alle Welt</span>
</h1>
<p className="mt-4 text-gray-600 text-lg">
Umfassender Schutz für Ihre Gesundheit im Ausland von Notfallbehandlung bis zum Rücktransport.
</p>
<div className="mt-6 flex flex-col sm:flex-row gap-3">
<Button onClick={() => setActiveTab('form')} className="bg-blue-700 hover:bg-blue-800">
Angebot anfordern
</Button>
<Button variant="outline" onClick={() => navigate('/kontakt')} className="border-gray-300">
Beratung
</Button>
</div>
<div className="mt-6 grid grid-cols-1 sm:grid-cols-2 gap-3">
<div className="flex items-center gap-3 rounded-lg border border-gray-200 bg-white p-3">
<Shield className="w-5 h-5 text-blue-700" />
<div className="text-sm">
<div className="font-semibold text-gray-900">Weltweiter Schutz</div>
<div className="text-gray-600">Sicherheit bei Reisen in alle Länder</div>
</div>
</div>
<div className="flex items-center gap-3 rounded-lg border border-gray-200 bg-white p-3">
<Users className="w-5 h-5 text-blue-700" />
<div className="text-sm">
<div className="font-semibold text-gray-900">Notfall-Schutz</div>
<div className="text-gray-600">Sofortige Hilfe bei Krankheit und Unfall</div>
</div>
</div>
</div>
</>
}
right={
(
<div className="relative">
<div className="absolute inset-0 bg-gradient-to-tr from-blue-100 to-white rounded-2xl" />
<div className="relative rounded-2xl border border-gray-200 bg-white shadow-sm overflow-hidden">
<img
src={assetUrl('iStock-637584740.jpg')}
alt="Auslandsreisekrankenversicherung"
className="w-full h-[240px] object-cover"
onError={(e) => {
(e.currentTarget as HTMLImageElement).style.display = 'none';
}}
/>
<div className="p-5">
<div className="flex items-center gap-2 text-sm text-gray-600">
<Heart className="w-4 h-4" />
<span>Notfallbehandlung, Rücktransport, 24h Hotline</span>
</div>
<div className="mt-2 text-sm text-gray-600">
Tarifcheck schnell, fair und passend zu Ihrer Reise.
</div>
</div>
</div>
</div>
)
}
/>
<div className="mt-10 bg-white rounded-xl border border-gray-200 p-6">
<h3 className="text-xl font-bold text-gray-900 mb-4">Kurz & klar</h3>
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
<Card className="border-gray-200">
<CardHeader>
<CardTitle className="text-base flex items-center gap-2">
<CheckCircle className="w-4 h-4 text-blue-700" />
Reise-Schutz
</CardTitle>
<CardDescription>Umfassende Absicherung für Ihre Auslandsreise.</CardDescription>
</CardHeader>
</Card>
<Card className="border-gray-200">
<CardHeader>
<CardTitle className="text-base flex items-center gap-2">
<Calculator className="w-4 h-4 text-blue-700" />
Vergleich lohnt sich
</CardTitle>
<CardDescription>Beiträge & Leistungen variieren stark.</CardDescription>
</CardHeader>
</Card>
<Card className="border-gray-200">
<CardHeader>
<CardTitle className="text-base flex items-center gap-2">
<PhoneCall className="w-4 h-4 text-blue-700" />
Persönliche Beratung
</CardTitle>
<CardDescription>Klare Schritte & Kontaktmöglichkeiten.</CardDescription>
</CardHeader>
</Card>
</div>
</div>
<div className="mt-6 rounded-xl bg-blue-700 p-6 text-white">
<h3 className="text-2xl font-bold">Was beeinflusst die Kosten der Zahnzusatzversicherung?</h3>
<div className="mt-6 grid grid-cols-1 md:grid-cols-2 gap-6">
<div className="rounded-lg bg-white/10 p-4">
<Heart className="w-10 h-10 text-white/90" strokeWidth={1.25} />
<div className="mt-3 text-lg font-semibold">Zahnzustand</div>
<div className="mt-1 text-sm text-white/85">
Aktuelle Zahngesundheit und bisherige Behandlungen beeinflussen die Prämie.
</div>
</div>
<div className="rounded-lg bg-white/10 p-4">
<Users className="w-10 h-10 text-white/90" strokeWidth={1.25} />
<div className="mt-3 text-lg font-semibold">Alter</div>
<div className="mt-1 text-sm text-white/85">
Jungere Versicherte zahlen oft geringere Beiträge als ältere.
</div>
</div>
<div className="rounded-lg bg-white/10 p-4">
<Shield className="w-10 h-10 text-white/90" strokeWidth={1.25} />
<div className="mt-3 text-lg font-semibold">Leistungsumfang</div>
<div className="mt-1 text-sm text-white/85">
Umfassende Tarife mit 100% Erstattung kosten mehr als Basis-Tarife.
</div>
</div>
<div className="rounded-lg bg-white/10 p-4">
<Calculator className="w-10 h-10 text-white/90" strokeWidth={1.25} />
<div className="mt-3 text-lg font-semibold">Selbstbeteiligung</div>
<div className="mt-1 text-sm text-white/85">
Höhere Selbstbeteiligung senkt den monatlichen Beitrag.
</div>
</div>
</div>
<div className="mt-6 rounded-lg bg-white/10 p-4 text-sm text-white/90">
Beispiel: Beiträge liegen in Deutschland meist zwischen 15 und 80 monatlich.
</div>
</div>
</TabsContent>
<TabsContent value="details" className="mt-0">
<TwoColumnTab
left={
<>
<h3 className="text-2xl font-bold text-gray-900">Details & Vorteile</h3>
<p className="mt-2 text-gray-600">
Umfassender Schutz für Ihre Gesundheit im Ausland von Notfallbehandlung bis zum Rücktransport.
</p>
<div className="mt-6 grid grid-cols-1 md:grid-cols-2 gap-4">
{benefits.map((benefit, index) => (
<Card key={index} className="border-gray-200">
<CardHeader>
<CardTitle className="text-base flex items-center gap-2">
<benefit.icon className="w-5 h-5 text-blue-700" />
{benefit.title}
</CardTitle>
<CardDescription>{benefit.description}</CardDescription>
</CardHeader>
</Card>
))}
</div>
<div className="mt-6">
<h4 className="text-lg font-semibold text-gray-900 mb-3">Leistungen (Auszug)</h4>
<div className="grid grid-cols-1 md:grid-cols-2 gap-3">
{services.map((service, index) => (
<div
key={index}
className="flex items-start gap-3 rounded-lg border border-gray-200 bg-white p-3"
>
<CheckCircle className="h-5 w-5 text-blue-700 mt-0.5 flex-shrink-0" />
<p className="text-gray-700">{service}</p>
</div>
))}
</div>
</div>
</>
}
right={
<RightImageCard src={assetUrl('iStock-637584740.jpg')} alt="Details & Vorteile">
<Card className="border-gray-200">
<CardHeader>
<CardTitle className="text-lg">Tipp</CardTitle>
<CardDescription>Deckungssumme & Rücktransport prüfen.</CardDescription>
</CardHeader>
<CardContent className="text-sm text-gray-700">
Achte auf hohe Deckungssummen und optionalen Rücktransport (medizinische
Evakuierung, Notfall-Hotline, Assistance).
</CardContent>
</Card>
</RightImageCard>
}
/>
</TabsContent>
<TabsContent value="calculator" className="mt-0">
<TwoColumnTab
left={
<>
<h3 className="text-2xl font-bold text-gray-900">Auslandsreise-Vergleichsrechner</h3>
<p className="mt-2 text-gray-600">
Ein Richtwert hilft bei der Orientierung. Für ein exaktes Angebot brauchen
wir u. a. Reiseziel, Reisedauer und gewünschte Leistungen.
</p>
<Card className="mt-6 border-gray-200">
<CardHeader>
<CardTitle className="text-lg flex items-center gap-2">
<Calculator className="w-5 h-5 text-blue-700" />
Grobe Beitragsschätzung
</CardTitle>
<CardDescription>Unverbindlich wir kalkulieren danach exakt.</CardDescription>
</CardHeader>
<CardContent className="space-y-4">
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
<div>
<label className="text-sm font-medium text-gray-700">Reiseziel</label>
<select
name="destination"
value={formData.destination}
onChange={handleFormChange}
className="mt-1 w-full rounded-md border border-gray-300 bg-white px-3 py-2 text-sm"
>
<option value="">Bitte wählen</option>
<option value="europa">Europa</option>
<option value="asien">Asien</option>
<option value="amerika">Amerika</option>
<option value="weltweit">Weltweit</option>
</select>
</div>
<div>
<label className="text-sm font-medium text-gray-700">Reisedauer</label>
<select
name="travelDuration"
value={formData.travelDuration}
onChange={handleFormChange}
className="mt-1 w-full rounded-md border border-gray-300 bg-white px-3 py-2 text-sm"
>
<option value="">Bitte wählen</option>
<option value="kurz">Bis 14 Tage</option>
<option value="mittel">15-30 Tage</option>
<option value="lang">Über 30 Tage</option>
<option value="jahr">Ganzes Jahr</option>
</select>
</div>
</div>
<div className="rounded-lg border border-blue-200 bg-blue-50 p-4">
<div className="text-sm text-blue-900 font-semibold">Richtwert (Beispiel)</div>
<div className="mt-1 text-sm text-blue-900">
Reiseversicherung ab <span className="font-bold">ca. 15 </span>/Woche
</div>
<div className="text-xs text-blue-900/80 mt-2">
Abhängig von Reiseziel, Dauer, Leistungen und Alter.
</div>
</div>
<Button onClick={() => setActiveTab('form')} className="w-full bg-blue-700 hover:bg-blue-800">
Jetzt konkretes Angebot anfordern
</Button>
</CardContent>
</Card>
</>
}
right={
<RightImageCard src={assetUrl('iStock-637584740.jpg')} alt="Auslandsreise-Vergleichsrechner">
<Card className="border-gray-200">
<CardHeader>
<CardTitle className="text-lg">Was wir fürs Angebot brauchen</CardTitle>
<CardDescription>Je genauer, desto besser.</CardDescription>
</CardHeader>
<CardContent className="space-y-3 text-sm text-gray-700">
<div className="flex items-start gap-2">
<FileText className="w-4 h-4 text-blue-700 mt-0.5" />
<span>Reisedaten und Zielregion</span>
</div>
<div className="flex items-start gap-2">
<Search className="w-4 h-4 text-blue-700 mt-0.5" />
<span>Alter und Gesundheitszustand</span>
</div>
<div className="flex items-start gap-2">
<AlertCircle className="w-4 h-4 text-blue-700 mt-0.5" />
<span>Wunsch: Rücktransport / Dental-Schutz</span>
</div>
</CardContent>
</Card>
</RightImageCard>
}
/>
</TabsContent>
<TabsContent value="form" className="mt-0">
<TwoColumnTab
left={
<>
<h3 className="text-2xl font-bold text-gray-900">Anfrageformular</h3>
<p className="mt-2 text-gray-600">
Sende uns deine Eckdaten wir melden uns mit einem passenden Angebot.
</p>
<Card className="mt-6 border-gray-200">
<CardContent className="p-6">
<form onSubmit={handleFormSubmit} className="space-y-4">
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
<div>
<label className="text-sm font-medium text-gray-700">Name</label>
<input
name="name"
value={formData.name}
onChange={handleFormChange}
className="mt-1 w-full rounded-md border border-gray-300 px-3 py-2 text-sm"
required
/>
</div>
<div>
<label className="text-sm font-medium text-gray-700">Telefon</label>
<input
name="phone"
value={formData.phone}
onChange={handleFormChange}
className="mt-1 w-full rounded-md border border-gray-300 px-3 py-2 text-sm"
/>
</div>
</div>
<div>
<label className="text-sm font-medium text-gray-700">E-Mail</label>
<input
type="email"
name="email"
value={formData.email}
onChange={handleFormChange}
className="mt-1 w-full rounded-md border border-gray-300 px-3 py-2 text-sm"
required
/>
</div>
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
<div>
<label className="text-sm font-medium text-gray-700">Reiseziel</label>
<select
name="destination"
value={formData.destination}
onChange={handleFormChange}
className="mt-1 w-full rounded-md border border-gray-300 bg-white px-3 py-2 text-sm"
>
<option value="">Bitte wählen</option>
<option value="europa">Europa</option>
<option value="asien">Asien</option>
<option value="amerika">Amerika</option>
<option value="weltweit">Weltweit</option>
</select>
</div>
<div>
<label className="text-sm font-medium text-gray-700">Reisedauer</label>
<select
name="travelDuration"
value={formData.travelDuration}
onChange={handleFormChange}
className="mt-1 w-full rounded-md border border-gray-300 bg-white px-3 py-2 text-sm"
>
<option value="">Bitte wählen</option>
<option value="kurz">Bis 14 Tage</option>
<option value="mittel">15-30 Tage</option>
<option value="lang">Über 30 Tage</option>
<option value="jahr">Ganzes Jahr</option>
</select>
</div>
<div>
<label className="text-sm font-medium text-gray-700">Versicherungstyp</label>
<select
name="coverageType"
value={formData.coverageType}
onChange={handleFormChange}
className="mt-1 w-full rounded-md border border-gray-300 bg-white px-3 py-2 text-sm"
>
<option value="">Bitte wählen</option>
<option value="einzeln">Einzelversicherung</option>
<option value="familie">Familienversicherung</option>
<option value="gruppe">Gruppenversicherung</option>
</select>
</div>
</div>
<div>
<label className="text-sm font-medium text-gray-700">Nachricht</label>
<textarea
name="message"
value={formData.message}
onChange={handleFormChange}
className="mt-1 w-full rounded-md border border-gray-300 px-3 py-2 text-sm min-h-[120px]"
placeholder="Welche Leistungen sind Ihnen wichtig?"
/>
</div>
<Button type="submit" className="bg-blue-700 hover:bg-blue-800">
Anfrage senden
</Button>
</form>
</CardContent>
</Card>
</>
}
right={
<RightImageCard src={assetUrl('head_kontakt_agentur_mizera.jpg')} alt="Anfrageformular">
<Card className="border-gray-200">
<CardHeader>
<CardTitle className="text-lg">Direktkontakt</CardTitle>
<CardDescription>Wenn es schnell gehen soll.</CardDescription>
</CardHeader>
<CardContent className="space-y-3 text-sm text-gray-700">
<div className="flex items-center gap-2">
<Phone className="w-4 h-4 text-blue-700" />
<span>Telefon: <a href="tel:01719864053" className="text-blue-600 hover:text-blue-800 underline">0171 / 9864053</a> <a href="https://wa.me/491719864053" target="_blank" rel="noreferrer" className="text-green-600 hover:text-green-800 underline">(WhatsApp)</a></span>
</div>
<div className="flex items-center gap-2">
<Mail className="w-4 h-4 text-blue-700" />
<span>E-Mail: <a href="mailto:info@finanzen-mizera.de" className="text-blue-600 hover:text-blue-800 underline">info@finanzen-mizera.de</a></span>
</div>
<div className="pt-2">
<Button variant="outline" className="w-full" onClick={() => navigate('/kontakt')}>
Kontaktseite
</Button>
</div>
</CardContent>
</Card>
</RightImageCard>
}
/>
</TabsContent>
<TabsContent value="brochure" className="mt-0">
<TwoColumnTab
left={
<>
<h3 className="text-2xl font-bold text-gray-900">Kundenbroschüre (PDF)</h3>
<p className="mt-2 text-gray-600">Broschüre als PDF zum Download.</p>
<Card className="mt-6 border-gray-200">
<CardHeader>
<CardTitle className="text-lg">Auslandsreisekrankenversicherung (PDF)</CardTitle>
<CardDescription>Informationsbroschüre zur Auslandsreisekrankenversicherung</CardDescription>
</CardHeader>
<CardContent>
<a href="/PDF/Tarifvergleich-CEZKCEZP_CEZE_01.2023-2791.pdf" download>
<Button className="bg-blue-700 hover:bg-blue-800 w-full">PDF herunterladen</Button>
</a>
</CardContent>
</Card>
</>
}
right={
<RightImageCard src={assetUrl('iStock-637584740.jpg')} alt="Kundenbroschüre">
<Card className="border-gray-200">
<CardHeader>
<CardTitle className="text-lg">Hinweis</CardTitle>
<CardDescription>Bei Fragen beraten wir gerne.</CardDescription>
</CardHeader>
</Card>
</RightImageCard>
}
/>
</TabsContent>
<GeneralNotice />
</div>
</Tabs>
</div>
</div>
</div>
</div>
</Layout>
);
};
export default Auslandsreisekrankenversicherung;

View File

@ -1,42 +1,44 @@
import React from 'react'; import React from 'react';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import { Shield, Heart, Car, Home, Briefcase, Users } from 'lucide-react'; import { Shield, Heart, Car, Home, Briefcase, Users } from 'lucide-react';
import { useTranslation } from 'react-i18next';
import Layout from '@/components/Layout'; import Layout from '@/components/Layout';
import { Card } from '@/components/ui/card'; import { Card } from '@/components/ui/card';
import Disclaimer from '@/components/Disclaimer'; import Disclaimer from '@/components/Disclaimer';
const Risikoschutz = () => { const Risikoschutz = () => {
const { t } = useTranslation('risikoschutz');
const baseUrl = import.meta.env.BASE_URL; const baseUrl = import.meta.env.BASE_URL;
const assetUrl = (fileName: string) => `${baseUrl}${encodeURI(fileName)}`; const assetUrl = (fileName: string) => `${baseUrl}${encodeURI(fileName)}`;
const topics = [ const topics = [
{ {
title: 'Unfallversicherung', title: t('topics.unfall', 'Unfallversicherung'),
href: '/unfall', href: '/unfall',
image: assetUrl('iStock-970876204.jpg') image: assetUrl('iStock-970876204.jpg')
}, },
{ {
title: 'Berufsunfähigkeitsversicherung', title: t('topics.bu', 'Berufsunfähigkeitsversicherung'),
href: '/berufsunfaehigkeitsversicherung', href: '/berufsunfaehigkeitsversicherung',
image: assetUrl('iStock-957363908.jpg') image: assetUrl('iStock-957363908.jpg')
}, },
{ {
title: 'Haftpflichtversicherung', title: t('topics.haftpflicht', 'Haftpflichtversicherung'),
href: '/haftpflichtversicherung', href: '/haftpflichtversicherung',
image: assetUrl('iStock-943842590.jpg') image: assetUrl('iStock-943842590.jpg')
}, },
{ {
title: 'Rechtsschutzversicherung', title: t('topics.rechtsschutz', 'Rechtsschutzversicherung'),
href: '/rechtsschutzversicherung', href: '/rechtsschutzversicherung',
image: assetUrl('Fotolia_8654128_XS.jpg') image: assetUrl('Fotolia_8654128_XS.jpg')
}, },
{ {
title: 'Tierhalterhaftpflicht', title: t('topics.tierhalter', 'Tierhalterhaftpflicht'),
href: '/tierhalterhaftpflicht', href: '/tierhalterhaftpflicht',
image: assetUrl('iStock-495809266.jpg') image: assetUrl('iStock-495809266.jpg')
}, },
{ {
title: 'Dread-Disease Versicherung', title: t('topics.dread', 'Dread-Disease Versicherung'),
href: '/dread-disease-versicherung', href: '/dread-disease-versicherung',
image: assetUrl('Fotolia_67327775_XS.jpg') image: assetUrl('Fotolia_67327775_XS.jpg')
} }
@ -50,10 +52,10 @@ const Risikoschutz = () => {
<div className="container mx-auto px-4"> <div className="container mx-auto px-4">
<div className="max-w-4xl mx-auto text-center"> <div className="max-w-4xl mx-auto text-center">
<h1 className="text-4xl font-bold text-gray-900 mb-6"> <h1 className="text-4xl font-bold text-gray-900 mb-6">
Risikoschutz {t('hero.title', 'Risikoschutz')}
</h1> </h1>
<p className="text-xl text-gray-600 mb-8"> <p className="text-xl text-gray-600 mb-8">
Umfassender Schutz für Sie und Ihre Familie bei unvorhergesehenen Ereignissen {t('hero.subtitle', 'Umfassender Schutz für Sie und Ihre Familie bei unvorhergesehenen Ereignissen')}
</p> </p>
</div> </div>
</div> </div>

View File

@ -1,41 +1,42 @@
import React from 'react'; import React from 'react';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import { Home, Car, Fire, Zap, Shield, Phone } from 'lucide-react'; import { useTranslation } from 'react-i18next';
import Layout from '@/components/Layout'; import Layout from '@/components/Layout';
import { Card } from '@/components/ui/card'; import { Card } from '@/components/ui/card';
const Sachversicherung = () => { const Sachversicherung = () => {
const { t } = useTranslation('sachversicherung');
const baseUrl = import.meta.env.BASE_URL; const baseUrl = import.meta.env.BASE_URL;
const assetUrl = (fileName: string) => `${baseUrl}${encodeURI(fileName)}`; const assetUrl = (fileName: string) => `${baseUrl}${encodeURI(fileName)}`;
const topics = [ const topics = [
{ {
title: 'Hausratversicherung', title: t('topics.hausrat', 'Hausratversicherung'),
href: '/hausratversicherung', href: '/hausratversicherung',
image: assetUrl('iStock-943842590.jpg') image: assetUrl('iStock-943842590.jpg')
}, },
{ {
title: 'Wohngebäudeversicherung', title: t('topics.wohngebaeude', 'Wohngebäudeversicherung'),
href: '/hausrat', href: '/hausrat',
image: assetUrl('iStock-495809266.jpg') image: assetUrl('iStock-495809266.jpg')
}, },
{ {
title: 'Haftpflichtversicherung', title: t('topics.haftpflicht', 'Haftpflichtversicherung'),
href: '/haftpflichtversicherung', href: '/haftpflichtversicherung',
image: assetUrl('Fotolia_67327775_XS.jpg') image: assetUrl('Fotolia_67327775_XS.jpg')
}, },
{ {
title: 'Tierversicherung', title: t('topics.tiere', 'Tierversicherung'),
href: '/tierversicherung', href: '/tierversicherung',
image: assetUrl('iStock-970876204.jpg') image: assetUrl('iStock-970876204.jpg')
}, },
{ {
title: 'Rechtsschutzversicherung', title: t('topics.rechtsschutz', 'Rechtsschutzversicherung'),
href: '/rechtsschutzversicherung', href: '/rechtsschutzversicherung',
image: assetUrl('iStock-957363908.jpg') image: assetUrl('iStock-957363908.jpg')
}, },
{ {
title: 'Elektrogeräteversicherung', title: t('topics.elektro', 'Elektrogeräteversicherung'),
href: '/elektrogeraeteversicherung', href: '/elektrogeraeteversicherung',
image: assetUrl('Fotolia_8654128_XS.jpg') image: assetUrl('Fotolia_8654128_XS.jpg')
} }
@ -49,10 +50,10 @@ const Sachversicherung = () => {
<div className="container mx-auto px-4"> <div className="container mx-auto px-4">
<div className="max-w-4xl mx-auto text-center"> <div className="max-w-4xl mx-auto text-center">
<h1 className="text-4xl font-bold text-gray-900 mb-6"> <h1 className="text-4xl font-bold text-gray-900 mb-6">
Sachversicherung {t('hero.title', 'Sachversicherung')}
</h1> </h1>
<p className="text-xl text-gray-600 mb-8"> <p className="text-xl text-gray-600 mb-8">
Schutz für Ihr Hab und Gut - von Hausrat bis Immobilie {t('hero.subtitle', 'Schutz für Ihr Hab und Gut - von Hausrat bis Immobilie')}
</p> </p>
</div> </div>
</div> </div>

View File

@ -1,42 +1,49 @@
import React from 'react'; import React from 'react';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import { useTranslation } from 'react-i18next';
import { TrendingUp, PiggyBank, DollarSign, Shield, Calculator, Home } from 'lucide-react'; import { TrendingUp, PiggyBank, DollarSign, Shield, Calculator, Home } from 'lucide-react';
import Layout from '@/components/Layout'; import Layout from '@/components/Layout';
import { Card } from '@/components/ui/card'; import { Card } from '@/components/ui/card';
const Vermoegenssicherung = () => { const Vermoegenssicherung = () => {
const { t } = useTranslation('vermoegenssicherung');
const baseUrl = import.meta.env.BASE_URL; const baseUrl = import.meta.env.BASE_URL;
const assetUrl = (fileName: string) => `${baseUrl}${encodeURI(fileName)}`; const assetUrl = (fileName: string) => `${baseUrl}${encodeURI(fileName)}`;
const topics = [ const topics = [
{ {
title: 'Lebensversicherung', title: t('topics.lebensversicherung', 'Lebensversicherung'),
href: '/finanzen', href: '/finanzen',
image: assetUrl('iStock-495809266.jpg') image: assetUrl('iStock-495809266.jpg')
}, },
{ {
title: 'Risikolebensversicherung', title: t('topics.risikolebensversicherung', 'Risikolebensversicherung'),
href: '/finanzen', href: '/risikolebensversicherung',
image: assetUrl('Fotolia_67327775_XS.jpg') image: assetUrl('iStock-975006448.jpg')
}, },
{ {
title: 'Wohngebäudeversicherung', title: t('topics.krankheitsschutzbrief', 'Krankheits-Schutzbrief'),
href: '/krankheitsschutzbrief',
image: assetUrl('head_pillen.jpg')
},
{
title: t('topics.wohngebaeudeversicherung', 'Wohngebäudeversicherung'),
href: '/hausrat', href: '/hausrat',
image: assetUrl('iStock-943842590.jpg') image: assetUrl('iStock-943842590.jpg')
}, },
{ {
title: 'Kapitalanlageversicherung', title: t('topics.altersvorsorge', 'Altersvorsorge'),
href: '/kapitalanlageversicherung', href: '/altersvorsorge',
image: assetUrl('Fotolia_8654128_XS.jpg') image: assetUrl('Fotolia_8654128_XS.jpg')
}, },
{ {
title: 'Fondsversicherung', title: t('topics.gesundheitsvorsorge', 'Gesundheitsvorsorge'),
href: '/fondsversicherung', href: '/gesundheitsvorsorge',
image: assetUrl('iStock-970876204.jpg') image: assetUrl('iStock-970876204.jpg')
}, },
{ {
title: 'Vorsorgeversicherung', title: t('topics.risikoschutz', 'Risikoschutz'),
href: '/vorsorgeversicherung', href: '/risikoschutz',
image: assetUrl('iStock-957363908.jpg') image: assetUrl('iStock-957363908.jpg')
} }
]; ];
@ -44,15 +51,37 @@ const Vermoegenssicherung = () => {
return ( return (
<Layout> <Layout>
<div className="min-h-screen bg-white"> <div className="min-h-screen bg-white">
{/* Hero Section */}
<div className="relative">
<div
className="h-96 bg-cover bg-center relative"
style={{ backgroundImage: `url(${assetUrl('iStock-975006448.jpg')})` }}
>
<div className="absolute inset-0 bg-gray-900/20" />
<div className="relative container mx-auto px-4 h-full flex items-center">
<div className="max-w-3xl">
<div className="bg-black/40 text-white px-8 py-6 md:px-10 md:py-8 shadow-lg">
<h1 className="text-4xl md:text-5xl font-bold text-white mb-6">
{t('title', 'Vermögenssicherung')}
</h1>
<p className="text-xl text-white/90 mb-8 max-w-2xl">
{t('subtitle', 'Sichern Sie Ihr Vermögen und bauen Sie Ihren Wohlstand auf')}
</p>
</div>
</div>
</div>
</div>
</div>
{/* Header */} {/* Header */}
<div className="bg-gradient-to-br from-blue-50 to-blue-100 py-16"> <div className="bg-gradient-to-br from-blue-50 to-blue-100 py-16">
<div className="container mx-auto px-4"> <div className="container mx-auto px-4">
<div className="max-w-4xl mx-auto text-center"> <div className="max-w-4xl mx-auto text-center">
<h1 className="text-4xl font-bold text-gray-900 mb-6"> <h2 className="text-4xl font-bold text-gray-900 mb-6">
Vermögenssicherung {t('title', 'Vermögenssicherung')}
</h1> </h2>
<p className="text-xl text-gray-600 mb-8"> <p className="text-xl text-gray-600 mb-8">
Sichern Sie Ihr Vermögen und bauen Sie Ihren Wohlstand auf {t('subtitle', 'Sichern Sie Ihr Vermögen und bauen Sie Ihren Wohlstand auf')}
</p> </p>
</div> </div>
</div> </div>