const {
Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell,
HeadingLevel, AlignmentType, LevelFormat, BorderStyle, WidthType,
ShadingType, PageBreak
} = require('docx');
const fs = require('fs');
const GOLD = "B8860B";
const DARK = "1A1A1A";
const GRAY = "555555";
const LIGHTGRAY = "F5F5F5";
const MIDGRAY = "E8E8E8";
const border = { style: BorderStyle.SINGLE, size: 1, color: "DDDDDD" };
const borders = { top: border, bottom: border, left: border, right: border };
const noBorder = { style: BorderStyle.NONE, size: 0, color: "FFFFFF" };
const noBorders = { top: noBorder, bottom: noBorder, left: noBorder, right: noBorder };
function h1(text, color = DARK) {
return new Paragraph({
heading: HeadingLevel.HEADING_1,
spacing: { before: 400, after: 160 },
children: [new TextRun({ text, bold: true, size: 36, color, font: "Arial" })]
});
}
function h2(text, color = GOLD) {
return new Paragraph({
heading: HeadingLevel.HEADING_2,
spacing: { before: 320, after: 120 },
children: [new TextRun({ text, bold: true, size: 28, color, font: "Arial" })]
});
}
function h3(text) {
return new Paragraph({
heading: HeadingLevel.HEADING_3,
spacing: { before: 240, after: 80 },
children: [new TextRun({ text, bold: true, size: 24, color: DARK, font: "Arial" })]
});
}
function body(text, opts = {}) {
return new Paragraph({
spacing: { before: 80, after: 80 },
children: [new TextRun({ text, size: 22, color: opts.color || GRAY, font: "Arial", bold: opts.bold || false, italics: opts.italic || false })]
});
}
function divider() {
return new Paragraph({
spacing: { before: 200, after: 200 },
border: { bottom: { style: BorderStyle.SINGLE, size: 4, color: GOLD, space: 1 } },
children: []
});
}
function bullet(text, ref = "bullets") {
return new Paragraph({
numbering: { reference: ref, level: 0 },
spacing: { before: 60, after: 60 },
children: [new TextRun({ text, size: 22, color: GRAY, font: "Arial" })]
});
}
function spacer() {
return new Paragraph({ children: [new TextRun("")], spacing: { before: 100, after: 100 } });
}
function tag(text) {
return new Paragraph({
spacing: { before: 60, after: 60 },
children: [
new TextRun({ text: " " + text + " ", size: 20, color: "FFFFFF", bold: true, font: "Arial",
highlight: undefined }),
]
});
}
function labeledRow(label, value) {
return new TableRow({
children: [
new TableCell({
borders,
width: { size: 2500, type: WidthType.DXA },
shading: { fill: "F0EAD6", type: ShadingType.CLEAR },
margins: { top: 80, bottom: 80, left: 120, right: 120 },
children: [new Paragraph({ children: [new TextRun({ text: label, bold: true, size: 22, color: DARK, font: "Arial" })] })]
}),
new TableCell({
borders,
width: { size: 6860, type: WidthType.DXA },
margins: { top: 80, bottom: 80, left: 120, right: 120 },
children: [new Paragraph({ children: [new TextRun({ text: value, size: 22, color: GRAY, font: "Arial" })] })]
})
]
});
}
// ─────────────────────────────────────────────
// DOC 1: CORPORATE WELLNESS SEITE
// ─────────────────────────────────────────────
const doc1 = new Document({
numbering: {
config: [
{ reference: "bullets", levels: [{ level: 0, format: LevelFormat.BULLET, text: "•", alignment: AlignmentType.LEFT,
style: { paragraph: { indent: { left: 720, hanging: 360 } } } }] },
{ reference: "numbers", levels: [{ level: 0, format: LevelFormat.DECIMAL, text: "%1.", alignment: AlignmentType.LEFT,
style: { paragraph: { indent: { left: 720, hanging: 360 } } } }] },
]
},
styles: {
default: { document: { run: { font: "Arial", size: 22 } } },
paragraphStyles: [
{ id: "Heading1", name: "Heading 1", basedOn: "Normal", next: "Normal", quickFormat: true,
run: { size: 36, bold: true, font: "Arial", color: DARK },
paragraph: { spacing: { before: 400, after: 160 }, outlineLevel: 0 } },
{ id: "Heading2", name: "Heading 2", basedOn: "Normal", next: "Normal", quickFormat: true,
run: { size: 28, bold: true, font: "Arial", color: GOLD },
paragraph: { spacing: { before: 320, after: 120 }, outlineLevel: 1 } },
{ id: "Heading3", name: "Heading 3", basedOn: "Normal", next: "Normal", quickFormat: true,
run: { size: 24, bold: true, font: "Arial", color: DARK },
paragraph: { spacing: { before: 240, after: 80 }, outlineLevel: 2 } },
]
},
sections: [{
properties: {
page: { size: { width: 11906, height: 16838 }, margin: { top: 1440, right: 1440, bottom: 1440, left: 1440 } }
},
children: [
// HEADER
new Paragraph({
alignment: AlignmentType.CENTER,
spacing: { before: 0, after: 80 },
children: [new TextRun({ text: "FREE YOUR BREATH", size: 48, bold: true, color: GOLD, font: "Arial" })]
}),
new Paragraph({
alignment: AlignmentType.CENTER,
spacing: { before: 0, after: 60 },
children: [new TextRun({ text: "Corporate Wellness · Atemtraining für Unternehmen", size: 24, color: GRAY, font: "Arial", italics: true })]
}),
new Paragraph({
alignment: AlignmentType.CENTER,
spacing: { before: 0, after: 60 },
children: [new TextRun({ text: "freeyourbreath.net · info@freeyourbreath.net · 0178 5737 664", size: 20, color: GRAY, font: "Arial" })]
}),
divider(),
// HERO
h1("Wenn Ihr Team nicht mehr frei atmet,\natmet auch Ihr Unternehmen nicht mehr frei."),
body("Chronischer Stress, innere Anspannung, Erschöpfung – das kostet Unternehmen in Deutschland Milliarden pro Jahr. Und doch wird der Atem als einfachste Regulationsressource des menschlichen Körpers kaum genutzt."),
body("Ich bin Gerard Kron – Heilpraktiker, zertifizierter Buteyko-Atemcoach und Coach für persönliche Entwicklung. Ich bringe wissenschaftlich fundiertes Atemtraining direkt in Ihr Unternehmen – online, hybrid oder als Präsenz-Workshop."),
spacer(),
divider(),
h2("Das Problem, das niemand sieht"),
body("Ihr Team funktioniert. Aber:"),
bullet("79 % der Deutschen fühlen sich regelmäßig gestresst (Statista 2024)"),
bullet("Fehlzeiten durch psychische Belastung steigen seit Jahren kontinuierlich"),
bullet("Erschöpfte, angespannte Mitarbeitende treffen schlechtere Entscheidungen"),
bullet("Burnout kostet Unternehmen durchschnittlich 20.000 € pro betroffener Person"),
spacer(),
body("Die meisten Lösungen setzen beim Symptom an. Atemtraining setzt beim Nervensystem an – dort, wo Stress wirklich entsteht."),
divider(),
h2("Was Atemtraining in Unternehmen bewirkt"),
body("Die Buteyko-Methode und funktionales Atemtraining sind keine Entspannungsübungen. Sie sind präzise, wissenschaftlich belegte Interventionen:"),
spacer(),
new Table({
width: { size: 9026, type: WidthType.DXA },
columnWidths: [4513, 4513],
rows: [
new TableRow({
children: [
new TableCell({
borders,
width: { size: 4513, type: WidthType.DXA },
shading: { fill: "F0EAD6", type: ShadingType.CLEAR },
margins: { top: 120, bottom: 120, left: 160, right: 160 },
children: [
new Paragraph({ children: [new TextRun({ text: "Wirkung", bold: true, size: 22, color: DARK, font: "Arial" })] }),
]
}),
new TableCell({
borders,
width: { size: 4513, type: WidthType.DXA },
shading: { fill: "F0EAD6", type: ShadingType.CLEAR },
margins: { top: 120, bottom: 120, left: 160, right: 160 },
children: [
new Paragraph({ children: [new TextRun({ text: "Für Ihr Unternehmen", bold: true, size: 22, color: DARK, font: "Arial" })] }),
]
}),
]
}),
...([
["Nervensystem regulieren", "Weniger Burnout, mehr Resilienz"],
["Stressreaktion unterbrechen", "Bessere Entscheidungen unter Druck"],
["Schlafqualität verbessern", "Mehr Energie und Konzentration"],
["CO₂-Toleranz erhöhen", "Höhere körperliche Leistungsfähigkeit"],
["Angst & Panik reduzieren", "Sichereres Auftreten in Meetings & Präsentationen"],
["HRV & Vagusnerv stärken", "Langfristige psychische Gesundheit"],
].map(([w, u]) => new TableRow({
children: [
new TableCell({ borders, width: { size: 4513, type: WidthType.DXA }, margins: { top: 80, bottom: 80, left: 160, right: 160 },
children: [new Paragraph({ children: [new TextRun({ text: w, size: 22, color: GRAY, font: "Arial" })] })] }),
new TableCell({ borders, width: { size: 4513, type: WidthType.DXA }, margins: { top: 80, bottom: 80, left: 160, right: 160 },
children: [new Paragraph({ children: [new TextRun({ text: u, size: 22, color: GRAY, font: "Arial" })] })] }),
]
})))
]
}),
divider(),
h2("Meine Angebote für Unternehmen"),
h3("1. Atem-Impuls-Workshop (90 Min.)"),
body("Das perfekte Format für Teameinstieg, Kick-off oder Lunch-Break-Wellness."),
bullet("Einführung in das Nervensystem & Atem-Physiologie"),
bullet("3 sofort anwendbare Atemtechniken für den Arbeitsalltag"),
bullet("Live-Praxis & kurze Q&A-Runde"),
bullet("Online oder Präsenz in Düsseldorf, Köln, Essen & Umgebung"),
body("Ab 800 € netto · Online oder Präsenz · Für bis zu 30 Personen", { color: GOLD, bold: true }),
spacer(),
h3("2. Atem & Resilienz – Halbtagsworkshop (3–4 Std.)"),
body("Ideal für Führungsteams, BGM-Maßnahmen oder Retreats."),
bullet("Tiefere Theorie: CO₂-Toleranz, Bohr-Effekt, BOLT-Test"),
bullet("Atemanalyse & individuelles Feedback"),
bullet("Buteyko-Übungssequenz für Alltag und Stresssituationen"),
bullet("Persönlicher Atemplan für jeden Teilnehmenden"),
body("Ab 1.500 € netto · Online oder Präsenz · Für bis zu 20 Personen", { color: GOLD, bold: true }),
spacer(),
h3("3. Atem-Coaching-Programm (8 Wochen)"),
body("Das nachhaltigste Format – für Unternehmen, die echte Veränderung wollen."),
bullet("8 wöchentliche Live-Sessions à 60 Min. (online)"),
bullet("Max. 15 Teilnehmende für persönliche Begleitung"),
bullet("Individuelle Fortschrittsreflexion & Atemtagebuch"),
bullet("Abschluss-Zertifikat für alle Teilnehmenden"),
body("Auf Anfrage · Jahresrahmenvertrag möglich · Auch als Lizenz-Modell für interne Trainer", { color: GOLD, bold: true }),
spacer(),
h3("4. Keynote & Speaker-Format (60–90 Min.)"),
body("\"Atme dich frei\" – ein inspirierender Vortrag mit Praxisteil für Konferenzen, Führungskräfteevents oder Jahrestagungen."),
body("Auf Anfrage · Düsseldorf/Köln/Essen & deutschlandweit", { color: GOLD, bold: true }),
divider(),
h2("Warum Gerard Kron & Free Your Breath?"),
bullet("Zertifizierter Buteyko-Atemcoach & Heilpraktiker"),
bullet("NLP-Master & Coach für persönliche Entwicklung"),
bullet("Über 20 Jahre Erfahrung mit Heilverfahren, Yoga, Tai-Chi, Hypnosetherapie"),
bullet("Eigene Transformation nach schwerem Asthmaanfall – authentisch, nicht akademisch"),
bullet("Erfahrung mit Führungskräften, Performern, Sportlern und klinischen Zielgruppen"),
bullet("Standort: Düsseldorf / Köln / Essen – Online deutschlandweit"),
spacer(),
divider(),
h2("So starten wir zusammen"),
new Table({
width: { size: 9026, type: WidthType.DXA },
columnWidths: [1200, 1800, 6026],
rows: [
...([
["01", "Erstgespräch", "30 Min. kostenloses Kennenlernen – ich verstehe Ihre Situation und Ziele"],
["02", "Konzept", "Ich erstelle ein maßgeschneidertes Angebot für Ihr Team"],
["03", "Pilotworkshop", "Optionaler Einstieg mit einem Impuls-Workshop"],
["04", "Rollout", "Langfristige Begleitung Ihres Teams – flexibel und skalierbar"],
].map(([n, t, d]) => new TableRow({
children: [
new TableCell({ borders, width: { size: 1200, type: WidthType.DXA },
shading: { fill: "1A1A1A", type: ShadingType.CLEAR },
margins: { top: 120, bottom: 120, left: 120, right: 120 },
children: [new Paragraph({ alignment: AlignmentType.CENTER, children: [new TextRun({ text: n, bold: true, size: 28, color: GOLD, font: "Arial" })] })] }),
new TableCell({ borders, width: { size: 1800, type: WidthType.DXA },
shading: { fill: "F0EAD6", type: ShadingType.CLEAR },
margins: { top: 120, bottom: 120, left: 120, right: 120 },
children: [new Paragraph({ children: [new TextRun({ text: t, bold: true, size: 22, color: DARK, font: "Arial" })] })] }),
new TableCell({ borders, width: { size: 6026, type: WidthType.DXA },
margins: { top: 120, bottom: 120, left: 120, right: 120 },
children: [new Paragraph({ children: [new TextRun({ text: d, size: 22, color: GRAY, font: "Arial" })] })] }),
]
}))
]
}),
spacer(),
divider(),
new Paragraph({
alignment: AlignmentType.CENTER,
spacing: { before: 200, after: 100 },
children: [new TextRun({ text: "Jetzt Erstgespräch vereinbaren", size: 32, bold: true, color: GOLD, font: "Arial" })]
}),
new Paragraph({
alignment: AlignmentType.CENTER,
spacing: { before: 80, after: 80 },
children: [new TextRun({ text: "info@freeyourbreath.net · 0178 5737 664 · freeyourbreath.net", size: 22, color: GRAY, font: "Arial" })]
}),
new Paragraph({
alignment: AlignmentType.CENTER,
spacing: { before: 80, after: 200 },
children: [new TextRun({ text: "Düsseldorf · Köln · Essen · Online deutschlandweit", size: 20, color: GRAY, font: "Arial", italics: true })]
}),
]
}]
});
// ─────────────────────────────────────────────
// DOC 2: CONTENT-STRATEGIE INSTAGRAM & YOUTUBE
// ─────────────────────────────────────────────
const doc2 = new Document({
numbering: {
config: [
{ reference: "bullets", levels: [{ level: 0, format: LevelFormat.BULLET, text: "•", alignment: AlignmentType.LEFT,
style: { paragraph: { indent: { left: 720, hanging: 360 } } } }] },
{ reference: "numbers", levels: [{ level: 0, format: LevelFormat.DECIMAL, text: "%1.", alignment: AlignmentType.LEFT,
style: { paragraph: { indent: { left: 720, hanging: 360 } } } }] },
]
},
styles: {
default: { document: { run: { font: "Arial", size: 22 } } },
paragraphStyles: [
{ id: "Heading1", name: "Heading 1", basedOn: "Normal", next: "Normal", quickFormat: true,
run: { size: 36, bold: true, font: "Arial", color: DARK }, paragraph: { spacing: { before: 400, after: 160 }, outlineLevel: 0 } },
{ id: "Heading2", name: "Heading 2", basedOn: "Normal", next: "Normal", quickFormat: true,
run: { size: 28, bold: true, font: "Arial", color: GOLD }, paragraph: { spacing: { before: 320, after: 120 }, outlineLevel: 1 } },
{ id: "Heading3", name: "Heading 3", basedOn: "Normal", next: "Normal", quickFormat: true,
run: { size: 24, bold: true, font: "Arial", color: DARK }, paragraph: { spacing: { before: 240, after: 80 }, outlineLevel: 2 } },
]
},
sections: [{
properties: {
page: { size: { width: 11906, height: 16838 }, margin: { top: 1440, right: 1440, bottom: 1440, left: 1440 } }
},
children: [
new Paragraph({
alignment: AlignmentType.CENTER,
spacing: { before: 0, after: 80 },
children: [new TextRun({ text: "FREE YOUR BREATH", size: 48, bold: true, color: GOLD, font: "Arial" })]
}),
new Paragraph({
alignment: AlignmentType.CENTER,
spacing: { before: 0, after: 200 },
children: [new TextRun({ text: "Content-Strategie · Instagram & YouTube", size: 26, color: GRAY, font: "Arial", italics: true })]
}),
divider(),
h1("Strategie-Überblick"),
body("Ziel: Aus freeyourbreath.net eine Marke machen, die im deutschsprachigen Raum als erste Adresse für Buteyko-Atemcoaching wahrgenommen wird – durch Vertrauen, Konsistenz und echten Mehrwert."),
spacer(),
new Table({
width: { size: 9026, type: WidthType.DXA },
columnWidths: [2000, 3513, 3513],
rows: [
new TableRow({
children: [
new TableCell({ borders, shading: { fill: "1A1A1A", type: ShadingType.CLEAR }, width: { size: 2000, type: WidthType.DXA }, margins: { top: 100, bottom: 100, left: 120, right: 120 },
children: [new Paragraph({ children: [new TextRun({ text: "", size: 22, font: "Arial" })] })] }),
new TableCell({ borders, shading: { fill: GOLD, type: ShadingType.CLEAR }, width: { size: 3513, type: WidthType.DXA }, margins: { top: 100, bottom: 100, left: 120, right: 120 },
children: [new Paragraph({ alignment: AlignmentType.CENTER, children: [new TextRun({ text: "Instagram", bold: true, size: 24, color: "FFFFFF", font: "Arial" })] })] }),
new TableCell({ borders, shading: { fill: "CC0000", type: ShadingType.CLEAR }, width: { size: 3513, type: WidthType.DXA }, margins: { top: 100, bottom: 100, left: 120, right: 120 },
children: [new Paragraph({ alignment: AlignmentType.CENTER, children: [new TextRun({ text: "YouTube", bold: true, size: 24, color: "FFFFFF", font: "Arial" })] })] }),
]
}),
...([
["Funktion", "Vertrauen aufbauen, Reichweite & Community", "Expertise zeigen, SEO-Traffic gewinnen"],
["Zielgruppe", "25–50 J., gesundheitsbewusst, stressgeplagt", "Suchende: Asthma, Schlaf, Stress, Buteyko"],
["Frequenz", "4–5x pro Woche", "1x pro Woche"],
["Formate", "Reels, Karussell, Stories, Lives", "Tutorials, Vlogs, geführte Übungen"],
["Metrik", "Reichweite, Follows, Story-Views", "Views, Watch-Time, Kanal-Abos"],
].map(([r, ig, yt]) => new TableRow({
children: [
new TableCell({ borders, shading: { fill: LIGHTGRAY, type: ShadingType.CLEAR }, width: { size: 2000, type: WidthType.DXA }, margins: { top: 80, bottom: 80, left: 120, right: 120 },
children: [new Paragraph({ children: [new TextRun({ text: r, bold: true, size: 20, color: DARK, font: "Arial" })] })] }),
new TableCell({ borders, width: { size: 3513, type: WidthType.DXA }, margins: { top: 80, bottom: 80, left: 120, right: 120 },
children: [new Paragraph({ children: [new TextRun({ text: ig, size: 20, color: GRAY, font: "Arial" })] })] }),
new TableCell({ borders, width: { size: 3513, type: WidthType.DXA }, margins: { top: 80, bottom: 80, left: 120, right: 120 },
children: [new Paragraph({ children: [new TextRun({ text: yt, size: 20, color: GRAY, font: "Arial" })] })] }),
]
}))
]
}),
divider(),
h2("Die 5 Content-Säulen von Free Your Breath"),
body("Jeder Post, jedes Video lässt sich einer dieser fünf Säulen zuordnen. So bleibt der Kanal thematisch klar und trotzdem abwechslungsreich."),
spacer(),
...([
["1. WISSEN & AUFKLÄRUNG (30 %)", "Zeige, dass du der Experte bist.", [
"Was ist der BOLT-Test? (mit Anleitung)",
"Warum du nachts durch den Mund atmest – und was das kostet",
"Der Bohr-Effekt einfach erklärt",
"CO₂ ist nicht dein Feind – das Missverständnis der Atmung",
"Was Asthma wirklich mit deinem Atemmuster zu tun hat",
]],
["2. GEFÜHRTE ÜBUNGEN (25 %)", "Der direkteste Weg zu Vertrauen – Menschen erleben Gerard live.", [
"60-Sekunden-Zwerchfellatmung für den Morgen",
"Buteyko: Die reduzierte Atmung – Schritt für Schritt",
"5-Min-Atemübung bei Panikattacken",
"Atemübung vor dem Schlaf (Schnarchen & Apnoe)",
"Nasenatmung im Sport: So trainierst du richtig",
]],
["3. PERSÖNLICHE STORY (20 %)", "Authentizität schlägt Perfektion. Gerards eigene Geschichte ist der stärkste Hook.", [
"\"Mein Asthmaanfall, der alles veränderte\" – Teile deine Geschichte",
"Vom Maschinenbau zum Atemcoach: Warum ich diesen Weg gegangen bin",
"Was ich heute anders atme als vor 10 Jahren",
"Hinter den Kulissen: Ein Tag als Atemcoach",
"Warum ich nicht mehr aus dem Mund atme",
]],
["4. KUNDENSTIMMEN & ERGEBNISSE (15 %)", "Social Proof ist dein wichtigster Konversionshebel.", [
"Vorher/Nachher: BOLT-Wert von 8 auf 30 in 8 Wochen",
"\"Mein Asthma-Spray liegt seit 3 Monaten unbenutzt\" – Kundenstory",
"Wie Maria endlich wieder schläft – ohne Schnarchen",
"Was ein Unternehmen nach dem Atem-Workshop sagt",
]],
["5. TRENDS & POP-KULTUR-AUFHÄNGER (10 %)", "Nutze aktuelle Gesprächsthemen für Reichweite.", [
"Wim Hof vs. Buteyko – was wirklich besser ist",
"Kaltes Wasser & Atem: Was steckt dahinter?",
"Warum alle über Mouth-Taping reden – und was ich dazu sage",
"James Nestor \"Breath\": Was stimmt, was fehlt?",
]],
].flatMap(([title, subtitle, items]) => [
h3(title),
body(subtitle, { italic: true }),
...items.map(i => bullet(i)),
spacer(),
])),
divider(),
h2("Wochenplan: Konkreter Content-Rhythmus"),
new Table({
width: { size: 9026, type: WidthType.DXA },
columnWidths: [1300, 3863, 3863],
rows: [
new TableRow({
children: [
new TableCell({ borders, shading: { fill: DARK, type: ShadingType.CLEAR }, width: { size: 1300, type: WidthType.DXA }, margins: { top: 100, bottom: 100, left: 120, right: 120 },
children: [new Paragraph({ children: [new TextRun({ text: "Tag", bold: true, size: 20, color: "FFFFFF", font: "Arial" })] })] }),
new TableCell({ borders, shading: { fill: GOLD, type: ShadingType.CLEAR }, width: { size: 3863, type: WidthType.DXA }, margins: { top: 100, bottom: 100, left: 120, right: 120 },
children: [new Paragraph({ children: [new TextRun({ text: "Instagram", bold: true, size: 20, color: "FFFFFF", font: "Arial" })] })] }),
new TableCell({ borders, shading: { fill: "CC0000", type: ShadingType.CLEAR }, width: { size: 3863, type: WidthType.DXA }, margins: { top: 100, bottom: 100, left: 120, right: 120 },
children: [new Paragraph({ children: [new TextRun({ text: "YouTube", bold: true, size: 20, color: "FFFFFF", font: "Arial" })] })] }),
]
}),
...([
["Montag", "Reel: Kurze Atemübung (60 Sek.)", "–"],
["Dienstag", "Karussell: Wissen / Aufklärung", "–"],
["Mittwoch", "Story: Hinter den Kulissen / persönlich", "Video: Tiefes Tutorial (8–15 Min.)"],
["Donnerstag", "Reel: Trend-Aufhänger oder Kundenstory", "–"],
["Freitag", "Karussell oder Reel: Wochenabschluss-Übung", "–"],
["Samstag", "Story: Q&A, Umfrage, Interaktion", "–"],
["Sonntag", "–", "Optional: Shorts / Clip aus Wochenvideo"],
].map(([d, ig, yt]) => new TableRow({
children: [
new TableCell({ borders, shading: { fill: LIGHTGRAY, type: ShadingType.CLEAR }, width: { size: 1300, type: WidthType.DXA }, margins: { top: 80, bottom: 80, left: 120, right: 120 },
children: [new Paragraph({ children: [new TextRun({ text: d, bold: true, size: 20, color: DARK, font: "Arial" })] })] }),
new TableCell({ borders, width: { size: 3863, type: WidthType.DXA }, margins: { top: 80, bottom: 80, left: 120, right: 120 },
children: [new Paragraph({ children: [new TextRun({ text: ig, size: 20, color: GRAY, font: "Arial" })] })] }),
new TableCell({ borders, width: { size: 3863, type: WidthType.DXA }, margins: { top: 80, bottom: 80, left: 120, right: 120 },
children: [new Paragraph({ children: [new TextRun({ text: yt, size: 20, color: GRAY, font: "Arial" })] })] }),
]
}))
]
}),
divider(),
h2("Instagram: Konkrete Reels-Ideen (Starterset)"),
body("Diese 10 Reels kannst du sofort produzieren – ohne Studio, ohne Aufwand. Telefon, gutes Licht, 60 Sekunden."),
spacer(),
...([
["Reel 01", "Hook: \"Du atmest 20.000 Mal am Tag. Und machst es wahrscheinlich falsch.\"", "→ Zeige den BOLT-Test live durch"],
["Reel 02", "Hook: \"Diese 60 Sekunden verändern dein Nervensystem.\"", "→ Einfache Zwerchfellatmung, live angeleitet"],
["Reel 03", "Hook: \"Ich hatte Asthma. Jetzt atme ich besser als je zuvor.\"", "→ Deine Geschichte in 45 Sekunden"],
["Reel 04", "Hook: \"Warum Mund-Taping nicht reicht – und was wirklich hilft.\"", "→ Kurze Erklärung, CTA zu deinem 8-Wochen-Kurs"],
["Reel 05", "Hook: \"3 Zeichen, dass du falsch atmest.\" (Karussell)", "→ Flache Atmung, Mundatmung, Seufzen"],
["Reel 06", "Hook: \"Diese Atemübung mache ich jeden Morgen seit 5 Jahren.\"", "→ Reduced Breathing, 60-Sek.-Praxis"],
["Reel 07", "Hook: \"Was Wim Hof dir nicht sagt.\"", "→ Buteyko vs. hyperventilative Methoden"],
["Reel 08", "Hook: \"Schlechter Schlaf? Das könnte dein Atem sein.\"", "→ Erkläre Schlafapnoe & Nasenatmung"],
["Reel 09", "Hook: \"Mein Klient hat seinen BOLT-Wert in 8 Wochen verdreifacht.\"", "→ Vorher/Nachher Kundenstory"],
["Reel 10", "Hook: \"Atem ist Medizin. Kostenlos. Immer verfügbar.\"", "→ Einladung zu deiner Community / Kurs"],
].flatMap(([n, hook, tip]) => [
new Paragraph({
spacing: { before: 120, after: 40 },
children: [new TextRun({ text: n + " – " + hook, bold: true, size: 22, color: DARK, font: "Arial" })]
}),
new Paragraph({
spacing: { before: 0, after: 80 },
children: [new TextRun({ text: tip, size: 22, color: GRAY, font: "Arial", italics: true })]
}),
])),
divider(),
h2("YouTube: Konkrete Video-Ideen (Starterset)"),
body("Für YouTube zählt Tiefe. Diese Videos sind auf Suchintention optimiert und bauen langfristigen Traffic auf."),
spacer(),
...([
["Video 01", "\"Buteyko-Methode erklärt – Grundlagen, BOLT-Test, erste Übung\"", "Hauptkeyword: buteyko methode"],
["Video 02", "\"Asthma natürlich lindern mit Atemtraining – meine Geschichte\"", "Keyword: asthma atemübungen"],
["Video 03", "\"Schlafapnoe & Schnarchen: Was dein Atem damit zu tun hat\"", "Keyword: schlafapnoe atemübungen"],
["Video 04", "\"20 Minuten Buteyko-Atemtraining – geführte Übung für Anfänger\"", "Keyword: atemübungen stress"],
["Video 05", "\"BOLT-Test: Wie gut atmest du wirklich? Mach den Test jetzt.\"", "Keyword: bolt test buteyko"],
["Video 06", "\"Panikattacken & Atem – warum du beim nächsten Anfall so atmen solltest\"", "Keyword: atemübungen panikattacken"],
["Video 07", "\"Nasenatmung im Sport – warum ich seit Jahren durch die Nase trainiere\"", "Keyword: nasenatmung sport"],
["Video 08", "\"Wim Hof vs. Buteyko – welche Methode ist besser für dich?\"", "Keyword: wim hof methode vergleich"],
].flatMap(([n, title, kw]) => [
new Paragraph({
spacing: { before: 120, after: 40 },
children: [new TextRun({ text: n + " – " + title, bold: true, size: 22, color: DARK, font: "Arial" })]
}),
new Paragraph({
spacing: { before: 0, after: 80 },
children: [new TextRun({ text: kw, size: 20, color: GOLD, font: "Arial", italics: true })]
}),
])),
divider(),
h2("Bio & Profil-Texte"),
h3("Instagram Bio (160 Zeichen)"),
new Paragraph({
spacing: { before: 100, after: 100 },
shading: { fill: LIGHTGRAY, type: ShadingType.CLEAR },
children: [
new TextRun({ text: "🌬️ Buteyko-Atemcoach & Heilpraktiker\n", size: 22, font: "Arial", color: DARK }),
new TextRun({ text: "Asthma · Stress · Schlaf · Energie\n", size: 22, font: "Arial", color: GRAY }),
new TextRun({ text: "20 J. Erfahrung | Düsseldorf & Online\n", size: 22, font: "Arial", color: GRAY }),
new TextRun({ text: "👇 Kostenloser BOLT-Test", size: 22, font: "Arial", color: GOLD, bold: true }),
]
}),
spacer(),
h3("YouTube Kanalbeschreibung (erste 150 Zeichen für Snippet)"),
new Paragraph({
spacing: { before: 100, after: 100 },
children: [
new TextRun({ text: "Hier lernst du, wie du wirklich atmest – mit der Buteyko-Methode. Für Asthma, Stress, Schlaf & Leistung. Geführte Übungen, Erklärvideos & echte Transformationen. Gerard Kron | Heilpraktiker & zertifizierter Atemcoach | freeyourbreath.net", size: 22, font: "Arial", color: GRAY })
]
}),
divider(),
h2("Lead-Magnet: Der Conversion-Hebel"),
body("Ohne E-Mail-Liste verpufft die Reichweite. Biete als kostenlosen Lead-Magneten an:"),
spacer(),
new Paragraph({
spacing: { before: 100, after: 100 },
children: [
new TextRun({ text: "\"Atme dich frei – die 5-Tage-Atemchallenge\"", bold: true, size: 26, color: GOLD, font: "Arial" })
]
}),
bullet("Tag 1: BOLT-Test – wo stehst du gerade?"),
bullet("Tag 2: Nasenatmung – die Basis-Übung"),
bullet("Tag 3: Zwerchfell aktivieren"),
bullet("Tag 4: Reduzierte Atmung nach Buteyko"),
bullet("Tag 5: Nachtmodus – Atem für besseren Schlaf"),
spacer(),
body("Jeden Tag eine E-Mail mit kurzer Theorie + Übungsvideo (kann mit Reels verknüpft werden). Am Ende: CTA zum 8-Wochen-Kurs oder Erstgespräch."),
]
}]
});
// ─────────────────────────────────────────────
// DOC 3: ÜBERARBEITETE HOMEPAGE-STRUKTUR
// ─────────────────────────────────────────────
const doc3 = new Document({
numbering: {
config: [
{ reference: "bullets", levels: [{ level: 0, format: LevelFormat.BULLET, text: "•", alignment: AlignmentType.LEFT,
style: { paragraph: { indent: { left: 720, hanging: 360 } } } }] },
{ reference: "numbers", levels: [{ level: 0, format: LevelFormat.DECIMAL, text: "%1.", alignment: AlignmentType.LEFT,
style: { paragraph: { indent: { left: 720, hanging: 360 } } } }] },
]
},
styles: {
default: { document: { run: { font: "Arial", size: 22 } } },
paragraphStyles: [
{ id: "Heading1", name: "Heading 1", basedOn: "Normal", next: "Normal", quickFormat: true,
run: { size: 36, bold: true, font: "Arial", color: DARK }, paragraph: { spacing: { before: 400, after: 160 }, outlineLevel: 0 } },
{ id: "Heading2", name: "Heading 2", basedOn: "Normal", next: "Normal", quickFormat: true,
run: { size: 28, bold: true, font: "Arial", color: GOLD }, paragraph: { spacing: { before: 320, after: 120 }, outlineLevel: 1 } },
{ id: "Heading3", name: "Heading 3", basedOn: "Normal", next: "Normal", quickFormat: true,
run: { size: 24, bold: true, font: "Arial", color: DARK }, paragraph: { spacing: { before: 240, after: 80 }, outlineLevel: 2 } },
]
},
sections: [{
properties: {
page: { size: { width: 11906, height: 16838 }, margin: { top: 1440, right: 1440, bottom: 1440, left: 1440 } }
},
children: [
new Paragraph({
alignment: AlignmentType.CENTER,
spacing: { before: 0, after: 80 },
children: [new TextRun({ text: "FREE YOUR BREATH", size: 48, bold: true, color: GOLD, font: "Arial" })]
}),
new Paragraph({
alignment: AlignmentType.CENTER,
spacing: { before: 0, after: 200 },
children: [new TextRun({ text: "Überarbeitete Homepage-Struktur · freeyourbreath.net", size: 26, color: GRAY, font: "Arial", italics: true })]
}),
divider(),
h1("Grundprinzip der neuen Struktur"),
body("Die aktuelle Homepage ist stimmungsvoll – aber sie konvertiert noch nicht. Besucher wissen nach 10 Sekunden nicht, was genau du anbietest und für wen. Die neue Struktur folgt dem Prinzip: Erst fühlen. Dann verstehen. Dann handeln."),
spacer(),
new Table({
width: { size: 9026, type: WidthType.DXA },
columnWidths: [4513, 4513],
rows: [
new TableRow({ children: [
new TableCell({ borders, shading: { fill: "F5DADA", type: ShadingType.CLEAR }, width: { size: 4513, type: WidthType.DXA }, margins: { top: 100, bottom: 100, left: 160, right: 160 },
children: [new Paragraph({ children: [new TextRun({ text: "Aktuell – was fehlt", bold: true, size: 22, color: "990000", font: "Arial" })] })] }),
new TableCell({ borders, shading: { fill: "D5EDD5", type: ShadingType.CLEAR }, width: { size: 4513, type: WidthType.DXA }, margins: { top: 100, bottom: 100, left: 160, right: 160 },
children: [new Paragraph({ children: [new TextRun({ text: "Neu – was es braucht", bold: true, size: 22, color: "006600", font: "Arial" })] })] }),
]}),
...([
["Keine Preise sichtbar", "Klare Preisanker oder \"ab X €\" als Orientierung"],
["Keine Testimonials", "3–5 starke Kundenstimmen prominent platziert"],
["Kein SEO-Anker im Hero", "Headline enthält Keyword: Buteyko / Atemcoach"],
["Kein Lead-Magnet", "Freebie / 5-Tage-Challenge mit E-Mail-Capture"],
["Navigation zu komplex", "Weniger Menüpunkte, klarer CTA immer sichtbar"],
["Kein Social Proof oben", "Trust-Elemente (Ausbildung, Zertifikate) early"],
].map(([a, n]) => new TableRow({ children: [
new TableCell({ borders, width: { size: 4513, type: WidthType.DXA }, margins: { top: 80, bottom: 80, left: 160, right: 160 },
children: [new Paragraph({ children: [new TextRun({ text: a, size: 20, color: "990000", font: "Arial" })] })] }),
new TableCell({ borders, width: { size: 4513, type: WidthType.DXA }, margins: { top: 80, bottom: 80, left: 160, right: 160 },
children: [new Paragraph({ children: [new TextRun({ text: n, size: 20, color: "006600", font: "Arial" })] })] }),
]})))
]
}),
divider(),
h1("Die neue Homepage – Sektion für Sektion"),
// SECTION 1
h2("SEKTION 1 – Hero (Above the Fold)"),
body("Das Erste, was jeder Besucher sieht – ohne zu scrollen. Entscheidend für Bounce Rate."),
spacer(),
new Table({
width: { size: 9026, type: WidthType.DXA },
columnWidths: [9026],
rows: [
new TableRow({ children: [new TableCell({
borders, shading: { fill: "1A1A1A", type: ShadingType.CLEAR }, width: { size: 9026, type: WidthType.DXA }, margins: { top: 160, bottom: 160, left: 240, right: 240 },
children: [
new Paragraph({ alignment: AlignmentType.CENTER, children: [new TextRun({ text: "Buteyko-Atemcoach & Heilpraktiker | Düsseldorf · Köln · Online", size: 20, color: GOLD, font: "Arial", italics: true })] }),
new Paragraph({ alignment: AlignmentType.CENTER, spacing: { before: 120 }, children: [new TextRun({ text: "Atme endlich frei.", size: 40, bold: true, color: "FFFFFF", font: "Arial" })] }),
new Paragraph({ alignment: AlignmentType.CENTER, spacing: { before: 80 }, children: [new TextRun({ text: "Natürliche Hilfe bei Asthma, Stress, Schlafproblemen und Erschöpfung.", size: 22, color: "CCCCCC", font: "Arial" })] }),
new Paragraph({ alignment: AlignmentType.CENTER, spacing: { before: 80 }, children: [new TextRun({ text: "Mit der Buteyko-Methode – wissenschaftlich fundiert, persönlich begleitet.", size: 22, color: "CCCCCC", font: "Arial" })] }),
new Paragraph({ alignment: AlignmentType.CENTER, spacing: { before: 160 }, children: [new TextRun({ text: "[ Kostenloser BOLT-Test starten ] [ Erstgespräch buchen ]", size: 22, bold: true, color: GOLD, font: "Arial" })] }),
]
})] })
]
}),
spacer(),
body("Hinweis: Der SEO-Text oben (\"Buteyko-Atemcoach & Heilpraktiker | ...\") erscheint dezent als Subline oder als Meta-Info. Die zwei CTAs nebeneinander – einer kostenlos (niedrige Schwelle), einer direkt (für Entschlossene)."),
spacer(),
// SECTION 2
h2("SEKTION 2 – Trust-Streifen"),
body("Direkt unter dem Hero: kurze Vertrauenssignale auf einen Blick. Kein Scrollen nötig."),
spacer(),
new Table({
width: { size: 9026, type: WidthType.DXA },
columnWidths: [2256, 2257, 2257, 2256],
rows: [new TableRow({ children: [
...([
["Heilpraktiker", "staatlich anerkannt"],
["20+ Jahre", "Erfahrung"],
["Buteyko", "zertifiziert"],
["Düsseldorf · Köln", "& Online DE-weit"],
].map(([top, bot]) => new TableCell({ borders, width: { size: 2257, type: WidthType.DXA }, shading: { fill: LIGHTGRAY, type: ShadingType.CLEAR }, margins: { top: 120, bottom: 120, left: 80, right: 80 },
children: [
new Paragraph({ alignment: AlignmentType.CENTER, children: [new TextRun({ text: top, bold: true, size: 22, color: GOLD, font: "Arial" })] }),
new Paragraph({ alignment: AlignmentType.CENTER, children: [new TextRun({ text: bot, size: 18, color: GRAY, font: "Arial" })] }),
]
})))
]})]
}),
spacer(),
// SECTION 3
h2("SEKTION 3 – Das Problem (Schmerz-Sektion)"),
body("Menschen kaufen Lösungen für Schmerzen. Diese Sektion holt den Besucher dort ab, wo er wirklich ist."),
spacer(),
body("Headline: \"Erkennst du dich wieder?\"", { bold: true }),
bullet("Du schläfst schlecht – und weißt nicht warum."),
bullet("Dein Asthma-Spray liegt immer griffbereit – aber du willst nicht davon abhängig sein."),
bullet("Du bist ständig angespannt, auch wenn es keinen Grund gibt."),
bullet("Du atmest flach, schnell, durch den Mund – und merkst es erst jetzt."),
bullet("Yoga und Meditation helfen kurz. Aber der Alltag holt dich wieder ein."),
spacer(),
body("Subline: \"Das liegt nicht an deiner Willenskraft. Es liegt an deinem Atemmuster.\"", { bold: true, color: GOLD }),
spacer(),
// SECTION 4
h2("SEKTION 4 – Die Lösung (Buteyko & Methode)"),
body("Hier kommt die Brücke: vom Problem zur Lösung. Kurz, klar, nicht überladen."),
spacer(),
body("Headline: \"Der Atem ist der Schlüssel – wenn du weißt, wie du ihn nutzt.\"", { bold: true }),
body("Subtext: Die Buteyko-Methode ist keine Entspannungstechnik. Sie ist ein präzises System, das dein Atemmuster neu kalibriert – mit messbaren Ergebnissen, oft schon nach wenigen Wochen."),
spacer(),
bullet("Mehr Energie durch bessere Sauerstoffverwertung"),
bullet("Tieferer Schlaf, weniger Schnarchen, keine Apnoe-Angst mehr"),
bullet("Weniger Asthmaanfälle, weniger Medikamente"),
bullet("Nervensystem, das wieder reguliert statt überdreht"),
spacer(),
body("CTA: [ Mehr über die Buteyko-Methode erfahren → ]", { color: GOLD, bold: true }),
spacer(),
// SECTION 5
h2("SEKTION 5 – Über Gerard (die Herkunftsgeschichte)"),
body("Dies ist der emotionalste Teil der Homepage und wird aktuell zu wenig genutzt. Kurz, persönlich, schlagkräftig."),
spacer(),
body("Headline: \"Ich bin Gerard. Ich kenne diesen Atem – weil er mich fast das Leben gekostet hätte.\"", { bold: true }),
spacer(),
body("Textvorschlag:"),
new Paragraph({
spacing: { before: 100, after: 100 },
border: { left: { style: BorderStyle.SINGLE, size: 8, color: GOLD, space: 10 } },
children: [new TextRun({ text: "Ein schwerer Asthmaanfall war der Wendepunkt meines Lebens. Und der Beginn einer Reise, die mich vom Maschinenbau über Yoga, Fasten und Heilpraktik bis zur Buteyko-Methode geführt hat. Heute atme ich freier als mit 30. Und ich begleite Menschen dabei, dasselbe zu erleben – ob mit Asthma, Stress, Schlafproblemen oder dem einfachen Wunsch, sich wieder lebendig zu fühlen.", size: 22, color: GRAY, font: "Arial", italics: true })]
}),
spacer(),
body("CTA: [ Meine Geschichte lesen → ] oder [ Jetzt Erstgespräch buchen → ]", { color: GOLD, bold: true }),
spacer(),
// SECTION 6
h2("SEKTION 6 – Programme (Produktübersicht)"),
body("Klar, scanbar, mit Preisankern. Nicht jedes Detail – nur das Wesentliche."),
spacer(),
new Table({
width: { size: 9026, type: WidthType.DXA },
columnWidths: [2256, 2257, 2257, 2256],
rows: [
new TableRow({ children: [
...([
["Breath Reset\nSession", "90 Min. Einzel-Coaching", "Sofortiger Reset\nfür dein Atemmuster", "ab 120 €"],
["8-Wochen\nProgramm", "Online-Kurs (max. 15 P.)", "Tiefe Transformation\nauf Zeit", "auf Anfrage"],
["Asthma\nCoaching", "Buteyko-Intensiv", "Natürliche Kontrolle\nüber dein Asthma", "auf Anfrage"],
["Corporate\nWorkshop", "Für Teams & Firmen", "Stressresilienz\nfür Ihr Team", "ab 800 €"],
].map(([t, sub, desc, p]) => new TableCell({ borders, width: { size: 2257, type: WidthType.DXA }, shading: { fill: LIGHTGRAY, type: ShadingType.CLEAR }, margins: { top: 140, bottom: 140, left: 100, right: 100 },
children: [
new Paragraph({ alignment: AlignmentType.CENTER, children: [new TextRun({ text: t, bold: true, size: 22, color: DARK, font: "Arial" })] }),
new Paragraph({ alignment: AlignmentType.CENTER, children: [new TextRun({ text: sub, size: 18, color: GRAY, font: "Arial", italics: true })] }),
new Paragraph({ alignment: AlignmentType.CENTER, spacing: { before: 60 }, children: [new TextRun({ text: desc, size: 19, color: GRAY, font: "Arial" })] }),
new Paragraph({ alignment: AlignmentType.CENTER, spacing: { before: 80 }, children: [new TextRun({ text: p, size: 22, bold: true, color: GOLD, font: "Arial" })] }),
]
})))
]}),
]
}),
spacer(),
// SECTION 7
h2("SEKTION 7 – Testimonials"),
body("Mindestens 3 echte Kundenstimmen. Wenn noch keine vorliegen: in den nächsten 4 Wochen aktiv sammeln (per E-Mail oder WhatsApp-Nachricht an bisherige Klienten)."),
spacer(),
body("Format-Empfehlung: Name + Bild (optional) + Ergebnis in einer Zeile + Zitat in 2–3 Sätzen."),
spacer(),
new Table({
width: { size: 9026, type: WidthType.DXA },
columnWidths: [2975, 100, 2975, 100, 2876],
rows: [new TableRow({ children: [
new TableCell({ borders, shading: { fill: "F0EAD6", type: ShadingType.CLEAR }, width: { size: 2975, type: WidthType.DXA }, margins: { top: 140, bottom: 140, left: 120, right: 120 },
children: [
new Paragraph({ children: [new TextRun({ text: "\"...\"", size: 36, color: GOLD, bold: true, font: "Arial" })] }),
new Paragraph({ children: [new TextRun({ text: "[Kundenaussage 1 einfügen]", size: 20, color: GRAY, font: "Arial", italics: true })] }),
new Paragraph({ spacing: { before: 80 }, children: [new TextRun({ text: "— Name, Ergebnis in einer Zeile", size: 18, color: DARK, font: "Arial", bold: true })] }),
] }),
new TableCell({ borders: noBorders, width: { size: 100, type: WidthType.DXA }, children: [new Paragraph({ children: [] })] }),
new TableCell({ borders, shading: { fill: "F0EAD6", type: ShadingType.CLEAR }, width: { size: 2975, type: WidthType.DXA }, margins: { top: 140, bottom: 140, left: 120, right: 120 },
children: [
new Paragraph({ children: [new TextRun({ text: "\"...\"", size: 36, color: GOLD, bold: true, font: "Arial" })] }),
new Paragraph({ children: [new TextRun({ text: "[Kundenaussage 2 einfügen]", size: 20, color: GRAY, font: "Arial", italics: true })] }),
new Paragraph({ spacing: { before: 80 }, children: [new TextRun({ text: "— Name, Ergebnis in einer Zeile", size: 18, color: DARK, font: "Arial", bold: true })] }),
] }),
new TableCell({ borders: noBorders, width: { size: 100, type: WidthType.DXA }, children: [new Paragraph({ children: [] })] }),
new TableCell({ borders, shading: { fill: "F0EAD6", type: ShadingType.CLEAR }, width: { size: 2876, type: WidthType.DXA }, margins: { top: 140, bottom: 140, left: 120, right: 120 },
children: [
new Paragraph({ children: [new TextRun({ text: "\"...\"", size: 36, color: GOLD, bold: true, font: "Arial" })] }),
new Paragraph({ children: [new TextRun({ text: "[Kundenaussage 3 einfügen]", size: 20, color: GRAY, font: "Arial", italics: true })] }),
new Paragraph({ spacing: { before: 80 }, children: [new TextRun({ text: "— Name, Ergebnis in einer Zeile", size: 18, color: DARK, font: "Arial", bold: true })] }),
] }),
]})]
}),
spacer(),
// SECTION 8
h2("SEKTION 8 – Lead-Magnet (E-Mail-Capture)"),
body("Das ist der wichtigste Conversion-Punkt nach der Buchung. Hier baust du deine E-Mail-Liste auf."),
spacer(),
new Table({
width: { size: 9026, type: WidthType.DXA },
columnWidths: [9026],
rows: [new TableRow({ children: [new TableCell({
borders, shading: { fill: "1A1A1A", type: ShadingType.CLEAR }, width: { size: 9026, type: WidthType.DXA }, margins: { top: 200, bottom: 200, left: 280, right: 280 },
children: [
new Paragraph({ alignment: AlignmentType.CENTER, children: [new TextRun({ text: "Starte kostenlos: Die 5-Tage-Atemchallenge", size: 28, bold: true, color: GOLD, font: "Arial" })] }),
new Paragraph({ alignment: AlignmentType.CENTER, spacing: { before: 80 }, children: [new TextRun({ text: "5 Tage. 5 Übungen. Ein neues Atemmuster.", size: 22, color: "CCCCCC", font: "Arial" })] }),
new Paragraph({ alignment: AlignmentType.CENTER, spacing: { before: 80 }, children: [new TextRun({ text: "[ E-Mail eingeben ] [ Jetzt starten → ]", size: 22, bold: true, color: GOLD, font: "Arial" })] }),
new Paragraph({ alignment: AlignmentType.CENTER, spacing: { before: 60 }, children: [new TextRun({ text: "Kein Spam. Jederzeit abbestellbar.", size: 18, color: "888888", font: "Arial", italics: true })] }),
]
})] })]
}),
spacer(),
// SECTION 9
h2("SEKTION 9 – Zielgruppen-Navigation"),
body("Viele Besucher fragen sich: \"Ist das für mich?\" Diese Sektion gibt schnelle Orientierung."),
spacer(),
body("Headline: \"Für wen ist Free Your Breath?\"", { bold: true }),
spacer(),
new Table({
width: { size: 9026, type: WidthType.DXA },
columnWidths: [2952, 100, 2952, 100, 2922],
rows: [new TableRow({ children: [
...[
["Für Menschen mit Asthma", "Natürliche Kontrolle, weniger Medikamente, freier atmen."],
["Für gestresste Führungskräfte", "Nervensystem regulieren, Klarheit gewinnen, Leistung steigern."],
["Für Sportler & Athleten", "CO₂-Toleranz erhöhen, Ausdauer verbessern, Nasenatmung etablieren."],
].flatMap(([t, d], i) => [
new TableCell({ borders, shading: { fill: LIGHTGRAY, type: ShadingType.CLEAR }, width: { size: 2952, type: WidthType.DXA }, margins: { top: 120, bottom: 120, left: 120, right: 120 },
children: [
new Paragraph({ children: [new TextRun({ text: t, bold: true, size: 20, color: DARK, font: "Arial" })] }),
new Paragraph({ children: [new TextRun({ text: d, size: 19, color: GRAY, font: "Arial" })] }),
] }),
...(i < 2 ? [new TableCell({ borders: noBorders, width: { size: 100, type: WidthType.DXA }, children: [new Paragraph({ children: [] })] })] : []),
])
]})]
}),
spacer(),
// SECTION 10
h2("SEKTION 10 – Abschluss-CTA"),
body("Klar, direkt, warm."),
spacer(),
new Table({
width: { size: 9026, type: WidthType.DXA },
columnWidths: [9026],
rows: [new TableRow({ children: [new TableCell({
borders, shading: { fill: "F0EAD6", type: ShadingType.CLEAR }, width: { size: 9026, type: WidthType.DXA }, margins: { top: 200, bottom: 200, left: 280, right: 280 },
children: [
new Paragraph({ alignment: AlignmentType.CENTER, children: [new TextRun({ text: "Bereit, deinen Atem zu befreien?", size: 32, bold: true, color: DARK, font: "Arial" })] }),
new Paragraph({ alignment: AlignmentType.CENTER, spacing: { before: 80 }, children: [new TextRun({ text: "Buch dir ein kostenloses 20-Minuten-Erstgespräch – ich höre zu, und wir schauen gemeinsam, was für dich passt.", size: 22, color: GRAY, font: "Arial" })] }),
new Paragraph({ alignment: AlignmentType.CENTER, spacing: { before: 140 }, children: [new TextRun({ text: "[ Erstgespräch vereinbaren ]", size: 26, bold: true, color: GOLD, font: "Arial" })] }),
]
})] })]
}),
divider(),
h2("Navigation: Empfohlene Menüstruktur"),
body("Aktuell zu viele Punkte und unklare Hierarchie. Empfehlung:"),
spacer(),
new Table({
width: { size: 9026, type: WidthType.DXA },
columnWidths: [2000, 3513, 3513],
rows: [
new TableRow({ children: [
new TableCell({ borders, shading: { fill: DARK, type: ShadingType.CLEAR }, width: { size: 2000, type: WidthType.DXA }, margins: { top: 100, bottom: 100, left: 120, right: 120 },
children: [new Paragraph({ children: [new TextRun({ text: "Menüpunkt", bold: true, size: 20, color: "FFFFFF", font: "Arial" })] })] }),
new TableCell({ borders, shading: { fill: DARK, type: ShadingType.CLEAR }, width: { size: 3513, type: WidthType.DXA }, margins: { top: 100, bottom: 100, left: 120, right: 120 },
children: [new Paragraph({ children: [new TextRun({ text: "Unterpunkte", bold: true, size: 20, color: "FFFFFF", font: "Arial" })] })] }),
new TableCell({ borders, shading: { fill: DARK, type: ShadingType.CLEAR }, width: { size: 3513, type: WidthType.DXA }, margins: { top: 100, bottom: 100, left: 120, right: 120 },
children: [new Paragraph({ children: [new TextRun({ text: "Hinweis", bold: true, size: 20, color: "FFFFFF", font: "Arial" })] })] }),
]}),
...([
["Start", "—", "Zur Homepage"],
["Über mich", "Vita, Geschichte, Methode", "Emotionaler Ankerpunkt"],
["Programme", "Einzel, Kurs, Asthma, Sport, Corporate", "Alle Angebote übersichtlich"],
["Buteyko", "Was ist Buteyko? FAQ, BOLT-Test", "SEO-wichtig, auch für Google"],
["Blog / Wissen", "Artikel, Atemübungen, Videos", "NEU – für SEO und Vertrauen"],
["Kontakt", "Erstgespräch buchen", "Klarer CTA im Menü sichtbar"],
].map(([m, u, h]) => new TableRow({ children: [
new TableCell({ borders, width: { size: 2000, type: WidthType.DXA }, margins: { top: 80, bottom: 80, left: 120, right: 120 },
children: [new Paragraph({ children: [new TextRun({ text: m, bold: true, size: 20, color: DARK, font: "Arial" })] })] }),
new TableCell({ borders, width: { size: 3513, type: WidthType.DXA }, margins: { top: 80, bottom: 80, left: 120, right: 120 },
children: [new Paragraph({ children: [new TextRun({ text: u, size: 20, color: GRAY, font: "Arial" })] })] }),
new TableCell({ borders, width: { size: 3513, type: WidthType.DXA }, margins: { top: 80, bottom: 80, left: 120, right: 120 },
children: [new Paragraph({ children: [new TextRun({ text: h, size: 20, color: GRAY, font: "Arial", italics: true })] })] }),
]})))
]
}),
spacer(),
divider(),
h2("Prioritätenliste: Was zuerst umsetzen?"),
new Table({
width: { size: 9026, type: WidthType.DXA },
columnWidths: [700, 5026, 1500, 1800],
rows: [
new TableRow({ children: [
...["#", "Maßnahme", "Aufwand", "Impact"].map((t, i) => new TableCell({ borders, shading: { fill: DARK, type: ShadingType.CLEAR }, width: { size: [700,5026,1500,1800][i], type: WidthType.DXA }, margins: { top: 80, bottom: 80, left: 80, right: 80 },
children: [new Paragraph({ children: [new TextRun({ text: t, bold: true, size: 20, color: "FFFFFF", font: "Arial" })] })] }))
]}),
...([
["1", "Hero-Text mit SEO-Keyword überarbeiten", "30 Min.", "⭐⭐⭐⭐⭐"],
["2", "3 Testimonials einpflegen", "1 Std.", "⭐⭐⭐⭐⭐"],
["3", "Preisanker bei Programmen ergänzen", "20 Min.", "⭐⭐⭐⭐"],
["4", "Lead-Magnet / E-Mail-Liste einrichten", "1 Tag", "⭐⭐⭐⭐⭐"],
["5", "Corporate-Seite hinzufügen", "2 Std.", "⭐⭐⭐⭐"],
["6", "Herkunftsgeschichte als eigene Sektion im Hero", "1 Std.", "⭐⭐⭐⭐"],
["7", "Blog-Sektion anlegen (2–3 erste Artikel)", "1 Woche", "⭐⭐⭐"],
["8", "Instagram & YouTube verlinken / Widget einbinden", "30 Min.", "⭐⭐⭐"],
].map(([n, m, a, i]) => new TableRow({ children: [
new TableCell({ borders, shading: { fill: LIGHTGRAY, type: ShadingType.CLEAR }, width: { size: 700, type: WidthType.DXA }, margins: { top: 80, bottom: 80, left: 80, right: 80 },
children: [new Paragraph({ alignment: AlignmentType.CENTER, children: [new TextRun({ text: n, bold: true, size: 20, color: GOLD, font: "Arial" })] })] }),
new TableCell({ borders, width: { size: 5026, type: WidthType.DXA }, margins: { top: 80, bottom: 80, left: 120, right: 120 },
children: [new Paragraph({ children: [new TextRun({ text: m, size: 20, color: DARK, font: "Arial" })] })] }),
new TableCell({ borders, width: { size: 1500, type: WidthType.DXA }, margins: { top: 80, bottom: 80, left: 80, right: 80 },
children: [new Paragraph({ children: [new TextRun({ text: a, size: 20, color: GRAY, font: "Arial" })] })] }),
new TableCell({ borders, width: { size: 1800, type: WidthType.DXA }, margins: { top: 80, bottom: 80, left: 80, right: 80 },
children: [new Paragraph({ children: [new TextRun({ text: i, size: 20, font: "Arial" })] })] }),
]})))
]
}),
]
}]
});
// Write all files
Promise.all([
Packer.toBuffer(doc1).then(b => fs.writeFileSync("/mnt/user-data/outputs/FYB_Corporate_Wellness_Seite.docx", b)),
Packer.toBuffer(doc2).then(b => fs.writeFileSync("/mnt/user-data/outputs/FYB_Content_Strategie_Instagram_YouTube.docx", b)),
Packer.toBuffer(doc3).then(b => fs.writeFileSync("/mnt/user-data/outputs/FYB_Homepage_Struktur.docx", b)),
]).then(() => console.log("✅ Alle 3 Dokumente erstellt.")).catch(e => console.error(e));
