// 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.bullets.map((b, i) => (
-
{b}
))}
)}
);
}
function ServiceGrid({ dark, bullets }) {
const services = t("services");
return (
{services.map((s, i) => )}
);
}
function AudienceCard({ a }) {
return (
{a.title}
{a.hook}
{a.msg}
);
}
function AudienceGrid() {
const aud = t("audiences");
return (
);
}
function CoopSteps() {
const steps = t("coopSteps");
return (
{steps.map((s, i) => (
))}
);
}
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 });