/* PVRescue marketing site — services, work gallery, how it works, why us, brands. */
(function(){
const { Button, Card, Icon, Badge, BrandChip } = window.PVRescueDesignSystem_b3a34e;
const { SiteSection, SiteEyebrow, SiteH2, siteJump } = window;
const SERVICES = [
{ ic: 'sun', t: 'Solar installations', d: 'A right-sized solar + battery system that slashes your bill and pays for itself in a few years. Sunsynk, Deye & Victron.' },
{ ic: 'battery', t: 'Battery backup', d: 'Keep the lights, Wi-Fi and fridge on through any stage of load-shedding — add backup to an existing system.' },
{ ic: 'thermometer', t: 'Pi²R solar geysers', d: 'Heat your geyser straight off the sun — no batteries, no element swap. One of the fastest ways to save.' },
{ ic: 'plug', t: 'Electrical work', d: 'DB boards, wiring, faults and three-phase — by registered electricians, signed off with a CoC.' },
{ ic: 'wrench', t: 'Maintenance & repair', d: 'Servicing, cleaning and fault-finding to keep your solar and electrical systems running at their best.' },
{ ic: 'house', t: 'Farms & agriculture', d: 'Solar and three-phase power for boreholes, sheds, workshops and off-grid farm setups.' },
];
function Services() {
return (
What we doSolar & electrical, end to end
One registered team to install it, maintain it and keep your power on.
{SERVICES.map((s) => (
siteJump('quote')}>
{s.tag && {s.tag}}
{s.t}
{s.d}
Get a quote
))}
);
}
/* ---- Why now: rising costs · ROI · load-shedding returns ---------------- */
const NOW = [
['trending-up', 'Electricity only gets pricier', 'Eskom tariffs have climbed every single year. Solar locks in your power cost instead of paying more every winter.'],
['gauge', 'Your system pays for itself', 'Most homes recover the cost in around 3\u20135 years — then it\u2019s years of near-free power from a system built to last 20+.'],
['zap', 'Load-shedding could return', 'It\u2019s quiet now, but the grid is still under strain. Being ready means you are covered if it comes back — installing now beats the rush.'],
];
function WhyNow() {
const bars = [44, 54, 66, 80, 96];
return (
Why nowThe best time to go solar is while the grid is quiet
{NOW.map(([ic, t, d]) => (
{t}
{d}
))}
} onClick={() => siteJump('quote')}>Lock in today's price
We fit trusted, proven brands — not the cheapest box on the shelf — so your system performs and lasts.
{EQUIP.map(([img, n, cat]) => (
siteJump('quote')} style={{ overflow: 'hidden' }}>
{n}
{cat}
))}
);
}
/* ---- How it works ------------------------------------------------------ */
const STEPS = [
{ ic: 'phone', t: 'Get in touch', d: 'Call, WhatsApp or send the quote form. Tell us what you need.' },
{ ic: 'map-pin', t: 'Site visit', d: 'We assess your home, business or farm and give an honest, fixed quote.' },
{ ic: 'sun', t: 'Install & CoC', d: 'Certified install to SANS 10142-1, tested and handed over with your CoC.' },
{ ic: 'shield-check', t: 'Maintain & support', d: 'Optional maintenance plan and quick call-outs keep it running for years.' },
];
function HowItWorks() {
return (
How it worksFrom first call to CoC
{STEPS.map((s, i) => (
0{i + 1}
{s.t}
{s.d}
))}
);
}
/* ---- Why us ------------------------------------------------------------ */
const WHY = [
['shield-check', 'Registered & insured', 'Qualified, registered electricians — every job to SANS 10142-1 with a Certificate of Compliance.'],
['file-check', 'Honest, fixed quotes', 'A proper site visit and a clear quote up front. No vague estimates, no surprises on the invoice.'],
['sun', 'Quality kit, tidy work', 'Trusted brands — Sunsynk, Deye, Victron, Pi²R — installed neatly and labelled, built to last.'],
['wrench', 'We don\u2019t disappear', 'One local team that answers the phone and comes back for maintenance and call-outs.'],
];
function WhyUs() {
return (
Why PVRescueThe team the Cape trusts with the lights
{WHY.map(([ic, t, d]) => (
{t}
{d}
))}
} onClick={() => siteJump('quote')}>Get a free quote