1 2 3<!DOCTYPE html> 4<html lang="fr" class="no-js"> 5<head> 6
6<script> 7 window.dataLayer = window.dataLayer || []; 8 function gtag() { dataLayer.push(arguments); } 9 gtag('consent', 'default', { 10 'ad_storage': 'denied', 11 'ad_user_data': 'denied', 12 'ad_personalization': 'denied', 13 'analytics_storage': 'denied', 14 'wait_for_update': 2000 15 }); 16 </script>
16 17
17<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4530445791334044" 18 crossorigin="anonymous"></script>
18 19
19<script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
19 20
20<script> 21 window.googletag = window.googletag || { cmd: [] }; 22 // enableServices() MUST run before any _AdSlot partial calls googletag.display(). The 23 // ad-slot partials are scattered through <body> and each does defineSlot -> addService 24 // -> display; if services aren't enabled yet when display() runs, GPT never fetches 25 // those slots (and they can't even be refresh()-ed afterwards). This exact ordering bug 26 // blocked ALL of COTH's ads for a long time before being root-caused - enabling pubads 27 // here in <head> guarantees it happens first, avoid re-discovering that bug here. 28 // Targeting is set in the same queued call, before enableServices(), so it's already in 29 // place before any slot's ad request can go out. 30 googletag.cmd.push(function () { 31 googletag.enableServices(); 32 }); 33 </script>
33 34
34<script> 35 (function () { 36 function applyConsent(tcData) { 37 var storageGranted = !tcData.gdprApplies || 38 (tcData.purpose && tcData.purpose.consents && tcData.purpose.consents[1] === true); 39 40 gtag('consent', 'update', { 41 'analytics_storage': storageGranted ? 'granted' : 'denied' 42 }); 43 44 window.dataLayer.push({ 45 'event': 'gpi_consent_update', 46 'analytics_storage': storageGranted ? 'granted' : 'denied' 47 }); 48 } 49 50 function tcfListener(tcData, success) { 51 if (success && (tcData.eventStatus === 'tcloaded' || tcData.eventStatus === 'useractioncomplete')) { 52 applyConsent(tcData); 53 } 54 } 55 56 // adsbygoogle.js loads async, so __tcfapi isn't defined synchronously here yet; 57 // poll briefly until the CMP exposes it, then hook the listener. 58 var attempts = 0; 59 (function waitForTcfApi() { 60 if (typeof window.__tcfapi === 'function') { 61 window.__tcfapi('addEventListener', 2, tcfListener); 62 } else if (attempts++ < 50) { 63 setTimeout(waitForTcfApi, 200); 64 } 65 })(); 66 })(); 67 </script>
67 68 69 <!-- Meta tags --> 70 <meta charset="utf-8"> 71 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 72 <title>GRANDPRIX INFO - CONTACTS</title> 73 74 <meta name="description" /> 75 76 77 78 <meta name="google-adsense-account" content="ca-pub-4530445791334044"> 79 <meta property="og:type" content="website" /> 80 <meta property="og:title" /> 81 <meta property="og:description" /> 82 <meta property="og:url" content="https://grandprix.info/fr/Contact/" /> 83 <meta property="og:locale" content="fr" /> 84 <meta property="fb:app_id" content="268630543804809" /> 85 86 <meta property="al:ios:app_store_id" content="1501487048"> 87 <meta property="al:ios:app_name" content="Grandprix.INFO, l'info equestre en continue"> 88 89 <link rel="canonical" href="https://grandprix.info/fr/Contact/" /> 90 91 <!-- Bootstrap, Font Awesome, Aminate, Owl Carausel, Normalize CSS --> 92 <link href="/css/bootstrap.min.css" rel="stylesheet" type="text/css" media="all" onload="this.media='all'; this.onload=null;" /> 93 <link href="/css/fontawesome/css/all.min.css" rel="stylesheet" type="text/css" /> 94 <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet" type="text/css" /> 95 <link href="/css/animate.min.css" rel="stylesheet" type="text/css" /> 96 <link href="/css/owl.carousel.min.css" rel="stylesheet" type="text/css" /> 97 <link href="/css/owl.theme.default.min.css" rel="stylesheet" type="text/css" /> 98 <link href="/css/normalize.min.css" rel="stylesheet" type="text/css" /> 99 <link href="/css/slicknav.min.css" rel="stylesheet" type="text/css" /> 100 101 <!-- Devextreme--> 102 <!-- jQuery 3 --> 103
103<script async src="/js/jquery/jquery.min.js" type="text/javascript"></script>
103 104 105 <!-- MEdia Elements--> 106 <!-- Site CSS --> 107 108 <link href="/css/main.min.css?v=v1.9t" rel="stylesheet" type="text/css" /> 109 <link href="/css/site.min.css?v=v1.9t" rel="stylesheet" type="text/css" /> 110 <link href="/css/responsive.min.css?v=v1.9t" rel="stylesheet" type="text/css" /> 111 112 <!-- Modernizr JS --> 113
113<script rel="preload" src="/js/modernizr-3.5.0.min.js" type="text/javascript"></script>
113 114 115 <!--favincon--> 116 <link rel="apple-touch-icon" sizes="57x57" href="/images/favicon/apple-icon-57x57.png"> 117 <link rel="apple-touch-icon" sizes="60x60" href="/images/favicon/apple-icon-60x60.png"> 118 <link rel="apple-touch-icon" sizes="72x72" href="/images/favicon/apple-icon-72x72.png"> 119 <link rel="apple-touch-icon" sizes="76x76" href="/images/favicon/apple-icon-76x76.png"> 120 <link rel="apple-touch-icon" sizes="76x76" href="/images/favicon/apple-icon-76x76.png"> 121 <link rel="apple-touch-icon" sizes="114x114" href="/images/favicon/apple-icon-114x114.png"> 122 <link rel="apple-touch-icon" sizes="120x120" href="/images/favicon/apple-icon-120x120.png"> 123 <link rel="apple-touch-icon" sizes="144x144" href="/images/favicon/apple-icon-144x144.png"> 124 <link rel="apple-touch-icon" sizes="152x152" href="/images/favicon/apple-icon-152x152.png"> 125 <link rel="apple-touch-icon" sizes="180x180" href="/images/favicon/apple-icon-180x180.png"> 126 127 <meta name="msapplication-TileColor" content="#ffffff"> 128 <meta name="msapplication-TileImage" content="/images/favicon/ms-icon-144x144.png"> 129 <meta name="theme-color" content="#ffffff"> 130 <!-- Google fonts --> 131 <link href="https://fonts.googleapis.com/css?family=IBM+Plex+Serif:300,400,500&display=swap" rel="stylesheet" media="all" onload="this.media='all'; this.onload=null;"> 132 <link href="https://fonts.googleapis.com/css?family=Playfair+Display&display=swap" rel="stylesheet"> 133 134 <!-- Matomo --> 135
135<script type="text/javascript"> 136 var _paq = window._paq || []; 137 /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ 138 _paq.push(['trackPageView']); 139 _paq.push(['enableLinkTracking']); 140 (function () { 141 var u = "//matomo.lpgs.io/"; 142 _paq.push(['setTrackerUrl', u + 'matomo.php']); 143 _paq.push(['setSiteId', '1']); 144 var d = document, g = d.createElement('script'), s = d.getElementsByTagName('script')[0]; 145 g.type = 'text/javascript'; g.async = true; g.defer = true; g.src = u + 'matomo.js'; s.parentNode.insertBefore(g, s); 146 })(); 147 </script>
147 148 149 <!-- Google Tag Manager --> 150
150<script>
vendor: 495 bytes, lines 150-158
150 151 (function (w, d, s, l, i) { 152 w[l] = w[l] || []; w[l].push({ 153 'gtm.start': 154 new Date().getTime(), event: 'gtm.js' 155 }); var f = d.getElementsByTagName(s)[0], 156 j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 157 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); 158 })(window, document, 'script', 'dataLayer', '
158GTM-NDMHB6QK
vendor: 3 bytes, line 158
158');
158</script>
158 159 <!-- End Google Tag Manager --> 160 161 <!-- Facebook Pixel Code --> 162
162<script type="text/javascript">
vendor: 607 bytes, lines 162-174
162 163 !function (f, b, e, v, n, t, s) { 164 if (f.fbq) return; n = f.fbq = function () { 165 n.callMethod ? 166 n.callMethod.apply(n, arguments) : n.queue.push(arguments) 167 }; 168 if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0'; 169 n.queue = []; t = b.createElement(e); t.async = !0; 170 t.src = v; s = b.getElementsByTagName(e)[0]; 171 s.parentNode.insertBefore(t, s) 172 }(window, document, 'script', 173 'https://connect.facebook.net/en_US/fbevents.js'); 174 fbq('init', '
174311413246387797
vendor: 44 bytes, lines 174-176
174'); 175 fbq('track', 'PageView'); 176
176</script>
176 177 <noscript> 178 <img height="1" width="1" style="display:none" 179 data-src="https://www.facebook.com/tr?id=311413246387797&ev=PageView&noscript=1" alt="facebook" loading="lazy" class="lazyload" /> 180 </noscript> 181 182 <!-- End Facebook Pixel Code --> 183 <!-- End Matomo Code --> 184 <!-- Splash: True) --> 185 <!-- dateFirstSeen: 02/10/2026 09:56:02) --> 186 <!-- SessionExists: False) --> 187 <style> 188 .env-banner { 189 width: 100%; 190 background: blanchedalmond; 191 color: orangered; 192 text-align: center; 193 padding: 6px; 194 font-weight: bold; 195 z-index: 9999; 196 } 197 </style> 198</head> 199<body> 200 <!-- Google Tag Manager (noscript) -->
vendor: 83 bytes, lines 200-202
200 201 <noscript> 202 <iframe src="https://www.googletagmanager.com/ns.html?id=
202GTM-NWGX43L6
vendor: 111 bytes, lines 202-205
202" 203 height="0" width="0" style="display:none;visibility:hidden"></iframe> 204 </noscript> 205
205<!-- End Google Tag Manager (noscript) --> 206 <style type="text/css"> 207 #wMDhdfLEuRQF { 208 display: none; 209 margin-bottom: 30px; 210 padding: 20px 10px; 211 background: #D30000; 212 text-align: center; 213 font-weight: bold; 214 color: #fff; 215 border-radius: 5px; 216 } 217 </style> 218 219 <div id="wMDhdfLEuRQF"> 220 Notre site web utilise la publicite pour se financer. Soutenez nous en desactivant votre bloqueur de publicite. Merci ! 221 </div> 222 223 224 <div id="wrapper"> 225 <div id="page-ad-wrapper"> 226 <div class="page-ad-content"> 227 <div id="page-content-wrapper"> 228 <div class="container-fluid"> 229 <div class="container"> 230 <div class="top_bar margin-15"> 231 <div class="row"> 232 <div class="col-md-6 col-sm-12 time"> 233 234 235 236 </div> 237 <div class="col-md-6 col-sm-12 social"> 238 <div class="account"> 239 <a class="btn btn-light" href="/fr/login/?returnurl=%2Ffr%2FContact%2F">S'identifier</a> 240 </div> 241 <ul> 242 <li><a href="https://www.facebook.com/grandprix.info" target="_blank"><i class="fab fa-facebook-f"></i></a></li> 243 <li><a href="https://www.linkedin.com/company/10589876" target="_blank"><i class="fab fa-linkedin-in"></i></a></li> 244 <li><a href="https://www.instagram.com/grandprixmedias/" target="_blank"><i class="fab fa-instagram"></i></a></li> 245 <li><a href="https://www.pinterest.com/GRANDPRIXStyleofficiel" target="_blank"><i class="fab fa-pinterest"></i></a></li> 246 <li><a href="https://www.tiktok.com/@grandprixmedias" target="_blank"><i class="fab fa-tiktok"></i></a></li> 247 </ul> 248 249 250 <div class="top-search"> 251 <a href="/fr/search/"> 252 <i class="fa fa-search"></i><span>RECHERCHER</span> 253 </a> 254 </div> 255 256 257 258 259 </div> 260 </div> 261 </div> 262 </div> 263 </div> 264 265 <div class="container-fluid"> 266 <div class="container"> 267 <div class="row"> 268 <div class="col-12 col-md-12 header"> 269 <div class="col-md-3 col-3 top_left_logo"> 270 271 <div id="lemag-top"> 272 <figure class="alith_post_thumb_big"> 273 <a href="https://abo.grandprix.info/GPM" target="_blank"><img data-src="https://s3.lpgs.io/gp-abo-images/media-abo-3939.png" alt="abo-media" loading="lazy" class="lazyload" /></a> 274 </figure> 275 <div class="alith_tags_all text-center sabnor_button"> 276 <a href="https://abo.grandprix.info/GPM" class="btn btn-danger" target="_blank">S'abonner</a> 277 </div> 278 </div> 279 </div> 280 <div class="col-6 col-md-6 main_logo"> 281 <div class="logo"><a href="/fr/"><img src="/images/logo.svg" alt="logo" /></a></div> 282 </div> 283 <div class="col-md-3 col-3 subscribe_header_link"> 284 </div> 285 </div> 286 </div> 287 </div> 288 </div> 289 <br /> 290 291 292 <div class="container-fluid"> 293 <div class="container"> 294 <!-- BEGIN AD--> 295 <div class="advertisement text-center"> 296 <div id="div-gpt-ad-20-2695b413a59846e99d51986a4c4cd98a" class="gpt-ad"></div> 297
297<script> 298 googletag.cmd.push(function () { 299 var el = document.getElementById('div-gpt-ad-20-2695b413a59846e99d51986a4c4cd98a'); 300 // Many _AdSlot calls sit inside a .mobile-only/.desktop-only wrapper that CSS hides 301 // at the current viewport - skip entirely if any ancestor up to <body> is display:none, 302 // same guard as COTH's _AdSlot.cshtml (avoids firing a wasted ad request into a 303 // container nobody can see). 304 var node = el; 305 while (node && node !== document.body) { 306 if (window.getComputedStyle(node).display === 'none') return; 307 node = node.parentElement; 308 } 309 // [[largeurMini, "codeBloc", [[l,h], ...]], ...] du plus large au plus etroit 310 var placements = [[768,"23365888646",[[1000,200]]],[0,"23365888649",[[500,300]]]]; 311 var viewportWidth = document.documentElement.clientWidth; 312 var chosen = placements[placements.length - 1]; 313 for (var p = 0; p < placements.length; p++) { 314 if (viewportWidth >= placements[p][0]) { chosen = placements[p]; break; } 315 } 316 var sizes = chosen[2]; 317 // An iframe has no intrinsic aspect ratio CSS can compute from its width/height 318 // attributes (unlike <img>), so plain height:auto falls back to the browser's 150px 319 // default - this bit COTH on every single zone until the fix was applied everywhere 320 // from the start. The ratio comes from the placement actually in play, so a phone never 321 // reserves space sized for a desktop creative - CSS dependency: 322 // .gpt-ad > div, .gpt-ad iframe { height: 100% } in site.css. 323 el.style.aspectRatio = sizes[0][0] + ' / ' + sizes[0][1]; 324 var slot = googletag.defineSlot('/23359592690/ca-pub-4530445791334044/23366237955/' + chosen[1], sizes, 'div-gpt-ad-20-2695b413a59846e99d51986a4c4cd98a'); 325 if (!slot) { return; } 326 slot.addService(googletag.pubads()); 327 // Le ratio ci-dessus n'est qu'une RESERVATION faite avant de savoir ce que GAM va 328 // servir : il vient de la premiere taille du placement. Quand une zone en declare 329 // plusieurs, le crea rendu a souvent un autre format - zone 5 reserve 728x90 alors que 330 // la campagne desktop est trafiquee en 330x130 - et l'iframe, forcee en width/height 331 // 100 % par site.css, se retrouve etiree dans une boite trop large et trop courte : le 332 // visuel est rogne en hauteur. On corrige donc la boite avec la taille reellement 333 // servie, que GPT donne dans slotRenderEnded, et on plafonne la largeur a celle du crea 334 // pour ne pas etirer un 330x130 sur toute la colonne. 335 googletag.pubads().addEventListener('slotRenderEnded', function (event) { 336 if (event.slot !== slot) { return; } 337 if (event.isEmpty) { 338 // Rien a afficher : on replie la boite au lieu de laisser un trou de la 339 // hauteur reservee. 340 el.style.aspectRatio = 'auto'; 341 el.style.height = '0'; 342 return; 343 } 344 var served = event.size; 345 if (served && typeof served.length === 'number' && served.length === 2 346 && served[0] && served[1]) { 347 el.style.aspectRatio = served[0] + ' / ' + served[1]; 348 el.style.maxWidth = served[0] + 'px'; 349 } 350 }); 351 googletag.display('div-gpt-ad-20-2695b413a59846e99d51986a4c4cd98a'); 352 }); 353 </script>
353 354 355 356 <!-- Revive Adserver Javascript Tag - Generated with Revive Adserver v5.4.1 --> 357 358 359 </div> 360 <!-- END AD--> 361 </div> 362 </div> 363 <div class="main-nav section_margin"> 364 <div class="container-fluid"> 365 <div class="container"> 366 <div class="row"> 367 <div class="col-12 col-md-12 main_nav_cover" id="nav"> 368 369 <ul id="main-menu"> 370 <li class="menu-item-has-children"> 371 <a href="/fr">ACTU</a> 372 373 <ul class="sub-menu"> 374 <li><a href="/fr/category/1/JUMPING/">JUMPING</a></li> 375 <li><a href="/fr/category/3/COMPLET/">COMPLET</a></li> 376 <li><a href="/fr/category/2/DRESSAGE/">DRESSAGE</a></li> 377 <li><a href="/fr/category/5/GENERAL/">GÉNÉRAL</a></li> 378 <li><a href="/fr/category/122/BIENETRE/">BIEN-ÊTRE</a></li> 379 <li><a href="/fr/category/4/ELEVAGE/">ÉLEVAGE</a></li> 380 <li><a href="/fr/category/11/ENDURANCE/">ENDURANCE</a></li> 381 <li><a href="/fr/category/7/JEUNES/">JEUNES</a></li> 382 <li><a href="/fr/category/174/AIX-2026/">AIX 2026</a></li> 383 <li><a href="/fr/category/0/ATTELAGE/">ATTELAGE</a></li> 384 <li><a href="/fr/category/9/VOLTIGE/">VOLTIGE</a></li> 385 <li><a href="/fr/category/10/REINING/">REINING</a></li> 386 <li><a href="/fr/category/20/INNOVATION/">INNOVATION</a></li> 387 <li><a href="/fr/category/118/EN-DIRECT/">EN DIRECT</a></li> 388 <li><a href="/fr/category/135/PARIS-2024/">PARIS 2024</a></li> 389 </ul> 390 </li> 391 <li><a href="/fr/category/18/STYLE/">STYLE</a></li> 392 <li><a target="_blank" href="https://grandprix.info/fr/s/podcasts">PODCASTS</a></li> 393 <li class="menu-item-has-children"> 394 <a href="#">SERVICES</a> 395 396 <ul class="sub-menu"> 397 <li><a href="/fr/category/17/VENTES-DE-CHEVAUX/">VENTES DE CHEVAUX</a></li> 398 <li><a href="/fr/category/21/FORMATIONS/">FORMATIONS</a></li> 399 <li><a href="/fr/category/25/IMMOBILIER/">IMMOBILIER</a></li> 400 <li><a href="/fr/category/13/SPONSORISE/">SPONSORISÉ</a></li> 401 <li><a target="_blank" href="https://grandprix.info/fr/s/newslettergpi">NEWSLETTER</a></li> 402 <li><a href="/fr/category/121/OFFRES-DEMPLOI/">OFFRES D’EMPLOI</a></li> 403 </ul> 404 </li> 405 406 <li class="menu-item-has-children"> 407 <a href="/fr/videos/">VIDEOS</a> 408 <ul class="sub-menu"> 409 <li><a href="/fr/video/category/14/SORTIE-DE-PISTE/">SORTIE DE PISTE </a></li> 410 <li><a href="/fr/video/category/15/SERIES/">SERIES</a></li> 411 <li><a href="/fr/video/category/4/DUELS/">DUELS</a></li> 412 <li><a href="/fr/video/category/1/REPLAY/">REPLAY</a></li> 413 <li><a href="/fr/video/category/13/ACTU/">ACTU</a></li> 414 <li><a href="/fr/video/category/11/LES-ETALONS-DU-GFE/">LES ETALONS DU GFE</a></li> 415 <li>
415<a href="/fr/video/category/17/SPONSORISE/">SPONSORISE</a></li> 416 <li><a href="/fr/video/category/96/PARIS-2024/">PARIS 2024</a></li> 417 <li><a href="/fr/video/category/98/ALIMENTATION-BY-LAMBEY/">ALIMENTATION BY LAMBEY </a></li> 418 <li><a href="/fr/video/category/99/PAROLES-DE-CHAMPIONS-PAR-ROYAL-HORSE/">PAROLES DE CHAMPIONS, PAR ROYAL HORSE</a></li> 419 </ul> 420 </li> 421 422 <li><a href="/fr/live/">LIVE</a></li> 423 </ul> 424 </div> 425 </div> 426 </div> 427 </div> 428 </div> 429 430 431 <div class="body_content_wrapper"> 432 <div class="magzine_bg_wrapper"> 433 <div class="container"> 434 <div class="subscription_form"> 435 <p style="color: rgb(0, 0, 0); line-height: 14.7pt; outline: 0px; caret-color: rgb(22, 33, 44);"><span style="font-size: 10.5pt; font-family: Helvetica; color: rgb(22, 33, 44);">GRANDPRIX.info <br></span><span style="font-size: 10.5pt; font-family: Helvetica; color: rgb(22, 33, 44);">Numéro CPPAP : 0224 K 89733</span><span style="font-size: 10.5pt; font-family: Helvetica; color: rgb(22, 33, 44);"><br>Numéro TVA : FR 89 498 023 084</span></p><p style="color: rgb(0, 0, 0); line-height: 14.7pt; outline: 0px; caret-color: rgb(22, 33, 44);"><span style="font-size: 10.5pt; font-family: Helvetica; color: rgb(22, 33, 44);">Editeur </span><span lang="FR" style="font-size: 10.5pt; font-family: Helvetica; color: rgb(22, 33, 44);">GRANDPRIX GROUP</span><span style="font-size: 10.5pt; font-family: Helvetica; color: rgb(22, 33, 44);"> </span><span style="font-size: 10.5pt; font-family: Helvetica; color: rgb(22, 33, 44);"><br>Société </span><span lang="FR" style="font-size: 10.5pt; font-family: Helvetica; color: rgb(22, 33, 44);">par actions simplifiés</span><span style="font-size: 10.5pt; font-family: Helvetica; color: rgb(22, 33, 44);"> </span><span style="font-size: 10.5pt; font-family: Helvetica; color: rgb(22, 33, 44);"><br>Au capital de 23 219.80</span><span style="font-size: 10.5pt; font-family: Helvetica; color: rgb(22, 33, 44);"> </span><span style="font-size: 10.5pt; font-family: Helvetica; color: rgb(22, 33, 44);">euros <br>Immatriculée au RCS de NANTERRE</span><span style="font-size: 10.5pt; font-family: Helvetica; color: rgb(22, 33, 44);"> sous le n° B 498 023 084</span><span style="font-size: 10.5pt; font-family: Helvetica; color: rgb(22, 33, 44);"><br>Dont le siège social est situé </span><span lang="FR" style="font-size: 10.5pt; font-family: Helvetica; color: rgb(22, 33, 44);">48 rue lehot, 92600 Asnières sur Seine, France</span></p><p style="color: rgb(0, 0, 0); line-height: 14.7pt; outline: 0px; caret-color: rgb(22, 33, 44);"><span style="font-size: 10.5pt; font-family: Helvetica; color: rgb(22, 33, 44);">Directeur de la publication <br></span><span lang="FR" style="font-size: 10.5pt; font-family: Helvetica; color: rgb(22, 33, 44);">Vincent Goehrs</span></p><p style="color: rgb(0, 0, 0); line-height: 14.7pt; outline: 0px; caret-color: rgb(22, 33, 44);"><span style="font-size: 10.5pt; font-family: Helvetica; color: rgb(22, 33, 44);">Téléphone : </span><span lang="FR" style="font-size: 10.5pt; font-family: Helvetica; color: rgb(22, 33, 44);">0033 1 57 67 68 68</span><span style="font-size: 10.5pt; font-family: Helvetica; color: rgb(22, 33, 44);"> </span><span style="font-size: 10.5pt; font-family: Helvetica; color: rgb(22, 33, 44);"><br>Pour nous contacter : </span><span lang="FR" style="font-size: 10.5pt; font-family: Helvetica; color: rgb(22, 33, 44);"><a href="/cdn-cgi/l/email-protection#4a2925243e2b293e0a2d382b242e3a3823322d38253f3a64292527" style="color: rgb(5, 99, 193); text-decoration: underline;" title="mailto:[email protected]"><span class="__cf_email__" data-cfemail="761519180217150236110417181206041f0e11041903065815191b">[email protected]</span></a></span></p><p style="line-height: 14.7pt; outline: 0px;"><span style="color: rgb(22, 33, 44); caret-color: rgb(22, 33, 44); font-size: 10.5pt; font-family: Helvetica;">Hébergeur : LPG </span><span style="background-color: transparent; caret-color: rgb(22, 33, 44);"><font color="#16212c" face="Helvetica">SERVICES</font></span><span style="color: rgb(22, 33, 44); caret-color: rgb(22, 33, 44); font-size: 10.5pt; font-family: Helvetica;"><br></span></p> 436 </div> 437 </div> 438 </div> 439 </div> 440 441 442 <div class="container-fluid alith_footer_right_reserved"> 443 <div class="container"> 444 <div class="row"> 445 <div class="col-12 col-md-12 bottom-logo"> 446 <div class="logo"><a href="/fr/"><img src="/images/logo.jpg" width="220" alt="logo" /></a></div> 447 <small>02/10/2026 09:56</small> 448 <div class="tagline social"> 449 <ul> 450 <li class="facebook"><a href="https://www.facebook.com/grandprix.info"><i class="fab fa-facebook-f"></i></a></li> 451 <li class="google-plus"><a href="https://www.linkedin.com/company/10589876"><i class="fab fa-linkedin"></i></a></li> 452 <li class="google-plus"><a href="https://www.pinterest.com/GRANDPRIXStyleofficiel"><i class="fab fa-pinterest"></i></a></li> 453 <li class="instagram"><a href="https://www.instagram.com/grandprixmedias/"><i class="fab fa-instagram"></i></a></li> 454 <li class="tiktok"><a href="https://www.tiktok.com/grandprixmedias" target="_blank"><i class="fab fa-tiktok"></i></a></li> 455 </ul> 456 </div> 457 </div> 458 <div class="col-12 col-md-12 coppyright"> 459 <p> 460 © 2026, All rights reserved. - <a href="/fr/RGPD/">Politique de confidentialité</a> 461 - <a href="/fr/Contact/"> 462 Contact 463 </a> 464 - <a href="/fr/CGU/">CGU</a> 465 </p> 466 </div> 467 </div> 468 </div> 469 </div> 470 471 <div class="gototop js-top"> 472 <a href="#" class="js-gotop"><span>Take Me Top</span></a> 473 </div> 474 </div> 475 </div> 476 </div> <!--page-content-wrapper-->
vendor: 120 bytes, lines 476-478
476 477 478 <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
478<script rel="preconnect" src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js" type="text/javascript"></script>
478 479
479<script rel="prefetch" src="/js/owl.carousel.min.js" type="text/javascript"></script>
479 480
480<script rel="preload" src="/js/jquery.waypoints.min.js" type="text/javascript"></script>
480 481
481<script rel="preload" src="/js/jquery.slicknav.min.js" type="text/javascript"></script>
481 482
482<script rel="preload" src="/js/masonry.pkgd.min.js" type="text/javascript"></script>
482 483 484
484<script rel="prefetch" src="/js/main.js?v=2" type="text/javascript"></script>
484 485
485<script rel="preload" src="/js/smart-sticky.min.js?v=v1.9t" type="text/javascript"></script>
485 486
486<script rel="preload" src="/js/theia-sticky-sidebar.min.js" type="text/javascript"></script>
486 487
487<script type="text/javascript"> 488 jQuery('#something').click(function () { 489 location.reload(); 490 }) 491 492 </script>
492 493
493<script rel="preload" src="/js/live-gptv-results.js"></script>
493 494 495 </div> <!--#wrapper--> 496 497 498
498<script src="/js/ads.js" type="text/javascript"></script>
498 499 500
500<script type="text/javascript"> 501 502 if (!document.getElementById('ysPUNDEQirdW')) { 503 document.getElementById('wMDhdfLEuRQF').style.display = 'block'; 504 } 505 506 </script>
506 507 508
508<script src="/js/third-party-refernce.min.js" type="text/javascript"></script>
508 509 510 511<style> 512 /* The creative is sized from the size GPT reports in slotRenderEnded (see the script below), 513 so these rules only position and clip the container - everything dimensional is set inline 514 by that script. 515 516 The three overrides all exist to stop the site-wide "fit the ad to its column" sizing from 517 applying to a full-screen overlay, where the ad IS the layout: 518 - .splash-content is 70% of the viewport in main.css, sized for an in-page column; the 519 overlay box has to follow the creative instead, or the flex centering on .splash 520 centres the wrong box; 521 - .gpt-ad max-width:100% (site.css) clamps the container to that 70% and, since the 522 container clips, silently crops the right-hand side of the ad (a 764px creative was 523 cut to 535px before this rule); 524 - .gpt-ad iframe max-width:100% (site.css) would do the same to the iframe, which is 525 deliberately kept at the creative's natural pixel size and scaled with a transform. 526 Plain id-scoped selectors are enough to win on specificity here - no !important needed. */ 527 #splash-7d0efc0b04b4490b9b80750744f8f88b .splash-content { 528 width: auto; 529 } 530 531 #splash-7d0efc0b04b4490b9b80750744f8f88b .gpt-ad { 532 position: relative; 533 overflow: hidden; 534 max-width: none; 535 } 536 537 #splash-7d0efc0b04b4490b9b80750744f8f88b .gpt-ad iframe { 538 position: absolute; 539 top: 0; 540 left: 0; 541 transform-origin: top left; 542 max-width: none; 543 } 544</style> 545<!-- splashscreen ad --> 546<div class="splash" id="splash-7d0efc0b04b4490b9b80750744f8f88b" style="visibility: hidden; pointer-events: none; overflow: hidden;"> 547 <div id="splash-wrap"> 548 <div class="splash-header"><a href="#" class="splash-popup--close">Continuer vers GRANDPRIX</a></div> 549 <center> 550 <div class="splash-content"> 551 <div id="div-gpt-ad-16-b40e7d6beec34162aaa39cad16b4784b" class="gpt-ad"></div> 552
552<script> 553 googletag.cmd.push(function () { 554 var el = document.getElementById('div-gpt-ad-16-b40e7d6beec34162aaa39cad16b4784b'); 555 // Many _AdSlot calls sit inside a .mobile-only/.desktop-only wrapper that CSS hides 556 // at the current viewport - skip entirely if any ancestor up to <body> is display:none, 557 // same guard as COTH's _AdSlot.cshtml (avoids firing a wasted ad request into a 558 // container nobody can see). 559 var node = el; 560 while (node && node !== document.body) { 561 if (window.getComputedStyle(node).display === 'none') return; 562 node = node.parentElement; 563 } 564 // [[largeurMini, "codeBloc", [[l,h], ...]], ...] du plus large au plus etroit 565 var placements = [[1024,"23365888643",[[1000,600]]],[768,"23365888644",[[768,1024]]],[0,"23365888645",[[550,942],[390,668],[384,657]]]]; 566 var viewportWidth = document.documentElement.clientWidth; 567 var chosen = placements[placements.length - 1]; 568 for (var p = 0; p < placements.length; p++) { 569 if (viewportWidth >= placements[p][0]) { chosen = placements[p]; break; } 570 } 571 var sizes = chosen[2]; 572 // An iframe has no intrinsic aspect ratio CSS can compute from its width/height 573 // attributes (unlike <img>), so plain height:auto falls back to the browser's 150px 574 // default - this bit COTH on every single zone until the fix was applied everywhere 575 // from the start. The ratio comes from the placement actually in play, so a phone never 576 // reserves space sized for a desktop creative - CSS dependency: 577 // .gpt-ad > div, .gpt-ad iframe { height: 100% } in site.css. 578 el.style.aspectRatio = sizes[0][0] + ' / ' + sizes[0][1]; 579 var slot = googletag.defineSlot('/23359592690/ca-pub-4530445791334044/23366237955/' + chosen[1], sizes, 'div-gpt-ad-16-b40e7d6beec34162aaa39cad16b4784b'); 580 if (!slot) { return; } 581 slot.addService(googletag.pubads()); 582 // Le ratio ci-dessus n'est qu'une RESERVATION faite avant de savoir ce que GAM va 583 // servir : il vient de la premiere taille du placement. Quand une zone en declare 584 // plusieurs, le crea rendu a souvent un autre format - zone 5 reserve 728x90 alors que 585 // la campagne desktop est trafiquee en 330x130 - et l'iframe, forcee en width/height 586 // 100 % par site.css, se retrouve etiree dans une boite trop large et trop courte : le 587 // visuel est rogne en hauteur. On corrige donc la boite avec la taille reellement 588 // servie, que GPT donne dans slotRenderEnded, et on plafonne la largeur a celle du crea 589 // pour ne pas etirer un 330x130 sur toute la colonne. 590 googletag.pubads().addEventListener('slotRenderEnded', function (event) { 591 if (event.slot !== slot) { return; } 592 if (event.isEmpty) { 593 // Rien a afficher : on replie la boite au lieu de laisser un trou de la 594 // hauteur reservee. 595 el.style.aspectRatio = 'auto'; 596 el.style.height = '0'; 597 return; 598 } 599 var served = event.size; 600 if (served && typeof served.length === 'number' && served.length === 2 601 && served[0] && served[1]) { 602 el.style.aspectRatio = served[0] + ' / ' + served[1]; 603 el.style.maxWidth = served[0] + 'px'; 604 } 605 }); 606 googletag.display('div-gpt-ad-16-b40e7d6beec34162aaa39cad16b4784b'); 607 }); 608 </script>
608 609 610 </div> 611 </center> 612 <div class="splash-footer"><a href="#" class="splash-popup--close">Continuer vers GRANDPRIX</a></div> 613 </div> 614</div>
615<script type="text/javascript"> 616 (function () { 617 var splash = document.getElementById('splash-7d0efc0b04b4490b9b80750744f8f88b'); 618 if (!splash) { return; } 619 620 // Whichever of show/remove happens first wins: a reader who closed the overlay must not 621 // see it come back if a late slotRenderEnded arrives afterwards. 622 var settled = false; 623 624 function removeSplash(e) { 625 if (e) { e.preventDefault(); } 626 settled = true; 627 if (splash.parentNode) { splash.parentNode.removeChild(splash); } 628 } 629 630 function showSplash() { 631 if (settled) { return; } 632 settled = true; 633 splash.style.visibility = 'visible'; 634 splash.style.pointerEvents = 'auto'; 635 } 636 637 var closeEls = splash.querySelectorAll('.splash-popup--close'); 638 for (var i = 0; i < closeEls.length; i++) { 639 closeEls[i].addEventListener('click', removeSplash); 640 } 641 642 var adEl = splash.querySelector('.gpt-ad'); 643 if (!adEl) { 644 // Revive kill switch is on: _AdSlot emitted an <ins> plus the asyncjs loader and 645 // there is no render callback to wait for - open immediately, exactly as the site 646 // behaved before the GAM migration. 647 showSplash(); 648 return; 649 } 650 651 // Size the overlay's ad box from the size GPT actually served, NOT from CSS. Two traps 652 // this avoids, both already paid for elsewhere in this migration: 653 // - width/height:auto on the GPT iframe does NOT fall back to its width/height 654 // attributes, it falls back to the replaced-element defaults (300x150) - the same 655 // class of bug as the aspect-ratio one documented in _AdSlot; 656 // - _AdSlot's inline aspectRatio + width:100% is CLS-avoidance sizing for in-page 657 // slots. Here the overlay is only revealed after the creative rendered, so there is 658 // no layout to protect, and stretching a splash creative to the container width is 659 // exactly the distortion to avoid. Cleared below. 660 // Creatives too big for the viewport (zone 16 goes up to 768x1024 and 1000x600, on any 661 // screen) are scaled down with a transform while the iframe keeps its natural pixel 662 // size, and the container takes the SCALED footprint - so the "Continuer vers GRANDPRIX" 663 // links stay on screen instead of being pushed out by a 1024px-tall box. 664 function fitCreative(size) { 665 if (!size || typeof size.length !== 'number' || size.length < 2) { return; } 666 var w = size[0], h = size[1]; 667 if (!w || !h) { return; } 668 var scale = Math.min(1, (window.innerWidth * 0.95) / w, (window.innerHeight * 0.8) / h); 669 adEl.style.aspectRatio = 'auto'; 670 adEl.style.width = Math.round(w * scale) + 'px'; 671 adEl.style.height = Math.round(h * scale) + 'px'; 672 var frame = adEl.querySelector('iframe'); 673 if (frame) { 674 frame.style.width = w + 'px'; 675 frame.style.height = h + 'px'; 676 frame.style.transform = 'scale(' + scale + ')'; 677 } 678 } 679 680 var slotId = adEl.id; 681 window.googletag = window.googletag || { cmd: [] }; 682 // Queued after _AdSlot's own cmd.push (defineSlot -> display), which is fine: the queue 683 // drains synchronously in order, while slotRenderEnded only fires once the ad response 684 // comes back, so the listener is always registered before the event can be raised. 685 googletag.cmd.push(function () { 686 googletag.pubads().addEventListener('slotRenderEnded', function (event) { 687 if (event.slot.getSlotElementId() !== slotId) { return; } 688 if (event.isEmpty) { removeSplash(); return; } 689 fitCreative(event.size); 690 showSplash(); 691 }); 692 }); 693 694 // Nothing ever came back - gpt.js blocked, consent refused, network error, or _AdSlot's 695 // hidden-ancestor guard skipped the request. Never leave an invisible full-screen fixed 696 // element parked on top of the page. 697 setTimeout(function () { if (!settled) { removeSplash(); } }, 5000); 698 })(); 699</script>
699 700<!-- splashscreen ad --> 701 702 703 704</body> 705</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.