// Sections: Logos strip, Stats, Solutions grid, Why function LogosStrip({ t }) { return (

{t.logos_label}

{t.logos.map((l, i) => ( {l.name} ))}
); } function Stats({ t }) { return (
{t.stats.map((s, i) => (
{s.value}
{s.label}
{s.sub}
))}
); } function SectionHeader({ eyebrow, title, subtitle, align = 'left' }) { return (
{eyebrow}

{title}

{subtitle &&

{subtitle}

}
); } function Solutions({ t, density }) { return (
{t.solutions.map((s, i) => ( ))}
); } function SolutionCard({ tag, title, desc, span, large, density, icon }) { const [hov, setHov] = useState(false); return (
setHov(true)} onMouseLeave={() => setHov(false)} style={{ gridColumn: `span ${span}`, background: 'var(--bg-elev)', border: '1px solid var(--border)', borderRadius: 'var(--radius-lg)', padding: density === 'dense' ? 22 : 28, minHeight: large ? 340 : 240, display: 'flex', flexDirection: 'column', transition: 'all 200ms ease', borderColor: hov ? 'var(--border-strong)' : 'var(--border)', position: 'relative', overflow: 'hidden', boxShadow: hov ? '0 20px 40px -20px color-mix(in oklch, var(--brand) 30%, transparent)' : 'none', transform: hov ? 'translateY(-2px)' : 'none', }}> {/* corner glow */}
{tag}

{title}

{desc}

En savoir plus
); } function IconGlyph({ name }) { const s = { width: 18, height: 18, stroke: 'var(--brand)', strokeWidth: 1.5, fill: 'none', strokeLinecap: 'round', strokeLinejoin: 'round' }; if (name === 'agent') return ; if (name === 'shield') return ; if (name === 'flow') return ; if (name === 'chart') return ; return null; } function Why({ t }) { return (
{t.why.map((w, i) => (
{w.title}
{w.desc}
))}
); } Object.assign(window, { LogosStrip, Stats, Solutions, SectionHeader, Why, IconGlyph });