/* ===================== CASE STUDIES ===================== */ function CaseStudies() { const featured = CASES[0]; const rest = CASES.slice(1); return (
In the wild

Real businesses, real results.

Carpenters winning better clients. Dance schools filling classes. Studios and trades running on one system instead of four spreadsheets.

Featured
{featured.industry} Tier · {featured.tier}
{featured.client}

{featured.headline}

{featured.summary}

{[featured.stat1, featured.stat2, featured.stat3].map((s, i) =>
{s.v}
{s.l}
)}
Read the case study
{rest.map((c) =>
{c.industry} {c.tier}

{c.headline}

{c.client}

{c.stat1.v}{c.stat1.l}
{c.stat2.v}{c.stat2.l}
View
)}
); } /* Renders the case study image. basePath must be passed from the parent so paths work from both the homepage (basePath="") and case-study pages (basePath="../"). */ function CaseMockup({ id, small, basePath = "", imgSrc }) { const c = CASES.find((x) => x.id === id); if (!c) return null; const src = imgSrc ? basePath + "assets/" + imgSrc : (c.img ? basePath + "assets/" + c.img : null); if (!src) return null; return ( {c.headline} ); } /* LEGACY SVG stubs kept only in case any old page still references these IDs. Remove once old case-study HTML files are retired. */ function _LegacyCaseMockup({ id }) { const common = { width: "100%", height: "100%", preserveAspectRatio: "xMidYMid slice" }; if (id === "plumber-leads") { return ( Book now WhatsApp {/* enquiry feed */} Today's enquiries {[0, 1, 2, 3, 4].map((i) => )} ); } if (id === "roofer-ai") { return ( AI Quote Assistant {/* chat */} QUOTE READY £4,280 Send to client {/* right side - photo placeholder */} photo.jpg SCOPE Full replace · 38m² ); } if (id === "florist-orders") { return ( Briar & Bloom Cart · 2 {/* bouquets grid */} {[0, 1, 2].map((i) => £32 )} {/* delivery banner */} Same-day delivery available for ME1, ME2, ME3 — order in 1h 24m ); } if (id === "dance-school") { return ( {/* hero */} Where Medway dances Ballet · Modern · Tap · Acro · Adult classes Book a taster {/* class schedule */} {[ ["Mon", "Ballet", "4–5 yr"], ["Tue", "Tap", "6–8 yr"], ["Wed", "Modern", "Teen"], ["Thu", "Acro", "9–11 yr"]]. map((row, i) => {row[0]} {row[1]} {row[2]} Book )} ); } if (id === "carpenter") { return ( {/* large image area */} {/* warm wood plank stripes */} {[0, 1, 2, 3, 4, 5, 6, 7].map((i) => )} Quiet craft. Made to last. {/* side menu */} {["Kitchens", "Wardrobes", "Staircases", "Bespoke", "About", "Contact"].map((t, i) => {t} )} ); } if (id === "cafe-loyalty") { return ( {/* phone mockup */} COBB LANE Hi, Theo ☕ Your usual? Flat white · Oat + Pain au chocolat £6.20 Order & pay LOYALTY {[0,1,2,3,4,5,6].map((i) => ( ))} {/* AI host card */} AI HOST · LIVE Morning rush 5 regulars walking in next 8 min {[ ["Theo", "Flat white"], ["Iris", "Oat latte + croissant"], ["Marcus", "Americano · double"], ["Sofia", "Matcha · soy"], ].map((r, i) => ( {r[0][0]} {r[0]} {r[1]} READY ))} ); } if (id === "school-admin") { return ( {["Students", "Classes", "Register", "Invoices", "Parents", "Reports"].map((t, i) => {t} )} {/* main */} Invoices · April {/* table */} {[ ["Sienna B.", "Ballet · Tap", "£64", "Paid"], ["Marcus W.", "Modern", "£28", "Paid"], ["Amelia R.", "Acro · Ballet", "£68", "Sent"], ["Henry T.", "Tap", "£28", "Overdue"], ["Lily P.", "Ballet", "£32", "Paid"], ["Oscar V.", "Modern · Acro", "£64", "Paid"]]. map((row, i) => {row[0]} {row[1]} {row[2]} {row[3]} )} ); } return null; } window.CaseStudies = CaseStudies; window.CaseMockup = CaseMockup;