// Keynara landing sections below hero const { useState: uS, useEffect: uE, useRef: uR } = React; // ============ TRUST BAR ============ function TrustBar({ t }) { return (
{t.trust.label}
{t.trust.items.map((n, i) => ( {n} ))}
); } // ============ HOW IT WORKS ============ function HowItWorks({ t }) { return (
{t.how.steps.map((s, i) => ( ))}
); } function StepCard({ s }) { return (
{s.n}

{s.t}

{s.d}

); } function SectionHeader({ eyebrow, title, sub, align = 'left', on = 'light' }) { return (
{eyebrow}

{title}

{sub &&

{sub}

}
); } // ============ INSIGHT / PULLQUOTE ============ function Insight({ t }) { return (
{t.insight.eyebrow}
{t.insight.title}

{t.insight.sub}

); } // ============ COMPARISON TABLE ============ function Comparison({ t }) { return (
{/* decorative mint line */}
{t.compare.col_portal}
{t.compare.col_keynara}
{t.compare.rows.map((r, i) => (
{r.k}
{r.p}
{r.n}
))}
); } // ============ PERSONAS ============ function Personas({ t }) { const [active, setActive] = uS(0); const items = t.personas.items; return (
{items.map((p, i) => ( ))}
{items[active].a}

{items[active].t}

{items[active].d}

); } function PersonaScene({ idx }) { // Abstract brand-colored visual per persona — concentric rings with a moving dot const configs = [ { rings: [120, 170, 220], dotPos: [0.35, 0.3] }, { rings: [140, 200, 260], dotPos: [0.7, 0.25] }, { rings: [100, 160, 230, 300], dotPos: [0.25, 0.5] }, { rings: [80, 130, 180, 240], dotPos: [0.6, 0.45] }, ]; const cfg = configs[idx]; return ( {cfg.rings.map((r, i) => ( ))} ); } // ============ MARKET STATS ============ function MarketStats({ t }) { return (
{t.market.stats.map((s, i) => (
{s.v}
{s.l}
))}
); } // ============ FAQ ============ function FAQ({ t }) { const [open, setOpen] = uS(0); return (
{t.faq.eyebrow}

{t.faq.title}

hello@keynara.com
keynara.com · DACH & Italia
{t.faq.items.map((q, i) => ( setOpen(open === i ? -1 : i)} /> ))}
); } function FAQItem({ q, open, onToggle }) { return (

{q.a}

); } // ============ FINAL CTA ============ function FinalCTA({ t, onStart }) { return (
{t.cta.eyebrow}

{t.cta.title}

{t.cta.sub}

); } Object.assign(window, { TrustBar, HowItWorks, Insight, Comparison, Personas, MarketStats, FAQ, FinalCTA, SectionHeader });