/* services.jsx — three pillars. variant: 'cards' (default) | 'rows' */ const SERVICES = [ { icon: 'search', name: 'SEO', href: 'pages/seo.html', desc: 'Technical audits, content strategy and link acquisition that compound into durable organic growth.', points: ['Technical & on-page audits', 'Keyword & content strategy', 'White-hat link building', 'Local & international SEO'], }, { icon: 'code', name: 'Web Development', href: 'pages/web-development.html', desc: 'Bespoke, fast, accessible sites engineered to rank and built to convert — not just to look good.', points: ['Bespoke design & build', 'E-commerce & CRO', 'Core Web Vitals & a11y', 'WordPress & Webflow CMS'], }, { icon: 'bot', name: 'AI Automation', href: 'pages/ai-automation.html', desc: 'Lead capture, nurture flows and service agents that run the busywork so your team scales without limits.', points: ['Lead capture & nurture', 'AI chatbots & agents', 'Reporting automation', 'CRM & custom workflows'], }, ]; function Services({ variant = 'cards' }) { const { Card } = window; return (
What we do

Three disciplines. One strategy.
Compounding results.

Most agencies keep these separate. We run them as one growth engine — so the website ranks, the rankings convert, and the conversions run themselves.

{variant === 'rows' ? (
{SERVICES.map((s, i) => ( 0{i + 1}

{s.name}

{s.desc}

))}
) : (
{SERVICES.map((s) => (

{s.name}

{s.desc}

    {s.points.map((p) => (
  • {p}
  • ))}
Explore {s.name}
))}
)}
); } Object.assign(window, { Services });