import Image from "next/image"; import { getTrustBadges } from "../lib/payload"; // Content now lives in Payload (TrustBadges collection) instead of being // hardcoded here, so copy (e.g. the shipping timeframe/threshold numbers) // can be updated without a code deploy. If the fetch fails or nothing is // seeded yet, the row just doesn't render rather than showing stale // hardcoded fallback text that could drift from the real numbers. export async function TrustRow() { const items = await getTrustBadges(); if (items.length === 0) return null; return ( // Structural breakpoint is lg:, not sm: — a deliberate exception to // the site's sm: (640px) structural consolidation, same category as // Footer's legal-links row (see that component's own comment): // multiple whitespace-nowrap title+description badges side by side // don't fit in one row below ~1024px regardless of fluid scaling. // Confirmed via a real horizontal-overflow measurement against the // live site (2026-07-29): scrollWidth exceeded the viewport by // ~100px at 666px and ~54px at 768px before this fix. // // Outer wrapper only positions the *whole badge group* (center below // sm:, left-aligned sm:-lg:, centered row again at lg:) — it does NOT // align each badge individually. A first attempt put items-center // directly on this container with each badge as a sibling; since // flex's align-items centers each item within the container's own // width independently, badges with different title/description // lengths ended up with different left edges (not lining up with // each other — reported 2026-07-29, exactly the "sonst sieht es // schief aus" risk). Fixed by wrapping all badges in one inner // group (below) that's always internally left-aligned to itself, // then centering/left-aligning that single group as a unit here.
{/* Inner group — shrink-to-fit width (not w-full), so it's exactly as wide as its widest badge; items-start keeps every badge's left edge flush with every other badge's, regardless of each one's own content width. This single group is what the outer wrapper above centers/left-aligns as one block. */}
{items.map((item, i) => (
{i > 0 &&
}

{item.title}

{item.description}

))}
); }