// agri2-page-2.jsx // Agriculture Industry Page (v2) — Part 2 // Solutions (5-row flow on Paper Cream) + Featured Project (Tilecroft Farms with photo slider). // ============================================================ // AgriSolutions — Paper Cream. 5-step F&B-style solution flow. // 01 Energy Audits → 02 LED → 03 Solar PV → 04 Battery → 05 Electrical // "Understand → Reduce → Generate → Manage peaks → Build long-term." // ============================================================ const AgriSolutions = () => { const rows = [ { idx: '01', kicker: 'Energy Audits', title: 'Identify what\u2019s driving farm consumption.', body: 'A 12-month audit — covering at least one full grain drying season — establishes where electricity is consumed across drying, irrigation, ventilation, refrigeration, and lighting. The basis for sizing every other measure.', img: `${window.GI_BASE}assets/projects/energy-audit.webp`, href: '/solutions/energy-audits/', }, { idx: '02', kicker: 'LED Lighting', title: 'Reduce baseline load across barns and outbuildings.', body: 'LED retrofits reduce lighting consumption in barns, processing buildings, and equipment yards while improving illumination quality for livestock welfare and worker safety.', img: `${window.GI_BASE}assets/projects/led-lift-install.jpg`, href: '/solutions/led-lighting/', }, { idx: '03', kicker: 'Solar PV', title: 'Offset daytime farm demand from the roof.', body: 'Barn roofs, processing buildings, and outbuildings make ideal solar surfaces. Tilecroft Farms achieved 82% annual offset on a 79.6 kW barn-roof system — the highest verified offset of any GI project across all sectors.', img: `${window.GI_BASE}assets/projects/tilecroft-aerial.jpg`, href: '/solutions/commercial-solar/', }, { idx: '04', kicker: 'Battery Storage', title: 'Manage grain drying demand peaks.', body: 'Battery storage addresses demand-charge exposure during the autumn drying season — without needing to fully offset the energy volume. Also unlocks IESO demand response for farms with flexible loads.', img: `${window.GI_BASE}assets/solar-battery-storage.webp`, href: '/solutions/battery-storage/', }, { idx: '05', kicker: 'Electrical Infrastructure', title: 'Build around future capacity.', body: 'Service upgrades, distribution planning, and interconnection coordination support solar, storage, EV charging, and expanded processing capacity on a single delivery path.', img: `${window.GI_BASE}assets/projects/vicwest-mississauga-winter.jpg`, href: '/about/contact/', }, ]; const flow = [ 'Understand the operation', 'Reduce load', 'Generate power', 'Manage peaks', 'Build long-term infrastructure', ]; return (
{/* Flow rail */}
The story
{/* Rows */}
{rows.map((r, i) => ( {r.idx} —
{r.kicker {r.kicker}
{r.kicker}

{r.title}

{r.body}

))}
); }; // ============================================================ // AgriCaseStudy — Featured Project (Tilecroft Farms) with photo slider. // Paper White surface. Mirrors the Mun page's slider + spec layout. // ============================================================ const AGRI_FEATURED_SLIDES = [ { label: 'Tilecroft Farms · Inverter Bank', caption: 'Osgoode, ON · 79.6 kW DC · Multi-plane barn-roof installation', src: `${window.GI_BASE}assets/projects/tilecroft/tilecroft_01.webp`, }, { label: 'Tilecroft Farms · The Owners', caption: 'Roof-mounted bifacial modules across multiple roof planes', src: `${window.GI_BASE}assets/projects/tilecroft/tilecroft_02.webp`, }, { label: 'R Brush Farms · Full Farm', caption: 'Blenheim, ON · 129.8 kW DC · Adjacent processing building roofline', src: `${window.GI_BASE}assets/projects/tilecroft/tilecroft_03.webp`, } ]; const AgriCaseStudy = () => { const [idx, setIdx] = React.useState(0); const slides = AGRI_FEATURED_SLIDES; const total = slides.length; const slide = slides[idx]; const go = (n) => setIdx(((n % total) + total) % total); const stats = [ { big: '79.6 kW', label: 'DC system size', sub: 'Roof · multi-plane bifacial' }, { big: '82%', label: 'Annual solar offset', sub: 'Highest verified GI offset, all sectors' }, { big: 'Osgoode', label: 'Location', sub: 'Working mixed-use farm operation' }, { big: 'Mar 2023', label: 'Commercial operation', sub: 'REAP-eligible project structure' }, ]; const spec = [ { l: 'Location', v: 'Osgoode, Ontario' }, { l: 'Operation', v: 'Mixed-use farm · ventilation, lighting, refrigeration' }, { l: 'System size', v: '79.6 kW DC' }, { l: 'Mount type', v: 'Roof · multi-plane bifacial' }, { l: 'Annual offset',v: '82% of facility consumption' }, { l: 'Funding', v: 'REAP-eligible project structure' }, { l: 'Commissioned', v: 'March 2023' }, ]; const also = [ { name: 'R Brush Farms', loc: 'Blenheim, ON', size: '129.8 kW DC', off: '51.6% solar offset', com: 'Greenhouse · row-crop operation' }, { name: 'Tilecroft Farms', loc: 'Osgoode, ON', size: '79.6 kW DC', off: '82% solar offset', com: 'Commissioned March 2023' }, { name: 'Bentinck Packers', loc: 'Hanover, ON', size: '13.7 kW DC', off: '8.1% solar offset', com: 'Agricultural processing' }, { name: 'Gerber Meats Ltd.',loc: 'Millbank, ON', size: '86 kW DC', off: '89.2% solar offset', com: 'Agricultural processing' }, ]; return (
{/* ===== SLIDER ===== */}
{slides.map((s, i) => (
{s.label}
))} {/* Photo location/spec strip */}
{/* Prev / Next */}
{/* Thumbnail strip */}
{slides.map((s, i) => ( ))}
{/* Results */}
Project results
{stats.map((s, i) => (
0 ? 28 : 0, borderRight: i < stats.length - 1 ? '1px solid rgba(15,33,51,0.14)' : 'none', }}>
{s.big}
{s.label}
{s.sub}
))}
{/* Spec + Also-in-sector */}
System details · Tilecroft Farms
{spec.map((s, i) => (
{s.l}
{s.v}
))}
Also in this sector
    {also.map((p, i) => (
  • {p.name}
    {p.loc}
    {p.size} · {p.off} · {p.com}
  • ))}
); }; // ============================================================ // AgriSolutionsGreen — Soft Green. Mirrors the F&B "cream" Solutions // layout — header + barn schematic on left, 5-row interactive solutions // list on right. Solar panels drawn as proper side-profile cross-sections // on standoff legs above the pitched barn roof. // ============================================================ const AgriBarnSchematic = ({ activeIndex }) => { const W = 540; const H = 360; // On soft-green surface: amber stays for highlight, all other strokes/text white-on-green. const amber = 'rgba(233,199,134,1)'; const amberFill= 'rgba(233,199,134,0.18)'; const ink = 'rgba(255,255,255,0.55)'; const inkDim = 'rgba(255,255,255,0.32)'; const inkFaint = 'rgba(255,255,255,0.18)'; const inkText = 'rgba(255,255,255,0.62)'; const zones = [ // 01 Commercial Solar — barn rooftop { id: 0, label: '01', cx: 200, cy: 96, hl: }, // 02 Battery — BESS pad to right of barn { id: 1, label: '02', cx: 462, cy: 244, hl: }, // 03 Energy Audits — whole farm ring { id: 2, label: '03', cx: 220, cy: 200, hl: }, // 04 Grant Management — programme layer banner under ground { id: 3, label: '04', cx: 110, cy: 312, hl: }, ]; return (
{/* Ground line + field hatch */} {[290, 296, 302, 308, 314, 320].map((y, i) => ( ))} {/* BARN — gabled outline */} {/* Barn doors */} {/* Side windows */} {/* GRAIN BINS — permanent features (right of barn) */} {/* Bin 1 */} {[230, 244, 258, 272].map(y => ( ))} {/* Bin 2 (smaller) */} GRAIN · DRYER {/* Roof solar panels — Commercial Solar zone (01) */} {(() => { const panelLen = 22; const panelThick = 2; const legH = 5; const slope = 56 / 120; const angleDeg = Math.atan(slope) * 180 / Math.PI; const positions = []; for (let i = 0; i < 5; i++) { const cx = 100 + i * 22; const roofY = 132 - (cx - 80) * slope; positions.push({ cx, roofY, angle: -angleDeg, key: `L${i}` }); } for (let i = 0; i < 5; i++) { const cx = 212 + i * 22; const roofY = 76 + (cx - 200) * slope; positions.push({ cx, roofY, angle: angleDeg, key: `R${i}` }); } const panelStroke = activeIndex === 0 ? amber : ink; const panelFill = activeIndex === 0 ? amber : ink; const legStroke = activeIndex === 0 ? amber : inkDim; return positions.map(({ cx, roofY, angle, key }) => { const x0 = cx - panelLen / 2; const x1 = cx + panelLen / 2; const yPanelTop = roofY - legH - panelThick; const yLegTop = roofY - legH; const legInset = 3; return ( ); }); })()} {/* Interior baseline detail — stalls / equipment markers */} {[170, 220, 270].map(x => ( ))} {/* Outdoor BESS pad — Battery Storage zone (02) */} {[0,1,2,3,4].map(i => ( ))} {[0,1,2,3,4].map(i => ( ))} {/* Tie-line back to barn */} BESS {/* Whole-farm audit ring — Energy Audits (03) */} {/* Grant programme layer — Grant Management (04) */} REAP {zones[activeIndex].hl} {zones.map((z, i) => { const isActive = i === activeIndex; return ( {z.label} ); })}
); }; const AgriSolutionsGreen = () => { const rows = [ { idx: '01', icon: 'sun', name: 'Commercial Solar', zone: 'Barn rooftop', tag: 'Generate from the roof you already own.', why: 'Barn roofs and adjacent processing-building rooflines are the most common surfaces for agricultural solar in Ontario. Sized to the 12-month load profile — Tilecroft Farms achieved 82% annual offset on a 79.6 kW barn-roof system.', href: '/solutions/commercial-solar/' }, { idx: '02', icon: 'battery-charging', name: 'Battery Storage', zone: 'Mechanical pad', tag: 'Manage grain drying demand peaks.', why: 'Storage paired with solar to manage demand-charge exposure during the autumn drying peak, support irrigation cycles, and qualify for IESO demand response programs.', href: '/solutions/battery-storage/' }, { idx: '03', icon: 'clipboard-list', name: 'Energy Audits', zone: 'Whole operation', tag: 'Establish the 12-month load baseline.', why: 'ASHRAE-grade audits scoped to the agricultural year — drying, irrigation, ventilation, refrigeration. Twelve-month interval data is the basis for any generation or storage decision.', href: '/solutions/energy-audits/' }, { idx: '04', icon: 'file-check', name: 'Grant Management', zone: 'Programme layer', tag: 'REAP applications, managed end-to-end.', why: 'REAP, Canadian Agricultural Adaptation, IESO programs, and Canada Infrastructure Bank financing — eligibility screened during assessment, applications managed end-to-end alongside the project.', href: '/resources/rebates-and-incentives/' }, ]; const [active, setActive] = React.useState(0); return (
); }; Object.assign(window, { AgriSolutions, AgriCaseStudy, AgriSolutionsGreen, AgriBarnSchematic });