// blocks.jsx — reusable content sections built on i18n data function TrustBar() { const items = [["a", "aL"], ["b", "bL"], ["c", "cL"], ["d", "dL"]]; return (
{items.map(([n, l], i) => (
{t("trust." + n)}
{t("trust." + l)}
))}
); } function PromiseBand() { return (
{t("home.promiseEyebrow")}

{t("home.promiseTitle")}

{t("home.promiseText")}

); } function ServiceCard({ s, dark }) { return (

{s.title}

{s.desc}

{s.bullets && ( )} {s.icon === "anchor" && s.bullets && (
)}
); } function ServiceGrid({ dark, bullets }) { const services = t("services"); return (
{services.map((s, i) => )}
); } // CodixLightbox — kleines Karussell für die coDiagnostiX-Planungsbilder. // Backdrop-Klick / Esc schließt, Pfeiltasten blättern. function CodixLightbox({ onClose }) { const shots = t("codiagnostix.shots"); const n = shots.length; const [idx, setIdx] = React.useState(0); const go = React.useCallback((d) => setIdx((i) => (i + d + n) % n), [n]); React.useEffect(() => { const onKey = (e) => { if (e.key === "Escape") onClose(); else if (e.key === "ArrowRight") go(1); else if (e.key === "ArrowLeft") go(-1); }; window.addEventListener("keydown", onKey); const prev = document.body.style.overflow; document.body.style.overflow = "hidden"; return () => { window.removeEventListener("keydown", onKey); document.body.style.overflow = prev; }; }, [go, onClose]); const navBtn = { width: 46, height: 46, borderRadius: "50%", border: "1px solid var(--line-gold)", background: "rgba(10,10,10,0.55)", color: "var(--gold-300)", display: "flex", alignItems: "center", justifyContent: "center", cursor: "pointer", flexShrink: 0 }; const shot = shots[idx]; const stop = (e) => e.stopPropagation(); return (
{t("codiagnostix.title")}
{t("codiagnostix.note")}
{shot.cap}
{shot.cap}
{shots.map((_, i) => ( ))}
); } // Trigger-Link in der Implantologie-Kachel — öffnet das Planungs-Karussell. function ImplantPlanningTrigger() { const [open, setOpen] = React.useState(false); const [hover, setHover] = React.useState(false); return ( {open && setOpen(false)} />} ); } function AudienceCard({ a }) { return (
{a.title}

{a.hook}

{a.msg}

{a.key === "implantologie" && }
); } function AudienceGrid() { const aud = t("audiences"); return (
{aud.map((a, i) => )}
); } function CoopSteps() { const steps = t("coopSteps"); return (
{steps.map((s, i) => (
{s.n}

{s.t}

{s.d}

))}
); } function FinalCTA() { const phone = t("contactData.phone"); return (

{t("home.finalTitle")}

{t("home.finalText")}

); } function Testimonials({ dark }) { const items = t("testimonials"); return (
{items.map((q, i) => (
{q.quote}
{q.name}
{q.role}
))}
); } Object.assign(window, { TrustBar, PromiseBand, ServiceCard, ServiceGrid, AudienceCard, AudienceGrid, CoopSteps, FinalCTA, Testimonials, CodixLightbox, ImplantPlanningTrigger });