// Shared atoms: Logo, Nav, Footer, small reused UI const { useState, useEffect, useMemo, useRef } = React; // --- LOGO --------------------------------------------------------------- function AtgLogo({ height = 28, color = 'currentColor' }) { // Hand-condensed glyph from media/atg-logo.svg (white→currentColor) return ( ); } // --- NAV --------------------------------------------------------------- function Nav({ route, go, locale, setLocale }) { const items = [ ['projects', 'Projects'], ['sectors', 'Sectors'], ['services', 'Services'], ['capability', 'Capability'], ['about', 'About'], ['awards', 'Awards'], ['contact', 'Contact'], ]; // On hero pages we let the nav float dark; everything else, light. const dark = route === 'home'; return ( ); } // --- FOOTER ------------------------------------------------------------ function Footer({ go }) { return ( ); } // --- PROJECT CARD ------------------------------------------------------ function ProjectCard({ p, go, index, big }) { const sectorName = (window.ATG.SECTORS.find(s => s.id === p.sector) || {}).name || ''; return ( {e.preventDefault(); go('project:' + p.id);}}>
{p.name}
{String(index).padStart(2,'0')} · {p.year} {sectorName}
{p.name}
{p.location}
{p.scope}
); } // --- SECTION HEAD ------------------------------------------------------ function SectionHead({ idx, eyebrow, title, lead, side }) { return (
{idx ? {idx} : null}{eyebrow}

{title}

{lead &&

{lead}

} {side}
); } // --- STAT BLOCK -------------------------------------------------------- function StatBlock({ s }) { return (
{s.num}{s.plus && +}
{s.lbl}
); } // --- CTA BAND ---------------------------------------------------------- function CtaBand({ go }) { return (
07Start a project

Tell us what you’re building. We’ll quote, plan and deliver it turnkey.

Sector, project type, location, brief, optional drawings or BOQ — that’s all we need to start a conversation. Replies typically within one working day.

); } Object.assign(window, { AtgLogo, Nav, Footer, ProjectCard, SectionHead, StatBlock, CtaBand });