// GDPR: cookie banner + privacy modal const { useEffect: useEG, useState: useSG } = React; function CookieBanner({ t }) { const [visible, setVisible] = useSG(false); useEG(() => { const consent = localStorage.getItem('fq.cookieConsent'); if (!consent) setTimeout(() => setVisible(true), 1200); }, []); const accept = () => { localStorage.setItem('fq.cookieConsent', JSON.stringify({ necessary: true, at: new Date().toISOString() })); setVisible(false); }; const decline = () => { localStorage.setItem('fq.cookieConsent', JSON.stringify({ necessary: false, at: new Date().toISOString() })); setVisible(false); }; if (!visible) return null; return (
{t.cookies.eyebrow}

{t.cookies.body} { e.preventDefault(); window.dispatchEvent(new CustomEvent('openPrivacy')); }} style={{ color: 'var(--pink)', borderBottom: '1px solid var(--pink)' }}>{t.cookies.more}

); } function PrivacyModal({ t }) { const [open, setOpen] = useSG(false); useEG(() => { const onHash = () => { if (window.location.hash === '#privacy') setOpen(true); }; const onCustom = () => setOpen(true); window.addEventListener('hashchange', onHash); window.addEventListener('openPrivacy', onCustom); onHash(); return () => { window.removeEventListener('hashchange', onHash); window.removeEventListener('openPrivacy', onCustom); }; }, []); const close = () => { setOpen(false); if (window.location.hash === '#privacy') history.replaceState(null, '', window.location.pathname); }; if (!open) return null; return (
e.stopPropagation()} style={{ background: 'var(--ivory)', color: 'var(--ink)', maxWidth: 720, width: '100%', borderRadius: 8, padding: 'clamp(32px, 5vw, 64px)', position: 'relative', fontFamily: 'var(--sans)', }}>
{t.privacy.eyebrow}

{t.privacy.title}

{t.privacy.sections.map((s, i) => (

{s.title}

{s.body}

))}
{t.privacy.updated} · {t.privacy.contact} solmichaela@femquity.com
); } window.CookieBanner = CookieBanner; window.PrivacyModal = PrivacyModal;