// bodymap.jsx — interactive pain selector function BodyMap({ lang }) { const t = COPY[lang].bodymap; const [area, setArea] = React.useState("back"); const areas = t.areas; const current = areas[area]; // Coordinates on the 1122×1402 anatomy photo (front figure left, back figure right) const R = window.__resources || {}; const figureSrc = R.anatomy || "assets/anatomy.png"; const hotspots = [ { id: "neck", cx: 355, cy: 238, r: 42 }, { id: "shoulder", cx: 240, cy: 308, r: 48 }, { id: "back", cx: 840, cy: 455, r: 62 }, { id: "hip", cx: 852, cy: 650, r: 58 }, { id: "knee", cx: 315, cy: 945, r: 46 }, { id: "ankle", cx: 300, cy: 1245, r: 40 }, { id: "fascia", cx: 448, cy: 705, r: 42 }, ]; return (
{t.eyebrow}

{t.title}

{t.subtitle}

{/* hotspots over the anatomy photo */} {hotspots.map((h) => ( setArea(h.id)} style={{ cursor: "pointer" }}> {area === h.id && ( )} {String(hotspots.findIndex(x => x.id === h.id) + 1).padStart(2, "0")} ))}
{current.label}

{current.title}

{current.desc}

{current.therapies.map((th, i) => {th})}
{t.specialistLabel}
{current.therapies.join(" · ")}
{ e.preventDefault(); const el = document.getElementById("booking"); if (el) window.scrollTo({ top: el.offsetTop - 70, behavior: "smooth" }); }}> {COPY[lang].cta_book}
); } Object.assign(window, { BodyMap });