Politique de confidentialité

1. Responsable du traitement

Fleuris, https://repere-info.xyz, contact: [email protected], tél: +33 5 90 12 34 56.

Dernière mise à jour:

2. Données collectées

3. Finalités et bases légales

Fourniture des services, gestion du compte, support, prospection (consentement), amélioration continue (intérêt légitime).

4. Durées de conservation

Les données sont conservées aussi longtemps que nécessaire pour la finalité, puis archivées ou supprimées.

5. Droits des personnes

Accès, rectification, effacement, limitation, opposition, portabilité. Contact: [email protected].

Vous disposez également du droit d’introduire une réclamation auprès de la CNIL.

6. Cookies

Nous utilisons des cookies essentiels au fonctionnement. Votre consentement est recueilli via un bandeau dédié.

Vous pouvez à tout moment modifier vos préférences en ouvrant le panneau “Préférences cookies”.

Ouvrir les préférences cookies

7. Sécurité

Mesures techniques et organisationnelles sont mises en place pour protéger vos données.

8. Contact

Pour toute question relative à cette politique ou l’exercice de vos droits, contactez-nous à [email protected] ou au +33 5 90 12 34 56.

Thème

Système

'), fetch('./footer.html').then(r=>r.text()).catch(()=>' ') ]); document.getElementById('site-header').innerHTML=h; document.getElementById('site-footer').innerHTML=f; initUIBindings(); initCookieConsent(); } function initUIBindings(){ document.addEventListener('click',(e)=>{ const o=e.target.closest('[data-open]'); const c=e.target.closest('[data-close]'); if(o){ const id=o.getAttribute('data-open'); const m=document.getElementById(id); if(m){ m.classList.remove('hidden'); m.setAttribute('aria-hidden','false'); if(m.classList.contains('e9q6v')){ // modal overlay style section m.classList.add('flex'); } const focusable=m.querySelector('[tabindex]'); if(focusable){try{focusable.focus()}catch(_){}} } } if(c){ const sel=c.getAttribute('data-close'); const m = sel ? document.querySelector(sel) : c.closest('[role="dialog"]'); if(m){ m.setAttribute('aria-hidden','true'); if(m.classList.contains('e9q6v')) m.classList.remove('flex'); m.classList.add('hidden'); } } const modalOverlay=e.target.closest('#cookie-settings-modal'); if(modalOverlay && e.target===modalOverlay){ modalOverlay.setAttribute('aria-hidden','true'); modalOverlay.classList.remove('flex'); modalOverlay.classList.add('hidden'); } const themeToggle=e.target.closest('#theme-toggle'); if(themeToggle){toggleTheme()} const ccAction=e.target.closest('[data-cc]'); if(ccAction){handleCookieAction(ccAction.getAttribute('data-cc'))} const togglePref=e.target.closest('[data-toggle-key]'); if(togglePref){toggleCookiePref(togglePref.getAttribute('data-toggle-key'))} }); document.addEventListener('keydown',(e)=>{ if((e.key==='Enter'||e.key===' ') && (e.target.matches('[role="button"]')||e.target.closest('[role="button"]'))){ e.preventDefault(); e.target.click(); } if(e.key==='Escape'){ const modals=document.querySelectorAll('[role="dialog"]:not(.hidden)'); modals.forEach(m=>{ m.setAttribute('aria-hidden','true'); if(m.classList.contains('e9q6v')) m.classList.remove('flex'); m.classList.add('hidden'); }); } }); } function getStoredTheme(){ try{return localStorage.getItem('theme')||'system'}catch(_){return 'system'} } function storeTheme(v){ try{localStorage.setItem('theme',v)}catch(_){} } function systemPrefersDark(){return window.matchMedia&&window.matchMedia('(prefers-color-scheme: dark)').matches} function currentThemeIsDark(){ const t=getStoredTheme(); return t==='dark'||(t==='system'&&systemPrefersDark()); } function applyThemeClasses(){ const isDark=currentThemeIsDark(); const body=document.body; const main=document.querySelector('main'); const header=document.getElementById('site-header'); const footer=document.getElementById('site-footer'); const banner=document.getElementById('cookie-banner'); const modal=document.getElementById('cookie-settings-modal'); const themeBadge=document.getElementById('theme-state'); function setEl(el, lightClasses, darkClasses){ if(!el) return; lightClasses.forEach(c=>el.classList.remove(c)); darkClasses.forEach(c=>el.classList.remove(c)); if(isDark){darkClasses.forEach(c=>el.classList.add(c))} else {lightClasses.forEach(c=>el.classList.add(c))} } setEl(body, ['bg-white','text-gray-900'], ['bg-gray-950','text-gray-100']); if(main){ main.querySelectorAll('h1,h2,h3').forEach(h=>{ h.classList.remove('text-gray-900','text-gray-100'); h.classList.add(isDark?'text-gray-100':'text-gray-900'); }); main.querySelectorAll('p,ul,li').forEach(t=>{ t.classList.remove('text-gray-800','text-gray-700','text-gray-600','text-gray-300','text-gray-400'); t.classList.add(isDark?'text-gray-300':'text-gray-800'); });} if(header){ header.classList.remove('bg-white','bg-gray-950','border-gray-200','border-gray-800'); header.classList.add('border-b'); header.classList.add(isDark?'bg-gray-950':'bg-white', isDark?'border-gray-800':'border-gray-200'); const hs=header.querySelectorAll('a,p,li,span'); hs.forEach(n=>{ n.classList.remove('text-gray-900','text-gray-700','text-gray-300','text-gray-100'); n.classList.add(isDark?'text-gray-100':'text-gray-900'); }); } if(footer){ footer.classList.remove('bg-white','bg-gray-950','border-gray-200','border-gray-800','text-gray-600','text-gray-300'); footer.classList.add('border-t'); footer.classList.add(isDark?'bg-gray-950':'bg-white', isDark?'border-gray-800':'border-gray-200', isDark?'text-gray-300':'text-gray-600'); } if(banner){ banner.classList.remove('bg-white/95','bg-gray-900/90','border-gray-200','border-gray-800'); banner.classList.add(isDark?'bg-gray-900/90':'bg-white/95', isDark?'border-gray-800':'border-gray-200'); const t = banner.querySelectorAll('h3,p,li'); t.forEach(n=>{ n.classList.remove('text-gray-900','text-gray-800','text-gray-700','text-gray-600','text-gray-300','text-gray-200','text-white'); n.classList.add(isDark?'text-gray-200':'text-gray-800'); }); } if(modal){ const card = modal.querySelector('.o2f1m'); if(card){ card.classList.remove('bg-white','bg-gray-900'); card.classList.add(isDark?'bg-gray-900':'bg-white'); const tt=card.querySelectorAll('h3,h4,p,li,section'); tt.forEach(n=>{ n.classList.remove('text-gray-900','text-gray-800','text-gray-700','text-gray-600','text-gray-300','text-gray-200','text-white'); n.classList.add(isDark?'text-gray-200':'text-gray-800'); }); const boxes=card.querySelectorAll('.s1k8t,.r6c1m,.b8z4v'); boxes.forEach(b=>{ b.classList.remove('border-gray-200','border-gray-700'); b.classList.add(isDark?'border-gray-700':'border-gray-200'); }); const pills=card.querySelectorAll('[data-toggle-key]'); pills.forEach(p=>{ p.classList.remove('bg-gray-100','bg-green-100','text-gray-700','text-green-800','hover:bg-gray-200','hover:bg-green-200'); if(isPrefEnabled(p.getAttribute('data-toggle-key'))){ p.classList.add(isDark?'bg-green-900/40':'bg-green-100', isDark?'text-green-300':'text-green-800'); }else{ p.classList.add(isDark?'bg-gray-800':'bg-gray-100', isDark?'text-gray-300':'text-gray-700'); } }); } } if(themeBadge){ const t=getStoredTheme(); themeBadge.textContent = t==='system' ? 'Système' : (t==='dark'?'Sombre':'Clair'); themeBadge.classList.remove('bg-gray-100','bg-gray-800','text-gray-600','text-gray-300'); themeBadge.classList.add(isDark?'bg-gray-800 text-gray-300':'bg-gray-100 text-gray-600'); } } function initTheme(){ applyThemeClasses(); try{ window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change',()=>{if(getStoredTheme()==='system') applyThemeClasses()}); }catch(_){} } function toggleTheme(){ const cur=getStoredTheme(); const next = cur==='system' ? (systemPrefersDark()?'light':'dark') : (cur==='dark'?'light':(cur==='light'?'system':'system')); storeTheme(next); applyThemeClasses(); } function getConsent(){ try{ const raw=localStorage.getItem('cookieConsent'); return raw?JSON.parse(raw):null; }catch(_){return null} } function setConsent(obj){ try{localStorage.setItem('cookieConsent',JSON.stringify(obj))}catch(_){} } function getPrefs(){ try{ const raw=localStorage.getItem('cookiePrefs'); return raw?JSON.parse(raw):{analytics:false,marketing:false}; }catch(_){return {analytics:false,marketing:false}} } function setPrefs(p){ try{localStorage.setItem('cookiePrefs',JSON.stringify(p))}catch(_){} } function isPrefEnabled(k){const p=getPrefs();return !!p[k]} function updatePrefsUI(){ const els=document.querySelectorAll('[data-toggle-key]'); els.forEach(el=>{ const key=el.getAttribute('data-toggle-key'); const on=isPrefEnabled(key); el.setAttribute('aria-pressed', on?'true':'false'); el.textContent = on ? 'Activé' : 'Désactivé'; el.classList.remove('bg-gray-100','bg-gray-800','bg-green-100','bg-green-900/40','text-gray-700','text-gray-300','text-green-800','text-green-300','hover:bg-gray-200','hover:bg-green-200'); const isDark=currentThemeIsDark(); if(on){ el.classList.add(isDark?'bg-green-900/40':'bg-green-100', isDark?'text-green-300':'text-green-800'); }else{ el.classList.add(isDark?'bg-gray-800':'bg-gray-100', isDark?'text-gray-300':'text-gray-700'); } }); } function toggleCookiePref(key){ const p=getPrefs(); p[key]=!p[key]; setPrefs(p); updatePrefsUI(); } function showBanner(){ const b=document.getElementById('cookie-banner'); if(!b) return; b.classList.remove('hidden','translate-y-full'); b.classList.add('translate-y-0'); applyThemeClasses(); } function hideBanner(){ const b=document.getElementById('cookie-banner'); if(!b) return; b.classList.add('hidden'); } function openSettings(){ const m=document.getElementById('cookie-settings-modal'); if(!m) return; updatePrefsUI(); m.classList.remove('hidden'); m.classList.add('flex'); m.setAttribute('aria-hidden','false'); } function closeSettings(){ const m=document.getElementById('cookie-settings-modal'); if(!m) return; m.classList.add('hidden'); m.classList.remove('flex'); m.setAttribute('aria-hidden','true'); } function handleCookieAction(type){ if(type==='accept'){ setConsent({status:'accepted',ts:Date.now()}); setPrefs({analytics:true,marketing:true}); hideBanner(); closeSettings(); }else if(type==='reject'){ setConsent({status:'rejected',ts:Date.now()}); setPrefs({analytics:false,marketing:false}); hideBanner(); closeSettings(); }else if(type==='save'){ setConsent({status:'custom',ts:Date.now()}); closeSettings(); hideBanner(); } } function initCookieConsent(){ const c=getConsent(); let countdown=20; const cEl=document.getElementById('cookie-countdown'); let timerId=null; if(!c){ showBanner(); if(cEl){ cEl.textContent=String(countdown); timerId=setInterval(()=>{ countdown--; if(countdown<0){clearInterval(timerId);return} cEl.textContent=String(countdown); if(countdown===0){ hideBanner(); } },1000); } }else{ hideBanner(); } updatePrefsUI(); const openers=document.querySelectorAll('[data-open="cookie-settings-modal"]'); openers.forEach(o=>o.addEventListener('click',openSettings)); } document.addEventListener('DOMContentLoaded',()=>{ initTheme(); injectFragments(); });