/* V2 Header + Footer — softer, plain-language nav. Reuses cart drawer from V1 parts.jsx. */ /* Official brand mark — animated orbiting cell. Used in the header, footer and hero. */ function VCOrbitMark({ size = 44, color = 'var(--v2-accent)', opacity = 1, style = {} }) { return ( ); } /* Site search — overlay panel that finds products and pages. */ function SearchOverlayV2({ open, onClose, onNav }) { const [q, setQ] = React.useState(''); const inputRef = React.useRef(null); React.useEffect(() => { if (!open) return; setQ(''); const t = setTimeout(() => inputRef.current && inputRef.current.focus(), 40); const esc = (e) => { if (e.key === 'Escape') onClose(); }; window.addEventListener('keydown', esc); return () => { clearTimeout(t); window.removeEventListener('keydown', esc); }; }, [open]); if (!open) return null; const term = q.trim().toLowerCase(); const products = (window.VC_PRODUCTS || []).filter((p) => !term || (p.name + ' ' + (p.catLabel || '') + ' ' + (p.blurb || '')).toLowerCase().includes(term) ).slice(0, 8); const pages = [ ['Shop all products', 'compounds'], ['How it works', 'how'], ['Learn', 'insights'], ['About us', 'about'], ['Contact', 'contact'], ].filter(([t]) => !term || t.toLowerCase().includes(term)); return (