// ...existing code... (function () { const STORAGE_KEY = 'cookie_consent_v1'; // { necessary: true, analytics: bool } const banner = document.getElementById('cookieConsent'); const acceptBtn = document.getElementById('acceptAllCookies'); const saveBtn = document.getElementById('saveCookiePreferences'); const rejectBtn = document.getElementById('rejectAllCookies'); const analyticsCheckbox = document.getElementById('analyticsCookies'); function getPrefs() { try { return JSON.parse(localStorage.getItem(STORAGE_KEY)); } catch (e) { return null; } } function setPrefs(p) { localStorage.setItem(STORAGE_KEY, JSON.stringify(p)); // optional server-readable cookie document.cookie = `cookie_consent=${encodeURIComponent(JSON.stringify(p))}; max-age=${60*60*24*365}; path=/; samesite=lax`; } function hideBanner() { if (!banner) return; banner.style.display = 'none'; banner.setAttribute('aria-hidden', 'true'); } function showBanner() { if (!banner) return; banner.style.display = 'block'; banner.setAttribute('aria-hidden', 'false'); } function loadAnalytics() { if (window.__analyticsLoaded) return; window.__analyticsLoaded = true; var s = document.createElement('script'); s.async = true; s.src = 'https://www.googletagmanager.com/gtag/js?id=G-XXXXXXX'; // <- REPLACE with your GA ID document.head.appendChild(s); window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} window.gtag = window.gtag || gtag; gtag('js', new Date()); gtag('config', 'G-XXXXXXX', { 'anonymize_ip': true }); } function init() { const prefs = getPrefs(); if (!prefs) { showBanner(); } else { hideBanner(); if (prefs.analytics) loadAnalytics(); } if (acceptBtn) acceptBtn.addEventListener('click', () => { setPrefs({ necessary: true, analytics: true }); hideBanner(); loadAnalytics(); }); if (rejectBtn) rejectBtn.addEventListener('click', () => { setPrefs({ necessary: true, analytics: false }); hideBanner(); }); if (saveBtn) saveBtn.addEventListener('click', () => { const analytics = !!(analyticsCheckbox && analyticsCheckbox.checked); setPrefs({ necessary: true, analytics }); hideBanner(); if (analytics) loadAnalytics(); }); // Expose helper for other scripts (contact form) window.cookieConsent = { hasConsent: (type) => { const p = getPrefs(); if (!p) return false; return !!p[type]; } }; } if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init(); })();

Contact Us

Ready to simplify your Loi 25 compliance? Contact us for a free consultation and discover how we can help you protect your data and meet your legal obligations.

Request Your Free Consultation

Fill out the form below and we'll contact you within 24 hours to schedule your free consultation.

Contact Information

๐Ÿ“ง
๐Ÿ“ž
๐Ÿ“

Address

Montreal, Quebec
Canada

๐Ÿ•’

Business Hours

Monday - Friday
9:00 AM - 5:00 PM EST

โšก

Quick Response

We respond to all requests within 24 hours

Frequently Asked Questions

How long does setup take?

+

Official designation can be completed in 24-48 hours. Complete implementation of policies and procedures typically takes 2-4 weeks depending on your organization's complexity.

Do you offer long-term contracts?

+

We offer flexible contracts: monthly, quarterly or annual. Long-term contracts include discounts and additional benefits.

What if I'm not satisfied?

+

We offer a 30-day satisfaction guarantee. If you're not satisfied with our services, we'll provide a full refund.

Can I speak to an existing client?

+

Absolutely! We can connect you with clients in your industry sector for references and testimonials.