diff --git a/app/cart/components/CartContent.tsx b/app/cart/components/CartContent.tsx
new file mode 100644
index 0000000..864492b
--- /dev/null
+++ b/app/cart/components/CartContent.tsx
@@ -0,0 +1,237 @@
+"use client";
+
+import { useState } from "react";
+import Link from "next/link";
+import Image from "next/image";
+import { useCart, removeFromCart, setQuantity } from "../../lib/cart";
+import { PRODUCTS, formatPrice } from "../../lib/products";
+import { SHIPPING_COST, FREE_SHIPPING_THRESHOLD } from "../../lib/shipping";
+import { Reveal } from "../../components/Reveal";
+import { VersandModal } from "../../components/VersandModal";
+
+export function CartContent() {
+ const [versandOpen, setVersandOpen] = useState(false);
+ const cart = useCart();
+ const items = cart
+ .map((entry) => ({ entry, product: PRODUCTS[entry.id] }))
+ .filter((row): row is { entry: typeof cart[number]; product: NonNullable<(typeof row)["product"]> } => Boolean(row.product));
+
+ const subtotal = items.reduce((sum, { entry, product }) => sum + entry.qty * product.price, 0);
+ const shipping = items.length === 0 || subtotal >= FREE_SHIPPING_THRESHOLD ? 0 : SHIPPING_COST;
+ const total = subtotal + shipping;
+
+ return (
+ <>
+ {/* Page header */}
+
+ Startseite
+ ›
+ Warenkorb
+
+ Warenkorb
+
+ {items.length > 0 ? "Schön, dass du da bist." : "Dein Warenkorb ist noch leer."}
+
+ Schau dir unsere Produkte an und finde, was zu dir passt.
+
+ {product.name} +
+{product.description}
+Einzelpreis
++ {formatPrice(product.price)} + inkl. MwSt. +
++ {formatPrice(entry.qty * product.price)} +
+ ++ Bestellübersicht +
+ ++ {shipping === 0 + ? `ab ${formatPrice(FREE_SHIPPING_THRESHOLD)} innerhalb Deutschlands` + : "innerhalb Deutschlands"} +
+inkl. MwSt.
++ Nach deiner Bestellung bekommst du regelmäßig Impulse & Tipps per E-Mail. +
++ Für mehr Klarheit, Fokus und Struktur – jede Woche. +
++ {hasItems ? "Passt perfekt dazu" : "Beliebte Produkte"} +
++ {hasItems ? "Weitere Tools für deinen klaren Alltag." : "Entdecke, was zu dir passt."} +
++ {product.name} +
+{formatPrice(product.price)}
+- Startseite + {/* Breadcrumb — 3 levels (Startseite › Werkzeuge › + 7-Tage-Challenge), matching /todo-cards's and + /newsletter's pattern; was missing "Werkzeuge" in the + middle. Also switched from this page's hardcoded hex + colors to the shared text-body-sm/text-text-muted/ + text-text-primary tokens the other two breadcrumbs use — + text-body-sm is 0.875rem, identical to the old literal + value, so this is a pure consistency fix, not a visual + change. Deliberately NOT part of the centered block below. */} +
+ Startseite › - 7-Tage-Challenge + Werkzeuge + › + 7-Tage-Challenge
- {/* Headline */} -- Die 7-Tage-Challenge für deinen klaren Kopf und mehr Struktur im Alltag. -
+ {/* Subtitle */} ++ Die 7-Tage-Challenge für deinen klaren Kopf und mehr Struktur im Alltag. +
- {/* Checklist */} -{t.quote}
+ + ” + +{t.quote}
+ Melde dich zum Newsletter an und erhalte die 7-Tage-Challenge, mit der du durch mehr Struktur weniger Stress spürst. +
+ + ++ {f.title} +
+{f.desc}
+Neu im Shop
++ ToDo-Karten – Kleine Karten. Große Wirkung. +
++ 50 hochwertige Karten, die dir helfen, deinen Kopf frei zu bekommen und das Wesentliche zu sehen — analog, minimalistisch, für jeden Tag. +
+12,90 €
+inkl. MwSt. zzgl. Versand
+{item.title}
+{item.desc}
++ Versand +
+ ++ So funktioniert's +
++ Wöchentliche Inspiration. Kein Aufwand für dich. +
+{step.title}
+{step.desc}
+{t.quote}
+{t.name}
+{t.role}
++ Das bekommst du jede Woche +
+{b.title}
+{b.desc}
++ + Startseite + + › + + Werkzeuge + + › + Impulse & Tipps +
+ + {/* Everything else — centered in the remaining vertical space at + lg+, same fix as /todo-cards's Hero: keeps the breadcrumb + above at a fixed, cross-page-consistent Y position instead of + its offset drifting with this page's larger content (pill + badge + 4 checklist items vs. /todo-cards's 3, no badge). */} +
+ Impulse & Tipps.
+
+ Wöchentliche Klarheit
+
+ für deinen Alltag.
+
+ Einmal pro Woche bekommst du konkrete Impulse, die dich wirklich weiterbringen – kurz, praktisch und direkt umsetzbar. +
+ ++ {product.name} +
+{formatPrice(product.price)}
+ {product.href && ( + + Mehr erfahren + → + + )} + + {/* flex-1 spacer — pins every card's button to the same Y + regardless of the "Mehr erfahren" line only the + todo-karten card has (see figma-to-nextjs skill's + Tools.tsx equal-height lesson). */} + + +Alle Preise inkl. MwSt., zzgl. Versandkosten.
++ Startseite + › + Shop +
++ Shop +
++ Alles, was du für mehr Klarheit im Alltag brauchst. +
+12,90 €
inkl. MwSt. zzgl. Versand
+ Lieferzeit: {TOTAL_DAYS_DE.min}–{TOTAL_DAYS_DE.max} Werktage innerhalb Deutschlands +
{t.quote}
+ + ” + +{t.quote}
+ + Startseite + + › Werkzeuge @@ -27,37 +43,46 @@ export function TodoKartenHero() { ToDo-Karten
- {/* Heading — 48px Desktop doesn't match any existing type-scale - step, uses the new --text-h-page token (see globals.css). */} -- ToDo-Karten -
-- Kleine Karten. Große Wirkung. + {/* Everything else — centered in the remaining vertical space at + lg+ (the column now stretches to match the image's height, + since lg:items-center was removed above; flex-1 + justify-center + here centers this block within that leftover space instead of + the breadcrumb-inclusive whole column, which is what made the + breadcrumb's Y position drift per page depending on total + content height). */} +
+ ToDo-Karten +
++ Kleine Karten. Große Wirkung. +
++ Ein einfaches Werkzeug, das dir hilft, deinen Kopf frei zu bekommen und das Wesentliche zu sehen.
+ +- Ein einfaches Werkzeug, das dir hilft, deinen Kopf frei zu bekommen und das Wesentliche zu sehen. -
- -+ {title} +
++ Nach Zahlungseingang bereiten wir deine Bestellung in der Regel innerhalb von{" "} + {HANDLING_DAYS.min}–{HANDLING_DAYS.max} Werktagen zum Versand vor. Die Versanddauer + innerhalb Deutschlands beträgt anschließend zusätzlich {TRANSIT_DAYS_DE.min}– + {TRANSIT_DAYS_DE.max} Werktage. +
++ Damit ist deine Bestellung in der Regel nach {TOTAL_DAYS_DE.min}–{TOTAL_DAYS_DE.max}{" "} + Werktagen bei dir, sofern auf der jeweiligen Produktseite nichts anderes angegeben ist. + Als Werktage gelten Montag bis Freitag, ausgenommen gesetzliche Feiertage. +
++ Die Versandkosten innerhalb Deutschlands betragen pauschal {formatPrice(SHIPPING_COST)}{" "} + pro Bestellung. Ab einem Bestellwert von {formatPrice(FREE_SHIPPING_THRESHOLD)} versenden + wir kostenlos. +
+Alle angegebenen Preise verstehen sich inklusive der gesetzlichen Mehrwertsteuer.
++ Aktuell versenden wir ausschließlich innerhalb Deutschlands. Eine Lieferung ins Ausland + ist derzeit nicht möglich. +
++ Der Versand erfolgt über DHL. Sobald deine Bestellung das Lager verlässt, erhältst du + eine E-Mail mit der Sendungsverfolgung. +
++ Bestellst du als Verbraucher:in, trägt das Transportrisiko bei Beschädigung oder Verlust + während des Versands grundsätzlich einfach produktiv — nicht du. +
++ Informationen zu Rückgabe, Rücksendekosten und deinem gesetzlichen Widerrufsrecht findest + du in unserer{" "} + + Widerrufsbelehrung + + . +
++ Startseite + › + Versand +
++ Versand +
++ Transparent, fair und pünktlich — alles zu Kosten, Lieferzeiten und Liefergebiet. +
+