{"klaroConfig":{"version":1,"elementID":"klaro","htmlTexts":true,"groupByPurpose":true,"mustConsent":true,"acceptAll":true,"hideDeclineAll":false,"storageName":"cg","cookieName":"cg","privacyPolicy":"/privacy","lang":"fr","translations":{"fr":{"privacyPolicyUrl":"/privacy","consentNotice":{"description":"Nous utilisons des cookies pour mesurer l’audience et personnaliser le contenu/offres. Vous décidez d’activer l’analyse et le marketing.","learnMore":"Ouvrir les paramètres","title":"Paramètres de confidentialité"},"consentModal":{"title":"Sélectionner des services","description":"Activez éventuellement des services d’analyse et de marketing. Des données peuvent être transférées vers des pays tiers (p. ex. États‑Unis). Voir notre politique de confidentialité."},"privacyPolicy":{"name":"politique de confidentialité","text":"Consultez notre {privacyPolicy} pour plus de détails."},"ok":"Tout accepter","acceptAll":"Tout accepter","decline":"Essentiel uniquement","acceptSelected":"Accepter la sélection","save":"Enregistrer","close":"Fermer","poweredBy":"Propulsé par Klaro · mis en œuvre avec Consent Gear for Symfony","purposeItem":{"service":"service","services":"services"},"service":{"disableAll":{"title":"Utilisez ce commutateur pour activer ou désactiver tous les services.","description":"Les services optionnels ne peuvent fonctionner que lorsque ce commutateur est activé. Certains services sont toujours requis."},"optOut":{"title":"(désactivation possible)","description":"Ce service est activé par défaut. Vous pouvez le désactiver ici."},"required":{"title":"(toujours requis)","description":"Ce service est toujours requis."}},"purposes":{"essential":{"title":"Exigence","description":"Cookies techniquement nécessaires pour les fonctions de base du site (p. ex. sessions, sécurité/CSRF, sélection de langue). Indispensables et non désactivables."},"analytics":{"title":"Analytique","description":"Collecte des données d’utilisation anonymisées (p. ex. pages vues, parcours de clics, durée de visite) pour améliorer le site. Les IP sont, si possible, traitées sous forme abrégée."},"marketing":{"title":"Marketing et personnalisation","description":""},"external_media":{"title":"Médias externes","description":""},"functional":{"title":"Fonctionnalités","description":"Active des fonctions de confort comme la mémorisation de vos réglages, les cartes et vidéos intégrées, les formulaires de contact et des intégrations similaires. La désactivation peut limiter certaines fonctions."},"security":{"title":"Sécurité","description":""},"payment":{"title":"Paiement","description":"Services de traitement des paiements (p. ex. carte de crédit, prestataires). Des données personnelles peuvent être transférées au prestataire."},"video":{"title":"Vidéo","description":"Intégrations de plateformes vidéo externes. Lors de la lecture, des cookies peuvent être définis et des données peuvent être transférées à des tiers."}},"gtm":{"description":"Google Tag Manager gère des tags supplémentaires. Il ne dépose pas de cookies en soi mais peut exécuter d’autres services."},"google-analytics":{"description":"Google Analytics 4 pour la mesure d’audience ; anonymisation des IP activée. Stocke notamment _ga (2 ans), _ga_* (2 ans)."},"github-oauth":{"description":"Connexion/inscription via GitHub (OAuth)."},"lemonsqueezy":{"description":"Lemon Squeezy pour un traitement de paiement sécurisé. Facturation via le prestataire ; des cookies et des données de transaction peuvent être traités."},"payhip":{"description":"Intégration Payhip pour le paiement (checkout) et la gestion des licences. À l’activation, des données peuvent être transférées et des cookies déposés."},"youtube":{"description":"Intégrations YouTube. Charge du contenu de Google/YouTube ; l’activation peut définir des cookies et transférer des données d’utilisation."},"vimeo":{"description":"Intégrations Vimeo. À l’activation, des cookies peuvent être déposés et des données d’utilisation transférées."},"google-maps":{"description":"Google Maps pour afficher des cartes interactives. Une fois activé, des données personnelles peuvent être transmises."},"essential":{"title":"Exigence","description":"Cookies techniquement nécessaires pour les fonctions de base du site (p. ex. sessions, sécurité/CSRF, sélection de langue). Indispensables et non désactivables."}}},"services":[{"name":"essential","title":"Exigence","description":"Cookies techniquement nécessaires pour les fonctions de base du site (p. ex. sessions, sécurité/CSRF, sélection de langue). Indispensables et non désactivables.","purposes":["essential"],"required":true,"default":true,"onlyOnce":false,"cookies":[]},{"name":"payhip","title":"Payhip","description":"Intégration Payhip pour le paiement (checkout) et la gestion des licences. À l’activation, des données peuvent être transférées et des cookies déposés.","purposes":["payment"],"required":false,"onlyOnce":true,"cookies":[]},{"name":"google-analytics","title":"Google Analytics (GA4)","description":"Google Analytics 4 pour la mesure d’audience ; anonymisation des IP activée. Stocke notamment _ga (2 ans), _ga_* (2 ans).","purposes":["analytics"],"required":false,"onlyOnce":false,"cookies":[["^_ga",".*","auto"],["^_ga_.*",".*","auto"]]}],"r4it":{"siteName":"HoReCanish","compatibility":{"logConsole":false},"frontend":{"layout":"modal","theme":"brand","show_logo":true,"auto_expand_services":true,"logo_path":"","max_width":"42rem","palette":{"accent":"#e4c169","accent_soft":"rgba(171, 125, 49, 0.22)","accent_contrast":"#241608","surface":"#1c1510","surface_alt":"#2c2117","text":"#f1e6d8","muted":"#bda98b","border":"rgba(196, 149, 77, 0.22)","overlay":"rgba(10, 8, 7, 0.72)"}},"host":"horecanish.eu","presetKeys":["payhip","google-analytics"]}},"runtimeFragments":["try{window.dataLayer=window.dataLayer||[];}catch(e){}\nfunction gtag(){try{dataLayer.push(arguments);}catch(e){}}\ntry{gtag('consent','default',{ad_storage:'denied',analytics_storage:'denied',ad_user_data:'denied',ad_personalization:'denied',wait_for_update:500});}catch(e){}\nwindow.r4itGrantAnalytics=function(){try{gtag('consent','update',{analytics_storage:'granted'});}catch(e){}};\nvar MODE=\"gtag\"; var RESPECT_DNT=false; var AUTO_INIT=true; var HIDE_ID=true;\nfunction dntOn(){try{var n=window.navigator||{};return (window.doNotTrack==='1')||(n.doNotTrack==='1')||(n.msDoNotTrack==='1');}catch(e){return false;}}"," function readKlaroConsents(){ try{ var k=window.klaro; if(k && typeof k.getConsents==='function'){ return k.getConsents(); } var st=(window.localStorage&&localStorage.getItem('klaro'))||''; if(st){ try{ return JSON.parse(st);}catch(e){ return {}; } } }catch(e){} return {}; }\n function cglog(){ try{ var cfg=(window.klaroConfig&&window.klaroConfig.r4it&&window.klaroConfig.r4it.compatibility)||{}; if(cfg.logConsole&&console&&console.log){ var a=Array.prototype.slice.call(arguments); a.unshift('[ConsentGear]'); console.log.apply(console,a);} }catch(e){} }\n function r4it_removePayhipScripts(){ try{ var ss=document.getElementsByTagName('script'); for(var i=ss.length-1;i\u003E=0;i--){ var s=ss[i]; var src=s.src||''; if(src.indexOf('payhip.com')\u003E-1 || src.indexOf('payhip')\u003E-1){ if(s.parentNode) s.parentNode.removeChild(s); } } }catch(e){} }\n function hasPayhipScript(){ try{ var ss=document.getElementsByTagName('script'); for(var i=0;i\u003Css.length;i++){ var src=ss[i].src||''; if(src.indexOf('payhip.com')\u003E-1 || src.indexOf('payhip.js')\u003E-1){ return true; } } }catch(e){} return false; }\n"," function r4it_loadPayhip(){ try{ if(hasPayhipScript()||window.__r4itPayhipLoaded||window.__r4itPayhipLoading) return; }catch(e){} try{ window.__r4itPayhipLoading=true; }catch(e){} try{ var s=document.createElement('script'); s.async=true; s.id='r4it-payhip-js'; s.src='https://payhip.com/js/payhip.js'; s.onload=function(){ try{ window.__r4itPayhipLoaded=true; window.__r4itPayhipLoading=false; cglog('payhip loaded'); }catch(e){} }; document.head.appendChild(s); }catch(e){} }\n"," window.initPayhip = function(){ try{ if(window.__r4itPayhipInitStarted) return; window.__r4itPayhipInitStarted=true; }catch(e){} try{ r4it_loadPayhip(); }catch(e){} try{ document.querySelectorAll('[data-payhip-checkout]').forEach(function(el){ el.hidden=false; }); }catch(e){} }"," window.teardownPayhip = function(){ try{ r4it_removePayhipScripts(); window.__r4itPayhipLoaded=false; window.__r4itPayhipLoading=false; window.__r4itPayhipInitStarted=false; cglog('payhip torn down'); }catch(e){} try{ document.querySelectorAll('[data-payhip-checkout]').forEach(function(el){ el.hidden=true; }); }catch(e){} }"," try{ var st=readKlaroConsents(); var cons=(st&&(st.consents||st.services||st))||st||{}; if(cons['payhip']===true){ window.initPayhip && window.initPayhip(); } else { window.teardownPayhip && window.teardownPayhip(); } }catch(e){}"," function removeElById(i){ try{ var el=document.getElementById(i); if(el&&el.parentNode){ el.parentNode.removeChild(el);} }catch(e){} }\n function clearGaCookies(){ try{ var parts=location.hostname.split('.'); var domains=['.'+parts.slice(-2).join('.'), location.hostname]; var cs=document.cookie.split(';'); for(var i=0;i\u003Ccs.length;i++){ var c=cs[i].trim(); var eq=c.indexOf('='); var name=(eq\u003E-1?c.substring(0,eq):c); if(/^_ga/.test(name)){ for(var d=0; d\u003Cdomains.length; d++){ document.cookie=name+'=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain='+domains[d]; } document.cookie=name+'=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/'; } } }catch(e){} }\n function readKlaroConsents(){ try{ var raw=localStorage.getItem('klaro'); if(raw){ try{ return JSON.parse(raw); }catch(e){} } }catch(e){} try{ var m=document.cookie.match(/(?:^|; )klaro=([^;]+)/); if(m&&m[1]){ var dec=decodeURIComponent(m[1]); try{ return JSON.parse(dec); }catch(e){} } }catch(e){} return {}; }\n function cglog(){ try{ var cfg=window.klaroConfig||{}; var dbg=false; try{ dbg=!!(cfg.r4it&&cfg.r4it.compatibility&&cfg.r4it.compatibility.logConsole); }catch(_){ } if(!dbg) return; if(window.console&&console.info){ try{ console.info.apply(console, arguments); }catch(e){ try{ console.info(arguments[0]); }catch(_){ } } } }catch(_){ } }"," function hasGtagScript(){ try{ var ss=document.getElementsByTagName('script'); for(var i=0;i\u003Css.length;i++){ var src=ss[i]&&ss[i].src||''; if(src&&src.indexOf('googletagmanager.com/gtag/js')\u003E-1){ return true; } } }catch(e){} return false; }\n function loadGA(id){ try{ if(window.__r4itGtagLoaded||window.__r4itGtagLoading){ cglog('[ConsentGear] loadGA skipped (flag)'); return; } }catch(e){} try{ if(document.getElementById('r4it-gtag-loader')){ cglog('[ConsentGear] loadGA skipped (loader exists)'); window.__r4itGtagLoaded=true; return; } }catch(e){} try{ if(hasGtagScript()){ cglog('[ConsentGear] loadGA skipped (existing gtag.js)'); window.__r4itGtagLoaded=true; return; } }catch(e){} try{ cglog('[ConsentGear] loadGA('+id+')'); }catch(e){} try{ window['ga-disable-'+id]=false; }catch(e){} window.__r4itGtagLoading=true; var s=document.createElement('script'); s.id='r4it-gtag-loader'; s.async=true; s.src='https://www.googletagmanager.com/gtag/js?id='+id; s.onload=function(){ try{ cglog('[ConsentGear] gtag.js loaded'); }catch(e){} window.__r4itGtagLoaded=true; window.__r4itGtagLoading=false; try{ gtag('js', new Date()); gtag('config', id, {}); }catch(e){} }; document.head.appendChild(s); window.__r4itGAID=id; }"," window.initGA4 = function(){ if(window.__r4itGAInitStarted){ return; } if(RESPECT_DNT && dntOn()) return; try{window.r4itGrantAnalytics&&window.r4itGrantAnalytics();}catch(e){} window.__r4itGAInitStarted=true; try{ var prev=window.__r4itGAID||''; if(prev){ window['ga-disable-'+prev]=false; } }catch(e){} try{ cglog('[ConsentGear] initGA4 starting. HIDE_ID='+HIDE_ID+', RESPECT_DNT='+RESPECT_DNT+', DNT='+dntOn()); }catch(e){} if(HIDE_ID){ try{ var xhr=new XMLHttpRequest(); xhr.open('GET','/_consentgear/gaid',true); xhr.onreadystatechange=function(){ if(xhr.readyState===4){ try{ cglog('[ConsentGear] /_consentgear/gaid status='+xhr.status); }catch(e){} if(xhr.status===200){ var id=(xhr.responseText||'').trim(); if(id){ loadGA(id); } } } }; xhr.send(null);}catch(e){} } else { loadGA(''); } }"," window.teardownGA4 = function(){ try{ var id=window.__r4itGAID||''; var loader=document.getElementById('r4it-gtag-loader'); if(!id && !loader){ window.__r4itGAInitStarted=false; return; } }catch(e){} try{ cglog('[ConsentGear] teardownGA4 called'); }catch(e){} try{ var id=window.__r4itGAID||''; var loader=document.getElementById('r4it-gtag-loader'); if(id){ try{ gtag('consent','update',{analytics_storage:'denied'}); }catch(e){} try{ window['ga-disable-'+id]=true; }catch(e){} } try{ if(loader&&loader.parentNode){ loader.parentNode.removeChild(loader); } }catch(e){} try{ var ss=document.getElementsByTagName('script'); for(var i=ss.length-1;i\u003E=0;i--){ var src=ss[i]&&ss[i].src||''; if(src&&src.indexOf('googletagmanager.com/gtag/js')\u003E-1){ if(ss[i].parentNode){ ss[i].parentNode.removeChild(ss[i]); } } } }catch(e){} try{ window.dataLayer=[]; }catch(e){} try{ window.gtag=function(){ try{ dataLayer.push(arguments); }catch(e){} }; }catch(e){} clearGaCookies(); window.__r4itGAInitStarted=false; window.__r4itGtagLoaded=false; window.__r4itGtagLoading=false; window.__r4itGAID=''; }catch(e){} }"," if(AUTO_INIT){ try{ var st=readKlaroConsents(); var cons=(st&&(st.consents||st.services||st))||st||{}; try{ cglog('[ConsentGear] AUTO_INIT GA, consent='+(cons['google-analytics']===true)); }catch(e){} if(cons['google-analytics']===true){ window.initGA4(); } }catch(e){} }"],"serviceMeta":{"payhip":{"init":"initPayhip","teardown":"teardownPayhip"},"google-analytics":{"init":"initGA4","teardown":"teardownGA4"}}}