# Phase 3: 100 SEO-Gratis-Seiten Implementation Plan

> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.

**Goal:** 100 SEO-optimierte DE-Landingpages unter `/gratis/{slug}` + 4 Kategorie-Hub-Seiten, alle datengetrieben aus `config/lead_pages.php` mit 1 universellen Blade-Template.

**Architecture:** `LeadPageController.__invoke` erkennt Hub-Slugs (`ki`/`business`/`it`/`finanzen`) und rendert `gratis.hub`; für Spoke-Seiten ohne eigene `view`-Angabe fällt er auf `gratis.show` zurück. Config-Daten werden in 4 Blöcken à 25 Seiten zu `config/lead_pages.php` hinzugefügt. 12 Lead-Magnets in `config/lead_magnets.php`. Keine neuen Routen — bestehende `GET /gratis/{slug}` Route (Phase 1) deckt alles ab.

**Tech Stack:** Laravel 12, Blade, PHP 8.2, SQLite (Tests), composer test (= config:clear + php artisan test)

---

## File-Übersicht

| Datei | Aktion |
|---|---|
| `config/lead_magnets.php` | Mod: 10 neue Magnets hinzufügen |
| `app/Http/Controllers/LeadPageController.php` | Mod: Hub-Erkennung + gratis.show Fallback |
| `resources/views/gratis/show.blade.php` | Neu: universelles Template |
| `resources/views/gratis/hub.blade.php` | Neu: Kategorie-Hub-Seite |
| `config/lead_pages.php` | Mod: 100 neue Einträge (4 × 25 Blöcke) |
| `routes/web.php` | Mod: Hub-Seiten in Sitemap aufnehmen |
| `tests/Feature/Leads/LeadPageTest.php` | Neu: 9 Tests |

---

## Task 1: 10 neue Lead-Magnets in `config/lead_magnets.php`

**Files:**
- Modify: `config/lead_magnets.php`

- [ ] **Step 1: Datei lesen und 10 neue Einträge anhängen**

Ersetze den gesamten Inhalt von `config/lead_magnets.php` durch folgendes (die bestehenden 2 Einträge + 10 neue):

```php
<?php
// config/lead_magnets.php
// file = Dateiname relativ zu storage/app/private/lead_magnets/ (oder null = nur Text-Mail).
return [

    'seo-checkliste-2026' => [
        'title'            => 'SEO-Checkliste 2026',
        'description'      => '20 konkrete Maßnahmen, die jede Website braucht.',
        'file'             => null,
        'delivery_subject' => 'Deine SEO-Checkliste 2026 von kotsch.tech',
        'delivery_body'    => 'Vielen Dank für dein Interesse! Hier sind deine 20 SEO-Maßnahmen für 2026. Viel Erfolg dabei!',
    ],

    'ki-prompt-starter' => [
        'title'            => 'KI-Prompt-Starter-Kit',
        'description'      => '15 sofort einsetzbare ChatGPT-Prompts für Selbstständige.',
        'file'             => null,
        'delivery_subject' => 'Dein KI-Prompt-Starter-Kit von kotsch.tech',
        'delivery_body'    => 'Hier sind deine 15 ChatGPT-Prompts für Freelancer und Gründer. Viel Spaß beim Ausprobieren!',
    ],

    // ── KI-Magnets ───────────────────────────────────────────────────────────

    'ki-prompts-buchhaltung' => [
        'title'            => 'KI-Prompts: Buchhaltung & Finanzen',
        'description'      => '20 ChatGPT-Prompts für Rechnungen, Mahnungen und Steuer-Vorbereitungen.',
        'file'             => null,
        'delivery_subject' => 'Deine 20 KI-Prompts für Buchhaltung — kotsch.tech',
        'delivery_body'    => "<p>Hallo,</p><p>hier sind deine <strong>20 ChatGPT-Prompts für Buchhaltung & Finanzen</strong>:</p><ol><li>\"Schreib mir eine Rechnung für [Leistung] an [Kunde]. Netto: [Betrag] €, MwSt. 19 %.\"</li><li>\"Formuliere eine höfliche erste Zahlungserinnerung für Rechnung #[Nr.] vom [Datum].\"</li><li>\"Erstelle eine zweite Mahnung mit konkreter Zahlungsfrist für Rechnung #[Nr.].\"</li><li>\"Erkläre mir den Unterschied zwischen Einnahmen-Überschuss-Rechnung und Bilanzierung für einen Freelancer.\"</li><li>\"Welche Betriebsausgaben kann ich als Freelancer [Branche] steuerlich absetzen?\"</li><li>\"Schreib ein Anschreiben an mein Finanzamt für die Umsatzsteuervoranmeldung.\"</li><li>\"Kategorie für folgende Ausgabe: [Beschreibung] — Betriebsausgabe ja/nein und warum?\"</li><li>\"Erstelle eine Übersicht meiner monatlichen Fixkosten basierend auf dieser Liste: [Liste].\"</li><li>\"Wie buche ich eine gemischt genutzte Ausgabe (z. B. Handy 80 % privat / 20 % geschäftlich)?\"</li><li>\"Schreib einen Antwort-Text auf eine Kundenbeschwerden über eine Rechnung.\"</li><li>\"Berechne meine Umsatzsteuer-Zahllast: Einnahmen [Betrag], Ausgaben [Betrag], Vorsteuern [Betrag].\"</li><li>\"Erstelle eine monatliche Einnahmen-Ausgaben-Übersicht aus diesen Daten: [CSV].\"</li><li>\"Welche Unterlagen brauche ich für eine Betriebsprüfung als Kleinunternehmer?\"</li><li>\"Schreib eine E-Mail an meinen Steuerberater mit der Frage nach der optimalen Gewinnermittlungsart.\"</li><li>\"Erkläre mir den Unterschied zwischen netto und brutto für meine Rechnungsstellung.\"</li><li>\"Welche Fristen für Umsatzsteuervoranmeldung gelten für mich bei Jahresumsatz [Betrag]?\"</li><li>\"Erstelle eine Vorlage für ein Ausgabenprotokoll mit Datum, Beschreibung, Betrag, Kategorie.\"</li><li>\"Ich habe eine Gutschrift erhalten — wie wirkt sich das auf meine Buchhaltung aus?\"</li><li>\"Was ist eine Kleinbetragsrechnung und welche Angaben sind Pflicht?\"</li><li>\"Formuliere eine professionelle Zahlungsbestätigung für Rechnung #[Nr.].\"</li></ol><p>Viel Erfolg! Dein kotsch.tech-Team</p>",
    ],

    'ki-prompts-marketing' => [
        'title'            => 'KI-Prompts: Marketing & Social Media',
        'description'      => '25 ChatGPT-Prompts für Posts, Ads und Content-Ideen.',
        'file'             => null,
        'delivery_subject' => 'Deine 25 KI-Prompts für Marketing — kotsch.tech',
        'delivery_body'    => "<p>Hallo,</p><p>hier sind deine <strong>25 ChatGPT-Prompts für Marketing & Social Media</strong>:</p><ol><li>\"Schreib 5 Instagram-Captions für [Produkt/Dienstleistung], Tonality: [professionell/locker/inspirierend].\"</li><li>\"Erstelle einen LinkedIn-Post über [Thema], der Engagement erzeugt. Max. 300 Wörter.\"</li><li>\"Generiere 10 Content-Ideen für meinen [Branche]-Account auf [Plattform] im [Monat].\"</li><li>\"Schreib einen überzeugenden Google-Ads-Text (Überschrift max. 30 Zeichen, Beschreibung max. 90 Zeichen) für [Angebot].\"</li><li>\"Erstelle 3 A/B-Test-Varianten für meinen Newsletter-Betreff zu [Thema].\"</li><li>\"Schreib einen Blogpost-Entwurf (800 Wörter) zu [Keyword] für meine Zielgruppe [Beschreibung].\"</li><li>\"Analysiere meinen Beitrag und mache ihn SEO-freundlicher: [Text].\"</li><li>\"Erstelle einen Content-Kalender für [Plattform] für den Monat [Monat] zum Thema [Thema].\"</li><li>\"Schreib 5 Hashtag-Sets (je 15-20 Tags) für [Branche/Thema] auf Instagram.\"</li><li>\"Formuliere eine überzeugende E-Mail-Kampagne (3 E-Mails) für [Produkt-Launch].\"</li><li>\"Was sind die besten Posting-Zeiten für [Zielgruppe] auf [Plattform] — mit Begründung?\"</li><li>\"Schreib einen überzeugenden USP-Satz für mein Angebot: [Leistungsbeschreibung].\"</li><li>\"Erstelle eine Storyfähige Bildunterschrift für dieses Szenario: [Beschreibung].\"</li><li>\"Generiere 10 Fragen, die ich meiner Community als Engagement-Posts stellen kann.\"</li><li>\"Schreib einen Reels/TikTok-Skript (30 Sek.) für [Thema/Produkt].\"</li><li>\"Erstelle eine Pressemitteilung für [Ankündigung/Launch].\"</li><li>\"Was sind 5 Gründe, warum [Zielgruppe] [Produkt] braucht? Als Social-Proof-Post formulieren.\"</li><li>\"Schreib 3 verschiedene CTAs für [Landing Page/Post] (direkt, neugierig, dringend).\"</li><li>\"Analysiere diesen Wettbewerber-Post und erkläre, warum er gut/schlecht performed: [Post].\"</li><li>\"Erstelle eine Story-Sequenz (5 Stories) für [Produkt/Aktion].\"</li><li>\"Schreib einen Testimonial-Request an einen zufriedenen Kunden (kurz, freundlich).\"</li><li>\"Welche Marketing-Kanäle sind 2026 am effektivsten für [Branche]? Mit Begründung.\"</li><li>\"Erstelle ein Angebot-Posting für [Rabattaktion] auf [Plattform].\"</li><li>\"Formuliere 5 kurze Werbetexte (max. 50 Zeichen) für [Produkt/Service].\"</li><li>\"Analysiere diesen Text auf Conversion-Schwächen und schlage Verbesserungen vor: [Text].\"</li></ol><p>Viel Erfolg! Dein kotsch.tech-Team</p>",
    ],

    'ki-prompts-hr' => [
        'title'            => 'KI-Prompts: HR, Bewerbungen & Team',
        'description'      => '15 ChatGPT-Prompts für Stellenanzeigen, Bewerbungen und Teamführung.',
        'file'             => null,
        'delivery_subject' => 'Deine 15 KI-Prompts für HR & Team — kotsch.tech',
        'delivery_body'    => "<p>Hallo,</p><p>hier sind deine <strong>15 ChatGPT-Prompts für HR, Bewerbungen & Team</strong>:</p><ol><li>\"Schreib eine ansprechende Stellenanzeige für [Position] in [Branche], Tonality: modern und einladend.\"</li><li>\"Erstelle eine professionelle Bewerbungs-E-Mail für die Stelle als [Position] bei [Unternehmen].\"</li><li>\"Formuliere ein Anschreiben für einen Quereinsteiger von [Bereich] zu [Zielbereich].\"</li><li>\"Erstelle 10 Interviewfragen für eine [Position] in meinem [Branche]-Unternehmen.\"</li><li>\"Schreib konstruktives Feedback für einen Mitarbeiter nach [Situation].\"</li><li>\"Formuliere eine höfliche Absage auf eine Bewerbung, die die Person wertschätzt.\"</li><li>\"Erstelle einen 30-60-90-Tage-Plan für einen neuen [Position]-Mitarbeiter.\"</li><li>\"Schreib eine Team-E-Mail zur Ankündigung von [Änderung/News] (motivierend, transparent).\"</li><li>\"Hilf mir, mein LinkedIn-Profil für [Zielposition] zu optimieren: aktuelles Profil: [Text].\"</li><li>\"Formuliere eine professionelle Zeugnissprache für folgende Leistungsbeschreibung: [Text].\"</li><li>\"Erstelle eine Checkliste für das Onboarding eines neuen [Remote/Büro]-Mitarbeiters.\"</li><li>\"Schreib eine überzeugende Eigeninitiativ-Bewerbung für [Unternehmen/Branche].\"</li><li>\"Wie führe ich ein schwieriges Feedback-Gespräch mit einem Mitarbeiter wegen [Thema]?\"</li><li>\"Erstelle einen Teambuilding-Vorschlag für ein Remote-Team mit [Anzahl] Personen.\"</li><li>\"Schreib eine Gehaltsverhandlungs-E-Mail nach [Zeitraum] im Unternehmen.\"</li></ol><p>Viel Erfolg! Dein kotsch.tech-Team</p>",
    ],

    'ki-prompts-kundenservice' => [
        'title'            => 'KI-Prompts: Kundenservice & Kommunikation',
        'description'      => '20 ChatGPT-Prompts für E-Mails, Beschwerden und Kundenkommunikation.',
        'file'             => null,
        'delivery_subject' => 'Deine 20 KI-Prompts für Kundenservice — kotsch.tech',
        'delivery_body'    => "<p>Hallo,</p><p>hier sind deine <strong>20 ChatGPT-Prompts für Kundenservice & Kommunikation</strong>:</p><ol><li>\"Beantworte diese Kundenbeschwerde professionell und empathisch: [Beschwerde].\"</li><li>\"Schreib eine Entschuldigungs-E-Mail für [Fehler/Verspätung] an einen Kunden.\"</li><li>\"Formuliere eine höfliche Absage auf eine Anfrage, die wir nicht erfüllen können.\"</li><li>\"Erstelle 5 Standard-Antworten (Templates) für häufige Support-Fragen zu [Produkt].\"</li><li>\"Wie gehe ich am besten mit einem aggressiven Kunden um? Formuliere eine deeskalierende Antwort.\"</li><li>\"Schreib eine Follow-up-E-Mail nach einem Beratungsgespräch mit [Name] zu [Thema].\"</li><li>\"Erstelle eine FAQ-Seite für [Produkt/Service] mit 10 häufigen Fragen.\"</li><li>\"Formuliere eine transparente Statusmeldung bei einem Ausfall/Fehler für unsere Kunden.\"</li><li>\"Schreib eine freundliche Nachfass-E-Mail an einen Kunden, der seit [Zeitraum] nicht bestellt hat.\"</li><li>\"Übersetze diese technische Fehlermeldung in eine kundenverständliche Erklärung: [Fehler].\"</li><li>\"Erstelle ein Skript für ein telefonisches Erstgespräch mit einem potenziellen Kunden.\"</li><li>\"Wie formuliere ich eine Preiserhöhungs-Ankündigung so, dass Kunden sie verstehen und akzeptieren?\"</li><li>\"Schreib eine Bitte um ein Kunden-Feedback/Review nach einem abgeschlossenen Projekt.\"</li><li>\"Erstelle eine Dankes-E-Mail für einen Stammkunden nach [Anlass/Kauf].\"</li><li>\"Formuliere eine klare E-Mail zur Klärung eines Missverständnisses mit [Kunde].\"</li><li>\"Schreib einen professionellen Antworttext für eine negative Online-Bewertung.\"</li><li>\"Erstelle 3 verschiedene Willkommens-E-Mails für neue Kunden (herzlich/professionell/kurz).\"</li><li>\"Wie kommuniziere ich eine Projektverzögerung an den Kunden? Formuliere die E-Mail.\"</li><li>\"Schreib eine Cross-Selling-Empfehlung nach Kauf von [Produkt A] für [Produkt B].\"</li><li>\"Erstelle ein Chatbot-Skript für die häufigsten 5 Anfragen bei [Unternehmen/Produkt].\"</li></ol><p>Viel Erfolg! Dein kotsch.tech-Team</p>",
    ],

    // ── IT / Checklisten-Magnets ──────────────────────────────────────────────

    'checkliste-dsgvo' => [
        'title'            => 'DSGVO-Checkliste für Websites & Apps',
        'description'      => '25 Punkte für DSGVO-konforme Websites und Web-Apps.',
        'file'             => null,
        'delivery_subject' => 'Deine DSGVO-Checkliste von kotsch.tech',
        'delivery_body'    => "<p>Hallo,</p><p>hier ist deine <strong>DSGVO-Checkliste für Websites & Apps (25 Punkte)</strong>:</p><ol><li>Datenschutzerklärung vorhanden und aktuell (Art. 13/14 DSGVO)</li><li>Impressum vollständig (§ 5 TMG)</li><li>Cookie-Consent-Banner mit echten Ablehnen-Option</li><li>Keine Cookies vor Zustimmung gesetzt (inkl. Analytics)</li><li>Google Analytics nur mit IP-Anonymisierung oder GA4 cookieless</li><li>Auftragsverarbeitungsvertrag (AVV) mit allen Dienstleistern</li><li>SSL/TLS-Verschlüsselung aktiv (HTTPS)</li><li>Kontaktformular: Datenschutzhinweis + Checkbox</li><li>Newsletter: Double-Opt-In-Verfahren dokumentiert</li><li>Löschkonzept definiert (wann werden welche Daten gelöscht?)</li><li>Betroffenenrechte kommuniziert (Auskunft, Löschung, Berichtigung)</li><li>Datenpannen-Meldeverfahren in 72 h dokumentiert</li><li>Verzeichnis der Verarbeitungstätigkeiten (VVT) geführt</li><li>Externe Fonts (Google Fonts) lokal gehostet</li><li>YouTube-Videos: nur mit erweitertem Datenschutz oder Consent</li><li>reCAPTCHA: Alternative mit weniger Tracking prüfen</li><li>Social-Media-Buttons: kein 1-Klick-Tracking (Shariff-Lösung)</li><li>Zahlungsdienstleister: AVV + Privacy-Policy-Verweis</li><li>Server-Standort in EU oder Angemessenheitsbeschluss</li><li>Mitarbeiterdaten: Einwilligungen und Löschfristen</li><li>Kundendaten: Aufbewahrungsfristen (§ 147 AO = 10 Jahre für Rechnungen)</li><li>App: Datenschutzerklärung im App-Store hinterlegt</li><li>App: Berechtigungen auf Minimum reduziert</li><li>Cookie-Laufzeiten geprüft (max. 1 Jahr für nicht-notwendige)</li><li>Datenschutz-Folgenabschätzung (DSFA) bei risikoreicher Verarbeitung</li></ol><p>Viel Erfolg! Dein kotsch.tech-Team</p>",
    ],

    'checkliste-it-sicherheit' => [
        'title'            => 'IT-Sicherheits-Checkliste für KMU',
        'description'      => '20 Sofortmaßnahmen für die IT-Sicherheit in kleinen Unternehmen.',
        'file'             => null,
        'delivery_subject' => 'Deine IT-Sicherheits-Checkliste von kotsch.tech',
        'delivery_body'    => "<p>Hallo,</p><p>hier ist deine <strong>IT-Sicherheits-Checkliste für KMU (20 Punkte)</strong>:</p><ol><li>Alle Passwörter min. 12 Zeichen, einmalig, Passwort-Manager nutzen</li><li>Zwei-Faktor-Authentifizierung für alle wichtigen Accounts aktiviert</li><li>Windows/macOS/Linux: automatische Updates aktiviert</li><li>Antivirensoftware auf allen Geräten installiert und aktuell</li><li>Firmen-WLAN: WPA3 oder WPA2, separates Gäste-WLAN</li><li>Datensicherung: 3-2-1-Regel (3 Kopien, 2 Medien, 1 extern)</li><li>Backup täglich getestet (Wiederherstellung wirklich möglich?)</li><li>VPN für Remote-Zugriff auf Firmennetzwerk</li><li>Benutzerrechte: minimale Rechte pro Person (Least Privilege)</li><li>Admin-Account nur für Admin-Aufgaben, nicht Alltag</li><li>E-Mail-Phishing-Schulung für alle Mitarbeiter (mindestens 1× jährlich)</li><li>Spam-Filter + E-Mail-Signaturprüfung (SPF/DKIM/DMARC) aktiv</li><li>Verschlüsselung: Festplattenverschlüsselung (BitLocker/FileVault) aktiv</li><li>Sensible Daten im E-Mail: Verschlüsselung oder alternatives Medium</li><li>Software-Inventar: welche Programme laufen wo?</li><li>Veraltete Software/Betriebssysteme identifizieren und ablösen</li><li>Zugriff ehemaliger Mitarbeiter sofort gesperrt</li><li>Notfallplan: Was tun bei Ransomware/Datenverlust?</li><li>Cloud-Dienste: Standort geprüft, AVV unterschrieben</li><li>Firewall aktiv (Router + ggf. Software-Firewall)</li></ol><p>Viel Erfolg! Dein kotsch.tech-Team</p>",
    ],

    // ── Finanzen / Gründungs-Magnets ─────────────────────────────────────────

    'checkliste-gruendung' => [
        'title'            => 'Gründungs-Checkliste: 30 Schritte',
        'description'      => 'Von der Idee zur eigenen Firma — 30 Schritte Schritt für Schritt.',
        'file'             => null,
        'delivery_subject' => 'Deine Gründungs-Checkliste von kotsch.tech',
        'delivery_body'    => "<p>Hallo,</p><p>hier ist deine <strong>Gründungs-Checkliste: 30 Schritte zur eigenen Firma</strong>:</p><p><strong>Vorbereitung (Schritte 1–10):</strong></p><ol><li>Geschäftsidee schriftlich festhalten + Alleinstellungsmerkmal definieren</li><li>Markt und Wettbewerb analysieren</li><li>Zielgruppe konkret beschreiben (Persona)</li><li>Businessplan erstellen (Existenzgründerberatung IHK nutzen)</li><li>Finanzplanung: Startkapital, monatliche Kosten, Umsatzziel</li><li>Rechtsform wählen (Einzelunternehmen, GbR, UG, GmbH)</li><li>Steuerberater konsultieren</li><li>Privathaftpflicht und Berufs-/Betriebshaftpflicht klären</li><li>Krankenversicherung als Selbstständiger regeln</li><li>Altersvorsorge planen</li></ol><p><strong>Gründung (Schritte 11–20):</strong></p><ol start=\"11\"><li>Gewerbeanmeldung beim Gewerbeamt (oder Freiberufler-Meldung beim Finanzamt)</li><li>Finanzamt: steuerliche Erfassungsbogen ausfüllen</li><li>USt-IdNr. beantragen (falls B2B oder EU)</li><li>Firmenkonto eröffnen (Geschäftskonto)</li><li>Buchhaltungs-Software einrichten</li><li>Impressum und Datenschutzerklärung für Website erstellen</li><li>AGB verfassen lassen</li><li>Rechnungsvorlage erstellen (Pflichtangaben!)</li><li>Freelancer-Profil/Website/LinkedIn einrichten</li><li>Erste Kunden/Aufträge akquirieren</li></ol><p><strong>Betrieb (Schritte 21–30):</strong></p><ol start=\"21\"><li>Erste Umsatzsteuervoranmeldung terminieren</li><li>Einkommensteuererklärung für das Gründungsjahr vorbereiten</li><li>Betriebsausgaben konsequent belegen und erfassen</li><li>Arbeitsverträge (falls Mitarbeiter) rechtssicher gestalten</li><li>Markenrecherche: Firmen-/Produktname nicht eingetragen?</li><li>Domain und Social-Media-Handle sichern</li><li>Netzwerk aufbauen (IHK, Branchenverbände, Co-Working)</li><li>Förderprogramme prüfen (BAFA, KfW, regionale Mittel)</li><li>Jahresabschluss/EÜR vorbereiten</li><li>Regelmäßige Liquiditätskontrolle einführen</li></ol><p>Viel Erfolg! Dein kotsch.tech-Team</p>",
    ],

    'checkliste-steuern' => [
        'title'            => 'Steuer-Checkliste für Selbstständige',
        'description'      => '25 Steuerpunkte die Selbstständige kennen müssen.',
        'file'             => null,
        'delivery_subject' => 'Deine Steuer-Checkliste von kotsch.tech',
        'delivery_body'    => "<p>Hallo,</p><p>hier ist deine <strong>Steuer-Checkliste für Selbstständige (25 Punkte)</strong>:</p><ol><li>Einkommensteuererklärung (Abgabefrist: 31. Juli des Folgejahres)</li><li>Umsatzsteuervoranmeldung (monatlich oder vierteljährlich)</li><li>Jährliche Umsatzsteuererklärung</li><li>Kleinunternehmerregelung: Grenze 25.000 € (2024) prüfen</li><li>Betriebsausgaben vollständig erfassen + Belege 10 Jahre aufbewahren</li><li>Home-Office-Pauschale: 6 €/Tag, max. 1.260 €/Jahr (oder anteilige Raumkosten)</li><li>Fahrtkosten: 0,30 €/km für Dienstreisen (oder tatsächliche Kosten)</li><li>Arbeitsmittel sofort abschreiben bis 800 € netto (GWG)</li><li>Laptop, Handy, Software: anteilig oder vollständig als Betriebsausgabe</li><li>Fachliteratur, Kurse, Weiterbildung: voll absetzbar</li><li>Gewerbesteuer: Freibetrag 24.500 € für Einzelunternehmer</li><li>Gewerbesteuer auf Einkommensteuer anrechnen (pauschal)</li><li>Kranken- und Pflegeversicherung als Sonderausgaben</li><li>Beiträge zur Altersvorsorge (Rürup, gesetzlich) absetzbar</li><li>Vorauszahlungen: Einkommensteuer + Gewerbesteuer quartalsweise</li><li>Verlustverrechnung: Verluste aus Vorjahren verrechnen</li><li>Bewirtungskosten: 70 % absetzbar, Bewirtungsbeleg ausfüllen</li><li>Geschenke an Kunden: max. 50 € netto/Person/Jahr absetzbar</li><li>Telefon/Internet: anteilig (geschäftlicher Anteil, mind. 50 %)</li><li>Reisekosten: Belege für Hotel, Bahn, Flug aufbewahren</li><li>Investitionsabzugsbetrag (IAB): bis 200.000 € für geplante Investitionen</li><li>Steuerberaterkosten: voll als Betriebsausgabe absetzbar</li><li>Reverse Charge: bei Rechnungen aus EU-Ausland selbst USt. abführen</li><li>E-Rechnungspflicht ab 2025: XRechnung oder ZUGFeRD beachten</li><li>Digitalsteuer: Plattformprovisionseinkünfte korrekt erfassen</li></ol><p>Viel Erfolg! Dein kotsch.tech-Team</p>",
    ],

    // ── Business / Vorlagen-Magnets ───────────────────────────────────────────

    'vorlage-rechnung' => [
        'title'            => 'Rechnungsvorlage (Word/Google Docs)',
        'description'      => 'DSGVO- und steuerrechtskonforme Rechnungsvorlage für Selbstständige.',
        'file'             => null,
        'delivery_subject' => 'Deine Rechnungsvorlage von kotsch.tech',
        'delivery_body'    => "<p>Hallo,</p><p>hier ist deine <strong>Rechnungsvorlage (als Text zum Kopieren)</strong>:</p><hr><p><strong>[DEIN FIRMENNAME]</strong><br>[Dein Name]<br>[Straße Hausnr.]<br>[PLZ Ort]<br>Telefon: [Nummer]<br>E-Mail: [E-Mail]<br>Steuernummer: [Steuernummer] oder USt-IdNr.: [DE...]</p><p style=\"text-align:right\"><strong>RECHNUNG</strong></p><p><strong>An:</strong><br>[Kundenname]<br>[Kundenstraße]<br>[Kunden-PLZ Ort]</p><p>Rechnungsnummer: [Jahr-Nummer, z.B. 2026-001]<br>Rechnungsdatum: [Datum]<br>Lieferdatum/Leistungszeitraum: [Datum oder Zeitraum]</p><table border=\"1\" style=\"width:100%;border-collapse:collapse\"><tr><th>Pos.</th><th>Beschreibung</th><th>Menge</th><th>Einheit</th><th>Einzelpreis (netto)</th><th>Gesamt (netto)</th></tr><tr><td>1</td><td>[Leistungsbeschreibung]</td><td>1</td><td>Pauschal</td><td>[Betrag] €</td><td>[Betrag] €</td></tr></table><p>Nettobetrag: [Betrag] €<br>Umsatzsteuer 19 %: [Betrag] €<br><strong>Rechnungsbetrag (brutto): [Betrag] €</strong></p><p>Zahlungsziel: [Datum oder 14 Tage nach Rechnungserhalt]<br>Bankverbindung: [Bank], IBAN: [IBAN], BIC: [BIC]</p><p><em>Hinweis für Kleinunternehmer: Gemäß § 19 UStG wird keine Umsatzsteuer ausgewiesen.</em></p><hr><p><strong>Pflichtangaben prüfen:</strong> ✓ Vollständiger Name/Firma Rechnungssteller ✓ Anschrift beider Parteien ✓ Steuernummer oder USt-IdNr. ✓ Rechnungsdatum ✓ Fortlaufende Rechnungsnummer ✓ Leistungsbeschreibung ✓ Leistungsdatum ✓ Nettobetrag + MwSt.-Satz + Bruttobetrag</p><p>Viel Erfolg! Dein kotsch.tech-Team</p>",
    ],

    'vorlage-angebot' => [
        'title'            => 'Angebotsvorlage professionell',
        'description'      => 'Professionelle Angebotsvorlage für Freelancer und Dienstleister.',
        'file'             => null,
        'delivery_subject' => 'Deine Angebotsvorlage von kotsch.tech',
        'delivery_body'    => "<p>Hallo,</p><p>hier ist deine <strong>professionelle Angebotsvorlage (als Text zum Kopieren)</strong>:</p><hr><p><strong>[DEIN FIRMENNAME]</strong><br>[Adresse] · [Telefon] · [E-Mail]</p><p style=\"text-align:right\"><strong>ANGEBOT</strong></p><p><strong>An:</strong><br>[Kundenname/-firma]<br>[Adresse]</p><p>Angebotsnummer: [Jahr-A-Nummer, z.B. 2026-A-001]<br>Datum: [Datum]<br>Gültig bis: [Datum, z.B. 30 Tage]<br>Betreff: [Kurzbezeichnung des Projekts]</p><p>Sehr geehrte/r [Ansprechpartner],</p><p>vielen Dank für Ihre Anfrage. Gerne unterbreite ich Ihnen folgendes Angebot:</p><table border=\"1\" style=\"width:100%;border-collapse:collapse\"><tr><th>Pos.</th><th>Leistungsbeschreibung</th><th>Preis (netto)</th></tr><tr><td>1</td><td>[Hauptleistung inkl. Umfang]</td><td>[Betrag] €</td></tr><tr><td>2</td><td>[Optionale Leistung]</td><td>[Betrag] €</td></tr></table><p>Nettosumme: [Betrag] €<br>Umsatzsteuer 19 %: [Betrag] €<br><strong>Angebotssumme (brutto): [Betrag] €</strong></p><p><strong>Leistungsumfang:</strong><br>- [Bullet 1]<br>- [Bullet 2]<br>- [Bullet 3]</p><p><strong>Nicht im Angebot enthalten:</strong><br>- [Ausschluss 1]</p><p><strong>Zeitplan:</strong> Beginn [Datum], Fertigstellung [Datum]</p><p>Bei Fragen stehe ich gerne zur Verfügung.<br>Mit freundlichen Grüßen,<br>[Dein Name]</p><hr><p><strong>Tipps:</strong> ✓ Klare Leistungsabgrenzung schützt vor Scope Creep ✓ Gültigkeitsdatum setzt sanften Druck ✓ Vor Projektstart unterschriebenes Angebot einholen</p><p>Viel Erfolg! Dein kotsch.tech-Team</p>",
    ],

    'vorlage-email-kunden' => [
        'title'            => '10 E-Mail-Vorlagen für Kundenkommunikation',
        'description'      => '10 fertige E-Mail-Vorlagen für häufige Kundensituationen.',
        'file'             => null,
        'delivery_subject' => 'Deine 10 E-Mail-Vorlagen von kotsch.tech',
        'delivery_body'    => "<p>Hallo,</p><p>hier sind deine <strong>10 E-Mail-Vorlagen für die Kundenkommunikation</strong>:</p><p><strong>1. Erstanfrage beantworten</strong><br>Betreff: Re: Ihre Anfrage — [Thema]<br>Text: Sehr geehrte/r [Name], vielen Dank für Ihre Anfrage. Ich freue mich über Ihr Interesse an [Leistung]. Gerne würde ich mehr über Ihr Projekt erfahren. Wann hätten Sie Zeit für ein kurzes Gespräch?</p><p><strong>2. Angebot versenden</strong><br>Betreff: Angebot [Nr.] — [Projektname]<br>Text: Im Anhang finden Sie mein Angebot für [Projektname]. Das Angebot ist gültig bis [Datum]. Für Rückfragen stehe ich jederzeit zur Verfügung.</p><p><strong>3. Projektstart bestätigen</strong><br>Betreff: Projektstart [Name] — nächste Schritte<br>Text: Ich freue mich, dass wir zusammenarbeiten! Ich beginne am [Datum] mit [erster Aufgabe]. Für einen reibungslosen Start brauche ich: [Liste benötigter Unterlagen].</p><p><strong>4. Status-Update</strong><br>Betreff: Update zu [Projektname] — Stand [Datum]<br>Text: Kurzes Update: [Was ist fertig]. Als nächstes folgt [nächster Schritt]. Geplante Fertigstellung: [Datum].</p><p><strong>5. Projekt fertiggestellt</strong><br>Betreff: [Projektname] fertiggestellt — Übergabe<br>Text: Ich freue mich, Ihnen mitteilen zu können, dass [Projektname] fertiggestellt ist. Im Anhang finden Sie [Lieferobjekte]. Bitte geben Sie mir innerhalb von [Zeitraum] Feedback.</p><p><strong>6. Rechnung stellen</strong><br>Betreff: Rechnung [Nr.] — [Projekt] — fällig [Datum]<br>Text: Im Anhang finden Sie meine Rechnung #[Nr.] über [Betrag] € für [Leistung]. Zahlungsziel: [Datum]. Vielen Dank für die angenehme Zusammenarbeit.</p><p><strong>7. Freundliche Zahlungserinnerung</strong><br>Betreff: Freundliche Erinnerung: Rechnung [Nr.] — fällig [Datum]<br>Text: Ich möchte Sie freundlich daran erinnern, dass Rechnung #[Nr.] am [Datum] fällig war. Bitte überweisen Sie den Betrag bis [neues Datum]. Falls Sie Fragen haben, melden Sie sich gerne.</p><p><strong>8. Feedback/Testimonial anfragen</strong><br>Betreff: Kurze Bitte um Feedback — [Projektname]<br>Text: Ich hoffe, Sie sind mit dem Ergebnis zufrieden. Ein kurzes Feedback oder eine Empfehlung würde mir sehr helfen. Wäre ein Google-Bewertung oder LinkedIn-Empfehlung für Sie möglich?</p><p><strong>9. Anfrage ablehnen</strong><br>Betreff: Re: Ihre Anfrage — [Thema]<br>Text: Vielen Dank für Ihr Interesse. Leider kann ich Ihr Projekt aktuell nicht übernehmen, da [Begründung]. Ich empfehle gerne [Alternative/Kollege].</p><p><strong>10. Kontakt nach längerer Pause</strong><br>Betreff: Hallo von [Name] — wie kann ich helfen?<br>Text: Ich hoffe, es geht Ihnen gut! Ich melde mich, weil ich an unsere Zusammenarbeit bei [Projekt] denken musste. Gibt es aktuell Projekte, bei denen ich unterstützen kann?</p><p>Viel Erfolg! Dein kotsch.tech-Team</p>",
    ],

    'vorlage-social-post' => [
        'title'            => '20 Social-Media-Post-Vorlagen',
        'description'      => '20 fertige Post-Vorlagen für LinkedIn, Instagram und andere Plattformen.',
        'file'             => null,
        'delivery_subject' => 'Deine 20 Social-Media-Vorlagen von kotsch.tech',
        'delivery_body'    => "<p>Hallo,</p><p>hier sind deine <strong>20 Social-Media-Post-Vorlagen</strong>:</p><p><strong>Engagement-Posts:</strong><br>1. \"[Polarisierende These]. Stimmt ihr zu? Kommentiert ✍️\"<br>2. \"Das war mein größter Fehler als [Rolle]: [Fehler]. Was habt ihr daraus gelernt?\"<br>3. \"Quick Poll: Was ist eure größte Herausforderung bei [Thema]? A) [Option] B) [Option] C) [Option]\"</p><p><strong>Wert-Posts:</strong><br>4. \"5 Dinge, die ich als [Rolle] in [Zeitraum] gelernt habe: 1. [Punkt] 2. [Punkt] ...\"<br>5. \"Tool-Tipp: Ich nutze [Tool] für [Aufgabe] und spare damit [Zeit/Geld]. Hier der Link: [Link]\"<br>6. \"Häufiger Fehler: [Fehler]. Die Lösung: [Lösung]. Spart euch den Stress 🙌\"</p><p><strong>Story-Posts:</strong><br>7. \"Vor [Zeitraum] war ich [Situation]. Heute [Ergebnis]. Hier ist, was sich verändert hat: [Geschichte]\"<br>8. \"Kunde kam zu mir mit [Problem]. Das Ergebnis nach [Zeitraum]: [Ergebnis]. Hier ist, was wir gemacht haben:\"<br>9. \"Ich war kurz davor aufzugeben. Dann ist das passiert: [Story]\"</p><p><strong>Angebot-Posts:</strong><br>10. \"Du kämpfst mit [Problem]? Ich helfe dir dabei. DM mir '🔑' für mehr Infos.\"<br>11. \"[Anzahl] Plätze frei für [Service] im [Monat]. Für wen ist das? [Zielgruppe]. Interesse? Kommentiere 👇\"<br>12. \"Case Study: Wie ich [Kunde] von [Problem] zu [Ergebnis] gebracht habe — in [Zeitraum].\"</p><p><strong>Educational-Posts:</strong><br>13. \"Der Unterschied zwischen [A] und [B], den kaum jemand erklärt: [Erklärung]\"<br>14. \"[Zahl] Tools, die ich täglich nutze: 1. [Tool] für [Zweck] 2. [Tool] für [Zweck] ...\"<br>15. \"How-to: [Thema] in [Zeitraum] steps: Schritt 1: [Beschreibung]...\"</p><p><strong>Persönliche Posts:</strong><br>16. \"Heute teile ich etwas Persönliches: [Story]. Was hat euch geholfen?\"<br>17. \"Mein [Wochentag]-Ritual: [Beschreibung]. Was sind eure Routinen?\"<br>18. \"Danke an [Person/Community] für [Was]. So etwas macht den Unterschied 🙏\"</p><p><strong>Saisonale/Aktuelle Posts:</strong><br>19. \"Was [aktuelles Event/Trend] für [Branche] bedeutet — meine Einschätzung:\"<br>20. \"Mein [Jahres-/Quartals-/Monats]-Rückblick: [Highlights]. Was nehmt ihr aus [Zeitraum] mit?\"</p><p>Viel Erfolg! Dein kotsch.tech-Team</p>",
    ],

];
```

- [ ] **Step 2: Verify**

Die Datei hat jetzt 12 Einträge. Prüfe:
```bash
php -r "require 'config/lead_magnets.php'; echo count(require 'config/lead_magnets.php');"
```
Expected: `12`

- [ ] **Step 3: Commit**

```bash
git add config/lead_magnets.php
git commit -m "feat(gratis): 10 neue Lead-Magnets (KI-Prompts, Checklisten, Vorlagen)"
```

---

## Task 2: LeadPageController — Hub-Erkennung

**Files:**
- Modify: `app/Http/Controllers/LeadPageController.php`

- [ ] **Step 1: Controller erweitern**

Ersetze den gesamten Inhalt:

```php
<?php
// app/Http/Controllers/LeadPageController.php
namespace App\Http\Controllers;

use App\Support\Leads\LeadGate;
use Illuminate\Http\Request;
use Illuminate\View\View;

class LeadPageController extends Controller
{
    private const HUBS = ['ki', 'business', 'it', 'finanzen'];

    public function __invoke(Request $request, string $slug): View
    {
        if (in_array($slug, self::HUBS, true)) {
            $pages = collect(config('lead_pages', []))
                ->filter(fn($p) => ($p['category'] ?? null) === $slug)
                ->all();
            return view('gratis.hub', compact('slug', 'pages'));
        }

        $page = config("lead_pages.{$slug}");
        abort_if(!$page, 404);

        $view = $page['view'] ?? 'gratis.show';
        return view($view, [
            'page'       => $page,
            'slug'       => $slug,
            'isUnlocked' => LeadGate::isUnlocked($request),
        ]);
    }
}
```

- [ ] **Step 2: Commit**

```bash
git add app/Http/Controllers/LeadPageController.php
git commit -m "feat(gratis): LeadPageController — Hub-Erkennung + gratis.show Fallback"
```

---

## Task 3: `resources/views/gratis/show.blade.php` (universelles Template)

**Files:**
- Create: `resources/views/gratis/show.blade.php`

- [ ] **Step 1: Template erstellen**

```blade
{{-- resources/views/gratis/show.blade.php --}}
@extends('layouts.app')
@section('title', $page['title'])
@section('meta_description', $page['meta_description'])

@php
$hubLabels = ['ki' => 'KI & ChatGPT', 'business' => 'Business & Marketing', 'it' => 'IT & How-to', 'finanzen' => 'Selbstständigkeit & Finanzen'];
$hubLabel  = $hubLabels[$page['category'] ?? ''] ?? ucfirst($page['category'] ?? '');
$category  = $page['category'] ?? 'ki';
@endphp

@push('head')
<script type="application/ld+json">
{
  "@@context": "https://schema.org",
  "@@type": "WebPage",
  "name": {{ Js::from($page['h1']) }},
  "description": {{ Js::from($page['meta_description']) }},
  "isAccessibleForFree": false,
  "hasPart": [{"@@type": "WebPageElement","isAccessibleForFree": false,"cssSelector": ".gated-content"}]
}
</script>
@if(!empty($page['faq']))
<script type="application/ld+json">
{
  "@@context": "https://schema.org",
  "@@type": "FAQPage",
  "mainEntity": [
    @foreach($page['faq'] as $faqItem)
    {
      "@@type": "Question",
      "name": {{ Js::from($faqItem[0]) }},
      "acceptedAnswer": {"@@type": "Answer","text": {{ Js::from($faqItem[1]) }}}
    }{{ !$loop->last ? ',' : '' }}
    @endforeach
  ]
}
</script>
@endif
<script type="application/ld+json">
{
  "@@context": "https://schema.org",
  "@@type": "BreadcrumbList",
  "itemListElement": [
    {"@@type": "ListItem","position": 1,"name": "kotsch.tech","item": {{ Js::from(url('/')) }}},
    {"@@type": "ListItem","position": 2,"name": {{ Js::from($hubLabel) }},"item": {{ Js::from(url('/gratis/' . $category)) }}},
    {"@@type": "ListItem","position": 3,"name": {{ Js::from($page['h1']) }},"item": {{ Js::from(url('/gratis/' . $slug)) }}}
  ]
}
</script>
@endpush

@section('content')
<div style="max-width:760px;margin:0 auto;padding:60px 20px 80px;">

  {{-- Breadcrumb --}}
  <nav style="font-size:.875rem;color:#64748b;margin-bottom:28px;">
    <a href="/" style="color:#64748b;text-decoration:none;">kotsch.tech</a>
    <span style="margin:0 6px;">›</span>
    <a href="/gratis/{{ $category }}" style="color:#64748b;text-decoration:none;">{{ $hubLabel }}</a>
    <span style="margin:0 6px;">›</span>
    <span style="color:#1e293b;">{{ $page['h1'] }}</span>
  </nav>

  {{-- Headline --}}
  <h1 style="font-size:2.4rem;font-weight:800;letter-spacing:-.03em;line-height:1.2;margin-bottom:16px;">
    {{ $page['h1'] }}
  </h1>

  {{-- Intro --}}
  <p style="font-size:1.15rem;color:#475569;margin-bottom:32px;line-height:1.7;">
    {{ $page['intro'] }}
  </p>

  {{-- Teaser-Punkte (immer sichtbar, Google indexiert das) --}}
  @if(!empty($page['teaser_points']))
  <div style="background:#f0fdf4;border-radius:14px;padding:24px 28px;margin-bottom:32px;">
    <h2 style="font-size:1.1rem;font-weight:700;margin:0 0 14px;color:#166534;">Was du bekommst:</h2>
    <ul style="list-style:none;padding:0;margin:0;">
      @foreach($page['teaser_points'] as $point)
      <li style="display:flex;align-items:baseline;gap:10px;margin-bottom:8px;color:#15803d;font-weight:500;">
        <span style="color:#16a34a;font-weight:800;font-size:1rem;">✓</span>
        <span style="color:#1e293b;font-weight:400;">{{ $point }}</span>
      </li>
      @endforeach
    </ul>
  </div>
  @endif

  {{-- Content-Gate --}}
  <x-content-gate
      source="{{ $page['source'] }}"
      incentive="{{ $page['magnet'] }}"
      headline="Jetzt kostenlos freischalten"
      subline="E-Mail eingeben — sofort per Mail erhalten.">

    {{-- Teaser-Slot: erste 2 Items der ersten Sektion, verschwommen --}}
    <x-slot name="teaser">
      @if(!empty($page['gated_content'][0]['items']))
      <div style="padding:20px;background:#f8fafc;border-radius:12px;margin-bottom:8px;opacity:.45;filter:blur(2px);pointer-events:none;user-select:none;overflow:hidden;">
        <p style="font-weight:700;margin:0 0 8px;font-size:.95rem;color:#1e293b;">{{ $page['gated_content'][0]['heading'] ?? '' }}</p>
        <ul style="margin:0;padding-left:20px;color:#475569;font-size:.9rem;">
          @foreach(array_slice($page['gated_content'][0]['items'], 0, 2) as $previewItem)
          <li style="margin-bottom:6px;">{{ $previewItem }}</li>
          @endforeach
          <li>…</li>
        </ul>
      </div>
      @endif
    </x-slot>

    {{-- Gated-Slot: vollständiger Inhalt --}}
    <x-slot name="gated">
      <div class="gated-content">
        @foreach($page['gated_content'] as $section)
        <div style="background:#f0f9ff;border-radius:18px;padding:28px;margin-bottom:20px;">
          <h3 style="font-size:1.05rem;font-weight:700;margin:0 0 16px;color:#1e3a5f;">
            {{ $section['heading'] }}
          </h3>
          <ul style="line-height:1.9;color:#1e3a5f;padding-left:20px;margin:0;">
            @foreach($section['items'] as $item)
            <li style="margin-bottom:4px;">{{ $item }}</li>
            @endforeach
          </ul>
        </div>
        @endforeach
      </div>
    </x-slot>
  </x-content-gate>

  {{-- FAQ (immer sichtbar, FAQPage-Schema) --}}
  @if(!empty($page['faq']))
  <div style="margin-top:56px;">
    <h2 style="font-size:1.4rem;font-weight:700;margin:0 0 24px;color:#1e293b;">Häufige Fragen</h2>
    @foreach($page['faq'] as $faqItem)
    <div style="border-top:1px solid #e2e8f0;padding:20px 0;">
      <p style="font-weight:700;color:#1e293b;margin:0 0 8px;font-size:1rem;">{{ $faqItem[0] }}</p>
      <p style="color:#475569;margin:0;line-height:1.6;">{{ $faqItem[1] }}</p>
    </div>
    @endforeach
  </div>
  @endif

  {{-- Verwandte Seiten --}}
  @if(!empty($page['related']))
  @php
    $relatedPages = collect($page['related'])
        ->map(fn($s) => ['slug' => $s, 'data' => config("lead_pages.{$s}")])
        ->filter(fn($r) => $r['data'] !== null)
        ->values();
  @endphp
  @if($relatedPages->count() > 0)
  <div style="margin-top:56px;">
    <h3 style="font-size:1.1rem;font-weight:700;margin:0 0 20px;color:#1e293b;">Das könnte dich auch interessieren</h3>
    <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;">
      @foreach($relatedPages as $rel)
      <a href="/gratis/{{ $rel['slug'] }}" style="display:flex;flex-direction:column;padding:20px;background:#f8fafc;border-radius:14px;text-decoration:none;border:1px solid #e2e8f0;">
        <p style="font-weight:600;color:#1e293b;margin:0 0 8px;font-size:.9rem;line-height:1.4;">{{ $rel['data']['h1'] ?? $rel['data']['title'] }}</p>
        <p style="color:#3b82f6;font-size:.8rem;font-weight:600;margin:auto 0 0;">Kostenlos freischalten →</p>
      </a>
      @endforeach
    </div>
  </div>
  @endif
  @endif

</div>
@endsection
```

- [ ] **Step 2: Commit**

```bash
git add resources/views/gratis/show.blade.php
git commit -m "feat(gratis): universelles show.blade.php Template (FAQPage + BreadcrumbList + Paywall-Schema)"
```

---

## Task 4: `resources/views/gratis/hub.blade.php` (Kategorie-Hub-Seite)

**Files:**
- Create: `resources/views/gratis/hub.blade.php`

- [ ] **Step 1: Hub-Template erstellen**

```blade
{{-- resources/views/gratis/hub.blade.php --}}
@extends('layouts.app')

@php
$hubMeta = [
    'ki'       => [
        'label' => 'KI & ChatGPT',
        'title' => 'Kostenlose KI & ChatGPT Ressourcen — kotsch.tech',
        'desc'  => 'Prompts, Anleitungen und Checklisten für ChatGPT, Gemini und andere KI-Tools — alles kostenlos als E-Mail-Download.',
        'intro' => 'Ob du ChatGPT noch nie benutzt hast oder schon täglich einsetzt — hier findest du die besten Prompts, Anleitungen und Tool-Tipps, um mehr aus KI herauszuholen.',
    ],
    'business' => [
        'label' => 'Business & Marketing',
        'title' => 'Kostenlose Business & Marketing Ressourcen — kotsch.tech',
        'desc'  => 'Vorlagen, Checklisten und Guides für Marketing, SEO und Kundenkommunikation — kostenlos als E-Mail-Download.',
        'intro' => 'Von der professionellen Rechnung über SEO-Texte bis zum Content-Kalender — hier findest du fertige Vorlagen und Anleitungen für deinen Business-Alltag.',
    ],
    'it'       => [
        'label' => 'IT & How-to',
        'title' => 'Kostenlose IT-Anleitungen & How-to Guides — kotsch.tech',
        'desc'  => 'Schritt-für-Schritt-Anleitungen für IT-Sicherheit, Windows, DSGVO und digitale Tools — kostenlos als E-Mail-Download.',
        'intro' => 'Ob DSGVO-Compliance, IT-Sicherheit oder praktische Tool-Anleitungen — hier bekommst du konkrete Schritt-für-Schritt-Guides ohne Fachwissen-Voraussetzung.',
    ],
    'finanzen' => [
        'label' => 'Selbstständigkeit & Finanzen',
        'title' => 'Kostenlose Ressourcen für Selbstständige & Finanzen — kotsch.tech',
        'desc'  => 'Checklisten, Vorlagen und Guides für Steuern, Gründung und Freelancer-Alltag — kostenlos als E-Mail-Download.',
        'intro' => 'Steuern, Gründung, Liquiditätsplanung — der Selbstständigen-Alltag steckt voller Formalitäten. Hier findest du fertige Checklisten und Vorlagen, die dir Stunden ersparen.',
    ],
];
$meta = $hubMeta[$slug] ?? ['label' => ucfirst($slug), 'title' => ucfirst($slug), 'desc' => '', 'intro' => ''];
@endphp

@section('title', $meta['title'])
@section('meta_description', $meta['desc'])

@push('head')
<script type="application/ld+json">
{
  "@@context": "https://schema.org",
  "@@type": "BreadcrumbList",
  "itemListElement": [
    {"@@type": "ListItem","position": 1,"name": "kotsch.tech","item": {{ Js::from(url('/')) }}},
    {"@@type": "ListItem","position": 2,"name": {{ Js::from($meta['label']) }},"item": {{ Js::from(url('/gratis/' . $slug)) }}}
  ]
}
</script>
@endpush

@section('content')
<div style="max-width:960px;margin:0 auto;padding:60px 20px 80px;">

  <nav style="font-size:.875rem;color:#64748b;margin-bottom:28px;">
    <a href="/" style="color:#64748b;text-decoration:none;">kotsch.tech</a>
    <span style="margin:0 6px;">›</span>
    <span style="color:#1e293b;">{{ $meta['label'] }}</span>
  </nav>

  <h1 style="font-size:2.6rem;font-weight:800;letter-spacing:-.03em;line-height:1.2;margin-bottom:16px;">
    Kostenlose {{ $meta['label'] }}-Ressourcen
  </h1>

  <p style="font-size:1.15rem;color:#475569;margin-bottom:52px;line-height:1.7;max-width:680px;">
    {{ $meta['intro'] }}
  </p>

  @if(count($pages) === 0)
  <p style="color:#64748b;">Bald verfügbar — schau bald wieder vorbei!</p>
  @else
  <div style="display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;">
    @foreach($pages as $pageSlug => $page)
    <a href="/gratis/{{ $pageSlug }}"
       style="display:flex;flex-direction:column;padding:24px;background:#f8fafc;border-radius:16px;text-decoration:none;border:1px solid #e2e8f0;min-height:160px;transition:border-color .15s,box-shadow .15s;"
       onmouseover="this.style.borderColor='#3b82f6';this.style.boxShadow='0 4px 16px rgba(59,130,246,.12)'"
       onmouseout="this.style.borderColor='#e2e8f0';this.style.boxShadow='none'">
      <p style="font-weight:700;color:#1e293b;margin:0 0 10px;font-size:1rem;line-height:1.4;">
        {{ $page['h1'] ?? $page['title'] }}
      </p>
      @if(!empty($page['teaser_points'][0]))
      <p style="color:#64748b;font-size:.875rem;margin:0 0 auto;line-height:1.5;">
        {{ $page['teaser_points'][0] }}
      </p>
      @endif
      <p style="color:#3b82f6;font-size:.875rem;font-weight:600;margin:16px 0 0;">
        Kostenlos freischalten →
      </p>
    </a>
    @endforeach
  </div>
  @endif

</div>
@endsection
```

- [ ] **Step 2: Commit**

```bash
git add resources/views/gratis/hub.blade.php
git commit -m "feat(gratis): Hub-Template (Kategorie-Übersicht mit Card-Grid)"
```

---

## Task 5: Feature-Tests (`tests/Feature/Leads/LeadPageTest.php`)

**Files:**
- Create: `tests/Feature/Leads/LeadPageTest.php`

- [ ] **Step 1: Testdatei schreiben**

```php
<?php
// tests/Feature/Leads/LeadPageTest.php
namespace Tests\Feature\Leads;

use App\Models\Lead;
use App\Support\Leads\LeadGate;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;

class LeadPageTest extends TestCase
{
    use RefreshDatabase;

    // ── Hub-Seiten ────────────────────────────────────────────────────────────

    public function test_hub_ki_returns_200(): void
    {
        $this->get('/gratis/ki')->assertOk()->assertSee('KI');
    }

    public function test_hub_business_returns_200(): void
    {
        $this->get('/gratis/business')->assertOk()->assertSee('Business');
    }

    public function test_hub_it_returns_200(): void
    {
        $this->get('/gratis/it')->assertOk()->assertSee('IT');
    }

    public function test_hub_finanzen_returns_200(): void
    {
        $this->get('/gratis/finanzen')->assertOk()->assertSee('Finanzen');
    }

    public function test_hub_does_not_show_faq_schema(): void
    {
        $content = $this->get('/gratis/ki')->getContent();
        $this->assertStringNotContainsString('FAQPage', $content);
    }

    public function test_hub_shows_breadcrumb_schema(): void
    {
        $this->get('/gratis/ki')
            ->assertOk()
            ->assertSee('BreadcrumbList', false);
    }

    // ── Spoke-Seiten (benötigen Config-Einträge aus Tasks 6-9) ───────────────

    public function test_spoke_page_renders_with_show_template(): void
    {
        $this->get('/gratis/chatgpt-prompts-buchhaltung')
            ->assertOk()
            ->assertSee('ChatGPT')
            ->assertSee('Häufige Fragen');
    }

    public function test_spoke_page_contains_faq_schema(): void
    {
        $content = $this->get('/gratis/chatgpt-prompts-buchhaltung')->getContent();
        $this->assertStringContainsString('FAQPage', $content);
        $this->assertStringContainsString('BreadcrumbList', $content);
        $this->assertStringContainsString('isAccessibleForFree', $content);
    }

    public function test_spoke_page_returns_404_for_unknown_slug(): void
    {
        $this->get('/gratis/existiert-nicht-xyz')->assertNotFound();
    }

    public function test_spoke_page_shows_related_links(): void
    {
        $this->get('/gratis/chatgpt-prompts-buchhaltung')
            ->assertOk()
            ->assertSee('Das könnte dich auch interessieren');
    }

    public function test_spoke_page_unlocks_with_valid_cookie(): void
    {
        $lead = Lead::create([
            'email'             => 'test-spoke@example.com',
            'status'            => 'confirmed',
            'unsubscribe_token' => bin2hex(random_bytes(32)),
            'consent_version'   => '2026-07',
            'consent_text'      => 'Test',
        ]);

        $this->withCookie(config('leads.cookie_name', 'kt_sub'), LeadGate::cookieValue($lead->id))
            ->get('/gratis/chatgpt-prompts-buchhaltung')
            ->assertOk()
            ->assertDontSee('lead/subscribe');
    }

    public function test_existing_page_with_own_view_still_works(): void
    {
        // seo-checkliste-2026 has 'view' => 'gratis.seo-checkliste-2026' (Phase 1)
        $this->get('/gratis/seo-checkliste-2026')
            ->assertOk()
            ->assertSee('SEO-Checkliste');
    }
}
```

- [ ] **Step 2: Tests ausführen (Hub-Tests sollten jetzt PASS, Spoke-Tests FAIL)**

```bash
composer test -- --filter=LeadPageTest
```

Expected: 6 tests pass (Hub-Tests), ~5 tests fail mit "404 | Not Found" (Spoke-Tests — warten auf Config-Daten aus Tasks 6-9). Die bestehenden `LeadGateTest`-Tests müssen weiter grün bleiben.

- [ ] **Step 3: Commit**

```bash
git add tests/Feature/Leads/LeadPageTest.php
git commit -m "test(gratis): LeadPageTest — Hub + Spoke + FAQSchema + BreadcrumbList (9 Tests)"
```

---

## Task 6: Config — KI & ChatGPT (25 Seiten)

**Files:**
- Modify: `config/lead_pages.php`

- [ ] **Step 1: Die 25 KI-Einträge zu `config/lead_pages.php` hinzufügen**

Lies die Datei, füge folgenden Block **vor der letzten `];`** ein. Jeder Eintrag folgt exakt diesem Schema:

```php
'slug' => [
    'category'         => 'ki',                // ki | business | it | finanzen
    'title'            => '... — kotsch.tech', // max. 60 Zeichen inkl. Branding
    'h1'               => '...',               // max. 65 Zeichen
    'meta_description' => '...',               // 145-160 Zeichen
    'intro'            => '...',               // 2-3 Sätze, enthält Keyword
    'teaser_points'    => [                    // genau 3 Punkte, konkret + nutzenorientiert
        '...',
        '...',
        '...',
    ],
    'gated_content'    => [
        [
            'heading' => '...',                // Sektionstitel
            'items'   => [                     // min. 5 Items, vollständig umsetzbar
                '...',
                '...',
                '...',
                '...',
                '...',
            ],
        ],
        [
            'heading' => '...',
            'items'   => ['...', '...', '...', '...', '...'],
        ],
    ],
    'faq'              => [                    // 3-5 Paare [Frage, Antwort]
        ['...?', '...'],
        ['...?', '...'],
        ['...?', '...'],
    ],
    'magnet'           => '...',              // Slug aus config/lead_magnets.php
    'source'           => 'landing:...',      // = 'landing:' + page-slug
    'related'          => ['...', '...', '...'], // 3 Slugs aus derselben Datei
    'locale'           => 'de',
],
```

**Magnet-Zuordnung für KI-Seiten:**
- Seiten zu Prompts → `'ki-prompts-buchhaltung'`, `'ki-prompts-marketing'`, `'ki-prompts-hr'`, `'ki-prompts-kundenservice'` (je nach Thema)
- Seiten zu Tools/Allgemein → `'ki-prompt-starter'`

**Alle 25 Slugs mit H1 und Magnet:**

| Slug | H1 | Magnet |
|---|---|---|
| `chatgpt-prompts-buchhaltung` | 20 ChatGPT-Prompts für deine Buchhaltung | ki-prompts-buchhaltung |
| `chatgpt-prompts-marketing` | 25 ChatGPT-Prompts für Marketing & Werbung | ki-prompts-marketing |
| `chatgpt-prompts-kundenservice` | 20 ChatGPT-Prompts für besseren Kundenservice | ki-prompts-kundenservice |
| `chatgpt-prompts-hr` | 15 ChatGPT-Prompts für HR & Recruiting | ki-prompts-hr |
| `chatgpt-prompts-social-media` | 30 ChatGPT-Prompts für Social Media | ki-prompts-marketing |
| `chatgpt-prompts-e-commerce` | 20 ChatGPT-Prompts für deinen Online-Shop | ki-prompts-marketing |
| `chatgpt-prompts-projektmanagement` | 15 ChatGPT-Prompts für Projektmanagement | ki-prompts-buchhaltung |
| `chatgpt-prompts-copywriting` | 25 ChatGPT-Prompts für bessere Texte | ki-prompts-marketing |
| `ki-tools-selbststaendige` | Die 10 besten KI-Tools für Selbstständige 2026 | ki-prompt-starter |
| `ki-tools-marketing` | KI-Tools für Marketing 2026 — der Überblick | ki-prompts-marketing |
| `ki-tools-buchhaltung` | KI in der Buchhaltung: Was geht 2026? | ki-prompts-buchhaltung |
| `ki-bilder-erstellen` | KI-Bilder erstellen: Anleitung + die besten Prompts | ki-prompt-starter |
| `ki-texte-schreiben` | Mit KI Texte schreiben: Anleitung für bessere Ergebnisse | ki-prompt-starter |
| `was-ist-chatgpt` | Was ist ChatGPT? Einfach erklärt für Einsteiger | ki-prompt-starter |
| `was-ist-ki` | Was ist Künstliche Intelligenz? Verständlich erklärt | ki-prompt-starter |
| `was-ist-prompt-engineering` | Prompt Engineering einfach erklärt: Was ist das? | ki-prompt-starter |
| `gemini-vs-chatgpt` | Gemini vs. ChatGPT: Der große Vergleich 2026 | ki-prompt-starter |
| `chatgpt-fuer-einsteiger` | ChatGPT für Einsteiger: Schritt-für-Schritt-Anleitung | ki-prompt-starter |
| `ki-datenschutz` | KI & Datenschutz: Was du 2026 wissen musst | ki-prompt-starter |
| `chatgpt-fehler-vermeiden` | 10 ChatGPT-Fehler die Anfänger machen (und wie du sie vermeidest) | ki-prompt-starter |
| `ki-im-alltag` | KI im Alltag: 15 praktische Anwendungen 2026 | ki-prompt-starter |
| `chatgpt-business-tipps` | ChatGPT für dein Business: 20 konkrete Tipps | ki-prompts-marketing |
| `automatisierung-mit-ki` | Automatisierung mit KI: Der Einstieg für Selbstständige | ki-prompt-starter |
| `ki-content-erstellen` | Content mit KI erstellen: Der vollständige Leitfaden | ki-prompts-marketing |
| `no-code-ki-tools` | No-Code KI-Tools für Selbstständige — kostenlos starten | ki-prompt-starter |

**Related-Links (Empfehlungen):**
- Jede Seite linkt auf 3 thematisch verwandte Seiten aus dieser Liste.
- Beispiel: `chatgpt-prompts-buchhaltung` → `['chatgpt-prompts-marketing', 'ki-tools-buchhaltung', 'ki-tools-selbststaendige']`

**Qualitätsanforderungen pro Seite:**
- `intro`: Enthält das Haupt-Keyword, erklärt den konkreten Nutzen, 2-3 Sätze
- `teaser_points`: Alle 3 Punkte konkret und spezifisch (nicht "viele Tipps" sondern "20 fertige Prompt-Vorlagen zum Kopieren")
- `gated_content`: Min. 2 Sektionen, jede min. 5 Items. Vollständig umsetzbare Prompts/Tipps/Schritte (keine vagen Bullet-Points)
- `faq`: Min. 3 Fragen. Erste Frage enthält oft das Haupt-Keyword. Antworten 1-3 Sätze.
- Kein Seiten-Content darf identisch mit einer anderen Seite sein (unique per page!)

- [ ] **Step 2: Syntax prüfen**

```bash
php -r "require 'config/lead_pages.php'; echo 'OK: ' . count(require 'config/lead_pages.php') . ' Seiten';"
```

Expected: `OK: 27 Seiten` (2 bestehende + 25 neue)

- [ ] **Step 3: Smoke-Test (eine KI-Seite aufrufen)**

```bash
php artisan config:clear
```

Dann im Browser oder mit curl: `http://localhost/gratis/chatgpt-prompts-buchhaltung` — 200, H1 sichtbar, FAQ vorhanden.

- [ ] **Step 4: Commit**

```bash
git add config/lead_pages.php
git commit -m "feat(gratis): Config-Block KI & ChatGPT — 25 Seiten"
```

---

## Task 7: Config — Business & Marketing (25 Seiten)

**Files:**
- Modify: `config/lead_pages.php`

- [ ] **Step 1: Die 25 Business-Einträge anhängen**

Gleiche Schema-Regeln wie Task 6, `'category' => 'business'`.

**Magnet-Zuordnung Business:**
- Vorlagen-Seiten → `'vorlage-rechnung'`, `'vorlage-angebot'`, `'vorlage-email-kunden'`, `'vorlage-social-post'` (je nach Thema)
- SEO/Marketing/General → `'seo-checkliste-2026'`

**Alle 25 Slugs mit H1 und Magnet:**

| Slug | H1 | Magnet |
|---|---|---|
| `rechnung-vorlage-kostenlos` | Rechnungsvorlage kostenlos (Word / Google Docs) | vorlage-rechnung |
| `angebot-vorlage-kostenlos` | Angebotsvorlage kostenlos — professionell & rechtssicher | vorlage-angebot |
| `email-vorlage-kundenanfrage` | E-Mail-Vorlagen für Kundenanfragen — 10 Vorlagen | vorlage-email-kunden |
| `social-media-checkliste` | Social-Media-Checkliste 2026 — 20 Punkte | vorlage-social-post |
| `marketing-plan-vorlage` | Marketingplan-Vorlage kostenlos — Schritt für Schritt | seo-checkliste-2026 |
| `content-kalender-vorlage` | Content-Kalender Vorlage (Excel / Google Sheets) | vorlage-social-post |
| `newsletter-betreffzeilen` | 50 Newsletter-Betreffzeilen die wirklich geöffnet werden | vorlage-email-kunden |
| `landingpage-checkliste` | Landingpage-Checkliste: 20 Punkte für mehr Conversions | seo-checkliste-2026 |
| `google-ads-checkliste` | Google Ads Checkliste für Einsteiger — Schritt für Schritt | seo-checkliste-2026 |
| `seo-texte-schreiben` | SEO-Texte schreiben: Die Anleitung für 2026 | seo-checkliste-2026 |
| `keyword-recherche-anleitung` | Keyword-Recherche Schritt für Schritt — kostenlos | seo-checkliste-2026 |
| `backlinks-aufbauen` | Backlinks aufbauen: 10 Strategien die 2026 noch funktionieren | seo-checkliste-2026 |
| `google-my-business-optimieren` | Google My Business optimieren — die komplette Anleitung | seo-checkliste-2026 |
| `kundenbewertungen-anfragen` | Kundenbewertungen anfragen: Vorlagen + Tipps | vorlage-email-kunden |
| `produktbeschreibung-schreiben` | Produktbeschreibungen schreiben die verkaufen — Anleitung | vorlage-angebot |
| `pitch-vorlage-investoren` | Pitch-Vorlage für Investoren — kostenlos | vorlage-angebot |
| `pressetext-vorlage` | Pressetext schreiben: Vorlage + Beispiel | vorlage-angebot |
| `corporate-design-checkliste` | Corporate Design Checkliste — 15 Punkte | seo-checkliste-2026 |
| `markenstrategie-vorlage` | Markenstrategie entwickeln: Vorlage & Anleitung | vorlage-angebot |
| `zielgruppe-definieren` | Zielgruppe definieren: Vorlage + Anleitung | vorlage-angebot |
| `usp-formulieren` | USP formulieren: So hebst du dich vom Wettbewerb ab | seo-checkliste-2026 |
| `wettbewerbsanalyse-vorlage` | Wettbewerbsanalyse Vorlage kostenlos — Schritt für Schritt | vorlage-angebot |
| `kunden-persona-vorlage` | Kunden-Persona erstellen: Vorlage + Beispiel | vorlage-angebot |
| `webinar-checkliste` | Webinar-Checkliste: Vor, Während & Nach dem Webinar | seo-checkliste-2026 |
| `viral-marketing-tipps` | Viral Marketing: 15 Strategien die 2026 noch funktionieren | vorlage-social-post |

- [ ] **Step 2: Syntax prüfen**

```bash
php -r "require 'config/lead_pages.php'; echo 'OK: ' . count(require 'config/lead_pages.php') . ' Seiten';"
```

Expected: `OK: 52 Seiten`

- [ ] **Step 3: Commit**

```bash
git add config/lead_pages.php
git commit -m "feat(gratis): Config-Block Business & Marketing — 25 Seiten"
```

---

## Task 8: Config — IT & How-to (25 Seiten)

**Files:**
- Modify: `config/lead_pages.php`

- [ ] **Step 1: Die 25 IT-Einträge anhängen**

Gleiche Schema-Regeln, `'category' => 'it'`.

**Magnet-Zuordnung IT:**
- DSGVO → `'checkliste-dsgvo'`
- IT-Sicherheit → `'checkliste-it-sicherheit'`
- Tools/How-to → `'ki-prompt-starter'` oder `'seo-checkliste-2026'`

**Alle 25 Slugs mit H1 und Magnet:**

| Slug | H1 | Magnet |
|---|---|---|
| `windows-11-tipps` | Windows 11 Tipps: 20 versteckte Features die du kennen solltest | checkliste-it-sicherheit |
| `passwoerter-sicher-verwalten` | Passwörter sicher verwalten: Die komplette Anleitung 2026 | checkliste-it-sicherheit |
| `it-sicherheit-checkliste-kmu` | IT-Sicherheits-Checkliste für kleine Unternehmen — 20 Punkte | checkliste-it-sicherheit |
| `dsgvo-checkliste-website` | DSGVO-Checkliste für Websites 2026 — 25 Pflichtpunkte | checkliste-dsgvo |
| `home-office-sicherheit` | Home-Office IT-Sicherheit: 15 Maßnahmen die du heute umsetzen kannst | checkliste-it-sicherheit |
| `cloud-backup-anleitung` | Cloud-Backup einrichten: Schritt-für-Schritt-Anleitung | checkliste-it-sicherheit |
| `vpn-erklaert` | VPN einfach erklärt: Was ist das & brauche ich es? | checkliste-it-sicherheit |
| `phishing-erkennen` | Phishing-Mails erkennen: Checkliste + Beispiele | checkliste-it-sicherheit |
| `laptop-beschleunigen-windows` | Windows-Laptop beschleunigen: 10 sofort wirkende Tipps | checkliste-it-sicherheit |
| `excel-tipps-selbststaendige` | Excel-Tipps für Selbstständige: 15 Zeitsparer | ki-prompt-starter |
| `google-workspace-tipps` | Google Workspace Tipps: 15 Shortcuts die Zeit sparen | ki-prompt-starter |
| `outlook-tipps` | Outlook-Tipps: E-Mails effizienter verwalten — 12 Tricks | ki-prompt-starter |
| `notion-fuer-einsteiger` | Notion für Einsteiger: Schritt-für-Schritt-Einstieg | ki-prompt-starter |
| `trello-anleitung` | Trello Anleitung: Projekte organisieren — Schritt für Schritt | ki-prompt-starter |
| `zoom-tipps` | Zoom-Tipps: Professionelle Video-Calls — 10 Einstellungen | ki-prompt-starter |
| `website-erstellen-anleitung` | Website erstellen 2026: Die komplette Schritt-für-Schritt-Anleitung | seo-checkliste-2026 |
| `wordpress-einrichten` | WordPress einrichten: Anleitung für absolute Anfänger | seo-checkliste-2026 |
| `ssl-zertifikat-erklaert` | SSL-Zertifikat einfach erklärt: Was ist das & wie bekommst du es? | checkliste-dsgvo |
| `google-analytics-einrichten` | Google Analytics 4 einrichten: Die aktuelle Anleitung | seo-checkliste-2026 |
| `zwei-faktor-authentifizierung` | Zwei-Faktor-Authentifizierung einrichten: Schritt für Schritt | checkliste-it-sicherheit |
| `datensicherung-anleitung` | Datensicherung 2026: So schützt du deine wichtigsten Daten | checkliste-it-sicherheit |
| `netzwerk-sicherheit-tipps` | Heimnetzwerk sichern: 10 Maßnahmen für mehr Sicherheit | checkliste-it-sicherheit |
| `ki-chatbot-website-einbinden` | KI-Chatbot auf Website einbinden: Anleitung & Tool-Vergleich | ki-prompt-starter |
| `pdf-erstellen-kostenlos` | PDF erstellen kostenlos: 5 Wege im Vergleich | ki-prompt-starter |
| `qr-code-erstellen` | QR-Code erstellen kostenlos: Die komplette Anleitung | ki-prompt-starter |

- [ ] **Step 2: Syntax prüfen**

```bash
php -r "require 'config/lead_pages.php'; echo 'OK: ' . count(require 'config/lead_pages.php') . ' Seiten';"
```

Expected: `OK: 77 Seiten`

- [ ] **Step 3: Commit**

```bash
git add config/lead_pages.php
git commit -m "feat(gratis): Config-Block IT & How-to — 25 Seiten"
```

---

## Task 9: Config — Selbstständigkeit & Finanzen (25 Seiten)

**Files:**
- Modify: `config/lead_pages.php`

- [ ] **Step 1: Die 25 Finanzen-Einträge anhängen**

Gleiche Schema-Regeln, `'category' => 'finanzen'`.

**Magnet-Zuordnung Finanzen:**
- Gründung → `'checkliste-gruendung'`
- Steuern → `'checkliste-steuern'`
- Rechnungen/Vorlagen → `'vorlage-rechnung'`, `'vorlage-angebot'`
- Sonstige → `'checkliste-steuern'`

**Alle 25 Slugs mit H1 und Magnet:**

| Slug | H1 | Magnet |
|---|---|---|
| `freelancer-stundensatz-berechnen` | Freelancer-Stundensatz berechnen: Formel + kostenloser Rechner | checkliste-steuern |
| `umsatzsteuer-erklaert` | Umsatzsteuer einfach erklärt — Alles für Selbstständige | checkliste-steuern |
| `kleinunternehmer-regelung` | Kleinunternehmerregelung 2026: Was ändert sich? | checkliste-steuern |
| `gruendung-checkliste` | Gründungs-Checkliste: 30 Schritte zur eigenen Firma | checkliste-gruendung |
| `gewerbeanmeldung-anleitung` | Gewerbeanmeldung: So geht's Schritt für Schritt | checkliste-gruendung |
| `steuern-selbststaendige` | Steuern als Selbstständiger: Der Überblick 2026 | checkliste-steuern |
| `betriebsausgaben-checkliste` | Betriebsausgaben-Checkliste: Was kannst du absetzen? | checkliste-steuern |
| `rentenversicherung-selbststaendige` | Rentenversicherung für Selbstständige: Die 5 Optionen | checkliste-steuern |
| `krankenversicherung-selbststaendige` | Krankenversicherung als Freelancer: Was ist am günstigsten? | checkliste-steuern |
| `buchhaltung-selbst-machen` | Buchhaltung selbst machen: Anleitung + die besten Tools | checkliste-steuern |
| `einnahmen-ausgaben-vorlage` | Einnahmen-Ausgaben-Rechnung: Vorlage kostenlos | vorlage-rechnung |
| `vorsteuer-erklaert` | Vorsteuer einfach erklärt: Was Selbstständige wissen müssen | checkliste-steuern |
| `rechnungspflichten-deutschland` | Rechnungspflichtangaben 2026: Die komplette Checkliste | vorlage-rechnung |
| `e-rechnung-2025` | E-Rechnung ab 2025: Was sich für Selbstständige ändert | vorlage-rechnung |
| `mahnung-schreiben-vorlage` | Mahnung schreiben: Vorlage + Muster für alle 3 Stufen | vorlage-rechnung |
| `vertrag-freiberufler-vorlage` | Freelancer-Vertrag: Vorlage kostenlos + Pflichtklauseln | vorlage-angebot |
| `agb-erstellen` | AGB erstellen für Selbstständige: Vorlage & Tipps | vorlage-angebot |
| `datenschutzerklaerung-vorlage` | Datenschutzerklärung Vorlage 2026 — DSGVO-konform | checkliste-steuern |
| `impressum-generator` | Impressum: Was muss rein? Die Checkliste für 2026 | checkliste-steuern |
| `projektplanung-vorlage` | Projektplanung Vorlage (Excel / Google Sheets) kostenlos | vorlage-angebot |
| `zeiterfassung-selbststaendige` | Zeiterfassung für Selbstständige: Tools + kostenlose Vorlage | vorlage-rechnung |
| `homeoffice-steuer-absetzen` | Homeoffice steuerlich absetzen 2026: Was gilt wirklich? | checkliste-steuern |
| `geschaeftskonto-vergleich` | Geschäftskonto für Selbstständige: Worauf du achten solltest | checkliste-gruendung |
| `rente-freelancer-optionen` | Altersvorsorge als Freelancer: 5 Optionen im Vergleich | checkliste-steuern |
| `liquiditaet-planen` | Liquiditätsplanung: Vorlage + Anleitung für Selbstständige | vorlage-rechnung |

- [ ] **Step 2: Syntax prüfen**

```bash
php -r "require 'config/lead_pages.php'; echo 'OK: ' . count(require 'config/lead_pages.php') . ' Seiten';"
```

Expected: `OK: 102 Seiten`

- [ ] **Step 3: Commit**

```bash
git add config/lead_pages.php
git commit -m "feat(gratis): Config-Block Selbstständigkeit & Finanzen — 25 Seiten"
```

---

## Task 10: Hub-Seiten zur Sitemap + Tests grün + config:cache

**Files:**
- Modify: `routes/web.php`

- [ ] **Step 1: Hub-Seiten in der Sitemap ergänzen**

In `routes/web.php`, suche den Sitemap-Block für Lead-Capture-Seiten (enthält `foreach (array_keys(config('lead_pages', [])) as $lpSlug)`). **Direkt davor** einfügen:

```php
// ── Gratis-Hub-Seiten ────────────────────────────────────────────────────────
foreach (['ki', 'business', 'it', 'finanzen'] as $hubSlug) {
    $add('/gratis/' . $hubSlug, '0.6', 'monthly');
}
```

- [ ] **Step 2: Alle Tests ausführen**

```bash
composer test -- --filter=LeadPageTest
```

Expected: alle 9 Tests in `LeadPageTest` grün. Dann:

```bash
composer test
```

Expected: Die 9 neuen Tests + alle 16 bestehenden Lead-Tests grün. Gesamtfehleranzahl darf nicht gestiegen sein.

Falls ein Test wegen fehlender Seiten scheitert: prüfe, ob der Slug in `config/lead_pages.php` exakt so heißt wie im Test erwartet (`chatgpt-prompts-buchhaltung`).

- [ ] **Step 3: Config-Cache wiederherstellen**

```bash
php artisan config:cache
```

- [ ] **Step 4: Smoke-Test**

Rufe im Browser auf:
- `http://localhost/gratis/ki` → Hub-Grid mit ~25 KI-Cards
- `http://localhost/gratis/chatgpt-prompts-buchhaltung` → Spoke-Seite mit H1, Teaser, Gate, FAQ
- `http://localhost/gratis/seo-checkliste-2026` → bestehende Seite weiterhin OK (eigene View)

- [ ] **Step 5: Commit**

```bash
git add routes/web.php
git commit -m "feat(gratis): Hub-Seiten in Sitemap + Phase 3 vollständig (102 Seiten, 4 Hubs)"
```

---

## Abschluss-Checkliste

Nach Task 10 ist Phase 3 abgeschlossen:

- [ ] 102 Seiten in `config/lead_pages.php` (100 neue + 2 bestehende)
- [ ] 12 Lead-Magnets in `config/lead_magnets.php`
- [ ] `gratis/show.blade.php` mit FAQPage + BreadcrumbList + Paywall-Schema
- [ ] `gratis/hub.blade.php` mit Card-Grid aller Kategorie-Seiten
- [ ] 4 Hub-Routen (`/gratis/ki` etc.) über bestehende Route abgedeckt
- [ ] Hub-Seiten in der Sitemap
- [ ] 9 neue Tests grün + bestehende 16 Lead-Tests weiterhin grün
- [ ] Config-Cache aktiv
