import Link from "next/link"; import { Reveal, RevealGroup, RevealItem } from "./Reveal"; const tools = [ { icon: { src: "/icon-rocket.svg", w: "3.375rem", h: "4.122rem", transform: "-scale-y-100" }, title: "Mini-Challenge", description: "In 7 Tagen zu mehr Klarheit. Kleine Gewohnheiten, die Großes bewirken.", cta: { label: "Starten", href: "/challenge" }, }, { icon: { src: "/icon-todo.svg", w: "3rem", h: "3.879rem", transform: "-scale-y-100" }, title: "ToDo-Karten", description: "Das Werkzeug für Fokus im Alltag. bringe Struktur in deine Aufgaben und gewinne Zeit zurück.", cta: { label: "Entdecken", href: "/todo-cards" }, }, { icon: { src: "/icon-newsletter.svg", w: "3rem", h: "2.579rem", transform: "-rotate-4 -scale-y-100" }, title: "Impulse & Tipps", description: "Wöchentliche Impulse mit konkreten Ideen und erprobten Tipps für weniger Reibung und mehr Leichtigkeit.", cta: { label: "Anmelden", href: "/newsletter" }, }, ]; export function Tools() { return (
{/* Section header */}

Meine Werkzeuge

Werkzeuge für einen leichteren Alltag.

{/* Tools grid — 3 cols md+, stacked below md; internal icon+text layout stays horizontal at every size, only the outer span changes */} {tools.map((tool) => ( {/* Icon */}
{/* Card content — self-stretch + h-full + justify-between so the CTA always sits at the same bottom edge across all 3 cards, regardless of how many lines the description wraps to. The parent RevealItem's items-start (needed to keep the icon top-aligned, not stretched) otherwise stops this one child from filling the grid-equalized row height — matches the Figma card-content spec (h-full items-start justify-between), which the earlier implementation had dropped. gap-4 alongside justify-between guarantees a minimum text→CTA gap even for the tallest card (the one that defines the row height, and so has ~zero leftover space for justify-between to distribute on its own). */}

{tool.title}

{tool.description}

→ {tool.cta.label}
))}
); }