// Hero — animated backdrop, stacked headline with gold sheen word, stats. const HERO_DEFAULT_SLIDES = [ 'assets/photos/hero-1.jpg', 'assets/photos/hero-2.jpg', 'assets/photos/hero-3.jpg', 'assets/photos/hero-4.jpg', ]; const HERO_OV = (window.ARMAEK_OVERRIDES && window.ARMAEK_OVERRIDES.images) || {}; const HERO_SLIDES = HERO_DEFAULT_SLIDES.map((d, i) => (HERO_OV.hero && HERO_OV.hero[i]) || d); function HeroSlides({ label }) { const [idx, setIdx] = React.useState(0); React.useEffect(() => { if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) return; const id = setInterval(() => setIdx((i) => (i + 1) % HERO_SLIDES.length), 5200); return () => clearInterval(id); }, []); return (
{HERO_SLIDES.map((src, i) => ( ))}
); } function Hero({ onQuote }) { const { Icon } = window.ArmaekDesignSystem_06a5c5; const { useReveal, Counter } = window.ArmaekLib; const { lang } = window.ArmaekI18n.useLang(); const t = window.ArmaekI18n.STR[lang].hero; const ref = useReveal(); const statDefaults = [[3, ''], [8, ''], [3, ''], [100, '%']]; const oStats = (window.ARMAEK_OVERRIDES || {}).stats; const stats = statDefaults.map((d, i) => { const v = oStats && oStats[i]; if (!v) return d; const m = String(v).match(/^(\d+)\s*(.*)$/); return m ? [parseInt(m[1], 10), m[2]] : d; }); return (
{t.kicker}

{t.h1a}
{t.h1gold}

{t.lead}

{t.more}
{/* Mobile-only CTA row: headline -> photo -> buttons */}
{t.more}
{stats.map(([n, s], i) => (
{t.stats[i]}
))}
); } window.Hero = Hero;