const SectionBridge = () => { const steps = [ { n: '01', k: 'Diagnóstico', d: 'Mapeamento da cadeia, gaps regulatórios e pontos críticos de auditoria.' }, { n: '02', k: 'Estruturação', d: 'Desenho da arquitetura de dados, governança e responsabilidades.' }, { n: '03', k: 'Automação', d: 'Entra a plataforma Traceply para coleta, validação e auditoria contínua de dados.' }, { n: '04', k: 'Integração', d: 'Processos em campo, integrações com ERP, fornecedores e parceiros.' }, { n: '05', k: 'Operação', d: 'Monitoramento 24/7, atualização regulatória e evolução da cadeia.' }, ]; const scrollerRef = React.useRef(null); const railRef = React.useRef(null); const [activeIdx, setActiveIdx] = React.useState(0); React.useEffect(() => { const sc = scrollerRef.current; const rail = railRef.current; if (!sc || !rail) return; const update = () => { const dots = sc.querySelectorAll('.bridge__dot'); if (dots.length < 2) return; const scRect = sc.getBoundingClientRect(); const firstR = dots[0].getBoundingClientRect(); const lastR = dots[dots.length - 1].getBoundingClientRect(); const startX = (firstR.left + firstR.width / 2) - scRect.left + sc.scrollLeft; const endX = (lastR.left + lastR.width / 2) - scRect.left + sc.scrollLeft; const yCenter = (firstR.top + firstR.height / 2) - scRect.top; rail.style.left = startX + 'px'; rail.style.width = (endX - startX) + 'px'; rail.style.top = (yCenter - 9) + 'px'; rail.style.transform = 'none'; }; update(); const ro = new ResizeObserver(update); ro.observe(sc); sc.querySelectorAll('.bridge__dot').forEach(d => ro.observe(d)); window.addEventListener('resize', update); requestAnimationFrame(update); setTimeout(update, 100); return () => { ro.disconnect(); window.removeEventListener('resize', update); }; }, []); const goTo = (idx) => { const sc = scrollerRef.current; if (!sc) return; const cards = sc.querySelectorAll('.bridge__step'); const card = cards[idx]; if (!card) return; const left = card.offsetLeft - (sc.clientWidth - card.clientWidth) / 2; sc.scrollTo({ left, behavior: 'smooth' }); setActiveIdx(idx); }; return (
); }; const SectionTraceply = () => { return (
Traceply

Tecnologia que sustenta
a operação.

A Traceply é a plataforma que permite automatizar, validar e escalar a conformidade em tempo real — transformando o método Veros em infraestrutura operacional.

Conhecer a plataforma
Compliance Live
Auditoria
Fornecedores
Lotes monitorados · 24h
18,492 +12.4%
{Array.from({ length: 24 }).map((_, i) => { const h = 20 + Math.abs(Math.sin(i * 0.7 + 1.2)) * 70; return (
); })}
{[ ['SP-BR', 'COMPLIANT', 'ok'], ['MG-BR', 'COMPLIANT', 'ok'], ['PA-BR', 'REVIEW', 'warn'], ['MT-BR', 'COMPLIANT', 'ok'], ].map(([node, st, k]) => (
{node}
{st}
))}
); }; window.SectionBridge = SectionBridge; window.SectionTraceply = SectionTraceply;