1<!DOCTYPE html><html lang="fr"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="icon" type="image/svg+xml" href="/favicon.svg?v=3"><!-- `?v=N` (v=3 : nouveau logo, 29/09/2026) : le fichier a été remplacé (un JPEG de 329 Ko déguisé en PNG, 2 contre 1,6 Ko aujourd'hui) mais Cloudflare servait encore l'ancien, 3 mis en cache pour 7 jours. La version dans l'URL force une nouvelle 4 entrée de cache au lieu d'attendre l'expiration. --><link rel="icon" type="image/png" href="/favicon.png?v=3"><!-- Google (résultats de recherche) veut un carré multiple de 48 px, pas 32. --><link rel="icon" type="image/png" sizes="192x192" href="/favicon-192.png"><link rel="apple-touch-icon" href="/apple-touch-icon.png?v=3"><meta name="generator" content="Astro v6.1.4"><!-- Verification Bing Webmaster Tools (ne pas retirer : la verification est revalidee periodiquement) --><meta name="msvalidate.01" content="631B36F936C5193D31C090F1C51202C4"><!-- Fonts auto-hébergées (Fontsource, CSS bundlé) : Outfit/Inter variables + Instrument Serif. 5 Preload des woff2 latin utilisés au-dessus de la ligne de flottaison (hero). --><link rel="preload" href="/_astro/outfit-latin-wght-normal.Bc-8i84L.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="/_astro/instrument-serif-latin-400-italic.DKMiL14s.woff2" as="font" type="font/woff2" crossorigin><!-- 6 sadDefer : repousse a l'inactivite du thread principal le travail d'init 7 qui n'a pas besoin d'etre pret au premier rendu (effets de survol, widget 8 Turnstile, compteurs, carte Mapbox). 9 Pourquoi. Avec ClientRouter, chaque navigation rejoue tout ce travail dans 10 la meme tache que le swap du DOM : le tap qui l'a declenche paie l'addition 11 en INP (Search Console : 258 ms sur mobile, seuil 200 ms). 12 requestIdleCallback n'existe pas sur Safari, d'ou le repli setTimeout(0) : 13 moins bon, mais il laisse au moins le swap peindre avant de reprendre. 14 -->
14<script> 15 window.sadDefer = function (fn) { 16 var run = function () { 17 try { fn(); } catch (e) { console.warn('sadDefer:', e); } 18 }; 19 if (typeof window.requestIdleCallback === 'function') { 20 window.requestIdleCallback(run, { timeout: 500 }); 21 } else { 22 setTimeout(run, 0); 23 } 24 }; 25 </script>
25<!-- 26 Google Consent Mode v2 + Tarteaucitron CMP. 27 - GA4 (mesure d'audience anonymisee) : exemptee de bandeau (cf. CNIL audience measurement exemption). 28 -> analytics_storage = granted par defaut, gtag.js charge directement, anonymize_ip + cookie 13 mois. 29 - Google Ads / GTM (publicite, remarketing) : derriere consentement explicite via tarteaucitron. 30 -> ad_storage / ad_user_data / ad_personalization = denied par defaut, mis a jour sur acceptation. 31 -->
31<script> 32 window.dataLayer = window.dataLayer || []; 33 function gtag(){ window.dataLayer.push(arguments); } 34 window.gtag = gtag; 35 // Exclut les bots headless / automation de la mesure GA4 (datacenters US/NL/Inde... 36 // qui chargent gtag mais n'engagent pas et polluent rebond / (not set) / /render). 37 window.sadIsBot = function () { 38 try { 39 if (navigator.webdriver) return true; 40 var ua = navigator.userAgent || ''; 41 if (/bot|crawl|spider|headless|puppeteer|playwright|phantom|lighthouse|prerender|monitor|preview|HeadlessChrome/i.test(ua)) return true; 42 // Signaux headless additionnels : un vrai navigateur expose toujours une 43 // liste de langues et au moins 1 coeur CPU ; les runtimes datacenter qui 44 // executent gtag mais n'engagent pas (rebond instantane / (not set) / 404) 45 // trahissent souvent l'absence de ces attributs. 46 if (!navigator.languages || navigator.languages.length === 0) return true; 47 if (typeof navigator.hardwareConcurrency === 'number' && navigator.hardwareConcurrency < 1) return true; 48 // Chrome headless s'auto-declare via la Client Hints API. 49 var uad = navigator.userAgentData; 50 if (uad && uad.brands && uad.brands.some(function (b) { return /headless/i.test(b.brand || ''); })) return true; 51 return false; 52 } catch (e) { return false; } 53 }; 54 // Emetteur d'evenements unique pour les outils gratuits (/fr/outils/*). 55 // 56 // Les demos poussaient jusqu'ici `dataLayer.push({event: 'generate_lead'})`, 57 // qui est la syntaxe GTM : sans conteneur GTM sur le site â et il n'y en a 58 // pas, seulement gtag.js â cet objet reste dans la file sans jamais partir. 59 // gtag.js ne lit du dataLayer que les entrees `arguments` posees par gtag() 60 // lui-meme. Resultat : aucun evenement d'outil n'est jamais arrive dans GA4 61 // ni dans Google Ads, et les campagnes qui pointent vers les outils ne 62 // pouvaient structurellement afficher aucune conversion. 63 // 64 // sadTrack fait les deux : la poussee dataLayer reste (elle ne coute rien et 65 // servira si un conteneur GTM est ajoute un jour) ET l'appel gtag qui, lui, 66 // part vraiment. Meme garde anti-bot que gtag('config') : sans config, un 67 // evenement ne ferait qu'enfler la file. 68 window.sadTrack = function (name, params) { 69 var p = params || {}; 70 window.dataLayer = window.dataLayer || []; 71 var payload = { event: name }; 72 for (var k in p) { if (Object.prototype.hasOwnProperty.call(p, k)) payload[k] = p[k]; } 73 window.dataLayer.push(payload); 74 if (typeof window.gtag !== 'function') return; 75 if (window.sadIsBot && window.sadIsBot()) return; 76 window.gtag('event', name, p); 77 }; 78 79 // Conversion Google Ads. `label` est la partie apres le slash du send_to 80 // (les identifiants complets vivent dans SAD_ADS_LABELS ci-dessous). 81 window.sadAdsConversion = function (label, value) { 82 if (typeof window.gtag !== 'function') return; 83 if (window.sadIsBot && window.sadIsBot()) return; 84 window.gtag('event', 'conversion', { 85 send_to: 'AW-937071513/' + label, 86 value: typeof value === 'number' ? value : 0, 87 currency: 'EUR', 88 transport_type: 'beacon' 89 }); 90 }; 91 92 // Libelles de conversion Ads utilises par les outils gratuits. 93 // export â micro-conversion « Export outil gratuit » (action SECONDAIRE : 94 // mesuree, hors encheres, cf. plan Ads du 2026-08-19). 95 // lead â « CONTACT NOUVEAU SITE » (6804010936), action PRINCIPALE deja 96 // utilisee par /fr/merci. Comptage ONE_PER_CLICK : un visiteur 97 // qui demande un rappel depuis l'outil puis renvoie le formulaire 98 // de bas de page ne compte qu'une fois. 99 // rdv_intent â « RDV (clic agenda) ». Mesure une INTENTION de rendez-vous, 100 // pas un rendez-vous pris : le visiteur peut quitter l'agenda 101 // sans choisir de creneau. Reste branchee sur le clic tant 102 // qu'aucune action « RDV reserve » n'existe dans le compte. 103 // rdv_booked â « RDV reserve ». A creer dans Google Ads, puis coller le 104 // libelle ici : la confirmation HubSpot (MeetingScheduler.astro) 105 // l'envoie deja, sous garde. Laisse vide = rien n'est envoye. 106 window.SAD_ADS_LABELS = { 107 export: 'pjvVCMagouQcEJmn6r4D', 108 lead: '7Ow7CLjvs6wZEJmn6r4D', 109 rdv_intent: 'xvkfCK2TkLEcEJmn6r4D', 110 rdv_booked: '' 111 }; 112 113 gtag('consent', 'default', { 114 'ad_storage': 'denied', 115 'ad_user_data': 'denied', 116 'ad_personalization': 'denied',
117 'analytics_storage': 'granted', 118 'functionality_storage': 'granted', 119 'personalization_storage': 'denied', 120 'security_storage': 'granted', 121 'wait_for_update': 500 122 }); 123 gtag('set', 'ads_data_redaction', true); 124 gtag('set', 'url_passthrough', true); 125 </script>
125<!-- GA4 charge directement (hors tarteaucitron) : exemption CNIL mesure d'audience anonymisee. -->
vendor: 63 bytes, line 125
125<script async src="https://www.googletagmanager.com/gtag/js?id=
125G-1DKP6VFNQ6
vendor: 11 bytes, line 125
125"></script>
125<script>(function(){const sadNoindex = false; 126 127 // Garde anti-reexecution : les scripts is:inline du <head> se rejouent a chaque 128 // navigation View Transitions (cf. les listeners gardes plus bas). Sans ce garde, 129 // gtag('config') se relancerait a chaque navigation interne => re-init GA4 + 130 // page_view parasite. On ne configure qu'UNE fois par chargement complet de page. 131 // On n'initialise pas non plus GA sur les pages noindex (404...) : ce sont les 132 // URLs que les bots sondent au hasard et qui polluent /render / (not set). 133 if (!window.__sadGA4Configured && !sadNoindex) { 134 // Skip toute init GA4/Ads pour les bots : pas de gtag('config') => pas de session_start. 135 if (!window.sadIsBot || !window.sadIsBot()) { 136 window.__sadGA4Configured = true; 137 gtag('js', new Date()); 138 gtag('config', 'G-1DKP6VFNQ6', { 139 anonymize_ip: true, 140 cookie_expires: 33696000 141 // send_page_view laisse a true (defaut) : gtag.js envoie le page_view 142 // initial ET instrumente l'engagement (user_engagement). Le passer a 143 // false + envoyer un page_view manuel via gtag('event', ...) supprime 144 // le minuteur d'engagement => 0s de duree / ~100% de rebond. 145 }); 146 // Enregistre Google Ads cote client en mode consenti (ad_storage denied par defaut). 147 // Necessaire pour que Consent Mode v2 envoie les pings cookieless et modelise 148 // les conversions des visiteurs qui n'acceptent pas le bandeau. Tarteaucitron 149 // reconfigure ce meme id et passe ad_storage:granted apres acceptation. 150 gtag('config', 'AW-937071513', { 151 allow_enhanced_conversions: true 152 }); 153 } 154 } 155 })();</script>
155<script defer src="/tarteaucitron/tarteaucitron.min.js" id="tarteaucitron-script"></script>
155<script>(function(){const lang = "fr"; 156const privacyUrl = "/fr/mentions-legales/"; 157const hubspotPortalId = "147905877"; 158 159 (function () { 160 // Textes du bandeau. La lib lit cette globale au chargement et la 161 // fusionne dans tarteaucitron.lang, donc elle doit exister avant le 162 // script differe ci-dessus : c'est le cas, ce bloc est inline. 163 // Libelles courts pour que les trois boutons tiennent sur une 164 // ligne a 360 px, et lien de confidentialite dans la phrase (le 165 // bouton-lien de la lib est masque en CSS, il prenait une ligne). 166 const fr = lang !== 'en'; 167 const lien = '<a class="tac-privacy" href="' + privacyUrl + '">' + 168 (fr ? 'Politique de confidentialité' : 'Privacy policy') + '</a>'; 169 window.tarteaucitronCustomText = fr ? { 170 "alertBigPrivacy": "Nous utilisons des cookies pour mesurer nos campagnes (Google Ads, HubSpot). Rien nâest déposé sans votre accord. " + lien, 171 "acceptAll": "Accepter", 172 "denyAll": "Refuser", 173 "personalize": "Personnaliser" 174 } : { 175 "alertBigPrivacy": "We use cookies to measure our campaigns (Google Ads, HubSpot). Nothing is set without your consent. " + lien, 176 "acceptAll": "Accept", 177 "denyAll": "Decline", 178 "personalize": "Customise" 179 }; 180 181 const init = () => { 182 if (window.__sadTarteaucitronInit) return; 183 window.__sadTarteaucitronInit = true; 184 185 tarteaucitron.init({ 186 "privacyUrl": privacyUrl, 187 "bodyPosition": "bottom", 188 "hashtag": "", 189 "cookieName": "sad_consent", 190 "orientation": "bottom", 191 "groupServices": false, 192 "showDetailsOnClick": true, 193 "serviceDefaultState": "wait", 194 "showAlertSmall": false, 195 "showAlertBig": true, 196 "cookieslist": false, 197 "closePopup": false, 198 "showIcon": false, 199 "iconPosition": "BottomRight", 200 "adblocker": false, 201 "DenyAllCta": true, 202 "AcceptAllCta": true, 203 // true : sans quoi la lib accepte tout apres deux ecrans de 204 // defilement (userInterface : respondAll(true)) et active les 205 // services en attente a la deuxieme page visitee. Consentement 206 // par navigation : invalide depuis les lignes directrices CNIL 207 // de 2020. Le texte passe aussi de « En poursuivant votre 208 // navigation, vous acceptez... » a alertBigPrivacy. 209 "highPrivacy": true, 210 "handleBrowserDNTRequest": false, 211 "removeCredit": true, 212 "moreInfoLink": true, 213 "useExternalCss": false, 214 "useExternalJs": false, 215 "readmoreLink": privacyUrl, 216 "mandatory": false, 217 "mandatoryCta": false, 218 "googleConsentMode": true, 219 "partnersList": false 220 }); 221 222 if (hubspotPortalId) { 223 tarteaucitron.user.hubspotId = hubspotPortalId; 224 (tarteaucitron.job = tarteaucitron.job || []).push('hubspot'); 225 } 226 227 tarteaucitron.user.googleadsId = "AW-937071513"; 228 (tarteaucitron.job = tarteaucitron.job || []).push('googleads'); 229 }; 230 231 const script = document.getElementById('tarteaucitron-script'); 232 if (typeof tarteaucitron !== 'undefined') { 233 init(); 234 } else if (script) { 235 script.addEventListener('load', init); 236 } else { 237 document.addEventListener('DOMContentLoaded', init); 238 } 239 })(); 240 })();</script>
240<!-- 241 Met a jour le consentement publicitaire (ad_storage / ad_user_data / ad_personalization) 242 quand l'utilisateur accepte/refuse Google Ads ou GTM via tarteaucitron. 243 Sans ces listeners, les tags publicitaires charges ne fonctionnent pas (consent reste denied). 244 -->
244<script> 245 function sadUpdateAdConsent(state) { 246 if (typeof window.gtag !== 'function') return; 247 window.gtag('consent', 'update', { 248 ad_storage: state, 249 ad_user_data: state, 250 ad_personalization: state 251 }); 252 } 253 document.addEventListener('googleads_consentModeOk', function () { sadUpdateAdConsent('granted'); }); 254 document.addEventListener('googleads_consentModeKo', function () { sadUpdateAdConsent('denied'); }); 255 document.addEventListener('googletagmanager_consentModeOk', function () { sadUpdateAdConsent('granted'); }); 256 document.addEventListener('googletagmanager_consentModeKo', function () { sadUpdateAdConsent('denied'); }); 257 </script>
257<!-- 258 Capture de l'identifiant de clic Google (gclid / wbraid / gbraid) et injection dans 259 les formulaires qui postent vers /api/contact. 260 261 Pourquoi. Tant que le bandeau n'est pas accepte, ad_storage reste denied : tarteaucitron 262 ne charge pas le script HubSpot, il n'y a donc pas de cookie hubspotutk, donc pas de 263 `hutk` dans le payload (cf. src/pages/api/contact.ts), donc HubSpot ne peut rattacher 264 la soumission a aucun clic. Les actions de conversion UPLOAD_CLICKS de Google Ads 265 restent vides pour ces visiteurs. Relire l'identifiant dans l'URL contourne toute la 266 chaine : c'est un parametre d'URL, pas un acces au stockage du terminal â il ne depend 267 donc pas du consentement au sens ePrivacy. (Reste une donnee personnelle au sens RGPD : 268 a mentionner dans la politique de confidentialite.) 269 270 L'identifiant survit a la navigation interne grace a `url_passthrough: true` pose plus 271 haut : quand ad_storage est refuse, gtag.js recopie le gclid dans les liens internes. 272 Repli sur le cookie _gcl_aw pour le cas inverse (consentement accorde : gtag range 273 l'identifiant en cookie et le retire de l'URL). 274 275 Injection au moment du submit plutot qu'au chargement : les formulaires sont des POST 276 natifs, et ce listener en phase de capture couvre les 5 points d'entree (LeadFormCompact, 277 DiagnosticExpress, DemoLeadBridge, contact.astro FR et EN) sans les modifier. 278 -->
278<script> 279 (function () { 280 var KEYS = ['gclid', 'wbraid', 'gbraid']; 281 282 function sadClickIds() { 283 var found = {}; 284 try { 285 var params = new URLSearchParams(window.location.search); 286 for (var i = 0; i < KEYS.length; i++) { 287 var v = params.get(KEYS[i]); 288 if (v) found[KEYS[i]] = v.slice(0, 200); 289 } 290 if (!found.gclid) { 291 // _gcl_aw : "GCL.<timestamp>.<gclid>" â pose par gtag.js apres acceptation. 292 var m = document.cookie.match(/(?:^|;\s*)_gcl_aw=([^;]*)/); 293 if (m && m[1]) { 294 var parts = decodeURIComponent(m[1]).split('.'); 295 if (parts.length >= 3) found.gclid = parts.slice(2).join('.').slice(0, 200); 296 } 297 } 298 } catch (e) { /* URL ou cookie illisible : on n'injecte rien */ } 299 return found; 300 } 301 302 document.addEventListener('submit', function (event) { 303 var form = event.target; 304 if (!form || form.tagName !== 'FORM') return; 305 var action = form.getAttribute('action') || ''; 306 if (action.indexOf('/api/contact') === -1) return; 307 308 var ids = sadClickIds(); 309 for (var key in ids) { 310 if (!Object.prototype.hasOwnProperty.call(ids, key)) continue; 311 if (form.querySelector('input[name="' + key + '"]')) continue; 312 var input = document.createElement('input'); 313 input.type = 'hidden'; 314 input.name = key; 315 input.value = ids[key]; 316 form.appendChild(input); 317 } 318 }, true); 319 })(); 320 </script>
320<!-- 321 Origine de la visite, pour les demandes envoyees sans consentement. 322 323 Sans le bandeau accepte, HubSpot ne voit que la page du formulaire et range le 324 contact en « Trafic direct ». Ce cookie de session retient, a la PREMIERE page 325 de la visite seulement : la page d'entree, le site referent (origine + chemin, 326 sans parametres), les UTM et l'identifiant de clic Google. Il n'est lu que par 327 les endpoints /api/* quand le visiteur envoie lui-meme un formulaire (cf. 328 src/lib/attribution.ts), et meurt a la fermeture du navigateur. Declare dans la 329 politique de confidentialite. 330 331 Pas de pose si le referent est le site lui-meme : un cookie efface en cours de 332 visite ne doit pas faire croire que la visite commence sur une page interieure. 333 -->
333<script> 334 (function () { 335 try { 336 if (/(?:^|;\s*)sad_attr=/.test(document.cookie)) return; 337 var host = location.hostname.replace(/^www\./, ''); 338 var ref = ''; 339 if (document.referrer) { 340 var r = new URL(document.referrer); 341 if (r.hostname.replace(/^www\./, '') === host) return; 342 ref = (r.origin + r.pathname).slice(0, 300); 343 } 344 var q = new URLSearchParams(location.search); 345 var get = function (k, n) { var v = q.get(k); return v ? v.slice(0, n) : undefined; }; 346 var data = { 347 l: location.pathname.slice(0, 300), 348 r: ref || undefined, 349 us: get('utm_source', 100), 350 um: get('utm_medium', 100), 351 uc: get('utm_campaign', 150), 352 ut: get('utm_term', 150), 353 gclid: get('gclid', 200), 354 wbraid: get('wbraid', 200), 355 gbraid: get('gbraid', 200) 356 }; 357 document.cookie = 'sad_attr=' + encodeURIComponent(JSON.stringify(data)) + 358 '; path=/; SameSite=Lax' + (location.protocol === 'https:' ? '; Secure' : ''); 359 } catch (e) { /* referent illisible ou cookies bloques : rien a retenir */ } 360 })(); 361 </script>
361<!-- Pageviews compatibles avec View Transitions (Astro ClientRouter) -->
361<script> 362 function sadSendPageView() { 363 // Ne pas tracker les pages noindex (404...) atteintes en navigation SPA : 364 // la balise robots de la nouvelle page est deja dans le DOM apres le swap. 365 var robotsMeta = document.querySelector('meta[name="robots"]'); 366 if (robotsMeta && /noindex/i.test(robotsMeta.getAttribute('content') || '')) return; 367 window.dataLayer = window.dataLayer || []; 368 window.dataLayer.push({ 369 event: 'spa_pageview', 370 page_title: document.title, 371 page_location: window.location.href, 372 page_path: window.location.pathname + window.location.search 373 }); 374 if (typeof window.gtag === 'function' && (!window.sadIsBot || !window.sadIsBot())) { 375 window.gtag('event', 'page_view', { 376 page_title: document.title, 377 page_location: window.location.href, 378 page_path: window.location.pathname + window.location.search 379 }); 380 } 381 } 382 // Chargement initial : NE PAS envoyer de page_view manuel. gtag('config') s'en 383 // charge nativement (send_page_view par defaut) ET demarre la mesure d'engagement. 384 // Navigations SPA (View Transitions) : after-swap fire uniquement sur navigation, 385 // donc on envoie un page_view manuel la, sans double-compter le chargement initial. 386 document.addEventListener('astro:after-swap', sadSendPageView); 387 388 // Parcours RDV : deux signaux distincts, plus un seul. 389 // 390 // Un clic vers l'agenda mesure une INTENTION de rendez-vous. Le visiteur 391 // peut refermer l'agenda sans choisir de creneau : la reservation reste a 392 // confirmer. Le signal de reservation reelle est emis par 393 // MeetingScheduler.astro (pages /fr/rdv et /en/book) quand HubSpot confirme 394 // la prise de creneau â c'est lui l'etape « rendez-vous reserve » du 395 // parcours visite -> outil -> demande -> RDV reserve -> opportunite. 396 // 397 // L'action Ads reste branchee sur l'intention tant qu'aucune action 398 // « RDV reserve » n'existe dans le compte : la couper sans remplacante 399 // aveuglerait les encheres. Voir SAD_ADS_LABELS plus haut. 400 // 401 // Le selecteur couvre l'agenda embarque (liens internes) et les liens 402 // HubSpot directs qui subsisteraient. 403 document.addEventListener('click', function (e) { 404 var t = e.target; 405 if (!t || !t.closest) return; 406 var link = t.closest('a[href*="meetings-eu1.hubspot.com"], a[href$="/fr/rdv"], a[href$="/en/book"]'); 407 if (!link) return; 408 window.sadTrack('rdv_intent', { 409 link_url: link.href, 410 value: 150, 411 currency: 'EUR' 412 }); 413 window.sadAdsConversion(window.SAD_ADS_LABELS.rdv_intent, 150); 414 }, true); 415 416 // Pousse sad_lead_submit dans le dataLayer pour GTM au moment du submit. 417 // N'envoie PLUS generate_lead ici : la page de confirmation (/fr/merci, 418 // /en/thanks) le fait deja, et tirer aux deux endroits comptait chaque 419 // lead deux fois dans GA4. La confirmation est le signal fiable â elle 420 // n'est atteinte que si api/contact a repondu 303, alors que le submit 421 // part meme quand la soumission echoue ensuite (validation, Turnstile). 422 // Guard against the inline script running twice (Astro view transitions 423 // can re-execute head scripts, which would double-attach the listener 424 // and double-count leads). 425 if (!window.__sadLeadListenerAttached) { 426 window.__sadLeadListenerAttached = true; 427 document.addEventListener('submit', function (e) { 428 var form = e.target; 429 if (!form || form.tagName !== 'FORM') return; 430 if (!form.action || form.action.indexOf('/api/contact') === -1) return; 431 var lang = (document.documentElement.lang || 'fr').slice(0, 2); 432 var subjectEl = form.querySelector('[name="sujet"]'); 433 var subject = subjectEl ? subjectEl.value : ''; 434 window.dataLayer = window.dataLayer || []; 435 window.dataLayer.push({ 436 event: 'sad_lead_submit', 437 form_id: 'contact_' + lang, 438 subject: subject, 439 value: 150, 440 currency: 'EUR' 441 }); 442 }, true); 443 } // end __sadLeadListenerAttached guard 444 445 // Track clicks on tel: links (call CTAs in Footer + contact pages). 446 // Fires the GA4 'tel' key event (already configured on the property) 447 // and a 'sad_tel_click' dataLayer event for GTM. 448 if (!window.__sadTelListenerAttached) { 449 window.__sadTelListenerAttached = true; 450 document.addEventListener('click', function (e) { 451 var t = e.target; 452 var link = t && t.closest ? t.closest('a[href^="tel:"]') : null; 453 if (!link) return; 454 var phone = (link.getAttribute('href') || '').replace('tel:', ''); 455 var office = phone.indexOf('+33320') === 0 ? 'lille' 456 : phone.indexOf('+33144') === 0 ? 'paris' 457 : phone.indexOf('+971') === 0 ? 'dubai' 458 : 'other'; 459 window.dataLayer = window.dataLayer || []; 460 window.dataLayer.push({ 461 event: 'sad_tel_click', 462 phone_number: phone, 463 office: office, 464 value: 150, 465 currency: 'EUR' 466 }); 467 if (typeof window.gtag === 'function') { 468 window.gtag('event', 'tel', { 469 phone_number: phone, 470 office: office, 471 value: 150, 472 currency: 'EUR', 473 transport_type: 'beacon' 474 }); 475 window.gtag('event', 'conversion', { 476 send_to: 'AW-937071513/lClECMjf65oaEJmn6r4D', 477 value: 150.0, 478 currency: 'EUR', 479 transport_type: 'beacon' 480 }); 481 } 482 }, true); 483 } // end __sadTelListenerAttached guard 484 485 // Persiste le DOM injecté par tarteaucitron pendant les view transitions Astro.
486 // Sans ce hook, banner et icone disparaissent à chaque navigation. 487 document.addEventListener('astro:before-swap', function (event) { 488 var ids = ['tarteaucitronRoot', 'tarteaucitronAlertBig', 'tarteaucitronAlertSmall', 'tarteaucitron', 'tarteaucitronBack']; 489 ids.forEach(function (id) { 490 var el = document.getElementById(id); 491 if (!el) return; 492 el.setAttribute('data-astro-transition-persist', id); 493 if (!event.newDocument.getElementById(id)) { 494 var placeholder = event.newDocument.createElement('div'); 495 placeholder.id = id; 496 placeholder.setAttribute('data-astro-transition-persist', id); 497 498 // Ne créer le placeholder à la racine du body que si l'élément n'a pas de parent 499 // lui-même persisté dans notre liste. Cela évite de briser la hiérarchie DOM. 500 var parent = el.parentElement; 501 var parentInList = false; 502 while (parent && parent !== document.body) { 503 if (ids.includes(parent.id)) { 504 parentInList = true; 505 break; 506 } 507 parent = parent.parentElement; 508 } 509 510 if (!parentInList) { 511 event.newDocument.body.appendChild(placeholder); 512 } 513 } 514 }); 515 }); 516 </script>
516<title>Cabinet d'études géomarketing sur-mesure â Lille, Paris, Dubaï</title><meta name="description" content="Optimisez votre stratégie territoriale avec l'étude géomarketing : analyse de zone de chalandise & de potentiel marché. Devis envoyé sous 24h"><link rel="canonical" href="https://sad-marketing.com/fr/solutions/etudes-geomarketing"><link rel="alternate" hreflang="fr" href="https://sad-marketing.com/fr/solutions/etudes-geomarketing"><link rel="alternate" hreflang="en" href="https://sad-marketing.com/en/solutions/geomarketing-studies"><link rel="alternate" hreflang="x-default" href="https://sad-marketing.com/fr/solutions/etudes-geomarketing"><link rel="alternate" type="application/rss+xml" title="SAD Marketing â Blog & outils géomarketing" href="/rss.xml"><!-- Open Graph --><meta property="og:title" content="Cabinet d'études géomarketing sur-mesure â Lille, Paris, Dubaï"><meta property="og:description" content="Optimisez votre stratégie territoriale avec l'étude géomarketing : analyse de zone de chalandise & de potentiel marché. Devis envoyé sous 24h"><meta property="og:image" content="https://sad-marketing.com/images/hero.png"><meta property="og:url" content="https://sad-marketing.com/fr/solutions/etudes-geomarketing"><meta property="og:type" content="website"><meta property="og:locale" content="fr_FR"><meta property="og:site_name" content="SAD Marketing"><!-- Twitter --><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Cabinet d'études géomarketing sur-mesure â Lille, Paris, Dubaï"><meta name="twitter:description" content="Optimisez votre stratégie territoriale avec l'étude géomarketing : analyse de zone de chalandise & de potentiel marché. Devis envoyé sous 24h"><meta name="twitter:image" content="https://sad-marketing.com/images/hero.png"><meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1"><!-- Schema.org JSON-LD -->
516<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","@id":"https://sad-marketing.com/#website","name":"SAD Marketing","alternateName":"SAD","url":"https://sad-marketing.com","inLanguage":["fr-FR","en-US"],"publisher":{"@id":"https://sad-marketing.com/#organization"}}</script>
516<script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","@id":"https://sad-marketing.com/#organization","name":"SAD Marketing","url":"https://sad-marketing.com","logo":{"@type":"ImageObject","url":"https://sad-marketing.com/images/logo.png","width":864,"height":470}}</script>
516<script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https://sad-marketing.com/fr"},{"@type":"ListItem","position":2,"name":"Solutions","item":"https://sad-marketing.com/fr/solutions"},{"@type":"ListItem","position":3,"name":"Etudes-geomarketing","item":"https://sad-marketing.com/fr/solutions/etudes-geomarketing"}]}</script>
516<!-- 517 gtag.js (GA4 G-1DKP6VFNQ6, Google Ads AW-937071513) 518 installés dans Layout.astro. Tarteaucitron configuré pour le consentement RGPD. 519--><meta name="astro-view-transitions-enabled" content="true"><meta name="astro-view-transitions-fallback" content="animate">
519<script type="module" src="/_astro/ClientRouter.astro_astro_type_script_index_0_lang.j56hQv-j.js"></script>
519<!-- 520 Cloudflare Turnstile â charge au premier contact avec le formulaire. 521 Le script tiers etait servi sur 100% des pages, alors que seules celles qui 522 portent un formulaire ont un `.cf-turnstile` a rendre : un telechargement, 523 un parse et une reexecution de plus a chaque navigation, pour rien. 524 On ne l'injecte donc que si la page courante en a besoin. 525 526 Le rendu, lui, n'a plus lieu au chargement. Mesure du 10/09/2026 sur 527 /fr/solutions/etude-de-marche : deux formulaires dans la page, donc deux 528 widgets rendus d'office, soit 1,16 Mo en 24 requetes sur les 2,1 Mo de la 529 page â le premier poste de poids, devant gtag. Or un challenge n'a d'utilite 530 qu'au moment de l'envoi. On arme donc chaque formulaire et on ne rend son 531 widget qu'au premier focus ou au premier appui dedans ; le visiteur qui ne 532 touche pas au formulaire ne paie rien. Filet de securite : le gestionnaire 533 de `submit` ci-dessous declenche le rendu s'il manque, et attend le jeton. 534 -->
534<script> 535 (function () { 536 // Les scripts is:inline du <head> se rejouent a chaque view transition : 537 // sans ce verrou, un listener astro:page-load de plus s'empilerait par 538 // navigation. 539 if (window.__sadTurnstileAttached) return; 540 window.__sadTurnstileAttached = true; 541 542 var SRC = 'https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit'; 543 var loading = null; 544 545 function loadTurnstile() { 546 if (window.turnstile) return Promise.resolve(); 547 if (loading) return loading; 548 loading = new Promise(function (resolve, reject) { 549 var el = document.createElement('script'); 550 el.src = SRC; 551 el.async = true; 552 el.defer = true; 553 el.onload = resolve; 554 el.onerror = reject; 555 document.head.appendChild(el); 556 }); 557 return loading; 558 } 559 560 window.loadTurnstile = loadTurnstile; 561 562 // `scope` limite le rendu au formulaire touche : sur une page qui en 563 // porte plusieurs, remplir le premier ne doit pas charger le challenge 564 // du second. 565 function renderWidgets(scope) { 566 var root = scope || document; 567 var pending = root.querySelectorAll('.cf-turnstile:not([data-turnstile-rendered])'); 568 if (!pending.length) return; 569 loadTurnstile().then(function () { 570 if (typeof window.turnstile === 'undefined') return; 571 root.querySelectorAll('.cf-turnstile:not([data-turnstile-rendered])').forEach(function (el) { 572 // Marque avant de rendre : `turnstile.render` est synchrone mais 573 // deux evenements d'armement peuvent arriver dans la meme tache 574 // (pointerdown puis focusin), et un double rendu sur le meme 575 // noeud laisse deux widgets superposes. 576 el.setAttribute('data-turnstile-rendered', 'true'); 577 window.turnstile.render(el, { 578 sitekey: el.getAttribute('data-sitekey'), 579 theme: el.getAttribute('data-theme') || 'dark', 580 size: el.getAttribute('data-size') || 'flexible', 581 appearance: el.getAttribute('data-appearance') || 'always' 582 }); 583 }); 584 }).catch(function (e) { console.warn('Turnstile:', e); }); 585 } 586 587 window.sadRenderTurnstile = renderWidgets; 588 589 // Arme les formulaires porteurs d'un widget : le rendu part au premier 590 // signe d'usage. Un widget hors formulaire (cas d'une modale montee a 591 // part) est arme sur son parent direct, faute de mieux. 592 // 593 // Quatre declencheurs plutot qu'un : `focusin` et `pointerdown` couvrent 594 // la saisie normale, `input` et `change` le remplissage automatique du 595 // navigateur, qui ne donne le focus a rien. Cette derniere voie compte : 596 // le formulaire newsletter et la porte des modeles lisent le jeton 597 // eux-memes au submit et refusent l'envoi s'il manque, sans passer par 598 // le filet du gestionnaire global. 599 var ARM_EVENTS = ['focusin', 'pointerdown', 'input', 'change']; 600 601 function armWidgets() { 602 document.querySelectorAll('.cf-turnstile:not([data-turnstile-rendered])').forEach(function (el) { 603 var host = el.closest('form') || el.parentElement; 604 if (!host || host.getAttribute('data-turnstile-armed')) return; 605 host.setAttribute('data-turnstile-armed', 'true'); 606 var fire = function () { renderWidgets(host); }; 607 ARM_EVENTS.forEach(function (type) { 608 host.addEventListener(type, fire, { once: true, passive: true }); 609 }); 610 }); 611 } 612 613 // Si un formulaire natif est soumis alors que Turnstile calcule encore le jeton, 614 // on temporise jusqu'a l'arrivee du jeton pour eviter un rejet 400 en amont. 615 document.addEventListener('submit', function (e) { 616 var form = e.target; 617 if (!form || !form.querySelector) return; 618 var widget = form.querySelector('.cf-turnstile'); 619 if (!widget) return; 620 var resp = form.querySelector('input[name="cf-turnstile-response"]'); 621 if (!resp || !resp.value) { 622 // Le widget peut n'avoir jamais ete arme (autofill du navigateur, 623 // envoi au clavier sans passage par un champ). On le rend ici, et 624 // l'attente ci-dessous couvre le temps de chargement a froid. 625 renderWidgets(form); 626 var submitBtn = form.querySelector('button[type="submit"]'); 627 if (submitBtn && !submitBtn.disabled) { 628 e.preventDefault(); 629 var origText = submitBtn.innerHTML; 630 submitBtn.disabled = true; 631 submitBtn.innerHTML = '<span>
631Validation de sécurité...</span>'; 632 var waitInterval = setInterval(function () { 633 var token = form.querySelector('input[name="cf-turnstile-response"]'); 634 if (token && token.value) { 635 clearInterval(waitInterval); 636 submitBtn.disabled = false; 637 submitBtn.innerHTML = origText; 638 form.submit(); 639 } 640 }, 200); 641 // 8 s suffisaient quand le widget etait deja rendu au 642 // chargement ; depuis qu'il peut demarrer a froid ici, il faut 643 // couvrir le telechargement du script en plus de la resolution. 644 setTimeout(function () { 645 clearInterval(waitInterval); 646 submitBtn.disabled = false; 647 submitBtn.innerHTML = origText; 648 }, 15000); 649 } 650 } 651 }); 652 653 // Pas de sadDefer ici : armer, c'est poser quatre ecouteurs, soit un 654 // travail negligeable. Le repousser a l'inactivite ouvrirait une fenetre 655 // (jusqu'a 500 ms) pendant laquelle un visiteur rapide toucherait un 656 // formulaire non arme. C'est le *rendu* qui coute, et il reste differe 657 // jusqu'au premier contact. 658 document.addEventListener('astro:page-load', armWidgets); 659 })(); 660 </script>
660<link rel="stylesheet" href="/_astro/StudyPreviewPanel.D7sXHn4s.css"> 661<link rel="stylesheet" href="/_astro/Layout.Cvm-E0MG.css"> 662<style>details[data-astro-cid-al2ca2vr]>summary[data-astro-cid-al2ca2vr]::-webkit-details-marker{display:none} 663.scroll-reveal[data-astro-cid-gkxl7tdg]{transition-property:transform,translate,scale,opacity;transition-timing-function:cubic-bezier(.16,1,.3,1);will-change:transform,translate,scale,opacity}.scroll-reveal[data-astro-cid-gkxl7tdg].revealed{transform:none;translate:0 0;scale:1;opacity:1}@media(prefers-reduced-motion:reduce){.scroll-reveal[data-astro-cid-gkxl7tdg]{transition:none!important;transform:none!important;translate:0 0!important;scale:1!important;opacity:1!important}} 664</style></head> <body class="bg-brand-dark text-brand-accent selection:bg-brand-orange/30 selection:text-white mesh-gradient pb-[84px] lg:pb-0"> <a href="#contenu" class="skip-link">Aller au contenu</a> <!-- Le débord horizontal est coupé ici plutôt que sur <body> : sur iOS 665 Safari, un <body> avec un overflow non-`visible` devient lui-même le 666 conteneur de scroll, et les enfants directs en `position: fixed` 667 (barre d'action mobile, spotlight) se mettent alors à défiler avec 668 lui au lieu de rester ancrés au viewport. 669 `clip` et non `hidden` : `overflow-x: hidden` force l'axe vertical à 670 `auto` (règle de calcul CSS), ce qui faisait de ce conteneur un 671 scroller imbriqué autour de l'en-tête fixe â terrain des gestes 672 tactiles perdus sur iOS. `clip` coupe sans rien rendre défilable. --> <div id="page-shell" class="min-h-screen flex flex-col overflow-x-clip"> <header id="main-header" class="fixed w-full top-0 z-50 transition-all duration-300" data-astro-cid-3ef6ksr2> <!-- Glassmorphism bar --> <div class="bg-brand-darker/80 backdrop-blur-2xl border-b border-white/5 shadow-[0_4px_30px_rgba(0,0,0,0.6)]" data-astro-cid-3ef6ksr2> <div class="max-w-none px-6 lg:px-12" data-astro-cid-3ef6ksr2> <div class="flex justify-between items-center h-14" data-astro-cid-3ef6ksr2> <!-- Logo --> <a href="/fr" class="flex items-center group flex-shrink-0" data-astro-cid-3ef6ksr2> <picture><source srcset="/images/logo.webp" type="image/webp"><img src="/images/logo.png" alt="SAD Marketing" class="h-10 w-auto" width="200" height="40" loading="eager" decoding="async" fetchpriority="high"></picture> </a> <!-- Desktop Navigation --> <nav class="hidden lg:flex items-center gap-1" data-astro-cid-3ef6ksr2> <div class="relative mm" data-megamenu data-astro-cid-3ef6ksr2> <button type="button" aria-expanded="false" aria-haspopup="true" aria-controls="mm-enjeux" class="flex items-center gap-1.5 px-4 py-2.5 text-sm text-brand-accent hover:text-white font-medium transition-colors rounded-lg hover:bg-white/5" data-astro-cid-3ef6ksr2> Enjeux <svg class="mm-chevron w-3.5 h-3.5 transition-transform" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M19 9l-7 7-7-7" data-astro-cid-3ef6ksr2></path></svg> </button> <div id="mm-enjeux" class="mm-panel absolute z-50 top-full left-1/2 -translate-x-1/2 pt-3" data-astro-cid-3ef6ksr2> <div class="bg-brand-darker/95 backdrop-blur-2xl border border-white/10 rounded-2xl p-4 shadow-2xl w-[320px]" data-astro-cid-3ef6ksr2> <a href="/fr/solutions/etudes-geomarketing" class="flex items-start gap-3 p-3 rounded-xl hover:bg-white/5 transition-colors group/item" data-astro-cid-3ef6ksr2> <div class="w-9 h-9 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 mt-0.5 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-4.5 h-4.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/></svg> </div> <div data-astro-cid-3ef6ksr2> <div class="font-semibold text-white text-sm" data-astro-cid-3ef6ksr2>Ouvrir un point de vente</div> <div class="text-xs text-brand-accent-dim mt-0.5" data-astro-cid-3ef6ksr2>ELM, EGM, CA prévisionnel, Loi Doubin</div> </div> </a><a href="/fr/solutions/sad-interactive" class="flex items-start gap-3 p-3 rounded-xl hover:bg-white/5 transition-colors group/item" data-astro-cid-3ef6ksr2> <div class="w-9 h-9 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 mt-0.5 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-4.5 h-4.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"/></svg> </div> <div data-astro-cid-3ef6ksr2> <div class="font-semibold text-white text-sm" data-astro-cid-3ef6ksr2>Optimiser mon réseau</div> <div class="text-xs text-brand-accent-dim mt-0.5" data-astro-cid-3ef6ksr2>Performance, conso, tracking</div> </div> </a><a href="/fr/solutions/releves-prix" class="flex items-start gap-3 p-3 rounded-xl hover:bg-white/5 transition-colors group/item" data-astro-cid-3ef6ksr2> <div class="w-9 h-9 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 mt-0.5 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-4.5 h-4.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/></svg> </div> <div data-astro-cid-3ef6ksr2> <div class="font-semibold text-white text-sm" data-astro-cid-3ef6ksr2>
672Définir ma stratégie prix</div> <div class="text-xs text-brand-accent-dim mt-0.5" data-astro-cid-3ef6ksr2>Terrain, e-commerce, élasticité</div> </div> </a><a href="/fr/solutions/etudes-consommateurs" class="flex items-start gap-3 p-3 rounded-xl hover:bg-white/5 transition-colors group/item" data-astro-cid-3ef6ksr2> <div class="w-9 h-9 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 mt-0.5 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-4.5 h-4.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M17 8h2a2 2 0 012 2v6a2 2 0 01-2 2h-2v4l-4-4H9a1.994 1.994 0 01-1.414-.586m0 0L11 14h4a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2v4l.586-.586z"/></svg> </div> <div data-astro-cid-3ef6ksr2> <div class="font-semibold text-white text-sm" data-astro-cid-3ef6ksr2>Comprendre mes clients</div> <div class="text-xs text-brand-accent-dim mt-0.5" data-astro-cid-3ef6ksr2>Qualitatif, quantitatif, social listening</div> </div> </a><a href="/fr/solutions/expansion-internationale" class="flex items-start gap-3 p-3 rounded-xl hover:bg-white/5 transition-colors group/item" data-astro-cid-3ef6ksr2> <div class="w-9 h-9 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 mt-0.5 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-4.5 h-4.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M3.055 11H5a2 2 0 012 2v1a2 2 0 002 2 2 2 0 012 2v2.945M8 3.935V5.5A2.5 2.5 0 0010.5 8h.5a2 2 0 012 2 2 2 0 104 0 2 2 0 012-2h1.064M15 20.488V18a2 2 0 012-2h3.064M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/></svg> </div> <div data-astro-cid-3ef6ksr2> <div class="font-semibold text-white text-sm" data-astro-cid-3ef6ksr2>S'implanter à l'international</div> <div class="text-xs text-brand-accent-dim mt-0.5" data-astro-cid-3ef6ksr2>Dubaï, Moyen-Orient, Europe, Afrique</div> </div> </a><a href="/fr/solutions/retail-intelligence" class="flex items-start gap-3 p-3 rounded-xl hover:bg-white/5 transition-colors group/item" data-astro-cid-3ef6ksr2> <div class="w-9 h-9 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 mt-0.5 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-4.5 h-4.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"/></svg> </div> <div data-astro-cid-3ef6ksr2> <div class="font-semibold text-white text-sm" data-astro-cid-3ef6ksr2>Booster mes ventes</div> <div class="text-xs text-brand-accent-dim mt-0.5" data-astro-cid-3ef6ksr2>Retail Intelligence, fidélisation, panier</div> </div> </a> </div> </div> </div><div class="relative mm" data-megamenu data-astro-cid-3ef6ksr2> <button type="button" aria-expanded="false" aria-haspopup="true" aria-controls="mm-solutions" class="flex items-center gap-1.5 px-4 py-2.5 text-sm text-brand-accent hover:text-white font-medium transition-colors rounded-lg hover:bg-white/5" data-astro-cid-3ef6ksr2> Solutions <svg class="mm-chevron w-3.5 h-3.5 transition-transform" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M19 9l-7 7-7-7" data-astro-cid-3ef6ksr2></path></svg> </button> <div id="mm-solutions" class="mm-panel absolute z-50 top-full left-1/2 -translate-x-1/2 pt-3" data-astro-cid-3ef6ksr2> <div class="bg-brand-darker/95 backdrop-blur-2xl border border-white/10 rounded-2xl p-5 shadow-2xl w-[680px] grid grid-cols-3 gap-6" data-astro-cid-3ef6ksr2> <div data-astro-cid-3ef6ksr2> <div class="text-xs font-bold text-brand-accent-dim uppercase tracking-wider mb-3 border-b border-white/10 pb-2" data-astro-cid-3ef6ksr2>Mesurer</div> <a href="/fr/solutions/etude-de-marche" class="flex items-center gap-2.5 p-2 rounded-xl hover:bg-white/5 transition-colors group/item mb-1" data-astro-cid-3ef6ksr2> <div class="w-7 h-7 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-3.5 h-3.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"/></svg> </div> <span class="text-brand-accent hover:text-white text-sm font-medium leading-tight" data-astro-cid-3ef6ksr2>Ãtude de marché globale</span> </a><a href="/fr/solutions/etudes-geomarketing" class="flex items-center gap-2.5 p-2 rounded-xl hover:bg-white/5 transition-colors group/item mb-1" data-astro-cid-3ef6ksr2> <div class="w-7 h-7 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-3.5 h-3.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253"/>
672</svg> </div> <span class="text-brand-accent hover:text-white text-sm font-medium leading-tight" data-astro-cid-3ef6ksr2>Ãtudes géomarketing</span> </a><a href="/fr/solutions/etat-local-de-marche" class="flex items-center gap-2.5 p-2 rounded-xl hover:bg-white/5 transition-colors group/item mb-1" data-astro-cid-3ef6ksr2> <div class="w-7 h-7 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-3.5 h-3.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253"/></svg> </div> <span class="text-brand-accent hover:text-white text-sm font-medium leading-tight" data-astro-cid-3ef6ksr2>Ãtat Local de Marché â Loi Doubin</span> </a><a href="/fr/solutions/implantation-ca-previsionnel" class="flex items-center gap-2.5 p-2 rounded-xl hover:bg-white/5 transition-colors group/item mb-1" data-astro-cid-3ef6ksr2> <div class="w-7 h-7 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-3.5 h-3.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M3 3v18h18M7 14l4-4 4 4 5-5"/></svg> </div> <span class="text-brand-accent hover:text-white text-sm font-medium leading-tight" data-astro-cid-3ef6ksr2>Implantation & CA prévisionnel</span> </a><a href="/fr/solutions/cap-irve" class="flex items-center gap-2.5 p-2 rounded-xl hover:bg-white/5 transition-colors group/item mb-1" data-astro-cid-3ef6ksr2> <div class="w-7 h-7 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-3.5 h-3.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M13 10V3L4 14h7v7l9-11h-7z"/></svg> </div> <span class="text-brand-accent hover:text-white text-sm font-medium leading-tight" data-astro-cid-3ef6ksr2>Implantation IRVE â Bornes de recharge</span> </a><a href="/fr/solutions/dossier-cdac" class="flex items-center gap-2.5 p-2 rounded-xl hover:bg-white/5 transition-colors group/item mb-1" data-astro-cid-3ef6ksr2> <div class="w-7 h-7 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-3.5 h-3.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"/></svg> </div> <span class="text-brand-accent hover:text-white text-sm font-medium leading-tight" data-astro-cid-3ef6ksr2>Dossier CDAC & Urbanisme commercial</span> </a><a href="/fr/solutions/analyse-impact-cdac" class="flex items-center gap-2.5 p-2 rounded-xl hover:bg-white/5 transition-colors group/item mb-1" data-astro-cid-3ef6ksr2> <div class="w-7 h-7 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-3.5 h-3.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/></svg> </div> <span class="text-brand-accent hover:text-white text-sm font-medium leading-tight" data-astro-cid-3ef6ksr2>Analyse dâimpact (loi ELAN)</span> </a><a href="/fr/solutions/etude-de-trafic-cdac" class="flex items-center gap-2.5 p-2 rounded-xl hover:bg-white/5 transition-colors group/item mb-1" data-astro-cid-3ef6ksr2> <div class="w-7 h-7 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-3.5 h-3.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M9 6.75V15m6-6v8.25m.503 3.498 4.875-2.437c.381-.19.622-.58.622-1.006V4.82c0-.836-.88-1.38-1.628-1.006l-3.869 1.934c-.317.159-.69.159-1.006 0L9.503 3.252a1.125 1.125 0 00-1.006 0L3.622 5.689C3.24 5.88 3 6.27 3 6.695V19.18c0 .836.88 1.38 1.628 1.006l3.869-1.934c.317-.159.69-.159 1.006 0l4.994 2.497c.317.158.69.158 1.006 0z"/></svg> </div> <span class="text-brand-accent hover:text-white text-sm font-medium leading-tight" data-astro-cid-3ef6ksr2>Ãtude de trafic CDAC</span> </a><a href="/fr/solutions/certificat-conformite-cdac" class="flex items-center gap-2.5 p-2 rounded-xl hover:bg-white/5 transition-colors group/item mb-1" data-astro-cid-3ef6ksr2> <div class="w-7 h-7 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-3.5 h-3.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"/></svg> </div> <span class="text-brand-accent hover:text-white text-sm font-medium leading-tight" data-astro-cid-3ef6ksr2>Certificat de conformité</span> </a><a href="/fr/solutions/comptages-routiers" class="flex items-center gap-2.5 p-2 rounded-xl hover:bg-white/5 transition-colors group/item mb-1" data-astro-cid-3ef6ksr2> <div class="w-7 h-7 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-3.5 h-3.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M9 6.75V15m6-6v8.25m.503 3.498 4.875-2.437c.381-.19.622-.58.622-1.006V4.82c0-.836-.88-1.38-1.628-1.006l-3.869 1.934c-.317.159-.69.159-1.006 0L9.503 3.252a1.125 1.125 0 00-1.006 0L3.622 5.689C3.24 5.88 3 6.27 3 6.695V19.18c0 .836.88 1.38 1.628 1.006l3.869-1.934c.317-.159.69-.159 1.006 0l4.994 2.497c.317.158.69.158 1.006 0z"/></svg> </div> <span class="text-brand-accent hover:text-white text-sm font-medium leading-tight" data-astro-cid-3ef6ksr2>Comptages routiers & piétons</span> </a><a href="/fr/solutions/donnees-trafic-routier" class="flex items-center gap-2.5 p-2 rounded-xl hover:bg-white/5 transition-colors group/item mb-1" data-astro-cid-3ef6ksr2> <div class="w-7 h-7 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-3.5 h-3.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"/></svg> </div> <span class="text-brand-accent hover:text-white text-sm font-medium leading-tight" data-astro-cid-3ef6ksr2>Données de trafic à lâadresse</span> </a><a href="/fr/solutions/releves-prix" class="flex items-center gap-2.5 p-2 rounded-xl hover:bg-white/5 transition-colors group/item mb-1" data-astro-cid-3ef6ksr2> <div class="w-7 h-7 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-3.5 h-3.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/></svg> </div> <span class="text-brand-accent hover:text-white text-sm font-medium leading-tight" data-astro-cid-3ef6ksr2>Relevés de Prix</span> </a> </div><div data-astro-cid-3ef6ksr2> <div class="text-xs font-bold text-brand-accent-dim uppercase tracking-wider mb-3 border-b border-white/10 pb-2" data-astro-cid-3ef6ksr2>Comprendre</div> <a href="/fr/solutions/etudes-consommateurs" class="flex items-center gap-2.5 p-2 rounded-xl hover:bg-white/5 transition-colors group/item mb-1" data-astro-cid-3ef6ksr2> <div class="w-7 h-7 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-3.5 h-3.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M17 8h2a2 2 0 012 2v6a2 2 0 01-2 2h-2v4l-4-4H9a1.994 1.994 0 01-1.414-.586m0 0L11 14h4a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2v4l.586-.586z"/></svg> </div> <span class="text-brand-accent hover:text-white text-sm font-medium leading-tight" data-astro-cid-3ef6ksr2>Ãtudes Consommateurs (Quali/Quanti)</span> </a><a href="/fr/solutions/client-mystere" class="flex items-center gap-2.5 p-2 rounded-xl hover:bg-white/5 transition-colors group/item mb-1" data-astro-cid-3ef6ksr2> <div class="w-7 h-7 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-3.5 h-3.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"/><path d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"/></svg> </div> <span class="text-brand-accent hover:text-white text-sm font-medium leading-tight" data-astro-cid-3ef6ksr2>Client Mystère & Mystery Shopping</span> </a> </div><div data-astro-cid-3ef6ksr2> <div class="text-xs font-bold text-brand-accent-dim uppercase tracking-wider mb-3 border-b border-white/10 pb-2" data-astro-cid-3ef6ksr2>Prévoir</div> <a href="/fr/solutions/predictops-retail" class="flex items-center gap-2.5 p-2 rounded-xl hover:bg-white/5 transition-colors group/item mb-1" data-astro-cid-3ef6ksr2> <div class="w-7 h-7 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-3.5 h-3.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M13 10V3L4 14h7v7l9-11h-7z"/></svg> </div> <span class="text-brand-accent hover:text-white text-sm font-medium leading-tight" data-astro-cid-3ef6ksr2>PredictOps Retail</span> </a><a href="/fr/solutions/predictops-securite-civile" class="flex items-center gap-2.5 p-2 rounded-xl hover:bg-white/5 transition-colors group/item mb-1" data-astro-cid-3ef6ksr2> <div class="w-7 h-7 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-3.5 h-3.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"/></svg> </div> <span class="text-brand-accent hover:text-white text-sm font-medium leading-tight" data-astro-cid-3ef6ksr2>
672PredictOps Sécurité Civile</span> </a><a href="/fr/solutions/generatops" class="flex items-center gap-2.5 p-2 rounded-xl hover:bg-white/5 transition-colors group/item mb-1" data-astro-cid-3ef6ksr2> <div class="w-7 h-7 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-3.5 h-3.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"/></svg> </div> <span class="text-brand-accent hover:text-white text-sm font-medium leading-tight" data-astro-cid-3ef6ksr2>GeneratOps</span> </a><a href="/fr/solutions/doctrinops" class="flex items-center gap-2.5 p-2 rounded-xl hover:bg-white/5 transition-colors group/item mb-1" data-astro-cid-3ef6ksr2> <div class="w-7 h-7 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-3.5 h-3.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253"/></svg> </div> <span class="text-brand-accent hover:text-white text-sm font-medium leading-tight" data-astro-cid-3ef6ksr2>DoctrinOps</span> </a><a href="/fr/solutions/sad-interactive" class="flex items-center gap-2.5 p-2 rounded-xl hover:bg-white/5 transition-colors group/item mb-1" data-astro-cid-3ef6ksr2> <div class="w-7 h-7 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-3.5 h-3.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M9 20l-5.447-2.724A1 1 0 013 16.382V5.618a1 1 0 011.447-.894L9 7m0 13l6-3m-6 3V7m6 10l4.553 2.276A1 1 0 0021 18.382V7.618a1 1 0 00-.553-.894L15 4m0 13V4m0 0L9 7"/></svg> </div> <span class="text-brand-accent hover:text-white text-sm font-medium leading-tight" data-astro-cid-3ef6ksr2>SAD Interactive</span> </a><a href="/fr/solutions/retail-intelligence" class="flex items-center gap-2.5 p-2 rounded-xl hover:bg-white/5 transition-colors group/item mb-1" data-astro-cid-3ef6ksr2> <div class="w-7 h-7 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-3.5 h-3.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"/></svg> </div> <span class="text-brand-accent hover:text-white text-sm font-medium leading-tight" data-astro-cid-3ef6ksr2>Retail Intelligence</span> </a> </div> </div> </div> </div><div class="relative mm" data-megamenu data-astro-cid-3ef6ksr2> <button type="button" aria-expanded="false" aria-haspopup="true" aria-controls="mm-secteurs" class="flex items-center gap-1.5 px-4 py-2.5 text-sm text-brand-accent hover:text-white font-medium transition-colors rounded-lg hover:bg-white/5" data-astro-cid-3ef6ksr2> Secteurs <svg class="mm-chevron w-3.5 h-3.5 transition-transform" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M19 9l-7 7-7-7" data-astro-cid-3ef6ksr2></path></svg> </button> <div id="mm-secteurs" class="mm-panel absolute z-50 top-full left-1/2 -translate-x-1/2 pt-3" data-astro-cid-3ef6ksr2> <div class="bg-brand-darker/95 backdrop-blur-2xl border border-white/10 rounded-2xl p-4 shadow-2xl w-[320px]" data-astro-cid-3ef6ksr2> <a href="/fr/secteurs/fonciere-immobilier" class="flex items-start gap-3 p-3 rounded-xl hover:bg-white/5 transition-colors group/item" data-astro-cid-3ef6ksr2> <div class="w-9 h-9 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 mt-0.5 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-4.5 h-4.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"/></svg> </div> <div data-astro-cid-3ef6ksr2> <div class="font-semibold text-white text-sm" data-astro-cid-3ef6ksr2>Foncière & Immobilier</div> <div class="text-xs text-brand-accent-dim mt-0.5" data-astro-cid-3ef6ksr2>Centres commerciaux, retail parks, gares</div> </div> </a><a href="/fr/secteurs/retail-franchise" class="flex items-start gap-3 p-3 rounded-xl hover:bg-white/5 transition-colors group/item" data-astro-cid-3ef6ksr2> <div class="w-9 h-9 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 mt-0.5 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-4.5 h-4.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M16 11V7a4 4 0 00-8 0v4M5 9h14l1 12H4L5 9z"/></svg> </div> <div data-astro-cid-3ef6ksr2> <div class="font-semibold text-white text-sm" data-astro-cid-3ef6ksr2>Retail & Franchise</div> <div class="text-xs text-brand-accent-dim mt-0.5" data-astro-cid-3ef6ksr2>Mode, beauté, GSS, succursales</div> </div> </a><a href="/fr/secteurs/restauration" class="flex items-start gap-3 p-3 rounded-xl hover:bg-white/5 transition-colors group/item" data-astro-cid-3ef6ksr2> <div class="w-9 h-9 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 mt-0.5 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-4.5 h-4.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> </div> <div data-astro-cid-3ef6ksr2> <div class="font-semibold text-white text-sm" data-astro-cid-3ef6ksr2>Restauration</div> <div class="text-xs text-brand-accent-dim mt-0.5" data-astro-cid-3ef6ksr2>Restauration rapide, à table, boulangerie</div> </div> </a><a href="/fr/secteurs/public-securite" class="flex items-start gap-3 p-3 rounded-xl hover:bg-white/5 transition-colors group/item" data-astro-cid-3ef6ksr2> <div class="w-9 h-9 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 mt-0.5 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-4.5 h-4.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"/></svg> </div> <div data-astro-cid-3ef6ksr2> <div class="font-semibold text-white text-sm" data-astro-cid-3ef6ksr2>Public & Sécurité</div> <div class="text-xs text-brand-accent-dim mt-0.5" data-astro-cid-3ef6ksr2>Sécurité civile, SDIS, pompiers</div> </div> </a><a href="/fr/secteurs/sante-silver-economie" class="flex items-start gap-3 p-3 rounded-xl hover:bg-white/5 transition-colors group/item" data-astro-cid-3ef6ksr2> <div class="w-9 h-9 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 mt-0.5 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-4.5 h-4.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z"/></svg> </div> <div data-astro-cid-3ef6ksr2> <div class="font-semibold text-white text-sm" data-astro-cid-3ef6ksr2>Santé & Silver Ãco</div> <div class="text-xs text-brand-accent-dim mt-0.5" data-astro-cid-3ef6ksr2>EHPAD, résidences seniors, santé</div> </div> </a><a href="/fr/secteurs/irve-mobilite-electrique" class="flex items-start gap-3 p-3 rounded-xl hover:bg-white/5 transition-colors group/item" data-astro-cid-3ef6ksr2> <div class="w-9 h-9 rounded-lg bg-white/5 flex items-center justify-center flex-shrink-0 mt-0.5 group-hover/item:bg-brand-orange/20 transition-colors" data-astro-cid-3ef6ksr2> <svg class="w-4.5 h-4.5 text-brand-accent group-hover/item:text-brand-orange transition-colors" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path d="M13 10V3L4 14h7v7l9-11h-7z"/></svg> </div> <div data-astro-cid-3ef6ksr2> <div class="font-semibold text-white text-sm" data-astro-cid-3ef6ksr2>IRVE & Mobilité électrique</div> <div class="text-xs text-brand-accent-dim mt-0.5" data-astro-cid-3ef6ksr2>Recharge, foncier, conformité LOM/APER</div> </div> </a> </div> </div> </div>
672 <a href="/fr/conjoncture" class="px-4 py-2.5 text-sm font-medium transition-all rounded-lg relative group/nav text-brand-accent hover:text-white hover:bg-white/5" data-astro-cid-3ef6ksr2> Conjoncture </a><a href="/fr/outils" class="px-4 py-2.5 text-sm font-medium transition-all rounded-lg relative group/nav text-brand-accent hover:text-white hover:bg-white/5" data-astro-cid-3ef6ksr2> Outils gratuits </a><a href="/fr/blog" class="px-4 py-2.5 text-sm font-medium transition-all rounded-lg relative group/nav text-brand-accent hover:text-white hover:bg-white/5" data-astro-cid-3ef6ksr2> Blog </a><a href="/fr/a-propos" class="px-4 py-2.5 text-sm font-medium transition-all rounded-lg relative group/nav text-brand-accent hover:text-white hover:bg-white/5" data-astro-cid-3ef6ksr2> à Propos </a> </nav> <!-- CTA + Mobile toggle --> <div class="flex items-center gap-3" data-astro-cid-3ef6ksr2> <a id="header-cta" data-cta-state="rest" href="/fr/contact" class="header-cta hidden sm:inline-flex items-center gap-2 font-bold px-5 py-2.5 rounded-xl text-sm transition-all duration-300 group" data-astro-cid-3ef6ksr2> Parler à un expert <svg class="w-4 h-4 group-hover:translate-x-0.5 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M14 5l7 7m0 0l-7 7m7-7H3" data-astro-cid-3ef6ksr2></path></svg> </a> <!-- Ouverture du menu mobile. Cible portée à 44 px (recommandation 673 tactile Apple/Google) : les 40 px précédents faisaient rater le 674 bouton d'un doigt posé un peu bas. Le panneau, lui, vit dans
675 <MobileNav> au niveau de <body>. --> <button id="mobile-menu-btn" class="ham lg:hidden -mr-1 w-11 h-11 flex flex-col items-center justify-center gap-1.5 rounded-lg transition-colors" aria-label="Menu" aria-expanded="false" aria-controls="mobile-nav" data-astro-cid-3ef6ksr2> <span class="ham-1 w-5 h-0.5 bg-white rounded-full transition-transform duration-300" data-astro-cid-3ef6ksr2></span> <span class="ham-2 w-5 h-0.5 bg-white rounded-full transition-transform duration-300" data-astro-cid-3ef6ksr2></span> <span class="ham-3 w-3 h-0.5 bg-white/60 rounded-full transition-opacity duration-300" data-astro-cid-3ef6ksr2></span> </button> </div> </div> </div> </div> </header>
675<script type="module">function i(){const a=document.getElementById("header-cta");if(!a)return;const s=()=>{const o=window.scrollY>window.innerHeight*.5;a.setAttribute("data-cta-state",o?"active":"rest")};s(),window.addEventListener("scroll",s,{passive:!0}),window.addEventListener("resize",s,{passive:!0})}function c(){const a=Array.from(document.querySelectorAll("[data-megamenu]"));if(a.length===0)return;const s=e=>{e.classList.remove("mm-open"),e.querySelector("button")?.setAttribute("aria-expanded","false")},o=e=>{a.forEach(t=>{t!==e&&s(t)})};a.forEach(e=>{const t=e.querySelector("button");t&&(t.addEventListener("click",()=>{const n=!e.classList.contains("mm-open");o(e),e.classList.toggle("mm-open",n),t.setAttribute("aria-expanded",n?"true":"false")}),e.addEventListener("focusout",n=>{const r=n.relatedTarget;(!(r instanceof Node)||!e.contains(r))&&s(e)}),e.addEventListener("keydown",n=>{n.key==="Escape"&&e.classList.contains("mm-open")&&(s(e),t.focus())}),e.addEventListener("mouseleave",()=>s(e)))}),window.__sadMegaMenuOutside||(window.__sadMegaMenuOutside=!0,document.addEventListener("click",e=>{const t=e.target;t instanceof Element&&t.closest("[data-megamenu]")||document.querySelectorAll("[data-megamenu].mm-open").forEach(n=>{n.classList.remove("mm-open"),n.querySelector("button")?.setAttribute("aria-expanded","false")})}))}document.addEventListener("astro:page-load",()=>{i(),c()});</script>
675 <main id="contenu" class="flex-grow"> <section class="relative pt-32 pb-20 lg:pt-44 lg:pb-28 overflow-hidden min-h-[80vh] flex items-center"> <!-- Background visual --> <div class="absolute inset-0"> <img src="/images/hero-regulation.png" alt="" class="w-full h-full object-cover opacity-20"> </div> <div class="absolute inset-0 bg-gradient-to-r from-brand-darker/98 via-brand-dark/90 to-brand-dark/50 lg:to-brand-dark/30"></div> <div class="absolute inset-0 bg-gradient-to-t from-brand-dark via-transparent to-brand-darker/70"></div> <div class="absolute inset-0 bg-[radial-gradient(circle_at_70%_30%,_rgba(139,92,246,0.10)_0%,_transparent_60%)]"></div> <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 relative z-10 w-full"> <div class="grid lg:grid-cols-2 gap-16 items-center"> <div class="text-center lg:text-left"> <div class="inline-flex items-center gap-2 px-3 py-1.5 rounded-lg bg-brand-orange/15 border border-brand-orange/30 text-brand-orange text-xs font-bold uppercase tracking-wider mb-14 mx-auto lg:mx-0"> <span class="w-2 h-2 rounded-full bg-brand-orange animate-glow-pulse"></span> 676Géomarketing 677</div> <h1 class="font-display text-5xl lg:text-7xl font-black leading-[1.05] mb-6 reveal-text"><span class="block font-display text-xl lg:text-2xl font-bold tracking-tight mb-4 text-brand-accent">Cabinet spécialisé en étude géomarketing sur-mesure</span><span class="text-white block">Le bon emplacement,</span> <span class="text-gradient-orange italic font-serif">prouvé</span> <span class="text-white block">par la donnée.</span></h1> <p class="text-xl text-brand-accent leading-relaxed mb-4 max-w-lg mx-auto lg:mx-0"> 678Un Ãtat Local de Marché ou un Chiffre d'Affaires Prévisionnel ne sont pas de simples cases à cocher. Ce sont des <strong class="text-white">instruments stratégiques</strong> qui sécurisent des investissements de plusieurs centaines de milliers d'euros. 679</p> <p class="text-brand-orange font-bold font-display text-xl mb-10 max-w-lg mx-auto lg:mx-0"> 680Ãtudes sur-mesure, devis sous 24 h. 681</p> <div class="flex flex-col sm:flex-row gap-4"> <div class="scroll-reveal translate-y-8 opacity-0 " data-reveal="fade-up" data-delay="0.3" data-duration="0.6" data-once="true" style="transition-delay: 0.3s; transition-duration: 0.6s;" data-astro-cid-gkxl7tdg> <a href="#lead-form" class="magnetic-btn group inline-flex items-center gap-2 px-8 py-4 bg-brand-orange hover:bg-brand-orange-light text-brand-darker font-bold rounded-xl transition-all shadow-lg glow-orange"> 682Demander un devis sous 24h 683<svg class="w-4 h-4 group-hover:translate-x-1 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M14 5l7 7m0 0l-7 7m7-7H3"></path></svg> </a> </div>
683<script type="module">function l(){const s={root:null,rootMargin:"0px 0px -8% 0px",threshold:[0,.12]},a=new IntersectionObserver(r=>{r.forEach(t=>{if(t.isIntersecting){const e=t.target;if(!(t.boundingClientRect.height>window.innerHeight*.9)&&t.intersectionRatio<.12)return;const n=e.parentElement;if(n&&n.hasAttribute("data-stagger-group")){const i=Array.from(n.querySelectorAll(":scope > .scroll-reveal")).indexOf(e);if(i>0&&!e.dataset.staggerApplied){const d=parseFloat(e.dataset.delay||"0");e.style.transitionDelay=`${d+i*.08}s`,e.dataset.staggerApplied="true"}}e.classList.add("revealed"),e.dataset.once==="true"&&a.unobserve(e)}else t.target instanceof HTMLElement&&t.target.dataset.once==="false"&&t.target.classList.remove("revealed")})},s);document.querySelectorAll(".scroll-reveal").forEach(r=>{a.observe(r)})}function c(){const s=document.querySelectorAll("[data-parallax]");if(s.length===0||window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;let a=!1;const r=()=>{const t=window.scrollY;s.forEach(e=>{const o=parseFloat(e.dataset.parallax||"0.1");e.style.transform=`translate3d(0, ${t*o*-1}px, 0)`}),a=!1};window.addEventListener("scroll",()=>{a||(requestAnimationFrame(r),a=!0)},{passive:!0}),r()}l();c();document.addEventListener("astro:after-swap",()=>{l(),c()});</script>
683 <div class="scroll-reveal translate-y-8 opacity-0 " data-reveal="fade-up" data-delay="0.4" data-duration="0.6" data-once="true" style="transition-delay: 0.4s; transition-duration: 0.6s;" data-astro-cid-gkxl7tdg> <a href="#etudes" class="magnetic-btn group inline-flex items-center gap-2 px-8 py-4 border border-white/20 hover:border-brand-orange/50 hover:bg-white/5 text-white font-bold rounded-xl transition-all"> 684Découvrir nos études 685<svg class="w-4 h-4 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 14l-7 7m0 0l-7-7m7 7V3"></path></svg> </a> </div> </div> </div> <!-- Right side: animated UI mockup dashboard --> <div class="hidden lg:block"> <div class="scroll-reveal -translate-x-8 opacity-0 " data-reveal="fade-left" data-delay="0" data-duration="0.6" data-once="true" style="transition-delay: 0s; transition-duration: 0.6s;" data-astro-cid-gkxl7tdg> <div class="relative"> <div class="absolute -inset-4 bg-gradient-to-tr from-brand-orange/20 to-data-500/20 rounded-3xl blur-3xl animate-pulse"></div> <!-- Dashboard Frame --> <div class="relative rounded-2xl overflow-hidden border border-white/15 bg-brand-darker/90 backdrop-blur-xl shadow-2xl tilt-card spotlight-area p-5 text-left font-sans"> <!-- Mockup Header / Top Bar --> <div class="flex items-center justify-between pb-4 mb-4 border-b border-white/10"> <div class="flex items-center gap-2"> <span class="w-3 h-3 rounded-full bg-alert-500/80 inline-block"></span> <span class="w-3 h-3 rounded-full bg-yellow-500/80 inline-block"></span> <span class="w-3 h-3 rounded-full bg-green-500/80 inline-block"></span> <span class="ml-2 text-xs font-mono text-brand-accent-dim">sad-geomarketing.app / studio</span> </div> <div class="flex items-center gap-2"> <span class="inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full bg-brand-orange/15 border border-brand-orange/30 text-[10px] font-semibold text-brand-orange"> <span class="w-1.5 h-1.5 rounded-full bg-brand-orange animate-ping"></span> 686Moteur PredictOps 687</span> </div> </div> <!-- Mockup Grid Content --> <div class="grid grid-cols-12 gap-4"> <!-- Left Mini Map Box --> <div class="col-span-7 bg-brand-dark/80 rounded-xl border border-white/10 p-3 relative overflow-hidden h-64 flex flex-col justify-between group"> <!-- Fake Isochrone Shapes & Map BG --> <div class="absolute inset-0 opacity-40 bg-[radial-gradient(#ffffff_1px,transparent_1px)] [background-size:16px_16px]"></div> <!-- Map Pin & Isochrone Rings Animation --> <div class="absolute inset-0 flex items-center justify-center pointer-events-none"> <div class="w-44 h-44 rounded-full border border-brand-orange/40 bg-brand-orange/10 animate-ping opacity-30"></div> <div class="w-32 h-32 rounded-full border border-data-500/50 bg-data-500/15 absolute"></div> <div class="w-16 h-16 rounded-full border-2 border-brand-orange bg-brand-orange/20 absolute flex items-center justify-center shadow-[0_0_20px_rgba(232,146,42,0.5)]"> <div class="w-3 h-3 rounded-full bg-brand-orange animate-pulse"></div> </div> </div> <!-- Map Overlay Badges --> <div class="relative z-10 flex justify-between items-start"> <div class="glass-card px-2.5 py-1 rounded-lg text-[11px] font-semibold text-white border border-white/10 bg-brand-darker/70"> 688ð Lille - Grand Place 689</div> <div class="glass-card px-2 py-1 rounded-lg text-[10px] font-mono text-brand-orange border border-brand-orange/30 bg-brand-darker/70"> 690Isochrone 15 min 691</div> </div> <div class="relative z-10 flex justify-between items-end"> <div class="text-[10px] text-brand-accent-dim bg-brand-darker/80 px-2 py-1 rounded border border-white/5"> 692Couverture INSEE 2024 693</div> <div class="text-[10px] font-bold text-white bg-data-600/80 px-2.5 py-1 rounded-md shadow-sm"> 694Potentiel : Fort 695</div> </div> </div> <!-- Right Data Metrics Column --> <div class="col-span-5 flex flex-col gap-3 justify-between"> <!-- Metric 1: CA Prévisionnel --> <div class="bg-white/5 border border-white/10 rounded-xl p-3"> <div class="text-[10px] uppercase font-bold tracking-wider text-brand-accent-dim mb-1">CA Prévisionnel (Médian)</div> <div class="text-xl font-black text-white font-display flex items-baseline gap-1"> 6961,42 M⬠<span class="text-xs font-semibold text-green-400">±3.8%</span> </div> <div class="w-full bg-white/10 rounded-full h-1.5 mt-2 overflow-hidden"> <div class="bg-gradient-to-r from-brand-orange to-green-400 h-full rounded-full w-[78%]"></div> </div> </div> <!-- Metric 2: Concurrence --> <div class="bg-white/5 border border-white/10 rounded-xl p-3"> <div class="text-[10px] uppercase font-bold tracking-wider text-brand-accent-dim mb-1">Indice de Pression</div> <div class="flex items-center justify-between"> <span class="text-sm font-bold text-white">4 concurrents</span> <span class="text-xs px-2 py-0.5 rounded bg-yellow-500/20 text-yellow-300 font-semibold border border-yellow-500/30">Modéré</span> </div> </div> <!-- Metric 3: Population --> <div class="bg-white/5 border border-white/10 rounded-xl p-3"> <div class="text-[10px] uppercase font-bold tracking-wider text-brand-accent-dim mb-1">Bassin de chalandise</div> <div class="text-sm font-bold text-white">48 250 habitants</div> <div class="text-[10px] text-brand-accent-dim mt-0.5">Dépense moy. : 2 840 â¬/an</div> </div> </div> </div> <!-- Mockup Footer Badge --> <div class="mt-4 pt-3 border-t border-white/10 flex items-center justify-between text-[11px] text-brand-accent"> <div class="flex items-center gap-2"> <span class="w-2 h-2 rounded-full bg-brand-orange animate-glow-pulse"></span> <span><strong>Modélisation SAD</strong> · Restitution interactive & rapport certifié</span> </div> <span class="font-mono text-brand-orange text-[10px] font-bold">Loi Doubin / CA prévisionnel</span> </div> </div> </div> </div> </div> </div> </div> </section> <section class="relative py-12 border-t border-b border-white/5 bg-brand-darker/50"> <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="grid grid-cols-1 sm:grid-cols-3 gap-8 text-center"> <div> <div class="font-display text-4xl lg:text-5xl font-black text-white mb-1"> <span class="animated-counter " data-target="12000" data-duration="2" data-prefix data-suffix="+" data-group="1"> 12â¯000+ </span>
696<script type="module">function m(){const t=document.querySelectorAll(".animated-counter"),s={threshold:.1},n=new IntersectionObserver(o=>{o.forEach(e=>{e.isIntersecting&&!e.target.classList.contains("counted")&&(l(e.target),e.target.classList.add("counted"),n.unobserve(e.target))})},s);t.forEach(o=>n.observe(o))}function l(t){const s=parseFloat(t.dataset.target||"0"),n=parseFloat(t.dataset.duration||"2")*1e3,o=t.dataset.prefix||"",e=t.dataset.suffix||"",c=t.dataset.group!=="0";let r=null;const d=u=>{r||(r=u);const a=Math.min((u-r)/n,1),f=(a===1?1:1-Math.pow(2,-10*a))*s;let i="";if(s%1!==0){const g=s.toString().split(".")[1]?.length||1;i=f.toLocaleString("fr-FR",{minimumFractionDigits:g,maximumFractionDigits:g,useGrouping:c})}else i=Math.round(f).toLocaleString("fr-FR",{useGrouping:c});t.textContent=`${o}${i}${e}`,a<1&&window.requestAnimationFrame(d)};window.requestAnimationFrame(d)}(window.sadDefer||(t=>t()))(m);document.addEventListener("astro:after-swap",()=>(window.sadDefer||(t=>t()))(m));</script>
696 </div> <p class="text-sm text-brand-accent-dim uppercase tracking-widest">études réalisées</p> </div> <div> <div class="font-display text-4xl lg:text-5xl font-black text-white mb-1"> <span class="animated-counter " data-target="45" data-duration="2" data-prefix data-suffix data-group="1"> 45 </span> <span class="text-brand-orange text-3xl">ans</span> </div> <p class="text-sm text-brand-accent-dim uppercase tracking-widest">d'historique</p> </div> <div> <div class="font-display text-4xl lg:text-5xl font-black text-white mb-1"> <span class="animated-counter " data-target="5" data-duration="2" data-prefix data-suffix="K+" data-group="1"> 5K+ </span> </div> <p class="text-sm text-brand-accent-dim uppercase tracking-widest">comptages terrain</p> </div> </div> <!-- Renvoi vers la page d'offre dediee. Cette page-ci captait les requetes 697 « devis comptage vehicules » / « devis comptage pietons » en position 22 698 faute de page proprietaire du sujet ; le lien designe la bonne cible. --> <div class="mt-14 text-center space-y-3"> <a href="/fr/solutions/comptages-routiers" class="inline-flex items-center gap-2 text-brand-orange text-sm font-semibold hover:gap-3 transition-all"> 699Le comptage routier peut aussi se commander seul â véhicules, piétons, TMJA 700<svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M13 5l7 7m0 0l-7 7m7-7H3"></path></svg> </a> <div> <a href="/fr/devis" class="inline-flex items-center gap-2 text-brand-accent text-sm font-semibold hover:text-brand-orange hover:gap-3 transition-all"> 701Les fourchettes de budget, service par service 702<svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M13 5l7 7m0 0l-7 7m7-7H3"></path></svg> </a> </div> </div> </div> </section> <section id="etudes" class="py-24 border-b border-white/5"> <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="text-center max-w-3xl mx-auto mb-16"> <div class="text-xs font-bold text-brand-orange uppercase tracking-widest mb-4">Nos études</div> <h2 class="font-display text-4xl lg:text-5xl font-black text-white mb-4">Le bon instrument pour chaque enjeu</h2> <p class="text-xl text-brand-accent-dim">De la conformité légale à la décision stratégique â chaque étude est un levier de décision.</p> </div> <!-- ELM â Full width showcase --> <div class="scroll-reveal translate-y-8 opacity-0 " data-reveal="fade-up" data-delay="0" data-duration="0.6" data-once="true" style="transition-delay: 0s; transition-duration: 0.6s;" data-astro-cid-gkxl7tdg> <div class="glass-card border border-brand-line/80 overflow-hidden mb-6 hover:border-brand-orange/30 transition-all group"> <div class="grid lg:grid-cols-2 gap-0"> <div class="p-8 lg:p-12 flex flex-col justify-center"> <div class="flex items-center gap-3 mb-5"> <span class="font-display text-5xl font-black text-brand-orange/40 group-hover:text-brand-orange/70 transition-colors">ELM</span> <span class="text-xs font-bold px-3 py-1 rounded-full border bg-brand-orange/20 text-brand-orange border-brand-orange/30">Obligatoire en franchise</span> </div> <h3 class="font-display text-2xl font-bold text-white mb-2">Ãtat Local de Marché</h3> <div class="text-xs font-semibold text-brand-orange uppercase tracking-wider mb-4">Obligation légale Loi Doubin â Franchise</div> <p class="text-brand-accent leading-relaxed mb-6">Analyse exhaustive de la <a href="/fr/blog/comment-calculer-zone-chalandise" class="text-brand-orange hover:text-white underline decoration-brand-orange/40 transition-colors">zone de chalandise</a> â concurrence, densité, flux â enrichie de notre historique sectoriel. Bien au-delà de la conformité minimale requise par la Loi Doubin.</p> <ul class="space-y-2 text-sm text-brand-accent-dim mb-4"> <li class="flex items-center gap-2"><span class="w-1.5 h-1.5 rounded-full bg-brand-orange"></span>Analyse concurrentielle géolocalisée</li> <li class="flex items-center gap-2"><span class="w-1.5 h-1.5 rounded-full bg-brand-orange"></span>Données socio-démographiques enrichies</li> <li class="flex items-center gap-2"><span class="w-1.5 h-1.5 rounded-full bg-brand-orange"></span>Comptages physiques</li> </ul> <div class="flex flex-wrap items-center gap-x-6 gap-y-2.5"> <a href="/fr/solutions/etat-local-de-marche" class="inline-flex items-center gap-2 text-sm font-semibold text-brand-orange hover:gap-3 transition-all"> 703L'ELM réglementaire signé 704<svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
704<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M14 5l7 7m0 0l-7 7m7-7H3"></path></svg> </a> <a href="/fr/outils/etat-local-de-marche-express" class="inline-flex items-center gap-2 text-sm font-semibold text-brand-accent-dim hover:text-white transition-colors"> <svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z"></path></svg> 705Ãditer un ELM express gratuit 706</a> </div> </div> <div class="relative overflow-hidden"> <div class="spp" data-astro-cid-365ihm3g> <div class="spp-chrome" data-astro-cid-365ihm3g> <span class="spp-dot" aria-hidden="true" data-astro-cid-365ihm3g></span> <strong data-astro-cid-365ihm3g>Ãtat Local de Marché</strong> <span class="spp-page" data-astro-cid-365ihm3g>planche 05</span> </div> <div class="spp-body" data-astro-cid-365ihm3g> <div class="spp-h" data-astro-cid-365ihm3g>Concurrence géolocalisée · zone 1</div> <svg class="spp-map" viewBox="0 0 300 170" role="img" aria-label="Concurrence géolocalisée · zone 1" data-astro-cid-365ihm3g> <defs data-astro-cid-365ihm3g> <pattern id="spp-grid" width="20" height="20" patternUnits="userSpaceOnUse" data-astro-cid-365ihm3g> <path d="M20 0H0v20" fill="none" stroke="rgba(21,39,63,.07)" stroke-width="1" data-astro-cid-365ihm3g></path> </pattern> </defs> <rect width="300" height="170" fill="url(#spp-grid)" data-astro-cid-365ihm3g></rect> <path d="M0 68 L300 54" stroke="rgba(21,39,63,.16)" stroke-width="5" fill="none" data-astro-cid-365ihm3g></path> <path d="M138 0 L152 170" stroke="rgba(21,39,63,.16)" stroke-width="4" fill="none" data-astro-cid-365ihm3g></path> <ellipse cx="150" cy="85" rx="96" ry="60" fill="rgba(21,39,63,.04)" stroke="rgba(21,39,63,.2)" stroke-width="1" stroke-dasharray="4 4" data-astro-cid-365ihm3g></ellipse> <ellipse cx="150" cy="85" rx="54" ry="34" fill="rgba(220,95,56,.09)" stroke="rgba(220,95,56,.35)" stroke-width="1" data-astro-cid-365ihm3g></ellipse> <g data-astro-cid-365ihm3g> <circle cx="162" cy="68" r="11" fill="rgba(21,39,63,.1)" data-astro-cid-365ihm3g></circle> <circle cx="162" cy="68" r="8" fill="#15273F" data-astro-cid-365ihm3g></circle> <text x="162" y="71" class="spp-pin" data-astro-cid-365ihm3g>A</text> </g><g data-astro-cid-365ihm3g> <circle cx="96" cy="105.39999999999999" r="11" fill="rgba(21,39,63,.1)" data-astro-cid-365ihm3g></circle> <circle cx="96" cy="105.39999999999999" r="8" fill="#15273F" data-astro-cid-365ihm3g></circle> <text x="96" y="108.39999999999999" class="spp-pin" data-astro-cid-365ihm3g>B</text> </g><g data-astro-cid-365ihm3g> <circle cx="216" cy="51" r="11" fill="rgba(21,39,63,.1)" data-astro-cid-365ihm3g></circle> <circle cx="216" cy="51" r="8" fill="#15273F" data-astro-cid-365ihm3g></circle> <text x="216" y="54" class="spp-pin" data-astro-cid-365ihm3g>C</text> </g><g data-astro-cid-365ihm3g> <circle cx="78" cy="57.8" r="11" fill="rgba(21,39,63,.1)" data-astro-cid-365ihm3g></circle> <circle cx="78" cy="57.8" r="8" fill="#15273F" data-astro-cid-365ihm3g></circle> <text x="78" y="60.8" class="spp-pin" data-astro-cid-365ihm3g>D</text> </g><g data-astro-cid-365ihm3g> <circle cx="228" cy="115.6" r="11" fill="rgba(21,39,63,.1)" data-astro-cid-365ihm3g></circle> <circle cx="228" cy="115.6" r="8" fill="#15273F" data-astro-cid-365ihm3g></circle> <text x="228" y="118.6" class="spp-pin" data-astro-cid-365ihm3g>E</text> </g> <circle cx="150" cy="85" r="10" fill="rgba(220,95,56,.2)" data-astro-cid-365ihm3g></circle> <circle cx="150" cy="85" r="5" fill="#DC5F38" data-astro-cid-365ihm3g></circle> </svg> <dl class="spp-stats" data-astro-cid-365ihm3g> <div data-astro-cid-365ihm3g> <dt data-astro-cid-365ihm3g>Population zone</dt> <dd data-astro-cid-365ihm3g>123 600</dd> </div><div data-astro-cid-365ihm3g> <dt data-astro-cid-365ihm3g>Ménages</dt> <dd data-astro-cid-365ihm3g>55 900</dd> </div><div data-astro-cid-365ihm3g> <dt data-astro-cid-365ihm3g>Concurrents directs</dt> <dd data-astro-cid-365ihm3g>5</dd> </div><div data-astro-cid-365ihm3g> <dt data-astro-cid-365ihm3g>Revenu médian / UC</dt> <dd data-astro-cid-365ihm3g>24 800 â¬</dd> </div> </dl> <div class="spp-stamp" data-astro-cid-365ihm3g>Conforme Loi Doubin</div> </div> <div class="spp-foot" data-astro-cid-365ihm3g>Cas anonymisé</div> </div> </div> </div> </div> </div> <!-- CA prévisionnel â Full width showcase (inversé) --> <div class="scroll-reveal translate-y-8 opacity-0 " data-reveal="fade-up" data-delay="0.1" data-duration="0.6" data-once="true" style="transition-delay: 0.1s; transition-duration: 0.6s;" data-astro-cid-gkxl7tdg>
706 <a href="/fr/solutions/implantation-ca-previsionnel" class="block glass-card border border-brand-line/80 overflow-hidden mb-6 hover:border-brand-orange/30 focus-visible:border-brand-orange/50 focus-visible:outline-none transition-all group"> <div class="grid lg:grid-cols-2 gap-0"> <div class="relative overflow-hidden order-2 lg:order-1"> <div class="spp" data-astro-cid-365ihm3g> <div class="spp-chrome" data-astro-cid-365ihm3g> <span class="spp-dot" aria-hidden="true" data-astro-cid-365ihm3g></span> <strong data-astro-cid-365ihm3g>CA prévisionnel</strong> <span class="spp-page" data-astro-cid-365ihm3g>planche 08</span> </div> <div class="spp-body" data-astro-cid-365ihm3g> <div class="spp-h" data-astro-cid-365ihm3g>Trois scénarios</div> <div class="spp-scen" data-astro-cid-365ihm3g> <div class="spp-scen-cell" data-on="false" data-astro-cid-365ihm3g> <div class="spp-scen-l" data-astro-cid-365ihm3g>Bas</div> <div class="spp-scen-v" data-astro-cid-365ihm3g>1,05</div> </div><div class="spp-scen-cell" data-on="true" data-astro-cid-365ihm3g> <div class="spp-scen-l" data-astro-cid-365ihm3g>Médian</div> <div class="spp-scen-v" data-astro-cid-365ihm3g>1,24</div> </div><div class="spp-scen-cell" data-on="false" data-astro-cid-365ihm3g> <div class="spp-scen-l" data-astro-cid-365ihm3g>Haut</div> <div class="spp-scen-v" data-astro-cid-365ihm3g>1,43</div> </div> </div> <div class="spp-range" aria-hidden="true" data-astro-cid-365ihm3g> <span style="left:6%" data-astro-cid-365ihm3g></span><span class="is-mid" style="left:50%" data-astro-cid-365ihm3g></span><span style="left:94%" data-astro-cid-365ihm3g></span> </div> <div class="spp-unit" data-astro-cid-365ihm3g>M⬠HT / an</div> <div class="spp-h spp-h-2" data-astro-cid-365ihm3g>Double approche</div> <div class="spp-dual" data-astro-cid-365ihm3g> <div class="spp-dual-cell" data-astro-cid-365ihm3g> <div class="spp-dual-l" data-astro-cid-365ihm3g>Méthode 1 · captation</div> <div class="spp-dual-v" data-astro-cid-365ihm3g>1 215 kâ¬</div> </div><div class="spp-dual-cell" data-astro-cid-365ihm3g> <div class="spp-dual-l" data-astro-cid-365ihm3g>Méthode 2 · flux</div> <div class="spp-dual-v" data-astro-cid-365ihm3g>1 262 kâ¬</div> </div> </div> <p class="spp-dual-note" data-astro-cid-365ihm3g>Ãcart M1 / M2 : +3,9 % · convergence solide</p> <div class="spp-h spp-h-3" data-astro-cid-365ihm3g>Construction du CA</div> <div class="spp-flows" data-astro-cid-365ihm3g> <div class="spp-flow" style="--w:33%" data-astro-cid-365ihm3g> <span class="spp-flow-l" data-astro-cid-365ihm3g>Domicile Z1</span> <span class="spp-flow-track" data-astro-cid-365ihm3g><i data-accent="true" data-astro-cid-365ihm3g></i></span> <span class="spp-flow-p" data-astro-cid-365ihm3g>33%</span> </div><div class="spp-flow" style="--w:23%" data-astro-cid-365ihm3g> <span class="spp-flow-l" data-astro-cid-365ihm3g>Travail</span> <span class="spp-flow-track" data-astro-cid-365ihm3g><i data-accent="false" data-astro-cid-365ihm3g></i></span> <span class="spp-flow-p" data-astro-cid-365ihm3g>23%</span> </div><div class="spp-flow" style="--w:17%" data-astro-cid-365ihm3g> <span class="spp-flow-l" data-astro-cid-365ihm3g>Transit</span> <span class="spp-flow-track" data-astro-cid-365ihm3g><i data-accent="false" data-astro-cid-365ihm3g></i></span> <span class="spp-flow-p" data-astro-cid-365ihm3g>17%</span> </div><div class="spp-flow" style="--w:27%" data-astro-cid-365ihm3g> <span class="spp-flow-l" data-astro-cid-365ihm3g>Autres</span> <span class="spp-flow-track" data-astro-cid-365ihm3g><i data-accent="false" data-astro-cid-365ihm3g></i></span> <span class="spp-flow-p" data-astro-cid-365ihm3g>27%</span> </div> </div> </div> <div class="spp-foot" data-astro-cid-365ihm3g>Cas anonymisé</div> </div> </div> <div class="p-8 lg:p-12 flex flex-col justify-center order-1 lg:order-2"> <div class="flex items-center gap-3 mb-5"> <span class="font-display text-5xl font-black text-brand-orange/40 group-hover:text-brand-orange/70 transition-colors">CA</span> <span class="text-xs font-bold px-3 py-1 rounded-full border bg-brand-orange/20 text-brand-orange border-brand-orange/30">Validé par simulation sur l'historique</span> </div> <h3 class="font-display text-2xl font-bold text-white mb-2">Chiffre d'Affaires Prévisionnel</h3> <div class="text-xs font-semibold text-brand-orange uppercase tracking-wider mb-4">Décision d'investissement</div> <p class="text-brand-accent leading-relaxed mb-6">Notre <strong class="text-white">flagship</strong>. Modélisation multi-scénarios du CA attendu, calibrée sur notre base historique et PredictOps. Couplée
706à une <strong class="text-white">analyse terrain physique</strong> pour appréhender le projet sous toutes ses dimensions.</p> <ul class="space-y-2 text-sm text-brand-accent-dim mb-6"> <li class="flex items-center gap-2"><span class="w-1.5 h-1.5 rounded-full bg-brand-orange"></span>3 scénarios : pessimiste, base, optimiste</li> <li class="flex items-center gap-2"><span class="w-1.5 h-1.5 rounded-full bg-brand-orange"></span>Analyse terrain physique du site et de la zone</li> <li class="flex items-center gap-2"><span class="w-1.5 h-1.5 rounded-full bg-brand-orange"></span>Calibration sectorielle (alimentaire, mode, restaurationâ¦)</li> <li class="flex items-center gap-2"><span class="w-1.5 h-1.5 rounded-full bg-brand-orange"></span>Simulation sur l'historique via modèles ML</li> </ul> <span class="inline-flex items-center gap-2 text-sm font-semibold text-brand-orange group-hover:gap-3 transition-all"> 707Découvrir l'étude d'implantation 708<svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M14 5l7 7m0 0l-7 7m7-7H3"></path></svg> </span> </div> </div> </a> </div> <!-- EGM â Full scale --> <div class="scroll-reveal translate-y-8 opacity-0 " data-reveal="fade-up" data-delay="0.2" data-duration="0.6" data-once="true" style="transition-delay: 0.2s; transition-duration: 0.6s;" data-astro-cid-gkxl7tdg> <div class="glass-card border border-brand-line/80 overflow-hidden hover:border-data-500/30 transition-all group"> <div class="p-8 lg:p-12 grid lg:grid-cols-[1fr_2fr] gap-8 items-center"> <div> <div class="flex items-center gap-3 mb-5"> <span class="font-display text-4xl font-black text-data-500/40 group-hover:text-data-500/70 transition-colors">EGM</span> <span class="text-xs font-bold px-3 py-1 rounded-full border bg-data-500/20 text-data-400 border-data-500/30">Développement réseau</span> </div> <h3 class="font-display text-2xl font-bold text-white mb-2">Ãtude Générale de Marché</h3> <div class="text-xs font-semibold text-data-400 uppercase tracking-wider mb-4">Stratégie d'implantation</div> <ul class="space-y-2 text-sm text-brand-accent-dim"> <li class="flex items-center gap-2"><span class="w-1.5 h-1.5 rounded-full bg-data-400"></span>Cartographie des opportunités</li> <li class="flex items-center gap-2"><span class="w-1.5 h-1.5 rounded-full bg-data-400"></span>Scoring de zones par potentiel</li> <li class="flex items-center gap-2"><span class="w-1.5 h-1.5 rounded-full bg-data-400"></span>Vision pluriannuelle</li> </ul> </div> <div> <p class="text-brand-accent-dim leading-relaxed"> 709L'analyse macro d'un territoire pour identifier les zones prioritaires de développement. Idéale pour les réseaux qui définissent leur stratég
709ie d'expansion pluriannuelle (France ou International). Cette étude précède généralement la recherche précise d'un emplacement local (qui fera l'objet d'un ELM). 710</p> <a href="/fr/solutions/etude-de-marche" class="inline-flex items-center gap-2 mt-5 text-sm font-semibold text-data-400 hover:gap-3 transition-all"> 711Découvrir l'étude de marché 712<svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M14 5l7 7m0 0l-7 7m7-7H3"></path></svg> </a> </div> </div> <!-- Animated gradient border bottom --> <div class="h-1 bg-gradient-to-r from-data-500/0 via-data-500 to-data-500/0 opacity-0 group-hover:opacity-100 transition-opacity"></div> </div> </div> </div> </section> <section class="py-24 border-b border-white/5"> <div class="max-w-5xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="text-center max-w-3xl mx-auto mb-16"> <div class="text-xs font-bold text-brand-orange uppercase tracking-widest mb-4">Processus</div> <h2 class="font-display text-4xl font-black text-white mb-4">De la commande à la décision</h2> <p class="text-xl text-brand-accent-dim">Un processus structuré, transparent, et rapide.</p> </div> <div class="relative"> <!-- Vertical line --> <div class="absolute left-6 lg:left-1/2 top-0 bottom-0 w-px bg-gradient-to-b from-brand-orange/50 via-brand-orange/20 to-transparent lg:-translate-x-px"></div> <div class="scroll-reveal translate-y-8 opacity-0 " data-reveal="fade-up" data-delay="0" data-duration="0.6" data-once="true" style="transition-delay: 0s; transition-duration: 0.6s;" data-astro-cid-gkxl7tdg> <div class="relative flex items-start gap-6 mb-12 lg:flex-row"> <!-- Timeline dot --> <div class="absolute left-6 lg:left-1/2 w-3 h-3 rounded-full bg-brand-orange border-2 border-brand-dark transform -translate-x-1.5 lg:-translate-x-1.5 mt-8 z-10 shadow-[0_0_12px_rgba(232,146,42,0.5)]"></div> <!-- Content card --> <div class="ml-16 lg:ml-0 lg:w-[calc(50%-2rem)] lg:ml-auto"> <div class="glass-card p-6 border border-brand-line/80 hover:border-brand-orange/20 transition-all group"> <div class="flex items-center gap-4 mb-3"> <svg class="w-6 h-6 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="1.5"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z"/></svg> <div> <div class="font-display text-xs font-bold text-brand-orange uppercase tracking-wider">01</div> <h3 class="font-display text-lg font-bold text-white">Brief & cadrage</h3> </div> <span class="ml-auto text-xs font-mono text-brand-accent-dim bg-white/5 px-2 py-1 rounded">J+0</span> </div> <p class="text-brand-accent-dim text-sm leading-relaxed">Ãchange de 30 min. On définit le type d'étude, la localisation, la surface et vos enjeux spécifiques.</p> </div> </div> </div> </div> <div class="scroll-reveal translate-y-8 opacity-0 " data-reveal="fade-up" data-delay="0.15" data-duration="0.6" data-once="true" style="transition-delay: 0.15s; transition-duration: 0.6s;" data-astro-cid-gkxl7tdg> <div class="relative flex items-start gap-6 mb-12 lg:flex-row-reverse"> <!-- Timeline dot --> <div class="absolute left-6 lg:left-1/2 w-3 h-3 rounded-full bg-brand-orange border-2 border-brand-dark transform -translate-x-1.5 lg:-translate-x-1.5 mt-8 z-10 shadow-[0_0_12px_rgba(232,146,42,0.5)]"></div> <!-- Content card --> <div class="ml-16 lg:ml-0 lg:w-[calc(50%-2rem)] lg:mr-auto "> <div class="glass-card p-6 border border-brand-line/80 hover:border-brand-orange/20 transition-all group"> <div class="flex items-center gap-4 mb-3"> <svg class="w-6 h-6 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="1.5"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg> <div> <div class="font-display text-xs font-bold text-brand-orange uppercase tracking-wider">02</div> <h3 class="font-display text-lg font-bold text-white">Collecte terrain</h3> </div> <span class="ml-auto text-xs font-mono text-brand-accent-dim bg-white/5 px-2 py-1 rounded">J+3 à J+7</span> </div> <p class="text-brand-accent-dim text-sm leading-relaxed">Nos équipes terrain réalisent les comptages piétons/véhicules, la photographie du site et l'analyse concurrentielle sur le terrain.</p> </div> </div> </div> </div> <div class="scroll-reveal translate-y-8 opacity-0 " data-reveal="fade-up" data-delay="0.3" data-duration="0.6" data-once="true" style="transition-delay: 0.3s; transition-duration: 0.6s;" data-astro-cid-gkxl7tdg> <div class="relative flex items-start gap-6 mb-12 lg:flex-row"> <!-- Timeline dot --> <div class="absolute left-6 lg:left-1/2 w-3 h-3 rounded-full bg-brand-orange border-2 border-brand-dark transform -translate-x-1.5 lg:-translate-x-1.5 mt-8 z-10 shadow-[0_0_12px_rgba(232,146,42,0.5)]"></div> <!-- Content card --> <div class="ml-16 lg:ml-0 lg:w-[calc(50%-2rem)] lg:ml-auto"> <div class="glass-card p-6 border border-brand-line/80 hover:border-brand-orange/20 transition-all group"> <div class="flex items-center gap-4 mb-3"> <svg class="w-6 h-6 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="1.5"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"/><rect x="9" y="9" width="6" height="6"/><line x1="9" y1="1" x2="9" y2="4"/><line x1="15" y1="1" x2="15" y2="4"/><line x1="9" y1="20" x2="9" y2="23"/><line x1="15" y1="20" x2="15" y2="23"/><line x1="20" y1="9" x2="23" y2="9"/><line x1="20" y1="15" x2="23" y2="15"/><line x1="1" y1="9" x2="4" y2="9"/><line x1="1" y1="15" x2="4" y2="15"/></svg> <div> <div class="font-display text-xs font-bold text-brand-orange uppercase tracking-wider">03</div> <h3 class="font-display text-lg font-bold text-white">Modélisation IA</h3> </div> <span class="ml-auto text-xs font-mono text-brand-accent-dim bg-white/5 px-2 py-1 rounded">J+7 à J+10</span> </div> <p class="text-brand-accent-dim text-sm leading-relaxed">PredictOps croise vos données terrain avec notre historique de 45 ans et nos modèles prédictifs pour générer les scé
712narios.</p> </div> </div> </div> </div> <div class="scroll-reveal translate-y-8 opacity-0 " data-reveal="fade-up" data-delay="0.44999999999999996" data-duration="0.6" data-once="true" style="transition-delay: 0.44999999999999996s; transition-duration: 0.6s;" data-astro-cid-gkxl7tdg> <div class="relative flex items-start gap-6 mb-12 lg:flex-row-reverse"> <!-- Timeline dot --> <div class="absolute left-6 lg:left-1/2 w-3 h-3 rounded-full bg-brand-orange border-2 border-brand-dark transform -translate-x-1.5 lg:-translate-x-1.5 mt-8 z-10 shadow-[0_0_12px_rgba(232,146,42,0.5)]"></div> <!-- Content card --> <div class="ml-16 lg:ml-0 lg:w-[calc(50%-2rem)] lg:mr-auto "> <div class="glass-card p-6 border border-brand-line/80 hover:border-brand-orange/20 transition-all group"> <div class="flex items-center gap-4 mb-3"> <svg class="w-6 h-6 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="1.5"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="12" r="6"/><circle cx="12" cy="12" r="2"/></svg> <div> <div class="font-display text-xs font-bold text-brand-orange uppercase tracking-wider">04</div> <h3 class="font-display text-lg font-bold text-white">Restitution augmentée</h3> </div> <span class="ml-auto text-xs font-mono text-brand-accent-dim bg-white/5 px-2 py-1 rounded">J+10 à J+15</span> </div> <p class="text-brand-accent-dim text-sm leading-relaxed">Rapport PDF premium + accès ponctuel à nos experts pour la compréhension de l'étude et la prise de décision stratégique.</p> </div> </div> </div> </div> </div> </div> </section> <section id="diagnostic-express" class="py-16 lg:py-20 relative overflow-hidden scroll-mt-24"> <div class="absolute inset-0 bg-white/[0.02]"></div> <div class="absolute inset-0 bg-[radial-gradient(ellipse_at_70%_50%,_rgba(232,146,42,0.06)_0%,_transparent_55%)]"></div> <div class="relative max-w-5xl mx-auto px-4 sm:px-6"> <div class="glass-card rounded-3xl border border-brand-orange/20 shadow-[0_0_60px_-15px_rgba(232,146,42,0.35)] overflow-hidden"> <div class="grid lg:grid-cols-2"> <!-- Colonne offre --> <div class="p-6 sm:p-8 lg:p-10"> <div class="inline-flex items-center gap-2 px-3 py-1 rounded-full bg-brand-orange/15 border border-brand-orange/30 mb-5"> <svg class="w-3.5 h-3.5 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M13 10V3L4 14h7v7l9-11h-7z"></path></svg> <span class="text-xs font-bold text-brand-orange uppercase tracking-widest">Gratuit · sans engagement</span> </div> <h2 class="font-display text-2xl sm:text-3xl font-black text-white leading-tight mb-3"> 713Pas encore prêt à lancer une étude ?<br> <span class="font-serif-accent italic font-normal text-brand-accent">Demandez un</span> <span class="text-gradient-orange"> diagnostic express 48 h.</span> </h2> <p class="text-sm text-brand-accent-dim leading-relaxed mb-6"> 714Décrivez votre zone d'implantation en une phrase. Sous 48 h ouvrées, un consultant senior vous répond par email avec : 715</p> <ul class="space-y-4"> <li class="flex items-start gap-3"> <span class="mt-0.5 w-5 h-5 rounded-full bg-ok-500/20 border border-ok-500/30 flex items-center justify-center flex-shrink-0"> <svg class="w-3 h-3 text-ok-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"></path></svg> </span> <div> <div class="text-sm font-bold text-white">Un pré-avis sur le potentiel</div> <div class="text-xs text-brand-accent-dim leading-relaxed">Notre première lecture du potentiel de votre zone d'implantation : signaux favorables, points de vigilance.</div> </div> </li><li class="flex items-start gap-3"> <span class="mt-0.5 w-5 h-5 rounded-full bg-ok-500/20 border border-ok-500/30 flex items-center justify-center flex-shrink-0"> <svg class="w-3 h-3 text-ok-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"></path></svg> </span> <div> <div class="text-sm font-bold text-white">La bonne méthodologie</div> <div class="text-xs text-brand-accent-dim leading-relaxed">Lâapproche dâétude adaptée à votre cas â et celle qui serait superflue.</div> </div> </li><li class="flex items-start gap-3">
715 <span class="mt-0.5 w-5 h-5 rounded-full bg-ok-500/20 border border-ok-500/30 flex items-center justify-center flex-shrink-0"> <svg class="w-3 h-3 text-ok-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"></path></svg> </span> <div> <div class="text-sm font-bold text-white">Budget & délai indicatifs</div> <div class="text-xs text-brand-accent-dim leading-relaxed">Une fourchette réaliste pour décider, avant tout engagement.</div> </div> </li> </ul> </div> <!-- Colonne formulaire --> <div class="p-6 sm:p-8 lg:p-10 bg-white/[0.03] border-t lg:border-t-0 lg:border-l border-white/5"> <form id="diagnostic-etudes-geomarketing" name="diagnostic-express" method="POST" action="/api/contact" data-astro-reload class="space-y-3"> <input type="hidden" name="lang" value="fr"> <input type="hidden" name="sujet" value="diagnostic-express-etudes-geomarketing"> <div class="grid grid-cols-2 gap-2.5"> <div class="relative"> <input id="diagnostic-etudes-geomarketing-firstname" type="text" name="prenom" required placeholder=" " class="peer w-full bg-white/5 border border-white/10 rounded-lg px-3 pt-5 pb-1.5 text-sm text-white placeholder-transparent focus:outline-none focus:ring-2 focus:border-brand-orange focus:ring-brand-orange/20 transition-all"> <label for="diagnostic-etudes-geomarketing-firstname" class="absolute left-3 top-1.5 text-[10px] font-semibold uppercase tracking-wider text-brand-accent-dim transition-all peer-placeholder-shown:top-3.5 peer-placeholder-shown:text-sm peer-placeholder-shown:normal-case peer-placeholder-shown:font-normal peer-placeholder-shown:text-brand-accent-dim/50 peer-focus:top-1.5 peer-focus:text-[10px] peer-focus:font-semibold peer-focus:uppercase peer-focus:tracking-wider peer-focus:text-brand-orange">Prénom *</label> </div> <div class="relative"> <input id="diagnostic-etudes-geomarketing-lastname" type="text" name="nom" required placeholder=" " class="peer w-full bg-white/5 border border-white/10 rounded-lg px-3 pt-5 pb-1.5 text-sm text-white placeholder-transparent focus:outline-none focus:ring-2 focus:border-brand-orange focus:ring-brand-orange/20 transition-all"> <label for="diagnostic-etudes-geomarketing-lastname" class="absolute left-3 top-1.5 text-[10px] font-semibold uppercase tracking-wider text-brand-accent-dim transition-all peer-placeholder-shown:top-3.5 peer-placeholder-shown:text-sm peer-placeholder-shown:normal-case peer-placeholder-shown:font-normal peer-placeholder-shown:text-brand-accent-dim/50 peer-focus:top-1.5 peer-focus:text-[10px] peer-focus:font-semibold peer-focus:uppercase peer-focus:tracking-wider peer-focus:text-brand-orange">Nom *</label> </div> </div> <div class="relative"> <input id="diagnostic-etudes-geomarketing-email" type="email" name="email" required placeholder=" " class="peer w-full bg-white/5 border border-white/10 rounded-lg px-3 pt-5 pb-1.5 text-sm text-white placeholder-transparent focus:outline-none focus:ring-2 focus:border-brand-orange focus:ring-brand-orange/20 transition-all"> <label for="diagnostic-etudes-geomarketing-email" class="absolute left-3 top-1.5 text-[10px] font-semibold uppercase tracking-wider text-brand-accent-dim transition-all peer-placeholder-shown:top-3.5 peer-placeholder-shown:text-sm peer-placeholder-shown:normal-case peer-placeholder-shown:font-normal peer-placeholder-shown:text-brand-accent-dim/50 peer-focus:top-1.5 peer-focus:text-[10px] peer-focus:font-semibold peer-focus:uppercase peer-focus:tracking-wider peer-focus:text-brand-orange">Email pro *</label> </div> <div class="relative"> <textarea id="diagnostic-etudes-geomarketing-message" name="message" rows="3" required placeholder=" " class="peer w-full bg-white/5 border border-white/10 rounded-lg px-3 pt-5 pb-1.5 text-sm text-white placeholder-transparent focus:outline-none focus:ring-2 focus:border-brand-orange focus:ring-brand-orange/20 transition-all resize-none"></textarea> <label for="diagnostic-etudes-geomarketing-message" class="absolute left-3 top-1.5 text-[10px] font-semibold uppercase tracking-wider text-brand-accent-dim transition-all peer-placeholder-shown:top-3.5 peer-placeholder-shown:text-sm peer-placeholder-shown:normal-case peer-placeholder-shown:font-normal peer-placeholder-shown:text-brand-accent-dim/50 peer-focus:top-1.5 peer-focus:text-[10px] peer-focus:font-semibold peer-focus:uppercase peer-focus:tracking-wider peer-focus:text-brand-orange">Votre projet en une phrase *</label> <p class="text-[10px] text-brand-accent-dim/50 mt-1 ml-1">Ex. : « Ouverture d'une boulangerie à Annecy, 2 emplacements à départager. »</p> </div> <div style="display:none;" aria-hidden="true"> <label>Do not fill</label> <input type="text" name="website" tabindex="-1" autocomplete="off"> </div> <label for="diagnostic-etudes-geomarketing-rgpd" class="flex items-start gap-2 cursor-pointer pt-1"> <input id="diagnostic-etudes-geomarketing-rgpd" type="checkbox" name="rgpd" required class="mt-0.5 w-3.5 h-3.5 accent-brand-orange flex-shrink-0"> <span class="text-[11px] text-brand-accent-dim leading-snug"> 716J'accepte d'être recontacté conformément à la <a href="/fr/politique-confidentialite" class="text-brand-orange underline hover:text-white transition-colors">politique de confidentialité</a>. * 717</span> </label> <!-- Cloudflare Turnstile Widget --> <div class="turnstile-wrapper"> <div class="cf-turnstile" data-sitekey="0x4AAAAAADl0wIB33LrIYeRh" data-theme="dark" data-size="flexible" data-appearance="always"></div> </div> <button type="submit" class="magnetic-btn w-full group flex items-center justify-center gap-2 px-6 py-3 bg-brand-orange hover:bg-brand-orange-light text-brand-darker font-bold text-sm rounded-xl transition-all duration-300 mt-1 glow-orange-sm"> 718Recevoir mon diagnostic sous 48 h 719<svg class="w-4 h-4 group-hover:translate-x-1 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24">
719<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M14 5l7 7m0 0l-7 7m7-7H3"></path></svg> </button> <div class="flex items-center justify-center gap-3 sm:gap-5 pt-1 text-[10px] text-brand-accent-dim/60"> <span class="inline-flex items-center gap-1"> <svg class="w-3 h-3 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M13 10V3L4 14h7v7l9-11h-7z"></path></svg> 720Réponse sous 48 h ouvrées 721</span> <span class="text-white/15">·</span> <span class="inline-flex items-center gap-1"> <svg class="w-3 h-3 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"></path></svg> 722Confidentiel 723</span> <span class="text-white/15">·</span> <span class="inline-flex items-center gap-1"> <svg class="w-3 h-3 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg> 724Sans engagement 725</span> </div> </form> </div> </div> </div> </div> </section> <section id="comptage" class="py-24 border-b border-white/5"> <div class="max-w-5xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="text-center max-w-3xl mx-auto mb-14"> <div class="text-xs font-bold text-brand-orange uppercase tracking-widest mb-4">Notre différence</div> <h2 class="font-display text-4xl font-black text-white mb-4">Une étude SAD vs une étude « de complaisance »</h2> <p class="text-xl text-brand-accent-dim">Ce que vous payez ailleurs n'est pas ce que vous obtenez chez nous.</p> </div> <div class="scroll-reveal translate-y-8 opacity-0 " data-reveal="fade-up" data-delay="0" data-duration="0.6" data-once="true" style="transition-delay: 0s; transition-duration: 0.6s;" data-astro-cid-gkxl7tdg> <div class="grid md:grid-cols-2 gap-0 rounded-3xl overflow-hidden border border-white/10"> <!-- Basique --> <div class="bg-white/3 p-8 lg:p-10 border-r border-white/5"> <div class="inline-flex items-center gap-2 px-3 py-1 rounded-full bg-alert-500/10 border border-alert-500/20 text-alert-400 text-xs font-bold uppercase tracking-wider mb-6"> <svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg> 726Ãtude basique (marché) 727</div> <ul class="space-y-4"> <li class="flex items-start gap-3 text-white/40"> <svg class="w-5 h-5 text-alert-500/60 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg> <span class="text-sm">Extraction automatisée de données INSEE</span> </li><li class="flex items-start gap-3 text-white/40"> <svg class="w-5 h-5 text-alert-500/60 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg> <span class="text-sm">Données SIRENE obsolètes (registre entreprises)</span> </li><li class="flex items-start gap-3 text-white/40"> <svg class="w-5 h-5 text-alert-500/60 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg> <span class="text-sm">Isochrone générique sans topologie réelle</span> </li><li class="flex items-start gap-3 text-white/40"> <svg class="w-5 h-5 text-alert-500/60 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg> <span class="text-sm">Aucun historique sectoriel</span> </li><li class="flex items-start gap-3 text-white/40"> <svg class="w-5 h-5 text-alert-500/60 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
727<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg> <span class="text-sm">PDF statique livré sans support</span> </li><li class="flex items-start gap-3 text-white/40"> <svg class="w-5 h-5 text-alert-500/60 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg> <span class="text-sm">Pas de comptage terrain</span> </li> </ul> </div> <!-- SAD --> <div class="bg-brand-orange/5 p-8 lg:p-10 relative overflow-hidden"> <div class="absolute top-0 right-0 w-32 h-32 bg-brand-orange/10 rounded-full blur-3xl"></div> <div class="relative"> <div class="inline-flex items-center gap-2 px-3 py-1 rounded-full bg-brand-orange/10 border border-brand-orange/20 text-brand-orange text-xs font-bold uppercase tracking-wider mb-6"> <svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg> 728Ãtude SAD Marketing Augmentée 729</div> <ul class="space-y-4"> <li class="flex items-start gap-3 text-brand-accent"> <svg class="w-5 h-5 text-brand-orange flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M5 13l4 4L19 7"></path></svg> <span class="text-sm">45 ans de données comportementales propriétaires</span> </li><li class="flex items-start gap-3 text-brand-accent"> <svg class="w-5 h-5 text-brand-orange flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M5 13l4 4L19 7"></path></svg> <span class="text-sm">Modélisation prédictive PredictOps (ML)</span> </li><li class="flex items-start gap-3 text-brand-accent"> <svg class="w-5 h-5 text-brand-orange flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M5 13l4 4L19 7"></path></svg> <span class="text-sm">Qualification terrain par nos experts (comptages)</span> </li><li class="flex items-start gap-3 text-brand-accent"> <svg class="w-5 h-5 text-brand-orange flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M5 13l4 4L19 7"></path></svg> <span class="text-sm">Calibration sectorielle (alimentaire, mode, restaurationâ¦)</span> </li><li class="flex items-start gap-3 text-brand-accent"> <svg class="w-5 h-5 text-brand-orange flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M5 13l4 4L19 7"></path></svg> <span class="text-sm">Géo-isochronie précise temps réel</span> </li><li class="flex items-start gap-3 text-brand-accent"> <svg class="w-5 h-5 text-brand-orange flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M5 13l4 4L19 7"></path></svg> <span class="text-sm">Accompagnement stratégique personnalisé</span> </li> </ul> </div> </div> </div> </div> </div> </section> <section class="py-24 border-b border-white/5"> <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="text-center max-w-3xl mx-auto mb-14"> <div class="text-xs font-bold text-brand-orange uppercase tracking-widest mb-4">Secteurs</div> <h2 class="font-display text-4xl font-black text-white mb-4">Des études calibrées par secteur</h2> <p class="text-xl text-brand-accent-dim">Chaque secteur a ses propres dynamiques. Nos modèles sont calibrés pour chacun.</p> </div> <div class="grid sm:grid-cols-2 lg:grid-cols-4 gap-4"> <div class="scroll-reveal translate-y-8 opacity-0 " data-reveal="fade-up" data-delay="0" data-duration="0.6" data-once="true" style="transition-delay: 0s; transition-duration: 0.6s;" data-astro-cid-gkxl7tdg> <div class="glass-card p-5 border border-brand-line/80 hover:border-brand-orange/20 hover:bg-white/5 transition-all group cursor-default text-center lg:text-left flex flex-col items-center lg:items-start"> <div class="mb-3 group-hover:scale-110 transition-transform"> <svg class="w-8 h-8 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="1.5"><path d="M3 2v7c0 1.1.9 2 2 2h4a2 2 0 0 0 2-2V2"/><path d="M7 2v20"/>
729<path d="M21 15V2v0a5 5 0 0 0-5 5v6c0 1.1.9 2 2 2h3Zm0 0v7"/></svg> </div> <h3 class="font-display font-bold text-white text-sm mb-1">Restauration</h3> <p class="text-xs text-brand-accent-dim mb-3">Fast-food, boulangerie, food court</p> <span class="text-xs font-mono text-brand-orange">3 200+ études</span> </div> </div> <div class="scroll-reveal translate-y-8 opacity-0 " data-reveal="fade-up" data-delay="0.05" data-duration="0.6" data-once="true" style="transition-delay: 0.05s; transition-duration: 0.6s;" data-astro-cid-gkxl7tdg> <div class="glass-card p-5 border border-brand-line/80 hover:border-brand-orange/20 hover:bg-white/5 transition-all group cursor-default text-center lg:text-left flex flex-col items-center lg:items-start"> <div class="mb-3 group-hover:scale-110 transition-transform"> <svg class="w-8 h-8 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="1.5"><path d="M20.38 3.46 16 2a4 4 0 0 1-8 0L3.62 3.46a2 2 0 0 0-1.34 2.23l.58 3.47a1 1 0 0 0 .99.84H6v10c0 1.1.9 2 2 2h8a2 2 0 0 0 2-2V10h2.15a1 1 0 0 0 .99-.84l.58-3.47a2 2 0 0 0-1.34-2.23z"/></svg> </div> <h3 class="font-display font-bold text-white text-sm mb-1">Mode & Textile</h3> <p class="text-xs text-brand-accent-dim mb-3">Prêt-à -porter, chaussure, luxe</p> <span class="text-xs font-mono text-brand-orange">1 800+ études</span> </div> </div> <div class="scroll-reveal translate-y-8 opacity-0 " data-reveal="fade-up" data-delay="0.1" data-duration="0.6" data-once="true" style="transition-delay: 0.1s; transition-duration: 0.6s;" data-astro-cid-gkxl7tdg> <div class="glass-card p-5 border border-brand-line/80 hover:border-brand-orange/20 hover:bg-white/5 transition-all group cursor-default text-center lg:text-left flex flex-col items-center lg:items-start"> <div class="mb-3 group-hover:scale-110 transition-transform"> <svg class="w-8 h-8 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="1.5"><circle cx="9" cy="21" r="1"/><circle cx="20" cy="21" r="1"/><path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"/></svg> </div> <h3 class="font-display font-bold text-white text-sm mb-1">GSA / GMS</h3> <p class="text-xs text-brand-accent-dim mb-3">Hyper, super, proximité</p> <span class="text-xs font-mono text-brand-orange">4 500+ études</span> </div> </div> <div class="scroll-reveal translate-y-8 opacity-0 " data-reveal="fade-up" data-delay="0.15000000000000002" data-duration="0.6" data-once="true" style="transition-delay: 0.15000000000000002s; transition-duration: 0.6s;" data-astro-cid-gkxl7tdg> <div class="glass-card p-5 border border-brand-line/80 hover:border-brand-orange/20 hover:bg-white/5 transition-all group cursor-default text-center lg:text-left flex flex-col items-center lg:items-start"> <div class="mb-3 group-hover:scale-110 transition-transform"> <svg class="w-8 h-8 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="1.5"><path d="m6.5 6.5 11 11"/><path d="m21 21-1-1"/><path d="m3 3 1 1"/><path d="m18 22 4-4"/><path d="m2 6 4-4"/><path d="m3 10 7-7"/><path d="m14 21 7-7"/></svg> </div> <h3 class="font-display font-bold text-white text-sm mb-1">Sport & Loisirs</h3> <p class="text-xs text-brand-accent-dim mb-3">Fitness, outdoor, culture</p> <span class="text-xs font-mono text-brand-orange">900+ études</span> </div> </div> <div class="scroll-reveal translate-y-8 opacity-0 " data-reveal="fade-up" data-delay="0.2" data-duration="0.6" data-once="true" style="transition-delay: 0.2s; transition-duration: 0.6s;" data-astro-cid-gkxl7tdg> <div class="glass-card p-5 border border-brand-line/80 hover:border-brand-orange/20 hover:bg-white/5 transition-all group cursor-default text-center lg:text-left flex flex-col items-center lg:items-start"> <div class="mb-3 group-hover:scale-110 transition-transform"> <svg class="w-8 h-8 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="1.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/></svg> </div> <h3 class="font-display font-bold text-white text-sm mb-1">Santé & Beauté</h3> <p class="text-xs text-brand-accent-dim mb-3">Pharmacie, optique, cosmétique</p> <span class="text-xs font-mono text-brand-orange">1 100+ études</span> </div> </div> <div class="scroll-reveal translate-y-8 opacity-0 " data-reveal="fade-up" data-delay="0.25" data-duration="0.6" data-once="true" style="transition-delay: 0.25s; transition-duration: 0.6s;" data-astro-cid-gkxl7tdg> <div class="glass-card p-5 border border-brand-line/80 hover:border-brand-orange/20 hover:bg-white/5 transition-all group cursor-default text-center lg:text-left flex flex-col items-center lg:items-start"> <div class="mb-3 group-hover:scale-110 transition-transform"> <svg class="w-8 h-8 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="1.5"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"/></svg> </div> <h3 class="font-display font-bold text-white text-sm mb-1">Services</h3> <p class="text-xs text-brand-accent-dim mb-3">Auto, banque, immobilier</p> <span class="text-xs font-mono text-brand-orange">2 400+ études</span> </div> </div> <div class="scroll-reveal translate-y-8 opacity-0 " data-reveal="fade-up" data-delay="0.30000000000000004" data-duration="0.6" data-once="true" style="transition-delay: 0.30000000000000004s; transition-duration: 0.6s;" data-astro-cid-gkxl7tdg> <div class="glass-card p-5 border border-brand-line/80 hover:border-brand-orange/20 hover:bg-white/5 transition-all group cursor-default text-center lg:text-left flex flex-col items-center lg:items-start"> <div class="mb-3 group-hover:scale-110 transition-transform"> <svg class="w-8 h-8 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="1.5"><path d="M18 22v-8a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v8"/><path d="M4 22V4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v18"/><path d="M10 22v-4a2 2 0 0 1 2-2v0a2 2 0 0 1 2 2v4"/><path d="M12 8V6"/><path d="M16 8V6"/><path d="M8 8V6"/></svg> </div> <h3 class="font-display font-bold text-white text-sm mb-1">Hôtellerie</h3> <p class="text-xs text-brand-accent-dim mb-3">Chaînes, boutique-hôtels</p> <span class="text-xs font-mono text-brand-orange">600+ études</span> </div> </div> <div class="scroll-reveal translate-y-8 opacity-0 " data-reveal="fade-up" data-delay="0.35000000000000003" data-duration="0.6" data-once="true" style="transition-delay: 0.35000000000000003s; transition-duration: 0.6s;" data-astro-cid-gkxl7tdg> <div class="glass-card p-5 border border-brand-line/80 hover:border-brand-orange/20 hover:bg-white/5 transition-all group cursor-default text-center lg:text-left flex flex-col items-center lg:items-start"> <div class="mb-3 group-hover:scale-110 transition-transform"> <svg class="w-8 h-8 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="1.5"><circle cx="12" cy="12" r="10"/><line x1="2" y1="12" x2="22" y2="12"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg> </div> <h3 class="font-display font-bold text-white text-sm mb-1">International</h3> <p class="text-xs text-brand-accent-dim mb-3">40+ pays, Moyen-Orient, Afrique</p> <span class="text-xs font-mono text-brand-orange">800+ études</span> </div> </div> </div> </div> </section> <section class="py-24 border-b border-white/5 relative overflow-hidden"> <div class="absolute inset-0 bg-[radial-gradient(circle_at_50%_50%,_rgba(232,146,42,0.06)_0%,_transparent_50%)]"></div> <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 relative z-10"> <div class="scroll-reveal translate-y-8 opacity-0 " data-reveal="fade-up" data-delay="0" data-duration="0.6" data-once="true" style="transition-delay: 0s; transition-duration: 0.6s;" data-astro-cid-gkxl7tdg> <div class="glass-card p-10 md:p-14 border border-brand-orange/15 text-center relative"> <div class="absolute -top-4 left-1/2 -translate-x-1/2 bg-brand-dark px-4"> <svg class="w-8 h-8 text-brand-orange/20" fill="currentColor" viewBox="0 0 24 24">
729<path d="M14.017 21v-7.391c0-5.704 3.731-9.57 8.983-10.609l.995 2.151c-2.432.917-3.995 3.638-3.995 5.849h4v10H14.017zM0 21v-7.391c0-5.704 3.731-9.57 8.983-10.609l.995 2.151C7.546 6.068 5.983 8.789 5.983 11H10v10H0z"></path></svg> </div> <blockquote class="text-xl lg:text-2xl text-brand-accent italic leading-relaxed mb-8 pt-4"> 730« L'étude d'implantation de SAD Marketing nous a permis de valider notre projet d'ouverture avec une précision qui a rassuré nos investisseurs. Aucun autre cabinet n'avait ce niveau de profondeur dans l'analyse prédictive. » 731</blockquote> <div class="flex items-center justify-center gap-4"> <div class="w-12 h-12 rounded-full bg-gradient-to-br from-brand-orange/20 to-brand-orange-deep/20 flex items-center justify-center font-display font-bold text-white uppercase">DC</div> <div class="text-left"> <div class="font-display font-bold text-white text-sm">Directeur du développement</div> <div class="text-xs text-brand-accent-dim">Réseau de franchise â Restauration rapide</div> </div> </div> </div> </div> </div> </section> <section class="relative overflow-hidden py-20 lg:py-24 "> <div class="absolute inset-0 z-0 pointer-events-none overflow-hidden"> <div class="absolute left-[5%] top-[15%] w-[280px] h-[280px] md:w-[480px] md:h-[480px] bg-brand-orange/10 rounded-full mix-blend-screen filter blur-[100px] md:blur-[140px] animate-blob"></div> <div class="absolute right-[8%] bottom-[10%] w-[240px] h-[240px] md:w-[400px] md:h-[400px] bg-brand-indigo/10 rounded-full mix-blend-screen filter blur-[100px] md:blur-[140px] animate-blob animation-delay-2000"></div> </div> <div class="absolute inset-0 z-0 pointer-events-none grid-bg opacity-30"></div> <div class="relative z-10"> <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"><div class="scroll-reveal translate-y-8 opacity-0 " data-reveal="fade-up" data-delay="0" data-duration="0.6" data-once="true" style="transition-delay: 0s; transition-duration: 0.6s;" data-astro-cid-gkxl7tdg> <div class="text-center mx-auto max-w-3xl mb-14"> <div class="text-brand-orange mb-4 text-xs font-bold uppercase tracking-widest">Nos moteurs, ouverts</div> <h2 class="font-display text-4xl md:text-5xl font-black text-white leading-tight"> Le géomarketing <span class="font-serif-accent italic font-normal text-brand-accent">à l'essai</span> <span class="text-gradient-orange"> sur votre adresse.</span> </h2> <p class="text-lg text-brand-accent-dim mt-5 max-w-2xl mx-auto">Isochrones, cannibalisation, comparaison de deux sites : le socle de nos études d'implantation.</p> </div> </div> <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" data-stagger-group><div class="scroll-reveal translate-y-8 opacity-0 h-full" data-reveal="fade-up" data-delay="0" data-duration="0.6" data-once="true" style="transition-delay: 0s; transition-duration: 0.6s;" data-astro-cid-gkxl7tdg> <a href="/fr/outils/etat-local-de-marche-express" class="group relative flex flex-col h-full glass-card p-7 lg:p-8 border border-brand-line/80 hover:border-brand-orange/40 hover:-translate-y-1 hover:shadow-[0_24px_64px_rgba(232,146,42,0.15)] transition-all duration-500 overflow-hidden"><div class="absolute -top-4 -right-4 opacity-[0.06] text-brand-orange pointer-events-none"><svg class="w-40 h-40" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><path d="M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8l-5-5Z"/><path d="M14 3v5h5M9 13h6M9 17h6"/></svg></div><div class="relative flex flex-col h-full"><div class="w-14 h-14 rounded-2xl bg-brand-orange/8 border border-brand-orange/15 flex items-center justify-center text-brand-orange mb-5 group-hover:scale-110 group-hover:-rotate-6 transition-all duration-500"><svg class="w-7 h-7" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><path d="M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8l-5-5Z"/><path d="M14 3v5h5M9 13h6M9 17h6"/></svg></div><div class="font-mono text-[10px] uppercase tracking-[0.18em] text-brand-accent-dim mb-2">Rapport complet</div><h3 class="font-display font-bold text-white text-xl mb-3 group-hover:text-brand-orange transition-colors">Ãtat Local de Marché express</h3><p class="text-brand-accent-dim text-sm leading-relaxed mb-6">Onze planches datées et imprimables sur une adresse : marché en euros, population, concurrents nommés, flux mesurés.</p><span class="mt-auto inline-flex items-center gap-2 text-sm font-semibold text-brand-orange"> 732Ouvrir l'outil 733<svg class="w-4 h-4 group-hover:translate-x-1 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24">
733<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M14 5l7 7m0 0l-7 7m7-7H3"></path></svg></span></div></a> </div> <div class="scroll-reveal translate-y-8 opacity-0 h-full" data-reveal="fade-up" data-delay="0.08" data-duration="0.6" data-once="true" style="transition-delay: 0.08s; transition-duration: 0.6s;" data-astro-cid-gkxl7tdg> <a href="/fr/outils/zone-de-chalandise" class="group relative flex flex-col h-full glass-card p-7 lg:p-8 border border-brand-line/80 hover:border-brand-orange/40 hover:-translate-y-1 hover:shadow-[0_24px_64px_rgba(232,146,42,0.15)] transition-all duration-500 overflow-hidden"><div class="absolute -top-4 -right-4 opacity-[0.06] text-brand-orange pointer-events-none"><svg class="w-40 h-40" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="12" r="6"/><circle cx="12" cy="12" r="2"/></svg></div><div class="relative flex flex-col h-full"><div class="w-14 h-14 rounded-2xl bg-brand-orange/8 border border-brand-orange/15 flex items-center justify-center text-brand-orange mb-5 group-hover:scale-110 group-hover:-rotate-6 transition-all duration-500"><svg class="w-7 h-7" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="12" r="6"/><circle cx="12" cy="12" r="2"/></svg></div><div class="font-mono text-[10px] uppercase tracking-[0.18em] text-brand-accent-dim mb-2">Isochrone</div><h3 class="font-display font-bold text-white text-xl mb-3 group-hover:text-brand-orange transition-colors">Zone de chalandise</h3><p class="text-brand-accent-dim text-sm leading-relaxed mb-6">Une adresse, un temps de trajet : le marché de la zone en euros, les concurrents comptés dedans et le profil INSEE recalculé à l'IRIS.</p><span class="mt-auto inline-flex items-center gap-2 text-sm font-semibold text-brand-orange"> 734Ouvrir l'outil 735<svg class="w-4 h-4 group-hover:translate-x-1 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M14 5l7 7m0 0l-7 7m7-7H3"></path></svg></span></div></a> </div> <div class="scroll-reveal translate-y-8 opacity-0 h-full" data-reveal="fade-up" data-delay="0.16" data-duration="0.6" data-once="true" style="transition-delay: 0.16s; transition-duration: 0.6s;" data-astro-cid-gkxl7tdg> <a href="/fr/outils/maillage-reseau" class="group relative flex flex-col h-full glass-card p-7 lg:p-8 border border-brand-line/80 hover:border-brand-orange/40 hover:-translate-y-1 hover:shadow-[0_24px_64px_rgba(232,146,42,0.15)] transition-all duration-500 overflow-hidden"><div class="absolute -top-4 -right-4 opacity-[0.06] text-brand-orange pointer-events-none"><svg class="w-40 h-40" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><circle cx="12" cy="5" r="2"/><circle cx="5" cy="19" r="2"/><circle cx="19" cy="19" r="2"/><path d="M12 7v4M10.5 13.5 6.5 17M13.5 13.5 17.5 17"/><circle cx="12" cy="12" r="1.5"/></svg></div><div class="relative flex flex-col h-full"><div class="w-14 h-14 rounded-2xl bg-brand-orange/8 border border-brand-orange/15 flex items-center justify-center text-brand-orange mb-5 group-hover:scale-110 group-hover:-rotate-6 transition-all duration-500"><svg class="w-7 h-7" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><circle cx="12" cy="5" r="2"/><circle cx="5" cy="19" r="2"/><circle cx="19" cy="19" r="2"/><path d="M12 7v4M10.5 13.5 6.5 17M13.5 13.5 17.5 17"/><circle cx="12" cy="12" r="1.5"/></svg></div><div class="font-mono text-[10px] uppercase tracking-[0.18em] text-brand-accent-dim mb-2">Analyseur de réseau</div><h3 class="font-display font-bold text-white text-xl mb-3 group-hover:text-brand-orange transition-colors">Maillage & cannibalisation</h3><p class="text-brand-accent-dim text-sm leading-relaxed mb-6">Jusqu'à six points de vente : la couverture réelle une fois chaque habitant compté une seule fois, et la part que chaque magasin partage avec ses voisins.</p><span class="mt-auto inline-flex items-center gap-2 text-sm font-semibold text-brand-orange"> 736Ouvrir l'outil 737<svg class="w-4 h-4 group-hover:translate-x-1 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24">
737<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M14 5l7 7m0 0l-7 7m7-7H3"></path></svg></span></div></a> </div> </div><div class="scroll-reveal translate-y-8 opacity-0 " data-reveal="fade-up" data-delay="0.24" data-duration="0.6" data-once="true" style="transition-delay: 0.24s; transition-duration: 0.6s;" data-astro-cid-gkxl7tdg> <div class="mt-10 text-center"><a href="/fr/outils" class="inline-flex items-center gap-2 text-sm font-semibold text-brand-accent hover:text-brand-orange transition-colors"> 738Voir tous les outils géomarketing gratuits 739<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path></svg></a></div> </div> </div> </div> </section>
739<script type="application/ld+json">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Qu'est-ce qu'un Ãtat Local de Marché (ELM) ?","acceptedAnswer":{"@type":"Answer","text":"L'ELM est un document obligatoire en franchise (Loi Doubin). Il présente l'état général et local du marché, la zone de chalandise et la concurrence pour permettre au futur franchisé de s'engager en connaissance de cause."}},{"@type":"Question","name":"Quelle est la différence entre un ELM et une étude d'implantation ?","acceptedAnswer":{"@type":"Answer","text":"L'ELM est descriptif et obligatoire légalement. L'étude d'implantation est une étude prédictive qui estime le montant futur des ventes. Chez SAD, nous couplons souvent les deux pour une sécurité maximale."}},{"@type":"Question","name":"Quelles sont les données utilisées pour estimer mon chiffre d'affaires ?","acceptedAnswer":{"@type":"Answer","text":"SAD Marketing s'appuie sur une base de données de 45 ans d'historique, couplée à des enquêtes terrain (comptages de flux, relevés concurrentiels) et notre algorithme d'IA PredictOps pour garantir une fiabilité maximale."}},{"@type":"Question","name":"Combien de temps faut-il pour réaliser un ELM ou une étude d'implantation ?","acceptedA
739nswer":{"@type":"Answer","text":"En moyenne, la réalisation d'un état local du marché complet prend 2 à 3 semaines, incluant les études terrain et les modélisations."}},{"@type":"Question","name":"Quel est le coût d'une étude géomarketing (ELM, CA prévisionnel) ?","acceptedAnswer":{"@type":"Answer","text":"Trois facteurs déterminent le budget : le type de livrable (état local de marché, chiffre d'affaires prévisionnel, étude d'implantation complète), l'étendue de la zone et le nombre de concurrents à relever sur le terrain, et le niveau d'accompagnement après remise du rapport. Une étude d'implantation sur un point de vente unique n'a pas le même coût qu'un scoring de potentiel commercial sur trente zones candidates. Devis personnalisé sous 24h ouvrées, sans engagement."}},{"@type":"Question","name":"Comment mesurez-vous le potentiel commercial d'une zone ?","acceptedAnswer":{"@type":"Answer","text":"Nous croisons la dépense commercialisable des ménages de la zone (revenus, composition des foyers, données INSEE) avec l'offre concurrente déjà installée et l'accessibilité réelle en temps de parcours. L'écart entre le potentiel théorique et le chiffre d'affaires capté par les enseignes en place donne le potentiel commercial disponible â celui que votre implantation peut viser."}},{"@type":"Question","name":"Puis-je utiliser un ELM ou un CA prévisionnel pour mon banquier ?","acceptedA
739nswer":{"@type":"Answer","text":"Oui. L'étude géomarketing est un élément de rassurance majeur et très souvent demandé par les partenaires financiers pour valider l'octroi d'un prêt ou financer votre franchise."}},{"@type":"Question","name":"Comment la précision du CA prévisionnel est-elle vérifiée ?","acceptedAnswer":{"@type":"Answer","text":"La précision est mesurée par une simulation systématique sur l'historique réalisée avec nos partenaires historiques. En comparant nos modèles prédictifs avec les résultats réels post-ouverture, nous obtenons une marge d'erreur faible très maîtrisée."}},{"@type":"Question","name":"Quelles sont les obligations d'une Ãtude Générale de Marché (EGM) ?","acceptedAnswer":{"@type":"Answer","text":"Là où l'ELM porte sur une adresse spécifique, l'EGM cartographie un pays, une région ou un périmètre macroscopique pour permettre à une tête de réseau d'identifier les prochains secteurs porteurs de croissance."}},{"@type":"Question","name":"Incluez-vous la démographie et les projets urbains futurs ?","acceptedA
739nswer":{"@type":"Answer","text":"Oui, toute étude sérieuse intègre la conjoncture démographique, socio-professionnelle (PCS), ainsi que les pôles générateurs existants ou en devenir (futurs PFU, nouvelles zones commerciales, etc.)."}},{"@type":"Question","name":"Combien d'implantations avez-vous évaluées à ce jour ?","acceptedAnswer":{"@type":"Answer","text":"SAD Marketing réalise plus de 1 000 études à l'année et justifie de références sur plus de 12 000 dossiers analysés partout dans le monde."}}]}</script>
739 <section class="py-24 border-t border-white/5" data-astro-cid-al2ca2vr> <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8" data-astro-cid-al2ca2vr> <div class="text-center mb-16" data-astro-cid-al2ca2vr> <h2 class="font-display text-4xl font-black text-white mb-4" data-astro-cid-al2ca2vr>Questions sur les Ãtudes Géomarketing</h2> <p class="text-brand-accent-dim" data-astro-cid-al2ca2vr>Tout ce que vous devez savoir sur nos solutions.</p> </div> <div class="space-y-4" data-astro-cid-al2ca2vr> <details class="group glass-card border border-brand-line/80 overflow-hidden transition-all duration-300 open:bg-white/5" data-astro-cid-al2ca2vr> <summary class="flex justify-between items-center p-6 cursor-pointer list-none" data-astro-cid-al2ca2vr> <h3 class="font-display font-bold text-white pr-8" data-astro-cid-al2ca2vr>Qu'est-ce qu'un Ãtat Local de Marché (ELM) ?</h3> <span class="relative flex-shrink-0 w-6 h-6 transition-transform duration-300 group-open:rotate-180" data-astro-cid-al2ca2vr> <svg class="w-6 h-6 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-al2ca2vr> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" data-astro-cid-al2ca2vr></path> </svg> </span> </summary> <div class="px-6 pb-6 text-brand-accent-dim leading-relaxed text-sm" data-astro-cid-al2ca2vr> <div data-astro-cid-al2ca2vr>L'ELM est un document obligatoire en franchise (Loi Doubin). Il présente l'état général et local du marché, la zone de chalandise et la concurrence pour permettre au futur franchisé de s'engager en connaissance de cause.</div> </div> </details><details class="group glass-card border border-brand-line/80 overflow-hidden transition-all duration-300 open:bg-white/5" data-astro-cid-al2ca2vr> <summary class="flex justify-between items-center p-6 cursor-pointer list-none" data-astro-cid-al2ca2vr> <h3 class="font-display font-bold text-white pr-8" data-astro-cid-al2ca2vr>Quelle est la différence entre un ELM et une étude d'implantation ?</h3> <span class="relative flex-shrink-0 w-6 h-6 transition-transform duration-300 group-open:rotate-180" data-astro-cid-al2ca2vr> <svg class="w-6 h-6 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-al2ca2vr> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" data-astro-cid-al2ca2vr></path> </svg> </span> </summary> <div class="px-6 pb-6 text-brand-accent-dim leading-relaxed text-sm" data-astro-cid-al2ca2vr> <div data-astro-cid-al2ca2vr>L'ELM est descriptif et obligatoire légalement. L'étude d'implantation est une étude prédictive qui estime le montant futur des ventes. Chez SAD, nous couplons souvent les deux pour une sécurité maximale.</div> </div> </details><details class="group glass-card border border-brand-line/80 overflow-hidden transition-all duration-300 open:bg-white/5" data-astro-cid-al2ca2vr> <summary class="flex justify-between items-center p-6 cursor-pointer list-none" data-astro-cid-al2ca2vr> <h3 class="font-display font-bold text-white pr-8" data-astro-cid-al2ca2vr>Quelles sont les données utilisées pour estimer mon chiffre d'affaires ?</h3> <span class="relative flex-shrink-0 w-6 h-6 transition-transform duration-300 group-open:rotate-180" data-astro-cid-al2ca2vr> <svg class="w-6 h-6 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-al2ca2vr> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" data-astro-cid-al2ca2vr></path> </svg> </span> </summary> <div class="px-6 pb-6 text-brand-accent-dim leading-relaxed text-sm" data-astro-cid-al2ca2vr> <div data-astro-cid-al2ca2vr>SAD Marketing s'appuie sur une base de données de 45 ans d'historique, couplée à des enquêtes terrain (comptages de flux, relevés concurrentiels) et notre algorithme d'IA PredictOps pour garantir une fiabilité maximale.</div> </div> </details><details class="group glass-card border border-brand-line/80 overflow-hidden transition-all duration-300 open:bg-white/5" data-astro-cid-al2ca2vr> <summary class="flex justify-between items-center p-6 cursor-pointer list-none" data-astro-cid-al2ca2vr> <h3 class="font-display font-bold text-white pr-8" data-astro-cid-al2ca2vr>Combien de temps faut-il pour réaliser un ELM ou une étude d'implantation ?</h3> <span class="relative flex-shrink-0 w-6 h-6 transition-transform duration-300 group-open:rotate-180" data-astro-cid-al2ca2vr> <svg class="w-6 h-6 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-al2ca2vr> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" data-astro-cid-al2ca2vr></path> </svg> </span> </summary> <div class="px-6 pb-6 text-brand-accent-dim leading-relaxed text-sm" data-astro-cid-al2ca2vr> <div data-astro-cid-al2ca2vr>En moyenne, la réalisation d'un état local du marché complet prend 2 à 3 semaines, incluant les études terrain et les modélisations.</div> </div> </details>
739<details class="group glass-card border border-brand-line/80 overflow-hidden transition-all duration-300 open:bg-white/5" data-astro-cid-al2ca2vr> <summary class="flex justify-between items-center p-6 cursor-pointer list-none" data-astro-cid-al2ca2vr> <h3 class="font-display font-bold text-white pr-8" data-astro-cid-al2ca2vr>Quel est le coût d'une étude géomarketing (ELM, CA prévisionnel) ?</h3> <span class="relative flex-shrink-0 w-6 h-6 transition-transform duration-300 group-open:rotate-180" data-astro-cid-al2ca2vr> <svg class="w-6 h-6 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-al2ca2vr> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" data-astro-cid-al2ca2vr></path> </svg> </span> </summary> <div class="px-6 pb-6 text-brand-accent-dim leading-relaxed text-sm" data-astro-cid-al2ca2vr> <div data-astro-cid-al2ca2vr>Trois facteurs déterminent le budget : le type de livrable (état local de marché, chiffre d'affaires prévisionnel, étude d'implantation complète), l'étendue de la zone et le nombre de concurrents à relever sur le terrain, et le niveau d'accompagnement après remise du rapport. Une étude d'implantation sur un point de vente unique n'a pas le même coût qu'un scoring de potentiel commercial sur trente zones candidates. Devis personnalisé sous 24h ouvrées, sans engagement.</div> </div> </details><details class="group glass-card border border-brand-line/80 overflow-hidden transition-all duration-300 open:bg-white/5" data-astro-cid-al2ca2vr> <summary class="flex justify-between items-center p-6 cursor-pointer list-none" data-astro-cid-al2ca2vr> <h3 class="font-display font-bold text-white pr-8" data-astro-cid-al2ca2vr>Comment mesurez-vous le potentiel commercial d'une zone ?</h3> <span class="relative flex-shrink-0 w-6 h-6 transition-transform duration-300 group-open:rotate-180" data-astro-cid-al2ca2vr> <svg class="w-6 h-6 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-al2ca2vr> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" data-astro-cid-al2ca2vr></path> </svg> </span> </summary> <div class="px-6 pb-6 text-brand-accent-dim leading-relaxed text-sm" data-astro-cid-al2ca2vr> <div data-astro-cid-al2ca2vr>Nous croisons la dépense commercialisable des ménages de la zone (revenus, composition des foyers, données INSEE) avec l'offre concurrente déjà installée et l'accessibilité réelle en temps de parcours. L'écart entre le potentiel théorique et le chiffre d'affaires capté par les enseignes en place donne le potentiel commercial disponible â celui que votre implantation peut viser.</div> </div> </details><details class="group glass-card border border-brand-line/80 overflow-hidden transition-all duration-300 open:bg-white/5" data-astro-cid-al2ca2vr> <summary class="flex justify-between items-center p-6 cursor-pointer list-none" data-astro-cid-al2ca2vr> <h3 class="font-display font-bold text-white pr-8" data-astro-cid-al2ca2vr>Puis-je utiliser un ELM ou un CA prévisionnel pour mon banquier ?</h3> <span class="relative flex-shrink-0 w-6 h-6 transition-transform duration-300 group-open:rotate-180" data-astro-cid-al2ca2vr> <svg class="w-6 h-6 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-al2ca2vr> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" data-astro-cid-al2ca2vr></path> </svg> </span> </summary> <div class="px-6 pb-6 text-brand-accent-dim leading-relaxed text-sm" data-astro-cid-al2ca2vr> <div data-astro-cid-al2ca2vr>Oui. L'étude géomarketing est un élément de rassurance majeur et très souvent demandé par les partenaires financiers pour valider l'octroi d'un prêt ou financer votre franchise.</div> </div> </details><details class="group glass-card border border-brand-line/80 overflow-hidden transition-all duration-300 open:bg-white/5" data-astro-cid-al2ca2vr> <summary class="flex justify-between items-center p-6 cursor-pointer list-none" data-astro-cid-al2ca2vr> <h3 class="font-display font-bold text-white pr-8" data-astro-cid-al2ca2vr>Comment la précision du CA prévisionnel est-elle vérifiée ?</h3> <span class="relative flex-shrink-0 w-6 h-6 transition-transform duration-300 group-open:rotate-180" data-astro-cid-al2ca2vr> <svg class="w-6 h-6 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-al2ca2vr> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" data-astro-cid-al2ca2vr></path> </svg> </span> </summary> <div class="px-6 pb-6 text-brand-accent-dim leading-relaxed text-sm" data-astro-cid-al2ca2vr> <div data-astro-cid-al2ca2vr>La précision est mesurée par une simulation systématique sur l'historique réalisée avec nos partenaires historiques. En comparant nos modèles prédictifs avec les résultats réels post-ouverture, nous obtenons une marge d'erreur faible très maîtrisée.</div> </div> </details>
739<details class="group glass-card border border-brand-line/80 overflow-hidden transition-all duration-300 open:bg-white/5" data-astro-cid-al2ca2vr> <summary class="flex justify-between items-center p-6 cursor-pointer list-none" data-astro-cid-al2ca2vr> <h3 class="font-display font-bold text-white pr-8" data-astro-cid-al2ca2vr>Quelles sont les obligations d'une Ãtude Générale de Marché (EGM) ?</h3> <span class="relative flex-shrink-0 w-6 h-6 transition-transform duration-300 group-open:rotate-180" data-astro-cid-al2ca2vr> <svg class="w-6 h-6 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-al2ca2vr> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" data-astro-cid-al2ca2vr></path> </svg> </span> </summary> <div class="px-6 pb-6 text-brand-accent-dim leading-relaxed text-sm" data-astro-cid-al2ca2vr> <div data-astro-cid-al2ca2vr>Là où l'ELM porte sur une adresse spécifique, l'EGM cartographie un pays, une région ou un périmètre macroscopique pour permettre à une tête de réseau d'identifier les prochains secteurs porteurs de croissance.</div> </div> </details><details class="group glass-card border border-brand-line/80 overflow-hidden transition-all duration-300 open:bg-white/5" data-astro-cid-al2ca2vr> <summary class="flex justify-between items-center p-6 cursor-pointer list-none" data-astro-cid-al2ca2vr> <h3 class="font-display font-bold text-white pr-8" data-astro-cid-al2ca2vr>Incluez-vous la démographie et les projets urbains futurs ?</h3> <span class="relative flex-shrink-0 w-6 h-6 transition-transform duration-300 group-open:rotate-180" data-astro-cid-al2ca2vr> <svg class="w-6 h-6 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-al2ca2vr> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" data-astro-cid-al2ca2vr></path> </svg> </span> </summary> <div class="px-6 pb-6 text-brand-accent-dim leading-relaxed text-sm" data-astro-cid-al2ca2vr> <div data-astro-cid-al2ca2vr>Oui, toute étude sérieuse intègre la conjoncture démographique, socio-professionnelle (PCS), ainsi que les pôles générateurs existants ou en devenir (futurs PFU, nouvelles zones commerciales, etc.).</div> </div> </details><details class="group glass-card border border-brand-line/80 overflow-hidden transition-all duration-300 open:bg-white/5" data-astro-cid-al2ca2vr> <summary class="flex justify-between items-center p-6 cursor-pointer list-none" data-astro-cid-al2ca2vr> <h3 class="font-display font-bold text-white pr-8" data-astro-cid-al2ca2vr>Combien d'implantations avez-vous évaluées à ce jour ?</h3> <span class="relative flex-shrink-0 w-6 h-6 transition-transform duration-300 group-open:rotate-180" data-astro-cid-al2ca2vr> <svg class="w-6 h-6 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-al2ca2vr> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" data-astro-cid-al2ca2vr></path> </svg> </span> </summary> <div class="px-6 pb-6 text-brand-accent-dim leading-relaxed text-sm" data-astro-cid-al2ca2vr> <div data-astro-cid-al2ca2vr>SAD Marketing réalise plus de 1 000 études à l'année et justifie de références sur plus de 12 000 dossiers analysés partout dans le monde.</div> </div> </details> </div> </div> </section> <section id="lead-form" class="py-16 lg:py-20 border-t border-white/5 scroll-mt-24"> <div class="max-w-2xl mx-auto px-4 sm:px-6"> <div class="text-center mb-6"> <h2 class="font-display text-2xl sm:text-3xl font-black text-white mb-2"> Obtenez un devis sous 24h </h2> <p class="text-brand-accent-dim text-sm"> Type d'étude, surface, localisation : quelques minutes d'échange suffisent pour vous remettre une proposition personnalisée. </p> </div> <div class="relative glass-card rounded-2xl border border-white/10 shadow-[0_0_40px_-12px_rgba(232,146,42,0.5)] p-5 sm:p-6"> <form id="lead-form-etudes-geomarketing" name="lead-compact" method="POST" action="/api/contact" data-astro-reload class="space-y-3"> <input type="hidden" name="lang" value="fr"> <input type="hidden" name="sujet" value="etudes-geomarketing"> <div class="grid grid-cols-2 gap-2.5"> <div class="relative"> <input id="lead-form-etudes-geomarketing-firstname" type="text" name="prenom" required placeholder=" " class="peer w-full bg-white/5 border border-white/10 rounded-lg px-3 pt-5 pb-1.5 text-sm text-white placeholder-transparent focus:outline-none focus:ring-2 focus:border-brand-orange focus:ring-brand-orange/20 transition-all"> <label for="lead-form-etudes-geomarketing-firstname" class="absolute left-3 top-1.5 text-[10px] font-semibold uppercase tracking-wider text-brand-accent-dim transition-all peer-placeholder-shown:top-3.5 peer-placeholder-shown:text-sm peer-placeholder-shown:normal-case peer-placeholder-shown:font-normal peer-placeholder-shown:text-brand-accent-dim/50 peer-focus:top-1.5 peer-focus:text-[10px] peer-focus:font-semibold peer-focus:uppercase peer-focus:tracking-wider peer-focus:text-brand-orange">Prénom *</label> </div> <div class="relative"> <input id="lead-form-etudes-geomarketing-lastname" type="text" name="nom" required placeholder=" " class="peer w-full bg-white/5 border border-white/10 rounded-lg px-3 pt-5 pb-1.5 text-sm text-white placeholder-transparent focus:outline-none focus:ring-2 focus:border-brand-orange focus:ring-brand-orange/20 transition-all"> <label for="lead-form-etudes-geomarketing-lastname" class="absolute left-3 top-1.5 text-[10px] font-semibold uppercase tracking-wider text-brand-accent-dim transition-all peer-placeholder-shown:top-3.5 peer-placeholder-shown:text-sm peer-placeholder-shown:normal-case peer-placeholder-shown:font-normal peer-placeholder-shown:text-brand-accent-dim/50 peer-focus:top-1.5 peer-focus:text-[10px] peer-focus:font-semibold peer-focus:uppercase peer-focus:tracking-wider peer-focus:text-brand-orange">Nom *</label> </div> </div> <div class="grid sm:grid-cols-2 gap-2.5"> <div class="relative"> <input id="lead-form-etudes-geomarketing-email" type="email" name="email" required placeholder=" " class="peer w-full bg-white/5 border border-white/10 rounded-lg px-3 pt-5 pb-1.5 text-sm text-white placeholder-transparent focus:outline-none focus:ring-2 focus:border-brand-orange focus:ring-brand-orange/20 transition-all"> <label for="lead-form-etudes-geomarketing-email" class="absolute left-3 top-1.5 text-[10px] font-semibold uppercase tracking-wider text-brand-accent-dim transition-all peer-placeholder-shown:top-3.5 peer-placeholder-shown:text-sm peer-placeholder-shown:normal-case peer-placeholder-shown:font-normal peer-placeholder-shown:text-brand-accent-dim/50 peer-focus:top-1.5 peer-focus:text-[10px] peer-focus:font-semibold peer-focus:uppercase peer-focus:tracking-wider peer-focus:text-brand-orange">Email pro *</label> </div> <div class="relative"> <input id="lead-form-etudes-geomarketing-phone" type="tel" name="telephone" placeholder=" " class="peer w-full bg-white/5 border border-white/10 rounded-lg px-3 pt-5 pb-1.5 text-sm text-white placeholder-transparent focus:outline-none focus:ring-2 focus:border-brand-orange focus:ring-brand-orange/20 transition-all"> <label for="lead-form-etudes-geomarketing-phone" class="absolute left-3 top-1.5 text-[10px] font-semibold uppercase tracking-wider text-brand-accent-dim transition-all peer-placeholder-shown:top-3.5 peer-placeholder-shown:text-sm peer-placeholder-shown:normal-case peer-placeholder-shown:font-normal peer-placeholder-shown:text-brand-accent-dim/50 peer-focus:top-1.5 peer-focus:text-[10px] peer-focus:font-semibold peer-focus:uppercase peer-focus:tracking-wider peer-focus:text-brand-orange">Téléphone</label> </div> </div> <details class="group"> <summary class="cursor-pointer text-xs text-brand-orange hover:text-white transition-colors py-1.5
739select-none list-none flex items-center gap-1.5"> <span class="inline-block transition-transform group-open:rotate-45 text-base leading-none">+</span> <span>+ Ajouter entreprise & détails du projet</span> </summary> <div class="space-y-2.5 pt-2"> <div class="relative"> <input id="lead-form-etudes-geomarketing-company" type="text" name="entreprise" placeholder=" " class="peer w-full bg-white/5 border border-white/10 rounded-lg px-3 pt-5 pb-1.5 text-sm text-white placeholder-transparent focus:outline-none focus:ring-2 focus:border-brand-orange focus:ring-brand-orange/20 transition-all"> <label for="lead-form-etudes-geomarketing-company" class="absolute left-3 top-1.5 text-[10px] font-semibold uppercase tracking-wider text-brand-accent-dim transition-all peer-placeholder-shown:top-3.5 peer-placeholder-shown:text-sm peer-placeholder-shown:normal-case peer-placeholder-shown:font-normal peer-placeholder-shown:text-brand-accent-dim/50 peer-focus:top-1.5 peer-focus:text-[10px] peer-focus:font-semibold peer-focus:uppercase peer-focus:tracking-wider peer-focus:text-brand-orange">Entreprise</label> </div> <div class="relative"> <textarea id="lead-form-etudes-geomarketing-message" name="message" rows="2" placeholder=" " class="peer w-full bg-white/5 border border-white/10 rounded-lg px-3 pt-5 pb-1.5 text-sm text-white placeholder-transparent focus:outline-none focus:ring-2 focus:border-brand-orange focus:ring-brand-orange/20 transition-all resize-none"></textarea> <label for="lead-form-etudes-geomarketing-message" class="absolute left-3 top-1.5 text-[10px] font-semibold uppercase tracking-wider text-brand-accent-dim transition-all peer-placeholder-shown:top-3.5 peer-placeholder-shown:text-sm peer-placeholder-shown:normal-case peer-placeholder-shown:font-normal peer-placeholder-shown:text-brand-accent-dim/50 peer-focus:top-1.5 peer-focus:text-[10px] peer-focus:font-semibold peer-focus:uppercase peer-focus:tracking-wider peer-focus:text-brand-orange">Détails de votre projet</label> <p class="text-[10px] text-brand-accent-dim/50 mt-1 ml-1">Zone, concept, nombre de points de venteâ¦</p> </div> </div> </details> <div style="display:none;" aria-hidden="true"> <label>Do not fill</label> <input type="text" name="website" tabindex="-1" autocomplete="off"> </div> <label for="lead-form-etudes-geomarketing-rgpd" class="flex items-start gap-2 cursor-pointer pt-1"> <input id="lead-form-etudes-geomarketing-rgpd" type="checkbox" name="rgpd" required class="mt-0.5 w-3.5 h-3.5 accent-brand-orange flex-shrink-0"> <span class="text-[11px] text-brand-accent-dim leading-snug"> J'accepte d'être recontacté conformément à la <a href="/fr/politique-confidentialite" class="text-brand-orange underline hover:text-white transition-colors">politique de confidentialité</a>. * 740</span> </label> <!-- Cloudflare Turnstile Widget --> <div class="turnstile-wrapper"> <div class="cf-turnstile" data-sitekey="0x4AAAAAADl0wIB33LrIYeRh" data-theme="dark" data-size="flexible" data-appearance="always"></div> </div> <button type="submit" class="magnetic-btn w-full group flex items-center justify-center gap-2 px-6 py-3 bg-brand-orange hover:bg-brand-orange-light text-brand-darker font-bold text-sm rounded-xl transition-all duration-300 mt-1"> Envoyer ma demande <svg class="w-4 h-4 group-hover:translate-x-1 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M14 5l7 7m0 0l-7 7m7-7H3"></path></svg> </button> <div class="flex items-center justify-center gap-3 sm:gap-5 pt-1 text-[10px] text-brand-accent-dim/60"> <span class="inline-flex items-center gap-1"> <svg class="w-3 h-3 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M13 10V3L4 14h7v7l9-11h-7z"></path></svg> Réponse < 24h </span> <span class="text-white/15">·</span> <span class="inline-flex items-center gap-1"> <svg class="w-3 h-3 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"></path></svg> Confidentiel </span> <span class="text-white/15">·</span> <span class="inline-flex items-center gap-1"> <svg class="w-3 h-3 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24">
740<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg> Sans engagement </span> </div> </form> </div> <div class="text-center mt-4"> <a href="/fr/rdv" class="inline-flex items-center gap-1 text-xs text-brand-orange hover:text-white transition-colors"> Ou réservez un créneau de 30 min â </a> </div> <div class="text-center mt-3 pt-3 border-t border-white/[0.07]"> <p class="text-[11px] text-brand-accent-dim/70"> Vous voulez d'abord un ordre de prix ? <a href="/fr/devis" class="text-white/80 underline decoration-white/20 underline-offset-2 hover:text-white hover:decoration-white/50 transition-colors"> Voir les tarifs de départ et demander une estimation â </a> </p> </div> </div> </section> </main> <footer class="border-t border-white/5 bg-brand-darker"> <!-- Main footer --> <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16"> <div class="grid grid-cols-2 md:grid-cols-4 gap-8 lg:gap-12"> <!-- Brand --> <div class="col-span-2 md:col-span-1"> <a href="/fr" class="flex items-center group mb-6 w-fit"> <picture><source srcset="/images/logo.webp" type="image/webp"><img src="/images/logo.png" alt="SAD Marketing" class="h-8 w-auto opacity-80 hover:opacity-100 transition-opacity" width="200" height="32" loading="lazy" decoding="async"></picture> </a> <p class="text-brand-accent-dim text-sm leading-relaxed mb-6"> 45 ans d'expertise géomarketing. Une nouvelle génération d'IA prédictive spatiale. Ãtudes de marché, implantations, data science et plateformes interactives au service du retail, des foncières, de la restauration, des EHPAD et des acteurs publics. </p> <!-- LinkedIn --> <a href="https://www.linkedin.com/company/sad-marketing" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-2 text-brand-accent-dim hover:text-white transition-colors text-sm"> <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"></path></svg> 741LinkedIn 742</a> </div> <!-- Solutions --> <div> <a href="/fr/solutions" class="block text-xs font-bold text-brand-accent-dim hover:text-white uppercase tracking-widest mb-5 transition-colors">Solutions</a> <ul class="space-y-3"> <li> <a href="/fr/solutions/etude-de-marche" class="text-brand-accent-dim hover:text-white transition-colors text-sm">Ãtude de marché</a> </li><li> <a href="/fr/solutions/predictops-retail" class="text-brand-accent-dim hover:text-white transition-colors text-sm">PredictOps Retail</a> </li><li> <a href="/fr/solutions/predictops-securite-civile" class="text-brand-accent-dim hover:text-white transition-colors text-sm">PredictOps Sécurité Civile</a> </li><li> <a href="/fr/solutions/generatops" class="text-brand-accent-dim hover:text-white transition-colors text-sm">GeneratOps</a> </li><li> <a href="/fr/solutions/doctrinops" class="text-brand-accent-dim hover:text-white transition-colors text-sm">DoctrinOps</a> </li><li> <a href="/fr/solutions/sad-interactive" class="text-brand-accent-dim hover:text-white transition-colors text-sm">SAD Interactive</a> </li><li> <a href="/fr/solutions/etudes-geomarketing" class="text-brand-accent-dim hover:text-white transition-colors text-sm">Ãtudes Géomarketing</a> </li><li> <a href="/fr/solutions/expansion-internationale" class="text-brand-accent-dim hover:text-white transition-colors text-sm">Expansion Internationale</a> </li> </ul> </div> <!-- Enjeux --> <div> <div class="text-xs font-bold text-brand-accent-dim uppercase tracking-widest mb-5">Enjeux</div> <ul class="space-y-3"> <li> <a href="/fr/solutions/etudes-geomarketing" class="text-brand-accent-dim hover:text-white transition-colors text-sm">Ouvrir une franchise</a> </li><li> <a href="/fr/solutions/sad-interactive" class="text-brand-accent-dim hover:text-white transition-colors text-sm">Optimiser mon réseau</a> </li><li> <a href="/fr/solutions/expansion-internationale" class="text-brand-accent-dim hover:text-white transition-colors text-sm">S'implanter à l'international</a> </li><li>
742 <a href="/fr/conjoncture" class="text-brand-accent-dim hover:text-white transition-colors text-sm">Conjoncture retail</a> </li> </ul> </div> <!-- Contact & Adresses --> <div> <div class="text-xs font-bold text-brand-accent-dim uppercase tracking-widest mb-5">Contact & Sièges</div> <div class="mb-4"> <p class="text-brand-accent-dim text-sm font-bold">Lille (Siège)</p> <p class="text-brand-accent-dim text-xs">26 rue Jacques Prévert, 59650 Villeneuve d'Ascq</p> <a href="tel:+33320815820" class="text-brand-orange hover:text-white transition-colors text-xs">+33 (0)3 20 81 58 20</a> </div> <div class="mb-4"> <p class="text-brand-accent-dim text-sm font-bold">Paris</p> <p class="text-brand-accent-dim text-xs">18 rue Gérando, 75009 Paris</p> <a href="tel:+33144850186" class="text-brand-orange hover:text-white transition-colors text-xs">+33 (0)1 44 85 01 86</a> </div> <div class="mb-6"> <p class="text-brand-accent-dim text-sm font-bold">Dubaï</p> <p class="text-brand-accent-dim text-xs">Dubai Internet City</p> <a href="tel:+971585093875" class="text-brand-orange hover:text-white transition-colors text-xs">+971 (0) 585 093 875</a> </div> <a href="/fr/contact" class="inline-flex items-center gap-2 bg-brand-orange/15 hover:bg-brand-orange/25 text-brand-orange border border-brand-orange/30 px-4 py-2.5 rounded-lg text-xs font-bold uppercase tracking-wider transition-all"> Contacter nos équipes â </a> </div> </div> </div> <!-- Sitewide hub nav --> <div class="border-t border-white/5"> <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-5"> <nav aria-label="Sections principales" class="flex flex-wrap items-center justify-center sm:justify-start gap-x-6 gap-y-2 text-sm"> <a href="/fr/solutions" class="text-brand-accent-dim hover:text-white transition-colors">Solutions</a> <span class="text-brand-accent-dim/30">·</span> <a href="/fr/conjoncture" class="text-brand-accent-dim hover:text-white transition-colors">Conjoncture</a> <span class="text-brand-accent-dim/30">·</span> <a href="/fr/a-propos" class="text-brand-accent-dim hover:text-white transition-colors">à propos</a> <span class="text-brand-accent-dim/30">·</span> <a href="/fr/contact" class="text-brand-accent-dim hover:text-white transition-colors">Contact</a> <span class="text-brand-accent-dim/30">·</span> <a href="/fr/devis" class="text-brand-accent-dim hover:text-white transition-colors">Demander un devis</a> <span class="text-brand-accent-dim/30">·</span> <a href="/fr/outils" class="text-brand-accent-dim hover:text-white transition-colors">Outils gratuits</a> <span class="text-brand-accent-dim/30">·</span> <a href="/fr/modeles" class="text-brand-accent-dim hover:text-white transition-colors">Modèles à télécharger</a> <span class="text-brand-accent-dim/30">·</span> <a href="/fr/data" class="text-brand-accent-dim hover:text-white transition-colors">Données ouvertes</a> <span class="text-brand-accent-dim/30">·</span> <a href="/fr/glossaire" class="text-brand-accent-dim hover:text-white transition-colors">Glossaire</a> <span class="text-brand-accent-dim/30">·</span> <a href="/fr/outils/zone-de-chalandise" class="text-brand-accent-dim hover:text-white transition-colors">Calculer sa zone de chalandise</a> <span class="text-brand-accent-dim/30">·</span> <a href="/fr/methode/carnet-de-bord" class="text-brand-accent-dim hover:text-white transition-colors">Carnet de bord</a> </nav> </div> </div> <!-- Bottom bar --> <div class="border-t border-white/5"> <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6 flex flex-col sm:flex-row justify-between items-center gap-4"> <div class="text-brand-accent-dim/80 text-xs"> 743© 2026 SAD Marketing. Tous droits réservés. </div> <div class="flex gap-6"> <a href="/fr/mentions-legales" class="text-brand-accent-dim/80 hover:text-brand-accent-dim transition-colors text-xs">Mentions Légales</a> <a href="/fr/politique-confidentialite" class="text-brand-accent-dim/80 hover:text-brand-accent-dim transition-colors text-xs">Confidentialité</a> </div> </div> </div> </footer> </div> <!-- 744 Révélation du premier écran sans attendre le JS applicatif (LCP). 745 746 ScrollReveal.astro rend chaque bloc en `opacity: 0` et attend son module
747 hoisté (donc `type=module`, donc différé) puis un tour 748 d'IntersectionObserver pour le rendre visible. Sur mobile bridé, le hero 749 n'était peint qu'après plusieurs secondes : le seul élément large peint 750 hors animation restait le bandeau cookies, que Chrome retenait alors 751 comme élément LCP (mesuré à 6,2 s sur banc, contre 3,7 s pour le hero une 752 fois celui-ci éligible). 753 754 Ce script `is:inline`, placé après le contenu, s'exécute pendant l'analyse 755 du document â donc avant tout module différé. C'est un filet, pas une 756 garantie : Chrome peint par incréments et peut avoir déjà peint un bloc à 757 opacité nulle, auquel cas il ne le reconsidère plus comme candidat LCP. 758 La garantie, pour un hero, c'est `<ScrollReveal immediate>`, qui ne rend 759 jamais le bloc masqué. Ce script rattrape le reste des pages. 760 -->
760<script> 761 (function () { 762 const revealAboveFold = () => { 763 const fold = window.innerHeight || 0; 764 if (!fold) return; 765 for (const el of document.querySelectorAll('.scroll-reveal')) { 766 // `top` seul : un bloc plus haut que l'écran doit être révélé lui 767 // aussi dès lors qu'il commence dans le premier écran. 768 if (el.getBoundingClientRect().top < fold) { 769 el.classList.add('reveal-instant', 'revealed'); 770 } 771 } 772 }; 773 774 revealAboveFold(); 775 776 // Le contenu injecté par les view transitions n'est pas couvert par 777 // l'exécution ci-dessus. Un seul écouteur, quel que soit le nombre de 778 // ré-exécutions du script au fil des navigations. 779 if (!window.__sadRevealAboveFoldBound) { 780 window.__sadRevealAboveFoldBound = true; 781 document.addEventListener('astro:after-swap', revealAboveFold); 782 } 783 })(); 784 </script>
784
784<script type="module">function m(){const t=document.getElementById("mobile-nav"),o=document.getElementById("mobile-menu-btn");if(!t||!o)return;const i=document.getElementById("mobile-nav-close"),s=t.querySelector(".mn-scroll"),c=[document.getElementById("page-shell"),document.getElementById("mobile-action-bar")].filter(e=>e!==null);let d=0;const l=e=>{e!==(t.dataset.open==="true")&&(e&&(d=window.scrollY),t.dataset.open=e?"true":"false",t.toggleAttribute("inert",!e),t.setAttribute("aria-hidden",e?"false":"true"),o.setAttribute("aria-expanded",e?"true":"false"),o.classList.toggle("is-open",e),document.documentElement.classList.toggle("sad-nav-open",e),c.forEach(n=>n.toggleAttribute("inert",e)),e?(s&&(s.scrollTop=0),i?.focus({preventScroll:!0})):(window.scrollTo(0,d),o.focus({preventScroll:!0})))};o.addEventListener("click",()=>l(t.dataset.open!=="true")),i?.addEventListener("click",()=>l(!1)),t.querySelectorAll("[data-mn-link]").forEach(e=>{e.addEventListener("click",()=>l(!1))}),t.addEventListener("keydown",e=>{e.key==="Escape"&&l(!1)}),t.querySelectorAll("[data-mn-toggle]").forEach(e=>{e.addEventListener("click",()=>{const n=e.closest(".mn-section");if(!n)return;const u=n.dataset.open!=="true";t.querySelectorAll(".mn-section").forEach(a=>{const r=a===n&&u;a.dataset.open=r?"true":"false",a.querySelector("[data-mn-toggle]")?.setAttribute("aria-expanded",r?"true":"false"),a.querySelector(".mn-region")?.toggleAttribute("inert",!r)})})}),window.__sadMobileNavWide||(window.__sadMobileNavWide=!0,window.matchMedia("(min-width: 1024px)").addEventListener("change",e=>{if(!e.matches)return;document.getElementById("mobile-nav")?.dataset.open==="true"&&document.getElementById("mobile-nav-close")?.click()}))}document.addEventListener("astro:page-load",m);window.__sadMobileNavReset||(window.__sadMobileNavReset=!0,document.addEventListener("astro:before-swap",()=>{document.documentElement.classList.remove("sad-nav-open"),document.getElementById("page-shell")?.removeAttribute("inert"),document.getElementById("mobile-action-bar")?.removeAttribute("inert")}));</script>
784<script type="module">let o=null;function l(){const i=document.getElementById("mobile-action-bar");if(!i)return;let s="";const a=t=>{const n=getComputedStyle(t);return n.display==="none"||n.visibility==="hidden"||parseFloat(n.opacity)<.05},e=()=>{const t=document.getElementById("tarteaucitronAlertBig"),r=!!t&&!a(t)&&t.getBoundingClientRect().top<window.innerHeight?"true":"false";r!==s&&(s=r,i.setAttribute("data-cmp-open",r))};o&&o(),e(),document.readyState!=="complete"&&window.addEventListener("load",e,{once:!0});const c=setTimeout(e,1500),u=document.getElementById("tarteaucitronRoot")||document.body,d=new MutationObserver(e);d.observe(u,{attributes:!0,childList:!0,subtree:!0,attributeFilter:["style","class"]}),window.addEventListener("resize",e,{passive:!0}),o=()=>{d.disconnect(),clearTimeout(c),window.removeEventListener("load",e),window.removeEventListener("resize",e),o=null}}document.addEventListener("astro:page-load",l);</script>
784<script type="module">let n=null,l=null,c=0,u=0,r=0,s=0,i=!1,g=0,f=!1,p=!1,o=null;function v(){if(!l){i=!1;return}const e=.15;if(r+=(c-r)*e,s+=(u-s)*e,l.style.transform=`translate(${r}px, ${s}px) translate(-50%, -50%)`,Math.abs(c-r)<.5&&Math.abs(u-s)<.5&&performance.now()-g>200){i=!1;return}requestAnimationFrame(v)}function y(e){c=e.clientX,u=e.clientY,g=performance.now(),n&&(n.style.opacity="1"),i||(i=!0,requestAnimationFrame(v))}function h(e){let t=e.querySelector(".spotlight-element");return t||(t=document.createElement("div"),t.className="spotlight-element",e.appendChild(t)),t}function w(e){const t=e.target instanceof Element?e.target.closest(".spotlight-area"):null;if(o&&o!==t){const m=o.querySelector(".spotlight-element");m&&(m.style.opacity="0")}if(!t){o=null;return}const d=t.getBoundingClientRect(),a=h(t);a.style.setProperty("--x",`${e.clientX-d.left}px`),a.style.setProperty("--y",`${e.clientY-d.top}px`),a.style.opacity="1",o=t}function E(){if(n=document.getElementById("cursor-spotlight"),l=n?n.querySelector(".spotlight-follow"):null,!n||!l)return;const e=window.matchMedia("(hover: none), (pointer: coarse)").matches,t=window.matchMedia("(prefers-reduced-motion: reduce)").matches;if(e||t){n.remove(),n=null,l=null;return}f||(f=!0,window.addEventListener("mousemove",y,{passive:!0})),p||(p=!0,document.addEventListener("mousemove",w,{passive:!0}))}document.addEventListener("astro:page-load",()=>(window.sadDefer||(e=>e()))(E));</script>
784<script type="module">function i(){if(window.matchMedia("(hover: none), (pointer: coarse)").matches||window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;document.querySelectorAll(".magnetic-btn").forEach(a=>{const e=a;e.addEventListener("mousemove",o=>{const t=e.getBoundingClientRect(),r=o.clientX-t.left-t.width/2,c=o.clientY-t.top-t.height/2;e.style.transform=`translate(${r*.3}px, ${c*.3}px)`}),e.addEventListener("mouseleave",()=>{e.style.transform="translate(0px, 0px)"})})}document.addEventListener("astro:page-load",()=>(window.sadDefer||(n=>n()))(i));</script>
784<script type="module">function l(){window.matchMedia("(hover: none), (pointer: coarse)").matches||window.matchMedia("(prefers-reduced-motion: reduce)").matches||document.querySelectorAll(".tilt-card").forEach(o=>{const e=o;e.addEventListener("mouseenter",()=>{e.style.willChange="transform"}),e.addEventListener("mousemove",r=>{const t=document.activeElement;if(t!==null&&e.contains(t)&&(t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.tagName==="SELECT")){e.style.transform="perspective(1000px) rotateX(0deg) rotateY(0deg) scale3d(1, 1, 1)";return}const n=e.getBoundingClientRect(),s=r.clientX-n.left,a=r.clientY-n.top,c=n.width/2,i=(n.height/2-a)/20,d=(s-c)/20;e.style.transition="none",e.style.transform=`perspective(1000px) rotateX(${i}deg) rotateY(${d}deg) scale3d(1.015, 1.015, 1.015)`}),e.addEventListener("mouseleave",()=>{e.style.transition="transform 0.5s cubic-bezier(0.23, 1, 0.32, 1)",e.style.transform="perspective(1000px) rotateX(0deg) rotateY(0deg) scale3d(1, 1, 1)",window.setTimeout(()=>{e.style.willChange="auto"},500)})})}document.addEventListener("astro:page-load",()=>(window.sadDefer||(o=>o()))(l));</script>
784 <div id="mobile-nav" class="mn lg:hidden" data-open="false" aria-hidden="true" inert data-astro-cid-37bvxqo4> <div class="mn-panel" role="dialog" aria-modal="true" aria-label="Menu principal" data-astro-cid-37bvxqo4> <!-- Barre haute alignée au pixel sur celle de l'en-tête : le bouton de 785 fermeture tombe exactement là où était le hamburger. --> <div class="mn-top" data-astro-cid-37bvxqo4> <a href="/fr" class="mn-logo" data-mn-link data-astro-cid-37bvxqo4> <picture><source srcset="/images/logo.webp" type="image/webp"><img src="/images/logo.png" alt="SAD Marketing" class="h-10 w-auto" width="200" height="40" loading="lazy" decoding="async"></picture> </a> <button type="button" id="mobile-nav-close" class="mn-close" aria-label="Fermer le menu" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-astro-cid-37bvxqo4> <path d="M6 6l12 12M18 6L6 18" data-astro-cid-37bvxqo4></path> </svg> </button> </div> <div class="mn-scroll" data-astro-cid-37bvxqo4> <section class="mn-section" data-open="true" data-astro-cid-37bvxqo4> <button type="button" class="mn-row mn-head" aria-expanded="true" aria-controls="mn-region-mm-enjeux" data-mn-toggle data-astro-cid-37bvxqo4> <span class="mn-head-label" data-astro-cid-37bvxqo4>Enjeux</span> <span class="mn-count" data-astro-cid-37bvxqo4>6</span> <svg class="mn-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M19 9l-7 7-7-7" data-astro-cid-37bvxqo4></path> </svg> </button> <div class="mn-region" id="mn-region-mm-enjeux" data-astro-cid-37bvxqo4> <div class="mn-region-inner" data-astro-cid-37bvxqo4> <a href="/fr/solutions/etudes-geomarketing" class="mn-row mn-item" data-mn-link aria-current="page" data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>Ouvrir un point de vente</span> <span class="mn-desc" data-astro-cid-37bvxqo4>ELM, EGM, CA prévisionnel, Loi Doubin</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/solutions/sad-interactive" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>Optimiser mon réseau</span> <span class="mn-desc" data-astro-cid-37bvxqo4>Performance, conso, tracking</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/solutions/releves-prix" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>
785Définir ma stratégie prix</span> <span class="mn-desc" data-astro-cid-37bvxqo4>Terrain, e-commerce, élasticité</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/solutions/etudes-consommateurs" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M17 8h2a2 2 0 012 2v6a2 2 0 01-2 2h-2v4l-4-4H9a1.994 1.994 0 01-1.414-.586m0 0L11 14h4a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2v4l.586-.586z"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>Comprendre mes clients</span> <span class="mn-desc" data-astro-cid-37bvxqo4>Qualitatif, quantitatif, social listening</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/solutions/expansion-internationale" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M3.055 11H5a2 2 0 012 2v1a2 2 0 002 2 2 2 0 012 2v2.945M8 3.935V5.5A2.5 2.5 0 0010.5 8h.5a2 2 0 012 2 2 2 0 104 0 2 2 0 012-2h1.064M15 20.488V18a2 2 0 012-2h3.064M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>S'implanter à l'international</span> <span class="mn-desc" data-astro-cid-37bvxqo4>Dubaï, Moyen-Orient, Europe, Afrique</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/solutions/retail-intelligence" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>Booster mes ventes</span> <span class="mn-desc" data-astro-cid-37bvxqo4>Retail Intelligence, fidélisation, panier</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a> </div> </div> </section><section class="mn-section" data-open="false" data-astro-cid-37bvxqo4> <button type="button" class="mn-row mn-head" aria-expanded="false" aria-controls="mn-region-mm-solutions" data-mn-toggle data-astro-cid-37bvxqo4> <span class="mn-head-label" data-astro-cid-37bvxqo4>Solutions</span> <span class="mn-count" data-astro-cid-37bvxqo4>20</span> <svg class="mn-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M19 9l-7 7-7-7" data-astro-cid-37bvxqo4></path> </svg> </button> <div class="mn-region" id="mn-region-mm-solutions" inert data-astro-cid-37bvxqo4> <div class="mn-region-inner" data-astro-cid-37bvxqo4> <p class="mn-group" data-astro-cid-37bvxqo4>Mesurer</p><a href="/fr/solutions/etude-de-marche" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>Ãtude de marché globale</span> </span>
785 <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/solutions/etudes-geomarketing" class="mn-row mn-item" data-mn-link aria-current="page" data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>Ãtudes géomarketing</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/solutions/etat-local-de-marche" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>Ãtat Local de Marché â Loi Doubin</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/solutions/implantation-ca-previsionnel" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M3 3v18h18M7 14l4-4 4 4 5-5"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>Implantation & CA prévisionnel</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/solutions/cap-irve" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M13 10V3L4 14h7v7l9-11h-7z"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>Implantation IRVE â Bornes de recharge</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/solutions/dossier-cdac" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>Dossier CDAC & Urbanisme commercial</span> <span class="mn-desc" data-astro-cid-37bvxqo4>Analyse dâimpact, trafic, conformité</span> </span>
785 <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/solutions/analyse-impact-cdac" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>Analyse dâimpact (loi ELAN)</span> <span class="mn-desc" data-astro-cid-37bvxqo4>Centre-ville, emploi, friches</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/solutions/etude-de-trafic-cdac" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M9 6.75V15m6-6v8.25m.503 3.498 4.875-2.437c.381-.19.622-.58.622-1.006V4.82c0-.836-.88-1.38-1.628-1.006l-3.869 1.934c-.317.159-.69.159-1.006 0L9.503 3.252a1.125 1.125 0 00-1.006 0L3.622 5.689C3.24 5.88 3 6.27 3 6.695V19.18c0 .836.88 1.38 1.628 1.006l3.869-1.934c.317-.159.69-.159 1.006 0l4.994 2.497c.317.158.69.158 1.006 0z"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>Ãtude de trafic CDAC</span> <span class="mn-desc" data-astro-cid-37bvxqo4>Comptages, carrefours, accès</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/solutions/certificat-conformite-cdac" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>Certificat de conformité</span> <span class="mn-desc" data-astro-cid-37bvxqo4>Contrôle avant ouverture</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/solutions/comptages-routiers" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M9 6.75V15m6-6v8.25m.503 3.498 4.875-2.437c.381-.19.622-.58.622-1.006V4.82c0-.836-.88-1.38-1.628-1.006l-3.869 1.934c-.317.159-.69.159-1.006 0L9.503 3.252a1.125 1.125 0 00-1.006 0L3.622 5.689C3.24 5.88 3 6.27 3 6.695V19.18c0 .836.88 1.38 1.628 1.006l3.869-1.934c.317-.159.69-.159 1.006 0l4.994 2.497c.317.158.69.158 1.006 0z"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>Comptages routiers & piétons</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/solutions/donnees-trafic-routier" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>Données de trafic à lâadresse</span> <span class="mn-desc" data-astro-cid-37bvxqo4>Mesuré, livré sous 48 h, à partir de 390 ⬠HT</span> </span>
785 <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/solutions/releves-prix" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>Relevés de Prix</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><p class="mn-group" data-astro-cid-37bvxqo4>Comprendre</p><a href="/fr/solutions/etudes-consommateurs" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M17 8h2a2 2 0 012 2v6a2 2 0 01-2 2h-2v4l-4-4H9a1.994 1.994 0 01-1.414-.586m0 0L11 14h4a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2v4l.586-.586z"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>Ãtudes Consommateurs (Quali/Quanti)</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/solutions/client-mystere" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"/><path d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>Client Mystère & Mystery Shopping</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><p class="mn-group" data-astro-cid-37bvxqo4>Prévoir</p><a href="/fr/solutions/predictops-retail" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M13 10V3L4 14h7v7l9-11h-7z"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>PredictOps Retail</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/solutions/predictops-securite-civile" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>
785PredictOps Sécurité Civile</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/solutions/generatops" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>GeneratOps</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/solutions/doctrinops" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>DoctrinOps</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/solutions/sad-interactive" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M9 20l-5.447-2.724A1 1 0 013 16.382V5.618a1 1 0 011.447-.894L9 7m0 13l6-3m-6 3V7m6 10l4.553 2.276A1 1 0 0021 18.382V7.618a1 1 0 00-.553-.894L15 4m0 13V4m0 0L9 7"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>SAD Interactive</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/solutions/retail-intelligence" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>Retail Intelligence</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a> </div> </div> </section><section class="mn-section" data-open="false" data-astro-cid-37bvxqo4> <button type="button" class="mn-row mn-head" aria-expanded="false" aria-controls="mn-region-mm-secteurs" data-mn-toggle data-astro-cid-37bvxqo4> <span class="mn-head-label" data-astro-cid-37bvxqo4>Secteurs</span> <span class="mn-count" data-astro-cid-37bvxqo4>6</span> <svg class="mn-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M19 9l-7 7-7-7" data-astro-cid-37bvxqo4></path> </svg> </button> <div class="mn-region" id="mn-region-mm-secteurs" inert data-astro-cid-37bvxqo4> <div class="mn-region-inner" data-astro-cid-37bvxqo4> <a href="/fr/secteurs/fonciere-immobilier" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>Foncière & Immobilier</span> <span class="mn-desc" data-astro-cid-37bvxqo4>Centres commerciaux, retail parks, gares</span> </span>
785 <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/secteurs/retail-franchise" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M16 11V7a4 4 0 00-8 0v4M5 9h14l1 12H4L5 9z"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>Retail & Franchise</span> <span class="mn-desc" data-astro-cid-37bvxqo4>Mode, beauté, GSS, succursales</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/secteurs/restauration" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>Restauration</span> <span class="mn-desc" data-astro-cid-37bvxqo4>Restauration rapide, à table, boulangerie</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/secteurs/public-securite" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>Public & Sécurité</span> <span class="mn-desc" data-astro-cid-37bvxqo4>Sécurité civile, SDIS, pompiers</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/secteurs/sante-silver-economie" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>Santé & Silver Ãco</span> <span class="mn-desc" data-astro-cid-37bvxqo4>EHPAD, résidences seniors, santé</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/secteurs/irve-mobilite-electrique" class="mn-row mn-item" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M13 10V3L4 14h7v7l9-11h-7z"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>IRVE & Mobilité électrique</span> <span class="mn-desc" data-astro-cid-37bvxqo4>Recharge, foncier, conformité LOM/APER</span> </span>
785 <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a> </div> </div> </section> <a href="/fr/conjoncture" class="mn-row mn-item mn-direct" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M12 21a9 9 0 100-18 9 9 0 000 18z"/><path d="M14.5 9.5l-1.6 4.4-4.4 1.6 1.6-4.4 4.4-1.6z"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>Conjoncture</span> <span class="mn-desc" data-astro-cid-37bvxqo4>Tendances mensuelles du commerce</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/outils" class="mn-row mn-item mn-direct" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"/><path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>Outils gratuits</span> <span class="mn-desc" data-astro-cid-37bvxqo4>Ãtat Local de Marché, zone de chalandise, prix</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/blog" class="mn-row mn-item mn-direct" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>Blog</span> <span class="mn-desc" data-astro-cid-37bvxqo4>Analyses et méthodes géomarketing</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a><a href="/fr/a-propos" class="mn-row mn-item mn-direct" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4><path d="M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z"/></svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>à Propos</span> <span class="mn-desc" data-astro-cid-37bvxqo4>L'agence, l'équipe, les bureaux</span> </span> <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a> <!-- Sections repliées, la liste laisse ~350 px de vide au-dessus du pied. 786 Une voie de contact écrite l'occupe plutôt qu'un blanc. --> <a href="mailto:[email protected]" class="mn-row mn-item mn-direct" data-mn-link data-astro-cid-37bvxqo4> <span class="mn-icon" data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M3 7l9 6 9-6" data-astro-cid-37bvxqo4></path><rect x="3" y="5" width="18" height="14" rx="2" data-astro-cid-37bvxqo4></rect> </svg> </span> <span class="mn-text" data-astro-cid-37bvxqo4> <span class="mn-label" data-astro-cid-37bvxqo4>Nous écrire</span> <span class="mn-desc" data-astro-cid-37bvxqo4>[email protected]</span> </span>
786 <svg class="mn-go" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M9 6l6 6-6 6" data-astro-cid-37bvxqo4></path> </svg> </a> <p class="mn-meta" data-astro-cid-37bvxqo4>Lille · Paris · Dubaï â depuis 1981</p> </div> <!-- Zone du pouce : les deux actions de conversion restent atteignables 787 quel que soit le défilement, au lieu d'être en fin de liste. --> <div class="mn-foot" data-astro-cid-37bvxqo4> <a href="tel:+33320815820" class="mn-cta mn-cta-ghost" data-mn-link data-astro-cid-37bvxqo4> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z" data-astro-cid-37bvxqo4></path> </svg> Appeler </a> <a href="/fr/contact" class="mn-cta mn-cta-solid" data-mn-link data-astro-cid-37bvxqo4> Parler à un expert <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-37bvxqo4> <path d="M14 5l7 7-7 7M21 12H3" data-astro-cid-37bvxqo4></path> </svg> </a> </div> </div> </div> <div id="mobile-action-bar" class="lg:hidden fixed left-0 right-0 z-40 px-3 pt-6 pointer-events-none bg-gradient-to-t from-brand-darker via-brand-darker/92 to-transparent" data-astro-cid-putnq4yp> <div class="flex gap-2 max-w-md mx-auto pointer-events-auto" data-astro-cid-putnq4yp> <a href="tel:+33320815820" class="flex-1 inline-flex items-center justify-center gap-2 py-3.5 rounded-xl border border-white/15 bg-brand-dark/90 backdrop-blur-xl text-white font-semibold text-sm transition-colors hover:border-brand-orange/40" data-astro-cid-putnq4yp> <svg class="w-4 h-4 text-brand-orange" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-putnq4yp><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z" data-astro-cid-putnq4yp></path></svg> Appeler </a> <a href="/fr/rdv" class="flex-[1.4] inline-flex items-center justify-center gap-2 py-3.5 rounded-xl bg-brand-orange text-brand-darker font-bold text-sm shadow-[0_8px_24px_rgba(232,146,42,0.28)] transition-colors hover:bg-brand-orange-light" data-astro-cid-putnq4yp> Prendre RDV <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-putnq4yp><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M14 5l7 7m0 0l-7 7m7-7H3" data-astro-cid-putnq4yp></path></svg> </a> </div> </div> <div id="cursor-spotlight" class="fixed inset-0 pointer-events-none z-[9999] mix-blend-screen opacity-0 transition-opacity duration-500" data-astro-cid-gysqhczp> <div class="spotlight-follow w-[800px] h-[800px] -translate-x-1/2 -translate-y-1/2 rounded-full" style="background: radial-gradient(circle, rgba(232, 146, 42, 0.07) 0%, rgba(232, 146, 42, 0.03) 30%, transparent 70%);" data-astro-cid-gysqhczp></div> </div> <vercel-analytics data-props="{}" data-params="{}" data-pathname="/fr/solutions/etudes-geomarketing"></vercel-analytics>
787<script type="module">var v=()=>{window.va||(window.va=function(...i){window.vaq||(window.vaq=[]),window.vaq.push(i)})},w="@vercel/analytics",h="2.0.1";function f(){return typeof window<"u"}function p(){try{const e="production"}catch{}return"production"}function b(e="auto"){if(e==="auto"){window.vam=p();return}window.vam=e}function y(){return(f()?window.vam:p())||"production"}function d(){return y()==="development"}function m(e,i){if(!e||!i)return e;let n=e;try{const t=Object.entries(i);for(const[r,s]of t)if(!Array.isArray(s)){const o=u(s);o.test(n)&&(n=n.replace(o,`/[${r}]`))}for(const[r,s]of t)if(Array.isArray(s)){const o=u(s.join("/"));o.test(n)&&(n=n.replace(o,`/[...${r}]`))}return n}catch{return e}}function u(e){return new RegExp(`/${g(e)}(?=[/?#]|$)`)}function g(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function E(e){return e.scriptSrc?c(e.scriptSrc):d()?"https://va.vercel-scripts.com/v1/script.debug.js":e.basePath?c(`${e.basePath}/insights/script.js`):"/_vercel/insights/script.js"}function S(e,i){var n;let t=e;if(i)try{t={...(n=JSON.parse(i))==null?void 0:n.analytics,...e}}catch{}b(t.mode);const r={sdkn:w+(t.framework?`/${t.framework}`:""),sdkv:h};return t.disableAutoTrack&&(r.disableAutoTrack="1"),t.viewEndpoint&&(r.viewEndpoint=c(t.viewEndpoint)),t.eventEndpoint&&(r.eventEndpoint=c(t.eventEndpoint)),t.sessionEndpoint&&(r.sessionEndpoint=c(t.sessionEndpoint)),d()&&t.debug===!1&&(r.debug="false"),t.dsn&&(r.dsn=t.dsn),t.endpoint?r.endpoint=t.endpoint:t.basePath&&(r.endpoint=c(`${t.basePath}/insights`)),{beforeSend:t.beforeSend,src:E(t),dataset:r}}function c(e){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?e:`/${e}`}function k(e={debug:!0},i){var n;if(!f())return;const{beforeSend:t,src:r,dataset:s}=S(e,i);if(v(),t&&((n=window.va)==null||n.call(window,"beforeSend",t)),document.head.querySelector(`script[src*="${r}"]`))return;const o=document.createElement("script");o.src=r;for(const[a,l]of Object.entries(s))o.dataset[a]=l;o.defer=!0,o.onerror=()=>{const a=d()?"Please check if any ad blockers are enabled and try again.":"Be sure to enable Web Analytics for your project and deploy again. See https://vercel.com/docs/analytics/quickstart for more information.";console.log(`[Vercel Web Analytics] Failed to load script from ${r}. ${a}`)},document.head.appendChild(o)}function $({route:e,path:i}){var n;(n=window.va)==null||n.call(window,"pageview",{route:e,path:i})}function A(){try{return}catch{}}function j(){try{return'{"analytics":{"scriptSrc":"16078635cc6cc59f/script.js","viewEndpoint":"16078635cc6cc59f/view","eventEndpoint":"16078635cc6cc59f/event","sessionEndpoint":"16078635cc6cc59f/session"},"speedInsights":{"scriptSrc":"e1535923abd2264b/script.js","endpoint":"e1535923abd2264b/vitals"}}'}catch{}}customElements.define("vercel-analytics",class extends HTMLElement{constructor(){super();try{const i=JSON.parse(this.dataset.props??"{}"),n=JSON.parse(this.dataset.params??"{}");k({...i,disableAutoTrack:!0,framework:"astro",basePath:A(),beforeSend:window.webAnalyticsBeforeSend},j());const t=this.dataset.pathname;$({route:m(t??"",n),path:t})}catch(i){throw new Error(`Failed to parse WebAnalytics properties: ${i}`)}}});</script>
787 <vercel-speed-insights data-props="{}" data-params="{}" data-pathname="/fr/solutions/etudes-geomarketing"></vercel-speed-insights>
787<script type="module">var f=()=>{window.si||(window.si=function(...r){window.siq=window.siq||[],window.siq.push(r)})},l="@vercel/speed-insights",h="2.0.0";function v(){return typeof window<"u"}function g(){try{const e="production"}catch{}return"production"}function u(){return g()==="development"}function w(e,r){if(!e||!r)return e;let s=e;try{const t=Object.entries(r);for(const[n,c]of t)if(!Array.isArray(c)){const i=d(c);i.test(s)&&(s=s.replace(i,`/[${n}]`))}for(const[n,c]of t)if(Array.isArray(c)){const i=d(c.join("/"));i.test(s)&&(s=s.replace(i,`/[...${n}]`))}return s}catch{return e}}function d(e){return new RegExp(`/${m(e)}(?=[/?#]|$)`)}function m(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function b(e){return e.scriptSrc?o(e.scriptSrc):u()?"https://va.vercel-scripts.com/v1/speed-insights/script.debug.js":e.dsn?"https://va.vercel-scripts.com/v1/speed-insights/script.js":e.basePath?o(`${e.basePath}/speed-insights/script.js`):"/_vercel/speed-insights/script.js"}function S(e,r){var s;let t=e;if(r)try{t={...(s=JSON.parse(r))==null?void 0:s.speedInsights,...e}}catch{}const n={sdkn:l+(t.framework?`/${t.framework}`:""),sdkv:h};return t.sampleRate&&(n.sampleRate=t.sampleRate.toString()),t.route&&(n.route=t.route),u()&&t.debug===!1&&(n.debug="false"),t.dsn&&(n.dsn=t.dsn),t.endpoint?n.endpoint=o(t.endpoint):t.basePath&&(n.endpoint=o(`${t.basePath}/speed-insights/vitals`)),{src:b(t),beforeSend:t.beforeSend,dataset:n}}function o(e){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?e:`/${e}`}function y(e={},r){var s;if(!v()||e.route===null)return null;f();const{beforeSend:t,src:n,dataset:c}=S(e,r);if(document.head.querySelector(`script[src*="${n}"]`))return null;t&&((s=window.si)==null||s.call(window,"beforeSend",t));const i=document.createElement("script");i.src=n,i.defer=!0;for(const[a,p]of Object.entries(c))i.dataset[a]=p;return i.onerror=()=>{console.log(`[Vercel Speed Insights] Failed to load script from ${n}. Please check if any content blockers are enabled and try again.`)},document.head.appendChild(i),{setRoute:a=>{i.dataset.route=a??void 0}}}function $(){try{return}catch{}}function k(){try{return'{"analytics":{"scriptSrc":"16078635cc6cc59f/script.js","viewEndpoint":"16078635cc6cc59f/view","eventEndpoint":"16078635cc6cc59f/event","sessionEndpoint":"16078635cc6cc59f/session"},"speedInsights":{"scriptSrc":"e1535923abd2264b/script.js","endpoint":"e1535923abd2264b/vitals"}}'}catch{return}}customElements.define("vercel-speed-insights",class extends HTMLElement{constructor(){super();try{const r=JSON.parse(this.dataset.props??"{}"),s=JSON.parse(this.dataset.params??"{}"),t=w(this.dataset.pathname??"",s);y({route:t,...r,framework:"astro",basePath:$(),beforeSend:window.speedInsightsBeforeSend},k())}catch(r){throw new Error(`Failed to parse SpeedInsights properties: ${r}`)}}});</script>
787
787<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"48e21d6e9d144c6faa0206b8733d3d4b","r":1,"spa":2}' crossorigin="anonymous"></script>
787 788</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.