PageSourceSearch

https://sad-marketing.com/fr/solutions/etudes-geomarketing

html sad-marketing.com collected 2026-10-06 18:11:20 UTC 236,454 bytes, 788 lines download raw bytes

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&#39;é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 &#38; 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 &#38; 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 &#38; 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&#39;implanter à l&#39;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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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é &amp; 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 &amp; 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 &amp; 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&#39;é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&#39;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&#39;é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&nbsp;h.</span> </h2> <p class="text-sm text-brand-accent-dim leading-relaxed mb-6">
714Décrivez votre zone d&#39;implantation en une phrase. Sous 48&nbsp;h ouvrées, un consultant senior vous répond par email avec&nbsp;:
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&#39;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 &amp; 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.&nbsp;: «&nbsp;Ouverture d'une boulangerie à Annecy, 2 emplacements à départager.&nbsp;»</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&nbsp;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&nbsp;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 &amp; 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 &amp; 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é &amp; 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&#39;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&#39;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&#39;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 &amp; cannibalisation</h3><p class="text-brand-accent-dim text-sm leading-relaxed mb-6">Jusqu&#39;à 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&#39;est-ce qu&#39;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&#39;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&#39;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&#39;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&#39;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&#39;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&#39;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&#39;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&#39;étude, surface, localisation : quelques minutes d&#39;é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 &amp; 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&#39;accepte d&#39;ê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 &lt; 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&#39;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&#39;expertise géomarketing. Une nouvelle génération d&#39;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&#39;implanter à l&#39;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 &amp; 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&#39;implanter à l&#39;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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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é &amp; 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 &amp; 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&#39;agence, l&#39;é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.