// Footer + Impressum / Privacy modal. const DocModal = ({ title, kind, t, onClose }) => { // kind: "impressum" — flat list-of-lists (address card style) // kind: "privacy" — sectioned: { h, p: [string|{href,label}|paragraph-array] } const isPrivacy = kind === "privacy"; return (
e.stopPropagation()} style={{ background: "var(--bone)", color: "var(--graphite)", maxWidth: isPrivacy ? 720 : 560, width: "100%", maxHeight: "84vh", overflowY: "auto", padding: isPrivacy ? "64px 72px 56px" : "56px 56px 48px", boxShadow: "var(--shadow-image)", position: "relative" }}> · {title} ·
{!isPrivacy &&
{t.impressum_blocks.map((block, i) =>
{block.map((line, j) =>
{line}
)}
)}
} {isPrivacy &&
{t.privacy_intro &&

} {t.privacy_blocks.map((sec, i) =>

{sec.h}

{sec.p.map((para, j) =>

)}

)}
}
); }; const Footer = ({ t, onNav }) => { const [openDoc, setOpenDoc] = React.useState(null); // "impressum" | "privacy" | null const handle = (item) => { if (typeof item === "object" && item.action) setOpenDoc(item.action); }; return ( ); }; window.Footer = Footer;