diff --git a/app/challenge/page.tsx b/app/challenge/page.tsx
index 034a340..77c0222 100644
--- a/app/challenge/page.tsx
+++ b/app/challenge/page.tsx
@@ -1,5 +1,6 @@
import type { Metadata } from "next";
import Link from "next/link";
+import Image from "next/image";
import { Footer } from "../components/Footer";
import { Reveal, RevealGroup, RevealItem } from "../components/Reveal";
@@ -154,6 +155,28 @@ function EmailCapture({ buttonLabel = "Challenge starten" }: { buttonLabel?: str
{buttonLabel}
+ {/* Consent checkbox — this signup's legal basis is consent (email
+ marketing), same wording as the other newsletter forms; colors
+ match this page's own hardcoded palette instead of the shared
+ design tokens, consistent with the rest of the page. */}
+
Keine Werbung. Jederzeit abbestellbar.
@@ -241,10 +264,12 @@ export default function ChallengePage() {
todo-cards hero images; delay={0.15} mirrors their text→image
stagger. */}
-
{/* Badge */}
@@ -293,9 +318,11 @@ export default function ChallengePage() {
// stacked below lg, this page's own structural
// breakpoint) rather than hidden below lg like before.
+ Mit dem Kauf akzeptierst du unsere{" "}
+
+ AGB
+ {" "}
+ und die{" "}
+
+ Datenschutzerklärung
+ .
+
+
-
+ Sichere SSL-Verschlüsselung
@@ -398,7 +411,7 @@ export function CheckoutContent({
{trustBadges.map((b) => (
-
+
{b.title}
{b.description}
@@ -412,7 +425,7 @@ export function CheckoutContent({
which puts the divider under the icon — the two aren't meant
to be identical, see project notes on this pattern). */}
-
+
{/* Conditional on the (unchecked-by-default) consent
checkbox above, not stated as a given — a pre-ticked
diff --git a/app/components/Newsletter.tsx b/app/components/Newsletter.tsx
index ec9274c..670fc9e 100644
--- a/app/components/Newsletter.tsx
+++ b/app/components/Newsletter.tsx
@@ -1,6 +1,20 @@
import type { ReactNode } from "react";
+import Link from "next/link";
+import Image from "next/image";
import { Reveal } from "./Reveal";
+// Same lock icon + copy as /challenge's and /newsletter's EmailCapture —
+// unified across all newsletter-signup forms instead of each having its
+// own wording/color for this trust note.
+function LockIcon() {
+ return (
+
+ );
+}
+
type NewsletterProps = {
title?: ReactNode;
description?: string;
@@ -32,9 +46,11 @@ export function Newsletter({
{/* Decorative envelope icon, tilted -4° as per design */}
-
@@ -73,9 +89,34 @@ export function Newsletter({
- {/* Privacy note */}
-
- Ich achte auf deine Daten. Kein Spam, jederzeit abbestellbar.
+ {/* Consent checkbox — required since this signup's legal
+ basis is consent (email marketing), not the "Ich achte
+ auf deine Daten" trust note alone. Same wording/pattern
+ as NewsletterModal's checkbox. */}
+
+
+ {/* Privacy note — same icon/copy/color as the other
+ newsletter forms (see /challenge's EmailCapture). */}
+
+
+ Keine Werbung. Jederzeit abbestellbar.
diff --git a/app/components/NewsletterModal.tsx b/app/components/NewsletterModal.tsx
index 0bda90e..107c0e0 100644
--- a/app/components/NewsletterModal.tsx
+++ b/app/components/NewsletterModal.tsx
@@ -2,6 +2,7 @@
import { useEffect, useRef } from "react";
import Image from "next/image";
+import Link from "next/link";
import { AnimatePresence, motion } from "motion/react";
const features = [
@@ -149,7 +150,7 @@ export function NewsletterModal({ open, onClose }: { open: boolean; onClose: ()
aria-label="Schließen"
className="absolute top-6 right-6 z-10 size-6 flex items-center justify-center active:scale-90 transition-transform"
>
-
+
{/* modal-top: photo + copy/form, stacked below md */}
@@ -170,7 +171,7 @@ export function NewsletterModal({ open, onClose }: { open: boolean; onClose: ()
uses this exact same asset); without it the icon renders
flipped. */}
-
+
- Ich akzeptiere die Datenschutzerklärung.
+ Ich akzeptiere die{" "}
+
+ Datenschutzerklärung
+
+ .
@@ -224,8 +234,8 @@ export function NewsletterModal({ open, onClose }: { open: boolean; onClose: ()
-
+
Jeden Mittwoch in deinem Postfach
@@ -73,7 +84,7 @@ export function WeeklyImpulsesHero() {
{checklist.map((item) => (
-
+ {item}
))}
@@ -96,9 +107,31 @@ export function WeeklyImpulsesHero() {
+ {/* Consent checkbox — this signup's legal basis is consent
+ (email marketing), same wording/pattern as the shared
+ Newsletter component's and NewsletterModal's checkbox. */}
+
+
-
- Keine Werbung. Jederzeit abbestellbar.
+
+ Keine Werbung. Jederzeit abbestellbar.