// Marketing sections: trust marquee, services, portfolio, process, why, quote, CTA. const { Icon: DSIcon, Badge } = window.ArmaekDesignSystem_06a5c5; function useI18n() { const { lang } = window.ArmaekI18n.useLang(); return { lang, t: window.ArmaekI18n.STR[lang], data: window.ArmaekData.getData(lang) }; } /* ---- Trust marquee band ---- */ function TrustBand() { const { t } = useI18n(); const row = [...t.trust.items, ...t.trust.items]; return (
{t.trust.label}
{row.map((x, i) => ( {x} ))}
); } /* ---- Portfolio with filter chips ---- */ function Portfolio() { const { useReveal, ImagePanel } = window.ArmaekLib; const { t, data } = useI18n(); const ref = useReveal(); return (
{t.portfolio.kicker}

{t.portfolio.title}

{data.portfolio.map(([ic, title, photo, iconImg]) => (
{iconImg ? : }

{title}

))}
); } /* ---- Process ---- */ function Process() { const { useReveal } = window.ArmaekLib; const { t, data } = useI18n(); const ref = useReveal(); return (

{t.process.title}

{data.process.map(([n, title, d], i) => (
{n}

{title}

{d}

))}
); } /* ---- Why Armaek (split with feature list) ---- */ function Why() { const { useReveal, ImagePanel } = window.ArmaekLib; const { t, data } = useI18n(); const ref = useReveal(); return (
{t.why.kicker}

{t.why.title}

{data.values.map(([ic, title, d], i) => (

{title}

{d}

))}
); } /* ---- Quote / statement band ---- */ function QuoteBand() { const { useReveal } = window.ArmaekLib; const { t } = useI18n(); const q = t.quoteBand; const ref = useReveal(); return (

{q.pre}{q.gold}{q.post}

Marek Hupcej ยท {q.role}
); } /* ---- CTA band ---- */ function CtaBand({ onQuote }) { const { useReveal } = window.ArmaekLib; const { t } = useI18n(); const ref = useReveal(); return (

{t.cta.title}

{t.cta.sub}

{t.cta.team}
); } /* ---- Interactive service showcase (tabs, landing) ---- */ const SVC_DEFAULT_PHOTOS = { 'defense-material': 'assets/photos/svc-defense-material.jpg', 'obchodne-zastupenie': 'assets/photos/svc-obchodne-zastupenie.jpg', 'konzultacie': 'assets/photos/svc-konzultacie.jpg', 'logisticka-podpora': 'assets/photos/svc-logisticka-podpora.jpg', }; const ARMAEK_OV = window.ARMAEK_OVERRIDES || {}; const SVC_PHOTOS = {}; ['defense-material', 'obchodne-zastupenie', 'konzultacie', 'logisticka-podpora'].forEach((slug, i) => { SVC_PHOTOS[slug] = (ARMAEK_OV.images && ARMAEK_OV.images.svc && ARMAEK_OV.images.svc[i]) || SVC_DEFAULT_PHOTOS[slug]; }); const WHY_PHOTO = (ARMAEK_OV.images && ARMAEK_OV.images.why) || 'assets/photos/why-armaek.jpg'; const ARMAEK_EMAIL = ARMAEK_OV.email || 'office@armaek.com'; function ServiceShowcase() { const { useReveal, ImagePanel } = window.ArmaekLib; const { t, data } = useI18n(); const ref = useReveal(); const [idx, setIdx] = React.useState(0); const s = data.services[idx]; // Warm the cache for all tab photos so switching tabs never shows a half-loaded image. React.useEffect(() => { Object.values(SVC_PHOTOS).forEach((src) => { const im = new Image(); im.src = window.AURL(src); }); }, []); return (

{t.stacked.title}

{/* Mobile: all services stacked 01 text photo, 02 text photo... */}
{data.services.map((s, i) => (
{String(i + 1).padStart(2, '0')}

{s.title}

{s.lead}

))}
{data.services.map((x, i) => ( ))}

{s.title}

{s.lead}

{s.capabilities.map(([ic, cap]) => (
{cap}
))}
{s.stat[0]} {s.stat[1]}
); } window.Sections = { TrustBand, ServiceShowcase, Portfolio, Process, Why, QuoteBand, CtaBand };