1<!doctype html> 2<html lang="fr"> 3<head >
3<script>(function(w,i,g){w[g]=w[g]||[];if(typeof w[g].push=='function')w[g].push(i)}) 4(window,'GTM-MFX824G','google_tags_first_party');</script>
4<script>(function(w,d,s,l){w[l]=w[l]||[];(function(){w[l].push(arguments);})('set', 'developer_id.dYzg1YT', true); 5 w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 6 j=d.createElement(s);j.async=true;j.src='/v1dg/'; 7 f.parentNode.insertBefore(j,f); 8 })(window,document,'script','dataLayer');</script>
8 9 <!-- page-meta --><meta charset="UTF-8"/> 10<meta name="title" content="Esprit KTM - Pièces Détachées et Accessoires Officiels KTM | Moto Route et Enduro | Esprit-KTM.com"/> 11<meta name="description" content="Esprit KTM, votre spécialiste en pièces détachées et accessoires officiels pour motos KTM. Route, enduro, motocross : trouvez toutes les pièces d'origine et équipements pour optimiser votre machine et certifiées par KTM. Livraison rapide, conseil expert."/> 12<meta name="keywords" content=" 13 KTM 14 Moto 15 Pièces détachées ktm 16 Accessoires KTM 17 Enduro 18 Superduke 19 Motocross ktm 20 Pièces origine KTM 21 Racing 22 Ãquipement moto KTM 23"/> 24<meta name="robots" content="INDEX,FOLLOW"/> 25<meta name="viewport" content="width=device-width, initial-scale=1"/> 26<title>Esprit KTM - Pièces Détachées et Accessoires Officiels KTM | Moto Route et Enduro | Esprit-KTM.com</title> 27<!-- end-page-meta --><link rel="stylesheet" type="text/css" media="all" href="https://www.esprit-ktm.com/static/version1791195787/_cache/merged/8c29a91146beef427249797ce317122e.min.css" /> 28<link rel="preload" as="font" crossorigin="anonymous" href="https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/fonts/Satoshi-Bold.woff" /> 29<link rel="preload" as="font" crossorigin="anonymous" href="https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/fonts/Satoshi-Medium.woff2" /> 30<link rel="icon" type="image/x-icon" href="https://www.esprit-ktm.com/media/favicon/stores/9/podium-ktm.jpg" /> 31<link rel="shortcut icon" type="image/x-icon" href="https://www.esprit-ktm.com/media/favicon/stores/9/podium-ktm.jpg" /> 32<!--pirDXGFu4sXNQt3hHmf3hnx7fahTKZob--> <link rel="stylesheet" type="text/css" media="all" href="https://www.esprit-ktm.com/static/version1791195787/_cache/merged/8c29a91146beef427249797ce317122e.min.css" /> 33<link rel="preload" as="font" crossorigin="anonymous" href="https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/fonts/Satoshi-Bold.woff" /> 34<link rel="preload" as="font" crossorigin="anonymous" href="https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/fonts/Satoshi-Medium.woff2" /> 35<link rel="icon" type="image/x-icon" href="https://www.esprit-ktm.com/media/favicon/stores/9/podium-ktm.jpg" /> 36<link rel="shortcut icon" type="image/x-icon" href="https://www.esprit-ktm.com/media/favicon/stores/9/podium-ktm.jpg" /> 37<!--pirDXGFu4sXNQt3hHmf3hnx7fahTKZob--> <!-- Google Tag Manager --> 38
38<script>
vendor: 624 bytes, lines 38-52
38 39 (function(w, d, s, l, i) { 40 w[l] = w[l] || []; 41 w[l].push({ 42 'gtm.start': new Date().getTime(), 43 event: 'gtm.js' 44 }); 45 var f = d.getElementsByTagName(s)[0], 46 j = d.createElement(s), 47 dl = l != 'dataLayer' ? '&l=' + l : ''; 48 j.async = true; 49 j.src = 50 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; 51 f.parentNode.insertBefore(j, f); 52 })(window, document, 'script', 'dataLayer', '
52GTM-MFX824G
vendor: 13 bytes, lines 52-53
52'); 53
53</script>
53 54 <!-- End Google Tag Manager --> 55 56 <!-- BEGIN Adwords Remarketing Tag --> 57
57<script type="text/javascript"> 58 var google_tag_params = { 59 ecomm_pagetype: 'home' 60 }; 61 </script>
61 62 <!-- END Adwords Remarketing Tag --> 63
63<script> 64 var BASE_URL = 'https://www.esprit-ktm.com/'; 65 var THEME_PATH = 'https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR'; 66 var COOKIE_CONFIG = { 67 "expires": null, 68 "path": "\u002F", 69 "domain": ".www.esprit\u002Dktm.com", 70 "secure": true, 71 "lifetime": "3600", 72 "cookie_restriction_enabled": false }; 73 var CURRENT_STORE_CODE = 'esprit_ktm_fr'; 74 var CURRENT_WEBSITE_ID = '9'; 75 76 window.hyva = window.hyva || {} 77 78 window.cookie_consent_groups = window.cookie_consent_groups || {} 79 window.cookie_consent_groups['necessary'] = true; 80 81 window.cookie_consent_config = window.cookie_consent_config || {}; 82 window.cookie_consent_config['necessary'] = [].concat( 83 window.cookie_consent_config['necessary'] || [], 84 [ 85 'user_allowed_save_cookie', 86 'form_key', 87 'mage-messages', 88 'private_content_version', 89 'mage-cache-sessid', 90 'last_visited_store', 91 'section_data_ids' 92 ] 93 ); 94 //# sourceURL=hyva-variables.js 95</script>
vendor: 1 bytes, line 95
95
96<script> 97 (function( hyva, undefined ) { 98 99 function lifetimeToExpires(options, defaults) { 100 101 const lifetime = options.lifetime || defaults.lifetime; 102 103 if (lifetime) { 104 const date = new Date; 105 date.setTime(date.getTime() + lifetime * 1000); 106 return date; 107 } 108 109 return null; 110 } 111 112 function generateRandomString() { 113 114 const allowedCharacters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 115 length = 16; 116 117 let formKey = '', 118 charactersLength = allowedCharacters.length; 119 120 for (let i = 0; i < length; i++) { 121 formKey += allowedCharacters[Math.round(Math.random() * (charactersLength - 1))] 122 } 123 124 return formKey; 125 } 126 127 const sessionCookieMarker = {noLifetime: true} 128 129 const cookieTempStorage = {}; 130 131 const internalCookie = { 132 get(name) { 133 const v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)'); 134 return v ? v[2] : null; 135 }, 136 set(name, value, days, skipSetDomain) { 137 let expires, 138 path, 139 domain, 140 secure, 141 samesite; 142 143 const defaultCookieConfig = { 144 expires: null, 145 path: '/', 146 domain: null, 147 secure: false, 148 lifetime: null, 149 samesite: 'lax' 150 }; 151 152 const cookieConfig = window.COOKIE_CONFIG || {}; 153 154 expires = days && days !== sessionCookieMarker 155 ? lifetimeToExpires({lifetime: 24 * 60 * 60 * days, expires: null}, defaultCookieConfig) 156 : lifetimeToExpires(window.COOKIE_CONFIG, defaultCookieConfig) || defaultCookieConfig.expires; 157 158 path = cookieConfig.path || defaultCookieConfig.path; 159 domain = !skipSetDomain && (cookieConfig.domain || defaultCookieConfig.domain); 160 secure = cookieConfig.secure || defaultCookieConfig.secure; 161 samesite = cookieConfig.samesite || defaultCookieConfig.samesite; 162 163 document.cookie = name + "=" + encodeURIComponent(value) + 164 (expires && days !== sessionCookieMarker ? '; expires=' + expires.toGMTString() : '') + 165 (path ? '; path=' + path : '') + 166 (domain ? '; domain=' + domain : '') + 167 (secure ? '; secure' : '') + 168 (samesite ? '; samesite=' + samesite : 'lax'); 169 }, 170 isWebsiteAllowedToSaveCookie() { 171 const allowedCookies = this.get('user_allowed_save_cookie'); 172 if (allowedCookies) { 173 const allowedWebsites = JSON.parse(unescape(allowedCookies)); 174 175 return allowedWebsites[CURRENT_WEBSITE_ID] === 1; 176 } 177 return false; 178 }, 179 getGroupByCookieName(name) { 180 const cookieConsentConfig = window.cookie_consent_config || {}; 181 let group = null; 182 for (let prop in cookieConsentConfig) { 183 if (!cookieConsentConfig.hasOwnProperty(prop)) continue; 184 if (cookieConsentConfig[prop].includes(name)) { 185 group = prop; 186 break; 187 } 188 } 189 return group; 190 }, 191 isCookieAllowed(name) { 192 const cookieGroup = this.getGroupByCookieName(name); 193 return cookieGroup 194 ? window.cookie_consent_groups[cookieGroup] 195 : this.isWebsiteAllowedToSaveCookie(); 196 }, 197 saveTempStorageCookies() { 198 for (const [name, data] of Object.entries(cookieTempStorage)) { 199 if (this.isCookieAllowed(name)) { 200 this.set(name, data['value'], data['days'], data['skipSetDomain']); 201 delete cookieTempStorage[name]; 202 } 203 } 204 } 205 }; 206 207 hyva.getCookie = (name) => { 208 const cookieConfig = window.COOKIE_CONFIG || {}; 209 210 if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) { 211 return cookieTempStorage[name] ? cookieTempStorage[name]['value'] : null; 212 } 213 214 return internalCookie.get(name); 215 } 216 217 hyva.setCookie = (name, value, days, skipSetDomain) => { 218 const cookieConfig = window.COOKIE_CONFIG || {}; 219 220 if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) { 221 cookieTempStorage[name] = {value, days, skipSetDomain}; 222 return; 223 } 224 return internalCookie.set(name, value, days, skipSetDomain); 225 } 226 227 228 hyva.setSessionCookie = (name, value, skipSetDomain) => { 229 return hyva.setCookie(name, value, sessionCookieMarker, skipSetDomain) 230 } 231 232 hyva.getBrowserStorage = () => { 233 const browserStorage = window.localStorage || window.sessionStorage; 234 if (!browserStorage) { 235 console.warn('Browser Storage is unavailable'); 236 return false;
237 } 238 try { 239 browserStorage.setItem('storage_test', '1'); 240 browserStorage.removeItem('storage_test'); 241 } catch (error) { 242 console.warn('Browser Storage is not accessible', error); 243 return false; 244 } 245 return browserStorage; 246 } 247 248 hyva.postForm = (postParams) => { 249 const form = document.createElement("form"); 250 251 let data = postParams.data; 252 253 if (! postParams.skipUenc && ! data.uenc) { 254 data.uenc = btoa(window.location.href); 255 } 256 form.method = "POST"; 257 form.action = postParams.action; 258 259 Object.keys(postParams.data).map(key => { 260 const field = document.createElement("input"); 261 field.type = 'hidden' 262 field.value = postParams.data[key]; 263 field.name = key; 264 form.appendChild(field); 265 }); 266 267 const form_key = document.createElement("input"); 268 form_key.type = 'hidden'; 269 form_key.value = hyva.getFormKey(); 270 form_key.name="form_key"; 271 form.appendChild(form_key); 272 273 document.body.appendChild(form); 274 275 form.submit(); 276 } 277 278 hyva.getFormKey = function () { 279 let formKey = hyva.getCookie('form_key'); 280 281 if (!formKey) { 282 formKey = generateRandomString(); 283 hyva.setCookie('form_key', formKey); 284 } 285 286 return formKey; 287 } 288 289 hyva.formatPrice = (value, showSign, options = {}) => { 290 const groupSeparator = options.groupSeparator; 291 const decimalSeparator = options.decimalSeparator 292 delete options.groupSeparator; 293 delete options.decimalSeparator; 294 const formatter = new Intl.NumberFormat( 295 'fr\u002DFR', 296 Object.assign({ 297 style: 'currency', 298 currency: 'EUR', 299 signDisplay: showSign ? 'always' : 'auto' 300 }, options) 301 ); 302 return (typeof Intl.NumberFormat.prototype.formatToParts === 'function') ? 303 formatter.formatToParts(value).map(({type, value}) => { 304 switch (type) { 305 case 'currency': 306 return '\u20AC' || value; 307 case 'minusSign': 308 return '- '; 309 case 'plusSign': 310 return '+ '; 311 case 'group': 312 return groupSeparator !== undefined ? groupSeparator : value; 313 case 'decimal': 314 return decimalSeparator !== undefined ? decimalSeparator : value; 315 default : 316 return value; 317 } 318 }).reduce((string, part) => string + part) : 319 formatter.format(value); 320 } 321 322 const formatStr = function (str, nStart) { 323 const args = Array.from(arguments).slice(2); 324 325 return str.replace(/(%+)([0-9]+)/g, (m, p, n) => { 326 const idx = parseInt(n) - nStart; 327 328 if (args[idx] === null || args[idx] === void 0) { 329 return m; 330 } 331 return p.length % 2 332 ? p.slice(0, -1).replace('%%', '%') + args[idx] 333 : p.replace('%%', '%') + n; 334 }) 335 } 336 337 hyva.str = function (string) { 338 const args = Array.from(arguments); 339 args.splice(1, 0, 1); 340 341 return formatStr.apply(undefined, args); 342 } 343 344 hyva.strf = function () { 345 const args = Array.from(arguments); 346 args.splice(1, 0, 0); 347 348 return formatStr.apply(undefined, args); 349 } 350 351 /** 352 * Take a html string as `content` parameter and 353 * extract an element from the DOM to replace in 354 * the current page under the same selector, 355 * defined by `targetSelector` 356 */ 357 hyva.replaceDomElement = (targetSelector, content) => { 358 // Parse the content and extract the DOM node using the `targetSelector` 359 const parser = new DOMParser(); 360 const doc = parser.parseFromString(content, 'text/html');
361 const contentNode = doc.querySelector(targetSelector); 362 363 // Bail if content or target can't be found 364 if (!contentNode || !document.querySelector(targetSelector)) { 365 return; 366 } 367 368 hyva.activateScripts(contentNode); 369 370 // Replace the old DOM node with the new content 371 document.querySelector(targetSelector).replaceWith(contentNode); 372 373 // Reload customerSectionData and display cookie-messages if present 374 window.dispatchEvent(new CustomEvent("reload-customer-section-data")); 375 hyva.initMessages(); 376 } 377 378 hyva.removeScripts = (contentNode) => { 379 const scripts = contentNode.getElementsByTagName('script'); 380 for (let i = 0; i < scripts.length; i++) { 381 scripts[i].parentNode.removeChild(scripts[i]); 382 } 383 const templates = contentNode.getElementsByTagName('template'); 384 for (let i = 0; i < templates.length; i++) { 385 const container = document.createElement('div'); 386 container.innerHTML = templates[i].innerHTML; 387 hyva.removeScripts(container); 388 templates[i].innerHTML = container.innerHTML; 389 } 390 } 391 392 hyva.activateScripts = (contentNode) => { 393 // Create new array from HTMLCollection to avoid mutation of collection while manipulating the DOM. 394 const scripts = Array.from(contentNode.getElementsByTagName('script')); 395 396 // Iterate over all script tags to duplicate+inject each into the head 397 for (const original of scripts) { 398 const script = document.createElement('script'); 399 original.type && (script.type = original.type); 400 script.innerHTML = original.innerHTML; 401 402 // Remove the original (non-executing) script from the contentNode 403 original.parentNode.removeChild(original) 404 405 // Add script to head 406 document.head.appendChild(script); 407 } 408 409 return contentNode; 410 } 411 412 const replace = {['+']: '-', ['/']: '_', ['=']: ','}; 413 hyva.getUenc = () => btoa(window.location.href).replace(/[+/=]/g, match => replace[match]); 414 415 let currentTrap; 416 417 const focusableElements = (rootElement) => { 418 const selector = 'button, [href], input, select, textarea, details, [tabindex]:not([tabindex="-1"]'; 419 return Array.from(rootElement.querySelectorAll(selector)) 420 .filter(el => { 421 return el.style.display !== 'none' 422 && !el.disabled 423 && el.tabIndex !== -1 424 && (el.offsetWidth || el.offsetHeight || el.getClientRects().length) 425 }) 426 } 427 428 const focusTrap = (e) => { 429 const isTabPressed = e.key === 'Tab' || e.keyCode === 9; 430 if (!isTabPressed) return; 431 432 const focusable = focusableElements(currentTrap) 433 const firstFocusableElement = focusable[0] 434 const lastFocusableElement = focusable[focusable.length - 1] 435 436 e.shiftKey 437 ? document.activeElement === firstFocusableElement && (lastFocusableElement.focus(), e.preventDefault()) 438 : document.activeElement === lastFocusableElement && (firstFocusableElement.focus(), e.preventDefault()) 439 }; 440 441 hyva.releaseFocus = (rootElement) => { 442 if (currentTrap && (!rootElement || rootElement === currentTrap)) { 443 currentTrap.removeEventListener('keydown', focusTrap) 444 currentTrap = null 445 } 446 } 447 hyva.trapFocus = (rootElement) => { 448 if (!rootElement) return; 449 hyva.releaseFocus() 450 currentTrap = rootElement 451 rootElement.addEventListener('keydown', focusTrap) 452 const firstElement = focusableElements(rootElement)[0] 453 firstElement && firstElement.focus() 454 } 455 456 hyva.safeParseNumber = (rawValue) => { 457 const number = rawValue ? parseFloat(rawValue) : null; 458 459 return Array.isArray(number) || isNaN(number) ? rawValue : number; 460 } 461 462 const toCamelCase = s => s.split('_').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(''); 463 hyva.createBooleanObject = (name, value = false, additionalMethods = {}) => { 464 465 const camelCase = toCamelCase(name);
466 const key = '__hyva_bool_' + name 467 468 return new Proxy(Object.assign( 469 additionalMethods, 470 { 471 [key]: !!value, 472 [name]() {return !!this[key]}, 473 ['!' + name]() {return !this[key]}, // @deprecated This does not work with non-CSP Alpine 474 ['not' + camelCase]() {return !this[key]}, 475 ['toggle' + camelCase]() {this[key] = !this[key]}, 476 [`set${camelCase}True`]() {this[key] = true}, 477 [`set${camelCase}False`]() {this[key] = false}, 478 } 479 ), { 480 set(target, prop, value) { 481 return prop === name 482 ? (target[key] = !!value) 483 : Reflect.set(...arguments); 484 } 485 }) 486 } 487 488 hyva.alpineInitialized = (fn) => window.addEventListener('alpine:initialized', fn, {once: true}) 489 window.addEventListener('alpine:init', () => Alpine.data('{}', () => ({})), {once: true}); 490 window.addEventListener('user-allowed-save-cookie', () => internalCookie.saveTempStorageCookies()) 491 492 }( window.hyva = window.hyva || {} )); 493 //# sourceURL=hyva.js 494</script>
vendor: 1 bytes, line 494
494
495<script type="speculationrules"> 496{ 497 "tag": "Hyva Theme", 498 "prefetch": [{ 499 "source": "document", 500 "where": { 501 "and": [ 502 { "href_matches": "/*" }, 503 { "not": { 504 "href_matches": ["/customer/*","/search/*","/sales/*","/wishlist/*","/checkout/*","/paypal/*","/newsletter/*","/stores/store/redirect/*"] }}, 505 { "not": { 506 "selector_matches": [".no-preload", ".do-not-prerender", "[download]", "[rel~=nofollow]", "[target]"] 507 }} 508 ] 509 }, 510 "eagerness": "moderate" 511 }] 512} 513</script>
513 514
515<script> 516 const viewTransitionToGalleryPageStorage = 'view-transition-to-gallery-page-type'; 517 const setTransitionNameBetweenGallery = async (url, promise) => { 518 if (window.matchMedia('(prefers-reduced-motion)').matches) return; 519 520 const productGallery = document.getElementById('gallery-main'); 521 const productListItem = document.querySelector(`.product-item-photo[href="${url}"]`); 522 const targetElement = productListItem || productGallery; 523 524 if (targetElement) { 525 targetElement.style.viewTransitionName = 'view-transition-to-gallery'; 526 527 await promise; 528 targetElement.style.viewTransitionName = ''; 529 } 530 }; 531 532 const getViewTransitionToGalleryPageIsProduct = () => { 533 return document.body.classList.contains('catalog-product-view') ? 'product-page' : 'other' 534 } 535 536 window.addEventListener('pageswap', async (e) => { 537 if (!e.viewTransition) return; 538 const pageType = getViewTransitionToGalleryPageIsProduct(); 539 const target = new URL(e.activation.entry.url); 540 541 sessionStorage.setItem(viewTransitionToGalleryPageStorage, pageType); 542 setTransitionNameBetweenGallery(target.href, e.viewTransition.finished); 543 }); 544 545 window.addEventListener('pagereveal', async (e) => { 546 if (!e.viewTransition || (window.navigation && !window.navigation.activation.from)) return; 547 const previousPageType = sessionStorage.getItem(viewTransitionToGalleryPageStorage); 548 const pageType = getViewTransitionToGalleryPageIsProduct(); 549 sessionStorage.removeItem(viewTransitionToGalleryPageStorage); 550 551 if (previousPageType === pageType) return; 552 const target = new URL(window.navigation.activation.from.url); 553 setTransitionNameBetweenGallery(target.href, e.viewTransition.ready); 554 }); 555</script>
555 556
557<script> 558 window.navigationType = 'SPA'; 559</script>
559 560<style> 561 @font-face { 562 font-family: 'Satoshi'; 563 src: url("https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/fonts/Satoshi-Medium.woff2") format('woff2'), 564 url("https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/fonts/Satoshi-Medium.woff") format('woff'); 565 font-weight: 500; 566 font-display: swap; 567 font-style: normal; 568 } 569 570 @font-face { 571 font-family: 'Satoshi'; 572 src: url("https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/fonts/Satoshi-Bold.woff2") format('woff2'), 573 url("https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/fonts/Satoshi-Bold.woff") format('woff'); 574 font-weight: 700; 575 font-display: swap; 576 font-style: normal; 577 } 578 579 /* Ham override: Plus Jakarta Sans variable (self-hosted, GDPR-safe) replaces 580 Satoshi â full 200-800 weight axis in two small files (mock uses 400-800). */ 581 @font-face { 582 font-family: 'Plus Jakarta Sans'; 583 src: url("https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/fonts/PlusJakartaSans-Variable-latin.woff2") format('woff2'); 584 font-weight: 200 800; 585 font-display: swap; 586 font-style: normal; 587 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 588 } 589 590 @font-face { 591 font-family: 'Plus Jakarta Sans'; 592 src: url("https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/fonts/PlusJakartaSans-Variable-latin-ext.woff2") format('woff2'); 593 font-weight: 200 800; 594 font-display: swap; 595 font-style: normal; 596 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 597 } 598 599 :root { 600 --font-body-family: 'Satoshi', sans-serif; 601 --font-body-style: 'normal'; 602 --font-body-weight: 500; 603 604 --font-heading-family: 'Satoshi', sans-serif; 605 --font-heading-style: 'normal'; 606 --font-heading-weight: 700; 607 608 --progress-bar-color: #29d; 609 --progress-bar-height: 2px; 610 611 --fade-in-bg: #F3F3F3; 612 613 --color-primary-50: #7e7e7e; 614 --color-primary-100: #4b4b4b; 615 --color-primary-400: #252525; 616 --color-primary-500: #181818; 617 --color-primary-600: #0b0b0b; 618 --color-primary-700: #3F3F3F; 619 620 --color-background-50: #ffffff; 621 --color-background-100: #ffffff; 622 --color-background-400: #ffffff; 623 --color-background-500: #f9f9f9; 624 --color-background-600: #efefef; 625 --color-background-700: #e6e6e6; 626 627 628 /* On dark bg, lighter color is lighter */ 629 /* On light bg, lighter color is darker */ 630 631 /* bg_is_darker: false; */ 632 --color-primary-800: #181818; 633 --color-text-50: #000000; 634 --color-text-100: #0f0f0f; 635 --color-text-400: #353535; 636 --color-text-500: #424242; 637 --color-text-600: #4f4f4f; 638 --color-text-700: #5c5c5c; 639 --color-overlay: #18181833; 640 --color-overlay-dark: #18181866; 641 --header-shadow: 0 10px 8px rgb(0 0 0 / 0.04); 642 643 --color-secondary-50: #ffffff; 644 --color-secondary-100: #ffffff; 645 --color-secondary-400: #ffffff; 646 --color-secondary-500: #f5f5f5; 647 --color-secondary-600: #e8e8e8; 648 --color-secondary-700: #dcdcdc; 649 } 650 651 /* On dark bg, lighter color should become even lighter */ 652 /* On light bg, lighter color should become darker */ 653 654 @media (prefers-contrast: more) { 655 :root { 656 657 /* bg_is_darker: false; */ 658 --color-text-50: #000000; 659 --color-text-100: #000000; 660 --color-text-400: #1c1c1c; 661 --color-text-500: #292929; 662 --color-text-600: #353535; 663 --color-text-700: #424242; 664 665 --color-primary-50: #000000; 666 --color-primary-100: #000000; 667 --color-primary-400: #000000; 668 --color-primary-500: #000000; 669 --color-primary-600: #0b0b0b; 670 --color-primary-700: #181818; 671 } 672 } 673 674 *, 675 *::before, 676 *::after { 677 box-sizing: inherit; 678 } 679 680 html { 681 box-sizing: border-box; 682 height: 100%; 683 text-rendering: optimizeLegibility; 684 -webkit-font-smoothing: antialiased; 685 -moz-osx-font-smoothing: grayscale; 686 font-size: 16px; 687 } 688 689 body { 690 display: grid; 691 grid-template-rows: 1fr auto; 692 min-height: 100%; 693 margin: 0; 694 font-size: 1rem; 695 } 696</style>
697<script> 698 const computeRatio = () => { 699 const smallestViewportHeightElem = document.createElement('div'); 700 smallestViewportHeightElem.style.position = 'fixed'; 701 smallestViewportHeightElem.style.top = '0'; 702 smallestViewportHeightElem.style.left = '0'; 703 smallestViewportHeightElem.style.width = '100vw'; 704 smallestViewportHeightElem.style.height = '100svh'; 705 smallestViewportHeightElem.style.visibility = 'hidden'; 706 smallestViewportHeightElem.style.pointerEvents = 'none'; 707 document.documentElement.appendChild(smallestViewportHeightElem); 708 709 // measure once 710 const screenHeight = smallestViewportHeightElem.offsetHeight; 711 const screenWidth = smallestViewportHeightElem.offsetWidth; 712 713 smallestViewportHeightElem.remove(); 714 715 document.documentElement.style.setProperty( 716 '--product-aspect-ratio', 717 (screenWidth / (screenHeight - 155)).toString(), 718 ); 719 }; 720 721 window.addEventListener('resize', computeRatio); 722 computeRatio(); 723</script>
723 724
725<script 726 blocking="render" 727 async> 728 /** 729 * Scroll Restoration support for IOS 730 */ 731 window.addEventListener('beforeunload', (event) => { 732 sessionStorage.setItem('scrollPosition', `${window.scrollY}`); 733 }); 734 735 let persisted; 736 window.addEventListener('pageshow', (event) => { 737 if (event.persisted) { 738 persisted = true; 739 const scrollPosition = sessionStorage.getItem('scrollPosition'); 740 if (scrollPosition && parseInt(scrollPosition) > 0) { 741 window.scrollTo(0, parseInt(scrollPosition)); 742 } 743 } 744 }); 745 746 /** 747 * Seemless animation while navigation and before page renders. 748 */ 749 window.addEventListener('pagereveal', (event) => { 750 const isReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches; 751 if (!persisted && event.viewTransition && !isReducedMotion) { 752 const elementRect = sessionStorage.getItem('elementRect'); 753 const elementHtml = sessionStorage.getItem('elementHtml'); 754 const destKey = sessionStorage.getItem('destKey'); 755 const isMobile = window.matchMedia('(max-width: 767px)').matches; 756 if (!elementRect || !elementHtml || !destKey) { 757 if (isMobile) { 758 // Scale out animation. 759 document.body.classList.add('transition-view'); 760 } 761 return; 762 } 763 764 // Product card animation on mobile. 765 if (isMobile) { 766 // Freeze scroll 767 document.body.style.overflow = 'hidden'; 768 const wrapper = document.createElement('div'); 769 wrapper.style = 770 'position: absolute; inset: 0; background: var(--color-background-500); z-index: 30; transition: opacity .3s; pointer-events: none;'; 771 const rect = JSON.parse(elementRect); 772 const child = document.createElement('div'); 773 child.innerHTML = elementHtml; 774 child.style = `position: absolute; top: ${rect.top}px; left: ${rect.left}px; width: ${rect.width}px; height: ${rect.height}px; transition: transform .3s; transform-origin: top left`; 775 wrapper.appendChild(child); 776 777 // Show title and price overlay during MPA transition 778 const transitionPageDataRaw = sessionStorage.getItem('transitionPageData'); 779 if (transitionPageDataRaw) { 780 try { 781 const pageData = JSON.parse(transitionPageDataRaw); 782 const infoOverlay = document.createElement('div'); 783 infoOverlay.style = 'position: absolute; bottom: 0; left: 0; right: 0; z-index: 31; padding: 16px; background: linear-gradient(transparent, var(--color-background-500)); transition: opacity .3s;'; 784 785 let infoHtml = ''; 786 if (pageData.title) { 787 infoHtml += `<h1 style="font-size: 1.125rem; font-weight: 500; margin: 0 0 4px; color: var(--color-text-500);">${pageData.title}</h1>`; 788 } 789 if (pageData.finalPrice && window.hyva?.formatPrice) { 790 let priceHtml = ''; 791 if (pageData.regularPrice && pageData.regularPrice > pageData.finalPrice) { 792 priceHtml += `<s style="color: #9ca3af; margin-right: 8px;">${window.hyva.formatPrice(pageData.regularPrice)}</s>`; 793 } 794 priceHtml += `<span class="price">${window.hyva.formatPrice(pageData.finalPrice)}</span>`; 795 if (pageData.discountPercentage) { 796 priceHtml += `<span style="background: var(--color-primary-500); color: white; font-size: 0.875rem; padding: 2px 8px; border-radius: 4px; margin-left: 8px; font-weight: 600;">-${pageData.discountPercentage}%</span>`; 797 } 798 infoHtml += `<div style="display: flex; align-items: center; gap: 4px; font-size: 1rem;">${priceHtml}</div>`; 799 } 800 801 if (infoHtml) { 802 infoOverlay.innerHTML = infoHtml; 803 wrapper.appendChild(infoOverlay); 804 } 805 } catch(e) {} 806 sessionStorage.removeItem('transitionPageData'); 807 } 808 809 document.body.appendChild(wrapper); 810 const interval = setInterval(() => { 811 const destEl = 812 document.querySelector(`[x-element-transition-dest="${isMobile ? 'mobile' : 'desktop'}-${destKey}"]`) || 813 document.querySelector(`[x-element-transition-dest="${destKey}"]`); 814 if (!destEl) { 815 return; 816 } 817 // animate into new position 818 const { 819 top: tt, 820 left: tl, 821 width: tw, 822 height: th 823 } = destEl.getBoundingClientRect(); 824 child.style.transform = `translate3d(${tl - rect.left}px, ${ 825 tt - rect.top 826 }px, 0) scale(${tw / rect.width}, ${th / rect.height})`; 827 child.ontransitionend = () => { 828 wrapper.style.opacity = 0; 829 }; 830 clearInterval(interval); 831 }, 100); 832 } 833 } 834 // Clean up 835 sessionStorage.removeItem('elementRect'); 836 sessionStorage.removeItem('elementHtml'); 837 sessionStorage.removeItem('destKey'); 838 sessionStorage.removeItem('transitionPageData'); 839 // Unfreeze scroll 840 document.body.style.overflow = ''; 841 document.body.classList.remove('transition-view'); 842 }); 843</script>
843 844</head> 845<body id="html-body" class="gradient bg-bg-500 cms-bienvenue-sur-esprit-ktm cms-index-index page-layout-1column"> 846<svg 847 xmlns="http://www.w3.org/2000/svg" 848 preserveAspectRatio="xMinYMin meet" 849 class="sr-only" 850> 851 <defs> 852 <filter 853 id="border" 854 x="-50%" 855 y="-50%" 856 width="200%" 857 height="200%" 858 > 859 <!-- Apply the color from the CSS variable --> 860 <feFlood 861 flood-color="var(--color-background-500)" 862 result="color" 863 /> 864 865 <!-- Use feMorphology to create a sharper outline --> 866 <feMorphology 867 in="SourceAlpha" 868 operator="dilate" 869 radius="1.5" 870 result="dilated" 871 /> 872 873 <!-- Composite the color with the dilated result --> 874 <feComposite 875 in="color" 876 in2="dilated" 877 operator="in" 878 result="coloredDilated" 879 /> 880 881 <!-- Merge the original graphic with the colored dilated result --> 882 <feMerge> 883 <feMergeNode in="coloredDilated" /> 884 <feMergeNode in="SourceGraphic" /> 885 </feMerge> 886 </filter> 887 </defs> 888</svg><!-- Google Tag Manager (noscript) --> 889<noscript><iframe sandbox src="https://www.googletagmanager.com/ns.html?id=GTM-MFX824G" 890height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 891<!-- End Google Tag Manager (noscript) --> 892 893 894<input name="form_key" type="hidden" value="14z95XAPBxNEYTiS" /> 895 <noscript> 896 <section 897 class="message global noscript border-b-2 border-blue-500 bg-blue-50 shadow-none m-0 px-0 rounded-none font-normal" 898 aria-labelledby="messageGlobalNoScriptMessage" 899 > 900 <div class="container text-center"> 901 <p id="messageGlobalNoScriptMessage"> 902 <strong>Javascript est désactivé dans votre navigateur.</strong> 903 <span> 904 Pour une expérience optimale sur notre site, veuillez autoriser Javascript sur votre navigateur. </span> 905 </p> 906 </div> 907 </section> 908 </noscript> 909 910
911<script> 912 document.body.addEventListener('touchstart', () => {}, {passive: true}) 913</script>
vendor: 1 bytes, line 913
913
914<script> 915 /** 916 * Ham AttributeResolver configuration. 917 * Provides dynamic attribute codes and stock values based on current store configuration. 918 */ 919 window.hamAttributeConfig = { 920 /** 921 * Attribute code mappings (logical name => actual attribute code) 922 * @example { "stock": "ham_stock", "date": "ham_date", "replace": "ham_replace", "dealer_stock": "ham_dealer_stock" } 923 */ 924 attributes: {"stock":"ham_stock","date":"ham_date","replace":"ham_replace","dealer_stock":"ham_stock","dealer_date":"ham_date"}, 925 926 /** 927 * Stock value constants 928 * @example { "AVAILABLE": 25339, "EXTENDED_DELAY": 25340, "UNAVAILABLE": 27658, "REPLENISHMENT": 25338 } 929 */ 930 stockValues: {"AVAILABLE":25339,"EXTENDED_DELAY":25340,"UNAVAILABLE":27658,"REPLENISHMENT":25338}, 931 932 /** 933 * The actual attribute code for stock filtering in GraphQL 934 * @example "ham_stock" or "ham_dealer_stock" 935 */ 936 stockAttributeCode: "ham_stock", 937 938 /** 939 * Available stock IDs for product filtering (Disponible + Délais rallongés) 940 * @example [25339, 25340] 941 */ 942 availableStockIds: [25339,25340] }; 943</script>
943 944<div class="flex max-w-screen flex-col bg-bg-500"><header class="page-header contents"><a 945 class="skip-to-content-link button sr-only" 946 href="#MainContent" 947 tabindex="1" 948> 949 Aller au contenu</a> 950 951<div 952 x-data 953 x-intersect:enter="$store.main.isHeaderShadowVisible = false" 954 x-intersect:leave="$store.main.isHeaderShadowVisible = true" 955 @private-content-loaded.window="$store.main.updatePrivateContent($event.detail.data)"></div> 956 957<header class="header sticky left-0 right-0 top-0 z-[36] flex flex-col justify-items-stretch py-3 mx-auto w-full" 958 x-data="{ 959 isMenuVisible: false, 960 isCartVisible: false, 961 isWishlistVisible: false, 962 isAccountVisible: false, 963 }" 964 x-init=" 965 $watch('$store.popup.currentPopup', (value) => { 966 isMenuVisible = value === 'menu'; 967 isCartVisible = value === 'cart'; 968 isWishlistVisible = value === 'wishlist'; 969 isAccountVisible = value === 'account'; 970 }) 971 " 972 :style="`opacity: ${$store.main.opacityOnZoom}`"> 973 <div class="flex flex-col justify-items-stretch py-3 mx-auto w-full content-wrapper"> 974 <div id="header-shadow" 975 class="pointer-events-none absolute -top-1 left-0 right-0 -z-10 h-[calc(100%+20px)] -translate-y-full bg-gradient-to-b from-shadow to-transparent transition-all duration-300 ease-linear will-change-transform md:hidden" 976 :class="{ 977 'translate-y-0': $store.main.isHeaderShadowVisible, 978 '-translate-y-full': !$store.main.isHeaderShadowVisible 979 }"></div> 980 981 <div class="col-start-1 grid w-full grid-cols-header rounded-t-md items-center bg-white md:flex md:justify-between md:relative md:z-10" 982 :class="{ 983 'md:drop-shadow-2xl': $store.main.isHeaderShadowVisible, 984 }" 985 x-data=" {n:0}"> 986 <div class="py-3 md:px-3 transition-all md:flex md:flex-1 z-[10]"> 987 <div 988 class="resizable resizable--menu md:pointer-events-auto resizable--left" 989 x-data="{ isTransitioning: false }" 990 style="--initial-width: 105; --initial-height: 56; --target-width: 105; --target-height: 56" 991 :style=" 992 { 993 '--initial-width': 105, 994 '--initial-height': 56, 995 '--target-width': `${$store.resizable._current['menu-desktop']?.width || 105}`, 996 '--target-height': `${$store.resizable._current['menu-desktop']?.height || 56}` 997 } 998 " 999 :class=" 1000 { 1001 'resizable--visible': $store.resizable._current['menu-desktop'], 1002 'resizable--transitioning': isTransitioning 1003 } 1004 " 1005 x-init="$store.resizable._register({id: 'menu-desktop'})" 1006 > 1007 <div 1008 class="resizable__wrapper" 1009 x-a11y-trap="$store.resizable._current['menu-desktop']" 1010 > 1011 <div class="resizable__side resizable__side--l"></div> 1012 <div class="resizable__corner resizable__corner--tl"></div> 1013 <div class="resizable__side resizable__side--t"></div> 1014 <div class="resizable__corner resizable__corner--tr"></div> 1015 <div class="resizable__side resizable__side--r"></div> 1016 <div class="resizable__corner resizable__corner--br"></div> 1017 <div class="resizable__side resizable__side--b"></div> 1018 <div class="resizable__corner resizable__corner--bl"></div> 1019 <div 1020 class="resizable__bg" 1021 @transitionstart="isTransitioning = true" 1022 @transitionend="isTransitioning = false; " 1023 ></div> 1024 <div 1025 @click="$store.resizable.show('menu-desktop')" 1026 id="menu-desktop-initial" 1027 class="resizable__content resizable__content--trigger" 1028 > 1029 <button 1030 x-a11y-trap-element="$store.transition.isPreviewActive && !$store.resizable.isVisible()" 1031 @click="!isMenuVisible ? $store.popup.showPopup('menu') : $store.popup.hidePopup('menu')" 1032 type="button" 1033 aria-label="Ouvrir le menu" 1034 :aria-controls="$store.main.isMobile ? 'menu' : 'menu-desktop'" 1035 :aria-expanded="$store.main.isMobile ? $store.popup.currentPopup === 'menu' : $store.resizable.isVisible('menu-desktop')" 1036 class="contrast-border md:button--filled-secondary button icon-button icon-button--size-lg md:w-auto md:gap-3 md:px-4 " 1037 :class="{'hidden': !$store.main.isMobile && $store.resizable.isVisible('menu-desktop')}" 1038 tabindex="2"> 1039 <div 1040 class="contents text-text-50" 1041 :class="{ 1042 'invisible': isMenuVisible, 1043 }" 1044 x-show="!isMenuVisible"> 1045 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" aria-hidden="true" width="24" height="24" role="img"> 1046 <path fill-rule="evenodd" d="M3 7a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 13a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z" clip-rule="evenodd"/> 1047</svg> 1048 </div> 1049 <div 1050 class="contents" 1051 :class="{ 1052 'invisible': !isMenuVisible, 1053 }" 1054 x-show="isMenuVisible" 1055 style="display: none;"> 1056 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 1057 <path d="m16.192 6.344-4.243 4.242-4.242-4.242-1.414 1.414L10.535 12l-4.242 4.242 1.414 1.414 4.242-4.242 4.243 4.242 1.414-1.414L13.364 12l4.242-4.242z"> 1058 </path> 1059</svg> 1060 </div> 1061 <span class="text-md font-semibold text-text-50 max-md:hidden ">Menu</span> 1062</button> 1063 </div> 1064 <div 1065 class="resizable__content resizable__content--portal overflow-y-hidden" 1066 > 1067 <div 1068 id="menu-desktop" 1069 class="resizable__scroll" 1070 :inert="!$store.resizable._current['menu-desktop']" 1071 ></div> 1072 </div> 1073 <div 1074 id="menu-desktop-fixed" 1075 class="resizable__fixed" 1076 ></div> 1077 </div> 1078</div> 1079 </div> 1080 <div class="flex items-center md:hidden"> 1081 1082 <picture class="object-contain h-[40px] w-auto md:h-[56px]"><source type="image/webp" srcset="https://www.esprit-ktm.com/media/podium/384293_KTM_Authorized_Dealer_Logo_Dark-sRGB_KTM_
1082Logo___Podium_KTM_Partner___Sublogos.webp"><img src="https://www.esprit-ktm.com/media/podium/384293_KTM_Authorized_Dealer_Logo_Dark-sRGB_KTM_Logo___Podium_KTM_Partner___Sublogos.jpg" class="object-contain h-[40px] w-auto md:h-[56px]" alt="Podium de la boutique" width="400" height="219" loading="lazy" fetchpriority="low" decoding="async" loading="lazy" /></picture> 1083 </div> 1084 1085 <div class="md:py-3 md:px-3 col-start-4 flex items-center justify-center md:flex-shrink-0"> 1086 <a href="https://www.esprit-ktm.com/" 1087 x-element-transition-trigger 1088 class="rounded-sm px-3 py-2 md:p-0 text-xl font-semibold cursor-pointer" 1089 aria-label="Aller à la page d'accueil"> 1090 1091<div class="flex items-center gap-4"> 1092 <!-- Desktop/Mobile logo --> 1093 <a href="https://www.esprit-ktm.com/" 1094 title="Satoshi theme" 1095 aria-label="store logo"> 1096 <picture class="object-contain h-[40px] w-auto md:h-[56px] md:transition-all"><source type="image/webp" srcset="https://www.esprit-ktm.com/media/logo/stores/9/ESPRIT_KTM_6_.webp"><img src="https://www.esprit-ktm.com/media/logo/stores/9/ESPRIT_KTM_6_.png" alt="Esprit-KTM.com - Toutes les pièces détachées KTM, vues éclatées et microfiches, accessoires, équipement et vêtements KTM" width="189" height="64" loading="eager" fetchpriority="high" decoding="async" class="object-contain h-[40px] w-auto md:h-[56px] md:transition-all" /></picture> 1097 </a> 1098 1099 1100 1101 <div class="hidden md:flex items-center gap-4"> 1102 <div class="h-8 w-[1px] bg-gray-300"></div> 1103 1104 <picture class="object-contain h-[40px] w-auto md:h-[56px] md:transition-all"><source type="image/webp" srcset="https://www.esprit-ktm.com/media/podium/384293_KTM_Authorized_Dealer_Logo_Dark-sRGB_KTM_Logo___Podium_KTM_Partner___Sublogos.webp"><img src="https://www.esprit-ktm.com/media/podium/384293_KTM_Authorized_Dealer_Logo_Dark-sRGB_KTM_Logo___Podium_KTM_Partner___Sublogos.jpg" class="object-contain h-[40px] w-auto md:h-[56px] md:transition-all" alt="Podium de la boutique" width="400" height="219" loading="lazy" fetchpriority="low" decoding="async" loading="lazy" /></picture> 1105 </div> 1106 1107</div> 1108 </a> 1109 </div> 1110 1111 <div class="py-3 md:px-3 contents md:flex md:flex-1 md:justify-end"> 1112 <div class="transition-all flex items-center z-10"> 1113 <div 1114 class="resizable resizable--search max-md:hidden md:pointer-events-auto resizable--right" 1115 x-data="{ isTransitioning: false }" 1116 style="--initial-width: 56; --initial-height: 56; --target-width: 56; --target-height: 56" 1117 :style=" 1118 { 1119 '--initial-width': 56, 1120 '--initial-height': 56, 1121 '--target-width': `${$store.resizable._current['search-desktop']?.width || 56}`, 1122 '--target-height': `${$store.resizable._current['search-desktop']?.height || 56}` 1123 } 1124 " 1125 :class=" 1126 { 1127 'resizable--visible': $store.resizable._current['search-desktop'], 1128 'resizable--transitioning': isTransitioning 1129 } 1130 " 1131 x-init="$store.resizable._register({id: 'search-desktop'})" 1132 > 1133 <div 1134 class="resizable__wrapper" 1135 x-a11y-trap="$store.resizable._current['search-desktop']" 1136 > 1137 <div class="resizable__side resizable__side--l"></div> 1138 <div class="resizable__corner resizable__corner--tl"></div> 1139 <div class="resizable__side resizable__side--t"></div> 1140 <div class="resizable__corner resizable__corner--tr"></div> 1141 <div class="resizable__side resizable__side--r"></div> 1142 <div class="resizable__corner resizable__corner--br"></div> 1143 <div class="resizable__side resizable__side--b"></div> 1144 <div class="resizable__corner resizable__corner--bl"></div> 1145 <div 1146 class="resizable__bg" 1147 @transitionstart="isTransitioning = true" 1148 @transitionend="isTransitioning = false; $store.resizable.isVisible(`search-desktop`) ? document.querySelector(`#searchInput`).focus(): null" 1149 ></div> 1150 <div 1151 @click="$store.resizable.show('search-desktop')" 1152 id="search-desktop-initial" 1153 class="resizable__content resizable__content--trigger" 1154 > 1155 1156<button 1157 :tabindex="$store.resizable.isVisible('search-desktop') ? -1 : 0" 1158 class="contrast-border md:button--filled-secondary button ghost-primary icon-button icon-button--size-lg" 1159 aria-label="Ouvrir la recherche" 1160 @keydown.space.prevent="$store.resizable.show('search-desktop')" 1161 @keydown.enter.prevent="$store.resizable.show('search-desktop')" 1162 x-a11y-trap-element="$store.transition.isPreviewActive && !$store.resizable.isVisible()"> 1163 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" class="text-text-50" width="24" height="24" role="img"> 1164 <path d="M10 18a7.952 7.952 0 0 0 4.897-1.688l4.396 4.396 1.414-1.414-4.396-4.396A7.952 7.952 0 0 0 18 10c0-4.411-3.589-8-8-8s-8 3.589-8 8 3.589 8 8 8zm0-14c3.309 0 6 2.691 6 6s-2.691 6-6 6-6-2.691-6-6 2.691-6 6-6z"> 1165 </path> 1166</svg> 1167</button> 1168 </div> 1169 <div 1170 class="resizable__content resizable__content--portal overflow-y-hidden" 1171 > 1172 <div 1173 id="search-desktop" 1174 class="resizable__scroll" 1175 :inert="!$store.resizable._current['search-desktop']" 1176 ></div> 1177 </div> 1178 <div 1179 id="search-desktop-fixed" 1180 class="resizable__fixed" 1181 ></div> 1182 </div> 1183</div> 1184 <div 1185 class="resizable md:hidden resizable--right" 1186 x-data="{ isTransitioning: false }" 1187 style="--initial-width: 56; --initial-height: 56; --target-width: 56; --target-height: 56" 1188 :style=" 1189 {
1190 '--initial-width': 56, 1191 '--initial-height': 56, 1192 '--target-width': `${$store.resizable._current['search-btn-mobile']?.width || 56}`, 1193 '--target-height': `${$store.resizable._current['search-btn-mobile']?.height || 56}` 1194 } 1195 " 1196 :class=" 1197 { 1198 'resizable--visible': $store.resizable._current['search-btn-mobile'], 1199 'resizable--transitioning': isTransitioning 1200 } 1201 " 1202 x-init="$store.resizable._register({id: 'search-btn-mobile'})" 1203 > 1204 <div 1205 class="resizable__wrapper" 1206 x-a11y-trap="$store.resizable._current['search-btn-mobile']" 1207 > 1208 <div class="resizable__side resizable__side--l"></div> 1209 <div class="resizable__corner resizable__corner--tl"></div> 1210 <div class="resizable__side resizable__side--t"></div> 1211 <div class="resizable__corner resizable__corner--tr"></div> 1212 <div class="resizable__side resizable__side--r"></div> 1213 <div class="resizable__corner resizable__corner--br"></div> 1214 <div class="resizable__side resizable__side--b"></div> 1215 <div class="resizable__corner resizable__corner--bl"></div> 1216 <div 1217 class="resizable__bg" 1218 @transitionstart="isTransitioning = true" 1219 @transitionend="isTransitioning = false; " 1220 ></div> 1221 <div 1222 @click="$store.resizable.show('search-btn-mobile')" 1223 id="search-btn-mobile-initial" 1224 class="resizable__content resizable__content--trigger" 1225 > 1226 1227<button 1228 class="contrast-border md:button--filled-secondary button ghost-primary icon-button icon-button--size-lg" 1229 aria-label="Ouvrir la recherche" 1230 @click.prevent=" 1231 !isMenuVisible ? $store.popup.showPopup('menu') : $store.popup.hidePopup('menu') 1232 setTimeout(() => document.getElementById('searchInput')?.focus(), 150); 1233 "> 1234 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" class="text-text-50" width="24" height="24" role="img"> 1235 <path d="M10 18a7.952 7.952 0 0 0 4.897-1.688l4.396 4.396 1.414-1.414-4.396-4.396A7.952 7.952 0 0 0 18 10c0-4.411-3.589-8-8-8s-8 3.589-8 8 3.589 8 8 8zm0-14c3.309 0 6 2.691 6 6s-2.691 6-6 6-6-2.691-6-6 2.691-6 6-6z"> 1236 </path> 1237</svg> 1238</button> 1239 </div> 1240 <div 1241 class="resizable__content resizable__content--portal overflow-y-hidden" 1242 > 1243 <div 1244 id="search-btn-mobile" 1245 class="resizable__scroll" 1246 :inert="!$store.resizable._current['search-btn-mobile']" 1247 ></div> 1248 </div> 1249 <div 1250 id="search-btn-mobile-fixed" 1251 class="resizable__fixed" 1252 ></div> 1253 </div> 1254</div> 1255 <div 1256 class="resizable resizable--account md:pointer-events-auto resizable--right" 1257 x-data="{ isTransitioning: false }" 1258 style="--initial-width: 56; --initial-height: 56; --target-width: 56; --target-height: 56" 1259 :style=" 1260 { 1261 '--initial-width': 56, 1262 '--initial-height': 56, 1263 '--target-width': `${$store.resizable._current['account-desktop']?.width || 56}`, 1264 '--target-height': `${$store.resizable._current['account-desktop']?.height || 56}` 1265 } 1266 " 1267 :class=" 1268 { 1269 'resizable--visible': $store.resizable._current['account-desktop'], 1270 'resizable--transitioning': isTransitioning 1271 } 1272 " 1273 x-init="$store.resizable._register({id: 'account-desktop'})" 1274 > 1275 <div 1276 class="resizable__wrapper" 1277 x-a11y-trap="$store.resizable._current['account-desktop']" 1278 > 1279 <div class="resizable__side resizable__side--l"></div> 1280 <div class="resizable__corner resizable__corner--tl"></div> 1281 <div class="resizable__side resizable__side--t"></div> 1282 <div class="resizable__corner resizable__corner--tr"></div> 1283 <div class="resizable__side resizable__side--r"></div> 1284 <div class="resizable__corner resizable__corner--br"></div> 1285 <div class="resizable__side resizable__side--b"></div> 1286 <div class="resizable__corner resizable__corner--bl"></div> 1287 <div 1288 class="resizable__bg" 1289 @transitionstart="isTransitioning = true" 1290 @transitionend="isTransitioning = false; " 1291 ></div> 1292 <div 1293 @click="$store.resizable.show('account-desktop')" 1294 id="account-desktop-initial" 1295 class="resizable__content resizable__content--trigger" 1296 > 1297 1298<button 1299 class="contrast-border md:button--filled-secondary button ghost-primary icon-button icon-button--size-lg col-start-5" 1300 :class="{'hidden': !$store.main.isMobile && $store.resizable.isVisible('account-desktop')}" 1301 x-a11y-trap-element="$store.transition.isPreviewActive && !$store.resizable.isVisible()" 1302 @click="!isAccountVisible ? $store.account.showAccount() : $store.account.hideAccount()" 1303 :tabindex="$store.resizable.isVisible('account-desktop') ? -1 : 0" 1304 type="button" 1305 aria-label="View account" 1306> 1307 <div 1308 class="contents text-text-50" 1309 x-show="!isAccountVisible" 1310 >
1311 <span> 1312 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 1313 <path d="M12.004 2a5 5 0 1 0 0 10 5 5 0 0 0 0-10Zm0 8a3 3 0 1 1 0-6 3 3 0 0 1 0 6Zm9 11v-1a7 7 0 0 0-7-7h-4a7 7 0 0 0-7 7v1h2v-1a5 5 0 0 1 5-5h4a5 5 0 0 1 5 5v1h2Z"/> 1314</svg> 1315 </span> 1316 </div> 1317 1318 <div 1319 class="contents" 1320 x-show="isAccountVisible" 1321 style="display: none;" 1322 > 1323 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 1324 <path d="m16.192 6.344-4.243 4.242-4.242-4.242-1.414 1.414L10.535 12l-4.242 4.242 1.414 1.414 4.242-4.242 4.243 4.242 1.414-1.414L13.364 12l4.242-4.242z"> 1325 </path> 1326</svg> 1327 </div> 1328</button> 1329 </div> 1330 <div 1331 class="resizable__content resizable__content--portal overflow-y-hidden" 1332 > 1333 <div 1334 id="account-desktop" 1335 class="resizable__scroll" 1336 :inert="!$store.resizable._current['account-desktop']" 1337 ></div> 1338 </div> 1339 <div 1340 id="account-desktop-fixed" 1341 class="resizable__fixed" 1342 ></div> 1343 </div> 1344</div> 1345 <div 1346 class="resizable resizable--wishlist md:pointer-events-auto resizable--right" 1347 x-data="{ isTransitioning: false }" 1348 style="--initial-width: 56; --initial-height: 56; --target-width: 56; --target-height: 56" 1349 :style=" 1350 { 1351 '--initial-width': 56, 1352 '--initial-height': 56, 1353 '--target-width': `${$store.resizable._current['wishlist-desktop']?.width || 56}`, 1354 '--target-height': `${$store.resizable._current['wishlist-desktop']?.height || 56}` 1355 } 1356 " 1357 :class=" 1358 { 1359 'resizable--visible': $store.resizable._current['wishlist-desktop'], 1360 'resizable--transitioning': isTransitioning 1361 } 1362 " 1363 x-init="$store.resizable._register({id: 'wishlist-desktop'})" 1364 x-cloak 1365 x-show="$store.main?.isUserLoggedIn" 1366 > 1367 <div 1368 class="resizable__wrapper" 1369 x-a11y-trap="$store.resizable._current['wishlist-desktop']" 1370 > 1371 <div class="resizable__side resizable__side--l"></div> 1372 <div class="resizable__corner resizable__corner--tl"></div> 1373 <div class="resizable__side resizable__side--t"></div> 1374 <div class="resizable__corner resizable__corner--tr"></div> 1375 <div class="resizable__side resizable__side--r"></div> 1376 <div class="resizable__corner resizable__corner--br"></div> 1377 <div class="resizable__side resizable__side--b"></div> 1378 <div class="resizable__corner resizable__corner--bl"></div> 1379 <div 1380 class="resizable__bg" 1381 @transitionstart="isTransitioning = true" 1382 @transitionend="isTransitioning = false; " 1383 ></div> 1384 <div 1385 @click="$store.resizable.show('wishlist-desktop')" 1386 id="wishlist-desktop-initial" 1387 class="resizable__content resizable__content--trigger" 1388 > 1389 1390<a 1391 href="https://www.esprit-ktm.com/wishlist/" 1392 x-data="{ 1393 get isWishlistVisible() { 1394 return $store.main.isMobile 1395 ? $store.popup.currentPopup === 'wishlist' 1396 : $store.resizable.isVisible('wishlist-desktop') 1397 } 1398 }" 1399 @click.prevent="$store.wishlist.handleWishlistButtonClick($event, isWishlistVisible)" 1400 class="hidden md:flex header-wishlist-btn contrast-border md:button--filled-secondary button ghost-primary icon-button icon-button--size-lg relative transition-transform duration-300" 1401 aria-label="Voir la liste de souhaits" 1402 x-cloak 1403 x-show="$store.main?.isUserLoggedIn && !(!$store.main.isMobile && $store.resizable.isVisible('wishlist-desktop'))"> 1404 <div class="contents text-black relative" x-show="!isWishlistVisible"> 1405 <span 1406 x-text="$store.wishlist.wishlistItems.length ?? 0" 1407 class="text-text-on-primary-bg absolute bottom-0 left-0 z-50 rounded bg-primary-500 px-1.5 py-0.5 text-xs md:bottom-1 md:left-1"> 1408 </span>
1409 <span 1410 x-show="$store.wishlist.wishlistItems.length === 0"> 1411 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="fill-none stroke-2" width="24" height="24" style="fill:none;stroke-width:2px" role="img"> 1412 <path stroke-linecap="round" stroke-linejoin="round" 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"/> 1413<title>Liste de souhaits</title></svg> 1414 </span> 1415 <span 1416 style="display: none" 1417 x-show="$store.wishlist.wishlistItems.length > 0"> 1418 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" width="24" height="24" role="img"> 1419 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"/> 1420<title>Liste de souhaits</title></svg> 1421 </span> 1422 </div> 1423 <div class="contents" x-show="isWishlistVisible" style="display: none;"> 1424 <span 1425 x-show="$store.wishlist.wishlistItems.length === 0"> 1426 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="fill-none stroke-2" width="24" height="24" style="fill:none;stroke-width:2px" role="img"> 1427 <path stroke-linecap="round" stroke-linejoin="round" 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"/> 1428<title>Liste de souhaits</title></svg> 1429 </span> 1430 <span 1431 style="display: none" 1432 x-show="$store.wishlist.wishlistItems.length > 0"> 1433 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" width="24" height="24" role="img"> 1434 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"/> 1435<title>Liste de souhaits</title></svg> 1436 </span> 1437 </div> 1438</a> </div> 1439 <div 1440 class="resizable__content resizable__content--portal overflow-y-hidden" 1441 > 1442 <div 1443 id="wishlist-desktop" 1444 class="resizable__scroll" 1445 :inert="!$store.resizable._current['wishlist-desktop']" 1446 ></div> 1447 </div> 1448 <div 1449 id="wishlist-desktop-fixed" 1450 class="resizable__fixed" 1451 ></div> 1452 </div> 1453</div> 1454 <div 1455 class="resizable resizable--cart md:pointer-events-auto resizable--right" 1456 x-data="{ isTransitioning: false }" 1457 style="--initial-width: 56; --initial-height: 56; --target-width: 56; --target-height: 56" 1458 :style=" 1459 { 1460 '--initial-width': 56, 1461 '--initial-height': 56, 1462 '--target-width': `${$store.resizable._current['cart-desktop']?.width || 56}`, 1463 '--target-height': `${$store.resizable._current['cart-desktop']?.height || 56}` 1464 } 1465 " 1466 :class=" 1467 { 1468 'resizable--visible': $store.resizable._current['cart-desktop'], 1469 'resizable--transitioning': isTransitioning 1470 } 1471 " 1472 x-init="$store.resizable._register({id: 'cart-desktop'})" 1473 > 1474 <div 1475 class="resizable__wrapper" 1476 x-a11y-trap="$store.resizable._current['cart-desktop']" 1477 > 1478 <div class="resizable__side resizable__side--l"></div> 1479 <div class="resizable__corner resizable__corner--tl"></div> 1480 <div class="resizable__side resizable__side--t"></div> 1481 <div class="resizable__corner resizable__corner--tr"></div> 1482 <div class="resizable__side resizable__side--r"></div> 1483 <div class="resizable__corner resizable__corner--br"></div> 1484 <div class="resizable__side resizable__side--b"></div> 1485 <div class="resizable__corner resizable__corner--bl"></div> 1486 <div 1487 class="resizable__bg" 1488 @transitionstart="isTransitioning = true" 1489 @transitionend="isTransitioning = false; " 1490 ></div> 1491 <div 1492 @click="$store.resizable.show('cart-desktop')" 1493 id="cart-desktop-initial" 1494 class="resizable__content resizable__content--trigger" 1495 > 1496 1497<button 1498 x-init="() => { 1499 $store.cart.setCartTotals({"subtotal":"23.0000","base_subtotal":"23.0000","subtotal_with_discount":"23.0000","base_subtotal_with_discount":"23.0000","tax_amount":"4.6000","base_tax_amount":"4.6000","shipping_amount":"0.0000","base_shipping_amount":"0.0000","shipping_tax_amount":"0.0000","base_shipping_tax_amount":"0.0000","discount_amount":"0.0000","base_discount_amount":"0.0000","grand_total":"27.6000","base_grand_total":"27.6000","shipping_discount_amount":"0.0000","base_shipping_discount_amount":"0.0000","subtotal_incl_tax":"27.6000","shipping_incl_tax":"0.0000","base_shipping_incl_tax":"0.0000","total_segments":[{"code":"subtotal","title":"Sous-total","value":"23.0000","area":null,"extension_attributes":{"tax_details":[{}]}},{"code":"shipping","title":"Frais de port","value":"0.0000","area":null,"extension_attributes":{"tax_details":[{}]}},{"code":"tax","title":"TVA","value":"4.6000","area":null,"extension_attributes":{"tax_grandtotal_details":[{"amount":4.6,"rates":[{"percent":20,"title":"TVA 20%"}],"group_id":1}]}},{"code":"grand_total","title":"Montant global","value":"27.6000","area":"footer","extension_attributes":{"tax_details":[{}]}}],"coupon_code":null,"items":[{},{}],"items_qty":"2.0000","base_currency_code":"EUR","quote_currency_code":"EUR","extension_attributes":[],"is_virtual":0,"review_totals_display_mode":"excluding","review_shipping_display_mode":"excluding","include_tax_in_grand_total":false,"selected_shipping_method":null,"is_zero_tax_displayed":false,"is_full_tax_summary_displayed":false}) 1500 $store.cart.setErrorMessage(``) 1501 $store.cart.setProductCartErrorMessage(``) 1502 }" 1503 x-data="{ 1504 get cartItems() { return $store.cart.cartItems }, 1505 }" 1506 id="cart-button" 1507 class="contrast-border md:button--filled-secondary button ghost-primary icon-button icon-button--size-lg col-start-5" 1508 x-a11y-trap-element="$store.transition.isPreviewActive && !$store.resizable.isVisible()" 1509 @click="!isCartVisible ? $store.cart.showCart() : $store.cart.hideCart()" 1510 type="button" 1511 aria-label="Voir le panier" 1512 :class="{'hidden': !$store.main.isMobile && $store.resizable.isVisible('cart-desktop')}"> 1513 <div 1514 class="contents text-text-50 relative" 1515 x-show="!isCartVisible">
1516 <span 1517 x-text="cartItems.reduce((total, item) => total + Number(item.qty), 0)" 1518 class="text-text-on-primary-bg absolute bottom-0 left-0 z-50 rounded bg-primary-500 px-1.5 py-0.5 text-xs md:bottom-1 md:left-1"> 1519 </span> 1520 <span 1521 style="display: none" 1522 x-show="$store.main.totalCartQty === 0"> 1523 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 1524 <path d="M5 22h14c1.103 0 2-.897 2-2V9a1 1 0 0 0-1-1h-3V7c0-2.757-2.243-5-5-5S7 4.243 7 7v1H4a1 1 0 0 0-1 1v11c0 1.103.897 2 2 2zM9 7c0-1.654 1.346-3 3-3s3 1.346 3 3v1H9V7zm-4 3h2v2h2v-2h6v2h2v-2h2l.002 10H5V10z"> 1525 </path> 1526</svg> 1527 </span> 1528 <span 1529 style="display: none" 1530 x-show="$store.main.totalCartQty === 1"> 1531 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 1532 <path d="M5 22h14a2 2 0 0 0 2-2V9a1 1 0 0 0-1-1h-3v-.777c0-2.609-1.903-4.945-4.5-5.198A5.005 5.005 0 0 0 7 7v1H4a1 1 0 0 0-1 1v11a2 2 0 0 0 2 2zm12-12v2h-2v-2h2zM9 7c0-1.654 1.346-3 3-3s3 1.346 3 3v1H9V7zm-2 3h2v2H7v-2z"> 1533 </path> 1534</svg> 1535 </span> 1536 <span 1537 x-show="$store.main.totalCartQty > 1" 1538 class="-scale-x-100"> 1539 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 1540 <path d="M4 20h2V10a1 1 0 0 1 1-1h12V7a1 1 0 0 0-1-1h-3.051c-.252-2.244-2.139-4-4.449-4S6.303 3.756 6.051 6H3a1 1 0 0 0-1 1v11a2 2 0 0 0 2 2zm6.5-16c1.207 0 2.218.86 2.45 2h-4.9c.232-1.14 1.243-2 2.45-2z"> 1541 </path> 1542 <path d="M21 11H9a1 1 0 0 0-1 1v8a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-8a1 1 0 0 0-1-1zm-6 7c-2.757 0-5-2.243-5-5h2c0 1.654 1.346 3 3 3s3-1.346 3-3h2c0 2.757-2.243 5-5 5z"> 1543 </path> 1544</svg> 1545 </span> 1546 </div> 1547 <div 1548 class="contents" 1549 x-show="isCartVisible" 1550 style="display: none;"> 1551 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 1552 <path d="m16.192 6.344-4.243 4.242-4.242-4.242-1.414 1.414L10.535 12l-4.242 4.242 1.414 1.414 4.242-4.242 4.243 4.242 1.414-1.414L13.364 12l4.242-4.242z"> 1553 </path> 1554</svg> 1555 </div> 1556</button> 1557 </div> 1558 <div 1559 class="resizable__content resizable__content--portal overflow-y-hidden" 1560 > 1561 <div 1562 id="cart-desktop" 1563 class="resizable__scroll" 1564 :inert="!$store.resizable._current['cart-desktop']" 1565 ></div> 1566 </div> 1567 <div 1568 id="cart-desktop-fixed" 1569 class="resizable__fixed" 1570 ></div> 1571 </div> 1572</div> 1573 </div> 1574 </div> 1575 1576 </div> 1577
1577<script> 1578 'use strict'; 1579 (function () { 1580 const initStore = () => { 1581 if (typeof Alpine === 'undefined') return; 1582 1583 if (!Alpine.store('headerNotices')) { 1584 Alpine.store('headerNotices', { 1585 notices: [], 1586 loaded: false, 1587 enabled: false, 1588 fetching: false, 1589 async fetch() { 1590 if (this.loaded || this.fetching) return; 1591 this.fetching = true; 1592 try { 1593 const response = await fetch('https://www.esprit-ktm.com/ham_theme/notice/index/'); 1594 const data = await response.json(); 1595 this.enabled = data.enabled; 1596 this.notices = data.notices || []; 1597 this.loaded = true; 1598 } catch (e) { 1599 console.error('Error fetching notices', e); 1600 this.loaded = true; 1601 } finally { 1602 this.fetching = false; 1603 } 1604 } 1605 }); 1606 } 1607 }; 1608 1609 if (typeof Alpine === 'undefined') { 1610 document.addEventListener('alpine:init', initStore); 1611 } else { 1612 initStore(); 1613 } 1614 })(); 1615</script>
1615 1616 1617<style> 1618 .notice-bar { 1619 overflow: hidden; 1620 position: relative; 1621 } 1622 1623 .notice-track { 1624 display: inline-flex; 1625 align-items: center; 1626 height: 100%; 1627 white-space: nowrap; 1628 } 1629 1630 .notice-track.paused { 1631 animation-play-state: paused !important; 1632 } 1633 1634 .notice-sep { 1635 width: 1px; 1636 height: 14px; 1637 background: rgba(255, 255, 255, 0.5); 1638 margin: 0 1.5rem; 1639 flex-shrink: 0; 1640 } 1641 1642 @media (min-width: 1024px) { 1643 .notice-sep { 1644 margin: 0 2rem; 1645 } 1646 } 1647</style> 1648 1649<div x-data="{}" x-init="$nextTick(() => { if ($store.headerNotices) { $store.headerNotices.fetch() } })" 1650 x-show="!$store.headerNotices?.loaded || ($store.headerNotices?.enabled && $store.headerNotices?.notices.length > 0)" 1651 class="relative z-0 h-[40px]"> 1652 1653 <div class="notice-bar bg-primary-500 text-[14px] font-semibold text-text-on-primary-bg pointer-events-auto uppercase shadow-lg rounded-b-md h-[40px]" 1654 x-data="multiCloneMarquee()" 1655 @mouseenter="pause()" 1656 @mouseleave="resume()"> 1657 1658 <div class="h-full flex items-center overflow-hidden"> 1659 <div x-ref="track" class="notice-track"> 1660 <!-- Original content --> 1661 <div x-ref="original" class="inline-flex items-center h-full shrink-0"> 1662 <template x-for="(item, idx) in $store.headerNotices.notices" :key="idx"> 1663 <div class="inline-flex items-center shrink-0"> 1664 <span x-show="idx > 0 && $store.headerNotices.notices.length > 1" class="notice-sep"></span> 1665 <span class="inline-flex items-center gap-2 shrink-0"> 1666 <template x-if="item.link"> 1667 <a :href="item.link" class="underline hover:opacity-80"><span x-html="item.text"></span></a> 1668 </template> 1669 <template x-if="!item.link"> 1670 <span x-html="item.text"></span> 1671 </template> 1672 <template x-if="item.date"> 1673 <span class="inline-flex items-center gap-1" x-data="countdown()" x-init="startCountdown(item.date)"> 1674 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-5 h-5 stroke-2 fill-none" width="20" height="20" role="img"> 1675 <path stroke-linecap="round" stroke-linejoin="round" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"/> 1676<title>clock</title></svg> 1677 <span x-text="display"></span> 1678 </span> 1679 </template> 1680 </span> 1681 </div> 1682 </template> 1683 <!-- Trailing separator --> 1684 <span x-show="$store.headerNotices.notices.length > 1" class="notice-sep"></span> 1685 </div> 1686 </div> 1687 </div> 1688 </div> 1689</div> 1690
1691<script> 1692 function multiCloneMarquee() { 1693 return { 1694 animationId: null, 1695 position: 0, 1696 speed: 60, 1697 isPaused: false, 1698 lastTime: null, 1699 originalWidth: 0, 1700 clonesCreated: false, 1701 numClones: 6, 1702 1703 init() { 1704 this.$watch('$store.headerNotices.notices', (notices) => { 1705 if (notices && notices.length > 1 && !this.clonesCreated) { 1706 this.setupMarquee(); 1707 } 1708 }); 1709 }, 1710 1711 setupMarquee() { 1712 const checkReady = () => { 1713 const original = this.$refs.original; 1714 if (!original || original.textContent.trim().length < 10) { 1715 setTimeout(checkReady, 50); 1716 return; 1717 } 1718 1719 const width = original.offsetWidth; 1720 if (width === 0) { 1721 setTimeout(checkReady, 50); 1722 return; 1723 } 1724 1725 this.originalWidth = width; 1726 this.createClones(); 1727 this.startAnimation(); 1728 }; 1729 1730 setTimeout(checkReady, 100); 1731 }, 1732 1733 createClones() { 1734 if (this.clonesCreated) return; 1735 1736 const track = this.$refs.track; 1737 const original = this.$refs.original; 1738 1739 // Create 8 clones 1740 for (let i = 0; i < this.numClones; i++) { 1741 const clone = original.cloneNode(true); 1742 clone.setAttribute('aria-hidden', 'true'); 1743 clone.removeAttribute('x-ref'); 1744 1745 // Strip Alpine attributes 1746 const strip = (el) => { 1747 if (el.nodeType !== 1) return; 1748 [...el.attributes].forEach(a => { 1749 if (a.name.startsWith('x-') || a.name.startsWith(':') || a.name.startsWith('@')) { 1750 el.removeAttribute(a.name); 1751 } 1752 }); 1753 [...el.children].forEach(strip); 1754 }; 1755 strip(clone); 1756 1757 track.appendChild(clone); 1758 } 1759 1760 this.clonesCreated = true; 1761 }, 1762 1763 startAnimation() { 1764 this.lastTime = performance.now(); 1765 this.animate(); 1766 }, 1767 1768 animate() { 1769 this.animationId = requestAnimationFrame((currentTime) => { 1770 if (!this.isPaused) { 1771 const deltaTime = (currentTime - this.lastTime) / 1000; 1772 this.position -= this.speed * deltaTime; 1773 1774 // Reset when we've scrolled past the original content width 1775 if (Math.abs(this.position) >= this.originalWidth) { 1776 this.position += this.originalWidth; 1777 } 1778 1779 const track = this.$refs.track; 1780 if (track) { 1781 track.style.transform = `translateX(${this.position}px)`; 1782 } 1783 } 1784 1785 this.lastTime = currentTime; 1786 this.animate(); 1787 }); 1788 }, 1789 1790 pause() { 1791 // Only pause if no popup/menu is open (to avoid pausing when menu overlays the notice) 1792 if (Alpine.store('popup')?.currentPopup) return; 1793 this.isPaused = true; 1794 }, 1795 1796 resume() { 1797 this.isPaused = false; 1798 this.lastTime = performance.now(); 1799 } 1800 }; 1801 } 1802 1803 function countdown() { 1804 return { 1805 display: '', 1806 interval: null, 1807 startCountdown(targetDate) { 1808 if (!targetDate) return; 1809 const target = new Date(targetDate).getTime(); 1810 1811 const update = () => { 1812 const dist = target - Date.now(); 1813 if (dist < 0) { 1814 clearInterval(this.interval); 1815 this.display = 'Offre expirée'; 1816 return; 1817 } 1818 const d = Math.floor(dist / 86400000); 1819 const h = Math.floor((dist % 86400000) / 3600000); 1820 const m = Math.floor((dist % 3600000) / 60000); 1821 const s = Math.floor((dist % 60000) / 1000); 1822 this.display = d > 0 ? `${d}j ${h}h ${m}m ${s}s` : `${h}h ${m}m ${s}s`; 1823 }; 1824 1825 update(); 1826 this.interval = setInterval(update, 1000); 1827 } 1828 }; 1829 } 1830</script>
1830 1831 <div id="end-of-header"></div> 1832 <div class="relative z-[50]"> 1833 1834<div 1835 class="contents" 1836 x-init=" 1837 $store.popup._registerPopup({ 1838 id: 'menu', 1839 isFocused: true, 1840 isFullScreen: true, 1841 isAlwaysVisible: false, 1842 isPreventOverlayClose: false }); 1843 " 1844> 1845 <template x-portal="$store.main.isMobile ? document.getElementById('popup-content-portal') : document.getElementById('menu-desktop')"> 1846 <template x-if="$store.main.isMobile ? $store.popup._nextPopup === 'menu' : true"> 1847 <div 1848 class="contents " 1849 id="menu" 1850 > 1851 1852<nav 1853 class="flex h-full flex-col" 1854 aria-label="Menu principal" 1855 x-data="Search" 1856 :inert="$store.main.isMobile ? $store.popup.currentPopup !== 'menu' : !$store.resizable.isVisible('menu-desktop')"> 1857 <template x-portal="document.getElementById($store.main.isMobile ? 'search-mobile' : 'search-desktop')"> 1858 1859<div> 1860 <form 1861 class="fixed left-0 z-[110] w-full rounded-t-md bg-bg-500 px-5 md:sticky md:w-[--search-width] md:border-b-1 md:border-transparent md:bg-transparent md:px-2 md:pt-0 md:transition-all md:delay-150 md:duration-300 max-md:top-0 max-md:pb-3 max-md:pt-[18px]" 1862 role="search" 1863 :class="{ 1864 'md:bg-bg-500 md:border-bg-600': getIsSearchActive(), 1865 'md:bg-transparent md:border-transparent': !getIsSearchActive(), 1866 'md:max-w-24': !$store.resizable.isVisible('search-desktop') 1867 }" 1868 action="/catalogsearch/result" 1869 method="GET" 1870 @submit.prevent="goToSearchPage('/catalogsearch/result')"> 1871 <div class="relative isolate flex w-full md:min-h-[56px] md:items-center"> 1872 <label 1873 for="searchInput" 1874 class="sr-only tracking-widest"> 1875 Recherche </label> 1876 <input 1877 type="search" 1878 placeholder="Recherche" 1879 class="hover:text-black input__field input__field--filled hover:bg-transparent border-none focus-visible:input__field--outline md:input__field--ghost md:focus-visible:input__field--ghost pr-11 placeholder:text-text-500 md:order-2 md:px-2 md:placeholder:text-black-500 md:focus-visible:border-transparent md:focus-visible:shadow-none md:focus-visible:outline-0" 1880 x-model="searchTermInput" 1881 @input.debounce.1000ms="setSearchTerm" 1882 name="q" 1883 id="searchInput" 1884 x-ref="searchInput" 1885 :tabindex=" 1886 $store.main.isMobile ? 1887 ($store.popup.currentPopup === 'menu' ? 0 : -1) : 1888 ($store.resizable.isVisible('search-desktop') ? 0 : -1) 1889 " 1890 :class="{ 1891 'md:hidden': !$store.resizable.isVisible('search-desktop') 1892 }" 1893 x-a11y-trap-target.initial="$store.resizable.isVisible('search-desktop')" 1894 x-a11y-trap-target.start="getIsSearchActive()"> 1895 <div 1896 class="max-md:icon-button--size-md md:button md:icon-button md:icon-button--size-lg md:order-1 md:text-black-500 max-md:pointer-events-none max-md:absolute max-md:right-0 max-md:top-0 max-md:z-10 max-md:flex max-md:items-center max-md:justify-center max-md:px-0 max-md:text-lg max-md:text-text-500" 1897 x-show="!$store.main.isMobile || !searchTerm" 1898 :class="{ 1899 'md:hidden': !$store.resizable.isVisible('search-desktop') 1900 }"> 1901 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 1902 <path d="M10 18a7.952 7.952 0 0 0 4.897-1.688l4.396 4.396 1.414-1.414-4.396-4.396A7.952 7.952 0 0 0 18 10c0-4.411-3.589-8-8-8s-8 3.589-8 8 3.589 8 8 8zm0-14c3.309 0 6 2.691 6 6s-2.691 6-6 6-6-2.691-6-6 2.691-6 6-6z"> 1903 </path> 1904</svg> 1905 </div> 1906 <button 1907 type="button" 1908 class="icon-button--size-md absolute bottom-0 right-0 top-0 z-10 m-auto flex items-center justify-center px-0 text-xxl text-text-500" 1909 aria-label="Effacer la recherche" 1910 x-show="!!searchTerm" 1911 @click="resetSearchTerm" 1912 :tabindex="$store.resizable.isVisible('search-desktop') ? 0 : -1" 1913 :class="{ 1914 'md:hidden': !$store.resizable.isVisible('search-desktop') 1915 }"> 1916 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 1917 <path d="m16.192 6.344-4.243 4.242-4.242-4.242-1.414 1.414L10.535 12l-4.242 4.242 1.414 1.414 4.242-4.242 4.243 4.242 1.414-1.414L13.364 12l4.242-4.242z"> 1918 </path> 1919<title>Clear</title></svg> 1920 </button> 1921 </div> 1922 </form> 1923 1924 <div 1925 x-show="getIsSearchActive()" 1926 class=" 1927 flex flex-col gap-3 overflow-x-hidden pt-2 transition-opacity duration-0 md:inset-x-0 md:top-full 1928 md:max-h-[calc(100dvh-125px)] md:rounded-t-none md:pt-0 md:duration-300 md:rounded-none md:bg-bg-400 1929 " 1930 x-transition:enter="md:delay-450" 1931 x-transition:enter-start="md:opacity-0" 1932 x-transition:enter-end="md:opacity-100" 1933 x-transition:leave="md:duration-0" 1934 x-transition:leave-start="md:opacity-100" 1935 x-transition:leave-end="md:opacity-0" 1936 :class="{ 1937 'md:hidden': !$store.resizable.isVisible('search-desktop') 1938 }"> 1939 <div class="max-md:mt-[50px]"> 1940 <div 1941 x-show="suggestions.length" 1942 :class="{ 1943 'opacity-0': isLoading && !getIsSearchActive(), 1944 }" 1945> 1946 <div class="relative flex grow flex-col gap-4 p-3 pb-2 md:p-5"> 1947 <div class="pb-2"> 1948 <h2 class="text-lg">Suggestions</h2> 1949 </div> 1950 <div class="flex min-h-11 flex-col gap-2 md:min-h-[48px]"> 1951 <div class="-mx-5 flex gap-3 overflow-x-auto px-5 py-1 md:max-w-[--search-width] max-md:pb-3"> 1952 <template x-for="suggestion in suggestions"> 1953 <a 1954 :href="'/catalogsearch/result/?q=' + suggestion.search" 1955 class="button button--outline-secondary" 1956 x-element-transition-trigger 1957 x-text="suggestion.search" 1958 ></a> 1959 </template> 1960 </div> 1961 </div> 1962 </div> 1963 1964 <hr 1965 x-show="suggestions.length" 1966 class="divider -mx-3" 1967 :class="{ 'opacity-0': isLoading }" 1968 x-transition 1969 > 1970</div> 1971 <div 1972 x-show="searchTerm.length > 2 && products.length > 0 && categories.length > 0" 1973 :class="{ 1974 'opacity-0': isLoading && !getIsSearchActive(), 1975 }"> 1976 <div class="relative flex grow flex-col gap-4 p-3 pb-2 md:p-5"> 1977 <div class="pb-2"> 1978 <h2 class="text-lg">Catégories</h2> 1979 </div> 1980 <div class="flex flex-col gap-2"> 1981 <p x-show="!isLoading && !categories.length && searchTerm"> 1982 <b class="font-semibold text-secondary-700">Oups !</b> 1983 Nous n'avons trouvé aucune catégorie correspondant à votre recherche. </p> 1984 1985 <div 1986 x-show="categories.length" 1987 class="-mx-5 flex gap-3 overflow-x-auto px-5 py-1 md:max-w-[--search-width] max-md:pb-3"> 1988 <template x-for="category in categories"> 1989 <a 1990 :href="`/${category.url_path}.html`" 1991 class="button button--outline-secondary" 1992 x-element-transition-trigger:category.animate="{ 1993 'title': category.name, 1994 }" 1995 x-text="category.name"></a> 1996 </template> 1997 </div> 1998 </div> 1999 </div> 2000 2001 <hr 2002 x-show="searchTerm.length > 2" 2003 class="divider -mx-3" 2004 :class="{ 'opacity-0': isLoading }"> 2005</div> 2006<div 2007 class="transition overflow-hidden" 2008 :class="{ 2009 'opacity-0': isLoading && !getIsSearchActive(), 2010 }"> 2011 <div class="flex grow flex-col gap-4 p-3 pb-2 md:p-5"> 2012 <div class="pb-2"> 2013 <h2 class="text-lg">Produits</h2> 2014 </div>
2015 <div class="min-h-11 md:min-h-0"> 2016 <p x-show="!isLoading && !products.length && searchTerm.length >=3"> 2017 <b class="font-semibold text-secondary-700">Oups !</b> 2018 Nous n'avons trouvé aucun produit correspondant à votre recherche. </p> 2019 <p x-show="searchTerm.length < 3 && !isLoading"> 2020 La longueur minimale de la requête de recherche est de 3 </p> 2021 <div 2022 x-show="products.length" 2023 class="grid grid-cols-2 gap-5 content-start md:grid-cols-3 lg:grid-cols-4" 2024 x-transition.opacity 2025 x-transition.duration.700ms> 2026 <template 2027 x-for="product in products" 2028 :key="product.id"> 2029 <div 2030 x-show="!!product.url_rewrites?.[0]?.url" 2031 class=" card-product h-full"> 2032 <a 2033 :href="`/${product.url_rewrites?.[0]?.url}`" 2034 x-element-transition-trigger:product.animate="{ 2035 'productImg': product.media_gallery?.[0]?.url || 'https://www.esprit-ktm.com/media/catalog/product/placeholder/stores/9/Produit_sans_image-KTM-FR.png', 2036 'title': product.name, 2037 'mediaCount': product.media_gallery?.length || 3 2038 }" 2039 class="card-hover group relative flex h-full min-w-0"> 2040 <!-- Aspect Ratio div --> 2041 <div class="h-0 w-0" style="padding-bottom: calc(100% * 1 / var(--product-aspect-ratio) + 81px)"></div> 2042 2043 <!-- Product Article --> 2044 <article 2045 class="product-card contrast-border z-10 w-full text-start" 2046 x-data="ProductPage()" 2047 > 2048 2049 <!-- this image is needed to avoid blink in preview on desktop as there, the select variant is shown, not featured image --> 2050 <img width="0" height="0" class="pointer-events-none invisible absolute hidden h-0 w-0 md:block" 2051 src="https://media.esprit-ktm.com/unsafe/resize:fit:800:800/plain/local://media/catalog/product/placeholder/stores/9/Produit_sans_image-KTM-FR.png" alt=""> 2052 2053 <div class="product-card__media" x-element-transition-src="img" 2054 style="transform: translateZ(0)"> 2055 2056 <div 2057 class="product-card__image-wrap"> 2058 <img 2059 :src="product.media_gallery?.[0]?.url || 'https://www.esprit-ktm.com/media/catalog/product/placeholder/stores/9/Produit_sans_image-KTM-FR.png'" 2060 :alt="product.image?.label" 2061 class="product-card__image mix-blend-darken object-contain" 2062 width="" 2063 height="" 2064 alt="" /> 2065 </div> 2066 2067 2068 <div 2069 x-data=" 2070 { 2071 finalPrice: product.price_range.minimum_price.final_price.value, 2072 regularPrice: product.price_range.minimum_price.regular_price.value 2073 } 2074 " 2075 class="card-product__badge-container z-10 rounded-[40px] bg-bg-500 px-3 text-sm min-h-[18px] py-1 top left" 2076 x-show="regularPrice>finalPrice && regularPrice"> 2077 <span x-text="'-' + Math.round(((regularPrice - finalPrice) * 100.0) / regularPrice) + '%'" class="font-semibold"> 2078 </span> 2079 </div> 2080 2081 2082 2083 2084 2085 <div class="z-10" 2086 style="position: absolute; top: 5px; right: 5px;" 2087 x-element-transition-skip='{"transformOrigin": "right top"}' 2088 x-data="{ 2089 selectedModel: '', 2090 compatibleModels: (product.ham_models || []), 2091 isCompatible: false, 2092 2093 init() { 2094 // Get selected model from cookie 2095 this.updateSelectedModel(); 2096 2097 // Watch for cookie changes 2098 this.$watch('selectedModel', (value) => { 2099 this.checkCompatibility(); 2100 }); 2101 2102 // Listen for partfinder reset/changes 2103 window.addEventListener('partfinder-reset', () => { 2104 this.updateSelectedModel(); 2105 }); 2106 2107 window.addEventListener('partfinder-changed', () => { 2108 this.updateSelectedModel(); 2109 }); 2110 }, 2111 2112 updateSelectedModel() { 2113 const cookie = document.cookie.split('; ').find(row => row.startsWith('selected_model=')); 2114 this.selectedModel = cookie ? decodeURIComponent(cookie.split('=')[1]) : ''; 2115 this.checkCompatibility(); 2116 }, 2117 2118 checkCompatibility() { 2119 if (!this.selectedModel) { 2120 this.isCompatible = false;
2121 return; 2122 } 2123 2124 // Check if selected model is in compatible models 2125 this.isCompatible = this.compatibleModels.some(model => { 2126 return model.toString().toLowerCase() === this.selectedModel.toLowerCase(); 2127 }); 2128 } 2129 }" 2130 x-show="isCompatible" 2131 x-cloak> 2132 2133 <div class="flex items-center gap-1 bg-green-500 text-white px-2 py-1 rounded shadow-md text-xs font-semibold uppercase"> 2134 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-4 h-4 stroke-2 fill-none stroke-white" width="16" height="16" role="img"> 2135 <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"/> 2136<title>check</title></svg> 2137 <span>Compatible</span> 2138 </div> 2139 </div> 2140 2141 2142 2143 </div> 2144 2145 <div class="product-card__body"> 2146 <div class="flex flex-col gap-2" 2147 x-data="{ 2148 baseProductName: product.name || '', 2149 compatibleModels: (product.ham_models || []), 2150 selectedModel: '', 2151 productType: product.type_id || '', 2152 shouldAppendModel: false, 2153 isCompatible: false, 2154 2155 init() { 2156 // Get selected model from cookie 2157 this.updateSelectedModel(); 2158 2159 // Listen for partfinder reset/changes 2160 window.addEventListener('partfinder-reset', () => { 2161 this.updateSelectedModel(); 2162 }); 2163 2164 window.addEventListener('partfinder-changed', () => { 2165 this.updateSelectedModel(); 2166 }); 2167 }, 2168 2169 updateSelectedModel() { 2170 const cookie = document.cookie.split('; ').find(row => row.startsWith('selected_model=')); 2171 this.selectedModel = cookie ? decodeURIComponent(cookie.split('=')[1]) : ''; 2172 this.checkCompatibility(); 2173 }, 2174 2175 checkCompatibility() { 2176 if (!this.selectedModel || !this.compatibleModels || this.compatibleModels.length === 0) { 2177 this.isCompatible = false; 2178 this.shouldAppendModel = false; 2179 return; 2180 } 2181 2182 // Check if selected model is in compatible models 2183 const modelsArray = Array.isArray(this.compatibleModels) 2184 ? this.compatibleModels 2185 : this.compatibleModels.split(',').map(m => m.trim()); 2186 2187 this.isCompatible = modelsArray.some(model => { 2188 return model.toString().toLowerCase() === this.selectedModel.toLowerCase(); 2189 }); 2190 2191 this.shouldAppendModel = this.isCompatible; 2192 }, 2193 2194 get displayName() { 2195 if (!this.shouldAppendModel || !this.selectedModel) { 2196 return this.decodeHtml(this.baseProductName); 2197 } 2198 2199 let cleanedName = this.baseProductName; 2200 2201 // Clean the product name based on product type 2202 if (this.productType === 'simple') { 2203 // Remove existing 'pour' suffix for simple products 2204 const pourMatch = cleanedName.match(/\s+pour\s+/i); 2205 if (pourMatch) { 2206 cleanedName = cleanedName.substring(0, pourMatch.index); 2207 } 2208 } else if (this.productType === 'grouped') { 2209 // Remove 'no/n°/num/#' suffix for grouped products 2210 cleanedName = cleanedName.replace(/\s+(no|n°|nº|num|#)\s*\d+$/i, ''); 2211 } 2212 2213 // Append model text 2214 const finalName = cleanedName.trim() + ' pour ' + this.selectedModel; 2215 2216 return this.decodeHtml(finalName); 2217 }, 2218 2219 decodeHtml(str) { 2220 let txt = document.createElement('textarea'); 2221 txt.innerHTML = str; 2222 return txt.value; 2223 } 2224 }"> 2225 <h2 2226 class="product-card__title" 2227 x-text="decodeHtml(product.name)" 2228 ></h2> 2229 2230 </div> 2231 </div> 2232 </article> 2233 </a> 2234</div> </template> 2235 </div> 2236 <div 2237 x-show="products.length" 2238 class="min-h-24 md:hidden"></div> 2239 </div> 2240 </div> 2241 <template 2242 x-portal="$store.main.isMobile ? document.getElementById('popup-fixed-content-portal') : document.getElementById('search-actions')"> 2243 <div 2244 x-show="$store.main.isMobile ? $store.popup.currentPopup === 'menu' && getIsSearchActive() && products.length : getIsSearchActive() && products.length" 2245 class="relative bg-bg-500 px-4 pb-2 transition-opacity md:p-0 md:pt-1 md:mx-5 md:mb-5" 2246 :class="{ 'opacity-0': isLoading }"> 2247 <div class="absolute -top-10 -mx-5 end-0 start-0 h-10 bg-gradient-to-t from-bg-500 to-transparent"></div> 2248 <button 2249 class="button button--filled-primary w-full" 2250 @click.prevent="goToSearchPage('/catalogsearch/result')" 2251 x-a11y-trap-target.end="getIsSearchActive()" 2252 x-element-transition-trigger:search.animate="{ 2253 search: searchTermInput 2254 }"> 2255 Voir tout </button> 2256 </div> 2257 </template> 2258</div> 2259 </div> 2260 <div 2261 class="transition-opacity duration-300 md:sticky md:bottom-0 md:z-10 md:w-full md:rounded-b-md md:bg-bg-500" 2262 id="search-actions" 2263 x-show="!isLoading" 2264 x-transition.opacity 2265 x-transition:leave.duration.300ms 2266 x-transition:enter.delay.300ms 2267 :class="{ 'opacity-0': isLoading, 'md:opacity-100': !isLoading}"></div> 2268 </div> 2269</div> 2270 </template> 2271 2272 <div 2273 class="contents md:hidden" 2274 id="search-mobile"></div> 2275 2276 <div 2277 id="menu-sections" 2278 class="menu__wrapper" 2279 x-data="{ 2280 history: ['all'], 2281 delayedLevel: 1, 2282 setHistory(history) { 2283 this.history = history; 2284 2285 setTimeout(() => { 2286 this.delayedLevel = history.length; 2287 2288 if (history.length) { 2289 const level = history[history.length - 1] 2290 document.querySelector(`[data-menu-level='${level}'] a`)?.focus(); 2291 } 2292 }, 300); 2293 } 2294 }" 2295 x-show="!$store.main.isMobile || !getIsSearchActive()"> 2296 <div 2297 class="menu__level relative z-[100]" 2298 :class="{ 2299 'menu__level--current': history[history.length - 1] === 'all', 2300 'menu__level--visible': history.includes('all'), 2301 'menu__level--same-depth': 1 <= delayedLevel, 2302 'hidden': !$store.main.isMobile && !$store.resizable.isVisible('menu-desktop'), 2303 }" 2304 :inert="!history.includes('all')" 2305 data-menu-level="all"> 2306 <div class="menu__header"> 2307 <div class="menu__header-container p-2 md:flex md:flex-col"> 2308 <template x-if="!$store.main.isMobile"> 2309 <button 2310 @click="$store.resizable.hideAll();" 2311 type="button" 2312 class="button icon-button icon-button--size-lg h-auto w-auto gap-3 pl-2 pr-[10px] py-3 text-primary-500 hover:bg-bg-600" 2313 aria-label="Fermer le menu" 2314 aria-controls="menu-desktop" 2315 :aria-expanded="$store.resizable.isVisible('menu-desktop')"> 2316 <div class="contents"> 2317 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 2318 <path d="m16.192 6.344-4.243 4.242-4.242-4.242-1.414 1.414L10.535 12l-4.242 4.242 1.414 1.414 4.242-4.242 4.243 4.242 1.414-1.414L13.364 12l4.242-4.242z"> 2319 </path> 2320</svg> 2321 </div>
2322 <span class="text-md font-semibold">Fermer</span> 2323 </button> 2324 </template> 2325 2326 <button 2327 @click="history.pop()" 2328 type="button" 2329 aria-label="Revenir au menu précédent" 2330 class="menu__back-button py-3 motion-reduce:max-md:animate-none" 2331 :class="{ 2332 'menu__back-button--visible max-md:animate-slideIconIn motion-reduce:translate-x-0': history.length !== 1, 2333 'max-md:animate-slideIconOut motion-reduce:-translate-x-full': history.length == 1 2334 }" 2335 :tabindex="history.length === 1 ? -1 : 0" 2336 :aria-hidden="history.length === 1"> 2337 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 2338 <path d="M13.293 6.293 7.586 12l5.707 5.707 1.414-1.414L10.414 12l4.293-4.293z"/> 2339</svg> 2340 </button> 2341 2342 <h2 2343 class="menu__heading py-3 motion-reduce:max-md:animate-none" 2344 style="--translate-width: 52px;" 2345 :class="{ 2346 'menu__heading--root': 'all' === 'all', 2347 'max-md:w-[calc(100%-var(--translate-width))]': 'all' !== 'all', 2348 'max-md:animate-slideTitleIn motion-reduce:translate-x-[--translate-width]': history.length !== 1, 2349 'max-md:animate-slideTitleOut motion-reduce:translate-x-0': history.length == 1 2350 }" 2351 x-show="$store.main.isMobile || 'all' !== 'all'"> 2352 Toutes les catégories </h2> 2353 2354 <div id="menu-actions-all" class="md:mt-[6px] md:flex-none md:flex-row"></div> 2355 </div> 2356 <hr class="divider -mx-5 md:hidden"> 2357 </div> 2358 2359 <ul role="list" class="menu__links"> 2360 <li> 2361 <button 2362 x-a11y-trap-target.initial="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'all'" 2363 class="menu__link group" 2364 @click="setHistory([...'all'.split(','), 'category-node-1766'])" 2365 :class="{ 'menu__link--active': history.includes('category-node-1766') }" 2366 role="button" 2367 :aria-expanded="history.includes('category-node-1766')"> 2368 <span class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 2369 <!-- DEBUG: Logo = EMPTY --> 2370 Pièces Origine KTM </span> 2371 <span class="text-xl transition-[color,transform] md:group-hover:-translate-x-3 md:group-hover:text-primary-600"> 2372 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 2373 <path d="M10.707 17.707 16.414 12l-5.707-5.707-1.414 1.414L13.586 12l-4.293 4.293z"/> 2374</svg> 2375 </span> 2376 </button> 2377 <template x-portal="document.getElementById('menu-sections')"> 2378 <div 2379 class="menu__level relative z-[100]" 2380 :class="{ 2381 'menu__level--current': history[history.length - 1] === 'category-node-1766', 2382 'menu__level--visible': history.includes('category-node-1766'), 2383 'menu__level--same-depth': 2 <= delayedLevel, 2384 'hidden': !$store.main.isMobile && !$store.resizable.isVisible('menu-desktop'), 2385 }" 2386 :inert="!history.includes('category-node-1766')" 2387 data-menu-level="category-node-1766"> 2388 <div class="menu__header"> 2389 <div class="menu__header-container p-2 md:flex md:flex-col"> 2390 2391 <button 2392 @click="history.pop()" 2393 type="button" 2394 aria-label="Revenir au menu précédent" 2395 class="menu__back-button py-3 motion-reduce:max-md:animate-none" 2396 :class="{ 2397 'menu__back-button--visible max-md:animate-slideIconIn motion-reduce:translate-x-0': history.length !== 1, 2398 'max-md:animate-slideIconOut motion-reduce:-translate-x-full': history.length == 1 2399 }" 2400 :tabindex="history.length === 1 ? -1 : 0" 2401 :aria-hidden="history.length === 1"> 2402 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 2403 <path d="M13.293 6.293 7.586 12l5.707 5.707 1.414-1.414L10.414 12l4.293-4.293z"/> 2404</svg> 2405 </button> 2406 2407 <h2 2408 class="menu__heading py-3 motion-reduce:max-md:animate-none" 2409 style="--translate-width: 52px;" 2410 :class="{ 2411 'menu__heading--root': 'category-node-1766' === 'all', 2412 'max-md:w-[calc(100%-var(--translate-width))]': 'category-node-1766' !== 'all', 2413 'max-md:animate-slideTitleIn motion-reduce:translate-x-[--translate-width]': history.length !== 1, 2414 'max-md:animate-slideTitleOut motion-reduce:translate-x-0': history.length == 1 2415 }" 2416 x-show="$store.main.isMobile || 'category-node-1766' !== 'all'"> 2417 Pièces Origine KTM </h2> 2418 2419 <div id="menu-actions-category-node-1766" class="md:mt-[6px] md:flex-none md:flex-row"></div> 2420 </div> 2421 <hr class="divider -mx-5 md:hidden"> 2422 </div> 2423 2424 <ul role="list" class="menu__links"> 2425 <li> 2426 <button 2427 x-a11y-trap-target.initial="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1766'" 2428 class="menu__link group" 2429 @click="setHistory([...'all,category-node-1766'.split(','), 'category-node-1777'])" 2430 :class="{ 'menu__link--active': history.includes('category-node-1777') }" 2431 role="button" 2432 :aria-expanded="history.includes('category-node-1777')">
2433 <span class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 2434 <!-- DEBUG: Logo = EMPTY --> 2435 Partie cycle </span> 2436 <span class="text-xl transition-[color,transform] md:group-hover:-translate-x-3 md:group-hover:text-primary-600"> 2437 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 2438 <path d="M10.707 17.707 16.414 12l-5.707-5.707-1.414 1.414L13.586 12l-4.293 4.293z"/> 2439</svg> 2440 </span> 2441 </button> 2442 <template x-portal="document.getElementById('menu-sections')"> 2443 <div 2444 class="menu__level relative z-[100]" 2445 :class="{ 2446 'menu__level--current': history[history.length - 1] === 'category-node-1777', 2447 'menu__level--visible': history.includes('category-node-1777'), 2448 'menu__level--same-depth': 3 <= delayedLevel, 2449 'hidden': !$store.main.isMobile && !$store.resizable.isVisible('menu-desktop'), 2450 }" 2451 :inert="!history.includes('category-node-1777')" 2452 data-menu-level="category-node-1777"> 2453 <div class="menu__header"> 2454 <div class="menu__header-container p-2 md:flex md:flex-col"> 2455 2456 <button 2457 @click="history.pop()" 2458 type="button" 2459 aria-label="Revenir au menu précédent" 2460 class="menu__back-button py-3 motion-reduce:max-md:animate-none" 2461 :class="{ 2462 'menu__back-button--visible max-md:animate-slideIconIn motion-reduce:translate-x-0': history.length !== 1, 2463 'max-md:animate-slideIconOut motion-reduce:-translate-x-full': history.length == 1 2464 }" 2465 :tabindex="history.length === 1 ? -1 : 0" 2466 :aria-hidden="history.length === 1"> 2467 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 2468 <path d="M13.293 6.293 7.586 12l5.707 5.707 1.414-1.414L10.414 12l4.293-4.293z"/> 2469</svg> 2470 </button> 2471 2472 <h2 2473 class="menu__heading py-3 motion-reduce:max-md:animate-none" 2474 style="--translate-width: 52px;" 2475 :class="{ 2476 'menu__heading--root': 'category-node-1777' === 'all', 2477 'max-md:w-[calc(100%-var(--translate-width))]': 'category-node-1777' !== 'all', 2478 'max-md:animate-slideTitleIn motion-reduce:translate-x-[--translate-width]': history.length !== 1, 2479 'max-md:animate-slideTitleOut motion-reduce:translate-x-0': history.length == 1 2480 }" 2481 x-show="$store.main.isMobile || 'category-node-1777' !== 'all'"> 2482 Partie cycle </h2> 2483 2484 <div id="menu-actions-category-node-1777" class="md:mt-[6px] md:flex-none md:flex-row"></div> 2485 </div> 2486 <hr class="divider -mx-5 md:hidden"> 2487 </div> 2488 2489 <ul role="list" class="menu__links"> 2490 <li> 2491 <a 2492 x-a11y-trap-target.initial="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1777'" 2493 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/abs.html" 2494 role="link" 2495 x-element-transition-trigger:category.animate="{ 2496 'title': `ABS`, 2497 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/abs.html', 2498 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie cycle","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-cycle.html"}], 2499 'img': '', 2500 'description': ``, 2501 }" 2502 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 2503 :class="{ 2504 'text-primary-500 font-semibold': history.includes('category-node-3121') 2505 }">
2506 <span 2507 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 2508 <!-- DEBUG: Logo = EMPTY --> 2509 ABS </span> 2510 </a> 2511 </li> 2512 <li> 2513 <a 2514 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/accelerateur.html" 2515 role="link" 2516 x-element-transition-trigger:category.animate="{ 2517 'title': `Accelérateur`, 2518 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/accelerateur.html', 2519 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie cycle","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-cycle.html"}], 2520 'img': '', 2521 'description': ``, 2522 }" 2523 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 2524 :class="{ 2525 'text-primary-500 font-semibold': history.includes('category-node-3125') 2526 }"> 2527 <span 2528 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 2529 <!-- DEBUG: Logo = EMPTY --> 2530 Accelérateur </span> 2531 </a> 2532 </li> 2533 <li> 2534 <a 2535 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/allumage.html" 2536 role="link" 2537 x-element-transition-trigger:category.animate="{ 2538 'title': `Allumage`, 2539 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/allumage.html', 2540 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie cycle","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-cycle.html"}], 2541 'img': '', 2542 'description': ``, 2543 }" 2544 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 2545 :class="{ 2546 'text-primary-500 font-semibold': history.includes('category-node-3123') 2547 }"> 2548 <span 2549 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 2550 <!-- DEBUG: Logo = EMPTY --> 2551 Allumage </span> 2552 </a> 2553 </li> 2554 <li> 2555 <a 2556 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/accessoires.html" 2557 role="link" 2558 x-element-transition-trigger:category.animate="{ 2559 'title': `Accessoires`, 2560 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/accessoires.html', 2561 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie cycle","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-cycle.html"}], 2562 'img': '', 2563 'description': `<p>Accessoires KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R,</p><p>Lire la suite</p><p>1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke,KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 129
25630 Super Adventure</p><p></p><p>Découvrez nos tutos en cliquant <a href="https://youtu.be/FkyJbpzuyOA" target="_blank" rel="noopener">ici</a>.</p>`, 2564 }" 2565 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 2566 :class="{ 2567 'text-primary-500 font-semibold': history.includes('category-node-1792') 2568 }"> 2569 <span 2570 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 2571 <!-- DEBUG: Logo = EMPTY --> 2572 Accessoires </span> 2573 </a> 2574 </li> 2575 <li> 2576 <a 2577 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/boite-de-vitesses.html" 2578 role="link" 2579 x-element-transition-trigger:category.animate="{ 2580 'title': `Boîte de vitesses`, 2581 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/boite-de-vitesses.html', 2582 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie cycle","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-cycle.html"}], 2583 'img': '', 2584 'description': ``, 2585 }" 2586 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 2587 :class="{ 2588 'text-primary-500 font-semibold': history.includes('category-node-3126') 2589 }"> 2590 <span 2591 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 2592 <!-- DEBUG: Logo = EMPTY --> 2593 Boîte de vitesses </span> 2594 </a> 2595 </li> 2596 <li> 2597 <a 2598 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/bras-oscillant.html" 2599 role="link" 2600 x-element-transition-trigger:category.animate="{ 2601 'title': `Bras oscillant`, 2602 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/bras-oscillant.html', 2603 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie cycle","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-cycle.html"}], 2604 'img': '', 2605 'description': `<p>Bras oscillant KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke,KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 129
26050 Super Adventure</p><p></p><p>Retrouvez nos tutos <a href="https://www.youtube.com/watch?v=lI73SFc8RTs">ici</a>.</p>`, 2606 }" 2607 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 2608 :class="{ 2609 'text-primary-500 font-semibold': history.includes('category-node-1782') 2610 }"> 2611 <span 2612 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 2613 <!-- DEBUG: Logo = EMPTY --> 2614 Bras oscillant </span> 2615 </a> 2616 </li> 2617 <li> 2618 <a 2619 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/cadre.html" 2620 role="link" 2621 x-element-transition-trigger:category.animate="{ 2622 'title': `Cadre`, 2623 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/cadre.html', 2624 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie cycle","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-cycle.html"}], 2625 'img': '', 2626 'description': `Cadre KTM, bras arrière KTM, béquille latérale KTM, sabot KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke,KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 1290 Super Adventure`, 2627 }" 2628 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 2629 :class="{ 2630 'text-primary-500 font-semibold': history.includes('category-node-1796') 2631 }"> 2632 <span 2633 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 2634 <!-- DEBUG: Logo = EMPTY --> 2635 Cadre </span> 2636 </a> 2637 </li> 2638 <li> 2639 <a 2640 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/carenage-deco.html" 2641 role="link" 2642 x-element-transition-trigger:category.animate="{ 2643 'title': `Carénage, déco`, 2644 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/carenage-deco.html', 2645 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie cycle","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-cycle.html"}], 2646 'img': '', 2647 'description': `Carénage KTM, déco KTM, plaque KTM, garde-boue KTM, habillage latéral KTM, technique information sticker KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 129
26470 Super Adventure`, 2648 }" 2649 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 2650 :class="{ 2651 'text-primary-500 font-semibold': history.includes('category-node-1779') 2652 }"> 2653 <span 2654 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 2655 <!-- DEBUG: Logo = EMPTY --> 2656 Carénage, déco </span> 2657 </a> 2658 </li> 2659 <li> 2660 <a 2661 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/direction.html" 2662 role="link" 2663 x-element-transition-trigger:category.animate="{ 2664 'title': `Direction (Guidon, Retro, poignée...)`, 2665 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/direction.html', 2666 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie cycle","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-cycle.html"}], 2667 'img': '', 2668 'description': `<p>Direction KTM, guidon KTM, armatures KTM, rétro KTM, poignées KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke,KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 1290 Super Adventure</p><p></p><p>Retrouvez nos tutos <a href="https://www.youtube.com/watch?v=Xx8wQVlkWhc">ici</a>.</p>`, 2669 }" 2670 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 2671 :class="{ 2672 'text-primary-500 font-semibold': history.includes('category-node-1783') 2673 }"> 2674 <span 2675 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 2676 <!-- DEBUG: Logo = EMPTY --> 2677 Direction (Guidon, Retro, poignée...) </span> 2678 </a> 2679 </li> 2680 <li> 2681 <a 2682 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/echappement.html" 2683 role="link" 2684 x-element-transition-trigger:category.animate="{ 2685 'title': `Echappement`, 2686 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/echappement.html', 2687 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie cycle","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-cycle.html"}], 2688 'img': '', 2689 'description': `Echappement KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke,KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 129
26890 Super Adventure`, 2690 }" 2691 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 2692 :class="{ 2693 'text-primary-500 font-semibold': history.includes('category-node-1790') 2694 }"> 2695 <span 2696 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 2697 <!-- DEBUG: Logo = EMPTY --> 2698 Echappement </span> 2699 </a> 2700 </li> 2701 <li> 2702 <a 2703 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/eclairage.html" 2704 role="link" 2705 x-element-transition-trigger:category.animate="{ 2706 'title': `Eclairage`, 2707 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/eclairage.html', 2708 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie cycle","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-cycle.html"}], 2709 'img': '', 2710 'description': `Eclairage KTM, instruments KTM, système de verrouillage KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke,KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 1290 Super Adventure `, 2711 }" 2712 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 2713 :class="{ 2714 'text-primary-500 font-semibold': history.includes('category-node-1778') 2715 }"> 2716 <span 2717 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 2718 <!-- DEBUG: Logo = EMPTY --> 2719 Eclairage </span> 2720 </a> 2721 </li> 2722 <li> 2723 <a 2724 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/faisceau-electrique.html" 2725 role="link" 2726 x-element-transition-trigger:category.animate="{ 2727 'title': `Faisceau électrique`, 2728 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/faisceau-electrique.html', 2729 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie cycle","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-cycle.html"}], 2730 'img': '', 2731 'description': `Faisceau électrique KTM, batterie KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke,KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 129
27310 Super Adventure`, 2732 }" 2733 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 2734 :class="{ 2735 'text-primary-500 font-semibold': history.includes('category-node-1791') 2736 }"> 2737 <span 2738 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 2739 <!-- DEBUG: Logo = EMPTY --> 2740 Faisceau électrique </span> 2741 </a> 2742 </li> 2743 <li> 2744 <a 2745 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/filtre-a-air.html" 2746 role="link" 2747 x-element-transition-trigger:category.animate="{ 2748 'title': `Filtre à air`, 2749 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/filtre-a-air.html', 2750 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie cycle","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-cycle.html"}], 2751 'img': '', 2752 'description': `Filtre à air KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke,KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 1290 Super Adventure`, 2753 }" 2754 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 2755 :class="{ 2756 'text-primary-500 font-semibold': history.includes('category-node-1798') 2757 }"> 2758 <span 2759 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 2760 <!-- DEBUG: Logo = EMPTY --> 2761 Filtre à air </span> 2762 </a> 2763 </li> 2764 <li> 2765 <a 2766 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/filtre-a-charbon-actif.html" 2767 role="link" 2768 x-element-transition-trigger:category.animate="{ 2769 'title': `Filtre à charbon actif`, 2770 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/filtre-a-charbon-actif.html', 2771 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie cycle","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-cycle.html"}], 2772 'img': '', 2773 'description': `Filtre à charbon actif KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke,KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 129
27730 Super Adventure`, 2774 }" 2775 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 2776 :class="{ 2777 'text-primary-500 font-semibold': history.includes('category-node-1805') 2778 }"> 2779 <span 2780 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 2781 <!-- DEBUG: Logo = EMPTY --> 2782 Filtre à charbon actif </span> 2783 </a> 2784 </li> 2785 <li> 2786 <a 2787 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/fourche.html" 2788 role="link" 2789 x-element-transition-trigger:category.animate="{ 2790 'title': `Fourche`, 2791 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/fourche.html', 2792 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie cycle","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-cycle.html"}], 2793 'img': '', 2794 'description': `<p>Fourche KTM, fourche télescopique KTM, rondelles WP KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke,KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 1290 Super Adventure</p><p></p><p>Retrouvez nos tutos <a href="https://www.youtube.com/watch?v=HTHtL44lVWA">ici</a>.</p>`, 2795 }" 2796 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 2797 :class="{ 2798 'text-primary-500 font-semibold': history.includes('category-node-1793') 2799 }"> 2800 <span 2801 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 2802 <!-- DEBUG: Logo = EMPTY --> 2803 Fourche </span> 2804 </a> 2805 </li> 2806 <li> 2807 <a 2808 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/freins.html" 2809 role="link" 2810 x-element-transition-trigger:category.animate="{ 2811 'title': `Freins`, 2812 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/freins.html', 2813 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie cycle","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-cycle.html"}], 2814 'img': '', 2815 'description': `<p>Freins KTM, maitres cylindre KTM, système de frein arrière KTM, étrier de frein avant et arrière KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke,KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 129
28150 Super Adventure</p><p>Lien pour les tutos <a href="https://www.youtube.com/watch?v=OH6oLRMnIMM" target="_blank" rel="noopener">ici</a>.</p>`, 2816 }" 2817 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 2818 :class="{ 2819 'text-primary-500 font-semibold': history.includes('category-node-1788') 2820 }"> 2821 <span 2822 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 2823 <!-- DEBUG: Logo = EMPTY --> 2824 Freins </span> 2825 </a> 2826 </li> 2827 <li> 2828 <a 2829 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/moteur.html" 2830 role="link" 2831 x-element-transition-trigger:category.animate="{ 2832 'title': `Moteur`, 2833 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/moteur.html', 2834 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie cycle","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-cycle.html"}], 2835 'img': '', 2836 'description': ``, 2837 }" 2838 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 2839 :class="{ 2840 'text-primary-500 font-semibold': history.includes('category-node-3122') 2841 }"> 2842 <span 2843 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 2844 <!-- DEBUG: Logo = EMPTY --> 2845 Moteur </span> 2846 </a> 2847 </li> 2848 <li> 2849 <a 2850 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/outillage.html" 2851 role="link" 2852 x-element-transition-trigger:category.animate="{ 2853 'title': `Outillage`, 2854 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/outillage.html', 2855 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie cycle","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-cycle.html"}], 2856 'img': '', 2857 'description': `<p>Outillage KTM, outil spécial KTM, châssis KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke,KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 129
28570 Super Adventure</p><p></p><p>Retrouvez nos tutos <a href="https://www.youtube.com/watch?v=3rzrrbRoFCk">ici</a>.</p>`, 2858 }" 2859 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 2860 :class="{ 2861 'text-primary-500 font-semibold': history.includes('category-node-1806') 2862 }"> 2863 <span 2864 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 2865 <!-- DEBUG: Logo = EMPTY --> 2866 Outillage </span> 2867 </a> 2868 </li> 2869 <li> 2870 <a 2871 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/roue-avant.html" 2872 role="link" 2873 x-element-transition-trigger:category.animate="{ 2874 'title': `Roue avant`, 2875 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/roue-avant.html', 2876 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie cycle","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-cycle.html"}], 2877 'img': '', 2878 'description': `<p>Roue avant KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke,KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 1290 Super Adventure</p><p></p><p>Retrouvez nos tutos <a href="https://youtu.be/8flN1s634d0" target="_blank" rel="noopener">ici</a>.</p>`, 2879 }" 2880 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 2881 :class="{ 2882 'text-primary-500 font-semibold': history.includes('category-node-1786') 2883 }"> 2884 <span 2885 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 2886 <!-- DEBUG: Logo = EMPTY --> 2887 Roue avant </span> 2888 </a> 2889 </li> 2890 <li> 2891 <a 2892 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/roue-arriere.html" 2893 role="link" 2894 x-element-transition-trigger:category.animate="{ 2895 'title': `Roue arrière`, 2896 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/roue-arriere.html', 2897 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie cycle","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-cycle.html"}], 2898 'img': '', 2899 'description': `<p>Roue arrière KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 129
28990 Super Adventure</p><p></p><p>Retrouvez nos tutos <a href="https://youtu.be/8flN1s634d0" target="_blank" rel="noopener">ici</a>.</p>`, 2900 }" 2901 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 2902 :class="{ 2903 'text-primary-500 font-semibold': history.includes('category-node-1800') 2904 }"> 2905 <span 2906 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 2907 <!-- DEBUG: Logo = EMPTY --> 2908 Roue arrière </span> 2909 </a> 2910 </li> 2911 <li> 2912 <a 2913 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/selle-reservoir.html" 2914 role="link" 2915 x-element-transition-trigger:category.animate="{ 2916 'title': `Selle, Réservoir`, 2917 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/selle-reservoir.html', 2918 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie cycle","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-cycle.html"}], 2919 'img': '', 2920 'description': `<p>Selle KTM, Réservoir KTM KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 1290 Super Adventure</p><p></p><p>Découvrez nos tutos en cliquant <a href="https://youtu.be/FkyJbpzuyOA" target="_blank" rel="noopener">ici</a>.</p>`, 2921 }" 2922 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 2923 :class="{ 2924 'text-primary-500 font-semibold': history.includes('category-node-1794') 2925 }"> 2926 <span 2927 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 2928 <!-- DEBUG: Logo = EMPTY --> 2929 Selle, Réservoir </span> 2930 </a> 2931 </li> 2932 <li> 2933 <a 2934 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/starter-electrique.html" 2935 role="link" 2936 x-element-transition-trigger:category.animate="{ 2937 'title': `Starter électrique`, 2938 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/starter-electrique.html', 2939 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie cycle","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-cycle.html"}], 2940 'img': '', 2941 'description': ``, 2942 }" 2943 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 2944 :class="{ 2945 'text-primary-500 font-semibold': history.includes('category-node-3124') 2946 }">
2947 <span 2948 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 2949 <!-- DEBUG: Logo = EMPTY --> 2950 Starter électrique </span> 2951 </a> 2952 </li> 2953 <li> 2954 <a 2955 x-a11y-trap-target.end="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1777'" 2956 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/refroidissement.html" 2957 role="link" 2958 x-element-transition-trigger:category.animate="{ 2959 'title': `Refroidissement`, 2960 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle/refroidissement.html', 2961 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie cycle","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-cycle.html"}], 2962 'img': '', 2963 'description': ``, 2964 }" 2965 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 2966 :class="{ 2967 'text-primary-500 font-semibold': history.includes('category-node-3454') 2968 }"> 2969 <span 2970 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 2971 <!-- DEBUG: Logo = EMPTY --> 2972 Refroidissement </span> 2973 </a> 2974 </li> 2975 </ul> 2976 2977 <div class="h-20 md:hidden"></div> 2978 <template 2979 x-portal="$store.main.isMobile ? document.getElementById('popup-fixed-content-portal') : document.getElementById('menu-actions-category-node-1777')"> 2980 <div 2981 class="bg-bg-500 px-4 pb-2 transition-colors duration-200 md:bg-transparent md:hover:text-primary-600 md:p-0" 2982 x-transition.opacity 2983 x-show="$store.main.isMobile ? history[history.length - 1] === 'category-node-1777' && !getIsSearchActive() : history.includes('category-node-1777')" 2984 role="link"> 2985 <a 2986 x-element-transition-trigger 2987 class="button bg-white border border-primary-500 text-primary-500 w-full hover:bg-primary-500 hover:text-white hover:scale-105 transition-all duration-200" 2988 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle.html"> 2989 <template x-if="$store.main.isMobile"> 2990 <span>Tout voir <span class="lowercase">Partie cycle</span></span> 2991 </template> 2992 <template x-if="!$store.main.isMobile"> 2993 <span class="flex items-center text-center capitalize"> 2994 <span class='border-current'> 2995 Tout voir <br /> 2996 <span>Partie cycle</span> 2997 </span> 2998 </span> 2999 </template> 3000 </a> 3001 </div> 3002 </template> 3003 </div> 3004 </template> 3005 </li> 3006 <li> 3007 <button 3008 class="menu__link group" 3009 @click="setHistory([...'all,category-node-1766'.split(','), 'category-node-1780'])" 3010 :class="{ 'menu__link--active': history.includes('category-node-1780') }" 3011 role="button" 3012 :aria-expanded="history.includes('category-node-1780')">
3013 <span class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3014 <!-- DEBUG: Logo = EMPTY --> 3015 Partie moteur </span> 3016 <span class="text-xl transition-[color,transform] md:group-hover:-translate-x-3 md:group-hover:text-primary-600"> 3017 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 3018 <path d="M10.707 17.707 16.414 12l-5.707-5.707-1.414 1.414L13.586 12l-4.293 4.293z"/> 3019</svg> 3020 </span> 3021 </button> 3022 <template x-portal="document.getElementById('menu-sections')"> 3023 <div 3024 class="menu__level relative z-[100]" 3025 :class="{ 3026 'menu__level--current': history[history.length - 1] === 'category-node-1780', 3027 'menu__level--visible': history.includes('category-node-1780'), 3028 'menu__level--same-depth': 3 <= delayedLevel, 3029 'hidden': !$store.main.isMobile && !$store.resizable.isVisible('menu-desktop'), 3030 }" 3031 :inert="!history.includes('category-node-1780')" 3032 data-menu-level="category-node-1780"> 3033 <div class="menu__header"> 3034 <div class="menu__header-container p-2 md:flex md:flex-col"> 3035 3036 <button 3037 @click="history.pop()" 3038 type="button" 3039 aria-label="Revenir au menu précédent" 3040 class="menu__back-button py-3 motion-reduce:max-md:animate-none" 3041 :class="{ 3042 'menu__back-button--visible max-md:animate-slideIconIn motion-reduce:translate-x-0': history.length !== 1, 3043 'max-md:animate-slideIconOut motion-reduce:-translate-x-full': history.length == 1 3044 }" 3045 :tabindex="history.length === 1 ? -1 : 0" 3046 :aria-hidden="history.length === 1"> 3047 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 3048 <path d="M13.293 6.293 7.586 12l5.707 5.707 1.414-1.414L10.414 12l4.293-4.293z"/> 3049</svg> 3050 </button> 3051 3052 <h2 3053 class="menu__heading py-3 motion-reduce:max-md:animate-none" 3054 style="--translate-width: 52px;" 3055 :class="{ 3056 'menu__heading--root': 'category-node-1780' === 'all', 3057 'max-md:w-[calc(100%-var(--translate-width))]': 'category-node-1780' !== 'all', 3058 'max-md:animate-slideTitleIn motion-reduce:translate-x-[--translate-width]': history.length !== 1, 3059 'max-md:animate-slideTitleOut motion-reduce:translate-x-0': history.length == 1 3060 }" 3061 x-show="$store.main.isMobile || 'category-node-1780' !== 'all'"> 3062 Partie moteur </h2> 3063 3064 <div id="menu-actions-category-node-1780" class="md:mt-[6px] md:flex-none md:flex-row"></div> 3065 </div> 3066 <hr class="divider -mx-5 md:hidden"> 3067 </div> 3068 3069 <ul role="list" class="menu__links"> 3070 <li> 3071 <a 3072 x-a11y-trap-target.initial="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1780'" 3073 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur/abs.html" 3074 role="link" 3075 x-element-transition-trigger:category.animate="{ 3076 'title': `ABS`, 3077 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur/abs.html', 3078 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie moteur","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-moteur.html"}], 3079 'img': '', 3080 'description': `ABS KTM, système antiblocage KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 129
30800 Super Adventure`, 3081 }" 3082 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3083 :class="{ 3084 'text-primary-500 font-semibold': history.includes('category-node-1807') 3085 }"> 3086 <span 3087 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3088 <!-- DEBUG: Logo = EMPTY --> 3089 ABS </span> 3090 </a> 3091 </li> 3092 <li> 3093 <a 3094 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur/accelerateur.html" 3095 role="link" 3096 x-element-transition-trigger:category.animate="{ 3097 'title': `Accelérateur`, 3098 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur/accelerateur.html', 3099 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie moteur","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-moteur.html"}], 3100 'img': '', 3101 'description': `Accélérateur KTM, corps du clapet d&apos;étranglement KTM, distributeur de carburant KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 1290 Super Adventure`, 3102 }" 3103 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3104 :class="{ 3105 'text-primary-500 font-semibold': history.includes('category-node-1795') 3106 }"> 3107 <span 3108 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3109 <!-- DEBUG: Logo = EMPTY --> 3110 Accelérateur </span> 3111 </a> 3112 </li> 3113 <li> 3114 <a 3115 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur/allumage.html" 3116 role="link" 3117 x-element-transition-trigger:category.animate="{ 3118 'title': `Allumage`, 3119 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur/allumage.html', 3120 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie moteur","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-moteur.html"}], 3121 'img': '', 3122 'description': `Allumage KTM, système d&apos;allumage KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 129
31220 Super Adventure`, 3123 }" 3124 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3125 :class="{ 3126 'text-primary-500 font-semibold': history.includes('category-node-1781') 3127 }"> 3128 <span 3129 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3130 <!-- DEBUG: Logo = EMPTY --> 3131 Allumage </span> 3132 </a> 3133 </li> 3134 <li> 3135 <a 3136 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur/arbre-a-cames.html" 3137 role="link" 3138 x-element-transition-trigger:category.animate="{ 3139 'title': `Arbre à cames`, 3140 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur/arbre-a-cames.html', 3141 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie moteur","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-moteur.html"}], 3142 'img': '', 3143 'description': `Arbre à cames KTM, boite de vitesse 1 KTM, boite de vitesse 2 KTM, arbre primaire KTM, arbre de sortie KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 1290 Super Adventure`, 3144 }" 3145 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3146 :class="{ 3147 'text-primary-500 font-semibold': history.includes('category-node-1784') 3148 }"> 3149 <span 3150 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3151 <!-- DEBUG: Logo = EMPTY --> 3152 Arbre à cames </span> 3153 </a> 3154 </li> 3155 <li> 3156 <a 3157 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur/boite-de-vitesses.html" 3158 role="link" 3159 x-element-transition-trigger:category.animate="{ 3160 'title': `Boîte de vitesses`, 3161 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur/boite-de-vitesses.html', 3162 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie moteur","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-moteur.html"}], 3163 'img': '', 3164 'description': `Boîte de vitesses KTM, mécanisme de sélection KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 129
31640 Super Adventure`, 3165 }" 3166 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3167 :class="{ 3168 'text-primary-500 font-semibold': history.includes('category-node-1803') 3169 }"> 3170 <span 3171 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3172 <!-- DEBUG: Logo = EMPTY --> 3173 Boîte de vitesses </span> 3174 </a> 3175 </li> 3176 <li> 3177 <a 3178 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur/cylindre.html" 3179 role="link" 3180 x-element-transition-trigger:category.animate="{ 3181 'title': `Cylindre`, 3182 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur/cylindre.html', 3183 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie moteur","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-moteur.html"}], 3184 'img': '', 3185 'description': `Cylindre KTM, mécanisme de commande KTM, c
3185ommande de distribution KTM, culasse KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 1290 Super Adventure`, 3186 }" 3187 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3188 :class="{ 3189 'text-primary-500 font-semibold': history.includes('category-node-1787') 3190 }"> 3191 <span 3192 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3193 <!-- DEBUG: Logo = EMPTY --> 3194 Cylindre </span> 3195 </a> 3196 </li> 3197 <li> 3198 <a 3199 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur/embrayage.html" 3200 role="link" 3201 x-element-transition-trigger:category.animate="{ 3202 'title': `Embrayage`, 3203 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur/embrayage.html', 3204 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie moteur","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-moteur.html"}], 3205 'img': '', 3206 'description': `<p>Embrayage KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 1290 Super Adventure</p><p>Lien pour les tutos <a href="https://youtu.be/LR1UcsLw-70" target="_blank" rel="noopener">ici</a>.</p>`, 3207 }" 3208 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3209 :class="{ 3210 'text-primary-500 font-semibold': history.includes('category-node-1799') 3211 }"> 3212 <span 3213 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3214 <!-- DEBUG: Logo = EMPTY --> 3215 Embrayage </span> 3216 </a> 3217 </li> 3218 <li> 3219 <a 3220 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur/lubrification.html" 3221 role="link" 3222 x-element-transition-trigger:category.animate="{ 3223 'title': `Lubrification`, 3224 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur/lubrification.html', 3225 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie moteur","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-moteur.html"}], 3226 'img': '', 3227 'description': `Lubrification KTM, système de lubrification pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 129
32270 Super Adventure`, 3228 }" 3229 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3230 :class="{ 3231 'text-primary-500 font-semibold': history.includes('category-node-1789') 3232 }"> 3233 <span 3234 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3235 <!-- DEBUG: Logo = EMPTY --> 3236 Lubrification </span> 3237 </a> 3238 </li> 3239 <li> 3240 <a 3241 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur/moteur.html" 3242 role="link" 3243 x-element-transition-trigger:category.animate="{ 3244 'title': `Moteur`, 3245 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur/moteur.html', 3246 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie moteur","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-moteur.html"}], 3247 'img': '', 3248 'description': `<p>Moteur KTM, carter moteur KTM, arbre d&apos;équilibrage KTM, cylindre KTM, vilebrequin KTM, piston KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 1290 Super Adventure</p><p></p><p>Découvrez nos tutos en cliquant <a href="https://youtu.be/FkyJbpzuyOA" target="_blank" rel="noopener">ici</a>.</p>`, 3249 }" 3250 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3251 :class="{ 3252 'text-primary-500 font-semibold': history.includes('category-node-1785') 3253 }"> 3254 <span 3255 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3256 <!-- DEBUG: Logo = EMPTY --> 3257 Moteur </span> 3258 </a> 3259 </li> 3260 <li> 3261 <a 3262 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur/outillage.html" 3263 role="link" 3264 x-element-transition-trigger:category.animate="{ 3265 'title': `Outillage`, 3266 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur/outillage.html', 3267 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie moteur","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-moteur.html"}], 3268 'img': '', 3269 'description': `Outillage KTM, outils spéciaux KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 129
32690 Super Adventure`, 3270 }" 3271 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3272 :class="{ 3273 'text-primary-500 font-semibold': history.includes('category-node-1802') 3274 }"> 3275 <span 3276 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3277 <!-- DEBUG: Logo = EMPTY --> 3278 Outillage </span> 3279 </a> 3280 </li> 3281 <li> 3282 <a 3283 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur/refroidissement.html" 3284 role="link" 3285 x-element-transition-trigger:category.animate="{ 3286 'title': `Refroidissement`, 3287 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur/refroidissement.html', 3288 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie moteur","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-moteur.html"}], 3289 'img': '', 3290 'description': `<p>Refroidissement KTM, pompe à eau KTM, système de refroidissement KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 1290 Super Adventure</p><p></p><p>Retrouvez nos tutos <a href="https://www.youtube.com/watch?v=W9noZXOXZoQ">ici</a>.</p>`, 3291 }" 3292 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3293 :class="{ 3294 'text-primary-500 font-semibold': history.includes('category-node-1797') 3295 }"> 3296 <span 3297 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3298 <!-- DEBUG: Logo = EMPTY --> 3299 Refroidissement </span> 3300 </a> 3301 </li> 3302 <li> 3303 <a 3304 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur/secondary-air-system.html" 3305 role="link" 3306 x-element-transition-trigger:category.animate="{ 3307 'title': `Secondary Air System`, 3308 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur/secondary-air-system.html', 3309 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie moteur","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-moteur.html"}], 3310 'img': '', 3311 'description': `Secondary Air System KTM`, 3312 }" 3313 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3314 :class="{ 3315 'text-primary-500 font-semibold': history.includes('category-node-1804') 3316 }">
3317 <span 3318 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3319 <!-- DEBUG: Logo = EMPTY --> 3320 Secondary Air System </span> 3321 </a> 3322 </li> 3323 <li> 3324 <a 3325 x-a11y-trap-target.end="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1780'" 3326 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur/starter-electrique.html" 3327 role="link" 3328 x-element-transition-trigger:category.animate="{ 3329 'title': `Starter électrique`, 3330 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur/starter-electrique.html', 3331 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Partie moteur","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/partie-moteur.html"}], 3332 'img': '', 3333 'description': `Starter électrique KTM, démarreur électrique KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 1290 Super Adventure`, 3334 }" 3335 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3336 :class="{ 3337 'text-primary-500 font-semibold': history.includes('category-node-1801') 3338 }"> 3339 <span 3340 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3341 <!-- DEBUG: Logo = EMPTY --> 3342 Starter électrique </span> 3343 </a> 3344 </li> 3345 </ul> 3346 3347 <div class="h-20 md:hidden"></div> 3348 <template 3349 x-portal="$store.main.isMobile ? document.getElementById('popup-fixed-content-portal') : document.getElementById('menu-actions-category-node-1780')"> 3350 <div 3351 class="bg-bg-500 px-4 pb-2 transition-colors duration-200 md:bg-transparent md:hover:text-primary-600 md:p-0" 3352 x-transition.opacity 3353 x-show="$store.main.isMobile ? history[history.length - 1] === 'category-node-1780' && !getIsSearchActive() : history.includes('category-node-1780')" 3354 role="link"> 3355 <a 3356 x-element-transition-trigger 3357 class="button bg-white border border-primary-500 text-primary-500 w-full hover:bg-primary-500 hover:text-white hover:scale-105 transition-all duration-200" 3358 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur.html"> 3359 <template x-if="$store.main.isMobile"> 3360 <span>Tout voir <span class="lowercase">Partie moteur</span></span> 3361 </template> 3362 <template x-if="!$store.main.isMobile"> 3363 <span class="flex items-center text-center capitalize">
3364 <span class='border-current'> 3365 Tout voir <br /> 3366 <span>Partie moteur</span> 3367 </span> 3368 </span> 3369 </template> 3370 </a> 3371 </div> 3372 </template> 3373 </div> 3374 </template> 3375 </li> 3376 <li> 3377 <button 3378 x-a11y-trap-target.end="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1766'" 3379 class="menu__link group" 3380 @click="setHistory([...'all,category-node-1766'.split(','), 'category-node-1838'])" 3381 :class="{ 'menu__link--active': history.includes('category-node-1838') }" 3382 role="button" 3383 :aria-expanded="history.includes('category-node-1838')"> 3384 <span class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3385 <!-- DEBUG: Logo = EMPTY --> 3386 Accessoires </span> 3387 <span class="text-xl transition-[color,transform] md:group-hover:-translate-x-3 md:group-hover:text-primary-600"> 3388 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 3389 <path d="M10.707 17.707 16.414 12l-5.707-5.707-1.414 1.414L13.586 12l-4.293 4.293z"/> 3390</svg> 3391 </span> 3392 </button> 3393 <template x-portal="document.getElementById('menu-sections')"> 3394 <div 3395 class="menu__level relative z-[100]" 3396 :class="{ 3397 'menu__level--current': history[history.length - 1] === 'category-node-1838', 3398 'menu__level--visible': history.includes('category-node-1838'), 3399 'menu__level--same-depth': 3 <= delayedLevel, 3400 'hidden': !$store.main.isMobile && !$store.resizable.isVisible('menu-desktop'), 3401 }" 3402 :inert="!history.includes('category-node-1838')" 3403 data-menu-level="category-node-1838"> 3404 <div class="menu__header"> 3405 <div class="menu__header-container p-2 md:flex md:flex-col"> 3406 3407 <button 3408 @click="history.pop()" 3409 type="button" 3410 aria-label="Revenir au menu précédent" 3411 class="menu__back-button py-3 motion-reduce:max-md:animate-none" 3412 :class="{ 3413 'menu__back-button--visible max-md:animate-slideIconIn motion-reduce:translate-x-0': history.length !== 1, 3414 'max-md:animate-slideIconOut motion-reduce:-translate-x-full': history.length == 1 3415 }" 3416 :tabindex="history.length === 1 ? -1 : 0" 3417 :aria-hidden="history.length === 1"> 3418 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 3419 <path d="M13.293 6.293 7.586 12l5.707 5.707 1.414-1.414L10.414 12l4.293-4.293z"/> 3420</svg> 3421 </button> 3422 3423 <h2 3424 class="menu__heading py-3 motion-reduce:max-md:animate-none" 3425 style="--translate-width: 52px;" 3426 :class="{ 3427 'menu__heading--root': 'category-node-1838' === 'all', 3428 'max-md:w-[calc(100%-var(--translate-width))]': 'category-node-1838' !== 'all', 3429 'max-md:animate-slideTitleIn motion-reduce:translate-x-[--translate-width]': history.length !== 1, 3430 'max-md:animate-slideTitleOut motion-reduce:translate-x-0': history.length == 1 3431 }" 3432 x-show="$store.main.isMobile || 'category-node-1838' !== 'all'"> 3433 Accessoires </h2> 3434 3435 <div id="menu-actions-category-node-1838" class="md:mt-[6px] md:flex-none md:flex-row"></div> 3436 </div> 3437 <hr class="divider -mx-5 md:hidden"> 3438 </div> 3439 3440 <ul role="list" class="menu__links"> 3441 <li> 3442 <a 3443 x-a11y-trap-target.initial="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1838'" 3444 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/voyage.html" 3445 role="link" 3446 x-element-transition-trigger:category.animate="{ 3447 'title': `Bagages`, 3448 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/voyage.html', 3449 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Accessoires","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/accessoires.html"}], 3450 'img': '', 3451 'description': `Retrouvez tous les kits valises KTM pour votre moto sur notre site esprit-ktm.com`, 3452 }" 3453 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3454 :class="{ 3455 'text-primary-500 font-semibold': history.includes('category-node-1912') 3456 }">
3457 <span 3458 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3459 <!-- DEBUG: Logo = EMPTY --> 3460 Bagages </span> 3461 </a> 3462 </li> 3463 <li> 3464 <a 3465 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/carbone.html" 3466 role="link" 3467 x-element-transition-trigger:category.animate="{ 3468 'title': `Carbone`, 3469 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/carbone.html', 3470 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Accessoires","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/accessoires.html"}], 3471 'img': '', 3472 'description': `Carbone KTM, guide chaine KTM, protection de chaine KTM, cache de pignon KTM, garde-boue KTM, kit de carénage KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 1290 Super Adventure`, 3473 }" 3474 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3475 :class="{ 3476 'text-primary-500 font-semibold': history.includes('category-node-1969') 3477 }"> 3478 <span 3479 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3480 <!-- DEBUG: Logo = EMPTY --> 3481 Carbone </span> 3482 </a> 3483 </li> 3484 <li> 3485 <a 3486 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/chaines-pignons-couronnes.html" 3487 role="link" 3488 x-element-transition-trigger:category.animate="{ 3489 'title': `Chaines & Pignons & Couronnes`, 3490 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/chaines-pignons-couronnes.html', 3491 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Accessoires","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/accessoires.html"}], 3492 'img': '', 3493 'description': `Chaines KTM, Pignons KTM & Couronnes KTM, scottoil KTM, kit scottoiler KTM, kit chaine KTM? KIT PISTON KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC ,KTM 250 SX ,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 1290 Super Adventure`, 3494 }" 3495 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3496 :class="{ 3497 'text-primary-500 font-semibold': history.includes('category-node-1921') 3498 }">
3499 <span 3500 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3501 <!-- DEBUG: Logo = EMPTY --> 3502 Chaines & Pignons & Couronnes </span> 3503 </a> 3504 </li> 3505 <li> 3506 <a 3507 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/chassis-te-de-fourche.html" 3508 role="link" 3509 x-element-transition-trigger:category.animate="{ 3510 'title': `Châssis - Té de fourche`, 3511 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/chassis-te-de-fourche.html', 3512 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Accessoires","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/accessoires.html"}], 3513 'img': '', 3514 'description': ``, 3515 }" 3516 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3517 :class="{ 3518 'text-primary-500 font-semibold': history.includes('category-node-2086') 3519 }"> 3520 <span 3521 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3522 <!-- DEBUG: Logo = EMPTY --> 3523 Châssis - Té de fourche </span> 3524 </a> 3525 </li> 3526 <li> 3527 <a 3528 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/echappements.html" 3529 role="link" 3530 x-element-transition-trigger:category.animate="{ 3531 'title': `Echappements`, 3532 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/echappements.html', 3533 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Accessoires","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/accessoires.html"}], 3534 'img': '', 3535 'description': `<p>Esprit KTM propose l&apos;ensemble des Pots KTM pour Duke 125 , votre Adventure, votre Cross SX, votre Enduro EXC, votre RC, votre Super Duke votre SMC-R KTM, ou votre pot Ktm duke 390.</p><p>Esprit KTM vous fournit l&apos;ensemble de la gamme Pot AKRAPOVIC, Pot FMF KTM, Pot Factory pour votre moto KTM.</p><p>Toutes ces pièces sont certifiés Origine KTM Power Parts.</p><p>Sélectionnez votre modèle ci-dessus afin d&apos;afiner votre recherche.</p>`, 3536 }" 3537 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3538 :class="{ 3539 'text-primary-500 font-semibold': history.includes('category-node-1848') 3540 }">
3541 <span 3542 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3543 <!-- DEBUG: Logo = EMPTY --> 3544 Echappements </span> 3545 </a> 3546 </li> 3547 <li> 3548 <a 3549 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/extensions-logiciel.html" 3550 role="link" 3551 x-element-transition-trigger:category.animate="{ 3552 'title': `Extensions logiciel`, 3553 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/extensions-logiciel.html', 3554 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Accessoires","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/accessoires.html"}], 3555 'img': '', 3556 'description': ``, 3557 }" 3558 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3559 :class="{ 3560 'text-primary-500 font-semibold': history.includes('category-node-2823') 3561 }"> 3562 <span 3563 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3564 <!-- DEBUG: Logo = EMPTY --> 3565 Extensions logiciel </span> 3566 </a> 3567 </li> 3568 <li> 3569 <a 3570 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/filtre-a-air.html" 3571 role="link" 3572 x-element-transition-trigger:category.animate="{ 3573 'title': `Filtre à Air et à huile`, 3574 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/filtre-a-air.html', 3575 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Accessoires","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/accessoires.html"}], 3576 'img': '', 3577 'description': `<p>Filtre à Air KTM, filtre à air huile KTM, sand stop KTM, couvercle de boitier KTM, protection anti-poussière KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 1290 Super Adventure</p><p></p><p>Retrouvez nos tutos <a href="https://www.youtube.com/watch?v=99CQZaWsgHE">ici</a>.</p>`, 3578 }" 3579 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3580 :class="{ 3581 'text-primary-500 font-semibold': history.includes('category-node-1928') 3582 }">
3583 <span 3584 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3585 <!-- DEBUG: Logo = EMPTY --> 3586 Filtre à Air et à huile </span> 3587 </a> 3588 </li> 3589 <li> 3590 <a 3591 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/freinage.html" 3592 role="link" 3593 x-element-transition-trigger:category.animate="{ 3594 'title': `Freins`, 3595 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/freinage.html', 3596 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Accessoires","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/accessoires.html"}], 3597 'img': '', 3598 'description': `<p>Retrouvez les disques de frein KTM, les plaquettes de freins KTM, les pédales de freins, les étriers pour votre KTM dans notre boutique en ligne Esprit-ktm.com.</p><p>Selectionnez ci-dessus votre modèle de KTM et vous afficherez l&apos;ensemble des pièces comptabile avec votre moto KTM.</p><p>Lien pour les tutos <a href="https://youtu.be/LR1UcsLw-70" target="_blank" rel="noopener">ici</a>.</p>`, 3599 }" 3600 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3601 :class="{ 3602 'text-primary-500 font-semibold': history.includes('category-node-1926') 3603 }"> 3604 <span 3605 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3606 <!-- DEBUG: Logo = EMPTY --> 3607 Freins </span> 3608 </a> 3609 </li> 3610 <li> 3611 <a 3612 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/guidon-instruments-electrique.html" 3613 role="link" 3614 x-element-transition-trigger:category.animate="{ 3615 'title': `Guidon & Instruments & Electrique`, 3616 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/guidon-instruments-electrique.html', 3617 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Accessoires","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/accessoires.html"}], 3618 'img': '', 3619 'description': `Guidon & Instruments/Electrique KTM, jeu de cables d&apos;adaptateur KTM, kit de clignotant KTM, kit HCU KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 129
36190 Super Adventure`, 3620 }" 3621 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3622 :class="{ 3623 'text-primary-500 font-semibold': history.includes('category-node-1892') 3624 }"> 3625 <span 3626 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3627 <!-- DEBUG: Logo = EMPTY --> 3628 Guidon & Instruments & Electrique </span> 3629 </a> 3630 </li> 3631 <li> 3632 <a 3633 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/moteur.html" 3634 role="link" 3635 x-element-transition-trigger:category.animate="{ 3636 'title': `Moteur`, 3637 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/moteur.html', 3638 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Accessoires","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/accessoires.html"}], 3639 'img': '', 3640 'description': `<p>Moteur KTM, kit filtre à huile KTM, kit soupape KTM, 300 factory kit KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 1290 Super Adventure</p><p></p><p>Découvrez nos tutos en cliquant <a href="https://youtu.be/FkyJbpzuyOA" target="_blank" rel="noopener">ici</a>.</p>`, 3641 }" 3642 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3643 :class="{ 3644 'text-primary-500 font-semibold': history.includes('category-node-1989') 3645 }"> 3646 <span 3647 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3648 <!-- DEBUG: Logo = EMPTY --> 3649 Moteur </span> 3650 </a> 3651 </li> 3652 <li> 3653 <a 3654 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/navigation.html" 3655 role="link" 3656 x-element-transition-trigger:category.animate="{ 3657 'title': `Navigation`, 3658 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/navigation.html', 3659 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Accessoires","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/accessoires.html"}], 3660 'img': '', 3661 'description': `Navigation ktm, support de GPS KTM, support smartphone KTM, étui universel KTM, housse pour iphone KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 129
36610 Super Adventure`, 3662 }" 3663 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3664 :class="{ 3665 'text-primary-500 font-semibold': history.includes('category-node-1977') 3666 }"> 3667 <span 3668 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3669 <!-- DEBUG: Logo = EMPTY --> 3670 Navigation </span> 3671 </a> 3672 </li> 3673 <li> 3674 <a 3675 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/outils-transport.html" 3676 role="link" 3677 x-element-transition-trigger:category.animate="{ 3678 'title': `Outils & Transport`, 3679 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/outils-transport.html', 3680 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Accessoires","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/accessoires.html"}], 3681 'img': '', 3682 'description': `Outils KTM, Transport ktm, adaptateur de fixation KTM, kit de tabouret de stand KTM, nettoyeur de joint SPI de fourche KTM, c
3682offret premiers secours KTM, adaptateur de pompe pour fourche à air KTM, bouchon KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 1290 Super Adventure`, 3683 }" 3684 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3685 :class="{ 3686 'text-primary-500 font-semibold': history.includes('category-node-1939') 3687 }"> 3688 <span 3689 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3690 <!-- DEBUG: Logo = EMPTY --> 3691 Outils & Transport </span> 3692 </a> 3693 </li> 3694 <li> 3695 <a 3696 href="https://www.esprit-ktm.com/catalog/category/view/s/pare-brise/id/1959/" 3697 role="link" 3698 x-element-transition-trigger:category.animate="{ 3699 'title': `Pare-brise`, 3700 'url': 'https://www.esprit-ktm.com/catalog/category/view/s/pare-brise/id/1959/', 3701 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Accessoires","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/accessoires.html"}], 3702 'img': '', 3703 'description': `Pare-brise KTM, bulle KTM, saute-vent KTM, carénage de la bulle KTM, windshield KTM, écran flyscreen KTM, flyscreen KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 1290 Super Adventure`, 3704 }" 3705 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3706 :class="{ 3707 'text-primary-500 font-semibold': history.includes('category-node-1959') 3708 }"> 3709 <span 3710 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3711 <!-- DEBUG: Logo = EMPTY --> 3712 Pare-brise </span> 3713 </a> 3714 </li> 3715 <li> 3716 <a 3717 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/pieces-anodisees-cnc.html" 3718 role="link" 3719 x-element-transition-trigger:category.animate="{ 3720 'title': `Pièces anodisées CNC`, 3721 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/pieces-anodisees-cnc.html', 3722 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Accessoires","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/accessoires.html"}], 3723 'img': '', 3724 'description': `<p>Retrouvez les bouchons de radiateur KTM, les bouchons de maitre-cylindre KTM anodisé ici sur notre site.</p><p>Choisissez votre KTM et sélectionner les bouchons anodisées KTM, couvercle de filtre à huile KTM, bouchon de reservoir KTM... qui vous interesse.</p>`, 3725 }" 3726 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3727 :class="{ 3728 'text-primary-500 font-semibold': history.includes('category-node-1894') 3729 }">
3730 <span 3731 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3732 <!-- DEBUG: Logo = EMPTY --> 3733 Pièces anodisées CNC </span> 3734 </a> 3735 </li> 3736 <li> 3737 <a 3738 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/pieces-detachees.html" 3739 role="link" 3740 x-element-transition-trigger:category.animate="{ 3741 'title': `Pièces détachées`, 3742 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/pieces-detachees.html', 3743 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Accessoires","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/accessoires.html"}], 3744 'img': '', 3745 'description': ``, 3746 }" 3747 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3748 :class="{ 3749 'text-primary-500 font-semibold': history.includes('category-node-3145') 3750 }"> 3751 <span 3752 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3753 <!-- DEBUG: Logo = EMPTY --> 3754 Pièces détachées </span> 3755 </a> 3756 </li> 3757 <li> 3758 <a 3759 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/pieces-de-carenage-autocollants.html" 3760 role="link" 3761 x-element-transition-trigger:category.animate="{ 3762 'title': `Pièces de carénage & autocollants`, 3763 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/pieces-de-carenage-autocollants.html', 3764 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Accessoires","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/accessoires.html"}], 3765 'img': '', 3766 'description': `<p>Tous les derniers kits Deco KTM sont sur notre site. Que se soit les kit deco Kactory KTM, les pièces de carénage plastique KTM spécialement conçu par l&apos;usine.</p><p>Les Kits déco six Days, les fonds de plaques, les kit plastiques KTM... vous trouverez tout pour votre KTM SX, EXC, Duke 125, Duke 390, Duke 790, Adventure 790 Supder Duke 1290.</p><p>Selectionnez ci-dessus votre modèle de moto et vous afficherez l&apos;ensemble des pièces compatible à votre KTM.</p><p></p>`, 3767 }" 3768 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3769 :class="{ 3770 'text-primary-500 font-semibold': history.includes('category-node-1876') 3771 }">
3772 <span 3773 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3774 <!-- DEBUG: Logo = EMPTY --> 3775 Pièces de carénage & autocollants </span> 3776 </a> 3777 </li> 3778 <li> 3779 <a 3780 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/protections.html" 3781 role="link" 3782 x-element-transition-trigger:category.animate="{ 3783 'title': `Protections`, 3784 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/protections.html', 3785 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Accessoires","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/accessoires.html"}], 3786 'img': '', 3787 'description': `Protections KTM, kit de capuchon KTM, autocollant anti-boue KTM, jeu de protection de cadre KTM, protection de bras oscillant KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 1290 Super Adventure `, 3788 }" 3789 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3790 :class="{ 3791 'text-primary-500 font-semibold': history.includes('category-node-1917') 3792 }"> 3793 <span 3794 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3795 <!-- DEBUG: Logo = EMPTY --> 3796 Protections </span> 3797 </a> 3798 </li> 3799 <li> 3800 <a 3801 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/noise-reduction.html" 3802 role="link" 3803 x-element-transition-trigger:category.animate="{ 3804 'title': `Réducteur de bruit`, 3805 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/noise-reduction.html', 3806 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Accessoires","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/accessoires.html"}], 3807 'img': '', 3808 'description': ``, 3809 }" 3810 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3811 :class="{ 3812 'text-primary-500 font-semibold': history.includes('category-node-3144') 3813 }"> 3814 <span 3815 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3816 <!-- DEBUG: Logo = EMPTY --> 3817 Réducteur de bruit </span> 3818 </a> 3819 </li> 3820 <li> 3821 <a 3822 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/refroidissement.html" 3823 role="link" 3824 x-element-transition-trigger:category.animate="{ 3825 'title': `Refroidissement`, 3826 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/refroidissement.html', 3827 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Accessoires","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/accessoires.html"}], 3828 'img': '', 3829 'description': `<p>Refroidissement KTM, radiator protection grille KTM, protection de carter de pompe à eau KTM, grille du sabot de protection KTM, ventilateur de refroidissement KTM, collier KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 129
38290 Super Adventure</p><p></p><p>Lien pour la vidéo <a href="https://youtu.be/xBrr2bCLtSg" target="_blank" rel="noopener">ici</a>.</p>`, 3830 }" 3831 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3832 :class="{ 3833 'text-primary-500 font-semibold': history.includes('category-node-1850') 3834 }"> 3835 <span 3836 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3837 <!-- DEBUG: Logo = EMPTY --> 3838 Refroidissement </span> 3839 </a> 3840 </li> 3841 <li> 3842 <a 3843 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/repose-pieds.html" 3844 role="link" 3845 x-element-transition-trigger:category.animate="{ 3846 'title': `Repose pieds`, 3847 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/repose-pieds.html', 3848 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Accessoires","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/accessoires.html"}], 3849 'img': '', 3850 'description': `Repose pieds KTM KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 1290 Super Adventure`, 3851 }" 3852 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3853 :class="{ 3854 'text-primary-500 font-semibold': history.includes('category-node-1937') 3855 }"> 3856 <span 3857 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3858 <!-- DEBUG: Logo = EMPTY --> 3859 Repose pieds </span> 3860 </a> 3861 </li> 3862 <li> 3863 <a 3864 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/reservoirs.html" 3865 role="link" 3866 x-element-transition-trigger:category.animate="{ 3867 'title': `Réservoirs`, 3868 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/reservoirs.html', 3869 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Accessoires","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/accessoires.html"}], 3870 'img': '', 3871 'description': `Réservoirs KTM, bouchon de réservoir de carburant KTM, système d&apos;ouverture rapide de bouchon KTM, carénage de réservoir KTM, filtre essence KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 129
38710 Super Adventure`, 3872 }" 3873 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3874 :class="{ 3875 'text-primary-500 font-semibold': history.includes('category-node-1986') 3876 }"> 3877 <span 3878 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3879 <!-- DEBUG: Logo = EMPTY --> 3880 Réservoirs </span> 3881 </a> 3882 </li> 3883 <li> 3884 <a 3885 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/roues.html" 3886 role="link" 3887 x-element-transition-trigger:category.animate="{ 3888 'title': `Roues`, 3889 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/roues.html', 3890 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Accessoires","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/accessoires.html"}], 3891 'img': '', 3892 'description': `<p>Roues ktm pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 1290 Super Adventure</p>`, 3893 }" 3894 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3895 :class="{ 3896 'text-primary-500 font-semibold': history.includes('category-node-1842') 3897 }"> 3898 <span 3899 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3900 <!-- DEBUG: Logo = EMPTY --> 3901 Roues </span> 3902 </a> 3903 </li> 3904 <li> 3905 <a 3906 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/selles.html" 3907 role="link" 3908 x-element-transition-trigger:category.animate="{ 3909 'title': `Selles`, 3910 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/selles.html', 3911 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Accessoires","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/accessoires.html"}], 3912 'img': '', 3913 'description': `Selles KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 129
39130 Super Adventure`, 3914 }" 3915 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3916 :class="{ 3917 'text-primary-500 font-semibold': history.includes('category-node-1908') 3918 }"> 3919 <span 3920 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3921 <!-- DEBUG: Logo = EMPTY --> 3922 Selles </span> 3923 </a> 3924 </li> 3925 <li> 3926 <a 3927 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/suspension.html" 3928 role="link" 3929 x-element-transition-trigger:category.animate="{ 3930 'title': `Suspension`, 3931 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/suspension.html', 3932 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Accessoires","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/accessoires.html"}], 3933 'img': '', 3934 'description': `<p>Suspension KTM pour KTM 125 SX, KTM 125 EXC, KTM 250 EXC,KTM 250 SX,KTM 250 SX-F, 250 EXC-F, 450 EXC-F, KTM 690 Duke, KTM 690 SMC-R, 1190 RC8, Adventure,RC125, Freeride, KTM 125 Duke, KTM 390 Duke, KTM 790 Adventure, KTM 890 DUKE, KTM 1290 SUPER DUKE, 1290 Super Adventure</p><p></p><p>Retrouvez nos tutos <a href="https://www.youtube.com/watch?v=CJlH-X7lCr4">ici</a>.</p>`, 3935 }" 3936 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3937 :class="{ 3938 'text-primary-500 font-semibold': history.includes('category-node-1953') 3939 }"> 3940 <span 3941 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3942 <!-- DEBUG: Logo = EMPTY --> 3943 Suspension </span> 3944 </a> 3945 </li> 3946 <li> 3947 <a 3948 x-a11y-trap-target.end="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1838'" 3949 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/new.html" 3950 role="link" 3951 x-element-transition-trigger:category.animate="{ 3952 'title': `New`, 3953 'url': 'https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires/new.html', 3954 'breadcrumbs': [{"title":"Pi\u00e8ces Origine KTM","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html"},{"title":"Accessoires","url":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm\/accessoires.html"}], 3955 'img': '', 3956 'description': ``, 3957 }" 3958 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 3959 :class="{ 3960 'text-primary-500 font-semibold': history.includes('category-node-3387') 3961 }">
3962 <span 3963 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 3964 <!-- DEBUG: Logo = EMPTY --> 3965 New </span> 3966 </a> 3967 </li> 3968 </ul> 3969 3970 <div class="h-20 md:hidden"></div> 3971 <template 3972 x-portal="$store.main.isMobile ? document.getElementById('popup-fixed-content-portal') : document.getElementById('menu-actions-category-node-1838')"> 3973 <div 3974 class="bg-bg-500 px-4 pb-2 transition-colors duration-200 md:bg-transparent md:hover:text-primary-600 md:p-0" 3975 x-transition.opacity 3976 x-show="$store.main.isMobile ? history[history.length - 1] === 'category-node-1838' && !getIsSearchActive() : history.includes('category-node-1838')" 3977 role="link"> 3978 <a 3979 x-element-transition-trigger 3980 class="button bg-white border border-primary-500 text-primary-500 w-full hover:bg-primary-500 hover:text-white hover:scale-105 transition-all duration-200" 3981 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires.html"> 3982 <template x-if="$store.main.isMobile"> 3983 <span>Tout voir <span class="lowercase">Accessoires</span></span> 3984 </template> 3985 <template x-if="!$store.main.isMobile"> 3986 <span class="flex items-center text-center capitalize"> 3987 <span class='border-current'> 3988 Tout voir <br /> 3989 <span>Accessoires</span> 3990 </span> 3991 </span> 3992 </template> 3993 </a> 3994 </div> 3995 </template> 3996 </div> 3997 </template> 3998 </li> 3999 </ul> 4000 4001 <div class="h-20 md:hidden"></div> 4002 <template 4003 x-portal="$store.main.isMobile ? document.getElementById('popup-fixed-content-portal') : document.getElementById('menu-actions-category-node-1766')"> 4004 <div 4005 class="bg-bg-500 px-4 pb-2 transition-colors duration-200 md:bg-transparent md:hover:text-primary-600 md:p-0" 4006 x-transition.opacity 4007 x-show="$store.main.isMobile ? history[history.length - 1] === 'category-node-1766' && !getIsSearchActive() : history.includes('category-node-1766')" 4008 role="link"> 4009 <a 4010 x-element-transition-trigger 4011 class="button bg-white border border-primary-500 text-primary-500 w-full hover:bg-primary-500 hover:text-white hover:scale-105 transition-all duration-200" 4012 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm.html"> 4013 <template x-if="$store.main.isMobile"> 4014 <span>Tout voir <span class="lowercase">Pièces Origine KTM</span></span> 4015 </template> 4016 <template x-if="!$store.main.isMobile"> 4017 <span class="flex items-center text-center capitalize"> 4018 <span class='border-current'> 4019 Tout voir <br /> 4020 <span>Pièces Origine KTM</span> 4021 </span> 4022 </span> 4023 </template> 4024 </a> 4025 </div> 4026 </template> 4027 </div> 4028 </template> 4029 </li> 4030 <li> 4031 <button 4032 class="menu__link group" 4033 @click="setHistory([...'all'.split(','), 'category-node-1768'])" 4034 :class="{ 'menu__link--active': history.includes('category-node-1768') }" 4035 role="button" 4036 :aria-expanded="history.includes('category-node-1768')">
4037 <span class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4038 <!-- DEBUG: Logo = EMPTY --> 4039 Entretien </span> 4040 <span class="text-xl transition-[color,transform] md:group-hover:-translate-x-3 md:group-hover:text-primary-600"> 4041 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 4042 <path d="M10.707 17.707 16.414 12l-5.707-5.707-1.414 1.414L13.586 12l-4.293 4.293z"/> 4043</svg> 4044 </span> 4045 </button> 4046 <template x-portal="document.getElementById('menu-sections')"> 4047 <div 4048 class="menu__level relative z-[100]" 4049 :class="{ 4050 'menu__level--current': history[history.length - 1] === 'category-node-1768', 4051 'menu__level--visible': history.includes('category-node-1768'), 4052 'menu__level--same-depth': 2 <= delayedLevel, 4053 'hidden': !$store.main.isMobile && !$store.resizable.isVisible('menu-desktop'), 4054 }" 4055 :inert="!history.includes('category-node-1768')" 4056 data-menu-level="category-node-1768"> 4057 <div class="menu__header"> 4058 <div class="menu__header-container p-2 md:flex md:flex-col"> 4059 4060 <button 4061 @click="history.pop()" 4062 type="button" 4063 aria-label="Revenir au menu précédent" 4064 class="menu__back-button py-3 motion-reduce:max-md:animate-none" 4065 :class="{ 4066 'menu__back-button--visible max-md:animate-slideIconIn motion-reduce:translate-x-0': history.length !== 1, 4067 'max-md:animate-slideIconOut motion-reduce:-translate-x-full': history.length == 1 4068 }" 4069 :tabindex="history.length === 1 ? -1 : 0" 4070 :aria-hidden="history.length === 1"> 4071 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 4072 <path d="M13.293 6.293 7.586 12l5.707 5.707 1.414-1.414L10.414 12l4.293-4.293z"/> 4073</svg> 4074 </button> 4075 4076 <h2 4077 class="menu__heading py-3 motion-reduce:max-md:animate-none" 4078 style="--translate-width: 52px;" 4079 :class="{ 4080 'menu__heading--root': 'category-node-1768' === 'all', 4081 'max-md:w-[calc(100%-var(--translate-width))]': 'category-node-1768' !== 'all', 4082 'max-md:animate-slideTitleIn motion-reduce:translate-x-[--translate-width]': history.length !== 1, 4083 'max-md:animate-slideTitleOut motion-reduce:translate-x-0': history.length == 1 4084 }" 4085 x-show="$store.main.isMobile || 'category-node-1768' !== 'all'"> 4086 Entretien </h2> 4087 4088 <div id="menu-actions-category-node-1768" class="md:mt-[6px] md:flex-none md:flex-row"></div> 4089 </div> 4090 <hr class="divider -mx-5 md:hidden"> 4091 </div> 4092 4093 <ul role="list" class="menu__links"> 4094 <li> 4095 <a 4096 x-a11y-trap-target.initial="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1768'" 4097 href="https://www.esprit-ktm.com/entretien/kits-vidange-ktm.html" 4098 role="link" 4099 x-element-transition-trigger:category.animate="{ 4100 'title': `Kits vidange KTM`, 4101 'url': 'https://www.esprit-ktm.com/entretien/kits-vidange-ktm.html', 4102 'breadcrumbs': [{"title":"Entretien","url":"https:\/\/www.esprit-ktm.com\/entretien.html"}], 4103 'img': '', 4104 'description': ``, 4105 }" 4106 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 4107 :class="{ 4108 'text-primary-500 font-semibold': history.includes('category-node-8682') 4109 }">
4110 <span 4111 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4112 <!-- DEBUG: Logo = EMPTY --> 4113 Kits vidange KTM </span> 4114 </a> 4115 </li> 4116 <li> 4117 <a 4118 href="https://www.esprit-ktm.com/entretien/huiles-racing-motorex.html" 4119 role="link" 4120 x-element-transition-trigger:category.animate="{ 4121 'title': `Huiles Moteur`, 4122 'url': 'https://www.esprit-ktm.com/entretien/huiles-racing-motorex.html', 4123 'breadcrumbs': [{"title":"Entretien","url":"https:\/\/www.esprit-ktm.com\/entretien.html"}], 4124 'img': '', 4125 'description': `<p>Retrouvez toute la gamme d&apos;huiles moteur pour l&apos;entretien de votre KTM :</p><p>Huile Motorex KTM RACING 4 Temps, Huile Motorex RACING PRO 4 Temps, Huile Motorex Cross Power 2 Temps et 4 Temps, Huile Motorex POWER SYNT 2 Temps et 4 Temps, Huile Motorex TOP SPEED 4 Temps</p><p>Conditionnement de 500 ml à 4 litres suivant produits.</p><p>Retrouvez le tuto pour effectuer la vidange de votre moto <a href="https://www.youtube.com/watch?v=W9noZXOXZoQ" target="_blank" rel="noopener">ici</a></p>`, 4126 }" 4127 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 4128 :class="{ 4129 'text-primary-500 font-semibold': history.includes('category-node-1821') 4130 }"> 4131 <span 4132 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4133 <!-- DEBUG: Logo = EMPTY --> 4134 Huiles Moteur </span> 4135 </a> 4136 </li> 4137 <li> 4138 <a 4139 href="https://www.esprit-ktm.com/entretien/huile-de-boite.html" 4140 role="link" 4141 x-element-transition-trigger:category.animate="{ 4142 'title': `Huile de boite`, 4143 'url': 'https://www.esprit-ktm.com/entretien/huile-de-boite.html', 4144 'breadcrumbs': [{"title":"Entretien","url":"https:\/\/www.esprit-ktm.com\/entretien.html"}], 4145 'img': '', 4146 'description': ``, 4147 }" 4148 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 4149 :class="{ 4150 'text-primary-500 font-semibold': history.includes('category-node-3168') 4151 }"> 4152 <span 4153 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4154 <!-- DEBUG: Logo = EMPTY --> 4155 Huile de boite </span> 4156 </a> 4157 </li> 4158 <li> 4159 <a 4160 href="https://www.esprit-ktm.com/entretien/huile-de-fourche.html" 4161 role="link" 4162 x-element-transition-trigger:category.animate="{ 4163 'title': `Huile de fourche`, 4164 'url': 'https://www.esprit-ktm.com/entretien/huile-de-fourche.html', 4165 'breadcrumbs': [{"title":"Entretien","url":"https:\/\/www.esprit-ktm.com\/entretien.html"}], 4166 'img': '', 4167 'description': ``, 4168 }" 4169 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 4170 :class="{ 4171 'text-primary-500 font-semibold': history.includes('category-node-3169') 4172 }">
4173 <span 4174 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4175 <!-- DEBUG: Logo = EMPTY --> 4176 Huile de fourche </span> 4177 </a> 4178 </li> 4179 <li> 4180 <a 4181 href="https://www.esprit-ktm.com/entretien/liquide-de-freins.html" 4182 role="link" 4183 x-element-transition-trigger:category.animate="{ 4184 'title': `Liquide de freins`, 4185 'url': 'https://www.esprit-ktm.com/entretien/liquide-de-freins.html', 4186 'breadcrumbs': [{"title":"Entretien","url":"https:\/\/www.esprit-ktm.com\/entretien.html"}], 4187 'img': '', 4188 'description': ``, 4189 }" 4190 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 4191 :class="{ 4192 'text-primary-500 font-semibold': history.includes('category-node-3170') 4193 }"> 4194 <span 4195 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4196 <!-- DEBUG: Logo = EMPTY --> 4197 Liquide de freins </span> 4198 </a> 4199 </li> 4200 <li> 4201 <a 4202 href="https://www.esprit-ktm.com/entretien/liquide-de-refroidissement.html" 4203 role="link" 4204 x-element-transition-trigger:category.animate="{ 4205 'title': `Liquide de refroidissement`, 4206 'url': 'https://www.esprit-ktm.com/entretien/liquide-de-refroidissement.html', 4207 'breadcrumbs': [{"title":"Entretien","url":"https:\/\/www.esprit-ktm.com\/entretien.html"}], 4208 'img': '', 4209 'description': ``, 4210 }" 4211 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 4212 :class="{ 4213 'text-primary-500 font-semibold': history.includes('category-node-3171') 4214 }"> 4215 <span 4216 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4217 <!-- DEBUG: Logo = EMPTY --> 4218 Liquide de refroidissement </span> 4219 </a> 4220 </li> 4221 <li> 4222 <a 4223 href="https://www.esprit-ktm.com/entretien/pneus-cross-enduro.html" 4224 role="link" 4225 x-element-transition-trigger:category.animate="{ 4226 'title': `Pneus & Bibs mousse`, 4227 'url': 'https://www.esprit-ktm.com/entretien/pneus-cross-enduro.html', 4228 'breadcrumbs': [{"title":"Entretien","url":"https:\/\/www.esprit-ktm.com\/entretien.html"}], 4229 'img': '', 4230 'description': `<p>Retrouvez sur notre site tous les pneus cross et enduro pour votre moto.</p><p>Nous travaillons en collaboration avec Michelin, Mitas et Metzeler pour vous offrir un large choix et vous faire bénéficier des meilleurs tarifs sur les pneus Cross et Enduro.</p><p>Trouvez également sur cette page les mousses, tubliss, chambre à air, démonte pneus et bouchons de valve.</p><p>Retrouvez le tuto pour changer un pneu <a href="
4230https://youtu.be/lNaai_K7wE4" target="_blank" rel="noopener">ici</a></p>`, 4231 }" 4232 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 4233 :class="{ 4234 'text-primary-500 font-semibold': history.includes('category-node-1822') 4235 }"> 4236 <span 4237 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4238 <!-- DEBUG: Logo = EMPTY --> 4239 Pneus & Bibs mousse </span> 4240 </a> 4241 </li> 4242 <li> 4243 <a 4244 href="https://www.esprit-ktm.com/entretien/produits-d-entretien-muc-off.html" 4245 role="link" 4246 x-element-transition-trigger:category.animate="{ 4247 'title': `Produits d'entretien Moto`, 4248 'url': 'https://www.esprit-ktm.com/entretien/produits-d-entretien-muc-off.html', 4249 'breadcrumbs': [{"title":"Entretien","url":"https:\/\/www.esprit-ktm.com\/entretien.html"}], 4250 'img': '', 4251 'description': `<p>Peu importe où vous roulez, pourquoi vous roulez, nous avons ce qu&apos;il faut pour votre KTM.</p><p>Découvrez notre gamme de produits Muc-Off ci-dessous, de notre nettoyant rose OG Moto aux protections, lubrifiants et bien plus encore.</p><p>Muc-Off propose une large gamme de<strong>produits dâentretien et de nettoyage</strong>.</p><p>La marque est obsédée par la fabrication de produits de soins les plus<strong>innovants</strong>pour permettre au pilote et à sa moto, de fonctionner au maximum de ses capacités et de donner un aspect neuf lorsque vous avez terminé !</p>`, 4252 }" 4253 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 4254 :class="{ 4255 'text-primary-500 font-semibold': history.includes('category-node-2108') 4256 }"> 4257 <span 4258 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4259 <!-- DEBUG: Logo = EMPTY --> 4260 Produits d'entretien Moto </span> 4261 </a> 4262 </li> 4263 <li> 4264 <a 4265 x-a11y-trap-target.end="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1768'" 4266 href="https://www.esprit-ktm.com/entretien/outils.html" 4267 role="link" 4268 x-element-transition-trigger:category.animate="{ 4269 'title': `Outils`, 4270 'url': 'https://www.esprit-ktm.com/entretien/outils.html', 4271 'breadcrumbs': [{"title":"Entretien","url":"https:\/\/www.esprit-ktm.com\/entretien.html"}], 4272 'img': '', 4273 'description': `<p>Retrouvez tous les outils officiels de la gamme KTM pour la réparation et l&apos;entretien de votre moto KTM : Visserie KTM, Tire ressort KTM, Tapis environnemental KTM, Sangles d&
4273apos;arrimage KTM, sacoche à outil KTM, rampe de moto KTM, Pompe de gonflage KTM, outil multifonction KTM, tous les outils de montage et démontage KTM adapté à votre modèle de moto, lève moto KTM, housses de moto KTM, entonoir KTM, enlève boue KTM, Contrôleur de pression KTM, coffret de premier secours KTM, clef universelle KTM, chargeur et testeur de batteries, béquille de stand, ...</p><p>Retrouvez également tous les manuels de réparations en fonction de votre modèle de moto KTM</p>`, 4274 }" 4275 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 4276 :class="{ 4277 'text-primary-500 font-semibold': history.includes('category-node-1820') 4278 }"> 4279 <span 4280 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4281 <!-- DEBUG: Logo = EMPTY --> 4282 Outils </span> 4283 </a> 4284 </li> 4285 </ul> 4286 4287 <div class="h-20 md:hidden"></div> 4288 <template 4289 x-portal="$store.main.isMobile ? document.getElementById('popup-fixed-content-portal') : document.getElementById('menu-actions-category-node-1768')"> 4290 <div 4291 class="bg-bg-500 px-4 pb-2 transition-colors duration-200 md:bg-transparent md:hover:text-primary-600 md:p-0" 4292 x-transition.opacity 4293 x-show="$store.main.isMobile ? history[history.length - 1] === 'category-node-1768' && !getIsSearchActive() : history.includes('category-node-1768')" 4294 role="link"> 4295 <a 4296 x-element-transition-trigger 4297 class="button bg-white border border-primary-500 text-primary-500 w-full hover:bg-primary-500 hover:text-white hover:scale-105 transition-all duration-200" 4298 href="https://www.esprit-ktm.com/entretien.html"> 4299 <template x-if="$store.main.isMobile"> 4300 <span>Tout voir <span class="lowercase">Entretien</span></span> 4301 </template> 4302 <template x-if="!$store.main.isMobile"> 4303 <span class="flex items-center text-center capitalize"> 4304 <span class='border-current'> 4305 Tout voir <br /> 4306 <span>Entretien</span> 4307 </span> 4308 </span> 4309 </template> 4310 </a> 4311 </div> 4312 </template> 4313 </div> 4314 </template> 4315 </li> 4316 <li> 4317 <button 4318 class="menu__link group" 4319 @click="setHistory([...'all'.split(','), 'category-node-3147'])" 4320 :class="{ 'menu__link--active': history.includes('category-node-3147') }" 4321 role="button" 4322 :aria-expanded="history.includes('category-node-3147')"> 4323 <span class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4324 <!-- DEBUG: Logo = EMPTY --> 4325 Equipements Pilote </span> 4326 <span class="text-xl transition-[color,transform] md:group-hover:-translate-x-3 md:group-hover:text-primary-600"> 4327 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 4328 <path d="M10.707 17.707 16.414 12l-5.707-5.707-1.414 1.414L13.586 12l-4.293 4.293z"/> 4329</svg> 4330 </span> 4331 </button> 4332 <template x-portal="document.getElementById('menu-sections')"> 4333 <div 4334 class="menu__level relative z-[100]" 4335 :class="{ 4336 'menu__level--current': history[history.length - 1] === 'category-node-3147', 4337 'menu__level--visible': history.includes('category-node-3147'), 4338 'menu__level--same-depth': 2 <= delayedLevel, 4339 'hidden': !$store.main.isMobile && !$store.resizable.isVisible('menu-desktop'), 4340 }" 4341 :inert="!history.includes('category-node-3147')" 4342 data-menu-level="category-node-3147"> 4343 <div class="menu__header"> 4344 <div class="menu__header-container p-2 md:flex md:flex-col"> 4345 4346 <button 4347 @click="history.pop()" 4348 type="button" 4349 aria-label="Revenir au menu précédent" 4350 class="menu__back-button py-3 motion-reduce:max-md:animate-none" 4351 :class="{ 4352 'menu__back-button--visible max-md:animate-slideIconIn motion-reduce:translate-x-0': history.length !== 1, 4353 'max-md:animate-slideIconOut motion-reduce:-translate-x-full': history.length == 1 4354 }" 4355 :tabindex="history.length === 1 ? -1 : 0" 4356 :aria-hidden="history.length === 1"> 4357 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 4358 <path d="M13.293 6.293 7.586 12l5.707 5.707 1.414-1.414L10.414 12l4.293-4.293z"/> 4359</svg> 4360 </button> 4361 4362 <h2 4363 class="menu__heading py-3 motion-reduce:max-md:animate-none" 4364 style="--translate-width: 52px;" 4365 :class="{ 4366 'menu__heading--root': 'category-node-3147' === 'all', 4367 'max-md:w-[calc(100%-var(--translate-width))]': 'category-node-3147' !== 'all', 4368 'max-md:animate-slideTitleIn motion-reduce:translate-x-[--translate-width]': history.length !== 1, 4369 'max-md:animate-slideTitleOut motion-reduce:translate-x-0': history.length == 1 4370 }" 4371 x-show="$store.main.isMobile || 'category-node-3147' !== 'all'"> 4372 Equipements Pilote </h2> 4373 4374 <div id="menu-actions-category-node-3147" class="md:mt-[6px] md:flex-none md:flex-row"></div> 4375 </div> 4376 <hr class="divider -mx-5 md:hidden"> 4377 </div> 4378 4379 <ul role="list" class="menu__links"> 4380 <li> 4381 <button 4382 x-a11y-trap-target.initial="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-3147'" 4383 class="menu__link group" 4384 @click="setHistory([...'all,category-node-3147'.split(','), 'category-node-1812'])" 4385 :class="{ 'menu__link--active': history.includes('category-node-1812') }" 4386 role="button" 4387 :aria-expanded="history.includes('category-node-1812')">
4388 <span class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4389 <!-- DEBUG: Logo = EMPTY --> 4390 Equipements pilote Cross & Enduro </span> 4391 <span class="text-xl transition-[color,transform] md:group-hover:-translate-x-3 md:group-hover:text-primary-600"> 4392 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 4393 <path d="M10.707 17.707 16.414 12l-5.707-5.707-1.414 1.414L13.586 12l-4.293 4.293z"/> 4394</svg> 4395 </span> 4396 </button> 4397 <template x-portal="document.getElementById('menu-sections')"> 4398 <div 4399 class="menu__level relative z-[100]" 4400 :class="{ 4401 'menu__level--current': history[history.length - 1] === 'category-node-1812', 4402 'menu__level--visible': history.includes('category-node-1812'), 4403 'menu__level--same-depth': 3 <= delayedLevel, 4404 'hidden': !$store.main.isMobile && !$store.resizable.isVisible('menu-desktop'), 4405 }" 4406 :inert="!history.includes('category-node-1812')" 4407 data-menu-level="category-node-1812"> 4408 <div class="menu__header"> 4409 <div class="menu__header-container p-2 md:flex md:flex-col"> 4410 4411 <button 4412 @click="history.pop()" 4413 type="button" 4414 aria-label="Revenir au menu précédent" 4415 class="menu__back-button py-3 motion-reduce:max-md:animate-none" 4416 :class="{ 4417 'menu__back-button--visible max-md:animate-slideIconIn motion-reduce:translate-x-0': history.length !== 1, 4418 'max-md:animate-slideIconOut motion-reduce:-translate-x-full': history.length == 1 4419 }" 4420 :tabindex="history.length === 1 ? -1 : 0" 4421 :aria-hidden="history.length === 1"> 4422 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 4423 <path d="M13.293 6.293 7.586 12l5.707 5.707 1.414-1.414L10.414 12l4.293-4.293z"/> 4424</svg> 4425 </button> 4426 4427 <h2 4428 class="menu__heading py-3 motion-reduce:max-md:animate-none" 4429 style="--translate-width: 52px;" 4430 :class="{ 4431 'menu__heading--root': 'category-node-1812' === 'all', 4432 'max-md:w-[calc(100%-var(--translate-width))]': 'category-node-1812' !== 'all', 4433 'max-md:animate-slideTitleIn motion-reduce:translate-x-[--translate-width]': history.length !== 1, 4434 'max-md:animate-slideTitleOut motion-reduce:translate-x-0': history.length == 1 4435 }" 4436 x-show="$store.main.isMobile || 'category-node-1812' !== 'all'"> 4437 Equipements pilote Cross & Enduro </h2> 4438 4439 <div id="menu-actions-category-node-1812" class="md:mt-[6px] md:flex-none md:flex-row"></div> 4440 </div> 4441 <hr class="divider -mx-5 md:hidden"> 4442 </div> 4443 4444 <ul role="list" class="menu__links"> 4445 <li> 4446 <a 4447 x-a11y-trap-target.initial="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1812'" 4448 href="https://www.esprit-ktm.com/equipements-pilote/vetements-cross-enduro/bottes-protections.html" 4449 role="link" 4450 x-element-transition-trigger:category.animate="{ 4451 'title': `Bottes`, 4452 'url': 'https://www.esprit-ktm.com/equipements-pilote/vetements-cross-enduro/bottes-protections.html', 4453 'breadcrumbs': [{"title":"Equipements Pilote","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote.html"},{"title":"Equipements pilote Cross & Enduro","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote\/vetements-cross-enduro.html"}], 4454 'img': '', 4455 'description': `Bienvenue dans la catégorie Bottes Cross & Enduro d&
4455apos;Esprit-KTM, où la performance, la protection et le style tout-terrain s&apos;unissent. Plongez dans notre sélection de bottes spécialement conçues pour les amateurs de cross et d&apos;enduro, inspirées par l&apos;héritage tout-terrain de la légendaire marque KTM.Nos bottes Cross & Enduro, arborant fièrement le logo emblématique de KTM, vont bien au-delà de simples équipements de protection pour devenir des pièces essentielles de votre équipement tout-terrain. Chaque paire incarne l&apos;engagement de KTM envers la sécurité et le style sur les pistes les plus exigeantes.Conçues avec une attention particulière à la durabilité, à la protection des pieds et à l&apos;adhérence, nos bottes offrent aux pilotes tout-terrain une combinaison parfaite de performance et de confort. Chaque paire de bottes est une déclaration de l&apos;aventure sans limites, une manière d&apos;affirmer votre passion pour le tout-terrain avec la robustesse caractéristique de KTM.Retrouvez nos collections Tech 7 EXC Boots, Tech 7 MX Boots, Kids Tech 7S Boots et bien d&apos;autres. `, 4456 }" 4457 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 4458 :class="{ 4459 'text-primary-500 font-semibold': history.includes('category-node-1824') 4460 }"> 4461 <span 4462 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4463 <!-- DEBUG: Logo = EMPTY --> 4464 Bottes </span> 4465 </a> 4466 </li> 4467 <li> 4468 <a 4469 href="https://www.esprit-ktm.com/equipements-pilote/vetements-cross-enduro/casques-masques.html" 4470 role="link" 4471 x-element-transition-trigger:category.animate="{ 4472 'title': `Casques`, 4473 'url': 'https://www.esprit-ktm.com/equipements-pilote/vetements-cross-enduro/casques-masques.html', 4474 'breadcrumbs': [{"title":"Equipements Pilote","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote.html"},{"title":"Equipements pilote Cross & Enduro","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote\/vetements-cross-enduro.html"}], 4475 'img': '', 4476 'description': `Bienvenue dans la catégorie Casques Cross & Enduro d&apos;Esprit-KTM, où la sécurité, le style et la performance se rencontrent. Plongez dans notre sélection de casques conçus spécialement pour les amateurs de cross et d&apos;enduro, inspirée par l&apos;héritage tout-terrain de la légendaire marque KTM.Nos casques Cross & Enduro, arborant fièrement le logo emblématique de KTM, vont bien au-delà de simples équipements de protection pour devenir des extensions de votre passion pour l&apos;aventure tout-terrain. Chaque casque incarne l&apos;engagement de KTM envers la sécurité et le style.Conçus avec une attention particulière à la légèreté, à la ventilation et à la technologie de pointe, nos casques offrent aux pilotes une expérience de conduite optimale, même dans les conditions les plus extrêmes. Chaque casque est une déclaration de l&apos;aventure sans compromis, une manière d&apos;affirmer votre engagement avec la puissance et la confiance caractéristiques de KTM.Retrouvez nos casques Stryker Helmet, Kini Red Bull Competition, Aviator 3 Helmet, Dynamic-FX Helmet et bien d&
4476apos;autres.`, 4477 }" 4478 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 4479 :class="{ 4480 'text-primary-500 font-semibold': history.includes('category-node-1813') 4481 }"> 4482 <span 4483 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4484 <!-- DEBUG: Logo = EMPTY --> 4485 Casques </span> 4486 </a> 4487 </li> 4488 <li> 4489 <a 4490 href="https://www.esprit-ktm.com/equipements-pilote/vetements-cross-enduro/gants.html" 4491 role="link" 4492 x-element-transition-trigger:category.animate="{ 4493 'title': `Gants`, 4494 'url': 'https://www.esprit-ktm.com/equipements-pilote/vetements-cross-enduro/gants.html', 4495 'breadcrumbs': [{"title":"Equipements Pilote","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote.html"},{"title":"Equipements pilote Cross & Enduro","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote\/vetements-cross-enduro.html"}], 4496 'img': '', 4497 'description': `Bienvenue dans la catégorie Gants Cross & Enduro d&apos;Esprit-KTM, où la précision, la protection et le confort s&apos;unissent. Plongez dans notre sélection de gants spécialement conçus pour les passionnés de cross et d&apos;enduro, inspirée par l&apos;héritage tout-terrain de la légendaire marque KTM.Nos gants Cross & Enduro, arborant fièrement le logo emblématique de KTM, vont bien au-delà de simples accessoires pour devenir des pièces essentielles de votre équipement tout-terrain. Chaque paire incarne l&apos;engagement de KTM envers la performance et le style sur les pistes les plus exigeantes.Conçus avec une attention particulière à la protection des mains, à la respirabilité et à la mobilité des doigts, nos gants offrent aux pilotes tout-terrain une combinaison parfaite de confort et de contrôle. Chaque paire de gants est une déclaration de l&apos;aventure sans limites, une manière d&apos;affirmer votre passion pour le tout-terrain avec l&apos;authenticité caractéristique de KTM.Retrouvez nos gants Prime Gloves Thor, Speed Racing Team Gloves, Kini-RB Competition, Racetech WP Gloves, Pounce Gloves, Gravity-FX Gloves, Mechanic Gloves et bien d&apos;autres. `, 4498 }" 4499 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 4500 :class="{ 4501 'text-primary-500 font-semibold': history.includes('category-node-2593') 4502 }"> 4503 <span 4504 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4505 <!-- DEBUG: Logo = EMPTY --> 4506 Gants </span> 4507 </a> 4508 </li> 4509 <li> 4510 <a 4511 href="https://www.esprit-ktm.com/equipements-pilote/vetements-cross-enduro/masques.html" 4512 role="link" 4513 x-element-transition-trigger:category.animate="{ 4514 'title': `Masques`, 4515 'url': 'https://www.esprit-ktm.com/equipements-pilote/vetements-cross-enduro/masques.html', 4516 'breadcrumbs': [{"title":"Equipements Pilote","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote.html"},{"title":"Equipements pilote Cross & Enduro","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote\/vetements-cross-enduro.html"}], 4517 'img': '', 4518 'description': `Bienvenue dans la catégorie Masques Cross & Enduro d&
4518apos;Esprit-KTM, où la protection, le style et la performance s&apos;associent. Plongez dans notre sélection de masques spécialement conçus pour les amateurs de cross et d&apos;enduro, inspirée par l&apos;héritage tout-terrain de la légendaire marque KTM.Nos masques Cross & Enduro, arborant fièrement le logo emblématique de KTM, vont bien au-delà de simples accessoires de protection pour devenir des éléments essentiels de votre équipement tout-terrain. Chaque pièce incarne l&apos;engagement de KTM envers la sécurité et le style sur les pistes les plus exigeantes.Conçus avec une attention particulière à la ventilation, à la protection oculaire et au confort, nos masques offrent aux pilotes tout-terrain une vision claire et une protection optimale contre les éléments. Chaque masque est une déclaration de l&apos;aventure sans limites, une manière d&apos;affirmer votre passion pour le tout-terrain avec l&apos;authenticité caractéristique de KTM.Retrouvez nos masques Fury MX Goggles, Kids Racing Goggles, Racing Goggles, Kini Red Bull et bien d&apos;autres. `, 4519 }" 4520 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 4521 :class="{ 4522 'text-primary-500 font-semibold': history.includes('category-node-2590') 4523 }"> 4524 <span 4525 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4526 <!-- DEBUG: Logo = EMPTY --> 4527 Masques </span> 4528 </a> 4529 </li> 4530 <li> 4531 <a 4532 href="https://www.esprit-ktm.com/equipements-pilote/vetements-cross-enduro/maillots.html" 4533 role="link" 4534 x-element-transition-trigger:category.animate="{ 4535 'title': `Maillots`, 4536 'url': 'https://www.esprit-ktm.com/equipements-pilote/vetements-cross-enduro/maillots.html', 4537 'breadcrumbs': [{"title":"Equipements Pilote","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote.html"},{"title":"Equipements pilote Cross & Enduro","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote\/vetements-cross-enduro.html"}], 4538 'img': '', 4539 'description': `Bienvenue dans la catégorie Maillots Cross & Enduro d&apos;Esprit-KTM, où le style, la performance et la résistance se rencontrent. Plongez dans notre sélection de maillots spécialement conçus pour les passionnés de cross et d&apos;enduro, inspirée par l&apos;héritage tout-terrain de la légendaire marque KTM.Nos maillots Cross & Enduro, arborant fièrement le logo emblématique de KTM, vont bien au-delà de simples vêtements pour devenir des éléments essentiels de votre équipement tout-terrain. Chaque pièce incarne l&apos;engagement de KTM envers la performance et le style sur les pistes exigeantes.Conçus avec une attention particulière à la respirabilité, à la liberté de mouvement et au design, nos maillots offrent aux pilotes tout-terrain une combinaison parfaite de confort et de style. Chaque maillot est une déclaration de l&apos;aventure sans limites, une manière d&apos;affirmer votre passion pour le tout-terrain avec l&apos;authenticité caractéristique de KTM.Retrouvez nos maillots Racetech Shirt, Kini-RB Competition, Pounce Shirt, Gravity-FX Shirt, Prime Jersey Thor, Kids Gravity-FX et bien d&
4539apos;autres. `, 4540 }" 4541 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 4542 :class="{ 4543 'text-primary-500 font-semibold': history.includes('category-node-2591') 4544 }"> 4545 <span 4546 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4547 <!-- DEBUG: Logo = EMPTY --> 4548 Maillots </span> 4549 </a> 4550 </li> 4551 <li> 4552 <a 4553 href="https://www.esprit-ktm.com/equipements-pilote/vetements-cross-enduro/pantalons.html" 4554 role="link" 4555 x-element-transition-trigger:category.animate="{ 4556 'title': `Pantalons`, 4557 'url': 'https://www.esprit-ktm.com/equipements-pilote/vetements-cross-enduro/pantalons.html', 4558 'breadcrumbs': [{"title":"Equipements Pilote","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote.html"},{"title":"Equipements pilote Cross & Enduro","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote\/vetements-cross-enduro.html"}], 4559 'img': '', 4560 'description': `Bienvenue dans la catégorie Pantalons Cross & Enduro d&apos;Esprit-KTM, où la résistance, la mobilité et le style tout-terrain s&apos;allient. Plongez dans notre sélection de pantalons spécialement conçus pour les amateurs de cross et d&apos;enduro, inspirée par l&apos;héritage tout-terrain de la légendaire marque KTM.Nos pantalons Cross & Enduro, arborant fièrement le logo emblématique de KTM, vont bien au-delà de simples vêtements pour devenir des éléments essentiels de votre équipement tout-terrain. Chaque pantalon incarne l&apos;engagement de KTM envers la performance et le style sur les pistes les plus exigeantes.Conçus avec une attention particulière à la durabilité, à la ventilation et à la liberté de mouvement, nos pantalons offrent aux pilotes tout-terrain une combinaison parfaite de confort et de protection. Chaque pantalon est une déclaration de l&apos;aventure sans limites, une manière d&apos;affirmer votre passion pour le tout-terrain avec l&apos;authenticité caractéristique de KTM.Découvrez nos pantalons Kini-RB Competition, Gravity-FX Replica Pants, Prime Pants Thor, Pounce Pants, Prime Pro Pants, Kids Gravity-FX Pants, Racetech WP Pants, Adventure S Pants et bien d&apos;autres. `, 4561 }" 4562 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 4563 :class="{ 4564 'text-primary-500 font-semibold': history.includes('category-node-2592') 4565 }"> 4566 <span 4567 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4568 <!-- DEBUG: Logo = EMPTY --> 4569 Pantalons </span> 4570 </a> 4571 </li> 4572 <li> 4573 <a 4574 href="https://www.esprit-ktm.com/equipements-pilote/vetements-cross-enduro/protections.html" 4575 role="link" 4576 x-element-transition-trigger:category.animate="{ 4577 'title': `Protections`, 4578 'url': 'https://www.esprit-ktm.com/equipements-pilote/vetements-cross-enduro/protections.html', 4579 'breadcrumbs': [{"title":"Equipements Pilote","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote.html"},{"title":"Equipements pilote Cross & Enduro","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote\/vetements-cross-enduro.html"}], 4580 'img': '', 4581 'description': `Bienvenue dans la catégorie Protections Cross & Enduro d&
4581apos;Esprit-KTM, où la sécurité, la performance et le style se conjuguent.Plongez dans notre sélection de protections spécialement conçues pour les amateurs de cross et d&apos;enduro, inspirée par l&apos;héritage tout-terrain de la légendaire marque KTM.Nos protections Cross & Enduro, arborant fièrement le logo emblématique de KTM, vont bien au-delà de simples équipements de sécurité pour devenir des éléments essentiels de votre équipement tout-terrain. Chaque pièce incarne l&apos;engagement de KTM envers la sécurité et le style sur les pistes les plus exigeantes.Conçues avec une attention particulière à la durabilité, à l&apos;ajustement optimal et à la liberté de mouvement, nos protections offrent aux pilotes tout-terrain une combinaison parfaite de confort et de sécurité. Chaque protection est une déclaration de l&apos;aventure sans limites, une manière d&apos;affirmer votre passion pour le tout-terrain avec l&apos;authenticité caractéristique de KTM.Retrouvez nos protections KTM pour enfant, nos protections genoux, coudes, cou, poitrine, dorsales, nos pare-pierres et bien d&apos;autres.`, 4582 }" 4583 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 4584 :class="{ 4585 'text-primary-500 font-semibold': history.includes('category-node-2594') 4586 }"> 4587 <span 4588 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4589 <!-- DEBUG: Logo = EMPTY --> 4590 Protections </span> 4591 </a> 4592 </li> 4593 <li> 4594 <a 4595 href="https://www.esprit-ktm.com/equipements-pilote/vetements-cross-enduro/sous-vetements.html" 4596 role="link" 4597 x-element-transition-trigger:category.animate="{ 4598 'title': `Sous Vêtements`, 4599 'url': 'https://www.esprit-ktm.com/equipements-pilote/vetements-cross-enduro/sous-vetements.html', 4600 'breadcrumbs': [{"title":"Equipements Pilote","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote.html"},{"title":"Equipements pilote Cross & Enduro","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote\/vetements-cross-enduro.html"}], 4601 'img': '', 4602 'description': `Bienvenue dans la catégorie Sous-vêtements Cross & Enduro d&apos;Esprit-KTM, où le confort, la technologie et la performance se réunissent.Plongez dans notre sélection de sous-vêtements spécialement conçus pour les amateurs de cross et d&apos;enduro, inspirés par l&apos;héritage tout-terrain de la légendaire marque KTM.Nos sous-vêtements Cross & Enduro vont bien au-delà de simples couches de base pour devenir des éléments clés de votre équipement tout-terrain. Chaque pièce incarne l&apos;engagement de KTM envers la performance et le bien-être du pilote.Conçus avec une attention particulière à la respirabilité, à l&apos;évacuation de l&apos;humidité et à la liberté de mouvement, nos sous-vêtements offrent aux pilotes tout-terrain un confort optimal sous toutes les conditions. Retrouvez nos cagoules, chaussettes, pantalons techniques, t-shirts techniques et bien d&apos;autres. `, 4603 }" 4604 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 4605 :class="{ 4606 'text-primary-500 font-semibold': history.includes('category-node-1890') 4607 }">
4608 <span 4609 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4610 <!-- DEBUG: Logo = EMPTY --> 4611 Sous Vêtements </span> 4612 </a> 4613 </li> 4614 <li> 4615 <a 4616 x-a11y-trap-target.end="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1812'" 4617 href="https://www.esprit-ktm.com/equipements-pilote/vetements-cross-enduro/vestes-maillots-pantalons-gants.html" 4618 role="link" 4619 x-element-transition-trigger:category.animate="{ 4620 'title': `Vestes`, 4621 'url': 'https://www.esprit-ktm.com/equipements-pilote/vetements-cross-enduro/vestes-maillots-pantalons-gants.html', 4622 'breadcrumbs': [{"title":"Equipements Pilote","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote.html"},{"title":"Equipements pilote Cross & Enduro","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote\/vetements-cross-enduro.html"}], 4623 'img': '', 4624 'description': `Bienvenue dans la catégorie Vestes Cross & Enduro d&apos;Esprit-KTM, où la fonctionnalité, le style robuste et la résistance se combinent. Plongez dans notre sélection de vestes inspirées par l&apos;héritage tout-terrain de la légendaire marque KTM.Nos vestes Cross & Enduro, arborant fièrement le logo emblématique de KTM, vont au-delà de simples vêtements de protection pour devenir des pièces maîtresses de votre équipement tout-terrain. Que vous recherchiez une veste légère pour les journées chaudes, une veste résistante pour affronter les intempéries, ou une veste tout-terrain pour une protection complète, chaque pièce incarne l&apos;engagement de KTM envers la performance et le style sur les pistes difficiles.Conçues avec une attention particulière à la durabilité, à la ventilation et à la liberté de mouvement, nos vestes offrent aux pilotes tout-terrain une protection optimale sans compromis sur le confort. Que vous soyez en compétition sur des terrains accidentés ou que vous exploriez de nouveaux sentiers, chaque veste est une déclaration de l&apos;aventure sans limites, une manière d&apos;affirmer votre passion pour le tout-terrain avec l&apos;authenticité caractéristique de KTM.Retrouvez nos collections Defender Jacket, Rain Jacket, Racetech WP Jacket, Woman Adventure S Jacket et bien d&apos;autres. `, 4625 }" 4626 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 4627 :class="{ 4628 'text-primary-500 font-semibold': history.includes('category-node-1861') 4629 }"> 4630 <span 4631 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4632 <!-- DEBUG: Logo = EMPTY --> 4633 Vestes </span> 4634 </a> 4635 </li> 4636 </ul> 4637 4638 <div class="h-20 md:hidden"></div> 4639 <template 4640 x-portal="$store.main.isMobile ? document.getElementById('popup-fixed-content-portal') : document.getElementById('menu-actions-category-node-1812')"> 4641 <div 4642 class="bg-bg-500 px-4 pb-2 transition-colors duration-200 md:bg-transparent md:hover:text-primary-600 md:p-0" 4643 x-transition.opacity 4644 x-show="$store.main.isMobile ? history[history.length - 1] === 'category-node-1812' && !getIsSearchActive() : history.includes('category-node-1812')" 4645 role="link"> 4646 <a 4647 x-element-transition-trigger 4648 class="button bg-white border border-primary-500 text-primary-500 w-full hover:bg-primary-500 hover:text-white hover:scale-105 transition-all duration-200" 4649 href="https://www.esprit-ktm.com/equipements-pilote/vetements-cross-enduro.html"> 4650 <template x-if="$store.main.isMobile">
4651 <span>Tout voir <span class="lowercase">Equipements pilote Cross & Enduro</span></span> 4652 </template> 4653 <template x-if="!$store.main.isMobile"> 4654 <span class="flex items-center text-center capitalize"> 4655 <span class='border-current'> 4656 Tout voir <br /> 4657 <span>Equipements pilote Cross & Enduro</span> 4658 </span> 4659 </span> 4660 </template> 4661 </a> 4662 </div> 4663 </template> 4664 </div> 4665 </template> 4666 </li> 4667 <li> 4668 <button 4669 x-a11y-trap-target.end="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-3147'" 4670 class="menu__link group" 4671 @click="setHistory([...'all,category-node-3147'.split(','), 'category-node-1868'])" 4672 :class="{ 'menu__link--active': history.includes('category-node-1868') }" 4673 role="button" 4674 :aria-expanded="history.includes('category-node-1868')"> 4675 <span class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4676 <!-- DEBUG: Logo = EMPTY --> 4677 Equipements pilote Route </span> 4678 <span class="text-xl transition-[color,transform] md:group-hover:-translate-x-3 md:group-hover:text-primary-600"> 4679 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 4680 <path d="M10.707 17.707 16.414 12l-5.707-5.707-1.414 1.414L13.586 12l-4.293 4.293z"/> 4681</svg> 4682 </span> 4683 </button> 4684 <template x-portal="document.getElementById('menu-sections')"> 4685 <div 4686 class="menu__level relative z-[100]" 4687 :class="{ 4688 'menu__level--current': history[history.length - 1] === 'category-node-1868', 4689 'menu__level--visible': history.includes('category-node-1868'), 4690 'menu__level--same-depth': 3 <= delayedLevel, 4691 'hidden': !$store.main.isMobile && !$store.resizable.isVisible('menu-desktop'), 4692 }" 4693 :inert="!history.includes('category-node-1868')" 4694 data-menu-level="category-node-1868"> 4695 <div class="menu__header"> 4696 <div class="menu__header-container p-2 md:flex md:flex-col"> 4697 4698 <button 4699 @click="history.pop()" 4700 type="button" 4701 aria-label="Revenir au menu précédent" 4702 class="menu__back-button py-3 motion-reduce:max-md:animate-none" 4703 :class="{ 4704 'menu__back-button--visible max-md:animate-slideIconIn motion-reduce:translate-x-0': history.length !== 1, 4705 'max-md:animate-slideIconOut motion-reduce:-translate-x-full': history.length == 1 4706 }" 4707 :tabindex="history.length === 1 ? -1 : 0" 4708 :aria-hidden="history.length === 1"> 4709 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 4710 <path d="M13.293 6.293 7.586 12l5.707 5.707 1.414-1.414L10.414 12l4.293-4.293z"/> 4711</svg> 4712 </button> 4713 4714 <h2 4715 class="menu__heading py-3 motion-reduce:max-md:animate-none" 4716 style="--translate-width: 52px;" 4717 :class="{ 4718 'menu__heading--root': 'category-node-1868' === 'all', 4719 'max-md:w-[calc(100%-var(--translate-width))]': 'category-node-1868' !== 'all', 4720 'max-md:animate-slideTitleIn motion-reduce:translate-x-[--translate-width]': history.length !== 1, 4721 'max-md:animate-slideTitleOut motion-reduce:translate-x-0': history.length == 1 4722 }" 4723 x-show="$store.main.isMobile || 'category-node-1868' !== 'all'"> 4724 Equipements pilote Route </h2> 4725 4726 <div id="menu-actions-category-node-1868" class="md:mt-[6px] md:flex-none md:flex-row"></div> 4727 </div> 4728 <hr class="divider -mx-5 md:hidden"> 4729 </div> 4730 4731 <ul role="list" class="menu__links"> 4732 <li> 4733 <a 4734 x-a11y-trap-target.initial="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1868'" 4735 href="https://www.esprit-ktm.com/equipements-pilote/vetements-pilote-route/bottes.html" 4736 role="link" 4737 x-element-transition-trigger:category.animate="{ 4738 'title': `Bottes et chaussures de moto`, 4739 'url': 'https://www.esprit-ktm.com/equipements-pilote/vetements-pilote-route/bottes.html', 4740 'breadcrumbs': [{"title":"Equipements Pilote","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote.html"},{"title":"Equipements pilote Route","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote\/vetements-pilote-route.html"}], 4741 'img': '', 4742 'description': `Bienvenue dans la catégorie Bottes Pilote Route d&apos;Esprit-KTM, où l&apos;alliance entre protection, style et performance se rencontrent.Plongez dans notre sélection de bottes conçues spécialement pour les pilotes de route, inspirées par l&apos;héritage audacieux de la légendaire marque KTM.Nos bottes Pilote Route, arborant fièrement le logo emblématique de KTM, vont bien au-delà du simple équipement pour devenir une extension de votre passion pour la route. Chaque paire incarne l&apos;engagement de KTM envers la sécurité et le style sur la route.Conçues avec une attention particulière à la robustesse, au confort et à la protection, nos bottes offrent aux motards une expérience de conduite optimale, alliant fermeté et agilité. Que vou
4742s soyez en balade décontractée, en virée sportive ou en road trip épique, chaque paire de bottes est une déclaration de l&apos;aventure sans limites, une manière d&apos;affirmer votre passion pour la route avec l&apos;authenticité caractéristique de KTM.Retrouvez nos bottes Kids Tech 7S MX Boots, Tech 7 MX Botts, Tech 10 Boots, S-MX6 V2 Boots, Supertech R et bien d&apos;autres. `, 4743 }" 4744 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 4745 :class="{ 4746 'text-primary-500 font-semibold': history.includes('category-node-2596') 4747 }"> 4748 <span 4749 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4750 <!-- DEBUG: Logo = EMPTY --> 4751 Bottes et chaussures de moto </span> 4752 </a> 4753 </li> 4754 <li> 4755 <a 4756 href="https://www.esprit-ktm.com/equipements-pilote/vetements-pilote-route/casques.html" 4757 role="link" 4758 x-element-transition-trigger:category.animate="{ 4759 'title': `Casques`, 4760 'url': 'https://www.esprit-ktm.com/equipements-pilote/vetements-pilote-route/casques.html', 4761 'breadcrumbs': [{"title":"Equipements Pilote","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote.html"},{"title":"Equipements pilote Route","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote\/vetements-pilote-route.html"}], 4762 'img': '', 4763 'description': `Bienvenue dans la catégorie Casques Pilote Route d&apos;Esprit-KTM, où la sécurité, le style et l&apos;innovation se rencontrent. Plongez dans notre sélection de casques conçus spécialement pour les pilotes de route, inspirés par l&apos;héritage audacieux de la légendaire marque KTM.Nos casques Pilote Route, arborant fièrement le logo emblématique de KTM, vont bien au-delà de simples équipements de sécurité pour devenir des extensions de votre passion pour la conduite. Chaque casque incarne l&apos;engagement de KTM envers la sécurité et le style sur la route.Conçus avec une attention particulière à la légèreté, à la ventilation et à la technologie de pointe, nos casques offrent aux motards une expérience de conduite optimale, alliant confort et performance. Que vous soyez en balade tranquille, en virée sportive ou en road trip passionnant, chaque casque est une déclaration de l&apos;aventure sans limites, une manière d&apos;affirmer votre passion pour la route avec l&apos;authenticité caractéristique de KTM.Retrouvez nos casques Speed Racing Team, C5 helmet, Breaker Evo Helmet, ST501Helmet, Explorer Helmet, Factor Helmet, X-Spirit III Helmet et bien d&apos;autres.`, 4764 }" 4765 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 4766 :class="{ 4767 'text-primary-500 font-semibold': history.includes('category-node-1871') 4768 }"> 4769 <span 4770 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4771 <!-- DEBUG: Logo = EMPTY --> 4772 Casques </span> 4773 </a> 4774 </li> 4775 <li> 4776 <a 4777 href="https://www.esprit-ktm.com/equipements-pilote/vetements-pilote-route/gants-bottes.html" 4778 role="link" 4779 x-element-transition-trigger:category.animate="{ 4780 'title': `Gants`, 4781 'url': 'https://www.esprit-ktm.com/equipements-pilote/vetements-pilote-route/gants-bottes.html', 4782 'breadcrumbs': [{"title":"Equipements Pilote","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote.html"},{"title":"Equipements pilote Route","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote\/vetements-pilote-route.html"}], 4783 'img': '', 4784 'description': `Bienvenue dans la catégorie Gants Pilote Route d&apos;Esprit-KTM, où la fusion entre protection, confort et style redéfinit l&apos;expérience de conduite sur route. Lire la suitePlongez dans notre sélection de gants conçus spécialement pour les motards de route, inspirés par l&apos;héritage intrépide de la légendaire marque KTM.Nos gants Pilote Route, arborant fièrement le logo emblématique de KTM, vont au-delà de simples accessoires pour devenir des éléments essentiels de votre équipement de conduite. Chaque paire incarne l&apos;engagement de KTM envers la sécurité et le style sur la route.Conçus avec une attention particulière à la protection des mains, à la ventilation et à la flexibilité, nos gants offrent aux motards une expérience de conduite optimale, alliant confort et performance. Que vou
4784s soyez en balade décontractée, en virée sportive ou en road trip épique, chaque paire de gants est une déclaration de l&apos;aventure sans limites, une manière d&apos;affirmer votre passion pour la route avec l&apos;authenticité caractéristique de KTM.Retrouvez nos gants Speed Racing Team Gloves, SP-2 V3 Gloves, RB Speed Gloves, Ultra V2 WP Gloves, Racetech Gloves, ADV R Gloves, Two 4 Ride Gloves et bien d&apos;autres. `, 4785 }" 4786 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 4787 :class="{ 4788 'text-primary-500 font-semibold': history.includes('category-node-1870') 4789 }"> 4790 <span 4791 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4792 <!-- DEBUG: Logo = EMPTY --> 4793 Gants </span> 4794 </a> 4795 </li> 4796 <li> 4797 <a 4798 href="https://www.esprit-ktm.com/equipements-pilote/vetements-pilote-route/pantalons.html" 4799 role="link" 4800 x-element-transition-trigger:category.animate="{ 4801 'title': `Pantalons`, 4802 'url': 'https://www.esprit-ktm.com/equipements-pilote/vetements-pilote-route/pantalons.html', 4803 'breadcrumbs': [{"title":"Equipements Pilote","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote.html"},{"title":"Equipements pilote Route","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote\/vetements-pilote-route.html"}], 4804 'img': '', 4805 'description': `Bienvenue dans la catégorie Pantalons Pilote Route d&apos;Esprit-KTM, où le style et le confort s&apos;allient. Lire la suitePlongez dans notre sélection de pantalons conçus spécialement pour les pilotes de route, inspirés par l&apos;héritage audacieux de la légendaire marque KTM.Nos pantalons Pilote Route, arborant fièrement le logo emblématique de KTM vont bien au-delà du simple équipement pour devenir une extension de votre passion pour la route. Chaque paire incarne l&apos;engagement de KTM envers le confort et le style sur la route.Conçus avec une attention particulière au design, à la protection contre les intempéries et à la liberté de mouvement, nos pantalons offrent aux motards une combinaison parfaite d&apos;esthétique et de fonctionnalité. Que vous soyez en balade décontractée, en virée sportive ou en road trip épique, chaque pantalon est une déclaration de l&apos;aventure sans limites, une manière d&apos;affirmer votre passion pour la route avec l&apos;élégance caractéristique de KTM.Retrouvez nos pantalons Racetech WP Pants, Pure Pants, Street Evo Pants, Terra Adventure V2 Pants, Apex V3 Pants, Women Tourrain WP V2 Pants, Elemental GTX Pants et bien d&apos;autres.`, 4806 }" 4807 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 4808 :class="{ 4809 'text-primary-500 font-semibold': history.includes('category-node-2595') 4810 }"> 4811 <span 4812 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4813 <!-- DEBUG: Logo = EMPTY --> 4814 Pantalons </span> 4815 </a> 4816 </li> 4817 <li> 4818 <a 4819 href="https://www.esprit-ktm.com/equipements-pilote/vetements-pilote-route/protections.html" 4820 role="link" 4821 x-element-transition-trigger:category.animate="{ 4822 'title': `Protections`, 4823 'url': 'https://www.esprit-ktm.com/equipements-pilote/vetements-pilote-route/protections.html', 4824 'breadcrumbs': [{"title":"Equipements Pilote","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote.html"},{"title":"Equipements pilote Route","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote\/vetements-pilote-route.html"}], 4825 'img': '', 4826 'description': `Bienvenue dans la catégorie Protections Pilote Route d&apos;Esprit-KTM, où la sécurité, le style et la performance se conjuguent. Lire la suitePlongez dans notre sélection de protections conçues spécialement pour les pilotes de route, inspirées par l&apos;héritage intrépide de la légendaire marque KTM.Nos protections Pilote Route, arborant fièrement le logo emblématique de KTM, vont bien au-delà des simples équipements de sécurité pour devenir des gardiens dédiés de votre passion pour la route. Que vou
4826s recherchiez des protections dorsales pour une sécurité totale ou des coudières pour une protection spécifique, chaque pièce incarne l&apos;engagement de KTM envers la sécurité et le style sur la route.Conçues avec une attention particulière à la robustesse, au confort et à la liberté de mouvement, nos protections offrent aux motards une combinaison parfaite de sécurité et de mobilité. Que vous soyez en balade décontractée, en virée sportive ou en road trip épique, chaque protection est une déclaration de l&apos;aventure sans limites, une manière d&apos;affirmer votre passion pour la route avec l&apos;authenticité caractéristique de KTM.Retrouvez nos protections dorsales, nos ceintures lombaires ou encore nos gilets réfléchissants. `, 4827 }" 4828 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 4829 :class="{ 4830 'text-primary-500 font-semibold': history.includes('category-node-2597') 4831 }"> 4832 <span 4833 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4834 <!-- DEBUG: Logo = EMPTY --> 4835 Protections </span> 4836 </a> 4837 </li> 4838 <li> 4839 <a 4840 x-a11y-trap-target.end="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1868'" 4841 href="https://www.esprit-ktm.com/equipements-pilote/vetements-pilote-route/vestes-pantalons.html" 4842 role="link" 4843 x-element-transition-trigger:category.animate="{ 4844 'title': `Vestes`, 4845 'url': 'https://www.esprit-ktm.com/equipements-pilote/vetements-pilote-route/vestes-pantalons.html', 4846 'breadcrumbs': [{"title":"Equipements Pilote","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote.html"},{"title":"Equipements pilote Route","url":"https:\/\/www.esprit-ktm.com\/equipements-pilote\/vetements-pilote-route.html"}], 4847 'img': '', 4848 'description': `Bienvenue dans la catégorie Vestes Pilote Route d&apos;Esprit-KTM, où l&apos;alliance entre élégance, fonctionnalité et confort redéfinit le style de la conduite sur route. Lire la suitePlongez dans notre sélection de vestes conçues spécialement pour les motards de route, inspirées par l&apos;héritage audacieux de la légendaire marque KTM.Nos vestes Pilote Route, arborant fièrement le logo emblématique de KTM, transcendent le simple vêtement pour devenir une déclaration de style et de passion pour la route. Chaque veste incarne l&apos;engagement de KTM envers le confort et le style sur la route.Conçues avec une attention particulière au design, à la protection contre les intempéries et à la liberté de mouvement, nos vestes offrent aux motards une combinaison parfaite d&apos;esthétique et de fonctionnalité. Chaque veste est une déclaration de l&apos;aventure sans limites, une manière d&apos;affirmer votre passion pour la route avec l&apos;élégance caractéristique de KTM.Retrouvez nos vestes Racetech WP Jacket, Speed Jacket, Kini-RB Competition, Terra Adventure V2 Jacket, Street Evo V2 Jacket, Women Aspect Leather Jacket et bien d&apos;autres. `, 4849 }" 4850 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 4851 :class="{ 4852 'text-primary-500 font-semibold': history.includes('category-node-1869') 4853 }">
4854 <span 4855 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4856 <!-- DEBUG: Logo = EMPTY --> 4857 Vestes </span> 4858 </a> 4859 </li> 4860 </ul> 4861 4862 <div class="h-20 md:hidden"></div> 4863 <template 4864 x-portal="$store.main.isMobile ? document.getElementById('popup-fixed-content-portal') : document.getElementById('menu-actions-category-node-1868')"> 4865 <div 4866 class="bg-bg-500 px-4 pb-2 transition-colors duration-200 md:bg-transparent md:hover:text-primary-600 md:p-0" 4867 x-transition.opacity 4868 x-show="$store.main.isMobile ? history[history.length - 1] === 'category-node-1868' && !getIsSearchActive() : history.includes('category-node-1868')" 4869 role="link"> 4870 <a 4871 x-element-transition-trigger 4872 class="button bg-white border border-primary-500 text-primary-500 w-full hover:bg-primary-500 hover:text-white hover:scale-105 transition-all duration-200" 4873 href="https://www.esprit-ktm.com/equipements-pilote/vetements-pilote-route.html"> 4874 <template x-if="$store.main.isMobile"> 4875 <span>Tout voir <span class="lowercase">Equipements pilote Route</span></span> 4876 </template> 4877 <template x-if="!$store.main.isMobile"> 4878 <span class="flex items-center text-center capitalize"> 4879 <span class='border-current'> 4880 Tout voir <br /> 4881 <span>Equipements pilote Route</span> 4882 </span> 4883 </span> 4884 </template> 4885 </a> 4886 </div> 4887 </template> 4888 </div> 4889 </template> 4890 </li> 4891 </ul> 4892 4893 <div class="h-20 md:hidden"></div> 4894 <template 4895 x-portal="$store.main.isMobile ? document.getElementById('popup-fixed-content-portal') : document.getElementById('menu-actions-category-node-3147')"> 4896 <div 4897 class="bg-bg-500 px-4 pb-2 transition-colors duration-200 md:bg-transparent md:hover:text-primary-600 md:p-0" 4898 x-transition.opacity 4899 x-show="$store.main.isMobile ? history[history.length - 1] === 'category-node-3147' && !getIsSearchActive() : history.includes('category-node-3147')" 4900 role="link"> 4901 <a 4902 x-element-transition-trigger 4903 class="button bg-white border border-primary-500 text-primary-500 w-full hover:bg-primary-500 hover:text-white hover:scale-105 transition-all duration-200" 4904 href="https://www.esprit-ktm.com/equipements-pilote.html"> 4905 <template x-if="$store.main.isMobile"> 4906 <span>Tout voir <span class="lowercase">Equipements Pilote</span></span> 4907 </template> 4908 <template x-if="!$store.main.isMobile"> 4909 <span class="flex items-center text-center capitalize"> 4910 <span class='border-current'> 4911 Tout voir <br /> 4912 <span>Equipements Pilote</span> 4913 </span> 4914 </span> 4915 </template> 4916 </a> 4917 </div> 4918 </template> 4919 </div> 4920 </template> 4921 </li> 4922 <li> 4923 <button 4924 class="menu__link group" 4925 @click="setHistory([...'all'.split(','), 'category-node-1769'])" 4926 :class="{ 'menu__link--active': history.includes('category-node-1769') }" 4927 role="button" 4928 :aria-expanded="history.includes('category-node-1769')">
4929 <span class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4930 <!-- DEBUG: Logo = EMPTY --> 4931 Vêtements </span> 4932 <span class="text-xl transition-[color,transform] md:group-hover:-translate-x-3 md:group-hover:text-primary-600"> 4933 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 4934 <path d="M10.707 17.707 16.414 12l-5.707-5.707-1.414 1.414L13.586 12l-4.293 4.293z"/> 4935</svg> 4936 </span> 4937 </button> 4938 <template x-portal="document.getElementById('menu-sections')"> 4939 <div 4940 class="menu__level relative z-[100]" 4941 :class="{ 4942 'menu__level--current': history[history.length - 1] === 'category-node-1769', 4943 'menu__level--visible': history.includes('category-node-1769'), 4944 'menu__level--same-depth': 2 <= delayedLevel, 4945 'hidden': !$store.main.isMobile && !$store.resizable.isVisible('menu-desktop'), 4946 }" 4947 :inert="!history.includes('category-node-1769')" 4948 data-menu-level="category-node-1769"> 4949 <div class="menu__header"> 4950 <div class="menu__header-container p-2 md:flex md:flex-col"> 4951 4952 <button 4953 @click="history.pop()" 4954 type="button" 4955 aria-label="Revenir au menu précédent" 4956 class="menu__back-button py-3 motion-reduce:max-md:animate-none" 4957 :class="{ 4958 'menu__back-button--visible max-md:animate-slideIconIn motion-reduce:translate-x-0': history.length !== 1, 4959 'max-md:animate-slideIconOut motion-reduce:-translate-x-full': history.length == 1 4960 }" 4961 :tabindex="history.length === 1 ? -1 : 0" 4962 :aria-hidden="history.length === 1"> 4963 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 4964 <path d="M13.293 6.293 7.586 12l5.707 5.707 1.414-1.414L10.414 12l4.293-4.293z"/> 4965</svg> 4966 </button> 4967 4968 <h2 4969 class="menu__heading py-3 motion-reduce:max-md:animate-none" 4970 style="--translate-width: 52px;" 4971 :class="{ 4972 'menu__heading--root': 'category-node-1769' === 'all', 4973 'max-md:w-[calc(100%-var(--translate-width))]': 'category-node-1769' !== 'all', 4974 'max-md:animate-slideTitleIn motion-reduce:translate-x-[--translate-width]': history.length !== 1, 4975 'max-md:animate-slideTitleOut motion-reduce:translate-x-0': history.length == 1 4976 }" 4977 x-show="$store.main.isMobile || 'category-node-1769' !== 'all'"> 4978 Vêtements </h2> 4979 4980 <div id="menu-actions-category-node-1769" class="md:mt-[6px] md:flex-none md:flex-row"></div> 4981 </div> 4982 <hr class="divider -mx-5 md:hidden"> 4983 </div> 4984 4985 <ul role="list" class="menu__links"> 4986 <li> 4987 <button 4988 x-a11y-trap-target.initial="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1769'" 4989 class="menu__link group" 4990 @click="setHistory([...'all,category-node-1769'.split(','), 'category-node-1815'])" 4991 :class="{ 'menu__link--active': history.includes('category-node-1815') }" 4992 role="button" 4993 :aria-expanded="history.includes('category-node-1815')"> 4994 <span class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 4995 <!-- DEBUG: Logo = EMPTY --> 4996 Vêtements Homme </span>
4997 <span class="text-xl transition-[color,transform] md:group-hover:-translate-x-3 md:group-hover:text-primary-600"> 4998 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 4999 <path d="M10.707 17.707 16.414 12l-5.707-5.707-1.414 1.414L13.586 12l-4.293 4.293z"/> 5000</svg> 5001 </span> 5002 </button> 5003 <template x-portal="document.getElementById('menu-sections')"> 5004 <div 5005 class="menu__level relative z-[100]" 5006 :class="{ 5007 'menu__level--current': history[history.length - 1] === 'category-node-1815', 5008 'menu__level--visible': history.includes('category-node-1815'), 5009 'menu__level--same-depth': 3 <= delayedLevel, 5010 'hidden': !$store.main.isMobile && !$store.resizable.isVisible('menu-desktop'), 5011 }" 5012 :inert="!history.includes('category-node-1815')" 5013 data-menu-level="category-node-1815"> 5014 <div class="menu__header"> 5015 <div class="menu__header-container p-2 md:flex md:flex-col"> 5016 5017 <button 5018 @click="history.pop()" 5019 type="button" 5020 aria-label="Revenir au menu précédent" 5021 class="menu__back-button py-3 motion-reduce:max-md:animate-none" 5022 :class="{ 5023 'menu__back-button--visible max-md:animate-slideIconIn motion-reduce:translate-x-0': history.length !== 1, 5024 'max-md:animate-slideIconOut motion-reduce:-translate-x-full': history.length == 1 5025 }" 5026 :tabindex="history.length === 1 ? -1 : 0" 5027 :aria-hidden="history.length === 1"> 5028 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 5029 <path d="M13.293 6.293 7.586 12l5.707 5.707 1.414-1.414L10.414 12l4.293-4.293z"/> 5030</svg> 5031 </button> 5032 5033 <h2 5034 class="menu__heading py-3 motion-reduce:max-md:animate-none" 5035 style="--translate-width: 52px;" 5036 :class="{ 5037 'menu__heading--root': 'category-node-1815' === 'all', 5038 'max-md:w-[calc(100%-var(--translate-width))]': 'category-node-1815' !== 'all', 5039 'max-md:animate-slideTitleIn motion-reduce:translate-x-[--translate-width]': history.length !== 1, 5040 'max-md:animate-slideTitleOut motion-reduce:translate-x-0': history.length == 1 5041 }" 5042 x-show="$store.main.isMobile || 'category-node-1815' !== 'all'"> 5043 Vêtements Homme </h2> 5044 5045 <div id="menu-actions-category-node-1815" class="md:mt-[6px] md:flex-none md:flex-row"></div> 5046 </div> 5047 <hr class="divider -mx-5 md:hidden"> 5048 </div> 5049 5050 <ul role="list" class="menu__links"> 5051 <li> 5052 <a 5053 x-a11y-trap-target.initial="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1815'" 5054 href="https://www.esprit-ktm.com/vetements-ktm/vetements-hommes/accessoires-lunettes.html" 5055 role="link" 5056 x-element-transition-trigger:category.animate="{ 5057 'title': `Chaussures`, 5058 'url': 'https://www.esprit-ktm.com/vetements-ktm/vetements-hommes/accessoires-lunettes.html', 5059 'breadcrumbs': [{"title":"V\u00eatements","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm.html"},{"title":"V\u00eatements Homme","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm\/vetements-hommes.html"}], 5060 'img': '', 5061 'description': `Bienvenue dans la catégorie Accessoires des Vêtements Homme d&apos;Esprit-KTM, où chaque détail devient une déclaration de style, de passion et d&apos;aventure. Lire la suiteExplorez une gamme d&apos;accessoires soigneusement sélectionnés pour compléter votre look, que vous soyez sur la route, en ville ou simplement en train de vivre votre passion au quotidien.Nos accessoires, ornés du logo emblématique de KTM, sont conçus pour ajouter une touche distinctive à votre style tout en célébrant l&apos;
5061héritage légendaire de la marque. Que vous optiez pour une casquette arborant fièrement le logo KTM ou des chaussures aux couleurs de la marque, chaque accessoire incarne l&apos;esprit indomptable de KTM.Explorez notre catégorie Accessoires avec la même curiosité qu&apos;un motard découvrant de nouvelles routes, et offrez à votre style une dimension supplémentaire inspirée par l&apos;esprit de KTM. Avec Esprit-KTM, chaque accessoire devient une pièce essentielle, une façon de porter avec fierté la passion pour l&apos;aventure sur deux roues.Retrouvez nos chaussures TeamShoes, Mechanic Shoes, Team Sandals, ou encore nos casquettes KTM.`, 5062 }" 5063 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 5064 :class="{ 5065 'text-primary-500 font-semibold': history.includes('category-node-1816') 5066 }"> 5067 <span 5068 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 5069 <!-- DEBUG: Logo = EMPTY --> 5070 Chaussures </span> 5071 </a> 5072 </li> 5073 <li> 5074 <a 5075 href="https://www.esprit-ktm.com/vetements-ktm/vetements-hommes/pantalons-shorts.html" 5076 role="link" 5077 x-element-transition-trigger:category.animate="{ 5078 'title': `Pantalons`, 5079 'url': 'https://www.esprit-ktm.com/vetements-ktm/vetements-hommes/pantalons-shorts.html', 5080 'breadcrumbs': [{"title":"V\u00eatements","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm.html"},{"title":"V\u00eatements Homme","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm\/vetements-hommes.html"}], 5081 'img': '', 5082 'description': `Bienvenue dans la catégorie Pantalons des Vêtements Homme d&apos;Esprit-KTM, où le confort, la fonctionnalité et le style se conjuguent. Lire la suiteExplorez une gamme exceptionnelle de pantalons conçus pour les hommes qui exigent performance et élégance, que ce soit sur la route ou en ville.Nos pantalons vont au-delà de simples vêtements. Ils sont une extension de votre passion pour la moto, offrant une coupe et des matériaux qui répondent aux plus hautes exigences tout en reflétant l&apos;authenticité de la marque. Chaque pièce incarne l&apos;esprit indomptable de KTM.Explorez notre catégorie Pantalons avec la même détermination qu&apos;un motard abordant une courbe serrée, et offrez à votre style une dose d&apos;audace inspirée par l&apos;esprit indomptable de KTM. Avec Esprit-KTM, chaque pantalon devient une pièce maîtresse de votre garde-robe, une invitation à rouler avec style et confort sur la route de l&apos;aventure.Retrouvez nos collections Replica Team Pants, Mechanic Pants, Team Pants.`, 5083 }" 5084 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 5085 :class="{ 5086 'text-primary-500 font-semibold': history.includes('category-node-1860') 5087 }"> 5088 <span 5089 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 5090 <!-- DEBUG: Logo = EMPTY --> 5091 Pantalons </span> 5092 </a> 5093 </li> 5094 <li> 5095 <a 5096 href="https://www.esprit-ktm.com/vetements-ktm/vetements-hommes/sweats.html" 5097 role="link" 5098 x-element-transition-trigger:category.animate="{ 5099 'title': `Sweats`, 5100 'url': 'https://www.esprit-ktm.com/vetements-ktm/vetements-hommes/sweats.html', 5101 'breadcrumbs': [{"title":"V\u00eatements","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm.html"},{"title":"V\u00eatements Homme","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm\/vetements-hommes.html"}], 5102 'img': '', 5103 'description': `Bienvenue dans la catégorie Sweats de notre c
5103ollection Vêtements Homme d&apos;Esprit-KTM, là où le confort et le style s&apos;unissent. Lire la suiteExplorez une gamme de sweats conçus pour les hommes qui recherchent une tenue KTM tout en conservant une allure résolument audacieuse, inspirée par la légendaire marque KTM.Nos sweats, ornés du logo emblématique de KTM, vont au-delà de simples vêtements ; ils sont une déclaration de votre engagement envers la passion de la moto. Que vous optiez pour un sweat à capuche décontracté pour vos virées en ville ou pour un sweat zippé pour vous accompagner sur la route, chaque pièce incarne l&apos;esprit indomptable et l&apos;authenticité de KTM.Conçus pour vous offrir un confort optimal tout en reflétant le caractère puissant de la marque, nos sweats sont prêts à vous accompagner dans toutes vos aventures.Explorez notre catégorie Sweats avec la même détermination qu&apos;un motard sur la route, et offrez à votre style une dose de chaleur et d&apos;audace inspirée par l&apos;esprit indomptable de KTM.Retrouvez nos collections Replica Team Zip Hoodie, Winter Sweater, Speed Hoodie, Shred, RB Speed, Kini Red Bull, Radical Hoodie et bien d&apos;autres.`, 5104 }" 5105 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 5106 :class="{ 5107 'text-primary-500 font-semibold': history.includes('category-node-2577') 5108 }"> 5109 <span 5110 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 5111 <!-- DEBUG: Logo = EMPTY --> 5112 Sweats </span> 5113 </a> 5114 </li> 5115 <li> 5116 <a 5117 href="https://www.esprit-ktm.com/vetements-ktm/vetements-hommes/shorts.html" 5118 role="link" 5119 x-element-transition-trigger:category.animate="{ 5120 'title': `Shorts`, 5121 'url': 'https://www.esprit-ktm.com/vetements-ktm/vetements-hommes/shorts.html', 5122 'breadcrumbs': [{"title":"V\u00eatements","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm.html"},{"title":"V\u00eatements Homme","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm\/vetements-hommes.html"}], 5123 'img': '', 5124 'description': `Bienvenue dans la catégorie Shorts de notre collection Vêtements Homme d&apos;Esprit-KTM, où le confort, la liberté de mouvement et le style se rencontrent. Lire la suiteExplorez une gamme de shorts conçus pour les hommes qui recherchent l&apos;équilibre parfait entre décontraction et l&apos;esprit dynamique de la moto.Nos shorts, fièrement ornés du logo emblématique de KTM, vont au-delà de simples vêtements de détente ; ils sont une déclaration de style qui célèbre la passion pour l&apos;aventure sur deux roues. Que vous optiez pour des shorts pour vos virées urbaines ou pour une journée active, chaque pièce incarne l&apos;esprit indomptable et l&apos;authenticité de KTM.Explorez notre catégorie Shorts avec la même aisance qu&apos;un motard manÅuvrant habilement sur l&apos;asphalte, et offrez à votre style une dose d&apos;audace et de fraîcheur inspirée par l&apos;esprit de KTM. Retrouvez nos collections Radical Shorts, Team Shorts, Pure Shorts, Mechanic Shorts ou encore Replica Team Shorts. `, 5125 }" 5126 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 5127 :class="{ 5128 'text-primary-500 font-semibold': history.includes('category-node-2578') 5129 }">
5130 <span 5131 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 5132 <!-- DEBUG: Logo = EMPTY --> 5133 Shorts </span> 5134 </a> 5135 </li> 5136 <li> 5137 <a 5138 href="https://www.esprit-ktm.com/vetements-ktm/vetements-hommes/t-shirts-chemises.html" 5139 role="link" 5140 x-element-transition-trigger:category.animate="{ 5141 'title': `T-Shirts, Polos et Chemises`, 5142 'url': 'https://www.esprit-ktm.com/vetements-ktm/vetements-hommes/t-shirts-chemises.html', 5143 'breadcrumbs': [{"title":"V\u00eatements","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm.html"},{"title":"V\u00eatements Homme","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm\/vetements-hommes.html"}], 5144 'img': '', 5145 'description': `<p>Bienvenue dans la catégorie KTM Tshirt et Chemises KTM de notre collection Vêtements Homme d&apos;Esprit-KTM. Lire la suite Plongez dans une gamme de tshirts KTM et chemises conçus pour les hommes qui partagent une passion commune pour la moto et le style authentique de KTM. Nos t-shirts et chemises, ornés du logo emblématique de KTM, sont bien plus que des vêtements ; ce sont des expressions de votre passion pour l&apos;aventure sur deux roues. Que vous optiez pour un look décontracté avec nos t-shirts au design dynamique ou que vous préfériez l&apos;élégance intemporelle de nos chemises, chaque pièce de notre collection célèbre l&apos;esprit indomptable de KTM. Explorez notre catégorie tshirt KTM et Chemises avec la même aisance qu&apos;un motard manÅuvrant habilement sur l&apos;asphalte, et offrez à votre style une touche distinctive inspirée par l&apos;héritage de KTM. Retrouvez nos collections Replica Team KTM, Red Bull KTM, Pure Style KTM, KTM Pure Racing, Essential Tee, Edition Desert, et bien d&apos;autres.</p>`, 5146 }" 5147 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 5148 :class="{ 5149 'text-primary-500 font-semibold': history.includes('category-node-1859') 5150 }"> 5151 <span 5152 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 5153 <!-- DEBUG: Logo = EMPTY --> 5154 T-Shirts, Polos et Chemises </span> 5155 </a> 5156 </li> 5157 <li> 5158 <a 5159 x-a11y-trap-target.end="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1815'" 5160 href="https://www.esprit-ktm.com/vetements-ktm/vetements-hommes/vestes-sweats-ktm.html" 5161 role="link" 5162 x-element-transition-trigger:category.animate="{ 5163 'title': `Vestes`, 5164 'url': 'https://www.esprit-ktm.com/vetements-ktm/vetements-hommes/vestes-sweats-ktm.html', 5165 'breadcrumbs': [{"title":"V\u00eatements","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm.html"},{"title":"V\u00eatements Homme","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm\/vetements-hommes.html"}], 5166 'img': '', 5167 'description': `Bienvenue dans la catégorie Vestes de notre c
5167ollection Vêtements Homme d&apos;Esprit-KTM. Lire la suiteExplorez une gamme exceptionnelle de vestes conçues pour les hommes passionnés de moto, offrant non seulement une protection contre les éléments, mais aussi une déclaration de style affirmée.Nos vestes arborent fièrement le logo emblématique de KTM. Nos vestes sont conçues pour résister aux éléments tout en vous donnant une allure audacieuse.Chaque détail de nos vestes reflète l&apos;engagement envers la qualité et la performance caractéristiques de KTM. Des matériaux résistants aux finitions impeccables, chaque veste incarne la passion pour l&apos;innovation et l&apos;authenticité de la marque. Explorez notre catégorie Vestes avec la même intensité qu&apos;une moto prenant de la vitesse sur l&apos;asphalte, et offrez-vous l&apos;opportunité de revêtir l&apos;esprit indomptable de KTM à chaque instant. Retrouvez nos collections Speed Jacket, Faster Jacket, Team Hardshell, Replica Team, Team Softshell, X-Bow Replica, et bien d&apos;autres. `, 5168 }" 5169 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 5170 :class="{ 5171 'text-primary-500 font-semibold': history.includes('category-node-1858') 5172 }"> 5173 <span 5174 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 5175 <!-- DEBUG: Logo = EMPTY --> 5176 Vestes </span> 5177 </a> 5178 </li> 5179 </ul> 5180 5181 <div class="h-20 md:hidden"></div> 5182 <template 5183 x-portal="$store.main.isMobile ? document.getElementById('popup-fixed-content-portal') : document.getElementById('menu-actions-category-node-1815')"> 5184 <div 5185 class="bg-bg-500 px-4 pb-2 transition-colors duration-200 md:bg-transparent md:hover:text-primary-600 md:p-0" 5186 x-transition.opacity 5187 x-show="$store.main.isMobile ? history[history.length - 1] === 'category-node-1815' && !getIsSearchActive() : history.includes('category-node-1815')" 5188 role="link"> 5189 <a 5190 x-element-transition-trigger 5191 class="button bg-white border border-primary-500 text-primary-500 w-full hover:bg-primary-500 hover:text-white hover:scale-105 transition-all duration-200" 5192 href="https://www.esprit-ktm.com/vetements-ktm/vetements-hommes.html"> 5193 <template x-if="$store.main.isMobile"> 5194 <span>Tout voir <span class="lowercase">Vêtements Homme</span></span> 5195 </template> 5196 <template x-if="!$store.main.isMobile"> 5197 <span class="flex items-center text-center capitalize"> 5198 <span class='border-current'> 5199 Tout voir <br /> 5200 <span>Vêtements Homme</span> 5201 </span> 5202 </span> 5203 </template> 5204 </a> 5205 </div> 5206 </template> 5207 </div> 5208 </template> 5209 </li> 5210 <li> 5211 <button 5212 class="menu__link group" 5213 @click="setHistory([...'all,category-node-1769'.split(','), 'category-node-1853'])" 5214 :class="{ 'menu__link--active': history.includes('category-node-1853') }" 5215 role="button" 5216 :aria-expanded="history.includes('category-node-1853')"> 5217 <span class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 5218 <!-- DEBUG: Logo = EMPTY --> 5219 Vêtements Femme </span>
5220 <span class="text-xl transition-[color,transform] md:group-hover:-translate-x-3 md:group-hover:text-primary-600"> 5221 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 5222 <path d="M10.707 17.707 16.414 12l-5.707-5.707-1.414 1.414L13.586 12l-4.293 4.293z"/> 5223</svg> 5224 </span> 5225 </button> 5226 <template x-portal="document.getElementById('menu-sections')"> 5227 <div 5228 class="menu__level relative z-[100]" 5229 :class="{ 5230 'menu__level--current': history[history.length - 1] === 'category-node-1853', 5231 'menu__level--visible': history.includes('category-node-1853'), 5232 'menu__level--same-depth': 3 <= delayedLevel, 5233 'hidden': !$store.main.isMobile && !$store.resizable.isVisible('menu-desktop'), 5234 }" 5235 :inert="!history.includes('category-node-1853')" 5236 data-menu-level="category-node-1853"> 5237 <div class="menu__header"> 5238 <div class="menu__header-container p-2 md:flex md:flex-col"> 5239 5240 <button 5241 @click="history.pop()" 5242 type="button" 5243 aria-label="Revenir au menu précédent" 5244 class="menu__back-button py-3 motion-reduce:max-md:animate-none" 5245 :class="{ 5246 'menu__back-button--visible max-md:animate-slideIconIn motion-reduce:translate-x-0': history.length !== 1, 5247 'max-md:animate-slideIconOut motion-reduce:-translate-x-full': history.length == 1 5248 }" 5249 :tabindex="history.length === 1 ? -1 : 0" 5250 :aria-hidden="history.length === 1"> 5251 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 5252 <path d="M13.293 6.293 7.586 12l5.707 5.707 1.414-1.414L10.414 12l4.293-4.293z"/> 5253</svg> 5254 </button> 5255 5256 <h2 5257 class="menu__heading py-3 motion-reduce:max-md:animate-none" 5258 style="--translate-width: 52px;" 5259 :class="{ 5260 'menu__heading--root': 'category-node-1853' === 'all', 5261 'max-md:w-[calc(100%-var(--translate-width))]': 'category-node-1853' !== 'all', 5262 'max-md:animate-slideTitleIn motion-reduce:translate-x-[--translate-width]': history.length !== 1, 5263 'max-md:animate-slideTitleOut motion-reduce:translate-x-0': history.length == 1 5264 }" 5265 x-show="$store.main.isMobile || 'category-node-1853' !== 'all'"> 5266 Vêtements Femme </h2> 5267 5268 <div id="menu-actions-category-node-1853" class="md:mt-[6px] md:flex-none md:flex-row"></div> 5269 </div> 5270 <hr class="divider -mx-5 md:hidden"> 5271 </div> 5272 5273 <ul role="list" class="menu__links"> 5274 <li> 5275 <a 5276 x-a11y-trap-target.initial="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1853'" 5277 href="https://www.esprit-ktm.com/vetements-ktm/vetements-femmes/accessoires-lunettes.html" 5278 role="link" 5279 x-element-transition-trigger:category.animate="{ 5280 'title': `Chaussures`, 5281 'url': 'https://www.esprit-ktm.com/vetements-ktm/vetements-femmes/accessoires-lunettes.html', 5282 'breadcrumbs': [{"title":"V\u00eatements","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm.html"},{"title":"V\u00eatements Femme","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm\/vetements-femmes.html"}], 5283 'img': '', 5284 'description': `Bienvenue dans la catégorie Chaussures de notre c
5284ollection Vêtements Femme d&apos;Esprit-KTM, où le confort, le style et la fonctionnalité se rencontrent. Lire la suiteExplorez une sélection exceptionnelle de chaussures conçues pour les femmes passionnées de moto, alliant élégance et robustesse à l&apos;image de la marque légendaire KTM.Nos chaussures femme, ornées fièrement du logo emblématique de KTM, vont bien au-delà du simple aspect pratique pour devenir des accessoires incontournables de votre style. Chaque paire incarne la puissance, la grâce et la passion de KTM.Retrouvez nos collections Team Sandals, Team Shoes et Mechanic Shoes. `, 5285 }" 5286 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 5287 :class="{ 5288 'text-primary-500 font-semibold': history.includes('category-node-1857') 5289 }"> 5290 <span 5291 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 5292 <!-- DEBUG: Logo = EMPTY --> 5293 Chaussures </span> 5294 </a> 5295 </li> 5296 <li> 5297 <a 5298 href="https://www.esprit-ktm.com/vetements-ktm/vetements-femmes/sweats.html" 5299 role="link" 5300 x-element-transition-trigger:category.animate="{ 5301 'title': `Sweats`, 5302 'url': 'https://www.esprit-ktm.com/vetements-ktm/vetements-femmes/sweats.html', 5303 'breadcrumbs': [{"title":"V\u00eatements","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm.html"},{"title":"V\u00eatements Femme","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm\/vetements-femmes.html"}], 5304 'img': '', 5305 'description': `Bienvenue dans la catégorie Sweats de notre collection Vêtements Femme d&apos;Esprit-KTM, où le confort, l&apos;élégance et l&apos;esprit de l&apos;aventure se mêlent. Lire la suiteExplorez une sélection exceptionnelle de sweats conçus spécialement pour les femmes passionnées de moto, alliant chaleur et style audacieux à l&apos;image de la marque légendaire KTM.Nos sweats femme, fièrement ornés du logo emblématique de KTM, vont au-delà de simples vêtements chauds pour devenir des affirmations de style qui célèbrent la féminité avec une touche intrépide. Que vous optiez pour un sweat à capuche décontracté pour vos virées en ville ou pour un sweat zippé pour un look plus affirmé, chaque pièce incarne la puissance, la grâce et l&apos;excitation de la route.Conçus avec une attention méticuleuse aux détails et une qual
5305ité exceptionnelle, nos sweats offrent non seulement une chaleur enveloppante mais également une expression personnelle de votre amour pour la moto. Que vous soyez sur votre moto, en balade décontractée ou simplement à la recherche d&apos;un confort stylé au quotidien, nos sweats sont prêts à vous accompagner avec élégance dans toutes vos aventures.Retrouvez nos collections Prime Hoodie, Patch Women Hoodie, Women Backprint Zip Hoodie, Women Pure Zip Hoodie et bien d&apos;autres. `, 5306 }" 5307 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 5308 :class="{ 5309 'text-primary-500 font-semibold': history.includes('category-node-2579') 5310 }"> 5311 <span 5312 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 5313 <!-- DEBUG: Logo = EMPTY --> 5314 Sweats </span> 5315 </a> 5316 </li> 5317 <li> 5318 <a 5319 href="https://www.esprit-ktm.com/vetements-ktm/vetements-femmes/t-shirts-chemises.html" 5320 role="link" 5321 x-element-transition-trigger:category.animate="{ 5322 'title': `T-Shirts`, 5323 'url': 'https://www.esprit-ktm.com/vetements-ktm/vetements-femmes/t-shirts-chemises.html', 5324 'breadcrumbs': [{"title":"V\u00eatements","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm.html"},{"title":"V\u00eatements Femme","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm\/vetements-femmes.html"}], 5325 'img': '', 5326 'description': `Bienvenue dans la catégorie T-shirts et Chemises de notre collection Vêtements Femme d&apos;Esprit-KTM, où le style s&apos;unit à la passion. Lire la suiteExplorez une gamme de t-shirts et chemises conçus spécialement pour les femmes passionnées de moto, chaque pièce reflétant l&apos;élégance et la puissance caractéristiques de la légendaire marque KTM.Nos t-shirts et chemises femme, arborant fièrement le logo emblématique de KTM, vont au-delà de simples vêtements pour devenir des affirmations de style qui célèbrent la féminité avec une touche audacieuse. Que vous optiez pour un t-shirt décontracté aux designs dynamiques ou pour une chemise élégante inspirée de l&apos;univers moto, chaque pièce incarne la puissance, la grâce et la passion de la route.Explorez notre catégorie T-shirts et Chemises Femme avec la même détermination qu&apos;une motarde s&apos;apprêtant à conquérir de nouveaux horizons, et offrez à votre style une dose d&apos;audace et de raffinement inspirée par l&apos;esprit indomptable de KTM. Retrouvez nos collections Graphic Women, Pure Racing Tee, Replica Team Tee, Women Backprint, Girls Replica Team Shirt et bien d&apos;autres. `, 5327 }" 5328 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 5329 :class="{ 5330 'text-primary-500 font-semibold': history.includes('category-node-1855') 5331 }"> 5332 <span 5333 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 5334 <!-- DEBUG: Logo = EMPTY --> 5335 T-Shirts </span> 5336 </a> 5337 </li> 5338 <li> 5339 <a 5340 x-a11y-trap-target.end="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1853'" 5341 href="https://www.esprit-ktm.com/vetements-ktm/vetements-femmes/vestes-sweats.html" 5342 role="link" 5343 x-element-transition-trigger:category.animate="{ 5344 'title': `Vestes`, 5345 'url': 'https://www.esprit-ktm.com/vetements-ktm/vetements-femmes/vestes-sweats.html', 5346 'breadcrumbs': [{"title":"V\u00eatements","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm.html"},{"title":"V\u00eatements Femme","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm\/vetements-femmes.html"}], 5347 'img': '', 5348 'description': `Bienvenue dans la catégorie Vestes de notre c
5348ollection Vêtements Femme d&apos;Esprit-KTM, où le style et la fonctionnalité se réunissent. Lire la suitePlongez dans une sélection exceptionnelle de vestes conçues spécialement pour les femmes passionnées par la moto, mariant élégance et robustesse à l&apos;image de la marque légendaire KTM.Nos vestes femme, ornées fièrement du logo emblématique de KTM, transcendent la simple mode pour devenir des pièces maîtresses de votre garde-robe. Que vous optiez pour une veste pour un look intemporel, une veste softshell pour un confort optimal, ou une veste légère pour une virée estivale, chaque pièce incarne la puissance, la grâce et la passion qui définissent l&apos;esprit de KTM.Conçues avec une attention méticuleuse aux détails et une qualité exceptionnelle, nos vestes offrent non seulement une protection contre les éléments, mais également une déclaration de style affirmée. Explorez notre catégorie Vestes Femme avec la même détermination qu&apos;une motarde abordant une nouvelle route, et offrez à votre style une dose d&apos;audace et de sophistication inspirée par l&apos;esprit indomptable de KTM. Retrouvez nos collections Team Hardshell, Softshell Jacket et bien d&apos;autres. `, 5349 }" 5350 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 5351 :class="{ 5352 'text-primary-500 font-semibold': history.includes('category-node-1854') 5353 }"> 5354 <span 5355 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 5356 <!-- DEBUG: Logo = EMPTY --> 5357 Vestes </span> 5358 </a> 5359 </li> 5360 </ul> 5361 5362 <div class="h-20 md:hidden"></div> 5363 <template 5364 x-portal="$store.main.isMobile ? document.getElementById('popup-fixed-content-portal') : document.getElementById('menu-actions-category-node-1853')"> 5365 <div 5366 class="bg-bg-500 px-4 pb-2 transition-colors duration-200 md:bg-transparent md:hover:text-primary-600 md:p-0" 5367 x-transition.opacity 5368 x-show="$store.main.isMobile ? history[history.length - 1] === 'category-node-1853' && !getIsSearchActive() : history.includes('category-node-1853')" 5369 role="link"> 5370 <a 5371 x-element-transition-trigger 5372 class="button bg-white border border-primary-500 text-primary-500 w-full hover:bg-primary-500 hover:text-white hover:scale-105 transition-all duration-200" 5373 href="https://www.esprit-ktm.com/vetements-ktm/vetements-femmes.html"> 5374 <template x-if="$store.main.isMobile"> 5375 <span>Tout voir <span class="lowercase">Vêtements Femme</span></span> 5376 </template> 5377 <template x-if="!$store.main.isMobile"> 5378 <span class="flex items-center text-center capitalize"> 5379 <span class='border-current'> 5380 Tout voir <br /> 5381 <span>Vêtements Femme</span> 5382 </span> 5383 </span> 5384 </template> 5385 </a> 5386 </div> 5387 </template> 5388 </div> 5389 </template> 5390 </li> 5391 <li> 5392 <button 5393 class="menu__link group" 5394 @click="setHistory([...'all,category-node-1769'.split(','), 'category-node-1864'])" 5395 :class="{ 'menu__link--active': history.includes('category-node-1864') }" 5396 role="button" 5397 :aria-expanded="history.includes('category-node-1864')">
5398 <span class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 5399 <!-- DEBUG: Logo = EMPTY --> 5400 Vêtements Enfant </span> 5401 <span class="text-xl transition-[color,transform] md:group-hover:-translate-x-3 md:group-hover:text-primary-600"> 5402 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 5403 <path d="M10.707 17.707 16.414 12l-5.707-5.707-1.414 1.414L13.586 12l-4.293 4.293z"/> 5404</svg> 5405 </span> 5406 </button> 5407 <template x-portal="document.getElementById('menu-sections')"> 5408 <div 5409 class="menu__level relative z-[100]" 5410 :class="{ 5411 'menu__level--current': history[history.length - 1] === 'category-node-1864', 5412 'menu__level--visible': history.includes('category-node-1864'), 5413 'menu__level--same-depth': 3 <= delayedLevel, 5414 'hidden': !$store.main.isMobile && !$store.resizable.isVisible('menu-desktop'), 5415 }" 5416 :inert="!history.includes('category-node-1864')" 5417 data-menu-level="category-node-1864"> 5418 <div class="menu__header"> 5419 <div class="menu__header-container p-2 md:flex md:flex-col"> 5420 5421 <button 5422 @click="history.pop()" 5423 type="button" 5424 aria-label="Revenir au menu précédent" 5425 class="menu__back-button py-3 motion-reduce:max-md:animate-none" 5426 :class="{ 5427 'menu__back-button--visible max-md:animate-slideIconIn motion-reduce:translate-x-0': history.length !== 1, 5428 'max-md:animate-slideIconOut motion-reduce:-translate-x-full': history.length == 1 5429 }" 5430 :tabindex="history.length === 1 ? -1 : 0" 5431 :aria-hidden="history.length === 1"> 5432 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 5433 <path d="M13.293 6.293 7.586 12l5.707 5.707 1.414-1.414L10.414 12l4.293-4.293z"/> 5434</svg> 5435 </button> 5436 5437 <h2 5438 class="menu__heading py-3 motion-reduce:max-md:animate-none" 5439 style="--translate-width: 52px;" 5440 :class="{ 5441 'menu__heading--root': 'category-node-1864' === 'all', 5442 'max-md:w-[calc(100%-var(--translate-width))]': 'category-node-1864' !== 'all', 5443 'max-md:animate-slideTitleIn motion-reduce:translate-x-[--translate-width]': history.length !== 1, 5444 'max-md:animate-slideTitleOut motion-reduce:translate-x-0': history.length == 1 5445 }" 5446 x-show="$store.main.isMobile || 'category-node-1864' !== 'all'"> 5447 Vêtements Enfant </h2> 5448 5449 <div id="menu-actions-category-node-1864" class="md:mt-[6px] md:flex-none md:flex-row"></div> 5450 </div> 5451 <hr class="divider -mx-5 md:hidden"> 5452 </div> 5453 5454 <ul role="list" class="menu__links"> 5455 <li> 5456 <a 5457 x-a11y-trap-target.initial="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1864'" 5458 href="https://www.esprit-ktm.com/vetements-ktm/vetements-enfants/t-shirts.html" 5459 role="link" 5460 x-element-transition-trigger:category.animate="{ 5461 'title': `T-Shirts`, 5462 'url': 'https://www.esprit-ktm.com/vetements-ktm/vetements-enfants/t-shirts.html', 5463 'breadcrumbs': [{"title":"V\u00eatements","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm.html"},{"title":"V\u00eatements Enfant","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm\/vetements-enfants.html"}], 5464 'img': '', 5465 'description': `Bienvenue dans la catégorie T-shirts Enfant d&apos;Esprit-KTM, où l&apos;esprit aventureux et le dynamisme se transforment en une collection pour les jeunes passionnés de moto. Lire la suiteExplorez notre sélection de t-shirts enfant qui célèbrent la joie, la vitalité et la passion de l&apos;univers KTM, incarnant la légendaire marque.Nos t-shirts enfant, arborant fièrement le logo emblématique de KTM, vont bien au-delà de simples vêtements pour devenir des toiles sur lesquelles s&apos;exprime la passion pour la moto. Que ce soit avec des designs ludiques, des illustrations vibrantes ou des messages inspirants, chaque t-shirt incarne l&apos;esprit indomptable de KTM et encourage les jeunes motards à rêver de grandes aventures sur deux roues.Conçus avec une attention particulière à la qualité, au confort et à la créativité, nos t-shirts offrent aux enfants une manière ludique et stylée d&apos;affirmer leur passion pour l&apos;univers KTM. Que ce soit pour une journée de jeu, une sortie en famille ou pour rejoindre la prochaine génération de motards, chaque t-shirt est une déclaration de l&apos;aventure en herbe, une invitation à faire partie de la communauté KTM dès le plus jeune âge.Retrouvez nos collections Kids T-shirt, Kids Hero Tee, Kini Red Bull, Kids Team Tee, Kids Replica Team Tee, Kids Radical Longsleeve et bien d&
5465apos;autres. `, 5466 }" 5467 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 5468 :class="{ 5469 'text-primary-500 font-semibold': history.includes('category-node-1865') 5470 }"> 5471 <span 5472 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 5473 <!-- DEBUG: Logo = EMPTY --> 5474 T-Shirts </span> 5475 </a> 5476 </li> 5477 <li> 5478 <a 5479 href="https://www.esprit-ktm.com/vetements-ktm/vetements-enfants/vestes-sweats.html" 5480 role="link" 5481 x-element-transition-trigger:category.animate="{ 5482 'title': `Sweats`, 5483 'url': 'https://www.esprit-ktm.com/vetements-ktm/vetements-enfants/vestes-sweats.html', 5484 'breadcrumbs': [{"title":"V\u00eatements","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm.html"},{"title":"V\u00eatements Enfant","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm\/vetements-enfants.html"}], 5485 'img': '', 5486 'description': `Bienvenue dans la catégorie Sweats Enfant d&apos;Esprit-KTM, où le confort et le style ludique se rencontrent.Lire la suitePlongez dans notre sélection de sweats enfant qui incarne la joie de l&apos;aventure sur deux roues, inspirée par la légendaire marque KTM.Nos sweats enfant, arborant fièrement le logo emblématique de KTM, vont au-delà de simples vêtements chauds pour devenir des compagnons de jeu qui célèbrent la vitalité, la curiosité et l&apos;énergie débordante des jeunes motards en herbe. Que ce soit pour une journée décontractée en famille ou pour accompagner les premières explorations du monde de la moto, chaque sweat incarne l&apos;esprit indomptable de KTM.Conçus avec une attention particulière à la qualité et au confort, nos sweats offrent aux enfants une manière stylée et amusante d&apos;exprimer leur amour pour l&apos;univers KTM. Des designs ludiques aux couleurs vibrantes, chaque sweat est une invitation à vivre l&apos;aventure avec enthousiasme et à rêver de futures virées sur deux roues.Retrouvez nos collections Kini Red Bull, Zip Hoodie, Replica Team Zip, Kids Radical Zip et bien d&apos;autres.`, 5487 }" 5488 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 5489 :class="{ 5490 'text-primary-500 font-semibold': history.includes('category-node-1866') 5491 }"> 5492 <span 5493 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 5494 <!-- DEBUG: Logo = EMPTY --> 5495 Sweats </span> 5496 </a> 5497 </li> 5498 <li> 5499 <a 5500 href="https://www.esprit-ktm.com/vetements-ktm/vetements-enfants/ensembles.html" 5501 role="link" 5502 x-element-transition-trigger:category.animate="{ 5503 'title': `Ensembles`, 5504 'url': 'https://www.esprit-ktm.com/vetements-ktm/vetements-enfants/ensembles.html', 5505 'breadcrumbs': [{"title":"V\u00eatements","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm.html"},{"title":"V\u00eatements Enfant","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm\/vetements-enfants.html"}], 5506 'img': '', 5507 'description': `Bienvenue dans la catégorie Ensembles Enfant d&apos;Esprit-KTM, où l&apos;esprit intrépide de la route se décline en une collection pour les jeunes motards en herbe. Lire la suitePlongez dans notre sélection d&
5507apos;ensembles adorables et fonctionnels qui célèbrent la passion pour la moto dès le plus jeune âge, inspirés par la légendaire marque KTM.Nos ensembles enfant, arborant fièrement le logo emblématique de KTM, vont au-delà de simples tenues pour devenir des combinaisons parfaites de style et de confort. Chaque ensemble incarne l&apos;esprit indomptable de KTM et invite les enfants à vivre leurs premières aventures avec style.Retrouvez notre collection Kids Team Home Suit.`, 5508 }" 5509 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 5510 :class="{ 5511 'text-primary-500 font-semibold': history.includes('category-node-2580') 5512 }"> 5513 <span 5514 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 5515 <!-- DEBUG: Logo = EMPTY --> 5516 Ensembles </span> 5517 </a> 5518 </li> 5519 <li> 5520 <a 5521 x-a11y-trap-target.end="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1864'" 5522 href="https://www.esprit-ktm.com/vetements-ktm/vetements-enfants/les-tout-petits.html" 5523 role="link" 5524 x-element-transition-trigger:category.animate="{ 5525 'title': `Bodys`, 5526 'url': 'https://www.esprit-ktm.com/vetements-ktm/vetements-enfants/les-tout-petits.html', 5527 'breadcrumbs': [{"title":"V\u00eatements","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm.html"},{"title":"V\u00eatements Enfant","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm\/vetements-enfants.html"}], 5528 'img': '', 5529 'description': `Bienvenue dans la catégorie des Tout-Petits d&apos;Esprit-KTM, où l&apos;esprit intrépide de la route prend vie à travers une adorable collection de vêtements. Lire la suitePlongez dans notre sélection qui célèbre la petite taille avec autant d&apos;énergie et d&apos;authenticité que la légendaire marque KTM.Nos vêtements pour Tout-Petits, arborant fièrement le logo emblématique de KTM, transcendent la simple mode pour devenir des pièces mignonnes et fonctionnelles qui éveillent la passion pour la moto dès le plus jeune âge. Que ce soit avec des bodys ou des pyjamas adorables, chaque pièce incarne l&apos;esprit indomptable de KTM et invite les tout-petits à faire leurs premiers pas dans le monde de la moto avec style.Conçus avec une attention particulière à la douceur, au confort et à la praticité, nos vêtements pour Tout-Petits offrent aux parents une manière mignonne et pratique d&apos;exprimer leur passion pour l&apos;univers KTM. Que ce soit pour des sorties décontractées en famille, des séances de jeu endiablées ou pour les premières photos sur une mini-moto, chaque vêtement devient une déclaration de l&apos;aventure en herbe, une façon d&apos;instiller l&apos;esprit de la moto dès le plus jeune âge.Retrouvez collections Baby Body Set, Baby Team Body, Baby Team Romper, Baby Radius Pyjama, Baby Radical Body et bien d&apos;autres.`, 5530 }" 5531 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 5532 :class="{ 5533 'text-primary-500 font-semibold': history.includes('category-node-1887') 5534 }">
5535 <span 5536 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 5537 <!-- DEBUG: Logo = EMPTY --> 5538 Bodys </span> 5539 </a> 5540 </li> 5541 </ul> 5542 5543 <div class="h-20 md:hidden"></div> 5544 <template 5545 x-portal="$store.main.isMobile ? document.getElementById('popup-fixed-content-portal') : document.getElementById('menu-actions-category-node-1864')"> 5546 <div 5547 class="bg-bg-500 px-4 pb-2 transition-colors duration-200 md:bg-transparent md:hover:text-primary-600 md:p-0" 5548 x-transition.opacity 5549 x-show="$store.main.isMobile ? history[history.length - 1] === 'category-node-1864' && !getIsSearchActive() : history.includes('category-node-1864')" 5550 role="link"> 5551 <a 5552 x-element-transition-trigger 5553 class="button bg-white border border-primary-500 text-primary-500 w-full hover:bg-primary-500 hover:text-white hover:scale-105 transition-all duration-200" 5554 href="https://www.esprit-ktm.com/vetements-ktm/vetements-enfants.html"> 5555 <template x-if="$store.main.isMobile"> 5556 <span>Tout voir <span class="lowercase">Vêtements Enfant</span></span> 5557 </template> 5558 <template x-if="!$store.main.isMobile"> 5559 <span class="flex items-center text-center capitalize"> 5560 <span class='border-current'> 5561 Tout voir <br /> 5562 <span>Vêtements Enfant</span> 5563 </span> 5564 </span> 5565 </template> 5566 </a> 5567 </div> 5568 </template> 5569 </div> 5570 </template> 5571 </li> 5572 <li> 5573 <button 5574 class="menu__link group" 5575 @click="setHistory([...'all,category-node-1769'.split(','), 'category-node-1814'])" 5576 :class="{ 'menu__link--active': history.includes('category-node-1814') }" 5577 role="button" 5578 :aria-expanded="history.includes('category-node-1814')"> 5579 <span class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 5580 <!-- DEBUG: Logo = EMPTY --> 5581 Casquettes & Bonnets </span> 5582 <span class="text-xl transition-[color,transform] md:group-hover:-translate-x-3 md:group-hover:text-primary-600"> 5583 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 5584 <path d="M10.707 17.707 16.414 12l-5.707-5.707-1.414 1.414L13.586 12l-4.293 4.293z"/> 5585</svg> 5586 </span> 5587 </button> 5588 <template x-portal="document.getElementById('menu-sections')"> 5589 <div 5590 class="menu__level relative z-[100]" 5591 :class="{ 5592 'menu__level--current': history[history.length - 1] === 'category-node-1814', 5593 'menu__level--visible': history.includes('category-node-1814'), 5594 'menu__level--same-depth': 3 <= delayedLevel, 5595 'hidden': !$store.main.isMobile && !$store.resizable.isVisible('menu-desktop'), 5596 }" 5597 :inert="!history.includes('category-node-1814')" 5598 data-menu-level="category-node-1814"> 5599 <div class="menu__header"> 5600 <div class="menu__header-container p-2 md:flex md:flex-col"> 5601 5602 <button 5603 @click="history.pop()" 5604 type="button" 5605 aria-label="Revenir au menu précédent" 5606 class="menu__back-button py-3 motion-reduce:max-md:animate-none" 5607 :class="{ 5608 'menu__back-button--visible max-md:animate-slideIconIn motion-reduce:translate-x-0': history.length !== 1, 5609 'max-md:animate-slideIconOut motion-reduce:-translate-x-full': history.length == 1 5610 }" 5611 :tabindex="history.length === 1 ? -1 : 0" 5612 :aria-hidden="history.length === 1"> 5613 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 5614 <path d="M13.293 6.293 7.586 12l5.707 5.707 1.414-1.414L10.414 12l4.293-4.293z"/> 5615</svg> 5616 </button> 5617 5618 <h2 5619 class="menu__heading py-3 motion-reduce:max-md:animate-none" 5620 style="--translate-width: 52px;" 5621 :class="{ 5622 'menu__heading--root': 'category-node-1814' === 'all', 5623 'max-md:w-[calc(100%-var(--translate-width))]': 'category-node-1814' !== 'all', 5624 'max-md:animate-slideTitleIn motion-reduce:translate-x-[--translate-width]': history.length !== 1, 5625 'max-md:animate-slideTitleOut motion-reduce:translate-x-0': history.length == 1 5626 }" 5627 x-show="$store.main.isMobile || 'category-node-1814' !== 'all'"> 5628 Casquettes & Bonnets </h2> 5629 5630 <div id="menu-actions-category-node-1814" class="md:mt-[6px] md:flex-none md:flex-row"></div> 5631 </div> 5632 <hr class="divider -mx-5 md:hidden"> 5633 </div> 5634 5635 <ul role="list" class="menu__links"> 5636 <li> 5637 <a 5638 x-a11y-trap-target.initial="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1814'" 5639 href="https://www.esprit-ktm.com/vetements-ktm/casquettes-bonnets/casquettes.html" 5640 role="link" 5641 x-element-transition-trigger:category.animate="{ 5642 'title': `Casquettes`, 5643 'url': 'https://www.esprit-ktm.com/vetements-ktm/casquettes-bonnets/casquettes.html', 5644 'breadcrumbs': [{"title":"V\u00eatements","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm.html"},{"title":"Casquettes & Bonnets","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm\/casquettes-bonnets.html"}], 5645 'img': '', 5646 'description': `Bienvenue dans la catégorie Casquettes & Bonnets d&
5646apos;Esprit-KTM, où le style audacieux et l&apos;esprit de la route s&apos;expriment à travers nos casquettes emblématiques. Lire la suitePlongez dans notre sélection de casquettes spécialement conçues pour les passionnés de deux-roues, inspirées par l&apos;héritage indomptable de la légendaire marque KTM.Nos casquettes, arborant fièrement le logo distinctif de KTM, transcendent l&apos;idée même d&apos;accessoire pour devenir une déclaration de votre passion pour la moto. Chaque casquette incarne l&apos;engagement de KTM envers le style authentique.Explorez notre collection variée, où chaque modèle est pensé pour refléter l&apos;esprit de l&apos;aventure et l&apos;attitude audacieuse de KTM. Les détails de qualité, les designs uniques et le confort exceptionnel font de chaque casquette un élément incontournable de l&apos;attirail du passionné de moto.Explorez notre catégorie Casquettes & Bonnets avec la même passion qu&apos;un motard prêt à conquérir de nouvelles routes, et coiffez-vous avec le meilleur du style inspiré par l&apos;esprit indomptable de KTM. Retrouvez nos collections de casquettes Kids Curved Cap, Red Bull Jack Miller, Red Bull Brad Binder, RB Race Trucker Cap, Kini Red Bull et bien d&apos;autres. `, 5647 }" 5648 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 5649 :class="{ 5650 'text-primary-500 font-semibold': history.includes('category-node-2581') 5651 }"> 5652 <span 5653 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 5654 <!-- DEBUG: Logo = EMPTY --> 5655 Casquettes </span> 5656 </a> 5657 </li> 5658 <li> 5659 <a 5660 x-a11y-trap-target.end="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1814'" 5661 href="https://www.esprit-ktm.com/vetements-ktm/casquettes-bonnets/bonnets.html" 5662 role="link" 5663 x-element-transition-trigger:category.animate="{ 5664 'title': `Bonnets`, 5665 'url': 'https://www.esprit-ktm.com/vetements-ktm/casquettes-bonnets/bonnets.html', 5666 'breadcrumbs': [{"title":"V\u00eatements","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm.html"},{"title":"Casquettes & Bonnets","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm\/casquettes-bonnets.html"}], 5667 'img': '', 5668 'description': `Bienvenue dans la catégorie Casquettes & Bonnets d&apos;Esprit-KTM, où l&apos;alliance parfaite entre style et confort prend la forme de nos bonnets emblématiques. Lire la suitePlongez dans notre sélection de bonnets spécialement conçus pour les amateurs de deux-roues, inspirés par l&apos;esprit intrépide de la légendaire marque KTM.Nos bonnets, arborant fièrement le logo distinctif de KTM, sont bien plus qu&apos;un simple accessoire ; ils sont une déclaration de votre passion pour la moto. Que vous recherchiez un bonnet en maille pour un look décontracté, un bonnet à revers pour une touche de chaleur, ou un bonnet classique pour une élégance intemporelle, chaque pièce incarne l&apos;engagement de KTM envers le style authentique.Conçus avec une attention particulière à la qualité des matériaux, au confort et à la polyvalence, nos bonnets offrent une touche distinctive à votre tenue, complétant votre style avec l&apos;authenticité caractéristique de KTM. Chaque bonnet est une manière de célébrer l&apos;esprit audacieux de KTM.Retrouvez nos collections de bonnets Replica Team Beanie, Kids Replica Team Beanie, Pure Beanie, Winter Pom Pom Beanie, Kids Fletch Reversible Beanie et bien d&
5668apos;autres. `, 5669 }" 5670 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 5671 :class="{ 5672 'text-primary-500 font-semibold': history.includes('category-node-2582') 5673 }"> 5674 <span 5675 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 5676 <!-- DEBUG: Logo = EMPTY --> 5677 Bonnets </span> 5678 </a> 5679 </li> 5680 </ul> 5681 5682 <div class="h-20 md:hidden"></div> 5683 <template 5684 x-portal="$store.main.isMobile ? document.getElementById('popup-fixed-content-portal') : document.getElementById('menu-actions-category-node-1814')"> 5685 <div 5686 class="bg-bg-500 px-4 pb-2 transition-colors duration-200 md:bg-transparent md:hover:text-primary-600 md:p-0" 5687 x-transition.opacity 5688 x-show="$store.main.isMobile ? history[history.length - 1] === 'category-node-1814' && !getIsSearchActive() : history.includes('category-node-1814')" 5689 role="link"> 5690 <a 5691 x-element-transition-trigger 5692 class="button bg-white border border-primary-500 text-primary-500 w-full hover:bg-primary-500 hover:text-white hover:scale-105 transition-all duration-200" 5693 href="https://www.esprit-ktm.com/vetements-ktm/casquettes-bonnets.html"> 5694 <template x-if="$store.main.isMobile"> 5695 <span>Tout voir <span class="lowercase">Casquettes & Bonnets</span></span> 5696 </template> 5697 <template x-if="!$store.main.isMobile"> 5698 <span class="flex items-center text-center capitalize"> 5699 <span class='border-current'> 5700 Tout voir <br /> 5701 <span>Casquettes & Bonnets</span> 5702 </span> 5703 </span> 5704 </template> 5705 </a> 5706 </div> 5707 </template> 5708 </div> 5709 </template> 5710 </li> 5711 <li> 5712 <button 5713 class="menu__link group" 5714 @click="setHistory([...'all,category-node-1769'.split(','), 'category-node-2583'])" 5715 :class="{ 'menu__link--active': history.includes('category-node-2583') }" 5716 role="button" 5717 :aria-expanded="history.includes('category-node-2583')"> 5718 <span class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 5719 <!-- DEBUG: Logo = EMPTY --> 5720 Accessoires </span> 5721 <span class="text-xl transition-[color,transform] md:group-hover:-translate-x-3 md:group-hover:text-primary-600"> 5722 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 5723 <path d="M10.707 17.707 16.414 12l-5.707-5.707-1.414 1.414L13.586 12l-4.293 4.293z"/> 5724</svg> 5725 </span> 5726 </button> 5727 <template x-portal="document.getElementById('menu-sections')"> 5728 <div 5729 class="menu__level relative z-[100]" 5730 :class="{ 5731 'menu__level--current': history[history.length - 1] === 'category-node-2583', 5732 'menu__level--visible': history.includes('category-node-2583'), 5733 'menu__level--same-depth': 3 <= delayedLevel, 5734 'hidden': !$store.main.isMobile && !$store.resizable.isVisible('menu-desktop'), 5735 }" 5736 :inert="!history.includes('category-node-2583')" 5737 data-menu-level="category-node-2583"> 5738 <div class="menu__header"> 5739 <div class="menu__header-container p-2 md:flex md:flex-col"> 5740 5741 <button 5742 @click="history.pop()" 5743 type="button" 5744 aria-label="Revenir au menu précédent" 5745 class="menu__back-button py-3 motion-reduce:max-md:animate-none" 5746 :class="{ 5747 'menu__back-button--visible max-md:animate-slideIconIn motion-reduce:translate-x-0': history.length !== 1, 5748 'max-md:animate-slideIconOut motion-reduce:-translate-x-full': history.length == 1 5749 }" 5750 :tabindex="history.length === 1 ? -1 : 0" 5751 :aria-hidden="history.length === 1"> 5752 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 5753 <path d="M13.293 6.293 7.586 12l5.707 5.707 1.414-1.414L10.414 12l4.293-4.293z"/> 5754</svg> 5755 </button> 5756 5757 <h2 5758 class="menu__heading py-3 motion-reduce:max-md:animate-none" 5759 style="--translate-width: 52px;" 5760 :class="{ 5761 'menu__heading--root': 'category-node-2583' === 'all', 5762 'max-md:w-[calc(100%-var(--translate-width))]': 'category-node-2583' !== 'all', 5763 'max-md:animate-slideTitleIn motion-reduce:translate-x-[--translate-width]': history.length !== 1, 5764 'max-md:animate-slideTitleOut motion-reduce:translate-x-0': history.length == 1 5765 }" 5766 x-show="$store.main.isMobile || 'category-node-2583' !== 'all'"> 5767 Accessoires </h2> 5768 5769 <div id="menu-actions-category-node-2583" class="md:mt-[6px] md:flex-none md:flex-row"></div> 5770 </div> 5771 <hr class="divider -mx-5 md:hidden"> 5772 </div> 5773 5774 <ul role="list" class="menu__links"> 5775 <li> 5776 <a 5777 x-a11y-trap-target.initial="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-2583'" 5778 href="https://www.esprit-ktm.com/vetements-ktm/accessoires/chaussures.html" 5779 role="link" 5780 x-element-transition-trigger:category.animate="{ 5781 'title': `Chaussures`, 5782 'url': 'https://www.esprit-ktm.com/vetements-ktm/accessoires/chaussures.html', 5783 'breadcrumbs': [{"title":"V\u00eatements","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm.html"},{"title":"Accessoires","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm\/accessoires.html"}], 5784 'img': '', 5785 'description': `Bienvenue dans la catégorie Chaussures d&
5785apos;Esprit-KTM, où le confort, la performance et le style se conjuguent pour vous accompagner à chaque pas. Lire la suitePlongez dans notre sélection de chaussures conçues spécialement pour les passionnés de moto, inspirées par l&apos;héritage dynamique qui caractérise chaque trajet sur deux roues.Nos chaussures, arborant fièrement le logo emblématique de KTM, transcendent la simple fonction de protection pour devenir des compagnons essentiels de votre quotidien. Chaque paire de chaussures incarne l&apos;engagement de KTM envers la qualité et le style authentique.Explorez notre collection variée de chaussures, allant des modèles décontractés aux chaussures techniques de pilotage, chacune reflétant la durabilité, la fonctionnalité et le caractère unique de la marque. Conçues pour offrir un confort exceptionnel tout en ajoutant une touche distinctive à votre look, nos chaussures sont bien plus que de simples accessoires. Elles sont une extension de votre passion, une manière de célébrer chaque trajet avec l&apos;esprit indomptable de KTM.Retrouvez nos collections Team Sandals, Team Shoes, Mechanic Shoes ou encore Replica Team Shoes. `, 5786 }" 5787 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 5788 :class="{ 5789 'text-primary-500 font-semibold': history.includes('category-node-2589') 5790 }"> 5791 <span 5792 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 5793 <!-- DEBUG: Logo = EMPTY --> 5794 Chaussures </span> 5795 </a> 5796 </li> 5797 <li> 5798 <a 5799 x-a11y-trap-target.end="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-2583'" 5800 href="https://www.esprit-ktm.com/vetements-ktm/accessoires/chaussettes.html" 5801 role="link" 5802 x-element-transition-trigger:category.animate="{ 5803 'title': `Chaussettes`, 5804 'url': 'https://www.esprit-ktm.com/vetements-ktm/accessoires/chaussettes.html', 5805 'breadcrumbs': [{"title":"V\u00eatements","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm.html"},{"title":"Accessoires","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm\/accessoires.html"}], 5806 'img': '', 5807 'description': `Bienvenue dans la catégorie Chaussettes d&apos;Esprit-KTM, où le confort et le style se rencontrent pour vous accompagner avec l&apos;esprit de la marque KTM. Lire la suitePlongez dans notre sélection de chaussettes conçues spécialement pour les passionnés de moto, inspirées par l&apos;héritage dynamique qui anime chaque instant sur deux roues.Nos chaussettes, ornées fièrement du logo emblématique de KTM, vont bien au-delà de simples accessoires pour devenir des partenaires de votre quotidien. Que vous soyez sur la route, sur les pistes, ou simplement en train de partager votre amour pour la moto, chaque paire incarne l&apos;engagement de KTM envers le confort et le style authentique.Explorez notre collection variée de chaussettes, allant des designs décontractés aux modèles plus techniques, chacune reflétant la qualité, la durabilité et le caractère unique de la marque. Conçues pour offrir un ajustement parfait et une sensation de douceur à chaque étape, nos chaussettes sont bien plus que de simples vêtements pour vos pieds. Elles sont une extension de votre passion, une manière de célébrer chaque trajet avec l&apos;esprit indomptable de KTM.Retrouvez nos chaussettes Radical Socks.`, 5808 }" 5809 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 5810 :class="{ 5811 'text-primary-500 font-semibold': history.includes('category-node-2585') 5812 }">
5813 <span 5814 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 5815 <!-- DEBUG: Logo = EMPTY --> 5816 Chaussettes </span> 5817 </a> 5818 </li> 5819 </ul> 5820 5821 <div class="h-20 md:hidden"></div> 5822 <template 5823 x-portal="$store.main.isMobile ? document.getElementById('popup-fixed-content-portal') : document.getElementById('menu-actions-category-node-2583')"> 5824 <div 5825 class="bg-bg-500 px-4 pb-2 transition-colors duration-200 md:bg-transparent md:hover:text-primary-600 md:p-0" 5826 x-transition.opacity 5827 x-show="$store.main.isMobile ? history[history.length - 1] === 'category-node-2583' && !getIsSearchActive() : history.includes('category-node-2583')" 5828 role="link"> 5829 <a 5830 x-element-transition-trigger 5831 class="button bg-white border border-primary-500 text-primary-500 w-full hover:bg-primary-500 hover:text-white hover:scale-105 transition-all duration-200" 5832 href="https://www.esprit-ktm.com/vetements-ktm/accessoires.html"> 5833 <template x-if="$store.main.isMobile"> 5834 <span>Tout voir <span class="lowercase">Accessoires</span></span> 5835 </template> 5836 <template x-if="!$store.main.isMobile"> 5837 <span class="flex items-center text-center capitalize"> 5838 <span class='border-current'> 5839 Tout voir <br /> 5840 <span>Accessoires</span> 5841 </span> 5842 </span> 5843 </template> 5844 </a> 5845 </div> 5846 </template> 5847 </div> 5848 </template> 5849 </li> 5850 <li> 5851 <button 5852 x-a11y-trap-target.end="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1769'" 5853 class="menu__link group" 5854 @click="setHistory([...'all,category-node-1769'.split(','), 'category-node-2598'])" 5855 :class="{ 'menu__link--active': history.includes('category-node-2598') }" 5856 role="button" 5857 :aria-expanded="history.includes('category-node-2598')"> 5858 <span class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 5859 <!-- DEBUG: Logo = EMPTY --> 5860 Collections KTM </span> 5861 <span class="text-xl transition-[color,transform] md:group-hover:-translate-x-3 md:group-hover:text-primary-600"> 5862 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 5863 <path d="M10.707 17.707 16.414 12l-5.707-5.707-1.414 1.414L13.586 12l-4.293 4.293z"/> 5864</svg> 5865 </span> 5866 </button> 5867 <template x-portal="document.getElementById('menu-sections')"> 5868 <div 5869 class="menu__level relative z-[100]" 5870 :class="{ 5871 'menu__level--current': history[history.length - 1] === 'category-node-2598', 5872 'menu__level--visible': history.includes('category-node-2598'), 5873 'menu__level--same-depth': 3 <= delayedLevel, 5874 'hidden': !$store.main.isMobile && !$store.resizable.isVisible('menu-desktop'), 5875 }" 5876 :inert="!history.includes('category-node-2598')" 5877 data-menu-level="category-node-2598"> 5878 <div class="menu__header"> 5879 <div class="menu__header-container p-2 md:flex md:flex-col"> 5880 5881 <button 5882 @click="history.pop()" 5883 type="button" 5884 aria-label="Revenir au menu précédent" 5885 class="menu__back-button py-3 motion-reduce:max-md:animate-none" 5886 :class="{ 5887 'menu__back-button--visible max-md:animate-slideIconIn motion-reduce:translate-x-0': history.length !== 1, 5888 'max-md:animate-slideIconOut motion-reduce:-translate-x-full': history.length == 1 5889 }" 5890 :tabindex="history.length === 1 ? -1 : 0" 5891 :aria-hidden="history.length === 1"> 5892 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 5893 <path d="M13.293 6.293 7.586 12l5.707 5.707 1.414-1.414L10.414 12l4.293-4.293z"/> 5894</svg> 5895 </button> 5896 5897 <h2 5898 class="menu__heading py-3 motion-reduce:max-md:animate-none" 5899 style="--translate-width: 52px;" 5900 :class="{ 5901 'menu__heading--root': 'category-node-2598' === 'all', 5902 'max-md:w-[calc(100%-var(--translate-width))]': 'category-node-2598' !== 'all', 5903 'max-md:animate-slideTitleIn motion-reduce:translate-x-[--translate-width]': history.length !== 1, 5904 'max-md:animate-slideTitleOut motion-reduce:translate-x-0': history.length == 1 5905 }" 5906 x-show="$store.main.isMobile || 'category-node-2598' !== 'all'"> 5907 Collections KTM </h2> 5908
5909 <div id="menu-actions-category-node-2598" class="md:mt-[6px] md:flex-none md:flex-row"></div> 5910 </div> 5911 <hr class="divider -mx-5 md:hidden"> 5912 </div> 5913 5914 <ul role="list" class="menu__links"> 5915 <li> 5916 <a 5917 x-a11y-trap-target.initial="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-2598'" 5918 href="https://www.esprit-ktm.com/vetements-ktm/collections/collection-ktm-racing-team.html" 5919 role="link" 5920 x-element-transition-trigger:category.animate="{ 5921 'title': `Collection KTM Racing Team`, 5922 'url': 'https://www.esprit-ktm.com/vetements-ktm/collections/collection-ktm-racing-team.html', 5923 'breadcrumbs': [{"title":"V\u00eatements","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm.html"},{"title":"Collections KTM","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm\/collections.html"}], 5924 'img': '', 5925 'description': `Bienvenue dans la catégorie Collection KTM Racing Team d&apos;Esprit-KTM, l&apos;endroit où la passion de la course, le style emblématique et la performance se rencontrent. Lire la suitePlongez dans notre sélection exclusive, où chaque pièce incarne la puissance, la vitesse et l&apos;héritage triomphant de l&apos;équipe de course.La Collection KTM Racing Team, ornée fièrement du logo emblématique de KTM, représente l&apos;union parfaite entre l&apos;ingénierie de pointe et le style audacieux. Que vous soyez un amateur de courses, un fervent supporter de l&apos;équipe ou simplement un passionné de vitesse, chaque article de cette collection est conçu pour capturer l&apos;essence de la compétition sur piste.Explorez nos créations exclusives, des vestes aux finitions racées aux t-shirts respirants qui reflètent l&apos;énergie effervescente des paddocks de course. Chaque pièce est pensée pour offrir un confort optimal tout en célébrant la performance inégalée de l&apos;équipe KTM Racing Team.Que vous souhaitiez revêtir l&apos;esprit de la compétition, ou simplement arborer un style dynamique inspiré par le monde de la course, la Collection KTM Racing Team est prête à vous propulser sur la ligne de départ.Retrouvez nos t-shirts, casquettes et bonnets, vestes, sweats, accessoires ou encore nos vêtements pour bébé.`, 5926 }" 5927 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 5928 :class="{ 5929 'text-primary-500 font-semibold': history.includes('category-node-2070') 5930 }"> 5931 <span 5932 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 5933 <!-- DEBUG: Logo = EMPTY --> 5934 Collection KTM Racing Team </span> 5935 </a> 5936 </li> 5937 <li> 5938 <a 5939 href="https://www.esprit-ktm.com/vetements-ktm/collections/collection-kini-red-bull.html" 5940 role="link" 5941 x-element-transition-trigger:category.animate="{ 5942 'title': `Collection KTM Red Bull Replica Racing team`, 5943 'url': 'https://www.esprit-ktm.com/vetements-ktm/collections/collection-kini-red-bull.html', 5944 'breadcrumbs': [{"title":"V\u00eatements","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm.html"},{"title":"Collections KTM","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm\/collections.html"}], 5945 'img': '', 5946 'description': `Bienvenue dans la catégorie Collection KTM Red Bull Replica Racing Team d&apos;Esprit-KTM, l&apos;épicentre de l&apos;union entre l&apos;audace de Red Bull et la puissance de KTM. Lire la suitePlongez dans notre sélection exclusive, où chaque pièce célèbre l&apos;alliance légendaire entre deux forces majeures du monde de la course.La Collection KTM Red Bull Replica Racing Team, arborant fièrement le logo distinctif de Red Bull et KTM, représente l&apos;essence de la vitesse, de la précision et de l&apos;
5946esprit de compétition. Que vous soyez un fan inconditionnel de courses, un passionné de sports extrêmes ou simplement un amoureux du design dynamique, chaque article de cette collection est une déclaration audacieuse de style et de performance.Explorez nos créations exclusives, des vestes arborant les couleurs vives de Red Bull aux t-shirts et casquettes qui reflètent l&apos;énergie palpitante des circuits de course. Chaque pièce est minutieusement conçue pour incarner l&apos;esprit Red Bull tout en honorant la puissance mécanique de KTM.Que vous souhaitiez ressentir l&apos;adrénaline des courses, soutenir l&apos;alliance gagnante entre Red Bull et KTM ou simplement afficher un look avant-gardiste, la Collection KTM Red Bull Replica Racing Team est prête à vous propulser dans une aventure de style et de vitesse.Retrouvez nos sweats et bonnets, nos t-shirts et casquettes, ou encore nos vestes et accessoires. `, 5947 }" 5948 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 5949 :class="{ 5950 'text-primary-500 font-semibold': history.includes('category-node-1862') 5951 }"> 5952 <span 5953 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 5954 <!-- DEBUG: Logo = EMPTY --> 5955 Collection KTM Red Bull Replica Racing team </span> 5956 </a> 5957 </li> 5958 <li> 5959 <a 5960 href="https://www.esprit-ktm.com/vetements-ktm/collections/collection-x-bow.html" 5961 role="link" 5962 x-element-transition-trigger:category.animate="{ 5963 'title': `Collection X-Bow`, 5964 'url': 'https://www.esprit-ktm.com/vetements-ktm/collections/collection-x-bow.html', 5965 'breadcrumbs': [{"title":"V\u00eatements","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm.html"},{"title":"Collections KTM","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm\/collections.html"}], 5966 'img': '', 5967 'description': `Bienvenue dans la catégorie Collection X-Bow d&apos;Esprit-KTM, une immersion dans l&apos;univers de l&apos;élégance sportive et de la performance. Lire la suiteCette collection incarne l&apos;alliance harmonieuse entre l&apos;icône automobile X-Bow et le style distinctif de KTM, offrant aux amateurs de conduite une gamme de vêtements et d&apos;équipements qui capturent l&apos;esprit dynamique de ces deux légendes.La Collection X-Bow, arborant fièrement le logo emblématique de KTM et l&apos;élégant X-Bow, représente une convergence de l&apos;ingénierie automobile d&apos;exception et du design avant-gardiste. Que vous soyez un passionné de voitures de sport ou un amateur de la performance légendaire de KTM, chaque article de cette collection est une déclaration de style sophistiqué, conçue pour les amateurs de conduite qui apprécient l&apos;alliance entre la route et la piste.Explorez nos créations exclusives, des vestes élégantes aux t-shirts, chaque pièce de la Collection X-Bow est soigneusement pensée pour offrir une expérience de conduite empreinte de luxe et de dynamisme.Que vous recherchiez une expression de style distingué, une performance exceptionnelle ou simplement une connexion avec deux icônes du monde automobile, la Collection X-Bow est prête à vous accompagner à chaque trajet.`, 5968 }" 5969 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 5970 :class="{ 5971 'text-primary-500 font-semibold': history.includes('category-node-1867') 5972 }">
5973 <span 5974 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 5975 <!-- DEBUG: Logo = EMPTY --> 5976 Collection X-Bow </span> 5977 </a> 5978 </li> 5979 <li> 5980 <a 5981 href="https://www.esprit-ktm.com/vetements-ktm/collections/kini-red-bull.html" 5982 role="link" 5983 x-element-transition-trigger:category.animate="{ 5984 'title': `Kini Red Bull `, 5985 'url': 'https://www.esprit-ktm.com/vetements-ktm/collections/kini-red-bull.html', 5986 'breadcrumbs': [{"title":"V\u00eatements","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm.html"},{"title":"Collections KTM","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm\/collections.html"}], 5987 'img': '', 5988 'description': `Bienvenue dans la catégorie Collection Kini Red Bull d&apos;Esprit-KTM, l&apos;union épique entre le style inimitable de Kini et l&apos;énergie débordante de Red Bull. Lire la suiteCette collection incarne l&apos;esprit de la performance, de la créativité et de l&apos;audace, offrant aux passionnés de moto une gamme de vêtements et d&apos;équipements qui fusionnent le dynamisme de Red Bull avec l&apos;ADN distinctif de KTM.La Collection Kini Red Bull, fièrement ornée du logo emblématique de Red Bull et de l&apos;emblématique KTM, représente une célébration de l&apos;aventure, du style et de l&apos;innovation. Que vous soyez un amateur de sports extrêmes, un fan inconditionnel de Red Bull, ou simplement un passionné du design unique de Kini, chaque article de cette collection est une déclaration de style et d&apos;engagement envers une vie pleine de défis.Explorez nos créations exclusives, des sweats aux motifs vibrants aux t-shirts qui reflètent l&apos;énergie débordante des sports extrêmes. Chaque pièce de la Collection Kini Red Bull est pensée pour incarner l&apos;esprit intrépide de KTM tout en capturant l&apos;essence dynamique de Red Bull.Que vous recherchiez une expression de style audacieux, une performance exceptionnelle ou simplement une connexion avec deux des marques les plus influentes dans le monde du sport, la Collection Kini Red Bull est prête à vous propulser dans une aventure de style et d&apos;excitation.Retrouvez nos swets et t-qhirts, nos casquettes ou encore nos masques. `, 5989 }" 5990 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 5991 :class="{ 5992 'text-primary-500 font-semibold': history.includes('category-node-2215') 5993 }"> 5994 <span 5995 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 5996 <!-- DEBUG: Logo = EMPTY --> 5997 Kini Red Bull </span> 5998 </a> 5999 </li> 6000 <li> 6001 <a 6002 href="https://www.esprit-ktm.com/vetements-ktm/collections/anniversaire-duke-30-ans.html" 6003 role="link" 6004 x-element-transition-trigger:category.animate="{ 6005 'title': `Anniversaire Duke 30 ans`, 6006 'url': 'https://www.esprit-ktm.com/vetements-ktm/collections/anniversaire-duke-30-ans.html', 6007 'breadcrumbs': [{"title":"V\u00eatements","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm.html"},{"title":"Collections KTM","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm\/collections.html"}], 6008 'img': '', 6009 'description': `<p>Pour fêter les 30 ans de la gamme Duke, nous vous proposons une collection historique en édition limitée !</p><p>Des équipements techniques (Veste, Gants, Casque, Sweat) et des accessoires de tous les jours (Casquette, Sac à dos) à l&apos;effigie de la Duke et avec des patchs offerts.</p><p>Tout cela à un rapport qualité/ prix imbattable. Alors fan de Duke n&apos;hésitez pas.</p><p><strong>Collection en pré-commande et en édition limitée</strong></p>`, 6010 }" 6011 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 6012 :class="{ 6013 'text-primary-500 font-semibold': history.includes('category-node-2672') 6014 }">
6015 <span 6016 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 6017 <!-- DEBUG: Logo = EMPTY --> 6018 Anniversaire Duke 30 ans </span> 6019 </a> 6020 </li> 6021 <li> 6022 <a 6023 href="https://www.esprit-ktm.com/vetements-ktm/collections/mechanic.html" 6024 role="link" 6025 x-element-transition-trigger:category.animate="{ 6026 'title': `Mechanic`, 6027 'url': 'https://www.esprit-ktm.com/vetements-ktm/collections/mechanic.html', 6028 'breadcrumbs': [{"title":"V\u00eatements","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm.html"},{"title":"Collections KTM","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm\/collections.html"}], 6029 'img': '', 6030 'description': `<p>Crée pour les hommes et les femmes de l&apos;ombre qui agissent en coulisse , la<strong>collection KTM "MECHANIC"</strong>est spécialement conçue pour les mécanicien(ne)s</p><p>Que vous soyez amateurs ou professionnels, que vous fassiez toutes les réparations et l&apos;entretien sur votre moto ou non, cette collection est faites pour ceux qui aiment la mécanique et respectent les mécaniciens</p>`, 6031 }" 6032 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 6033 :class="{ 6034 'text-primary-500 font-semibold': history.includes('category-node-2673') 6035 }"> 6036 <span 6037 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 6038 <!-- DEBUG: Logo = EMPTY --> 6039 Mechanic </span> 6040 </a> 6041 </li> 6042 <li> 6043 <a 6044 x-a11y-trap-target.end="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-2598'" 6045 href="https://www.esprit-ktm.com/vetements-ktm/collections/collection-pilote-ktm-red-bull-racing-team.html" 6046 role="link" 6047 x-element-transition-trigger:category.animate="{ 6048 'title': `Collection pilote KTM Red Bull Racing Team`, 6049 'url': 'https://www.esprit-ktm.com/vetements-ktm/collections/collection-pilote-ktm-red-bull-racing-team.html', 6050 'breadcrumbs': [{"title":"V\u00eatements","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm.html"},{"title":"Collections KTM","url":"https:\/\/www.esprit-ktm.com\/vetements-ktm\/collections.html"}], 6051 'img': '', 6052 'description': `<p>Du 19 au 24 juin 2026 achetez un produit pilote KTM Racing Team de cette page et participez au tirage au sort pour gagner une casquette dédicacé par Pedro Acosta et Brad Binder.</p><p>
6052Un achat = 1 chance au tirage au sort, 2 achats = 2 chances, ...</p><p>Tirage au sort le lundi 29 juin 2026</p><p>Découvrez la collection pilote KTM Racing Team de l&apos;année 2026.</p><p>T shirts et casquettes des 2 pilotes officiels KTM Racing Team Pedro Acosta et Brad Binder.</p><p>T shirts et casquettes des 2 pilotes KTM Tech 3 Enea Bastianini et Maverick Vinales</p>`, 6053 }" 6054 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 6055 :class="{ 6056 'text-primary-500 font-semibold': history.includes('category-node-3457') 6057 }"> 6058 <span 6059 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 6060 <!-- DEBUG: Logo = EMPTY --> 6061 Collection pilote KTM Red Bull Racing Team </span> 6062 </a> 6063 </li> 6064 </ul> 6065 6066 <div class="h-20 md:hidden"></div> 6067 <template 6068 x-portal="$store.main.isMobile ? document.getElementById('popup-fixed-content-portal') : document.getElementById('menu-actions-category-node-2598')"> 6069 <div 6070 class="bg-bg-500 px-4 pb-2 transition-colors duration-200 md:bg-transparent md:hover:text-primary-600 md:p-0" 6071 x-transition.opacity 6072 x-show="$store.main.isMobile ? history[history.length - 1] === 'category-node-2598' && !getIsSearchActive() : history.includes('category-node-2598')" 6073 role="link"> 6074 <a 6075 x-element-transition-trigger 6076 class="button bg-white border border-primary-500 text-primary-500 w-full hover:bg-primary-500 hover:text-white hover:scale-105 transition-all duration-200" 6077 href="https://www.esprit-ktm.com/vetements-ktm/collections.html"> 6078 <template x-if="$store.main.isMobile"> 6079 <span>Tout voir <span class="lowercase">Collections KTM</span></span> 6080 </template> 6081 <template x-if="!$store.main.isMobile"> 6082 <span class="flex items-center text-center capitalize"> 6083 <span class='border-current'> 6084 Tout voir <br /> 6085 <span>Collections KTM</span> 6086 </span> 6087 </span> 6088 </template> 6089 </a> 6090 </div> 6091 </template> 6092 </div> 6093 </template> 6094 </li> 6095 </ul> 6096 6097 <div class="h-20 md:hidden"></div> 6098 <template 6099 x-portal="$store.main.isMobile ? document.getElementById('popup-fixed-content-portal') : document.getElementById('menu-actions-category-node-1769')"> 6100 <div 6101 class="bg-bg-500 px-4 pb-2 transition-colors duration-200 md:bg-transparent md:hover:text-primary-600 md:p-0" 6102 x-transition.opacity 6103 x-show="$store.main.isMobile ? history[history.length - 1] === 'category-node-1769' && !getIsSearchActive() : history.includes('category-node-1769')" 6104 role="link"> 6105 <a 6106 x-element-transition-trigger 6107 class="button bg-white border border-primary-500 text-primary-500 w-full hover:bg-primary-500 hover:text-white hover:scale-105 transition-all duration-200" 6108 href="https://www.esprit-ktm.com/vetements-ktm.html"> 6109 <template x-if="$store.main.isMobile"> 6110 <span>Tout voir <span class="lowercase">Vêtements</span></span> 6111 </template> 6112 <template x-if="!$store.main.isMobile">
6113 <span class="flex items-center text-center capitalize"> 6114 <span class='border-current'> 6115 Tout voir <br /> 6116 <span>Vêtements</span> 6117 </span> 6118 </span> 6119 </template> 6120 </a> 6121 </div> 6122 </template> 6123 </div> 6124 </template> 6125 </li> 6126 <li> 6127 <button 6128 class="menu__link group" 6129 @click="setHistory([...'all'.split(','), 'category-node-1770'])" 6130 :class="{ 'menu__link--active': history.includes('category-node-1770') }" 6131 role="button" 6132 :aria-expanded="history.includes('category-node-1770')"> 6133 <span class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 6134 <!-- DEBUG: Logo = EMPTY --> 6135 Idées Cadeaux </span> 6136 <span class="text-xl transition-[color,transform] md:group-hover:-translate-x-3 md:group-hover:text-primary-600"> 6137 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 6138 <path d="M10.707 17.707 16.414 12l-5.707-5.707-1.414 1.414L13.586 12l-4.293 4.293z"/> 6139</svg> 6140 </span> 6141 </button> 6142 <template x-portal="document.getElementById('menu-sections')"> 6143 <div 6144 class="menu__level relative z-[100]" 6145 :class="{ 6146 'menu__level--current': history[history.length - 1] === 'category-node-1770', 6147 'menu__level--visible': history.includes('category-node-1770'), 6148 'menu__level--same-depth': 2 <= delayedLevel, 6149 'hidden': !$store.main.isMobile && !$store.resizable.isVisible('menu-desktop'), 6150 }" 6151 :inert="!history.includes('category-node-1770')" 6152 data-menu-level="category-node-1770"> 6153 <div class="menu__header"> 6154 <div class="menu__header-container p-2 md:flex md:flex-col"> 6155 6156 <button 6157 @click="history.pop()" 6158 type="button" 6159 aria-label="Revenir au menu précédent" 6160 class="menu__back-button py-3 motion-reduce:max-md:animate-none" 6161 :class="{ 6162 'menu__back-button--visible max-md:animate-slideIconIn motion-reduce:translate-x-0': history.length !== 1, 6163 'max-md:animate-slideIconOut motion-reduce:-translate-x-full': history.length == 1 6164 }" 6165 :tabindex="history.length === 1 ? -1 : 0" 6166 :aria-hidden="history.length === 1"> 6167 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 6168 <path d="M13.293 6.293 7.586 12l5.707 5.707 1.414-1.414L10.414 12l4.293-4.293z"/> 6169</svg> 6170 </button> 6171 6172 <h2 6173 class="menu__heading py-3 motion-reduce:max-md:animate-none" 6174 style="--translate-width: 52px;" 6175 :class="{ 6176 'menu__heading--root': 'category-node-1770' === 'all', 6177 'max-md:w-[calc(100%-var(--translate-width))]': 'category-node-1770' !== 'all', 6178 'max-md:animate-slideTitleIn motion-reduce:translate-x-[--translate-width]': history.length !== 1, 6179 'max-md:animate-slideTitleOut motion-reduce:translate-x-0': history.length == 1 6180 }" 6181 x-show="$store.main.isMobile || 'category-node-1770' !== 'all'"> 6182 Idées Cadeaux </h2> 6183 6184 <div id="menu-actions-category-node-1770" class="md:mt-[6px] md:flex-none md:flex-row"></div> 6185 </div> 6186 <hr class="divider -mx-5 md:hidden"> 6187 </div> 6188 6189 <ul role="list" class="menu__links"> 6190 <li> 6191 <a 6192 x-a11y-trap-target.initial="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1770'" 6193 href="https://www.esprit-ktm.com/accessoires-cadeaux-ktm/stickers.html" 6194 role="link" 6195 x-element-transition-trigger:category.animate="{ 6196 'title': `Autocollants & Stickers`, 6197 'url': 'https://www.esprit-ktm.com/accessoires-cadeaux-ktm/stickers.html', 6198 'breadcrumbs': [{"title":"Id\u00e9es Cadeaux","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm.html"}], 6199 'img': '', 6200 'description': `Bienvenue dans l&apos;univers des autocollants et stickers d&
6200apos;Esprit-KTM, la catégorie qui vous permet d&apos;exprimer votre passion pour la marque légendaire. Lire la suitePlongez-vous dans notre collection dynamique où l&apos;art rencontre l&apos;adrénaline, et découvrez une gamme d&apos;autocollants et de stickers qui incarnent l&apos;esprit audacieux de KTM.Chacun de nos autocollants est une déclaration de style et d&apos;appartenance, une invitation à partager votre amour pour l&apos;aventure sur deux roues. Nos designs variés offrent une manière unique de personnaliser votre espace et de mettre en avant votre passion pour la performance et l&apos;innovation.Fabriqués avec une attention méticuleuse aux détails et une qualité exceptionnelle, nos autocollants sont plus que de simples ornements ; ce sont des marqueurs visuels de votre engagement envers la marque KTM. Que ce soit sur votre casque, votre véhicule ou votre équipement, nos autocollants ajoutent une touche de dynamisme et d&apos;énergie à votre monde.Explorez notre catégorie autocollants et stickers, trouvez le cadeau parfait pour un amateur de moto ou faites de votre espace un terrain de jeu visuel qui célèbre l&apos;esprit indomptable de KTM. `, 6201 }" 6202 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 6203 :class="{ 6204 'text-primary-500 font-semibold': history.includes('category-node-1874') 6205 }"> 6206 <span 6207 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 6208 <!-- DEBUG: Logo = EMPTY --> 6209 Autocollants & Stickers </span> 6210 </a> 6211 </li> 6212 <li> 6213 <button 6214 class="menu__link group" 6215 @click="setHistory([...'all,category-node-1770'.split(','), 'category-node-1863'])" 6216 :class="{ 'menu__link--active': history.includes('category-node-1863') }" 6217 role="button" 6218 :aria-expanded="history.includes('category-node-1863')"> 6219 <span class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 6220 <!-- DEBUG: Logo = EMPTY --> 6221 Accessoires Lifestyle KTM </span> 6222 <span class="text-xl transition-[color,transform] md:group-hover:-translate-x-3 md:group-hover:text-primary-600"> 6223 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 6224 <path d="M10.707 17.707 16.414 12l-5.707-5.707-1.414 1.414L13.586 12l-4.293 4.293z"/> 6225</svg> 6226 </span> 6227 </button> 6228 <template x-portal="document.getElementById('menu-sections')"> 6229 <div 6230 class="menu__level relative z-[100]" 6231 :class="{ 6232 'menu__level--current': history[history.length - 1] === 'category-node-1863', 6233 'menu__level--visible': history.includes('category-node-1863'), 6234 'menu__level--same-depth': 3 <= delayedLevel, 6235 'hidden': !$store.main.isMobile && !$store.resizable.isVisible('menu-desktop'), 6236 }" 6237 :inert="!history.includes('category-node-1863')" 6238 data-menu-level="category-node-1863"> 6239 <div class="menu__header"> 6240 <div class="menu__header-container p-2 md:flex md:flex-col"> 6241 6242 <button 6243 @click="history.pop()" 6244 type="button" 6245 aria-label="Revenir au menu précédent" 6246 class="menu__back-button py-3 motion-reduce:max-md:animate-none" 6247 :class="{ 6248 'menu__back-button--visible max-md:animate-slideIconIn motion-reduce:translate-x-0': history.length !== 1, 6249 'max-md:animate-slideIconOut motion-reduce:-translate-x-full': history.length == 1 6250 }" 6251 :tabindex="history.length === 1 ? -1 : 0" 6252 :aria-hidden="history.length === 1"> 6253 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 6254 <path d="M13.293 6.293 7.586 12l5.707 5.707 1.414-1.414L10.414 12l4.293-4.293z"/> 6255</svg> 6256 </button> 6257 6258 <h2 6259 class="menu__heading py-3 motion-reduce:max-md:animate-none" 6260 style="--translate-width: 52px;" 6261 :class="{ 6262 'menu__heading--root': 'category-node-1863' === 'all', 6263 'max-md:w-[calc(100%-var(--translate-width))]': 'category-node-1863' !== 'all', 6264 'max-md:animate-slideTitleIn motion-reduce:translate-x-[--translate-width]': history.length !== 1, 6265 'max-md:animate-slideTitleOut motion-reduce:translate-x-0': history.length == 1 6266 }" 6267 x-show="$store.main.isMobile || 'category-node-1863' !== 'all'"> 6268 Accessoires Lifestyle KTM </h2> 6269 6270 <div id="menu-actions-category-node-1863" class="md:mt-[6px] md:flex-none md:flex-row"></div> 6271 </div> 6272 <hr class="divider -mx-5 md:hidden"> 6273 </div> 6274 6275 <ul role="list" class="menu__links"> 6276 <li> 6277 <a 6278 x-a11y-trap-target.initial="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1863'" 6279 href="https://www.esprit-ktm.com/accessoires-cadeaux-ktm/idees-cadeaux-ktm/lunettes-de-soleil.html" 6280 role="link" 6281 x-element-transition-trigger:category.animate="{ 6282 'title': `Lunettes de soleil`, 6283 'url': 'https://www.esprit-ktm.com/accessoires-cadeaux-ktm/idees-cadeaux-ktm/lunettes-de-soleil.html', 6284 'breadcrumbs': [{"title":"Id\u00e9es Cadeaux","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm.html"},{"title":"Accessoires Lifestyle KTM","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm\/idees-cadeaux-ktm.html"}], 6285 'img': '', 6286 'description': `Découvrez la catégorie "Lunettes de soleil" d&apos;Esprit KTM, où le style rencontre la protection sous le soleil éclatant de l&apos;aventure. Lire la suiteNos lunettes de soleil sont bien plus que des accessoires ;
6286 elles sont des déclarations de style et des compagnons indispensables pour chaque motard qui apprécie la route sous un ciel éblouissant.Chaque paire de lunettes de soleil de notre collection incarne l&apos;esthétique audacieuse de KTM, avec des designs contemporains et des détails soigneusement élaborés. Que vous préfériez un look sportif et dynamique ou quelque chose de plus décontracté, notre gamme offre une variété de styles pour s&apos;adapter à votre personnalité.Les verres de haute qualité offrent une protection UV essentielle tout en améliorant votre vision pour une conduite en toute confiance. Nos lunettes de soleil allient fonctionnalité et élégance pour vous offrir le meilleur des deux mondes.Affirmez votre engagement envers l&apos;esprit KTM avec des logos emblématiques et des accents distinctifs qui ajoutent une touche de passion à chaque regard. Que ce soit pour compléter votre tenue motarde ou pour offrir un cadeau élégant à un ami passionné de moto, nos lunettes de soleil sont le choix parfait.`, 6287 }" 6288 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 6289 :class="{ 6290 'text-primary-500 font-semibold': history.includes('category-node-2153') 6291 }"> 6292 <span 6293 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 6294 <!-- DEBUG: Logo = EMPTY --> 6295 Lunettes de soleil </span> 6296 </a> 6297 </li> 6298 <li> 6299 <a 6300 href="https://www.esprit-ktm.com/accessoires-cadeaux-ktm/idees-cadeaux-ktm/montres.html" 6301 role="link" 6302 x-element-transition-trigger:category.animate="{ 6303 'title': `Montres et Horloges`, 6304 'url': 'https://www.esprit-ktm.com/accessoires-cadeaux-ktm/idees-cadeaux-ktm/montres.html', 6305 'breadcrumbs': [{"title":"Id\u00e9es Cadeaux","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm.html"},{"title":"Accessoires Lifestyle KTM","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm\/idees-cadeaux-ktm.html"}], 6306 'img': '', 6307 'description': `Découvrez l&apos;élégance intemporelle et la précision mécanique avec la catégorie "Montres et Horloges" d&apos;Esprit KTM, où le temps devient une aventure. Lire la suiteNotre collection de montres et d&apos;horloges incarne l&apos;alliance parfaite entre le style distinctif de KTM et la qualité horlogère, offrant des pièces qui transcendent la simple mesure du temps pour devenir de véritables compagnons de route.Chaque montre et horloge de notre gamme est une Åuvre d&apos;art, fusionnant l&apos;héritage de KTM avec des détails raffinés et une ingénierie de pointe. Que vous optiez pour un design classique ou contemporain, chaque montre est créée pour refléter l&apos;esprit intrépide de ceux qui savent que chaque instant compte sur la route et chez soi.Les cadrans affichent des logos emblématiques et des motifs inspirés de l&apos;univers de la moto, ajoutant une touche distinctive à chaque poignet. Les bracelets, conçus avec soin, offrent un mélange de confort et de durabilité, adaptés à la vie quotidienne aussi bien qu&apos;aux escapades épiques.`, 6308 }" 6309 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 6310 :class="{ 6311 'text-primary-500 font-semibold': history.includes('category-node-2155') 6312 }">
6313 <span 6314 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 6315 <!-- DEBUG: Logo = EMPTY --> 6316 Montres et Horloges </span> 6317 </a> 6318 </li> 6319 <li> 6320 <a 6321 href="https://www.esprit-ktm.com/accessoires-cadeaux-ktm/idees-cadeaux-ktm/parapluies.html" 6322 role="link" 6323 x-element-transition-trigger:category.animate="{ 6324 'title': `Parapluies`, 6325 'url': 'https://www.esprit-ktm.com/accessoires-cadeaux-ktm/idees-cadeaux-ktm/parapluies.html', 6326 'breadcrumbs': [{"title":"Id\u00e9es Cadeaux","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm.html"},{"title":"Accessoires Lifestyle KTM","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm\/idees-cadeaux-ktm.html"}], 6327 'img': '', 6328 'description': `Affrontez les jours pluvieux avec style grâce à la catégorie "Parapluies Lifestyle" d&apos;Esprit KTM, où la fonctionnalité rencontre l&apos;esthétique de la route. Lire la suiteNos parapluies sont bien plus que des abris contre la pluie ; ce sont des accessoires qui ajoutent une touche de flair KTM à chaque averse, affirmant votre passion même lorsque le ciel se couvre.Chaque parapluie de notre collection marie la qualité des matériaux à la conception innovante, offrant une protection fiable tout en capturant l&apos;esprit aventurier de KTM. Que ce soit pour vous protéger lors de vos déplacements quotidiens ou pour vous accompagner lors de vos escapades en plein air, nos parapluies sont conçus pour résister aux intempéries avec style.Les designs affichent des logos emblématiques et des motifs inspirés de l&apos;univers de la moto, faisant de chaque parapluie un accessoire qui déclare votre amour pour la route, même sous la pluie. Compact et pratique, notre gamme offre des options adaptées à chaque situation, du parapluie pliable que vous pouvez glisser dans votre sac aux modèles plus grands pour une protection maximale.`, 6329 }" 6330 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 6331 :class="{ 6332 'text-primary-500 font-semibold': history.includes('category-node-2156') 6333 }"> 6334 <span 6335 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 6336 <!-- DEBUG: Logo = EMPTY --> 6337 Parapluies </span> 6338 </a> 6339 </li> 6340 <li> 6341 <a 6342 x-a11y-trap-target.end="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1863'" 6343 href="https://www.esprit-ktm.com/accessoires-cadeaux-ktm/idees-cadeaux-ktm/portefeuilles.html" 6344 role="link" 6345 x-element-transition-trigger:category.animate="{ 6346 'title': `Stylos et porte-documents`, 6347 'url': 'https://www.esprit-ktm.com/accessoires-cadeaux-ktm/idees-cadeaux-ktm/portefeuilles.html', 6348 'breadcrumbs': [{"title":"Id\u00e9es Cadeaux","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm.html"},{"title":"Accessoires Lifestyle KTM","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm\/idees-cadeaux-ktm.html"}], 6349 'img': '', 6350 'description': `Plongez dans l&apos;élégance fonctionnelle avec la catégorie "Portefeuilles et Porte-documents" d&apos;
6350Esprit KTM. Lire la suiteNotre collection d&apos;accessoires pour le quotidien capture l&apos;esprit audacieux de KTM dans des articles qui vous accompagnent de manière raffinée à chaque étape de votre aventure quotidienne.Les portefeuilles de notre gamme incarnent la fusion parfaite entre l&apos;esthétique distinctive de KTM et l&apos;organisation essentielle. Fabriqués à partir de matériaux de qualité, ces portefeuilles offrent une touche de luxe tout en restant fidèles à l&apos;esprit fonctionnel des motards qui exigent le meilleur.Les porte-documents, quant à eux, sont conçus pour transporter vos essentiels avec élégance. Que vous soyez en route pour le travail ou pour une escapade, nos porte-documents sont des compagnons sophistiqués qui vous permettent de rester organisé sans sacrifier le style.Affichez votre passion pour KTM avec des logos emblématiques et des détails subtils qui distinguent chaque article. Que vous choisissiez un portefeuille classique ou un porte-documents moderne, chaque pièce est une déclaration de votre engagement envers l&apos;esthétique raffinée et l&apos;aventure sans limites.`, 6351 }" 6352 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 6353 :class="{ 6354 'text-primary-500 font-semibold': history.includes('category-node-2154') 6355 }"> 6356 <span 6357 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 6358 <!-- DEBUG: Logo = EMPTY --> 6359 Stylos et porte-documents </span> 6360 </a> 6361 </li> 6362 </ul> 6363 6364 <div class="h-20 md:hidden"></div> 6365 <template 6366 x-portal="$store.main.isMobile ? document.getElementById('popup-fixed-content-portal') : document.getElementById('menu-actions-category-node-1863')"> 6367 <div 6368 class="bg-bg-500 px-4 pb-2 transition-colors duration-200 md:bg-transparent md:hover:text-primary-600 md:p-0" 6369 x-transition.opacity 6370 x-show="$store.main.isMobile ? history[history.length - 1] === 'category-node-1863' && !getIsSearchActive() : history.includes('category-node-1863')" 6371 role="link"> 6372 <a 6373 x-element-transition-trigger 6374 class="button bg-white border border-primary-500 text-primary-500 w-full hover:bg-primary-500 hover:text-white hover:scale-105 transition-all duration-200" 6375 href="https://www.esprit-ktm.com/accessoires-cadeaux-ktm/idees-cadeaux-ktm.html"> 6376 <template x-if="$store.main.isMobile"> 6377 <span>Tout voir <span class="lowercase">Accessoires Lifestyle KTM</span></span> 6378 </template> 6379 <template x-if="!$store.main.isMobile"> 6380 <span class="flex items-center text-center capitalize"> 6381 <span class='border-current'> 6382 Tout voir <br /> 6383 <span>Accessoires Lifestyle KTM</span> 6384 </span> 6385 </span> 6386 </template> 6387 </a> 6388 </div> 6389 </template> 6390 </div> 6391 </template> 6392 </li> 6393 <li> 6394 <button 6395 class="menu__link group" 6396 @click="setHistory([...'all,category-node-1770'.split(','), 'category-node-2139'])" 6397 :class="{ 'menu__link--active': history.includes('category-node-2139') }" 6398 role="button" 6399 :aria-expanded="history.includes('category-node-2139')">
6400 <span class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 6401 <!-- DEBUG: Logo = EMPTY --> 6402 Accessoires maison </span> 6403 <span class="text-xl transition-[color,transform] md:group-hover:-translate-x-3 md:group-hover:text-primary-600"> 6404 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 6405 <path d="M10.707 17.707 16.414 12l-5.707-5.707-1.414 1.414L13.586 12l-4.293 4.293z"/> 6406</svg> 6407 </span> 6408 </button> 6409 <template x-portal="document.getElementById('menu-sections')"> 6410 <div 6411 class="menu__level relative z-[100]" 6412 :class="{ 6413 'menu__level--current': history[history.length - 1] === 'category-node-2139', 6414 'menu__level--visible': history.includes('category-node-2139'), 6415 'menu__level--same-depth': 3 <= delayedLevel, 6416 'hidden': !$store.main.isMobile && !$store.resizable.isVisible('menu-desktop'), 6417 }" 6418 :inert="!history.includes('category-node-2139')" 6419 data-menu-level="category-node-2139"> 6420 <div class="menu__header"> 6421 <div class="menu__header-container p-2 md:flex md:flex-col"> 6422 6423 <button 6424 @click="history.pop()" 6425 type="button" 6426 aria-label="Revenir au menu précédent" 6427 class="menu__back-button py-3 motion-reduce:max-md:animate-none" 6428 :class="{ 6429 'menu__back-button--visible max-md:animate-slideIconIn motion-reduce:translate-x-0': history.length !== 1, 6430 'max-md:animate-slideIconOut motion-reduce:-translate-x-full': history.length == 1 6431 }" 6432 :tabindex="history.length === 1 ? -1 : 0" 6433 :aria-hidden="history.length === 1"> 6434 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 6435 <path d="M13.293 6.293 7.586 12l5.707 5.707 1.414-1.414L10.414 12l4.293-4.293z"/> 6436</svg> 6437 </button> 6438 6439 <h2 6440 class="menu__heading py-3 motion-reduce:max-md:animate-none" 6441 style="--translate-width: 52px;" 6442 :class="{ 6443 'menu__heading--root': 'category-node-2139' === 'all', 6444 'max-md:w-[calc(100%-var(--translate-width))]': 'category-node-2139' !== 'all', 6445 'max-md:animate-slideTitleIn motion-reduce:translate-x-[--translate-width]': history.length !== 1, 6446 'max-md:animate-slideTitleOut motion-reduce:translate-x-0': history.length == 1 6447 }" 6448 x-show="$store.main.isMobile || 'category-node-2139' !== 'all'"> 6449 Accessoires maison </h2> 6450 6451 <div id="menu-actions-category-node-2139" class="md:mt-[6px] md:flex-none md:flex-row"></div> 6452 </div> 6453 <hr class="divider -mx-5 md:hidden"> 6454 </div> 6455 6456 <ul role="list" class="menu__links"> 6457 <li> 6458 <a 6459 x-a11y-trap-target.initial="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-2139'" 6460 href="https://www.esprit-ktm.com/accessoires-cadeaux-ktm/accessoires-maison/chaises-et-tabourets-ktm.html" 6461 role="link" 6462 x-element-transition-trigger:category.animate="{ 6463 'title': `Chaises et tabourets KTM`, 6464 'url': 'https://www.esprit-ktm.com/accessoires-cadeaux-ktm/accessoires-maison/chaises-et-tabourets-ktm.html', 6465 'breadcrumbs': [{"title":"Id\u00e9es Cadeaux","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm.html"},{"title":"Accessoires maison","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm\/accessoires-maison.html"}], 6466 'img': '', 6467 'description': `Asseyez-vous avec style et confort avec la catégorie "Chaises et Tabourets" d&apos;Esprit KTM, où chaque siège devient une déclaration de passion pour la route. Lire la suiteNotre c
6467ollection d&apos;assises combine l&apos;esthétique distinctive de KTM avec le confort moderne, créant des pièces qui ajoutent une touche audacieuse à votre espace de vie.Les chaises, avec leurs designs uniques, apportent l&apos;énergie de la conduite à votre salle à manger ou à votre espace de travail. Fabriquées avec des matériaux de qualité et des finitions soignées, ces chaises sont plus que des sièges ; ce sont des témoignages de votre engagement envers l&apos;aventure.Les tabourets, élégants et fonctionnels, offrent une option polyvalente pour compléter votre bar ou votre coin repas. Que ce soit pour un usage quotidien ou pour accueillir des invités, nos tabourets incarnent l&apos;esthétique KTM tout en offrant un confort ergonomique.Chaque assise de notre collection affiche des logos emblématiques et des détails inspirés de l&apos;univers de la moto, ajoutant une touche de personnalité à chaque siège. Que vous soyez en train de savourer un repas entre amis ou de travailler sur votre dernier projet, chaque moment devient une immersion dans l&apos;esprit de la conduite.`, 6468 }" 6469 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 6470 :class="{ 6471 'text-primary-500 font-semibold': history.includes('category-node-2142') 6472 }"> 6473 <span 6474 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 6475 <!-- DEBUG: Logo = EMPTY --> 6476 Chaises et tabourets KTM </span> 6477 </a> 6478 </li> 6479 <li> 6480 <a 6481 href="https://www.esprit-ktm.com/accessoires-cadeaux-ktm/accessoires-maison/decoration.html" 6482 role="link" 6483 x-element-transition-trigger:category.animate="{ 6484 'title': `Décorations`, 6485 'url': 'https://www.esprit-ktm.com/accessoires-cadeaux-ktm/accessoires-maison/decoration.html', 6486 'breadcrumbs': [{"title":"Id\u00e9es Cadeaux","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm.html"},{"title":"Accessoires maison","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm\/accessoires-maison.html"}], 6487 'img': '', 6488 'description': `Transformez votre espace de vie en un sanctuaire d&apos;aventure avec la catégorie "Décoration" d&apos;Esprit KTM. Lire la suiteNotre collection d&apos;articles de décoration fusionne l&apos;esthétique unique de KTM avec l&apos;art de créer des espaces qui résonnent avec l&apos;esprit de l&apos;aventure.Des bannières aux drapeaux en passant par les paillassons et horloges, chaque pièce de décoration a été soigneusement choisie pour évoquer l&apos;énergie et l&apos;audace de la conduite. Les décorations KTM ajoutent une dimension artistique à votre intérieur. Fabriquées avec un souci du détail, elles incarnent l&apos;esthétique mécanique tout en célébrant l&apos;esthétique distinctive de KTM.Affirmez votre amour pour KTM dans chaque coin de votre chez-vous. Nos articles de décoration ne sont pas simplement des ornements ; ce sont des déclarations artistiques qui créent un environnement où l&apos;esprit de l&apos;aventure est tangible.`, 6489 }" 6490 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 6491 :class="{ 6492 'text-primary-500 font-semibold': history.includes('category-node-2141') 6493 }">
6494 <span 6495 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 6496 <!-- DEBUG: Logo = EMPTY --> 6497 Décorations </span> 6498 </a> 6499 </li> 6500 <li> 6501 <a 6502 x-a11y-trap-target.end="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-2139'" 6503 href="https://www.esprit-ktm.com/accessoires-cadeaux-ktm/accessoires-maison/tasses-mugs-et-gourdes.html" 6504 role="link" 6505 x-element-transition-trigger:category.animate="{ 6506 'title': `Tasses, mugs et gourdes`, 6507 'url': 'https://www.esprit-ktm.com/accessoires-cadeaux-ktm/accessoires-maison/tasses-mugs-et-gourdes.html', 6508 'breadcrumbs': [{"title":"Id\u00e9es Cadeaux","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm.html"},{"title":"Accessoires maison","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm\/accessoires-maison.html"}], 6509 'img': '', 6510 'description': `Ãlevez votre routine quotidienne avec la catégorie "Tasses, Mugs et Gourdes" d&apos;Esprit KTM. Lire la suiteNos accessoires pour boissons sont bien plus que des récipients ; ce sont des compagnons stylés qui ajoutent une dose d&apos;aventure à chaque pause café ou hydratation.Les tasses à café et les mugs arborent des designs dynamiques, affichant fièrement les logos emblématiques de KTM. Que vous soyez en train de savourer votre boisson préférée à la maison ou au travail, chaque gorgée devient une affirmation de votre passion pour la conduite.Les gourdes, conçues pour accompagner les aventures en plein air, allient praticité et esthétique. Légères et durables, elles sont le compagnon idéal pour rester hydraté tout en affichant votre amour pour KTM, que vous soyez sur deux roues ou en balade.Sans oublier les ouvre-bouteilles et les verres KTM.`, 6511 }" 6512 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 6513 :class="{ 6514 'text-primary-500 font-semibold': history.includes('category-node-2140') 6515 }"> 6516 <span 6517 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 6518 <!-- DEBUG: Logo = EMPTY --> 6519 Tasses, mugs et gourdes </span> 6520 </a> 6521 </li> 6522 </ul> 6523 6524 <div class="h-20 md:hidden"></div> 6525 <template 6526 x-portal="$store.main.isMobile ? document.getElementById('popup-fixed-content-portal') : document.getElementById('menu-actions-category-node-2139')"> 6527 <div 6528 class="bg-bg-500 px-4 pb-2 transition-colors duration-200 md:bg-transparent md:hover:text-primary-600 md:p-0" 6529 x-transition.opacity 6530 x-show="$store.main.isMobile ? history[history.length - 1] === 'category-node-2139' && !getIsSearchActive() : history.includes('category-node-2139')" 6531 role="link"> 6532 <a 6533 x-element-transition-trigger 6534 class="button bg-white border border-primary-500 text-primary-500 w-full hover:bg-primary-500 hover:text-white hover:scale-105 transition-all duration-200" 6535 href="https://www.esprit-ktm.com/accessoires-cadeaux-ktm/accessoires-maison.html"> 6536 <template x-if="$store.main.isMobile">
6537 <span>Tout voir <span class="lowercase">Accessoires maison</span></span> 6538 </template> 6539 <template x-if="!$store.main.isMobile"> 6540 <span class="flex items-center text-center capitalize"> 6541 <span class='border-current'> 6542 Tout voir <br /> 6543 <span>Accessoires maison</span> 6544 </span> 6545 </span> 6546 </template> 6547 </a> 6548 </div> 6549 </template> 6550 </div> 6551 </template> 6552 </li> 6553 <li> 6554 <button 6555 class="menu__link group" 6556 @click="setHistory([...'all,category-node-1770'.split(','), 'category-node-1878'])" 6557 :class="{ 'menu__link--active': history.includes('category-node-1878') }" 6558 role="button" 6559 :aria-expanded="history.includes('category-node-1878')"> 6560 <span class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 6561 <!-- DEBUG: Logo = EMPTY --> 6562 Bagagerie </span> 6563 <span class="text-xl transition-[color,transform] md:group-hover:-translate-x-3 md:group-hover:text-primary-600"> 6564 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 6565 <path d="M10.707 17.707 16.414 12l-5.707-5.707-1.414 1.414L13.586 12l-4.293 4.293z"/> 6566</svg> 6567 </span> 6568 </button> 6569 <template x-portal="document.getElementById('menu-sections')"> 6570 <div 6571 class="menu__level relative z-[100]" 6572 :class="{ 6573 'menu__level--current': history[history.length - 1] === 'category-node-1878', 6574 'menu__level--visible': history.includes('category-node-1878'), 6575 'menu__level--same-depth': 3 <= delayedLevel, 6576 'hidden': !$store.main.isMobile && !$store.resizable.isVisible('menu-desktop'), 6577 }" 6578 :inert="!history.includes('category-node-1878')" 6579 data-menu-level="category-node-1878"> 6580 <div class="menu__header"> 6581 <div class="menu__header-container p-2 md:flex md:flex-col"> 6582 6583 <button 6584 @click="history.pop()" 6585 type="button" 6586 aria-label="Revenir au menu précédent" 6587 class="menu__back-button py-3 motion-reduce:max-md:animate-none" 6588 :class="{ 6589 'menu__back-button--visible max-md:animate-slideIconIn motion-reduce:translate-x-0': history.length !== 1, 6590 'max-md:animate-slideIconOut motion-reduce:-translate-x-full': history.length == 1 6591 }" 6592 :tabindex="history.length === 1 ? -1 : 0" 6593 :aria-hidden="history.length === 1"> 6594 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 6595 <path d="M13.293 6.293 7.586 12l5.707 5.707 1.414-1.414L10.414 12l4.293-4.293z"/> 6596</svg> 6597 </button> 6598 6599 <h2 6600 class="menu__heading py-3 motion-reduce:max-md:animate-none" 6601 style="--translate-width: 52px;" 6602 :class="{ 6603 'menu__heading--root': 'category-node-1878' === 'all', 6604 'max-md:w-[calc(100%-var(--translate-width))]': 'category-node-1878' !== 'all', 6605 'max-md:animate-slideTitleIn motion-reduce:translate-x-[--translate-width]': history.length !== 1, 6606 'max-md:animate-slideTitleOut motion-reduce:translate-x-0': history.length == 1 6607 }" 6608 x-show="$store.main.isMobile || 'category-node-1878' !== 'all'"> 6609 Bagagerie </h2> 6610 6611 <div id="menu-actions-category-node-1878" class="md:mt-[6px] md:flex-none md:flex-row"></div> 6612 </div> 6613 <hr class="divider -mx-5 md:hidden"> 6614 </div> 6615 6616 <ul role="list" class="menu__links"> 6617 <li> 6618 <a 6619 x-a11y-trap-target.initial="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1878'" 6620 href="https://www.esprit-ktm.com/accessoires-cadeaux-ktm/bagagerie/sac-a-dos-ktm.html" 6621 role="link" 6622 x-element-transition-trigger:category.animate="{ 6623 'title': `Sacs à dos KTM`, 6624 'url': 'https://www.esprit-ktm.com/accessoires-cadeaux-ktm/bagagerie/sac-a-dos-ktm.html', 6625 'breadcrumbs': [{"title":"Id\u00e9es Cadeaux","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm.html"},{"title":"Bagagerie","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm\/bagagerie.html"}], 6626 'img': '', 6627 'description': `Explorez l&apos;alliance parfaite entre style emblématique et fonctionnalité experte avec la catégorie "Sac à dos" de la bagagerie Esprit KTM. Lire la suiteDans le monde des motards, où chaque trajet est une histoire et chaque virage est une aventure, notre c
6627ollection de sacs à dos est conçue pour être votre compagnon de route ultime.Chaque sac à dos de notre gamme incarne l&apos;esprit KTM avec une esthétique distinctive et une attention méticuleuse aux détails. Que vous soyez un urbain en quête d&apos;un look décontracté ou un aventurier préparant une expédition à deux roues, nos sacs à dos sont conçus pour s&apos;adapter à votre style de vie dynamique.La durabilité est inscrite dans l&apos;ADN de chaque sac, avec des matériaux robustes et des finitions de qualité qui résistent aux rigueurs de la route. Les compartiments intelligemment conçus et les fonctionnalités pratiques garantissent que votre équipement est toujours organisé, que ce soit pour une escapade d&apos;une journée ou une aventure plus longue.Affichez fièrement votre passion pour KTM avec des designs audacieux et des logos emblématiques. Chaque sac à dos est plus qu&apos;un simple accessoire ; c&apos;est une déclaration de votre passion pour la conduite et le mode de vie KTM. Que vous préfériez un look épuré ou une explosion de couleurs, notre collection offre une variété de styles pour répondre à toutes les préférences.`, 6628 }" 6629 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 6630 :class="{ 6631 'text-primary-500 font-semibold': history.includes('category-node-2145') 6632 }"> 6633 <span 6634 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 6635 <!-- DEBUG: Logo = EMPTY --> 6636 Sacs à dos KTM </span> 6637 </a> 6638 </li> 6639 <li> 6640 <a 6641 href="https://www.esprit-ktm.com/accessoires-cadeaux-ktm/bagagerie/sac-de-voyage-et-valises-ktm.html" 6642 role="link" 6643 x-element-transition-trigger:category.animate="{ 6644 'title': `Sacs de voyage et valises KTM`, 6645 'url': 'https://www.esprit-ktm.com/accessoires-cadeaux-ktm/bagagerie/sac-de-voyage-et-valises-ktm.html', 6646 'breadcrumbs': [{"title":"Id\u00e9es Cadeaux","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm.html"},{"title":"Bagagerie","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm\/bagagerie.html"}], 6647 'img': '', 6648 'description': `Bienvenue dans la catégorie "Sacs de voyage et valises" d&apos;Esprit KTM, où l&apos;aventure rencontre l&apos;organisation. Lire la suiteConçue pour les motards qui ne connaissent pas de frontières, notre collection de sacs de voyage et de valises est l&apos;expression ultime du mariage entre le style KTM audacieux et la fonctionnalité robuste.Chaque sac et chaque valise de notre gamme est une invitation à explorer le monde avec une confiance totale. Fabriqués avec des matériaux de première qualité, nos bagages sont non seulement résistants aux éléments, mais aussi conçus pour résister aux rigueurs des voyages les plus audacieux.Que vous planifiiez une virée d&apos;un week-end ou une épopée à travers les continents, nos sacs de voyage et valises offrent un espace généreux et une organisation intelligente pour répondre à tous vos besoins. Des compartiments dédiés pour vos équipements essentiels aux détails réfléchis qui rendent chaque voyage plus fluide, nous avons pensé à tout pour que vous puissiez vous concentrer sur l&apos;essence même de votre voyage.Affichez fièrement votre passion pour KTM avec des designs accrocheurs et des logos emblématiques qui distinguent votre bagage sur n&apos;importe quel tarmac. Chaque pièce de la collection est plus qu&apos;
6648un simple contenant ; c&apos;est un récit de votre engagement envers l&apos;aventure et la liberté de la route.`, 6649 }" 6650 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 6651 :class="{ 6652 'text-primary-500 font-semibold': history.includes('category-node-2146') 6653 }"> 6654 <span 6655 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 6656 <!-- DEBUG: Logo = EMPTY --> 6657 Sacs de voyage et valises KTM </span> 6658 </a> 6659 </li> 6660 <li> 6661 <a 6662 href="https://www.esprit-ktm.com/accessoires-cadeaux-ktm/bagagerie/sac-de-sports-ktm.html" 6663 role="link" 6664 x-element-transition-trigger:category.animate="{ 6665 'title': `Sacs de sports KTM`, 6666 'url': 'https://www.esprit-ktm.com/accessoires-cadeaux-ktm/bagagerie/sac-de-sports-ktm.html', 6667 'breadcrumbs': [{"title":"Id\u00e9es Cadeaux","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm.html"},{"title":"Bagagerie","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm\/bagagerie.html"}], 6668 'img': '', 6669 'description': `Découvrez la fusion parfaite entre le dynamisme sportif et le style distinctif avec la catégorie "Sacs de sport" d&apos;Esprit KTM. Lire la suiteConçue pour les motards actifs et les passionnés de fitness, notre collection de sacs de sport incarne l&apos;énergie débridée de KTM tout en offrant la fonctionnalité nécessaire pour relever tous les défis.Chaque sac de sport de notre gamme est une déclaration audacieuse qui célèbre le mouvement, l&apos;endurance et le style dynamique propre à l&apos;esprit KTM. Fabriqués à partir de matériaux durables, ces sacs sont prêts à suivre votre rythme, que ce soit pour un entraînement intense, une escapade sportive ou une journée décontractée.L&apos;esthétique moderne et les détails ergonomiques sont combinés pour créer des sacs de sport qui ne sacrifient jamais le style au profit de la fonctionnalité. Des compartiments spécifiques pour vos équipements sportifs essentiels aux détails réfléchis qui facilitent l&apos;organisation, chaque sac est conçu pour répondre aux besoins variés des athlètes KTM.`, 6670 }" 6671 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 6672 :class="{ 6673 'text-primary-500 font-semibold': history.includes('category-node-2147') 6674 }"> 6675 <span 6676 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 6677 <!-- DEBUG: Logo = EMPTY --> 6678 Sacs de sports KTM </span> 6679 </a> 6680 </li> 6681 <li> 6682 <a 6683 href="https://www.esprit-ktm.com/accessoires-cadeaux-ktm/bagagerie/sac-d-hydratation.html" 6684 role="link" 6685 x-element-transition-trigger:category.animate="{ 6686 'title': `Sacs d'hydratation`, 6687 'url': 'https://www.esprit-ktm.com/accessoires-cadeaux-ktm/bagagerie/sac-d-hydratation.html', 6688 'breadcrumbs': [{"title":"Id\u00e9es Cadeaux","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm.html"},{"title":"Bagagerie","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm\/bagagerie.html"}], 6689 'img': '', 6690 'description': `Explorez la catégorie "Sacs d&
6690apos;hydratation" d&apos;Esprit KTM, où l&apos;essence de l&apos;aventure rencontre la nécessité de rester hydraté sur la route. Lire la suiteConçus pour les motards intrépides qui savent que chaque goutte compte, nos sacs d&apos;hydratation combinent le style emblématique de KTM avec une fonctionnalité essentielle pour des voyages sans compromis.Chaque sac d&apos;hydratation de notre collection est un compagnon de confiance, offrant une solution élégante pour rester frais et hydraté lors de vos expéditions. Fabriqués avec des matériaux légers et durables, ces sacs sont conçus pour résister aux rigueurs de la route tout en vous assurant d&apos;avoir toujours de l&apos;eau à portée de main.L&apos;esthétique dynamique de KTM se marie harmonieusement avec des designs ergonomiques, offrant un confort optimal pendant les longues balades. Des systèmes d&apos;hydratation intelligents aux détails réfléchis, chaque sac est pensé pour faciliter l&apos;accès à l&apos;eau tout en vous permettant de rester concentré sur l&apos;essentiel : la route qui se déroule devant vous.Affichez votre passion pour KTM tout en restant hydraté avec des sacs qui vont au-delà de la simple fonctionnalité. Que ce soit pour une virée d&apos;une journée ou une aventure plus longue, nos sacs d&
6690apos;hydratation sont conçus pour répondre aux besoins des motards qui exigent le meilleur de leur équipement.`, 6691 }" 6692 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 6693 :class="{ 6694 'text-primary-500 font-semibold': history.includes('category-node-2148') 6695 }"> 6696 <span 6697 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 6698 <!-- DEBUG: Logo = EMPTY --> 6699 Sacs d'hydratation </span> 6700 </a> 6701 </li> 6702 <li> 6703 <a 6704 x-a11y-trap-target.end="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1878'" 6705 href="https://www.esprit-ktm.com/accessoires-cadeaux-ktm/bagagerie/sacoches-1-sacs-bananes.html" 6706 role="link" 6707 x-element-transition-trigger:category.animate="{ 6708 'title': `Sacoches et bananes`, 6709 'url': 'https://www.esprit-ktm.com/accessoires-cadeaux-ktm/bagagerie/sacoches-1-sacs-bananes.html', 6710 'breadcrumbs': [{"title":"Id\u00e9es Cadeaux","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm.html"},{"title":"Bagagerie","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm\/bagagerie.html"}], 6711 'img': '', 6712 'description': `<p>Plongez dans l&apos;élégance fonctionnelle avec la catégorie "Sacoches & sacs bananes" d&apos;Esprit KTM.</p><p><u>Lire la suite</u></p><p>Notre collection de sacs capture l&apos;esprit audacieux de KTM dans des articles qui vous accompagnent de manière raffinée à chaque étape de votre aventure quotidienne. Les sacoches et bananes de notre gamme incarnent la fusion parfaite entre l&apos;esthétique distinctive de KTM et l&apos;organisation essentielle. Fabriqués à partir de matériaux de qualité, ces sacs offrent une touche de luxe tout en restant fidèles à l&apos;esprit fonctionnel des motards qui exigent le meilleur. Affichez votre passion pour KTM avec des logos emblématiques et des détails subtils qui distinguent chaque article. Chaque pièce est une déclaration de votre engagement envers l&apos;esthétique raffinée et l&apos;aventure sans limites</p>`, 6713 }" 6714 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 6715 :class="{ 6716 'text-primary-500 font-semibold': history.includes('category-node-2699') 6717 }"> 6718 <span 6719 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 6720 <!-- DEBUG: Logo = EMPTY --> 6721 Sacoches et bananes </span> 6722 </a> 6723 </li> 6724 </ul> 6725 6726 <div class="h-20 md:hidden"></div> 6727 <template 6728 x-portal="$store.main.isMobile ? document.getElementById('popup-fixed-content-portal') : document.getElementById('menu-actions-category-node-1878')"> 6729 <div 6730 class="bg-bg-500 px-4 pb-2 transition-colors duration-200 md:bg-transparent md:hover:text-primary-600 md:p-0" 6731 x-transition.opacity 6732 x-show="$store.main.isMobile ? history[history.length - 1] === 'category-node-1878' && !getIsSearchActive() : history.includes('category-node-1878')" 6733 role="link"> 6734 <a 6735 x-element-transition-trigger 6736 class="button bg-white border border-primary-500 text-primary-500 w-full hover:bg-primary-500 hover:text-white hover:scale-105 transition-all duration-200" 6737 href="https://www.esprit-ktm.com/accessoires-cadeaux-ktm/bagagerie.html"> 6738 <template x-if="$store.main.isMobile">
6739 <span>Tout voir <span class="lowercase">Bagagerie</span></span> 6740 </template> 6741 <template x-if="!$store.main.isMobile"> 6742 <span class="flex items-center text-center capitalize"> 6743 <span class='border-current'> 6744 Tout voir <br /> 6745 <span>Bagagerie</span> 6746 </span> 6747 </span> 6748 </template> 6749 </a> 6750 </div> 6751 </template> 6752 </div> 6753 </template> 6754 </li> 6755 <li> 6756 <a 6757 href="https://www.esprit-ktm.com/accessoires-cadeaux-ktm/boite-et-emballage-cadeaux.html" 6758 role="link" 6759 x-element-transition-trigger:category.animate="{ 6760 'title': `Boites et emballages cadeaux`, 6761 'url': 'https://www.esprit-ktm.com/accessoires-cadeaux-ktm/boite-et-emballage-cadeaux.html', 6762 'breadcrumbs': [{"title":"Id\u00e9es Cadeaux","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm.html"}], 6763 'img': '', 6764 'description': `Bienvenue dans la catégorie des boîtes et emballages cadeaux d&apos;Esprit-KTM, où l&apos;art de la présentation rencontre la passion pour l&apos;aventure sur deux roues. Lire la suitePlongez-vous dans notre sélection élégante, conçue pour sublimer vos cadeaux et ajouter une touche distinctive à chaque occasion spéciale.Nos boîtes et emballages cadeaux sont bien plus que de simples contenants ; ce sont des témoins du soin que vous accordez à chaque détail, à l&apos;image de la précision qui caractérise les motos KTM. Que vous offriez une maquette, un porte-clés ou tout autre trésor issu de notre collection, nos boîtes et emballages ajoutent une dimension supplémentaire à l&apos;expérience du cadeau. L&apos;emblématique logo KTM et les motifs inspirés de l&apos;univers des motos confèrent à chaque présent une aura distinctive, créant une expérience mémorable pour le destinataire.Explorez notre catégorie boîtes et emballages cadeaux avec la même anticipation qu&apos;un motard s&apos;apprêtant à chevaucher sa machine. Que ce soit pour un anniversaire, une fête ou toute autre célébration, Esprit-KTM vous offre la possibilité d&apos;offrir des cadeaux qui vont au-delà de l&apos;objet, créant une expérience enveloppante qui célèbre l&apos;esprit indomptable de KTM.`, 6765 }" 6766 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 6767 :class="{ 6768 'text-primary-500 font-semibold': history.includes('category-node-2157') 6769 }"> 6770 <span 6771 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 6772 <!-- DEBUG: Logo = EMPTY --> 6773 Boites et emballages cadeaux </span> 6774 </a> 6775 </li> 6776 <li> 6777 <button 6778 class="menu__link group" 6779 @click="setHistory([...'all,category-node-1770'.split(','), 'category-node-1886'])" 6780 :class="{ 'menu__link--active': history.includes('category-node-1886') }" 6781 role="button" 6782 :aria-expanded="history.includes('category-node-1886')">
6783 <span class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 6784 <!-- DEBUG: Logo = EMPTY --> 6785 Collection Bébé </span> 6786 <span class="text-xl transition-[color,transform] md:group-hover:-translate-x-3 md:group-hover:text-primary-600"> 6787 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 6788 <path d="M10.707 17.707 16.414 12l-5.707-5.707-1.414 1.414L13.586 12l-4.293 4.293z"/> 6789</svg> 6790 </span> 6791 </button> 6792 <template x-portal="document.getElementById('menu-sections')"> 6793 <div 6794 class="menu__level relative z-[100]" 6795 :class="{ 6796 'menu__level--current': history[history.length - 1] === 'category-node-1886', 6797 'menu__level--visible': history.includes('category-node-1886'), 6798 'menu__level--same-depth': 3 <= delayedLevel, 6799 'hidden': !$store.main.isMobile && !$store.resizable.isVisible('menu-desktop'), 6800 }" 6801 :inert="!history.includes('category-node-1886')" 6802 data-menu-level="category-node-1886"> 6803 <div class="menu__header"> 6804 <div class="menu__header-container p-2 md:flex md:flex-col"> 6805 6806 <button 6807 @click="history.pop()" 6808 type="button" 6809 aria-label="Revenir au menu précédent" 6810 class="menu__back-button py-3 motion-reduce:max-md:animate-none" 6811 :class="{ 6812 'menu__back-button--visible max-md:animate-slideIconIn motion-reduce:translate-x-0': history.length !== 1, 6813 'max-md:animate-slideIconOut motion-reduce:-translate-x-full': history.length == 1 6814 }" 6815 :tabindex="history.length === 1 ? -1 : 0" 6816 :aria-hidden="history.length === 1"> 6817 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 6818 <path d="M13.293 6.293 7.586 12l5.707 5.707 1.414-1.414L10.414 12l4.293-4.293z"/> 6819</svg> 6820 </button> 6821 6822 <h2 6823 class="menu__heading py-3 motion-reduce:max-md:animate-none" 6824 style="--translate-width: 52px;" 6825 :class="{ 6826 'menu__heading--root': 'category-node-1886' === 'all', 6827 'max-md:w-[calc(100%-var(--translate-width))]': 'category-node-1886' !== 'all', 6828 'max-md:animate-slideTitleIn motion-reduce:translate-x-[--translate-width]': history.length !== 1, 6829 'max-md:animate-slideTitleOut motion-reduce:translate-x-0': history.length == 1 6830 }" 6831 x-show="$store.main.isMobile || 'category-node-1886' !== 'all'"> 6832 Collection Bébé </h2> 6833 6834 <div id="menu-actions-category-node-1886" class="md:mt-[6px] md:flex-none md:flex-row"></div> 6835 </div> 6836 <hr class="divider -mx-5 md:hidden"> 6837 </div> 6838 6839 <ul role="list" class="menu__links"> 6840 <li> 6841 <a 6842 x-a11y-trap-target.initial="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1886'" 6843 href="https://www.esprit-ktm.com/accessoires-cadeaux-ktm/collection-bebe/biberons-et-bavoirs.html" 6844 role="link" 6845 x-element-transition-trigger:category.animate="{ 6846 'title': `Biberons et bavoirs`, 6847 'url': 'https://www.esprit-ktm.com/accessoires-cadeaux-ktm/collection-bebe/biberons-et-bavoirs.html', 6848 'breadcrumbs': [{"title":"Id\u00e9es Cadeaux","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm.html"},{"title":"Collection B\u00e9b\u00e9","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm\/collection-bebe.html"}], 6849 'img': '', 6850 'description': `Plongez dans le monde mignon et pratique de la catégorie "Biberons et Bavoirs" de la Collection Bébé d&apos;Esprit KTM. Lire la suiteConçue avec soin pour les petits aventuriers en herbe, cette gamme propose des accessoires aussi fonctionnels que stylés, pour accompagner les premiers pas de votre tout-petit dans le monde de KTM.Nos biberons ont été pensés pour allier praticité et design, avec des motifs ludiques et des couleurs vives qui éveilleront la curiosité de votre bébé. Fabriqués avec des matériaux sûrs et durables, ces biberons sont non seulement fonctionnels mais aussi une manière amusante d&apos;introduire la passion de KTM dès les premiers instants.Les bavoirs de la collection ajoutent une touche d&apos;élégance à chaque repas, offrant une protection pratique contre les éclabou
6850ssures tout en affichant le style KTM. Des logos emblématiques aux motifs amusants, chaque bavoir est une petite Åuvre d&apos;art conçue pour rendre les repas aussi amusants que stylés.`, 6851 }" 6852 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 6853 :class="{ 6854 'text-primary-500 font-semibold': history.includes('category-node-2149') 6855 }"> 6856 <span 6857 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 6858 <!-- DEBUG: Logo = EMPTY --> 6859 Biberons et bavoirs </span> 6860 </a> 6861 </li> 6862 <li> 6863 <a 6864 x-a11y-trap-target.end="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1886'" 6865 href="https://www.esprit-ktm.com/accessoires-cadeaux-ktm/collection-bebe/sucettes-et-tetines.html" 6866 role="link" 6867 x-element-transition-trigger:category.animate="{ 6868 'title': `Sucettes et tétines`, 6869 'url': 'https://www.esprit-ktm.com/accessoires-cadeaux-ktm/collection-bebe/sucettes-et-tetines.html', 6870 'breadcrumbs': [{"title":"Id\u00e9es Cadeaux","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm.html"},{"title":"Collection B\u00e9b\u00e9","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm\/collection-bebe.html"}], 6871 'img': '', 6872 'description': `Bienvenue dans la catégorie "Sucettes et Tétines" de la Collection Bébé d&apos;Esprit KTM, où même les petits peuvent démontrer leur passion pour la moto. Lire la suiteNos sucettes et tétines combinent le charme de la petite enfance avec l&apos;esprit audacieux de KTM, offrant une touche ludique et stylée pour les moments doux et réconfortants de la vie quotidienne.Chaque sucette et tétine de notre collection est conçue avec le plus grand soin pour allier confort, sécurité et un soupçon d&apos;aventure. Les motifs adorables et les couleurs vives éveilleront la curiosité de votre bébé tout en introduisant subtilement le style emblématique de KTM dans les premiers instants de sa vie.Fabriquées à partir de matériaux sûrs et de qualité, nos sucettes sont non seulement apaisantes pour les tout-petits, mais elles ajoutent également une touche de personnalité à chaque sourire. Les tétines, quant à elles, sont conçues pour s&apos;adapter parfaitement aux petites bouches, offrant un réconfort qui va au-delà de la simple fonction.`, 6873 }" 6874 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 6875 :class="{ 6876 'text-primary-500 font-semibold': history.includes('category-node-2150') 6877 }"> 6878 <span 6879 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 6880 <!-- DEBUG: Logo = EMPTY --> 6881 Sucettes et tétines </span> 6882 </a> 6883 </li> 6884 </ul> 6885 6886 <div class="h-20 md:hidden"></div> 6887 <template 6888 x-portal="$store.main.isMobile ? document.getElementById('popup-fixed-content-portal') : document.getElementById('menu-actions-category-node-1886')"> 6889 <div 6890 class="bg-bg-500 px-4 pb-2 transition-colors duration-200 md:bg-transparent md:hover:text-primary-600 md:p-0" 6891 x-transition.opacity 6892 x-show="$store.main.isMobile ? history[history.length - 1] === 'category-node-1886' && !getIsSearchActive() : history.includes('category-node-1886')" 6893 role="link"> 6894 <a 6895 x-element-transition-trigger 6896 class="button bg-white border border-primary-500 text-primary-500 w-full hover:bg-primary-500 hover:text-white hover:scale-105 transition-all duration-200" 6897 href="https://www.esprit-ktm.com/accessoires-cadeaux-ktm/collection-bebe.html"> 6898 <template x-if="$store.main.isMobile">
6899 <span>Tout voir <span class="lowercase">Collection Bébé</span></span> 6900 </template> 6901 <template x-if="!$store.main.isMobile"> 6902 <span class="flex items-center text-center capitalize"> 6903 <span class='border-current'> 6904 Tout voir <br /> 6905 <span>Collection Bébé</span> 6906 </span> 6907 </span> 6908 </template> 6909 </a> 6910 </div> 6911 </template> 6912 </div> 6913 </template> 6914 </li> 6915 <li> 6916 <button 6917 class="menu__link group" 6918 @click="setHistory([...'all,category-node-1770'.split(','), 'category-node-2162'])" 6919 :class="{ 'menu__link--active': history.includes('category-node-2162') }" 6920 role="button" 6921 :aria-expanded="history.includes('category-node-2162')"> 6922 <span class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 6923 <!-- DEBUG: Logo = EMPTY --> 6924 Draisiennes </span> 6925 <span class="text-xl transition-[color,transform] md:group-hover:-translate-x-3 md:group-hover:text-primary-600"> 6926 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 6927 <path d="M10.707 17.707 16.414 12l-5.707-5.707-1.414 1.414L13.586 12l-4.293 4.293z"/> 6928</svg> 6929 </span> 6930 </button> 6931 <template x-portal="document.getElementById('menu-sections')"> 6932 <div 6933 class="menu__level relative z-[100]" 6934 :class="{ 6935 'menu__level--current': history[history.length - 1] === 'category-node-2162', 6936 'menu__level--visible': history.includes('category-node-2162'), 6937 'menu__level--same-depth': 3 <= delayedLevel, 6938 'hidden': !$store.main.isMobile && !$store.resizable.isVisible('menu-desktop'), 6939 }" 6940 :inert="!history.includes('category-node-2162')" 6941 data-menu-level="category-node-2162"> 6942 <div class="menu__header"> 6943 <div class="menu__header-container p-2 md:flex md:flex-col"> 6944 6945 <button 6946 @click="history.pop()" 6947 type="button" 6948 aria-label="Revenir au menu précédent" 6949 class="menu__back-button py-3 motion-reduce:max-md:animate-none" 6950 :class="{ 6951 'menu__back-button--visible max-md:animate-slideIconIn motion-reduce:translate-x-0': history.length !== 1, 6952 'max-md:animate-slideIconOut motion-reduce:-translate-x-full': history.length == 1 6953 }" 6954 :tabindex="history.length === 1 ? -1 : 0" 6955 :aria-hidden="history.length === 1"> 6956 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 6957 <path d="M13.293 6.293 7.586 12l5.707 5.707 1.414-1.414L10.414 12l4.293-4.293z"/> 6958</svg> 6959 </button> 6960 6961 <h2 6962 class="menu__heading py-3 motion-reduce:max-md:animate-none" 6963 style="--translate-width: 52px;" 6964 :class="{ 6965 'menu__heading--root': 'category-node-2162' === 'all', 6966 'max-md:w-[calc(100%-var(--translate-width))]': 'category-node-2162' !== 'all', 6967 'max-md:animate-slideTitleIn motion-reduce:translate-x-[--translate-width]': history.length !== 1, 6968 'max-md:animate-slideTitleOut motion-reduce:translate-x-0': history.length == 1 6969 }" 6970 x-show="$store.main.isMobile || 'category-node-2162' !== 'all'"> 6971 Draisiennes </h2> 6972 6973 <div id="menu-actions-category-node-2162" class="md:mt-[6px] md:flex-none md:flex-row"></div> 6974 </div> 6975 <hr class="divider -mx-5 md:hidden"> 6976 </div> 6977 6978 <ul role="list" class="menu__links"> 6979 <li> 6980 <a 6981 x-a11y-trap-target.initial="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-2162'" 6982 href="https://www.esprit-ktm.com/accessoires-cadeaux-ktm/draisiennes/draisienne-electrique-ktm-stacyc.html" 6983 role="link" 6984 x-element-transition-trigger:category.animate="{ 6985 'title': `Draisienne Electrique STACYC`, 6986 'url': 'https://www.esprit-ktm.com/accessoires-cadeaux-ktm/draisiennes/draisienne-electrique-ktm-stacyc.html', 6987 'breadcrumbs': [{"title":"Id\u00e9es Cadeaux","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm.html"},{"title":"Draisiennes","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm\/
6987draisiennes.html"}], 6988 'img': '', 6989 'description': `<p>Bienvenue dans la catégorie draisiennes électriques STACYC d&apos;Esprit-KTM, où l&apos;esprit de l&apos;aventure sur deux roues commence dès le plus jeune âge. Lire la suite Plongez dans notre sélection exceptionnelle de draisiennes électriques STACYC, conçues pour initier les futurs motards à l&apos;excitation et à la liberté que seule la conduite sur deux roues peut offrir. Nos draisiennes électriques STACYC sont bien plus que de simples premiers vélos. Elles sont le point de départ d&apos;un voyage passionnant, offrant aux petits aventuriers l&apos;équilibre et la confiance nécessaires pour maîtriser l&apos;art de la conduite avant même de monter sur une moto. Conçues avec la même qualité et l&apos;attention aux détails que les légendaires motos KTM, nos draisiennes électriques sont robustes, sûres et prêtes à accompagner les premiers tours de roues de votre jeune motard en herbe. C&apos;est le cadeau idéal pour les parents passionnés de moto qui souhaitent transmettre leur passion de l&apos;aventure à la génération suivante. Explorez notre catégorie de draisiennes électriques STACYC et offrez un cadeau qui va au-delà du simple objet pour créer des souvenirs durables.</p>`, 6990 }" 6991 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 6992 :class="{ 6993 'text-primary-500 font-semibold': history.includes('category-node-2049') 6994 }"> 6995 <span 6996 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 6997 <!-- DEBUG: Logo = EMPTY --> 6998 Draisienne Electrique STACYC </span> 6999 </a> 7000 </li> 7001 <li> 7002 <a 7003 x-a11y-trap-target.end="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-2162'" 7004 href="https://www.esprit-ktm.com/accessoires-cadeaux-ktm/draisiennes/draisienne-classique-ktm.html" 7005 role="link" 7006 x-element-transition-trigger:category.animate="{ 7007 'title': `Draisiennes classiques KTM`, 7008 'url': 'https://www.esprit-ktm.com/accessoires-cadeaux-ktm/draisiennes/draisienne-classique-ktm.html', 7009 'breadcrumbs': [{"title":"Id\u00e9es Cadeaux","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm.html"},{"title":"Draisiennes","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm\/draisiennes.html"}], 7010 'img': '', 7011 'description': `Bienvenue dans la catégorie draisiennes classiques d&apos;Esprit-KTM, où l&apos;esprit de l&apos;aventure sur deux roues commence dès le plus jeune âge. Lire la suitePlongez dans notre sélection exceptionnelle de draisiennes classiques, conçues pour initier les futurs motards à l&apos;excitation et à la liberté que seule la conduite sur deux roues peut offrir.Nos draisiennes, arborant fièrement le logo emblématique de KTM, sont bien plus que de simples premiers vélos. Elles sont le point de départ d&apos;un voyage passionnant, offrant aux petits aventuriers l&apos;équilibre et la confiance nécessaires pour maîtriser l&apos;
7011art de la conduite avant même de monter sur une moto.Conçues avec la même qualité et l&apos;attention aux détails que les légendaires motos KTM, nos draisiennes sont robustes, sûres et prêtes à accompagner les premiers tours de roues de votre jeune motard en herbe. C&apos;est le cadeau idéal pour les parents passionnés de moto qui souhaitent transmettre leur passion de l&apos;aventure à la génération suivante.Explorez notre catégorie de draisiennes classiques et offrez un cadeau qui va au-delà du simple objet pour créer des souvenirs durables.`, 7012 }" 7013 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7014 :class="{ 7015 'text-primary-500 font-semibold': history.includes('category-node-2163') 7016 }"> 7017 <span 7018 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7019 <!-- DEBUG: Logo = EMPTY --> 7020 Draisiennes classiques KTM </span> 7021 </a> 7022 </li> 7023 </ul> 7024 7025 <div class="h-20 md:hidden"></div> 7026 <template 7027 x-portal="$store.main.isMobile ? document.getElementById('popup-fixed-content-portal') : document.getElementById('menu-actions-category-node-2162')"> 7028 <div 7029 class="bg-bg-500 px-4 pb-2 transition-colors duration-200 md:bg-transparent md:hover:text-primary-600 md:p-0" 7030 x-transition.opacity 7031 x-show="$store.main.isMobile ? history[history.length - 1] === 'category-node-2162' && !getIsSearchActive() : history.includes('category-node-2162')" 7032 role="link"> 7033 <a 7034 x-element-transition-trigger 7035 class="button bg-white border border-primary-500 text-primary-500 w-full hover:bg-primary-500 hover:text-white hover:scale-105 transition-all duration-200" 7036 href="https://www.esprit-ktm.com/accessoires-cadeaux-ktm/draisiennes.html"> 7037 <template x-if="$store.main.isMobile"> 7038 <span>Tout voir <span class="lowercase">Draisiennes</span></span> 7039 </template> 7040 <template x-if="!$store.main.isMobile"> 7041 <span class="flex items-center text-center capitalize"> 7042 <span class='border-current'> 7043 Tout voir <br /> 7044 <span>Draisiennes</span> 7045 </span> 7046 </span> 7047 </template> 7048 </a> 7049 </div> 7050 </template> 7051 </div> 7052 </template> 7053 </li> 7054 <li> 7055 <a 7056 href="https://www.esprit-ktm.com/accessoires-cadeaux-ktm/maquette-moto.html" 7057 role="link" 7058 x-element-transition-trigger:category.animate="{ 7059 'title': `Maquettes Motos`, 7060 'url': 'https://www.esprit-ktm.com/accessoires-cadeaux-ktm/maquette-moto.html', 7061 'breadcrumbs': [{"title":"Id\u00e9es Cadeaux","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm.html"}], 7062 'img': '', 7063 'description': `Bienvenue dans l&apos;univers des maquettes motos d&apos;Esprit-KTM, une catégorie dédiée aux passionnés de deux-roues et aux amateurs de la marque KTM. Lire la suitePlongez-vous dans une collection exceptionnelle de reproductions minutieuses, capturant l&apos;esprit intrépide et la puissance brute des motos emblématiques de KTM.Chaque maquette est une Åuvre d&apos;art en miniature, soigneusement conçue pour refléter chaque détail, du design distinctif aux performances exceptionnelles. Notre sélection diversifiée vou
7063s offre la possibilité de posséder une pièce de l&apos;histoire de KTM dans le confort de votre espace personnel.Que ce soit pour égayer votre bureau, embellir votre étagère ou offrir à un passionné de motos, nos maquettes sont plus qu&apos;une simple reproduction, elles sont une célébration de l&apos;ingénierie de pointe et de l&apos;esprit aventureux qui caractérisent les motos KTM.Explorez notre catégorie de maquettes motos avec l&apos;excitation d&apos;un virage serré, découvrez des cadeaux qui font revivre l&apos;essence du monde des deux-roues, et laissez Esprit-KTM vous guider dans un voyage miniature à travers l&apos;univers palpitant des motos d&apos;exception, comme avec la maquette moto GP Jack Miller, la KTM 450 SX-F Model Bike MY22, la KTM 300 EXC Model Bike MY22, la moto GP Brad Binder.`, 7064 }" 7065 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7066 :class="{ 7067 'text-primary-500 font-semibold': history.includes('category-node-1823') 7068 }"> 7069 <span 7070 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7071 <!-- DEBUG: Logo = EMPTY --> 7072 Maquettes Motos </span> 7073 </a> 7074 </li> 7075 <li> 7076 <a 7077 x-a11y-trap-target.end="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'category-node-1770'" 7078 href="https://www.esprit-ktm.com/accessoires-cadeaux-ktm/porte-cles-ktm.html" 7079 role="link" 7080 x-element-transition-trigger:category.animate="{ 7081 'title': `Porte-clés`, 7082 'url': 'https://www.esprit-ktm.com/accessoires-cadeaux-ktm/porte-cles-ktm.html', 7083 'breadcrumbs': [{"title":"Id\u00e9es Cadeaux","url":"https:\/\/www.esprit-ktm.com\/accessoires-cadeaux-ktm.html"}], 7084 'img': '', 7085 'description': `Bienvenue dans la catégorie porte-clés d&apos;Esprit-KTM, où l&apos;essence de l&apos;aventure sur deux-roues prend une nouvelle dimension. Lire la suitePlongez-vous dans une collection de porte-clés méticuleusement conçus qui capturent l&apos;esprit audacieux et la passion infinie pour la route de la marque emblématique KTM.Chacun de nos porte-clés est bien plus qu&apos;un simple accessoire ; c&apos;est une déclaration de style pour les passionnés de moto. Fabriqués avec précision et souci du détail, nos porte-clés mettent en lumière l&apos;ingénierie exceptionnelle et le design distinctif qui font de KTM une référence dans le monde des deux-roues.Que vous soyez un motard chevronné ou que vous cherchiez le cadeau idéal pour un amateur de moto, nos porte-clés motos sont le moyen parfait d&apos;emporter avec vous un morceau de la passion et de la puissance que KTM incarne. Ils ajoutent une touche d&apos;aventure à votre quotidien, rappelant constamment la passion qui anime le cÅur des motards.`, 7086 }" 7087 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7088 :class="{ 7089 'text-primary-500 font-semibold': history.includes('category-node-1884') 7090 }"> 7091 <span 7092 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7093 <!-- DEBUG: Logo = EMPTY --> 7094 Porte-clés </span> 7095 </a> 7096 </li> 7097 </ul> 7098 7099 <div class="h-20 md:hidden"></div> 7100 <template 7101 x-portal="$store.main.isMobile ? document.getElementById('popup-fixed-content-portal') : document.getElementById('menu-actions-category-node-1770')"> 7102 <div 7103 class="bg-bg-500 px-4 pb-2 transition-colors duration-200 md:bg-transparent md:hover:text-primary-600 md:p-0" 7104 x-transition.opacity 7105 x-show="$store.main.isMobile ? history[history.length - 1] === 'category-node-1770' && !getIsSearchActive() : history.includes('category-node-1770')" 7106 role="link"> 7107 <a 7108 x-element-transition-trigger 7109 class="button bg-white border border-primary-500 text-primary-500 w-full hover:bg-primary-500 hover:text-white hover:scale-105 transition-all duration-200" 7110 href="https://www.esprit-ktm.com/accessoires-cadeaux-ktm.html"> 7111 <template x-if="$store.main.isMobile">
7112 <span>Tout voir <span class="lowercase">Idées Cadeaux</span></span> 7113 </template> 7114 <template x-if="!$store.main.isMobile"> 7115 <span class="flex items-center text-center capitalize"> 7116 <span class='border-current'> 7117 Tout voir <br /> 7118 <span>Idées Cadeaux</span> 7119 </span> 7120 </span> 7121 </template> 7122 </a> 7123 </div> 7124 </template> 7125 </div> 7126 </template> 7127 </li> 7128 <li> 7129 <a 7130 href="https://www.esprit-ktm.com/motos-neuves-ktm.html" 7131 role="link" 7132 x-element-transition-trigger:category.animate="{ 7133 'title': `Motos Neuves`, 7134 'url': 'https://www.esprit-ktm.com/motos-neuves-ktm.html', 7135 'breadcrumbs': [], 7136 'img': '', 7137 'description': `<p style="text-align: center;"><span style="color: #ff6600; font-size: small;"><span style="color: #333333;"><span style="font-size: small;">Contactez</span><strong><span style="font-size: small;"> Julien </span></strong><span style="font-size: small;">ou</span><strong><span style="font-size: small;"> Arthur </span></strong><span style="font-size: small;">au</span><strong><span style="font-size: small;"><span style="text-decoration: underline;"> <span style="font-size: medium;"><a href="+33492531931">+33(0)492531931</a></span></span></span></strong></span><br></span></p><hr><p style="text-align: center;"><span style="font-size: medium;"><strong><span style="color: #ff6600;">Nous vous livrons partout en France.</span></strong></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Vous pouvez contacter Julien et Arthur pour plus de renseignement par mail à l&apos;adresse</span><a href="mailto:[email protected]"><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">[email protected]</span></a><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"> (mailto:[email protected]) ou par téléphone au +33(0)492531931. Esprit KTM est le spécialiste de la vente de motos KTM NEUVES dans toute la France.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Motos neuves KTM à vendre</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Nous sommes concessionnaires KTM à Gap (Hautes-Alpes) et nous vous livrons partout en France, du Sud au Nord et de l&apos;Est à l&apos;Ouest. Retrouvez ci-dessous l&apos;ensemble de la gamme KTM disponible à l&apos;achat :</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">KTM 125 RC, KTM 250 RC, KTM 390 RC, KTM Duke 125, KTM 390 Duke, KTM 790 Duke, KTM 890 Duke, KTM 1290 SUPERDUKE, KTM 125 EXC, KTM 250 EXC, KTM 250 EXC-F, KTM 350 EXC, KTM 450 EXC, KTM 85 SX, KTM 125 SX, KTM 250 SX, KTM 250 SX-F, KTM 350SX, KTM 450SX, KTM 1290 SUPER ADVENTURE, KTM 390 ADVENTURE, KTM 790 ADVENTURE...**</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Notre objectif est de vous permettre de trouver facilement la moto neuve KTM qui correspond à votre utilisation, à votre expérience et à votre budget. Que vou
7137s recherchiez une moto pour vos déplacements quotidiens, une moto sportive, une moto Adventure pour voyager, une moto Enduro pour les chemins ou une moto cross neuve pour la pratique du motocross, vous pouvez retrouver différents modèles KTM sur notre site.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Acheter KTM chez Esprit KTM</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Vous souhaitez acheter KTM et vous recherchez un concessionnaire spécialisé capable de vous accompagner dans votre projet ? Esprit KTM vous propose une sélection de motos KTM neuves et vous accompagne dans votre achat.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">KTM propose plusieurs familles de motos répondant à des usages très différents. La gamme Duke est notamment destinée aux motards recherchant une moto dynamique et polyvalente pour la route. Les gammes Adventure sont quant à elles pensées pour les voyages et les longues distances, avec des motos capables de vous accompagner aussi bien sur route que sur des itinéraires plus variés.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Pour les amateurs de tout-terrain, KTM propose également des motos Enduro et Motocross. Ces modèles sont conçus pour offrir des performances adaptées à une utilisation sportive et aux terrains exigeants.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Avant de choisir votre moto, notre équipe peut vous renseigner sur les modèles disponibles, les équipements, les caractéristiques et les conditions d&
7137apos;achat. Vous pouvez également nous contacter pour connaître le tarif KTM correspondant au modèle qui vous intéresse.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Les motos KTM Adventure</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">La gamme Adventure occupe une place importante dans l&apos;offre KTM. Ces motos s&apos;adressent aux motards qui souhaitent voyager, partir en week-end ou simplement profiter d&apos;une moto polyvalente capable de s&apos;adapter à différentes conditions de roulage.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Parmi les modèles de la gamme, vous pouvez notamment retrouver la KTM 125 Adventure, ainsi que différentes cylindrées Adventure adaptées aux besoins des motards recherchant davantage de puissance et de confort pour leurs déplacements.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Si vous recherchez une adventure moto stock, consultez directement les motos disponibles sur notre site. Les disponibilités peuvent évoluer régulièrement en fonction des arrivages et des ventes. Notre équipe reste également disponible pour vous renseigner sur les modèles actuellement disponibles et sur les délais éventuels.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">La gamme Adventure KTM permet ainsi de répondre à différents projets : trajet quotidien, voyage, balade, road-trip ou découverte de nouveaux itinéraires.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">KTM Duke : des motos pour la route</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">La gamme KTM Duke est particulièrement appréciée pour son caractère dynamique et son style reconnaissable. Elle comprend plusieurs cylindrées permettant de répondre aux attentes de différents profils de motards.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Parmi les modèles disponibles ou référencés dans notre gamme, vous trouverez notamment la KTM Duke 125 et les différentes versions de la gamme Duke.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Si vous effectuez une recherche sur une KTM Duke 50cc, n&apos;hésitez pas à contacter notre équipe afin de connaître les modèles disponibles et les possibilités correspondant à votre besoin. Les gammes et les motorisations évoluent régulièrement, il est donc préférable de vérifier directement les modèles actuellement proposés.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">
7137Que vous soyez à la recherche d&apos;une première moto, d&apos;une moto légère pour vos déplacements ou d&apos;un modèle plus puissant, la gamme KTM permet de trouver une solution adaptée à différents usages.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">KTM Enduro et Motocross</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Esprit KTM s&apos;adresse également aux passionnés de tout-terrain à la recherche d&apos;une moto KTM Enduro ou d&apos;une moto destinée au motocross.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Les motos Enduro KTM sont conçues pour les pratiquants qui recherchent une machine performante et adaptée aux parcours tout-terrain. Selon votre pratique et votre niveau, différentes cylindrées sont proposées dans la gamme KTM.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">La KTM 125 Enduro constitue notamment une recherche fréquente auprès des motards souhaitant s&apos;orienter vers une cylindrée accessible. Les modèles Enduro de cylindrées supérieures permettent ensuite de répondre à des besoins différents en matière de puissance et de performances.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Pour la pratique du motocross, les modèles de la gamme SX sont conçus pour une utilisation sportive sur circuit et terrains de motocross. Si vous recherchez une moto cross neuve, retrouvez les modèles KTM disponibles sur notre site et contactez-nous pour obtenir les informations concernant leur disponibilité.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">
7137Nous pouvons également vous renseigner sur les arrivages, les modèles disponibles et les conditions de livraison.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Motos KTM neuves disponibles à l&apos;achat</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">La disponibilité de nos motos peut évoluer rapidement. Les modèles affichés sur cette page correspondent aux motos KTM proposées à la vente et peuvent être mis à jour en fonction des stocks, des nouveaux millésimes et des arrivages.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Vous pouvez consulter directement les fiches des motos afin de découvrir leurs caractéristiques, leur prix et les informations relatives à leur disponibilité.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Si votre modèle recherché n&apos;est pas immédiatement disponible, notre équipe peut vous renseigner sur les possibilités de commande et les délais prévisionnels.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Pour les clients qui recherchent une moto bénéficiant d&apos;un prix intéressant, les opérations commerciales, les arrivages ou les modèles disponibles en stock peuvent également représenter une opportunité. Les offres et promotions évoluent au fil du temps : une ancienne recherche telle que « promotion moto neuve 2021 » peut correspondre à une campagne passée, mais les offres actuelles s
7137ont à consulter directement sur notre site.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Des prix et tarifs KTM clairement indiqués</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Le prix est naturellement un élément important dans le choix d&apos;une moto neuve. Chaque modèle proposé sur notre site dispose de ses propres caractéristiques et de son propre niveau d&apos;équipement.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Si vous souhaitez connaître le tarif KTM d&apos;un modèle précis, nous vous invitons à consulter sa fiche produit. Vous pourrez ainsi retrouver les informations disponibles concernant son prix et sa disponibilité.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Notre équipe reste également à votre disposition pour répondre à vos questions et vous accompagner dans votre choix. Le prix d&apos;une moto peut notamment dépendre du modèle, de la cylindrée, du millésime et des équipements proposés.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Livraison de votre moto KTM partout en France</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">La livraison des motos s&apos;effectue par Distribike, transporteur spécialisé dans la livraison des véhicules motorisés, partout en France.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Votre moto vous est livrée directement chez vous, prête à rouler. La mise en service est effectuée par nos mécaniciens et la carte grise vous est expédiée, sauf pour les modèles SX.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Le délai moyen de livraison est de 6 à 8 jours ouvrés, sous réserve de la disponibilité du véhicule et des conditions de transport.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Cette solution permet aux clients qui ne se trouvent pas à proximité de notre c
7137oncession de bénéficier eux aussi de notre sélection de motos KTM neuves.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Que vous soyez dans le Sud, dans le Nord, à l&apos;Est ou à l&apos;Ouest de la France, nous pouvons organiser la livraison de votre moto directement à votre domicile.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Pourquoi choisir Esprit KTM ?</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Esprit KTM est spécialisé dans la vente de motos KTM neuves et accompagne depuis de nombreuses années les passionnés de la marque dans leurs projets.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Notre concession située à Gap, dans les Hautes-Alpes, vous permet de bénéficier de l&apos;expertise d&apos;une équipe spécialisée KTM, que vous soyez à la recherche d&apos;une moto de route, d&apos;une Adventure, d&apos;une Enduro ou d&apos;une Motocross.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Nous vous accompagnons dans le choix de votre moto et pouvons vous renseigner sur les modèles, les disponibilités, les tarifs et les conditions de livraison.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Vous pouvez également nous contacter avant votre achat afin d&
7137apos;obtenir davantage d&apos;informations sur une moto présente sur notre site.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Le paiement s&apos;effectue par virement bancaire.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">A très vite, lâéquipe ESPRIT KTM !</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;">Pour plus de renseignements, contactez Julien ou Arthur au +33(0)492531931.</span></p><p><span style="font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-US;"></span></p><p><span style="font-size: 12.0pt; line-height: 115%; font-family: &apos;Calibri&apos;,sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-ansi-language: FR; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Déjà des milliers de motos neuves livrées en France.</span></p>`, 7138 }" 7139 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7140 :class="{ 7141 'text-primary-500 font-semibold': history.includes('category-node-1771') 7142 }"> 7143 <span 7144 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7145 <!-- DEBUG: Logo = EMPTY --> 7146 Motos Neuves </span> 7147 </a> 7148 </li> 7149 <li> 7150 <a 7151 href="https://www.esprit-ktm.com/carte-cadeau.html" 7152 role="link" 7153 x-element-transition-trigger:category.animate="{ 7154 'title': `Carte Cadeau`, 7155 'url': 'https://www.esprit-ktm.com/carte-cadeau.html', 7156 'breadcrumbs': [], 7157 'img': '', 7158 'description': `<p>Bienvenue dans la catégorie Carte Cadeau d&apos;Esprit-KTM, l&apos;option parfaite pour offrir à vos proches la liberté de choisir parmi notre collection KTM.</p><p>Les Cartes Cadeaux Esprit-KTM sont bien plus qu&apos;un simple présent ;
7158 elles sont une invitation à explorer l&apos;univers passionnant des deux-roues et à choisir le cadeau qui résonne le plus avec leur amour pour l&apos;aventure sur route.</p><p>Offrez la possibilité de découvrir la bagagerie, la collection bébé, les accessoires lifestyle ou pour la maison, des maquettes impeccables, des porte-clés élégants, des autocollants vibrants, des draisiennes pour les plus jeunes, ou tout autre trésor de notre gamme diversifiée. Nos Cartes Cadeaux offrent une flexibilité totale, permettant à leurs destinataires de choisir le cadeau qui fera battre leur cÅur de passionné de moto.</p><p>Les Cartes Cadeaux Esprit-KTM sont également une solution idéale pour ceux qui veulent garantir un cadeau mémorable sans risquer de se tromper dans leur choix. C&apos;est l&apos;assurance de faire plaisir en offrant la liberté de sélectionner le cadeau qui correspond parfaitement à leurs goûts et à leur style.</p>`, 7159 }" 7160 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7161 :class="{ 7162 'text-primary-500 font-semibold': history.includes('category-node-2218') 7163 }"> 7164 <span 7165 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7166 <!-- DEBUG: Logo = EMPTY --> 7167 Carte Cadeau </span> 7168 </a> 7169 </li> 7170 <li> 7171 <a 7172 href="https://www.esprit-ktm.com/nouveautes-2022.html" 7173 role="link" 7174 x-element-transition-trigger:category.animate="{ 7175 'title': `Nouveautés 2026`, 7176 'url': 'https://www.esprit-ktm.com/nouveautes-2022.html', 7177 'breadcrumbs': [], 7178 'img': '', 7179 'description': `<p><span class="">Plongez dans l&apos;univers exclusif des Nouveautés KTM 2026 - L&apos;excellence motarde à son paroxysme !</span></p><p><span class="">Esprit KTM vous présente sa collection </span></p><p><span class="">Lire la suite</span></p><p><span class="">ultra-performante, fruit de l&apos;alliance entre innovation technique et style racing inimitable. Chaque pièce raconte l&apos;histoire passionnante des pilotes Red Bull KTM, combinant technologie de pointe et design audacieux.</span></p><p><span class="">Une collection pensée pour les passionnés :</span></p><ul><li><span class="">Vêtements officiels reproduction team</span></li><li><span class="">Ãquipements haute technicité</span></li><li><span class="">Accessoires exclusifs</span></li><li><span class="">Style authentique Red Bull KTM<br><br></span></li></ul><p><span class="">Nos produits phares :<br></span>â T-shirts KTM Red Bull<br><span class="">â Sweats KTM Red Bull<br></span><span class="">â Casquettes officielles<br></span>â Bonnets collectors<br><span class="">â Vêtements enfants<br></span>â Accessoires premium</p><p><span class="">Conçue pour les motards exigeants, cette collection incarne l&apos;esprit de compétition et la performance. Du street wear au look racing, chaque détail a été pensé pour vous offrir le meilleur.</span></p><p><span class="">Points forts :</span></p><ul><li><span class="">Design inspiré des pilotes officiels</span></li><li><span class="">Qualité premium garantie</span></li><li><span class="">Technologies innovantes</span></li><li><span class="">Gamme complète homme/femme/enfant</span></li><li><span class="">Prix compétitifs<br><br></span></li></ul><p><span class="">Ne manquez pas cette opportunité unique de porter les couleurs de l&apos;écurie KTM Red Bull ! Choisissez votre style, affirmez votre passion.</span><span class=""><br><br>Stock limité - Commandez maintenant avant rupture !</span></p><p><span class="">Livraison rapide, satisfait ou remboursé.</span></p><p><span class="">Vivez l&apos;
7179expérience KTM, commandez maintenant !</span></p>`, 7180 }" 7181 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7182 :class="{ 7183 'text-primary-500 font-semibold': history.includes('category-node-2071') 7184 }"> 7185 <span 7186 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7187 <!-- DEBUG: Logo = EMPTY --> 7188 Nouveautés 2026 </span> 7189 </a> 7190 </li> 7191 <li> 7192 <a 7193 href="https://www.esprit-ktm.com/meilleures-vente-pieces-d-origine-ktm.html" 7194 role="link" 7195 x-element-transition-trigger:category.animate="{ 7196 'title': `Tops Ventes pièces d'origine KTM`, 7197 'url': 'https://www.esprit-ktm.com/meilleures-vente-pieces-d-origine-ktm.html', 7198 'breadcrumbs': [], 7199 'img': '', 7200 'description': `<p>Chez Esprit KTM, nous mettons à votre disposition une large gamme de pièces d&apos;origine pour entretenir et customiser votre moto KTM. Que vous recherchiez des filtres à air, des plaquettes de frein, de l&apos;huile moteur ou tout autre accessoire, vous trouverez forcément votre bonheur dans notre catalogue en ligne.</p><p>Notre sélection des meilleures ventes vous permet d&apos;accéder rapidement aux pièces les plus populaires auprès de notre clientèle. Fiez-vous à l&apos;expertise de la marque KTM pour maintenir votre machine dans un état irréprochable et bénéficier de ses performances d&apos;origine sur tous les terrains.</p><p>Profitez de notre expédition rapide et de notre service client attentionné pour commander vos pièces en toute confiance. Avec Esprit KTM, entretenir votre moto n&apos;a jamais été aussi simple ! Découvrez notre gamme complète de pièces d&apos;origine et accessoirisez votre bolide KTM selon vos envies.</p>`, 7201 }" 7202 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7203 :class="{ 7204 'text-primary-500 font-semibold': history.includes('category-node-3055') 7205 }"> 7206 <span 7207 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7208 <!-- DEBUG: Logo = EMPTY --> 7209 Tops Ventes pièces d'origine KTM </span> 7210 </a> 7211 </li> 7212 <li> 7213 <a 7214 href="https://www.esprit-ktm.com/bonnes-affaires-ktm-soldes-promotions.html" 7215 role="link" 7216 x-element-transition-trigger:category.animate="{ 7217 'title': `Promotions`, 7218 'url': 'https://www.esprit-ktm.com/bonnes-affaires-ktm-soldes-promotions.html', 7219 'breadcrumbs': [], 7220 'img': '', 7221 'description': `<p><span class="">Envie de vous offrir des produits KTM à des prix imbattables ? Bienvenue sur la page des meilleures promotions et soldes Esprit KTM !</span></p><p><span class="">Plongez dans un univers de réductions exclusives où passion et économies se rencontrent. Que vou
7221s soyez fan de moto, amateur de sport ou simplement à la recherche de vêtements et accessoires de qualité, notre sélection de promotions KTM vous garantit un rapport qualité-prix imbattable.</span></p><p><span class="">Nos promotions couvrent une large gamme de produits :</span></p><ul><li><span class="">Vêtements homme : t-shirts, polos, maillots, shorts, vestes</span></li><li><span class="">Vêtements femme : t-shirts, débardeurs adaptés à tous les styles</span></li><li><span class="">Vêtements enfants : t-shirts, sweats, body bébé, casquettes</span></li><li><span class="">Accessoires : sacs de sport, casquettes, bonnets, porte-documents</span></li></ul><p><span class="">Chaque article est soigneusement sélectionné pour vous offrir :</span></p><ul><li><span class="">Des designs originaux inspirés de l&apos;univers KTM</span></li><li><span class="">Une qualité premium</span></li><li><span class="">Des réductions significatives</span></li></ul><p><span class="">Points forts de nos promotions :<br></span>â Jusqu&apos;à -50% sur certains articles<br><span class="">â Livraison rapide <br>â Large choix de tailles <br>â Produits 100% officiels KTM</span></p><p><span class="">Pourquoi hésiter ? Foncez et profitez de ces offres exceptionnelles avant qu&apos;elles ne disparaissent ! Chaque pièce est un investissement malin pour les passionnés de moto et de sport.</span></p><p><span class="">Stock limité, ne tardez pas ! Cliquez, choisissez et économisez sur toute la collection KTM.</span></p>`, 7222 }" 7223 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7224 :class="{ 7225 'text-primary-500 font-semibold': history.includes('category-node-1772') 7226 }"> 7227 <span 7228 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7229 <!-- DEBUG: Logo = EMPTY --> 7230 Promotions </span> 7231 </a> 7232 </li> 7233 <li> 7234 <button 7235 x-a11y-trap-target.end="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'all'" 7236 class="menu__link group" 7237 @click="setHistory([...'all'.split(','), 'custom-link-1'])" 7238 :class="{ 'menu__link--active': history.includes('custom-link-1') }" 7239 role="button" 7240 :aria-expanded="history.includes('custom-link-1')"> 7241 <span class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7242 <!-- DEBUG: Logo = --> 7243 Tutos mécanique </span> 7244 <span class="text-xl transition-[color,transform] md:group-hover:-translate-x-3 md:group-hover:text-primary-600"> 7245 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 7246 <path d="M10.707 17.707 16.414 12l-5.707-5.707-1.414 1.414L13.586 12l-4.293 4.293z"/> 7247</svg> 7248 </span> 7249 </button> 7250 <template x-portal="document.getElementById('menu-sections')"> 7251 <div 7252 class="menu__level relative z-[100]" 7253 :class="{ 7254 'menu__level--current': history[history.length - 1] === 'custom-link-1', 7255 'menu__level--visible': history.includes('custom-link-1'), 7256 'menu__level--same-depth': 2 <= delayedLevel, 7257 'hidden': !$store.main.isMobile && !$store.resizable.isVisible('menu-desktop'), 7258 }" 7259 :inert="!history.includes('custom-link-1')" 7260 data-menu-level="custom-link-1"> 7261 <div class="menu__header"> 7262 <div class="menu__header-container p-2 md:flex md:flex-col"> 7263 7264 <button 7265 @click="history.pop()" 7266 type="button" 7267 aria-label="Revenir au menu précédent" 7268 class="menu__back-button py-3 motion-reduce:max-md:animate-none" 7269 :class="{ 7270 'menu__back-button--visible max-md:animate-slideIconIn motion-reduce:translate-x-0': history.length !== 1, 7271 'max-md:animate-slideIconOut motion-reduce:-translate-x-full': history.length == 1 7272 }" 7273 :tabindex="history.length === 1 ? -1 : 0" 7274 :aria-hidden="history.length === 1"> 7275 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 7276 <path d="M13.293 6.293 7.586 12l5.707 5.707 1.414-1.414L10.414 12l4.293-4.293z"/> 7277</svg> 7278 </button> 7279 7280 <h2 7281 class="menu__heading py-3 motion-reduce:max-md:animate-none" 7282 style="--translate-width: 52px;" 7283 :class="{ 7284 'menu__heading--root': 'custom-link-1' === 'all', 7285 'max-md:w-[calc(100%-var(--translate-width))]': 'custom-link-1' !== 'all', 7286 'max-md:animate-slideTitleIn motion-reduce:translate-x-[--translate-width]': history.length !== 1, 7287 'max-md:animate-slideTitleOut motion-reduce:translate-x-0': history.length == 1 7288 }" 7289 x-show="$store.main.isMobile || 'custom-link-1' !== 'all'"> 7290 Tutos mécanique </h2> 7291 7292 <div id="menu-actions-custom-link-1" class="md:mt-[6px] md:flex-none md:flex-row"></div> 7293 </div> 7294 <hr class="divider -mx-5 md:hidden"> 7295 </div> 7296 7297 <ul role="list" class="menu__links"> 7298 <li> 7299 <a 7300 x-a11y-trap-target.initial="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'custom-link-1'" 7301 href="/tutos-mecanique/v
7301ideo/changement-de-pneus" 7302 role="link" 7303 x-element-transition-trigger:category.animate="{ 7304 'title': `Changement de pneus`, 7305 'url': '/tutos-mecanique/video/changement-de-pneus', 7306 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7307 'img': '', 7308 'description': ``, 7309 }" 7310 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7311 :class="{ 7312 'text-primary-500 font-semibold': history.includes('custom-child-2') 7313 }"> 7314 <span 7315 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7316 <!-- DEBUG: Logo = --> 7317 Changement de pneus </span> 7318 </a> 7319 </li> 7320 <li> 7321 <a 7322 href="/tutos-mecanique/video/reglage-du-sag" 7323 role="link" 7324 x-element-transition-trigger:category.animate="{ 7325 'title': `Réglage du SAG`, 7326 'url': '/tutos-mecanique/video/reglage-du-sag', 7327 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7328 'img': '', 7329 'description': ``, 7330 }" 7331 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7332 :class="{ 7333 'text-primary-500 font-semibold': history.includes('custom-child-3') 7334 }"> 7335 <span 7336 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7337 <!-- DEBUG: Logo = --> 7338 Réglage du SAG </span> 7339 </a> 7340 </li> 7341 <li> 7342 <a 7343 href="/tutos-mecanique/video/vidange" 7344 role="link" 7345 x-element-transition-trigger:category.animate="{ 7346 'title': `Vidange`, 7347 'url': '/tutos-mecanique/video/vidange', 7348 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7349 'img': '', 7350 'description': ``, 7351 }" 7352 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7353 :class="{ 7354 'text-primary-500 font-semibold': history.includes('custom-child-4') 7355 }"> 7356 <span 7357 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7358 <!-- DEBUG: Logo = --> 7359 Vidange </span> 7360 </a> 7361 </li> 7362 <li> 7363 <a 7364 href="/tutos-mecanique/v
7364ideo/changement-pneu-et-bib-mousse" 7365 role="link" 7366 x-element-transition-trigger:category.animate="{ 7367 'title': `Changement pneu et Bib mousse`, 7368 'url': '/tutos-mecanique/video/changement-pneu-et-bib-mousse', 7369 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7370 'img': '', 7371 'description': ``, 7372 }" 7373 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7374 :class="{ 7375 'text-primary-500 font-semibold': history.includes('custom-child-5') 7376 }"> 7377 <span 7378 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7379 <!-- DEBUG: Logo = --> 7380 Changement pneu et Bib mousse </span> 7381 </a> 7382 </li> 7383 <li> 7384 <a 7385 href="/tutos-mecanique/video/verifier-les-serrages-de-sa-moto" 7386 role="link" 7387 x-element-transition-trigger:category.animate="{ 7388 'title': `Vérifier les serrages de sa moto`, 7389 'url': '/tutos-mecanique/video/verifier-les-serrages-de-sa-moto', 7390 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7391 'img': '', 7392 'description': ``, 7393 }" 7394 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7395 :class="{ 7396 'text-primary-500 font-semibold': history.includes('custom-child-6') 7397 }"> 7398 <span 7399 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7400 <!-- DEBUG: Logo = --> 7401 Vérifier les serrages de sa moto </span> 7402 </a> 7403 </li> 7404 <li> 7405 <a 7406 href="/tutos-mecanique/video/nettoyage-de-sa-moto" 7407 role="link" 7408 x-element-transition-trigger:category.animate="{ 7409 'title': `Nettoyage de sa moto`, 7410 'url': '/tutos-mecanique/video/nettoyage-de-sa-moto', 7411 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7412 'img': '', 7413 'description': ``, 7414 }" 7415 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7416 :class="{ 7417 'text-primary-500 font-semibold': history.includes('custom-child-7') 7418 }"> 7419 <span 7420 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7421 <!-- DEBUG: Logo = --> 7422 Nettoyage de sa moto </span> 7423 </a> 7424 </li> 7425 <li> 7426 <a 7427 href="/tutos-mecanique/v
7427ideo/diagnostic-de-panne" 7428 role="link" 7429 x-element-transition-trigger:category.animate="{ 7430 'title': `Diagnostic de panne`, 7431 'url': '/tutos-mecanique/video/diagnostic-de-panne', 7432 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7433 'img': '', 7434 'description': ``, 7435 }" 7436 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7437 :class="{ 7438 'text-primary-500 font-semibold': history.includes('custom-child-8') 7439 }"> 7440 <span 7441 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7442 <!-- DEBUG: Logo = --> 7443 Diagnostic de panne </span> 7444 </a> 7445 </li> 7446 <li> 7447 <a 7448 href="/tutos-mecanique/video/guidon" 7449 role="link" 7450 x-element-transition-trigger:category.animate="{ 7451 'title': `Guidon`, 7452 'url': '/tutos-mecanique/video/guidon', 7453 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7454 'img': '', 7455 'description': ``, 7456 }" 7457 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7458 :class="{ 7459 'text-primary-500 font-semibold': history.includes('custom-child-9') 7460 }"> 7461 <span 7462 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7463 <!-- DEBUG: Logo = --> 7464 Guidon </span> 7465 </a> 7466 </li> 7467 <li> 7468 <a 7469 href="/tutos-mecanique/video/nettoyer-son-casque-efficacement" 7470 role="link" 7471 x-element-transition-trigger:category.animate="{ 7472 'title': `Nettoyer son casque efficacement`, 7473 'url': '/tutos-mecanique/video/nettoyer-son-casque-efficacement', 7474 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7475 'img': '', 7476 'description': ``, 7477 }" 7478 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7479 :class="{ 7480 'text-primary-500 font-semibold': history.includes('custom-child-10') 7481 }"> 7482 <span 7483 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7484 <!-- DEBUG: Logo = --> 7485 Nettoyer son casque efficacement </span> 7486 </a> 7487 </li> 7488 <li> 7489 <a 7490 href="/tutos-mecanique/v
7490ideo/nettoyage-joint-spi" 7491 role="link" 7492 x-element-transition-trigger:category.animate="{ 7493 'title': `Nettoyage joint Spi`, 7494 'url': '/tutos-mecanique/video/nettoyage-joint-spi', 7495 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7496 'img': '', 7497 'description': ``, 7498 }" 7499 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7500 :class="{ 7501 'text-primary-500 font-semibold': history.includes('custom-child-11') 7502 }"> 7503 <span 7504 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7505 <!-- DEBUG: Logo = --> 7506 Nettoyage joint Spi </span> 7507 </a> 7508 </li> 7509 <li> 7510 <a 7511 href="/tutos-mecanique/video/changement-de-pneus-avec-machine" 7512 role="link" 7513 x-element-transition-trigger:category.animate="{ 7514 'title': ` Changement de pneus avec machine`, 7515 'url': '/tutos-mecanique/video/changement-de-pneus-avec-machine', 7516 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7517 'img': '', 7518 'description': ``, 7519 }" 7520 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7521 :class="{ 7522 'text-primary-500 font-semibold': history.includes('custom-child-12') 7523 }"> 7524 <span 7525 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7526 <!-- DEBUG: Logo = --> 7527 Changement de pneus avec machine </span> 7528 </a> 7529 </li> 7530 <li> 7531 <a 7532 href="/tutos-mecanique/video/controler-le-jeu-aux-soupapes" 7533 role="link" 7534 x-element-transition-trigger:category.animate="{ 7535 'title': `Contrôler le jeu aux soupapes`, 7536 'url': '/tutos-mecanique/video/controler-le-jeu-aux-soupapes', 7537 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7538 'img': '', 7539 'description': ``, 7540 }" 7541 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7542 :class="{ 7543 'text-primary-500 font-semibold': history.includes('custom-child-13') 7544 }"> 7545 <span 7546 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7547 <!-- DEBUG: Logo = --> 7548 Contrôler le jeu aux soupapes </span> 7549 </a> 7550 </li> 7551 <li> 7552 <a 7553 href="/tutos-mecanique/v
7553ideo/entretien-roulements-de-bras-oscillant" 7554 role="link" 7555 x-element-transition-trigger:category.animate="{ 7556 'title': `Entretien roulements de bras oscillant`, 7557 'url': '/tutos-mecanique/video/entretien-roulements-de-bras-oscillant', 7558 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7559 'img': '', 7560 'description': ``, 7561 }" 7562 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7563 :class="{ 7564 'text-primary-500 font-semibold': history.includes('custom-child-14') 7565 }"> 7566 <span 7567 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7568 <!-- DEBUG: Logo = --> 7569 Entretien roulements de bras oscillant </span> 7570 </a> 7571 </li> 7572 <li> 7573 <a 7574 href="/tutos-mecanique/video/remplacer-son-embrayage" 7575 role="link" 7576 x-element-transition-trigger:category.animate="{ 7577 'title': `Remplacer son embrayage`, 7578 'url': '/tutos-mecanique/video/remplacer-son-embrayage', 7579 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7580 'img': '', 7581 'description': ``, 7582 }" 7583 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7584 :class="{ 7585 'text-primary-500 font-semibold': history.includes('custom-child-15') 7586 }"> 7587 <span 7588 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7589 <!-- DEBUG: Logo = --> 7590 Remplacer son embrayage </span> 7591 </a> 7592 </li> 7593 <li> 7594 <a 7595 href="/tutos-mecanique/video/bien-choisir-son-ressort-damortisseurs" 7596 role="link" 7597 x-element-transition-trigger:category.animate="{ 7598 'title': `Bien choisir son ressort d'amortisseurs`, 7599 'url': '/tutos-mecanique/video/bien-choisir-son-ressort-damortisseurs', 7600 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7601 'img': '', 7602 'description': ``, 7603 }" 7604 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7605 :class="{ 7606 'text-primary-500 font-semibold': history.includes('custom-child-16') 7607 }"> 7608 <span 7609 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7610 <!-- DEBUG: Logo = --> 7611 Bien choisir son ressort d'amortisseurs </span> 7612 </a> 7613 </li> 7614 <li> 7615 <a 7616 href="/tutos-mecanique/v
7616ideo/cable-de-gaz" 7617 role="link" 7618 x-element-transition-trigger:category.animate="{ 7619 'title': `Câble de gaz`, 7620 'url': '/tutos-mecanique/video/cable-de-gaz', 7621 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7622 'img': '', 7623 'description': ``, 7624 }" 7625 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7626 :class="{ 7627 'text-primary-500 font-semibold': history.includes('custom-child-17') 7628 }"> 7629 <span 7630 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7631 <!-- DEBUG: Logo = --> 7632 Câble de gaz </span> 7633 </a> 7634 </li> 7635 <li> 7636 <a 7637 href="/tutos-mecanique/video/affaires-de-moto" 7638 role="link" 7639 x-element-transition-trigger:category.animate="{ 7640 'title': `Affaires de moto`, 7641 'url': '/tutos-mecanique/video/affaires-de-moto', 7642 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7643 'img': '', 7644 'description': ``, 7645 }" 7646 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7647 :class="{ 7648 'text-primary-500 font-semibold': history.includes('custom-child-18') 7649 }"> 7650 <span 7651 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7652 <!-- DEBUG: Logo = --> 7653 Affaires de moto </span> 7654 </a> 7655 </li> 7656 <li> 7657 <a 7658 href="/tutos-mecanique/video/kit-deco" 7659 role="link" 7660 x-element-transition-trigger:category.animate="{ 7661 'title': `Kit deco`, 7662 'url': '/tutos-mecanique/video/kit-deco', 7663 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7664 'img': '', 7665 'description': ``, 7666 }" 7667 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7668 :class="{ 7669 'text-primary-500 font-semibold': history.includes('custom-child-19') 7670 }"> 7671 <span 7672 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7673 <!-- DEBUG: Logo = --> 7674 Kit deco </span> 7675 </a> 7676 </li> 7677 <li> 7678 <a 7679 href="/tutos-mecanique/v
7679ideo/purge-de-freins-et-dembrayage" 7680 role="link" 7681 x-element-transition-trigger:category.animate="{ 7682 'title': `Purge de freins et d'embrayage`, 7683 'url': '/tutos-mecanique/video/purge-de-freins-et-dembrayage', 7684 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7685 'img': '', 7686 'description': ``, 7687 }" 7688 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7689 :class="{ 7690 'text-primary-500 font-semibold': history.includes('custom-child-20') 7691 }"> 7692 <span 7693 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7694 <!-- DEBUG: Logo = --> 7695 Purge de freins et d'embrayage </span> 7696 </a> 7697 </li> 7698 <li> 7699 <a 7700 href="/tutos-mecanique/video/changement-des-roulements-de-roue" 7701 role="link" 7702 x-element-transition-trigger:category.animate="{ 7703 'title': `Changement des roulements de roue`, 7704 'url': '/tutos-mecanique/video/changement-des-roulements-de-roue', 7705 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7706 'img': '', 7707 'description': ``, 7708 }" 7709 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7710 :class="{ 7711 'text-primary-500 font-semibold': history.includes('custom-child-21') 7712 }"> 7713 <span 7714 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7715 <!-- DEBUG: Logo = --> 7716 Changement des roulements de roue </span> 7717 </a> 7718 </li> 7719 <li> 7720 <a 7721 href="/tutos-mecanique/video/les-5-tips-de-benji-melot" 7722 role="link" 7723 x-element-transition-trigger:category.animate="{ 7724 'title': `Les 5 tips de Benji Melot`, 7725 'url': '/tutos-mecanique/video/les-5-tips-de-benji-melot', 7726 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7727 'img': '', 7728 'description': ``, 7729 }" 7730 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7731 :class="{ 7732 'text-primary-500 font-semibold': history.includes('custom-child-22') 7733 }"> 7734 <span 7735 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7736 <!-- DEBUG: Logo = --> 7737 Les 5 tips de Benji Melot </span> 7738 </a> 7739 </li> 7740 <li> 7741 <a 7742 href="/tutos-mecanique/v
7742ideo/les-7-taches-apres-chaque-roulage" 7743 role="link" 7744 x-element-transition-trigger:category.animate="{ 7745 'title': `Les 7 tâches après chaque roulage`, 7746 'url': '/tutos-mecanique/video/les-7-taches-apres-chaque-roulage', 7747 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7748 'img': '', 7749 'description': ``, 7750 }" 7751 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7752 :class="{ 7753 'text-primary-500 font-semibold': history.includes('custom-child-23') 7754 }"> 7755 <span 7756 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7757 <!-- DEBUG: Logo = --> 7758 Les 7 tâches après chaque roulage </span> 7759 </a> 7760 </li> 7761 <li> 7762 <a 7763 href="/tutos-mecanique/video/outillage" 7764 role="link" 7765 x-element-transition-trigger:category.animate="{ 7766 'title': `Outillage`, 7767 'url': '/tutos-mecanique/video/outillage', 7768 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7769 'img': '', 7770 'description': ``, 7771 }" 7772 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7773 :class="{ 7774 'text-primary-500 font-semibold': history.includes('custom-child-24') 7775 }"> 7776 <span 7777 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7778 <!-- DEBUG: Logo = --> 7779 Outillage </span> 7780 </a> 7781 </li> 7782 <li> 7783 <a 7784 href="/tutos-mecanique/video/plaquettes" 7785 role="link" 7786 x-element-transition-trigger:category.animate="{ 7787 'title': `Plaquettes`, 7788 'url': '/tutos-mecanique/video/plaquettes', 7789 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7790 'img': '', 7791 'description': ``, 7792 }" 7793 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7794 :class="{ 7795 'text-primary-500 font-semibold': history.includes('custom-child-25') 7796 }"> 7797 <span 7798 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7799 <!-- DEBUG: Logo = --> 7800 Plaquettes </span> 7801 </a> 7802 </li> 7803 <li> 7804 <a 7805 href="/tutos-mecanique/v
7805ideo/la-moto-de-rallye" 7806 role="link" 7807 x-element-transition-trigger:category.animate="{ 7808 'title': `La moto de rallye`, 7809 'url': '/tutos-mecanique/video/la-moto-de-rallye', 7810 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7811 'img': '', 7812 'description': ``, 7813 }" 7814 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7815 :class="{ 7816 'text-primary-500 font-semibold': history.includes('custom-child-26') 7817 }"> 7818 <span 7819 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7820 <!-- DEBUG: Logo = --> 7821 La moto de rallye </span> 7822 </a> 7823 </li> 7824 <li> 7825 <a 7826 href="/tutos-mecanique/video/nettoyage-du-filtre-a-air" 7827 role="link" 7828 x-element-transition-trigger:category.animate="{ 7829 'title': `Nettoyage du filtre à air`, 7830 'url': '/tutos-mecanique/video/nettoyage-du-filtre-a-air', 7831 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7832 'img': '', 7833 'description': ``, 7834 }" 7835 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7836 :class="{ 7837 'text-primary-500 font-semibold': history.includes('custom-child-27') 7838 }"> 7839 <span 7840 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7841 <!-- DEBUG: Logo = --> 7842 Nettoyage du filtre à air </span> 7843 </a> 7844 </li> 7845 <li> 7846 <a 7847 href="/tutos-mecanique/video/installation-dun-ventilateur" 7848 role="link" 7849 x-element-transition-trigger:category.animate="{ 7850 'title': `Installation d'un ventilateur`, 7851 'url': '/tutos-mecanique/video/installation-dun-ventilateur', 7852 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7853 'img': '', 7854 'description': ``, 7855 }" 7856 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7857 :class="{ 7858 'text-primary-500 font-semibold': history.includes('custom-child-28') 7859 }"> 7860 <span 7861 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7862 <!-- DEBUG: Logo = --> 7863 Installation d'un ventilateur </span> 7864 </a> 7865 </li> 7866 <li> 7867 <a 7868 href="/tutos-mecanique/v
7868ideo/remplacement-de-kits-chaine" 7869 role="link" 7870 x-element-transition-trigger:category.animate="{ 7871 'title': `Remplacement de Kits chaîne`, 7872 'url': '/tutos-mecanique/video/remplacement-de-kits-chaine', 7873 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7874 'img': '', 7875 'description': ``, 7876 }" 7877 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7878 :class="{ 7879 'text-primary-500 font-semibold': history.includes('custom-child-29') 7880 }"> 7881 <span 7882 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7883 <!-- DEBUG: Logo = --> 7884 Remplacement de Kits chaîne </span> 7885 </a> 7886 </li> 7887 <li> 7888 <a 7889 href="/tutos-mecanique/video/entretenir-les-roulements-de-direction" 7890 role="link" 7891 x-element-transition-trigger:category.animate="{ 7892 'title': `Entretenir les roulements de direction`, 7893 'url': '/tutos-mecanique/video/entretenir-les-roulements-de-direction', 7894 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7895 'img': '', 7896 'description': ``, 7897 }" 7898 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7899 :class="{ 7900 'text-primary-500 font-semibold': history.includes('custom-child-30') 7901 }"> 7902 <span 7903 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7904 <!-- DEBUG: Logo = --> 7905 Entretenir les roulements de direction </span> 7906 </a> 7907 </li> 7908 <li> 7909 <a 7910 href="/tutos-mecanique/video/entretien-toutes-les-15h-de-sa-moto" 7911 role="link" 7912 x-element-transition-trigger:category.animate="{ 7913 'title': `Entretien toutes les 15H de sa moto`, 7914 'url': '/tutos-mecanique/video/entretien-toutes-les-15h-de-sa-moto', 7915 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7916 'img': '', 7917 'description': ``, 7918 }" 7919 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7920 :class="{ 7921 'text-primary-500 font-semibold': history.includes('custom-child-31') 7922 }"> 7923 <span 7924 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7925 <!-- DEBUG: Logo = --> 7926 Entretien toutes les 15H de sa moto </span> 7927 </a> 7928 </li> 7929 <li> 7930 <a 7931 href="/tutos-mecanique/v
7931ideo/changement-du-piston" 7932 role="link" 7933 x-element-transition-trigger:category.animate="{ 7934 'title': `Changement du piston`, 7935 'url': '/tutos-mecanique/video/changement-du-piston', 7936 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7937 'img': '', 7938 'description': ``, 7939 }" 7940 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7941 :class="{ 7942 'text-primary-500 font-semibold': history.includes('custom-child-32') 7943 }"> 7944 <span 7945 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7946 <!-- DEBUG: Logo = --> 7947 Changement du piston </span> 7948 </a> 7949 </li> 7950 <li> 7951 <a 7952 href="/tutos-mecanique/video/roulements-de-direction" 7953 role="link" 7954 x-element-transition-trigger:category.animate="{ 7955 'title': `ROULEMENTS DE DIRECTION`, 7956 'url': '/tutos-mecanique/video/roulements-de-direction', 7957 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7958 'img': '', 7959 'description': ``, 7960 }" 7961 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7962 :class="{ 7963 'text-primary-500 font-semibold': history.includes('custom-child-33') 7964 }"> 7965 <span 7966 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7967 <!-- DEBUG: Logo = --> 7968 ROULEMENTS DE DIRECTION </span> 7969 </a> 7970 </li> 7971 <li> 7972 <a 7973 href="/tutos-mecanique/video/entretien-kit-chaine" 7974 role="link" 7975 x-element-transition-trigger:category.animate="{ 7976 'title': `Entretien kit chaîne`, 7977 'url': '/tutos-mecanique/video/entretien-kit-chaine', 7978 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 7979 'img': '', 7980 'description': ``, 7981 }" 7982 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 7983 :class="{ 7984 'text-primary-500 font-semibold': history.includes('custom-child-34') 7985 }"> 7986 <span 7987 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 7988 <!-- DEBUG: Logo = --> 7989 Entretien kit chaîne </span> 7990 </a> 7991 </li> 7992 <li> 7993 <a 7994 x-a11y-trap-target.end="$store.resizable.isVisible('menu-desktop') && !$store.main.isMobile && history.length > 0 && history[history.length - 1] === 'custom-link-1'" 7995 href="/tutos-mecanique/v
7995ideo/presentation-ktm-450-rally-replica-2025" 7996 role="link" 7997 x-element-transition-trigger:category.animate="{ 7998 'title': `Présentation KTM 450 Rally Replica 2025`, 7999 'url': '/tutos-mecanique/video/presentation-ktm-450-rally-replica-2025', 8000 'breadcrumbs': [{"title":"Tutos m\u00e9canique","url":"\/tutos"}], 8001 'img': '', 8002 'description': ``, 8003 }" 8004 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 8005 :class="{ 8006 'text-primary-500 font-semibold': history.includes('custom-child-35') 8007 }"> 8008 <span 8009 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600"> 8010 <!-- DEBUG: Logo = --> 8011 Présentation KTM 450 Rally Replica 2025 </span> 8012 </a> 8013 </li> 8014 </ul> 8015 8016 <div class="h-20 md:hidden"></div> 8017 <template 8018 x-portal="$store.main.isMobile ? document.getElementById('popup-fixed-content-portal') : document.getElementById('menu-actions-custom-link-1')"> 8019 <div 8020 class="bg-bg-500 px-4 pb-2 transition-colors duration-200 md:bg-transparent md:hover:text-primary-600 md:p-0" 8021 x-transition.opacity 8022 x-show="$store.main.isMobile ? history[history.length - 1] === 'custom-link-1' && !getIsSearchActive() : history.includes('custom-link-1')" 8023 role="link"> 8024 <a 8025 x-element-transition-trigger 8026 class="button bg-white border border-primary-500 text-primary-500 w-full hover:bg-primary-500 hover:text-white hover:scale-105 transition-all duration-200" 8027 href="/tutos"> 8028 <template x-if="$store.main.isMobile"> 8029 <span>Tout voir <span class="lowercase">Tutos mécanique</span></span> 8030 </template> 8031 <template x-if="!$store.main.isMobile"> 8032 <span class="flex items-center text-center capitalize"> 8033 <span class='border-current'> 8034 Tout voir <br /> 8035 <span>Tutos mécanique</span> 8036 </span> 8037 </span> 8038 </template> 8039 </a> 8040 </div> 8041 </template> 8042 </div> 8043 </template> 8044 </li> 8045 </ul> 8046 8047 <div class="h-20 md:hidden"></div> 8048 </div> 8049 </div> 8050</nav> 8051 </div> 8052 </template> 8053 </template> 8054</div> 8055 8056 8057 8058 8059<div 8060 class="contents" 8061 x-init=" 8062 $store.popup._registerPopup({ 8063 id: 'account', 8064 isFocused: true, 8065 isFullScreen: true, 8066 isAlwaysVisible: false, 8067 isPreventOverlayClose: false }); 8068 " 8069> 8070 <template x-portal="$store.main.isMobile ? document.getElementById('popup-content-portal') : document.getElementById('account-desktop')"> 8071 <template x-if="$store.main.isMobile ? $store.popup._nextPopup === 'account' : true"> 8072 <div 8073 class="contents " 8074 id="account" 8075 > 8076 <!-- BLOCK account\customer_0 --> 8077<div 8078 :inert="$store.main.isMobile ? $store.popup.currentPopup !== 'account' : !$store.resizable.isVisible('account-desktop')" 8079 class="contents"> 8080 <div 8081 class="flex flex-col gap-5 rounded-md p-5 md:w-[--account-width] bg-bg-500 md:gap-0 md:px-0 md:py-0 max-md:py-0 [.popup\_\_main_&]:px-2"> 8082 <div 8083 class="flex items-center justify-between bg-bg-500 md:h md:pt-5 md:pb-4 md:px-6 md:h-[--initial-height] md:min-
8083h-14 md:rounded-md sticky top-0 z-20"> 8084 <h2 class="flex items-center text-lg text-text-500 md:text-md md:pl-2 md:pr-[10px] md:py-3"> 8085 <span class="button__icon mr-4 text-[1.5rem] max-md:hidden"> 8086 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 8087 <path d="M12.004 2a5 5 0 1 0 0 10 5 5 0 0 0 0-10Zm0 8a3 3 0 1 1 0-6 3 3 0 0 1 0 6Zm9 11v-1a7 7 0 0 0-7-7h-4a7 7 0 0 0-7 7v1h2v-1a5 5 0 0 1 5-5h4a5 5 0 0 1 5 5v1h2Z"/> 8088</svg> 8089 </span> 8090 8091 Compte </h2> 8092 </div> 8093 8094 <div class="max-h-80 pb-4 md:pt-2 md:px-6"> 8095 <template x-if="$store.main.isUserLoggedIn"> 8096 <div class="flex flex-col gap-3"> 8097 8098 <a 8099 x-element-transition-trigger 8100 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 8101 href="https://www.esprit-ktm.com/customer/account/" 8102 role="link" 8103 > 8104 <span 8105 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600" 8106 > 8107 Mon compte </span> 8108 </a> 8109 8110<a 8111 x-element-transition-trigger 8112 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1 relative" 8113 href="https://www.esprit-ktm.com/wishlist/" 8114 role="link" 8115 x-data="{ itemCount: 0 }" 8116 @private-content-loaded.window="itemCount = parseInt($event.detail.data.wishlist.counter)" 8117> 8118 <span 8119 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600" 8120 > 8121 Ma liste d'achats <template x-if="itemCount"> 8122 <span class="tabular-nums" x-text="`(${itemCount})`"></span> 8123 </template> 8124 </span> 8125</a> 8126 8127 <a 8128 x-element-transition-trigger 8129 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 8130 href="https://www.esprit-ktm.com/sales/order/history/" 8131 role="link" 8132 > 8133 <span 8134 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600" 8135 > 8136 Mes commandes </span> 8137 </a> 8138 8139 <a 8140 x-element-transition-trigger 8141 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 8142 href="https://www.esprit-ktm.com/customer/address/" 8143 role="link" 8144 > 8145 <span 8146 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600" 8147 > 8148 Carnet d'adresses </span> 8149 </a> 8150 8151<span id="customer.header.sign.out.delimiter" 8152 class="delimiter block border-b border-container w-full my-2" 8153></span> 8154 8155 <a 8156 x-element-transition-trigger 8157 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 8158 href="https://www.esprit-ktm.com/customer/account/logout/" 8159 role="link" 8160 > 8161 <span 8162 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600" 8163 > 8164 Déconnexion </span> 8165 </a> 8166 </div> 8167 </template> 8168 8169 <template x-if="!$store.main.isUserLoggedIn"> 8170 <div class="flex flex-col gap-3"> 8171 8172<a 8173 x-element-transition-trigger 8174 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 8175 onclick="hyva.setCookie && hyva.setCookie( 8176 'login_redirect', 8177 window.location.href, 8178 1 8179 )" 8180 href="https://www.esprit-ktm.com/customer/account/index/" 8181 role="link" 8182> 8183 <span 8184 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600" 8185 > 8186 Se connecter </span> 8187</a> 8188 8189 <a 8190 x-element-transition-trigger 8191 class="focus-visible:focus-ring group flex min-h-11 items-center justify-between py-1" 8192 href="https://www.esprit-ktm.com/customer/account/create/" 8193 role="link" 8194 >
8195 <span 8196 class="link max-w-full truncate border-transparent transition-colors md:group-hover:border-b-1 md:group-hover:border-current md:group-hover:text-primary-600" 8197 > 8198 Créer un compte </span> 8199 </a> 8200 </div> 8201 </template> 8202 </div> 8203 </div> 8204</div><!-- /BLOCK account\customer_0 --> </div> 8205 </template> 8206 </template> 8207</div> 8208 8209 8210<div 8211 class="contents" 8212 x-init=" 8213 $store.popup._registerPopup({ 8214 id: 'cart', 8215 isFocused: true, 8216 isFullScreen: true, 8217 isAlwaysVisible: false, 8218 isPreventOverlayClose: false }); 8219 " 8220> 8221 <template x-portal="$store.main.isMobile ? document.getElementById('popup-content-portal') : document.getElementById('cart-desktop')"> 8222 <template x-if="$store.main.isMobile ? $store.popup._nextPopup === 'cart' : true"> 8223 <div 8224 class="contents " 8225 id="cart" 8226 > 8227 8228<div 8229 :inert="$store.main.isMobile ? $store.popup.currentPopup !== 'cart' : !$store.resizable.isVisible('cart-desktop')" 8230 x-data="{ 8231 get cartItems() { return $store.cart.cartItems }, 8232 get isCartEmpty() { return !$store.cart.cartItems.length }, 8233 get isRemoveContent() { return !$store.cart.cartItems.length }, 8234 isTotalsExpanded: false 8235 }" 8236 class="contents"> 8237 <div 8238 class="flex flex-col gap-5 rounded-md p-5 md:w-[--minicart-width] bg-bg-500 md:gap-0 md:px-0 md:py-0 max-md:py-0 [.popup\_\_main_&]:px-2"> 8239 <div 8240 class="flex items-center justify-between bg-bg-500 md:h-[--initial-height] md:min-h-14 md:rounded-md md:pt-5 md:pb-4 md:px-6 sticky top-0 z-20"> 8241 <h2 class="flex items-center t 8242 ext-lg text-text-500 md:pl-2 md:pr-[10px] md:py-3 md:text-md"> 8243 <span class="button__icon mr-4 text-[1.5rem] max-md:hidden"> 8244 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 8245 <path d="M5 22h14c1.103 0 2-.897 2-2V9a1 1 0 0 0-1-1h-3V7c0-2.757-2.243-5-5-5S7 4.243 7 7v1H4a1 1 0 0 0-1 1v11c0 1.103.897 2 2 2zM9 7c0-1.654 1.346-3 3-3s3 1.346 3 3v1H9V7zm-4 3h2v2h2v-2h6v2h2v-2h2l.002 10H5V10z"> 8246 </path> 8247</svg> 8248 </span> 8249 8250 Panier d'achat </h2> 8251 <template x-if="!isCartEmpty"> 8252 <div 8253 class="delay-800 mr-1 flex justify-center align-middle transition-all duration-300 " 8254 :class="{'opacity-0': isCartEmpty}"> 8255 <a 8256 href="https://www.esprit-ktm.com/checkout/cart/" 8257 x-element-transition-trigger 8258 class="link link--ghost"> 8259 Voir le panier <span 8260 x-text="`(${cartItems.reduce((total, item) => total + Number(item.qty), 0)})`" 8261 class="mr-1"></span> 8262 </a> 8263 </div> 8264 </template> 8265 </div> 8266 8267 <div 8268 class="max-h-0 pb-0 opacity-0" 8269 :class="{ 8270 'opacity-0 max-h-0 pb-0': !isCartEmpty, 8271 'opacity-1 max-h-80 pb-4 md:px-6': isCartEmpty, 8272 'hidden': !isRemoveContent 8273 }" 8274 x-init=" 8275 $watch('$store.popup.currentPopup', (value) => { 8276 isCartVisible = value === 'cart'; 8277 }) 8278 "> 8279 <p> 8280 Vous n'avez pas encore ajouté de produits au panier ! </p> 8281 <a aria-label="Retourner à la boutique" 8282 class="button button--filled-primary w-full md:hidden mt-4" 8283 href="#" 8284 @click.prevent="!isCartVisible ? $store.cart.showCart() : $store.cart.hideCart()"> 8285 <span>Retourner à la boutique</span> 8286 </a> 8287 </div> 8288 <div 8289 class=" transition-opacity duration-300" 8290 :class="{ 8291 'opacity-0': isCartEmpty, 8292 'opacity-1': !isCartEmpty, 8293 'hidden': isRemoveContent 8294 }" 8295 @transitionend="isRemoveContent = isCartEmpty"> 8296 <div class="contents "> 8297
8298<script> 8299 // var (not const): this template can be injected more than once per page (section reloads / 8300 // preview transitions) â a top-level const would throw "already been declared". 8301 var queryName = "productCustomDataEsprit"; 8302 var stockAttr = "ham_stock"; 8303 var dateAttr = "ham_date"; 8304 8305 function graphQlCart() { 8306 return { 8307 loadingGraph: false, 8308 productData: {}, 8309 _intervalId: null, 8310 8311 init($watch) { 8312 this.loadCache(); 8313 this.updateHamData(this.cartItems || []); 8314 8315 // Watch Alpine cartItems 8316 if (typeof $watch === 'function') { 8317 $watch('cartItems', value => this.updateHamData(value)) 8318 } else { 8319 this.$nextTick(() => this.updateHamData(this.cartItems)); 8320 } 8321 8322 // Refresher périodique toutes les 1 heures 8323 const hours = 3600000; 8324 this._intervalId = setInterval(() => { 8325 console.debug("ð - Cart Refresher"); 8326 const cartSkus = (this.cartItems || []).map(i => i.product_sku); 8327 const needRefresh = cartSkus.some(sku => this.isExpired(this.productData[sku])); 8328 if (needRefresh) this.updateHamData(this.cartItems); 8329 }, hours); 8330 8331 this.$nextTick(() => { 8332 this.$el.addEventListener('alpine:destroy', () => clearInterval(this._intervalId)); 8333 }); 8334 }, 8335 8336 /* ---------------- Cache ---------------- */ 8337 loadCache() { 8338 try { 8339 this.productData = JSON.parse(localStorage.getItem('mini_productData') || '{}'); 8340 } catch { 8341 this.productData = {}; 8342 } 8343 }, 8344 saveCache() { 8345 try { 8346 localStorage.setItem('mini_productData', JSON.stringify(this.productData)); 8347 } catch {} 8348 }, 8349 isExpired(entry) { 8350 return !entry || !entry.fetchedAt || ((Date.now() / 1000 - entry.fetchedAt) > 3600); 8351 }, 8352 8353 /* ---------------- Fetch GraphQL ---------------- */ 8354 async fetchAvailability(skusToFetch) { 8355 if (!skusToFetch.length || this.loadingGraph) return; 8356 this.loadingGraph = true; 8357 8358 const query = ` 8359 { 8360 ${queryName}(skus: ${JSON.stringify(skusToFetch)}) { 8361 sku 8362 ${stockAttr} 8363 ${dateAttr} 8364 salable_qty 8365 special_from_date 8366 special_to_date 8367 news_from_date 8368 news_to_date 8369 regular_price 8370 final_price 8371 } 8372 } 8373 `; 8374 8375 try { 8376 const res = await fetch('/graphql', { 8377 method: 'POST', 8378 headers: { 8379 'Content-Type': 'application/json', 8380 "Store": CURRENT_STORE_CODE || "esprit_motoshop_fr" 8381 }, 8382 body: JSON.stringify({ 8383 query 8384 }) 8385 }); 8386 const json = await res.json(); 8387 8388 if (json.data?.[queryName]?.length) { 8389 json.data[queryName].forEach(prod => { 8390 this.productData[prod.sku] = { 8391 ...prod, 8392 fetchedAt: Math.floor(Date.now() / 1000), 8393 product_hamDispo: this.calcHamData(prod), 8394 product_news: this.calcNews(prod), 8395 product_special: { 8396 from: prod.special_from_date, 8397 to: prod.special_to_date, 8398 percentage: (prod.regular_price && prod.final_price && prod.regular_price > 0) ? 8399 Math.round((prod.regular_price - prod.final_price) * 100 / prod.regular_price) : 0, 8400 } 8401 }; 8402 }); 8403 8404 // Mettre à jour immédiatement les items
8405 this.saveCache(); 8406 } 8407 } catch (e) { 8408 console.error('GraphQL fetch error', e); 8409 } finally { 8410 this.loadingGraph = false; 8411 } 8412 }, 8413 8414 /* ---------------- Calcul des données ---------------- */ 8415 updateHamData(cartItems) { 8416 if (!cartItems?.length) return; 8417 8418 const skusToFetch = []; 8419 cartItems.forEach(item => { 8420 const data = this.productData[item.product_sku]; 8421 if (this.isExpired(data)) { 8422 skusToFetch.push(item.product_sku); 8423 } 8424 }); 8425 8426 if (skusToFetch.length) this.fetchAvailability(skusToFetch); 8427 }, 8428 calcHamData(data) { 8429 // rawStatus mirrors Ham\Catalog\Helper\Dispo::getDispo() so the 8430 // availability pill renders with the exact same colors/labels as 8431 // the category listing pastilles. 8432 let rawStatus = 'standard', 8433 delais = 'bg-green-300', 8434 delaisLabel = "5/6 jours", 8435 display = ''; 8436 8437 if (data.salable_qty > 0) { 8438 rawStatus = 'instock'; 8439 delais = 'bg-green-300'; 8440 delaisLabel = "48H"; 8441 } else if (data[stockAttr] == 25339) { 8442 rawStatus = 'standard'; 8443 delais = 'bg-green-300'; 8444 delaisLabel = "5/6 jours"; 8445 } else if (data[stockAttr] == 25340) { 8446 rawStatus = 'delais'; 8447 delais = 'bg-yellow-300'; 8448 delaisLabel = data[dateAttr] ? this.cleanHamDate(data[dateAttr]) : "Délais rallongés"; 8449 } else if (data[stockAttr] == 27658) { 8450 rawStatus = 'unavailable'; 8451 delais = 'bg-red-300'; 8452 delaisLabel = "Non disponible"; 8453 } 8454 8455 return { 8456 rawStatus, 8457 delais, 8458 delaisLabel, 8459 display 8460 }; 8461 }, 8462 calcNews(data) { 8463 if (!data.news_from_date || !data.news_to_date) return false; 8464 const now = new Date(); 8465 return now >= new Date(data.news_from_date) && now <= new Date(data.news_to_date); 8466 }, 8467 cleanHamDate(hamDate) { 8468 if (!hamDate) return "Délais rallongés"; 8469 const date = new Date(hamDate); 8470 if (isNaN(date)) return "Délais rallongés"; 8471 return date.toLocaleDateString(document.documentElement.lang, { 8472 year: 'numeric', 8473 month: 'long', 8474 day: 'numeric' 8475 }); 8476 } 8477 } 8478 } 8479</script>
8479 8480 8481<div 8482 class="flex flex-col gap-5 md:overflow-auto md:max-h-[calc(100dvh-225px)] md:px-4"> 8483 <div class="text-error -mt-4 -mb-2 md:mt-0 md:-mb-5" 8484 x-text="$store.cart.errorMessage" 8485 x-show="$store.cart.errorMessage.length" 8486 x-transition></div> 8487 8488 <div x-data="graphQlCart()" x-init="init($watch);" 8489 class="flex flex-col gap-5 md:pt-4 pb-5 md:pb-4"> 8490 <template x-for="item in cartItems" :key="item.item_id"> 8491 <div :key="item.item_id" 8492 class="card-hover group max-h-80 transition-all duration-300" 8493 :class="{ 8494 'opacity-0 -mt-5 md:-mt-4 max-h-0 overflow-hidden': item.isDeleted, 8495 'max-h-80': !item.isDeleted, 8496 'md:animate-[pop_300ms_1000ms_ease-in-out_forwards] animate-[pop_300ms_400ms_ease-in-out_forwards]': Date.now() < item.focusedUntil 8497 }"> 8498 <a :href="item.product_has_url ? item.product_url : '#'; " 8499 class="grid grid-cols-[94px_1fr] content-center gap-5 rounded-md " 8500 x-element-transition-trigger:product.animate="{'productImg': item.product_image.src,'title': item.product_name}"> 8501 <div class="relative overflow-hidden rounded-md bg-[--fade-in-bg]"> 8502 <template x-if="item.product_image.src"> 8503 <img :src="item.product_image.src" 8504 class="aspect-product h-full w-full object-cover object-center transition-transform duration-300 md:group-hover:scale-105 mix-blend-darken" 8505 loading="lazy" alt=""> 8506 </template> 8507 8508 <!-- New --> 8509 <template x-if="productData[item.product_sku]?.product_news"> 8510 <div class="card-product__badge-container text-white bg-primary-600 z-10 rounded-[40px] px-3 text-sm min-h-[18px] py-1 top right" 8511 x-element-transition-skip='{"transformOrigin": "right top"}'> 8512 <span class="font-semibold"> 8513 NOUVEAU </span> 8514 </div> 8515</template> 8516 8517 <!-- Promo --> 8518 8519<template x-if="productData[item.product_sku]?.product_special?.percentage"> 8520 <div class="card-product__badge-container text-white bg-primary-600 z-10 rounded-[40px] px-3 text-sm min-h-[18px] py-1 top left" 8521 x-element-transition-skip='{"transformOrigin": "left top"}'> 8522 <span class="font-semibold"> 8523 - <span x-text="productData[item.product_sku]?.product_special?.percentage"></span>% 8524 </span> 8525 </div> 8526</template> 8527 8528 <div class="absolute bottom-5 left-1/2 hidden max-w-min -translate-x-1/2 items-center gap-3 "> 8529 8530<button 8531 type="button" 8532 class="button button--outline-secondary icon-button icon-button--size-sm bg-bg-500" 8533 :aria-label="item.qty < 2 ? `Retirer du panier` : `Diminuer la quantité`" 8534 @click.prevent.stop="$store.cart.decreaseQty(item.item_id);" 8535 @transitionend.stop 8536 :aria-busy="$store.cart.isLoading" 8537 x-show="!/^FREE\s*!$/i.test((item.message || '').trim())"> 8538 <span 8539 :class="{ 'hidden': item.qty > 1 }" 8540 x-show="item.qty < 2"> 8541 <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" stroke="currentColor" stroke-width="0" aria-hidden="true" class="icon icon-remove" viewBox="0 0 24 24" width="24" height="24" role="img"> 8542 <path stroke="none" d="M15 2H9c-1.103 0-2 .897-2 2v2H3v2h2v12c0 1.103.897 2 2 2h10c1.103 0 2-.897 2-2V8h2V6h-4V4c0-1.103-.897-2-2-2zM9 4h6v2H9V4zm8 16H7V8h10v12z"/> 8543</svg> 8544 </span> 8545 <span 8546 :class="{ 'hidden': item.qty < 2 }" 8547 x-show="item.qty > 1"> 8548 <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" stroke="currentColor" stroke-width="0" aria-hidden="true" class="contrast-more:text-secondary-700" viewBox="0 0 24 24" width="24" height="24" role="img"> 8549 <path stroke="none" d="M5 11h14v2H5z"/> 8550</svg> 8551 </span> 8552</button> 8553<label 8554 :for="`quantity_${item.item_id}-cart`" 8555 class="sr-only tracking-widest"> 8556 Quantité</label> 8557<input 8558 type="number" 8559 name="quantity" 8560 class="input__field h-9 min-w-14 basis-14 text-center" 8561 min="0" 8562 :id="`quantity_${item.item_id}-cart`" 8563 x-model="item.qty" 8564 @click.prevent.stop="" 8565 @change="if (!/^FREE\s*!$/i.test((item.message || '').trim())) { $store.cart.setQty($event.target.value, item.item_id) }" 8566 :readonly="/^FREE\s*!$/i.test((item.message || '').trim())" 8567 aria-label="{$escaper->escapeHtml(__('Quantity'))}" 8568 :aria-busy="$store.cart.isLoading"> 8569<button 8570 type="button" 8571 class="button button--outline-secondary icon-button icon-button--size-sm bg-bg-500" 8572 aria-label="Augmenter" 8573 @click.prevent.stop="$store.cart.increaseQty(item.item_id)" 8574 :aria-busy="$store.cart.isLoading" 8575 x-show="!/^FREE\s*!$/i.test((item.message || '').trim())"> 8576 <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" stroke="currentColor" stroke-width="0" aria-hidden="true" class="contrast-more:text-secondary-700" viewB
8576ox="0 0 24 24" width="24" height="24" role="img"> 8577 <path stroke="none" d="M19 11h-6V5h-2v6H5v2h6v6h2v-6h6z"/> 8578</svg> 8579</button> 8580 </div> 8581 </div> 8582 8583 <div class="flex min-w-0 flex-col items-stretch justify-center gap-5 z-10"> 8584 <div class="w-full"> 8585 <h2 class="text-md text-text-500 "> 8586 <span x-text="(new DOMParser()).parseFromString(item.product_name, 'text/html').documentElement.textContent"></span> 8587 </h2> 8588 <template x-if="item.options.length"> 8589 <template x-for="(option, o) in item.options" :key="o"> 8590 <p 8591 x-show="option.value != '0'" 8592 class="mt-0.5 text-sm text-text-400 truncate" 8593 x-text="`${option.label}: ${Array.isArray(option.value) ? option.value.join(', ') : option.value}`"></p> 8594 </template> 8595 </template> 8596 <p class="text-[14px] text-error" 8597 x-show="item.message && !/^FREE\s*!$/i.test((item.message || '').trim())" 8598 x-text="item.message"></p> 8599 8600 8601 <!-- Dispo + prix : sous le titre, sur la même ligne (mini-cart toujours, panier mobile uniquement - desktop la groupe plus bas) --> 8602 <div class="mt-2 flex flex-wrap items-center justify-between gap-3 "> 8603 <template x-if="productData[item.product_sku]?.product_hamDispo && productData[item.product_sku]?.product_hamDispo.display !== 'hidden' && productData[item.product_sku]?.product_hamDispo.delaisLabel"> 8604 <div 8605 class="inline-flex w-fit items-center gap-1 rounded-full px-2.5 py-1 text-[11px] font-semibold transition-colors duration-200 " 8606 :class="{ 8607 'bg-green-600 text-white': productData[item.product_sku]?.product_hamDispo.rawStatus === 'instock', 8608 'bg-green-100 text-green-700': productData[item.product_sku]?.product_hamDispo.rawStatus === 'standard', 8609 'bg-yellow-100 text-yellow-700': productData[item.product_sku]?.product_hamDispo.rawStatus === 'delais', 8610 'bg-red-100 text-red-700': productData[item.product_sku]?.product_hamDispo.rawStatus === 'unavailable', 8611 }"> 8612 <template x-if="productData[item.product_sku]?.product_hamDispo.rawStatus !== 'unavailable'"> 8613 <svg class="h-3.5 w-3.5 fill-none stroke-2" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true"> 8614 <path stroke-linecap="round" stroke-linejoin="round" d="M8.25 18.75a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m3 0h6m-9 0H3.375a1.125 1.125 0 0 1-1.125-1.125V14.25m17.25 4.5a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m3 0h1.125c.621 0 1.125-.504 1.125-1.125v-3.026a2.999 2.999 0 0 0-.879-2.121l-2.246-2.246A2.999 2.999 0 0 0 16.5 8.252H15M2.25 14.25V5.625c0-.621.504-1.125 1.125-1.125h9.75c.621 0 1.125.504 1.125 1.125v8.625" /> 8615 </svg> 8616 </template> 8617 <template x-if="productData[item.product_sku]?.product_hamDispo.rawStatus === 'unavailable'"> 8618 <svg class="h-3.5 w-3.5 fill-none stroke-2" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true"> 8619 <path stroke-linecap="round" stroke-linejoin="round" d="M18.364 18.364A9 9 0 0 0 5.636 5.636m12.728 12.728A9 9 0 0 1 5.636 5.636m12.728 12.728L5.636 5.636" /> 8620 </svg> 8621 </template> 8622 <span x-text="productData[item.product_sku]?.product_hamDispo.delaisLabel"></span> 8623 </div> 8624</template> 8625 <div class="minicart-item-price" x-html="/^FREE\s*!$/i.test((item.message || '').trim()) ? 'GRATUIT\u0020\u0021' : (item.product_price_html || hyva.formatPrice(item.product_price_value))"></div> 8626 </div> 8627 </div> 8628 8629 <div class="flex flex-wrap items-center justify-between "> 8630 8631 <div class="flex max-w-min items-center gap-3 "> 8632 8633<button 8634 type="button" 8635 class="button button--outline-secondary icon-button icon-button--size-sm bg-bg-500" 8636 :aria-label="item.qty < 2 ? `Retirer du panier` : `Diminuer la quantité`" 8637 @click.prevent.stop="$store.cart.decreaseQty(item.item_id);" 8638 @transitionend.stop 8639 :aria-busy="$store.cart.isLoading" 8640 x-show="!/^FREE\s*!$/i.test((item.message || '').trim())"> 8641 <span 8642 :class="{ 'hidden': item.qty > 1 }" 8643 x-show="item.qty < 2"> 8644 <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" stroke="currentColor" stroke-width="0" aria-hidden="true" class="icon icon-remove" viewBox="0 0 24 24" width="24" height="24" role="img"> 8645 <path stroke="none" d="M15 2H9c-1.103 0-2 .897-2 2v2H3v2h2v12c0 1.103.897 2 2 2h10c1.103 0 2-.897 2-2V8h2V6h-4V4c0-1.103-.897-2-2-2zM9 4h6v2H9V4zm8 16H7V8h10v12z"/> 8646</svg> 8647 </span> 8648 <span 8649 :class="{ 'hidden': item.qty < 2 }" 8650 x-show="item.qty > 1"> 8651 <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" stroke="currentColor" stroke-width="0" aria-hidden="true" class="contrast-more:text-secondary-700" viewB
8651ox="0 0 24 24" width="24" height="24" role="img"> 8652 <path stroke="none" d="M5 11h14v2H5z"/> 8653</svg> 8654 </span> 8655</button> 8656<label 8657 :for="`quantity_${item.item_id}-minicart`" 8658 class="sr-only tracking-widest"> 8659 Quantité</label> 8660<input 8661 type="number" 8662 name="quantity" 8663 class="input__field h-9 min-w-14 basis-14 text-center" 8664 min="0" 8665 :id="`quantity_${item.item_id}-minicart`" 8666 x-model="item.qty" 8667 @click.prevent.stop="" 8668 @change="if (!/^FREE\s*!$/i.test((item.message || '').trim())) { $store.cart.setQty($event.target.value, item.item_id) }" 8669 :readonly="/^FREE\s*!$/i.test((item.message || '').trim())" 8670 aria-label="{$escaper->escapeHtml(__('Quantity'))}" 8671 :aria-busy="$store.cart.isLoading"> 8672<button 8673 type="button" 8674 class="button button--outline-secondary icon-button icon-button--size-sm bg-bg-500" 8675 aria-label="Augmenter" 8676 @click.prevent.stop="$store.cart.increaseQty(item.item_id)" 8677 :aria-busy="$store.cart.isLoading" 8678 x-show="!/^FREE\s*!$/i.test((item.message || '').trim())"> 8679 <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" stroke="currentColor" stroke-width="0" aria-hidden="true" class="contrast-more:text-secondary-700" viewBox="0 0 24 24" width="24" height="24" role="img"> 8680 <path stroke="none" d="M19 11h-6V5h-2v6H5v2h6v6h2v-6h6z"/> 8681</svg> 8682</button> 8683 </div> 8684 </div> 8685 </div> 8686 </a> 8687 </div> 8688 </template> 8689 </div> 8690</div> <div class="h-[140px]"></div> 8691 8692 <template 8693 x-portal="$store.main.isMobile ? document.getElementById('popup-fixed-content-portal') : document.getElementById('cart-desktop-fixed')"> 8694 <div 8695 :inert="$store.main.isMobile ? $store.popup.currentPopup !== 'cart' : !$store.resizable.isVisible('cart-desktop')" 8696 class="contents" 8697 x-show="!$store.main.isMobile || $store.popup.currentPopup === 'cart'"> 8698 <div 8699 class="relative px-4 md:rounded-b-md max-md:px-3" 8700 x-show="!isCartEmpty"> 8701 <div class="contents" 8702 x-data="{ 8703 excludingTaxMessage: 'HT', 8704 includingTaxMessage: 'TTC', 8705 get cartTotals() { return $store.cart.cartTotals } 8706 }"> 8707 <div class="absolute left-0 right-0 top-0 origin-bottom -translate-y-[2.5rem] transition-all duration-700 motion-reduce:transition-none md:mb-0 md:w-full " 8708 :class="{ 8709 '-translate-y-full': isTotalsExpanded, 8710 '-translate-y-[2.5rem] pointer-events-none': !isTotalsExpanded 8711 }" 8712 :style="{ 8713 'clip-path': isTotalsExpanded ? 'inset(0 0 0 0)' : 'inset(0 0 50% 0)' 8714 }" 8715 > 8716 <div class="pointer-events-none relative top-0 h-10 bg-gradient-to-t from-[#00000010] via-transparent to-transparent"></div> 8717 <div class="flex flex-col gap-4 bg-bg-500 px-4 pointer-events-none pt-4 [.popup\_\_wrapper--visible_&]:pointer-events-auto [.resizable--visible_&]:pointer-events-auto" 8718 :inert="!isTotalsExpanded"> 8719 <div class="flex items-center justify-between pt-2"> 8720 <h2 class="text-text-500">Résumé de la commande</h2> 8721 <button type="button" 8722 class="button button--outline-secondary icon-button icon-button--size-xs " 8723 :aria-label="isTotalsExpanded ? 'Replier' : 'Ãtendre'" 8724 @click="isTotalsExpanded = !isTotalsExpanded" 8725 @transitionend.stop> 8726 <span :class="{ 'rotate-180': isTotalsExpanded }"> 8727 <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" stroke="currentColor" stroke-width="0" aria-hidden="true" class="contrast-more:text-secondary-700" viewBox="0 0 24 24" width="24" height="24" role="img"> 8728 <path stroke="none" d="m6.293 13.293 1.414 1.414L12 10.414l4.293 4.293 1.414-1.414L12 7.586z"/> 8729</svg> 8730 </span> 8731 </button> 8732 </div> 8733 8734 <div class="flex flex-col gap-3"> 8735 <template x-for="segment in cartTotals.total_segments" 8736 :key="segment.code"> 8737 <div class="contents"> 8738 <template x-if="segment.code === 'subtotal'"> 8739 <div class="contents"> 8740 <!-- display subtotal including and excluding tax --> 8741 <template x-if="cartTotals.review_totals_display_mode === 'both'"> 8742 <div> 8743 <div class="flex justify-between"> 8744 <p x-text="`${segment.title} (${excludingTaxMessage})`"></p> 8745 <p x-text="hyva.formatPrice(cartTotals.subtotal)"></p> 8746 </div> 8747 8748 <div class="flex justify-between"> 8749 <p x-text="`${segment.title} (${includingTaxMessage})`"></p> 8750 <p x-text="hyva.formatPrice(cartTotals.subtotal_incl_tax)"></p> 8751 </div> 8752 </div> 8753 </template> 8754 8755 <!-- display subtotal excluding tax --> 8756 <template x-if="cartTotals.review_totals_display_mode === 'excluding'"> 8757 <div class="flex justify-between"> 8758 <p x-text="`${segment.title} (${excludingTaxMessage})`"></p> 8759 <p x-text="hyva.formatPrice(cartTotals.subtotal)"></p> 8760 </div> 8761 </template> 8762 8763 <!-- display subtotal including tax --> 8764 <template x-if="cartTotals.review_totals_display_mode === 'including'"> 8765 <div class="flex justify-between"> 8766 <p x-text="segment.title"></p> 8767 <p x-text="hyva.formatPrice(cartTotals.subtotal_incl_tax)"></p> 8768 </div> 8769 </template> 8770</div> 8771 </template> 8772 8773 <template x-if="segment.code === 'shipping'"> 8774 <div class="contents"> 8775 <!-- display shipping including and excluding tax --> 8776 <template 8777 x-if="cartTotals.is_virtual === 0 && !!cartTotals.selected_shipping_method && cartTotals.review_shipping_display_mode === 'both'" 8778 > 8779 <div> 8780 <div class="flex justify-between"> 8781 <p x-text="`${segment.title} (${excludingTaxMessage})`"></p> 8782 <p x-text="hyva.formatPrice(cartTotals.shipping_amount)"></p> 8783 </div> 8784 8785 <div class="flex justify-between"> 8786 <p x-text="`${segment.title} (${includingTaxMessage})`"></p> 8787 <p x-text="hyva.formatPrice(cartTotals.shipping_incl_tax)"></p> 8788 </div> 8789 </div> 8790 </template> 8791 8792 <!-- display shipping excluding tax --> 8793 <template 8794 x-if="cartTotals.is_virtual === 0 && !!cartTotals.selected_shipping_method && cartTotals.review_shipping_display_mode === 'excluding'" 8795 > 8796 <div class="flex justify-between"> 8797 <p x-text="segment.title"></p> 8798 <p x-text="hyva.formatPrice(segment.value)"></p> 8799 </div> 8800 </template> 8801 8802 <!-- display shipping including tax --> 8803 <template 8804 x-if="cartTotals.is_virtual === 0 && !!cartTotals.selected_shipping_method && cartTotals.review_shipping_display_mode === 'including'" 8805 > 8806 <div class="flex justify-between"> 8807 <p x-text="segment.title"></p> 8808 <p x-text="hyva.formatPrice(cartTotals.shipping_incl_tax)"></p> 8809 </div> 8810 </template> 8811</div> </template> 8812 8813 8814 <template x-if="segment.code === 'tax'"> 8815 <div class="contents"> 8816 <template x-if="(segment.value > 0 || cartTotals.is_zero_tax_displayed)"> 8817 <div> 8818 <template x-if="!(segment.value > 0 && cartTotals.is_full_tax_summary_displayed)"> 8819 <div class="flex justify-between"> 8820 <p x-text="segment.title"></p> 8821 <p x-text="hyva.formatPrice(segment.value)"></p> 8822 </div> 8823 </template> 8824 8825 <template x-if="segment.value > 0 && cartTotals.is_full_tax_summary_displayed"> 8826 <div> 8827 8828 <div class="flex justify-between"> 8829 <p x-text="segment.title"></p> 8830 <p x-text="hyva.formatPrice(segment.value)"></p> 8831 </div> 8832 8833 <div class="flex justify-between"> 8834 <p x-text="segment.title"></p> 8835 <p x-text="hyva.formatPrice(segment.value)"></p> 8836 </div> 8837 8838 8839 <template 8840 x-for="(taxItem, index) in segment.extension_attributes.tax_grandtotal_details" 8841 :key="index" 8842 > 8843 8844 <div class="flex justify-between"> 8845 <div> 8846 <template x-for="(taxRate, index) in taxItem.rates"> 8847 <p x-text="`${taxRate.title} (${taxRate.percent}%)`"></p> 8848 </template> 8849 </div> 8850 <p x-text="hyva.formatPrice(taxItem.amount)"></p> 8851 </div> 8852 </template> 8853 </div> 8854 </template> 8855 </div> 8856 </template> 8857</div> </template> 8858 8859 <template x-if="segment.code === 'grand_total'"> 8860 <div class="contents"> 8861 <template x-if="cartTotals.review_totals_display_mode === 'including'"> 8862 <div class="flex justify-between"> 8863 <p x-text="`${cartTotals.total_segments.find(s => s.code === 'subtotal')?.title || 'Subtotal'} (${excludingTaxMessage})`"></p> 8864 <p x-text="hyva.formatPrice(cartTotals.subtotal)"></p> 8865 </div> 8866 </template> 8867 <div class="contents"> 8868 <!-- display subtotal excluding tax --> 8869 <template x-if="cartTotals.include_tax_in_grand_total"> 8870 <div> 8871 <div class="flex justify-between"> 8872 <p x-text="`${segment.title} (${includingTaxMessage})`"></p> 8873 <p x-text="hyva.formatPrice(segment.value)"></p> 8874 </div> 8875 8876 <div class="flex justify-between"> 8877 <p x-text="`${segment.title} (${excludingTaxMessage})`"></p> 8878 <p x-text="hyva.formatPrice(cartTotals.grand_total)"></p> 8879 </div> 8880 </div> 8881 </template> 8882 8883 <!-- display subtotal including tax --> 8884 <template x-if="!cartTotals.include_tax_in_grand_total && segment.value !== cartTotals.grand_total"> 8885 <div class="flex justify-between"> 8886 <p x-text="`${segment.title} (${includingTaxMessage})`"></p> 8887 <p x-text="hyva.formatPrice(segment.value)"></p> 8888 </div> 8889 </template> 8890</div> </div> 8891 </template> 8892 8893 <template x-if="segment.code === 'discount'"> 8894 <div class="flex justify-between items-center"> 8895 <p x-text="segment.title"></p> 8896 <p x-text="hyva.formatPrice(segment.value)" class="whitespace-nowrap"></p> 8897 </div> 8898 </template> 8899 </div> 8900 </template> 8901 </div> 8902 <hr class="divider -mx-4"> 8903 </div> 8904 </div> 8905 8906 <div class="pointer-events-none px-3 relative -mx-4 rounded-b-md bg-bg-500 transition-opacity duration-300 md:pb-4 max-md:px-3 max-md:pb-5 [.popup\_\_main_&]:pb-3 [.popup\_\_wrapper--visible_&]:pointer-events-auto [.resizable--visible_&]:pointer-events-auto" 8907 :class="{ 8908 'opacity-0': isCartEmpty, 8909 'opacity-1': !isCartEmpty, 8910 'hidden': isRemoveContent 8911 }"> 8912 <div class="flex items-center justify-between overflow-x-hidden bg-bg-500 pb-2 px-2 pt-4 text-text-500 max-md:px-3"> 8913 <h2>Total de la commande</h2> 8914 <div class="flex translate-x-0 items-center gap-5 transition-transform delay-200 duration-300 motion-reduce:transition-none" 8915 :class="{ 8916 'translate-x-11': isTotalsExpanded, 8917 'translate-x-0 delay-200': !isTotalsExpanded 8918 }"> 8919 <div> 8920 <p class="font-bold" 8921 x-text="hyva.formatPrice(cartTotals.grand_total || 0)"></p> 8922 </div> 8923 8924 <button type="button" 8925 class="button button--outline-secondary icon-button icon-button--size-xs " 8926 :aria-label="isTotalsExpanded ? `Replier` : `Ãtendre`" 8927 @click="isTotalsExpanded = !isTotalsExpanded" 8928 @transitionend.stop>
8929 <span :class="{ 'rotate-180': isTotalsExpanded }"> 8930 <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" stroke="currentColor" stroke-width="0" aria-hidden="true" class="contrast-more:text-secondary-700" viewBox="0 0 24 24" width="24" height="24" role="img"> 8931 <path stroke="none" d="m6.293 13.293 1.414 1.414L12 10.414l4.293 4.293 1.414-1.414L12 7.586z"/> 8932</svg> 8933 </span> 8934 </button> 8935 </div> 8936 </div> 8937 8938 <div class="mt-2 flex flex-col gap-4 rounded-b-xl bg-bg-500 max-md:px-3"> 8939 <a href="https://www.esprit-ktm.com/checkout/" 8940 class="button button--filled-primary h-11 w-full" 8941 :class="{ 'button--disabled': $store.cart.isLoading }"> 8942 Commander </a> 8943 </div> 8944 </div> 8945</div> 8946 </div> 8947 </div> 8948 </template> 8949 </div> 8950 </div> 8951 </div> 8952</div> 8953 </div> 8954 </template> 8955 </template> 8956</div> 8957 8958 8959<div 8960 class="contents" 8961 x-init=" 8962 $store.popup._registerPopup({ 8963 id: 'wishlist', 8964 isFocused: true, 8965 isFullScreen: true, 8966 isAlwaysVisible: false, 8967 isPreventOverlayClose: false }); 8968 " 8969> 8970 <template x-portal="$store.main.isMobile ? document.getElementById('popup-content-portal') : document.getElementById('wishlist-desktop')"> 8971 <template x-if="$store.main.isMobile ? $store.popup._nextPopup === 'wishlist' : true"> 8972 <div 8973 class="contents " 8974 id="wishlist" 8975 > 8976 8977<div 8978 :inert="$store.main.isMobile ? $store.popup.currentPopup !== 'wishlist' : !$store.resizable.isVisible('wishlist-desktop')" 8979 x-data="{ 8980 get wishlistItems() { return $store.wishlist.wishlistItems }, 8981 get isWishlistEmpty() { return !$store.wishlist.wishlistItems.length }, 8982 }" 8983 class="contents"> 8984 <div class="flex flex-col gap-5 rounded-md p-5 md:w-[--minicart-width] bg-bg-500 md:gap-0 md:px-0 md:py-0 max-md:py-0 [.popup\_\_main_&]:px-2"> 8985 <div class="flex items-center justify-between bg-bg-500 md:h-[--initial-height] md:min-h-14 md:rounded-md md:pt-5 md:pb-4 md:px-6 sticky top-0 z-20"> 8986 <h2 class="flex items-center text-lg text-text-500 md:pl-2 md:pr-[10px] md:py-3 md:text-md"> 8987 <span class="button__icon mr-4 text-[1.5rem] max-md:hidden" x-show="isWishlistEmpty"> 8988 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="fill-none stroke-2" width="24" height="24" style="fill:none;stroke-width:2px" role="img"> 8989 <path stroke-linecap="round" stroke-linejoin="round" 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"/> 8990<title>heart</title></svg> 8991 </span> 8992 <span class="button__icon mr-4 text-[1.5rem] max-md:hidden" x-show="!isWishlistEmpty"> 8993 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" width="24" height="24" role="img"> 8994 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"/> 8995<title>heart</title></svg> 8996 </span> 8997 Liste de souhaits </h2> 8998 <template x-if="!isWishlistEmpty"> 8999 <div class="delay-800 mr-1 flex justify-center align-middle transition-all duration-300"> 9000 <a 9001 href="https://www.esprit-ktm.com/wishlist/" 9002 x-element-transition-trigger 9003 class="link link--ghost"> 9004 Voir les produits <span x-text="`(${wishlistItems.length})`" class="mr-1"></span> 9005 </a> 9006 </div> 9007 </template> 9008 </div> 9009 9010 <div class="px-4 pb-4 md:px-6" x-show="isWishlistEmpty"> 9011 <p>Vous n'avez aucun article dans votre liste de souhaits.</p> 9012 </div> 9013 9014 <div 9015 x-show="!isWishlistEmpty" 9016 class="relative transition-opacity duration-200" 9017 :class="$store.wishlist.isAddingAllToCart ? 'opacity-40 pointer-events-none' : ''"> 9018 9019
9020<script> 9021 9022 function wishlistDispo() { 9023 return { 9024 loadingGraph: false, 9025 productData: {}, 9026 9027 init($watch) { 9028 this.loadCache(); 9029 this.updateHamData(this.wishlistItems || []); 9030 9031 if (typeof $watch === 'function') { 9032 $watch('wishlistItems', value => this.updateHamData(value)); 9033 } 9034 }, 9035 9036 loadCache() { 9037 try { 9038 this.productData = JSON.parse(localStorage.getItem('mini_productData') || '{}'); 9039 } catch { 9040 this.productData = {}; 9041 } 9042 }, 9043 saveCache() { 9044 try { 9045 localStorage.setItem('mini_productData', JSON.stringify(this.productData)); 9046 } catch {} 9047 }, 9048 isExpired(entry) { 9049 return !entry || !entry.fetchedAt || ((Date.now() / 1000 - entry.fetchedAt) > 3600); 9050 }, 9051 9052 async fetchAvailability(skusToFetch) { 9053 if (!skusToFetch.length || this.loadingGraph) return; 9054 this.loadingGraph = true; 9055 9056 const query = ` 9057 { 9058 productCustomDataEsprit(skus: ${JSON.stringify(skusToFetch)}) { 9059 sku 9060 ham_stock ham_date salable_qty 9061 special_from_date 9062 special_to_date 9063 news_from_date 9064 news_to_date 9065 regular_price 9066 final_price 9067 } 9068 } 9069 `; 9070 9071 try { 9072 const res = await fetch('/graphql', { 9073 method: 'POST', 9074 headers: { 9075 'Content-Type': 'application/json', 9076 "Store": CURRENT_STORE_CODE || "esprit_motoshop_fr" 9077 }, 9078 body: JSON.stringify({ 9079 query 9080 }) 9081 }); 9082 const json = await res.json(); 9083 9084 if (json.data?.productCustomDataEsprit?.length) { 9085 json.data.productCustomDataEsprit.forEach(prod => { 9086 this.productData[prod.sku] = { 9087 ...prod, 9088 fetchedAt: Math.floor(Date.now() / 1000), 9089 product_hamDispo: this.calcHamData(prod), 9090 product_special: { 9091 from: prod.special_from_date, 9092 to: prod.special_to_date, 9093 percentage: (prod.regular_price && prod.final_price && prod.regular_price > 0) ? 9094 Math.round((prod.regular_price - prod.final_price) * 100 / prod.regular_price) : 0, 9095 }, 9096 }; 9097 }); 9098
9099 this.saveCache(); 9100 } 9101 } catch (e) { 9102 console.error('GraphQL fetch error', e); 9103 } finally { 9104 this.loadingGraph = false; 9105 } 9106 }, 9107 9108 updateHamData(wishlistItems) { 9109 if (!wishlistItems?.length) return; 9110 9111 const skusToFetch = []; 9112 wishlistItems.forEach(item => { 9113 const data = this.productData[item.product_sku]; 9114 if (this.isExpired(data)) { 9115 skusToFetch.push(item.product_sku); 9116 } 9117 }); 9118 9119 if (skusToFetch.length) this.fetchAvailability(skusToFetch); 9120 }, 9121 calcHamData(data) { 9122 let rawStatus = 'standard', 9123 delaisLabel = "5/6 jours"; 9124 9125 if (data.salable_qty > 0) { 9126 rawStatus = 'instock'; 9127 delaisLabel = "48H"; 9128 } else if (data["ham_stock"] == 25339) { 9129 rawStatus = 'standard'; 9130 delaisLabel = "5/6 jours"; 9131 } else if (data["ham_stock"] == 25340) { 9132 rawStatus = 'delais'; 9133 delaisLabel = data["ham_date"] ? this.cleanHamDate(data["ham_date"]) : "Délais rallongés"; 9134 } else if (data["ham_stock"] == 27658) { 9135 rawStatus = 'unavailable'; 9136 delaisLabel = "Non disponible"; 9137 } 9138 9139 return { 9140 rawStatus, 9141 delaisLabel, 9142 display: '' 9143 }; 9144 }, 9145 cleanHamDate(hamDate) { 9146 if (!hamDate) return "Délais rallongés"; 9147 const date = new Date(hamDate); 9148 if (isNaN(date)) return "Délais rallongés"; 9149 return date.toLocaleDateString(document.documentElement.lang, { 9150 year: 'numeric', 9151 month: 'long', 9152 day: 'numeric' 9153 }); 9154 } 9155 } 9156 } 9157</script>
9157 9158 9159<div 9160 x-data="wishlistDispo()" 9161 x-init="init($watch)" 9162 class="flex flex-col gap-5 md:overflow-auto md:max-h-[calc(100dvh-225px)] md:px-4"> 9163 <div class="flex flex-col gap-5 md:pt-4 pb-5 md:pb-4"> 9164 <template 9165 x-for="item in wishlistItems" 9166 :key="item.wishlist_item_id ?? item.product_id"> 9167 <div 9168 :key="item.wishlist_item_id ?? item.product_id" 9169 class="card-hover group max-h-80 transition-all duration-300"> 9170 <a 9171 x-element-transition-trigger:product.animate=" 9172 { 9173 'variantImg': item.image.src, 9174 'title': (new DOMParser()).parseFromString(item.product_name, 'text/html').documentElement.textContent 9175 } 9176 " 9177 :href="item.product_url" 9178 class="grid grid-cols-[94px_1fr] content-center gap-5 rounded-md"> 9179 <div class="relative overflow-hidden rounded-md bg-[--fade-in-bg]"> 9180 <template x-if="item.image.src"> 9181 <img 9182 :src="item.image.src" 9183 class="aspect-product h-full w-full object-cover object-center transition-transform duration-300 md:group-hover:scale-105 mix-blend-darken" 9184 loading="lazy" 9185 width="" 9186 height="" 9187 alt=""> 9188 </template> 9189 9190 9191<template x-if="productData[item.product_sku]?.product_special?.percentage"> 9192 <div class="card-product__badge-container text-white bg-primary-600 z-10 rounded-[40px] px-3 text-sm min-h-[18px] py-1 top left" 9193 x-element-transition-skip='{"transformOrigin": "left top"}'> 9194 <span class="font-semibold"> 9195 - <span x-text="productData[item.product_sku]?.product_special?.percentage"></span>% 9196 </span> 9197 </div> 9198</template> 9199 </div> 9200 <div class="flex min-w-0 flex-col items-stretch justify-center gap-5 z-10"> 9201 <div class="w-full"> 9202 <h2 class="text-md text-text-500"> 9203 <span x-text="(new DOMParser()).parseFromString(item.product_name, 'text/html').documentElement.textContent"></span> 9204 </h2> 9205 <template x-if="item.options.length"> 9206 <template 9207 x-for="(option, o) in item.options" 9208 :key="o"> 9209 <p 9210 x-show="option.value != '0'" 9211 class="text-[14px]" 9212 x-text="`${option.label}: ${Array.isArray(option.value) ? option.value.join(', ') : option.value}`"></p> 9213 </template> 9214 </template> 9215 <div class="mt-2 flex flex-wrap items-center justify-between gap-3"> 9216 <template x-if="productData[item.product_sku]?.product_hamDispo && productData[item.product_sku]?.product_hamDispo.display !== 'hidden' && productData[item.product_sku]?.product_hamDispo.delaisLabel"> 9217 <div 9218 class="inline-flex w-fit items-center gap-1 rounded-full px-2.5 py-1 text-[11px] font-semibold transition-colors duration-200 " 9219 :class="{ 9220 'bg-green-600 text-white': productData[item.product_sku]?.product_hamDispo.rawStatus === 'instock', 9221 'bg-green-100 text-green-700': productData[item.product_sku]?.product_hamDispo.rawStatus === 'standard', 9222 'bg-yellow-100 text-yellow-700': productData[item.product_sku]?.product_hamDispo.rawStatus === 'delais', 9223 'bg-red-100 text-red-700': productData[item.product_sku]?.product_hamDispo.rawStatus === 'unavailable', 9224 }"> 9225 <template x-if="productData[item.product_sku]?.product_hamDispo.rawStatus !== 'unavailable'"> 9226 <svg class="h-3.5 w-3.5 fill-none stroke-2" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true"> 9227 <path stroke-linecap="round" stroke-linejoin="round" d="M8.25 18.75a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m3 0h6m-9 0H3.375a1.125 1.125 0 0 1-1.125-1.125V14.25m17.25 4.5a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m3 0h1.125c.621 0 1.125-.504 1.125-1.125v-3.026a2.999 2.999 0 0 0-.879-2.121l-2.246-2.246A2.999 2.999 0 0 0 16.5 8.252H15M2.25 14.25V5.625c0-.621.504-1.125 1.125-1.125h9.75c.621 0 1.125.504 1.125 1.125v8.625" /> 9228 </svg> 9229 </template> 9230 <template x-if="productData[item.product_sku]?.product_hamDispo.rawStatus === 'unavailable'"> 9231 <svg class="h-3.5 w-3.5 fill-none stroke-2" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true"> 9232 <path stroke-linecap="round" stroke-linejoin="round" d="M18.364 18.364A9 9 0 0 0 5.636 5.636m12.728 12.728A9 9 0 0 1 5.636 5.636m12.728 12.728L5.636 5.636" /> 9233 </svg> 9234 </template>
9235 <span x-text="productData[item.product_sku]?.product_hamDispo.delaisLabel"></span> 9236 </div> 9237</template> 9238 <div class="wishlist-item-price" x-html="item.product_price"></div> 9239 </div> 9240 </div> 9241 <div 9242 class="flex items-center justify-between gap-3" 9243 x-show="item.product_is_saleable_and_visible"> 9244 <div class="flex items-center gap-2"> 9245 <button 9246 type="button" 9247 class="button button--outline-secondary icon-button icon-button--size-sm bg-bg-500" 9248 :aria-label="item.qty < 2 ? 'Retirer\u0020l\u0027article' : 'Diminuer\u0020la\u0020quantit\u00E9'" 9249 @click.prevent.stop="(item.qty || 1) < 2 ? $store.wishlist.removeItem(item) : $store.wishlist.updateQty(item, item.qty - 1)"> 9250 <span x-show="(item.qty || 1) < 2"> 9251 <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" stroke="currentColor" stroke-width="0" aria-hidden="true" class="text-lg" viewBox="0 0 24 24" width="24" height="24" role="img"> 9252 <path stroke="none" d="M15 2H9c-1.103 0-2 .897-2 2v2H3v2h2v12c0 1.103.897 2 2 2h10c1.103 0 2-.897 2-2V8h2V6h-4V4c0-1.103-.897-2-2-2zM9 4h6v2H9V4zm8 16H7V8h10v12z"/> 9253</svg> 9254 </span> 9255 <span x-show="(item.qty || 1) >= 2"> 9256 <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" stroke="currentColor" stroke-width="0" aria-hidden="true" class="text-lg" viewBox="0 0 24 24" width="24" height="24" role="img"> 9257 <path stroke="none" d="M5 11h14v2H5z"/> 9258</svg> 9259 </span> 9260 </button> 9261 <label 9262 :for="`quantity_${item.product_id}-wishlist`" 9263 class="sr-only tracking-widest"> 9264 Quantité </label> 9265 <input 9266 type="number" 9267 name="quantity" 9268 class="input__field h-9 min-w-14 basis-14 text-center" 9269 min="1" 9270 :id="`quantity_${item.product_id}-wishlist`" 9271 :value="item.qty" 9272 @click.prevent.stop="" 9273 @change="$store.wishlist.updateQty(item, $event.target.value)" 9274 aria-label="Quantité"> 9275 <button 9276 type="button" 9277 class="button button--outline-secondary icon-button icon-button--size-sm bg-bg-500" 9278 aria-label="Augmenter" 9279 @click.prevent.stop="$store.wishlist.updateQty(item, (item.qty || 1) + 1)"> 9280 <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" stroke="currentColor" stroke-width="0" aria-hidden="true" class="text-lg" viewBox="0 0 24 24" width="24" height="24" role="img"> 9281 <path stroke="none" d="M19 11h-6V5h-2v6H5v2h6v6h2v-6h6z"/> 9282</svg> 9283 </button> 9284 </div> 9285 <div class="flex items-center gap-2"> 9286 <button 9287 type="button" 9288 @click.prevent.stop="$store.wishlist.addItemToCart(item)" 9289 title="Ajouter au panier" 9290 aria-label="Ajouter au panier" 9291 class="button button--filled-primary w-9 h-9 p-0 flex-none"> 9292 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" class="text-lg" width="24" height="24" role="img"> 9293 <path d="M5 22h14c1.103 0 2-.897 2-2V9a1 1 0 0 0-1-1h-3V7c0-2.757-2.243-5-5-5S7 4.243 7 7v1H4a1 1 0 0 0-1 1v11c0 1.103.897 2 2 2zM9 7c0-1.654 1.346-3 3-3s3 1.346 3 3v1H9V7zm-4 3h2v2h2v-2h6v2h2v-2h2l.002 10H5V10z"> 9294 </path> 9295<title>Ajouter au panier</title></svg>
9296 <span class="sr-only">Ajouter au panier</span> 9297 </button> 9298 <button 9299 type="button" 9300 @click.prevent.stop="$store.wishlist.removeItem(item)" 9301 title="Retirer l'article" 9302 class="button button--outline-primary w-9 h-9 p-0 flex-none"> 9303 <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" stroke="currentColor" stroke-width="0" aria-hidden="true" class="text-lg" viewBox="0 0 24 24" width="24" height="24" role="img"> 9304 <path stroke="none" d="M15 2H9c-1.103 0-2 .897-2 2v2H3v2h2v12c0 1.103.897 2 2 2h10c1.103 0 2-.897 2-2V8h2V6h-4V4c0-1.103-.897-2-2-2zM9 4h6v2H9V4zm8 16H7V8h10v12z"/> 9305<title>Retirer l'article</title></svg> 9306 <span class="sr-only">Retirer l'article</span> 9307 </button> 9308 </div> 9309 </div> 9310 </div> 9311 </a> 9312 9313 <div 9314 class="mt-3 flex items-center gap-3" 9315 x-show="!(item.product_is_saleable_and_visible)"> 9316 <a 9317 :href="item.product_url" 9318 class="button button--outline-primary flex-1"> 9319 <span x-text="!item.product_is_saleable_and_visible ? 9320 'Rupture\u0020de\u0020stock' : 9321 'Choisir\u0020les\u0020options'"></span> 9322 </a> 9323 <button 9324 type="button" 9325 @click="$store.wishlist.removeItem(item)" 9326 title="Retirer l'article" 9327 class="button button--outline-primary w-11 p-0 flex-none"> 9328 <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" stroke="currentColor" stroke-width="0" aria-hidden="true" class="text-lg" viewBox="0 0 24 24" width="24" height="24" role="img"> 9329 <path stroke="none" d="M15 2H9c-1.103 0-2 .897-2 2v2H3v2h2v12c0 1.103.897 2 2 2h10c1.103 0 2-.897 2-2V8h2V6h-4V4c0-1.103-.897-2-2-2zM9 4h6v2H9V4zm8 16H7V8h10v12z"/> 9330<title>Retirer l'article</title></svg> 9331 <span class="sr-only">Retirer l'article</span> 9332 </button> 9333 </div> 9334 </div> 9335 </template> 9336 </div> 9337</div> <div class="h-[140px]"></div> 9338 9339 <div 9340 x-show="$store.wishlist.isAddingAllToCart" 9341 class="absolute inset-0 flex items-start justify-center pt-10"> 9342 <svg class="animate-spin h-8 w-8 text-primary-600" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"> 9343 <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle> 9344 <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path> 9345 </svg> 9346 </div> 9347 </div> 9348 9349 <template 9350 x-portal="$store.main.isMobile ? document.getElementById('popup-fixed-content-portal') : document.getElementById('wishlist-desktop-fixed')"> 9351 <div 9352 :inert="$store.main.isMobile ? $store.popup.currentPopup !== 'wishlist' : !$store.resizable.isVisible('wishlist-desktop')" 9353 class="relative flex items-center gap-3 px-4 pb-4 md:rounded-b-md max-md:px-3" 9354 x-show="!isWishlistEmpty"> 9355 <button 9356 type="button" 9357 @click='$store.wishlist.addAllToCart({"action":"https:\/\/www.esprit-ktm.com\/wishlist\/index\/allcart\/","data":{"wishlist_id":null}})' 9358 :class="$store.wishlist.isAddingAllToCart ? 'button--disabled' : ''" 9359 :disabled="$store.wishlist.isAddingAllToCart" 9360 :aria-busy="$store.wishlist.isAddingAllToCart" 9361 class="button button--filled-primary flex-1 gap-2"> 9362 <template x-if="$store.wishlist.isAddingAllToCart"> 9363 <svg class="animate-spin h-5 w-5" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"> 9364 <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle> 9365 <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path> 9366 </svg> 9367 </template> 9368 <template x-if="!$store.wishlist.isAddingAllToCart"> 9369 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" class="text-lg" width="24" height="24" role="img"> 9370 <path d="M5 22h14c1.103 0 2-.897 2-2V9a1 1 0 0 0-1-1h-3V7c0-2.757-2.243-5-5-5S7 4.243 7 7v1H4a1 1 0 0 0-1 1v11c0 1.103.897 2 2 2zM9 7c0-1.654 1.346-3 3-3s3 1.346 3 3v1H9V7zm-4 3h2v2h2v-2h6v2h2v-2h2l.002 10H5V10z"> 9371 </path> 9372</svg> 9373 </template>
9374 <span x-text="$store.wishlist.isAddingAllToCart ? 9375 'Ajout\u0020en\u0020cours...' : 9376 'Tout\u0020ajouter\u0020au\u0020panier'"></span> 9377 </button> 9378 </div> 9379 </template> 9380 </div> 9381</div> </div> 9382 </template> 9383 </template> 9384</div> 9385 </div> 9386 </div> 9387</header> 9388</header> 9389<div 9390 class="transition-preview" 9391 x-data="TransitionPreview()" 9392 :class="{ 9393 'transition-preview--active': isActive, 9394 'is-transition': $store['transition'].isPreviewAnimating, 9395 }" 9396 style="--scroll-progress: 0; --offset-top: 400;" 9397 :style="{ 9398 '--offset-top': offsetTop, 9399 }" 9400 x-ref="preview" 9401> 9402 <div 9403 class="transition-preview__wrapper" 9404 @click="(e) => { 9405 if ($refs.transitionContent.contains(e.target)) return; 9406 if ($refs.transitionBg === e.target) return; 9407 9408 hidePreview(); 9409 }" 9410 > 9411 <div class="content-wrapper relative mx-auto"> 9412 <div x-ref="transitionBg" class="transition-preview__bg"></div> 9413 </div> 9414 <div 9415 x-ref="scrollContainer" 9416 :aria-hidden="!isActive" 9417 class="transition-preview__scroll" 9418 x-a11y-trap.watch="isActive" 9419 > 9420 <div class="content-wrapper relative mx-auto"> 9421 <div class="transition-preview__content" x-ref="transitionContent"> 9422 <div id="PreviewContent"></div> 9423 <div class="content-wrapper pointer-events-none fixed bottom-0 left-1/2 z-50 -translate-x-1/2"> 9424 <div 9425 class="flex h-56 w-full items-end justify-center bg-gradient-to-t from-[--color-background-500] via-transparent to-transparent py-10 text-4xl opacity-[calc(1-var(--scroll-progress))]" 9426 > 9427 <div 9428 class="animate-[bounce_2s_infinite] text-2xl text-text-50" 9429 :class="{ 9430 'animate-none': $store.main.isReducedMotion 9431 }" 9432 > 9433 <div class="flex flex-col items-center [&>svg]:text-4xl"> 9434 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 22 46" aria-hidden="true" role="img"> 9435 <path fill-rule="evenodd" clip-rule="evenodd" d="M11 2c-4.98 0-9 3.994-9 8.9v13.2c0 4.905 4.02 8.9 9 8.9s9-3.994 9-8.9V10.9C20 5.994 15.98 2 11 2ZM0 10.9C0 4.871 4.935 0 11 0s11 4.871 11 10.9v13.2C22 30.129 17.065 35 11 35S0 30.129 0 24.1V10.9Z"/> 9436 <path fill-rule="evenodd" clip-rule="evenodd" d="M10 13V8h2v5h-2ZM10.998 43.271l2.637-2.61 1.407 1.42-4.044 4.005-4.045-4.004L8.36 40.66l2.638 2.611Z"/> 9437</svg> 9438 </div> 9439 </div> 9440 </div> 9441 </div> 9442 </div> 9443 </div> 9444 </div> 9445 </div> 9446</div> 9447<div 9448 x-data 9449 x-element-transition-wrapper 9450 class="element-transition opacity-0" 9451 :class=" 9452 { 9453 'opacity-100': $store['transition'].isTransitioning 9454 } 9455 " 9456></div> 9457<template x-fallback-template-type="search"> 9458 <div class="mt-[72px] md:mt-[89px]"></div> 9459 9460 <div class="max-md:hidden"> 9461 </div> 9462 9463 <article 9464 aria-label="Détails de la recherche" 9465 class="content-wrapper mx-auto flex flex-col items-start gap-3 py-5 pb-6 pt-3"> 9466 <div class="flex flex-col gap-3 w-full"> 9467 <h2 class="text-lg" 9468 x-text="hyva.strf('Résultats de recherche pour : %0', `'${$store['transition'].pageData?.search ?? ''}'`)"> 9469 </h2> 9470 </div> 9471 9472 <!-- Loader --> 9473 <div class="flex justify-center items-center w-full min-h-[50vh]"> 9474 <div class="flex flex-col items-center gap-3 text-gray-500"> 9475 <!-- Spinner --> 9476 <svg class="animate-spin h-10 w-10 text-primary-600" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"> 9477 <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle> 9478 <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path> 9479 </svg> 9480 <p class="text-sm">Chargement des résultats...</p> 9481 </div> 9482 </div> 9483 </article> 9484</template> 9485<template x-fallback-template-type="product"> 9486 <template x-if="($store['transition'].originalFocusableEl?.getAttribute('data-product-type') || $store['transition'].pageData?.productType || '') === 'grouped'">
9487 <div id="PreviewContent" class="contents"> 9488 <div class="[&:not(.transition-preview_&)]:mt-[76px] md:[&:not(.transition-preview_&)]:mt-[89px]"></div> 9489 <div class="flex w-full flex-col gap-4 rounded-md bg-white max-md:pb-6 md:p-8 [.transition-preview_&]:md:p-6"> 9490 <h1 x-html="$store['transition'].pageData?.title" class="heading m-0 text-[22px] font-bold leading-[1.2] text-[#181818] max-md:px-4 md:text-[26px]"></h1> 9491 <div class="grid grid-cols-2 gap-4 max-md:px-4 md:grid-cols-4"> 9492 <template x-for="i in 4" :key="i"> 9493 <div class="aspect-product animate-pulse rounded-sm bg-[#EFECE8]"></div> 9494 </template> 9495 </div> 9496 </div> 9497 </div> 9498 </template> 9499 9500 <template x-if="($store['transition'].originalFocusableEl?.getAttribute('data-product-type') || $store['transition'].pageData?.productType || '') !== 'grouped'"> 9501 <div id="PreviewContent" class="contents" 9502 x-data="{ 9503 dispoLabels: {"instock":"En stock \u2014 Livr\u00e9 sous 48h","standard":"Disponible \u2014 Livr\u00e9 sous 5 \u00e0 6 jours","delais":"En r\u00e9assort","unavailable":"Non disponible"}, 9504 dotClasses: {"instock":"bg-[#16A34A]","standard":"bg-[#16A34A]","delais":"bg-yellow-500","unavailable":"bg-[#B40C1C]"}, 9505 get pd() { return $store['transition'].pageData || {}; }, 9506 get isConfigurable() { return this.pd.productType === 'configurable'; }, 9507 get hasPromo() { return !!this.pd.regularPrice && this.pd.regularPrice > this.pd.finalPrice; }, 9508 get discount() { 9509 if (this.pd.discountPercentage) return this.pd.discountPercentage; 9510 return this.hasPromo ? Math.round((this.pd.regularPrice - this.pd.finalPrice) * 100 / this.pd.regularPrice) : 0; 9511 }, 9512 get dispoLabel() { return this.dispoLabels[this.pd.dispoStatus] || ''; }, 9513 get dotClass() { return this.dotClasses[this.pd.dispoStatus] || 'bg-[#B9B2AA]'; }, 9514 get thumbCount() { return Math.min(Math.max((this.pd.mediaCount || 1) - 1, 0), 5); }, 9515 }"> 9516 9517 <!-- MPA fallback (page reload / mobile): keep the header offset --> 9518 <div class="[&:not(.transition-preview_&)]:mt-[76px] md:[&:not(.transition-preview_&)]:mt-[89px]"></div> 9519 9520 <!-- White content card (mirrors ham.pdp.card) -->
9521 <div class="flex w-full flex-col gap-4 rounded-md bg-white max-md:pb-6 md:p-8 [.transition-preview_&]:md:p-6"> 9522 9523 <!-- Breadcrumb --> 9524 <nav class="breadcrumbs w-full max-md:px-4 max-md:pt-4 max-md:pb-2 md:mb-3" aria-label="Breadcrumb"> 9525 <ol class="items flex items-center text-[12.5px] leading-none text-[#5C5C5C] max-md:flex-nowrap max-md:overflow-hidden max-md:whitespace-nowrap md:flex-wrap"> 9526 <template x-for="(crumb, index) in (pd.breadcrumbs || [])" :key="index"> 9527 <li class="flex flex-none items-center"> 9528 <template x-if="index > 0"><span aria-hidden="true" class="mx-1.5 text-[10px] text-gray-300">âº</span></template> 9529 <template x-if="crumb.link"><a :href="crumb.link" class="hover:underline" x-text="crumb.label"></a></template> 9530 <template x-if="!crumb.link"><span x-text="crumb.label"></span></template> 9531 </li> 9532 </template> 9533 <li class="flex min-w-0 items-center"> 9534 <span aria-hidden="true" class="mx-1.5 text-[10px] text-gray-300" x-show="(pd.breadcrumbs || []).length">âº</span> 9535 <span class="block min-w-0 truncate text-gray-500" x-html="pd.title"></span> 9536 </li> 9537 </ol> 9538 </nav> 9539 9540 <!-- Gallery / buy box grid (same tracks as product-details.phtml) --> 9541 <div class="relative z-30 mx-auto flex w-full flex-col justify-center gap-4 md:grid md:grid-cols-[minmax(260px,300px)_1fr] md:items-start md:gap-5 lg:grid-cols-[minmax(460px,560px)_1fr] lg:gap-8 xl:grid-cols-[minmax(520px,600px)_1fr] xl:gap-9"> 9542 9543 <!-- Desktop: compat banner placeholder + rail gallery --> 9544 <div class="min-w-0 max-md:hidden"> 9545 <div class="mb-1.5 flex h-[42px] items-center justify-between border-b-2 border-[#E8E4DF] bg-[#F9F9F9] px-3.5"> 9546 <span class="h-3 w-56 animate-pulse rounded-sm bg-[#EFECE8]"></span> 9547 <span class="h-3 w-12 animate-pulse rounded-sm bg-[#EFECE8]"></span> 9548 </div> 9549 <div class="flex gap-3.5"> 9550 <div class="flex w-[74px] flex-none flex-col gap-2.5"> 9551 <div class="aspect-square overflow-hidden border-2 border-[#181818] bg-[--fade-in-bg]"> 9552 <img x-show="pd.productImg" :src="pd.productImg" class="size-full object-cover object-center mix-blend-darken" width="74" height="74" alt=""> 9553 </div> 9554 <template x-for="i in thumbCount" :key="'thumb-' + i"> 9555 <div class="aspect-square border border-[#E8E4DF] bg-[#F9F9F9]"></div> 9556 </template> 9557 </div> 9558 <div class="relative flex aspect-product min-w-0 flex-1 items-center justify-center overflow-hidden bg-[--fade-in-bg]"> 9559 <img x-show="pd.productImg" :src="pd.productImg" class="size-full object-cover object-center mix-blend-darken" width="100%" height="100%" :alt="pd.title" alt=""> 9560 </div> 9561 </div> 9562 </div> 9563 9564 <!-- Buy box column --> 9565 <div class="product-details"> 9566 9567 <!-- Mobile: compat banner placeholder + image --> 9568 <div class="mb-4 md:hidden"> 9569 <div class="flex h-[42px] items-center justify-between border-b-2 border-[#E8E4DF] bg-[#F9F9F9] px-3.5"> 9570 <span class="h-3 w-48 animate-pulse rounded-sm bg-[#EFECE8]"></span> 9571 <span class="h-3 w-12 animate-pulse rounded-sm bg-[#EFECE8]"></span> 9572 </div> 9573 <div class="relative"> 9574 <div x-element-transition-dest="img" class="relative flex aspect-[4/5] min-h-0 items-center justify-center bg-[--fade-in-bg]"> 9575 <img x-show="pd.productImg" :src="pd.productImg" class="size-full object-cover object-center mix-blend-darken" width="100%" height="100%" :alt="pd.title" alt=""> 9576 </div> 9577 9578 <div 9579 x-data=" 9580 {
9581 finalPrice: $store['transition'].pageData?.finalPrice, 9582 regularPrice: $store['transition'].pageData?.regularPrice 9583 } 9584 " 9585 class="card-product__badge-container z-10 rounded-[40px] bg-bg-500 px-3 text-sm min-h-[18px] md:hidden bottom left" 9586 x-show="regularPrice>finalPrice && regularPrice"> 9587 <span x-text="'-' + Math.round(((regularPrice - finalPrice) * 100.0) / regularPrice) + '%'" class="font-semibold"> 9588 </span> 9589 </div> 9590 <div class="absolute right-3 top-3 z-[60] flex flex-col gap-2"> 9591 <span class="block size-10 rounded border-[1.5px] border-[#E8E4DF] bg-white"></span> 9592 <span class="block size-10 rounded border-[1.5px] border-[#E8E4DF] bg-white"></span> 9593 </div> 9594 </div> 9595 </div> 9596 9597 <div class="flex flex-col gap-4 md:min-h-[520px] lg:min-h-[560px] xl:min-h-[600px]"> 9598 <!-- Title + reference --> 9599 <div class="flex flex-col gap-1 px-4 md:px-0"> 9600 <h1 x-html="pd.title" class="heading m-0 text-[22px] font-bold leading-[1.2] text-[#181818] md:text-[26px] md:leading-[1.25]"></h1> 9601 <div class="flex items-baseline gap-1.5 text-[12px] leading-5 text-[#5C5C5C]" x-show="pd.sku"> 9602 <span>Réf.</span> 9603 <span class="font-mono tracking-[0.01em] text-[#424242]" x-text="pd.sku"></span> 9604 </div> 9605 </div> 9606 9607 <!-- Price zone --> 9608 <div class="border-b border-[#E8E4DF] px-4 pb-4 md:px-0"> 9609 <div class="flex flex-col gap-1.5"> 9610 <div class="flex items-baseline gap-3"> 9611 <span class="text-[36px] font-bold leading-none tracking-[-0.01em] text-[#181818] tabular-nums" 9612 x-html="pd.finalPrice ? hyva.formatPrice(pd.finalPrice) : ''"></span> 9613 <template x-if="hasPromo"> 9614 <span class="contents"> 9615 <span class="text-[16px] text-[#5C5C5C] line-through tabular-nums" x-html="hyva.formatPrice(pd.regularPrice)"></span> 9616 <span class="text-[12.5px] font-bold text-[#B40C1C] tabular-nums" x-text="'â' + discount + ' %'"></span> 9617 </span> 9618 </template> 9619 </div> 9620 <div class="flex items-baseline gap-3.5"> 9621 <span class="h-3.5 w-40 animate-pulse rounded-sm bg-[#EFECE8]"></span> 9622 </div> 9623 </div> 9624 </div> 9625 9626 <!-- Configurable: size selector placeholder --> 9627 <template x-if="isConfigurable"> 9628 <div class="flex flex-col gap-3 max-md:px-4"> 9629 <div class="flex items-baseline justify-between text-[14px] leading-tight"> 9630 <span class="text-[#424242]">Sélectionnez votre taille</span> 9631 <span class="font-extrabold text-[#181818]">—</span> 9632 </div> 9633 <div class="flex flex-wrap gap-2.5"> 9634 <template x-for="i in 4" :key="'pill-' + i"> 9635 <span class="flex h-11 min-w-[54px] items-center justify-center rounded border-[1.5px] border-[#E8E4DF] bg-white px-3">
9636 <span class="h-3 w-7 animate-pulse rounded-sm bg-[#EFECE8]"></span> 9637 </span> 9638 </template> 9639 </div> 9640 </div> 9641 </template> 9642 9643 <div class="hidden md:block md:flex-1"></div> 9644 9645 <!-- Availability + free-shipping card --> 9646 <div class="max-md:px-4"> 9647 <div class="border border-[#E8E4DF] bg-white text-[13.5px] leading-[1.6]"> 9648 <div class="flex flex-col px-[15px] py-[13px]"> 9649 <div class="flex items-center gap-[9px] font-bold text-[#181818]"> 9650 <span class="size-2.5 flex-none rounded-full" :class="dispoLabel ? dotClass : 'bg-[#B9B2AA]'"></span> 9651 <span x-show="dispoLabel" x-text="dispoLabel"></span> 9652 <span x-show="!dispoLabel" class="h-3.5 w-56 animate-pulse rounded-sm bg-[#EFECE8]"></span> 9653 </div> 9654 <span class="mt-[7px] ml-[19px] h-3 w-64 max-w-full animate-pulse rounded-sm bg-[#EFECE8]"></span> 9655 </div> 9656 <div class="border-t border-[#E8E4DF] px-[15px] pb-[13px] pt-2.5"> 9657 <div class="mb-1.5 flex items-baseline justify-between gap-2"> 9658 <span class="h-3 w-40 animate-pulse rounded-sm bg-[#EFECE8]"></span> 9659 <span class="h-3 w-24 animate-pulse rounded-sm bg-[#EFECE8]"></span> 9660 </div> 9661 <div class="h-1.5 bg-[#F0EDE9]"></div> 9662 </div> 9663 </div> 9664 </div> 9665 9666 <div class="hidden md:block md:flex-1"></div> 9667 9668 <!-- Buy row --> 9669 <div class="flex items-stretch gap-3 max-md:px-4"> 9670 <span class="block h-12 w-[118px] flex-none rounded border-[1.5px] border-[#E8E4DF] bg-white max-md:w-[110px]"></span> 9671 <span class="block h-12 min-w-0 flex-1 rounded bg-[#E8E4DF] animate-pulse"></span> 9672 <span class="block size-12 flex-none rounded border-[1.5px] border-[#E8E4DF] bg-white max-lg:hidden"></span> 9673 <span class="block size-12 flex-none rounded border-[1.5px] border-[#E8E4DF] bg-white max-lg:hidden"></span> 9674 </div> 9675 9676 <div class="hidden md:block md:flex-1"></div> 9677 9678 <!-- Reassurance --> 9679 <div class="max-md:px-4"> 9680 <div class="grid grid-cols-1 gap-3.5 border-t border-[#E8E4DF] pt-3.5 lg:grid-cols-3"> 9681 <template x-for="i in 3" :key="'reassurance-' + i"> 9682 <div class="flex min-w-0 items-start gap-2.5"> 9683 <span class="mt-0.5 size-[22px] flex-none rounded-full border-[1.8px] border-[#D9D4CE]"></span> 9684 <div class="flex min-w-0 flex-1 flex-col gap-1.5 pt-0.5"> 9685 <span class="h-2.5 w-3/4 animate-pulse rounded-sm bg-[#EFECE8]"></span> 9686 <span class="h-2.5 w-full animate-pulse rounded-sm bg-[#EFECE8]"></span> 9687 </div> 9688 </div> 9689 </template> 9690 </div> 9691 </div> 9692 </div> 9693 </div> 9694 </div> 9695 9696 <!-- Tabs placeholder --> 9697 <div class="mx-auto w-full max-md:px-4"> 9698 <div class="overflow-hidden border border-[#
9698E8E4DF]"> 9699 <div class="flex border-b border-[#E8E4DF] bg-[#F9F9F9]"> 9700 <span class="-mb-px border-b-2 border-[#181818] bg-white px-[18px] py-3 text-[13.5px] font-bold leading-[1.6] text-[#181818]">Description</span> 9701 </div> 9702 <div class="flex flex-col gap-2.5 px-4 py-[14px]"> 9703 <span class="h-3 w-full animate-pulse rounded-sm bg-[#EFECE8]"></span> 9704 <span class="h-3 w-5/6 animate-pulse rounded-sm bg-[#EFECE8]"></span> 9705 <span class="h-3 w-4/6 animate-pulse rounded-sm bg-[#EFECE8]"></span> 9706 </div> 9707 </div> 9708 </div> 9709 </div> 9710 </div> 9711 </template> 9712</template> 9713 9714<template x-fallback-template-type="category"> 9715 <!--Breadcrumbs fallback--> 9716 <div class="mt-[72px] md:mt-[89px]"></div> 9717 9718 <div class="max-md:hidden"> 9719 </div> 9720 9721 <article 9722 aria-label="Category details" 9723 class="content-wrapper mx-auto flex flex-col items-start gap-3 py-5 pb-6 pt-3" 9724 > 9725 <template x-if="$store['transition'].pageData?.img"> 9726 <div class="mb-2 h-[40vh] w-full rounded-md bg-[--fade-in-bg] object-cover"> 9727 <img 9728 :src="$store['transition'].pageData?.img" 9729 :alt="$store['transition'].pageData?.title" 9730 class="no-fade h-[40vh] w-full rounded-md object-cover transition-opacity duration-300" 9731 width="100%" 9732 height="100%" 9733 > 9734 </div> 9735 </template> 9736 <div class="flex flex-col gap-3"> 9737 <h1 class="text-xl md:text-[32px] text-text-500" x-text="$store['transition'].pageData?.title"></h1> 9738 <div 9739 class="rte" 9740 x-html="$store['transition'].pageData?.description" 9741 x-show="$store['transition'].pageData?.description && $store['transition'].pageData?.description !== ''" 9742 > 9743 </div> 9744 </div> 9745 <div class="min-h-screen"></div> 9746 </article> 9747</template> 9748<div 9749 x-data 9750 x-cloak 9751 class="contents" 9752 :style=" 9753 { 9754 '--popup-end-of-header-height': $store.popup.__endOfHeaderHeight + 'px', 9755 '--popup-content-ratio': $store.popup._popupContentRatio, 9756 '--popup-content-height': $store.popup.__popupContentHeight + 'px', 9757 '--popup-max-height': Math.min($store.popup.__popupContentHeight, $store.popup.__getWindowHeight() - $store.popup.__endOfHeaderHeight - 8 * 4) + 'px', 9758 } 9759 " 9760> 9761 <div 9762 class="popup__overlay" 9763 :class=" 9764 { 9765 'popup__overlay--full-screen': $store.popup.isCurrentPopupFullScreen, 9766 'popup__overlay--focused': $store.main.isPopupFocused() 9767 } 9768 " 9769 @click="$store.main.hideAllPopupsAndResizables()" 9770 ></div> 9771 <div class="popup__main" :style="`opacity: ${$store.main.opacityOnZoom}`"> 9772 <div 9773 class="popup__shadow" 9774 :class=" 9775 { 9776 'popup__shadow--large': $store.popup._isPopupSimple 9777 } 9778 " 9779 ></div> 9780 <div 9781 class="popup__wrapper" 9782 :class=" 9783 { 9784 'popup__wrapper--visible': $store.popup._isPopupVisible, 9785 } 9786 " 9787 x-a11y-trap="$store.popup._isPopupVisible" 9788 > 9789 <div class="popup__content-wrapper"> 9790 <div 9791 class="popup__content-top" 9792 :class=" 9793 { 9794 'popup__content-top--full-screen': $store.popup.isCurrentPopupFullScreen, 9795 } 9796 " 9797 ></div> 9798 <div 9799 id="popup-content" 9800 class="popup__content" 9801 :class=" 9802 { 9803 'popup__content--visible': !$store.popup._isPopupContentHidden, 9804 'popup__content--full-screen': $store.popup.isCurrentPopupFullScreen, 9805 } 9806 " 9807 > 9808 <div 9809 id="popup-content-portal" 9810 class="popup__content-portal" 9811 :class=" 9812 { 9813 'popup__content-portal--full-screen': $store.popup.isCurrentPopupFullScreen, 9814 } 9815 " 9816 ></div> 9817 </div> 9818 <div 9819 id="popup-fixed-content-portal" 9820 class="popup__fixed-content-portal" 9821 :class=" 9822 { 9823 'popup__fixed-content-portal--visible': $store.popup._isPopupVisible, 9824 } 9825 " 9826 ></div> 9827 </div> 9828 <div class="popup__bottom"></div> 9829 </div> 9830 </div> 9831</div> 9832<div class="main-wrapper"> 9833<!-- main-content --> 9834<main id="MainContent" 9835 class="content-for-layout focus-none flex h-full origin-top flex-col transition-transform duration-500 will-change-transform motion-reduce:transition-none" 9836 :class="{ 9837 'is-transition': $store['transition'].isAnimating 9838 }" 9839 role="main" 9840 tabindex="-1" 9841 :style="{ 9842 transform: ($store.popup.isCurrentPopupFocused && !$store.main.isReducedMotion) 9843 ? `scale(${$store.main.scaleFactor}) translateY(${$store.main.yOffset}px)` 9844 : 'scale(1)' 9845 }" 9846 @scroll.window="$store.main.setTransformValues" 9847> 9848 <div class="mt-[60px] md:mt-[80px]"></div>
9849 <div id="maincontent" class="contents"><div id="contentarea" tabindex="-1"></div> 9850<div class="page messages">
9850<script> 9851 /** 9852 * Kept inline (not part of the app.js bundle, which loads with `defer`) so that 9853 * window.dispatchMessages and the network-error suppression are guaranteed to be 9854 * available as soon as this template is parsed, regardless of bundle load order. 9855 * The stateful toast-stack rendering logic lives in the "toast" Alpine store 9856 * (see src/store/Toast.ts) and only needs to be ready once Alpine starts. 9857 */ 9858 9859 window.addEventListener('error', function(event) { 9860 if (event.message && ( 9861 event.message.includes('NetworkError') || 9862 event.message.includes('TypeError: NetworkError when attempting to fetch resource') || 9863 event.message.includes('TypeError: Load failed') || 9864 event.message.includes('Load failed') || 9865 event.message.includes('NS_BINDING_ABORTED') 9866 )) { 9867 event.preventDefault(); 9868 return false; 9869 } 9870 }); 9871 9872 window.addEventListener('unhandledrejection', function(event) { 9873 if (event.reason && event.reason.message && ( 9874 event.reason.message.includes('NetworkError') || 9875 event.reason.message.includes('Load failed') || 9876 event.reason.message.includes('fetch resource') || 9877 event.reason.message.includes('NS_BINDING_ABORTED') 9878 )) { 9879 event.preventDefault(); 9880 return false; 9881 } 9882 }); 9883 9884 window.translations = window.translations || {}; 9885 window.translations.notifications = {"login_success":"Vous vous \u00eates connect\u00e9 avec succ\u00e8s.","account_created":"Votre compte a \u00e9t\u00e9 cr\u00e9\u00e9 avec succ\u00e8s.","added_to_cart":"%1 a \u00e9t\u00e9 ajout\u00e9 \u00e0 votre panier.","quantity_increased":"Quantit\u00e9 de \"%1\" augment\u00e9e \u00e0 %2","quantity_decreased":"Quantit\u00e9 de \"%1\" diminu\u00e9e \u00e0 %2","item_removed":"\"%1\" a \u00e9t\u00e9 retir\u00e9 du panier","quantity_updated":"Quantit\u00e9 de \"%1\" mise \u00e0 jour \u00e0 %2","wishlist_sign_in_required":"Veuillez vous connecter pour ajouter des \u00e9l\u00e9ments \u00e0 votre liste de souhaits.","wishlist_sign_in":"Connexion","wishlist_select_options":"Veuillez s\u00e9lectionner toutes les options avant d'ajouter cet article \u00e0 votre liste de souhaits.","wishlist_all_added_to_cart":"Tous les articles disponibles ont \u00e9t\u00e9 ajout\u00e9s \u00e0 votre panier.","wishlist_shared":"Votre liste d'achats a \u00e9t\u00e9 partag\u00e9e."}; 9886 9887 window.isNetworkError = function(message) { 9888 if (message && typeof message === 'object') { 9889 if (message.name === 'TypeError' && message.message && 9890 (message.message.includes('NetworkError when attempting to fetch resource') || 9891 message.message.includes('Load failed'))) { 9892 return true; 9893 } 9894 9895 if (message.message) { 9896 return window.isNetworkError(message.message); 9897 } 9898 9899 if (message.toString) { 9900 const str = message.toString(); 9901 if (str.includes('TypeError') || str.includes('NetworkError') || str.includes('Load failed')) { 9902 return true; 9903 } 9904 } 9905 } 9906 9907 if (!message || typeof message !== 'string') return false; 9908 9909 const networkPatterns = [ 9910 'NetworkError', 9911 'TypeError: NetworkError when attempting to fetch resource', 9912 'TypeError: Load failed', 9913 'Load failed', 9914 'TypeError', 9915 'NS_BINDING_ABORTED', 9916 'fetch resource', 9917 'Network request failed', 9918 'Network failed' 9919 ]; 9920 9921 const msgLower = message.toLowerCase(); 9922 return networkPatterns.some(pattern => msgLower.includes(pattern.toLowerCase())); 9923 }; 9924 9925 window.decodeHTMLEntities = function(text) { 9926 if (!text || typeof text !== 'string') return text; 9927 const textarea = document.createElement('textarea'); 9928 textarea.innerHTML = text; 9929 return textarea.value; 9930 }; 9931 9932 window.dispatchMessages = function(messages, hideTime = null) { 9933 if (!messages) return; 9934 9935 const dispatchOne = (msg) => { 9936 const messageText = msg.title || msg.text || msg.message || ''; 9937 9938 if (window.isNetworkError(messageText) || 9939 window.isNetworkError(msg.text) || 9940 window.isNetworkError(msg.title) || 9941 (msg.type === 'error' && msg.text && 9942 (msg.text.toString().includes('TypeError') || msg.text.toString().includes('Load failed')))) { 9943 return; 9944 } 9945 9946 window.dispatchEvent(new CustomEvent('toast-show', { 9947 detail: { 9948 type: msg.type ?? 'default', 9949 message: window.decodeHTMLEntities(msg.title ?? ''), 9950 description: window.decodeHTMLEntities(msg.text ?? ''), 9951 position: msg.position ?? 'top-center', 9952 url: msg.url ?? '', 9953 alt: msg.alt ?? '', 9954 time: hideTime ?? 5000, 9955 html: msg.html ?? '' 9956 } 9957 })); 9958 }; 9959 9960 if (Array.isArray(messages)) {
9961 messages.forEach(dispatchOne); 9962 } else if (messages.detail) { 9963 dispatchOne(messages.detail); 9964 } 9965 }; 9966</script>
9966 9967 9968<div class="relative w-auto h-auto"> 9969 <!-- 9970 Uses this theme's own custom x-portal directive (src/plugins/Portal.ts) 9971 rather than Alpine's native x-teleport - the built-in directive was 9972 confirmed to silently fail to mount this element into <body> (it stayed 9973 inert as unprocessed <template> content, so no toast ever appeared, 9974 including this file's own dispatchMessages() output). x-portal is the 9975 established, working convention elsewhere in this theme for the exact 9976 same "detached template rendered into a fixed body-level container" use 9977 case (minicart overlay, search, menu, popups) - see Portal.ts's own 9978 comment on why x-teleport is unreliable in this SPA/soft-navigation setup. 9979 --> 9980 <template x-portal="document.body"> 9981 <ul 9982 id="toast-list-container" 9983 x-data 9984 x-init=" 9985 $store.toast.init({ position: 'top-center', nbVisible: 2 }); 9986 $store.toast.stackToasts(); 9987 " 9988 @set-toasts-layout.window="$store.toast.setLayout(event.detail.layout)" 9989 @toast-show.window=" 9990 event.stopPropagation(); 9991 $store.toast.addToast(event.detail); 9992 " 9993 @mouseenter="$store.toast.setHovered(true, $el)" 9994 @mouseleave="$store.toast.setHovered(false, $el)" 9995 class="fixed block w-full group z-[2147483647] top-[72px] md:top-[89px]" 9996 style="max-width: 28rem;" 9997 :class="{ 9998 'right-0 top-0 mt-6 sm:mr-6': $store.toast.position=='top-right', 9999 'left-0 top-0 mt-6 sm:ml-6': $store.toast.position=='top-left', 10000 'left-1/2 -translate-x-1/2 top-0 mt-6': $store.toast.position=='top-center', 10001 'right-0 bottom-0 sm:mr-6 sm:mb-6': $store.toast.position=='bottom-right', 10002 'left-0 bottom-0 sm:ml-6 sm:mb-6': $store.toast.position=='bottom-left', 10003 'left-1/2 -translate-x-1/2 bottom-0 sm:mb-6': $store.toast.position=='bottom-center' 10004 }" 10005 x-cloak 10006 role="status" 10007 aria-live="polite"> 10008 10009 <template x-for="(toast, index) in $store.toast.toasts" :key="toast.id"> 10010 <li 10011 :id="toast.id" 10012 x-data="{ toastHovered: false }" 10013 x-init=" 10014 if($store.toast.position.includes('bottom')){ 10015 $el.firstElementChild.classList.add('toast-bottom'); 10016 $el.firstElementChild.classList.add('opacity-0', 'translate-y-full'); 10017 } else { 10018 $el.firstElementChild.classList.add('opacity-0', '-translate-y-full'); 10019 } 10020 requestAnimationFrame(function(){ 10021 requestAnimationFrame(function(){ 10022 if($store.toast.position.includes('bottom')){ 10023 $el.firstElementChild.classList.remove('opacity-0', 'translate-y-full'); 10024 } else { 10025 $el.firstElementChild.classList.remove('opacity-0', '-translate-y-full'); 10026 } 10027 $el.firstElementChild.classList.add('opacity-100', 'translate-y-0'); 10028 setTimeout(function(){ $store.toast.stackToasts(); }, 10); 10029 }); 10030 }); 10031 10032 if (toast.toastType !== 'product') { 10033 setTimeout(function(){ 10034 setTimeout(function(){ 10035 $el.firstElementChild.classList.remove('opacity-100'); 10036 $el.firstElementChild.classList.add('opacity-0'); 10037 if($store.toast.toasts.length == 1){ 10038 $el.firstElementChild.classList.remove('translate-y-0'); 10039 $el.firstElementChild.classList.add('-translate-y-full'); 10040 } 10041 setTimeout(function(){ $store.toast.deleteToastWithId(toast.id); }, 300); 10042 }, 5); 10043 }, toast.time); 10044 } 10045 " 10046 @mouseover="toastHovered=true" 10047 @mouseout="toastHovered=false" 10048 @mouseenter="if (toast.toastType === 'product') $store.toast.pause(toast.id);" 10049 @mouseleave="if (toast.toastType === 'product') $store.toast.resume(toast.id);" 10050 class="absolute w-full duration-300 ease-out select-none p-2 sm:p-0" 10051 :class="{ 'toast-no-description': toast.toastType !== 'product' && !toast.description }"> 10052 <template x-if="toast.toastType === 'product'">
10053 <span 10054 class="relative flex flex-col items-start shadow-[0_10px_30px_rgba(24,24,24,0.14)] w-full max-w-[372px] mx-auto transition-all duration-300 ease-out bg-white border border-[#E8E4DF] rounded-xl overflow-hidden group"> 10055 <div class="flex items-center gap-3 py-[13px] px-[14px] w-full"> 10056 <div class="w-[46px] h-[46px] flex-none rounded-lg bg-[#F9F9F9] border border-[#E8E4DF] flex items-center justify-center overflow-hidden"> 10057 <img 10058 x-show="toast.productImageSrc" 10059 :src="toast.productImageSrc" 10060 :alt="toast.productImageAlt" 10061 class="w-full h-full object-contain"> 10062 </div> 10063 <div class="flex-1 min-w-0"> 10064 <div class="flex items-center gap-[7px] text-[13.5px] font-extrabold"> 10065 <template x-if="toast.kind === 'add' && toast.context === 'wishlist'"> 10066 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24" class="fill-white stroke-2 text-green-500" aria-hidden="true"><path d="M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5"/></svg> 10067 </template> 10068 <template x-if="toast.kind === 'add' && toast.context !== 'wishlist'"> 10069 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24" class="fill-white stroke-2 text-green-500" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg> 10070 </template> 10071 <template x-if="toast.kind === 'update'"> 10072 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24" class="fill-white stroke-2 text-blue-500" aria-hidden="true"><path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/><path d="M3 3v5h5"/></svg> 10073 </template> 10074 <template x-if="toast.kind === 'remove'"> 10075 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24" class="fill-white stroke-2 text-red-500" aria-hidden="true"><path d="M10 11v6M14 11v6M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/></svg> 10076 </template> 10077 <span 10078 :class="{ 10079 'text-green-500': toast.kind === 'add', 10080 'text-blue-500': toast.kind === 'update', 10081 'text-red-500': toast.kind === 'remove', 10082 }" 10083 x-text="(toast.context === 'wishlist' ? { 10084 add: 'Ajouté à la liste de souhaits', 10085 update: 'Quantité mise à jour', 10086 remove: 'Retiré de la liste de souhaits', 10087 } : { 10088 add: 'Ajouté au panier', 10089 update: 'Quantité mise à jour', 10090 remove: 'Retiré du panier', 10091 })[toast.kind]"></span> 10092 </div> 10093 <div class="text-[12.5px] text-[#5C5C5C] mt-0.5 whitespace-nowrap overflow-hidden text-ellipsis" x-text="toast.productName"></div> 10094 </div>
10095 <span 10096 x-show="toast.context !== 'wishlist' || toast.kind === 'update'" 10097 class="flex-none inline-flex items-center justify-center min-w-[26px] h-[22px] px-1.5 rounded-full bg-[#F0EDE9] text-[12px] font-bold text-primary-bg tabular-nums" 10098 x-text="`Ã${toast.qty}`"></span> 10099 <button 10100 type="button" 10101 @click="$store.toast.close(toast.id)" 10102 aria-label="Fermer la notification" 10103 class="w-6 h-6 flex-none border-none bg-transparent p-0 cursor-pointer flex items-center justify-center"> 10104 <svg style="width:14px;height:14px" viewBox="0 0 24 24"> 10105 <path d="M6 6l12 12M18 6L6 18" fill="none" stroke="#B9B2AA" stroke-width="2.2"></path> 10106 </svg> 10107 </button> 10108 </div> 10109 <div class="h-[3px] bg-[#F0EDE9] w-full"> 10110 <div 10111 class="h-full" 10112 x-data="{ _lastDepart: null }" 10113 :class="{ 10114 'bg-green-600': toast.kind === 'add', 10115 'bg-blue-500': toast.kind === 'update', 10116 'bg-error': toast.kind === 'remove', 10117 }" 10118 x-effect=" 10119 if (_lastDepart !== toast.depart) { 10120 _lastDepart = toast.depart; 10121 $el.style.animation = '
10121none'; 10122 void $el.offsetWidth; 10123 $el.style.animation = `cart-toast-bar ${toast.duree}ms linear both`; 10124 } 10125 $el.style.animationPlayState = toast.paused ? 'paused' : 'running'; 10126 "> 10127 </div> 10128 </div> 10129 </span> 10130 </template> 10131 <template x-if="toast.toastType !== 'product'"> 10132 <span 10133 class="relative flex flex-col items-start shadow-[0_10px_30px_rgba(24,24,24,0.14)] w-full transition-all duration-300 ease-out bg-white border border-[#E8E4DF] rounded-xl overflow-hidden group"> 10134 <template x-if="!toast.html"> 10135 <div class="flex items-center gap-3 py-[13px] px-[14px] w-full"> 10136 <div class="flex-1 min-w-0"> 10137 <div class="flex items-center gap-[7px] text-[13.5px] font-extrabold shrink-0" 10138 :class="$store.toast.getTextClass(toast.type)"> 10139 <template x-if="toast.type=='success'"> 10140 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24" class="shrink-0 fill-white stroke-2 text-green-500" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg> 10141 </template> 10142 <template x-if="toast.type=='info'"> 10143 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24" class="shrink-0 fill-white stroke-2 text-blue-500" aria-hidden="true"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4M12 8h.01"/></svg> 10144 </template> 10145 <template x-if="toast.type=='warning'"> 10146 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24" class="shrink-0 fill-white stroke-2 text-orange-400" aria-hidden="true"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3M12 9v4M12 17h.01"/></svg> 10147 </template> 10148 <template x-if="toast.type=='danger'"> 10149 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24" class="shrink-0 fill-white stroke-2 text-red-500" aria-hidden="true"><circle cx="12" cy="12" r="10"/><path d="m15 9-6 6M9 9l6 6"/></svg> 10150 </template> 10151 <template x-if="toast.type=='default'"> 10152 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24" class="shrink-0 fill-white stroke-2 text-gray-800" aria-hidden="true"><path d="M10.268 21a2 2 0 0 0 3.464 0M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326"/></svg> 10153 </template> 10154 <!-- 10155 Short, fixed-length label next to the icon (same pattern as 10156 the product toast above, whose title row is always a short 10157 kind label, never the variable-length product name). The 10158 actual session message - often a full sentence - goes on its 10159 own line below, same treatment as the product toast's 10160 productName line, so a long message wraps cleanly instead of 10161 fighting the icon for room on one line. 10162 -->
10163 <span x-text="{ 10164 success: 'Succès', 10165 info: 'Info', 10166 warning: 'Attention', 10167 danger: 'Erreur', 10168 default: 'Avis', 10169 }[toast.type]"></span> 10170 </div> 10171 <div class="text-[12.5px] text-[#5C5C5C] mt-0.5" x-text="toast.message"></div> 10172 <div x-show="toast.description!==''" 10173 class="text-[12.5px] text-[#5C5C5C]" x-text="toast.description"></div> 10174 <a 10175 x-show="toast.url!=='' && toast.alt!==''" 10176 :href="toast.url" 10177 :alt="toast.alt" 10178 x-text="toast.alt" 10179 class="inline-block mt-1 text-[12.5px] font-bold text-primary-bg underline cursor-pointer"> 10180 </a> 10181 </div> 10182 <button 10183 type="button" 10184 @click="$store.toast.burnToast(toast.id)" 10185 aria-label="Fermer la notification" 10186 class="w-6 h-6 flex-none border-none bg-transparent p-0 cursor-pointer flex items-center justify-center"> 10187 <svg style="width:14px;height:14px" viewBox="0 0 24 24"> 10188 <path d="M6 6l12 12M18 6L6 18" fill="none" stroke="#B9B2AA" stroke-width="2.2"></path> 10189 </svg> 10190 </button> 10191 </div> 10192 </template> 10193 <template x-if="toast.html"> 10194 <div x-html="toast.html"></div> 10195 </template> 10196 <div class="h-[3px] bg-[#F0EDE9] w-full"> 10197 <div class="h-full" 10198 :class="$store.toast.getBgClass(toast.type)" 10199 :style="`animation: toast-bar-deplete ${toast.time}ms linear both;`"> 10200 </div> 10201 </div> 10202 </span> 10203 </template> 10204 </li> 10205 </template> 10206 </ul> 10207 </template> 10208</div> 10209 10210<style> 10211 /* Depleting progress bar, same visual language as the product toast's own 10212 bar animation below, so both toast types read as one family. */ 10213 @keyframes toast-bar-deplete { 10214 from { 10215 width: 100%; 10216 } 10217 10218 to { 10219 width: 0%; 10220 } 10221 } 10222 10223 @keyframes cart-toast-bar { 10224 from { 10225 width: 100%; 10226 } 10227 10228 to { 10229 width: 0%; 10230 } 10231 } 10232</style> 10233
10234<script> 10235 /** 10236 * Self-healing fallback: on some pages, Alpine's initial DOM walk does not 10237 * process this template's x-portal directive (root cause not fully pinned 10238 * down - the "portal" directive mechanism itself is confirmed working via 10239 * Alpine.initTree() called manually on this exact element, so it's a 10240 * one-off timing/ordering issue at Alpine.start() rather than a broken 10241 * directive). Once Alpine has finished its initial walk (alpine:initialized 10242 * fires after that), check whether the toast container ever made it into 10243 * <body> and force it through Alpine.initTree() if not. 10244 */ 10245 document.addEventListener('alpine:initialized', function() { 10246 if (document.getElementById('toast-list-container')) { 10247 return; 10248 } 10249 10250 var toastTemplate = document.querySelector('template[x-portal="document.body"]'); 10251 if (toastTemplate && window.Alpine) { 10252 Alpine.initTree(toastTemplate); 10253 } 10254 }); 10255</script>
10255</div> 10256<!-- preview-content --> 10257<div id="PreviewContent" class="contents"> 10258 <div class="grid-columns"><div class="h-full row-span-2 col-span-3 only:col-span-full"><article> 10259 10260 <div 10261 class="animate-on-transition" 10262 itemprop="articleBody" 10263 > 10264 <style>.cmsp182-static { 10265position: static 10266} 10267.cmsp182-relative { 10268position: relative 10269} 10270.cmsp182-inset-0 { 10271inset: 0px 10272} 10273.cmsp182-bottom-\[calc\(160px\/5-160px\)\] { 10274bottom: calc(160px / 5 - 160px) 10275} 10276.cmsp182-bottom-\[calc\(212px\/5-212px\)\] { 10277bottom: calc(212px / 5 - 212px) 10278} 10279.cmsp182-bottom-\[calc\(248px\/5-248px\)\] { 10280bottom: calc(248px / 5 - 248px) 10281} 10282.cmsp182-bottom-\[calc\(76px\/2-76px\)\] { 10283bottom: calc(76px / 2 - 76px) 10284} 10285.cmsp182-mx-auto { 10286margin-left: auto; 10287margin-right: auto 10288} 10289.cmsp182-mb-\[calc\(160px-160px\/5\)\] { 10290margin-bottom: calc(160px - 160px / 5) 10291} 10292.cmsp182-mb-\[calc\(212px-212px\/5\)\] { 10293margin-bottom: calc(212px - 212px / 5) 10294} 10295.cmsp182-mb-\[calc\(248px-248px\/5\)\] { 10296margin-bottom: calc(248px - 248px / 5) 10297} 10298.cmsp182-mb-\[calc\(76px\/2\)\] { 10299margin-bottom: calc(76px / 2) 10300} 10301.cmsp182-mt-5 { 10302margin-top: 1.25rem 10303} 10304.cmsp182-block { 10305display: block 10306} 10307.cmsp182-flex { 10308display: flex 10309} 10310.cmsp182-h-2 { 10311height: 0.5rem 10312} 10313.cmsp182-h-4 { 10314height: 1rem 10315} 10316.cmsp182-h-auto { 10317height: auto 10318} 10319.cmsp182-h-full { 10320height: 100% 10321} 10322.cmsp182-w-full { 10323width: 100% 10324} 10325.cmsp182-flex-col { 10326flex-direction: column 10327} 10328.cmsp182-overflow-hidden { 10329overflow: hidden 10330} 10331.cmsp182-rounded-lg { 10332border-radius: 0.5rem 10333} 10334@media (min-width: 1024px) { 10335.cmsp182-lg\:absolute { 10336position: absolute 10337} 10338.cmsp182-lg\:relative { 10339position: relative 10340} 10341.cmsp182-lg\:col-span-1 { 10342grid-column: span 1 / span 1 10343} 10344.cmsp182-lg\:col-span-2 { 10345grid-column: span 2 / span 2 10346} 10347.cmsp182-lg\:mt-0 { 10348margin-top: 0px 10349} 10350.cmsp182-lg\:flex { 10351display: flex 10352} 10353.cmsp182-lg\:grid { 10354display: grid 10355} 10356.cmsp182-lg\:h-\[390px\] { 10357height: 390px 10358} 10359.cmsp182-lg\:grid-cols-3 { 10360grid-template-columns: repeat(3, minmax(0, 1fr)) 10361} 10362.cmsp182-lg\:gap-6 { 10363gap: 1.5rem 10364} 10365.cmsp182-lg\:border { 10366border-width: 1px 10367} 10368.cmsp182-lg\:border-zinc-200 { 10369--tw-border-opacity: 1; 10370border-color: rgb(228 228 231 / var(--tw-border-opacity)) 10371} 10372.cmsp182-lg\:bg-white { 10373--tw-bg-opacity: 1; 10374background-color: rgb(255 255 255 / var(--tw-bg-opacity)) 10375} 10376.cmsp182-lg\:shadow-xl {
10377--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); 10378--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color); 10379box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) 10380} 10381} 10382@media (min-width: 1280px) { 10383.cmsp182-xl\:h-\[492px\] { 10384height: 492px 10385} 10386} 10387@media (min-width: 1536px) { 10388.cmsp182-\32xl\:h-\[576px\] { 10389height: 576px 10390} 10391}</style> 10392<section class="cmsp182-flex cmsp182-flex-col"> 10393<style> 10394.mb-[calc(248px-248px/5)] { 10395 margin-bottom: calc(248px - 248px / 5); 10396} 10397.bottom-[calc(248px/5-248px)] { 10398 bottom: calc(248px / 5 - 248px); 10399} 10400@media (min-width: 640px) { 10401 .mb-[calc(212px-212px/5)] { 10402 margin-bottom: calc(212px - 212px / 5); 10403 } 10404 .bottom-[calc(212px/5-212px)] { 10405 bottom: calc(212px / 5 - 212px); 10406 } 10407} 10408@media (min-width: 768px) { 10409 .mb-[calc(160px-160px/5)] { 10410 margin-bottom: calc(160px - 160px / 5); 10411 } 10412 .bottom-[calc(160px/5-160px)] { 10413 bottom: calc(160px / 5 - 160px); 10414 }} 10415@media (min-width: 1024px) { 10416 .mb-[calc(76px/2)] { 10417 margin-bottom: calc(76px / 2); 10418 } 10419 .bottom-[calc(76px/2-76px)] { 10420 bottom: calc(76px / 2 - 76px); 10421 } 10422} 10423</style> 10424<div class="content-wrapper cmsp182-mx-auto"> 10425 <!-- DESKTOP (banner left / partfinder right) --> 10426 <section class="cmsp182-block cmsp182-w-full cmsp182-lg:grid cmsp182-lg:grid-cols-3 lg:gap-4 items-stretch"> 10427 <!-- LEFT : BANNER CAROUSEL --> 10428 <div class="banner-container cmsp182-lg:col-span-2 cmsp182-relative cmsp182-w-full cmsp182-h-full cmsp182-rounded-lg cmsp182-overflow-hidden shadow-xl"> 10429 <!-- Removed fixed heights --> 10430 <style> 10431 /* BannerMarketing - Fixed proportional sizing using aspect ratio */ 10432 .banner-carousel-wrapper { 10433 position: relative; 10434 width: 100%; 10435 aspect-ratio: 16 / 9; 10436 } 10437 10438 /* Content box - Flexible sizing to fit content without line breaks */ 10439 /* Mobile-first: smaller on sm screens */ 10440 .banner-content-box { 10441 width: auto; 10442 max-width: min(280px, 55%); 10443 min-width: 120px; 10444 padding: 1.5% 2%; 10445 background: rgba(0, 0, 0, 0.3); 10446 backdrop-filter: blur(4px); 10447 -webkit-backdrop-filter: blur(4px); 10448 border: 1px solid rgba(255, 255, 255, 0.1); 10449 border-radius: 0.375rem; 10450 box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); 10451 text-align: center; 10452 } 10453 10454 .banner-content-box h3 { 10455 font-size: clamp(0.55rem, 0.9vw, 0.9rem); 10456 font-weight: 700; 10457 color: white; 10458 text-shadow: 0 1px 2px rgba(0,0,0,0.3); 10459 line-height: 1.2; 10460 margin: 0; 10461 } 10462 10463 .banner-content-box p { 10464 font-size: clamp(0.5rem, 0.7vw, 0.7rem); 10465 color: rgba(255, 255, 255, 0.9); 10466 text-shadow: 0 1px 2px rgba(0,0,0,0.2); 10467 line-height: 1.3; 10468 margin: 0.3em 0 0 0; 10469 } 10470 10471 /* md and above: restore original larger sizes */ 10472 @media (min-width: 768px) { 10473 .banner-content-box { 10474 max-width: min(380px, 45%); 10475 min-width: 160px; 10476 padding: 2% 3%; 10477 } 10478 10479 .banner-content-box h3 { 10480 font-size: clamp(0.7rem, 1.1vw, 1.1rem); 10481 line-height: 1.3; 10482 } 10483 10484 .banner-content-box p { 10485 font-size: clamp(0.6rem, 0.85vw, 0.85rem); 10486 line-height: 1.4; 10487 margin: 0.5em 0 0 0; 10488 } 10489 } 10490 10491 .banner-content-box .banner-cta { 10492 display: inline-block; 10493 margin-top: 0.15rem; 10494 padding: 0.25rem 0.5rem; 10495 font-size: 0.55rem; 10496 font-weight: 700; 10497 color: white; 10498 border: 1px solid white; 10499 border-radius: 0.2rem; 10500 transition: background-color 0.3s ease, color 0.3s ease; 10501 box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); 10502 white-space: nowrap; 10503 } 10504 10505 .banner-content-box .banner-cta:hover { 10506 background: white; 10507 color: black; 10508 } 10509 10510 /* Standalone CTA - Default uses hover styling of regular CTA */ 10511 .banner-cta-standalone { 10512 display: inline-block; 10513 margin-top: 0.15rem; 10514 padding: 0.25rem 0.5rem; 10515 font-size: 0.55rem; 10516 font-weight: 700; 10517 background: white; 10518 color: black; 10519 border: 1px solid white; 10520 border-radius: 0.2rem; 10521 transition: background-color 0.3s ease, color 0.3s ease, transform 0.2s ease; 10522 box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); 10523 white-space: nowrap; 10524 } 10525 10526 .banner-cta-standalone:hover { 10527 transform: scale(1.05); 10528 } 10529 10530 /* Responsive CTA padding - matches original Tailwind: px-4 py-2 / md:px-6 md:py-2 / lg:px-8 lg:py-3 / xl:px-10 xl:py-4 */ 10531 @media (min-width: 768px) { 10532 .banner-content-box .banner-cta, 10533 .banner-cta-standalone { 10534 padding: 0.5rem 1.5rem; 10535 font-size: 0.875rem; 10536 } 10537 } 10538 10539 @media (min-width: 1024px) { 10540 .banner-content-box .banner-cta, 10541 .banner-cta-standalone { 10542 padding: 0.75rem 2rem; 10543 } 10544 } 10545 10546 @media (min-width: 1280px) { 10547 .banner-content-box .banner-cta, 10548 .banner-cta-standalone { 10549 padding: 1rem 2.5rem; 10550 } 10551 } 10552 10553 /* Safe positioning area - prevents overlap with controls */ 10554 .banner-safe-zone { 10555 position: absolute; 10556 /* Inset from all edges */ 10557 top: 8%; 10558 left: 8%; 10559 right: 8%; 10560 bottom: 12%; /* Extra space for dots */ 10561 display: flex; 10562 pointer-events: none; 10563 } 10564 10565 @media (min-width: 768px) { 10566 .banner-safe-zone { 10567 top: 6%; 10568 left: 10%; 10569 right: 10%; 10570 bottom: 15%; 10571 } 10572 } 10573 10574 @media (min-width: 1024px) { 10575 .banner-safe-zone { 10576 top: 5%; 10577 left: 8%; 10578 right: 8%; 10579 bottom: 12%; 10580 } 10581 } 10582</style> 10583 10584<div class="banner-carousel-wrapper group" 10585 x-data="{ 10586 autoplayIntervalTime: 5000, 10587 slides: [{"id":641,"imgSrc":"https:\/\/media.esprit-ktm.com\/unsafe\/resize:fill:1920:1080\/gravity:sm\/plain\/local:\/\/media\/bannerMarketing\/espritktm\/KTM_8__1.png","imgSrcset":"https:\/\/media.esprit-ktm.com\/unsafe\/resize:fill:480:270\/gravity:sm\/plain\/local:\/\/media\/bannerMarketing\/espritktm\/KTM_8__1.png 480w, https:\/\/media.esprit-ktm.com\/unsafe\/resize:fill:960:540\/gravity:sm\/plain\/local:\/\/media\/bannerMarketing\/espritktm\/KTM_8__1.png 960w, https:\/\/media.esprit-ktm.com\/unsafe\/resize:fill:1440:810\/gravity:sm\/plain\/local:\/\/media\/bannerMarketing\/espritktm\/KTM_8__1.png 1440w, https:\/\/media.esprit-ktm.com\/unsafe\/resize:fill:1920:1080\/gravity:sm\/plain\/local:\/\/media\/bannerMarketing\/espritktm\/KTM_8__1.png 1920w","imgAlt":"Microfiches","title":"","description":"","ctaText":"","ctaUrl":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html","position":"bottom-right"},{"id":642,"imgSrc":"https:\/\/media.esprit-ktm.com\/unsafe\/resize:fill:1920:1080\/gravity:sm\/plain\/local:\/\/media\/bannerMarketing\/espritktm\/KTM_VETEMENTS_2026.png","imgSrcset":"https:\/\/media.esprit-ktm.com\/unsafe\/resize:fill:480:270\/gravity:sm\/plain\/local:\/\/media\/bannerMarketing\/espritktm\/KTM_VETEMENTS_2026.png 480w, https:\/\/media.esprit-ktm.com\/unsafe\/resize:fill:960:540\/gravity:sm\/plain\/local:\/\/media\/bannerMarketing\/espritktm\/KTM_VETEMENTS_2026.png 960w, https:\/\/media.esprit-ktm.com\/unsafe\/resize:fill:1440:810\/gravity:sm\/plain\/local:\/\/media\/bannerMarketing\/espritktm\/KTM_VETEMENTS_2026.png 1440w, https:\/\/media.esprit-ktm.com\/unsafe\/resize:fill:1920:1080\/gravity:sm\/plain\/local:\/\/media\/bannerMarketing\/espritktm\/KTM_VETEMENTS_2026.png 1920w","imgAlt":"Nouveaut\u00e9s","title":"","description":"","ctaText":"","ctaUrl":"https:\/\/www.esprit-ktm.com\/nouveautes-2022.html","position":"middle-right"},{"id":643,"imgSrc":"https:\/\/media.esprit-ktm.com\/unsafe\/resize:fill:1920:1080\/gravity:sm\/plain\/local:\/\/media\/bannerMarketing\/espritktm\/Muc_Off.png","imgSrcset":"https:\/\/media.esprit-ktm.com\/unsafe\/resize:fill:480:270\/gravity:sm\/plain\/local:\/\/media\/bannerMarketing\/espritktm\/Muc_Off.png 480w, https:\/\/media.esprit-ktm.com\/unsafe\/resize:fill:960:540\/gravity:sm\/plain\/local:\/\/media\/bannerMarketing\/espritktm\/Muc_Off.png 960w, https:\/\/media.esprit-ktm.com\/unsafe\/resize:fill:1440:810\/gravity:sm\/plain\/local:\/\/media\/bannerMarketing\/espritktm\/Muc_Off.png 1440w, https:\/\/media.esprit-ktm.com\/unsafe\/resize:fill:1920:1080\/gravity:sm\/plain\/local:\/\/media\/bannerMarketing\/espritktm\/Muc_Off.png 1920w","imgAlt":"Jeu concours","title":"","description":"","ctaText":"D\u00e9couvrir","ctaUrl":"https:\/\/www.esprit-ktm.com\/catalogsearch\/result?q=muc%20off","position":"bottom-center"}], 10588 currentSlideIndex: 1, 10589 isPaused: false, 10590 autoplayInterval: null, 10591 touchStartX: null, 10592 touchEndX: null, 10593 mouseStartX: null, 10594 mouseEndX: null, 10595 isDragging: false, 10596 wasDragged: false, 10597 swipeThreshold: 50, 10598 previous() { 10599 if (this.currentSlideIndex > 1) { 10600 this.currentSlideIndex = this.currentSlideIndex - 1 10601 } else { 10602 this.currentSlideIndex = this.slides.length 10603 } 10604 this.resetAutoplay() 10605 }, 10606 next(manual = true) { 10607 if (this.currentSlideIndex < this.slides.length) { 10608 this.currentSlideIndex = this.currentSlideIndex + 1 10609 } else { 10610 this.currentSlideIndex = 1 10611 } 10612 if (manual) this.resetAutoplay() 10613 }, 10614 autoplay() { 10615 this.autoplayInterval = setInterval(() => { 10616 if (!this.isPaused) { 10617 this.next(false) 10618 } 10619 }, this.autoplayIntervalTime) 10620 }, 10621 resetAutoplay() { 10622 clearInterval(this.autoplayInterval) 10623 this.autoplay() 10624 }, 10625 handleTouchStart(event) { 10626 this.touchStartX = event.touches[0].clientX 10627 }, 10628 handleTouchMove(event) { 10629 this.touchEndX = event.touches[0].clientX 10630 }, 10631 handleTouchEnd() { 10632 if(this.touchEndX){ 10633 if (this.touchStartX - this.touchEndX > this.swipeThreshold) { 10634 this.next() 10635 } 10636 if (this.touchStartX - this.touchEndX < -this.swipeThreshold) { 10637 this.previous() 10638 } 10639 this.touchStartX = null 10640 this.touchEndX = null 10641 } 10642 }, 10643 handleMouseDown(event) { 10644 event.preventDefault() 10645 this.isDragging = true 10646 this.mouseStartX = event.clientX 10647 this.mouseEndX = null 10648 }, 10649 handleMouseMove(event) { 10650 if (this.isDragging) { 10651 this.mouseEndX = event.clientX 10652 } 10653 }, 10654 handleMouseUp() { 10655 if (this.isDragging && this.mouseEndX !== null) { 10656 const diff = this.mouseStartX - this.mouseEndX 10657 if (Math.abs(diff) > 5) { 10658 this.wasDragged = true 10659 } 10660 if (diff > this.swipeThreshold) { 10661 this.next() 10662 } else if (diff < -this.swipeThreshold) { 10663 this.previous() 10664 } 10665 } 10666 this.isDragging = false 10667 this.mouseStartX = null 10668 this.mouseEndX = null 10669 }, 10670 handleClick(event) { 10671 if (this.wasDragged) { 10672 event.preventDefault() 10673 this.wasDragged = false 10674 } 10675 }, 10676 handleMouseLeave() { 10677 if (this.isDragging) { 10678 this.handleMouseUp() 10679 } 10680 this.isPaused = false 10681 } 10682 }" 10683 x-init="autoplay()" 10684 @mouseenter="isPaused = true" 10685 @mouseleave="handleMouseLeave()"> 10686 10687 <!-- Slides --> 10688 <div class="absolute inset-0 w-full h-full overflow-hidden rounded-lg select-none"
10689 :class="{ 'cursor-grabbing': isDragging, 'cursor-grab': !isDragging }" 10690 @touchstart="handleTouchStart($event)" 10691 @touchmove="handleTouchMove($event)" 10692 @touchend="handleTouchEnd()" 10693 @mousedown="handleMouseDown($event)" 10694 @mousemove="handleMouseMove($event)" 10695 @mouseup="handleMouseUp()"> 10696 <template x-for="(slide, index) in slides" :key="slide.id"> 10697 <div x-cloak 10698 x-show="currentSlideIndex == index + 1" 10699 class="absolute inset-0 w-full h-full" 10700 x-transition:enter="transition ease-out duration-500" 10701 x-transition:enter-start="opacity-0" 10702 x-transition:enter-end="opacity-100" 10703 x-transition:leave="transition ease-in duration-500" 10704 x-transition:leave-start="opacity-100" 10705 x-transition:leave-end="opacity-0"> 10706 10707 <!-- Content Overlay - Safe zone prevents overlap with controls --> 10708 <div class="banner-safe-zone z-10" 10709 :class="{ 10710 'items-start justify-start': slide.position === 'top-left', 10711 'items-start justify-center': slide.position === 'top-center', 10712 'items-start justify-end': slide.position === 'top-right', 10713 'items-center justify-start': slide.position === 'middle-left', 10714 'items-center justify-center': slide.position === 'middle-center', 10715 'items-center justify-end': slide.position === 'middle-right', 10716 'items-end justify-start': slide.position === 'bottom-left', 10717 'items-end justify-center': slide.position === 'bottom-center', 10718 'items-end justify-end': slide.position === 'bottom-right' 10719 }"> 10720 10721 <!-- Content Box - Fixed percentage width --> 10722 <div x-show="slide.title || slide.description" 10723 class="banner-content-box pointer-events-auto flex flex-col justify-center items-center gap-1"> 10724 10725 <h3 x-show="slide.title" x-html="slide.title"></h3> 10726 <p x-show="slide.description" x-html="slide.description"></p> 10727 <a x-show="slide.ctaText && slide.ctaUrl" 10728 :href="slide.ctaUrl" 10729 class="banner-cta" 10730 x-html="slide.ctaText"></a> 10731 </div> 10732 10733 <!-- Standalone Button --> 10734 <a x-show="!slide.title && !slide.description && slide.ctaText && slide.ctaUrl" 10735 :href="slide.ctaUrl" 10736 class="banner-cta-standalone pointer-events-auto" 10737 x-html="slide.ctaText"></a> 10738 </div> 10739 10740 <!-- Image --> 10741 <template x-if="slide.ctaUrl"> 10742 <a :href="slide.ctaUrl" class="block absolute inset-0 w-full h-full z-0" @click="handleClick($event)"> 10743 <img class="block w-full h-full object-cover" 10744 :src="slide.imgSrc" 10745 :srcset="slide.imgSrcset" 10746 sizes="100vw" 10747 decoding="async" 10748 :alt="slide.imgAlt" 10749 draggable="false" /> 10750 </a> 10751 </template> 10752 <template x-if="!slide.ctaUrl"> 10753 <img class="absolute block w-full h-full inset-0 object-cover" 10754 :src="slide.imgSrc" 10755 :srcset="slide.imgSrcset" 10756 sizes="100vw" 10757 decoding="async" 10758 :alt="slide.imgAlt" 10759 draggable="false" /> 10760 </template> 10761 </div> 10762 </template> 10763 </div> 10764 10765 <!-- Indicators --> 10766 <div class="absolute rounded-full bottom-3 md:bottom-5 left-1/2 z-20 flex -translate-x-1/2 gap-4 md:gap-3 bg-black/20 backdrop-blur-sm border border-white/10 shadow-lg px-3 py-2" style="-webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);" role="group" aria-label="slides"> 10767 <template x-for="(slide, index) in slides"> 10768 <button class="size-2 md:size-3 rounded-full transition" 10769 x-on:click="currentSlideIndex = index + 1; resetAutoplay()" 10770 x-bind:class="[currentSlideIndex === index + 1 ? 'bg-white scale-125' : 'bg-white/50 hover:bg-white/80']" 10771 x-bind:aria-label="'slide ' + (index + 1)"></button> 10772 </template> 10773 </div> 10774 10775 <!-- Navigation Chevrons --> 10776 <template x-if="slides.length > 1"> 10777 <div class="hidden md:block"> 10778 <button type="button" class="absolute left-5 top-1/2 z-20 flex rounded-full -translate-y-1/2 items-center justify-center bg-black/20 backdrop-blur-sm border border-white/10 shadow-lg p-1 md:p-2 text-white transition hover:bg-black/60" style="-webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);" aria-label="previous slide" x-on:click="previous()"> 10779 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-4 h-4 md:w-6 md:h-6 stroke-current stroke-2 fill-none stroke-white" width="24" height="24" role="img"> 10780 <path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"/> 10781<title>chevron-left</title></svg> 10782 </button> 10783 <button type="button" class="absolute right-5 top-1/2 z-20 flex rounded-full -translate-y-1/2 items-center justify-center bg-black/20 backdrop-blur-sm border border-white/10 shadow-lg p-1 md:p-2 text-white transition hover:bg-black/60" style="-webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);" aria-label="next slide" x-on:click="next()"> 10784 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-4 h-4 md:w-6 md:h-6 stroke-current stroke-2 fill-none stroke-white" width="24" height="24" role="img"> 10785 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 10786<title>chevron-right</title></svg> 10787 </button> 10788 </div> 10789 </template> 10790</div> 10791 10792 </div> 10793 <!-- RIGHT : PARTFINDER --> 10794 <div class="cmsp182-w-full cmsp182-mt-5 cmsp182-lg:mt-0 cmsp182-lg:col-span-1 cmsp182-h-full"> 10795 <div class="cmsp182-lg:bg-white cmsp182-lg:shadow-xl cmsp182-rounded-lg cmsp182-lg:flex cmsp182-lg:border
10795cmsp182-lg:border-zinc-200 cmsp182-w-full cmsp182-flex cmsp182-flex-col cmsp182-h-full"> 10796 <!-- h-full helps it fill the grid cell --> 10797 10798<!-- Load dependencies -->
10799<script src="https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/Mageants_PartFinder/js/hyva-model-search-integrated.min.js"></script>
10799 10800<!-- Selection tracking beacon, shared by every selection path (main form, 10801 quick search, PDP modal, garage page). Self-guarded against double load. -->
10802<script src="https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/Mageants_PartFinder/js/partfinder-track.min.js"></script>
10802 10803 10804<!-- Inline PartFinder JS to avoid extra request and double initialization -->
10805<script> 10806 10807window.PartFinder = function(propsConfig, propsSearchModels, propsFormKey) { 10808 const config = propsConfig || window.partFinderConfig || {}; 10809 const searchModels = propsSearchModels || window.partFinderSearchModels || []; 10810 const formKey = propsFormKey || window.FORM_KEY || ''; 10811 // Helper functions 10812 const normalizeVehicleName = (modelName) => { 10813 if (!modelName) return ''; 10814 10815 // Decode URL encoding 10816 let normalized = decodeURIComponent(modelName); 10817 10818 // Extract year from the beginning (4 digits) 10819 const yearMatch = normalized.match(/^(\d{4})/); 10820 const year = yearMatch ? yearMatch[1] : ''; 10821 10822 // Remove the year from the beginning and clean up 10823 let nameWithoutYear = normalized.replace(/^(\d{4})\s*/, '').trim(); 10824 10825 // Remove any duplicate year that appears later in the string 10826 if (year) { 10827 const yearRegex = new RegExp(`\\b${year}\\b`, 'g'); 10828 nameWithoutYear = nameWithoutYear.replace(yearRegex, '').trim(); 10829 // Clean up multiple spaces 10830 nameWithoutYear = nameWithoutYear.replace(/\s+/g, ' ').trim(); 10831 } 10832 10833 // Rebuild the name with year at the start 10834 return year ? `${year} ${nameWithoutYear}`.trim() : nameWithoutYear; 10835 }; 10836 10837 const setPartfinderCookie = (key, value) => { 10838 const days = 30; // Cookie lifetime in days 10839 10840 if (typeof hyva !== 'undefined' && hyva.setCookie) { 10841 // hyva.setCookie(name, value, days, skipSetDomain) 10842 // Use skipSetDomain=true to avoid domain conflicts 10843 hyva.setCookie(key, value, days, true); 10844 } else { 10845 console.warn('Hyva not available, using fallback document.cookie'); 10846 // Fallback: Set cookie without domain (uses current domain only, no subdomain sharing) 10847 const expires = new Date(); 10848 expires.setTime(expires.getTime() + (days * 24 * 60 * 60 * 1000)); 10849 document.cookie = `${key}=${encodeURIComponent(value)}; path=/; expires=${expires.toUTCString()}; SameSite=Lax`; 10850 } 10851 }; 10852 10853 const getPartfinderCookie = (key) => { 10854 if (typeof hyva !== 'undefined' && hyva.getCookie) { 10855 const value = hyva.getCookie(key); 10856 return value; 10857 } else { 10858 console.warn('Hyva not available, using fallback document.cookie'); 10859 const cookies = document.cookie.split(';'); 10860 for (let cookie of cookies) { 10861 const [name, value] = cookie.trim().split('='); 10862 if (name === key) { 10863 return decodeURIComponent(value); 10864 } 10865 } 10866 return null; 10867 } 10868 }; 10869 10870 const clearPartfinderCookie = (key) => { 10871 // NUCLEAR OPTION FIRST: Clear ALL possible domain variations 10872 // This ensures we clear cookies that may have been set with different domain logic 10873 const currentDomain = window.location.hostname; 10874 10875 // Get all possible domain variations to clear 10876 const domainsToTry = [ 10877 undefined, // No domain (current exact domain) 10878 currentDomain, // Explicit current domain 10879 '.' + currentDomain, // Dot-prefixed (subdomain-wide) 10880 ]; 10881 10882 // Also try parent domain if we're on a subdomain 10883 const domainParts = currentDomain.split('.'); 10884 if (domainParts.length > 2) { 10885 // If we're on www.example.com or shop.example.com, also try .example.com 10886 const parentDomain = '.' + domainParts.slice(-2).join('.'); 10887 domainsToTry.push(parentDomain); 10888 } 10889 10890 // Clear with all domain variations 10891 domainsToTry.forEach(domain => { 10892 const domainAttr = domain ? `; domain=${domain}` : ''; 10893 // Try with and without SameSite 10894 document.cookie = `${key}=; path=/${domainAttr}; expires=Thu, 01 Jan 1970 00:00:00 GMT`; 10895 document.cookie = `${key}=; path=/${domainAttr}; expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Lax`; 10896 document.cookie = `${key}=; path=/${domainAttr}; expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Strict`; 10897 document.cookie = `${key}=; path=/${domainAttr}; expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=None; Secure`; 10898 }); 10899 10900 // THEN try Hyvä's method (but it might not work as expected) 10901 if (typeof hyva !== 'undefined' && hyva.setCookie) { 10902 try { 10903 hyva.setCookie(key, '', -1, true); 10904 } catch (e) { 10905 console.warn('Hyva setCookie failed during clear:', e); 10906 } 10907 } 10908 }; 10909 10910 const isYearOption = (label) => { 10911 if (!label) return false;
10912 const normalized = label.toLowerCase().normalize('NFD').replace(/[\u0300-\u036f]/g, ''); 10913 return normalized.includes('year') 10914 || normalized.includes('annee') 10915 || normalized.includes('ano') 10916 || normalized.includes('jahr') 10917 || normalized.includes('año'); 10918 }; 10919 10920 return { 10921 finderOptions: config.finderOptions, 10922 selectedModel: '', 10923 isSubmitting: false, 10924 vinValue: '', 10925 plateValue: '', 10926 // Inline error shown under the plate/VIN slot ('' = no error) 10927 slotError: '', 10928 // Active mode of the top "exact identifier" slot: 'plate' | 'vin' | '' 10929 slotMode: '', 10930 // Active browse method when tabs are shown: 'name' | 'cascade' 10931 browseMode: 'name', 10932 // Reactive page state properties 10933 isGaragePage: false, 10934 isHomepage: false, 10935 isPiecesOrigine: false, 10936 isVinSearchEnabled: false, 10937 isPlateSearchEnabled: false, 10938 // Form titles 10939 partfinderFormTitle: config.partfinderFormTitle, 10940 garageFormTitle: config.garageFormTitle, 10941 // Garage vehicle functionality 10942 garageVehicles: [], 10943 selectedGarageVehicle: '', 10944 isLoadingGarageVehicles: false, 10945 // Only keep showActions for mobile toggle functionality 10946 showActions: false, 10947 // Mobile collapsible form functionality 10948 isScreenMobile: false, 10949 isMobileCollapsed: true, 10950 // Enable skeleton loader initially if no model selected 10951 ready: config.selectedModel ? true : false, 10952 // Tab system for search 10953 activeTab: 'search', 10954 searchModels: searchModels || [], 10955 searchQuery: '', 10956 10957 // Expose helper to template 10958 normalizeVehicleName, 10959 10960 // Garage pill label: the saved label minus the year (shown greyed, 10961 // separately) so "2024 KTM 390 Duke" reads as "KTM 390 Duke" + "2024". 10962 garageVehicleName(vehicle) { 10963 const label = (vehicle?.ham_model_label || '').trim(); 10964 const year = String(vehicle?.ham_model_year || '').trim(); 10965 if (!year) return label; 10966 return label 10967 .replace(new RegExp('\\b' + year + '\\b', 'g'), '') 10968 .replace(/\s+/g, ' ') 10969 .trim(); 10970 }, 10971 10972 async init() { 10973 // Initialize reactive page state 10974 this.updatePageState(); 10975 // Listen for navigation changes 10976 window.addEventListener('popstate', () => { 10977 this.updatePageState(); 10978 }); 10979 // Mobile detection and responsive behavior 10980 this.updateMobileState(); 10981 // Listen for window resize to update mobile state 10982 window.addEventListener('resize', () => { 10983 this.updateMobileState(); 10984 }); 10985 // Initialize selected model based on page type 10986 if (!this.isGaragePage) { 10987 this.selectedModel = config.selectedModel || getPartfinderCookie('selected_model') || ''; 10988 } 10989 10990 // If we have a selected model (from config or cookie), mark as ready immediately 10991 if (this.selectedModel) { 10992 this.ready = true; 10993 } 10994 10995 // Stay in sync when the model is changed/reset from ANY component 10996 // (modal, popup, another instance). Replaces the old full-page reload: 10997 // the form selectors must hide and the selected-model card must show. 10998 window.addEventListener('partfinder-changed', () => this.syncSelectedModelFromCookie()); 10999 window.addEventListener('partfinder-reset', () => this.resetSelectedModelState()); 11000 11001 // Mirror the quick-search query (dispatched by the autocomplete 11002 // sub-components) so the banner can dim the cascade while typing. 11003 window.addEventListener('search-query-updated', (event) => { 11004 this.searchQuery = event.detail || ''; 11005 }); 11006 11007 // Watch for login state changes and act when it becomes true 11008 this.$watch('$store.main.isUserLoggedIn', async (isLoggedIn) => { 11009 if (isLoggedIn && !this.isGaragePage) { 11010 await this.loadGarageVehicles(); 11011 } 11012 }); 11013 // If already logged in (SPA navigation), load immediately 11014 if (this.$store.main.isUserLoggedIn && !this.isGaragePage) { 11015 await this.loadGarageVehicles(); 11016 } 11017 if (!this.finderOptions[0]?.values?.length && !this.selectedModel) { 11018 await this.loadFirstOption(); 11019 } 11020 this.attachMethods(); 11021 }, 11022 // Update all reactive page state properties 11023 updatePageState() { 11024 const currentPath = window.location.pathname; 11025 // Garage + legacy result routes keep the form in "fresh search" mode 11026 // (no selected-model card). Anything else (categories, search, home) 11027 // syncs with the selected_model cookie. 11028 this.isGaragePage = currentPath.includes('/partfinder/garage') 11029 || currentPath.includes('/partfinder/result'); 11030 this.isHomepage = typeof config.isHomepage === 'boolean' 11031 ? config.isHomepage 11032 : currentPath === '/'; 11033 // Use server-side category check for Pièces Origine 11034 this.isPiecesOrigine = config.isPiecesOrigineCategory; 11035 // VIN search is enabled by default (can be overridden by server config) 11036 this.isVinSearchEnabled = config.initialVinSearchEnabled; 11037 // Plate search enabled from server config 11038 this.isPlateSearchEnabled = config.initialPlateSearchEnabled; 11039 // Initialise the slot mode once: plate has priority over VIN. 11040 // Only set when empty so a user's manual toggle survives popstate. 11041 if (!this.slotMode) { 11042 this.slotMode = this.isPlateSearchEnabled 11043 ? 'plate' 11044 : (this.isVinSearchEnabled ? 'vin' : ''); 11045 } 11046 },
11047 // Sync this instance's display with the selected_model cookie when a model 11048 // is picked elsewhere (modal/popup/other instance). Hides the selectors form 11049 // and shows the selected-model card without a page reload. 11050 syncSelectedModelFromCookie() { 11051 const model = getPartfinderCookie('selected_model') || ''; 11052 this.selectedModel = model; 11053 if (model) { 11054 this.ready = true; 11055 this.isMobileCollapsed = true; 11056 } 11057 }, 11058 // Reset this instance back to the selectors form when the model is cleared 11059 // from anywhere (replaces the old reload on reset). 11060 resetSelectedModelState() { 11061 this.selectedModel = ''; 11062 this.vinValue = ''; 11063 this.plateValue = ''; 11064 this.slotError = ''; 11065 this.selectedGarageVehicle = ''; 11066 this.finderOptions.forEach((option) => { 11067 option.selectedValue = ''; 11068 if (option.level > 0) { 11069 option.isDisabled = true; 11070 option.values = []; 11071 } 11072 }); 11073 if (!this.finderOptions[0]?.values?.length) { 11074 this.loadFirstOption(); 11075 } 11076 this.ready = true; 11077 }, 11078 // Update mobile state based on screen size 11079 updateMobileState() { 11080 this.isScreenMobile = !window.matchMedia('(min-width: 1280px)').matches; 11081 }, 11082 // Load garage vehicles for logged-in users 11083 async loadGarageVehicles() { 11084 if (!this.$store.main.isUserLoggedIn) return; 11085 this.isLoadingGarageVehicles = true; 11086 try { 11087 const response = await fetch(config.urls.garageOptions, { 11088 method: 'GET', 11089 headers: { 11090 'X-Requested-With': 'XMLHttpRequest' 11091 } 11092 }); 11093 if (response.ok) { 11094 const data = await response.json(); 11095 // Parse the JSON string if it's double-encoded 11096 const vehicles = typeof data === 'string' ? JSON.parse(data) : data; 11097 this.garageVehicles = vehicles?.items || []; 11098 } else { 11099 console.error('Failed to load garage vehicles:', response.statusText); 11100 } 11101 } catch (error) { 11102 console.error('Error loading garage vehicles:', error); 11103 } finally { 11104 this.isLoadingGarageVehicles = false; 11105 } 11106 }, 11107 // Handle garage vehicle selection 11108 async handleGarageVehicleSelection() { 11109 if (!this.selectedGarageVehicle) return; 11110 const selectedVehicle = this.garageVehicles.find(v => 11111 String(v.ham_model_id) === String(this.selectedGarageVehicle) 11112 ); 11113 if (selectedVehicle) { 11114 // Extract model name from the label (remove year if present) 11115 let modelName = selectedVehicle.ham_model_label; 11116 if (selectedVehicle.ham_model_year) { 11117 // Remove year from the beginning of the label if present 11118 modelName = modelName.replace(new RegExp('^' + selectedVehicle.ham_model_year + '\\s*'), '').trim(); 11119 } 11120 // Create proper findpart string format following the same pattern as dropdown selections 11121 // Format: year-modelname-valueid (same as VIN search and dropdown format) 11122 const year = selectedVehicle.ham_model_year || ''; 11123 const modelNameFormatted = modelName.toLowerCase().replace(/\s+/g, ''); 11124 const valueId = selectedVehicle.ham_model_id; 11125 const findpartString = `${year}-${modelNameFormatted}-${valueId}`.toLowerCase(); 11126 // Store in cookies 11127 setPartfinderCookie('current_findpart', findpartString); 11128 setPartfinderCookie('selected_model', selectedVehicle.ham_model_label); 11129 11130 // Dispatch event for compatibility badges to update 11131 window.dispatchEvent(new CustomEvent('partfinder-changed', { detail: { selectedModel: selectedVehicle.ham_model_label } })); 11132 11133 // Stats: a vehicle reused from the garage (fire-and-forget) 11134 window.partFinderTrackSelection?.('garage', { 11135 valueId: valueId, 11136 label: selectedVehicle.ham_model_label, 11137 year: year 11138 }); 11139 11140 // Clear other form selections 11141 this.vinValue = ''; 11142 this.finderOptions.forEach(option => { 11143 option.selectedValue = ''; 11144 if (option.level > 0) { 11145 option.isDisabled = true; 11146 option.values = []; 11147 } 11148 }); 11149 // Check if we're on catalog search results page 11150 // Note: isCatalogSearchPage needs to be passed or detected.
11151 // In the original code it was injected via PHP. 11152 // We can detect it from URL or window config. 11153 const isCatalogSearchPage = window.location.pathname.includes('catalogsearch'); // Simple detection 11154 11155 if (isCatalogSearchPage) { 11156 // On search results page: set selected model and reload 11157 this.selectedModel = selectedVehicle.ham_model_label; 11158 window.location.reload(); 11159 return; 11160 } 11161 11162 // If on homepage, redirect to Pièces Origine category 11163 if (this.isHomepage && config.urls.piecesOrigine) { 11164 window.location.href = config.urls.piecesOrigine; 11165 return; 11166 } 11167 11168 // Category / Pièces Origine pages: no full-page reload. The page is 11169 // cached once at the CDN; the product grid is swapped in place via the 11170 // "partfinder-changed" event (hole-punch on /partfinder/category/grid). 11171 this.selectedModel = selectedVehicle.ham_model_label; 11172 } 11173 }, 11174 async loadFirstOption() { 11175 const firstOption = this.finderOptions[0]; 11176 if (!firstOption) return; 11177 firstOption.isLoading = true; 11178 try { 11179 const response = await fetch(firstOption.optionUrl + 'parent_id/0/level/0'); 11180 const data = await response.json(); 11181 if (data.error) { 11182 if (window.dispatchMessages) { 11183 window.dispatchMessages([{ 11184 type: 'error', 11185 text: data.message 11186 }], 5000); 11187 } 11188 return; 11189 } 11190 firstOption.values = data; 11191 firstOption.isLoading = false; 11192 this.ready = true; 11193 } catch (error) { 11194 this.ready = true; 11195 firstOption.isLoading = false; 11196 } 11197 }, 11198 attachMethods() { 11199 for (const finderOption of this.finderOptions) { 11200 finderOption.toggleLoading = () => { 11201 finderOption.isLoading = !finderOption.isLoading; 11202 }; 11203 finderOption.handleChange = async () => { 11204 const nextLevel = finderOption.level + 1; 11205 const nextOption = this.finderOptions[nextLevel]; 11206 if (!nextOption || !finderOption.selectedValue) { 11207 return; 11208 } 11209 nextOption.toggleLoading(); 11210 nextOption.values = []; 11211 try { 11212 const selectedValue = String(finderOption.selectedValue); 11213 const selectedObj = finderOption.values.find((v) => String(v.id) === selectedValue); 11214 const selectedText = selectedObj ? selectedObj.text : ''; 11215 const response = await fetch( 11216 `${nextOption.optionUrl}parent_id/${selectedValue}/value/${encodeURIComponent(selectedText)}/level/${nextLevel}` 11217 ); 11218 const data = await response.json(); 11219 if (data.error) { 11220 if (window.dispatchMessages) { 11221 window.dispatchMessages([{ 11222 type: 'error', 11223 text: data.message 11224 }], 5000); 11225 } 11226 nextOption.toggleLoading(); 11227 return; 11228 } 11229 nextOption.values = data; 11230 nextOption.selectedValue = ''; 11231 nextOption.isDisabled = false; 11232 nextOption.toggleLoading(); 11233 } catch (error) { 11234 nextOption.toggleLoading(); 11235 } 11236 }; 11237 } 11238 }, 11239 // Handle form submission 11240 async handleSubmit(event) { 11241 this.isSubmitting = true; 11242 // A completed cascade always wins; a leftover VIN typed in the slot 11243 // must not hijack a cascade submit. The VIN path only applies when 11244 // nothing is selected in the cascade. 11245 const hasCascadeSelection = this.finderOptions.some((option) => option.selectedValue); 11246 if (!hasCascadeSelection && this.vinValue?.trim()) { 11247 await this.handleVinSearch(event); 11248 return; 11249 } 11250 let findpartString = ''; 11251 let lastSelectedId = ''; 11252 let vehicleName = ''; 11253 let vehicleYear = ''; 11254 // Determine year and model indices dynamically from option labels 11255 // so stores with reversed or extra cascade levels still work. 11256 const yearIndex = this.finderOptions.findIndex(o => isYearOption(o.label)); 11257 const nonYearOptions = this.finderOptions 11258 .map((o, i) => ({ index: i, label: o.label })) 11259 .filter(o => !isYearOption(o.label)); 11260 const modelIndex = nonYearOptions.length > 0 11261 ? nonYearOptions[nonYearOptions.length - 1].index 11262 : this.finderOptions.length - 1; 11263 this.finderOptions.forEach((option, index) => { 11264 if (option.selectedValue) { 11265 const selectedOption = option.values.find(v => String(v.id) === String(option.selectedValue)); 11266 if (selectedOption) { 11267 findpartString += selectedOption.text.toLowerCase().replace(/\s+/g, '') + '-'; 11268 lastSelectedId = option.selectedValue; 11269 // Store year and model separately 11270 if (index === yearIndex) { 11271 vehicleYear = selectedOption.text; 11272 } else if (index === modelIndex) { 11273 vehicleName = selectedOption.text; 11274 } 11275 } 11276 } 11277 }); 11278 if (!lastSelectedId) { 11279 // Nothing selected (and no VIN): don't navigate, release the form. 11280 event.preventDefault(); 11281 this.isSubmitting = false;
11282 return; 11283 } 11284 { 11285 findpartString += lastSelectedId; 11286 // Store in cookies only 11287 setPartfinderCookie('current_findpart', findpartString); 11288 setPartfinderCookie('selected_model', vehicleName); 11289 11290 // Dispatch event for compatibility badges to update 11291 window.dispatchEvent(new CustomEvent('partfinder-changed', { detail: { selectedModel: vehicleName } })); 11292 11293 // Stats: a model picked through the cascading selectors 11294 // (fire-and-forget, never awaited â see partfinder-track.js) 11295 window.partFinderTrackSelection?.('cascade', { 11296 valueId: lastSelectedId, 11297 label: vehicleName, 11298 year: vehicleYear 11299 }); 11300 11301 if (this.$store.main.isUserLoggedIn) { 11302 event.preventDefault(); 11303 const result = await this.saveVehicleToGarage({ 11304 vehicle_name: vehicleName, 11305 vehicle_year: vehicleYear, 11306 vehicle_id: lastSelectedId 11307 }, findpartString); 11308 // this.selectedModel = vehicleName; 11309 // Check if we're on catalog search results page 11310 const isCatalogSearchPage = window.location.pathname.includes('catalogsearch'); 11311 if (isCatalogSearchPage) { 11312 // On search results page: refresh to show filtered results 11313 event.preventDefault(); 11314 window.location.reload(); 11315 return; 11316 } 11317 11318 // If on homepage, redirect to Pièces Origine category 11319 if (this.isHomepage && config.urls.piecesOrigine) { 11320 event.preventDefault(); 11321 window.location.href = config.urls.piecesOrigine; 11322 return; 11323 } 11324 11325 // Category / Pièces Origine pages: no reload, the grid is 11326 // hole-punched via "partfinder-changed". 11327 event.preventDefault(); 11328 this.isSubmitting = false; 11329 this.selectedModel = vehicleName; 11330 } else { 11331 // Check if we're on catalog search results page 11332 const isCatalogSearchPage = window.location.pathname.includes('catalogsearch'); 11333 if (isCatalogSearchPage) { 11334 // On search results page: refresh to show filtered results 11335 event.preventDefault(); 11336 window.location.reload(); 11337 return; 11338 } 11339 11340 // If on homepage, redirect to Pièces Origine category 11341 if (this.isHomepage && config.urls.piecesOrigine) { 11342 event.preventDefault(); 11343 window.location.href = config.urls.piecesOrigine; 11344 return; 11345 } 11346 11347 // Category / Pièces Origine pages: no reload, the grid is 11348 // hole-punched via "partfinder-changed". 11349 event.preventDefault(); 11350 this.isSubmitting = false; 11351 this.selectedModel = vehicleName; 11352 } 11353 } 11354 }, 11355 // Handle VIN search 11356 async handleVinSearch(event) { 11357 event.preventDefault(); 11358 const vinValue = this.vinValue.trim(); 11359 try { 11360 const formData = new FormData(); 11361 formData.append('input-vin', vinValue); 11362 formData.append('form_key', formKey); 11363 // Search-log dimensions: only the rendering side knows them 11364 formData.append('finder_id', String(config.finderId || '')); 11365 formData.append('page_type', String(config.pageType || '')); 11366 const response = await fetch(config.urls.vinSearch, { 11367 method: 'POST', 11368 body: formData, 11369 headers: { 11370 'X-Requested-With': 'XMLHttpRequest' 11371 } 11372 }); 11373 if (response.ok) { 11374 const data = await response.json(); 11375 if (data.success) { 11376 // Check if we're on catalog search results page 11377 const isCatalogSearchPage = window.location.pathname.includes('catalogsearch'); 11378 if (isCatalogSearchPage) { 11379 // On search results page: just set the selected model and refresh 11380 if (data.vehicleName) { 11381 this.selectedModel = data.vehicleName; 11382 } 11383 window.location.reload(); 11384 return; 11385 } 11386 11387 // If on homepage, redirect to Pièces Origine category 11388 if (this.isHomepage && config.urls.piecesOrigine) { 11389 window.location.href = config.urls.piecesOrigine; 11390 return; 11391 } 11392 11393 // Category / Pièces Origine pages: no reload. The cookie 11394 // "current_findpart" is set by the VIN search response; notify 11395 // the grid so it hole-punches the filtered views in place. 11396 if (data.vehicleName) { 11397 this.selectedModel = data.vehicleName; 11398 } 11399 window.dispatchEvent(new CustomEvent('partfinder-changed', { detail: { selectedModel: data.vehicleName || '' } })); 11400 this.isSubmitting = false;
11401 } else { 11402 // Inline error under the slot, next to where the user is looking 11403 this.slotError = data.message || config.messages.unexpectedError; 11404 this.isSubmitting = false; 11405 } 11406 } else { 11407 this.slotError = config.messages.unexpectedError; 11408 this.isSubmitting = false; 11409 } 11410 } catch (error) { 11411 this.slotError = config.messages.unexpectedError; 11412 this.isSubmitting = false; 11413 } 11414 }, 11415 // Handle Plate search 11416 async searchByPlate() { 11417 if (!this.plateValue?.trim()) return; 11418 11419 this.isSubmitting = true; 11420 const plateValue = this.plateValue.trim().toUpperCase(); 11421 11422 try { 11423 const formData = new FormData(); 11424 formData.append('input-plate', plateValue); 11425 formData.append('form_key', formKey); 11426 // Search-log dimensions: only the rendering side knows them 11427 formData.append('finder_id', String(config.finderId || '')); 11428 formData.append('page_type', String(config.pageType || '')); 11429 11430 const response = await fetch(config.urls.plateSearch || config.urls.vinSearch, { 11431 method: 'POST', 11432 body: formData, 11433 headers: { 11434 'X-Requested-With': 'XMLHttpRequest' 11435 } 11436 }); 11437 11438 if (response.ok) { 11439 const data = await response.json(); 11440 if (data.success) { 11441 // Check if we're on catalog search results page 11442 const isCatalogSearchPage = window.location.pathname.includes('catalogsearch'); 11443 if (isCatalogSearchPage) { 11444 if (data.vehicleName) { 11445 this.selectedModel = data.vehicleName; 11446 } 11447 window.location.reload(); 11448 return; 11449 } 11450 11451 // If on homepage, redirect to Pièces Origine category 11452 if (this.isHomepage && config.urls.piecesOrigine) { 11453 window.location.href = config.urls.piecesOrigine; 11454 return; 11455 } 11456 11457 // Category / Pièces Origine pages: no reload. Notify the grid 11458 // so it hole-punches the filtered views in place. 11459 if (data.vehicleName) { 11460 this.selectedModel = data.vehicleName; 11461 } 11462 window.dispatchEvent(new CustomEvent('partfinder-changed', { detail: { selectedModel: data.vehicleName || '' } })); 11463 this.isSubmitting = false; 11464 } else { 11465 // Inline error under the slot, next to where the user is looking 11466 this.slotError = data.message || config.messages.unexpectedError; 11467 this.isSubmitting = false; 11468 } 11469 } else { 11470 this.slotError = config.messages.unexpectedError; 11471 this.isSubmitting = false; 11472 } 11473 } catch (error) { 11474 console.error('Plate search error:', error); 11475 this.slotError = config.messages.unexpectedError; 11476 this.isSubmitting = false; 11477 } 11478 }, 11479 // Whether the user has started picking in the cascade selectors. 11480 // Used by the desktop split banner to dim the other browse method. 11481 cascadeStarted() { 11482 return this.finderOptions.some((option) => option.selectedValue); 11483 }, 11484 // Toggle the top slot between plate and VIN. Each mode keeps its own 11485 // typed value so switching back doesn't lose the input. 11486 toggleSlotMode() { 11487 this.slotMode = this.slotMode === 'plate' ? 'vin' : 'plate'; 11488 this.slotError = ''; 11489 }, 11490 // Normalise the plate while typing: uppercase, strip anything that is 11491 // not a letter/digit/dash/space/dot. Clears the inline error. 11492 onPlateInput() { 11493 this.plateValue = this.plateValue.toUpperCase().replace(/[^A-Z0-9\-\s.]/g, ''); 11494 this.slotError = ''; 11495 }, 11496 // Normalise the VIN while typing: uppercase, alphanumerics only. 11497 onVinInput() { 11498 this.vinValue = this.vinValue.toUpperCase().replace(/[^A-Z0-9]/g, ''); 11499 this.slotError = ''; 11500 }, 11501 // Client-side format check before hitting the server. Accepts the SIV 11502 // format (AB-123-CD) and the old FNI format (123 ABC 75), separators 11503 // optional. Returns an error message or '' when valid. 11504 validateSlot() { 11505 if (this.slotMode === 'plate') { 11506 const plate = this.plateValue.replace(/[^A-Z0-9]/g, ''); 11507 if (!/^[A-Z]{2}\d{3}[A-Z]{2}$/.test(plate) && !/^\d{1,4}[A-Z]{1,3}\d{2,3}$/.test(plate)) { 11508 return config.messages.invalidPlate || 'Invalid plate format'; 11509 } 11510 } else { 11511 if (this.vinValue.length !== 17) { 11512 return config.messages.invalidVin || 'Invalid VIN'; 11513 } 11514 } 11515 return ''; 11516 }, 11517 // Submit the top slot according to the active mode. 11518 submitSlot(event) { 11519 this.slotError = this.validateSlot(); 11520 if (this.slotError) { 11521 return; 11522 } 11523 if (this.slotMode === 'plate') { 11524 this.searchByPlate(); 11525 } else { 11526 this.handleVinSearch(event); 11527 } 11528 }, 11529 // Save vehicle to garage 11530 async saveVehicleToGarage(vehicleData, findpartString) { 11531 const garageData = { 11532 vehicle_in_garage: 1, 11533 form_key: formKey, 11534 findpart: findpartString || '', 11535 vehicle_name: vehicleData.vehicle_name || this.selectedModel || '', 11536 vehicle_year: vehicleData.vehicle_year || '', 11537 vehicle_id: vehicleData.vehicle_id || '' 11538 }; 11539 try { 11540 const response = await fetch(config.urls.garageAdd, { 11541 method: 'POST', 11542 headers: { 11543 'Content-Type': 'application/x-www-form-urlencoded', 11544 'X-Requested-With': 'XMLHttpRequest' 11545 }, 11546 body: new URLSearchParams(garageData) 11547 }); 11548 return await response.json(); 11549 } catch (error) { 11550 throw error; 11551 } 11552 }, 11553 // Add selected vehicle to garage (for garage pages) 11554 async addToGarage() { 11555 this.isSubmitting = true; 11556 try { 11557 let findpartString = ''; 11558 let lastSelectedId = ''; 11559 let vehicleName = ''; 11560 let vehicleYear = ''; 11561 // Determine year and model indices dynamically from option labels 11562 // so stores with reversed or extra cascade levels still work. 11563 const yearIndex = this.finderOptions.findIndex(o => isYearOption(o.label)); 11564 const nonYearOptions = this.finderOptions 11565 .map((o, i) => ({ index: i, label: o.label })) 11566 .filter(o => !isYearOption(o.label)); 11567 const modelIndex = nonYearOptions.length > 0 11568 ? nonYearOptions[nonYearOptions.length - 1].index 11569 : this.finderOptions.length - 1; 11570 // Build findpart string from current form selection 11571 this.finderOptions.forEach((option, index) => { 11572 if (option.selectedValue) { 11573 const selectedOption = option.values.find(v => String(v.id) === String(option.selectedValue)); 11574 if (selectedOption) { 11575 findpartString += selectedOption.text.toLowerCase().replace(/\s+/g, '') + '-'; 11576 lastSelectedId = option.selectedValue; 11577 // Store year and model separately 11578 if (index === yearIndex) { 11579 vehicleYear = selectedOption.text; 11580 } else if (index === modelIndex) { 11581 vehicleName = selectedOption.text; 11582 } 11583 } 11584 } 11585 }); 11586 if (this.vinValue?.trim()) { 11587 // For VIN search, use the VIN value 11588 findpartString = this.vinValue.trim(); 11589 } else if (lastSelectedId) { 11590 // For regular selection, complete the findpart string 11591 findpartString += lastSelectedId; 11592 } 11593 // Make request to partfinder add 11594 const finalVehicleName = vehicleName || this.selectedModel; 11595 const result = await this.saveVehicleToGarage({ 11596 vehicle_name: finalVehicleName, 11597 vehicle_year: vehicleYear, 11598 vehicle_id: lastSelectedId 11599 }, findpartString); 11600 // Reset the form without affecting cookies 11601 this.resetFormOnly(); 11602 // Trigger event to update vehicle list in garage 11603 window.dispatchEvent(new CustomEvent('vehicle-added', { 11604 detail: { 11605 id: null, 11606 year: vehicleYear, 11607 model: finalVehicleName, 11608 date: new Date().toLocaleDateString(), 11609 result: result 11610 } 11611 })); 11612 } catch (error) { 11613 if (window.dispatchMessages) { 11614 window.dispatchMessages([{ 11615 type: 'error',
11616 text: config.messages.unexpectedError, 11617 }], 5000); 11618 } 11619 } finally { 11620 this.isSubmitting = false; 11621 } 11622 }, 11623 // Reset form only (without affecting cookies) - used on garage pages 11624 resetFormOnly() { 11625 // Reset all form selections 11626 this.finderOptions.forEach(option => { 11627 option.selectedValue = ''; 11628 if (option.level > 0) { 11629 option.isDisabled = true; 11630 option.values = []; 11631 } 11632 }); 11633 // Clear VIN value 11634 this.vinValue = ''; 11635 // Don't set selectedModel - keep form in unselected state 11636 this.selectedModel = ''; 11637 }, 11638 // Get vehicle icon type based on selected range 11639 getVehicleIconType() { 11640 // Default to motorcycle if no range selector (2 options) or no selection 11641 if (this.finderOptions.length < 3 || !this.finderOptions[0]?.selectedValue) { 11642 return 'motorcycle'; 11643 } 11644 // Get the selected range text 11645 const rangeOption = this.finderOptions[0]; 11646 const selectedRange = rangeOption.values?.find(v => String(v.id) === String(rangeOption.selectedValue)); 11647 const rangeText = selectedRange?.text?.toLowerCase() || ''; 11648 // Determine icon based on range text 11649 if (rangeText.includes('moto') || rangeText.includes('3 roues')) { 11650 return 'motorcycle'; 11651 } else if (rangeText.includes('quad')) { 11652 return 'quad'; 11653 } else { 11654 return 'ssv'; 11655 } 11656 }, 11657 // Get vehicle icon SVG HTML based on selected range 11658 getVehicleIcon() { 11659 const iconType = this.getVehicleIconType(); 11660 const icons = config.vehicleIcons || {}; 11661 return icons[iconType] || icons.motorcycle || ''; 11662 }, 11663 // Manual reset function 11664 async resetPartFinder() { 11665 // Clear cookies 11666 clearPartfinderCookie('current_findpart'); 11667 clearPartfinderCookie('selected_model'); 11668 11669 // Dispatch event for compatibility badges to update 11670 window.dispatchEvent(new CustomEvent('partfinder-reset')); 11671 11672 // Check if we're on a category page (detect category URLs) 11673 const currentPath = window.location.pathname; 11674 const isCategoryPage = currentPath.includes('/category/') || 11675 currentPath.match(/\/[^\/]+\.html$/) || // Product or category URLs ending with .html 11676 (currentPath !== '/' && !currentPath.includes('/partfinder/') && !currentPath.includes('/catalogsearch/')); 11677 11678 // On Pièces Origine pages, always reset selectedModel to show the form (even though it's a category) 11679 if (this.isPiecesOrigine || this.isGaragePage || this.isHomepage) { 11680 // Reset form state 11681 this.selectedModel = ''; 11682 this.vinValue = ''; 11683 this.plateValue = ''; 11684 this.slotError = ''; 11685 this.selectedGarageVehicle = ''; 11686 11687 // Reset all form selections 11688 this.finderOptions.forEach(option => { 11689 option.selectedValue = ''; 11690 if (option.level > 0) { 11691 option.isDisabled = true; 11692 option.values = []; 11693 } 11694 }); 11695 11696 // Load first option if it's not already loaded 11697 if (!this.finderOptions[0]?.values?.length) { 11698 await this.loadFirstOption(); 11699 } 11700 } 11701 11702 // No reload: the cached page stays in place and the grid is restored to 11703 // the full (unfiltered) view via the "partfinder-reset" event (hole-punch). 11704 this.selectedModel = ''; 11705 } 11706 }; 11707} 11708</script>
11708 11709
11710<script> 11711 window.partFinderConfig = {"finderOptions":[{"id":"16","name":"Year","sortOrder":"1","optionUrl":"https:\/\/www.esprit-ktm.com\/partfinder\/index\/option\/id\/16\/","level":0,"isDisabled":false,"isLoading":false,"label":"Ann\u00e9e","values":[],"selectedValue":""},{"id":"17","name":"Model","sortOrder":"2","optionUrl":"https:\/\/www.esprit-ktm.com\/partfinder\/index\/option\/id\/17\/","level":1,"isDisabled":true,"isLoading":false,"label":"Mod\u00e8le","values":[],"selectedValue":""}],"community":"KTM","initialVinSearchEnabled":true,"initialPlateSearchEnabled":true,"isPiecesOrigineCategory":false,"isHomepage":true,"finderId":9,"pageType":"homepage","currentFindpart":"","selectedModel":"","urls":{"garageAdd":"https:\/\/www.esprit-ktm.com\/partfinder\/garage\/add\/","vinSearch":"https:\/\/www.esprit-ktm.com\/partfinder\/vin\/search\/","plateSearch":"https:\/\/www.esprit-ktm.com\/partfinder\/plate\/search\/","garageOptions":"https:\/\/www.esprit-ktm.com\/partfinder\/garage\/options\/","piecesOrigine":"https:\/\/www.esprit-ktm.com\/pieces-detachees-origines-ktm.html","searchTrack":"https:\/\/www.esprit-ktm.com\/partfinder\/search\/track\/"},"messages":{"unexpectedError":"Une erreur inattendue s'est produite. Veuillez r\u00e9essayer.","invalidPlate":"Veuillez saisir une plaque d'immatriculation valide (ex : AB-123-CD).","invalidVin":"Le num\u00e9ro VIN doit comporter exactement 17 caract\u00e8res."},"partfinderFormTitle":"S\u00e9lectionnez votre mod\u00e8le <span class=\"text-primary-500 font-bold\">KTM<\/span>","garageFormTitle":"Ajoutez votre mod\u00e8le <span class=\"text-primary-500 font-bold\">KTM<\/span> \u00e0 votre garage","vehicleIcons":{"motorcycle":"<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" version=\"1.1\" width=\"24\" height=\"24\" x=\"0\" y=\"0\" viewBox=\"0 0 512 512\" style=\"enable-background:new 0 0 512 512\" xml:space=\"preserve\" class=\"w-4 h-4 stroke-2 fill-none\" role=\"img\"><g><path d=\"m306.765 268.325-34.112 40.241a8.25 8.25 0 0 0 .958 11.631 8.22 8.22 0 0 0 5.332 1.958c2.342 0 4.667-.99 6.3-2.916l34.112-40.241a8.25 8.25 0 0 0-.958-11.631 8.253 8.253 0 0 0-11.632.958z\" fill=\"#000000\" opacity=\"1\" data-original=\"#000000\" class=\"\"\/><path d=\"M511.903 337.698c-.023-.429-.056-.854-.089-1.281l-.069-.925a45.77 45.77 0 0 0-.119-1.497 64.894 64.894 0 0 0-.256-2.142l-.074-.591a35.097 35.097 0 0 0-.114-.876 75.63 75.63 0 0 0-.489-2.874l-.022-.123a19.924 19.924 0 0 0-.103-.57 77.997 77.997 0 0 0-1.686-6.867c-5.429-18.405-17.526-33.972-34.06-43.834a74.489 74.489 0 0 0-3.33-1.871l-.611-.314a74.937 74.937 0 0 0-2.814-1.391c-.206-.096-.41-.189-.617-.281l-.307-.139a73.62 73.62 0 0 0-3.502-1.476l-.243-.095a77.297 77.297 0 0 0-3.771-1.35 74.777 74.777 0 0 0-2.401-.741 63.028 63.028 0 0 0-3.8-1.002l-.12-.027a61.474 61.474 0 0 0-1.384-.319 72.708 72.708 0 0 0-2.412-.468l-.374-.069c-.381-.069-.76-.14-1.136-.2a75.772 75.772 0 0 0-2.301-.321l-.612-.078c-.363-.05-.727-.097-1.082-.134-.9-.096-1.81-.162-2.764-.23l-.364-.029c-.297-.024-.592-.048-.918-.067a73.976 73.976 0 0 0-8.17.002c-.296.016-.59.04-.885.065l-.413.032c-.91.065-1.819.131-2.709.226-.365.039-.728.086-1.09.134l-.572.075c-.785.1-1.566.201-2.326.324-.396.064-.788.134-1.177.207l-.342.063c-.81.145-1.621.297-2.44.473-.5.109-.995.227-1.459.339-.805.189-1.609.386-2.408.603-.309.085-.61.172-.911.259l-6.605-10.67c12.417-4.416 24.332-6.281 33.576-6.991.14-.011.281-.024.42-.043 16.434-2.112 26.538-12.359 26.372-26.745a8.42 8.42 0 0 0-.054-.841 165.998 165.998 0 0 0-.898-6.746 8.053 8.053 0 0 0-.129-.651c-.377-1.574-.498-2.51-.533-3.019a8.812 8.812 0 0 0-.117-.928c-14.151-76.771-76.744-114.588-79.403-116.16a8.252 8.252 0 0 0-9.868 1.104c-21.727 20.519-30.655 35.25-28.094 46.356 1.019 4.416 3.703 7.407 6.404 9.104 10.525 13.016 14.137 24.354 10.736 33.716a23.089 23.089 0 0 1-.923 2.147l-10.861-17.546a8.254 8.254 0 0 0-8.278-3.813c.467-1.879.717-3.844.717-5.865 0-13.442-10.936-24.378-24.378-24.378s-24.378 10.936-24.378 24.378c0 2.416.359 4.749 1.017 6.954-20.715-6.863-39.924-7.109-57.366-.677-29.214 10.769-44.798 37.207-50.949 50.289-19.264-6.892-23.641-13.199-24.611-15.513-13.243-31.589-41.467-38.532-99.638-42.143-27.61-1.997-38.041 8.779-41.808 15.372-6.073 10.625 1.149 21.039 7.484 25.446.206.142.417.276.634.398l82.958 47.163a8.255 8.255 0 0 0 11.254-3.095 8.252 8.252 0 0 0-3.095-11.254l-82.421-46.859c-1.341-1.126-2.548-2.829-2.568-3.426 0 0 .015-.06.087-.186 3.091-5.408 12.922-8.059 26.373-7.093 58.79 3.649 76.373 10.241 85.521 32.056 5.369 12.803 23.216 22.889 54.364 30.655-9.752 8.436-17.452 17.804-23.026 28.017l-33.81-19.224c-3.963-2.257-9-.869-11.254 3.095a8.253 8.253 0 0 0 3.095 11.254l35.427 20.143a85.15 85.15 0 0 0-.886 2.955 90.455 90.455 0 0 0-1.078 2.433l-34.097 13.285a76.098 76.098 0 0 0-25.329-24.656l-.123-.072a76.331 76.331 0 0 0-3.207-1.799l-.616-.318a80.264 80.264 0 0 0-2.806-1.387c-.206-.097-.413-.189-.62-.282l-.306-.138a73.62 73.62 0 0 0-3.611-1.519l-.133-.052a78.456 78.456 0 0 0-3.763-1.349 77.048 77.048 0 0 0-2.408-.744 77.595 77.595 0 0 0-1.418-.403 71.01 71.01 0 0 0-2.374-.595c-.494-.118-.989-.237-1.508-.348a69.077 69.077 0 0 0-2.416-.469l-.373-.069c-.383-.07-.764-.141-1.137-.2a74.048 74.048 0 0 0-2.341-.326l-.569-.074a37.722 37.722 0 0 0-1.085-.134 79.404 79.404 0 0 0-2.761-.23l-.363-.029c-.298-.024-.595-.048-.922-.067a73.399 73.399 0 0 0-8.165.002c-.3.016-.599.04-.89
117116.065l-.404.032a77.01 77.01 0 0 0-2.705.226c-.37.039-.736.086-1.1.135l-.569.074c-.785.1-1.566.201-2.333.325-.383.062-.763.131-1.143.201l-.37.068a75.71 75.71 0 0 0-2.44.473c-.5.11-.995.227-1.459.339-.805.189-1.609.386-2.408.603-.473.129-.943.264-1.399.397a74.205 74.205 0 0 0-3.71 1.184c-.834.292-1.658.596-2.488.918l-.124.047a70.005 70.005 0 0 0-3.646 1.534l-.27.121c-.207.092-.415.185-.62.282-.946.442-1.878.907-2.814 1.391l-.613.315a77.384 77.384 0 0 0-3.324 1.87C20.647 285.973 8.549 301.542 3.12 319.95l-.023.076a77.31 77.31 0 0 0-.909 3.369l-.069.3a74.783 74.783 0 0 0-.68 3.094c-.043.215-.08.434-.118.651l-.009.059c-.18.956-.349 1.912-.486 2.856-.044.297-.081.596-.117.895l-.054.427a62.432 62.432 0 0 0-.278 2.31c-.045.459-.078.921-.111 1.384l-.076 1.034c-.034.43-.068.859-.091 1.306A73.411 73.411 0 0 0 0 341.515c0 5.16.522 10.318 1.547 15.33 5.018 24.534 21.815 45.018 44.935 54.797 9.392 3.97 19.36 5.984 29.627 5.984s20.235-2.013 29.629-5.984c21.218-8.975 37.105-26.971 43.449-48.815l17.253 1.692c.932 7.383 1.968 12.135 2.119 12.813a8.253 8.253 0 0 0 8.053 6.447h154.054a8.252 8.252 0 0 0 8.253-8.253c0-12.373.971-24.038 2.883-34.671a8.254 8.254 0 0 0-16.246-2.922c-1.651 9.178-2.657 19.017-3.005 29.341H183.516a182.005 182.005 0 0 1-1.41-11.895c-.052-.603-.103-1.208-.15-1.831-.029-.382-.055-.776-.081-1.165a178.666 178.666 0 0 1-.29-5.224c-.01-.229-.021-.451-.03-.682a178.984 178.984 0 0 1-.089-3.188c-.003-.183-.004-.369-.008-.551-.014-.938-.022-1.885-.021-2.843l.002-.671c.005-1.091.02-2.192.047-3.307l.001-.084c.064-2.481.187-5.018.382-7.588v-.007c.782-10.317 2.721-21.204 6.627-31.403.022-.057.032-.117.053-.175a81.287 81.287 0 0 1 2.222-5.189c1.476-3.145 3.154-6.198 5.086-9.109 9.685-14.582 24.432-23.745 43.834-27.233 45.723-8.221 93.095-19.102 120.76-38.046.088-.06.175-.121.263-.183a87.668 87.668 0 0 0 2.857-2.048 81.956 81.956 0 0 0 2.189-1.706c.258-.207.516-.414.768-.623a69.908 69.908 0 0 0 1.887-1.612c.301-.266.591-.535.884-.802.403-.37.798-.742 1.186-1.117.198-.191.413-.38.606-.571.025-.025.043-.055.068-.08 5.135-5.105 8.973-10.713 11.22-16.899 5.661-15.586.745-32.808-14.614-51.189a8.305 8.305 0 0 0-1.906-1.674c.332-2.18 2.698-9.533 18.577-25.376 14.59 10.447 55.73 44.371 66.347 101.068.132 1.45.404 3.051.826 4.868.251 1.628.483 3.378.711 5.328-.009 2.438-.582 8.246-11.777 9.752-29.389 2.298-81.994 14.778-105.941 72.35a8.253 8.253 0 0 0 4.45 10.79 8.252 8.252 0 0 0 10.79-4.45c5.679-13.653 13.286-24.344 21.854-32.731l6.949 11.227c-7.241 8.269-12.638 18.02-15.745 28.547-.028.097-.035.118-.056.197a73.467 73.467 0 0 0-.875 3.253l-.065.279a72.421 72.421 0 0 0-.684 3.112c-.037.186-.07.375-.103.565l-.03.166a77.267 77.267 0 0 0-.482 2.835c-.044.297-.08.596-.116.896l-.055.436a69.474 69.474 0 0 0-.281 2.33c-.046.478-.08.957-.113 1.439l-.064.845c-.039.475-.075.951-.098 1.41a76.831 76.831 0 0 0 1.449 19.132c5.021 24.533 21.818 45.018 44.936 54.796 9.391 3.97 19.359 5.984 29.628 5.984 10.268 0 20.235-2.013 29.626-5.984 23.118-9.776 39.915-30.261 44.937-54.794a76.549 76.549 0 0 0 1.449-19.151zM99.31 396.438c-7.348 3.105-15.153 4.681-23.201 4.681s-15.852-1.576-23.198-4.68c-18.109-7.66-31.264-23.697-35.193-42.904a59.95 59.95 0 0 1-1.138-14.989c.014-.276.036-.549.059-.822l.09-1.217c.02-.292.039-.581.07-.901.056-.588.135-1.169.212-1.748l.078-.628c.019-.146.034-.292.06-.463.108-.742.24-1.474.393-2.295l.08-.464c.164-.831.349-1.651.545-2.47l.055-.243c.216-.875.45-1.74.703-2.598l.011-.037.01-.032c4.246-14.397 13.71-26.579 26.645-34.307l.109-.065.001.001a60.51 60.51 0 0 1 2.536-1.424l.463-.238a65.77 65.77 0 0 1 2.227-1.103l.711-.32a59.185 59.185 0 0 1 2.083-.895c.237-.098.475-.19.714-.283l.12-.047a60.047 60.047 0 0 1 2.96-1.061 58.353 58.353 0 0 1 1.906-.586c.363-.108.726-.212 1.087-.31a58.44 58.44 0 0 1 1.887-.471c.386-.092.771-.186 1.139-.265a56.574 56.574 0 0 1 1.877-.362l.443-.08c.252-.047.505-.095.767-.136.595-.096 1.195-.171 1.798-.248l.675-.088c.208-.028.417-.057.643-.08.711-.076 1.427-.125 2.109-.174l.643-.049c.141-.012.282-.024.397-.031a58.753 58.753 0 0 1 6.406-.002c.142.009.283.022.424.033l.609.047c.716.051 1.435.1 2.159.177.21.023.419.052.627.079l.674.088c.602.076 1.203.152 1.811.25.252.04.501.087.749.133l.452.083c.625.113 1.251.228 1.851.357.39.084.775.177 1.193.276.621.146 1.241.298 1.852.463.365.099.728.205 1.108.316a58.54 58.54 0 0 1 2.897.923c.658.229 1.307.47 1.944.715l.13.051c.24.094.479.186.764.303a56.48 56.48 0 0 1 1.997.858l.748.337c.752.352 1.491.722 2.219 1.098l.468.24a59.36 59.36 0 0 1 2.541 1.426l.001-.001c.036.023.074.044.111.066a59.642 59.642 0 0 1 17.994 16.592l-13.743 5.354a45.302 45.302 0 0 0-5.372-5.402 41.819 41.819 0 0 0-1.348-1.097l-.205-.16a45.19 45.19 0 0 0-1.39-1.038c-.009-.007-.112-.079-.12-.086l-.12-.085a46.5 46.5 0 0 0-1.399-.953l-.102-.066-.157-.101a48.473 48.473 0 0 0-1.583-.974c-.019-.012-.036-.023-.056-.033a45.692 45.692 0 0 0-6.625-3.185c-.151-.062-.3-.12-.408-.16a44.166 44.166 0 0 0-1.261-.443l-.789-.265a50.461 50.461 0 0 0-1.059-.317 32.094 32.094 0 0 0-.928-.264c-.368-.101-.737-.191-1.112-.283a47.341 47.341 0 0 0-1.045-.242 40.397 40.397 0 0 0-2.197-.419l-.183-.03a40.174 40.174 0 0 0-.754-.119c-.414-.059-.829-.11-1.27-.162l-.188-.022a22.345 22.345 0 0 0-.725-.08 51.786 51.786 0 0 0-1.427-.109l-.745-.05a47.843 47.843 0 0 0-4.465.003l-.694.046c-.474.031-.947.065-1.44.111-.237.023-.47.05-.702.078l-.211.024c-.418.05-.834.1-1.259.161-.248.035-.494.076-.742.117l-.206.033a42.205 42.205 0 0 0-2.181.418 47.402 47.402 0 0 0-3.045.778c-.364.107-.73.212-1.152.346l-.705.239-.123.042c-.388.132-.777.266-1.117.392-.152.056-.302.114-.464.18a45.665 45.665 0 0 0-6.613 3.18l-.051.029a49.39 49.39 0 0 0-1.61.992l-.136.088-.102.066c-.474.31-.939.627-1.476 1.008l4.815 6.702-4.979-6.586a45.19 45.19 0 0 0-1.39 1.038h.001l-.163.125a45.45 45.45 0 0 0-1.391 1.131c-7.425 6.304-12.541 14.622-14.793 24.045a44.471 44.471 0 0 0-.52 2.479l-.017.087a47.192 47.192 0 0 0-.372 2.477l-.045.35c-.078.69-.139 1.385-.191 2.139-.013.163-.025.327-.034.476a44.177 44.177 0 0 0-.02 4.929c1.226 24.179 21.165 43.119 45.391 43.119 18.271 0 34.51-10.896 41.643-27.22l6.278.615 8.374.822c-5.493 15.765-17.443 28.638-33.087 35.256zM77.959 355.58a8.274 8.274 0 0 0 2.025.46l19.913 1.952c-5.29 7.631-14.081 12.466-23.786 12.466-15.429 0-28.126-12.057-28.907-27.449a28.333 28.333 0 0 1 .021-3.209l.023-.299c.031-.445.069-.889.121-1.338l.034-.261c.061-.482.13-.962.214-1.438h-.001l.008-.041.014-.074c.099-.54.209-1.077.331-1.591 1.436-5.998 4.696-11.293 9.427-15.311.284-.241.573-.475.893-.726l.121-.092c.284-.222.574-.438.788-.591l.221-.157c.293-.207.588-.409.889-.607l.157-.1c.296-.189.592-.376.895-.557l.199-.116a29.16 29.16 0 0 1 4.176-2.004l.248-.099c.245-.09.495-.175.749-.262l.503-.172c.252-.079.505-.153.794-.238.186-.055.373-.109.599-.169.21-.058.424-.109.637-.161.222-.054.443-.107.647-.151.22-.047.437-.094.664-.136.24-.046.479-.089.695-.125l.65-.105c.271-.
1171104.542-.07.793-.1l.552-.066c.318-.029.639-.052.951-.072l.458-.032a31.59 31.59 0 0 1 2.82-.003l.505.035c.321.021.643.043.938.069l.552.065c.274.032.546.064.804.101l.639.103a29.099 29.099 0 0 1 1.36.261c.223.048.445.101.667.155.212.052.427.102.674.169.188.051.374.106.596.171.253.074.507.147.699.207l.57.194c.249.085.497.169.724.254l.264.105a28.897 28.897 0 0 1 4.176 2.004l.2.116c.303.18.599.366.881.548l.169.11c.302.197.598.401.96.657l.07.049a26.01 26.01 0 0 1 1.014.761c.033.025.064.053.097.078l-11.104 4.327c-4.922 1.92-17.996 7.024-17.878 17.733.106 9.556 10.753 13.923 12.887 14.702zm87.093-7.784-41.968-4.114-10.173-.998-.018-.001-27.393-2.685a53.908 53.908 0 0 1 3.446-1.473l21.948-8.551.025-.009 28.804-11.223.014-.007 28.411-11.07c-3.059 14.196-3.572 28.332-3.096 40.131zm158.09-194.941c4.341 0 7.872 3.531 7.872 7.872 0 4.341-3.531 7.872-7.872 7.872s-7.872-3.531-7.872-7.872c0-4.341 3.531-7.872 7.872-7.872zm-115.646 69.301c5.737-11.363 18.642-31.611 40.74-39.705 19.926-7.3 43.497-3.385 70.095 11.628-12.946 1.91-33.47 5.814-55.16 13.398-14.846 5.19-27.996 11.36-39.367 18.416-6.054-1.226-11.468-2.477-16.308-3.737zm29.277 16.724c-1.323.238-2.622.506-3.911.788 35.139-21.526 80.779-28.492 95.652-30.266l2.799 4.521c-31.832 13.68-75.635 21.558-94.54 24.957zm109.384-32.341-6.325-10.215-.009-.017-3.462-5.591a99.296 99.296 0 0 1 8.634-5.244l9.572 15.462c-2.529 1.949-5.352 3.816-8.41 5.605zm47.063 57.858 16.008 25.865 11.895 19.22.01.013 16.751 27.062a5.058 5.
11711058 0 0 1-1.638 6.956 4.943 4.943 0 0 1-2.641.757 5.038 5.038 0 0 1-4.309-2.394L412.845 315.3l-.003-.008-16.808-27.155-.006-.008-11.449-18.497a98.668 98.668 0 0 1 8.641-5.235zm58.7 63.471-8.921-14.412c.13.032.267.067.43.112.184.048.364.101.581.165.253.074.507.147.699.207l.516.176c.273.092.544.184.779.272l.264.105a29.01 29.01 0 0 1 5.257 2.667l.163.105c.296.196.589.395.923.633l.114.078a32.307 32.307 0 0 1 1.881 1.465c4.735 4.02 7.994 9.315 9.429 15.321.121.506.227 1.018.321 1.534l.039.215c.08.459.147.922.206 1.386l.039.302c.052.439.087.884.119 1.328l.026.344c.031.544.051 1.089.051 1.64 0 .502-.014.998-.039 1.495-.779 15.39-13.475 27.447-28.905 27.447-15.429 0-28.126-12.057-28.907-27.449a29.37 29.37 0 0 1 .012-3.135c.011-.127.022-.253.029-.381.031-.431.066-.859.116-1.286l.015-.119.02-.154c.015-.116.036-.229.052-.344l8.034 12.978c3.961 6.394 10.818 10.211 18.342 10.211a21.5 21.5 0 0 0 11.333-3.231c10.105-6.256 13.237-19.568 6.982-29.675zm42.362 25.668c-3.93 19.206-17.087 35.244-35.194 42.902-7.345 3.106-15.15 4.681-23.197 4.681-8.048 0-15.854-1.575-23.198-4.68-18.108-7.66-31.265-23.697-35.195-42.901a60.25 60.25 0 0 1-1.134-15.026c.014-.292.04-.58.064-.87l.078-1.059c.023-.328.043-.654.073-.955.058-.592.138-1.176.215-1.762l.086-.685c.015-.13.029-.261.05-.396.112-.756.246-1.501.382-2.233l.102-.566c.16-.818.341-1.628.539-2.45l.06-.262a54.884 54.884 0 0 1 .743-2.739l.005-.018a59.428 59.428 0 0 1 9.085-18.249l8.241 13.312a45.002 45.002 0 0 0-4.955 14.076 50.772 50.772 0 0 0-.338 2.262l-.043.348a48.26 48.26 0 0 0-.199 2.194c-.013.155-.025.309-.034.479a46.167 46.167 0 0 0-.017 4.904c1.226 24.179 21.165 43.119 45.391 43.119 24.228 0 44.165-18.94 45.389-43.118a45.023 45.023 0 0 0-.017-4.915c-.01-.165-.023-.329-.043-.579a45.607 45.607 0 0 0-.18-1.997l-.062-.503a46.347 46.347 0 0 0-.376-2.465 46.63 46.63 0 0 0-.517-2.468c-2.254-9.429-7.369-17.748-14.797-24.056a41.31 41.31 0 0 0-1.609-1.3c-.439-.34-.886-.673-1.412-1.051l-.145-.101a46.529 46.529 0 0 0-1.399-.954l-.119-.077-.157-.101c-.472-.302-.949-.6-1.432-.887a10.304 10.304 0 0 0-.198-.114l-.009-.006a45.583 45.583 0 0 0-6.627-3.187c-.151-.062-.3-.12-.425-.165a42.637 42.637 0 0 0-1.247-.437l-.179-.062c-.182-.064-.363-.124-.607-.205a50.461 50.461 0 0 0-1.059-.317 36.663 36.663 0 0 0-2.039-.547 45.215 45.215 0 0 0-2.069-.452 43.611 43.611 0 0 0-1.166-.208l-.161-.025a34.31 34.31 0 0 0-2.055-.286l-.19-.023c-.23-.028-.462-.055-.723-.079-.47-.044-.944-.077-1.423-.109l-.75-.049a47.736 47.736 0 0 0-4.46.003l-.699.046c-.202.013-.406.026-.611.042l-8.131-13.136c.335-.065.672-.125 1.013-.187l.415-.076c.257-.047.516-.096.79-.14.595-.096 1.196-.171 1.798-.248l.68-.089c.207-.028.415-.057.635-.079.711-.076 1.427-.125 2.106-.174.218-.014.436-.032.653-.051.14-.012.279-.023.39-.03a59.853 59.853 0 0 1 6.41-.002c.141.009.279.022.418.032.217.019.434.036.614.048.716.051 1.434.1 2.155.177.211.023.423.052.632.079l.711.092c.589.075 1.179.149 1.769.244.254.041.507.088.759.135l.448.081a56.37 56.37 0 0 1 1.851.357c.351.076.698.16 1.046.242l.146.034a48.672 48.672 0 0 1 2.959.78c.633.185 1.263.377 1.881.579.341.112.679.227 1.009.341a70.98 70.98 0 0 1 1.934.712l.243.095a56.48 56.48 0 0 1 2.664 1.123l.754.34c.748.35 1.483.716 2.248 1.114l.434.221c.877.466 1.728.943 2.532 1.422v-.001c.047.029.1.059.153.089 12.855 7.691 22.273 19.782 26.574 34.164.019.069.037.139.058.208a55.733 55.733 0 0 1 .755 2.826c.196.819.381 1.638.545 2.47l.092.53c.138.741.273 1.479.385 2.247.022.149.039.297.056.445l.098.766c.07.543.143 1.085.198 1.635.032.325.054.654.075.983l.084 1.127c.022.27.044.538.057.793a59.759 59.759 0 0 1-1.133 15.008z\" fill=\"#000000\" opacity=\"1\" data-original=\"#000000\" class=\"\"\/><\/g><\/svg>\n","quad":"<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" version=\"1.1\" width=\"24\" height=\"24\" x=\"0\" y=\"0\" viewBox=\"0 0 512 512\" style=\"enable-background:new 0 0 512 512\" xml:space=\"preserve\" class=\"w-4 h-4 stroke-2 fill-none\" role=\"img\"><g><path d=\"M84 402.549c28.055 0 50.88-22.824 50.88-50.879 0-28.056-22.825-50.881-50.88-50.881s-50.88 22.825-50.88 50.881c.001 28.055 22.825 50.879 50.88 50.879zm0-86.76c19.784 0 35.88 16.096 35.88 35.881 0 19.784-16.096 35.879-35.88 35.879s-35.88-16.095-35.88-35.879c.001-19.785 16.096-35.881 35.88-35.881z\" fill=\"#000000\" opacity=\"1\" data-original=\"#000000\" class=\"\"\/><path d=\"M84 373.454c12.012 0 21.785-9.772 21.785-21.785 0-12.012-9.772-21.784-21.785-21.784-12.012 0-21.784 9.772-21.784 21.784 0 12.013 9.773 21.785 21.784 21.785zm0-28.569c3.741 0 6.785 3.043 6.785 6.784s-3.043 6.785-6.785 6.785c-3.741 0-6.784-3.044-6.784-6.785s3.044-6.784 6.784-6.784z\" fill=\"#000000\" opacity=\"1\" data-original=\"#000000\" class=\"\"\/><path d=\"M499.853 308.137a7.5 7.5 0 0 0-12.823 7.783c6.522 10.745 9.97 23.107 9.97 35.75 0 38.047-30.954 69-69 69-38.047 0-69.001-30.953-69.001-69s30.954-69.001 69.001-69.001c13.033 0 25.72 3.648 36.688 10.551a7.5 7.5 0 0 0 7.989-12.696c-11.248-7.078-23.973-11.335-37.178-12.51v-43.905h18.026c12.492 0 22.655-10.163 22.655-22.654 0-10.056-6.466-18.77-16.09-21.682l-24.591-7.445v-27.323c0-7.799-4.036-14.777-10.796-18.667-6.76-3.892-14.821-3.873-21.564.047l-40.888 23.766-24.226-7.335a52.603 52.603 0 0 0-1.793-.505l-13.182-31.807c-8.603-20.76-28.683-34.174-51.154-34.174H226.2c-11.58 0-21 9.421-21 21s9.42 21 21 21h45.696a13.333 13.333 0 0 1 12.354 8.253l9.795 23.635a50.116 50.116 0 0 0-5.591 4.705l-24.786 24.187H162.44c-4.142 0-7.5 3.357-7.5 7.5s3.358 7.5 7.5 7.5h85.341l-11.317 10.63a35.472 35.472 0 0 1-24.37 9.65h-90.263c-9.808
117110-18.933-4.404-25.036-12.082l-6.516-8.198h42.4c4.142 0 7.5-3.357 7.5-7.5s-3.358-7.5-7.5-7.5H25.14C11.278 179.11 0 190.387 0 204.25s11.278 25.141 25.14 25.141h33.38l18.827 11.521c8.25 5.048 13.286 14.192 13.143 23.864l-.047 3.166c-2.129-.162-4.272-.272-6.442-.272-46.318 0-84 37.683-84 84.001 0 13.472 3.268 26.868 9.451 38.743a7.499 7.499 0 0 0 10.116 3.188 7.499 7.499 0 0 0 3.188-10.116C17.609 373.603 15 362.897 15 351.67c0-38.047 30.954-69.001 69-69.001 38.047 0 69.001 30.954 69.001 69.001s-30.954 69-69.001 69c-16.168 0-31.887-5.705-44.262-16.065a7.5 7.5 0 0 0-9.628 11.502C45.179 428.722 64.318 435.67 84 435.67c46.318 0 84.001-37.683 84.001-84a83.566 83.566 0 0 0-5.322-29.4h23.501v11.284c0 22.001 17.899 39.9 39.9 39.9h59.84c22.001 0 39.9-17.899 39.9-39.9V322.27h23.501a83.566 83.566 0 0 0-5.322 29.4c0 46.317 37.683 84 84.001 84s84-37.683 84-84c0-15.388-4.201-30.441-12.147-43.533zm-89.176-168.783c2.949-1.716 5.561-.583 6.545-.015.985.567 3.277 2.254 3.277 5.666v22.781l-38.621-11.693zM220.2 97.33c0-3.309 2.691-6 6-6h19.7v12h-19.7c-3.308 0-6-2.691-6-6zm77.907 23.511a28.288 28.288 0 0 0-26.211-17.511H260.9v-12h10.996c16.384 0 31.024 9.78 37.297 24.916l10.19 24.589a50.186 50.186 0 0 0-11.964 2.477zM15 204.249c0-5.591 4.549-10.14 10.14-10.14h45.98l13.932 17.53c.76.956 1.563 1.864 2.384 2.75H25.14c-5.591.001-10.14-4.548-10.14-10.14zM155.261 307.27c-11.196-17.904-28.936-31.309-49.855-36.827l.081-5.445c.211-14.172-6.783-27.602-18.376-35.607h34.029c35.863 0 65.04 29.177 65.04 65.04v12.84h-30.919zm155.559 26.284c0 13.73-11.17 24.9-24.9 24.9h-59.84c-13.73 0-24.9-11.17-24.9-24.9V294.43c0-26.774-13.228-50.502-33.477-65.04h44.391a50.416 50.416 0 0 0 34.639-13.717l25.122-23.597c.017-.016.031-.034.049-.05l.055-.048 26.971-26.318a35.16 35.16 0 0 1 34.75-8.487l122.066 36.958a7.609 7.609 0 0 1 5.436 7.325c0 4.221-3.434 7.654-7.655 7.654H390.86c-31.951 0-59.578 18.825-72.402 45.96H275.72c-4.142 0-7.5 3.357-7.5 7.5s3.358 7.5 7.5 7.5h37.416a79.923 79.923 0 0 0-2.316 19.08zm15-26.284v-18.12c0-35.863 29.177-65.04 65.04-65.04h29.64v43.912c-26.884 2.391-50.157 17.493-63.761 39.248z\" fill=\"#000000\" opacity=\"1\" data-original=\"#000000\" class=\"\"\/><path d=\"M428 300.789c-28.055 0-50.88 22.825-50.88 50.881 0 28.055 22.825 50.879 50.88 50.879s50.88-22.824 50.88-50.879c-.001-28.056-22.825-50.881-50.88-50.881zm0 86.76c-19.784 0-35.88-16.095-35.88-35.879 0-19.785 16.096-35.881 35.88-35.881s35.88 16.096 35.88 35.881c-.001 19.784-16.096 35.879-35.88 35.879z\" fill=\"#000000\" opacity=\"1\" data-original=\"#000000\" class=\"\"\/><path d=\"M428 329.885c-12.012 0-21.785 9.772-21.785 21.784 0 12.013 9.772 21.785 21.785 21.785 12.012 0 21.784-9.772 21.784-21.785 0-12.012-9.773-21.784-21.784-21.784zm0 28.569c-3.741 0-6.785-3.044-6.785-6.785s3.043-6.784 6.785-6.784c3.741 0 6.784 3.043 6.784 6.784s-3.044 6.785-6.784 6.785zM243.585 255.069h-5.495c-4.142 0-7.5 3.357-7.5 7.5s3.358 7.5 7.5 7.5h5.495c4.142 0 7.5-3.357 7.5-7.5s-3.358-7.5-7.5-7.5z\" fill=\"#000000\" opacity=\"1\" data-original=\"#000000\" class=\"\"\/><\/g><\/svg>\n","ssv":"<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" version=\"1.1\" width=\"24\" height=\"24\" x=\"0\" y=\"0\" viewBox=\"0 0 511.998 511\" style=\"enable-background:new 0 0 512 512\" xml:space=\"preserve\" class=\"w-4 h-4 stroke-2 fill-none\" role=\"img\"><g><path d=\"M66.16 192.32c-34.46 0-62.496 28.035-62.496 62.496S31.7 317.312 66.16 317.312s62.496-28.035 62.496-62.496c0-34.46-28.035-62.496-62.496-62.496zm0 104.993c-23.433 0-42.496-19.067-42.496-42.497 0-23.433 19.063-42.496 42.496-42.496 23.43 0 42.496 19.063 42.496 42.496 0 23.43-19.066 42.496-42.496 42.496zM449.504 192.32c-34.461 0-62.496 28.035-62.496 62.496s28.035 62.496 62.496 62.496c34.457 0 62.496-28.035 62.496-62.496 0-34.46-28.04-62.496-62.496-62.496zm0 104.993c-23.434 0-42.5-19.067-42.5-42.497 0-23.433 19.066-42.496 42.5-42.496 23.43 0 42.496 19.063 42.496 42.496 0 23.43-19.066 42.496-42.496 42.496zm0 0\" fill=\"#000000\" opacity=\"1\" data-original=\"#000000\" class=\"\"\/><path d=\"M432.648 183.758h40.567c5.52 0 10.601-2.766 13.601-7.403a16.137 16.137 0 0 0 1.172-15.44l-3.215-7.145a9.963 9.963 0 0 0 3.2-7.313v-40.25c0-8.668-5.16-16.465-13.141-19.867-8.078
11711-3.442-17.031-1.805-23.355 4.27-7.582 7.285-11.758 17.081-11.758 27.593 0 3.414.453 6.727 1.297 9.879h-14.344c-6.09 0-12.156-1.5-17.547-4.332l-17.477-9.184a61.199 61.199 0 0 0-28.359-6.996h-28.23l-59.164-88.14A42.708 42.708 0 0 0 240.383.5h-133.54a29.132 29.132 0 0 0-27.827 20.3L60.594 78.243a22.738 22.738 0 0 0 .082 14.235l2.074 6.222H45.785c-11.3 0-21.34 6.774-25.574 17.25L2.477 159.852c-2.59 3.656-3.223 8.375-1.551 12.695 2.039 5.262 7 8.664 12.644 8.664h86.485c7.39 0 14.14 4.344 17.195 11.07l39.223 86.27c3.433 7.55 11.011 12.43 19.304 12.43H349.91c12.813 0 23.235-10.426 23.235-23.239v-39.234a22.299 22.299 0 0 1 9.585-18.313l28.422-19.71a37.56 37.56 0 0 1 21.496-6.727zm32.68-78.723c.156-.152.469-.45.98-.45.2 0 .426.044.684.153.977.418.977 1.18.977 1.469v27.262c-4.965-3.266-8.254-8.89-8.254-15.266 0-5.016 1.996-9.691 5.613-13.168zM121.778 74.77 138.44 20.5H240.38c7.605 0 14.672 3.77 18.91 10.078l58.98 87.867-5.894 12.567-14.43-8.067 3.313-5.894c2.699-4.817.988-10.914-3.828-13.617-4.817-2.704-10.91-.989-13.614 3.828l-8.218 14.644v.004c-.004 0-.004.004-.004.004l-8.633 15.387c-2.703 4.816-.988 10.914 3.828 13.613a9.92 9.92 0 0 0 4.883 1.281c3.5 0 6.894-1.84 8.73-5.105l3.758-6.703 15.703 8.777-3.941 8.402a43.86 43.86 0 0 0-4.121 18.496v58.844c0 2.883-1.559 4.688-2.485 5.504-.804.715-2.414 1.809-4.703 1.84h-.082a6.612 6.612 0 0 1-.984-.059c-.05-.007-.106-.011-.156-.02l-17.594-1.91v-10.745c0-20.508-16.688-37.192-37.203-37.192h-15.551l-53.09-89.297a34.437 34.437 0 0 0-12.55-12.316 34.483 34.483 0 0 0-16.954-4.473c-4.91 0-9.672 1.055-14.07 3.035a33.53 33.53 0 0 1-.27-3.855c0-.035.004-.07.004-.106 0-.046-.004-.093-.004-.136.004-3.457.543-6.91 1.625-10.274.016-.043.032-.086.043-.132zm-35.602 30.968a.269.269 0 0 0-.012-.031L82.7 95.313h18.38a54.4 54.4 0 0 0 1.694 6.566l2.024 6.18c.008.027.016.054.023.086l6.473 19.773H93.57zm11.883-78.832a9.196 9.196 0 0 1 8.785-6.406h10.676l-14.84 48.336a54.225 54.225 0 0 0-1.64 6.477H82.534zM45.785 118.7h23.63l3.073 9.219h-23.27a31.36 31.36 0 0 0-13.503 3.055l3.043-7.532a7.55 7.55 0 0 1 7.027-4.742zM349.91 270.98H175.777c-.472 0-.906-.277-1.101-.707l-39.219-86.27c-6.297-13.847-20.191-22.792-35.402-22.792H30.21l11.328-10.32a11.377 11.377 0 0 1 7.68-2.973h67.89c6.618 0 12.832 3.527 16.223 9.21l4.984 8.356c2.473 4.153 7.485 5.86 11.875 4.325a9.899 9.899 0 0 0 1.836-.86c4.746-2.828 6.297-8.969 3.47-13.71l-4.985-8.356c-2.664-4.461-6.324-8.535-10.586-11.524-2.059-1.441-4.196-2.75-6.485-3.797-.261-.12-1.093-.375-1.238-.601-.203-.324-.012-1.563-.047-1.996a17.588 17.588 0 0 0-.804-4.059l-5.235-15.996.035-.023a14.242 14.242 0 0 1 8.297-2.645c2.477 0 4.934.649 7.074 1.86a14.349 14.349 0 0 1 5.23 5.14l56.009 94.195a9.993 9.993 0 0 0 8.593 4.887h21.239c9.488 0 17.203 7.715 17.203 17.196v8.57l-39.379-4.285c-5.55-.711-10.375-3.875-13.246-8.688l-2.984-5c-2.56-4.293-7.825-5.96-12.317-4.144-.473.191-.941.41-1.394.68-4.747 2.827-6.297 8.964-3.47 13.71l2.99 5.008c6.07 10.164 16.28 16.832 28.019 18.293.05.008.105.012.156.02l50.547 5.496c.027.004.058.004.086.007l26.351 2.864c1.04.125 2.074.187 3.11.195.05 0 .097.008.152.008h64.727v5.492a3.24 3.24 0 0 1-3.235 3.234zm21.422-77.218a42.295 42.295 0 0 0-18.187 34.746v13.742h-38.356a27.337 27.337 0 0 0 1.012-7.344v-58.844c0-3.433.77-6.894 2.23-10.003l18.051-38.489h27.207c6.61 0 13.2 1.625 19.055 4.703l17.476 9.18a57.938 57.938 0 0 0 26.852 6.625h21.621a18.578 18.578 0 0 1 16.914 10.942l2.133 4.738h-71.692a25.267 25.267 0 0 1-15.37-5.246l-1.692-1.309c-7.86-6.07-17.66-9.418-27.594-9.418h-5.332c-5.523 0-10 4.48-10 10 0 5.524 4.477 10 10 10h5.332a25.264 25.264 0 0 1 15.367 5.246l1.692 1.309c5.554 4.293 12.082 7.215 18.937 8.562zm0 0\" fill=\"#000000\" opacity=\"1\" data-original=\"#000000\" class=\"\"\/><path d=\"M66.16 229c-14.234 0-25.816 11.582-25.816 25.813 0 14.234 11.582 25.812 25.816 25.812 14.23 0 25.813-11.578 25.813-25.813C91.973 240.583 80.39 229 66.16 229zm0 31.629a5.822 5.822 0 0 1-5.816-5.813A5.823 5.823 0 0 1 66.16 249a5.822 5.822 0 0 1 5.813 5.816 5.822 5.822 0 0 1-5.813 5.813zM449.715 229c-14.235 0-25.813 11.582-25.813 25.813 0 14.234 11.578 25.812 25.813 25.812s25.812-11.578 25.812-25.813c.004-14.23-11.578-25.812-25.812-25.812zm0 31.629a5.819 5.819 0 0 1-5.813-5.813 5.82 5.82 0 0 1 5.813-5.816 5.82 5.82 0 0 1 5.812 5.816c.004 3.204-2.605 5.813-5.812 5.813zM176.273 195.113c.82-4.097-1.09-8.383-4.671-10.527-3.653-2.184-8.352-1.774-11.606.95-3.2 2.679-4.351 7.253-2.883 11.148 1.457 3.859 5.223 6.464 9.352 6.472 4.722.004 8.867-3.426 9.808-8.043zm0 0\" fill=\"#000000\" opacity=\"1\" data-original=\"#000000\" class=\"\"\/><\/g><\/svg>\n"}}; 11712 window.partFinderSearchModels = [{"id":"16486","value":"105 SX 2004 (EU)","parent_id":"14812"}
11712,{"id":"16039","value":"105 SX 2006 (EU)","parent_id":"15071"},{"id":"15826","value":"1050 ADVENTURE ABS 2015 (EU)","parent_id":"14773"},{"id":"33284","value":"1050 ADVENTURE ABS 2015 (FR)","parent_id":"14773"},{"id":"15865","value":"1050 ADVENTURE ABS 2016 (EU)","parent_id":"14775"},{"id":"14732","value":"1090 ADVENTURE 2017 (EU)","parent_id":"14729"},{"id":"16632","value":"1090 ADVENTURE 2018 (EU)","parent_id":"14738"},{"id":"14730","value":"1090 ADVENTURE L 2017 (EU)","parent_id":"14729"},{"id":"14744","value":"1090 ADVENTURE L 2018 (EU)","parent_id":"14738"},{"id":"14745","value":"1090 ADVENTURE L 2019 (EU)","parent_id":"14740"},{"id":"14731","value":"1090 ADVENTURE R 2017 (EU)","parent_id":"14729"},{"id":"14739","value":"1090 ADVENTURE R 2018 (EU)","parent_id":"14738"},{"id":"14741","value":"1090 ADVENTURE R 2019 (EU)","parent_id":"14740"},{"id":"14743","value":"1090 ADVENTURE S 2019 (EU)","parent_id":"14740"},{"id":"14753","value":"1190 ADV. ABS GREY WES. 2013 (EU)","parent_id":"14748"},{"id":"14755","value":"1190 ADV. ABS GREY WES. 2013 (FR)","parent_id":"14748"},{"id":"14765","value":"1190 ADV. ABS GREY WES. 2014 (EU)","parent_id":"14758"},{"id":"14767","value":"1190 ADV. ABS GREY WES. 2014 (FR)","parent_id":"14758"},{"id":"14774","value":"1190 ADV. ABS GREY WES. 2015 (EU)","parent_id":"14773"},{"id":"14782","value":"1190 ADV. ABS GREY WES. 2015 (FR)","parent_id":"14773"},{"id":"33218","value":"1190 ADV. ABS GREY WES. 2016 (EU)","parent_id":"14775"},{"id":"33278","value":"1190 ADV. ABS GREY WES. 2016 (FR)","parent_id":"14775"}
11712,{"id":"16633","value":"1190 ADV. ABS ORANGE WES. 2013 (EU)","parent_id":"14748"},{"id":"16636","value":"1190 ADV. ABS ORANGE WES. 2014 (EU)","parent_id":"14758"},{"id":"33285","value":"1190 ADV. ABS ORANGE WES. 2015 (EU)","parent_id":"14773"},{"id":"16681","value":"1190 ADV. ABS ORANGE WES. 2016 (EU)","parent_id":"14775"},{"id":"14749","value":"1190 ADVENTURE ABS GREY 2013 (EU)","parent_id":"14748"},{"id":"14751","value":"1190 ADVENTURE ABS GREY 2013 (FR)","parent_id":"14748"},{"id":"14762","value":"1190 ADVENTURE ABS GREY 2014 (EU)","parent_id":"14758"},{"id":"14763","value":"1190 ADVENTURE ABS GREY 2014 (FR)","parent_id":"14758"},{"id":"14789","value":"1190 ADVENTURE ABS GREY 2015 (EU)","parent_id":"14773"},{"id":"14796","value":"1190 ADVENTURE ABS GREY 2015 (FR)","parent_id":"14773"},{"id":"14780","value":"1190 ADVENTURE ABS GREY 2016 (EU)","parent_id":"14775"},{"id":"14787","value":"1190 ADVENTURE ABS GREY 2016 (FR)","parent_id":"14775"},{"id":"16634","value":"1190 ADVENTURE ABS ORANGE 2013 (EU)","parent_id":"14748"},{"id":"16635","value":"1190 ADVENTURE ABS ORANGE 2013 (FR)","parent_id":"14748"},{"id":"16637","value":"1190 ADVENTURE ABS ORANGE 2014 (EU)","parent_id":"14758"},{"id":"16638","value":"1190 ADVENTURE ABS ORANGE 2014 (FR)","parent_id":"14758"},{"id":"16639","value":"1190 ADVENTURE ABS ORANGE 2015 (EU)","parent_id":"14773"},{"id":"16640","value":"1190 ADVENTURE ABS ORANGE 2015 (FR)","parent_id":"14773"},{"id":"16641","value":"1190 ADVENTURE ABS ORANGE 2016 (EU)","parent_id":"14775"}
11712,{"id":"14800","value":"1190 ADVENTURE ABS ORANGE 2016 (FR)","parent_id":"14775"},{"id":"14750","value":"1190 ADVENTURE R ABS 2013 (EU)","parent_id":"14748"},{"id":"14757","value":"1190 ADVENTURE R ABS 2013 (FR)","parent_id":"14748"},{"id":"14790","value":"1190 ADVENTURE R ABS 2014 (EU)","parent_id":"14758"},{"id":"14783","value":"1190 ADVENTURE R ABS 2014 (FR)","parent_id":"14758"},{"id":"14804","value":"1190 ADVENTURE R ABS 2015 (EU)","parent_id":"14773"},{"id":"14798","value":"1190 ADVENTURE R ABS 2015 (FR)","parent_id":"14773"},{"id":"14779","value":"1190 ADVENTURE R ABS 2016 (EU)","parent_id":"14775"},{"id":"14809","value":"1190 ADVENTURE R ABS 2016 (FR)","parent_id":"14775"},{"id":"16339","value":"1190 RC 8 2007 (EU)","parent_id":"14846"},{"id":"16574","value":"1190 RC 8 BLACK 2009 (EU)","parent_id":"14736"},{"id":"16575","value":"1190 RC 8 BLACK 2009 (FR)","parent_id":"14736"},{"id":"16578","value":"1190 RC 8 BLACK RRS 2009 (EU)","parent_id":"14736"},{"id":"15640","value":"1190 RC 8 ORANGE 2008 (EU)","parent_id":"14985"},{"id":"15447","value":"1190 RC 8 ORANGE 2008 (FR)","parent_id":"14985"},{"id":"15587","value":"1190 RC 8 ORANGE 2009 (EU)","parent_id":"14736"}
11712,{"id":"15556","value":"1190 RC 8 ORANGE 2009 (FR)","parent_id":"14736"},{"id":"15672","value":"1190 RC 8 R 2009 (EU)","parent_id":"14736"},{"id":"15427","value":"1190 RC 8 R 2009 (FR)","parent_id":"14736"},{"id":"15642","value":"1190 RC 8 R TNT EDIT. 2009 (EU)","parent_id":"14736"},{"id":"16572","value":"1190 RC 8 WHITE 2008 (EU)","parent_id":"14985"},{"id":"16573","value":"1190 RC 8 WHITE 2008 (FR)","parent_id":"14985"},{"id":"16576","value":"1190 RC 8 WHITE 2009 (EU)","parent_id":"14736"},{"id":"16577","value":"1190 RC 8 WHITE 2009 (FR)","parent_id":"14736"},{"id":"16579","value":"1190 RC 8R LIM.ED. RED BULL 09 (EU)","parent_id":"14736"},{"id":"16580","value":"1190 RC 8R LIM.ED.AKRAPOVIC 09 (EU)","parent_id":"14736"},{"id":"33252","value":"1190 RC8 BLACK 2010 (EU)","parent_id":"14733"},{"id":"33253","value":"1190 RC8 BLACK 2010 (FR)","parent_id":"14733"},{"id":"15504","value":"1190 RC8 ORANGE 2010 (EU)","parent_id":"14733"},{"id":"15561","value":"1190 RC8 ORANGE 2010 (FR)","parent_id":"14733"},{"id":"33216","value":"1190 RC8 ORANGE 2011 (EU)","parent_id":"14769"},{"id":"33246","value":"1190 RC8 ORANGE 2011 (FR)","parent_id":"14769"},{"id":"15560","value":"1190 RC8 R BLACK 2011 (EU)","parent_id":"14769"},{"id":"15617","value":"1190 RC8 R BLACK 2011 (FR)","parent_id":"14769"},{"id":"15479","value":"1190 RC8 R BLACK 2012 (EU)","parent_id":"14746"},{"id":"15536","value":"1190 RC8 R BLACK 2012 (FR)","parent_id":"14746"},{"id":"33217","value":"1190 RC8 R COLOR 2 2013 (EU)","parent_id":"14748"},{"id":"33276","value":"1190 RC8 R COLOR 2 2013 (FR)","parent_id":"14748"},{"id":"16582","value":"1190 RC8 R WHITE 2011 (EU)","parent_id":"14769"},{"id":"16583","value":"1190 RC8 R WHITE 2011 (FR)","parent_id":"14769"},{"id":"16584","value":"1190 RC8 R WHITE 2012 (EU)","parent_id":"14746"},{"id":"16585","value":"1190 RC8 R WHITE 2012 (FR)","parent_id":"14746"},{"id":"15753","value":"1190 RC8 R WHITE 2013 (EU)","parent_id":"14748"},{"id":"15789","value":"1190 RC8 R WHITE 2013 (FR)","parent_id":"14748"},{"id":"15832","value":"1190 RC8 R WHITE 2014 (EU)","parent_id":"14758"},{"id":"15873","value":"1190 RC8 R WHITE 2014 (FR)","parent_id":"14758"},{"id":"36468","value":"1190 RC8 R WHITE 2015 (EU)","parent_id":"14773"},{"id":"15913","value":"1190 RC8 R WHITE 2015 (EU\/GB)","parent_id":"14773"},{"id":"15734","value":"1190 RC8 R WHITE 2015 (FR)","parent_id":"14773"},{"id":"36469","value":"1190 RC8 R WHITE 2016 (EU)","parent_id":"14775"}
11712,{"id":"15770","value":"1190 RC8 R WHITE 2016 (EU\/GB)","parent_id":"14775"},{"id":"33280","value":"1190 RC8 R WHITE 2016 (FR)","parent_id":"14775"},{"id":"16581","value":"1190 RC8 WHITE 2010 (EU)","parent_id":"14733"},{"id":"33254","value":"1190 RC8 WHITE 2010 (FR)","parent_id":"14733"},{"id":"16424","value":"1190 RC8-R 2010 (EU)","parent_id":"14733"},{"id":"15502","value":"1190 RC8-R 2010 (FR)","parent_id":"14733"},{"id":"15480","value":"1190 RC8R TRACK 2011 (EU)","parent_id":"14733"},{"id":"15537","value":"1190 RC8R TRACK 2012 (EU)","parent_id":"14746"},{"id":"36514","value":"125 DUKE 2011 (DE)","parent_id":"14769"},{"id":"16140","value":"125 DUKE 2011 (EU)","parent_id":"14769"},{"id":"16214","value":"125 DUKE BLACK - B.D. 2021 (EU)","parent_id":"15038"},{"id":"17231","value":"125 DUKE BLACK - B.D. 2022","parent_id":"15040"},{"id":"45868","value":"125 DUKE BLACK - B.D. 2026 (EU\/GB)","parent_id":"41435"},{"id":"16207","value":"125 DUKE BLACK 2021 (EU)","parent_id":"15038"},{"id":"17234","value":"125 DUKE BLACK 2022 (EU)","parent_id":"15040"},{"id":"32490","value":"125 DUKE BLACK 2023 (EU)","parent_id":"17270"},{"id":"45867","value":"125 DUKE BLACK 2026 (EU)","parent_id":"41435"},{"id":"32491","value":"125 DUKE BLACK W\/O DRL - B.D. 2023","parent_id":"17270"},{"id":"32492","value":"125 DUKE BLACK W\/O DRL 2023","parent_id":"17270"},{"id":"36487","value":"125 DUKE BLACK W\/O DRL 2023 (EU)","parent_id":"17270"},{"id":"45870","value":"125 DUKE BLUE - B.D. 2026 (EU\/GB)","parent_id":"41435"},{"id":"33179","value":"125 DUKE BLUE - NHD - B.D. 2024 (EU)","parent_id":"32421"},{"id":"40811","value":"125 DUKE BLUE - NHD - B.D. 2025 (EU)","parent_id":"33058"},{"id":"33181","value":"125 DUKE BLUE 2024 (EU)","parent_id":"32421"},{"id":"40810","value":"125 DUKE BLUE 2025 (EU)","parent_id":"33058"},{"id":"45869","value":"125 DUKE BLUE 2026 (EU)","parent_id":"41435"},{"id":"33225","value":"125 DUKE COLOR 1 ABS 2012 (EU)","parent_id":"14748"},{"id":"36516","value":"125 DUKE GREY 2012 (DE)","parent_id":"14746"},{"id":"16713","value":"125 DUKE GREY 2012 (EU)","parent_id":"14746"},{"id":"36515","value":"125 DUKE ORANGE (DE)","parent_id":"14746"},{"id":"16714","value":"125 DUKE ORANGE (EU)","parent_id":"14746"},{"id":"16767","value":"125 DUKE ORANGE - B.D. 2018 (EU)","parent_id":"14738"},{"id":"16775","value":"125 DUKE ORANGE - B.D. 2019 (EU)","parent_id":"14740"},{"id":"16778","value":"125 DUKE ORANGE - B.D. 2020 (EU)","parent_id":"14863"},{"id":"33182","value":"125 DUKE ORANGE - NHD - B.D. 2024 (EU)","parent_id":"32421"},{"id":"40813","value":"125 DUKE ORANGE - NHD - B.D. 2025 (EU)","parent_id":"33058"},{"id":"16145","value":"125 DUKE ORANGE 2012 (EU)","parent_id":"14746"},{"id":"16159","value":"125 DUKE ORANGE 2017 (EU)","parent_id":"14729"},{"id":"16166","value":"125 DUKE ORANGE 2018 (EU)","parent_id":"14738"},{"id":"16192","value":"125 DUKE ORANGE 2019 (EU)","parent_id":"14740"},{"id":"16171","value":"125 DUKE ORANGE 2020 (EU)","parent_id":"14863"},{"id":"33177","value":"125 DUKE ORANGE 2024 (EU)","parent_id":"32421"},{"id":"40812","value":"125 DUKE ORANGE 2025 (EU)","parent_id":"33058"},{"id":"16147","value":"125 DUKE ORANGE ABS 2013 (EU)","parent_id":"14748"},{"id":"16148","value":"125 DUKE ORANGE ABS 2014 (EU)","parent_id":"14758"},{"id":"16152","value":"125 DUKE ORANGE ABS 2015 (EU)","parent_id":"14773"},{"id":"16273","value":"125 DUKE ORANGE ABS 2016 (EU)","parent_id":"14775"}
11712,{"id":"16743","value":"125 DUKE ORANGE ABS B.D. 15 (EU)","parent_id":"14773"},{"id":"16749","value":"125 DUKE ORANGE ABS B.D. 16 (EU)","parent_id":"14775"},{"id":"16734","value":"125 DUKE ORANGE ABS BAJ.DIR.13 (EU)","parent_id":"14748"},{"id":"16737","value":"125 DUKE ORANGE ABS BAJ.DIR.14 (EU)","parent_id":"14758"},{"id":"16766","value":"125 DUKE ORANGE B.D. 17 (EU)","parent_id":"14729"},{"id":"16782","value":"125 DUKE SILVER - B.D. 2021 (EU)","parent_id":"15038"},{"id":"17236","value":"125 DUKE SILVER - B.D. 2022","parent_id":"15040"},{"id":"16781","value":"125 DUKE SILVER 2021 (EU)","parent_id":"15038"},{"id":"17237","value":"125 DUKE SILVER 2022 (EU)","parent_id":"15040"},{"id":"16185","value":"125 DUKE WHITE - B.D. 2018 (EU)","parent_id":"14738"},{"id":"16777","value":"125 DUKE WHITE - B.D. 2019 (EU)","parent_id":"14740"},{"id":"16780","value":"125 DUKE WHITE - B.D. 2020 (EU)","parent_id":"14863"},{"id":"32493","value":"125 DUKE WHITE 2 2023 (EU)","parent_id":"17270"},{"id":"32488","value":"125 DUKE WHITE 2 W\/O DRL - B.D. 2023","parent_id":"17270"},{"id":"32489","value":"125 DUKE WHITE 2 W\/O DRL 2023","parent_id":"17270"},{"id":"36486","value":"125 DUKE WHITE 2 W\/O DRL 2023 (EU)","parent_id":"17270"},{"id":"16769","value":"125 DUKE WHITE 2017 (EU)","parent_id":"14729"},{"id":"16768","value":"125 DUKE WHITE 2018 (EU)","parent_id":"14738"},{"id":"16776","value":"125 DUKE WHITE 2019 (EU)","parent_id":"14740"},{"id":"16779","value":"125 DUKE WHITE 2020 (EU)","parent_id":"14863"},{"id":"16733","value":"125 DUKE WHITE ABS 2013 (EU)","parent_id":"14748"},{"id":"16736","value":"125 DUKE WHITE ABS 2014 (EU)","parent_id":"14758"},{"id":"16744","value":"125 DUKE WHITE ABS 2015 (EU)","parent_id":"14773"},{"id":"16750","value":"125 DUKE WHITE ABS 2016 (EU)","parent_id":"14775"}
11712,{"id":"16745","value":"125 DUKE WHITE ABS B.D. 15 (EU)","parent_id":"14773"},{"id":"16751","value":"125 DUKE WHITE ABS B.D. 16 (EU)","parent_id":"14775"},{"id":"16144","value":"125 DUKE WHITE ABS BAJ.DIR.13 (EU)","parent_id":"14748"},{"id":"16738","value":"125 DUKE WHITE ABS BAJ.DIR.14 (EU)","parent_id":"14758"},{"id":"16770","value":"125 DUKE WHITE B.D. 17 (EU)","parent_id":"14729"},{"id":"41456","value":"125 E-GS (EU)","parent_id":"15319"},{"id":"14914","value":"125 E-GS WP (EU)","parent_id":"14913"},{"id":"14915","value":"125 E-GS WP (FR)","parent_id":"14913"},{"id":"33294","value":"125 E-XC (EU)","parent_id":"15319"},{"id":"41457","value":"125 E-XC MARZ. (EU)","parent_id":"15319"},{"id":"33354","value":"125 E-XC MARZ\/\u00d6HL (EU)","parent_id":"14913"},{"id":"14917","value":"125 E-XC MARZ\/U00D6HL (EU)","parent_id":"14913"},{"id":"14916","value":"125 E-XC WP (EU)","parent_id":"14913"},{"id":"40734","value":"125 EGS 6KW '99 (EU)","parent_id":"15048"},{"id":"15142","value":"125 EGS 6KW (EU)","parent_id":"14940"}
11712,{"id":"15150","value":"125 EGS 6KW 99 (EU)","parent_id":"15048"},{"id":"33342","value":"125 EGS M\/\u00d6 6KW (EU)","parent_id":"14826"},{"id":"33343","value":"125 EGS M\/\u00d6 6KW (FR)","parent_id":"14826"},{"id":"16519","value":"125 EGS M\/U00D6 6KW (EU)","parent_id":"14935"},{"id":"14828","value":"125 EGS M\/U00D6 6KW (FR)","parent_id":"14826"},{"id":"41516","value":"125 ENDURO R - B.D. 2026 (EU\/GB)","parent_id":"41435"},{"id":"41515","value":"125 ENDURO R 2026 (EU)","parent_id":"41435"},{"id":"41513","value":"125 ENDURO R ORANGE - B.D. 2025","parent_id":"33058"},{"id":"41512","value":"125 ENDURO R ORANGE - B.D. 2025 (EU\/GB)","parent_id":"33058"},{"id":"41514","value":"125 ENDURO R ORANGE - NHD - B.D. 2025 (EU)","parent_id":"33058"},{"id":"41511","value":"125 ENDURO R ORANGE 2025 (EU)","parent_id":"33058"},{"id":"40735","value":"125 EXC '99 (EU)","parent_id":"15048"},{"id":"15290","value":"125 EXC (EU)","parent_id":"14769"},{"id":"16356","value":"125 EXC 2000 (EU)","parent_id":"15051"},{"id":"14842","value":"125 EXC 2001 (EU)","parent_id":"14841"}
11712,{"id":"16327","value":"125 EXC 2002 (EU)","parent_id":"15208"},{"id":"16398","value":"125 EXC 2003 (EU)","parent_id":"14920"},{"id":"16046","value":"125 EXC 2004 (EU)","parent_id":"14812"},{"id":"15064","value":"125 EXC 2005 (EU)","parent_id":"14946"},{"id":"15205","value":"125 EXC 2006 (EU)","parent_id":"15071"},{"id":"14847","value":"125 EXC 2007 (EU)","parent_id":"14846"},{"id":"15412","value":"125 EXC 2008 (EU)","parent_id":"14985"},{"id":"15457","value":"125 EXC 2009 (EU)","parent_id":"14736"},{"id":"15499","value":"125 EXC 2010 (EU)","parent_id":"14733"},{"id":"14918","value":"125 EXC 2012 (EU)","parent_id":"14746"},{"id":"15929","value":"125 EXC 2013 (EU)","parent_id":"14748"},{"id":"14884","value":"125 EXC 2014 (EU)","parent_id":"14758"},{"id":"14889","value":"125 EXC 2015 (EU)","parent_id":"14773"},{"id":"14893","value":"125 EXC 2016 (EU)","parent_id":"14775"},{"id":"15053","value":"125 EXC 99 (EU)","parent_id":"15048"},{"id":"15519","value":"125 EXC CHAMPION EDITION 2010 (EU)","parent_id":"14733"},{"id":"15292","value":"125 EXC FACTORY EDIT. 2011 (EU)","parent_id":"14769"},{"id":"14912","value":"125 EXC FACTORY EDITION 2015 (EU)","parent_id":"14773"},{"id":"33219","value":"125 EXC M\/\u00d6 (EU)","parent_id":"14826"}
11712,{"id":"16520","value":"125 EXC M\/U00D6 (EU)","parent_id":"14935"},{"id":"14843","value":"125 EXC SIX-DAYS 2001 (EU)","parent_id":"14841"},{"id":"16328","value":"125 EXC SIX-DAYS 2002 (EU)","parent_id":"15208"},{"id":"16399","value":"125 EXC SIX-DAYS 2003 (EU)","parent_id":"14920"},{"id":"16048","value":"125 EXC SIX-DAYS 2004 (EU)","parent_id":"14812"},{"id":"15061","value":"125 EXC SIX-DAYS 2005 (EU)","parent_id":"14946"},{"id":"15200","value":"125 EXC SIX-DAYS 2006 (EU)","parent_id":"15071"},{"id":"15202","value":"125 EXC SIX-DAYS 2007 (EU)","parent_id":"14846"},{"id":"16338","value":"125 EXC SIX-DAYS 2008 (EU)","parent_id":"14985"},{"id":"14919","value":"125 EXC SIX-DAYS 2009 (EU)","parent_id":"14736"},{"id":"15410","value":"125 EXC SIX-DAYS 2010 (EU)","parent_id":"14733"},{"id":"15378","value":"125 EXC SIX-DAYS 2011 (EU)","parent_id":"14769"},{"id":"15013","value":"125 EXC SIX-DAYS 2012 (EU)","parent_id":"14746"},{"id":"15017","value":"125 EXC SIX-DAYS 2013 (EU)","parent_id":"14748"},{"id":"15305","value":"125 EXC SIX-DAYS 2014 (EU)","parent_id":"14758"},{"id":"14925","value":"125 EXC SIX-DAYS 2015 (EU)","parent_id":"14773"},{"id":"14924","value":"125 EXC SIX-DAYS 2016 (EU)","parent_id":"14775"}
11712,{"id":"16513","value":"125 EXE 100 2000 (EU)","parent_id":"15051"},{"id":"16515","value":"125 EXE 100 2001 (EU)","parent_id":"14841"},{"id":"16514","value":"125 EXE 80 2000 (EU)","parent_id":"15051"},{"id":"16516","value":"125 EXE 80 2001 (EU)","parent_id":"14841"},{"id":"40884","value":"125 LC2 '96","parent_id":"14826"},{"id":"40887","value":"125 LC2 100 '98 (EU)","parent_id":"14940"},{"id":"14944","value":"125 LC2 100 98 (EU)","parent_id":"14940"},{"id":"40769","value":"125 LC2 100 EUROPA '96 (EU)","parent_id":"14826"},{"id":"14945","value":"125 LC2 100 EUROPA 96 (EU)","parent_id":"14826"},{"id":"40770","value":"125 LC2 100 SCHWEIZ '96 (EU)","parent_id":"14826"},{"id":"14934","value":"125 LC2 100 SCHWEIZ 96 (EU)","parent_id":"14826"},{"id":"40771","value":"125 LC2 100\/ORANGE '97 (EU)","parent_id":"14935"},{"id":"14936","value":"125 LC2 100\/ORANGE 97 (EU)","parent_id":"14935"},{"id":"40772","value":"125 LC2 100\/ORANGE BRD '96 (EU)","parent_id":"14826"},{"id":"14937","value":"125 LC2 100\/ORANGE BRD 96 (EU)","parent_id":"14826"},{"id":"40773","value":"125 LC2 100\/WEISS '97 (EU)","parent_id":"14935"},{"id":"14938","value":"125 LC2 100\/WEISS 97 (EU)","parent_id":"14935"},{"id":"40774","value":"125 LC2 100\/WEISS BRD '96 (EU)","parent_id":"14826"}
11712,{"id":"17268","value":"125 LC2 100\/WEISS BRD 96 (EU)","parent_id":"14826"},{"id":"14939","value":"125 LC2 100\/WEIU00DF BRD 96 (EU)","parent_id":"14826"},{"id":"33323","value":"125 LC2 11KW MIL (EU)","parent_id":"14935"},{"id":"40759","value":"125 LC2 80 '98 (EU)","parent_id":"14940"},{"id":"14941","value":"125 LC2 80 98 (EU)","parent_id":"14940"},{"id":"40889","value":"125 LC2 80\/ORANGE '97 (EU)","parent_id":"14935"},{"id":"33324","value":"125 LC2 80\/ORANGE 97 (EU)","parent_id":"14935"},{"id":"40775","value":"125 LC2 80\/ORANGE BRD '96 (EU)","parent_id":"14826"},{"id":"14942","value":"125 LC2 80\/ORANGE BRD 96 (EU)","parent_id":"14826"},{"id":"40890","value":"125 LC2 80\/WEISS '97 (EU)","parent_id":"14935"},{"id":"33325","value":"125 LC2 80\/WEISS 97 (EU)","parent_id":"14935"},{"id":"40776","value":"125 LC2 80\/WEISS BRD '96 (EU)","parent_id":"14826"},{"id":"17269","value":"125 LC2 80\/WEISS BRD 96 (EU)","parent_id":"14826"},{"id":"14943","value":"125 LC2 80\/WEIU00DF BRD 96 (EU)","parent_id":"14826"},{"id":"33291","value":"125 LC2 96","parent_id":"14826"},{"id":"33344","value":"125 SIX-DAYS M\/\u00d6 (EU)","parent_id":"14826"}
11712,{"id":"14835","value":"125 SIX-DAYS M\/U00D6 (EU)","parent_id":"14826"},{"id":"41505","value":"125 SMC R - B.D. 2026 (EU\/GB)","parent_id":"41435"},{"id":"41503","value":"125 SMC R - NHD - B.D. 2025 (EU)","parent_id":"33058"},{"id":"41502","value":"125 SMC R 2025 (EU)","parent_id":"33058"},{"id":"41504","value":"125 SMC R 2026 (EU)","parent_id":"41435"},{"id":"40819","value":"125 STING '97 (EU)","parent_id":"14935"},{"id":"40777","value":"125 STING '98 (EU)","parent_id":"14940"},{"id":"16503","value":"125 STING 97 (EU)","parent_id":"14935"},{"id":"16460","value":"125 STING 98 (EU)","parent_id":"14940"},{"id":"40778","value":"125 STING\/100 '97 (EU)","parent_id":"14935"},{"id":"40820","value":"125 STING\/100 '98 (EU)","parent_id":"14940"},{"id":"16461","value":"125 STING\/100 97 (EU)","parent_id":"14935"},{"id":"16504","value":"125 STING\/100 98 (EU)","parent_id":"14940"},{"id":"40821","value":"125 STING\/80 '97 (EU)","parent_id":"14935"},{"id":"40779","value":"125 STING\/80 '98 (EU)","parent_id":"14940"},{"id":"16505","value":"125 STING\/80 97 (EU)","parent_id":"14935"},{"id":"16462","value":"125 STING\/80 98 (EU)","parent_id":"14940"}
11712,{"id":"16316","value":"125 SUPERMOTO 100 2000 (EU)","parent_id":"15051"},{"id":"16318","value":"125 SUPERMOTO 100 2001 (EU)","parent_id":"14841"},{"id":"16530","value":"125 SUPERMOTO 80 2000 (EU)","parent_id":"15051"},{"id":"16524","value":"125 SUPERMOTO 80 2001 (EU)","parent_id":"14841"},{"id":"40766","value":"125 SX '98 (EU)","parent_id":"14940"},{"id":"40745","value":"125 SX '99 (EU)","parent_id":"15048"},{"id":"41470","value":"125 SX (EU)","parent_id":"14985"},{"id":"16434","value":"125 SX 2000 (EU)","parent_id":"15051"},{"id":"16385","value":"125 SX 2001 (EU)","parent_id":"14841"},{"id":"16334","value":"125 SX 2002 (EU)","parent_id":"15208"},{"id":"16430","value":"125 SX 2003 (EU)","parent_id":"14920"},{"id":"16052","value":"125 SX 2004 (EU)","parent_id":"14812"},{"id":"15058","value":"125 SX 2005 (EU)","parent_id":"14946"},{"id":"15197","value":"125 SX 2006 (EU)","parent_id":"15071"},{"id":"15468","value":"125 SX 2007 (EU)","parent_id":"14846"},{"id":"15552","value":"125 SX 2009 (EU)","parent_id":"14736"},{"id":"15598","value":"125 SX 2010 (EU)","parent_id":"14733"},{"id":"15638","value":"125 SX 2011 (EU)","parent_id":"14769"},{"id":"15677","value":"125 SX 2012 (EU)","parent_id":"14746"},{"id":"15760","value":"125 SX 2013 (EU)","parent_id":"14748"},{"id":"15787","value":"125 SX 2014 (EU)","parent_id":"14758"},{"id":"15820","value":"125 SX 2015 (EU)","parent_id":"14773"},{"id":"15857","value":"125 SX 2016 (EU)","parent_id":"14775"}
11712,{"id":"15883","value":"125 SX 2017 (EU)","parent_id":"14729"},{"id":"15912","value":"125 SX 2018 (EU)","parent_id":"14738"},{"id":"15728","value":"125 SX 2019 (EU)","parent_id":"14740"},{"id":"15754","value":"125 SX 2020 (EU)","parent_id":"14863"},{"id":"15781","value":"125 SX 2021 (EU)","parent_id":"15038"},{"id":"15817","value":"125 SX 2022 (EU)","parent_id":"15040"},{"id":"32456","value":"125 SX 2023 (EU)","parent_id":"17270"},{"id":"32449","value":"125 SX 2024 (EU)","parent_id":"32421"},{"id":"33079","value":"125 SX 2025 (EU)","parent_id":"33058"},{"id":"41450","value":"125 SX 2026","parent_id":"41435"},{"id":"45842","value":"125 SX 2027","parent_id":"45841"},{"id":"15107","value":"125 SX 98 (EU)","parent_id":"14940"},{"id":"15050","value":"125 SX 99 (EU)","parent_id":"15048"},{"id":"33277","value":"125 SX M\/\u00d6 (EU)","parent_id":"14826"},{"id":"16484","value":"125 SX M\/U00D6 (EU)","parent_id":"14935"},{"id":"33279","value":"125 SX MARZ\/\u00d6HL (EU)","parent_id":"14913"},{"id":"16336","value":"125 SX MARZ\/U00D6HL (EU)","parent_id":"14913"},{"id":"16442","value":"125 SX TYLA RATTRAY 2005 (EU)","parent_id":"14946"},{"id":"33304","value":"125 SXS 2000 (EU)","parent_id":"15051"},{"id":"16061","value":"125 SXS 2001 (EU)","parent_id":"14841"}
11712,{"id":"16326","value":"125 SXS 2002 (EU)","parent_id":"15208"},{"id":"16429","value":"125 SXS 2003 (EU)","parent_id":"14920"},{"id":"16045","value":"125 SXS 2004 (EU)","parent_id":"14812"},{"id":"16439","value":"125 SXS 2005 (EU)","parent_id":"14946"},{"id":"16337","value":"125 SXS 2006 (EU)","parent_id":"15071"},{"id":"15637","value":"125 SXS 2007 (EU)","parent_id":"14846"},{"id":"15680","value":"125 SXS 2008 (EU)","parent_id":"14985"},{"id":"36539","value":"125 XC 2024 (US)","parent_id":"32421"},{"id":"33083","value":"125 XC 2025","parent_id":"33058"},{"id":"15281","value":"125 XC-W 2017 (EU)","parent_id":"14729"},{"id":"15283","value":"125 XC-W 2018 (EU)","parent_id":"14738"},{"id":"15823","value":"125 XC-W 2019 (EU)","parent_id":"14740"},{"id":"36536","value":"125 XC-W 2025 (EU)","parent_id":"33058"},{"id":"41436","value":"125 XC-W 2026 (EU)","parent_id":"41435"},{"id":"14882","value":"1290 SUPER ADV. S BLACK 17 (EU)","parent_id":"14729"},{"id":"14865","value":"1290 SUPER ADV. S ORANGE 17 (EU)","parent_id":"14729"},{"id":"14862","value":"1290 SUPER ADVENTURE R 2017 (EU)","parent_id":"14729"},{"id":"14873","value":"1290 SUPER ADVENTURE R 2018 (EU)","parent_id":"14738"},{"id":"14870","value":"1290 SUPER ADVENTURE R 2019 (EU)","parent_id":"14740"},{"id":"14878","value":"1290 SUPER ADVENTURE R 2020 (EU)","parent_id":"14863"},{"id":"16471","value":"1290 SUPER ADVENTURE R 2021 (EU)","parent_id":"15038"},{"id":"17252","value":"1290 SUPER ADVENTURE R 2022 (EU)","parent_id":"15040"},{"id":"30371","value":"1290 SUPER ADVENTURE R 2023 (EU)","parent_id":"17270"},{"id":"33130","value":"1290 SUPER ADVENTURE R 2024 (EU)","parent_id":"32421"}
11712,{"id":"16682","value":"1290 SUPER ADVENTURE R OT 2021 (EU)","parent_id":"15038"},{"id":"17249","value":"1290 SUPER ADVENTURE R OT 2022 (EU)","parent_id":"15040"},{"id":"30372","value":"1290 SUPER ADVENTURE R OT 2023 (EU)","parent_id":"17270"},{"id":"33129","value":"1290 SUPER ADVENTURE R OT 2024 (EU)","parent_id":"32421"},{"id":"14866","value":"1290 SUPER ADVENTURE R TKC 17 (EU)","parent_id":"14729"},{"id":"16644","value":"1290 SUPER ADVENTURE R TKC 2018 (EU)","parent_id":"14738"},{"id":"16642","value":"1290 SUPER ADVENTURE R TKC 2019 (EU)","parent_id":"14740"},{"id":"16643","value":"1290 SUPER ADVENTURE R TKC 2020 (EU)","parent_id":"14863"},{"id":"14869","value":"1290 SUPER ADVENTURE S BLACK 2018 (EU)","parent_id":"14738"},{"id":"16683","value":"1290 SUPER ADVENTURE S BLACK 2021 (EU)","parent_id":"15038"},{"id":"17250","value":"1290 SUPER ADVENTURE S BLACK 2022 (EU)","parent_id":"15040"},{"id":"30380","value":"1290 SUPER ADVENTURE S GREY 2023 (EU)","parent_id":"17270"},{"id":"33056","value":"1290 SUPER ADVENTURE S GREY 2024 (EU)","parent_id":"32421"}
11712,{"id":"16834","value":"1290 SUPER ADVENTURE S ORANGE 2018 (EU)","parent_id":"14738"},{"id":"14876","value":"1290 SUPER ADVENTURE S ORANGE 2019 (EU)","parent_id":"14740"},{"id":"14864","value":"1290 SUPER ADVENTURE S ORANGE 2020 (EU)","parent_id":"14863"},{"id":"16474","value":"1290 SUPER ADVENTURE S ORANGE 2021 (EU)","parent_id":"15038"},{"id":"17251","value":"1290 SUPER ADVENTURE S ORANGE 2022 (EU)","parent_id":"15040"},{"id":"30381","value":"1290 SUPER ADVENTURE S ORANGE 2023 (EU)","parent_id":"17270"},{"id":"33057","value":"1290 SUPER ADVENTURE S ORANGE 2024 (EU)","parent_id":"32421"},{"id":"16835","value":"1290 SUPER ADVENTURE S SILVER 2019 (EU)","parent_id":"14740"},{"id":"16836","value":"1290 SUPER ADVENTURE S SILVER 2020 (EU)","parent_id":"14863"},{"id":"14879","value":"1290 SUPER ADVENTURE T 2017 (EU)","parent_id":"14729"},{"id":"14868","value":"1290 SUPER ADVENTURE WH ABS 15 (EU)","parent_id":"14773"},{"id":"14871","value":"1290 SUPER ADVENTURE WH ABS 15 (FR)","parent_id":"14773"},{"id":"14875","value":"1290 SUPER ADVENTURE WH ABS 16 (EU)","parent_id":"14775"}
11712,{"id":"14880","value":"1290 SUPER ADVENTURE WH ABS 16 (FR)","parent_id":"14775"},{"id":"16071","value":"1290 SUPER DUKE GT BLACK 2018 (EU)","parent_id":"14738"},{"id":"16075","value":"1290 SUPER DUKE GT BLACK 2019 (EU)","parent_id":"14740"},{"id":"16068","value":"1290 SUPER DUKE GT BLACK 2020 (EU)","parent_id":"14863"},{"id":"16072","value":"1290 SUPER DUKE GT BLACK 2021 (EU)","parent_id":"15038"},{"id":"16067","value":"1290 SUPER DUKE GT GREY 17 (EU)","parent_id":"14729"},{"id":"15911","value":"1290 SUPER DUKE GT GREY ABS 16 (EU)","parent_id":"14775"},{"id":"33220","value":"1290 SUPER DUKE GT GREY ABS 16 (FR)","parent_id":"14775"},{"id":"16631","value":"1290 SUPER DUKE GT OR. ABS 16 (EU)","parent_id":"14775"},{"id":"16833","value":"1290 SUPER DUKE GT OR. ABS 16 (FR)","parent_id":"14775"},{"id":"16676","value":"1290 SUPER DUKE GT ORANGE 17 (EU)","parent_id":"14729"},{"id":"16677","value":"1290 SUPER DUKE GT ORANGE 2018 (EU)","parent_id":"14738"},{"id":"17264","value":"1290 SUPER DUKE GT ORANGE 2022 (EU)","parent_id":"15040"},{"id":"30390","value":"1290 SUPER DUKE GT ORANGE 2023 (EU)","parent_id":"17270"},{"id":"33091","value":"1290 SUPER DUKE GT ORANGE 2024 (EU)","parent_id":"32421"}
11712,{"id":"16678","value":"1290 SUPER DUKE GT WHITE 2019 (EU)","parent_id":"14740"},{"id":"16679","value":"1290 SUPER DUKE GT WHITE 2020 (EU)","parent_id":"14863"},{"id":"16680","value":"1290 SUPER DUKE GT WHITE 2021 (EU)","parent_id":"15038"},{"id":"14797","value":"1290 SUPER DUKE R BLACK 2018 (EU)","parent_id":"14738"},{"id":"16673","value":"1290 SUPER DUKE R BLACK 2019 (EU)","parent_id":"14740"},{"id":"16077","value":"1290 SUPER DUKE R BLACK 2020 (EU)","parent_id":"14863"},{"id":"16082","value":"1290 SUPER DUKE R BLACK 2021 (EU)","parent_id":"15038"},{"id":"17248","value":"1290 SUPER DUKE R BLACK 2022 (EU)","parent_id":"15040"},{"id":"30370","value":"1290 SUPER DUKE R BLACK 2023 (EU)","parent_id":"17270"},{"id":"16674","value":"1290 SUPER DUKE R BLACK EU5 KR 2020 (EU)","parent_id":"14863"},{"id":"17178","value":"1290 SUPER DUKE R EVO BLACK 2022 (EU)","parent_id":"15040"},{"id":"30368","value":"1290 SUPER DUKE R EVO BLACK 2023 (EU)","parent_id":"17270"},{"id":"17179","value":"1290 SUPER DUKE R EVO ORANGE 2022 (EU)","parent_id":"15040"},{"id":"30369","value":"1290 SUPER DUKE R EVO ORANGE 2023 (EU)","parent_id":"17270"},{"id":"16079","value":"1290 SUPER DUKE R ORANGE 2020 (EU)","parent_id":"14863"},{"id":"16671","value":"1290 SUPER DUKE R ORANGE 2021 (EU)","parent_id":"15038"},{"id":"17246","value":"1290 SUPER DUKE R ORANGE 2022 (EU)","parent_id":"15040"},{"id":"30379","value":"1290 SUPER DUKE R ORANGE 2023 (EU)","parent_id":"17270"},{"id":"16675","value":"1290 SUPER DUKE R ORANGE EU5 KR 2020 (EU)","parent_id":"14863"},{"id":"14803","value":"1290 SUPER DUKE R WHITE 2018 (EU)","parent_id":"14738"},{"id":"14778","value":"1290 SUPER DUKE R WHITE 2019 (EU)","parent_id":"14740"},{"id":"16080","value":"1290 SUPER DUKE RR 2021 (EU)","parent_id":"15038"},{"id":"32431","value":"1290 SUPER DUKE RR 2023 (EU)","parent_id":"17270"},{"id":"16672","value":"1290 SUPERDUKE R BLACK 17 (EU)","parent_id":"14729"},{"id":"14777","value":"1290 SUPERDUKE R BLACK ABS 14 (EU)","parent_id":"14758"},{"id":"14786","value":"1290 SUPERDUKE R BLACK ABS 14 (FR)","parent_id":"14758"},{"id":"14805","value":"1290 SUPERDUKE R BLACK ABS 15 (EU)","parent_id":"14773"},{"id":"14811","value":"1290 SUPERDUKE R BLACK ABS 15 (FR)","parent_id":"14773"},{"id":"14795","value":"1290 SUPERDUKE R BLACK ABS 16 (EU)","parent_id":"14775"}
11712,{"id":"14801","value":"1290 SUPERDUKE R BLACK ABS 16 (FR)","parent_id":"14775"},{"id":"16623","value":"1290 SUPERDUKE R ORANGE ABS 14 (EU)","parent_id":"14758"},{"id":"16624","value":"1290 SUPERDUKE R ORANGE ABS 14 (FR)","parent_id":"14758"},{"id":"16625","value":"1290 SUPERDUKE R ORANGE ABS 15 (EU)","parent_id":"14773"},{"id":"16626","value":"1290 SUPERDUKE R ORANGE ABS 15 (FR)","parent_id":"14773"},{"id":"16627","value":"1290 SUPERDUKE R ORANGE ABS 16 (EU)","parent_id":"14775"},{"id":"14776","value":"1290 SUPERDUKE R ORANGE ABS 16 (FR)","parent_id":"14775"},{"id":"14785","value":"1290 SUPERDUKE R S.E. ABS 16 (EU)","parent_id":"14775"},{"id":"14792","value":"1290 SUPERDUKE R S.E. ABS 16 (FR)","parent_id":"14775"},{"id":"14791","value":"1290 SUPERDUKE R WHITE 17 (EU)","parent_id":"14729"},{"id":"36509","value":"1390 SUPER ADVENTURE R 2025","parent_id":"33058"},{"id":"40792","value":"1390 SUPER ADVENTURE R 2025 (EU)","parent_id":"33058"},{"id":"41496","value":"1390 SUPER ADVENTURE R 2026 (EU)","parent_id":"41435"},{"id":"36508","value":"1390 SUPER ADVENTURE R OT 2025","parent_id":"33058"},{"id":"40793","value":"1390 SUPER ADVENTURE R OT 2025 (EU)","parent_id":"33058"},{"id":"41497","value":"1390 SUPER ADVENTURE R OT 2026 (EU)","parent_id":"41435"},{"id":"36512","value":"1390 SUPER ADVENTURE S BLACK 2025","parent_id":"33058"},{"id":"40794","value":"1390 SUPER ADVENTURE S BLACK 2025 (EU)","parent_id":"33058"},{"id":"41498","value":"1390 SUPER ADVENTURE S BLACK 2026 (EU)","parent_id":"41435"},{"id":"40796","value":"1390 SUPER ADVENTURE S EVO BLACK 2025 (EU)","parent_id":"33058"},{"id":"41500","value":"1390 SUPER ADVENTURE S EVO BLACK 2026 (EU)","parent_id":"41435"},{"id":"40797","value":"1390 SUPER ADVENTURE S EVO ORANGE 2025 (EU)","parent_id":"33058"},{"id":"41501","value":"1390 SUPER ADVENTURE S EVO ORANGE 2026 (EU)","parent_id":"41435"},{"id":"36511","value":"1390 SUPER ADVENTURE S ORANGE 2025","parent_id":"33058"},{"id":"40795","value":"1390 SUPER ADVENTURE S ORANGE 2025 (EU)","parent_id":"33058"},{"id":"41499","value":"1390 SUPER ADVENTURE S ORANGE 2026 (EU)","parent_id":"41435"},{"id":"33149","value":"1390 SUPER DUKE R BLACK 2024 (EU)","parent_id":"32421"},{"id":"36510","value":"1390 SUPER DUKE R BLACK 2025 (EU)","parent_id":"33058"},{"id":"45860","value":"1390 SUPER DUKE R BLACK 2026 (EU)","parent_id":"41435"},{"id":"36507","value":"1390 SUPER DUKE R BLACK DISPLAY 2025 (EU)","parent_id":"33058"},{"id":"33150","value":"1390 SUPER DUKE R EVO BLACK 2024 (EU)","parent_id":"32421"},{"id":"36505","value":"1390 SUPER DUKE R EVO BLACK 2025 (EU)","parent_id":"33058"},{"id":"41494","value":"1390 SUPER DUKE R EVO BLACK 2026 (EU)","parent_id":"41435"},{"id":"33147","value":"1390 SUPER DUKE R EVO ORANGE 2024 (EU)","parent_id":"32421"},{"id":"36506","value":"1390 SUPER DUKE R EVO ORANGE 2025 (EU)","parent_id":"33058"},{"id":"41495","value":"1390 SUPER DUKE R EVO ORANGE 2026 (EU)","parent_id":"41435"},{"id":"33148","value":"1390 SUPER DUKE R ORANGE 2024 (EU)","parent_id":"32421"},{"id":"36513","value":"1390 SUPER DUKE R ORANGE 2025 (EU)","parent_id":"33058"},{"id":"45861","value":"1390 SUPER DUKE R ORANGE 2026 (EU)","parent_id":"41435"},{"id":"45862","value":"1390 SUPER DUKE RR 2026 (EU)","parent_id":"41435"},{"id":"45863","value":"1390 SUPER DUKE RR TRACK 2026 (EU)","parent_id":"41435"},{"id":"17275","value":"150 EXC 2023 (EU)","parent_id":"17270"},{"id":"32458","value":"150 EXC 2024 (EU)","parent_id":"32421"},{"id":"36503","value":"150 EXC 2025 (EU)","parent_id":"33058"},{"id":"15037","value":"150 EXC TPI 2020 (EU)","parent_id":"14863"},{"id":"15039","value":"150 EXC TPI 2021 (EU)","parent_id":"15038"},{"id":"15041","value":"150 EXC TPI 2022 (EU)","parent_id":"15040"},{"id":"15411","value":"150 SX 2011 (EU)","parent_id":"14769"},{"id":"15449","value":"150 SX 2012 (EU)","parent_id":"14746"},{"id":"15815","value":"150 SX 2013 (EU)","parent_id":"14748"},{"id":"15846","value":"150 SX 2014 (EU)","parent_id":"14758"},{"id":"15876","value":"150 SX 2015 (EU)","parent_id":"14773"},{"id":"15904","value":"150 SX 2016 (EU)","parent_id":"14775"}
11712,{"id":"15934","value":"150 SX 2017 (EU)","parent_id":"14729"},{"id":"15748","value":"150 SX 2018 (EU)","parent_id":"14738"},{"id":"15775","value":"150 SX 2019 (EU)","parent_id":"14740"},{"id":"15806","value":"150 SX 2020 (EU)","parent_id":"14863"},{"id":"16413","value":"150 SX 2021 (EU)","parent_id":"15038"},{"id":"15868","value":"150 SX 2022 (EU)","parent_id":"15040"},{"id":"33080","value":"150 SX 2025 (EU)","parent_id":"33058"},{"id":"16252","value":"200 DUKE BLACK W\/O ABS - B.D. 2020 (EU)","parent_id":"14863"},{"id":"16243","value":"200 DUKE BLACK W\/O ABS - B.D. 2021 (EU)","parent_id":"15038"},{"id":"17263","value":"200 DUKE BLACK W\/O ABS - B.D. 2022 (EU)","parent_id":"15040"},{"id":"16244","value":"200 DUKE BLACK W\/O ABS-B.D. 2018 (EU)","parent_id":"14738"},{"id":"16251","value":"200 DUKE BLACK W\/O ABS-B.D. 2019 (EU)","parent_id":"14740"},{"id":"16167","value":"200 DUKE BLACK W\/O ABS-B.D.17 (EU)","parent_id":"14729"},{"id":"16715","value":"200 DUKE GREY 2012 (EU)","parent_id":"14746"},{"id":"30377","value":"200 DUKE GREY ABS-B.D. 2023 (EU)","parent_id":"17270"},{"id":"33092","value":"200 DUKE GREY ABS-B.D. 2024 (EU)","parent_id":"32421"},{"id":"40806","value":"200 DUKE GREY ABS-B.D. 2025 (RW)","parent_id":"33058"},{"id":"16234","value":"200 DUKE OR. W\/O ABS B.D. 14 (EU)","parent_id":"14758"},{"id":"16154","value":"200 DUKE OR. W\/O ABS B.D. 15 (EU)","parent_id":"14773"},{"id":"16272","value":"200 DUKE OR. W\/O ABS B.D. 16 (EU)","parent_id":"14775"}
11712,{"id":"16227","value":"200 DUKE ORANGE 2012 (EU)","parent_id":"14746"},{"id":"17233","value":"200 DUKE ORANGE 2022","parent_id":"15040"},{"id":"16161","value":"200 DUKE ORANGE ABS 2013 (EU)","parent_id":"14748"},{"id":"16229","value":"200 DUKE ORANGE ABS 2014 (EU)","parent_id":"14758"},{"id":"16710","value":"200 DUKE ORANGE ABS BAJ.DIR.13 (EU)","parent_id":"14748"},{"id":"16740","value":"200 DUKE ORANGE ABS BAJDIR 14 (EU)","parent_id":"14758"},{"id":"16198","value":"200 DUKE ORANGE ABS-B.D. 2020 (EU)","parent_id":"14863"},{"id":"16176","value":"200 DUKE ORANGE ABS-B.D. 2021 (EU)","parent_id":"15038"},{"id":"17235","value":"200 DUKE ORANGE ABS-B.D. 2022 (EU)","parent_id":"15040"},{"id":"30378","value":"200 DUKE ORANGE ABS-B.D. 2023 (EU)","parent_id":"17270"},{"id":"33076","value":"200 DUKE ORANGE ABS-B.D. 2024 (EU)","parent_id":"32421"},{"id":"40807","value":"200 DUKE ORANGE ABS-B.D. 2025 (RW)","parent_id":"33058"},{"id":"16804","value":"200 DUKE ORANGE W\/O ABS - B.D. 2020 (EU)","parent_id":"14863"},{"id":"16806","value":"200 DUKE ORANGE W\/O ABS - B.D. 2021 (EU)","parent_id":"15038"},{"id":"17262","value":"200 DUKE ORANGE W\/O ABS - B.D. 2022 (EU)","parent_id":"15040"},{"id":"32434","value":"200 DUKE ORANGE W\/O ABS - B.D. 2023 (EU)","parent_id":"17270"},{"id":"33062","value":"200 DUKE ORANGE W\/O ABS - B.D. 2024 (EU)","parent_id":"32421"},{"id":"40808","value":"200 DUKE ORANGE W\/O ABS - B.D. 2025 (RW)","parent_id":"33058"},{"id":"16711","value":"200 DUKE ORANGE W\/O ABS B.D.13 (EU)","parent_id":"14748"},{"id":"16752","value":"200 DUKE ORANGE W\/O ABS-B.D. 17 (EU)","parent_id":"14729"},{"id":"16754","value":"200 DUKE ORANGE W\/O ABS-B.D. 2018 (EU)","parent_id":"14738"},{"id":"16801","value":"200 DUKE ORANGE W\/O ABS-B.D. 2019 (EU)","parent_id":"14740"},{"id":"33229","value":"200 DUKE R ORANGE ABS 2014 (EU)","parent_id":"14758"},{"id":"33230","value":"200 DUKE R ORANGE ABS BAJDIR14 (EU)","parent_id":"14758"},{"id":"33231","value":"200 DUKE R WHITE ABS 2014 (EU)","parent_id":"14758"},{"id":"33221","value":"200 DUKE R WHITE ABS BAJ.DIR14 (EU)","parent_id":"14758"},{"id":"16735","value":"200 DUKE WH. W\/O ABS B.D. 14 (EU)","parent_id":"14758"},{"id":"16747","value":"200 DUKE WH. W\/O ABS B.D. 15 (EU)","parent_id":"14773"},{"id":"16276","value":"200 DUKE WH. W\/O ABS B.D. 16 (EU)","parent_id":"14775"}
11712,{"id":"17238","value":"200 DUKE WHITE 2022","parent_id":"15040"},{"id":"16709","value":"200 DUKE WHITE ABS 2013 (EU)","parent_id":"14748"},{"id":"16739","value":"200 DUKE WHITE ABS 2014 (EU)","parent_id":"14758"},{"id":"16741","value":"200 DUKE WHITE ABS BAJ.DIR 14 (EU)","parent_id":"14758"},{"id":"16716","value":"200 DUKE WHITE ABS BAJ.DIR.13 (EU)","parent_id":"14748"},{"id":"16172","value":"200 DUKE WHITE ABS-B.D. 2020 (EU)","parent_id":"14863"},{"id":"16179","value":"200 DUKE WHITE ABS-B.D. 2021 (EU)","parent_id":"15038"},{"id":"17232","value":"200 DUKE WHITE ABS-B.D. 2022 (EU)","parent_id":"15040"},{"id":"16805","value":"200 DUKE WHITE W\/O ABS - B.D. 2020 (EU)","parent_id":"14863"},{"id":"16807","value":"200 DUKE WHITE W\/O ABS - B.D. 2021 (EU)","parent_id":"15038"},{"id":"17261","value":"200 DUKE WHITE W\/O ABS - B.D. 2022 (EU)","parent_id":"15040"},{"id":"32435","value":"200 DUKE WHITE W\/O ABS - B.D. 2023 (EU)","parent_id":"17270"},{"id":"33061","value":"200 DUKE WHITE W\/O ABS - B.D. 2024 (EU)","parent_id":"32421"},{"id":"40809","value":"200 DUKE WHITE W\/O ABS - B.D. 2025 (RW)","parent_id":"33058"},{"id":"16717","value":"200 DUKE WHITE W\/O ABS B.D. 13 (EU)","parent_id":"14748"},{"id":"16249","value":"200 DUKE WHITE W\/O ABS-B.D. 2018 (EU)","parent_id":"14738"},{"id":"16802","value":"200 DUKE WHITE W\/O ABS-B.D. 2019 (EU)","parent_id":"14740"},{"id":"16803","value":"200 DUKE WHITE W\/O ABS-B.D. ASEAN 2019 (EU)","parent_id":"14740"},{"id":"16753","value":"200 DUKE WHITE W\/O ABS-B.D.17 (EU)","parent_id":"14729"},{"id":"40736","value":"200 EGS 8KW '99 (EU)","parent_id":"15048"},{"id":"15121","value":"200 EGS 8KW (EU)","parent_id":"14940"}
11712,{"id":"15125","value":"200 EGS 8KW 99 (EU)","parent_id":"15048"},{"id":"40737","value":"200 EXC '99 (EU)","parent_id":"15048"},{"id":"15146","value":"200 EXC (EU)","parent_id":"14940"},{"id":"14845","value":"200 EXC - GS 2001 (EU)","parent_id":"14841"},{"id":"16522","value":"200 EXC - GS 2002 (EU)","parent_id":"15208"},{"id":"15052","value":"200 EXC - GS 8KW 2000 (EU)","parent_id":"15051"},{"id":"16350","value":"200 EXC 2000 (EU)","parent_id":"15051"},{"id":"14844","value":"200 EXC 2001 (EU)","parent_id":"14841"},{"id":"16330","value":"200 EXC 2002 (EU)","parent_id":"15208"},{"id":"16400","value":"200 EXC 2003 (EU)","parent_id":"14920"},{"id":"16051","value":"200 EXC 2004 (EU)","parent_id":"14812"},{"id":"15057","value":"200 EXC 2005 (EU)","parent_id":"14946"},{"id":"15196","value":"200 EXC 2006 (EU)","parent_id":"15071"},{"id":"14852","value":"200 EXC 2007 (EU)","parent_id":"14846"},{"id":"15510","value":"200 EXC 2008 (EU)","parent_id":"14985"},{"id":"15557","value":"200 EXC 2009 (EU)","parent_id":"14736"},{"id":"15603","value":"200 EXC 2010 (EU)","parent_id":"14733"},{"id":"15070","value":"200 EXC 2011 (EU)","parent_id":"14769"},{"id":"16340","value":"200 EXC 2012 (EU)","parent_id":"14746"},{"id":"15776","value":"200 EXC 2013 (EU)","parent_id":"14748"},{"id":"14896","value":"200 EXC 2014 (EU)","parent_id":"14758"},{"id":"14901","value":"200 EXC 2015 (EU)","parent_id":"14773"},{"id":"14903","value":"200 EXC 2016 (EU)","parent_id":"14775"}
11712,{"id":"15049","value":"200 EXC 99 (EU)","parent_id":"15048"},{"id":"16431","value":"200 SX 2003 (EU)","parent_id":"14920"},{"id":"16053","value":"200 SX 2004 (EU)","parent_id":"14812"},{"id":"30365","value":"250 ADVENTURE BLACK - B.D. 2020 (EU)","parent_id":"14863"},{"id":"16819","value":"250 ADVENTURE BLACK - B.D. 2021 (EU)","parent_id":"15038"},{"id":"17202","value":"250 ADVENTURE BLUE - B.D. 2022 (EU)","parent_id":"15040"},{"id":"32495","value":"250 ADVENTURE BLUE - B.D. 2023 (EU)","parent_id":"17270"},{"id":"33124","value":"250 ADVENTURE BLUE - B.D. 2024 (EU)","parent_id":"32421"},{"id":"17192","value":"250 ADVENTURE BLUE - B.D. LS 2022 (EU)","parent_id":"15040"},{"id":"32496","value":"250 ADVENTURE BLUE - B.D. LS 2023 (EU)","parent_id":"17270"},{"id":"33125","value":"250 ADVENTURE GREY - B.D. 2024 (EU)","parent_id":"32421"},{"id":"30366","value":"250 ADVENTURE ORANGE - B.D. 2020 (EU)","parent_id":"14863"},{"id":"15293","value":"250 ADVENTURE ORANGE - B.D. 2021 (EU)","parent_id":"15038"},{"id":"17195","value":"250 ADVENTURE ORANGE - B.D. 2022 (EU)","parent_id":"15040"},{"id":"32497","value":"250 ADVENTURE ORANGE - B.D. 2023 (EU)","parent_id":"17270"},{"id":"17199","value":"250 ADVENTURE ORANGE - B.D. LS 2022 (EU)","parent_id":"15040"},{"id":"33189","value":"250 ADVENTURE ORANGE - B.D. LS 2023 (EU)","parent_id":"17270"},{"id":"16270","value":"250 DUKE BL. ABS B.D. 15 (EU)","parent_id":"14773"},{"id":"16277","value":"250 DUKE BL. ABS B.D. 16 (EU)","parent_id":"14775"}
11712,{"id":"16187","value":"250 DUKE BLACK - B.D. 2021 (EU)","parent_id":"15038"},{"id":"17180","value":"250 DUKE BLACK - B.D. 2022 (EU)","parent_id":"15040"},{"id":"32441","value":"250 DUKE BLACK - B.D. 2023","parent_id":"17270"},{"id":"32442","value":"250 DUKE BLACK - B.D. 2023 (EU)","parent_id":"17270"},{"id":"45871","value":"250 DUKE BLACK - B.D. 2026","parent_id":"41435"},{"id":"17184","value":"250 DUKE BLACK - B.D. LS 2022 (EU)","parent_id":"15040"},{"id":"32436","value":"250 DUKE BLACK 2 - B.D. 2023","parent_id":"17270"},{"id":"32437","value":"250 DUKE BLACK 2 - B.D. 2023 (EU)","parent_id":"17270"},{"id":"32438","value":"250 DUKE BLACK 2 W\/O ABS-B.D. 2023","parent_id":"17270"},{"id":"32439","value":"250 DUKE BLACK 2 W\/O ABS-B.D. 2023 (EU)","parent_id":"17270"},{"id":"17276","value":"250 DUKE BLACK 2022","parent_id":"15040"},{"id":"17188","value":"250 DUKE BLACK W\/O ABS-B.D. 2022 (EU)","parent_id":"15040"},{"id":"32440","value":"250 DUKE BLACK W\/O ABS-B.D. 2023 (EU)","parent_id":"17270"},{"id":"16200","value":"250 DUKE ORANGE - B.D. 2018 (EU)","parent_id":"14738"},{"id":"16182","value":"250 DUKE ORANGE - B.D. 2019 (EU)","parent_id":"14740"},{"id":"16205","value":"250 DUKE ORANGE - B.D. 2020 (EU)","parent_id":"14863"},{"id":"33184","value":"250 DUKE ORANGE - B.D. 2024 (EU)","parent_id":"32421"},{"id":"41535","value":"250 DUKE ORANGE - NHD - B.D. 2025 (EU)","parent_id":"33058"},{"id":"16218","value":"250 DUKE ORANGE B.D. 17 (EU)","parent_id":"14729"},{"id":"16809","value":"250 DUKE ORANGE W\/O ABS-B.D. 17 (EU)","parent_id":"14729"},{"id":"16811","value":"250 DUKE ORANGE W\/O ABS-B.D. 2018 (EU)","parent_id":"14738"},{"id":"16813","value":"250 DUKE ORANGE W\/O ABS-B.D. 2019 (EU)","parent_id":"14740"},{"id":"16257","value":"250 DUKE ORANGE W\/O ABS-B.D. 2020 (EU)","parent_id":"14863"},{"id":"16787","value":"250 DUKE SILVER - B.D. 2021 (EU)","parent_id":"15038"},{"id":"17189","value":"250 DUKE SILVER - B.D. 2022 (EU)","parent_id":"15040"},{"id":"45872","value":"250 DUKE SILVER - B.D. 2026","parent_id":"41435"},{"id":"17183","value":"250 DUKE SILVER - B.D. LS 2022 (EU)","parent_id":"15040"},{"id":"17277","value":"250 DUKE SILVER 2022","parent_id":"15040"},{"id":"17187","value":"250 DUKE SILVER W\/O ABS-B.D. 2022 (EU)","parent_id":"15040"},{"id":"16755","value":"250 DUKE WH. ABS B.D. 15 (EU)","parent_id":"14773"},{"id":"16808","value":"250 DUKE WH. ABS B.D. 16 (EU)","parent_id":"14775"}
11712,{"id":"16783","value":"250 DUKE WHITE - B.D. 17 (EU)","parent_id":"14729"},{"id":"16216","value":"250 DUKE WHITE - B.D. 2018 (EU)","parent_id":"14738"},{"id":"16784","value":"250 DUKE WHITE - B.D. 2019 (EU)","parent_id":"14740"},{"id":"16785","value":"250 DUKE WHITE - B.D. 2020 (EU)","parent_id":"14863"},{"id":"33185","value":"250 DUKE WHITE - B.D. 2024 (EU)","parent_id":"32421"},{"id":"40814","value":"250 DUKE WHITE - B.D. 2025 (RW)","parent_id":"33058"},{"id":"41536","value":"250 DUKE WHITE - NHD - B.D. 2025 (EU)","parent_id":"33058"},{"id":"16810","value":"250 DUKE WHITE W\/O ABS-B.D. 17 (EU)","parent_id":"14729"},{"id":"16812","value":"250 DUKE WHITE W\/O ABS-B.D. 2018 (EU)","parent_id":"14738"},{"id":"16814","value":"250 DUKE WHITE W\/O ABS-B.D. 2019 (EU)","parent_id":"14740"},{"id":"16815","value":"250 DUKE WHITE W\/O ABS-B.D. 2020 (EU)","parent_id":"14863"},{"id":"16405","value":"250 E-XC (EU)","parent_id":"15319"},{"id":"40738","value":"250 EGS 11KW '99 (EU)","parent_id":"15048"},{"id":"15097","value":"250 EGS 11KW (EU)","parent_id":"14940"}
11712,{"id":"15106","value":"250 EGS 11KW 99 (EU)","parent_id":"15048"},{"id":"33345","value":"250 EGS M\/\u00d6 12KW (EU)","parent_id":"14826"},{"id":"33328","value":"250 EGS M\/\u00d6 12KW (FR)","parent_id":"14935"},{"id":"16525","value":"250 EGS M\/U00D6 12KW (EU)","parent_id":"14935"},{"id":"40760","value":"250 EXC '98 (EU)","parent_id":"14940"},{"id":"40739","value":"250 EXC '99 (EU)","parent_id":"15048"},{"id":"16349","value":"250 EXC 2000 (EU)","parent_id":"15051"},{"id":"15718","value":"250 EXC 2001 (EU)","parent_id":"14841"},{"id":"15318","value":"250 EXC 2002 (EU)","parent_id":"15208"},{"id":"15727","value":"250 EXC 2003 (EU)","parent_id":"14920"},{"id":"16047","value":"250 EXC 2004 (EU)","parent_id":"14812"},{"id":"15065","value":"250 EXC 2005 (EU)","parent_id":"14946"},{"id":"15206","value":"250 EXC 2006 (EU)","parent_id":"15071"},{"id":"14848","value":"250 EXC 2007 (EU)","parent_id":"14846"},{"id":"15297","value":"250 EXC 2008 (EU)","parent_id":"14985"},{"id":"15467","value":"250 EXC 2009 (EU)","parent_id":"14736"}
11712,{"id":"14998","value":"250 EXC 2010 (EU)","parent_id":"14733"},{"id":"15001","value":"250 EXC 2011 (EU)","parent_id":"14769"},{"id":"15606","value":"250 EXC 2012 (EU)","parent_id":"14746"},{"id":"15246","value":"250 EXC 2013 (EU)","parent_id":"14748"},{"id":"14885","value":"250 EXC 2014 (EU)","parent_id":"14758"},{"id":"14891","value":"250 EXC 2015 (EU)","parent_id":"14773"},{"id":"14897","value":"250 EXC 2016 (EU)","parent_id":"14775"},{"id":"15285","value":"250 EXC 2017 (EU)","parent_id":"14729"},{"id":"17286","value":"250 EXC 2023 (EU)","parent_id":"17270"},{"id":"32464","value":"250 EXC 2024 (EU)","parent_id":"32421"},{"id":"36496","value":"250 EXC 2025 (EU)","parent_id":"33058"},{"id":"15143","value":"250 EXC 98 (EU)","parent_id":"14940"},{"id":"15152","value":"250 EXC 99 (EU)","parent_id":"15048"},{"id":"36493","value":"250 EXC CHAMPION EDITION 2025","parent_id":"33058"},{"id":"41475","value":"250 EXC CHAMPION EDITION 2025 (EU)","parent_id":"33058"},{"id":"15004","value":"250 EXC E-STARTER 2010 (EU)","parent_id":"14733"},{"id":"15352","value":"250 EXC FACTORY 2005 (EU)","parent_id":"14946"}
11712,{"id":"15007","value":"250 EXC FACTORY EDIT. 2011 (EU)","parent_id":"14769"},{"id":"14906","value":"250 EXC FACTORY EDITION 2015 (EU)","parent_id":"14773"},{"id":"33115","value":"250 EXC M\/O (EU)","parent_id":"14935"},{"id":"15102","value":"250 EXC M\/U00D6 (EU)","parent_id":"14935"},{"id":"16351","value":"250 EXC RACING 2001 (EU)","parent_id":"14841"},{"id":"16382","value":"250 EXC RACING 2002 (EU)","parent_id":"15208"},{"id":"15946","value":"250 EXC RACING 2003 (EU)","parent_id":"14920"},{"id":"14822","value":"250 EXC RACING 2004 (EU)","parent_id":"14812"},{"id":"15952","value":"250 EXC RACING 2005 (EU)","parent_id":"14946"},{"id":"16348","value":"250 EXC RACING 2006 (EU)","parent_id":"15071"},{"id":"16523","value":"250 EXC RACING SIX DAYS 2002 (EU)","parent_id":"15208"},{"id":"15945","value":"250 EXC RACING SIX DAYS 2003 (EU)","parent_id":"14920"},{"id":"17287","value":"250 EXC SIX DAYS 2023 (EU)","parent_id":"17270"},{"id":"32474","value":"250 EXC SIX DAYS 2024 (EU)","parent_id":"32421"},{"id":"36498","value":"250 EXC SIX DAYS 2025 (EU)","parent_id":"33058"},{"id":"15892","value":"250 EXC SIX DAYS TPI 2018 (EU)","parent_id":"14738"},{"id":"15840","value":"250 EXC SIX DAYS TPI 2019 (EU)","parent_id":"14740"},{"id":"15712","value":"250 EXC SIX DAYS TPI 2020 (EU)","parent_id":"14863"},{"id":"15713","value":"250 EXC SIX DAYS TPI 2021 (EU)","parent_id":"15038"},{"id":"15919","value":"250 EXC SIX DAYS TPI 2022 (EU)","parent_id":"15040"},{"id":"15717","value":"250 EXC SIX-DAYS 2001 (EU)","parent_id":"14841"}
11712,{"id":"15314","value":"250 EXC SIX-DAYS 2002 (EU)","parent_id":"15208"},{"id":"15726","value":"250 EXC SIX-DAYS 2003 (EU)","parent_id":"14920"},{"id":"16049","value":"250 EXC SIX-DAYS 2004 (EU)","parent_id":"14812"},{"id":"15062","value":"250 EXC SIX-DAYS 2005 (EU)","parent_id":"14946"},{"id":"15201","value":"250 EXC SIX-DAYS 2006 (EU)","parent_id":"15071"},{"id":"15204","value":"250 EXC SIX-DAYS 2007 (EU)","parent_id":"14846"},{"id":"15296","value":"250 EXC SIX-DAYS 2008 (EU)","parent_id":"14985"},{"id":"15404","value":"250 EXC SIX-DAYS 2009 (EU)","parent_id":"14736"},{"id":"14995","value":"250 EXC SIX-DAYS 2010 (EU)","parent_id":"14733"},{"id":"14997","value":"250 EXC SIX-DAYS 2011 (EU)","parent_id":"14769"},{"id":"15016","value":"250 EXC SIX-DAYS 2012 (EU)","parent_id":"14746"},{"id":"15019","value":"250 EXC SIX-DAYS 2013 (EU)","parent_id":"14748"},{"id":"15253","value":"250 EXC SIX-DAYS 2014 (EU)","parent_id":"14758"},{"id":"15247","value":"250 EXC SIX-DAYS 2015 (EU)","parent_id":"14773"},{"id":"15249","value":"250 EXC SIX-DAYS 2016 (EU)","parent_id":"14775"}
11712,{"id":"15803","value":"250 EXC SIX-DAYS 2017 (EU)","parent_id":"14729"},{"id":"15280","value":"250 EXC TPI 2018 (EU)","parent_id":"14738"},{"id":"15766","value":"250 EXC TPI 2019 (EU)","parent_id":"14740"},{"id":"15801","value":"250 EXC TPI 2020 (EU)","parent_id":"14863"},{"id":"15836","value":"250 EXC TPI 2021 (EU)","parent_id":"15038"},{"id":"15878","value":"250 EXC TPI 2022 (EU)","parent_id":"15040"},{"id":"16395","value":"250 EXC-F 2006 (EU)","parent_id":"15071"},{"id":"14849","value":"250 EXC-F 2007 (EU)","parent_id":"14846"},{"id":"15438","value":"250 EXC-F 2008 (EU)","parent_id":"14985"},{"id":"15482","value":"250 EXC-F 2009 (EU)","parent_id":"14736"},{"id":"14999","value":"250 EXC-F 2010 (EU)","parent_id":"14733"},{"id":"15003","value":"250 EXC-F 2011 (EU)","parent_id":"14769"},{"id":"15291","value":"250 EXC-F 2012 (EU)","parent_id":"14746"},{"id":"14953","value":"250 EXC-F 2013 (EU)","parent_id":"14748"},{"id":"14890","value":"250 EXC-F 2014 (EU)","parent_id":"14758"},{"id":"14894","value":"250 EXC-F 2015 (EU)","parent_id":"14773"},{"id":"14900","value":"250 EXC-F 2016 (EU)","parent_id":"14775"}
11712,{"id":"14980","value":"250 EXC-F 2017 (EU)","parent_id":"14729"},{"id":"14983","value":"250 EXC-F 2018 (EU)","parent_id":"14738"},{"id":"14961","value":"250 EXC-F 2019 (EU)","parent_id":"14740"},{"id":"15332","value":"250 EXC-F 2020 (EU)","parent_id":"14863"},{"id":"15335","value":"250 EXC-F 2021 (EU)","parent_id":"15038"},{"id":"15336","value":"250 EXC-F 2022 (EU)","parent_id":"15040"},{"id":"17272","value":"250 EXC-F 2023 (EU)","parent_id":"17270"},{"id":"32483","value":"250 EXC-F 2024 (EU)","parent_id":"32421"},{"id":"36535","value":"250 EXC-F 2025 (EU)","parent_id":"33058"},{"id":"41438","value":"250 EXC-F 2026 (EU)","parent_id":"41435"},{"id":"41443","value":"250 EXC-F 6DAYS 2026 (EU)","parent_id":"41435"},{"id":"15586","value":"250 EXC-F CHAMPION EDIT. 2010 (EU)","parent_id":"14733"},{"id":"36528","value":"250 EXC-F CHAMPION EDITION 2025","parent_id":"33058"},{"id":"40780","value":"250 EXC-F CHAMPION EDITION 2025 (EU)","parent_id":"33058"},{"id":"14992","value":"250 EXC-F FACTORY EDIT. 2011 (EU)","parent_id":"14769"},{"id":"14908","value":"250 EXC-F FACTORY EDITION 2015 (EU)","parent_id":"14773"},{"id":"15433","value":"250 EXC-F SIX DAYS 2007 (EU)","parent_id":"14846"}
11712,{"id":"15478","value":"250 EXC-F SIX DAYS 2008 (EU)","parent_id":"14985"},{"id":"15529","value":"250 EXC-F SIX DAYS 2009 (EU)","parent_id":"14736"},{"id":"15002","value":"250 EXC-F SIX DAYS 2010 (EU)","parent_id":"14733"},{"id":"15005","value":"250 EXC-F SIX DAYS 2011 (EU)","parent_id":"14769"},{"id":"15010","value":"250 EXC-F SIX DAYS 2012 (EU)","parent_id":"14746"},{"id":"14954","value":"250 EXC-F SIX DAYS 2013 (EU)","parent_id":"14748"},{"id":"14895","value":"250 EXC-F SIX DAYS 2014 (EU)","parent_id":"14758"},{"id":"14899","value":"250 EXC-F SIX DAYS 2015 (EU)","parent_id":"14773"},{"id":"14902","value":"250 EXC-F SIX DAYS 2016 (EU)","parent_id":"14775"},{"id":"14982","value":"250 EXC-F SIX DAYS 2017 (EU)","parent_id":"14729"},{"id":"14962","value":"250 EXC-F SIX DAYS 2018 (EU)","parent_id":"14738"},{"id":"14965","value":"250 EXC-F SIX DAYS 2019 (EU)","parent_id":"14740"},{"id":"15334","value":"250 EXC-F SIX DAYS 2020 (EU)","parent_id":"14863"},{"id":"15337","value":"250 EXC-F SIX DAYS 2021 (EU)","parent_id":"15038"},{"id":"15338","value":"250 EXC-F SIX DAYS 2022 (EU)","parent_id":"15040"},{"id":"17271","value":"250 EXC-F SIX DAYS 2023 (EU)","parent_id":"17270"},{"id":"32453","value":"250 EXC-F SIX DAYS 2024 (EU)","parent_id":"32421"},{"id":"36533","value":"250 EXC-F SIX DAYS 2025 (EU)","parent_id":"33058"},{"id":"40765","value":"250 SX '98 (EU)","parent_id":"14940"},{"id":"40744","value":"250 SX '99 (EU)","parent_id":"15048"},{"id":"16341","value":"250 SX 2000 (EU)","parent_id":"15051"},{"id":"16329","value":"250 SX 2001 (EU)","parent_id":"14841"}
11712,{"id":"16331","value":"250 SX 2002 (EU)","parent_id":"15208"},{"id":"16458","value":"250 SX 2003 (EU)","parent_id":"14920"},{"id":"16050","value":"250 SX 2004 (EU)","parent_id":"14812"},{"id":"15066","value":"250 SX 2005 (EU)","parent_id":"14946"},{"id":"15195","value":"250 SX 2006 (EU)","parent_id":"15071"},{"id":"15444","value":"250 SX 2007 (EU)","parent_id":"14846"},{"id":"15299","value":"250 SX 2008 (EU)","parent_id":"14985"},{"id":"15528","value":"250 SX 2009 (EU)","parent_id":"14736"},{"id":"16359","value":"250 SX 2010 (EU)","parent_id":"14733"},{"id":"15607","value":"250 SX 2011 (EU)","parent_id":"14769"},{"id":"15650","value":"250 SX 2012 (EU)","parent_id":"14746"},{"id":"15743","value":"250 SX 2013 (EU)","parent_id":"14748"},{"id":"15767","value":"250 SX 2014 (EU)","parent_id":"14758"},{"id":"15792","value":"250 SX 2015 (EU)","parent_id":"14773"},{"id":"15830","value":"250 SX 2016 (EU)","parent_id":"14775"},{"id":"15861","value":"250 SX 2017 (EU)","parent_id":"14729"},{"id":"16386","value":"250 SX 2018 (EU)","parent_id":"14738"},{"id":"16042","value":"250 SX 2019 (EU)","parent_id":"14740"},{"id":"16041","value":"250 SX 2020 (EU)","parent_id":"14863"},{"id":"16411","value":"250 SX 2021 (EU)","parent_id":"15038"},{"id":"16412","value":"250 SX 2022 (EU)","parent_id":"15040"},{"id":"32473","value":"250 SX 2023 (EU)","parent_id":"17270"},{"id":"32461","value":"250 SX 2024 (EU)","parent_id":"32421"},{"id":"33081","value":"250 SX 2025 (EU)","parent_id":"33058"},{"id":"41488","value":"250 SX 2026","parent_id":"41435"},{"id":"45858","value":"250 SX 2027","parent_id":"45841"}
11712,{"id":"15098","value":"250 SX 98 (EU)","parent_id":"14940"},{"id":"15108","value":"250 SX 99 (EU)","parent_id":"15048"},{"id":"33117","value":"250 SX M\/O (EU)","parent_id":"14935"},{"id":"16529","value":"250 SX M\/U00D6 (EU)","parent_id":"14935"},{"id":"16498","value":"250 SX-F 2005 (EU)","parent_id":"14946"},{"id":"16416","value":"250 SX-F 2006 (EU)","parent_id":"15071"},{"id":"15474","value":"250 SX-F 2007 (EU)","parent_id":"14846"},{"id":"15524","value":"250 SX-F 2008 (EU)","parent_id":"14985"},{"id":"15563","value":"250 SX-F 2009 (EU)","parent_id":"14736"},{"id":"15604","value":"250 SX-F 2010 (EU)","parent_id":"14733"},{"id":"15651","value":"250 SX-F 2011 (EU)","parent_id":"14769"},{"id":"15397","value":"250 SX-F 2012 (EU)","parent_id":"14746"},{"id":"15779","value":"250 SX-F 2013 (EU)","parent_id":"14748"},{"id":"15816","value":"250 SX-F 2014 (EU)","parent_id":"14758"},{"id":"15854","value":"250 SX-F 2015 (EU)","parent_id":"14773"},{"id":"15884","value":"250 SX-F 2016 (EU)","parent_id":"14775"},{"id":"16062","value":"250 SX-F 2017 (EU)","parent_id":"14729"},{"id":"15735","value":"250 SX-F 2018 (EU)","parent_id":"14738"},{"id":"15765","value":"250 SX-F 2019 (EU)","parent_id":"14740"},{"id":"15796","value":"250 SX-F 2020 (EU)","parent_id":"14863"},{"id":"15835","value":"250 SX-F 2021 (EU)","parent_id":"15038"},{"id":"17260","value":"250 SX-F 2022","parent_id":"15040"},{"id":"32481","value":"250 SX-F 2023 (EU)","parent_id":"17270"},{"id":"32466","value":"250 SX-F 2024 (EU)","parent_id":"32421"},{"id":"33077","value":"250 SX-F 2025 (EU)","parent_id":"33058"},{"id":"41479","value":"250 SX-F 2026 (EU)","parent_id":"41435"},{"id":"45849","value":"250 SX-F 2027","parent_id":"45841"},{"id":"33082","value":"250 SX-F ADAMO EDITION 2025","parent_id":"33058"},{"id":"15620","value":"250 SX-F FACT.REPL.MUSQ. ED 10 (EU)","parent_id":"14733"},{"id":"15659","value":"250 SX-F MUSQUIN REPLICA 11 (EU)","parent_id":"14769"},{"id":"15755","value":"250 SX-F PRADO 2020 (EU)","parent_id":"14863"},{"id":"15458","value":"250 SX-F ROCZEN REPLICA 12 (EU)","parent_id":"14746"},{"id":"15827","value":"250 SX-F TROY LEE DESIGNS 2021 (EU)","parent_id":"15038"},{"id":"33305","value":"250 SXS 2000 (EU)","parent_id":"15051"},{"id":"16335","value":"250 SXS 2001 (EU)","parent_id":"14841"}
11712,{"id":"16459","value":"250 SXS 2003 (EU)","parent_id":"14920"},{"id":"16043","value":"250 SXS 2004 (EU)","parent_id":"14812"},{"id":"15059","value":"250 SXS 2005 (EU)","parent_id":"14946"},{"id":"16396","value":"250 SXS 2006 (EU)","parent_id":"15071"},{"id":"15496","value":"250 SXS 2007 (EU)","parent_id":"14846"},{"id":"33267","value":"250 SXS 2008 (EU)","parent_id":"14985"},{"id":"33315","value":"250 SXS 2009","parent_id":"14736"},{"id":"15555","value":"250 SXS-F 2007 (EU)","parent_id":"14846"},{"id":"15601","value":"250 SXS-F 2008 (EU)","parent_id":"14985"},{"id":"33233","value":"250 SXS-F 2009","parent_id":"14736"},{"id":"33226","value":"250 SXS-F 2010","parent_id":"14733"},{"id":"33268","value":"250 XC 2007 (EU)","parent_id":"14846"},{"id":"41451","value":"250 XC 2011 (EU US)","parent_id":"14769"},{"id":"14770","value":"250 XC 2011 (EU\/US)","parent_id":"14769"},{"id":"41453","value":"250 XC 2012 (EU US)","parent_id":"14746"},{"id":"14771","value":"250 XC 2012 (EU\/US)","parent_id":"14746"},{"id":"41455","value":"250 XC 2013
11712(EU US)","parent_id":"14748"},{"id":"15927","value":"250 XC 2013 (EU\/US)","parent_id":"14748"},{"id":"14759","value":"250 XC 2014 (EU\/US)","parent_id":"14758"},{"id":"16358","value":"250 XC 2015 (EU\/US)","parent_id":"14773"},{"id":"15793","value":"250 XC 2016 (EU\/US)","parent_id":"14775"},{"id":"33060","value":"250 XC 2025","parent_id":"33058"},{"id":"33085","value":"250 XC-F 2025","parent_id":"33058"},{"id":"41437","value":"250 XC-W 2026 (EU)","parent_id":"41435"},{"id":"15721","value":"300 E-GS WP (EU)","parent_id":"14913"},{"id":"15722","value":"300 E-GS WP (FR)","parent_id":"14913"},{"id":"16404","value":"300 E-XC MARZ. (EU)","parent_id":"15319"},{"id":"33355","value":"300 E-XC MARZ\/\u00d6HL (EU)","parent_id":"14913"},{"id":"15723","value":"300 E-XC MARZ\/U00D6HL (EU)","parent_id":"14913"},{"id":"15720","value":"300 E-XC WP (EU)","parent_id":"14913"},{"id":"40740","value":"300 EGS 10KW '99 (EU)","parent_id":"15048"},{"id":"15132","value":"300 EGS 10KW (EU)","parent_id":"14940"},{"id":"15139","value":"300 EGS 10KW 99 (EU)","parent_id":"15048"},{"id":"33197","value":"300 EGS M\/O 12KW (EU)","parent_id":"14826"},{"id":"33194","value":"300 EGS M\/O 13LT (EU)","parent_id":"14826"},{"id":"33332","value":"300 EGS M\/\u00d6 16KW (FR)","parent_id":"14935"},{"id":"16526","value":"300 EGS M\/U00D6 12KW (EU)","parent_id":"14935"},{"id":"14830","value":"300 EGS M\/U00D6 13LT (EU)","parent_id":"14826"},{"id":"40741","value":"300 EXC '99 (EU)","parent_id":"15048"},{"id":"15127","value":"300 EXC (EU)","parent_id":"14940"}
11712,{"id":"16354","value":"300 EXC 2000 (EU)","parent_id":"15051"},{"id":"15715","value":"300 EXC 2001 (EU)","parent_id":"14841"},{"id":"15316","value":"300 EXC 2002 (EU)","parent_id":"15208"},{"id":"15725","value":"300 EXC 2003 (EU)","parent_id":"14920"},{"id":"16044","value":"300 EXC 2004 (EU)","parent_id":"14812"},{"id":"15063","value":"300 EXC 2005 (EU)","parent_id":"14946"},{"id":"15203","value":"300 EXC 2006 (EU)","parent_id":"15071"},{"id":"14860","value":"300 EXC 2007 (EU)","parent_id":"14846"},{"id":"15399","value":"300 EXC 2009 (EU)","parent_id":"14736"},{"id":"14994","value":"300 EXC 2010 (EU)","parent_id":"14733"},{"id":"14996","value":"300 EXC 2011 (EU)","parent_id":"14769"},{"id":"15538","value":"300 EXC 2012 (EU)","parent_id":"14746"},{"id":"15252","value":"300 EXC 2013 (EU)","parent_id":"14748"},{"id":"14907","value":"300 EXC 2014 (EU)","parent_id":"14758"},{"id":"14911","value":"300 EXC 2015 (EU)","parent_id":"14773"},{"id":"14888","value":"300 EXC 2016 (EU)","parent_id":"14775"},{"id":"15284","value":"300 EXC 2017 (EU)","parent_id":"14729"},{"id":"17292","value":"300 EXC 2023 (EU)","parent_id":"17270"},{"id":"32476","value":"300 EXC 2024 (EU)","parent_id":"32421"},{"id":"36497","value":"300 EXC 2025 (EU)","parent_id":"33058"},{"id":"41441","value":"300 EXC 2026 (EU)","parent_id":"41435"},{"id":"41446","value":"300 EXC 6DAYS 2026 (EU)","parent_id":"41435"},{"id":"15138","value":"300 EXC 99 (EU)","parent_id":"15048"},{"id":"36499","value":"300 EXC CHAMPION EDITION 2025 (EU)","parent_id":"33058"},{"id":"41449","value":"300 EXC CHAMPION EDITION 2026 (EU)","parent_id":"41435"},{"id":"15831","value":"300 EXC CKD 2021 (EU)","parent_id":"15038"},{"id":"32429","value":"300 EXC ERZBERGRODEO 2023 (EU)","parent_id":"17270"},{"id":"15000","value":"300 EXC FACTORY EDIT. 2011 (EU)","parent_id":"14769"},{"id":"14898","value":"300 EXC FACTORY EDITION 2015 (EU)","parent_id":"14773"},{"id":"32447","value":"300 EXC HARDENDURO 2024 (EU)","parent_id":"32421"},{"id":"36495","value":"300 EXC HARDENDURO 2025 (EU)","parent_id":"33058"},{"id":"41448","value":"300 EXC HARDENDURO 2026 (EU)","parent_id":"41435"},{"id":"33192","value":"300 EXC M\/O (EU)","parent_id":"14826"}
11712,{"id":"16527","value":"300 EXC M\/U00D6 (EU)","parent_id":"14935"},{"id":"17293","value":"300 EXC SIX DAYS 2023 (EU)","parent_id":"17270"},{"id":"32459","value":"300 EXC SIX DAYS 2024 (EU)","parent_id":"32421"},{"id":"36492","value":"300 EXC SIX DAYS 2025 (EU)","parent_id":"33058"},{"id":"15822","value":"300 EXC SIX DAYS TPI 2018 (EU)","parent_id":"14738"},{"id":"15899","value":"300 EXC SIX DAYS TPI 2019 (EU)","parent_id":"14740"},{"id":"15714","value":"300 EXC SIX DAYS TPI 2020 (EU)","parent_id":"14863"},{"id":"15711","value":"300 EXC SIX DAYS TPI 2021 (EU)","parent_id":"15038"},{"id":"15785","value":"300 EXC SIX DAYS TPI 2022 (EU)","parent_id":"15040"},{"id":"15719","value":"300 EXC SIX-DAYS 2001 (EU)","parent_id":"14841"},{"id":"15315","value":"300 EXC SIX-DAYS 2002 (EU)","parent_id":"15208"},{"id":"15724","value":"300 EXC SIX-DAYS 2003 (EU)","parent_id":"14920"},{"id":"33243","value":"300 EXC SIX-DAYS 2004 (EU)","parent_id":"14812"},{"id":"15060","value":"300 EXC SIX-DAYS 2005 (EU)","parent_id":"14946"},{"id":"15198","value":"300 EXC SIX-DAYS 2006 (EU)","parent_id":"15071"},{"id":"15199","value":"300 EXC SIX-DAYS 2007 (EU)","parent_id":"14846"}
11712,{"id":"15567","value":"300 EXC SIX-DAYS 2009 (EU)","parent_id":"14736"},{"id":"15020","value":"300 EXC SIX-DAYS 2012 (EU)","parent_id":"14746"},{"id":"15021","value":"300 EXC SIX-DAYS 2013 (EU)","parent_id":"14748"},{"id":"15248","value":"300 EXC SIX-DAYS 2014 (EU)","parent_id":"14758"},{"id":"15250","value":"300 EXC SIX-DAYS 2015 (EU)","parent_id":"14773"},{"id":"15251","value":"300 EXC SIX-DAYS 2016 (EU)","parent_id":"14775"},{"id":"15860","value":"300 EXC SIX-DAYS 2017 (EU)","parent_id":"14729"},{"id":"15282","value":"300 EXC TPI 2018 (EU)","parent_id":"14738"},{"id":"15810","value":"300 EXC TPI 2019 (EU)","parent_id":"14740"},{"id":"15851","value":"300 EXC TPI 2020 (EU)","parent_id":"14863"},{"id":"15885","value":"300 EXC TPI 2021 (EU)","parent_id":"15038"},{"id":"15921","value":"300 EXC TPI 2022 (EU)","parent_id":"15040"},{"id":"15811","value":"300 EXC TPI ERZBERGRODEO 2020 (EU)","parent_id":"14863"},{"id":"15848","value":"300 EXC TPI ERZBERGRODEO 2021 (EU)","parent_id":"15038"},{"id":"15886","value":"300 EXC TPI ERZBERGRODEO 2022 (EU)","parent_id":"15040"},{"id":"14851","value":"300 EXC-E 2007 (EU)","parent_id":"14846"}
11712,{"id":"15298","value":"300 EXC-E 2008 (EU)","parent_id":"14985"},{"id":"15300","value":"300 EXC-E SIX-DAYS 2008 (EU)","parent_id":"14985"},{"id":"15006","value":"300 EXC-E SIX-DAYS 2010 (EU)","parent_id":"14733"},{"id":"14993","value":"300 EXC-E SIX-DAYS 2011 (EU)","parent_id":"14769"},{"id":"33191","value":"300 SIX-DAYS M\/O (EU)","parent_id":"14826"},{"id":"14831","value":"300 SIX-DAYS M\/U00D6 (EU)","parent_id":"14826"},{"id":"32472","value":"300 SX 2023 (EU)","parent_id":"17270"},{"id":"32482","value":"300 SX 2024 (EU)","parent_id":"32421"},{"id":"33084","value":"300 SX 2025 (EU)","parent_id":"33058"},{"id":"41483","value":"300 SX 2026 (EU)","parent_id":"41435"},{"id":"45854","value":"300 SX 2027","parent_id":"45841"},{"id":"41452","value":"300 XC 2011 (EU US)","parent_id":"14769"},{"id":"14772","value":"300 XC 2011 (EU\/US)","parent_id":"14769"},{"id":"41454","value":"300 XC 2012 (EU US)","parent_id":"14746"},{"id":"14768","value":"300 XC 2012 (EU\/US)","parent_id":"14746"},{"id":"45880","value":"300 XC 2013 (EU US)","parent_id":"14748"},{"id":"15750","value":"300 XC 2013 (EU\/US)","parent_id":"14748"},{"id":"14760","value":"300 XC 2014 (EU\/US)","parent_id":"14758"},{"id":"15813","value":"300 XC 2015 (EU\/US)","parent_id":"14773"},{"id":"15849","value":"300 XC 2016 (EU\/US)","parent_id":"14775"},{"id":"33059","value":"300 XC 2025","parent_id":"33058"},{"id":"36494","value":"300 XC-W CHAMPION EDITION 2025","parent_id":"33058"},{"id":"15320","value":"350 E-XC 20KW\/SUP.COM (EU)","parent_id":"15319"},{"id":"15321","value":"350 E-XC 4T (EU)","parent_id":"15319"},{"id":"33295","value":"350 E-XC 4T MARZ. (EU)","parent_id":"15319"},{"id":"15503","value":"350 EXC-F 2012 (EU)","parent_id":"14746"},{"id":"14955","value":"350 EXC-F 2013 (EU)","parent_id":"14748"},{"id":"14904","value":"350 EXC-F 2014 (EU)","parent_id":"14758"},{"id":"14909","value":"350 EXC-F 2015 (EU)","parent_id":"14773"},{"id":"14886","value":"350 EXC-F 2016 (EU)","parent_id":"14775"}
11712,{"id":"14969","value":"350 EXC-F 2017 (EU)","parent_id":"14729"},{"id":"14974","value":"350 EXC-F 2018 (EU)","parent_id":"14738"},{"id":"14978","value":"350 EXC-F 2019 (EU)","parent_id":"14740"},{"id":"15339","value":"350 EXC-F 2020 (EU)","parent_id":"14863"},{"id":"15328","value":"350 EXC-F 2021 (EU)","parent_id":"15038"},{"id":"15330","value":"350 EXC-F 2022 (EU)","parent_id":"15040"},{"id":"32425","value":"350 EXC-F 2023 (EU)","parent_id":"17270"},{"id":"32446","value":"350 EXC-F 2024 (EU)","parent_id":"32421"},{"id":"36532","value":"350 EXC-F 2025 (EU)","parent_id":"33058"},{"id":"41439","value":"350 EXC-F 2026 (EU)","parent_id":"41435"},{"id":"41444","value":"350 EXC-F 6DAYS 2026 (EU)","parent_id":"41435"},{"id":"36534","value":"350 EXC-F CHAMPION EDITION 2025","parent_id":"33058"},{"id":"40781","value":"350 EXC-F CHAMPION EDITION 2025 (EU)","parent_id":"33058"},{"id":"14892","value":"350 EXC-F FACTORY EDITION 2015 (EU)","parent_id":"14773"},{"id":"17258","value":"350 EXC-F FACTORY EDITION 2022 (EU)","parent_id":"15040"},{"id":"15014","value":"350 EXC-F SIX DAYS 2012 (EU)","parent_id":"14746"},{"id":"14956","value":"350 EXC-F SIX DAYS 2013 (EU)","parent_id":"14748"},{"id":"14905","value":"350 EXC-F SIX DAYS 2014 (EU)","parent_id":"14758"},{"id":"14910","value":"350 EXC-F SIX DAYS 2015 (EU)","parent_id":"14773"},{"id":"14887","value":"350 EXC-F SIX DAYS 2016 (EU)","parent_id":"14775"}
11712,{"id":"14970","value":"350 EXC-F SIX DAYS 2017 (EU)","parent_id":"14729"},{"id":"14975","value":"350 EXC-F SIX DAYS 2018 (EU)","parent_id":"14738"},{"id":"14979","value":"350 EXC-F SIX DAYS 2019 (EU)","parent_id":"14740"},{"id":"15340","value":"350 EXC-F SIX DAYS 2020 (EU)","parent_id":"14863"},{"id":"15329","value":"350 EXC-F SIX DAYS 2021 (EU)","parent_id":"15038"},{"id":"15331","value":"350 EXC-F SIX DAYS 2022 (EU)","parent_id":"15040"},{"id":"17290","value":"350 EXC-F SIX DAYS 2023","parent_id":"17270"},{"id":"17291","value":"350 EXC-F SIX DAYS 2023 (EU)","parent_id":"17270"},{"id":"32460","value":"350 EXC-F SIX DAYS 2024 (EU)","parent_id":"32421"},{"id":"36538","value":"350 EXC-F SIX DAYS 2025 (EU)","parent_id":"33058"},{"id":"41472","value":"350 EXC-F SIX DAYS CKD 2023","parent_id":"17270"},{"id":"15333","value":"350 EXC-F WESS 2021 (EU)","parent_id":"15038"},{"id":"33296","value":"350 SIX-DAYS (EU)","parent_id":"15319"},{"id":"15542","value":"350 SX-F 2011 (EU)","parent_id":"14769"},{"id":"15589","value":"350 SX-F 2012 (EU)","parent_id":"14746"},{"id":"15924","value":"350 SX-F 2013 (EU)","parent_id":"14748"},{"id":"15740","value":"350 SX-F 2014 (EU)","parent_id":"14758"},{"id":"15768","value":"350 SX-F 2015 (EU)","parent_id":"14773"},{"id":"15795","value":"350 SX-F 2016 (EU)","parent_id":"14775"}
11712,{"id":"15834","value":"350 SX-F 2017 (EU)","parent_id":"14729"},{"id":"15874","value":"350 SX-F 2018 (EU)","parent_id":"14738"},{"id":"15910","value":"350 SX-F 2019 (EU)","parent_id":"14740"},{"id":"15729","value":"350 SX-F 2020 (EU)","parent_id":"14863"},{"id":"15759","value":"350 SX-F 2021 (EU)","parent_id":"15038"},{"id":"15790","value":"350 SX-F 2022 (EU)","parent_id":"15040"},{"id":"32475","value":"350 SX-F 2023 (EU)","parent_id":"17270"},{"id":"32486","value":"350 SX-F 2024 (EU)","parent_id":"32421"},{"id":"33078","value":"350 SX-F 2025 (EU)","parent_id":"33058"},{"id":"41478","value":"350 SX-F 2026 (EU)","parent_id":"41435"},{"id":"45848","value":"350 SX-F 2027","parent_id":"45841"},{"id":"15506","value":"350 SX-F CAIROLI REPLICA 11 (EU)","parent_id":"14769"},{"id":"15558","value":"350 SX-F CAIROLI REPLICA 12 (EU)","parent_id":"14746"},{"id":"33086","value":"350 XC-F 2025","parent_id":"33058"},{"id":"33334","value":"360 EGS M\/\u00d6 175KW (EU)","parent_id":"14935"},{"id":"33196","value":"360 EGS M\/O 175KW (FR)","parent_id":"14826"}
11712,{"id":"15153","value":"360 EGS M\/U00D6 175KW (EU)","parent_id":"14935"},{"id":"14839","value":"360 EGS M\/U00D6 175KW (FR)","parent_id":"14826"},{"id":"33193","value":"360 EXC M\/O (EU)","parent_id":"14826"},{"id":"16528","value":"360 EXC M\/U00D6 (EU)","parent_id":"14935"},{"id":"33198","value":"360 SIX-DAYS M\/O (EU)","parent_id":"14826"},{"id":"14833","value":"360 SIX-DAYS M\/U00D6 (EU)","parent_id":"14826"},{"id":"33195","value":"360 SX M\/O (EU)","parent_id":"14826"},{"id":"16063","value":"360 SX M\/U00D6 (EU)","parent_id":"14935"},{"id":"40742","value":"380 EGS 8KW '99 (EU)","parent_id":"15048"},{"id":"15126","value":"380 EGS 8KW (EU)","parent_id":"14940"},{"id":"15133","value":"380 EGS 8KW 99 (EU)","parent_id":"15048"},{"id":"40743","value":"380 EXC '99 (EU)","parent_id":"15048"},{"id":"15140","value":"380 EXC (EU)","parent_id":"14940"},{"id":"16355","value":"380 EXC 2000 (EU)","parent_id":"15051"},{"id":"15716","value":"380 EXC 2001 (EU)","parent_id":"14841"},{"id":"15144","value":"380 EXC 99 (EU)","parent_id":"15048"},{"id":"40767","value":"380 SX '98 (EU)","parent_id":"14940"},{"id":"40746","value":"380 SX '99 (EU)","parent_id":"15048"},{"id":"16342","value":"380 SX 2000 (EU)","parent_id":"15051"},{"id":"16325","value":"380 SX 2001 (EU)","parent_id":"14841"}
11712,{"id":"16333","value":"380 SX 2002 (EU)","parent_id":"15208"},{"id":"15110","value":"380 SX 98 (EU)","parent_id":"14940"},{"id":"15118","value":"380 SX 99 (EU)","parent_id":"15048"},{"id":"17204","value":"390 ADVENTURE BLACK - B.D. 2022","parent_id":"15040"},{"id":"17191","value":"390 ADVENTURE BLACK - B.D. 2022 (EU)","parent_id":"15040"},{"id":"30361","value":"390 ADVENTURE BLACK - B.D. 2023","parent_id":"17270"},{"id":"30364","value":"390 ADVENTURE BLACK - B.D. 2023 (EU)","parent_id":"17270"},{"id":"33107","value":"390 ADVENTURE BLACK - B.D. 2024 (EU)","parent_id":"32421"},{"id":"32498","value":"390 ADVENTURE BLACK - NHD - B.D. 2023","parent_id":"17270"},{"id":"36483","value":"390 ADVENTURE BLACK - NHD - B.D. 2023 (EU)","parent_id":"17270"},{"id":"33114","value":"390 ADVENTURE BLACK - NHD - B.D. 2024 (EU)","parent_id":"32421"},{"id":"17205","value":"390 ADVENTURE BLACK 2022 (EU)","parent_id":"15040"},{"id":"30359","value":"390 ADVENTURE BLACK 2023","parent_id":"17270"},{"id":"30362","value":"390 ADVENTURE BLACK 2023 (EU)","parent_id":"17270"},{"id":"33112","value":"390 ADVENTURE BLACK 2024 (EU)","parent_id":"32421"}
11712,{"id":"16823","value":"390 ADVENTURE ORANGE - B.D. 2020 (EU)","parent_id":"14863"},{"id":"16826","value":"390 ADVENTURE ORANGE - B.D. 2021 (EU)","parent_id":"15038"},{"id":"17193","value":"390 ADVENTURE ORANGE - B.D. 2022","parent_id":"15040"},{"id":"17197","value":"390 ADVENTURE ORANGE - B.D. 2022 (EU)","parent_id":"15040"},{"id":"30350","value":"390 ADVENTURE ORANGE - B.D. 2023","parent_id":"17270"},{"id":"33102","value":"390 ADVENTURE ORANGE - B.D. 2023 (EU)","parent_id":"17270"},{"id":"16837","value":"390 ADVENTURE ORANGE - B.D. EU5 KR 2020 (EU)","parent_id":"14863"},{"id":"33269","value":"390 ADVENTURE ORANGE - B.D.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2020 (EU)","parent_id":"14863"},{"id":"41537","value":"390 ADVENTURE ORANGE - CKD 2020","parent_id":"14863"},{"id":"32433","value":"390 ADVENTURE ORANGE - NHD - B.D. 2023","parent_id":"17270"},{"id":"36485","value":"390 ADVENTURE ORANGE - NHD - B.D. 2023 (EU)","parent_id":"17270"},{"id":"16822","value":"390 ADVENTURE ORANGE 2020 (EU)","parent_id":"14863"},{"id":"16825","value":"390 ADVENTURE ORANGE 2021 (EU)","parent_id":"15038"},{"id":"17198","value":"390 ADVENTURE ORANGE 2022 (EU)","parent_id":"15040"},{"id":"30363","value":"390 ADVENTURE ORANGE 2023","parent_id":"17270"},{"id":"30351","value":"390 ADVENTURE ORANGE 2023 (EU)","parent_id":"17270"},{"id":"41554","value":"390 ADVENTURE R - B.D. 2025 (EU\/GB)","parent_id":"33058"},{"id":"45877","value":"390 ADVENTURE R - B.D. 2026","parent_id":"41435"},{"id":"41557","value":"390 ADVENTURE R - B.D. 2026 (EU\/GB)","parent_id":"41435"},{"id":"41555","value":"390 ADVENTURE R - NHD - B.D. 2025 (EU)","parent_id":"33058"},{"id":"41553","value":"390 ADVENTURE R 2025 (EU)","parent_id":"33058"},{"id":"41556","value":"390 ADVENTURE R 2026 (EU)","parent_id":"41435"},{"id":"33110","value":"390 ADVENTURE SPOKE W ORANGE - B.D.2024 (EU)","parent_id":"32421"},{"id":"30356","value":"390 ADVENTURE SPOKE W ORANGE 2023","parent_id":"17270"},{"id":"33103","value":"390 ADVENTURE SPOKE W ORANGE 2023 (EU)","parent_id":"17270"},{"id":"33111","value":"390 ADVENTURE SPOKE W ORANGE 2024 (EU)","parent_id":"32421"},{"id":"30352","value":"390 ADVENTURE SPOKE W ORANGE B.D. 2023","parent_id":"17270"},{"id":"33113","value":"390 ADVENTURE SPOKE W ORANGE B.D. 2023 (EU)","parent_id":"17270"},{"id":"33108","value":"390 ADVENTURE SPOKE W ORANGE-NHD-B.D.24 (EU)","parent_id":"32421"},{"id":"33104","value":"390 ADVENTURE SPOKE WORANGE NHD B.D. 23","parent_id":"17270"},{"id":"36484","value":"390 ADVENTURE SPOKE WORANGE NHD B.D. 23 (EU)","parent_id":"17270"},{"id":"16824","value":"390 ADVENTURE WHITE - B.D. 2020 (EU)","parent_id":"14863"},{"id":"15307","value":"390 ADVENTURE WHITE - B.D. 2021 (EU)","parent_id":"15038"},{"id":"33106","value":"390 ADVENTURE WHITE - B.D. 2024 (EU)","parent_id":"32421"},{"id":"33270","value":"390 ADVENTURE WHITE - B.D.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2020 (EU)","parent_id":"14863"},{"id":"33109","value":"390 ADVENTURE WHITE - NHD - B.D. 2024 (EU)","parent_id":"32421"}
11712,{"id":"15301","value":"390 ADVENTURE WHITE 2020 (EU)","parent_id":"14863"},{"id":"15304","value":"390 ADVENTURE WHITE 2021 (EU)","parent_id":"15038"},{"id":"33105","value":"390 ADVENTURE WHITE 2024 (EU)","parent_id":"32421"},{"id":"41539","value":"390 ADVENTURE X ORANGE - B.D. 2025 (EU\/GB)","parent_id":"33058"},{"id":"41545","value":"390 ADVENTURE X ORANGE - B.D. 2026 (EU\/GB)","parent_id":"41435"},{"id":"41540","value":"390 ADVENTURE X ORANGE -NHD- B.D. 2025 (EU)","parent_id":"33058"},{"id":"41538","value":"390 ADVENTURE X ORANGE 2025 (EU)","parent_id":"33058"},{"id":"41544","value":"390 ADVENTURE X ORANGE 2026 (EU)","parent_id":"41435"},{"id":"45875","value":"390 ADVENTURE X ORANGE-B.D. 2026","parent_id":"41435"},{"id":"41542","value":"390 ADVENTURE X WHITE - B.D. 2025 (EU\/GB)","parent_id":"33058"},{"id":"41547","value":"390 ADVENTURE X WHITE - B.D. 2026 (EU\/GB)","parent_id":"41435"},{"id":"41543","value":"390 ADVENTURE X WHITE - NHD - B.D. 2025 (EU)","parent_id":"33058"},{"id":"41541","value":"390 ADVENTURE X WHITE 2025 (EU)","parent_id":"33058"},{"id":"41546","value":"390 ADVENTURE X WHITE 2026 (EU)","parent_id":"41435"},{"id":"45876","value":"390 ADVENTURE X WHITE-B.D. 2026","parent_id":"41435"},{"id":"16756","value":"390 DUKE BL. ABS 2015 (EU)","parent_id":"14773"},{"id":"16762","value":"390 DUKE BL. ABS 2016 (EU)","parent_id":"14775"}
11712,{"id":"16757","value":"390 DUKE BL. ABS B.D. 15 (EU)","parent_id":"14773"},{"id":"16763","value":"390 DUKE BL. ABS B.D. 16 (EU)","parent_id":"14775"},{"id":"30332","value":"390 DUKE BLACK - B.D. 2023 (EU)","parent_id":"17270"},{"id":"45874","value":"390 DUKE BLACK - B.D. 2026 (EU\/GB)","parent_id":"41435"},{"id":"30373","value":"390 DUKE BLACK 2023 (EU)","parent_id":"17270"},{"id":"45873","value":"390 DUKE BLACK 2026 (EU)","parent_id":"41435"},{"id":"16759","value":"390 DUKE BLACK ABS 2014 (EU)","parent_id":"14758"},{"id":"16761","value":"390 DUKE BLACK ABS BAJ.DIR 14 (EU)","parent_id":"14758"},{"id":"30328","value":"390 DUKE BLACK W\/O DRL - B.D. 2023","parent_id":"17270"},{"id":"36471","value":"390 DUKE BLACK W\/O DRL - B.D. 2023 (EU)","parent_id":"17270"},{"id":"30374","value":"390 DUKE BLACK W\/O DRL 2023","parent_id":"17270"},{"id":"36480","value":"390 DUKE BLACK W\/O DRL 2023 (EU)","parent_id":"17270"},{"id":"36542","value":"390 DUKE BLUE - B.D. 2024","parent_id":"32421"},{"id":"33180","value":"390 DUKE BLUE - B.D. 2024 (EU)","parent_id":"32421"},{"id":"45851","value":"390 DUKE BLUE - B.D. 2026 (EU\/GB)","parent_id":"41435"},{"id":"33174","value":"390 DUKE BLUE - NHD - B.D. 2024 (EU)","parent_id":"32421"},{"id":"40816","value":"390 DUKE BLUE - NHD - B.D. 2025 (EU)","parent_id":"33058"},{"id":"32508","value":"390 DUKE BLUE 2024","parent_id":"32421"},{"id":"33173","value":"390 DUKE BLUE 2024 (EU)","parent_id":"32421"},{"id":"40815","value":"390 DUKE BLUE 2025 (EU)","parent_id":"33058"},{"id":"45850","value":"390 DUKE BLUE 2026 (EU)","parent_id":"41435"},{"id":"33232","value":"390 DUKE COLOR 1 ABS CKD 2013 (EU)","parent_id":"14748"},{"id":"30329","value":"390 DUKE GREY - B.D. 2023 (EU)","parent_id":"17270"},{"id":"30376","value":"390 DUKE GREY 2023 (EU)","parent_id":"17270"},{"id":"30326","value":"390 DUKE GREY W\/O DRL - B.D. 2023","parent_id":"17270"},{"id":"36470","value":"390 DUKE GREY W\/O DRL - B.D. 2023 (EU)","parent_id":"17270"},{"id":"30375","value":"390 DUKE GREY W\/O DRL 2023","parent_id":"17270"},{"id":"36481","value":"390 DUKE GREY W\/O DRL 2023 (EU)","parent_id":"17270"},{"id":"16788","value":"390 DUKE ORANGE - B.D. 2018 (EU)","parent_id":"14738"},{"id":"16791","value":"390 DUKE ORANGE - B.D. 2019 (EU)","parent_id":"14740"},{"id":"16794","value":"390 DUKE ORANGE - B.D. 2020 (EU)","parent_id":"14863"},{"id":"36543","value":"390 DUKE ORANGE - B.D. 2024","parent_id":"32421"},{"id":"33178","value":"390 DUKE ORANGE - B.D. 2024 (EU)","parent_id":"32421"},{"id":"33175","value":"390 DUKE ORANGE - NHD - B.D. 2024 (EU)","parent_id":"32421"},{"id":"40818","value":"390 DUKE ORANGE - NHD - B.D. 2025 (EU)","parent_id":"33058"},{"id":"16189","value":"390 DUKE ORANGE 2017 (EU)","parent_id":"14729"},{"id":"16169","value":"390 DUKE ORANGE 2018 (EU)","parent_id":"14738"},{"id":"16203","value":"390 DUKE ORANGE 2019 (EU)","parent_id":"14740"},{"id":"16201","value":"390 DUKE ORANGE 2020 (EU)","parent_id":"14863"},{"id":"32507","value":"390 DUKE ORANGE 2024","parent_id":"32421"},{"id":"33176","value":"390 DUKE ORANGE 2024 (EU)","parent_id":"32421"},{"id":"40817","value":"390 DUKE ORANGE 2025 (EU)","parent_id":"33058"},{"id":"16771","value":"390 DUKE ORANGE B.D. 17 (EU)","parent_id":"14729"},{"id":"16170","value":"390 DUKE SILVER - B.D. 2021 (EU)","parent_id":"15038"},{"id":"17256","value":"390 DUKE SILVER - B.D. 2022","parent_id":"15040"},{"id":"17182","value":"390 DUKE SILVER - B.D. 2022 (EU)","parent_id":"15040"},{"id":"16197","value":"390 DUKE SILVER 2021 (EU)","parent_id":"15038"},{"id":"17186","value":"390 DUKE SILVER 2022","parent_id":"15040"},{"id":"17254","value":"390 DUKE SILVER 2022 (EU)","parent_id":"15040"},{"id":"16790","value":"390 DUKE WHITE - B.D. 2018 (EU)","parent_id":"14738"},{"id":"16793","value":"390 DUKE WHITE - B.D. 2019 (EU)","parent_id":"14740"},{"id":"16796","value":"390 DUKE WHITE - B.D. 2020 (EU)","parent_id":"14863"},{"id":"16798","value":"390 DUKE WHITE - B.D. 2021 (EU)","parent_id":"15038"},{"id":"17255","value":"390 DUKE WHITE - B.D. 2022","parent_id":"15040"},{"id":"17181","value":"390 DUKE WHITE - B.D. 2022 (EU)","parent_id":"15040"}
11712,{"id":"16772","value":"390 DUKE WHITE 2017 (EU)","parent_id":"14729"},{"id":"16789","value":"390 DUKE WHITE 2018 (EU)","parent_id":"14738"},{"id":"16792","value":"390 DUKE WHITE 2019 (EU)","parent_id":"14740"},{"id":"16795","value":"390 DUKE WHITE 2020 (EU)","parent_id":"14863"},{"id":"16797","value":"390 DUKE WHITE 2021 (EU)","parent_id":"15038"},{"id":"17185","value":"390 DUKE WHITE 2022","parent_id":"15040"},{"id":"17253","value":"390 DUKE WHITE 2022 (EU)","parent_id":"15040"},{"id":"16228","value":"390 DUKE WHITE ABS 2013 (EU)","parent_id":"14748"},{"id":"16760","value":"390 DUKE WHITE ABS 2014 (EU)","parent_id":"14758"},{"id":"16263","value":"390 DUKE WHITE ABS 2015 (EU)","parent_id":"14773"},{"id":"16278","value":"390 DUKE WHITE ABS 2016 (EU)","parent_id":"14775"},{"id":"16758","value":"390 DUKE WHITE ABS B.D. 15 (EU)","parent_id":"14773"},{"id":"16764","value":"390 DUKE WHITE ABS B.D. 16 (EU)","parent_id":"14775"},{"id":"16230","value":"390 DUKE WHITE ABS BAJ.DIR.13 (EU)","parent_id":"14748"},{"id":"16223","value":"390 DUKE WHITE ABS BAJ.DIR.14 (EU)","parent_id":"14758"},{"id":"16773","value":"390 DUKE WHITE B.D. 17 (EU)","parent_id":"14729"},{"id":"41549","value":"390 ENDURO R ORANGE - B.D. 2025 (EU\/GB)","parent_id":"33058"},{"id":"41548","value":"390 ENDURO R ORANGE 2025 (EU)","parent_id":"33058"},{"id":"41552","value":"390 ENDURO R - B.D. 2026","parent_id":"41435"},{"id":"41551","value":"390 ENDURO R - B.D. 2026 (EU\/GB)","parent_id":"41435"},{"id":"41550","value":"390 ENDURO R 2026 (EU)","parent_id":"41435"},{"id":"41507","value":"390 SMC R - B.D. 2025","parent_id":"33058"},{"id":"45852","value":"390 SMC R - B.D. 2026","parent_id":"41435"},{"id":"41510","value":"390 SMC R - B.D. 2026 (EU\/GB)","parent_id":"41435"},{"id":"41508","value":"390 SMC R - NHD - B.D. 2025 (EU)","parent_id":"33058"},{"id":"41506","value":"390 SMC R 2025 (EU)","parent_id":"33058"},{"id":"41509","value":"390 SMC R 2026 (EU)","parent_id":"41435"},{"id":"15961","value":"400 DUKE\/ 20KW (EU)","parent_id":"14913"},{"id":"15387","value":"400 EXC 2009 (EU)","parent_id":"14736"}
11712,{"id":"15582","value":"400 EXC 2010 (EU)","parent_id":"14733"},{"id":"15384","value":"400 EXC 2011 (EU)","parent_id":"14769"},{"id":"15349","value":"400 EXC FACTORY 2005 (EU)","parent_id":"14946"},{"id":"15377","value":"400 EXC FACTORY EDIT. 2011 (EU)","parent_id":"14769"},{"id":"14853","value":"400 EXC FACTORY RACING (EU)","parent_id":"14846"},{"id":"16352","value":"400 EXC RACING 2000 (EU)","parent_id":"15051"},{"id":"16058","value":"400 EXC RACING 2001 (EU)","parent_id":"14841"},{"id":"15960","value":"400 EXC RACING 2002 (EU)","parent_id":"15208"},{"id":"14814","value":"400 EXC RACING 2004 (EU)","parent_id":"14812"},{"id":"15699","value":"400 EXC RACING 2005 (EU)","parent_id":"14946"},{"id":"15702","value":"400 EXC RACING 2006 (EU)","parent_id":"15071"},{"id":"14855","value":"400 EXC RACING 2007 (EU)","parent_id":"14846"},{"id":"16055","value":"400 EXC RACING SIX-DAYS 2001 (EU)","parent_id":"14841"},{"id":"15957","value":"400 EXC RACING SIX-DAYS 2002 (EU)","parent_id":"15208"},{"id":"15948","value":"400 EXC RACING SIX-DAYS 2003 (EU)","parent_id":"14920"}
11712,{"id":"15353","value":"400 EXC WP (EU)","parent_id":"14826"},{"id":"41469","value":"400 LC 4 '98 (EU)","parent_id":"14940"},{"id":"15145","value":"400 LC 4 98 (EU)","parent_id":"14940"},{"id":"15974","value":"400 LC 4 99 (EU)","parent_id":"15048"},{"id":"15969","value":"400 LC4 R (EU)","parent_id":"15048"},{"id":"15988","value":"400 LC4-E 2000 (EU)","parent_id":"15051"},{"id":"15977","value":"400 LC4-E 2001 (EU)","parent_id":"14841"},{"id":"33308","value":"400 LC4-E CH BRONZEGR\u00dcN MIL (EU)","parent_id":"15048"},{"id":"33306","value":"400 LC4-E D BRONZEGR\u00dcN MIL (EU)","parent_id":"15051"},{"id":"33289","value":"400 LC4-E D MIL BRONZEGR.01 (EU)","parent_id":"14841"},{"id":"33290","value":"400 LC4-E EU MIL BRONZEGR.01 (EU)","parent_id":"14841"},{"id":"33251","value":"400 LC4-E PL MIL BRONZEGR.02 (EU)","parent_id":"15208"},{"id":"33256","value":"400 LC4-E SF BRONZEGR\u00dcN MIL (EU)","parent_id":"15048"},{"id":"33309","value":"400 LC4-E SF SCHWARZ MIL (EU)","parent_id":"15048"},{"id":"16510","value":"400 LS-E\/ MIL 04 (EU)","parent_id":"14812"},{"id":"16508","value":"400 LS-E\/ MIL 2005 (EU)","parent_id":"14946"}
11712,{"id":"15135","value":"400 LSE 11LT BLAU (EU)","parent_id":"14935"},{"id":"33337","value":"400 LSE 31KW 11LT BLAU (EU)","parent_id":"14935"},{"id":"16353","value":"400 SC 2000 (EU)","parent_id":"15051"},{"id":"33259","value":"400 SUP-COMP (EU)","parent_id":"14940"},{"id":"33358","value":"400 SUP-COMP 20KW (EU)","parent_id":"14940"},{"id":"16407","value":"400 SUP-COMP WP 14KW (FR)","parent_id":"14826"},{"id":"16408","value":"400 SUP-COMP WP 18KW (EU)","parent_id":"14826"},{"id":"33055","value":"400 SUPER-COMP WP (EU)","parent_id":"14826"},{"id":"33338","value":"400 SUPER-COMP WP 14KW (FR)","parent_id":"14935"},{"id":"33339","value":"400 SUPER-COMP WP 20KW (EU)","parent_id":"14935"},{"id":"15364","value":"400 SUPER-COMP WP\/ 14KW (FR)","parent_id":"14913"},{"id":"16450","value":"400 SX RACING 2000 (EU)","parent_id":"15051"},{"id":"16054","value":"400 SX RACING 2001 (EU)","parent_id":"14841"},{"id":"15956","value":"400 SX RACING 2002 (EU)","parent_id":"15208"},{"id":"32511","value":"400 SX-C (EU)","parent_id":"14940"},{"id":"33166","value":"400 SX-C 20KW (EU)","parent_id":"14940"}
11712,{"id":"15116","value":"400 SXC WP (EU)","parent_id":"14935"},{"id":"16397","value":"440 E-XC WP (EU)","parent_id":"14913"},{"id":"40731","value":"440 SX '94 (EU)","parent_id":"15319"},{"id":"16406","value":"440 SX 94 (EU)","parent_id":"15319"},{"id":"15389","value":"450 EXC 2009 (EU)","parent_id":"14736"},{"id":"15626","value":"450 EXC 2010 (EU)","parent_id":"14733"},{"id":"15376","value":"450 EXC 2011 (EU)","parent_id":"14769"},{"id":"15431","value":"450 EXC 2012 (EU)","parent_id":"14746"},{"id":"15808","value":"450 EXC 2013 (EU)","parent_id":"14748"},{"id":"15850","value":"450 EXC 2014 (EU)","parent_id":"14758"},{"id":"15890","value":"450 EXC 2015 (EU)","parent_id":"14773"},{"id":"15928","value":"450 EXC 2016 (EU)","parent_id":"14775"},{"id":"15385","value":"450 EXC CHAMPION EDIT. 2010 (EU)","parent_id":"14733"},{"id":"15350","value":"450 EXC FACTORY 2005 (EU)","parent_id":"14946"},{"id":"15382","value":"450 EXC FACTORY EDIT. 2011 (EU)","parent_id":"14769"},{"id":"15752","value":"450 EXC FACTORY EDITION 2015 (EU)","parent_id":"14773"},{"id":"14861","value":"450 EXC FACTORY RACING (EU)","parent_id":"14846"}
11712,{"id":"15943","value":"450 EXC RACING 2003 (EU)","parent_id":"14920"},{"id":"14819","value":"450 EXC RACING 2004 (EU)","parent_id":"14812"},{"id":"15706","value":"450 EXC RACING 2005 (EU)","parent_id":"14946"},{"id":"15708","value":"450 EXC RACING 2006 (EU)","parent_id":"15071"},{"id":"14850","value":"450 EXC RACING 2007 (EU)","parent_id":"14846"},{"id":"33248","value":"450 EXC RACING SIX-DAYS 2003 (EU)","parent_id":"14920"},{"id":"14817","value":"450 EXC RACING SIX-DAYS 2004 (EU)","parent_id":"14812"},{"id":"15704","value":"450 EXC RACING SIX-DAYS 2005 (EU)","parent_id":"14946"},{"id":"15707","value":"450 EXC RACING SIX-DAYS 2006 (EU)","parent_id":"15071"},{"id":"15612","value":"450 EXC RACING SIX-DAYS 2007 (EU)","parent_id":"14846"},{"id":"15660","value":"450 EXC SIX DAYS 2009 (EU)","parent_id":"14736"},{"id":"15416","value":"450 EXC SIX DAYS 2010 (EU)","parent_id":"14733"},{"id":"15380","value":"450 EXC SIX DAYS 2011 (EU)","parent_id":"14769"},{"id":"15015","value":"450 EXC SIX DAYS 2012 (EU)","parent_id":"14746"},{"id":"15018","value":"450 EXC SIX DAYS 2013 (EU)","parent_id":"14748"},{"id":"15917","value":"450 EXC SIX DAYS 2014 (EU)","parent_id":"14758"},{"id":"15709","value":"450 EXC SIX DAYS 2015 (EU)","parent_id":"14773"},{"id":"15771","value":"450 EXC SIX DAYS 2016 (EU)","parent_id":"14775"}
11712,{"id":"14967","value":"450 EXC-F 2017 (EU)","parent_id":"14729"},{"id":"14973","value":"450 EXC-F 2018 (EU)","parent_id":"14738"},{"id":"14977","value":"450 EXC-F 2019 (EU)","parent_id":"14740"},{"id":"15346","value":"450 EXC-F 2020 (EU)","parent_id":"14863"},{"id":"15348","value":"450 EXC-F 2021 (EU)","parent_id":"15038"},{"id":"15689","value":"450 EXC-F 2022 (EU)","parent_id":"15040"},{"id":"17294","value":"450 EXC-F 2023 (EU)","parent_id":"17270"},{"id":"32454","value":"450 EXC-F 2024 (EU)","parent_id":"32421"},{"id":"36541","value":"450 EXC-F 2025 (EU)","parent_id":"33058"},{"id":"41440","value":"450 EXC-F 2026 (EU)","parent_id":"41435"},{"id":"41445","value":"450 EXC-F 6DAYS 2026 (EU)","parent_id":"41435"},{"id":"36531","value":"450 EXC-F CHAMPION EDITION 2025","parent_id":"33058"},{"id":"41473","value":"450 EXC-F CHAMPION EDITION 2025 (EU)","parent_id":"33058"},{"id":"14972","value":"450 EXC-F SIX DAYS 2017 (EU)","parent_id":"14729"},{"id":"14976","value":"450 EXC-F SIX DAYS 2018 (EU)","parent_id":"14738"},{"id":"14981","value":"450 EXC-F SIX DAYS 2019 (EU)","parent_id":"14740"},{"id":"15347","value":"450 EXC-F SIX DAYS 2020 (EU)","parent_id":"14863"},{"id":"15341","value":"450 EXC-F SIX DAYS 2021 (EU)","parent_id":"15038"},{"id":"15691","value":"450 EXC-F SIX DAYS 2022 (EU)","parent_id":"15040"},{"id":"17289","value":"450 EXC-F SIX DAYS 2023 (EU)","parent_id":"17270"},{"id":"32463","value":"450 EXC-F SIX DAYS 2024 (EU)","parent_id":"32421"},{"id":"36491","value":"450 EXC-F SIX DAYS 2025 (EU)","parent_id":"33058"},{"id":"15493","value":"450 EXC-R 2008 (EU)","parent_id":"14985"},{"id":"15490","value":"450 EXC-R SIX-DAYS 08 (EU)","parent_id":"14985"},{"id":"41434","value":"450 RALLY FACTORY REPLICA","parent_id":"14769"},{"id":"33131","value":"450 RALLY FACTORY REPLICA (EU)","parent_id":"14746"},{"id":"15887","value":"450 RALLY FACTORY REPLICA 2013 (EU)","parent_id":"14748"},{"id":"15802","value":"450 RALLY FACTORY REPLICA 2014 (EU)","parent_id":"14758"},{"id":"15900","value":"450 RALLY FACTORY REPLICA 2015 (EU)","parent_id":"14773"},{"id":"15845","value":"450 RALLY FACTORY REPLICA 2016 (EU)","parent_id":"14775"}
11712,{"id":"15923","value":"450 RALLY FACTORY REPLICA 2017 (EU)","parent_id":"14729"},{"id":"15744","value":"450 RALLY FACTORY REPLICA 2018 (EU)","parent_id":"14738"},{"id":"15761","value":"450 RALLY FACTORY REPLICA 2019","parent_id":"14740"},{"id":"15882","value":"450 RALLY FACTORY REPLICA 2020","parent_id":"14863"},{"id":"15794","value":"450 RALLY FACTORY REPLICA 2021 (EU)","parent_id":"15038"},{"id":"16622","value":"450 RALLY FACTORY REPLICA 2022 (EU)","parent_id":"15040"},{"id":"35984","value":"450 RALLY REPLICA 2025","parent_id":"33058"},{"id":"41480","value":"450 RALLY REPLICA `SANDERS EDITION` 2026","parent_id":"41435"},{"id":"16506","value":"450 RALLYE FACTORY REPL. 2004 (EU)","parent_id":"14812"},{"id":"16507","value":"450 RALLYE FACTORY REPL. 2005 (EU)","parent_id":"14946"},{"id":"16427","value":"450 SMR 2004 (EU)","parent_id":"14812"},{"id":"16436","value":"450 SMR 2005 (EU)","parent_id":"14946"},{"id":"16419","value":"450 SMR 2006 (EU)","parent_id":"15071"},{"id":"15579","value":"450 SMR 2007 (EU)","parent_id":"14846"}
11712,{"id":"15625","value":"450 SMR 2008 (EU)","parent_id":"14985"},{"id":"15668","value":"450 SMR 2009 (EU)","parent_id":"14736"},{"id":"15414","value":"450 SMR 2010 (EU)","parent_id":"14733"},{"id":"33247","value":"450 SMR 2011 (EU)","parent_id":"14769"},{"id":"15460","value":"450 SMR 2012 (EU)","parent_id":"14746"},{"id":"15825","value":"450 SMR 2013 (EU)","parent_id":"14748"},{"id":"15862","value":"450 SMR 2014 (EU)","parent_id":"14758"},{"id":"15694","value":"450 SMR 2021 (EU)","parent_id":"15038"},{"id":"17257","value":"450 SMR 2022 (EU)","parent_id":"15040"},{"id":"17298","value":"450 SMR 2023 (EU)","parent_id":"17270"},{"id":"32480","value":"450 SMR 2024 (EU)","parent_id":"32421"},{"id":"36519","value":"450 SMR 2025 (EU)","parent_id":"33058"},{"id":"41482","value":"450 SMR 2026 (EU)","parent_id":"41435"},{"id":"16321","value":"450 SMS (EU)","parent_id":"14812"},{"id":"16415","value":"450 SX 2006 (EU)","parent_id":"15071"},{"id":"16324","value":"450 SX ATV 2009 (EU)","parent_id":"14736"},{"id":"14735","value":"450 SX ATV 2010 (EU)","parent_id":"14733"},{"id":"33286","value":"450 SX ATV 2011 (EU)","parent_id":"14769"},{"id":"15947","value":"450 SX RACING 2003 (EU)","parent_id":"14920"}
11712,{"id":"14821","value":"450 SX RACING 2004 (EU)","parent_id":"14812"},{"id":"16440","value":"450 SX RACING 2005 (EU)","parent_id":"14946"},{"id":"16441","value":"450 SX STEVE RAMON 2005 (EU)","parent_id":"14946"},{"id":"15657","value":"450 SX-F 2007 (EU)","parent_id":"14846"},{"id":"15406","value":"450 SX-F 2008 (EU)","parent_id":"14985"},{"id":"16319","value":"450 SX-F 2009 (EU)","parent_id":"14736"},{"id":"16320","value":"450 SX-F 2010 (EU)","parent_id":"14733"},{"id":"15545","value":"450 SX-F 2011 (EU)","parent_id":"14769"},{"id":"15595","value":"450 SX-F 2012 (EU)","parent_id":"14746"},{"id":"15926","value":"450 SX-F 2013 (EU)","parent_id":"14748"},{"id":"15741","value":"450 SX-F 2014 (EU)","parent_id":"14758"},{"id":"15773","value":"450 SX-F 2015 (EU)","parent_id":"14773"},{"id":"15807","value":"450 SX-F 2016 (EU)","parent_id":"14775"},{"id":"15843","value":"450 SX-F 2017 (EU)","parent_id":"14729"},{"id":"15879","value":"450 SX-F 2018 (EU)","parent_id":"14738"},{"id":"15914","value":"450 SX-F 2019 (EU)","parent_id":"14740"},{"id":"15688","value":"450 SX-F 2020 (EU)","parent_id":"14863"},{"id":"15690","value":"450 SX-F 2021 (EU)","parent_id":"15038"},{"id":"15692","value":"450 SX-F 2022 (EU)","parent_id":"15040"},{"id":"32468","value":"450 SX-F 2023 (EU)","parent_id":"17270"},{"id":"32487","value":"450 SX-F 2024 (EU)","parent_id":"32421"},{"id":"33065","value":"450 SX-F 2025 (EU)","parent_id":"33058"},{"id":"41489","value":"450 SX-F 2026 (EU)","parent_id":"41435"},{"id":"45859","value":"450 SX-F 2027","parent_id":"45841"}
11712,{"id":"15693","value":"450 SX-F CAIROLI 2020 (EU)","parent_id":"14863"},{"id":"15616","value":"450 SX-F FACT.REPL.NAGL (EU)","parent_id":"14733"},{"id":"15871","value":"450 SX-F FACTORY EDITION 2013 (EU)","parent_id":"14748"},{"id":"15937","value":"450 SX-F HERLINGS REPLICA 2019 (EU)","parent_id":"14740"},{"id":"33241","value":"450 SX-F PRESERIES 2006 (EU)","parent_id":"15071"},{"id":"16414","value":"450 SXS 2006 (EU)","parent_id":"15071"},{"id":"15944","value":"450 SXS RACING 2003 (EU)","parent_id":"14920"},{"id":"14820","value":"450 SXS RACING 2004 (EU)","parent_id":"14812"},{"id":"16438","value":"450 SXS RACING 2005 (EU)","parent_id":"14946"},{"id":"15588","value":"450 SXS-F 2007 (EU)","parent_id":"14846"},{"id":"15636","value":"450 SXS-F 2008 (EU)","parent_id":"14985"},{"id":"15516","value":"450 XC 2007 (EU)","parent_id":"14846"},{"id":"16481","value":"450 XC ATV 2008 (EU)","parent_id":"14985"},{"id":"16476","value":"450 XC ATV 2009 (EU)","parent_id":"14736"},{"id":"16477","value":"450 XC ATV 2010","parent_id":"14733"},{"id":"16511","value":"450 XC ATV 2010 (EU)","parent_id":"14733"},{"id":"33287","value":"450 XC ATV 2011","parent_id":"14769"},{"id":"14823","value":"450 XC CROSS COUNTRY 2004 (EU)","parent_id":"14812"},{"id":"33064","value":"450 XC-F 2025","parent_id":"33058"},{"id":"41490","value":"50 JUNIOR ADVENTURE 2002 (EU US)","parent_id":"15208"},{"id":"16492","value":"50 JUNIOR ADVENTURE 2002 (EU\/US)","parent_id":"15208"},{"id":"15998","value":"50 JUNIOR ADVENTURE 2003 (EU)","parent_id":"14920"},{"id":"33133","value":"50 MINI ADVENTURE (EU)","parent_id":"14935"},{"id":"16021","value":"50 MINI ADVENTURE 2000 (EU)","parent_id":"15051"},{"id":"16022","value":"50 MINI ADVENTURE 2001 (EU)","parent_id":"14841"},{"id":"41491","value":"50 MINI ADVENTURE 2002 (EU US)","parent_id":"15208"},{"id":"16491","value":"50 MINI ADVENTURE 2002 (EU\/US)","parent_id":"15208"},{"id":"15999","value":"50 MINI ADVENTURE 2003 (EU)","parent_id":"14920"}
11712,{"id":"16001","value":"50 MINI ADVENTURE 2004 (EU)","parent_id":"14812"},{"id":"16497","value":"50 MINI ADVENTURE 2005 (EU)","parent_id":"14946"},{"id":"16006","value":"50 MINI ADVENTURE 2006 (EU)","parent_id":"15071"},{"id":"16008","value":"50 MINI ADVENTURE 2007 (EU)","parent_id":"14846"},{"id":"16024","value":"50 MINI ADVENTURE 2008 (EU)","parent_id":"14985"},{"id":"16020","value":"50 MINI ADVENTURE 99 (EU)","parent_id":"15048"},{"id":"16493","value":"50 MINI ADVENTURE GS 2002 (EU)","parent_id":"15208"},{"id":"41492","value":"50 SENIOR ADVENTURE 2002 (EU US)","parent_id":"15208"},{"id":"16496","value":"50 SENIOR ADVENTURE 2002 (EU\/US)","parent_id":"15208"},{"id":"16003","value":"50 SENIOR ADVENTURE 2003 (EU)","parent_id":"14920"},{"id":"16005","value":"50 SENIOR ADVENTURE 2004 (EU)","parent_id":"14812"},{"id":"16478","value":"50 SENIOR ADVENTURE 2005 (EU)","parent_id":"14946"},{"id":"15991","value":"50 SENIOR ADVENTURE 2006 (EU)","parent_id":"15071"},{"id":"15993","value":"50 SENIOR ADVENTURE 2007 (EU)","parent_id":"14846"}
11712,{"id":"15994","value":"50 SUPERMOTO 2006 (EU)","parent_id":"15071"},{"id":"15995","value":"50 SUPERMOTO 2007 (EU)","parent_id":"14846"},{"id":"16010","value":"50 SX (EU)","parent_id":"14985"},{"id":"16004","value":"50 SX 2006 (EU)","parent_id":"15071"},{"id":"16007","value":"50 SX 2007 (EU)","parent_id":"14846"},{"id":"16009","value":"50 SX 2008 (EU)","parent_id":"14985"},{"id":"16464","value":"50 SX 2009 (EU)","parent_id":"14736"},{"id":"16465","value":"50 SX 2010 (EU)","parent_id":"14733"},{"id":"16466","value":"50 SX 2011 (EU)","parent_id":"14769"},{"id":"16409","value":"50 SX 2012 (EU)","parent_id":"14746"},{"id":"16361","value":"50 SX 2013 (EU)","parent_id":"14748"},{"id":"16362","value":"50 SX 2014 (EU)","parent_id":"14758"},{"id":"16363","value":"50 SX 2015 (EU)","parent_id":"14773"},{"id":"16011","value":"50 SX 2016 (EU)","parent_id":"14775"},{"id":"16365","value":"50 SX 2017 (EU)","parent_id":"14729"},{"id":"16367","value":"50 SX 2018 (EU)","parent_id":"14738"},{"id":"16369","value":"50 SX 2019 (EU)","parent_id":"14740"},{"id":"15842","value":"50 SX 2020 (EU)","parent_id":"14863"},{"id":"15869","value":"50 SX 2021 (EU)","parent_id":"15038"},{"id":"15901","value":"50 SX 2022 (EU)","parent_id":"15040"},{"id":"32478","value":"50 SX 2023 (EU)","parent_id":"17270"},{"id":"33121","value":"50 SX 2024","parent_id":"32421"},{"id":"33122","value":"50 SX 2025","parent_id":"33058"},{"id":"41485","value":"50 SX 2026","parent_id":"41435"},{"id":"45856","value":"50 SX 2027","parent_id":"45841"},{"id":"36553","value":"50 SX FACTORY EDITION 2025","parent_id":"33058"},{"id":"41486","value":"50 SX FACTORY EDITION 2026","parent_id":"41435"},{"id":"16017","value":"50 SX JUNIOR 2000 (EU)","parent_id":"15051"},{"id":"16012","value":"50 SX JUNIOR 2001 (EU)","parent_id":"14841"}
11712,{"id":"15992","value":"50 SX JUNIOR 2006 (EU)","parent_id":"15071"},{"id":"36524","value":"50 SX JUNIOR 2009 (AU\/US)","parent_id":"14736"},{"id":"16446","value":"50 SX MINI 2009 (EU)","parent_id":"14736"},{"id":"16447","value":"50 SX MINI 2010 (EU)","parent_id":"14733"},{"id":"16451","value":"50 SX MINI 2011 (EU)","parent_id":"14769"},{"id":"16448","value":"50 SX MINI 2012 (EU)","parent_id":"14746"},{"id":"16428","value":"50 SX MINI 2013 (EU)","parent_id":"14748"},{"id":"16410","value":"50 SX MINI 2014 (EU)","parent_id":"14758"},{"id":"16370","value":"50 SX MINI 2015 (EU)","parent_id":"14773"},{"id":"16025","value":"50 SX MINI 2016 (EU)","parent_id":"14775"},{"id":"16364","value":"50 SX MINI 2017 (EU)","parent_id":"14729"},{"id":"16366","value":"50 SX MINI 2018 (EU)","parent_id":"14738"},{"id":"16368","value":"50 SX MINI 2019 (EU)","parent_id":"14740"},{"id":"15828","value":"50 SX MINI 2020 (EU)","parent_id":"14863"},{"id":"15859","value":"50 SX MINI 2021 (EU)","parent_id":"15038"},{"id":"15894","value":"50 SX MINI 2022 (EU)","parent_id":"15040"},{"id":"17297","value":"50 SX MINI 2023","parent_id":"17270"},{"id":"16456","value":"50 SX PRO JUNIOR (EU)","parent_id":"14940"}
11712,{"id":"16489","value":"50 SX PRO JUNIOR LC 2002 (EU)","parent_id":"15208"},{"id":"16490","value":"50 SX PRO JUNIOR LC 2003 (EU)","parent_id":"14920"},{"id":"15996","value":"50 SX PRO JUNIOR LC 2004 (EU)","parent_id":"14812"},{"id":"15997","value":"50 SX PRO JUNIOR LC 2005 (EU)","parent_id":"14946"},{"id":"16455","value":"50 SX PRO SENIOR (EU)","parent_id":"14940"},{"id":"16512","value":"50 SX PRO SENIOR LC 2001 (EU)","parent_id":"14841"},{"id":"41493","value":"50 SX PRO SENIOR LC 2002 (EU US)","parent_id":"15208"},{"id":"16494","value":"50 SX PRO SENIOR LC 2002 (EU\/US)","parent_id":"15208"},{"id":"16495","value":"50 SX PRO SENIOR LC 2003 (EU)","parent_id":"14920"},{"id":"16002","value":"50 SX PRO SENIOR LC 2004 (EU)","parent_id":"14812"},{"id":"16668","value":"50 SX PRO SENIOR LC 2005 (EU)","parent_id":"14946"},{"id":"16015","value":"50 SX SENIOR 2000 (EU)","parent_id":"15051"},{"id":"16016","value":"50 SX SENIOR 2001 (EU)","parent_id":"14841"},{"id":"16023","value":"50 SXR PRO JUNIOR (EU)","parent_id":"14935"},{"id":"16669","value":"50 SXR PRO SENIOR (EU)","parent_id":"14935"},{"id":"15420","value":"500 EXC 2012 (EU)","parent_id":"14746"},{"id":"15797","value":"500 EXC 2013 (EU)","parent_id":"14748"},{"id":"15837","value":"500 EXC 2014 (EU)","parent_id":"14758"},{"id":"15880","value":"500 EXC 2015 (EU)","parent_id":"14773"},{"id":"15920","value":"500 EXC 2016 (EU)","parent_id":"14775"}
11712,{"id":"15011","value":"500 EXC SIX DAYS 2012 (EU)","parent_id":"14746"},{"id":"15012","value":"500 EXC SIX DAYS 2013 (EU)","parent_id":"14748"},{"id":"15818","value":"500 EXC SIX DAYS 2014 (EU)","parent_id":"14758"},{"id":"15710","value":"500 EXC SIX DAYS 2015 (EU)","parent_id":"14773"},{"id":"15896","value":"500 EXC SIX DAYS 2016 (EU)","parent_id":"14775"},{"id":"14963","value":"500 EXC-F 2017 (EU)","parent_id":"14729"},{"id":"14966","value":"500 EXC-F 2018 (EU)","parent_id":"14738"},{"id":"14971","value":"500 EXC-F 2019 (EU)","parent_id":"14740"},{"id":"15343","value":"500 EXC-F 2020 (EU)","parent_id":"14863"},{"id":"15345","value":"500 EXC-F 2021 (EU)","parent_id":"15038"},{"id":"15696","value":"500 EXC-F 2022 (EU)","parent_id":"15040"},{"id":"17279","value":"500 EXC-F 2023 (EU)","parent_id":"17270"},{"id":"32426","value":"500 EXC-F 2024 (EU)","parent_id":"32421"},{"id":"36530","value":"500 EXC-F 2025 (EU)","parent_id":"33058"},{"id":"41442","value":"500 EXC-F 2026 (EU)","parent_id":"41435"},{"id":"41447","value":"500 EXC-F 6DAYS 2026 (EU)","parent_id":"41435"},{"id":"36529","value":"500 EXC-F CHAMPION EDITION 2025","parent_id":"33058"},{"id":"41474","value":"500 EXC-F CHAMPION EDITION 2025 (EU)","parent_id":"33058"},{"id":"14984","value":"500 EXC-F SIX DAYS 2017 (EU)","parent_id":"14729"},{"id":"14964","value":"500 EXC-F SIX DAYS 2018 (EU)","parent_id":"14738"},{"id":"14968","value":"500 EXC-F SIX DAYS 2019 (EU)","parent_id":"14740"},{"id":"15342","value":"500 EXC-F SIX DAYS 2020 (EU)","parent_id":"14863"},{"id":"15344","value":"500 EXC-F SIX DAYS 2021 (EU)","parent_id":"15038"},{"id":"15695","value":"500 EXC-F SIX DAYS 2022 (EU)","parent_id":"15040"},{"id":"17280","value":"500 EXC-F SIX DAYS 2023 (EU)","parent_id":"17270"},{"id":"32427","value":"500 EXC-F SIX DAYS 2024","parent_id":"32421"},{"id":"32428","value":"500 EXC-F SIX DAYS 2024 (EU)","parent_id":"32421"},{"id":"36527","value":"500 EXC-F SIX DAYS 2025 (EU)","parent_id":"33058"},{"id":"14737","value":"505 SX ATV 2009 (EU)","parent_id":"14736"}
11712,{"id":"14734","value":"505 SX ATV 2010 (EU)","parent_id":"14733"},{"id":"33288","value":"505 SX ATV 2011 (EU)","parent_id":"14769"},{"id":"16483","value":"505 SX ATV 2012 (EU)","parent_id":"14746"},{"id":"15627","value":"505 SX-F (EU)","parent_id":"14985"},{"id":"16065","value":"505 SX-F PRESERIES 2007 (EU)","parent_id":"14846"},{"id":"15580","value":"505 XC-F 2009 (EU)","parent_id":"14736"},{"id":"33227","value":"505 XC-F 2010","parent_id":"14733"},{"id":"16357","value":"520 EXC RACING 2000 (EU)","parent_id":"15051"},{"id":"16536","value":"520 EXC RACING 2001 (EU)","parent_id":"14841"},{"id":"15958","value":"520 EXC RACING 2002 (EU)","parent_id":"15208"},{"id":"16057","value":"520 EXC RACING SIX.DAYS 2001 (EU)","parent_id":"14841"},{"id":"15959","value":"520 EXC RACING SIX.DAYS 2002 (EU)","parent_id":"15208"},{"id":"40888","value":"520 EXC-E '99 (EU)","parent_id":"15048"},{"id":"33310","value":"520 EXC-E 99 (EU)","parent_id":"15048"},{"id":"16449","value":"520 SX RACING 2000 (EU)","parent_id":"15051"},{"id":"16056","value":"520 SX RACING 2001 (EU)","parent_id":"14841"}
11712,{"id":"16381","value":"520 SX RACING 2002 (EU)","parent_id":"15208"},{"id":"15351","value":"525 EXC FACTORY 2005 (EU)","parent_id":"14946"},{"id":"14859","value":"525 EXC FACTORY RACING (EU)","parent_id":"14846"},{"id":"15941","value":"525 EXC RACING 2003 (EU)","parent_id":"14920"},{"id":"14815","value":"525 EXC RACING 2004 (EU)","parent_id":"14812"},{"id":"15703","value":"525 EXC RACING 2005 (EU)","parent_id":"14946"},{"id":"15705","value":"525 EXC RACING 2006 (EU)","parent_id":"15071"},{"id":"14857","value":"525 EXC RACING 2007 (EU)","parent_id":"14846"},{"id":"15700","value":"525 EXC RACING SIX-DAYS 2006 (EU)","parent_id":"15071"},{"id":"15488","value":"525 EXC RACING SIX-DAYS 2007 (EU)","parent_id":"14846"},{"id":"15949","value":"525 EXC RACING SIX.DAYS 2003 (EU)","parent_id":"14920"},{"id":"14825","value":"525 EXC RACING SIX.DAYS 2004 (EU)","parent_id":"14812"},{"id":"15697","value":"525 EXC RACING SIX.DAYS 2005 (EU)","parent_id":"14946"},{"id":"15951","value":"525 MXC DESERT RACING 2003 (EU)","parent_id":"14920"}
11712,{"id":"14813","value":"525 MXC DESERT RACING 2004 (EU)","parent_id":"14812"},{"id":"15698","value":"525 MXC DESERT RACING 2005 (EU)","parent_id":"14946"},{"id":"16426","value":"525 SMR 2004 (EU)","parent_id":"14812"},{"id":"16435","value":"525 SMR 2005 (EU)","parent_id":"14946"},{"id":"16417","value":"525 SX 2006 (EU)","parent_id":"15071"},{"id":"15950","value":"525 SX RACING 2003 (EU)","parent_id":"14920"},{"id":"14824","value":"525 SX RACING 2004 (EU)","parent_id":"14812"},{"id":"16443","value":"525 SX RACING 2005 (EU)","parent_id":"14946"},{"id":"14818","value":"525 SX SUPERMOTO 2004 (EU)","parent_id":"14812"},{"id":"16480","value":"525 XC ATV 2008 (EU)","parent_id":"14985"},{"id":"16475","value":"525 XC ATV 2009 (EU)","parent_id":"14736"},{"id":"16432","value":"525 XC ATV 2010 (EU)","parent_id":"14733"},{"id":"16433","value":"525 XC ATV 2011 (EU)","parent_id":"14769"},{"id":"14747","value":"525 XC ATV 2012 (EU)","parent_id":"14746"},{"id":"15701","value":"525 XC DESERT RACING 2006 (EU)","parent_id":"15071"},{"id":"14854","value":"525 XC DESERT RACING 2007 (EU)","parent_id":"14846"}
11712,{"id":"15386","value":"530 EXC 2009 (EU)","parent_id":"14736"},{"id":"15452","value":"530 EXC 2010 (EU)","parent_id":"14733"},{"id":"15381","value":"530 EXC 2011 (EU)","parent_id":"14769"},{"id":"15388","value":"530 EXC CHAMPION EDIT. 2010 (EU)","parent_id":"14733"},{"id":"15383","value":"530 EXC FACTORY EDIT. 2011 (EU)","parent_id":"14769"},{"id":"15658","value":"530 EXC SIX DAYS 2009 (EU)","parent_id":"14736"},{"id":"15415","value":"530 EXC SIX.DAYS 2010 (EU)","parent_id":"14733"},{"id":"15379","value":"530 EXC SIX.DAYS 2011 (EU)","parent_id":"14769"},{"id":"15629","value":"530 EXC-R 2008 (EU)","parent_id":"14985"},{"id":"15523","value":"530 EXC-R SIX-DAYS 2008 (EU)","parent_id":"14985"},{"id":"32512","value":"540 SXC (EU)","parent_id":"14940"},{"id":"15372","value":"540 SXC 20KW (EU)","parent_id":"15048"},{"id":"15370","value":"540 SXC 20KW 98 (EU)","parent_id":"14940"},{"id":"16420","value":"540 SXS 2006 (EU)","parent_id":"15071"},{"id":"33307","value":"540 SXS RACING 2000 (EU)","parent_id":"15051"},{"id":"16059","value":"540 SXS RACING 2001 (EU)","parent_id":"14841"}
11712,{"id":"15955","value":"540 SXS RACING 2002 (EU)","parent_id":"15208"},{"id":"15942","value":"540 SXS RACING 2003 (EU)","parent_id":"14920"},{"id":"14816","value":"540 SXS RACING 2004 (EU)","parent_id":"14812"},{"id":"16437","value":"540 SXS RACING 2005 (EU)","parent_id":"14946"},{"id":"16418","value":"560 SMR 2006 (EU)","parent_id":"15071"},{"id":"15571","value":"560 SMR 2007 (EU)","parent_id":"14846"},{"id":"16032","value":"60 SX (EU)","parent_id":"14940"},{"id":"16027","value":"60 SX 2000 (EU)","parent_id":"15051"},{"id":"40885","value":"600 4T EXC USA '94 (EU)","parent_id":"15319"},{"id":"33297","value":"600 4T EXC USA 94 (EU)","parent_id":"15319"},{"id":"40886","value":"620 4T SIX DAYS WP AUSTRAL '96 (EU)","parent_id":"14826"},{"id":"33292","value":"620 4T SIX DAYS WP AUSTRAL 96 (EU)","parent_id":"14826"},{"id":"15130","value":"620 COMPETITION LIMITED 20KW (EU)","parent_id":"14935"},{"id":"40785","value":"620 DUKE 37KW '94 (EU)","parent_id":"15319"},{"id":"15356","value":"620 DUKE 37KW (EU)","parent_id":"14826"}
11712,{"id":"15966","value":"620 DUKE 37KW 94 (EU)","parent_id":"15319"},{"id":"15965","value":"620 DUKE-E 37KW (EU)","parent_id":"14935"},{"id":"40784","value":"620 E-XC 20KW\/20LT '94 (EU)","parent_id":"15319"},{"id":"15324","value":"620 E-XC 20KW\/20LT 94 (EU)","parent_id":"15319"},{"id":"15362","value":"620 E-XC DAKAR 20KW\/20LT (EU)","parent_id":"14913"},{"id":"15151","value":"620 EGS 37KW 11LT ORANGE (EU)","parent_id":"14935"},{"id":"15148","value":"620 EGS 37KW 20LT BLAU (EU)","parent_id":"14935"},{"id":"15105","value":"620 EGS 37KW 20LT ROT (EU)","parent_id":"14935"},{"id":"15355","value":"620 EGS WP (EU)","parent_id":"14826"},{"id":"40783","value":"620 EGS WP 37KW 20LT '94 (EU)","parent_id":"15319"},{"id":"15322","value":"620 EGS WP 37KW 20LT 94 (EU)","parent_id":"15319"},{"id":"15359","value":"620 EGS WP 37KW 20LT ROT (EU)","parent_id":"14826"},{"id":"40757","value":"620 EGS WP 37KW 20LT VIOL '95 (EU)","parent_id":"14913"},{"id":"15354","value":"620 EGS WP 37KW 20LT VIOL (EU)","parent_id":"14826"},{"id":"15365","value":"620 EGS WP 37KW 20LT VIOL 95 (EU)","parent_id":"14913"},{"id":"15963","value":"620 EGS-E 11LT ORANGE (EU)","parent_id":"14935"},{"id":"15964","value":"620 EGS-E 11LT ORANGE\/LOW (EU)","parent_id":"14935"},{"id":"15124","value":"620 EGS-E 35KW 11LT BLAU (EU)","parent_id":"14935"},{"id":"15137","value":"620 EGS-E 37KW 11LT ORANGE (EU)","parent_id":"14935"},{"id":"16534","value":"620 EGS-E 37KW 20LT BLAU (EU)","parent_id":"14935"},{"id":"15111","value":"620 EGS-E 37KW 20LT ROT (EU)","parent_id":"14935"},{"id":"15123","value":"620 EGS-E ADVENTURE (EU)","parent_id":"14935"},{"id":"15134","value":"620 ENDURO LIMITED (EU)","parent_id":"14935"},{"id":"40762","value":"620 LC-4 '98 COMPETITION (EU)","parent_id":"14940"}
11712,{"id":"15114","value":"620 LC-4 98 COMPETITION (EU)","parent_id":"14940"},{"id":"15373","value":"620 LC-4 COMPETITION (EU)","parent_id":"15048"},{"id":"15371","value":"620 LC-4 SUPER-MOTO 99 (EU)","parent_id":"15048"},{"id":"40763","value":"620 LC4 RALLYE '97 (EU)","parent_id":"14935"},{"id":"15136","value":"620 LC4 RALLYE 97 (EU)","parent_id":"14935"},{"id":"15149","value":"620 LSE 11LT BLAU (EU)","parent_id":"14935"},{"id":"15962","value":"620 LSE 37KW 11LT BLAU (EU)","parent_id":"14935"},{"id":"16125","value":"620 SC 2000 (EU)","parent_id":"15051"},{"id":"16127","value":"620 SC 2001 (EU)","parent_id":"14841"},{"id":"16128","value":"620 SC SUPER-MOTO 2000 (EU)","parent_id":"15051"},{"id":"16129","value":"620 SC SUPER-MOTO 2001 (EU)","parent_id":"14841"},{"id":"15358","value":"620 SIX-DAYS WP 37KW 11LT (EU)","parent_id":"14826"},{"id":"15147","value":"620 SUP-COMP (EU)","parent_id":"14940"},{"id":"33359","value":"620 SUP-COMP 20KW (EU)","parent_id":"14940"},{"id":"15120","value":"620 SUP-COMP WP (EU)","parent_id":"14935"},{"id":"15357","value":"620 SUP-COMP WP 20KW (EU)","parent_id":"14826"}
11712,{"id":"15360","value":"620 SUPER-COMP 4T (EU)","parent_id":"14826"},{"id":"33341","value":"620 SUPER-COMP WP 19KW (FR)","parent_id":"14935"},{"id":"15327","value":"620 SUPER-COMP WP\/ 19KW (EU)","parent_id":"15319"},{"id":"15363","value":"620 SUPER-COMP WP\/ 19KW (FR)","parent_id":"14913"},{"id":"40768","value":"620 SUPER-MOTO COMP. 20 KW '98 (EU)","parent_id":"14940"},{"id":"15104","value":"620 SUPER-MOTO COMP. 20 KW 98 (EU)","parent_id":"14940"},{"id":"40786","value":"620 SX '99 (EU)","parent_id":"15048"},{"id":"15129","value":"620 SX (EU)","parent_id":"14940"},{"id":"15374","value":"620 SX 99 (EU)","parent_id":"15048"},{"id":"33293","value":"620 SX WP (EU)","parent_id":"14826"},{"id":"15119","value":"620 SXC WP (EU)","parent_id":"14935"},{"id":"15224","value":"625 SC 2002 (EU)","parent_id":"15208"},{"id":"15231","value":"625 SC SUPER-MOTO 2002 (EU)","parent_id":"15208"},{"id":"15245","value":"625 SMC 2004 (EU)","parent_id":"14812"},{"id":"15167","value":"625 SMC 2005 (EU)","parent_id":"14946"},{"id":"15180","value":"625 SMC 2006 (EU)","parent_id":"15071"},{"id":"15233","value":"625 SXC 2003 (EU)","parent_id":"14920"}
11712,{"id":"15241","value":"625 SXC 2004 (EU)","parent_id":"14812"},{"id":"15163","value":"625 SXC 2005 (EU)","parent_id":"14946"},{"id":"15177","value":"625 SXC 2006 (EU)","parent_id":"15071"},{"id":"15191","value":"625 SXC 2007 (EU)","parent_id":"14846"},{"id":"15154","value":"640 ADVENTURE 2005 (EU)","parent_id":"14946"},{"id":"15176","value":"640 ADVENTURE 2007 (EU)","parent_id":"14846"},{"id":"16124","value":"640 ADVENTURE-R (EU)","parent_id":"15048"},{"id":"16118","value":"640 ADVENTURE-R 2000 (EU)","parent_id":"15051"},{"id":"16126","value":"640 ADVENTURE-R 2001 (EU)","parent_id":"14841"},{"id":"15232","value":"640 ADVENTURE-R 2002 (EU)","parent_id":"15208"},{"id":"15214","value":"640 ADVENTURE-R 2004 (EU)","parent_id":"14812"},{"id":"15113","value":"640 ADVENTURE-R D (EU)","parent_id":"14940"},{"id":"16645","value":"640 DUKE II 2000 (EU)","parent_id":"15051"},{"id":"15215","value":"640 DUKE II BLACK 2003 (EU)","parent_id":"14920"},{"id":"15228","value":"640 DUKE II BLACK 2004 (EU)","parent_id":"14812"},{"id":"15156","value":"640 DUKE II BLACK 2005 (EU)","parent_id":"14946"}
11712,{"id":"16656","value":"640 DUKE II COL 2 LAST 2006 (EU)","parent_id":"15071"},{"id":"16647","value":"640 DUKE II DUKE ROT 2001 (EU)","parent_id":"14841"},{"id":"33249","value":"640 DUKE II FARBE 3 2003 (EU)","parent_id":"14920"},{"id":"16123","value":"640 DUKE II LIME 2000 (EU)","parent_id":"15051"},{"id":"16121","value":"640 DUKE II LIME 2001 (EU)","parent_id":"14841"},{"id":"15166","value":"640 DUKE II LIMITED ED 2006 (EU)","parent_id":"15071"},{"id":"15234","value":"640 DUKE II ORANGE 2002 (EU)","parent_id":"15208"},{"id":"16664","value":"640 DUKE II ORANGE 2003 (EU)","parent_id":"14920"},{"id":"16708","value":"640 DUKE II RED 2005 (EU)","parent_id":"14946"},{"id":"16648","value":"640 DUKE II SCHWARZ 2002 (EU)","parent_id":"15208"},{"id":"16646","value":"640 DUKE II SCHWARZ-MET. 2000 (EU)","parent_id":"15051"},{"id":"16649","value":"640 DUKE II WEISS 2002 (EU)","parent_id":"15208"},{"id":"16655","value":"640 DUKE II YELLOW 2004 (EU)","parent_id":"14812"},{"id":"16117","value":"640 DUKE IILIME (EU)","parent_id":"15048"},{"id":"16540","value":"640 DUKE IITITAN (EU)","parent_id":"15048"},{"id":"15987","value":"640 DUKE-E (EU)","parent_id":"14940"},{"id":"41468","value":"640 LC 4 '98 (EU)","parent_id":"14940"}
11712,{"id":"15968","value":"640 LC 4 (EU)","parent_id":"15048"},{"id":"15112","value":"640 LC 4 98 (EU)","parent_id":"14940"},{"id":"15972","value":"640 LC-4 SUPER-MOTO (EU)","parent_id":"15048"},{"id":"40764","value":"640 LC4 '98 (EU)","parent_id":"14940"},{"id":"40788","value":"640 LC4 '99 (EU)","parent_id":"15048"},{"id":"15973","value":"640 LC4 - SILBER (EU)","parent_id":"15048"},{"id":"15970","value":"640 LC4 - SILBER\/185LT (EU)","parent_id":"15048"},{"id":"40787","value":"640 LC4 -SIX DAYS '99 (EU)","parent_id":"15048"},{"id":"15967","value":"640 LC4 -SIX DAYS 99 (EU)","parent_id":"15048"},{"id":"16535","value":"640 LC4 98 (EU)","parent_id":"14940"},{"id":"16539","value":"640 LC4 99 (EU)","parent_id":"15048"},{"id":"16470","value":"640 LC4 ADVENTURE 2003 (EU)","parent_id":"14920"},{"id":"15155","value":"640 LC4 ADVENTURE 2006 (EU)","parent_id":"15071"},{"id":"15243","value":"640 LC4 ENDURO BLACK 12L 03 (EU)","parent_id":"14920"},{"id":"15217","value":"640 LC4 ENDURO ORANGE 12L 2003 (EU)","parent_id":"14920"},{"id":"15211","value":"640 LC4 ENDURO ORANGE 2004 (EU)","parent_id":"14812"},{"id":"15178","value":"640 LC4 ENDURO ORANGE 2005 (EU)","parent_id":"14946"}
11712,{"id":"15186","value":"640 LC4 ENDURO ORANGE 2006 (EU)","parent_id":"15071"},{"id":"16651","value":"640 LC4 SUPERMOTO BLACK 05 (EU)","parent_id":"14946"},{"id":"16659","value":"640 LC4 SUPERMOTO BLACK 06 (EU)","parent_id":"15071"},{"id":"15213","value":"640 LC4 SUPERMOTO BLACK 2003 (EU)","parent_id":"14920"},{"id":"16657","value":"640 LC4 SUPERMOTO BLACK 2004 (EU)","parent_id":"14812"},{"id":"16652","value":"640 LC4 SUPERMOTO BLUE 05 (EU)","parent_id":"14946"},{"id":"16660","value":"640 LC4 SUPERMOTO BLUE 06 (EU)","parent_id":"15071"},{"id":"15157","value":"640 LC4 SUPERMOTO ORANGE 05 (EU)","parent_id":"14946"},{"id":"15168","value":"640 LC4 SUPERMOTO ORANGE 06 (EU)","parent_id":"15071"},{"id":"16665","value":"640 LC4 SUPERMOTO ORANGE 2003 (EU)","parent_id":"14920"},{"id":"15244","value":"640 LC4 SUPERMOTO ORANGE 2004 (EU)","parent_id":"14812"},{"id":"15227","value":"640 LC4 SUPERMOTO PRESTIGE 03 (EU)","parent_id":"14920"},{"id":"16658","value":"640 LC4 SUPERMOTO PRESTIGE 04 (EU)","parent_id":"14812"},{"id":"16653","value":"640 LC4 SUPERMOTO PRESTIGE 05 (EU)","parent_id":"14946"}
11712,{"id":"16663","value":"640 LC4 SUPERMOTO PRESTIGE 06 (EU)","parent_id":"15071"},{"id":"16654","value":"640 LC4 SUPERMOTO WHITE 05 (EU)","parent_id":"14946"},{"id":"15984","value":"640 LC4-E 2000 (EU)","parent_id":"15051"},{"id":"15975","value":"640 LC4-E 2001 (EU)","parent_id":"14841"},{"id":"33319","value":"640 LC4-E 25KW BLAU MIL (EU)","parent_id":"14940"},{"id":"33312","value":"640 LC4-E 25KW D BRONCEGR MIL (EU)","parent_id":"14940"},{"id":"33313","value":"640 LC4-E 25KW ROT MIL (EU)","parent_id":"14940"},{"id":"33311","value":"640 LC4-E CH BRONZEGR\u00dcN MIL (EU)","parent_id":"15048"},{"id":"15230","value":"640 LC4-E ORANGE 18L 2002 (EU)","parent_id":"15208"},{"id":"15239","value":"640 LC4-E ROT 2002 (EU)","parent_id":"15208"},{"id":"15982","value":"640 LC4-E S.MOTO PRESTIGE 2000 (EU)","parent_id":"15051"},{"id":"15983","value":"640 LC4-E SILBER 2000 (EU)","parent_id":"15051"},{"id":"15979","value":"640 LC4-E SILBER 2001 (EU)","parent_id":"14841"},{"id":"15985","value":"640 LC4-E SILBER\/185LT 2000 (EU)","parent_id":"15051"},{"id":"15978","value":"640 LC4-E SILBER\/185LT 2001 (EU)","parent_id":"14841"}
11712,{"id":"15981","value":"640 LC4-E SIX DAYS 2000 (EU)","parent_id":"15051"},{"id":"15976","value":"640 LC4-E SIX DAYS 2001 (EU)","parent_id":"14841"},{"id":"15225","value":"640 LC4-E SIX DAYS 2002 (EU)","parent_id":"15208"},{"id":"15235","value":"640 LC4-E STAHLBLAU 2002 (EU)","parent_id":"15208"},{"id":"15986","value":"640 LC4-E SUPER-MOTO 2000 (EU)","parent_id":"15051"},{"id":"15980","value":"640 LC4-E SUPER-MOTO 2001 (EU)","parent_id":"14841"},{"id":"15226","value":"640 LC4-E SUPER-MOTO ROT 2002 (EU)","parent_id":"15208"},{"id":"15237","value":"640 LC4-E SUPER-MOTO STAHLB.02 (EU)","parent_id":"15208"},{"id":"33144","value":"65 SX (EU)","parent_id":"14940"},{"id":"16030","value":"65 SX 2000 (EU)","parent_id":"15051"},{"id":"16031","value":"65 SX 2001 (EU)","parent_id":"14841"},{"id":"16033","value":"65 SX 2002 (EU)","parent_id":"15208"},{"id":"16463","value":"65 SX 2003 (EU)","parent_id":"14920"},{"id":"16467","value":"65 SX 2004 (EU)","parent_id":"14812"},{"id":"16479","value":"65 SX 2005 (EU)","parent_id":"14946"}
11712,{"id":"16468","value":"65 SX 2006 (EU)","parent_id":"15071"},{"id":"16469","value":"65 SX 2007 (EU)","parent_id":"14846"},{"id":"16517","value":"65 SX 2008 (EU)","parent_id":"14985"},{"id":"16036","value":"65 SX 2009 (EU)","parent_id":"14736"},{"id":"16034","value":"65 SX 2010 (EU)","parent_id":"14733"},{"id":"16371","value":"65 SX 2011 (EU)","parent_id":"14769"},{"id":"16373","value":"65 SX 2012 (EU)","parent_id":"14746"},{"id":"16374","value":"65 SX 2013 (EU)","parent_id":"14748"},{"id":"16375","value":"65 SX 2014 (EU)","parent_id":"14758"},{"id":"16376","value":"65 SX 2015 (EU)","parent_id":"14773"},{"id":"16377","value":"65 SX 2016 (EU)","parent_id":"14775"},{"id":"16378","value":"65 SX 2017 (EU)","parent_id":"14729"},{"id":"16037","value":"65 SX 2018 (EU)","parent_id":"14738"},{"id":"16372","value":"65 SX 2019 (EU)","parent_id":"14740"},{"id":"15777","value":"65 SX 2020 (EU)","parent_id":"14863"},{"id":"15805","value":"65 SX 2021 (EU)","parent_id":"15038"},{"id":"15833","value":"65 SX 2022 (EU)","parent_id":"15040"},{"id":"32457","value":"65 SX 2023 (EU)","parent_id":"17270"},{"id":"32471","value":"65 SX 2024","parent_id":"32421"},{"id":"33172","value":"65 SX 2025","parent_id":"33058"},{"id":"41487","value":"65 SX 2026 (EU)","parent_id":"41435"},{"id":"45857","value":"65 SX 2027","parent_id":"45841"}
11712,{"id":"16035","value":"65 XC 2009 (EU)","parent_id":"14736"},{"id":"33258","value":"65 XC 2010","parent_id":"14733"},{"id":"15681","value":"660 RALLY FACTORY REPLICA 2007 (EU)","parent_id":"14846"},{"id":"16500","value":"660 RALLYE 2002 (EU)","parent_id":"15208"},{"id":"16444","value":"660 RALLYE COSTUMER 2004 (EU)","parent_id":"14812"},{"id":"16360","value":"660 RALLYE FACTORY REPL. 2003 (EU)","parent_id":"14920"},{"id":"16445","value":"660 RALLYE FACTORY REPL. 2004 (EU)","parent_id":"14812"},{"id":"16421","value":"660 RALLYE FACTORY REPL. 2005 (EU)","parent_id":"14946"},{"id":"15990","value":"660 RALLYE FACTORY REPL. 2006 (EU)","parent_id":"15071"},{"id":"15210","value":"660 SM FACTORY REPLICA 2002 (EU)","parent_id":"15208"},{"id":"15216","value":"660 SMC 2003 (EU)","parent_id":"14920"},{"id":"15229","value":"660 SMC 2004 (EU)","parent_id":"14812"},{"id":"15192","value":"660 SMC 2005 (EU)","parent_id":"14946"},{"id":"15159","value":"660 SMC 2006 (EU)","parent_id":"15071"},{"id":"15164","value":"660 SMS (EU)","parent_id":"14812"},{"id":"15222","value":"660 SUPERMOTO FACTORY REPL. 03 (EU)","parent_id":"14920"}
11712,{"id":"15454","value":"690 DUKE BLACK 2009 (EU)","parent_id":"14736"},{"id":"15483","value":"690 DUKE BLACK 2010 (EU)","parent_id":"14733"},{"id":"15453","value":"690 DUKE BLACK 2011 (EU)","parent_id":"14769"},{"id":"16571","value":"690 DUKE BLACK 2012 (EU)","parent_id":"14746"},{"id":"15786","value":"690 DUKE BLACK ABS 2013 (EU)","parent_id":"14748"},{"id":"16628","value":"690 DUKE BLACK ABS 2014 (EU)","parent_id":"14758"},{"id":"16712","value":"690 DUKE BLACK ABS 2015 (EU)","parent_id":"14773"},{"id":"33236","value":"690 DUKE BLACK CKD 2012 (EU)","parent_id":"14746"},{"id":"16566","value":"690 DUKE ORANGE 2008 (EU)","parent_id":"14985"},{"id":"16568","value":"690 DUKE ORANGE 2009 (EU)","parent_id":"14736"},{"id":"16532","value":"690 DUKE ORANGE 2010 (EU)","parent_id":"14733"},{"id":"16630","value":"690 DUKE ORANGE 2017 (EU)","parent_id":"14729"},{"id":"15747","value":"690 DUKE ORANGE 2018 (EU)","parent_id":"14738"},{"id":"15783","value":"690 DUKE ORANGE 2019 (EU)","parent_id":"14740"},{"id":"16629","value":"690 DUKE ORANGE ABS 2016 (EU)","parent_id":"14775"}
11712,{"id":"15553","value":"690 DUKE R 2010 (EU)","parent_id":"14733"},{"id":"15661","value":"690 DUKE R 2011 (EU)","parent_id":"14769"},{"id":"16314","value":"690 DUKE R 2012 (EU)","parent_id":"14746"},{"id":"15732","value":"690 DUKE R 2017 (EU)","parent_id":"14729"},{"id":"15780","value":"690 DUKE R ABS 2013 (EU)","parent_id":"14748"},{"id":"15821","value":"690 DUKE R ABS 2014 (EU)","parent_id":"14758"},{"id":"15863","value":"690 DUKE R ABS 2015 (EU)","parent_id":"14773"},{"id":"15905","value":"690 DUKE R ABS 2016 (EU)","parent_id":"14775"},{"id":"33242","value":"690 DUKE TRACK 2013 (EU)","parent_id":"14748"},{"id":"15643","value":"690 DUKE WHITE 2008 (EU)","parent_id":"14985"},{"id":"16570","value":"690 DUKE WHITE 2009 (EU)","parent_id":"14736"},{"id":"16130","value":"690 DUKE WHITE 2010 (EU)","parent_id":"14733"},{"id":"15614","value":"690 DUKE WHITE 2012 (EU)","parent_id":"14746"},{"id":"15931","value":"690 DUKE WHITE 2017 (EU)","parent_id":"14729"},{"id":"15829","value":"690 DUKE WHITE ABS 2013 (EU)","parent_id":"14748"},{"id":"15909","value":"690 DUKE WHITE ABS 2014 (EU)","parent_id":"14758"},{"id":"16135","value":"690 DUKE WHITE ABS 2015 (EU)","parent_id":"14773"},{"id":"15847","value":"690 DUKE WHITE ABS 2016 (EU)","parent_id":"14775"},{"id":"33316","value":"690 DUKE WHITE CKD 2012 (EU)","parent_id":"14746"},{"id":"15417","value":"690 DUKE WHITE CUP 2012 (EU)","parent_id":"14746"},{"id":"15484","value":"690 ENDURO 08 (EU)","parent_id":"14985"},{"id":"15600","value":"690 ENDURO 09 (EU)","parent_id":"14736"}
11712,{"id":"15409","value":"690 ENDURO 2010 (EU)","parent_id":"14733"},{"id":"15521","value":"690 ENDURO R 09 (EU)","parent_id":"14736"},{"id":"45879","value":"690 ENDURO R 2 2026","parent_id":"41435"},{"id":"15634","value":"690 ENDURO R 2010 (EU)","parent_id":"14733"},{"id":"15442","value":"690 ENDURO R 2011 (EU)","parent_id":"14769"},{"id":"15549","value":"690 ENDURO R 2012 (EU)","parent_id":"14746"},{"id":"15903","value":"690 ENDURO R 2013 (EU)","parent_id":"14748"},{"id":"15844","value":"690 ENDURO R 2017 (EU)","parent_id":"14729"},{"id":"15889","value":"690 ENDURO R 2018 (EU)","parent_id":"14738"},{"id":"16323","value":"690 ENDURO R 2019 (EU)","parent_id":"14740"},{"id":"16322","value":"690 ENDURO R 2020 (EU)","parent_id":"14863"},{"id":"16394","value":"690 ENDURO R 2021 (EU)","parent_id":"15038"},{"id":"17265","value":"690 ENDURO R 2022 (EU)","parent_id":"15040"},{"id":"30388","value":"690 ENDURO R 2023 (EU)","parent_id":"17270"},{"id":"33075","value":"690 ENDURO R 2024 (EU)","parent_id":"32421"},{"id":"41559","value":"690 ENDURO R 2026 (EU)","parent_id":"41435"},{"id":"15731","value":"690 ENDURO R ABS 2014 (EU)","parent_id":"14758"},{"id":"15764","value":"690 ENDURO R ABS 2015 (EU)","parent_id":"14773"},{"id":"15800","value":"690 ENDURO R ABS 2016 (EU)","parent_id":"14775"}
11712,{"id":"15577","value":"690 RALLY FACTORY REPLICA (EU)","parent_id":"14733"},{"id":"15408","value":"690 RALLY FACTORY REPLICA 2007 (EU)","parent_id":"14846"},{"id":"15463","value":"690 RALLY FACTORY REPLICA 2008 (EU)","parent_id":"14985"},{"id":"15522","value":"690 RALLY FACTORY REPLICA 2009 (EU)","parent_id":"14736"},{"id":"15455","value":"690 SMC 09 (EU)","parent_id":"14736"},{"id":"15644","value":"690 SMC 2008 (EU)","parent_id":"14985"},{"id":"15564","value":"690 SMC 2010 (EU)","parent_id":"14733"},{"id":"15674","value":"690 SMC 2011 (EU)","parent_id":"14769"},{"id":"45878","value":"690 SMC R 2 2026","parent_id":"41435"},{"id":"15476","value":"690 SMC R 2012 (EU)","parent_id":"14746"},{"id":"15856","value":"690 SMC R 2013 (EU)","parent_id":"14748"},{"id":"15784","value":"690 SMC R 2017 (EU)","parent_id":"14729"},{"id":"16457","value":"690 SMC R 2019 (EU)","parent_id":"14740"},{"id":"16452","value":"690 SMC R 2020 (EU)","parent_id":"14863"},{"id":"16453","value":"690 SMC R 2021 (EU)","parent_id":"15038"},{"id":"17266","value":"690 SMC R 2022 (EU)","parent_id":"15040"},{"id":"30389","value":"690 SMC R 2023 (EU)","parent_id":"17270"},{"id":"33074","value":"690 SMC R 2024 (EU)","parent_id":"32421"},{"id":"41558","value":"690 SMC R 2026 (EU)","parent_id":"41435"},{"id":"15895","value":"690 SMC R ABS 2014 (EU)","parent_id":"14758"},{"id":"16313","value":"690 SMC R ABS 2015 (EU)","parent_id":"14773"},{"id":"15749","value":"690 SMC R ABS 2016 (EU)","parent_id":"14775"}
11712,{"id":"16604","value":"690 SUPERMOTO BLACK 2007 (EU)","parent_id":"14846"},{"id":"15456","value":"690 SUPERMOTO BLACK 2008 (EU)","parent_id":"14985"},{"id":"40883","value":"690 SUPERMOTO BLACK 2009 (EU)","parent_id":"14736"},{"id":"33318","value":"690 SUPERMOTO COLOR 1 2010 (EU)","parent_id":"14733"},{"id":"15624","value":"690 SUPERMOTO LIM.ED 2009 (EU)","parent_id":"14736"},{"id":"15535","value":"690 SUPERMOTO ORANGE 2007 (EU)","parent_id":"14846"},{"id":"15566","value":"690 SUPERMOTO ORANGE 2008 (EU)","parent_id":"14985"},{"id":"15645","value":"690 SUPERMOTO PRESTIGE 2007 (EU)","parent_id":"14846"},{"id":"15435","value":"690 SUPERMOTO R 2008 (EU)","parent_id":"14985"},{"id":"33262","value":"690 SUPERMOTO R 2010 (EU)","parent_id":"14733"},{"id":"33067","value":"790 ADVENTURE BLACK - D.D 2024 (EU)","parent_id":"32421"},{"id":"32506","value":"790 ADVENTURE BLACK 2023 (EU)","parent_id":"17270"},{"id":"33066","value":"790 ADVENTURE BLACK 2024 (EU)","parent_id":"32421"},{"id":"36556","value":"790 ADVENTURE ORANGE - D.D. 2025","parent_id":"33058"},{"id":"40802","value":"790 ADVENTURE ORANGE - D.D. 2025 (EU)","parent_id":"33058"},{"id":"41528","value":"790 ADVENTURE ORANGE - D.D. 2026 (EU)","parent_id":"41435"},{"id":"41527","value":"790 ADVENTURE ORANGE - D.D. 2026 (EU\/GB)","parent_id":"41435"},{"id":"15256","value":"790 ADVENTURE ORANGE 2019 (EU)","parent_id":"14740"},{"id":"15254","value":"790 ADVENTURE ORANGE 2020 (EU)","parent_id":"14863"},{"id":"36557","value":"790 ADVENTURE ORANGE 2025","parent_id":"33058"},{"id":"41525","value":"790 ADVENTURE ORANGE 2025 (EU)","parent_id":"33058"},{"id":"41526","value":"790 ADVENTURE ORANGE 2026 (EU)","parent_id":"41435"},{"id":"15274","value":"790 ADVENTURE R 2019 (EU)","parent_id":"14740"},{"id":"15259","value":"790 ADVENTURE R 2020 (EU)","parent_id":"14863"},{"id":"36473","value":"790 ADVENTURE R 2025","parent_id":"33058"},{"id":"15266","value":"790 ADVENTURE R RALLY 2020 (EU)","parent_id":"14863"},{"id":"40804","value":"790 ADVENTURE WHITE - CKD 2025","parent_id":"33058"},{"id":"36554","value":"790 ADVENTURE WHITE - D.D 2025","parent_id":"33058"},{"id":"40805","value":"790 ADVENTURE WHITE - D.D 2025 (EU)","parent_id":"33058"},{"id":"41531","value":"790 ADVENTURE WHITE - D.D 2026 (EU)","parent_id":"41435"},{"id":"41530","value":"790 ADVENTURE WHITE - D.D 2026 (EU\/GB)","parent_id":"41435"},{"id":"33068","value":"790 ADVENTURE WHITE - D.D. 2024 (EU)","parent_id":"32421"}
11712,{"id":"16726","value":"790 ADVENTURE WHITE 2019 (EU)","parent_id":"14740"},{"id":"16727","value":"790 ADVENTURE WHITE 2020 (EU)","parent_id":"14863"},{"id":"32503","value":"790 ADVENTURE WHITE 2023 (EU)","parent_id":"17270"},{"id":"33069","value":"790 ADVENTURE WHITE 2024 (EU)","parent_id":"32421"},{"id":"36555","value":"790 ADVENTURE WHITE 2025","parent_id":"33058"},{"id":"40803","value":"790 ADVENTURE WHITE 2025 (EU)","parent_id":"33058"},{"id":"41529","value":"790 ADVENTURE WHITE 2026 (EU)","parent_id":"41435"},{"id":"32504","value":"790 ADVENTUREBLACK 2023","parent_id":"17270"},{"id":"32505","value":"790 ADVENTUREBLACK-DIRECT DELIVERY 2023","parent_id":"17270"},{"id":"36525","value":"790 ADVENTUREBLACK-DIRECT DELIVERY 2023 (EU)","parent_id":"17270"},{"id":"32502","value":"790 ADVENTUREWHITE-DIRECT DELIVERY 2023","parent_id":"17270"},{"id":"36526","value":"790 ADVENTUREWHITE-DIRECT DELIVERY 2023 (EU)","parent_id":"17270"},{"id":"41518","value":"790 DUKE BLACK - D.D. 2025","parent_id":"33058"},{"id":"40800","value":"790 DUKE BLACK - D.D. 2025 (EU)","parent_id":"33058"},{"id":"41521","value":"790 DUKE BLACK - D.D. 2026 (EU)","parent_id":"41435"},{"id":"15264","value":"790 DUKE BLACK 2018 (EU)","parent_id":"14738"},{"id":"15273","value":"790 DUKE BLACK 2019 (EU)","parent_id":"14740"},{"id":"15261","value":"790 DUKE BLACK 2020 (EU)","parent_id":"14863"},{"id":"33090","value":"790 DUKE GREY - D.D. 2024 (EU)","parent_id":"32421"},{"id":"30324","value":"790 DUKE GREY - DIRECT DELIVERY 2023 (EU)","parent_id":"17270"},{"id":"30323","value":"790 DUKE GREY 2022","parent_id":"15040"},{"id":"17207","value":"790 DUKE GREY 2022 (EU)","parent_id":"15040"},{"id":"30325","value":"790 DUKE GREY 2023 (EU)","parent_id":"17270"},{"id":"15278","value":"790 DUKE L 2018 (EU)","parent_id":"14738"},{"id":"15260","value":"790 DUKE L BLACK 2019 (EU)","parent_id":"14740"},{"id":"16724","value":"790 DUKE L BLACK 2020 (EU)","parent_id":"14863"},{"id":"40798","value":"790 DUKE L BLACK 2025 (EU)","parent_id":"33058"},{"id":"41519","value":"790 DUKE L BLACK 2026 (EU)","parent_id":"41435"},{"id":"32501","value":"790 DUKE L GREY - DIRECT DELIVERY 2023","parent_id":"17270"},{"id":"17208","value":"790 DUKE L GREY 2022 (EU)","parent_id":"15040"},{"id":"30318","value":"790 DUKE L GREY 2023 (EU)","parent_id":"17270"},{"id":"33089","value":"790 DUKE L GREY 2024 (EU)","parent_id":"32421"},{"id":"32500","value":"790 DUKE L ORANGE - DIRECT DELIVERY2023","parent_id":"17270"},{"id":"16721","value":"790 DUKE L ORANGE 2019 (EU)","parent_id":"14740"},{"id":"15272","value":"790 DUKE L ORANGE 2020 (EU)","parent_id":"14863"},{"id":"17209","value":"790 DUKE L ORANGE 2022 (EU)","parent_id":"15040"},{"id":"30319","value":"790 DUKE L ORANGE 2023 (EU)","parent_id":"17270"},{"id":"33087","value":"790 DUKE L ORANGE 2024 (EU)","parent_id":"32421"},{"id":"40799","value":"790 DUKE L ORANGE 2025 (EU)","parent_id":"33058"},{"id":"41520","value":"790 DUKE L ORANGE 2026 (EU)","parent_id":"41435"},{"id":"33088","value":"790 DUKE ORANGE - D.D. 2024 (EU)","parent_id":"32421"},{"id":"41522","value":"790 DUKE ORANGE - D.D. 2026 (EU)","parent_id":"41435"},{"id":"41517","value":"790 DUKE ORANGE - DIRECT DELIVERY 2022 (EU)","parent_id":"15040"},{"id":"30321","value":"790 DUKE ORANGE - DIRECT DELIVERY 2023 (EU)","parent_id":"17270"},{"id":"15268","value":"790 DUKE ORANGE 2018 (EU)","parent_id":"14738"},{"id":"16722","value":"790 DUKE ORANGE 2019 (EU)","parent_id":"14740"},{"id":"15270","value":"790 DUKE ORANGE 2020 (EU)","parent_id":"14863"},{"id":"30320","value":"790 DUKE ORANGE 2022","parent_id":"15040"},{"id":"17211","value":"790 DUKE ORANGE 2022 (EU)","parent_id":"15040"},{"id":"30322","value":"790 DUKE ORANGE 2023 (EU)","parent_id":"17270"},{"id":"16379","value":"85 SX 17\/14 2005 (EU)","parent_id":"14946"}
11712,{"id":"16040","value":"85 SX 17\/14 2006 (EU)","parent_id":"15071"},{"id":"15426","value":"85 SX 17\/14 2007 (EU)","parent_id":"14846"},{"id":"15500","value":"85 SX 17\/14 2008 (EU)","parent_id":"14985"},{"id":"15581","value":"85 SX 17\/14 2009 (EU)","parent_id":"14736"},{"id":"15655","value":"85 SX 17\/14 2010 (EU)","parent_id":"14733"},{"id":"15437","value":"85 SX 17\/14 2011 (EU)","parent_id":"14769"},{"id":"15511","value":"85 SX 17\/14 2012 (EU)","parent_id":"14746"},{"id":"15897","value":"85 SX 17\/14 2013 (EU)","parent_id":"14748"},{"id":"15922","value":"85 SX 17\/14 2014 (EU)","parent_id":"14758"},{"id":"15733","value":"85 SX 17\/14 2015 (EU)","parent_id":"14773"},{"id":"15757","value":"85 SX 17\/14 2016 (EU)","parent_id":"14775"},{"id":"15782","value":"85 SX 17\/14 2017 (EU)","parent_id":"14729"},{"id":"15814","value":"85 SX 17\/14 2018 (EU)","parent_id":"14738"},{"id":"15841","value":"85 SX 17\/14 2019 (EU)","parent_id":"14740"},{"id":"15870","value":"85 SX 17\/14 2020 (EU)","parent_id":"14863"},{"id":"15902","value":"85 SX 17\/14 2021 (EU)","parent_id":"15038"},{"id":"15932","value":"85 SX 17\/14 2022 (EU)","parent_id":"15040"},{"id":"32469","value":"85 SX 17\/14 2023 (EU)","parent_id":"17270"},{"id":"32485","value":"85 SX 17\/14 2024 (EU)","parent_id":"32421"},{"id":"36479","value":"85 SX 17\/14 2025","parent_id":"33058"},{"id":"41476","value":"85 SX 17\/14 2026","parent_id":"41435"},{"id":"45843","value":"85 SX 17\/14 2026 (EU)","parent_id":"41435"},{"id":"45844","value":"85 SX 17\/14 2027","parent_id":"45841"}
11712,{"id":"16666","value":"85 SX 19\/16 2005 (EU)","parent_id":"14946"},{"id":"16667","value":"85 SX 19\/16 2006 (EU)","parent_id":"15071"},{"id":"16541","value":"85 SX 19\/16 2007 (EU)","parent_id":"14846"},{"id":"16542","value":"85 SX 19\/16 2008 (EU)","parent_id":"14985"},{"id":"16543","value":"85 SX 19\/16 2009 (EU)","parent_id":"14736"},{"id":"16544","value":"85 SX 19\/16 2010 (EU)","parent_id":"14733"},{"id":"16545","value":"85 SX 19\/16 2011 (EU)","parent_id":"14769"},{"id":"16546","value":"85 SX 19\/16 2012 (EU)","parent_id":"14746"},{"id":"15738","value":"85 SX 19\/16 2013 (EU)","parent_id":"14748"},{"id":"15763","value":"85 SX 19\/16 2014 (EU)","parent_id":"14758"},{"id":"15788","value":"85 SX 19\/16 2015 (EU)","parent_id":"14773"},{"id":"15819","value":"85 SX 19\/16 2016 (EU)","parent_id":"14775"},{"id":"15853","value":"85 SX 19\/16 2017 (EU)","parent_id":"14729"},{"id":"15877","value":"85 SX 19\/16 2018 (EU)","parent_id":"14738"},{"id":"15906","value":"85 SX 19\/16 2019 (EU)","parent_id":"14740"},{"id":"15933","value":"85 SX 19\/16 2020 (EU)","parent_id":"14863"},{"id":"15746","value":"85 SX 19\/16 2021 (EU)","parent_id":"15038"},{"id":"15769","value":"85 SX 19\/16 2022 (EU)","parent_id":"15040"},{"id":"32477","value":"85 SX 19\/16 2023 (EU)","parent_id":"17270"},{"id":"32445","value":"85 SX 19\/16 2024 (EU)","parent_id":"32421"},{"id":"36478","value":"85 SX 19\/16 2025","parent_id":"33058"},{"id":"41477","value":"85 SX 19\/16 2026","parent_id":"41435"},{"id":"45845","value":"85 SX 19\/16 2026 (EU)","parent_id":"41435"},{"id":"45846","value":"85 SX 19\/16 2027","parent_id":"45841"}
11712,{"id":"16487","value":"85 SX 2003 (EU)","parent_id":"14920"},{"id":"16488","value":"85 SX 2004 (EU)","parent_id":"14812"},{"id":"15590","value":"85 SXS 17\/14 2012 (EU)","parent_id":"14746"},{"id":"16731","value":"890 ADVENTURE BLACK 2021 (EU)","parent_id":"15038"},{"id":"17213","value":"890 ADVENTURE BLACK 2022 (EU)","parent_id":"15040"},{"id":"30344","value":"890 ADVENTURE BLACK 2023 (EU)","parent_id":"17270"},{"id":"33073","value":"890 ADVENTURE BLACK 2024 (EU)","parent_id":"32421"},{"id":"16732","value":"890 ADVENTURE L BLACK 2021 (EU)","parent_id":"15038"},{"id":"17214","value":"890 ADVENTURE L BLACK 2022 (EU)","parent_id":"15040"},{"id":"15286","value":"890 ADVENTURE L ORANGE 2021 (EU)","parent_id":"15038"},{"id":"17215","value":"890 ADVENTURE L ORANGE 2022 (EU)","parent_id":"15040"},{"id":"15288","value":"890 ADVENTURE ORANGE 2021 (EU)","parent_id":"15038"},{"id":"17216","value":"890 ADVENTURE ORANGE 2022 (EU)","parent_id":"15040"},{"id":"30345","value":"890 ADVENTURE ORANGE 2023 (EU)","parent_id":"17270"},{"id":"33071","value":"890 ADVENTURE ORANGE 2024 (EU)","parent_id":"32421"}
11712,{"id":"16343","value":"890 ADVENTURE R 2021 (EU)","parent_id":"15038"},{"id":"17212","value":"890 ADVENTURE R 2022 (EU)","parent_id":"15040"},{"id":"30346","value":"890 ADVENTURE R 2023 (EU)","parent_id":"17270"},{"id":"33070","value":"890 ADVENTURE R 2024 (EU)","parent_id":"32421"},{"id":"36472","value":"890 ADVENTURE R 2025","parent_id":"33058"},{"id":"40801","value":"890 ADVENTURE R 2025 (EU)","parent_id":"33058"},{"id":"41524","value":"890 ADVENTURE R 2026 (EU)","parent_id":"41435"},{"id":"16344","value":"890 ADVENTURE R RALLY 2021 (EU)","parent_id":"15038"},{"id":"33132","value":"890 ADVENTURE R RALLY 2024 (EU)","parent_id":"32421"},{"id":"45865","value":"890 ADVENTURE R RALLY 2026 (EU)","parent_id":"41435"},{"id":"16729","value":"890 DUKE BLACK 2021 (EU)","parent_id":"15038"},{"id":"17239","value":"890 DUKE BLACK 2022 (EU)","parent_id":"15040"},{"id":"30348","value":"890 DUKE GP BLACK 2023 (EU)","parent_id":"17270"},{"id":"17274","value":"890 DUKE GP ORANGE 2022 (EU)","parent_id":"15040"},{"id":"30349","value":"890 DUKE GP ORANGE 2023 (EU)","parent_id":"17270"},{"id":"16730","value":"890 DUKE L BLACK 2021 (EU)","parent_id":"15038"},{"id":"16137","value":"890 DUKE L ORANGE 2021 (EU)","parent_id":"15038"},{"id":"16139","value":"890 DUKE ORANGE 2021 (EU)","parent_id":"15038"},{"id":"17243","value":"890 DUKE ORANGE 2022 (EU)","parent_id":"15040"},{"id":"15271","value":"890 DUKE R 2020 (EU)","parent_id":"14863"},{"id":"16388","value":"890 DUKE R 2021 (EU)","parent_id":"15038"},{"id":"30347","value":"890 DUKE R 2022","parent_id":"15040"},{"id":"33120","value":"890 DUKE R 2022 (EU)","parent_id":"15040"},{"id":"30343","value":"890 DUKE R 2023 (EU)","parent_id":"17270"},{"id":"16728","value":"890 DUKE R EU5 KR 202 (EU)","parent_id":"14863"},{"id":"32499","value":"890 SMT 2023 (EU)","parent_id":"17270"},{"id":"33072","value":"890 SMT 2024 (EU)","parent_id":"32421"},{"id":"45864","value":"890 SMT 2026 (EU)","parent_id":"41435"},{"id":"16704","value":"950 ADVENTURE BLACK 2005 (EU)","parent_id":"14946"}
11712,{"id":"16700","value":"950 ADVENTURE BLACK LOW 2004 (EU)","parent_id":"14812"},{"id":"14947","value":"950 ADVENTURE ORANGE 2005 (EU)","parent_id":"14946"},{"id":"16698","value":"950 ADVENTURE ORANGE LOW 2003 (EU)","parent_id":"14920"},{"id":"16702","value":"950 ADVENTURE ORANGE LOW 2004 (EU)","parent_id":"14812"},{"id":"14952","value":"950 ADVENTURE S 2005 (EU)","parent_id":"14946"},{"id":"14931","value":"950 ADVENTURE S BLUE HIGH 2004 (EU)","parent_id":"14812"},{"id":"14923","value":"950 ADVENTURE S ORANGE 2003 (EU)","parent_id":"14920"},{"id":"14921","value":"950 ADVENTURE SILVER 2003 (EU)","parent_id":"14920"},{"id":"14927","value":"950 ADVENTURE SILVER LOW 2004 (EU)","parent_id":"14812"},{"id":"15685","value":"950 SUPER ENDURO ERZBERG 08 (EU)","parent_id":"14985"},{"id":"15671","value":"950 SUPER ENDURO R 2008 (EU)","parent_id":"14985"},{"id":"15079","value":"950 SUPERENDURO R 06 (EU)","parent_id":"15071"},{"id":"15089","value":"950 SUPERENDURO R 2007 (EU)","parent_id":"14846"},{"id":"16831","value":"950 SUPERMOTO BLACK 2005 (EU)","parent_id":"14946"}
11712,{"id":"16697","value":"950 SUPERMOTO BLACK 2006 (EU)","parent_id":"15071"},{"id":"15088","value":"950 SUPERMOTO BLACK 2007 (EU)","parent_id":"14846"},{"id":"33235","value":"950 SUPERMOTO COLOR 3 2006 (EU)","parent_id":"15071"},{"id":"15096","value":"950 SUPERMOTO ORANGE 07 (EU)","parent_id":"14846"},{"id":"15087","value":"950 SUPERMOTO ORANGE 2005 (EU)","parent_id":"14946"},{"id":"36504","value":"950 SUPERMOTO ORANGE 2005 (GB\/AU)","parent_id":"14946"},{"id":"15078","value":"950 SUPERMOTO ORANGE 2006 (EU)","parent_id":"15071"},{"id":"15082","value":"950 SUPERMOTO R 2007 (EU)","parent_id":"14846"},{"id":"15569","value":"950 SUPERMOTO R 2008 (EU)","parent_id":"14985"},{"id":"16718","value":"990 ADV. LIM. EDIT. OR ABS 11 (EU)","parent_id":"14769"},{"id":"16719","value":"990 ADV. LIM.EDIT. WH. ABS 11 (EU)","parent_id":"14769"},{"id":"16720","value":"990 ADV. R LIM.EDIT. 2011 (EU)","parent_id":"14769"},{"id":"16607","value":"990 ADVENTURE BLACK ABS 07 (EU)","parent_id":"14846"},{"id":"16695","value":"990 ADVENTURE BLACK ABS 2006 (EU)","parent_id":"15071"},{"id":"16609","value":"990 ADVENTURE BLACK ABS 2008 (EU)","parent_id":"14985"},{"id":"16620","value":"990 ADVENTURE BLUE ABS 12 (EU)","parent_id":"14746"},{"id":"16621","value":"990 ADVENTURE BLUE ABS 12 (FR)","parent_id":"14746"},{"id":"33238","value":"990 ADVENTURE COL. 1 ABS 12 (EU)","parent_id":"14746"},{"id":"16616","value":"990 ADVENTURE DAKAR EDITION 11 (EU)","parent_id":"14769"},{"id":"15035","value":"990 ADVENTURE DAKAR EDITION 11 (FR)","parent_id":"14769"},{"id":"33250","value":"990 ADVENTURE ESCORT 2011 (EU)","parent_id":"14769"},{"id":"16613","value":"990 ADVENTURE LIM. EDIT. 2010 (EU)","parent_id":"14733"},{"id":"14958","value":"990 ADVENTURE ORANGE ABS 07 (EU)","parent_id":"14846"}
11712,{"id":"15025","value":"990 ADVENTURE ORANGE ABS 09 (EU)","parent_id":"14736"},{"id":"15026","value":"990 ADVENTURE ORANGE ABS 10 (EU)","parent_id":"14733"},{"id":"15030","value":"990 ADVENTURE ORANGE ABS 11 (EU)","parent_id":"14769"},{"id":"15090","value":"990 ADVENTURE ORANGE ABS 2006 (EU)","parent_id":"15071"},{"id":"14987","value":"990 ADVENTURE ORANGE ABS 2008 (EU)","parent_id":"14985"},{"id":"15054","value":"990 ADVENTURE R 2009 (EU)","parent_id":"14736"},{"id":"15055","value":"990 ADVENTURE R 2009 (FR)","parent_id":"14736"},{"id":"15067","value":"990 ADVENTURE R 2010 (EU)","parent_id":"14733"},{"id":"15068","value":"990 ADVENTURE R 2010 (FR)","parent_id":"14733"},{"id":"15576","value":"990 ADVENTURE R 2011 (EU)","parent_id":"14769"},{"id":"15633","value":"990 ADVENTURE R 2011 (FR)","parent_id":"14769"},{"id":"15544","value":"990 ADVENTURE R 2012 (EU)","parent_id":"14746"},{"id":"15072","value":"990 ADVENTURE S 2006 (EU)","parent_id":"15071"},{"id":"15083","value":"990 ADVENTURE S 2007 (EU)","parent_id":"14846"}
11712,{"id":"14990","value":"990 ADVENTURE S 2008 (EU)","parent_id":"14985"},{"id":"16611","value":"990 ADVENTURE WHITE ABS 09 (EU)","parent_id":"14736"},{"id":"16614","value":"990 ADVENTURE WHITE ABS 10 (EU)","parent_id":"14733"},{"id":"16618","value":"990 ADVENTURE WHITE ABS 11 (EU)","parent_id":"14769"},{"id":"15044","value":"990 ADVENTURE WHITE ABS 12 (EU)","parent_id":"14746"},{"id":"15045","value":"990 ADVENTURE WHITE ABS 12 (FR)","parent_id":"14746"},{"id":"41523","value":"990 DUKE 2026 (EU)","parent_id":"41435"},{"id":"33186","value":"990 DUKE BLACK 2024 (EU)","parent_id":"32421"},{"id":"33187","value":"990 DUKE ORANGE 2024 (EU)","parent_id":"32421"},{"id":"41532","value":"990 DUKE R 2026 (EU)","parent_id":"41435"},{"id":"36474","value":"990 DUKE R WHITE 2025 (EU)","parent_id":"33058"},{"id":"41533","value":"990 RC R BLACK 2026 (EU)","parent_id":"41435"},{"id":"41534","value":"990 RC R ORANGE 2026 (EU)","parent_id":"41435"},{"id":"45866","value":"990 RC R TRACK 2026","parent_id":"41435"},{"id":"16707","value":"990 SM-T LIM.EDIT.OR. ABS 2011 (EU)","parent_id":"14769"},{"id":"16547","value":"990 SUPER DUKE ANTHRAZIT 07 (EU)","parent_id":"14846"}
11712,{"id":"16548","value":"990 SUPER DUKE ANTHRAZIT 07 (FR)","parent_id":"14846"},{"id":"16550","value":"990 SUPER DUKE BLACK 2007 (EU)","parent_id":"14846"},{"id":"16551","value":"990 SUPER DUKE BLACK 2007 (FR)","parent_id":"14846"},{"id":"16553","value":"990 SUPER DUKE BLACK 2008 (EU)","parent_id":"14985"},{"id":"16554","value":"990 SUPER DUKE BLACK 2008 (FR)","parent_id":"14985"},{"id":"16562","value":"990 SUPER DUKE BLACK 2009 (EU)","parent_id":"14736"},{"id":"16563","value":"990 SUPER DUKE BLACK 2009 (FR)","parent_id":"14736"},{"id":"15584","value":"990 SUPER DUKE BLACK 2011 (EU)","parent_id":"14769"},{"id":"15639","value":"990 SUPER DUKE BLACK 2011 (FR)","parent_id":"14769"},{"id":"15392","value":"990 SUPER DUKE BLACK 2012 (FR)","parent_id":"14746"},{"id":"15608","value":"990 SUPER DUKE OLIVE-ME. 2010 (EU)","parent_id":"14733"},{"id":"16564","value":"990 SUPER DUKE OLIVE-ME. 2010 (FR)","parent_id":"14733"},{"id":"15599","value":"990 SUPER DUKE ORANGE 2007 (EU)","parent_id":"14846"},{"id":"15653","value":"990 SUPER DUKE ORANGE 2007 (FR)","parent_id":"14846"}
11712,{"id":"15630","value":"990 SUPER DUKE ORANGE 2008 (EU)","parent_id":"14985"},{"id":"15682","value":"990 SUPER DUKE ORANGE 2008 (FR)","parent_id":"14985"},{"id":"15390","value":"990 SUPER DUKE ORANGE 2009 (EU)","parent_id":"14736"},{"id":"15445","value":"990 SUPER DUKE ORANGE 2009 (FR)","parent_id":"14736"},{"id":"15494","value":"990 SUPER DUKE ORANGE 2010 (EU)","parent_id":"14733"},{"id":"15418","value":"990 SUPER DUKE ORANGE 2010 (FR)","parent_id":"14733"},{"id":"16096","value":"990 SUPER DUKE R 2007 (EU)","parent_id":"14846"},{"id":"16100","value":"990 SUPER DUKE R 2007 (FR)","parent_id":"14846"},{"id":"16111","value":"990 SUPER DUKE R 2008 (EU)","parent_id":"14985"},{"id":"16112","value":"990 SUPER DUKE R 2008 (FR)","parent_id":"14985"},{"id":"16108","value":"990 SUPER DUKE R 2009 (EU)","parent_id":"14736"},{"id":"16109","value":"990 SUPER DUKE R 2009 (FR)","parent_id":"14736"},{"id":"16105","value":"990 SUPER DUKE R 2010 (EU)","parent_id":"14733"},{"id":"16106","value":"990 SUPER DUKE R 2010 (FR)","parent_id":"14733"},{"id":"16115","value":"990 SUPER DUKE R 2011 (EU)","parent_id":"14769"},{"id":"16113","value":"990 SUPER DUKE R 2011 (FR)","parent_id":"14769"},{"id":"15395","value":"990 SUPER DUKE R 2012 (EU)","parent_id":"14746"},{"id":"15501","value":"990 SUPER DUKE R 2012 (FR)","parent_id":"14746"},{"id":"15907","value":"990 SUPER DUKE R 2013 (EU)","parent_id":"14748"},{"id":"15730","value":"990 SUPER DUKE R 2013 (FR)","parent_id":"14748"},{"id":"16556","value":"990 SUPER DUKE WHITE 2008 (EU)","parent_id":"14985"},{"id":"16557","value":"990 SUPER DUKE WHITE 2008 (FR)","parent_id":"14985"},{"id":"16559","value":"990 SUPER DUKE WHITE 2009 (EU)","parent_id":"14736"}
11712,{"id":"16560","value":"990 SUPER DUKE WHITE 2009 (FR)","parent_id":"14736"},{"id":"33264","value":"990 SUPER DUKE WHITE 2010 (FR)","parent_id":"14733"},{"id":"16686","value":"990 SUPERDUKE BLACK 2005 (EU)","parent_id":"14946"},{"id":"16685","value":"990 SUPERDUKE BLACK 2005 (FR)","parent_id":"14946"},{"id":"16689","value":"990 SUPERDUKE BLACK 2006 (EU)","parent_id":"15071"},{"id":"16688","value":"990 SUPERDUKE BLACK 2006 (FR)","parent_id":"15071"},{"id":"16091","value":"990 SUPERDUKE ORANGE 2005 (EU)","parent_id":"14946"},{"id":"16094","value":"990 SUPERDUKE ORANGE 2005 (FR)","parent_id":"14946"},{"id":"16095","value":"990 SUPERDUKE ORANGE 2006 (EU)","parent_id":"15071"},{"id":"16098","value":"990 SUPERDUKE ORANGE 2006 (FR)","parent_id":"15071"},{"id":"16087","value":"990 SUPERDUKE SCHW\/ANTH 04 (EU)","parent_id":"14812"},{"id":"16693","value":"990 SUPERDUKE SCHW\/OR 04 (EU)","parent_id":"14812"},{"id":"16690","value":"990 SUPERDUKE TITANIUM 2006 (EU)","parent_id":"15071"},{"id":"16691","value":"990 SUPERDUKE TITANIUM 2006 (FR)","parent_id":"15071"},{"id":"16595","value":"990 SUPERM. T BLACK ABS 2011 (EU)","parent_id":"14769"},{"id":"15473","value":"990 SUPERM. T BLACK ABS 2011 (FR)","parent_id":"14769"},{"id":"16600","value":"990 SUPERM. T BLACK ABS 2012 (EU)","parent_id":"14746"},{"id":"16601","value":"990 SUPERM. T BLACK ABS 2012 (FR)","parent_id":"14746"},{"id":"16597","value":"990 SUPERM. T ORANGE ABS 2011 (EU)","parent_id":"14769"},{"id":"16598","value":"990 SUPERM. T ORANGE ABS 2011 (FR)","parent_id":"14769"},{"id":"15491","value":"990 SUPERM. T ORANGE ABS 2012 (EU)","parent_id":"14746"},{"id":"16602","value":"990 SUPERM. T ORANGE ABS 2012 (FR)","parent_id":"14746"},{"id":"15459","value":"990 SUPERM. T WHITE ABS 2011 (EU)","parent_id":"14769"},{"id":"15515","value":"990 SUPERM. T WHITE ABS 2011 (FR)","parent_id":"14769"},{"id":"15666","value":"990 SUPERM. T WHITE ABS 2012 (EU)","parent_id":"14746"},{"id":"15424","value":"990 SUPERM. T WHITE ABS 2012 (FR)","parent_id":"14746"},{"id":"16588","value":"990 SUPERMOTO BLACK 2008 (EU)","parent_id":"14985"},{"id":"16589","value":"990 SUPERMOTO BLACK 2008 (FR)","parent_id":"14985"},{"id":"15391","value":"990 SUPERMOTO BLACK 2009 (EU)","parent_id":"14736"}
11712,{"id":"16706","value":"990 SUPERMOTO BLACK 2009 (FR)","parent_id":"14736"},{"id":"15548","value":"990 SUPERMOTO ORANGE 2008 (EU)","parent_id":"14985"},{"id":"15605","value":"990 SUPERMOTO ORANGE 2008 (FR)","parent_id":"14985"},{"id":"15527","value":"990 SUPERMOTO ORANGE 2009 (EU)","parent_id":"14736"},{"id":"15583","value":"990 SUPERMOTO ORANGE 2009 (FR)","parent_id":"14736"},{"id":"33266","value":"990 SUPERMOTO ORANGE 2010 (FR)","parent_id":"14733"},{"id":"15394","value":"990 SUPERMOTO R 2009 (EU)","parent_id":"14736"},{"id":"15450","value":"990 SUPERMOTO R 2009 (FR)","parent_id":"14736"},{"id":"15562","value":"990 SUPERMOTO R 2010 (EU)","parent_id":"14733"},{"id":"15619","value":"990 SUPERMOTO R 2010 (FR)","parent_id":"14733"},{"id":"15430","value":"990 SUPERMOTO R 2011 (EU)","parent_id":"14769"},{"id":"15481","value":"990 SUPERMOTO R 2011 (FR)","parent_id":"14769"},{"id":"15597","value":"990 SUPERMOTO R 2012 (EU)","parent_id":"14746"},{"id":"15652","value":"990 SUPERMOTO R 2012 (FR)","parent_id":"14746"},{"id":"15756","value":"990 SUPERMOTO R ABS 2013 (EU)","parent_id":"14748"},{"id":"15791","value":"990 SUPERMOTO R ABS 2013 (FR)","parent_id":"14748"},{"id":"33272","value":"990 SUPERMOTO R ABS 2014 (EU)","parent_id":"14758"},{"id":"33273","value":"990 SUPERMOTO R ABS 2014 (FR)","parent_id":"14758"},{"id":"15809","value":"990 SUPERMOTO T BLACK ABS 2013 (EU)","parent_id":"14748"},{"id":"15858","value":"990 SUPERMOTO T BLACK ABS 2013 (FR)","parent_id":"14748"},{"id":"15585","value":"990 SUPERMOTO T LIM. EDIT. 10 (EU)","parent_id":"14733"},{"id":"15520","value":"990 SUPERMOTO T ORANGE 09 (EU)","parent_id":"14736"}
11712,{"id":"15632","value":"990 SUPERMOTO T ORANGE 2009 (FR)","parent_id":"14736"},{"id":"15611","value":"990 SUPERMOTO T ORANGE 2010 (EU)","parent_id":"14733"},{"id":"15664","value":"990 SUPERMOTO T ORANGE 2010 (FR)","parent_id":"14733"},{"id":"16591","value":"990 SUPERMOTO T SILVER 2009 (EU)","parent_id":"14736"},{"id":"16592","value":"990 SUPERMOTO T SILVER 2009 (FR)","parent_id":"14736"},{"id":"16593","value":"990 SUPERMOTO T SILVER 2010 (EU)","parent_id":"14733"},{"id":"15531","value":"990 SUPERMOTO T SILVER 2010 (FR)","parent_id":"14733"},{"id":"17217","value":"BRABUS 1300 R BLACK 2022","parent_id":"15040"},{"id":"33098","value":"BRABUS 1300 R BLACK 2022 (EU)","parent_id":"15040"},{"id":"33094","value":"BRABUS 1300 R BLACK 2023 (EU)","parent_id":"17270"},{"id":"33095","value":"BRABUS 1300 R BLACK GOLD 2023 (EU)","parent_id":"17270"},{"id":"33357","value":"BRABUS 1300 R BLACK\u00a02023 (EU)","parent_id":"17270"},{"id":"33097","value":"BRABUS 1300 R GREY 2023 (EU)","parent_id":"17270"},{"id":"17218","value":"BRABUS 1300 R RED 2022","parent_id":"15040"},{"id":"33093","value":"BRABUS 1300 R RED 2022 (EU)","parent_id":"15040"},{"id":"33096","value":"BRABUS 1300 R WHITE GOLD 2023 (EU)","parent_id":"17270"},{"id":"15839","value":"FREERIDE 250 F 2018 (EU)","parent_id":"14738"},{"id":"15881","value":"FREERIDE 250 F 2019 (EU)","parent_id":"14740"},{"id":"15918","value":"FREERIDE 250 F 2020 (EU)","parent_id":"14863"},{"id":"15930","value":"FREERIDE 250 R 2014 (EU)","parent_id":"14758"},{"id":"15742","value":"FREERIDE 250 R 2015 (EU)","parent_id":"14773"},{"id":"15772","value":"FREERIDE 250 R 2016 (EU)","parent_id":"14775"}
11712,{"id":"15804","value":"FREERIDE 250 R 2017 (EU)","parent_id":"14729"},{"id":"15679","value":"FREERIDE 350 2012 (EU)","parent_id":"14746"},{"id":"15774","value":"FREERIDE 350 2013 (EU)","parent_id":"14748"},{"id":"15812","value":"FREERIDE 350 2014 (EU)","parent_id":"14758"},{"id":"15852","value":"FREERIDE 350 2015 (EU)","parent_id":"14773"},{"id":"15893","value":"FREERIDE 350 2016 (EU)","parent_id":"14775"},{"id":"15925","value":"FREERIDE 350 2017 (EU)","parent_id":"14729"},{"id":"40782","value":"FREERIDE E 660W 2025 (EU)","parent_id":"33058"},{"id":"45847","value":"FREERIDE E 660W 2027 (EU)","parent_id":"45841"},{"id":"33244","value":"FREERIDE E-EXC 2012","parent_id":"14746"},{"id":"33239","value":"FREERIDE E-EXC 2013","parent_id":"14748"},{"id":"33274","value":"FREERIDE E-EXC 2014","parent_id":"14758"},{"id":"15888","value":"FREERIDE E-SM 2015 (EU)","parent_id":"14773"},{"id":"15908","value":"FREERIDE E-SM 2016 (EU)","parent_id":"14775"},{"id":"33245","value":"FREERIDE E-SX 2012 (EU)","parent_id":"14746"},{"id":"33240","value":"FREERIDE E-SX 2013 (EU)","parent_id":"14748"},{"id":"15737","value":"FREERIDE E-SX 2014 (EU)","parent_id":"14758"},{"id":"15758","value":"FREERIDE E-SX 2015 (EU)","parent_id":"14773"},{"id":"15778","value":"FREERIDE E-SX 2016 (EU)","parent_id":"14775"}
11712,{"id":"15798","value":"FREERIDE E-XC 2015 (EU)","parent_id":"14773"},{"id":"15824","value":"FREERIDE E-XC 2016 (EU)","parent_id":"14775"},{"id":"15855","value":"FREERIDE E-XC 2017 (EU)","parent_id":"14729"},{"id":"15872","value":"FREERIDE E-XC 2018 (EU)","parent_id":"14738"},{"id":"15915","value":"FREERIDE E-XC 2019 (EU)","parent_id":"14740"},{"id":"15936","value":"FREERIDE E-XC 2020 (EU)","parent_id":"14863"},{"id":"15745","value":"FREERIDE E-XC 2021 (EU)","parent_id":"15038"},{"id":"15762","value":"FREERIDE E-XC 2022 (EU)","parent_id":"15040"},{"id":"30335","value":"FREERIDE E-XC 2023","parent_id":"17270"},{"id":"33200","value":"FREERIDE E-XC 2023 (EU)","parent_id":"17270"},{"id":"15898","value":"FREERIDE E-XC NG 2018 (EU)","parent_id":"14738"},{"id":"17273","value":"KTM 450 RALLY REPLICA 2023","parent_id":"17270"},{"id":"32422","value":"KTM 450 RALLY REPLICA 2024","parent_id":"32421"},{"id":"36482","value":"KTM 450 RALLY REPLICA 2025","parent_id":"33058"},{"id":"41481","value":"KTM 450 RALLY REPLICA 2026","parent_id":"41435"},{"id":"45853","value":"KTM 450 RALLY REPLICA 2027","parent_id":"45841"},{"id":"33299","value":"KTM 85 SX-GR WP (EU)","parent_id":"33298"},{"id":"32432","value":"KTMR2R 1290 SUPER DUKE RR 2023","parent_id":"17270"},{"id":"33222","value":"RC 125 \/ ABS 2014 (EU)","parent_id":"14758"},{"id":"17224","value":"RC 125 BLACK - B.D. 2022","parent_id":"15040"},{"id":"33123","value":"RC 125 BLACK - NHD - B.D. 2024 (EU)","parent_id":"32421"}
11712,{"id":"16289","value":"RC 125 BLACK \/ ABS 2014 (EU)","parent_id":"14758"},{"id":"16285","value":"RC 125 BLACK \/ ABS 2015 (EU)","parent_id":"14773"},{"id":"17219","value":"RC 125 BLACK 2022 (EU)","parent_id":"15040"},{"id":"33128","value":"RC 125 BLACK 2024 (EU)","parent_id":"32421"},{"id":"16746","value":"RC 125 BLACK ABS B.D. 2014 (EU)","parent_id":"14758"},{"id":"16742","value":"RC 125 BLACK ABS B.D. 2015 (EU)","parent_id":"14773"},{"id":"33127","value":"RC 125 BLUE - NHD - B.D. 2024 (EU)","parent_id":"32421"},{"id":"33126","value":"RC 125 BLUE 2024 (EU)","parent_id":"32421"},{"id":"30316","value":"RC 125 GP ORANGE - B.D. 2023 (EU)","parent_id":"17270"},{"id":"30317","value":"RC 125 GP ORANGE 2023 (EU)","parent_id":"17270"},{"id":"16389","value":"RC 125 GREY 2020 (EU)","parent_id":"14863"},{"id":"16799","value":"RC 125 ORANGE - B.D. 2018 (EU)","parent_id":"14738"},{"id":"16800","value":"RC 125 ORANGE - B.D. 2019 (EU)","parent_id":"14740"},{"id":"16390","value":"RC 125 ORANGE 2017 (EU)","parent_id":"14729"},{"id":"16296","value":"RC 125 ORANGE 2018 (EU)","parent_id":"14738"},{"id":"16292","value":"RC 125 ORANGE 2019 (EU)","parent_id":"14740"},{"id":"16774","value":"RC 125 ORANGE B.D. 2017 (EU)","parent_id":"14729"},{"id":"17221","value":"RC 125 WHITE - B.D. 2022","parent_id":"15040"},{"id":"30314","value":"RC 125 WHITE - B.D. 2023 (EU)","parent_id":"17270"},{"id":"16287","value":"RC 125 WHITE \/ ABS 2016 (EU)","parent_id":"14775"}
11712,{"id":"17222","value":"RC 125 WHITE 2022 (EU)","parent_id":"15040"},{"id":"30315","value":"RC 125 WHITE 2023 (EU)","parent_id":"17270"},{"id":"16765","value":"RC 125 WHITE ABS B.D. 2016 (EU)","parent_id":"14775"},{"id":"33275","value":"RC 200 ABS 2014 (EU)","parent_id":"14758"},{"id":"16748","value":"RC 200 BAJ.DIR. 2014 (EU)","parent_id":"14758"},{"id":"16238","value":"RC 200 BL. W\/O ABS B.D. 15 (EU)","parent_id":"14773"},{"id":"33045","value":"RC 200 BLACK - B.D. 2024 (EU)","parent_id":"32421"},{"id":"17223","value":"RC 200 BLACK ABS - B.D. 2022 (EU)","parent_id":"15040"},{"id":"16236","value":"RC 200 BLACK ABS B.D. 14 (EU)","parent_id":"14758"},{"id":"16392","value":"RC 200 BLACK W\/O ABS - B.D. 2020 (EU)","parent_id":"14863"},{"id":"36520","value":"RC 200 BLACK W\/O ABS - B.D. 2021 (EU)","parent_id":"15038"},{"id":"33044","value":"RC 200 BLUE - B.D. 2024 (EU)","parent_id":"32421"},{"id":"30339","value":"RC 200 GP ORANGE - B.D. 2023 (EU)","parent_id":"17270"},{"id":"30341","value":"RC 200 GP ORANGE - CKD 2023 (EU)","parent_id":"17270"},{"id":"30336","value":"RC 200 GP ORANGE - IKD 2023 (EU)","parent_id":"17270"},{"id":"30337","value":"RC 200 GP ORANGE 2023","parent_id":"17270"},{"id":"30338","value":"RC 200 SILVER - B.D. 2023 (EU)","parent_id":"17270"},{"id":"30340","value":"RC 200 SILVER - CKD 2023 (EU)","parent_id":"17270"},{"id":"30342","value":"RC 200 SILVER 2023","parent_id":"17270"},{"id":"17220","value":"RC 200 SILVER ABS - B.D. 2022 (EU)","parent_id":"15040"},{"id":"16293","value":"RC 200 WHITE W\/O ABS - B.D. 2018 (EU)","parent_id":"14738"},{"id":"16295","value":"RC 200 WHITE W\/O ABS - B.D. 2019 (EU)","parent_id":"14740"},{"id":"16224","value":"RC 200 WHITE W\/O ABS B.D. 16 (EU)","parent_id":"14775"}
11712,{"id":"16299","value":"RC 200 WHITE W\/O ABS B.D. 17 (EU)","parent_id":"14729"},{"id":"16303","value":"RC 250 ORANGE B.D. 17 (EU)","parent_id":"14729"},{"id":"16501","value":"RC 250 R 2013 (EU)","parent_id":"14748"},{"id":"16502","value":"RC 250 R 2014 (EU)","parent_id":"14758"},{"id":"16830","value":"RC 250 R ROOKIES 2013 (EU)","parent_id":"14748"},{"id":"16297","value":"RC 250 WHITE ABS B.D. 15 (EU)","parent_id":"14773"},{"id":"16300","value":"RC 250 WHITE ABS B.D. 16 (EU)","parent_id":"14775"},{"id":"33223","value":"RC 390 \/ ABS 2014 (EU)","parent_id":"14758"},{"id":"33224","value":"RC 390 \/ ABS BAJAJ DIREKT 2014 (EU)","parent_id":"14758"},{"id":"16828","value":"RC 390 ADAC CUP \/ ABS 2014 (EU)","parent_id":"14758"},{"id":"16302","value":"RC 390 ADAC CUP 2015 (EU)","parent_id":"14773"},{"id":"16304","value":"RC 390 ADAC CUP 2016 (EU)","parent_id":"14775"},{"id":"16817","value":"RC 390 BLACK - B.D. 2018 (EU)","parent_id":"14738"},{"id":"16818","value":"RC 390 BLACK - B.D. 2019 (EU)","parent_id":"14740"},{"id":"16308","value":"RC 390 BLACK 2017 (EU)","parent_id":"14729"},{"id":"16284","value":"RC 390 BLACK 2018 (EU)","parent_id":"14738"},{"id":"16281","value":"RC 390 BLACK 2019 (EU)","parent_id":"14740"},{"id":"16816","value":"RC 390 BLACK B.D. 17 (EU)","parent_id":"14729"},{"id":"17226","value":"RC 390 BLUE - B.D. 2022","parent_id":"15040"},{"id":"17228","value":"RC 390 BLUE - B.D. 2022 (EU)","parent_id":"15040"},{"id":"30387","value":"RC 390 BLUE - B.D. 2023 (EU)","parent_id":"17270"},{"id":"33053","value":"RC 390 BLUE - B.D. 2024 (EU)","parent_id":"32421"},{"id":"33051","value":"RC 390 BLUE - NHD - B.D. 2023","parent_id":"17270"},{"id":"36500","value":"RC 390 BLUE - NHD - B.D. 2023 (EU)","parent_id":"17270"},{"id":"33052","value":"RC 390 BLUE - NHD - B.D. 2024 (EU)","parent_id":"32421"}
11712,{"id":"17229","value":"RC 390 BLUE 2022 (EU)","parent_id":"15040"},{"id":"30383","value":"RC 390 BLUE 2023 (EU)","parent_id":"17270"},{"id":"33050","value":"RC 390 BLUE 2024 (EU)","parent_id":"32421"},{"id":"30386","value":"RC 390 GP ORANGE - B.D. 2023 (EU)","parent_id":"17270"},{"id":"33049","value":"RC 390 GP ORANGE - NHD - B.D. 2023","parent_id":"17270"},{"id":"36501","value":"RC 390 GP ORANGE - NHD - B.D. 2023 (EU)","parent_id":"17270"},{"id":"30382","value":"RC 390 GP ORANGE 2023 (EU)","parent_id":"17270"},{"id":"17230","value":"RC 390 ORANGE - B.D. 2022","parent_id":"15040"},{"id":"17225","value":"RC 390 ORANGE - B.D. 2022 (EU)","parent_id":"15040"},{"id":"33047","value":"RC 390 ORANGE - B.D. 2024 (EU)","parent_id":"32421"},{"id":"33046","value":"RC 390 ORANGE - NHD - B.D. 2024 (EU)","parent_id":"32421"},{"id":"17227","value":"RC 390 ORANGE 2022 (EU)","parent_id":"15040"},{"id":"33048","value":"RC 390 ORANGE 2024 (EU)","parent_id":"32421"},{"id":"16283","value":"RC 390 R BLACK 2018 (EU)","parent_id":"14738"},{"id":"16820","value":"RC 390 WHITE - B.D. 2020 (EU)","parent_id":"14863"},{"id":"16821","value":"RC 390 WHITE - B.D. 2021 (EU)","parent_id":"15038"},{"id":"16305","value":"RC 390 WHITE \/ ABS 2014 (EU)","parent_id":"14758"},{"id":"16307","value":"RC 390 WHITE \/ ABS 2015 (EU)","parent_id":"14773"},{"id":"16267","value":"RC 390 WHITE \/ ABS 2016 (EU)","parent_id":"14775"}
11712,{"id":"15309","value":"RC 390 WHITE 2020 (EU)","parent_id":"14863"},{"id":"16827","value":"RC 390 WHITE ABS B.D. 14 (EU)","parent_id":"14758"},{"id":"16829","value":"RC 390 WHITE ABS B.D. 15 (EU)","parent_id":"14773"},{"id":"16301","value":"RC 390 WHITE ABS B.D. 16 (EU)","parent_id":"14775"},{"id":"17240","value":"RC 8C 2022 (EU)","parent_id":"15040"},{"id":"30391","value":"RC 8C 2023","parent_id":"17270"},{"id":"33151","value":"RC 8C 2024","parent_id":"32421"},{"id":"15867","value":"RC4 R 2020","parent_id":"14863"},{"id":"17267","value":"RC4 R 2022","parent_id":"15040"},{"id":"32424","value":"RC4 R 2023","parent_id":"17270"},{"id":"33215","value":"SX-E 2 2024 (EU)","parent_id":"32421"},{"id":"32443","value":"SX-E 3 2023 (EU)","parent_id":"17270"},{"id":"32455","value":"SX-E 3 2024 (EU)","parent_id":"32421"},{"id":"36537","value":"SX-E 3 2025","parent_id":"33058"},{"id":"15916","value":"SX-E 5 2020 (EU)","parent_id":"14863"},{"id":"15935","value":"SX-E 5 2021 (EU)","parent_id":"15038"},{"id":"15739","value":"SX-E 5 2022 (EU)","parent_id":"15040"},{"id":"32444","value":"SX-E 5 2023 (EU)","parent_id":"17270"},{"id":"32462","value":"SX-E 5 2024 (EU)","parent_id":"32421"},{"id":"36540","value":"SX-E 5 2025","parent_id":"33058"},{"id":"41484","value":"SX-E 5 2026","parent_id":"41435"},{"id":"45855","value":"SX-E 5 2027","parent_id":"45841"}]; 11713 // Make Magento form key available for CSRF protection 11714 window.FORM_KEY = ''; 11715</script>
11715 11716 11717<style> 11718 /* Pre-Alpine skeleton variant selection (category pages). The inline script 11719 below tags the root from the `selected_model` cookie so the correct 11720 placeholder (selected-model card vs search form) paints on the first 11721 frame â matching the real content height, no layout shift. The root 11722 class persists, so it keeps selecting the variant after Alpine boots 11723 while x-show="!ready" hides the skeleton once the model is resolved. */ 11724 [data-pf-root] .pf-skel-card { display: none; } 11725 [data-pf-root].pf-has-model .pf-skel-card { display: block; } 11726 [data-pf-root].pf-has-model .pf-skel-form { display: none; } 11727</style> 11728<div x-data="PartFinder()" 11729 x-init="init()" 11730 data-pf-root 11731 class="w-full h-full"> 11732
11732<script> 11733 /* Sync, before Alpine: reflect the selected-model cookie on the root so 11734 the matching skeleton variant is shown immediately. */ 11735 (function () { 11736 var s = document.currentScript; 11737 if (!s || !s.parentElement) { return; } 11738 var hasModel = /(?:^|;\s*)selected_model=[^;]/.test(document.cookie); 11739 s.parentElement.classList.add(hasModel ? 'pf-has-model' : 'pf-no-model'); 11740 })(); 11741 </script>
11741 11742 <!-- Mobile Layout (Always present, hidden on desktop) --> 11743 <div class="lg:hidden"> 11744 <section class="mx-auto "> 11745 <!-- Skeleton for mobile --> 11746 11747<div x-show="!ready" class=" md:px-6"> 11748 <div class="animate-pulse bg-white rounded-xl shadow-lg border border-gray-100 overflow-hidden"> 11749 11750 <!-- Header Title --> 11751 <div class="text-center pt-5 pb-3 px-4 mb-2"> 11752 <div class="h-6 w-3/4 bg-gray-200 rounded mx-auto"></div> 11753 </div> 11754 11755 <!-- Tabs --> 11756 <div class="flex flex-row gap-8 mb-6 border-b border-gray-200 pb-3 px-2"> 11757 <div class="flex-1 gap-2 cursor-default"> 11758 <div class="h-8 w-full bg-gray-300 rounded"></div> 11759 </div> 11760 <div class="flex-1 h-8 w-full bg-gray-200 rounded"></div> 11761 <div class="flex-1 h-8 w-full bg-gray-200 rounded"></div> 11762 </div> 11763 11764 <!-- Content Area --> 11765 <div class="px-4 pt-3 mb-6"> 11766 <!-- Quick Search Label --> 11767 <div class="h-6 w-32 bg-gray-200 rounded mb-3 pt-2"></div> 11768 11769 <!-- Quick Search Input --> 11770 <div class="w-full h-12 bg-gray-50 border border-gray-200 rounded-lg flex items-center px-4 mb-4"> 11771 <div class="h-3 w-1/2 bg-gray-100 rounded"></div> 11772 </div> 11773 11774 <!-- Link --> 11775 <div class="flex justify-center mt-4 gap-2"> 11776 <div class="h-6 w-32 bg-gray-200 rounded"></div> 11777 <div class="h-4 w-4 bg-gray-200 rounded-full"></div> 11778 </div> 11779 </div> 11780 </div> 11781</div> 11782 <div x-show="ready" 11783 x-cloak 11784 x-transition:enter="transition ease-out duration-300" 11785 x-transition:enter-start="opacity-0 scale-95" 11786 x-transition:enter-end="opacity-100 scale-100" 11787 class=""> 11788 11789 <!-- Search Form --> 11790 <form 11791 x-show="!selectedModel" 11792 action="https://www.esprit-ktm.com/pieces-detachees-origines-ktm.html" 11793 method="GET" 11794 @submit="handleSubmit($event)"> 11795 11796 <div class="bg-white rounded-xl shadow-lg overflow-visible"> 11797 11798 <!-- "Your vehicles" garage strip: tinted top row of THIS card --> 11799 <div x-show="$store.main.isUserLoggedIn && garageVehicles.length > 0" 11800 x-cloak 11801 class="border-b border-gray-100 px-4 py-2" 11802 style="border-top-left-radius:.75rem;border-top-right-radius:.75rem;"> 11803 <!-- Header line: label + manage link --> 11804 <div class="flex items-center justify-between gap-3"> 11805 <span class="shrink-0 text-xs font-bold uppercase tracking-widest text-primary-600"> 11806 Vos véhicules </span> 11807 <a href="https://www.esprit-ktm.com/partfinder/garage/index/" 11808 class="shrink-0 whitespace-nowrap text-xs font-medium text-gray-400 transition-colors hover:text-primary-600 hover:underline"> 11809 Gérer mon garage </a> 11810 </div> 11811 11812 <!-- Pills: scroll horizontally so the strip never grows tall --> 11813 <div class="mt-2 flex items-center gap-2 overflow-x-auto"> 11814 <template x-for="vehicle in garageVehicles" :key="vehicle.ham_model_id"> 11815 <button type="button" 11816 @click="selectedGarageVehicle = String(vehicle.ham_model_id); handleGarageVehicleSelection()" 11817 class="group inline-flex shrink-0 items-center gap-1.5 whitespace-nowrap rounded-full border border-gray-200 bg-white px-3 py-1 text-sm font-semibold text-gray-800 transition-colors hover:border-primary-400 hover:text-primary-700"> 11818 <span x-text="garageVehicleName(vehicle)"></span> 11819 <span class="font-normal text-gray-400" x-text="vehicle.ham_model_year"></span> 11820 </button> 11821</template> 11822 </div> 11823</div> 11824 11825 <div class="p-4"> 11826 11827 <!-- Header --> 11828 <div class="text-center pt-1 pb-5"> 11829 <h2 class="text-lg font-bold text-black"> 11830 Sélectionnez votre modèle <span class="text-primary-500 font-bold">KTM</span> </h2> 11831 <!-- <p class="mt-1 text-sm text-gray-500"> 11832 Accédez aux vues éclatées et accessoires compatibles </p> --> 11833 </div> 11834 11835 <div class="border-t border-gray-100 pt-5 mx-5"> 11836 <!-- Top slot: exact identifier (plate / VIN) with toggle --> 11837 <div x-show="isPlateSearchEnabled || isVinSearchEnabled"> 11838 11839 <!-- Label (swaps with the mode) --> 11840 <label class="block text-sm font-bold text-gray-900 mb-2">
11841 <span x-show="slotMode === 'plate'">Saisie du numéro d'immatriculation</span> 11842 <span x-show="slotMode === 'vin'">Saisie du numéro de série</span> 11843 </label> 11844 11845 <div class="flex items-stretch gap-2"> 11846 11847 <!-- EU band (plate mode only) --> 11848 <div x-show="slotMode === 'plate'" 11849 class="w-9 shrink-0 flex flex-col items-center justify-center rounded-l-lg bg-[#003399] py-2 text-white"> 11850 <svg viewBox="0 0 100 100" class="w-5 h-5" aria-hidden="true"> 11851 <circle cx="50" cy="16" r="6" fill="#FFCC00" /><circle cx="67" cy="20.6" r="6" fill="#FFCC00" /><circle cx="79.4" cy="33" r="6" fill="#FFCC00" /><circle cx="84" cy="50" r="6" fill="#FFCC00" /><circle cx="79.4" cy="67" r="6" fill="#FFCC00" /><circle cx="67" cy="79.4" r="6" fill="#FFCC00" /><circle cx="50" cy="84" r="6" fill="#FFCC00" /><circle cx="33" cy="79.4" r="6" fill="#FFCC00" /><circle cx="20.6" cy="67" r="6" fill="#FFCC00" /><circle cx="16" cy="50" r="6" fill="#FFCC00" /><circle cx="20.6" cy="33" r="6" fill="#FFCC00" /><circle cx="33" cy="20.6" r="6" fill="#FFCC00" /> </svg> 11852 <span class="mt-0.5 text-xs font-bold leading-none">F</span> 11853 </div> 11854 11855 <!-- Plate input --> 11856 <input x-show="slotMode === 'plate'" 11857 type="text" 11858 x-model="plateValue" 11859 @input="onPlateInput()" 11860 @keydown.enter.prevent="submitSlot($event)" 11861 placeholder="AB-123-CD" 11862 maxlength="9" 11863 :disabled="isSubmitting" 11864 aria-label="Saisie du numéro d'immatriculation" 11865 class="h-12 min-w-0 flex-1 rounded-r-lg border border-gray-300 px-3 text-base font-medium uppercase tracking-wide focus:outline-none focus:ring-2 focus:ring-primary-600 focus:border-primary-600 placeholder:font-normal placeholder:tracking-normal placeholder:text-gray-400" /> 11866 11867 <!-- VIN input --> 11868 <input x-show="slotMode === 'vin'" 11869 type="text" 11870 x-model="vinValue" 11871 @input="onVinInput()" 11872 @keydown.enter.prevent="submitSlot($event)" 11873 placeholder="Entrez votre VIN (17 caractères)" 11874 maxlength="17" 11875 :disabled="isSubmitting" 11876 aria-label="Saisie du numéro de série" 11877 class="h-12 min-w-0 flex-1 rounded-lg border border-gray-300 px-3 text-base font-medium tracking-wide focus:outline-none focus:ring-2 focus:ring-primary-600 focus:border-primary-600 placeholder:font-normal placeholder:tracking-normal placeholder:text-gray-400" /> 11878 11879 <!-- Submit --> 11880 <button type="button" 11881 @click="submitSlot($event)" 11882 :disabled="isSubmitting || (slotMode === 'plate' ? !plateValue : !vinValue)" 11883 :class="(isSubmitting || (slotMode === 'plate' ? !plateValue : !vinValue)) 11884 ? 'bg-gray-200 text-gray-400 cursor-not-allowed' 11885 : 'bg-primary-600 text-white hover:bg-primary-700'" 11886 class="h-12 w-12 shrink-0 rounded-md flex items-center justify-center transition-colors" 11887 aria-label="Recherche"> 11888 <span x-show="!isSubmitting" class="flex"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-5 w-5 stroke-current stroke-2 fill-none" width="24" height="24" role="img"> 11889 <path stroke-linecap="round" stroke-linejoin="round" d="M13 7l5 5m0 0l-5 5m5-5H6"/> 11890<title>arrow-sm-right</title></svg> 11891</span> 11892 <svg x-show="isSubmitting" x-cloak class="h-5 w-5 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10" stroke="currentColor" stroke-width="2" fill="none" opacity="0.25"></circle><path d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z" fill="currentColor"></path></svg> 11893 </button> 11894 </div> 11895 11896 <!-- Inline error â prominent so a failed lookup is unmistakable --> 11897 <div x-show="slotError" x-cloak role="alert" aria-live="assertive" 11898 class="mt-3 flex items-start gap-2 rounded-lg border-2 border-red-500 bg-red-50 p-3 text-red-700">
11899 <span class="text-sm font-semibold leading-snug" x-text="slotError"></span> 11900 </div> 11901 11902 <!-- Toggle link (only when both modes are available) --> 11903 <button type="button" 11904 x-show="isPlateSearchEnabled && isVinSearchEnabled" 11905 @click="toggleSlotMode()" 11906 class="mt-2.5 inline-flex text-sm font-semibold text-primary-600 hover:text-primary-700 hover:underline"> 11907 <span x-show="slotMode === 'plate'">Je n'ai qu'un numéro de série</span> 11908 <span x-show="slotMode === 'vin'">Revenir à l'immatriculation</span> 11909 </button> 11910</div> 11911 11912 <!-- Quick search + cascade with "See more options" disclosure --> 11913 11914<!-- Quick search shown by default when there is NO plate/VIN slot --> 11915<template x-if="!(isPlateSearchEnabled || isVinSearchEnabled)"> 11916 <div class="mt-1"> 11917 <p class="text-sm font-bold text-gray-900 mb-2">Aller directement au modèle</p> 11918 11919<div class="relative" 11920 x-data="HyvaModelSearchIntegrated()" 11921 x-init="init(window.partFinderSearchModels || [])" 11922 @search-query-updated.window="searchQuery = $event.detail"> 11923 11924 <span class="pointer-events-none absolute left-3.5 top-1/2 -translate-y-1/2 text-gray-400"> 11925 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-5 h-5 stroke-2 fill-none" width="24" height="24" role="img"> 11926 <path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"/> 11927<title>search</title></svg> 11928 </span> 11929 11930 <input 11931 x-ref="searchInput" 11932 x-model="searchQuery" 11933 @input="filterModels(); $dispatch('search-query-updated', searchQuery)" 11934 @keydown="handleKeydown($event)" 11935 @focus="filterModels()" 11936 type="text" 11937 placeholder="(ex: EXC, RC, Duke)..." 11938 class="w-full h-12 pl-11 pr-4 bg-white border border-gray-300 rounded-lg text-base focus:outline-none focus:ring-2 focus:ring-primary-600 focus:border-primary-600 transition-all" 11939 autocomplete="off" 11940 role="combobox" 11941 :aria-expanded="isOpen" 11942 aria-autocomplete="list" /> 11943 11944 <div 11945 x-show="isOpen" 11946 x-transition 11947 id="model-suggestions-tabs" 11948 role="listbox" 11949 class="absolute z-50 w-full mt-2 bg-white border-2 border-gray-200 rounded-lg shadow-2xl max-h-96 overflow-y-auto" 11950 x-ref="suggestionsList" 11951 style="display: none;" 11952 x-cloak> 11953 11954 <div class="sticky top-0 bg-white border-b border-gray-200 px-4 py-2 z-10"> 11955 <div class="flex items-center justify-between"> 11956 <span class="text-xs font-semibold text-gray-600 uppercase tracking-wide"> 11957 Suggestions </span> 11958 <span class="text-xs text-gray-500"> 11959 <span x-text="suggestions.length"></span> 11960 <span x-show="totalResults > suggestions.length"> sur <span x-text="totalResults"></span></span> 11961 <span x-show="suggestions.length <= 1">résultat</span> 11962 <span x-show="suggestions.length > 1">résultats</span> 11963 </span> 11964 </div> 11965 </div> 11966 11967 <div class="divide-y divide-gray-100"> 11968 <template x-for="(suggestion, index) in suggestions" :key="suggestion.value"> 11969 <button 11970 type="button" 11971 @click="selectModel(suggestion)" 11972 @mouseenter="selectedIndex = index" 11973 :class="selectedIndex === index ? 'bg-gray-50' : 'hover:bg-gray-50'" 11974 class="w-full px-4 py-3 text-left transition-colors duration-150 flex items-center gap-3 group"> 11975 <div 11976 class="flex-shrink-0 w-1 h-8 rounded-full transition-all duration-200" 11977 :class="selectedIndex === index ? 'bg-gray-500' : 'bg-transparent'"> 11978 </div> 11979 11980 <div class="flex-1"> 11981 <span 11982 class="text-base font-medium" 11983 :class="selectedIndex === index ? 'text-gray-900' : 'text-gray-700'" 11984 x-html="highlightMatch(suggestion)"> 11985 </span> 11986 </div> 11987 </button> 11988 </template> 11989 </div> 11990 11991 <div 11992 x-show="suggestions.length === 0 && searchQuery.length > 0" 11993 class="px-4 py-8 text-center"> 11994 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-12 h-12 mx-auto
11994stroke-gray-300 stroke-2 fill-none mb-3" width="24" height="24" role="img"> 11995 <path stroke-linecap="round" stroke-linejoin="round" d="M9.172 16.172a4 4 0 015.656 0M9 10h.01M15 10h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 11996<title>emoji-sad</title></svg> 11997 <p class="text-gray-500 font-medium"> 11998 Aucun modèle trouvé </p> 11999 <p class="text-sm text-gray-400 mt-1"> 12000 Essayez un autre terme de recherche </p> 12001 </div> 12002 12003 <div x-show="hasMore" class="border-t border-gray-200 px-4 py-3 text-center"> 12004 <button 12005 type="button" 12006 @click="showMore()" 12007 :disabled="isLoadingMore" 12008 aria-label="Afficher plus de résultats de recherche" 12009 :class="isLoadingMore ? 'opacity-50 cursor-not-allowed' : ''" 12010 class="text-sm xl:text-base text-primary-600 hover:text-primary-700 font-medium transition-colors"> 12011 Voir plus de résultats </button> 12012 </div> 12013</div> 12014</div> 12015 </div> 12016</template> 12017 12018<!-- See more / fewer options toggle (full-width outlined button) --> 12019<button type="button" 12020 @click="isMobileCollapsed = !isMobileCollapsed" 12021 class="mt-4 flex w-full items-center justify-center gap-1.5 rounded-md border border-gray-200 py-2.5 text-sm font-semibold text-gray-600 hover:bg-gray-50 transition-colors"> 12022 <span x-show="isMobileCollapsed">Voir plus d'options</span> 12023 <span x-show="!isMobileCollapsed">Voir moins</span> 12024 <span :class="isMobileCollapsed ? '' : 'rotate-180'" class="transition-transform duration-200"> 12025 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-4 h-4 stroke-current stroke-2 fill-none" width="24" height="24" role="img"> 12026 <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"/> 12027<title>chevron-down</title></svg> 12028 </span> 12029</button> 12030 12031<!-- Collapsible content --> 12032<div x-show="!isMobileCollapsed" x-collapse class="mt-4"> 12033 12034 <!-- Slot present: quick search lives inside the collapsible, above the cascade --> 12035 <template x-if="isPlateSearchEnabled || isVinSearchEnabled"> 12036 <div> 12037 <p class="text-sm font-bold text-gray-900 mb-2">Aller directement au modèle</p> 12038 12039<div class="relative" 12040 x-data="HyvaModelSearchIntegrated()" 12041 x-init="init(window.partFinderSearchModels || [])" 12042 @search-query-updated.window="searchQuery = $event.detail"> 12043 12044 <span class="pointer-events-none absolute left-3.5 top-1/2 -translate-y-1/2 text-gray-400"> 12045 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-5 h-5 stroke-2 fill-none" width="24" height="24" role="img"> 12046 <path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"/> 12047<title>search</title></svg> 12048 </span> 12049 12050 <input 12051 x-ref="searchInput" 12052 x-model="searchQuery" 12053 @input="filterModels(); $dispatch('search-query-updated', searchQuery)" 12054 @keydown="handleKeydown($event)" 12055 @focus="filterModels()" 12056 type="text" 12057 placeholder="(ex: EXC, RC, Duke)..." 12058 class="w-full h-12 pl-11 pr-4 bg-white border border-gray-300 rounded-lg text-base focus:outline-none focus:ring-2 focus:ring-primary-600 focus:border-primary-600 transition-all" 12059 autocomplete="off" 12060 role="combobox" 12061 :aria-expanded="isOpen" 12062 aria-autocomplete="list" /> 12063 12064 <div 12065 x-show="isOpen" 12066 x-transition 12067 id="model-suggestions-tabs" 12068 role="listbox" 12069 class="absolute z-50 w-full mt-2 bg-white border-2 border-gray-200 rounded-lg shadow-2xl max-h-96 overflow-y-auto" 12070 x-ref="suggestionsList" 12071 style="display: none;" 12072 x-cloak> 12073 12074 <div class="sticky top-0 bg-white border-b border-gray-200 px-4 py-2 z-10"> 12075 <div class="flex items-center justify-between"> 12076 <span class="text-xs font-semibold text-gray-600 uppercase tracking-wide"> 12077 Suggestions </span> 12078 <span class="text-xs text-gray-500">
12079 <span x-text="suggestions.length"></span> 12080 <span x-show="totalResults > suggestions.length"> sur <span x-text="totalResults"></span></span> 12081 <span x-show="suggestions.length <= 1">résultat</span> 12082 <span x-show="suggestions.length > 1">résultats</span> 12083 </span> 12084 </div> 12085 </div> 12086 12087 <div class="divide-y divide-gray-100"> 12088 <template x-for="(suggestion, index) in suggestions" :key="suggestion.value"> 12089 <button 12090 type="button" 12091 @click="selectModel(suggestion)" 12092 @mouseenter="selectedIndex = index" 12093 :class="selectedIndex === index ? 'bg-gray-50' : 'hover:bg-gray-50'" 12094 class="w-full px-4 py-3 text-left transition-colors duration-150 flex items-center gap-3 group"> 12095 <div 12096 class="flex-shrink-0 w-1 h-8 rounded-full transition-all duration-200" 12097 :class="selectedIndex === index ? 'bg-gray-500' : 'bg-transparent'"> 12098 </div> 12099 12100 <div class="flex-1"> 12101 <span 12102 class="text-base font-medium" 12103 :class="selectedIndex === index ? 'text-gray-900' : 'text-gray-700'" 12104 x-html="highlightMatch(suggestion)"> 12105 </span> 12106 </div> 12107 </button> 12108 </template> 12109 </div> 12110 12111 <div 12112 x-show="suggestions.length === 0 && searchQuery.length > 0" 12113 class="px-4 py-8 text-center"> 12114 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-12 h-12 mx-auto stroke-gray-300 stroke-2 fill-none mb-3" width="24" height="24" role="img"> 12115 <path stroke-linecap="round" stroke-linejoin="round" d="M9.172 16.172a4 4 0 015.656 0M9 10h.01M15 10h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 12116<title>emoji-sad</title></svg> 12117 <p class="text-gray-500 font-medium"> 12118 Aucun modèle trouvé </p> 12119 <p class="text-sm text-gray-400 mt-1"> 12120 Essayez un autre terme de recherche </p> 12121 </div> 12122 12123 <div x-show="hasMore" class="border-t border-gray-200 px-4 py-3 text-center"> 12124 <button 12125 type="button" 12126 @click="showMore()" 12127 :disabled="isLoadingMore" 12128 aria-label="Afficher plus de résultats de recherche" 12129 :class="isLoadingMore ? 'opacity-50 cursor-not-allowed' : ''" 12130 class="text-sm xl:text-base text-primary-600 hover:text-primary-700 font-medium transition-colors"> 12131 Voir plus de résultats </button> 12132 </div> 12133</div> 12134</div> 12135 <div class="flex items-center my-4"> 12136 <div class="flex-1 border-t border-gray-200"></div> 12137 </div> 12138 </div> 12139 </template> 12140 12141 <!-- Cascade selectors (stacked, numbered) --> 12142 <div class="flex flex-col gap-3"> 12143 <template x-for="(finderOption, index) in finderOptions" :key="finderOption.id"> 12144 <div class="relative"> 12145 <span class="pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 flex h-6 w-6 items-center justify-center rounded-full bg-gray-100 text-xs font-bold text-gray-500" 12146 x-text="index + 1"></span> 12147 12148 <select 12149 x-model="finderOption.selectedValue" 12150 @change="finderOption.handleChange()" 12151 :disabled="finderOption.isDisabled || isSubmitting || finderOption.isLoading" 12152 class="w-full h-12 bg-white bg-none border border-gray-300 rounded-lg text-gray-700 text-base pl-12 pr-10 appearance-none cursor-pointer focus:outline-none focus:ring-2 focus:ring-primary-600 focus:border-primary-600 transition-all" 12153 :class="(finderOption.isDisabled || isSubmitting) ? 'opacity-60 cursor-not-allowed bg-gray-50' : ''"> 12154 <option value="" x-text="finderOption.label"></option> 12155 <template x-for="value in finderOption.values || []" :key="value.id"> 12156 <option :value="value.id" x-text="value.text"></option> 12157 </template> 12158 </select> 12159 12160 <svg class="pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 h-5 w-5 text-gray-400"
12161 viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" 12162 stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> 12163 <path d="m6 9 6 6 6-6" /> 12164 </svg> 12165 </div> 12166 </template> 12167 </div> 12168 12169 <!-- Submit --> 12170 <button 12171 type="submit" 12172 :disabled="isSubmitting || !finderOptions[finderOptions.length - 1]?.selectedValue" 12173 :class="(isSubmitting || !finderOptions[finderOptions.length - 1]?.selectedValue) 12174 ? 'bg-gray-200 text-gray-400 cursor-not-allowed' 12175 : 'bg-primary-600 text-white hover:bg-primary-700'" 12176 class="mt-5 h-12 w-full rounded-md transition-colors flex items-center justify-center" 12177 aria-label="Recherche"> 12178 <span x-show="!isSubmitting" class="flex"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-5 w-5 stroke-current stroke-2 fill-none" width="24" height="24" role="img"> 12179 <path stroke-linecap="round" stroke-linejoin="round" d="M13 7l5 5m0 0l-5 5m5-5H6"/> 12180<title>arrow-sm-right</title></svg> 12181</span> 12182 <svg x-show="isSubmitting" x-cloak class="h-5 w-5 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10" stroke="currentColor" stroke-width="2" fill="none" opacity="0.25"></circle><path d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z" fill="currentColor"></path></svg> 12183 </button> 12184</div> 12185 </div> 12186 </div> 12187 </div> 12188 </form> 12189 12190 <!-- Selected Model Card --> 12191 <div x-show="selectedModel" class="w-full mx-auto" 12192 x-data="Accordion(false, 300)"> 12193 <div class="content-wrapper mx-auto bg-white text-black border-gray-200 rounded-lg px-4" style="box-shadow: 0px 0px 7px 1px rgba(0 0 0 / 0.25); min-width: 270px;"> 12194 <div class="max-w-7xl mx-auto"> 12195 <div> 12196 <div class="flex flex-col items-center justify-center gap-3 md:flex-row md:items-center md:justify-between w-full"> 12197 <div class="flex flex-col items-center pt-1 gap-2 md:flex-row md:items-center md:gap-4 w-full"> 12198 <div class="text-center md:text-left w-full"> 12199 <span>Votre véhicule : </span> 12200 <span class="font-bold text-lg" x-text="normalizeVehicleName(selectedModel)"></span> 12201 </div> 12202 </div> 12203 </div> 12204 12205 <!-- Reset Button --> 12206 <div> 12207 <button 12208 type="button" 12209 @click="resetPartFinder()" 12210 :disabled="isSubmitting" 12211 class="w-full bg-white border border-primary-500 text-primary-500 hover:bg-primary-500 hover:text-white transition-all duration-200 my-2 px-3 py-2.5 rounded flex items-center justify-center gap-2 text-base"> 12212 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-4 h-4 stroke-current stroke-2 fill-none" width="24" height="24" role="img"> 12213 <path stroke-linecap="round" stroke-linejoin="round" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"/> 12214<title>refresh</title></svg> 12215 <span>Réinitialiser</span> 12216 </button> 12217 </div> 12218 12219 <div :class="isPiecesOrigine ? 'p-2' : ''"> 12220 12221 </div> 12222 12223 <div x-show="!isPiecesOrigine"> 12224 <hr class="my-1 border-t-2 border-gray-200" /> 12225 12226 <div class="w-full"> 12227 <!-- Accordion Toggle Button --> 12228 <div class="flex justify-center"> 12229 <button 12230 type="button" 12231 x-ref="AccordionButton" 12232 :aria-expanded="isExpanded" 12233 aria-label="Toggle categories" 12234 class="w-full text-gray-500 hover:bg-gray-50 transition-all duration-200 rounded flex items-center justify-center mb-2 mt-1 gap-2 h-10 bg-transparent border-none cursor-pointer"> 12235 <template x-if="isExpanded">
12236 <span class="flex items-center"> 12237 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="mr-2 w-4 h-4 transition-transform duration-300 stroke-gray-500 stroke-2 fill-none" width="24" height="24" role="img"> 12238 <path stroke-linecap="round" stroke-linejoin="round" d="M5 15l7-7 7 7"/> 12239<title>chevron-up</title></svg> 12240 <span>Masquer les catégories</span> 12241 </span> 12242 </template> 12243 <template x-if="!isExpanded"> 12244 <span class="flex items-center"> 12245 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="mr-2 w-4 h-4 transition-transform duration-300 stroke-gray-500 stroke-2 fill-none" width="24" height="24" role="img"> 12246 <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"/> 12247<title>chevron-down</title></svg> 12248 <span>Afficher les catégories</span> 12249 </span> 12250 </template> 12251 </button> 12252 </div> 12253 12254 <!-- Accordion Content: Categories List --> 12255 <div x-cloak x-ref="AccordionPanel" role="region" 12256 style="overflow: hidden" 12257 x-init="$watch('isExpanded', value => { 12258 if (value) { 12259 // Wait for animation (300ms) then allow overflow 12260 setTimeout(() => { $el.style.overflow = 'visible' }, 300) 12261 } else { 12262 // Immediately hide overflow when closing used for animation 12263 $el.style.overflow = 'hidden' 12264 } 12265 })"> 12266 <!-- Mobile version + Homepage Desktop - collapsible --> 12267 <div class="w-full"> 12268 <div class="flex flex-col gap-2 pb-2 w-full"> 12269 <!-- Categories List --> 12270 <a 12271 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle.html" 12272 class="category-card relative overflow-hidden rounded-lg border-2 border-zinc-400 bg-white cursor-pointer group p-3 md:hover:shadow-lg md:hover:border-gray-500 transition-all duration-200 block transform hover:scale-[1.02]" 12273 style="will-change: transform;"> 12274 <div class="flex items-center gap-3 w-full"> 12275 <div class="flex h-16 w-16 shrink-0 items-center justify-center"> 12276 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" x="0" y="0" viewBox="0 0 64 64" style="enable-background:new 0 0 512 512" xml:space="preserve" class="h-12 w-12 stroke-primary-500" role="img"><g><path d="M51 44h-2V22a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1V2h-2v14h-6V2h-2v14a1 1 0 0 0-1 1v3.61a11.985 11.985 0 0 0-12 0V17a1 1 0 0 0-1-1V2h-2v14h-6V2h-2v14a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1v22h-2a2.006 2.006 0 0 0-2 2v2a2.006 2.006 0 0 0 2 2h2.42A5.014 5.014 0 0 0 20 53h3v9h2v-1.59l2-2 1.29 1.3 1.42-1.42-1.3-1.29 1.3-1.29-1.42-1.42-3.29 3.3v-6.18l2-2 1.29 1.3 1.42-1.42-.29-.29-1.01-1 1.3-1.29-1.42-1.42-3.29 3.3v-6.18l2-2 1.29 1.3 1.42-1.42-1.3-1.29 1.3-1.29-1.42-1.42-3.29 3.3v-6.18L26.41 32h1.18l.7.71L29 32h2v30h2V32h2l.71.71.7-.71h1.18L39 33.41v6.18l-3.29-3.3-1.42 1.42 1.3 1.29-1.3 1.29 1.42 1.42 1.29-1.3 2 2v6.18l-3.29-3.3-1.42 1.42 1.3 1.29-1.01 1-.29.29 1.42 1.42 1.29-1.3 2 2v6.18l-3.29-3.3-1.42 1.42 1.3 1.29-1.3 1.29 1.42 1.42 1.29-1.3 2 2V62h2v-9h3a5.014 5.014 0 0 0 4.58-3H51a2.006 2.006 0 0 0 2-2v-2a2.006 2.006 0 0 0-2-2Zm-36 4h-2v-2h2Zm1-28v-2h8v2Zm7 31h-3a3.009 3.009 0 0 1-3-3V22h6v1.08A11.891 11.891 0 0 0 20 31v1h3Zm-.95-21a10.074 10.074 0 0 1 .95-3.36 9.851 9.851 0 0 1 2-2.78 10 10 0 0 1 14 0 9.851 9.851 0 0 1 2 2.78 10.074 10.074 0 0 1 .95 3.36ZM47 48a3.009 3.009 0 0 1-3 3h-3V32h3v-1a11.891 11.891 0 0 0-3-7.92V22h6Zm1-28h-8v-2h8Zm3 28h-2v-2h2Z" fill="#000000" opacity="1" data-original="#000000" class=""/></g></svg> 12277 </div> 12278 <div class="h-16 w-px bg-gray-200"></div> 12279 12280 <div class="flex-1 text-left"> 12281 <h3 class="font-bold text-xl text-gray-900">Partie cycle</h3> 12282 <p class="mt-0.5 text-sm text-gray-600 line-clamp-2">Châssis, suspensions et roues</p> 12283 <div class="mt-2 inline-flex items-center hover:underline text-primary-500 font-bold transition-all duration-300 group-hover:scale-105 group-hover:drop-shadow-sm"> 12284 Voir la catégorie <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-4 w-4 transition-transform group-hover:translate-x-1 stroke-current stroke-2 fill-none" width="16" height="16" role="img"> 12285 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 12286<title>chevron-right</title></svg> 12287 </div> 12288 </div> 12289 </div> 12290 </a> 12291 <a 12292 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur.html" 12293 class="category-card relative overflow-hidden rounded-lg border-2 border-zinc-400 bg-white cursor-pointer group p-3 md:hover:shadow-lg md:hover:border-gray-500 transition-all duration-200 block transform hover:scale-[1.02]" 12294 style="will-change: transform;"> 12295 <div class="flex items-center gap-3 w-full"> 12296 <div class="flex h-16 w-16 shrink-0 items-center justify-center"> 12297 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" x="0" y="0" viewBox="0 0 511.993 511" style="enable-background:new 0 0 512 512" xml:space="preserve" class="h-12 w-12 stroke-primary-500" role="img"><g><path d="M164.902 123.121c-11.664-11.66-30.574-11.656-42.234.008s-11.66 30.57 0 42.234c11.66 11.664 30.57 11.664 42.234.008 11.653-11.68 11.649-30.586-.007-42.258zm-12.074 30.164a12.796 12.796 0 0 1-13.95 2.778 12.796 12.796 0 0 1-7.901-11.825 12.797 12.797 0 0 1 21.851-9.05c4.996 4.996 4.996 13.101 0 18.097zM376.512 415.352a38.09 38.09 0 0 0 27.11-11.227c12.991-12.96 15.015-33.293 4.835-48.559-10.184-15.265-29.73-21.207-46.687-14.195-16.954 7.012-26.594 25.027-23.016 43.024 3.574 17.996 19.367 30.96 37.715 30.957zm-15.094-53.47c8.332-8.331 21.84-8.331 30.172 0 8.332 8.333 8.332 21.845 0 30.177-8.45 8.039-21.723 8.039-30.172 0a21.335 21.335 0 0 1 0-30.176zm0 0" fill="#000000" opacity="1" data-original="#000000" class=""/><path d="M416.492 5.496c-3.203-3.2-7.543-5-12.07-5s-8.871 1.8-12.07 5L374.25 23.563l-24.133 24.132-84.476 84.48a25.586 25.586 0 0 0-7.5 18.102 25.588 25.588 0 0 0 7.5 18.106l3.113 3.097a25.605 25.605 0 0 0 21.879 7.16.316.316 0 0 1 .12 0l.759-.085h.136l-16.554 16.554c-5.301 5.297-11.844 11.45-19.098 18.004-7.594
12297-6.828-14.164-12.996-19.148-17.972l-16.52-16.586c.29 0 .586.05.852.093a.627.627 0 0 1 .12 0 25.541 25.541 0 0 0 21.88-7.152l3.12-3.113c9.997-9.996 9.997-26.203 0-36.2l-84.476-84.48-24.082-24.14-18.101-18.067c-6.754-6.45-17.387-6.45-24.141 0L4.996 95.95c-6.66 6.668-6.66 17.469 0 24.133l18.102 18.11L131.707 246.82a25.6 25.6 0 0 0 36.207 0l3.106-3.113a25.463 25.463 0 0 0 7.187-20.66c0-.086.05-.152.05-.238-.007-.418-.038-.836-.093-1.246 0-.258-.043-.489-.078-.735l16.574 16.527c4.317 4.32 9.3 9.567 14.422 15.184-33.102 25.836-68.27 49.254-88.75 53.598a69.583 69.583 0 0 0-13.992 4.691l-3.637-3.633a17.062 17.062 0 0 0-24.14 0l-12.008 12.032c-3.2 3.199-5 7.543-5 12.07s1.8 8.867 5 12.07l3.218 3.207a71.953 71.953 0 0 0 5.317 70.606 75.922 75.922 0 0 0 20.18 20.207 71.492 71.492 0 0 0 70.675 5.351l3.192 3.2a17.066 17.066 0 0 0 24.14 0l12.024-12.067c6.66-6.664 6.66-17.469 0-24.133l-3.637-3.644a69.48 69.48 0 0 0 4.676-13.95c4.133-19.37 25.406-51.996 49.605-83.542 28.442 37.043 46.078 66.558 49.723 83.488a69.246 69.246 0 0 0 4.676 13.996l-3.64 3.644a17.062 17.062 0 0 0 0 24.141l12.062 12.067c3.203 3.203 7.543 5 12.074 5 4.527 0 8.867-1.797 12.07-5l3.192-3.192a71.534 71.534 0 0 0 70.636-5.332 75.078 75.078 0 0 0 11.094-9.156 73.263 73.263 0 0 0 9.07-11.028 71.959 71.959 0 0 0 5.344-70.648l3.215-3.215a17.063 17.063 0 0 0 0-24.14l-12.055-12.067c-6.668-6.664-17.469-6.664-24.133 0l-3.644 3.645a65.01 65.01 0 0 0-13.969-4.66c-17.808-3.797-49.203-22.887-88.746-53.692 5.211-5.676 10.078-10.777 14.41-15.113l16.555-16.555c-.043.317-.05.59-.094.93-.05.437-.074.883-.074 1.324 0 .074.043.145.043.219a25.44 25.44 0 0 0 7.191 20.48l3.106 3.117a25.602 25.602 0 0 0 36.207 0l108.64-108.648 18.098-18.105c6.664-6.664 6.664-17.47 0-24.133zm54.305 126.723-12.074 12.066-90.504-90.558 12.066-12.067 45.227 45.227zM86.457 86.992l45.227-45.226 12.066 12.066-90.48 90.41-12.075-12.066zm21.11-69.394 12.074 12.074-90.454 90.453-12.125-12.09zm51.39 214.03-3.11 3.118a8.526 8.526 0 0 1-12.074 0L65.336 156.31l90.504-90.516 78.45 78.45a8.54 8.54 0 0 1 0 12.066l-3.126 3.105a8.71 8.71 0 0 1-7.441 2.32c-.18 0-.348 0-.528-.043-1.554-.195-3.125-.382-5.265-.46h-.332c-1.16 0-2.313 0-3.473.085h-2.043a54.49 54.49 0 0 0-11.996 2.22c-.402.12-.734.16-1.145.288l-.18.07c-.109.043-.21.06-.312.102-1.332.453-2.613 1.016-3.91 1.57-.367.153-.785.29-1.133.442l-.156.07-.852.402c-.941.415-1.855.887-2.73 1.422l-1.957 1.121c-.23.145-.469.262-.7.407l-.288.164c-1.23.851-2.559 1.707-3.696 2.558l-.222.2c-.555.418-1.09.851-1.63 1.277a46.127 46.127 0 0 0-4.128 3.68 48.071 48.071 0 0 0-3.688 4.136 59.768 59.768 0 0 0-1.261 1.606l-.2.238c-.73.957-1.507 2.09-2.43 3.492-.179.281-.382.555-.562.852l-1.008 1.785c-.332.527-.511 1.004-.793 1.535a53.843 53.843 0 0 0-3.355 7.68c-.059.129-.086.265-.137.39-.05.13 0 .188-.074.274l-.121.308c-.152.512-.246 1.06-.39 1.579a53.385 53.385 0 0 0-1.298 5.574c-.18.953-.308 1.816-.386 2.558a64.013 64.013 0 0 0-.34 3.567v.094a26.737 26.737 0 0 0-.129 3.875v2.046c.059 1.434.23 2.868.426 4.415v.066c0 .238 0 .476.05.719a8.68 8.68 0 0 1-2.394 7.53zm47.785-6.39-25.215-25.136a37.966 37.966 0 0 1 4.094-6.649c.137-.18.281-.324.387-.476.101-.157.398-.489.578-.72l.086-.109c.758-.906 1.527-1.808 2.371-2.664.844-.851 1.707-1.586 2.621-2.336.344-.214.664-.464.957-.746.238-.16.441-.347.664-.527a37.899 37.899 0 0 1 6.067-3.738c.101 0 .18-.094.289-.145l25.148 25.215c4.875 4.875 11.094 10.777 18.348 17.297a898.276 898.276 0 0 1-20.684 17.332c-5.566-6.125-11.008-11.867-15.726-16.59zm181.52 97.621a49.72 49.72 0 0 1 14.996 5.618c.25.12.508.226.773.316.172.074.336.145.504.203a7.508 7.508 0 0 0 5.871 0c.172-.058.332-.129.504-.203a8.268 8.268 0 0 0 2.652-1.785l7.786-7.781 12.066 12.066-7.543 7.543c-.156.16-.207.367-.351.527a8.63 8.63 0 0 0-.958 1.442 6.253 6.253 0 0 0-.98 3.004 7.878 7.878 0 0 0-.102 1.632c.055.516.153 1.028.297 1.528.133.57.328 1.125.582 1.652.094.2.094.41.203.598a55.673 55.673 0 0 1-1.816 58.508 54.086 54.086 0 0 1-4.617 5.843c-.074.086-.188.13-.266.223a24.232 24.232 0 0 1-1.996 2.25l-.125.148-.172.153a30.24 30.24 0 0 1-2.246 1.996c-.094.07-.125.172-.219.246a54.85 54.85 0 0 1-5.882 4.652 55.681 55.681 0 0 1-58.461 1.785c-.188-.113-.403-.113-.598-.207a7.688 7.688 0 0 0-1.644-.578 8.023 8.023 0 0 0-1.547-.3 8.443 8.443 0 0 0-1.602.093 7.927 7.927 0 0 0-1.598.317 11.64 11.64 0 0 0-2.867 1.629c-.164.144-.375.195-.527.351l-7.547 7.543-12.066-12.066 7.843-7.844c.121-.125.164-.297.282-.426a7.736 7.736 0 0 0 1.074-1.62c.23-.388.43-.794.598-1.212a8.806 8.806 0 0 0 .359-1.828 5.84 5.84 0 0 0-.238-3.105 7.681 7.681 0 0 0-.489-1.485c-.082-.187-.082-.39-.187-.57a52.013 52.013 0 0 1-5.64-15.149c-5.376-25.128-32.29-63.914-55.524-93.867a891.809 891.809 0 0 1 24.668-29.457c31.043 24.297 70.93 52.113 96.75 57.617zm-82.977-97.586c-5.265 5.258-12.7 13.192-21.223 22.75-.078.094-.187.13-.265.23-.074.102-.05.122-.094.18-34.133 38.399-86.297 103.739-94.062 140.196a51.968 51.968 0 0 1-5.649 15.094c-.094.172-.086.351-.172.52a8.441 8.441 0 0 0-.547 1.706 6.11 6.11 0 0 0-.168 3.149c.055.535.16 1.066.317 1.578.433 1.02.988 1.976 1.652 2.86.13.136.172.323.309.46l7.851 7.844-12.074 12.031-7.535-7.543c-.164-.156-.367-.207-.531-.351a11.643 11.643 0 0 0-2.875-1.637 8.832 8.832 0 0 0-1.563-.3 8.196 8.196 0 0 0-1.636-.103 8.37 8.37 0 0 0-1.52.301c-.59.125-1.164.32-1.707.578-.195.094-.41.094-.598.207a55.653 55.653 0 0 1-58.496-1.812 54.768 54.768 0 0 1-5.836-4.606c-.093-.078-.136-.195-.238-.28a26.74 26.74 0 0 1-4.531-4.532c-.078-.094-.188-.129-.266-.223a52.476 52.476 0 0 1-4.648-5.898c-11.621-17.57-12.309-40.203-1.785-58.453.109-.196.109-.407.214-.606a8.75 8.75 0 0 0 .563-1.62 9.501 9.501 0 0 0-.102-4.763 7.396 7.396 0 0 0-.675-1.406 8.145 8.145 0 0 0-.965-1.469c-.145-.16-.196-.367-.348-.52l-7.543-7.542 12.074-12.066 7.832 7.84a8.377 8.377 0 0 0 2.5 1.656c.227.109.461.207.7.289.902.343 1.859.527 2.824.547a8.613 8.613 0 0 0 2.824-.547c.234-.078.46-.176.684-.282.222-.101.46-.144.683-.273a52.464 52.464 0 0 1 15.145-5.664c26.265-5.59 67.601-34.29 103.015-62.68.094-.074.207-.101.301-.176.094-.078.066-.113.11-.156 12.8-10.308 24.816-20.48 35.054-29.558 10.461-9.278 19.168-1
122977.399 24.746-23.04l25.285-25.199a37.654 37.654 0 0 1 7.004 4.352c.266.23.54.476.856.7l.12.093c.903.762 1.798 1.52 2.653 2.363.852.848 1.614 1.758 2.371 2.664l.07.086c.22.297.454.582.708.852l.136.195-.203-.195c.125.187.332.418.52.648a29.124 29.124 0 0 1 1.926 2.738 35.374 35.374 0 0 1 1.793 3.297c.043.094.093.18.144.282zm62.934 9.48a8.533 8.533 0 0 1-12.074 0l-3.106-3.112a8.678 8.678 0 0 1-2.312-7.45c0-.18 0-.367.039-.554.199-1.547.386-3.11.46-5.242v-.317c.044-1.441 0-2.875-.101-4.266v-.972a54.183 54.183 0 0 0-2.313-12.594c-.085-.3-.117-.539-.21-.855l-.051-.125c-.547-1.649-1.215-3.254-1.914-4.84-.086-.188-.153-.41-.23-.59v-.074c-.153-.325-.29-.66-.442-.985a23.57 23.57 0 0 0-1.41-2.695l-1.051-1.809c-.168-.289-.324-.59-.5-.855l-.137-.238c-.855-1.235-1.707-2.559-2.613-3.703l-.18-.211c-.418-.555-.851-1.094-1.277-1.633a50.048 50.048 0 0 0-3.688-4.137 58.006 58.006 0 0 0-5.453-4.719l-.094-.078c-.144-.117-.289-.246-.433-.36-.524-.398-1.094-.85-1.707-1.234-.617-.386-1.094-.753-1.649-1.109-.351-.23-.632-.43-1.03-.684l-1.708-.949a55.214 55.214 0 0 0-3.133-1.62c-.297-.138-.64-.356-.922-.477-.144-.059-.316-.11-.46-.18a51.338 51.338 0 0 0-4.829-1.895c-.308-.109-.554-.23-.855-.34l-.262-.07a55.73 55.73 0 0 0-7.554-1.75c-.434-.074-.852-.125-1.22-.176-1.425-.199-2.859-.343-4.265-.43a32.472 32.472 0 0 0-2.68-.124h-3.277c-1.469.066-2.937.23-4.394.426h-.13c-.214 0-.425 0-.648.043a8.738 8.738 0 0 1-7.449-2.32l-3.105-3.11a8.532 8.532 0 0 1 0-12.067l78.445-78.445 90.36 90.48zm114.644-114.651L392.41 29.648l12.074-12.078 90.446 90.465zm0 0" fill="#000000" opacity="1" data-original="#000000" class=""/><path d="M347.098 123.113c-11.664 11.664-11.66 30.575.004 42.235 11.66 11.664 30.57 11.664 42.234 0 11.664-11.66 11.664-30.57.004-42.235-11.68-11.64-30.574-11.636-42.25.008zm30.164 30.18c-4.996 5-13.102 4.996-18.098-.004-4.996-4.996-4.996-13.098 0-18.098 4.996-5 13.102-5 18.098-.004a12.796 12.796 0 0 1 0 18.106zM108.371 349.816c-14.996 14.996-14.996 39.313 0 54.309s39.309 14.996 54.305 0c14.996-14.996 14.996-39.313 0-54.309a38.141 38.141 0 0 0-27.153-11.351 38.134 38.134 0 0 0-27.152 11.351zm42.238 42.243c-8.449 8.039-21.722 8.039-30.172 0-8.332-8.332-8.328-21.84 0-30.168 8.333-8.332 21.84-8.332 30.168 0 8.333 8.328 8.333 21.836.004 30.168zm0 0" fill="#000000" opacity="1" data-original="#000000" class=""/></g></svg> 12298 </div> 12299 <div class="h-16 w-px bg-gray-200"></div> 12300 12301 <div class="flex-1 text-left"> 12302 <h3 class="font-bold text-xl text-gray-900">Partie moteur</h3> 12303 <p class="mt-0.5 text-sm text-gray-600 line-clamp-2">Pièces moteur et transmission</p> 12304 <div class="mt-2 inline-flex items-center hover:underline text-primary-500 font-bold transition-all duration-300 group-hover:scale-105 group-hover:drop-shadow-sm"> 12305 Voir la catégorie <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-4 w-4 transition-transform group-hover:translate-x-1 stroke-current stroke-2 fill-none" width="16" height="16" role="img"> 12306 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 12307<title>chevron-right</title></svg> 12308 </div> 12309 </div> 12310 </div> 12311 </a> 12312 <a 12313 href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires.html" 12314 class="category-card relative overflow-hidden rounded-lg border-2 border-zinc-400 bg-white cursor-pointer group p-3 md:hover:shadow-lg md:hover:border-gray-500 transition-all duration-200 block transform hover:scale-[1.02]" 12315 style="will-change: transform;"> 12316 <div class="flex items-center gap-3 w-full"> 12317 <div class="flex h-16 w-16 shrink-0 items-center justify-center"> 12318 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" x="0" y="0" viewBox="0 0 682.667 682.667" style="enable-background:new 0 0 512 512" xml:space="preserve" class="h-12 w-12 stroke-primary-500" role="img"><g><defs><clipPath id="a" clipPathUnits="userSpaceOnUse"><path d="M0 512h512V0H0Z" fill="#000000" opacity="1" data-original="#000000"/></clipPath></defs><g clip-path="url(#a)" transform="matrix(1.33333 0 0 -1.33333 0 682.667)"><path d="M0 0v0c6.227 6.227 6.227 16.324 0 22.551l-150.34 150.34c-6.227 6.227-16.324 6.227-22.551 0-6.227-6.228-6.227-16.324 0-22.551L-22.551 0C-16.324-6.228-6.228-6.228 0 0Z" style="stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" transform="translate(460.98 326.939)" fill="none" stroke="#000000" stroke-width="15" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-dasharray="none" stroke-opacity="" data-original="#000000" class=""/><path d="M0 0v0c6.228 6.228 6.228 16.324 0 22.551l-150.339 150.34c-6.228 6.227-16.324 6.227-22.552 0-6.227-6.227-6.227-16.324 0-22.551L-22.551 0C-16.324-6.227-6.227-6.227 0 0Z" style="stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" transform="translate(254.263 120.222)" fill="none" stroke="#000000" stroke-width="15" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-dasharray="none" stroke-opacity="" data-original="#000000" class=""/><path d="m0 0 15.894 15.894-150.338 150.339-184.165-184.165 150.338-150.339L-21.188-21.188" style="stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" transform="translate(422.532 311.044)" fill="none" stroke="#000000" stroke-width="15" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-dasharray="none" stroke-opacity="" data-original="#000000" class=""/><path d="m0 0-28.972-28.972L-57.944 0l28.972 28.972Z" style="stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" transform="translate(471.943 396.471)" fill="none" stroke="#000000" stroke-width="15" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-dasharray="none" stroke-opacity="" data-original="#000000" class=""/><path d="m0 0-28.972-28.972L-57.944 0l28.972 28.972Z" style="stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" transform="translate(422.143 446.271)" fill="none" stroke="#000000" stroke-width="15" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-dasharray="none" stroke-opacity="" data-original="#000000" class=""/><path d="m0 0 20.719 20.719-42.617 42.608c-18.991 18.99-18.991 49.889 0 68.88l34.905 34.895 35.314-35.314-34.016-34.026 42.617-42.607c18.981-18.991 18.981-49.89 0-68.871L-9.151-79.79l-35.325 35.325 23.337 23.337" style="stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" transform="translate(84.533 87.29)" fill="none" stroke="#000000" stroke-width="15" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-dasharray="none" stroke-opacity="" data-original="#000000" class=""/></g></g></svg> 12319 </div> 12320 <div class="h-16 w-px bg-gray-200"></div> 12321 12322 <div class="flex-1 text-left"> 12323 <h3 class="font-bold text-xl text-gray-900">Accessoires</h3> 12324 <p class="mt-0.5 text-sm text-gray-600 line-clamp-2">Ãquipements et pièces diverses</p> 12325 <div class="mt-2 inline-flex items-center hover:underline text-primary-500 font-bold transition-all duration-300 group-hover:scale-105 group-hover:drop-shadow-sm"> 12326 Voir la catégorie <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-4 w-4 transition-transform group-hover:translate-x-1 stroke-current stroke-2 fill-none" width="16" height="16" role="img"> 12327 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 12328<title>chevron-right</title></svg> 12329 </div> 12330 </div> 12331 </div> 12332 </a> 12333 12334 12335 </div> 12336 </div> 12337 </div> 12338 </div> 12339 </div> 12340 </div> 12341 </div> 12342 </div> 12343</div> 12344 12345 <!-- Categories Grid for Pièces Origine page (outside selector) --> 12346 <template x-if="isPiecesOrigine && selectedModel"> 12347 <div class="w-full mt-4"> 12348 <!-- 3 categories - Modern card layout in 3 columns --> 12349 <div class="grid grid-cols-1 md:grid-cols-3 gap-2"> 12350 <a href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle.html" 12351 class="group bg-white rounded-lg border-2 border-zinc-400 p-6 md:hover:shadow-lg md:hover:border-gray-500 transition-all duration-200 block transform hover:scale-[1.02]"> 12352 <div class="flex items-center gap-3 w-full"> 12353 <div class="flex h-16 w-16 shrink-0 items-center justify-center"> 12354 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" x="0" y="0" viewBox="0 0 64 64" style="enable-background:new 0 0 512 512" xml:space="preserve" class="h-12 w-12 stroke-primary-500" role="img"><g><path d="M51 44h-2V22a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1V2h-2v14h-6V2h-2v14a1 1 0 0 0-1 1v3.61a11.985 11.985 0 0 0-12 0V17a1 1 0 0 0-1-1V2h-2v14h-6V2h-2v14a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1v22h-2a2.006 2.006 0 0 0-2 2v2a2.006 2.006 0 0 0 2 2h2.42A5.014 5.014 0 0 0 20 53h3v9h2v-1.59l2-2 1.29 1.3 1.42-1.42-1.3-1.29 1.3-1.29-1.42-1.42-3.29 3.3v-6.18l2-2 1.29 1.3 1.42-1.42-.29-.29-1.01-1 1.3-1.29-1.42-1.42-3.29 3.3v-6.18l2-2 1.29 1.3 1.42-1.42-1.3-1.29 1.3-1.29-1.42-1.42-3.29 3.3v-6.18L26.41 32h1.18l.7.71L29 32h2v30h2V32h2l.71.71.7-.71h1.18L39 33.41v6.18l-3.29-3.3-1.42 1.42 1.3 1.29-1.3 1.29 1.42 1.42 1.29-1.3 2 2v6.18l-3.29-3.3-1.42 1.42 1.3 1.29-1.01 1-.29.29 1.42 1.42 1.29-1.3 2 2v6.18l-3.29-3.3-1.42 1.42 1.3 1.29-1.3 1.29 1.42 1.42 1.29-1.3 2 2V62h2v-9h3a5.014 5.014 0 0 0 4.58-3H51a2.006 2.006 0 0 0 2-2v-2a2.006 2.006 0 0 0-2-2Zm-36 4h-2v-2h2Zm1-28v-2h8v2Zm7 31h-3a3.009 3.009 0 0 1-3-3V22h6v1.08A11.891 11.891 0 0 0 20 31v1h3Zm-.95-21a10.074 10.074 0 0 1 .95-3.36 9.851 9.851 0 0 1 2-2.78 10 10 0 0 1 14 0 9.851 9.851 0 0 1 2 2.78 10.074 10.074 0 0 1 .95 3.36ZM47 48a3.009 3.009 0 0 1-3 3h-3V32h3v-1a11.891 11.891 0 0 0-3-7.92V22h6Zm1-28h-8v-2h8Zm3 28h-2v-2h2Z" fill="#000000" opacity="1" data-original="#000000" class=""/></g></svg> 12355 </div> 12356 <div class="h-16 w-px bg-gray-200"></div> 12357 12358 <div class="flex-1 text-left"> 12359 <h4 class="font-bold text-xl text-gray-900"> 12360 Partie cycle </h4> 12361 <p class="text-sm text-gray-600 line-clamp-2">Châssis, suspensions et roues</p> 12362 <div class="mt-2 inline-flex items-center hover:underline text-primary-500 font-bold transition-all duration-300 group-hover:scale-105 group-hover:drop-shadow-sm"> 12363 Voir la catégorie <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-4 w-4 transition-transform group-hover:translate-x-1 stroke-current stroke-2 fill-none" width="16" height="16" role="img"> 12364 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 12365<title>chevron-right</title></svg> 12366 </div> 12367 </div> 12368 </div> 12369 </a> 12370 <a href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur.html" 12371 class="group bg-white rounded-lg border-2 border-zinc-400 p-6 md:hover:shadow-lg md:hover:border-gray-500 transition-all duration-200 block transform hover:scale-[1.02]"> 12372 <div class="flex items-center gap-3 w-full"> 12373 <div class="flex h-16 w-16 shrink-0 items-center justify-center"> 12374 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" x="0" y="0" viewBox="0 0 511.993 511" style="enable-background:new 0 0 512 512" xml:space="preserve" class="h-12 w-12 stroke-primary-500" role="img"><g><path d="M164.902 123.121c-11.664-11.66-30.574-11.656-42.234.008s-11.66 30.57 0 42.234c11.66 11.664 30.57 11.664 42.234.008 11.653-11.68 11.649-30.586-.007-42.258zm-12.074 30.164a12.796 12.796 0 0 1-13.95 2.778 12.796 12.796 0 0 1-7.901-11.825 12.797 12.797 0 0 1 21.851-9.05c4.996 4.996 4.996 13.101 0 18.097zM376.512 415.352a38.09 38.09 0 0 0 27.11-11.227c12.991-12.96 15.015-33.293 4.835-48.559-10.184-15.265-29.73-21.207-46.687-14.195-16.954 7.012-26.594 25.027-23.016 43.024 3.574 17.996 19.367 30.96 37.715 30.957zm-15.094-53.47c8.332-8.331 21.84-8.331 30.172 0 8.332 8.333 8.332 21.845 0 30.177-8.45 8.039-21.723 8.039-30.172 0a21.335 21.335 0 0 1 0-30.176zm0 0" fill="#000000" opacity="1" data-original="#000000" class=""/><path d="M416.492 5.496c-3.203-3.2-7.543-5-12.07-5s-8.871 1.8-12.07 5L374.25 23.563l-24.133 24.132-84.476 84.48a25.586 25.586 0 0 0-7.5 18.102 25.588 25.588 0 0 0 7.5 18.106l3.113 3.097a25.605 25.605 0 0 0 21.879 7.16.316.316 0 0 1 .12 0l.759-.085h.136l-16.554 16.554c-5.301 5.297-11.844 11.45-19.098 18.004-7.594
12374-6.828-14.164-12.996-19.148-17.972l-16.52-16.586c.29 0 .586.05.852.093a.627.627 0 0 1 .12 0 25.541 25.541 0 0 0 21.88-7.152l3.12-3.113c9.997-9.996 9.997-26.203 0-36.2l-84.476-84.48-24.082-24.14-18.101-18.067c-6.754-6.45-17.387-6.45-24.141 0L4.996 95.95c-6.66 6.668-6.66 17.469 0 24.133l18.102 18.11L131.707 246.82a25.6 25.6 0 0 0 36.207 0l3.106-3.113a25.463 25.463 0 0 0 7.187-20.66c0-.086.05-.152.05-.238-.007-.418-.038-.836-.093-1.246 0-.258-.043-.489-.078-.735l16.574 16.527c4.317 4.32 9.3 9.567 14.422 15.184-33.102 25.836-68.27 49.254-88.75 53.598a69.583 69.583 0 0 0-13.992 4.691l-3.637-3.633a17.062 17.062 0 0 0-24.14 0l-12.008 12.032c-3.2 3.199-5 7.543-5 12.07s1.8 8.867 5 12.07l3.218 3.207a71.953 71.953 0 0 0 5.317 70.606 75.922 75.922 0 0 0 20.18 20.207 71.492 71.492 0 0 0 70.675 5.351l3.192 3.2a17.066 17.066 0 0 0 24.14 0l12.024-12.067c6.66-6.664 6.66-17.469 0-24.133l-3.637-3.644a69.48 69.48 0 0 0 4.676-13.95c4.133-19.37 25.406-51.996 49.605-83.542 28.442 37.043 46.078 66.558 49.723 83.488a69.246 69.246 0 0 0 4.676 13.996l-3.64 3.644a17.062 17.062 0 0 0 0 24.141l12.062 12.067c3.203 3.203 7.543 5 12.074 5 4.527 0 8.867-1.797 12.07-5l3.192-3.192a71.534 71.534 0 0 0 70.636-5.332 75.078 75.078 0 0 0 11.094-9.156 73.263 73.263 0 0 0 9.07-11.028 71.959 71.959 0 0 0 5.344-70.648l3.215-3.215a17.063 17.063 0 0 0 0-24.14l-12.055-12.067c-6.668-6.664-17.469-6.664-24.133 0l-3.644 3.645a65.01 65.01 0 0 0-13.969-4.66c-17.808-3.797-49.203-22.887-88.746-53.692 5.211-5.676 10.078-10.777 14.41-15.113l16.555-16.555c-.043.317-.05.59-.094.93-.05.437-.074.883-.074 1.324 0 .074.043.145.043.219a25.44 25.44 0 0 0 7.191 20.48l3.106 3.117a25.602 25.602 0 0 0 36.207 0l108.64-108.648 18.098-18.105c6.664-6.664 6.664-17.47 0-24.133zm54.305 126.723-12.074 12.066-90.504-90.558 12.066-12.067 45.227 45.227zM86.457 86.992l45.227-45.226 12.066 12.066-90.48 90.41-12.075-12.066zm21.11-69.394 12.074 12.074-90.454 90.453-12.125-12.09zm51.39 214.03-3.11 3.118a8.526 8.526 0 0 1-12.074 0L65.336 156.31l90.504-90.516 78.45 78.45a8.54 8.54 0 0 1 0 12.066l-3.126 3.105a8.71 8.71 0 0 1-7.441 2.32c-.18 0-.348 0-.528-.043-1.554-.195-3.125-.382-5.265-.46h-.332c-1.16 0-2.313 0-3.473.085h-2.043a54.49 54.49 0 0 0-11.996 2.22c-.402.12-.734.16-1.145.288l-.18.07c-.109.043-.21.06-.312.102-1.332.453-2.613 1.016-3.91 1.57-.367.153-.785.29-1.133.442l-.156.07-.852.402c-.941.415-1.855.887-2.73 1.422l-1.957 1.121c-.23.145-.469.262-.7.407l-.288.164c-1.23.851-2.559 1.707-3.696 2.558l-.222.2c-.555.418-1.09.851-1.63 1.277a46.127 46.127 0 0 0-4.128 3.68 48.071 48.071 0 0 0-3.688 4.136 59.768 59.768 0 0 0-1.261 1.606l-.2.238c-.73.957-1.507 2.09-2.43 3.492-.179.281-.382.555-.562.852l-1.008 1.785c-.332.527-.511 1.004-.793 1.535a53.843 53.843 0 0 0-3.355 7.68c-.059.129-.086.265-.137.39-.05.13 0 .188-.074.274l-.121.308c-.152.512-.246 1.06-.39 1.579a53.385 53.385 0 0 0-1.298 5.574c-.18.953-.308 1.816-.386 2.558a64.013 64.013 0 0 0-.34 3.567v.094a26.737 26.737 0 0 0-.129 3.875v2.046c.059 1.434.23 2.868.426 4.415v.066c0 .238 0 .476.05.719a8.68 8.68 0 0 1-2.394 7.53zm47.785-6.39-25.215-25.136a37.966 37.966 0 0 1 4.094-6.649c.137-.18.281-.324.387-.476.101-.157.398-.489.578-.72l.086-.109c.758-.906 1.527-1.808 2.371-2.664.844-.851 1.707-1.586 2.621-2.336.344-.214.664-.464.957-.746.238-.16.441-.347.664-.527a37.899 37.899 0 0 1 6.067-3.738c.101 0 .18-.094.289-.145l25.148 25.215c4.875 4.875 11.094 10.777 18.348 17.297a898.276 898.276 0 0 1-20.684 17.332c-5.566-6.125-11.008-11.867-15.726-16.59zm181.52 97.621a49.72 49.72 0 0 1 14.996 5.618c.25.12.508.226.773.316.172.074.336.145.504.203a7.508 7.508 0 0 0 5.871 0c.172-.058.332-.129.504-.203a8.268 8.268 0 0 0 2.652-1.785l7.786-7.781 12.066 12.066-7.543 7.543c-.156.16-.207.367-.351.527a8.63 8.63 0 0 0-.958 1.442 6.253 6.253 0 0 0-.98 3.004 7.878 7.878 0 0 0-.102 1.632c.055.516.153 1.028.297 1.528.133.57.328 1.125.582 1.652.094.2.094.41.203.598a55.673 55.673 0 0 1-1.816 58.508 54.086 54.086 0 0 1-4.617 5.843c-.074.086-.188.13-.266.223a24.232 24.232 0 0 1-1.996 2.25l-.125.148-.172.153a30.24 30.24 0 0 1-2.246 1.996c-.094.07-.125.172-.219.246a54.85 54.85 0 0 1-5.882 4.652 55.681 55.681 0 0 1-58.461 1.785c-.188-.113-.403-.113-.598-.207a7.688 7.688 0 0 0-1.644-.578 8.023 8.023 0 0 0-1.547-.3 8.443 8.443 0 0 0-1.602.093 7.927 7.927 0 0 0-1.598.317 11.64 11.64 0 0 0-2.867 1.629c-.164.144-.375.195-.527.351l-7.547 7.543-12.066-12.066 7.843-7.844c.121-.125.164-.297.282-.426a7.736 7.736 0 0 0 1.074-1.62c.23-.388.43-.794.598-1.212a8.806 8.806 0 0 0 .359-1.828 5.84 5.84 0 0 0-.238-3.105 7.681 7.681 0 0 0-.489-1.485c-.082-.187-.082-.39-.187-.57a52.013 52.013 0 0 1-5.64-15.149c-5.376-25.128-32.29-63.914-55.524-93.867a891.809 891.809 0 0 1 24.668-29.457c31.043 24.297 70.93 52.113 96.75 57.617zm-82.977-97.586c-5.265 5.258-12.7 13.192-21.223 22.75-.078.094-.187.13-.265.23-.074.102-.05.122-.094.18-34.133 38.399-86.297 103.739-94.062 140.196a51.968 51.968 0 0 1-5.649 15.094c-.094.172-.086.351-.172.52a8.441 8.441 0 0 0-.547 1.706 6.11 6.11 0 0 0-.168 3.149c.055.535.16 1.066.317 1.578.433 1.02.988 1.976 1.652 2.86.13.136.172.323.309.46l7.851 7.844-12.074 12.031-7.535-7.543c-.164-.156-.367-.207-.531-.351a11.643 11.643 0 0 0-2.875-1.637 8.832 8.832 0 0 0-1.563-.3 8.196 8.196 0 0 0-1.636-.103 8.37 8.37 0 0 0-1.52.301c-.59.125-1.164.32-1.707.578-.195.094-.41.094-.598.207a55.653 55.653 0 0 1-58.496-1.812 54.768 54.768 0 0 1-5.836-4.606c-.093-.078-.136-.195-.238-.28a26.74 26.74 0 0 1-4.531-4.532c-.078-.094-.188-.129-.266-.223a52.476 52.476 0 0 1-4.648-5.898c-11.621-17.57-12.309-40.203-1.785-58.453.109-.196.109-.407.214-.606a8.75 8.75 0 0 0 .563-1.62 9.501 9.501 0 0 0-.102-4.763 7.396 7.396 0 0 0-.675-1.406 8.145 8.145 0 0 0-.965-1.469c-.145-.16-.196-.367-.348-.52l-7.543-7.542 12.074-12.066 7.832 7.84a8.377 8.377 0 0 0 2.5 1.656c.227.109.461.207.7.289.902.343 1.859.527 2.824.547a8.613 8.613 0 0 0 2.824-.547c.234-.078.46-.176.684-.282.222-.101.46-.144.683-.273a52.464 52.464 0 0 1 15.145-5.664c26.265-5.59 67.601-34.29 103.015-62.68.094-.074.207-.101.301-.176.094-.078.066-.113.11-.156 12.8-10.308 24.816-20.48 35.054-29.558 10.461-9.278 19.168-1
123747.399 24.746-23.04l25.285-25.199a37.654 37.654 0 0 1 7.004 4.352c.266.23.54.476.856.7l.12.093c.903.762 1.798 1.52 2.653 2.363.852.848 1.614 1.758 2.371 2.664l.07.086c.22.297.454.582.708.852l.136.195-.203-.195c.125.187.332.418.52.648a29.124 29.124 0 0 1 1.926 2.738 35.374 35.374 0 0 1 1.793 3.297c.043.094.093.18.144.282zm62.934 9.48a8.533 8.533 0 0 1-12.074 0l-3.106-3.112a8.678 8.678 0 0 1-2.312-7.45c0-.18 0-.367.039-.554.199-1.547.386-3.11.46-5.242v-.317c.044-1.441 0-2.875-.101-4.266v-.972a54.183 54.183 0 0 0-2.313-12.594c-.085-.3-.117-.539-.21-.855l-.051-.125c-.547-1.649-1.215-3.254-1.914-4.84-.086-.188-.153-.41-.23-.59v-.074c-.153-.325-.29-.66-.442-.985a23.57 23.57 0 0 0-1.41-2.695l-1.051-1.809c-.168-.289-.324-.59-.5-.855l-.137-.238c-.855-1.235-1.707-2.559-2.613-3.703l-.18-.211c-.418-.555-.851-1.094-1.277-1.633a50.048 50.048 0 0 0-3.688-4.137 58.006 58.006 0 0 0-5.453-4.719l-.094-.078c-.144-.117-.289-.246-.433-.36-.524-.398-1.094-.85-1.707-1.234-.617-.386-1.094-.753-1.649-1.109-.351-.23-.632-.43-1.03-.684l-1.708-.949a55.214 55.214 0 0 0-3.133-1.62c-.297-.138-.64-.356-.922-.477-.144-.059-.316-.11-.46-.18a51.338 51.338 0 0 0-4.829-1.895c-.308-.109-.554-.23-.855-.34l-.262-.07a55.73 55.73 0 0 0-7.554-1.75c-.434-.074-.852-.125-1.22-.176-1.425-.199-2.859-.343-4.265-.43a32.472 32.472 0 0 0-2.68-.124h-3.277c-1.469.066-2.937.23-4.394.426h-.13c-.214 0-.425 0-.648.043a8.738 8.738 0 0 1-7.449-2.32l-3.105-3.11a8.532 8.532 0 0 1 0-12.067l78.445-78.445 90.36 90.48zm114.644-114.651L392.41 29.648l12.074-12.078 90.446 90.465zm0 0" fill="#000000" opacity="1" data-original="#000000" class=""/><path d="M347.098 123.113c-11.664 11.664-11.66 30.575.004 42.235 11.66 11.664 30.57 11.664 42.234 0 11.664-11.66 11.664-30.57.004-42.235-11.68-11.64-30.574-11.636-42.25.008zm30.164 30.18c-4.996 5-13.102 4.996-18.098-.004-4.996-4.996-4.996-13.098 0-18.098 4.996-5 13.102-5 18.098-.004a12.796 12.796 0 0 1 0 18.106zM108.371 349.816c-14.996 14.996-14.996 39.313 0 54.309s39.309 14.996 54.305 0c14.996-14.996 14.996-39.313 0-54.309a38.141 38.141 0 0 0-27.153-11.351 38.134 38.134 0 0 0-27.152 11.351zm42.238 42.243c-8.449 8.039-21.722 8.039-30.172 0-8.332-8.332-8.328-21.84 0-30.168 8.333-8.332 21.84-8.332 30.168 0 8.333 8.328 8.333 21.836.004 30.168zm0 0" fill="#000000" opacity="1" data-original="#000000" class=""/></g></svg> 12375 </div> 12376 <div class="h-16 w-px bg-gray-200"></div> 12377 12378 <div class="flex-1 text-left"> 12379 <h4 class="font-bold text-xl text-gray-900"> 12380 Partie moteur </h4> 12381 <p class="text-sm text-gray-600 line-clamp-2">Pièces moteur et transmission</p> 12382 <div class="mt-2 inline-flex items-center hover:underline text-primary-500 font-bold transition-all duration-300 group-hover:scale-105 group-hover:drop-shadow-sm"> 12383 Voir la catégorie <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-4 w-4 transition-transform group-hover:translate-x-1 stroke-current stroke-2 fill-none" width="16" height="16" role="img"> 12384 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 12385<title>chevron-right</title></svg> 12386 </div> 12387 </div> 12388 </div> 12389 </a> 12390 <a href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires.html" 12391 class="group bg-white rounded-lg border-2 border-zinc-400 p-6 md:hover:shadow-lg md:hover:border-gray-500 transition-all duration-200 block transform hover:scale-[1.02]"> 12392 <div class="flex items-center gap-3 w-full"> 12393 <div class="flex h-16 w-16 shrink-0 items-center justify-center"> 12394 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" x="0" y="0" viewBox="0 0 682.667 682.667" style="enable-background:new 0 0 512 512" xml:space="preserve" class="h-12 w-12 stroke-primary-500" role="img"><g><defs><clipPath id="a_2" clipPathUnits="userSpaceOnUse"><path d="M0 512h512V0H0Z" fill="#000000" opacity="1" data-original="#000000"/></clipPath></defs><g clip-path="url(#a_2)" transform="matrix(1.33333 0 0 -1.33333 0 682.667)"><path d="M0 0v0c6.227 6.227 6.227 16.324 0 22.551l-150.34 150.34c-6.227 6.227-16.324 6.227-22.551 0-6.227-6.228-6.227-16.324 0-22.551L-22.551 0C-16.324-6.228-6.228-6.228 0 0Z" style="stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" transform="translate(460.98 326.939)" fill="none" stroke="#000000" stroke-width="15" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-dasharray="none" stroke-opacity="" data-original="#000000" class=""/><path d="M0 0v0c6.228 6.228 6.228 16.324 0 22.551l-150.339 150.34c-6.228 6.227-16.324 6.227-22.552 0-6.227-6.227-6.227-16.324 0-22.551L-22.551 0C-16.324-6.227-6.227-6.227 0 0Z" style="stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" transform="translate(254.263 120.222)" fill="none" stroke="#000000" stroke-width="15" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-dasharray="none" stroke-opacity="" data-original="#000000" class=""/><path d="m0 0 15.894 15.894-150.338 150.339-184.165-184.165 150.338-150.339L-21.188-21.188" style="stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" transform="translate(422.532 311.044)" fill="none" stroke="#000000" stroke-width="15" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-dasharray="none" stroke-opacity="" data-original="#000000" class=""/><path d="m0 0-28.972-28.972L-57.944 0l28.972 28.972Z" style="stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" transform="translate(471.943 396.471)" fill="none" stroke="#000000" stroke-width="15" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-dasharray="none" stroke-opacity="" data-original="#000000" class=""/><path d="m0 0-28.972-28.972L-57.944 0l28.972 28.972Z" style="stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" transform="translate(422.143 446.271)" fill="none" stroke="#000000" stroke-width="15" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-dasharray="none" stroke-opacity="" data-original="#000000" class=""/><path d="m0 0 20.719 20.719-42.617 42.608c-18.991 18.99-18.991 49.889 0 68.88l34.905 34.895 35.314-35.314-34.016-34.026 42.617-42.607c18.981-18.991 18.981-49.89 0-68.871L-9.151-79.79l-35.325 35.325 23.337 23.337" style="stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" transform="translate(84.533 87.29)" fill="none" stroke="#000000" stroke-width="15" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-dasharray="none" stroke-opacity="" data-original="#000000" class=""/></g></g></svg> 12395 </div> 12396 <div class="h-16 w-px bg-gray-200"></div> 12397 12398 <div class="flex-1 text-left"> 12399 <h4 class="font-bold text-xl text-gray-900"> 12400 Accessoires </h4> 12401 <p class="text-sm text-gray-600 line-clamp-2">Ãquipements et pièces diverses</p> 12402 <div class="mt-2 inline-flex items-center hover:underline text-primary-500 font-bold transition-all duration-300 group-hover:scale-105 group-hover:drop-shadow-sm"> 12403 Voir la catégorie <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-4 w-4 transition-transform group-hover:translate-x-1 stroke-current stroke-2 fill-none" width="16" height="16" role="img"> 12404 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 12405<title>chevron-right</title></svg> 12406 </div> 12407 </div> 12408 </div> 12409 </a> 12410 </div> 12411 </div> 12412 </template> 12413 </div> 12414</section> 12415 </div> 12416
12417 <!-- Desktop Layouts --> 12418 <!-- Width is rendered statically (homepage state is known server-side): the 12419 old Alpine :class binding only applied `content-wrapper mx-auto` after 12420 boot, so the block flashed full-width then shrank. --> 12421 <div class="hidden lg:block h-full"> 12422 <section class="mx-auto h-full"> 12423 <!-- Skeleton shown until Alpine is ready --> 12424 <div x-show="!ready" class="bg-white rounded-lg py-4 mb-4 animate-pulse px-4"> 12425 12426 <!-- Header Title --> 12427 <div class="w-2/3 h-6 bg-gray-200 rounded mx-auto mb-6 mt-2"></div> 12428 12429 <!-- Tabs --> 12430 <div class="flex flex-row gap-8 mb-6 border-b border-gray-200 pb-3 px-2"> 12431 <div class="flex-1 gap-2 cursor-default"> 12432 <div class="h-8 w-full bg-gray-300 rounded"></div> 12433 </div> 12434 <div class="flex-1 h-8 w-full bg-gray-200 rounded"></div> 12435 <div class="flex-1 h-8 w-full bg-gray-200 rounded"></div> 12436 </div> 12437 12438 <!-- Quick Search Section --> 12439 <div class="bg-gray-50 rounded-lg p-4 my-4 mt-8"> 12440 <div class="h-4 w-32 bg-gray-200 rounded mb-7"></div> <!-- Label --> 12441 12442 <!-- Input with Search Icon --> 12443 <div class="w-full h-12 bg-white border border-gray-200 rounded-lg flex items-center px-4 justify-between"> 12444 <div class="h-3 w-1/3 bg-gray-100 rounded"></div> 12445 </div> 12446 </div> 12447 12448 <!-- OR Separator --> 12449 <div class="flex items-center gap-4 my-5 px-4 max-w-sm mx-auto"> 12450 <div class="h-px bg-gray-200 flex-1"></div> 12451 <div class="h-6 w-8 bg-gray-200 rounded"></div> 12452 <div class="h-px bg-gray-200 flex-1"></div> 12453 </div> 12454 12455 <!-- Categories Section --> 12456 <div class="bg-gray-50 rounded-lg p-4 m-4"> 12457 <div class="h-4 w-24 bg-gray-200 rounded mb-4"></div> <!-- Label --> 12458 <div class="flex gap-4"> 12459 <!-- Dropdown 1 --> 12460 <div class="flex-1 h-12 bg-white border border-gray-200 rounded-lg flex justify-between items-center px-3"> 12461 <div class="h-3 w-16 bg-gray-100 rounded"></div> 12462 <div class="h-2 w-3 bg-gray-200 rounded"></div> <!-- Chevron --> 12463 </div> 12464 <!-- Dropdown 2 --> 12465 <div class="flex-1 h-12 bg-white border border-gray-200 rounded-lg flex justify-between items-center px-3"> 12466 <div class="h-3 w-16 bg-gray-100 rounded"></div> 12467 <div class="h-2 w-3 bg-gray-200 rounded"></div> <!-- Chevron --> 12468 </div> 12469 </div> 12470 </div> 12471 12472 <!-- Submit Button (Centered, Gray) --> 12473 <div class="flex justify-center mt-6 mb-2"> 12474 <div class="w-56 h-10 bg-gray-200 rounded-lg flex items-center justify-center gap-2"> 12475 <div class="h-2 w-48 bg-gray-400 rounded"></div> 12476 </div> 12477 </div> 12478</div> 12479 12480 <div x-show="ready" 12481 x-cloak 12482 class="h-full" 12483 x-transition:enter="transition ease-out duration-300" 12484 x-transition:enter-start="opacity-0 scale-95" 12485 x-transition:enter-end="opacity-100 scale-100"> 12486 12487 <!-- h-full : when the CMS hero gives the column a fixed 12488 height (banner-left / partfinder-right grid), the form centers 12489 vertically instead of leaving a hole below; in free-flow heroes 12490 (overlap layout) h-full resolves to auto and this is a no-op. --> 12491 <div class="mx-auto bg-white rounded-lg flex flex-col h-full" 12492 x-show="!selectedModel" 12493 :class="{ 'mb-6': isPiecesOrigine }"> 12494 12495 <!-- Vertical Part Finder form --> 12496 <form 12497 class="flex flex-col" 12498 action="https://www.esprit-ktm.com/pieces-detachees-origines-ktm.html" 12499 method="GET" 12500 @submit="handleSubmit($event)"> 12501 12502 <div class="w-full flex flex-col bg-white rounded-xl overflow-visible"> 12503 12504 <!-- "Your vehicles" garage strip: tinted top row of THIS card --> 12505 <div x-show="$store.main.isUserLoggedIn && garageVehicles.length > 0" 12506 x-cloak 12507 class="flex items-center gap-3 border-b border-gray-100 px-6 xl:px-8 py-2" 12508 style="border-top-left-radius:.75rem;border-top-right-radius:.75rem;"> <span class="shrink-0 text-xs font-bold uppercase tracking-widest text-primary-600"> 12509 Vos véhicules</span> 12510
12511<!-- Pills: scroll horizontally on overflow so the strip never grows tall --> 12512<div class="flex min-w-0 flex-1 items-center gap-2 overflow-x-auto"> 12513 <template x-for="vehicle in garageVehicles" :key="vehicle.ham_model_id"> 12514 <button type="button" 12515 @click="selectedGarageVehicle = String(vehicle.ham_model_id); handleGarageVehicleSelection()" 12516 class="group inline-flex shrink-0 items-center gap-1.5 whitespace-nowrap rounded-full border border-gray-200 bg-white px-3 py-1 text-sm font-semibold text-gray-800 transition-colors hover:border-primary-400 hover:text-primary-700"> 12517 <span class="text-gray-400 transition-colors group-hover:text-primary-500"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" x="0" y="0" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512" xml:space="preserve" class="w-4 h-4" role="img"><g><path d="m306.765 268.325-34.112 40.241a8.25 8.25 0 0 0 .958 11.631 8.22 8.22 0 0 0 5.332 1.958c2.342 0 4.667-.99 6.3-2.916l34.112-40.241a8.25 8.25 0 0 0-.958-11.631 8.253 8.253 0 0 0-11.632.958z" fill="#000000" opacity="1" data-original="#000000" class=""/><path d="M511.903 337.698c-.023-.429-.056-.854-.089-1.281l-.069-.925a45.77 45.77 0 0 0-.119-1.497 64.894 64.894 0 0 0-.256-2.142l-.074-.591a35.097 35.097 0 0 0-.114-.876 75.63 75.63 0 0 0-.489-2.874l-.022-.123a19.924 19.924 0 0 0-.103-.57 77.997 77.997 0 0 0-1.686-6.867c-5.429-18.405-17.526-33.972-34.06-43.834a74.489 74.489 0 0 0-3.33-1.871l-.611-.314a74.937 74.937 0 0 0-2.814-1.391c-.206-.096-.41-.189-.617-.281l-.307-.139a73.62 73.62 0 0 0-3.502-1.476l-.243-.095a77.297 77.297 0 0 0-3.771-1.35 74.777 74.777 0 0 0-2.401-.741 63.028 63.028 0 0 0-3.8-1.002l-.12-.027a61.474 61.474 0 0 0-1.384-.319 72.708 72.708 0 0 0-2.412-.468l-.374-.069c-.381-.069-.76-.14-1.136-.2a75.772 75.772 0 0 0-2.301-.321l-.612-.078c-.363-.05-.727-.097-1.082-.134-.9-.096-1.81-.162-2.764-.23l-.364-.029c-.297-.024-.592-.048-.918-.067a73.976 73.976 0 0 0-8.17.002c-.296.016-.59.04-.885.065l-.413.032c-.91.065-1.819.131-2.709.226-.365.039-.728.086-1.09.134l-.572.075c-.785.1-1.566.201-2.326.324-.396.064-.788.134-1.177.207l-.342.063c-.81.145-1.621.297-2.44.473-.5.109-.995.227-1.459.339-.805.189-1.609.386-2.408.603-.309.085-.61.172-.911.259l-6.605-10.67c12.417-4.416 24.332-6.281 33.576-6.991.14-.011.281-.024.42-.043 16.434-2.112 26.538-12.359 26.372-26.745a8.42 8.42 0 0 0-.054-.841 165.998 165.998 0 0 0-.898-6.746 8.053 8.053 0 0 0-.129-.651c-.377-1.574-.498-2.51-.533-3.019a8.812 8.812 0 0 0-.117-.928c-14.151-76.771-76.744-114.588-79.403-116.16a8.252 8.252 0 0 0-9.868 1.104c-21.727 20.519-30.655 35.25-28.094 46.356 1.019 4.416 3.703 7.407 6.404 9.104 10.525 13.016 14.137 24.354 10.736 33.716a23.089 23.089 0 0 1-.923 2.147l-10.861-17.546a8.254 8.254 0 0 0-8.278-3.813c.467-1.879.717-3.844.717-5.865 0-13.442-10.936-24.378-24.378-24.378s-24.378 10.936-24.378 24.378c0 2.416.359 4.749 1.017 6.954-20.715-6.863-39.924-7.109-57.366-.677-29.214 10.769-44.798 37.207-50.949 50.289-19.264-6.892-23.641-13.199-24.611-15.513-13.243-31.589-41.467-38.532-99.638-42.143-27.61-1.997-38.041 8.779-41.808 15.372-6.073 10.625 1.149 21.039 7.484 25.446.206.142.417.276.634.398l82.958 47.163a8.255 8.255 0 0 0 11.254-3.095 8.252 8.252 0 0 0-3.095-11.254l-82.421-46.859c-1.341-1.126-2.548-2.829-2.568-3.426 0 0 .015-.06.087-.186 3.091-5.408 12.922-8.059 26.373-7.093 58.79 3.649 76.373 10.241 85.521 32.056 5.369 12.803 23.216 22.889 54.364 30.655-9.752 8.436-17.452 17.804-23.026 28.017l-33.81-19.224c-3.963-2.257-9-.869-11.254 3.095a8.253 8.253 0 0 0 3.095 11.254l35.427 20.143a85.15 85.15 0 0 0-.886 2.955 90.455 90.455 0 0 0-1.078 2.433l-34.097 13.285a76.098 76.098 0 0 0-25.329-24.656l-.123-.072a76.331 76.331 0 0 0-3.207-1.799l-.616-.318a80.264 80.264 0 0 0-2.806-1.387c-.206-.097-.413-.189-.62-.282l-.306-.138a73.62 73.62 0 0 0-3.611-1.519l-.133-.052a78.456 78.456 0 0 0-3.763-1.349 77.048 77.048 0 0 0-2.408-.744 77.595 77.595 0 0 0-1.418-.403 71.01 71.01 0 0 0-2.374-.595c-.494-.118-.989-.237-1.508-.348a69.077 69.077 0 0 0-2.416-.469l-.373-.069c-.383-.07-.764-.141-1.137-.2a74.048 74.048 0 0 0-2.341-.326l-.569-.074a37.722 37.722 0 0 0-1.085-.134 79.404 79.404 0 0 0-2.761-.23l-.363-.029c-.298-.024-.595-.048-.922-.067a73.399 73.399 0 0 0-8.165.002c-.3.016-.599.04-.89
125176.065l-.404.032a77.01 77.01 0 0 0-2.705.226c-.37.039-.736.086-1.1.135l-.569.074c-.785.1-1.566.201-2.333.325-.383.062-.763.131-1.143.201l-.37.068a75.71 75.71 0 0 0-2.44.473c-.5.11-.995.227-1.459.339-.805.189-1.609.386-2.408.603-.473.129-.943.264-1.399.397a74.205 74.205 0 0 0-3.71 1.184c-.834.292-1.658.596-2.488.918l-.124.047a70.005 70.005 0 0 0-3.646 1.534l-.27.121c-.207.092-.415.185-.62.282-.946.442-1.878.907-2.814 1.391l-.613.315a77.384 77.384 0 0 0-3.324 1.87C20.647 285.973 8.549 301.542 3.12 319.95l-.023.076a77.31 77.31 0 0 0-.909 3.369l-.069.3a74.783 74.783 0 0 0-.68 3.094c-.043.215-.08.434-.118.651l-.009.059c-.18.956-.349 1.912-.486 2.856-.044.297-.081.596-.117.895l-.054.427a62.432 62.432 0 0 0-.278 2.31c-.045.459-.078.921-.111 1.384l-.076 1.034c-.034.43-.068.859-.091 1.306A73.411 73.411 0 0 0 0 341.515c0 5.16.522 10.318 1.547 15.33 5.018 24.534 21.815 45.018 44.935 54.797 9.392 3.97 19.36 5.984 29.627 5.984s20.235-2.013 29.629-5.984c21.218-8.975 37.105-26.971 43.449-48.815l17.253 1.692c.932 7.383 1.968 12.135 2.119 12.813a8.253 8.253 0 0 0 8.053 6.447h154.054a8.252 8.252 0 0 0 8.253-8.253c0-12.373.971-24.038 2.883-34.671a8.254 8.254 0 0 0-16.246-2.922c-1.651 9.178-2.657 19.017-3.005 29.341H183.516a182.005 182.005 0 0 1-1.41-11.895c-.052-.603-.103-1.208-.15-1.831-.029-.382-.055-.776-.081-1.165a178.666 178.666 0 0 1-.29-5.224c-.01-.229-.021-.451-.03-.682a178.984 178.984 0 0 1-.089-3.188c-.003-.183-.004-.369-.008-.551-.014-.938-.022-1.885-.021-2.843l.002-.671c.005-1.091.02-2.192.047-3.307l.001-.084c.064-2.481.187-5.018.382-7.588v-.007c.782-10.317 2.721-21.204 6.627-31.403.022-.057.032-.117.053-.175a81.287 81.287 0 0 1 2.222-5.189c1.476-3.145 3.154-6.198 5.086-9.109 9.685-14.582 24.432-23.745 43.834-27.233 45.723-8.221 93.095-19.102 120.76-38.046.088-.06.175-.121.263-.183a87.668 87.668 0 0 0 2.857-2.048 81.956 81.956 0 0 0 2.189-1.706c.258-.207.516-.414.768-.623a69.908 69.908 0 0 0 1.887-1.612c.301-.266.591-.535.884-.802.403-.37.798-.742 1.186-1.117.198-.191.413-.38.606-.571.025-.025.043-.055.068-.08 5.135-5.105 8.973-10.713 11.22-16.899 5.661-15.586.745-32.808-14.614-51.189a8.305 8.305 0 0 0-1.906-1.674c.332-2.18 2.698-9.533 18.577-25.376 14.59 10.447 55.73 44.371 66.347 101.068.132 1.45.404 3.051.826 4.868.251 1.628.483 3.378.711 5.328-.009 2.438-.582 8.246-11.777 9.752-29.389 2.298-81.994 14.778-105.941 72.35a8.253 8.253 0 0 0 4.45 10.79 8.252 8.252 0 0 0 10.79-4.45c5.679-13.653 13.286-24.344 21.854-32.731l6.949 11.227c-7.241 8.269-12.638 18.02-15.745 28.547-.028.097-.035.118-.056.197a73.467 73.467 0 0 0-.875 3.253l-.065.279a72.421 72.421 0 0 0-.684 3.112c-.037.186-.07.375-.103.565l-.03.166a77.267 77.267 0 0 0-.482 2.835c-.044.297-.08.596-.116.896l-.055.436a69.474 69.474 0 0 0-.281 2.33c-.046.478-.08.957-.113 1.439l-.064.845c-.039.475-.075.951-.098 1.41a76.831 76.831 0 0 0 1.449 19.132c5.021 24.533 21.818 45.018 44.936 54.796 9.391 3.97 19.359 5.984 29.628 5.984 10.268 0 20.235-2.013 29.626-5.984 23.118-9.776 39.915-30.261 44.937-54.794a76.549 76.549 0 0 0 1.449-19.151zM99.31 396.438c-7.348 3.105-15.153 4.681-23.201 4.681s-15.852-1.576-23.198-4.68c-18.109-7.66-31.264-23.697-35.193-42.904a59.95 59.95 0 0 1-1.138-14.989c.014-.276.036-.549.059-.822l.09-1.217c.02-.292.039-.581.07-.901.056-.588.135-1.169.212-1.748l.078-.628c.019-.146.034-.292.06-.463.108-.742.24-1.474.393-2.295l.08-.464c.164-.831.349-1.651.545-2.47l.055-.243c.216-.875.45-1.74.703-2.598l.011-.037.01-.032c4.246-14.397 13.71-26.579 26.645-34.307l.109-.065.001.001a60.51 60.51 0 0 1 2.536-1.424l.463-.238a65.77 65.77 0 0 1 2.227-1.103l.711-.32a59.185 59.185 0 0 1 2.083-.895c.237-.098.475-.19.714-.283l.12-.047a60.047 60.047 0 0 1 2.96-1.061 58.353 58.353 0 0 1 1.906-.586c.363-.108.726-.212 1.087-.31a58.44 58.44 0 0 1 1.887-.471c.386-.092.771-.186 1.139-.265a56.574 56.574 0 0 1 1.877-.362l.443-.08c.252-.047.505-.095.767-.136.595-.096 1.195-.171 1.798-.248l.675-.088c.208-.028.417-.057.643-.08.711-.076 1.427-.125 2.109-.174l.643-.049c.141-.012.282-.024.397-.031a58.753 58.753 0 0 1 6.406-.002c.142.009.283.022.424.033l.609.047c.716.051 1.435.1 2.159.177.21.023.419.052.627.079l.674.088c.602.076 1.203.152 1.811.25.252.04.501.087.749.133l.452.083c.625.113 1.251.228 1.851.357.39.084.775.177 1.193.276.621.146 1.241.298 1.852.463.365.099.728.205 1.108.316a58.54 58.54 0 0 1 2.897.923c.658.229 1.307.47 1.944.715l.13.051c.24.094.479.186.764.303a56.48 56.48 0 0 1 1.997.858l.748.337c.752.352 1.491.722 2.219 1.098l.468.24a59.36 59.36 0 0 1 2.541 1.426l.001-.001c.036.023.074.044.111.066a59.642 59.642 0 0 1 17.994 16.592l-13.743 5.354a45.302 45.302 0 0 0-5.372-5.402 41.819 41.819 0 0 0-1.348-1.097l-.205-.16a45.19 45.19 0 0 0-1.39-1.038c-.009-.007-.112-.079-.12-.086l-.12-.085a46.5 46.5 0 0 0-1.399-.953l-.102-.066-.157-.101a48.473 48.473 0 0 0-1.583-.974c-.019-.012-.036-.023-.056-.033a45.692 45.692 0 0 0-6.625-3.185c-.151-.062-.3-.12-.408-.16a44.166 44.166 0 0 0-1.261-.443l-.789-.265a50.461 50.461 0 0 0-1.059-.317 32.094 32.094 0 0 0-.928-.264c-.368-.101-.737-.191-1.112-.283a47.341 47.341 0 0 0-1.045-.242 40.397 40.397 0 0 0-2.197-.419l-.183-.03a40.174 40.174 0 0 0-.754-.119c-.414-.059-.829-.11-1.27-.162l-.188-.022a22.345 22.345 0 0 0-.725-.08 51.786 51.786 0 0 0-1.427-.109l-.745-.05a47.843 47.843 0 0 0-4.465.003l-.694.046c-.474.031-.947.065-1.44.111-.237.023-.47.05-.702.078l-.211.024c-.418.05-.834.1-1.259.161-.248.035-.494.076-.742.117l-.206.033a42.205 42.205 0 0 0-2.181.418 47.402 47.402 0 0 0-3.045.778c-.364.107-.73.212-1.152.346l-.705.239-.123.042c-.388.132-.777.266-1.117.392-.152.056-.302.114-.464.18a45.665 45.665 0 0 0-6.613 3.18l-.051.029a49.39 49.39 0 0 0-1.61.992l-.136.088-.102.066c-.474.31-.939.627-1.476 1.008l4.815 6.702-4.979-6.586a45.19 45.19 0 0 0-1.39 1.038h.001l-.163.125a45.45 45.45 0 0 0-1.391 1.131c-7.425 6.304-12.541 14.622-14.793 24.045a44.471 44.471 0 0 0-.52 2.479l-.017.087a47.192 47.192 0 0 0-.372 2.477l-.045.35c-.078.69-.139 1.385-.191 2.139-.013.163-.025.327-.034.476a44.177 44.177 0 0 0-.02 4.929c1.226 24.179 21.165 43.119 45.391 43.119 18.271 0 34.51-10.896 41.643-27.22l6.278.615 8.374.822c-5.493 15.765-17.443 28.638-33.087 35.256zM77.959 355.58a8.274 8.274 0 0 0 2.025.46l19.913 1.952c-5.29 7.631-14.081 12.466-23.786 12.466-15.429 0-28.126-12.057-28.907-27.449a28.333 28.333 0 0 1 .021-3.209l.023-.299c.031-.445.069-.889.121-1.338l.034-.261c.061-.482.13-.962.214-1.438h-.001l.008-.041.014-.074c.099-.54.209-1.077.331-1.591 1.436-5.998 4.696-11.293 9.427-15.311.284-.241.573-.475.893-.726l.121-.092c.284-.222.574-.438.788-.591l.221-.157c.293-.207.588-.409.889-.607l.157-.1c.296-.189.592-.376.895-.557l.199-.116a29.16 29.16 0 0 1 4.176-2.004l.248-.099c.245-.09.495-.175.749-.262l.503-.172c.252-.079.505-.153.794-.238.186-.055.373-.109.599-.169.21-.058.424-.109.637-.161.222-.054.443-.107.647-.151.22-.047.437-.094.664-.136.24-.046.479-.089.695-.125l.65-.105c.271-.
1251704.542-.07.793-.1l.552-.066c.318-.029.639-.052.951-.072l.458-.032a31.59 31.59 0 0 1 2.82-.003l.505.035c.321.021.643.043.938.069l.552.065c.274.032.546.064.804.101l.639.103a29.099 29.099 0 0 1 1.36.261c.223.048.445.101.667.155.212.052.427.102.674.169.188.051.374.106.596.171.253.074.507.147.699.207l.57.194c.249.085.497.169.724.254l.264.105a28.897 28.897 0 0 1 4.176 2.004l.2.116c.303.18.599.366.881.548l.169.11c.302.197.598.401.96.657l.07.049a26.01 26.01 0 0 1 1.014.761c.033.025.064.053.097.078l-11.104 4.327c-4.922 1.92-17.996 7.024-17.878 17.733.106 9.556 10.753 13.923 12.887 14.702zm87.093-7.784-41.968-4.114-10.173-.998-.018-.001-27.393-2.685a53.908 53.908 0 0 1 3.446-1.473l21.948-8.551.025-.009 28.804-11.223.014-.007 28.411-11.07c-3.059 14.196-3.572 28.332-3.096 40.131zm158.09-194.941c4.341 0 7.872 3.531 7.872 7.872 0 4.341-3.531 7.872-7.872 7.872s-7.872-3.531-7.872-7.872c0-4.341 3.531-7.872 7.872-7.872zm-115.646 69.301c5.737-11.363 18.642-31.611 40.74-39.705 19.926-7.3 43.497-3.385 70.095 11.628-12.946 1.91-33.47 5.814-55.16 13.398-14.846 5.19-27.996 11.36-39.367 18.416-6.054-1.226-11.468-2.477-16.308-3.737zm29.277 16.724c-1.323.238-2.622.506-3.911.788 35.139-21.526 80.779-28.492 95.652-30.266l2.799 4.521c-31.832 13.68-75.635 21.558-94.54 24.957zm109.384-32.341-6.325-10.215-.009-.017-3.462-5.591a99.296 99.296 0 0 1 8.634-5.244l9.572 15.462c-2.529 1.949-5.352 3.816-8.41 5.605zm47.063 57.858 16.008 25.865 11.895 19.22.01.013 16.751 27.062a5.058 5.
12517058 0 0 1-1.638 6.956 4.943 4.943 0 0 1-2.641.757 5.038 5.038 0 0 1-4.309-2.394L412.845 315.3l-.003-.008-16.808-27.155-.006-.008-11.449-18.497a98.668 98.668 0 0 1 8.641-5.235zm58.7 63.471-8.921-14.412c.13.032.267.067.43.112.184.048.364.101.581.165.253.074.507.147.699.207l.516.176c.273.092.544.184.779.272l.264.105a29.01 29.01 0 0 1 5.257 2.667l.163.105c.296.196.589.395.923.633l.114.078a32.307 32.307 0 0 1 1.881 1.465c4.735 4.02 7.994 9.315 9.429 15.321.121.506.227 1.018.321 1.534l.039.215c.08.459.147.922.206 1.386l.039.302c.052.439.087.884.119 1.328l.026.344c.031.544.051 1.089.051 1.64 0 .502-.014.998-.039 1.495-.779 15.39-13.475 27.447-28.905 27.447-15.429 0-28.126-12.057-28.907-27.449a29.37 29.37 0 0 1 .012-3.135c.011-.127.022-.253.029-.381.031-.431.066-.859.116-1.286l.015-.119.02-.154c.015-.116.036-.229.052-.344l8.034 12.978c3.961 6.394 10.818 10.211 18.342 10.211a21.5 21.5 0 0 0 11.333-3.231c10.105-6.256 13.237-19.568 6.982-29.675zm42.362 25.668c-3.93 19.206-17.087 35.244-35.194 42.902-7.345 3.106-15.15 4.681-23.197 4.681-8.048 0-15.854-1.575-23.198-4.68-18.108-7.66-31.265-23.697-35.195-42.901a60.25 60.25 0 0 1-1.134-15.026c.014-.292.04-.58.064-.87l.078-1.059c.023-.328.043-.654.073-.955.058-.592.138-1.176.215-1.762l.086-.685c.015-.13.029-.261.05-.396.112-.756.246-1.501.382-2.233l.102-.566c.16-.818.341-1.628.539-2.45l.06-.262a54.884 54.884 0 0 1 .743-2.739l.005-.018a59.428 59.428 0 0 1 9.085-18.249l8.241 13.312a45.002 45.002 0 0 0-4.955 14.076 50.772 50.772 0 0 0-.338 2.262l-.043.348a48.26 48.26 0 0 0-.199 2.194c-.013.155-.025.309-.034.479a46.167 46.167 0 0 0-.017 4.904c1.226 24.179 21.165 43.119 45.391 43.119 24.228 0 44.165-18.94 45.389-43.118a45.023 45.023 0 0 0-.017-4.915c-.01-.165-.023-.329-.043-.579a45.607 45.607 0 0 0-.18-1.997l-.062-.503a46.347 46.347 0 0 0-.376-2.465 46.63 46.63 0 0 0-.517-2.468c-2.254-9.429-7.369-17.748-14.797-24.056a41.31 41.31 0 0 0-1.609-1.3c-.439-.34-.886-.673-1.412-1.051l-.145-.101a46.529 46.529 0 0 0-1.399-.954l-.119-.077-.157-.101c-.472-.302-.949-.6-1.432-.887a10.304 10.304 0 0 0-.198-.114l-.009-.006a45.583 45.583 0 0 0-6.627-3.187c-.151-.062-.3-.12-.425-.165a42.637 42.637 0 0 0-1.247-.437l-.179-.062c-.182-.064-.363-.124-.607-.205a50.461 50.461 0 0 0-1.059-.317 36.663 36.663 0 0 0-2.039-.547 45.215 45.215 0 0 0-2.069-.452 43.611 43.611 0 0 0-1.166-.208l-.161-.025a34.31 34.31 0 0 0-2.055-.286l-.19-.023c-.23-.028-.462-.055-.723-.079-.47-.044-.944-.077-1.423-.109l-.75-.049a47.736 47.736 0 0 0-4.46.003l-.699.046c-.202.013-.406.026-.611.042l-8.131-13.136c.335-.065.672-.125 1.013-.187l.415-.076c.257-.047.516-.096.79-.14.595-.096 1.196-.171 1.798-.248l.68-.089c.207-.028.415-.057.635-.079.711-.076 1.427-.125 2.106-.174.218-.014.436-.032.653-.051.14-.012.279-.023.39-.03a59.853 59.853 0 0 1 6.41-.002c.141.009.279.022.418.032.217.019.434.036.614.048.716.051 1.434.1 2.155.177.211.023.423.052.632.079l.711.092c.589.075 1.179.149 1.769.244.254.041.507.088.759.135l.448.081a56.37 56.37 0 0 1 1.851.357c.351.076.698.16 1.046.242l.146.034a48.672 48.672 0 0 1 2.959.78c.633.185 1.263.377 1.881.579.341.112.679.227 1.009.341a70.98 70.98 0 0 1 1.934.712l.243.095a56.48 56.48 0 0 1 2.664 1.123l.754.34c.748.35 1.483.716 2.248 1.114l.434.221c.877.466 1.728.943 2.532 1.422v-.001c.047.029.1.059.153.089 12.855 7.691 22.273 19.782 26.574 34.164.019.069.037.139.058.208a55.733 55.733 0 0 1 .755 2.826c.196.819.381 1.638.545 2.47l.092.53c.138.741.273 1.479.385 2.247.022.149.039.297.056.445l.098.766c.07.543.143 1.085.198 1.635.032.325.054.654.075.983l.084 1.127c.022.27.044.538.057.793a59.759 59.759 0 0 1-1.133 15.008z" fill="#000000" opacity="1" data-original="#000000" class=""/></g></svg> 12518</span> 12519 <span x-text="garageVehicleName(vehicle)"></span> 12520 <span class="font-normal text-gray-400" x-text="vehicle.ham_model_year"></span> 12521 </button> 12522</template> 12523</div> 12524 12525<!-- Manage garage --> 12526<a href="https://www.esprit-ktm.com/partfinder/garage/index/" 12527 class="shrink-0 whitespace-nowrap text-sm font-medium text-gray-400 transition-colors hover:text-primary-600 hover:underline"> 12528 Gérer mon garage</a> 12529</div> 12530 12531 <div class="px-6 xl:px-8 py-8 xl:py-10"> 12532 12533 <!-- Header --> 12534 <div class="text-center"> 12535 <h2 class="text-xl xl:text-2xl font-bold text-black"> 12536 Sélectionnez votre modèle <span class="text-primary-500 font-bold">KTM</span> </h2> 12537 <p class="mt-1.5 text-base text-gray-500"> 12538 Accédez aux vues éclatées et accessoires compatibles </p> 12539 </div> 12540 12541 <!-- Centered separator (reads as a divider, not an underline) --> 12542 <div class="mx-auto my-7 h-px w-20 bg-gray-200"></div> 12543 12544 <div> 12545 <!-- Top slot: exact identifier (plate / VIN) with toggle --> 12546 <div x-show="isPlateSearchEnabled || isVinSearchEnabled"> 12547 12548 <!-- Label (swaps with the mode) --> 12549 <p class="mb-2 text-xs font-bold uppercase tracking-widest text-primary-600">
12550 <span x-show="slotMode === 'plate'">J'ai mon immatriculation</span> 12551 <span x-show="slotMode === 'vin'">Numéro de série (VIN)</span> 12552 </p> 12553 12554 <div class="flex items-stretch gap-2"> 12555 12556 <!-- EU band (plate mode only) --> 12557 <div x-show="slotMode === 'plate'" 12558 class="w-10 shrink-0 flex flex-col items-center justify-center rounded-l-lg bg-[#003399] py-2 text-white"> 12559 <svg viewBox="0 0 100 100" class="w-5 h-5" aria-hidden="true"> 12560 <circle cx="50" cy="16" r="6" fill="#FFCC00" /><circle cx="67" cy="20.6" r="6" fill="#FFCC00" /><circle cx="79.4" cy="33" r="6" fill="#FFCC00" /><circle cx="84" cy="50" r="6" fill="#FFCC00" /><circle cx="79.4" cy="67" r="6" fill="#FFCC00" /><circle cx="67" cy="79.4" r="6" fill="#FFCC00" /><circle cx="50" cy="84" r="6" fill="#FFCC00" /><circle cx="33" cy="79.4" r="6" fill="#FFCC00" /><circle cx="20.6" cy="67" r="6" fill="#FFCC00" /><circle cx="16" cy="50" r="6" fill="#FFCC00" /><circle cx="20.6" cy="33" r="6" fill="#FFCC00" /><circle cx="33" cy="20.6" r="6" fill="#FFCC00" /> </svg> 12561 <span class="mt-0.5 text-[13px] font-bold leading-none">F</span> 12562 </div> 12563 12564 <!-- Plate input --> 12565 <input x-show="slotMode === 'plate'" 12566 type="text" 12567 x-model="plateValue" 12568 @input="onPlateInput()" 12569 @keydown.enter.prevent="submitSlot($event)" 12570 placeholder="AB-123-CD" 12571 maxlength="9" 12572 :disabled="isSubmitting" 12573 aria-label="Saisie du numéro d'immatriculation" 12574 class="h-12 min-w-0 flex-1 rounded-r-lg border border-gray-300 px-4 text-base font-medium uppercase tracking-wide focus:outline-none focus:ring-2 focus:ring-primary-600 focus:border-primary-600 placeholder:font-normal placeholder:tracking-normal placeholder:text-gray-400" /> 12575 12576 <!-- VIN input --> 12577 <input x-show="slotMode === 'vin'" 12578 type="text" 12579 x-model="vinValue" 12580 @input="onVinInput()" 12581 @keydown.enter.prevent="submitSlot($event)" 12582 placeholder="Entrez votre VIN (17 caractères)" 12583 maxlength="17" 12584 :disabled="isSubmitting" 12585 aria-label="Saisie du numéro de série" 12586 class="h-12 min-w-0 flex-1 rounded-lg border border-gray-300 px-4 text-base font-medium tracking-wide focus:outline-none focus:ring-2 focus:ring-primary-600 focus:border-primary-600 placeholder:font-normal placeholder:tracking-normal placeholder:text-gray-400" /> 12587 12588 <!-- Submit --> 12589 <button type="button" 12590 @click="submitSlot($event)" 12591 :disabled="isSubmitting || (slotMode === 'plate' ? !plateValue : !vinValue)" 12592 :class="(isSubmitting || (slotMode === 'plate' ? !plateValue : !vinValue)) 12593 ? 'bg-gray-200 text-gray-400 cursor-not-allowed' 12594 : 'bg-primary-600 text-white hover:bg-primary-700'" 12595 class="h-12 w-12 shrink-0 rounded-md flex items-center justify-center transition-colors" 12596 aria-label="Recherche"> 12597 <span x-show="!isSubmitting" class="flex"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-5 w-5 stroke-current stroke-2 fill-none" width="24" height="24" role="img"> 12598 <path stroke-linecap="round" stroke-linejoin="round" d="M13 7l5 5m0 0l-5 5m5-5H6"/> 12599<title>arrow-sm-right</title></svg> 12600</span> 12601 <svg x-show="isSubmitting" x-cloak class="h-5 w-5 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10" stroke="currentColor" stroke-width="2" fill="none" opacity="0.25"></circle><path d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z" fill="currentColor"></path></svg> 12602 </button> 12603 </div> 12604 12605 <!-- Inline error â prominent so a failed lookup is unmistakable --> 12606 <div x-show="slotError" x-cloak role="alert" aria-live="assertive" 12607 class="mt-3 flex items-start gap-2 rounded-lg border-2 border-red-500 bg-red-50 p-3 text-red-700">
12608 <span class="text-sm font-semibold leading-snug" x-text="slotError"></span> 12609 </div> 12610 12611 <!-- Toggle link (only when both modes are available) --> 12612 <button type="button" 12613 x-show="isPlateSearchEnabled && isVinSearchEnabled" 12614 @click="toggleSlotMode()" 12615 class="mt-2.5 inline-flex text-base font-semibold text-primary-600 hover:text-primary-700 hover:underline"> 12616 <span x-show="slotMode === 'plate'">J'ai un numéro de série</span> 12617 <span x-show="slotMode === 'vin'">Revenir à l'immatriculation</span> 12618 </button> 12619</div> 12620 12621 <!-- "or" + model section (BO-selected layout: tabs / search first) --> 12622 <div x-data="{ showCascade: false }"> 12623 <!-- "or" separator (only below a slot) --> 12624 <div x-show="isPlateSearchEnabled || isVinSearchEnabled" class="my-5 flex items-center gap-4"> 12625 <span class="h-px flex-1 bg-gray-200"></span> 12626 <span class="text-xs font-bold uppercase tracking-widest text-gray-400">ou</span> 12627 <span class="h-px flex-1 bg-gray-200"></span> 12628 </div> 12629 12630 <!-- Section heading: "by model" when a plate/VIN slot sits above, otherwise 12631 this is the standalone "Quick search" section. --> 12632 <p class="mb-2 text-xs font-bold uppercase tracking-widest text-primary-600"> 12633 <span x-show="isPlateSearchEnabled || isVinSearchEnabled">Je cherche par modèle</span> 12634 <span x-show="!(isPlateSearchEnabled || isVinSearchEnabled)">Recherche rapide</span> 12635 </p> 12636 12637 <!-- Featured quick search (navigates on pick) --> 12638 <div class="relative" 12639 x-data="HyvaModelSearchIntegrated()" 12640 x-init="init(window.partFinderSearchModels || [])" 12641 @search-query-updated.window="searchQuery = $event.detail"> 12642 12643 <span class="pointer-events-none absolute left-3.5 top-1/2 -translate-y-1/2 text-gray-400"> 12644 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-5 h-5 stroke-2 fill-none" width="24" height="24" role="img"> 12645 <path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"/> 12646<title>search</title></svg> 12647 </span> 12648 12649 <input 12650 x-ref="searchInput" 12651 x-model="searchQuery" 12652 @input="filterModels(); $dispatch('search-query-updated', searchQuery)" 12653 @keydown="handleKeydown($event)" 12654 @focus="filterModels()" 12655 type="text" 12656 placeholder="(ex: EXC, RC, Duke)..." 12657 class="w-full h-12 pl-11 pr-4 bg-white border border-gray-300 rounded-lg text-base focus:outline-none focus:ring-2 focus:ring-primary-600 focus:border-primary-600 transition-all" 12658 autocomplete="off" 12659 role="combobox" 12660 :aria-expanded="isOpen" 12661 aria-autocomplete="list" /> 12662 12663 <div 12664 x-show="isOpen" 12665 x-transition 12666 id="model-suggestions-tabs" 12667 role="listbox" 12668 class="absolute z-50 w-full mt-2 bg-white border-2 border-gray-200 rounded-lg shadow-2xl max-h-96 overflow-y-auto" 12669 x-ref="suggestionsList" 12670 x-cloak> 12671 12672 <div class="sticky top-0 bg-white border-b border-gray-200 px-4 py-2 z-10"> 12673 <div class="flex items-center justify-between"> 12674 <span class="text-xs font-semibold text-gray-600 uppercase tracking-wide"> 12675 Suggestions </span> 12676 <span class="text-xs text-gray-500"> 12677 <span x-text="suggestions.length"></span> 12678 <span x-show="totalResults > suggestions.length"> sur <span x-text="totalResults"></span></span> 12679 <span x-show="suggestions.length <= 1">résultat</span> 12680 <span x-show="suggestions.length > 1">résultats</span> 12681 </span> 12682 </div> 12683 </div> 12684 12685 <div class="divide-y divide-gray-100"> 12686 <template x-for="(suggestion, index) in suggestions" :key="suggestion.value"> 12687 <button 12688 type="button" 12689 @click="selectModel(suggestion)" 12690 @mouseenter="selectedIndex = index" 12691 :class="selectedIndex === index ? 'bg-gray-50' : 'hover:bg-gray-50'" 12692 class="w-full px-4 py-3 text-left transition-colors duration-150 flex items-center gap-3 group"> 12693 <div 12694 class="flex-shrink-0 w-1 h-8 rounded-full transition-all duration-200" 12695 :class="selectedIndex === index ? 'bg-gray-500' : 'bg-transparent'"> 12696 </div> 12697 12698 <div class="flex-1">
12699 <span 12700 class="text-sm xl:text-base font-medium" 12701 :class="selectedIndex === index ? 'text-gray-900' : 'text-gray-700'" 12702 x-html="highlightMatch(suggestion)"> 12703 </span> 12704 </div> 12705 </button> 12706 </template> 12707 </div> 12708 12709 <div 12710 x-show="suggestions.length === 0 && searchQuery.length > 0" 12711 class="px-4 py-8 text-center"> 12712 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-12 h-12 mx-auto stroke-gray-300 stroke-2 fill-none mb-3" width="24" height="24" role="img"> 12713 <path stroke-linecap="round" stroke-linejoin="round" d="M9.172 16.172a4 4 0 015.656 0M9 10h.01M15 10h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 12714<title>emoji-sad</title></svg> 12715 <p class="text-gray-500 font-medium"> 12716 Aucun modèle trouvé </p> 12717 <p class="text-sm xl:text-base text-gray-400 mt-1"> 12718 Essayez un autre terme de recherche </p> 12719 </div> 12720 12721 <div x-show="hasMore" class="border-t border-gray-200 px-4 py-3 text-center"> 12722 <button 12723 type="button" 12724 @click="showMore()" 12725 :disabled="isLoadingMore" 12726 aria-label="Afficher plus de résultats de recherche" 12727 :class="isLoadingMore ? 'opacity-50 cursor-not-allowed' : ''" 12728 class="text-sm xl:text-base text-primary-600 hover:text-primary-700 font-medium transition-colors"> 12729 Voir plus de résultats </button> 12730 </div> 12731 12732 <div x-show="suggestions.length > 0" class="sticky bottom-0 bg-gray-50 border-t border-gray-200 px-4 py-2"> 12733 <div class="flex items-center justify-center gap-4 text-xs text-gray-500"> 12734 <span class="flex items-center gap-1"> 12735 <kbd class="px-1.5 py-0.5 bg-white border border-gray-300 rounded text-xs">ââ</kbd> 12736 Naviguer </span> 12737 <span class="flex items-center gap-1"> 12738 <kbd class="px-1.5 py-0.5 bg-white border border-gray-300 rounded text-xs">Enter</kbd> 12739 Sélectionner </span> 12740 </div> 12741 </div> 12742</div></div> 12743 12744 <!-- Fallback: reveal the numbered cascade selectors. Only shown when a slot 12745 (plate / VIN) sits above; without one the cascade is displayed directly 12746 below the quick search, so this toggle would be redundant. --> 12747 <button type="button" 12748 x-show="isPlateSearchEnabled || isVinSearchEnabled" 12749 @click="showCascade = !showCascade" 12750 :aria-expanded="showCascade" 12751 class="mt-2.5 inline-flex items-center gap-1.5 text-base font-semibold text-gray-500 transition-colors hover:text-primary-600"> 12752 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-4 h-4 stroke-2 fill-none" width="24" height="24" role="img"> 12753 <path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"/> 12754<title>search</title></svg> 12755 Je ne trouve pas mon modèle </button> 12756 12757 <!-- Cascade: revealed by the toggle above, or shown directly when there is no 12758 plate/VIN slot (so the user always gets quick search + selectors at once). --> 12759 <div x-show="showCascade || !(isPlateSearchEnabled || isVinSearchEnabled)" 12760 x-cloak 12761 x-transition:enter="transition ease-out duration-200" 12762 x-transition:enter-start="opacity-0 -translate-y-1" 12763 x-transition:enter-end="opacity-100 translate-y-0" 12764 class="mt-4"> 12765 12766 <!-- Divider + heading for the "by criteria" section. Only in no-slot mode: 12767 there the two methods are shown at once and need a clear visual break; 12768 in slot mode the "I can't find my model" toggle already separates them. --> 12769 <template x-if="!(isPlateSearchEnabled || isVinSearchEnabled)"> 12770 <div> 12771 <!-- "or" separator, matching the top slot separator and the horizontal layout --> 12772 <div class="mb-5 flex items-center gap-4">
12773 <span class="h-px flex-1 bg-gray-200"></span> 12774 <span class="text-xs font-bold uppercase tracking-widest text-gray-400">ou</span> 12775 <span class="h-px flex-1 bg-gray-200"></span> 12776 </div> 12777 <p class="mb-2 text-xs font-bold uppercase tracking-widest text-primary-600">Par critères</p> 12778 </div> 12779 </template> 12780 12781 <div class="flex flex-col gap-4"> 12782 <template x-for="(finderOption, index) in finderOptions" :key="finderOption.id"> 12783 <div class="relative"> 12784 <span class="pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 flex h-7 w-7 items-center justify-center rounded-full bg-gray-100 text-sm font-bold text-gray-500" 12785 x-text="index + 1"></span> 12786 12787 <select 12788 x-model="finderOption.selectedValue" 12789 @change="finderOption.handleChange()" 12790 :disabled="finderOption.isDisabled || isSubmitting || finderOption.isLoading" 12791 class="w-full h-12 bg-white bg-none border border-gray-300 rounded-lg text-gray-700 text-base pl-12 pr-10 appearance-none cursor-pointer focus:outline-none focus:ring-2 focus:ring-primary-600 focus:border-primary-600 transition-all" 12792 :class="(finderOption.isDisabled || isSubmitting) ? 'opacity-60 cursor-not-allowed bg-gray-50' : ''"> 12793 <option value="" x-text="finderOption.label"></option> 12794 <template x-for="value in finderOption.values || []" :key="value.id"> 12795 <option :value="value.id" x-text="value.text"></option> 12796 </template> 12797 </select> 12798 12799 <svg class="pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 h-5 w-5 text-gray-400"
12800 viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" 12801 stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> 12802 <path d="m6 9 6 6 6-6" /> 12803 </svg> 12804 </div> 12805 </template> 12806</div> 12807 12808 <!-- Cascade submit (quick pick navigates directly) --> 12809 <button 12810 type="submit" 12811 :disabled="isSubmitting || !finderOptions[finderOptions.length - 1]?.selectedValue" 12812 :class="(isSubmitting || !finderOptions[finderOptions.length - 1]?.selectedValue) 12813 ? 'bg-gray-200 text-gray-400 cursor-not-allowed' 12814 : 'bg-primary-600 text-white hover:bg-primary-700'" 12815 class="mt-4 h-12 w-full rounded-md text-base font-bold uppercase tracking-wide transition-colors flex items-center justify-center"> 12816 <span x-show="!isSubmitting">Choisir</span> 12817 <svg x-show="isSubmitting" x-cloak class="h-5 w-5 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10" stroke="currentColor" stroke-width="2" fill="none" opacity="0.25"></circle><path d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z" fill="currentColor"></path></svg> 12818 </button> 12819 </div> 12820</div> 12821 </div> 12822 </div> 12823 </div> 12824 </form> 12825 </div> 12826 12827 <!-- Selected Model Card --> 12828 <div x-show="selectedModel" class="w-full px-4 pt-6 pb-4 lg:px-3 lg:pt-3 lg:pb-3 2xl:px-4 2xl:pt-6 2xl:pb-4 h-full"> 12829 <div class="bg-white text-black rounded-lg flex flex-col h-full"> 12830 <div class="max-w-7xl mx-auto w-full h-full flex flex-col"> 12831 <div class="flex flex-col gap-3 lg:gap-2 2xl:gap-3 h-full"> 12832 12833 <!-- Vehicle Badge Header --> 12834 <div class="flex items-center gap-3 bg-gray-50 rounded-xl p-3 border border-gray-200"> 12835 <!-- Vehicle Icon --> 12836 <span class="w-10 h-10 lg:w-8 lg:h-8 2xl:w-10 2xl:h-10 text-primary-500 flex items-center justify-center shrink-0 [&>svg]:w-full [&>svg]:h-full" 12837 x-html="getVehicleIcon()"></span> 12838 12839 <!-- Vehicle Name with Truncation --> 12840 <div class="flex-1 min-w-0"> 12841 <span class="text-xs text-gray-500 block">Votre véhicule</span> 12842 <div class="font-bold text-gray-900 truncate text-sm lg:text-base" 12843 :title="normalizeVehicleName(selectedModel)" 12844 x-text="normalizeVehicleName(selectedModel)"></div> 12845 </div> 12846 12847 <!-- Change Button (Pill Style) --> 12848 <button 12849 type="button" 12850 @click="resetPartFinder()" 12851 :disabled="isSubmitting" 12852 class="shrink-0 bg-white text-primary-500 border border-primary-500 rounded-full px-4 py-2 text-xs lg:text-sm font-medium hover:bg-primary-500 hover:text-white transition-colors flex items-center gap-1"> 12853 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-4 h-4 stroke-current stroke-2 fill-none" width="24" height="24" role="img"> 12854 <path stroke-linecap="round" stroke-linejoin="round" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"/> 12855<title>refresh</title></svg> 12856 <span class="hidden lg:inline">Changer de modèle</span> 12857 </button> 12858 </div> 12859 12860 <hr class="my-1 border-t border-gray-200" /> 12861 12862 <!-- Categories List --> 12863 <div class="w-full flex-1 flex flex-col min-h-0" x-show="!$root.isPiecesOrigine"> 12864 <div class="flex flex-col gap-2 w-full h-full"> 12865 <a href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-cycle.html" 12866 class="group relative block w-full h-full">
12867 <!-- Visual Background Layer with individual shadow --> 12868 <div class="absolute inset-0 bg-white rounded-xl shadow-md border border-gray-100 transition-all duration-300 group-hover:border-primary-300 group-hover:shadow-lg group-hover:shadow-primary-100/50"></div> 12869 12870 <!-- Content (relative to sit on top, but no scale) --> 12871 <div class="relative flex items-center gap-3 w-full h-full p-6 lg:p-2 2xl:p-6"> 12872 <div class="flex h-16 w-16 lg:h-12 lg:w-12 2xl:h-16 2xl:w-16 shrink-0 items-center justify-center"> 12873 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" x="0" y="0" viewBox="0 0 64 64" style="enable-background:new 0 0 512 512" xml:space="preserve" class="h-12 w-12 lg:h-8 lg:w-8 2xl:h-12 2xl:w-12 stroke-primary-500" role="img"><g><path d="M51 44h-2V22a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1V2h-2v14h-6V2h-2v14a1 1 0 0 0-1 1v3.61a11.985 11.985 0 0 0-12 0V17a1 1 0 0 0-1-1V2h-2v14h-6V2h-2v14a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1v22h-2a2.006 2.006 0 0 0-2 2v2a2.006 2.006 0 0 0 2 2h2.42A5.014 5.014 0 0 0 20 53h3v9h2v-1.59l2-2 1.29 1.3 1.42-1.42-1.3-1.29 1.3-1.29-1.42-1.42-3.29 3.3v-6.18l2-2 1.29 1.3 1.42-1.42-.29-.29-1.01-1 1.3-1.29-1.42-1.42-3.29 3.3v-6.18l2-2 1.29 1.3 1.42-1.42-1.3-1.29 1.3-1.29-1.42-1.42-3.29 3.3v-6.18L26.41 32h1.18l.7.71L29 32h2v30h2V32h2l.71.71.7-.71h1.18L39 33.41v6.18l-3.29-3.3-1.42 1.42 1.3 1.29-1.3 1.29 1.42 1.42 1.29-1.3 2 2v6.18l-3.29-3.3-1.42 1.42 1.3 1.29-1.01 1-.29.29 1.42 1.42 1.29-1.3 2 2v6.18l-3.29-3.3-1.42 1.42 1.3 1.29-1.3 1.29 1.42 1.42 1.29-1.3 2 2V62h2v-9h3a5.014 5.014 0 0 0 4.58-3H51a2.006 2.006 0 0 0 2-2v-2a2.006 2.006 0 0 0-2-2Zm-36 4h-2v-2h2Zm1-28v-2h8v2Zm7 31h-3a3.009 3.009 0 0 1-3-3V22h6v1.08A11.891 11.891 0 0 0 20 31v1h3Zm-.95-21a10.074 10.074 0 0 1 .95-3.36 9.851 9.851 0 0 1 2-2.78 10 10 0 0 1 14 0 9.851 9.851 0 0 1 2 2.78 10.074 10.074 0 0 1 .95 3.36ZM47 48a3.009 3.009 0 0 1-3 3h-3V32h3v-1a11.891 11.891 0 0 0-3-7.92V22h6Zm1-28h-8v-2h8Zm3 28h-2v-2h2Z" fill="#000000" opacity="1" data-original="#000000" class=""/></g></svg> 12874 </div> 12875 <div class="h-16 w-px lg:h-12 2xl:h-16 bg-gray-200"></div> 12876 12877 <div class="flex-1 text-left min-w-0"> 12878 <h4 class="font-bold text-xl lg:text-lg 2xl:text-xl text-zinc-700 truncate group-hover:text-black transition-colors"> 12879 Partie cycle </h4> 12880 <p class="text-sm text-zinc-600 line-clamp-2 lg:line-clamp-1 2xl:line-clamp-2">Châssis, suspensions et roues</p> 12881 <div class="mt-2 inline-flex items-center text-primary-500 font-bold transition-all duration-300 group-hover:translate-x-1"> 12882 Voir la catégorie <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-4 w-4 transition-transform stroke-current stroke-2 fill-none group-hover:translate-x-1" width="16" height="16" role="img"> 12883 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 12884<title>chevron-right</title></svg> 12885 </div> 12886 </div> 12887 </div> 12888 </a> 12889 <a href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/partie-moteur.html" 12890 class="group relative block w-full h-full"> 12891 <!-- Visual Background Layer with individual shadow --> 12892 <div class="absolute inset-0 bg-white rounded-xl shadow-md border border-gray-100 transition-all duration-300 group-hover:border-primary-300 group-hover:shadow-lg group-hover:shadow-primary-100/50"></div> 12893 12894 <!-- Content (relative to sit on top, but no scale) --> 12895 <div class="relative flex items-center gap-3 w-full h-full p-6 lg:p-2 2xl:p-6"> 12896 <div class="flex h-16 w-16 lg:h-12 lg:w-12 2xl:h-16 2xl:w-16 shrink-0 items-center justify-center"> 12897 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" x="0" y="0" viewBox="0 0 511.993 511" style="enable-background:new 0 0 512 512" xml:space="preserve" class="h-12 w-12 lg:h-8 lg:w-8 2xl:h-12 2xl:w-12 stroke-primary-500" role="img"><g><path d="M164.902 123.121c-11.664-11.66-30.574-11.656-42.234.008s-11.66 30.57 0 42.234c11.66 11.664 30.57 11.664 42.234.008 11.653-11.68 11.649-30.586-.007-42.258zm-12.074 30.164a12.796 12.796 0 0 1-13.95 2.778 12.796 12.796 0 0 1-7.901-11.825 12.797 12.797 0 0 1 21.851-9.05c4.996 4.996 4.996 13.101 0 18.097zM376.512 415.352a38.09 38.09 0 0 0 27.11-11.227c12.991-12.96 15.015-33.293 4.835-48.559-10.184-15.265-29.73-21.207-46.687-14.195-16.954 7.012-26.594 25.027-23.016 43.024 3.574 17.996 19.367 30.96 37.715 30.957zm-15.094-53.47c8.332-8.331 21.84-8.331 30.172 0 8.332 8.333 8.332 21.845 0 30.177-8.45 8.039-21.723 8.039-30.172 0a21.335 21.335 0 0 1 0-30.176zm0 0" fill="#000000" opacity="1" data-original="#000000" class=""/><path d="M416.492 5.496c-3.203-3.2-7.543-5-12.07-5s-8.871 1.8-12.07 5L374.25 23.563l-24.133 24.132-84.476 84.48a25.586 25.586 0 0 0-7.5 18.102 25.588 25.588 0 0 0 7.5 18.106l3.113 3.097a25.605 25.605 0 0 0 21.879 7.16.316.316 0 0 1 .12 0l.759-.085h.136l-16.554 16.554c-5.301 5.297-11.844 11.45-19.098 18.004-7.594
12897-6.828-14.164-12.996-19.148-17.972l-16.52-16.586c.29 0 .586.05.852.093a.627.627 0 0 1 .12 0 25.541 25.541 0 0 0 21.88-7.152l3.12-3.113c9.997-9.996 9.997-26.203 0-36.2l-84.476-84.48-24.082-24.14-18.101-18.067c-6.754-6.45-17.387-6.45-24.141 0L4.996 95.95c-6.66 6.668-6.66 17.469 0 24.133l18.102 18.11L131.707 246.82a25.6 25.6 0 0 0 36.207 0l3.106-3.113a25.463 25.463 0 0 0 7.187-20.66c0-.086.05-.152.05-.238-.007-.418-.038-.836-.093-1.246 0-.258-.043-.489-.078-.735l16.574 16.527c4.317 4.32 9.3 9.567 14.422 15.184-33.102 25.836-68.27 49.254-88.75 53.598a69.583 69.583 0 0 0-13.992 4.691l-3.637-3.633a17.062 17.062 0 0 0-24.14 0l-12.008 12.032c-3.2 3.199-5 7.543-5 12.07s1.8 8.867 5 12.07l3.218 3.207a71.953 71.953 0 0 0 5.317 70.606 75.922 75.922 0 0 0 20.18 20.207 71.492 71.492 0 0 0 70.675 5.351l3.192 3.2a17.066 17.066 0 0 0 24.14 0l12.024-12.067c6.66-6.664 6.66-17.469 0-24.133l-3.637-3.644a69.48 69.48 0 0 0 4.676-13.95c4.133-19.37 25.406-51.996 49.605-83.542 28.442 37.043 46.078 66.558 49.723 83.488a69.246 69.246 0 0 0 4.676 13.996l-3.64 3.644a17.062 17.062 0 0 0 0 24.141l12.062 12.067c3.203 3.203 7.543 5 12.074 5 4.527 0 8.867-1.797 12.07-5l3.192-3.192a71.534 71.534 0 0 0 70.636-5.332 75.078 75.078 0 0 0 11.094-9.156 73.263 73.263 0 0 0 9.07-11.028 71.959 71.959 0 0 0 5.344-70.648l3.215-3.215a17.063 17.063 0 0 0 0-24.14l-12.055-12.067c-6.668-6.664-17.469-6.664-24.133 0l-3.644 3.645a65.01 65.01 0 0 0-13.969-4.66c-17.808-3.797-49.203-22.887-88.746-53.692 5.211-5.676 10.078-10.777 14.41-15.113l16.555-16.555c-.043.317-.05.59-.094.93-.05.437-.074.883-.074 1.324 0 .074.043.145.043.219a25.44 25.44 0 0 0 7.191 20.48l3.106 3.117a25.602 25.602 0 0 0 36.207 0l108.64-108.648 18.098-18.105c6.664-6.664 6.664-17.47 0-24.133zm54.305 126.723-12.074 12.066-90.504-90.558 12.066-12.067 45.227 45.227zM86.457 86.992l45.227-45.226 12.066 12.066-90.48 90.41-12.075-12.066zm21.11-69.394 12.074 12.074-90.454 90.453-12.125-12.09zm51.39 214.03-3.11 3.118a8.526 8.526 0 0 1-12.074 0L65.336 156.31l90.504-90.516 78.45 78.45a8.54 8.54 0 0 1 0 12.066l-3.126 3.105a8.71 8.71 0 0 1-7.441 2.32c-.18 0-.348 0-.528-.043-1.554-.195-3.125-.382-5.265-.46h-.332c-1.16 0-2.313 0-3.473.085h-2.043a54.49 54.49 0 0 0-11.996 2.22c-.402.12-.734.16-1.145.288l-.18.07c-.109.043-.21.06-.312.102-1.332.453-2.613 1.016-3.91 1.57-.367.153-.785.29-1.133.442l-.156.07-.852.402c-.941.415-1.855.887-2.73 1.422l-1.957 1.121c-.23.145-.469.262-.7.407l-.288.164c-1.23.851-2.559 1.707-3.696 2.558l-.222.2c-.555.418-1.09.851-1.63 1.277a46.127 46.127 0 0 0-4.128 3.68 48.071 48.071 0 0 0-3.688 4.136 59.768 59.768 0 0 0-1.261 1.606l-.2.238c-.73.957-1.507 2.09-2.43 3.492-.179.281-.382.555-.562.852l-1.008 1.785c-.332.527-.511 1.004-.793 1.535a53.843 53.843 0 0 0-3.355 7.68c-.059.129-.086.265-.137.39-.05.13 0 .188-.074.274l-.121.308c-.152.512-.246 1.06-.39 1.579a53.385 53.385 0 0 0-1.298 5.574c-.18.953-.308 1.816-.386 2.558a64.013 64.013 0 0 0-.34 3.567v.094a26.737 26.737 0 0 0-.129 3.875v2.046c.059 1.434.23 2.868.426 4.415v.066c0 .238 0 .476.05.719a8.68 8.68 0 0 1-2.394 7.53zm47.785-6.39-25.215-25.136a37.966 37.966 0 0 1 4.094-6.649c.137-.18.281-.324.387-.476.101-.157.398-.489.578-.72l.086-.109c.758-.906 1.527-1.808 2.371-2.664.844-.851 1.707-1.586 2.621-2.336.344-.214.664-.464.957-.746.238-.16.441-.347.664-.527a37.899 37.899 0 0 1 6.067-3.738c.101 0 .18-.094.289-.145l25.148 25.215c4.875 4.875 11.094 10.777 18.348 17.297a898.276 898.276 0 0 1-20.684 17.332c-5.566-6.125-11.008-11.867-15.726-16.59zm181.52 97.621a49.72 49.72 0 0 1 14.996 5.618c.25.12.508.226.773.316.172.074.336.145.504.203a7.508 7.508 0 0 0 5.871 0c.172-.058.332-.129.504-.203a8.268 8.268 0 0 0 2.652-1.785l7.786-7.781 12.066 12.066-7.543 7.543c-.156.16-.207.367-.351.527a8.63 8.63 0 0 0-.958 1.442 6.253 6.253 0 0 0-.98 3.004 7.878 7.878 0 0 0-.102 1.632c.055.516.153 1.028.297 1.528.133.57.328 1.125.582 1.652.094.2.094.41.203.598a55.673 55.673 0 0 1-1.816 58.508 54.086 54.086 0 0 1-4.617 5.843c-.074.086-.188.13-.266.223a24.232 24.232 0 0 1-1.996 2.25l-.125.148-.172.153a30.24 30.24 0 0 1-2.246 1.996c-.094.07-.125.172-.219.246a54.85 54.85 0 0 1-5.882 4.652 55.681 55.681 0 0 1-58.461 1.785c-.188-.113-.403-.113-.598-.207a7.688 7.688 0 0 0-1.644-.578 8.023 8.023 0 0 0-1.547-.3 8.443 8.443 0 0 0-1.602.093 7.927 7.927 0 0 0-1.598.317 11.64 11.64 0 0 0-2.867 1.629c-.164.144-.375.195-.527.351l-7.547 7.543-12.066-12.066 7.843-7.844c.121-.125.164-.297.282-.426a7.736 7.736 0 0 0 1.074-1.62c.23-.388.43-.794.598-1.212a8.806 8.806 0 0 0 .359-1.828 5.84 5.84 0 0 0-.238-3.105 7.681 7.681 0 0 0-.489-1.485c-.082-.187-.082-.39-.187-.57a52.013 52.013 0 0 1-5.64-15.149c-5.376-25.128-32.29-63.914-55.524-93.867a891.809 891.809 0 0 1 24.668-29.457c31.043 24.297 70.93 52.113 96.75 57.617zm-82.977-97.586c-5.265 5.258-12.7 13.192-21.223 22.75-.078.094-.187.13-.265.23-.074.102-.05.122-.094.18-34.133 38.399-86.297 103.739-94.062 140.196a51.968 51.968 0 0 1-5.649 15.094c-.094.172-.086.351-.172.52a8.441 8.441 0 0 0-.547 1.706 6.11 6.11 0 0 0-.168 3.149c.055.535.16 1.066.317 1.578.433 1.02.988 1.976 1.652 2.86.13.136.172.323.309.46l7.851 7.844-12.074 12.031-7.535-7.543c-.164-.156-.367-.207-.531-.351a11.643 11.643 0 0 0-2.875-1.637 8.832 8.832 0 0 0-1.563-.3 8.196 8.196 0 0 0-1.636-.103 8.37 8.37 0 0 0-1.52.301c-.59.125-1.164.32-1.707.578-.195.094-.41.094-.598.207a55.653 55.653 0 0 1-58.496-1.812 54.768 54.768 0 0 1-5.836-4.606c-.093-.078-.136-.195-.238-.28a26.74 26.74 0 0 1-4.531-4.532c-.078-.094-.188-.129-.266-.223a52.476 52.476 0 0 1-4.648-5.898c-11.621-17.57-12.309-40.203-1.785-58.453.109-.196.109-.407.214-.606a8.75 8.75 0 0 0 .563-1.62 9.501 9.501 0 0 0-.102-4.763 7.396 7.396 0 0 0-.675-1.406 8.145 8.145 0 0 0-.965-1.469c-.145-.16-.196-.367-.348-.52l-7.543-7.542 12.074-12.066 7.832 7.84a8.377 8.377 0 0 0 2.5 1.656c.227.109.461.207.7.289.902.343 1.859.527 2.824.547a8.613 8.613 0 0 0 2.824-.547c.234-.078.46-.176.684-.282.222-.101.46-.144.683-.273a52.464 52.464 0 0 1 15.145-5.664c26.265-5.59 67.601-34.29 103.015-62.68.094-.074.207-.101.301-.176.094-.078.066-.113.11-.156 12.8-10.308 24.816-20.48 35.054-29.558 10.461-9.278 19.168-1
128977.399 24.746-23.04l25.285-25.199a37.654 37.654 0 0 1 7.004 4.352c.266.23.54.476.856.7l.12.093c.903.762 1.798 1.52 2.653 2.363.852.848 1.614 1.758 2.371 2.664l.07.086c.22.297.454.582.708.852l.136.195-.203-.195c.125.187.332.418.52.648a29.124 29.124 0 0 1 1.926 2.738 35.374 35.374 0 0 1 1.793 3.297c.043.094.093.18.144.282zm62.934 9.48a8.533 8.533 0 0 1-12.074 0l-3.106-3.112a8.678 8.678 0 0 1-2.312-7.45c0-.18 0-.367.039-.554.199-1.547.386-3.11.46-5.242v-.317c.044-1.441 0-2.875-.101-4.266v-.972a54.183 54.183 0 0 0-2.313-12.594c-.085-.3-.117-.539-.21-.855l-.051-.125c-.547-1.649-1.215-3.254-1.914-4.84-.086-.188-.153-.41-.23-.59v-.074c-.153-.325-.29-.66-.442-.985a23.57 23.57 0 0 0-1.41-2.695l-1.051-1.809c-.168-.289-.324-.59-.5-.855l-.137-.238c-.855-1.235-1.707-2.559-2.613-3.703l-.18-.211c-.418-.555-.851-1.094-1.277-1.633a50.048 50.048 0 0 0-3.688-4.137 58.006 58.006 0 0 0-5.453-4.719l-.094-.078c-.144-.117-.289-.246-.433-.36-.524-.398-1.094-.85-1.707-1.234-.617-.386-1.094-.753-1.649-1.109-.351-.23-.632-.43-1.03-.684l-1.708-.949a55.214 55.214 0 0 0-3.133-1.62c-.297-.138-.64-.356-.922-.477-.144-.059-.316-.11-.46-.18a51.338 51.338 0 0 0-4.829-1.895c-.308-.109-.554-.23-.855-.34l-.262-.07a55.73 55.73 0 0 0-7.554-1.75c-.434-.074-.852-.125-1.22-.176-1.425-.199-2.859-.343-4.265-.43a32.472 32.472 0 0 0-2.68-.124h-3.277c-1.469.066-2.937.23-4.394.426h-.13c-.214 0-.425 0-.648.043a8.738 8.738 0 0 1-7.449-2.32l-3.105-3.11a8.532 8.532 0 0 1 0-12.067l78.445-78.445 90.36 90.48zm114.644-114.651L392.41 29.648l12.074-12.078 90.446 90.465zm0 0" fill="#000000" opacity="1" data-original="#000000" class=""/><path d="M347.098 123.113c-11.664 11.664-11.66 30.575.004 42.235 11.66 11.664 30.57 11.664 42.234 0 11.664-11.66 11.664-30.57.004-42.235-11.68-11.64-30.574-11.636-42.25.008zm30.164 30.18c-4.996 5-13.102 4.996-18.098-.004-4.996-4.996-4.996-13.098 0-18.098 4.996-5 13.102-5 18.098-.004a12.796 12.796 0 0 1 0 18.106zM108.371 349.816c-14.996 14.996-14.996 39.313 0 54.309s39.309 14.996 54.305 0c14.996-14.996 14.996-39.313 0-54.309a38.141 38.141 0 0 0-27.153-11.351 38.134 38.134 0 0 0-27.152 11.351zm42.238 42.243c-8.449 8.039-21.722 8.039-30.172 0-8.332-8.332-8.328-21.84 0-30.168 8.333-8.332 21.84-8.332 30.168 0 8.333 8.328 8.333 21.836.004 30.168zm0 0" fill="#000000" opacity="1" data-original="#000000" class=""/></g></svg> 12898 </div> 12899 <div class="h-16 w-px lg:h-12 2xl:h-16 bg-gray-200"></div> 12900 12901 <div class="flex-1 text-left min-w-0"> 12902 <h4 class="font-bold text-xl lg:text-lg 2xl:text-xl text-zinc-700 truncate group-hover:text-black transition-colors"> 12903 Partie moteur </h4> 12904 <p class="text-sm text-zinc-600 line-clamp-2 lg:line-clamp-1 2xl:line-clamp-2">Pièces moteur et transmission</p> 12905 <div class="mt-2 inline-flex items-center text-primary-500 font-bold transition-all duration-300 group-hover:translate-x-1"> 12906 Voir la catégorie <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-4 w-4 transition-transform stroke-current stroke-2 fill-none group-hover:translate-x-1" width="16" height="16" role="img"> 12907 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 12908<title>chevron-right</title></svg> 12909 </div> 12910 </div> 12911 </div> 12912 </a> 12913 <a href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires.html" 12914 class="group relative block w-full h-full"> 12915 <!-- Visual Background Layer with individual shadow --> 12916 <div class="absolute inset-0 bg-white rounded-xl shadow-md border border-gray-100 transition-all duration-300 group-hover:border-primary-300 group-hover:shadow-lg group-hover:shadow-primary-100/50"></div> 12917 12918 <!-- Content (relative to sit on top, but no scale) --> 12919 <div class="relative flex items-center gap-3 w-full h-full p-6 lg:p-2 2xl:p-6"> 12920 <div class="flex h-16 w-16 lg:h-12 lg:w-12 2xl:h-16 2xl:w-16 shrink-0 items-center justify-center"> 12921 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" x="0" y="0" viewBox="0 0 682.667 682.667" style="enable-background:new 0 0 512 512" xml:space="preserve" class="h-12 w-12 lg:h-8 lg:w-8 2xl:h-12 2xl:w-12 stroke-primary-500" role="img"><g><defs><clipPath id="a_3" clipPathUnits="userSpaceOnUse"><path d="M0 512h512V0H0Z" fill="#000000" opacity="1" data-original="#000000"/></clipPath></defs><g clip-path="url(#a_3)" transform="matrix(1.33333 0 0 -1.33333 0 682.667)"><path d="M0 0v0c6.227 6.227 6.227 16.324 0 22.551l-150.34 150.34c-6.227 6.227-16.324 6.227-22.551 0-6.227-6.228-6.227-16.324 0-22.551L-22.551 0C-16.324-6.228-6.228-6.228 0 0Z" style="stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" transform="translate(460.98 326.939)" fill="none" stroke="#000000" stroke-width="15" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-dasharray="none" stroke-opacity="" data-original="#000000" class=""/><path d="M0 0v0c6.228 6.228 6.228 16.324 0 22.551l-150.339 150.34c-6.228 6.227-16.324 6.227-22.552 0-6.227-6.227-6.227-16.324 0-22.551L-22.551 0C-16.324-6.227-6.227-6.227 0 0Z" style="stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" transform="translate(254.263 120.222)" fill="none" stroke="#000000" stroke-width="15" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-dasharray="none" stroke-opacity="" data-original="#000000" class=""/><path d="m0 0 15.894 15.894-150.338 150.339-184.165-184.165 150.338-150.339L-21.188-21.188" style="stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" transform="translate(422.532 311.044)" fill="none" stroke="#000000" stroke-width="15" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-dasharray="none" stroke-opacity="" data-original="#000000" class=""/><path d="m0 0-28.972-28.972L-57.944 0l28.972 28.972Z" style="stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" transform="translate(471.943 396.471)" fill="none" stroke="#000000" stroke-width="15" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-dasharray="none" stroke-opacity="" data-original="#000000" class=""/><path d="m0 0-28.972-28.972L-57.944 0l28.972 28.972Z" style="stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" transform="translate(422.143 446.271)" fill="none" stroke="#000000" stroke-width="15" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-dasharray="none" stroke-opacity="" data-original="#000000" class=""/><path d="m0 0 20.719 20.719-42.617 42.608c-18.991 18.99-18.991 49.889 0 68.88l34.905 34.895 35.314-35.314-34.016-34.026 42.617-42.607c18.981-18.991 18.981-49.89 0-68.871L-9.151-79.79l-35.325 35.325 23.337 23.337" style="stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" transform="translate(84.533 87.29)" fill="none" stroke="#000000" stroke-width="15" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-dasharray="none" stroke-opacity="" data-original="#000000" class=""/></g></g></svg> 12922 </div> 12923 <div class="h-16 w-px lg:h-12 2xl:h-16 bg-gray-200"></div> 12924 12925 <div class="flex-1 text-left min-w-0"> 12926 <h4 class="font-bold text-xl lg:text-lg 2xl:text-xl text-zinc-700 truncate group-hover:text-black transition-colors"> 12927 Accessoires </h4> 12928 <p class="text-sm text-zinc-600 line-clamp-2 lg:line-clamp-1 2xl:line-clamp-2">Ãquipements et pièces diverses</p> 12929 <div class="mt-2 inline-flex items-center text-primary-500 font-bold transition-all duration-300 group-hover:translate-x-1"> 12930 Voir la catégorie <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-4 w-4 transition-transform stroke-current stroke-2 fill-none group-hover:translate-x-1" width="16" height="16" role="img"> 12931 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 12932<title>chevron-right</title></svg> 12933 </div> 12934 </div> 12935 </div> 12936 </a> 12937 12938 </div> 12939 </div> 12940 </div> 12941 </div> 12942 </div> 12943</div> 12944 </div> 12945</section> 12946 </div> 12947</div> 12948 12949 </div> 12950 </div> 12951 </section> 12952</div> 12953 12954<!-- Espace entre les sections --> 12955<div class="cmsp182-h-4"></div> 12956 12957<div class="content-wrapper cmsp182-mx-auto"> 12958 12959<section class="flex flex-col lg:flex-row items-center justify-center gap-4 font-bold text-white uppercase text-lg md:text-2xl"> 12960 <div class="flex flex-row gap-4 max-w-7xl w-full"> 12961 <a href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm/accessoires.html" class="relative h-[131px] w-1/2 transition-scale duration-200 hover:scale-[1.02] rounded"> 12962 <img src="https://media.esprit-ktm.com/unsafe/resize:fit:1600:131/plain/local://media/categories/espritktm/accessoires.jpg" 12963 srcset="https://media.esprit-ktm.com/unsafe/resize:fit:1600:131/plain/local://media/categories/espritktm/accessoires.jpg 131w, https://media.esprit-ktm.com/unsafe/resize:fit:1600:196/plain/local://media/categories/espritktm/accessoires.jpg 196w, https://media.esprit-ktm.com/unsafe/resize:fit:1600:262/plain/local://media/categories/espritktm/accessoires.jpg 262w, https://media.esprit-ktm.com/unsafe/resize:fit:1600:393/plain/local://media/categories/espritktm/accessoires.jpg 393w, https://media.esprit-ktm.com/unsafe/resize:fit:1600:524/plain/local://media/categories/espritktm/accessoires.jpg 524w" 12964 sizes="(max-width: 459px) 50vw, 25vw" 12965 alt="Accessoires" 12966 loading="lazy" 12967 decoding="async" 12968 fetchpriority="auto" 12969 class="w-full h-full object-cover rounded"> 12970 <p class="absolute right-2 bottom-4 text-right lg:text-center lg:w-full" style="text-shadow:0 0 4px #000;"> 12971 Accessoires </p> 12972 </a> 12973 <a href="https://www.esprit-ktm.com/vetements-ktm.html" class="relative h-[131px] w-1/2 transition-scale duration-200 hover:scale-[1.02] rounded"> 12974 <img src="https://media.esprit-ktm.com/unsafe/resize:fit:1600:131/plain/local://media/categories/espritktm/vetements.jpg" 12975 srcset="https://media.esprit-ktm.com/unsafe/resize:fit:1600:131/plain/local://media/categories/espritktm/vetements.jpg 131w, https://media.esprit-ktm.com/unsafe/resize:fit:1600:196/plain/local://media/categories/espritktm/vetements.jpg 196w, https://media.esprit-ktm.com/unsafe/resize:fit:1600:262/plain/local://media/categories/espritktm/vetements.jpg 262w, https://media.esprit-ktm.com/unsafe/resize:fit:1600:393/plain/local://media/categories/espritktm/vetements.jpg 393w, https://media.esprit-ktm.com/unsafe/resize:fit:1600:524/plain/local://media/categories/espritktm/vetements.jpg 524w" 12976 sizes="(max-width: 459px) 50vw, 25vw" 12977 alt="Vêtements" 12978 loading="lazy" 12979 decoding="async" 12980 fetchpriority="auto" 12981 class="w-full h-full object-cover rounded"> 12982 <p class="absolute bottom-4 left-2 text-left lg:text-center lg:w-full" style="text-shadow:0 0 4px #000;"> 12983 Vêtements </p> 12984 </a> 12985 </div><div class="flex flex-row gap-4 max-w-7xl w-full"> <a href="https://www.esprit-ktm.com/equipements-pilote.html" class="relative h-[131px] w-1/2 transition-scale duration-200 hover:scale-[1.02] rounded"> 12986 <img src="https://media.esprit-ktm.com/unsafe/resize:fit:1600:131/plain/local://media/categories/espritktm/equipements_pilote.jpg" 12987 srcset="https://media.esprit-ktm.com/unsafe/resize:fit:1600:131/plain/local://media/categories/espritktm/equipements_pilote.jpg 131w, https://media.esprit-ktm.com/unsafe/resize:fit:1600:196/plain/local://media/categories/espritktm/equipements_pilote.jpg 196w, https://media.esprit-ktm.com/unsafe/resize:fit:1600:262/plain/local://media/categories/espritktm/equipements_pilote.jpg 262w, https://media.esprit-ktm.com/unsafe/resize:fit:1600:393/plain/local://media/categories/espritktm/equipements_pilote.jpg 393w, https://media.esprit-ktm.com/unsafe/resize:fit:1600:524/plain/local://media/categories/espritktm/equipements_pilote.jpg 524w" 12988 sizes="(max-width: 459px) 50vw, 25vw" 12989 alt="Equipements <br class="md:hidden" />pilote" 12990 loading="lazy" 12991 decoding="async" 12992 fetchpriority="auto" 12993 class="w-full h-full object-cover rounded"> 12994 <p class="absolute right-2 bottom-4 text-right lg:text-center lg:w-full" style="text-shadow:0 0 4px #000;"> 12995 Equipements <br class="md:hidden" />pilote </p> 12996 </a> 12997 <a href="https://www.esprit-ktm.com/pieces-detachees-origines-ktm.html" class="relative h-[131px] w-1/2 transition-scale duration-200 hover:scale-[1.02] rounded"> 12998 <img src="https://media.esprit-ktm.com/unsafe/resize:fit:1600:131/plain/local://media/categories/espritktm/pieces_d_origine.jpg" 12999 srcset="https://media.esprit-ktm.com/unsafe/resize:fit:1600:131/plain/local://media/categories/espritktm/pieces_d_origine.jpg 131w, https://media.esprit-ktm.com/unsafe/resize:fit:1600:196/plain/local://media/categories/espritktm/pieces_d_origine.jpg 196w, https://media.esprit-ktm.com/unsafe/resize:fit:1600:262/plain/local://media/categories/espritktm/pieces_d_origine.jpg 262w, https://media.esprit-ktm.com/unsafe/resize:fit:1600:393/plain/local://media/categories/espritktm/pieces_d_origine.jpg 393w, https://media.esprit-ktm.com/unsafe/resize:fit:1600:524/plain/local://media/categories/espritktm/pieces_d_origine.jpg 524w" 13000 sizes="(ma
13000x-width: 459px) 50vw, 25vw" 13001 alt="Pièces <br class="md:hidden" />d'origine" 13002 loading="lazy" 13003 decoding="async" 13004 fetchpriority="auto" 13005 class="w-full h-full object-cover rounded"> 13006 <p class="absolute bottom-4 left-2 text-left lg:text-center lg:w-full" style="text-shadow:0 0 4px #000;"> 13007 Pièces <br class="md:hidden" />d'origine </p> 13008 </a> 13009 </div> 13010</section> 13011 13012</div> 13013 13014<!-- Espace entre les sections --> 13015<div class="cmsp182-h-4"></div> 13016 13017<section class="content-wrapper cmsp182-mx-auto"> 13018<!-- Section contact et avantages combinée --> 13019<section class="rounded-lg shadow-sm border border-zinc-200 overflow-hidden"> 13020 <!-- Informations de contact - Fond blanc --> 13021 <div class="bg-white py-5"> 13022 <div class="mx-auto max-w-screen-xl px-4 sm:px-6 lg:px-8"> 13023 <div class="grid grid-cols-1 md:grid-cols-3 gap-6 text-center md:text-left"> 13024 <div class="flex items-center justify-center gap-3"> 13025 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 stroke-primary-600 fill-none stroke-2 flex-shrink-0" role="img"> 13026 <path stroke-linecap="round" stroke-linejoin="round" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"/> 13027</svg> 13028 13029 <span class="font-semibold text-zinc-800 text-base">Du lundi au vendredi de 10H à 18H</span> 13030 </div> 13031 13032 <div class="flex items-center justify-center gap-3"> 13033 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 stroke-primary-600 fill-none stroke-2 flex-shrink-0" role="img"> 13034 <path stroke-linecap="round" stroke-linejoin="round" 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"/> 13035</svg> 13036 13037 <a href="tel:+33465030764" class="font-bold text-primary-600 text-base hover:text-primary-600 transition-colors duration-200"> 13038 +33 4 65 03 07 64 13039 </a> 13040 </div> 13041 13042 <div class="flex items-center justify-center gap-3"> 13043 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 stroke-primary-600 fill-none stroke-2 flex-shrink-0" role="img"> 13044 <path stroke-linecap="round" stroke-linejoin="round" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"/> 13045</svg> 13046 13047 <a href="mailto:[email protected]" class="font-semibold text-primary-600 text-base hover:text-primary-600 transition-colors duration-200"> 13048 [email protected] 13049 </a> 13050 </div> 13051 </div> 13052 </div> 13053 </div> 13054 13055 <!-- Bannière avec avantages - Fond rouge --> 13056 <div class="bg-primary-600 py-5"> 13057 <div class="mx-auto max-w-screen-xl px-4 sm:px-6 lg:px-8"> 13058 <div class="grid grid-cols-1 md:grid-cols-3 gap-6 text-white"> 13059 <div class="flex items-center justify-center gap-3"> 13060 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 stroke-white fill-none stroke-2 flex-shrink-0" role="img"> 13061 <path stroke-linecap="round" stroke-linejoin="round" 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"/> 13062</svg> 13063 13064 <p class="font-bold text-base tracking-wide">Paiement sécurisé</p> 13065 </div> 13066 <div class="flex items-center justify-center gap-3"> 13067 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 stroke-white fill-none stroke-2 flex-shrink-0" role="img">
13068 <path d="M9 17a2 2 0 11-4 0 2 2 0 014 0zM19 17a2 2 0 11-4 0 2 2 0 014 0z"/> 13069 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16V6a1 1 0 00-1-1H4a1 1 0 00-1 1v10a1 1 0 001 1h1m8-1a1 1 0 01-1 1H9m4-1V8a1 1 0 011-1h2.586a1 1 0 01.707.293l3.414 3.414a1 1 0 01.293.707V16a1 1 0 01-1 1h-1m-6-1a1 1 0 001 1h1M5 17a2 2 0 104 0m-4 0a2 2 0 114 0m6 0a2 2 0 104 0m-4 0a2 2 0 114 0"/> 13070</svg> 13071 13072 <div class="flex flex-col text-left leading-snug"> 13073 <p class="font-bold text-base tracking-wide">Livraison gratuite</p> 13074 <p class="text-sm font-medium opacity-95">à partir de 150⬠(en France métropolitaine)</p> 13075 </div> 13076 </div> 13077 <div class="flex items-center justify-center gap-3"> 13078 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 stroke-white fill-none stroke-2 flex-shrink-0" role="img"> 13079 <path stroke-linecap="round" stroke-linejoin="round" d="M9 12l2 2 4-4M7.835 4.697a3.42 3.42 0 001.946-.806 3.42 3.42 0 014.438 0 3.42 3.42 0 001.946.806 3.42 3.42 0 013.138 3.138 3.42 3.42 0 00.806 1.946 3.42 3.42 0 010 4.438 3.42 3.42 0 00-.806 1.946 3.42 3.42 0 01-3.138 3.138 3.42 3.42 0 00-1.946.806 3.42 3.42 0 01-4.438 0 3.42 3.42 0 00-1.946-.806 3.42 3.42 0 01-3.138-3.138 3.42 3.42 0 00-.806-1.946 3.42 3.42 0 010-4.438 3.42 3.42 0 00.806-1.946 3.42 3.42 0 013.138-3.138z"/> 13080</svg> 13081 13082 <p class="font-bold text-base tracking-wide">15 ans d'expertise</p> 13083 </div> 13084 </div> 13085 </div> 13086 </div> 13087</section> 13088 13089</section> 13090 13091<!-- Espace entre les sections --> 13092<div class="cmsp182-h-4"></div> 13093 13094<div class="content-wrapper cmsp182-mx-auto"> 13095 13096</div> 13097 13098<!-- Espace entre les sections --> 13099<div class="cmsp182-h-2"></div> 13100 13101<div class="content-wrapper cmsp182-mx-auto"> 13102<div x-data="avisGarantisWidget('https\u003A\u002F\u002Fapi.guaranteed\u002Dreviews.com\u002Fpublic\u002Fv3\u002Freviews\u002Fd9a1204f7ef580fdf9d8dbb238927f99\u002Fsite', 'https\u003A\u002F\u002Fwww.societe\u002Ddes\u002Davis\u002Dgarantis.fr\u002Fesprit\u002Dktm\u002F', 'https\u003A\u002F\u002Fwww.societe\u002Ddes\u002Davis\u002Dgarantis.fr\u002Fcgu\u002F', {"no_comment":"Aucun\\u0020commentaire","on":"Activ\\u00E9","at":"\\u00E0","order_date":"Date\\u0020de\\u0020commande"})" 13103 class="avis-garantis-widget font-sans"> 13104 13105 <!-- Loading State --> 13106 <div x-show="loading" class="flex justify-center items-center py-12"> 13107 <svg class="animate-spin w-8 h-8 text-blue-600" fill="none" viewBox="0 0 24 24"> 13108 <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle> 13109 <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path> 13110 </svg> 13111 </div> 13112 13113 <!-- Error State --> 13114 <div x-show="error && !loading" class="text-center text-red-600 py-8"> 13115 <p x-text="error"></p> 13116 </div> 13117 13118 <!-- Main Content Container --> 13119 <div x-show="!loading && !error" class="flex flex-col md:flex-row"> 13120 13121 <!-- Official Badge Card (Fixed on Desktop, Scrollable on Mobile) --> 13122 <div class="hidden md:flex flex-shrink-0 w-[360px] h-48 bg-white rounded-2xl shadow-sm border border-gray-100 gap-5 mt-5 mr-5 flex-row items-center relative justify-center"> 13123 <!-- Left: Logo --> 13124 <div class="flex-shrink-0 relative"> 13125 <div class="w-28 h-28 flex items-center justify-center relative"> 13126 <img src="https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/Ham_AvisGarantis/images/official_badge.svg" 13127 alt="Société des Avis Garantis" 13128 class="w-full h-full object-contain"> 13129 </div> 13130 </div> 13131 13132 <!-- Right: Info --> 13133 <div class="flex flex-col items-start justify-center h-full"> 13134 <!-- Rating --> 13135 <div class="flex items-baseline gap-1">
13136 <span class="text-4xl font-bold text-gray-900" x-text="stats.averageRating"></span> 13137 <span class="text-base text-gray-400 font-medium">/10</span> 13138 </div> 13139 13140 <!-- Stars --> 13141 <div class="flex gap-0.5 mb-1.5"> 13142 <template x-for="i in 5" :key="i"> 13143 <svg class="w-6 h-6 text-yellow-400 fill-current" viewBox="0 0 24 24"> 13144 <path d="M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"/> 13145 </svg> 13146 </template> 13147 </div> 13148 13149 <!-- Total Reviews Link --> 13150 <a :href="certificateUrl" target="_blank" class="text-blue-600 font-semibold text-sm hover:underline flex items-center gap-1 mb-1.5"> 13151 <span x-text="stats.totalReviews"></span> avis 13152 <svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"> 13153 <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 5l7 7m0 0l-7 7m7-7H3"/> 13154 </svg> 13155 </a> 13156 13157 <!-- Quality Control & Last Reviews --> 13158 <div class="flex flex-col justify-center gap-0.5 group/info cursor-help"> 13159 <div class="text-[11px] text-gray-400 flex items-center gap-1 relative"> 13160 Contrôle & qualité <span class="flex items-center text-gray-400"> 13161 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-3.5 h-3.5 stroke-gray-400 fill-none stroke-2" width="14" height="14" role="img"> 13162 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 13163<title>information-circle</title></svg> 13164 </span> 13165 13166 <!-- Tooltip --> 13167 <div class="absolute left-full top-1/2 -translate-y-1/2 ml-3 hidden group-hover/info:block z-[60] w-[400px]"> 13168 <div class="bg-white text-gray-700 text-xs p-4 rounded-lg shadow-xl border border-gray-100 relative"> 13169 <ul class="list-disc pl-4 space-y-1 mb-3"> 13170 <li>Les avis affichés sont les derniers avis positifs.</li> 13171 <li>Les avis déposés sont soumis à un contrôle.</li> 13172 <li>Les avis déposés sont classés par ordre chronologique décroissant.</li> 13173 <li>Les avis ont été déposés sans aucune contrepartie.</li> 13174 <li>Tous les avis sont publiés et conservés pendant une durée correspondant à la période d'exécution du contrat du commerçant.</li> 13175 </ul> 13176 <a :href="cguUrl" target="_blank" class="text-blue-500 hover:underline font-medium">En savoir plus</a> 13177 <!-- Arrow --> 13178 <div class="absolute right-full top-1/2 -translate-y-1/2 -mr-1 border-8 border-transparent border-r-white drop-shadow-sm"></div> 13179 </div> 13180 </div> 13181 </div> 13182 13183 <div class="text-[11px] text-gray-400 italic"> 13184 Nos derniers avis positifs </div> 13185 </div> 13186 </div> 13187 </div> 13188 13189 <!-- Reviews Scroll Area --> 13190 <div class="flex-grow relative min-w-0 w-full group/scroll fade-scroll-container" 13191 :class="{ 'show-fade-left': canScrollLeft, 'show-fade-right': canScrollRight }" 13192 @mouseenter="stopAutoScroll()" 13193 @mouseleave="startAutoScroll()"> 13194 <div x-ref="scrollContainer" 13195 class="flex-1 flex gap-6 overflow-x-auto scrollbar-hide snap-x snap-mandatory scroll-smooth p-5 items-center" 13196 @mouseenter="stopAutoScroll()" 13197 @mouseleave="startAutoScroll()" 13198 @scroll.debounce.50ms="checkScroll()"> 13199 <!-- Official Badge Card (Mobile Only) --> 13200 <div class="md:hidden flex-shrink-0 w-[280px] h-48 bg-white rounded-2xl shadow-sm border border-gray-100 p-5 flex flex-row items-center gap-5 relative snap-center"> 13201 <!-- Left: Logo --> 13202 <div class="flex-shrink-0 relative"> 13203 <div class="w-20 h-20 flex items-center justify-center relative"> 13204 <img src="https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/Ham_AvisGarantis/images/official_badge.svg" 13205 alt="Société des Avis Garantis" 13206 class="w-full h-full object-contain"> 13207 </div> 13208 </div> 13209 13210 <!-- Right: Info --> 13211 <div class="flex flex-col items-start justify-center h-full"> 13212 <!-- Rating --> 13213 <div class="flex items-baseline gap-1">
13214 <span class="text-3xl font-bold text-gray-900" x-text="stats.averageRating"></span> 13215 <span class="text-sm text-gray-400 font-medium">/10</span> 13216 </div> 13217 13218 <!-- Stars --> 13219 <div class="flex gap-0.5 mb-1"> 13220 <template x-for="i in 5" :key="i"> 13221 <svg class="w-5 h-5 text-yellow-400 fill-current" viewBox="0 0 24 24"> 13222 <path d="M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"/> 13223 </svg> 13224 </template> 13225 </div> 13226 13227 <!-- Total Reviews Link --> 13228 <a :href="certificateUrl" target="_blank" class="text-blue-600 font-semibold text-xs hover:underline flex items-center gap-1 mb-1"> 13229 <span x-text="stats.totalReviews"></span> avis <svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"> 13230 <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 5l7 7m0 0l-7 7m7-7H3"/> 13231 </svg> 13232 </a> 13233 13234 <!-- Quality Control & Last Reviews --> 13235 <div class="flex flex-col justify-center gap-0.5"> 13236 <div class="text-[10px] text-gray-400"> 13237 Contrôle & qualité </div> 13238 <div class="text-[10px] text-gray-400 italic"> 13239 Nos derniers avis positifs </div> 13240 </div> 13241 </div> 13242 </div> 13243 13244 13245 <!-- Review Cards --> 13246 <template x-for="(review, index) in reviews" :key="review.id || index"> 13247 <div @click="goToCertificate()" 13248 class="flex-shrink-0 w-[280px] h-48 bg-white rounded-2xl border border-gray-100 p-4 flex flex-col relative transform transition-transform duration-300 hover:scale-105 hover:z-10 cursor-pointer group/card snap-center" 13249 style="box-shadow: 0px 0px 7px 1px rgba(0 0 0 / 0.25);"> 13250 13251 <!-- Header --> 13252 <div class="flex justify-between items-start mb-3 relative z-20"> 13253 <!-- Medal Icon (Absolute Positioned) --> 13254 <div class="absolute -top-7 -left-6 z-30 pointer-events-none"> 13255 <div class="w-12 h-12 flex items-center justify-center"> 13256 <img src="https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/Ham_AvisGarantis/images/small_cocarde.svg" 13257 alt="Medal" 13258 class="w-full h-full object-contain"> 13259 </div> 13260 </div> 13261 13262 <!-- Spacer for Medal --> 13263 <div class="w-6"></div> 13264 13265 <!-- Stars --> 13266 <div class="flex gap-0.5 pt-1 pointer-events-none"> 13267 <template x-for="i in review.rating" :key="'star-' + i"> 13268 <svg class="w-5 h-5 text-yellow-400 fill-current" viewBox="0 0 24 24"> 13269 <path d="M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"/> 13270 </svg> 13271 </template> 13272 </div> 13273 13274 <!-- Info Icon with Tooltip --> 13275 <div class="relative group/tooltip z-50" @click.stop> 13276 <span class="flex items-center text-blue-600 cursor-help hover:text-blue-700 transition-colors"> 13277 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 stroke-current fill-none stroke-2" width="24" height="24" role="img"> 13278 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 13279<title>information-circle</title></svg> 13280 </span> 13281 <!-- Tooltip --> 13282 <div class="absolute top-full right-0 mt-2 hidden group-hover/tooltip:block z-[70] w-max max-w-[200px]"> 13283 <div class="bg-white text-gray-700 text-xs py-2 px-3 rounded-lg shadow-xl border border-gray-100 relative">
13284 <span x-text="formatDate(review.date)"></span> 13285 <!-- Arrow --> 13286 <div class="absolute bottom-full right-2 -mb-1 border-4 border-transparent border-b-white drop-shadow-sm"></div> 13287 </div> 13288 </div> 13289 </div> 13290 </div> 13291 13292 <!-- Review Content --> 13293 <div class="mb-4 relative z-10 flex-grow overflow-y-auto scrollbar-thin scrollbar-thumb-gray-200 scrollbar-track-transparent pr-1"> 13294 <p class="text-gray-600 italic text-[12px] font-normal" x-text="review.comment || 'Aucun commentaire'"></p> 13295 </div> 13296 13297 <!-- Footer --> 13298 <div class="flex items-center justify-between relative z-10 pt-3 border-t border-gray-50 pointer-events-none"> 13299 <div class="flex items-center gap-2"> 13300 <!-- Avatar --> 13301 <div class="w-8 h-8 rounded-full flex items-center justify-center text-white font-bold text-xs shadow-sm" 13302 :class="getAvatarColor(review)"> 13303 <span x-text="getInitials(review.author_name)"></span> 13304 </div> 13305 13306 <!-- User Info --> 13307 <div class="flex flex-col"> 13308 <span class="font-bold text-gray-900 text-xs" x-text="review.author_name"></span> 13309 <span class="text-[10px] text-gray-400" x-text="formatDate(review.date)"></span> 13310 </div> 13311 </div> 13312 13313 <!-- Verified Badge --> 13314 <div class="flex items-center gap-1"> 13315 <span class="flex items-center text-green-600"> 13316 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-5 h-5 stroke-green-600 fill-none stroke-2" width="24" height="24" role="img"> 13317 <path stroke-linecap="round" stroke-linejoin="round" d="M9 12l2 2 4-4M7.835 4.697a3.42 3.42 0 001.946-.806 3.42 3.42 0 014.438 0 3.42 3.42 0 001.946.806 3.42 3.42 0 013.138 3.138 3.42 3.42 0 00.806 1.946 3.42 3.42 0 010 4.438 3.42 3.42 0 00-.806 1.946 3.42 3.42 0 01-3.138 3.138 3.42 3.42 0 00-1.946.806 3.42 3.42 0 01-4.438 0 3.42 3.42 0 00-1.946-.806 3.42 3.42 0 01-3.138-3.138 3.42 3.42 0 00-.806-1.946 3.42 3.42 0 010-4.438 3.42 3.42 0 00.806-1.946 3.42 3.42 0 013.138-3.138z"/> 13318<title>badge-check</title></svg> 13319 </span> 13320 <div class="flex flex-col leading-none"> 13321 <span class="text-[9px] font-bold text-green-500 uppercase">Acheteur</span> 13322 <span class="text-[9px] font-bold text-green-500 uppercase">Authentifié</span> 13323 </div> 13324 </div> 13325 </div> 13326 </div> 13327 </template> 13328 </div> 13329 13330 <!-- Navigation Buttons (Visible on Hover of Scroll Area) --> 13331 <button @click="scrollLeft()" 13332 x-show="canScrollLeft" 13333 @mouseenter="stopAutoScroll()" 13334 @mouseleave="startAutoScroll()" 13335 class="absolute left-2 top-1/2 -translate-y-1/2 z-30 13336 bg-white/90 hover:bg-white border border-gray-200 13337 p-3 rounded-full shadow-lg hover:shadow-xl 13338 transition-all duration-300 ease-in-out 13339 hover:scale-110 focus:outline-none focus:ring-2 focus:ring-primary 13340 text-gray-700 hover:text-primary"> 13341 <span class="flex items-center text-primary-600"> 13342 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 stroke-2 stroke-primary-500 text-white transform transition-transform duration-300" width="24" height="24" role="img"> 13343 <path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"/> 13344<title>chevron-left</title></svg> 13345 </span> 13346 </button> 13347 <button @click="scrollRight()" 13348 x-show="canScrollRight" 13349 @mouseenter="stopAutoScroll()" 13350 @mouseleave="startAutoScroll()" 13351 class="absolute right-2 top-1/2 -translate-y-1/2 z-30 13352 bg-white/90 hover:bg-white border border-gray-200 13353 p-3 rounded-full shadow-lg hover:shadow-xl 13354 transition-all duration-300 ease-in-out 13355 hover:scale-110 focus:outline-none focus:ring-2 focus:ring-primary 13356 text-gray-700 hover:text-primary">
13357 <span class="flex items-center text-primary-600"> 13358 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 stroke-2 stroke-primary-500 text-white transform transition-transform duration-300" width="24" height="24" role="img"> 13359 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 13360<title>chevron-right</title></svg> 13361 </span> 13362 </button> 13363 </div> 13364 </div> 13365</div> 13366
13367<script> 13368function avisGarantisWidget(apiUrl, certificateUrl, cguUrl) { 13369 return { 13370 // Local UI state 13371 canScrollLeft: false, 13372 canScrollRight: false, 13373 certificateUrl: certificateUrl, 13374 cguUrl: cguUrl, 13375 autoScrollInterval: null, 13376 13377 init() { 13378 // Trigger fetch via store 13379 Alpine.store('avisGarantis').fetch(apiUrl); 13380 13381 // Watch for store changes to update scroll buttons 13382 this.$watch('$store.avisGarantis.fetched', (value) => { 13383 if (value) { 13384 this.$nextTick(() => { 13385 this.checkScroll(); 13386 this.startAutoScroll(); 13387 }); 13388 } 13389 }); 13390 }, 13391 13392 // Getters for store data to keep template clean 13393 get loading() { return Alpine.store('avisGarantis').loading; }, 13394 get error() { return Alpine.store('avisGarantis').error; }, 13395 get reviews() { return Alpine.store('avisGarantis').reviews; }, 13396 get stats() { return Alpine.store('avisGarantis').stats; }, 13397 13398 startAutoScroll() { 13399 // Only auto-scroll on desktop (md breakpoint is 768px) 13400 if (window.innerWidth < 768) return; 13401 13402 this.stopAutoScroll(); 13403 this.autoScrollInterval = setInterval(() => { 13404 if (this.canScrollRight) { 13405 this.scrollRight(); 13406 } 13407 }, 5000); // Scroll every 5 seconds 13408 }, 13409 13410 stopAutoScroll() { 13411 if (this.autoScrollInterval) { 13412 clearInterval(this.autoScrollInterval); 13413 this.autoScrollInterval = null; 13414 } 13415 }, 13416 13417 goToCertificate() { 13418 if (this.certificateUrl) { 13419 window.open(this.certificateUrl, '_blank'); 13420 } 13421 }, 13422 13423 formatDate(dateString) { 13424 if (!dateString) return ''; 13425 const date = new Date(dateString); 13426 const now = new Date(); 13427 const diffTime = Math.abs(now - date); 13428 const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)); 13429 13430 // Format: "Le dd/mm/yyyy à HHhMM" 13431 const day = String(date.getDate()).padStart(2, '0');
13432 const month = String(date.getMonth() + 1).padStart(2, '0'); 13433 const year = date.getFullYear(); 13434 const hours = String(date.getHours()).padStart(2, '0'); 13435 const minutes = String(date.getMinutes()).padStart(2, '0'); 13436 13437 return `Le ${day}/${month}/${year} Ã ${hours}h${minutes}`; 13438 }, 13439 13440 getInitials(name) { 13441 if (!name) return ''; 13442 return name.split(' ').map(n => n[0]).join('').substring(0, 2).toUpperCase(); 13443 }, 13444 13445 getAvatarColor(review) { 13446 const name = review.author_name || ''; 13447 let hash = 0; 13448 for (let i = 0; i < name.length; i++) { 13449 hash = name.charCodeAt(i) + ((hash << 5) - hash); 13450 } 13451 13452 const colors = [ 13453 'bg-gradient-to-r from-cyan-400 to-blue-500', 13454 'bg-gradient-to-r from-orange-400 via-pink-500 to-purple-600', 13455 'bg-gradient-to-r from-yellow-400 to-orange-500', 13456 'bg-gradient-to-r from-purple-400 to-pink-400', 13457 'bg-gradient-to-r from-red-400 to-yellow-400', 13458 'bg-gradient-to-r from-pink-200 to-rose-300', 13459 ]; 13460 13461 return colors[Math.abs(hash) % colors.length]; 13462 }, 13463 13464 scrollLeft() { 13465 const container = this.$refs.scrollContainer; 13466 if (!container) return; 13467 container.scrollBy({ left: -304, behavior: 'smooth' }); 13468 setTimeout(() => this.checkScroll(), 300); 13469 }, 13470 13471 scrollRight() { 13472 const container = this.$refs.scrollContainer; 13473 if (!container) return; 13474 container.scrollBy({ left: 304, behavior: 'smooth' }); 13475 setTimeout(() => this.checkScroll(), 300); 13476 }, 13477 13478 checkScroll() { 13479 const container = this.$refs.scrollContainer; 13480 if (!container) return; 13481 this.canScrollLeft = container.scrollLeft > 20; 13482 this.canScrollRight = container.scrollLeft < (container.scrollWidth - container.clientWidth - 20); 13483 } 13484 }; 13485} 13486</script>
13486 13487 13488<style> 13489.scrollbar-hide::-webkit-scrollbar { 13490 display: none; 13491} 13492.scrollbar-hide { 13493 -ms-overflow-style: none; 13494 scrollbar-width: none; 13495} 13496.line-clamp-3 { 13497 display: -webkit-box; 13498 -webkit-line-clamp: 3; 13499 line-clamp: 3; 13500 -webkit-box-orient: vertical; 13501 overflow: hidden; 13502} 13503 13504/* Fade effect for scroll area edges */ 13505.fade-scroll-container::before, 13506.fade-scroll-container::after { 13507 content: ''; 13508 position: absolute; 13509 top: 50%; 13510 transform: translateY(-50%); 13511 height: 192px; /* Match card height (h-48 = 12rem = 192px) */ 13512 width: 80px; /* Width of the fade effect */ 13513 z-index: 20; 13514 pointer-events: none; /* Allow clicks to pass through */ 13515 opacity: 0; 13516 transition: opacity 0.3s ease-in-out; 13517} 13518 13519/* Left fade */ 13520.fade-scroll-container::before { 13521 left: 0; 13522 background: linear-gradient(to right, rgba(255, 255, 255, 0.95), transparent); 13523} 13524 13525/* Show left fade only when scrolled */ 13526.fade-scroll-container.show-fade-left::before { 13527 opacity: 1; 13528} 13529 13530/* Right fade */ 13531.fade-scroll-container::after { 13532 right: 0; 13533 background: linear-gradient(to left, rgba(255, 255, 255, 0.95), transparent); 13534} 13535 13536/* Show right fade only when can scroll right */ 13537.fade-scroll-container.show-fade-right::after { 13538 opacity: 1; 13539} 13540</style> 13541 13542 13543</div> 13544 13545<div class="content-wrapper cmsp182-mx-auto"> 13546 13547 13548 <section 13549 x-data="{ 13550 currentIndex: 0, 13551 total: 0, 13552 visible: window.innerWidth < 768 ? 1 : 5, 13553 timer: null, 13554 track: null, 13555 interval: 3000, 13556 13557 init() { 13558 this.track = this.$refs.track; 13559 this.total = this.track.children.length; 13560 13561 this.updateVisible(); 13562 window.addEventListener('resize', () => this.updateVisible()); 13563 13564 if (this.total > this.visible) { 13565 for (let i = 0; i < this.visible; i++) { 13566 this.track.appendChild(this.track.children[i].cloneNode(true)); 13567 } 13568 } 13569 13570 if (this.total > this.visible) { 13571 this.start(); 13572 } 13573 }, 13574 13575 updateVisible() { 13576 const newVisible = window.innerWidth < 768 ? 1 : 5; 13577 if (newVisible !== this.visible) { 13578 this.visible = newVisible; 13579 this.currentIndex = 0; 13580 13581 while (this.track.children.length > this.total) { 13582 this.track.removeChild(this.track.lastChild); 13583 } 13584 13585 if (this.total > this.visible) { 13586 for (let i = 0; i < this.visible; i++) { 13587 this.track.appendChild(this.track.children[i].cloneNode(true)); 13588 } 13589 this.start(); 13590 } else { 13591 this.stop(); 13592 } 13593 } 13594 }, 13595 13596 start() { 13597 this.stop(); 13598 this.timer = setInterval(() => this.next(), this.interval); 13599 }, 13600 13601 stop() { 13602 if (this.timer) clearInterval(this.timer); 13603 }, 13604 13605 next() { 13606 if (this.total <= this.visible) return; 13607 13608 this.currentIndex++; 13609 13610 if (this.currentIndex === this.total) { 13611 setTimeout(() => { 13612 this.track.style.transition = 'none'; 13613 this.currentIndex = 0; 13614 requestAnimationFrame(() => { 13615 this.track.style.transition = ''; 13616 }); 13617 }, 700); 13618 } 13619 13620 if (this.total > this.visible) { 13621 this.start(); 13622 } 13623 }, 13624 13625 prev() { 13626 if (this.total <= this.visible) return; 13627 13628 if (this.currentIndex === 0) { 13629 this.track.style.transition = 'none'; 13630 this.currentIndex = this.total - 1; 13631 requestAnimationFrame(() => { 13632 this.track.style.transition = ''; 13633 this.currentIndex--; 13634 }); 13635 } else { 13636 this.currentIndex--; 13637 } 13638 13639 if (this.total > this.visible) { 13640 this.start(); 13641 } 13642 } 13643 }" 13644 class="relative overflow-hidden py-8 md:py-6 bg-white select-none border border-zinc-200 shadow-sm rounded-lg" 13645 aria-label="Our other websites" 13646 id="marquee-carousel"> 13647 13648 13649 <div class="flex items-center bg-white px-12"> 13650 <div aria-hidden="true" class="w-full border-t border-gray-300"></div> 13651 <div class="relative flex justify-center">
13652 <span class="whitespace-nowrap text-center bg-white px-3 text-sm md:text-2xl font-bold text-gray-900 uppercase">découvrez nos marques</span> 13653 </div> 13654 <div aria-hidden="true" class="w-full border-t border-gray-300"></div> 13655 </div> 13656 <div class="overflow-hidden relative pt-4"> 13657 <div class="flex will-change-transform transition-transform duration-700 ease-out" x-ref="track" 13658 :style="`transform: translateX(-${currentIndex * (100/visible)}%)`"> 13659 <a href="https://www.esprit-ktm.com/" 13660 class="flex-shrink-0 flex items-center justify-center py-2 px-4" 13661 style="height: 72px;" 13662 :style="`width: ${100/visible}%; min-width: ${100/visible}%;`" 13663 aria-label="Esprit KTM"> 13664 <picture> 13665 <!-- Version WebP depuis ton module --> 13666 <source srcset="https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/Ham_HyvaTheme/img/esprit_ktm.png" type="image/webp"> 13667 <!-- Fallback : logo du store --> 13668 <img src="https://www.esprit-ktm.com/media/logo/stores/9/ESPRIT_KTM_6_.png" 13669 alt="Esprit KTM" 13670 loading="lazy" 13671 fetchpriority="low" 13672 decoding="async" 13673 class="w-auto mx-auto transition-transform duration-300 hover:scale-105" 13674 style="max-height: 72px; object-fit: contain; max-width: 100%;" 13675 draggable="false"> 13676 </picture> 13677 </a> 13678 <a href="https://www.esprit-hva.com/" 13679 class="flex-shrink-0 flex items-center justify-center py-2 px-4" 13680 style="height: 72px;" 13681 :style="`width: ${100/visible}%; min-width: ${100/visible}%;`" 13682 aria-label="Esprit HVA"> 13683 <picture> 13684 <!-- Version WebP depuis ton module --> 13685 <source srcset="https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/Ham_HyvaTheme/img/esprit_hva.png" type="image/webp"> 13686 <!-- Fallback : logo du store --> 13687 <img src="https://www.esprit-ktm.com/media/logo/stores/1/ESPRIT_HUSQVARNA.png" 13688 alt="Esprit HVA" 13689 loading="lazy" 13690 fetchpriority="low" 13691 decoding="async" 13692 class="w-auto mx-auto transition-transform duration-300 hover:scale-105" 13693 style="max-height: 72px; object-fit: contain; max-width: 100%;" 13694 draggable="false"> 13695 </picture> 13696 </a> 13697 <a href="https://www.esprit-ducat.com/" 13698 class="flex-shrink-0 flex items-center justify-center py-2 px-4" 13699 style="height: 72px;" 13700 :style="`width: ${100/visible}%; min-width: ${100/visible}%;`" 13701 aria-label="Esprit DUCATI"> 13702 <picture> 13703 <!-- Version WebP depuis ton module --> 13704 <source srcset="https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/Ham_HyvaTheme/img/esprit_ducat.png" type="image/webp"> 13705 <!-- Fallback : logo du store --> 13706 <img src="https://www.esprit-ktm.com/media/logo/stores/2/ESPRIT_DUCATI.png" 13707 alt="Esprit DUCATI" 13708 loading="lazy" 13709 fetchpriority="low" 13710 decoding="async" 13711 class="w-auto mx-auto transition-transform duration-300 hover:scale-105" 13712 style="max-height: 72px; object-fit: contain; max-width: 100%;" 13713 draggable="false"> 13714 </picture> 13715 </a> 13716 <a href="https://www.esprit-moto-quad.com/" 13717 class="flex-shrink-0 flex items-center justify-center py-2 px-4" 13718 style="height: 72px;" 13719 :style="`width: ${100/visible}%; min-width: ${100/visible}%;`" 13720 aria-label="Esprit MOTOSHOP"> 13721 <picture> 13722 <!-- Version WebP depuis ton module --> 13723 <source srcset="https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/Ham_HyvaTheme/img/esprit_motoshop.png" t
13723ype="image/webp"> 13724 <!-- Fallback : logo du store --> 13725 <img src="https://www.esprit-ktm.com/media/logo/stores/3/ESPRIT_MQ_NOIR_COMPLET_petit-logo_1.png" 13726 alt="Esprit MOTOSHOP" 13727 loading="lazy" 13728 fetchpriority="low" 13729 decoding="async" 13730 class="w-auto mx-auto transition-transform duration-300 hover:scale-105" 13731 style="max-height: 72px; object-fit: contain; max-width: 100%;" 13732 draggable="false"> 13733 </picture> 13734 </a> 13735 <a href="https://www.esprit-canam.com/" 13736 class="flex-shrink-0 flex items-center justify-center py-2 px-4" 13737 style="height: 72px;" 13738 :style="`width: ${100/visible}%; min-width: ${100/visible}%;`" 13739 aria-label="Esprit CANAM"> 13740 <picture> 13741 <!-- Version WebP depuis ton module --> 13742 <source srcset="https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/Ham_HyvaTheme/img/esprit_canam.png" type="image/webp"> 13743 <!-- Fallback : logo du store --> 13744 <img src="https://www.esprit-ktm.com/media/logo/stores/4/ESPRIT_CAN-AM.png" 13745 alt="Esprit CANAM" 13746 loading="lazy" 13747 fetchpriority="low" 13748 decoding="async" 13749 class="w-auto mx-auto transition-transform duration-300 hover:scale-105" 13750 style="max-height: 72px; object-fit: contain; max-width: 100%;" 13751 draggable="false"> 13752 </picture> 13753 </a> 13754 <a href="https://www.esprit-kawasaki.com/" 13755 class="flex-shrink-0 flex items-center justify-center py-2 px-4" 13756 style="height: 72px;" 13757 :style="`width: ${100/visible}%; min-width: ${100/visible}%;`" 13758 aria-label="Esprit KAWASAKI"> 13759 <picture> 13760 <!-- Version WebP depuis ton module --> 13761 <source srcset="https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/Ham_HyvaTheme/img/esprit_kawasaki.png" type="image/webp"> 13762 <!-- Fallback : logo du store --> 13763 <img src="https://www.esprit-ktm.com/media/logo/stores/5/ESPRIT_KAWASAKI.png" 13764 alt="Esprit KAWASAKI" 13765 loading="lazy" 13766 fetchpriority="low" 13767 decoding="async" 13768 class="w-auto mx-auto transition-transform duration-300 hover:scale-105" 13769 style="max-height: 72px; object-fit: contain; max-width: 100%;" 13770 draggable="false"> 13771 </picture> 13772 </a> 13773 <a href="https://www.esprit-gasgas.com/" 13774 class="flex-shrink-0 flex items-center justify-center py-2 px-4" 13775 style="height: 72px;" 13776 :style="`width: ${100/visible}%; min-width: ${100/visible}%;`" 13777 aria-label="Esprit GASGAS"> 13778 <picture> 13779 <!-- Version WebP depuis ton module --> 13780 <source srcset="https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/Ham_HyvaTheme/img/esprit_gasgas.png" type="image/webp"> 13781 <!-- Fallback : logo du store --> 13782 <img src="https://www.esprit-ktm.com/media/logo/stores/6/ESPRIT_GASGAS.png" 13783 alt="Esprit GASGAS" 13784 loading="lazy" 13785 fetchpriority="low" 13786 decoding="async" 13787 class="w-auto mx-auto transition-transform duration-300 hover:scale-105" 13788 style="max-height: 72px; object-fit: contain; max-width: 100%;" 13789 draggable="false"> 13790 </picture> 13791 </a> 13792 <a href="https://www.esprit-polaris.com/" 13793 class="flex-shrink-0 flex items-center justify-center py-2 px-4" 13794 style="height: 72px;" 13795 :style="`width: ${100/visible}%; min-width: ${100/visible}%;`" 13796 aria-label="Esprit POLARIS"> 13797 <picture> 13798 <!-- Version WebP depuis ton module --> 13799 <source srcset="https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/Ham_HyvaTheme/img/esprit_polaris.png" type="image/webp"> 13800 <!-- Fallback : logo du store --> 13801 <img src="https://www.esprit-ktm.com/media/logo/stores/8/ESPRIT_POLARIS.png" 13802 alt="Esprit POLARIS" 13803 loading="lazy" 13804 fetchpriority="low" 13805 decoding="async" 13806 class="w-auto mx-auto transition-transform duration-300 hover:scale-105" 13807 style="max-height: 72px; object-fit: contain; max-width: 100%;" 13808 draggable="false"> 13809 </picture> 13810 </a> 13811 <a href="https://www.esprit-suzuki.com/" 13812 class="flex-shrink-0 flex items-center justify-center py-2 px-4" 13813 style="height: 72px;" 13814 :style="`width: ${100/visible}%; min-width: ${100/visible}%;`" 13815 aria-label="Esprit SUZUKI"> 13816 <picture> 13817 <!-- Version WebP depuis ton module --> 13818 <source srcset="https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/Ham_HyvaTheme/img/esprit_suzuki.png" type="image/webp"> 13819 <!-- Fallback : logo du store --> 13820 <img src="https://www.esprit-ktm.com/media/logo/stores/10/ESPRIT_SUZUKI.png" 13821 alt="Esprit SUZUKI" 13822 loading="lazy" 13823 fetchpriority="low" 13824 decoding="async" 13825 class="w-auto mx-auto transition-transform duration-300 hover:scale-105" 13826 style="max-height: 72px; object-fit: contain; max-width: 100%;" 13827 draggable="false"> 13828 </picture> 13829 </a> 13830 <a href="https://www.esprit-beta.com/" 13831 class="flex-shrink-0 flex items-center justify-center py-2 px-4" 13832 style="height: 72px;" 13833 :style="`width: ${100/visible}%; min-width: ${100/visible}%;`" 13834 aria-label="Esprit BETA"> 13835 <picture> 13836 <!-- Version WebP depuis ton module --> 13837 <source srcset="https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/Ham_HyvaTheme/img/esprit_beta.png" type="image/webp"> 13838 <!-- Fallback : logo du store --> 13839 <img src="https://www.esprit-ktm.com/media/logo/stores/11/ESPRIT_BETA.png" 13840 alt="Esprit BETA" 13841 loading="lazy" 13842 fetchpriority="low" 13843 decoding="async" 13844 class="w-auto mx-auto transition-transform duration-300 hover:scale-105" 13845 style="max-height: 72px; object-fit: contain; max-width: 100%;" 13846 draggable="false"> 13847 </picture> 13848 </a> 13849 <a href="https://www.esprit-triumph.com/" 13850 class="flex-shrink-0 flex items-center justify-center py-2 px-4" 13851 style="height: 72px;" 13852 :style="`width: ${100/visible}%; min-width: ${100/visible}%;`" 13853 aria-label="Esprit TRIUMPH"> 13854 <picture> 13855 <!-- Version WebP depuis ton module --> 13856 <source srcset="https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/Ham_HyvaTheme/img/esprit_triumph.png" t
13856ype="image/webp"> 13857 <!-- Fallback : logo du store --> 13858 <img src="https://www.esprit-ktm.com/media/logo/stores/13/ESPRIT_TRIUMPH.png" 13859 alt="Esprit TRIUMPH" 13860 loading="lazy" 13861 fetchpriority="low" 13862 decoding="async" 13863 class="w-auto mx-auto transition-transform duration-300 hover:scale-105" 13864 style="max-height: 72px; object-fit: contain; max-width: 100%;" 13865 draggable="false"> 13866 </picture> 13867 </a> 13868 <a href="https://www.esprit-cfmoto.com/" 13869 class="flex-shrink-0 flex items-center justify-center py-2 px-4" 13870 style="height: 72px;" 13871 :style="`width: ${100/visible}%; min-width: ${100/visible}%;`" 13872 aria-label="Esprit CFMOTO"> 13873 <picture> 13874 <!-- Version WebP depuis ton module --> 13875 <source srcset="https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/Ham_HyvaTheme/img/esprit_cfmoto.png" type="image/webp"> 13876 <!-- Fallback : logo du store --> 13877 <img src="https://www.esprit-ktm.com/media/logo/stores/14/ESPRIT_CFMOTO.png" 13878 alt="Esprit CFMOTO" 13879 loading="lazy" 13880 fetchpriority="low" 13881 decoding="async" 13882 class="w-auto mx-auto transition-transform duration-300 hover:scale-105" 13883 style="max-height: 72px; object-fit: contain; max-width: 100%;" 13884 draggable="false"> 13885 </picture> 13886 </a> 13887 </div> 13888 <!-- Btn Actions --> 13889 <template x-if="total > visible"> 13890 <button @click="prev(); $event.stopPropagation()" 13891 class="absolute left-2 top-1/2 -translate-y-1/2 z-10 13892 bg-white/90 hover:bg-white border border-gray-200 13893 p-3 rounded-full shadow-lg hover:shadow-xl 13894 transition-all duration-300 ease-in-out 13895 hover:scale-110 focus:outline-none focus:ring-2 focus:ring-primary 13896 text-gray-700 hover:text-primary"> 13897 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 stroke-2 stroke-primary-500 text-white transform transition-transform duration-300" width="24" height="24" role="img"> 13898 <path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"/> 13899<title>chevron-left</title></svg> 13900 </button> 13901 </template> 13902 <template x-if="total > visible"> 13903 <button @click="next(); $event.stopPropagation()" 13904 class="absolute right-2 top-1/2 -translate-y-1/2 z-10 13905 bg-white/90 hover:bg-white border border-gray-200 13906 p-3 rounded-full shadow-lg hover:shadow-xl 13907 transition-all duration-300 ease-in-out 13908 hover:scale-110 focus:outline-none focus:ring-2 focus:ring-primary 13909 text-gray-700 hover:text-primary"> 13910 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 stroke-2 stroke-primary-500 text-white transform transition-transform duration-300" width="24" height="24" role="img"> 13911 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 13912<title>chevron-right</title></svg> 13913 </button> 13914 </template> 13915 </div> 13916</section> 13917 13918</div> 13919 13920<!-- Espace entre les sections --> 13921<div class="cmsp182-h-4"></div> 13922 </div> 13923</article>
13923<script nonce="MTg0bWZqNjNrOGxpbGx3d3ZmN2N6NWs4cGIzM2h1MG0="> 13924 function hasWebP() { 13925 var elem = document.createElement('canvas'); 13926 13927 if (!!(elem.getContext && elem.getContext('2d'))) { 13928 return elem.toDataURL('image/webp').indexOf('data:image/webp') === 0; 13929 } 13930 return false; 13931 } 13932 13933 if (hasWebP()) { 13934 document.body.classList.add("webp"); 13935 } else { 13936 document.body.classList.add("no-webp"); 13937 }</script>
13937<script type="application/ld+json">{"@context":"https://schema.org/","@type":"LocalBusiness","@id":"https://www.esprit-ktm.com/","name":"Esprit KTM FR","image":"https://www.esprit-ktm.com/media/logo/stores/9/logo-ktm.png","address":{"@type":"PostalAddress","streetAddress":"2 all\u00e9e du torrent","addressLocality":"Gap","postalCode":"05000","addressCountry":"FR"},"geo":{"@type":"GeoCoordinates","latitude":44.566946,"longitude":6.097143},"url":"https://www.esprit-ktm.com/","telephone":"+33465030764","priceRange":"\u20ac\u20ac","openingHoursSpecification":[{"@type":"OpeningHoursSpecification","dayOfWeek":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"opens":"09:00","closes":"19:00"}]}</script>
13937<script type="application/ld+json">{"@context":"https://schema.org/","@type":"Organization","@id":"https://www.esprit-ktm.com/#organization","url":"https://www.esprit-ktm.com/","name":"Esprit KTM FR","logo":"https://www.esprit-ktm.com/media/logo/stores/9/logo-ktm.png","aggregateRating":{"@type":"AggregateRating","ratingValue":4.86,"reviewCount":6173,"bestRating":5}}</script>
13937</div></div></div> 13938<!-- end-preview-content --> 13939</div></main> 13940<!-- end-main-content --> 13941 13942
13942<script async defer type="text/javascript" src="https://cdn.cartsguru.io/9019bd95-cf63-49a7-ab40-f45d07c0ae4f/c.js"></script>
13942 13943 13944 <div x-data="cartsguruTracker()" x-init="init()" style="display:none;"> 13945 <span id="account-id" x-text="accountId"></span> 13946 <span id="tracker" x-text="cartBase64"></span> 13947 <span id="order" x-text="order"></span> 13948 </div> 13949 13950 13951
13951<script> function cartsguruTracker() { 13952 return { 13953 accountId: '', 13954 cart: {}, 13955 cartBase64: '', 13956 order: '', 13957 13958 init() { 13959 window.cgTrackParams = window.cgTrackParams || {}; 13960 13961 window.addEventListener('private-content-loaded', (event) => { 13962 this.receiveCustomerData(event.detail.data); 13963 }); 13964 }, 13965 13966 receiveCustomerData(data) { 13967 if (!data || !data['cartsguru-tracker']) return; 13968 13969 const tracker = data['cartsguru-tracker']; 13970 13971 this.accountId = tracker.accountId || ''; 13972 this.order = tracker.order || ''; 13973 13974 this.cartBase64 = tracker.cart || ''; 13975 13976 try { 13977 if (tracker.cart && typeof tracker.cart === 'string' && tracker.cart.length > 0) { 13978 const decoded = JSON.parse(atob(tracker.cart)); 13979 this.cartItems = decoded.items || []; 13980 this.isCartEmpty = this.cartItems.length === 0; 13981 this.cart = decoded; 13982 } else { 13983 this.cartItems = []; 13984 this.isCartEmpty = true; 13985 this.cart = {}; 13986 } 13987 } catch (e) { 13988 this.cartItems = []; 13989 this.isCartEmpty = true; 13990 this.cart = {}; 13991 console.error('Error decoding cart data for processing:', e, 'Original cart value:', tracker.cart); 13992 } 13993 13994 window.cgTrackParams.accountId = this.accountId; 13995 window.cgTrackParams.cart = JSON.stringify(this.cart); 13996 window.cgTrackParams.order = this.order; 13997 } 13998 } 13999 }</script>
vendor: 1 bytes, line 13999
13999
14000<script> 14001 document.addEventListener('alpine:init', () => { 14002 Alpine.store('avisGarantis', { 14003 loading: false, 14004 error: null, 14005 stats: { 14006 averageRating: '0.0', 14007 totalReviews: 0 14008 }, 14009 reviews: [], 14010 fetched: false, 14011 14012 async fetch(apiUrl) { 14013 if (this.fetched || this.loading) return; 14014 14015 this.loading = true; 14016 try { 14017 const response = await fetch(apiUrl); 14018 if (!response.ok) throw new Error('Failed to fetch reviews'); 14019 14020 const data = await response.json(); 14021 14022 if (data.ratings) { 14023 // Multiply average rating by 2 as requested 14024 this.stats.averageRating = ((data.ratings.average || 0) * 2).toFixed(1); 14025 this.stats.totalReviews = data.ratings.total || 0; 14026 } 14027 14028 // Process reviews for the main widget if needed 14029 if (data.reviews) { 14030 const allReviews = (data.reviews || []).map(review => ({ 14031 id: review.id, 14032 rating: parseInt(review.r), 14033 comment: review.txt, 14034 date: review.date, 14035 order_date: review.odate, 14036 author_name: review.c, 14037 verified: true 14038 })); 14039 14040 // Group and sort logic can be done here or in the component 14041 // For now, just storing raw processed reviews might be enough, 14042 // but let's do the filtering here to be efficient and share it. 14043 14044 const reviewsByRating = { 5: [], 4: [], 3: [], 2: [], 1: [] }; 14045 allReviews.forEach(review => { 14046 if (reviewsByRating[review.rating]) { 14047 reviewsByRating[review.rating].push(review); 14048 } 14049 }); 14050 14051 Object.keys(reviewsByRating).forEach(rating => { 14052 reviewsByRating[rating].sort((a, b) => new Date(b.date) - new Date(a.date)); 14053 }); 14054 14055 let filteredReviews = []; 14056 for (let i = 5; i >= 1; i--) { 14057 if (filteredReviews.length >= 15) break; 14058 const needed = 15 - filteredReviews.length; 14059 filteredReviews = filteredReviews.concat(reviewsByRating[i].slice(0, needed)); 14060 } 14061 14062 this.reviews = filteredReviews; 14063 } 14064 14065 this.fetched = true; 14066 } catch (err) { 14067 this.error = 'Unable to load reviews'; 14068 console.error('Avis Garantis API Error:', err); 14069 } finally { 14070 this.loading = false; 14071 } 14072 } 14073 }); 14074 }); 14075</script>
14075 14076 14077<div x-data="{ 14078 init() { 14079 Alpine.store('avisGarantis').fetch('https\u003A\u002F\u002Fapi.guaranteed\u002Dreviews.com\u002Fpublic\u002Fv3\u002Freviews\u002Fd9a1204f7ef580fdf9d8dbb238927f99\u002Fsite'); 14080 } 14081 }" 14082 class="fixed hidden md:block z-[1000] font-sans" 14083 style="bottom: 4px; left: 6px;"> 14084 14085 <a href="https://www.societe-des-avis-garantis.fr/esprit-ktm/" target="_blank" 14086 class="block w-[125px] relative hover:scale-105 transition-transform duration-200 origin-bottom-left"> 14087 14088 <!-- Background Image --> 14089 <picture class="w-full h-auto block"><source type="image/webp" srcset="https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/Ham_AvisGarantis/images/cocarde.webp"><img src="https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/Ham_AvisGarantis/images/cocarde.png" alt="Avis Garantis" class="w-full h-auto block" loading="lazy"></picture> 14090 14091 <!-- Content Overlay --> 14092 <div class="absolute inset-0 flex flex-col items-center text-white pt-[53px]"> 14093 <!-- Rating --> 14094 <div class="text-white font-bold text-[10.5px] leading-[10.5px]"> 14095 <span class="text-[22px] font-bold tracking-[-1.5px]" x-text="$store.avisGarantis.stats.averageRating"></span>/10 14096 </div> 14097 14098 <!-- Reviews Count --> 14099 <div class="text-white text-[9px] letter-spacing-[0px] -mt-1"> 14100 <span x-text="$store.avisGarantis.stats.totalReviews"></span> avis </div> 14101 </div> 14102 </a> 14103</div> 14104<div data-mage-init='{"Mirasvit_Related\/js\/track245":{"callbackUrl":"https:\/\/www.esprit-ktm.com\/mstRelated\/analytics\/track\/","cookieName":"mst_related_session_id"}}'></div><!-- Inject satoshi custom js logic -->
14105<script type="module" 14106 src="https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/assets/app.min.js" 14107 defer 14108 crossorigin 14109></script>
14109 14110<!-- Inject alpinejs using Hyvä's bundled version instead of CDN -->
14111<script type="module" 14112 src="https://www.esprit-ktm.com/static/version1791195787/frontend/Ham/hyva/fr_FR/Hyva_Theme/js/alpine3.min.js" 14113 defer 14114 crossorigin 14115></script>
vendor: 1 bytes, line 14115
14115
14116<script> 14117 if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) { 14118 console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script"); 14119 } 14120 14121 (function( hyva, undefined ) { 14122 14123 hyva.initFormKey = () => { 14124 if (typeof hyva.getFormKey !== 'function') return; 14125 14126 const formKey = hyva.getFormKey(); 14127 if (!formKey) return; 14128 14129 document.querySelectorAll('input[name="form_key"]').forEach((input) => { 14130 input.value = formKey; 14131 }); 14132 } 14133 14134 hyva.initMessages = () => { 14135 try { 14136 const messages = hyva.getCookie('mage-messages'); 14137 window.mageMessages = messages ? JSON.parse(decodeURIComponent(messages).replace(/\+/g, ' ')) : []; 14138 14139 if (window.mageMessages.length && typeof window.dispatchMessages !== 'undefined') { 14140 window.dispatchMessages(window.mageMessages); 14141 } 14142 14143 // empty `mage-messages` cookie 14144 const skipSetDomain = true; 14145 hyva.setCookie('mage-messages','', -1, skipSetDomain); 14146 14147 } catch (error) { 14148 console.warn('Error parsing Cookie Messages:', error); 14149 } 14150 } 14151 14152 window.addEventListener('DOMContentLoaded', hyva.initFormKey); 14153 14154 window.addEventListener('pageshow', (event) => { 14155 if (event.persisted) { 14156 hyva.initFormKey(); 14157 } 14158 }); 14159 14160 hyva.alpineInitialized(hyva.initMessages) 14161 }( window.hyva = window.hyva || {} )); 14162 //# sourceURL=hyva-cookies.js 14163</script>
vendor: 1 bytes, line 14163
14163
14164<script> 14165 (() => { 14166 const private_content_key = 'mage-cache-storage'; 14167 const private_content_expire_key = 'mage-cache-timeout'; 14168 const private_content_version_key = 'private_content_version'; 14169 const section_data_ids_key = 'section_data_ids'; 14170 const mage_cache_session_id_key = 'mage-cache-sessid'; 14171 const last_visited_store_key = 'last_visited_store'; 14172 14173 const ttl = 3600; 14174 14175 if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) { 14176 console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script"); 14177 } 14178 14179 function loadSectionData () { 14180 const browserStorage = hyva.getBrowserStorage(); 14181 if (!browserStorage) { 14182 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 14183 [{ 14184 type: "warning", 14185 text: "Please enable LocalStorage in your browser." 14186 }] 14187 ); 14188 return; 14189 } 14190 try { 14191 let isInvalid = false; 14192 14193 if (hyva.getCookie(last_visited_store_key) !== CURRENT_STORE_CODE) { 14194 isInvalid = true; 14195 } 14196 hyva.setCookie(last_visited_store_key, CURRENT_STORE_CODE, false, false); 14197 14198 if (!hyva.getCookie(mage_cache_session_id_key)) { 14199 isInvalid = true; 14200 browserStorage.removeItem(private_content_key); 14201 const skipSetDomain = true; 14202 const days = false; 14203 hyva.setCookie(mage_cache_session_id_key, true, days, skipSetDomain) 14204 } 14205 14206 const cookieVersion = hyva.getCookie(private_content_version_key); 14207 const storageVersion = browserStorage.getItem(private_content_version_key); 14208 14209 if (cookieVersion && !storageVersion || cookieVersion !== storageVersion) { 14210 isInvalid = true; 14211 } 14212 14213 const privateContentExpires = browserStorage.getItem(private_content_expire_key); 14214 if (privateContentExpires && new Date(privateContentExpires) < new Date()) { 14215 browserStorage.removeItem(private_content_key); 14216 } 14217 14218 if (isInvalid && cookieVersion) { 14219 fetchPrivateContent([]); 14220 } else if (cookieVersion && storageVersion && cookieVersion === storageVersion) { 14221 const privateContent = JSON.parse(browserStorage.getItem(private_content_key)); 14222 if ( 14223 privateContent && 14224 privateContentExpires && 14225 privateContent.cart && 14226 privateContent.customer 14227 ) { 14228 dispatchPrivateContent(privateContent); 14229 } else { 14230 fetchPrivateContent([]); 14231 } 14232 } else { 14233 if (document.getElementById('default-section-data')) { 14234 const privateContent = JSON.parse(document.getElementById('default-section-data').textContent.trim()); 14235 dispatchPrivateContent(privateContent); 14236 } else { 14237 dispatchPrivateContent({}); 14238 } 14239 } 14240 14241 } catch (error) { 14242 console.warn('Error retrieving Private Content:', error); 14243 } 14244 } 14245 14246 hyva.alpineInitialized(loadSectionData) 14247 window.addEventListener('reload-customer-section-data', loadSectionData); 14248 14249 window.processSectionDataBeforeDispatch = window.processSectionDataBeforeDispatch || (data => data); 14250 14251 function dispatchPrivateContent(data) { 14252 14253 const privateContentEvent = new CustomEvent("private-content-loaded", { 14254 detail: { 14255 data: window.processSectionDataBeforeDispatch(data) 14256 } 14257 }); 14258 window.dispatchEvent(privateContentEvent); 14259 } 14260 14261 function fetchPrivateContent(sections) { 14262 fetch(`${BASE_URL}customer/section/load/?sections=${encodeURIComponent(sections.join(','))}`, { 14263 method: 'GET', 14264 headers: { 14265 'Content-Type': 'application/json', 14266 'X-Requested-With': 'XMLHttpRequest' 14267 } 14268 }) 14269 .then(response => response.ok && response.json()) 14270 .then( 14271 data => { 14272 if (data) { 14273 try { 14274 const browserStorage = hyva.getBrowserStorage(); 14275 14276 // merge new data preserving non-invalidated sections 14277 const oldSectionData = JSON.parse(browserStorage.getItem(private_content_key) || '{}') || {}; 14278 14279 if ((! data.cart || ! data.cart.cartId) && oldSectionData['checkout-data']) { 14280 delete oldSectionData['checkout-data']; 14281 } 14282 const newSectionData = Object.assign(oldSectionData, data); 14283 14284 dispatchPrivateContent(newSectionData); 14285 14286 // don't persist messages, they've been dispatched already 14287 if (newSectionData.messages && newSectionData.messages.messages ) { 14288 newSectionData.messages.messages = []; 14289 } 14290 14291 browserStorage.setItem(private_content_key, JSON.stringify(newSectionData)); 14292 14293 const expiresAt = new Date(Date.now() + (ttl * 1000)).toISOString(); 14294 browserStorage.setItem(private_content_expire_key, expiresAt); 14295 14296 const newCookieVersion = hyva.getCookie(private_content_version_key); 14297 browserStorage.setItem(private_content_version_key, newCookieVersion); 14298 14299 // We don't need the section_data_ids in Hyvä, but we store them for compatibility 14300 // with Luma Fallback. Otherwise, not all sections are loaded in Luma Checkout 14301 hyva.setCookie( 14302 section_data_ids_key, 14303 JSON.stringify( 14304 Object.keys(data).reduce((sectionDataIds, sectionKey) => { 14305 sectionDataIds[sectionKey] = data[sectionKey]['data_id']; 14306 return sectionDataIds; 14307 }, {}) 14308 ), 14309 false, 14310 true 14311 ); 14312 } catch (error) { 14313 console.warn("Couldn't store privateContent", error); 14314 } 14315 } 14316 } 14317 ) 14318 .catch(error => { 14319 console.warn("Couldn't fetch privateContent", error); 14320 }); 14321 } 14322 })(); 14323 //# sourceURL=hyva-private-content.js 14324</script>
vendor: 1 bytes, line 14324
14324
14325<script> 14326 (() => { 14327 document.addEventListener('submit', event => event.target.action = event.target.action.replace('%25uenc%25', hyva.getUenc())); 14328 })() 14329</script>
vendor: 1 bytes, line 14329
14329
14330<script> 14331 (events => { 14332 const dispatchUserInteractionEvent = () => { 14333 events.forEach(type => window.removeEventListener(type, dispatchUserInteractionEvent)) 14334 window.dispatchEvent(new Event('init-external-scripts')) 14335 }; 14336 events.forEach(type => window.addEventListener(type, dispatchUserInteractionEvent, {once: true, passive: true})) 14337 })(['touchstart', 'mousemove', 'wheel', 'scroll', 'keydown']); 14338 //# sourceURL=hyva-init-external-scripts.js 14339</script>
vendor: 1 bytes, line 14339
14339
14340<script> 14341 function initPriceBox() 14342 { 14343 return { 14344 updatePrice(priceData) { 14345 const root = this.$root; 14346 14347 const regularPriceLabel = root.querySelector('.normal-price .price-label'); 14348 const finalPriceElement = root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 14349 const basePriceElement = root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 14350 14351 const oldPriceWrapper = root.querySelector('.old-price'); 14352 const oldPriceElement = oldPriceWrapper 14353 && (oldPriceWrapper.querySelector('[data-price-type=oldPrice].price-wrapper .price') 14354 || oldPriceWrapper.querySelector('.price')); 14355 14356 const hasOldPrice = priceData.oldPrice && typeof priceData.oldPrice.amount !== 'undefined'; 14357 const hasDiscount = hasOldPrice && priceData.finalPrice.amount < priceData.oldPrice.amount; 14358 14359 // Toggle the "As low as" label depending on whether a discount applies. 14360 if (regularPriceLabel) { 14361 regularPriceLabel.classList.toggle('hidden', hasDiscount); 14362 } 14363 14364 finalPriceElement && (finalPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount)); 14365 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 14366 14367 // Reveal and update the struck-through base price for the selected variant, 14368 // or hide it when the selected variant is not discounted. 14369 if (oldPriceWrapper) { 14370 if (hasDiscount) { 14371 oldPriceElement && (oldPriceElement.innerText = hyva.formatPrice(priceData.oldPrice.amount)); 14372 oldPriceWrapper.style.display = ''; 14373 } else { 14374 oldPriceWrapper.style.display = 'none'; 14375 } 14376 } 14377 } 14378 } 14379 } 14380</script>
vendor: 1 bytes, line 14380
14380
14381<script> 14382 function initConfigurableOptions(productId, optionConfig) { 14383 14384 function findPathParam(key) { 14385 const baseUrl = (BASE_URL.substring(0, 2) === '//' ? 'http:' : '') + BASE_URL; 14386 const baseUrlParts = (new URL(baseUrl)).pathname.replace(/\/$/, '').split('/'); 14387 const pathParts = window.location.pathname.split('/').slice(baseUrlParts.length + 3); 14388 for (let i = 0; i < pathParts.length; i += 2) { 14389 if (pathParts[i] === key && pathParts.length > i) { 14390 return pathParts[i + 1]; 14391 } 14392 } 14393 } 14394 14395 return { 14396 optionConfig, 14397 productId, 14398 itemId: (new URLSearchParams(window.location.search)).get('id') || findPathParam('id'), 14399 allowedAttributeOptions: [], 14400 selectedValues: [], 14401 init() { 14402 this.findAllowedAttributeOptions(); 14403 this.$nextTick(() => { 14404 if (typeof this.optionConfig.defaultValues === 'object') { 14405 for (const [attributeId, value] of Object.entries(this.optionConfig.defaultValues)) { 14406 this.changeOption(attributeId, value + ''); 14407 } 14408 } 14409 this.preselectQuerystringItems(); 14410 this.preselectLocationHashItems(); 14411 }); 14412 }, 14413 productIndex: 0, 14414 productIndexForPrice: 0, 14415 optionIsActive(attributeId, optionId) { 14416 return !!this.getAllowedAttributeOptions(attributeId).find( 14417 option => option.id === optionId 14418 ) 14419 }, 14420 optionIsEnabled(attributeId, optionId) { 14421 for (const productId in this.optionConfig.index) { 14422 if (this.optionConfig.index[productId][attributeId] === optionId) { 14423 return true; 14424 } 14425 } 14426 return false; 14427 }, 14428 findSimpleIndex() { 14429 this.productIndex = this.calculateSimpleIndexForPartialSelection(this.selectedValues); 14430 this.productIndexForPrice = this.findCheapestProductForPartialSelection(this.selectedValues); 14431 }, 14432 calculateSimpleIndexForPartialSelection(selectedValues) { 14433 if (selectedValues.length === 0) return 0; 14434 return this.findProductIdsForPartialSelection(selectedValues)[0]; 14435 }, 14436 calculateSimpleIndexForFullSelection(selectedValues) { 14437 if (! this.isFullSelection(selectedValues)) return false; 14438 14439 const productIndexes = this.optionConfig.index; 14440 return Object.keys(productIndexes).find(productIndex => { 14441 const productCandidateOptions = productIndexes[productIndex]; 14442 14443 for (const productOption in productCandidateOptions) { 14444 if ( 14445 !selectedValues[productOption] || 14446 selectedValues[productOption] !== productCandidateOptions[productOption] 14447 ) { 14448 return false; 14449 } 14450 } 14451 return productIndex; 14452 }); 14453 }, 14454 findAllowedAttributeOptions() { 14455 this.allowedAttributeOptions = this.calculateAllowedAttributeOptions(this.selectedValues); 14456 }, 14457 calculateAllowedAttributeOptions(selectedValues) { 14458 const allAttributes = this.optionConfig.attributes; 14459 const allAttributesSorted = Object.values(allAttributes).sort((a,b) => { 14460 return a.position - b.position 14461 }); 14462 14463 const newAllowedAttributeOptions = []; 14464 14465 allAttributesSorted.forEach(attribute => { 14466 const selectionWithoutAttr = Object.assign({}, this.removeAttrFromSelection(selectedValues, attribute.id)); 14467 const availableIndexes = this.calculateAvailableProductIndexes(selectionWithoutAttr); 14468 newAllowedAttributeOptions[attribute.id] = allAttributes[attribute.id].options.filter(option => { 14469 return !!option.products.find(product => { 14470 return availableIndexes.includes(product); 14471 }) 14472 }); 14473 }); 14474 return newAllowedAttributeOptions; 14475 }, 14476 calculateAvailableProductIndexes(selectedOptions) { 14477 if (Object.keys(selectedOptions).length === 0) { 14478 if (Object.values(this.optionConfig.salable || {}).length) { 14479 return [].concat.apply([], [].concat.apply([], Object.values(this.optionConfig.salable).map(Object.values))).filter((x, i, a) => a.indexOf(x) === i) 14480 } 14481 return Object.keys(this.optionConfig.index); 14482 } 14483 14484 const selectedIds = Object.keys(selectedOptions); 14485 if (Object.values(this.optionConfig.salable || {}).length) { 14486 const selectedOptionIndexes = selectedIds.map(attrId => { 14487 const optionValue = selectedOptions[attrId]; 14488 return this.optionConfig.salable[attrId] && this.optionConfig.salable[attrId][optionValue] || [] 14489 }) 14490 return selectedOptionIndexes.reduce((acc, optionIndexes) => { 14491 return acc.filter(index => optionIndexes.includes(index)); 14492 }); 14493 } else { 14494 const productIndexes = this.optionConfig.index; 14495 return Object.keys(productIndexes).filter(index => { 14496 for (const attrId of selectedIds) { 14497 if (productIndexes[index][attrId] !== `${selectedOptions[attrId]}`) return false 14498 } 14499 return true 14500 }); 14501 } 14502 }, 14503 findAttributeByOptionId(optionId) { 14504 for (const attributeId in this.optionConfig.attributes) { 14505 const attributeOptions = this.optionConfig.attributes[attributeId].options || []; 14506 if (attributeOptions.find(option => option.id === optionId)) { 14507 return attributeId; 14508 } 14509 } 14510 }, 14511 getAllowedAttributeOptions(attributeId) { 14512 return this.allowedAttributeOptions[attributeId] || [] 14513 }, 14514 getAllAttributeOptions(attributeId) { 14515 return ( 14516 this.optionConfig.attributes[attributeId] && 14517 this.optionConfig.attributes[attributeId].options 14518 ) || [] 14519 }, 14520 getProductIdsForOption(option) { 14521 const attributeId = this.findAttributeByOptionId(option.id); 14522 const allOptions = this.optionConfig.attributes[attributeId]; 14523 const opt = (allOptions && allOptions.options || []).find(o => o.id === option.id); 14524 return opt && opt.products 14525 ? opt.products 14526 : []; 14527 }, 14528 findProductIdsForPartialSelection(optionSelection) { 14529 const candidateProducts = Object.values(optionSelection).reduce((candidates, optionId) => { 14530 const newCandidates = this.getProductIdsForOption({id: optionId}); 14531 return candidates === null 14532 ? newCandidates 14533 : candidates.filter(productId => newCandidates.includes(productId)); 14534 }, null); 14535 return candidateProducts || []; 14536 },
14537 findCheapestProductForPartialSelection(optionSelection) { 14538 const candidateProducts = this.findProductIdsForPartialSelection(optionSelection); 14539 return candidateProducts.reduce((cheapest, simpleIdx) => { 14540 // in the first iteration we start with simpleIdx as the currently cheapest product 14541 if (! this.optionConfig.optionPrices[cheapest]) return simpleIdx; 14542 const knownCheapestPrice = this.optionConfig.optionPrices[cheapest].finalPrice.amount; 14543 return knownCheapestPrice > this.optionConfig.optionPrices[simpleIdx].finalPrice.amount 14544 ? simpleIdx 14545 : cheapest; 14546 }, 0) 14547 }, 14548 findProductIdToUseForOptionPrice(option) { 14549 // try to find a product for a complete selection 14550 const attributeId = this.findAttributeByOptionId(option.id); 14551 const optionSelection = Object.assign({}, this.selectedValues, {[attributeId]: option.id}); 14552 const matchingSimpleIndex = this.calculateSimpleIndexForFullSelection(optionSelection); 14553 // if there is no complete selection, use the cheapest product for the option 14554 return matchingSimpleIndex || this.findCheapestProductForPartialSelection(optionSelection); 14555 }, 14556 getAttributeOptionLabel(option) { 14557 const optionProduct = this.findProductIdToUseForOptionPrice(option); 14558 14559 if ((! optionProduct) || (optionProduct === this.productIndexForPrice)) { 14560 return option.label; 14561 } 14562 14563 const currentPrice = this.getOptionPriceAdjustmentBasePrice(); 14564 14565 if (this.optionConfig.optionPrices[optionProduct]) { 14566 const optionPrice = this.optionConfig.optionPrices[optionProduct].finalPrice.amount; 14567 if (optionPrice !== currentPrice){ 14568 return option.label + ' ' + hyva.formatPrice(optionPrice - currentPrice, true); 14569 } 14570 } 14571 return option.label; 14572 }, 14573 getOptionPriceAdjustmentBasePrice() { 14574 if (this.optionConfig.optionPrices[this.productIndexForPrice]) { 14575 return this.optionConfig.optionPrices[this.productIndexForPrice].finalPrice.amount 14576 } 14577 return this.optionConfig.prices.finalPrice.amount; // default price if no option selection 14578 }, 14579 clearOptionIfActive(optionId, value) { 14580 if (this.selectedValues[optionId] === value) { 14581 this.blurLabel() 14582 this.changeOption(optionId, '') 14583 } 14584 }, 14585 removeAttrFromSelection(selectedValues, attributeId) { 14586 attributeId = parseInt(attributeId); 14587 return selectedValues.reduce((newSelection, val, attr) => { 14588 if (attr !== attributeId) { 14589 newSelection[attr] = val; 14590 } 14591 return newSelection; 14592 }, []); 14593 }, 14594 changeOption(attributeId, value) { 14595 if (value === '') { 14596 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId) 14597 } else if (value && this.getAllowedAttributeOptions(attributeId).find(option => option.id === value)) { 14598 this.selectedValues[attributeId] = value; 14599 } 14600 this.findSimpleIndex(); 14601 this.findAllowedAttributeOptions(); 14602 this.updatePrices(); 14603 this.updateGallery(); 14604 14605 const candidates = this.findProductIdsForPartialSelection(this.selectedValues); 14606 14607 window.dispatchEvent( 14608 new CustomEvent( 14609 'configurable-selection-changed', 14610 { 14611 detail: { 14612 productId: this.productId, 14613 optionId: attributeId, 14614 value: value, 14615 productIndex: this.productIndex, 14616 selectedValues: this.selectedValues, 14617 candidates: candidates, 14618 skuCandidates: Object.values(candidates).map(id =>
14618 this.optionConfig.sku?.[id] ?? null).filter(Boolean), 14619 } 14620 } 14621 ) 14622 ); 14623 }, 14624 calculateIsMinimalPrice() { 14625 return ! this.isFullSelection(this.selectedValues); 14626 }, 14627 isFullSelection(selectedValues) { 14628 return Object.values(selectedValues).length === Object.keys(this.optionConfig.attributes).length; 14629 }, 14630 updatePrices() { 14631 const value = this.optionConfig.optionPrices[this.productIndexForPrice] || this.optionConfig.prices; 14632 window.dispatchEvent( 14633 new CustomEvent( 14634 "update-prices-" + this.productId, 14635 { 14636 detail: Object.assign( 14637 value, 14638 { isMinimalPrice: this.calculateIsMinimalPrice() } 14639 ) 14640 } 14641 ) 14642 ); 14643 }, 14644 updateGallery () { 14645 if (this.productIndex) { 14646 const images = this.optionConfig.images[this.productIndex]; 14647 images && window.dispatchEvent(new CustomEvent( 14648 "update-gallery", 14649 { detail: this.sortImagesByPosition(images) } 14650 )); 14651 } else { 14652 window.dispatchEvent(new Event("reset-gallery")); 14653 } 14654 }, 14655 sortImagesByPosition(images) { 14656 return images.sort((x, y) => { 14657 return x.position === y.position ? 0 : (parseInt(x.position) > parseInt(y.position) ? 1 : -1) 14658 }); 14659 }, 14660 onGetCartData(data) { 14661 }, 14662 preselectCartItems(data) { 14663 // pre-select options based on cart data for current (quote) itemId 14664 const cart = data && data.cart; 14665 if (cart && cart.items) { 14666 const cartItem = cart.items.find((item) => { 14667 return ( 14668 item.item_id === this.itemId 14669 && item.product_id === this.productId 14670 ) 14671 }); 14672 if (cartItem && cartItem.options && cartItem.options.length) { 14673 cartItem.options.map(option => { 14674 this.changeOption(option.option_id, option.option_value); 14675 }) 14676 } 14677 } 14678 }, 14679 preselectQuerystringItems() { 14680 // pre-select option like ?size=167 14681 const urlQueryParams = new URLSearchParams(window.location.search.replace('?','')); 14682 this.preselectItemsBasedOnLocation(attribute => urlQueryParams.get(attribute.code)); 14683 }, 14684 preselectLocationHashItems() { 14685 // pre-select option like #144=167 14686 const urlHashParams = new URLSearchParams(window.location.hash.replace('#','')); 14687 this.preselectItemsBasedOnLocation(attribute => urlHashParams.get(attribute.id)); 14688 }, 14689 preselectItemsBasedOnLocation(getLocationValue) { 14690 Object.values(this.optionConfig.attributes).map(attribute => { 14691 const v = getLocationValue(attribute); 14692 v && this.changeOption(attribute.id, v) 14693 }); 14694 } 14695 } 14696 } 14697</script>
vendor: 1 bytes, line 14697
14697
14698<script> 14699 function initSwatchOptions(swatchConfig) { 14700 return { 14701 swatchConfig, 14702 getAttributeSwatchData(attributeId) { 14703 const swatchConfig = Object.assign({}, this.swatchConfig[attributeId]); 14704 swatchConfig['details'] = JSON.parse(swatchConfig['additional_data']); 14705 14706 return swatchConfig; 14707 }, 14708 mapSwatchTypeNumberToTypeCode(typeNumber) { 14709 switch ("" + typeNumber) { 14710 case "1": 14711 return "color" 14712 case "2": 14713 return "image" 14714 case "3": 14715 return "empty" 14716 case "0": 14717 default: 14718 return "text" 14719 } 14720 }, 14721 getTypeOfFirstOption(attributeId) { 14722 for (const optionId in this.swatchConfig[attributeId]) { 14723 const option = this.swatchConfig[attributeId][optionId]; 14724 if (typeof option.type !== 'undefined') { 14725 return this.mapSwatchTypeNumberToTypeCode(option.type); 14726 } 14727 } 14728 }, 14729 getVisualSwatchType(attributeId, targetOptionId) { 14730 // If a type configuration is present for the given option id, use it 14731 const config = this.swatchConfig[attributeId]; 14732 if (config[targetOptionId] && typeof config[targetOptionId].type !== 'undefined') { 14733 return this.mapSwatchTypeNumberToTypeCode(config[targetOptionId].type); 14734 } 14735 14736 // Otherwise - if no config is present for the target option - use the type of the first option 14737 // with a type property from the attribute, thus assuming its the same type as the target option. 14738 // (This edge case condition can occur on single swatch products if some options are not salable) 14739 return this.getTypeOfFirstOption(attributeId); 14740 }, 14741 getSwatchType(attributeId, optionId) { 14742 // Deserialize the attribute details the first time they are used 14743 if (this.swatchConfig[attributeId] && ! this.swatchConfig[attributeId].details) { 14744 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 14745 } 14746 const type = this.swatchConfig[attributeId] && 14747 this.swatchConfig[attributeId].details && 14748 this.swatchConfig[attributeId].details.swatch_input_type || 14749 "empty"; 14750 return type === 'visual' ? this.getVisualSwatchType(attributeId, optionId) : type; 14751 }, 14752 isTextSwatch(attributeId, optionId) { 14753 return this.getSwatchType(attributeId, optionId) === 'text'; 14754 }, 14755 isVisualSwatch(attributeId, optionId) { 14756 const type = this.getSwatchType(attributeId, optionId); 14757 14758 return ['image', 'color'].includes(type); 14759 }, 14760 getSwatchBackgroundStyle(attributeId, optionId) { 14761 const config = this.getSwatchConfig(attributeId, optionId); 14762 const type = this.getSwatchType(attributeId, optionId); 14763 14764 if (type === "color") { 14765 return 'background-color:' + config.value; 14766 } else if (type === "image") { 14767 return "background: #fff url('" + config.value + "') no-repeat center"; 14768 } else { 14769 return ''; 14770 } 14771 }, 14772 getSwatchText(attributeId, optionId) { 14773 const config = this.getSwatchConfig(attributeId, optionId); 14774 return config.label || config.value || this.getOptionLabelFromOptionConfig(attributeId, optionId); 14775 }, 14776 getOptionLabelFromOptionConfig(attributeId, optionId) { 14777 // Fallback if no value is present in swatchConfig data 14778 // Reference issue https://gitlab.hyva.io/hyva-themes/magento2-default-theme/-/issues/190 14779 const option = this.getAllAttributeOptions(attributeId).filter(option => option.id === optionId); 14780 return option && option[0] && option[0].label ||''; 14781 }, 14782 getSwatchConfig(attributeId, optionId) { 14783 return this.swatchConfig[attributeId] && this.swatchConfig[attributeId][optionId] 14784 ? this.swatchConfig[attributeId][optionId] 14785 : false;
14786 }, 14787 activeTooltipItem: false, 14788 tooltipPositionElement: false, 14789 isTooltipVisible() { 14790 return this.activeTooltipItem && 14791 this.getSwatchConfig( 14792 this.activeTooltipItem.attribute, 14793 this.activeTooltipItem.item 14794 ); 14795 }, 14796 isFirstItemCol() { 14797 return this.activeTooltipItem.index === 0; 14798 }, 14799 getTooltipImageStyle(attributeId, optionId) { 14800 const config = this.getSwatchConfig(attributeId, optionId); 14801 const type = this.getSwatchType(attributeId, optionId); 14802 14803 if (type === "color") { 14804 return 'background-color:' + config.value + '; width: 110px; height: 90px;'; 14805 } else if (type === "image") { 14806 return "background: #ffffff url('" + config.thumb + 14807 "') center center no-repeat; width: 110px; height: 90px;"; 14808 } else { 14809 return 'display:none'; 14810 } 14811 }, 14812 getTooltipPosition() { 14813 return this.tooltipPositionElement ? 14814 `top: ${this.tooltipPositionElement.offsetTop}px;` + 14815 `left: ${ 14816 this.tooltipPositionElement.offsetLeft - ( 14817 this.tooltipPositionElement.closest('.snap') && 14818 this.tooltipPositionElement.closest('.snap').scrollLeft || 14819 0 14820 ) 14821 }px;` : '' 14822 }, 14823 getTooltipLabel() { 14824 return this.getSwatchConfig(this.activeTooltipItem.attribute, this.activeTooltipItem.item).label 14825 }, 14826 focusedLabel: false, 14827 focusLabel(optionId) { 14828 this.focusedLabel = optionId; 14829 }, 14830 blurLabel() { 14831 this.focusedLabel = false; 14832 } 14833 } 14834 } 14835</script>
vendor: 1 bytes, line 14835
14835
14836<script> 14837 'use strict'; 14838 14839 const grecaptchaV2LoadCallbacks = []; 14840 14841 function executeRecaptchaLoadCallbacks () { 14842 while (window.grecaptcha && grecaptchaV2LoadCallbacks.length > 0) { 14843 const callback = grecaptchaV2LoadCallbacks.pop(); 14844 typeof callback === 'string' ? window[callback]() : callback(); 14845 } 14846 } 14847 14848 (function() { 14849 const loadRecaptchaScript = (event) => { 14850 14851 if (window.grecaptcha || !event.target.form) { 14852 return; 14853 } 14854 14855 const url = 'https://www.google.com/recaptcha/api.js?onload=executeRecaptchaLoadCallbacks'; 14856 const siteKey = ''; 14857 const script = document.createElement('script'); 14858 script.type = 'text/javascript'; 14859 script.src = siteKey ? `${url}&render=${siteKey}` : `${url}&render=explicit`; 14860 script.async = true; 14861 document.head.appendChild(script); 14862 14863 script.addEventListener('load', () => { 14864 Array.from(document.querySelectorAll('button[data-recaptcha-btn]:disabled')).forEach(btn => btn.removeAttribute('disabled')); 14865 }); 14866 } 14867 14868 window.forceLoadRecaptchaScript = (form) => { 14869 loadRecaptchaScript({target: {form: form || 'dummy'}}); 14870 executeRecaptchaLoadCallbacks(); 14871 }; 14872 14873 document.body.addEventListener('input', loadRecaptchaScript, { once: true }); 14874 document.body.addEventListener('focus', loadRecaptchaScript, { once: true }); 14875 14876 }()); 14877 14878</script>
14878 14879<style> 14880 .pf-grid-loading { position: relative; } 14881 .pf-grid-overlay { 14882 position: absolute; 14883 inset: 0; 14884 z-index: 40; 14885 display: flex; 14886 align-items: flex-start; 14887 justify-content: center; 14888 padding-top: 11vh; 14889 background: rgba(255, 255, 255, 0.72); 14890 backdrop-filter: blur(1px); 14891 animation: pf-grid-fade-in 0.15s ease-out; 14892 } 14893 .pf-grid-overlay__spinner { 14894 width: 44px; 14895 height: 44px; 14896 border: 4px solid rgba(0, 0, 0, 0.12); 14897 border-top-color: var(--color-primary-500, #e2231a); 14898 border-radius: 9999px; 14899 animation: pf-grid-spin 0.7s linear infinite; 14900 } 14901 @keyframes pf-grid-spin { to { transform: rotate(360deg); } } 14902 @keyframes pf-grid-fade-in { from { opacity: 0; } to { opacity: 1; } } 14903 @media (prefers-reduced-motion: reduce) { 14904 .pf-grid-overlay__spinner { animation-duration: 1.6s; } 14905 .pf-grid-overlay { animation: none; } 14906 } 14907</style>
14908<script> 14909 (function () { 14910 if (window.__pfGridSwapBound) { 14911 return; 14912 } 14913 window.__pfGridSwapBound = true; 14914 14915 var ENDPOINT = "https:\/\/www.esprit-ktm.com\/partfinder\/category\/grid\/"; 14916 var GRID_ID = 'ProductGridContainer'; 14917 var MAIN_ID = 'MainContent'; 14918 var MARKER_SEL = '[data-pf-grid]'; 14919 var SLIDER_SEL = '[data-pf-slider]'; 14920 14921 function getFindpart() { 14922 var row = document.cookie 14923 .split('; ') 14924 .find(function (r) { return r.indexOf('current_findpart=') === 0; }); 14925 return row ? decodeURIComponent(row.split('=')[1]) : ''; 14926 } 14927 14928 // Current category id, read live from the marker inside #MainContent. 14929 // 0 when the page is not a partfinder-enabled category page. 14930 function getCategoryId() { 14931 var marker = document.querySelector(MARKER_SEL); 14932 if (!marker) { 14933 return 0; 14934 } 14935 var id = parseInt(marker.getAttribute('data-category-id') || '0', 10); 14936 return id > 0 ? id : 0; 14937 } 14938 14939 var inFlight = false; 14940 // Page currently displayed in the *filtered* grid. Reset to 1 every time 14941 // we swap in a freshly filtered page 1 (model changed / initial load). 14942 var pfCurrentPage = 1; 14943 // Node identity of the #ProductGridContainer we last filtered. Satoshi 14944 // replaces the whole #MainContent (a brand-new grid node) on navigation, 14945 // while our Alpine.morph patches the existing node in place â so a grid 14946 // node !== lastSwappedGrid means a fresh, unfiltered grid was just injected. 14947 var lastSwappedGrid = null; 14948 14949 function setLoading(on) { 14950 var el = document.getElementById(GRID_ID); 14951 if (!el) { 14952 return; 14953 } 14954 var overlay = el.querySelector(':scope > .pf-grid-overlay'); 14955 if (on) { 14956 el.classList.add('pf-grid-loading'); 14957 el.setAttribute('aria-busy', 'true'); 14958 if (!overlay) { 14959 overlay = document.createElement('div'); 14960 overlay.className = 'pf-grid-overlay'; 14961 overlay.innerHTML = 14962 '<div class="pf-grid-overlay__spinner" role="status" aria-label="Chargement des vues"></div>'; 14963 el.appendChild(overlay); 14964 } 14965 } else { 14966 el.classList.remove('pf-grid-loading'); 14967 el.removeAttribute('aria-busy'); 14968 if (overlay) { 14969 overlay.remove(); 14970 } 14971 } 14972 } 14973 14974 // Replace the (CDN-cached, unfiltered) slider with the filtered one taken 14975 // from the grid-endpoint response. The slider root carries a per-render 14976 // uniqid id, so it is targeted by the stable [data-pf-slider] hook. A full 14977 // node replacement (rather than a morph) gives the Alpine carousel a clean 14978 // re-init with the new variable-width content. No-op when the page has no 14979 // slider (response or DOM), so non-slider categories are untouched. 14980 function swapSlider(doc) { 14981 var next = doc.querySelector(SLIDER_SEL); 14982 var current = document.querySelector(SLIDER_SEL); 14983 if (!next || !current) { 14984 return; 14985 } 14986 var imported = document.importNode(next, true); 14987 current.replaceWith(imported); 14988 if (window.Alpine && typeof window.Alpine.initTree === 'function') { 14989 window.Alpine.initTree(imported); 14990 } 14991 } 14992 14993 async function swap() { 14994 var categoryId = getCategoryId(); 14995 var current = document.getElementById(GRID_ID); 14996 if (!categoryId || !current || inFlight) { 14997 return; 14998 } 14999 inFlight = true; 15000 setLoading(true); 15001 try { 15002 var sep = ENDPOINT.indexOf('?') === -1 ? '?' : '&'; 15003 var url = ENDPOINT + sep + 'id=' + encodeURIComponent(categoryId) + '&_=' + Date.now(); 15004 15005 var res = await fetch(url, { 15006 credentials: 'same-origin', 15007 headers: { 'X-Requested-With': 'XMLHttpRequest' } 15008 }); 15009 if (!res.ok) { 15010 return; 15011 } 15012 15013 var html = await res.text(); 15014 var doc = new DOMParser().parseFromString(html, 'text/html'); 15015 var next = doc.getElementById(GRID_ID); 15016 current = document.getElementById(GRID_ID); 15017 15018 if (next && current) { 15019 // Drop the loading overlay before reconciling so it is not 15020 // morphed into a product card. 15021 var staleOverlay = current.querySelector(':scope > .pf-grid-overlay'); 15022 if (staleOverlay) { 15023 staleOverlay.remove(); 15024 } 15025 current.classList.remove('pf-grid-loading'); 15026 15027 if (window.Alpine && typeof window.Alpine.morph === 'function') { 15028 window.Alpine.morph(current, next.outerHTML); 15029 } else { 15030 current.replaceWith(next); 15031 if (window.Alpine && typeof window.Alpine.initTree === 'function') { 15032 window.Alpine.initTree(document.getElementById(GRID_ID)); 15033 } 15034 } 15035 // A fresh filtered page 1 is now in place: restart pagination 15036 // and remember this grid node so the observer doesn't re-swap it. 15037 pfCurrentPage = 1;
15038 lastSwappedGrid = document.getElementById(GRID_ID); 15039 window.dispatchEvent(new CustomEvent('pf-grid-updated')); 15040 } 15041 15042 // The category slider (filter bar with per-view counts) is cached 15043 // model-agnostic by the CDN just like the grid, so it shows every 15044 // view's full count. The endpoint response above already contains 15045 // the per-model filtered slider â swap it in from the same fetch. 15046 swapSlider(doc); 15047 } catch (e) { 15048 /* keep the current grid on failure */ 15049 } finally { 15050 inFlight = false; 15051 setLoading(false); 15052 } 15053 } 15054 15055 // Re-evaluate after a (possible) navigation. Fires on first load and on 15056 // every #MainContent swap. Only acts when this is a partfinder-enabled 15057 // category page (marker present), a model is selected, and the grid node 15058 // is one we have not filtered yet (i.e. a fresh, unfiltered grid). 15059 function syncGrid() { 15060 if (!getCategoryId()) { 15061 lastSwappedGrid = null; 15062 return; 15063 } 15064 if (!getFindpart()) { 15065 // No model selected: the unfiltered grid is the correct one. 15066 lastSwappedGrid = null; 15067 return; 15068 } 15069 var grid = document.getElementById(GRID_ID); 15070 if (!grid || grid === lastSwappedGrid) { 15071 return; 15072 } 15073 pfCurrentPage = 1; 15074 swap(); 15075 } 15076 15077 // Cookie changed without a full reload (garage bar select / reset). 15078 // Force a re-filter (or restore of the unfiltered grid) for this page. 15079 function onFindpartChanged() { 15080 lastSwappedGrid = null; 15081 if (getCategoryId()) { 15082 swap(); 15083 } 15084 } 15085 15086 // --- Filtered pagination ("Load more") ----------------------------- 15087 // Satoshi's x-pagination-trigger fetches the canonical, CDN-cached 15088 // category URL (location.pathname?p=N) which is model-agnostic â so it 15089 // would append the WHOLE category on page 2+. When a model is selected 15090 // we hijack the click and pull the next page from the filtered grid 15091 // endpoint instead, mirroring Satoshi's append + #pager swap. 15092 15093 function appendPaginationContent(rawHtml) { 15094 var regex = /<!-- pagination-content -->([\s\S]*?)<!-- end-pagination-content -->/g; 15095 var match = rawHtml.match(regex); 15096 var content = match ? match[0] : ''; 15097 var wrapper = document.querySelector('[data-content-wrapper]'); 15098 if (!wrapper || !content) { 15099 return; 15100 } 15101 // display:contents so the wrapper doesn't break the grid layout; 15102 // Alpine's MutationObserver initialises the new product cards. 15103 var frag = document.createElement('div'); 15104 frag.style.display = 'contents'; 15105 frag.innerHTML = content; 15106 wrapper.appendChild(frag); 15107 } 15108 15109 // The HAM #pager (Magento_Theme/templates/html/pager.phtml) drives the 15110 // "Loading more products..." spinner via its Alpine `loading` flag, 15111 // normally flipped by the trigger's @click. We block that click (below) 15112 // to stop Satoshi's canonical fetch, so we must toggle `loading` here. 15113 function setPagerLoading(pager, on) { 15114 try { 15115 if (pager && window.Alpine && typeof window.Alpine.$data === 'function') { 15116 var data = window.Alpine.$data(pager); 15117 if (data && typeof data === 'object') { 15118 data.loading = on; 15119 } 15120 } 15121 } catch (e) { 15122 /* no Alpine data on the pager â spinner is optional */ 15123 } 15124 } 15125 15126 async function paginate(trigger, pager) { 15127 var categoryId = getCategoryId(); 15128 if (inFlight || !categoryId) { 15129 return; 15130 } 15131 var expr = trigger.getAttribute('x-pagination-trigger') || ''; 15132 var m = expr.match(/lastPage['"]?\s*:\s*(\d+)/); 15133 var lastPage = m ? parseInt(m[1], 10) : Infinity; 15134 if (pfCurrentPage >= lastPage) { 15135 return; 15136 } 15137 15138 inFlight = true; 15139 trigger.setAttribute('aria-busy', '1'); 15140 setPagerLoading(pager, true); 15141 var ok = false;
15142 try { 15143 var nextPage = pfCurrentPage + 1; 15144 var sep = ENDPOINT.indexOf('?') === -1 ? '?' : '&'; 15145 var url = ENDPOINT + sep + 'id=' + encodeURIComponent(categoryId) + 15146 '&p=' + nextPage + '&_=' + Date.now(); 15147 15148 var res = await fetch(url, { 15149 credentials: 'same-origin', 15150 headers: { 'X-Requested-With': 'XMLHttpRequest' } 15151 }); 15152 if (!res.ok) { 15153 return; 15154 } 15155 15156 var html = await res.text(); 15157 appendPaginationContent(html); 15158 if (window.hyva && typeof window.hyva.replaceDomElement === 'function') { 15159 window.hyva.replaceDomElement('#pager', html); 15160 } 15161 pfCurrentPage = nextPage; 15162 ok = true; 15163 window.dispatchEvent(new CustomEvent('pf-grid-updated')); 15164 } catch (e) { 15165 /* keep what we have on failure */ 15166 } finally { 15167 inFlight = false; 15168 trigger.setAttribute('aria-busy', '0'); 15169 // On success #pager is replaced by a fresh (loading:false) pager. 15170 // On failure the old pager stays, so clear its spinner ourselves. 15171 if (!ok) { 15172 setPagerLoading(pager, false); 15173 } 15174 } 15175 } 15176 15177 // Capture phase so we run *before* Satoshi's own click listener and can 15178 // stop it from firing the canonical (unfiltered) pagination fetch. 15179 document.addEventListener('click', function (e) { 15180 if (!getFindpart() || !getCategoryId()) { 15181 return; // no model selected: let Satoshi paginate the cached page 15182 } 15183 var pager = e.target.closest('#pager'); 15184 if (!pager) { 15185 return; 15186 } 15187 var trigger = e.target.closest('a[x-pagination-trigger]') || 15188 pager.querySelector('a[x-pagination-trigger]'); 15189 if (!trigger) { 15190 return; 15191 } 15192 e.preventDefault(); 15193 e.stopImmediatePropagation(); 15194 paginate(trigger, pager); 15195 }, true); 15196 15197 function whenAlpineReady(cb) { 15198 if (window.Alpine) { 15199 cb(); 15200 } else { 15201 document.addEventListener('alpine:initialized', cb, { once: true }); 15202 } 15203 } 15204 15205 // Detect Satoshi soft navigations. replaceMainContent() ultimately calls 15206 // hyva.replaceDomElement('#MainContent', ...), which does a node-level 15207 // replaceWith on #MainContent â so a MutationObserver on its *parent* 15208 // (which stays stable) sees a childList mutation on every navigation, 15209 // forward (menu) or backward (popstate). childList-only keeps it cheap, 15210 // and our own in-place morph (deep inside #MainContent) never triggers it. 15211 var observer = new MutationObserver(function () { 15212 // Defer to let Alpine init the freshly injected tree first. 15213 whenAlpineReady(function () { window.requestAnimationFrame(syncGrid); }); 15214 }); 15215 15216 function bindObserver() { 15217 var main = document.getElementById(MAIN_ID); 15218 var parent = main && main.parentNode; 15219 if (parent) { 15220 observer.observe(parent, { childList: true }); 15221 return true; 15222 } 15223 return false; 15224 } 15225 15226 window.addEventListener('partfinder-changed', onFindpartChanged); 15227 window.addEventListener('partfinder-reset', onFindpartChanged); 15228 15229 whenAlpineReady(function () { 15230 if (!bindObserver()) { 15231 // #MainContent not in the DOM yet â retry once on full load. 15232 window.addEventListener('load', bindObserver, { once: true }); 15233 } 15234 // Cached page is model-agnostic. If a model is already selected on 15235 // initial load, swap to the filtered grid now. 15236 syncGrid(); 15237 }); 15238 })(); 15239</script>
15239 15240
15241<script> 15242 (function () { 15243 const modals = []; 15244 let lastHide = 0; 15245 15246 function resolveElement($refs, value) { 15247 if (!value) return null; 15248 if (value instanceof Element) return value; 15249 if (typeof value === 'string') { 15250 try { 15251 return ($refs && $refs[value]) || document.querySelector(value) || null; 15252 } catch (e) {} 15253 } 15254 return null; 15255 } 15256 15257 function determineTrigger($refs, dialog, trigger) { 15258 if (!trigger && dialog?.target instanceof HTMLElement) { 15259 return dialog.target; 15260 } 15261 15262 if (typeof dialog === 'string' && trigger?.target instanceof HTMLElement) { 15263 return trigger.target; 15264 } 15265 15266 return resolveElement($refs, trigger); 15267 } 15268 15269 function setFocusFirstElement(dialogElement) { 15270 if (!dialogElement) return; 15271 15272 window.setTimeout(() => { 15273 const candidates = dialogElement.querySelectorAll('[x-focus-first]'); 15274 for (const candidate of candidates) { 15275 if (candidate.closest('dialog') === dialogElement) { 15276 candidate.focus(); 15277 return; 15278 } 15279 } 15280 }, 50); 15281 } 15282 15283 window.hyva.modal = function(options = {}) { 15284 if (this.$el && this.$el.dataset && this.$el.dataset.options) { 15285 try { 15286 options = Object.assign(options, JSON.parse(this.$el.dataset.options || '{}')); 15287 } catch (e) { 15288 throw new Error('Cannot read the dialog options from the data-options attribute: not valid JSON'); 15289 } 15290 } 15291 15292 const config = Object.assign({ 15293 dialog: 'dialog', duration: 300, transitionEnter: 'transition ease-out duration-300', 15294 transitionEnterStart: 'opacity-0', 15295 transitionEnterEnd: 'opacity-100', 15296 transitionLeave: 'transition ease-in duration-300', 15297 transitionLeaveStart: 'opacity-100', 15298 transitionLeaveEnd: 'opacity-0', 15299 }, options); 15300 15301 return { 15302 opened: {}, 15303 show(dialog, trigger) { 15304 const name = typeof dialog === 'string' ? dialog : config.dialog; 15305 if (!name || this.opened[name]) return; 15306 15307 this.opened[name] = true; 15308 const focusTarget = determineTrigger(this.$refs, dialog, trigger); 15309 const dialogEl = this.$refs && this.$refs[name]; 15310 const frame = { name, instance: this, focusTarget, time: Date.now() }; 15311 modals.push(frame); 15312 setFocusFirstElement(dialogEl); 15313 return new Promise(resolve => { frame.resolve = resolve; }); 15314 }, 15315 cancel() { 15316 this.hide(false); 15317 }, 15318 ok() { 15319 this.hide(true); 15320 }, 15321 hide(value) { 15322 if (Date.now() - lastHide < config.duration) return; 15323 lastHide = Date.now(); 15324 15325 const modal = modals.pop(); 15326 if (!modal) return; 15327 15328 modal.instance.opened[modal.name] = false; 15329 15330 const focusTarget = modal.focusTarget; 15331 focusTarget && window.setTimeout(() => focusTarget.focus(), config.duration + 50); 15332 modal.resolve && modal.resolve(value); 15333 }, 15334 /** 15335 * @deprecated Use dialogConfig() instead, which is used by the default modal-container.phtml template. 15336 * This method is kept for backwards compatibility with custom container templates. 15337 */ 15338 overlay(dialog) { 15339 dialog = this.$el.dataset.dialogRefName || dialog; 15340 const name = typeof dialog === 'string' ? dialog : config.dialog; 15341 if (this.$el.tagName !== 'DIALOG' && ! window.hyva.modal.legacyModalCompatibility) { 15342 console.warn( 15343 '[hyva] Deprecated modal markup detected (x-bind="overlay" on a non-dialog element' + 15344 (name ? ` for "${name}"` : '') + ').\n' + 15345 'Escape and click-outside closing are not available for such dialogs anymore.\n' + 15346 'Install hyva-themes/magento2-legacy-modal-compatibility or migrate to the native <dialog> markup.' 15347 ); 15348 } 15349 return Object.assign({}, this.dialogConfig(name), { 15350 ['@hyva-modal-show.window'](event) { 15351 event.detail && event.detail.dialog === name && this.show(name, event.detail.focusAfterHide) 15352 } 15353 }); 15354 }, 15355 dialogConfig(name) { 15356 name = name || this.$el.dataset.dialogRefName || config.dialog; 15357 return { 15358 ['x-show']: () => name ? this.opened[name] : false, 15359 ['x-transition:enter']: config.transitionEnter, 15360 ['x-transition:enter-start']: config.transitionEnterStart, 15361 ['x-transition:enter-end']: config.transitionEnterEnd, 15362 ['x-transition:leave']: config.transitionLeave, 15363 ['x-transition:leave-start']: config.transitionLeaveStart, 15364 ['x-transition:leave-end']: config.transitionLeaveEnd, 15365 ['@hyva-modal-show.window'](event) { 15366 event.detail && event.detail.dialog === name && this.show(name, event.detail.focusAfterHide); 15367 }, 15368 }; 15369 },
15370 showDialogOnInit() { 15371 const name = this.$el.dataset.dialogRefName; 15372 if (name) { 15373 this.show(name); 15374 } 15375 } 15376 }; 15377 } 15378 15379 window.hyva.modal.peek = () => modals.length > 0 && modals[modals.length - 1] 15380 15381 window.hyva.modal.pop = function () { 15382 if (modals.length > 0) { 15383 modals[modals.length - 1].instance.hide(); 15384 } 15385 } 15386 15387 /** 15388 * @deprecated Native <dialog> handles focus trapping automatically. 15389 * Calling this function has no effect. Kept for backwards compatibility. 15390 */ 15391 window.hyva.modal.excludeSelectorsFromFocusTrap = function (selectors) {} 15392 15393 /** 15394 * @deprecated Native <dialog> with x-htmldialog handles ESC key and click-outside events. 15395 * These functions have no effect. Kept for backwards compatibility. 15396 */ 15397 window.hyva.modal.eventListeners = { 15398 keydown: event => {}, 15399 click: event => {} 15400 }; 15401 })(); 15402 15403 window.addEventListener('alpine:init', () => { 15404 Alpine.data('hyvaModal', window.hyva.modal); 15405 }, {once: true}); 15406</script>
15406 15407 15408<section x-data="initAmGdprLoader" 15409 @amgdpr-loading-start.window="showLoader" 15410 @amgdpr-loading-stop.window="hideLoader" 15411> 15412 <div 15413 class="z-50 fixed inset-0 flex justify-center items-center bg-white/70 select-none" 15414 x-show="isLoading" 15415 x-cloak 15416 x-transition.opacity.duration.200ms 15417> 15418 <div class="flex items-center"> 15419 <svg xmlns="http://www.w3.org/2000/svg" width="54" height="54" viewBox="0 0 24 24" stroke="currentColor" fill="none" stroke-width="2" stroke-linecap="round" class="animate-spin" aria-hidden="true"> 15420 <circle style="opacity: .3;" cx="12" cy="12" r="10"/> 15421 <path fill="none" stroke-width="2" d="M12,2 a10,10 0 0,1 10,10"/> 15422</svg> 15423 <div class="ml-10 text-xl"> 15424 Chargement... </div> 15425 </div> 15426</div> 15427</section> 15428
15429<script data-cfasync="false"> 15430 'use strict'; 15431 15432 function initAmGdprLoader() { 15433 return { 15434 isLoading: false, 15435 15436 /** 15437 * @returns {void} 15438 */ 15439 showLoader: function () { 15440 this.isLoading = true; 15441 }, 15442 15443 /** 15444 * @returns {void} 15445 */ 15446 hideLoader: function () { 15447 this.isLoading = false; 15448 } 15449 } 15450 } 15451 15452 window.addEventListener( 15453 'alpine:init', 15454 () => Alpine.data('initAmGdprLoader', initAmGdprLoader), 15455 { once: true } 15456 ); 15457</script>
vendor: 1 bytes, line 15457
15457
15458<script type="text/json" id="default-section-data"> 15459 {"messages":[],"customer":[],"compare-products":[],"last-ordered-items":[],"cart":[],"directory-data":{"BE":{"name":"Belgique","regions":{"485":{"code":"VAN","name":"Antwerpen"},"486":{"code":"WBR","name":"Brabant wallon"},"487":{"code":"BRU","name":"Brussels-Capital Region"},"488":{"code":"WHT","name":"Hainaut"},"490":{"code":"WLG","name":"Li\u00e8ge"},"489":{"code":"VLI","name":"Limburg"},"491":{"code":"WLX","name":"Luxembourg"},"492":{"code":"WNA","name":"Namur"},"493":{"code":"VOV","name":"Oost-Vlaanderen"},"494":{"code":"VBR","name":"Vlaams-Brabant"},"495":{"code":"VWV","name":"West-Vlaanderen"}}},"CH":{"name":"Suisse","regions":{"104":{"code":"AG","name":"Aargau"},"106":{"code":"AR","name":"Appenzell Ausserrhoden"},"105":{"code":"AI","name":"Appenzell Innerrhoden"},"108":{"code":"BL","name":"Basel-Landschaft"},"109":{"code":"BS","name":"Basel-Stadt"},"107":{"code":"BE","name":"Bern"},"110":{"code":"FR","name":"Friburg"},"111":{"code":"GE","name":"Geneva"},"112":{"code":"GL","name":"Glarus"},"113":{"code":"GR","name":"Graub\u00fcnden"},"114":{"code":"JU","name":"Jura"},"115":{"code":"LU","name":"Lucerne"},"116":{"code":"NE","name":"Neuch\u00e2tel"},"117":{"code":"NW","name":"Nidwalden"},"118":{"code":"OW","name":"Obwalden"},"120":{"code":"SH","name":"Schaffhausen"},"122":{"code":"SZ","name":"Schwyz"},"121":{"code":"SO","name":"Solothurn"},"119":{"code":"SG","name":"St. Gallen"},"123":{"code":"TG","name":"Thurgau"},"124":{"code":"TI","name":"Ticino"},"125":{"code":"UR","name":"Uri"},"126":{"code":"VD","name":"Vaud"},"127":{"code":"VS","name":"Wallis"},"128":{"code":"ZG","name":"Zug"},"129":{"code":"ZH","name":"Z\u00fcrich"}}},"DE":{"name":"Allemagne","regions":{"80":{"code":"BAW","name":"Baden-W\u00fcrttemberg"},"81":{"code":"BAY","name":"Bayern"},"82":{"code":"BER","name":"Berlin"},"83":{"code":"BRG","name":"Brandenburg"},"84":{"code":"BRE","name":"Bremen"},"85":{"code":"HAM","name":"Hamburg"},"86":{"code":"HES","name":"Hessen"},"87":{"code":"MEC","name":"Mecklenburg-Vorpommern"},"79":{"code":"NDS","name":"Niedersachsen"},"88":{"code":"NRW","name":"Nordrhein-Westfalen"},"89":{"code":"RHE","name":"Rheinland-Pfalz"},"90":{"code":"SAR","name":"Saarland"},"91":{"code":"SAS","name":"Sachsen"},"92":{"code":"SAC","name":"Sachsen-Anhalt"},"93":{"code":"SCN","name":"Schleswig-Holstein"},"94":{"code":"THE","name":"Th\u00fcringen"}}},"ES":{"name":"Espagne","regions":{"130":{"code":"A Coru\u0441a","name":"A Coru\u00f1a"},"131":{"code":"Alava","name":"Alava"},"132":{"code":"Albacete","name":"Albacete"},"133":{"code":"Alicante","name":"Alicante"},"134":{"code":"Almeria","name":"Almeria"},"135":{"code":"Asturias","name":"Asturias"},"136":{"code":"Avila","name":"Avila"},"137":{"code":"Badajoz","name":"Badajoz"},"138":{"code":"Baleares","name":"Baleares"},"139":{"code":"Barcelona","name":"Barcelona"},"140":{"code":"Burgos","name":"Burgos"},"141":{"code":"Caceres","name":"Caceres"},"142":{"code":"Cadiz","name":"Cadiz"},"143":{"code":"Cantabria","name":"Cantabria"},"144":{"code":"Castellon","name":"Castellon"},"145":{"code":"Ceuta","name":"Ceuta"},"146":{"code":"Ciudad Real","name":"Ciudad Real"},"147":{"code":"Cordoba","name":"Cordoba"},"148":{"code":"Cuenca","name":"Cuenca"},"149":{"code":"Girona","name":"Girona"},"150":{"code":"Granada","name":"Granada"},"151":{"code":"Guadalajara","name":"Guadalajara"},"152":{"code":"Guipuzcoa","name":"Guipuzcoa"},"153":{"code":"Huelva","name":"Huelva"},"154":{"code":"Huesca","name":"Huesca"},"155":{"code":"Jaen","name":"Jaen"},"156":{"code":"La Rioja","name":"La Rioja"},"157":{"code":"Las Palmas","name":"Las Palmas"},"158":{"code":"Leon","name":"Leon"},"159":{"code":"Lleida","name":"Lleida"},"160":{"code":"Lugo","name":"Lugo"},"161":{"code":"Madrid","name":"Madrid"},"162":{"code":"Malaga","name":"Malaga"},"163":{"code":"Melilla","name":"Melilla"},"164":{"code":"Murcia","name":"Murcia"},"165":{"code":"Navarra","name":"Navarra"},"166":{"code":"Ourense","name":"Ourense"},"167":{"code":"Palencia","name":"Palencia"},"168":{"code":"Pontevedra","name":"Pontevedra"},"169":{"code":"Salamanca","name":"Salamanca"},"170":{"code":"Santa Cruz de Tenerife","name":"Santa Cruz de Tenerife"},"171":{"code":"Segovia","name":"Segovia"},"172":{"code":"Sevilla","name":"Sevilla"},"173":{"code":"Soria","name":"Soria"},"174":{"code":"Tarragona","name":"Tarragona"},"175":{"code":"Teruel","name":"Teruel"},"176":{"code":"Toledo","name":"Toledo"},"177":{"code":"Valencia","name":"Valencia"},"178":{"code":"Valladolid","name":"Valladolid"}
15459,"179":{"code":"Vizcaya","name":"Vizcaya"},"180":{"code":"Zamora","name":"Zamora"},"181":{"code":"Zaragoza","name":"Zaragoza"}}},"FR":{"name":"France","regions":{"182":{"code":"01","name":"Ain"},"183":{"code":"02","name":"Aisne"},"184":{"code":"03","name":"Allier"},"185":{"code":"04","name":"Alpes-de-Haute-Provence"},"187":{"code":"06","name":"Alpes-Maritimes"},"188":{"code":"07","name":"Ard\u00e8che"},"189":{"code":"08","name":"Ardennes"},"190":{"code":"09","name":"Ari\u00e8ge"},"191":{"code":"10","name":"Aube"},"192":{"code":"11","name":"Aude"},"193":{"code":"12","name":"Aveyron"},"249":{"code":"67","name":"Bas-Rhin"},"194":{"code":"13","name":"Bouches-du-Rh\u00f4ne"},"195":{"code":"14","name":"Calvados"},"196":{"code":"15","name":"Cantal"},"197":{"code":"16","name":"Charente"},"198":{"code":"17","name":"Charente-Maritime"},"199":{"code":"18","name":"Cher"},"200":{"code":"19","name":"Corr\u00e8ze"},"201":{"code":"2A","name":"Corse-du-Sud"},"203":{"code":"21","name":"C\u00f4te-d'Or"},"204":{"code":"22","name":"C\u00f4tes-d'Armor"},"205":{"code":"23","name":"Creuse"},"261":{"code":"79","name":"Deux-S\u00e8vres"},"206":{"code":"24","name":"Dordogne"},"207":{"code":"25","name":"Doubs"},"208":{"code":"26","name":"Dr\u00f4me"},"273":{"code":"91","name":"Essonne"},"209":{"code":"27","name":"Eure"},"210":{"code":"28","name":"Eure-et-Loir"},"211":{"code":"29","name":"Finist\u00e8re"},"212":{"code":"30","name":"Gard"},"214":{"code":"32","name":"Gers"},"215":{"code":"33","name":"Gironde"},"250":{"code":"68","name":"Haut-Rhin"},"202":{"code":"2B","name":"Haute-Corse"},"213":{"code":"31","name":"Haute-Garonne"},"225":{"code":"43","name":"Haute-Loire"},"234":{"code":"52","name":"Haute-Marne"},"252":{"code":"70","name":"Haute-Sa\u00f4ne"},"256":{"code":"74","name":"Haute-Savoie"},"269":{"code":"87","name":"Haute-Vienne"},"186":{"code":"05","name":"Hautes-Alpes"},"247":{"code":"65","name":"Hautes-Pyr\u00e9n\u00e9es"},"274":{"code":"92","name":"Hauts-de-Seine"},"216":{"code":"34","name":"H\u00e9rault"},"217":{"code":"35","name":"Ille-et-Vilaine"},"218":{"code":"36","name":"Indre"},"219":{"code":"37","name":"Indre-et-Loire"},"220":{"code":"38","name":"Is\u00e8re"},"221":{"code":"39","name":"Jura"},"222":{"code":"40","name":"Landes"},"223":{"code":"41","name":"Loir-et-Cher"},"224":{"code":"42","name":"Loire"},"226":{"code":"44","name":"Loire-Atlantique"},"227":{"code":"45","name":"Loiret"},"228":{"code":"46","name":"Lot"},"229":{"code":"47","name":"Lot-et-Garonne"},"230":{"code":"48","name":"Loz\u00e8re"},"231":{"code":"49","name":"Maine-et-Loire"},"232":{"code":"50","name":"Manche"},"233":{"code":"51","name":"Marne"},"235":{"code":"53","name":"Mayenne"},"236":{"code":"54","name":"Meurthe-et-Moselle"},"237":{"code":"55","name":"Meuse"},"1034":{"code":"98","name":"Monaco"},"238":{"code":"56","name":"Morbihan"},"239":{"code":"57","name":"Moselle"},"240":{"code":"58","name":"Ni\u00e8vre"},"241":{"code":"59","name":"Nord"},"242":{"code":"60","name":"Oise"},"243":{"code":"61","name":"Orne"},"1033":{"code":"OM","name":"Outre-Mer"},"257":{"code":"75","name":"Paris"},"244":{"code":"62","name":"Pas-de-Calais"},"245":{"code":"63","name":"Puy-de-D\u00f4me"},"246":{"code":"64","name":"Pyr\u00e9n\u00e9es-Atlantiques"},"248":{"code":"66","name":"Pyr\u00e9n\u00e9es-Orientales"},"251":{"code":"69","name":"Rh\u00f4ne"},"253":{"code":"71","name":"Sa\u00f4ne-et-Loire"},"254":{"code":"72","name":"Sarthe"},"255":{"code":"73","name":"Savoie"},"259":{"code":"77","name":"Seine-et-Marne"},"258":{"code":"76","name":"Seine-Maritime"},"275":{"code":"93","name":"Seine-Saint-Denis"},"262":{"code":"80","name":"Somme"},"263":{"code":"81","name":"Tarn"},"264":{"code":"82","name":"Tarn-et-Garonne"},"272":{"code":"90","name":"Territoire-de-Belfort"},"277":{"code":"95","name":"Val-d'Oise"},"276":{"code":"94","name":"Val-de-Marne"},"265":{"code":"83","name":"Var"},"266":{"code":"84","name":"Vaucluse"},"267":{"code":"85","name":"Vend\u00e9e"},"268":{"code":"86","name":"Vienne"},"270":{"code":"88","name":"Vosges"},"271":{"code":"89","name":"Yonne"},"260":{"code":"78","name":"Yvelines"}}},"IT":{"name":"Italie","regions":{"606":{"code":"AG","name":"Agrigento"},"607":{"code":"AL","name":"Alessandria"},"608":{"code":"AN","name":"Ancona"},"609":{"code":"AO","name":"Aosta"},"611":{"code":"AR","name":"Arezzo"},"612":{"code":"AP","name":"Ascoli-Piceno"},"613":{"code":"AT","name":"Asti"},"614":{"code":"AV","name":"Avellino"},"615":{"code":"BA","name":"Bari"},"616":{"code":"BT","name":"Barletta-Andria-Trani"},"617":{"code":"BL","name":"Belluno"},"618":{"code":"BN","name":"Benevento"},"619":{"code":"BG","name":"Bergamo"},"620":{"code":"BI","name":"Biella"},"621":{"code":"BO","name":"Bologna"},"622":{"code":"BZ","name":"Bolzano"},"623":{"code":"BS","name":"Brescia"},"624":{"code":"BR","name":"Brindisi"},"625":{"code":"CA","name":"Cagliari"},"626":{"code":"CL","name":"Caltanissetta"},"627":{"code":"CB","name":"Campobasso"},"628":{"code":"CI","name":"Carbonia Iglesias"},"629":{"code":"CE","name":"Caserta"},"630":{"code":"CT","name":"Catania"},"631":{"code":"CZ","name":"Catanzaro"},"632":{"code":"CH","name":"Chieti"},"633":{"code":"CO","name":"Como"},"634":{"code":"CS","name":"Cosenza"},"635":{"code":"CR","name":"Cremona"},"636":{"code":"KR","name":"Crotone"},"637":{"code":"CN","name":"Cuneo"},"638":{"code":"EN","name":"Enna"},"639":{"code":"FM","name":"Fermo"},"640":{"code":"FE","name":"Ferrara"},"641":{"code":"FI","name":"Firenze"},"642":{"code":"FG","name":"Foggia"},"643":{"code":"FC","name":"Forli-Cesena"},"644":{"code":"FR","name":"Frosinone"},"645":{"code":"GE","name":"Genova"},"646":{"code":"GO","name":"Gorizia"},"647":{"code":"GR","name":"Grosseto"},"648":{"code":"IM","name":"Imperia"},"649":{"code":"IS","name":"Isernia"},"610":{"code":"AQ","name":"L'Aquila"},"650":{"code":"SP","name":"La-Spezia"},"651":{"code":"LT","name":"Latina"},"652":{"code":"LE","name":"Lecce"},"653":{"code":"LC","name":"Lecco"},"654":{"code":"LI","name":"Livorno"},"655":{"code":"LO","name":"Lodi"},"656":{"code":"LU","name":"Lucca"},"657":{"code":"MC","name":"Macerata"},"658":{"code":"MN","name":"Mantova"},"659":{"code":"MS","name":"Massa-Carrara"},"660":{"code":"MT","name":"Matera"},"661":{"code":"VS","name":"Medio Campidano"},"662":{"code":"ME","name":"Messina"},"663":{"code":"MI","name":"Milano"},"664":{"code":"MO","name":"Modena"},"665":{"code":"MB","name":"Monza-Brianza"},"666":{"code":"NA","name":"Napoli"},"667":{"code":"NO","name":"Novara"},"668":{"code":"NU","name":"Nuoro"},"669":{"code":"OG","name":"Ogliastra"},"670":{"code":"OT","name":"Olbia Tempio"},"671":{"code":"OR","name":"Oristano"},"672":{"code":"PD","name":"Padova"},"673":{"code":"PA","name":"Palermo"},"674":{"code":"PR","name":"Parma"},"675":{"code":"PV","name":"Pavia"},"676":{"code":"PG","name":"Perugia"},"677":{"code":"PU","name":"Pesaro-Urbino"},"678":{"code":"PE","name":"Pescara"},"679":{"code":"PC","name":"Piacenza"},"680":{"code":"PI","name":"Pisa"},"681":{"code":"PT","name":"Pistoia"},"682":{"code":"PN","name":"Pordenone"},"683":{"code":"PZ","name":"Potenza"},"684":{"code":"PO","name":"Prato"},"685":{"code":"RG","name":"Ragusa"},"686":{"code":"RA","name":"Ravenna"},"687":{"code":"RC","name":"Reggio-Calabria"},"688":{"code":"RE","name":"Reggio-Emilia"},"689":{"code":"RI","name":"Rieti"},"690":{"code":"RN","name":"Rimini"},"691":{"code":"RM","name":"Roma"},"692":{"code":"RO","name":"Rovigo"},"693":{"code":"SA","name":"Salerno"},"694":{"code":"SS","name":"Sassari"},"695":{"code":"SV","name":"Savona"},"696":{"code":"SI","name":"Siena"},"697":{"code":"SR","name":"Siracusa"},"698":{"code":"SO","name":"Sondrio"},"699":{"code":"TA","name":"Taranto"},"700":{"code":"TE","name":"Teramo"},"701":{"code":"TR","name":"Terni"},"702":{"code":"TO","name":"Torino"},"703":{"code":"TP","name":"Trapani"},"704":{"code":"TN","name":"Trento"},"705":{"code":"TV","name":"Treviso"},"706":{"code":"TS","name":"Trieste"},"707":{"code":"UD","name":"Udine"},"708":{"code":"VA","name":"Varese"},"709":{"code":"VE","name":"Venezia"},"710":{"code":"VB","name":"Verbania"},"711":{"code":"VC","name":"Vercelli"},"712":{"code":"VR","name":"Verona"}
15459,"713":{"code":"VV","name":"Vibo-Valentia"},"714":{"code":"VI","name":"Vicenza"},"715":{"code":"VT","name":"Viterbo"}}},"LU":{"name":"Luxembourg"},"PT":{"name":"Portugal","regions":{"908":{"code":"PT-01","name":"Aveiro"},"909":{"code":"PT-02","name":"Beja"},"910":{"code":"PT-03","name":"Braga"},"911":{"code":"PT-04","name":"Bragan\u00e7a"},"912":{"code":"PT-05","name":"Castelo Branco"},"913":{"code":"PT-06","name":"Coimbra"},"914":{"code":"PT-07","name":"\u00c9vora"},"915":{"code":"PT-08","name":"Faro"},"916":{"code":"PT-09","name":"Guarda"},"917":{"code":"PT-10","name":"Leiria"},"918":{"code":"PT-11","name":"Lisboa"},"919":{"code":"PT-12","name":"Portalegre"},"920":{"code":"PT-13","name":"Porto"},"927":{"code":"PT-30","name":"Regi\u00e3o Aut\u00f3noma da Madeira"},"926":{"code":"PT-20","name":"Regi\u00e3o Aut\u00f3noma dos A\u00e7ores"},"921":{"code":"PT-14","name":"Santar\u00e9m"},"922":{"code":"PT-15","name":"Set\u00fabal"},"923":{"code":"PT-16","name":"Viana do Castelo"},"924":{"code":"PT-17","name":"Vila Real"},"925":{"code":"PT-18","name":"Viseu"}}},"data_id":1791458888},"captcha":[],"instant-purchase":[],"loggedAsCustomer":[],"persistent":[],"review":[],"payments":[],"wishlist":{"items":[]},"alma_section":[],"ammessages":[],"hyva_checkout":[],"cartsguru-tracker":[],"credit":[],"recently_viewed_product":[],"recently_compared_product":[],"product_data_storage":[],"paypal-billing-agreement":[],"paypal-buyer-country":[]}</script>
15459 15460<div x-data="amMessage()" x-bind="eventListeners"></div> 15461
15462<script> 15463 function amMessage() { 15464 let lastProcessedDataId = null; 15465 const processedMessageHashes = new Set(); 15466 let debounceTimer; 15467 15468 return { 15469 init() { 15470 this.processStoredMessages(); 15471 15472 window.addEventListener('beforeunload', () => { 15473 processedMessageHashes.clear(); 15474 lastProcessedDataId = null; 15475 }); 15476 }, 15477 15478 eventListeners: { 15479 ['@private-content-loaded.window'](event) { 15480 const { ammessages } = event.detail.data; 15481 15482 clearTimeout(debounceTimer); 15483 debounceTimer = setTimeout(() => { 15484 if (ammessages?.data_id && ammessages.data_id === lastProcessedDataId) { 15485 return; 15486 } 15487 15488 lastProcessedDataId = ammessages?.data_id; 15489 15490 // Checking hash message 15491 if (ammessages?.messages) { 15492 const messageHash = JSON.stringify(ammessages.messages); 15493 if (processedMessageHashes.has(messageHash)) { 15494 return; 15495 } 15496 processedMessageHashes.add(messageHash); 15497 } 15498 15499 const isCartPage = document.body.classList.contains('checkout-cart-index'); 15500 const isCheckoutPage = document.body.classList.contains('hyva_checkout-index-index'); 15501 const onePageSuccessPage = document.body.classList.contains('hyva_checkout_onepage_success'); 15502 15503 if (!isCartPage && !isCheckoutPage && !onePageSuccessPage && ammessages?.messages) { 15504 this.processMessages(ammessages.messages); 15505 } 15506 }, 500); 15507 }, 15508 ['@am-promo:initialized.window']() { 15509 this.processStoredMessages(); 15510 }, 15511 ['@am-promo-products-recollect.window']() { 15512 this.processStoredMessages(); 15513 } 15514 }, 15515 15516 processStoredMessages() { 15517 try { 15518 const messages = JSON.parse(localStorage.getItem('amFreeGiftCartMessages')); 15519 if (messages?.length) { 15520 messages.forEach(message => dispatchMessages([message], 5000)); 15521 localStorage.removeItem('amFreeGiftCartMessages'); 15522 } 15523 } catch (e) { 15524 console.error('Error processing stored messages:', e); 15525 } 15526 }, 15527 15528 processMessages(messages) { 15529 if (messages?.notice) { 15530 this.handleNoticeMessage(messages.notice); 15531 } 15532 }, 15533 15534 handleNoticeMessage(notice) { 15535 if (!notice) return; 15536 dispatchMessages([{ type: notice.type, text: notice.text }]); 15537 } 15538 } 15539 } 15540</script>
15540 15541</div></div><div class="contents"> 15542 <footer> 15543 <div> 15544 <style>.cmsb319-mx-auto { 15545margin-left: auto; 15546margin-right: auto 15547} 15548.cmsb319-mb-10 { 15549margin-bottom: 2.5rem 15550} 15551.cmsb319-mb-2 { 15552margin-bottom: 0.5rem 15553} 15554.cmsb319-mb-3 { 15555margin-bottom: 0.75rem 15556} 15557.cmsb319-mb-4 { 15558margin-bottom: 1rem 15559} 15560.cmsb319-mb-5 { 15561margin-bottom: 1.25rem 15562} 15563.cmsb319-mb-6 { 15564margin-bottom: 1.5rem 15565} 15566.cmsb319-block { 15567display: block 15568} 15569.cmsb319-flex { 15570display: flex 15571} 15572.cmsb319-grid { 15573display: grid 15574} 15575.cmsb319-h-10 { 15576height: 2.5rem 15577} 15578.cmsb319-h-4 { 15579height: 1rem 15580} 15581.cmsb319-h-\[24px\] { 15582height: 24px 15583} 15584.cmsb319-h-\[26px\] { 15585height: 26px 15586} 15587.cmsb319-h-\[40px\] { 15588height: 40px 15589} 15590.cmsb319-w-10 { 15591width: 2.5rem 15592} 15593.cmsb319-w-4 { 15594width: 1rem 15595} 15596.cmsb319-w-\[100px\] { 15597width: 100px 15598} 15599.cmsb319-w-\[36px\] { 15600width: 36px 15601} 15602.cmsb319-w-auto { 15603width: auto 15604} 15605.cmsb319-w-full { 15606width: 100% 15607} 15608.cmsb319-max-w-sm { 15609max-width: 24rem 15610} 15611.cmsb319-grid-cols-1 { 15612grid-template-columns: repeat(1, minmax(0, 1fr)) 15613} 15614.cmsb319-flex-col { 15615flex-direction: column 15616} 15617.cmsb319-flex-wrap { 15618flex-wrap: wrap 15619} 15620.cmsb319-items-center { 15621align-items: center 15622} 15623.cmsb319-items-baseline { 15624align-items: baseline 15625} 15626.cmsb319-justify-center { 15627justify-content: center 15628} 15629.cmsb319-gap-1\.5 { 15630gap: 0.375rem 15631} 15632.cmsb319-gap-12 { 15633gap: 3rem 15634} 15635.cmsb319-gap-2 { 15636gap: 0.5rem 15637} 15638.cmsb319-gap-3 { 15639gap: 0.75rem 15640} 15641.cmsb319-gap-5 { 15642gap: 1.25rem 15643} 15644.cmsb319-space-y-2 > :not([hidden]) ~ :not([hidden]) { 15645--tw-space-y-reverse: 0; 15646margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse))); 15647margin-bottom: calc(0.5rem * var(--tw-space-y-reverse)) 15648} 15649.cmsb319-rounded-lg { 15650border-radius: 0.5rem 15651} 15652.cmsb319-rounded-md { 15653border-radius: 0.375rem 15654} 15655.cmsb319-border { 15656border-width: 1px 15657} 15658.cmsb319-border-t { 15659border-top-width: 1px 15660} 15661.cmsb319-border-zinc-200 { 15662--tw-border-opacity: 1; 15663border-color: rgb(228 228 231 / var(--tw-border-opacity)) 15664} 15665.cmsb319-bg-white { 15666--tw-bg-opacity: 1; 15667background-color: rgb(255 255 255 / var(--tw-bg-opacity)) 15668} 15669.cmsb319-bg-zinc-100 { 15670--tw-bg-opacity: 1; 15671background-color: rgb(244 244 245 / var(--tw-bg-opacity)) 15672} 15673.cmsb319-px-6 { 15674padding-left: 1.5rem; 15675padding-right: 1.5rem 15676} 15677.cmsb319-py-12 { 15678padding-top: 3rem; 15679padding-bottom: 3rem 15680} 15681.cmsb319-pt-6 { 15682padding-top: 1.5rem 15683} 15684.cmsb319-text-center { 15685text-align: center 15686} 15687.cmsb319-text-sm { 15688font-size: 0.875rem; 15689line-height: 1.25rem 15690} 15691.cmsb319-text-xs { 15692font-size: 0.75rem; 15693line-height: 1rem 15694} 15695.cmsb319-font-semibold {
15696font-weight: 600 15697} 15698.cmsb319-uppercase { 15699text-transform: uppercase 15700} 15701.cmsb319-leading-relaxed { 15702line-height: 1.625 15703} 15704.cmsb319-tracking-wider { 15705letter-spacing: 0.05em 15706} 15707.cmsb319-text-zinc-500 { 15708--tw-text-opacity: 1; 15709color: rgb(113 113 122 / var(--tw-text-opacity)) 15710} 15711.cmsb319-text-zinc-600 { 15712--tw-text-opacity: 1; 15713color: rgb(82 82 91 / var(--tw-text-opacity)) 15714} 15715.cmsb319-text-zinc-700 { 15716--tw-text-opacity: 1; 15717color: rgb(63 63 70 / var(--tw-text-opacity)) 15718} 15719.cmsb319-text-zinc-900 { 15720--tw-text-opacity: 1; 15721color: rgb(24 24 27 / var(--tw-text-opacity)) 15722} 15723.cmsb319-shadow-sm { 15724--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); 15725--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color); 15726box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) 15727} 15728.cmsb319-transition { 15729transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; 15730transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); 15731transition-duration: 150ms 15732} 15733.cmsb319-transition-all { 15734transition-property: all; 15735transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); 15736transition-duration: 150ms 15737} 15738.cmsb319-duration-300 { 15739transition-duration: 300ms 15740} 15741.cmsb319-hover\:scale-110:hover { 15742--tw-scale-x: 1.1; 15743--tw-scale-y: 1.1; 15744transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) 15745} 15746.cmsb319-hover\:text-white:hover { 15747--tw-text-opacity: 1; 15748color: rgb(255 255 255 / var(--tw-text-opacity)) 15749} 15750@media (min-width: 768px) { 15751.cmsb319-md\:order-1 { 15752order: 1 15753} 15754.cmsb319-md\:grid-cols-3 { 15755grid-template-columns: repeat(3, minmax(0, 1fr)) 15756} 15757.cmsb319-md\:flex-row-reverse { 15758flex-direction: row-reverse 15759} 15760.cmsb319-md\:justify-between { 15761justify-content: space-between 15762} 15763.cmsb319-md\:gap-7 { 15764gap: 1.75rem 15765} 15766} 15767@media (min-width: 1024px) { 15768.cmsb319-lg\:pb-6 { 15769padding-bottom: 1.5rem 15770} 15771.cmsb319-lg\:pt-12 {
15772padding-top: 3rem 15773} 15774.cmsb319-lg\:\[grid-template-columns\:2fr_1fr_1fr_1fr\] { 15775grid-template-columns: 2fr 1fr 1fr 1fr 15776} 15777}</style> 15778<!-- Contenu principal du footer --> 15779 <div class="content-wrapper cmsb319-mx-auto cmsb319-mb-4 "> 15780 <section class=" cmsb319-bg-white cmsb319-w-full cmsb319-rounded-lg cmsb319-shadow-sm cmsb319-border cmsb319-border-zinc-200 "> 15781 <div class="cmsb319-px-6 cmsb319-lg:pt-12 cmsb319-lg:pb-6 cmsb319-py-12"> 15782 <!-- Grille principale --> 15783 <div class="cmsb319-grid cmsb319-grid-cols-1 cmsb319-md:grid-cols-3 cmsb319-lg:[grid-template-columns:2fr_1fr_1fr_1fr] cmsb319-gap-12 cmsb319-mb-10 cmsb319-w-full"> 15784 15785 <!-- Bloc marque --> 15786 <div class="cmsb319-w-full"> 15787 <div class="cmsb319-mb-5 cmsb319-flex cmsb319-items-baseline cmsb319-gap-1.5 "> 15788 <picture class="cmsb319-h-[40px] cmsb319-w-auto"><source type="image/webp" srcset="https://www.esprit-ktm.com/media/logo/stores/9/ESPRIT_KTM.webp"><img src="https://www.esprit-ktm.com/media/logo/stores/9/ESPRIT_KTM.png" alt="ESPRIT-KTM" class="cmsb319-h-[40px] cmsb319-w-auto" width="126" height="28" loading="lazy" /></picture> 15789 </div> 15790 <p class="cmsb319-text-sm cmsb319-text-zinc-700 cmsb319-leading-relaxed cmsb319-mb-4 cmsb319-max-w-sm "> 15791 ESPRIT-KTM propose des pièces d'origine pour toute la gamme KTM, des modèles classiques aux plus 15792 récents. 15793 Retrouvez facilement vues éclatées, accessoires et vêtements officiels pour entretenir et équiper 15794 votre moto. 15795 </p> 15796 15797 <div class="cmsb319-flex cmsb319-gap-3 "> 15798 <a href="https://www.facebook.com/espritktm" target="_blank" rel="noopener noreferrer" 15799 class="cmsb319-flex cmsb319-items-center cmsb319-justify-center cmsb319-w-10 cmsb319-h-10 cmsb319-rounded-md cmsb319-bg-zinc-100 cmsb319-border cmsb319-border-zinc-200 cmsb319-transition-all 15800 cmsb319-duration-300 hover:bg-primary-600 hover:border-primary-600 cmsb319-hover:scale-110"> 15801 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" class="cmsb319-w-4 cmsb319-h-4 cmsb319-text-zinc-700 cmsb319-hover:text-white" viewBox="0 0 16 16" fill="none" role="img"> 15802 <path d="M15.0133 8.00026C15.0133 11.7882 12.2062 14.9198 8.55963 15.428C8.21867 15.4753 7.86982 15.5 7.51572 15.5C7.10699 15.5 6.70561 15.4674 6.31473 15.4044C2.74433 14.8294 0.0176697 11.7331 0.0176697 8.00026C0.0176697 3.85809 3.37477 0.5 7.5152 0.5C11.6556 0.5 15.0133 3.85809 15.0133 8.00026Z" fill="#1877F2"/> 15803 <path d="M8.55964 6.52197V8.15582H10.5802L10.2603 10.3567H8.55964V15.4275C8.21868 15.4748 7.86983 15.4995 7.51574 15.4995C7.107 15.4995 6.70562 15.4669 6.31474 15.4038V10.3567H4.45126V8.15582H6.31474V6.15673C6.31474 4.9165 7.31977 3.91064 8.56017 3.91064V3.9117C8.56385 3.9117 8.567 3.91064 8.57068 3.91064H10.5807V5.81409H9.26731C8.87697 5.81409 8.55964 6.1315 8.55964 6.52197Z" fill="white"/> 15804 </svg> 15805 15806 </a> 15807 <a href="https://www.instagram.com/esprit.ktm" target="_blank" rel="noopener noreferrer" 15808 class="cmsb319-flex cmsb319-items-center cmsb319-justify-center cmsb319-w-10 cmsb319-h-10 cmsb319-rounded-md cmsb319-bg-zinc-100 cmsb319-border cmsb319-border-zinc-200 cmsb319-transition-all 15809 cmsb319-duration-300 hover:bg-primary-600 hover:border-primary-600 cmsb319-hover:scale-110 "> 15810 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" class="cmsb319-w-4 cmsb319-h-4 cmsb319-text-zinc-700 cmsb319-hover:text-white" viewBox="0 0 15 16" fill="none" role="img"> 15811 <path d="M7.52368 0.5H7.48954C3.35805 0.5 0.00881958 3.85022 0.00881958 7.98292V8.01708C0.00881958 12.1498 3.35805 15.5 7.48954 15.5H7.52368C11.6552 15.5 15.0044 12.1498 15.0044 8.01708V7.98292C15.0044 3.85022 11.6552 0.5 7.52368 0.5Z" fill="url(#paint0_linear_186_603)"/> 15812 <path d="M9.8269 3.55176H5.18685C3.90495 3.55176 2.86209 4.59492 2.86209 5.8772V10.1234C2.86209 11.4057 3.90495 12.4489 5.
1581218685 12.4489H9.8269C11.1088 12.4489 12.1517 11.4057 12.1517 10.1234V5.8772C12.1517 4.59492 11.1088 3.55176 9.8269 3.55176ZM3.68219 5.8772C3.68219 5.0474 4.35729 4.3721 5.18685 4.3721H9.8269C10.6565 4.3721 11.3316 5.0474 11.3316 5.8772V10.1234C11.3316 10.9532 10.6565 11.6285 9.8269 11.6285H5.18685C4.35729 11.6285 3.68219 10.9532 3.68219 10.1234V5.8772Z" fill="white"/> 15813 <path d="M7.5069 10.1628C8.69896 10.1628 9.66931 9.19266 9.66931 7.99972C9.66931 6.80679 8.69949 5.83667 7.5069 5.83667C6.31431 5.83667 5.34448 6.80679 5.34448 7.99972C5.34448 9.19266 6.31431 10.1628 7.5069 10.1628ZM7.5069 6.65754C8.24714 6.65754 8.84921 7.25979 8.84921 8.00025C8.84921 8.74071 8.24714 9.34296 7.5069 9.34296C6.76666 9.34296 6.16458 8.74071 6.16458 8.00025C6.16458 7.25979 6.76666 6.65754 7.5069 6.65754Z" fill="white"/> 15814 <path d="M9.86947 6.18612C10.1905 6.18612 10.4521 5.92493 10.4521 5.60331C10.4521 5.28169 10.191 5.02051 9.86947 5.02051C9.54794 5.02051 9.28683 5.28169 9.28683 5.60331C9.28683 5.92493 9.54794 6.18612 9.86947 6.18612Z" fill="white"/> 15815 <defs> 15816 <linearGradient id="paint0_linear_186_603" x1="2.1996" y1="13.3086" x2="12.8167" y2="2.69508" gradientUnits="userSpaceOnUse"> 15817 <stop stop-color="#FAAD4F"/> 15818 <stop offset="0.35" stop-color="#DD2A7B"/> 15819 <stop offset="0.62" stop-color="#9537B0"/> 15820 <stop offset="1" stop-color="#515BD4"/> 15821 </linearGradient> 15822 </defs> 15823 </svg> 15824 15825 </a> 15826 <a href="https://www.youtube.com/@Esprit-KTM" target="_blank" rel="noopener noreferrer" 15827 class="cmsb319-flex cmsb319-items-center cmsb319-justify-center cmsb319-w-10 cmsb319-h-10 cmsb319-rounded-md cmsb319-bg-zinc-100 cmsb319-border cmsb319-border-zinc-200 cmsb319-transition-all 15828 cmsb319-duration-300 hover:bg-primary-600 hover:border-primary-600 cmsb319-hover:scale-110"> 15829 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" class="cmsb319-w-4 cmsb319-h-4 cmsb319-text-zinc-700 cmsb319-hover:text-white" viewBox="0 0 15 16" fill="none" role="img"> 15830 <path d="M15.0088 8C15.0088 3.85786 11.652 0.5 7.51104 0.5C3.37012 0.5 0.0132446 3.85786 0.0132446 8C0.0132446 12.1421 3.37012 15.5 7.51104 15.5C11.652 15.5 15.0088 12.1421 15.0088 8Z" fill="#FF0209"/> 15831 <path d="M10.6938 11.3218C10.4704 11.346 10.2418 11.3502 10.0226 11.3497C8.31292 11.3481 6.60325 11.3466 4.8941 11.3455C4.35617 11.3455 3.7703 11.3281 3.35461 10.9861C2.88623 10.5998 2.78876 9.92993 2.75082 9.32386C2.69814 8.49328 2.69392 7.66007 2.73713 6.82896C2.76083 6.37256 2.80245 5.90509 2.99897 5.49191C3.14017 5.1952 3.37568 4.92853 3.67705 4.78834C4.02741 4.62549 4.39411 4.65448 4.77134 4.65395C5.67439 4.6529 6.57743 4.65237 7.48048 4.65132C8.41935 4.65026 9.35874 4.64974 10.2976 4.64868C10.7412 4.64868 11.2175 4.65764 11.5795 4.9143C12.0468 5.24527 12.1738 5.87505 12.2323 6.44476C12.3403 7.49405 12.3418 8.55442 12.2365 9.60371C12.1927 10.0364 12.12 10.4938 11.835 10.8222C11.5526 11.1479 11.1337 11.2733 10.6943 11.3213L10.6938 11.3218Z" fill="white"/> 15832 <path d="M9.04 8L6.4921 6.52856V9.47144L9.04 8Z" fill="#FF0209"/> 15833 </svg> 15834 15835 </a> 15836 </div> 15837 </div> 15838 15839 <!-- Catégories populaires --> 15840 <div class="cmsb319-w-full "> 15841 <h3 class="cmsb319-font-semibold cmsb319-text-zinc-900 cmsb319-mb-3">Catégories populaires</h3> 15842 <ul class="cmsb319-space-y-2 cmsb319-text-sm cmsb319-text-zinc-600"> 15843 <li><a href="/pieces-detachees-origines-ktm.html" class="hover:text-primary-600 cmsb319-transition">Pièces d'origine 15844 KTM</a></li> 15845 <li><a href="/pieces-detachees-origines-ktm/accessoires.html" class="hover:text-primary-600 cmsb319-transition">Accessoires</a> 15846 </li> 15847 <li><a href="/vetements-ktm.html" class="hover:text-primary-600 cmsb319-transition">Vêtements</a></li> 15848 <li><a href="/entretien.html" class="hover:text-primary-600 cmsb319-transition">Entretien</a></li> 15849 </ul> 15850 </div> 15851 15852 <!-- Informations légales --> 15853 <div class="cmsb319-w-full"> 15854 <h3 class="cmsb319-font-semibold cmsb319-text-zinc-900 cmsb319-mb-3">Informations légales</h3> 15855 <ul class="cmsb319-space-y-2 cmsb319-text-sm cmsb319-text-zinc-600"> 15856 <li><a href="/conditions-generales-de-vente.html" class="hover:text-primary-600 cmsb319-transition">Conditions 15857 générales de vente</a></li> 15858 <li><a href="/politique-de-confidentialite.html" 15859 class="hover:text-primary-600 cmsb319-transition">Politique de confidentialité</a></li> 15860 <li><a href="/politique-de-livraison.html" class="hover:text-primary-600 cmsb319-transition">Politique de 15861 livraison</a></li> 15862 <li><a href="/politique-de-retractation.html" class="hover:text-primary-600 cmsb319-transition">Politique de 15863 rétractation</a></li> 15864 <li><a href="/procedure-retour" class="hover:text-primary-600 cmsb319-transition">Procédure de retour</a></li> 15865 <li><a href="javascript:Sddan.cmp.displayUI()" class="hover:text-primary-600 cmsb319-transition">Paramétrage des 15866 cookies</a></li> 15867 <li><a href="/mentions-legales.html" class="hover:text-primary-600 cmsb319-transition">Mentions légales</a></li> 15868 </ul> 15869 </div> 15870 15871 <!-- Service client, Paiement & Livraison --> 15872 <div class="cmsb319-w-full"> 15873 <div class="cmsb319-mb-6"> 15874 <h3 class="cmsb319-font-semibold cmsb319-text-zinc-900 cmsb319-mb-3">Service client</h3> 15875 <ul class="cmsb319-space-y-2 cmsb319-text-sm cmsb319-text-zinc-600"> 15876 <li><a href="/faq" class="hover:text-primary-600 cmsb319-transition">FAQ</a></li> 15877 <li> 15878 <a href="/contact" class="cmsb319-flex cmsb319-items-center cmsb319-gap-2 hover:text-primary-600 cmsb319-transition "> 15879
15880 <span>Formulaire de contact</span> 15881 </a> 15882 </li> 15883 <li class="cmsb319-flex cmsb319-items-center cmsb319-gap-2"> 15884 15885 <a href="tel:+33465030764" class="hover:text-primary-600 cmsb319-transition">+33 4 65 03 07 64</a> 15886 </li> 15887 </ul> 15888 </div> 15889 15890 <div class="cmsb319-mb-6"> 15891 <p class="cmsb319-text-xs cmsb319-font-semibold cmsb319-text-zinc-900 cmsb319-uppercase cmsb319-tracking-wider cmsb319-mb-2 ">Modes de paiement</p> 15892 <div class="cmsb319-flex cmsb319-gap-2 cmsb319-flex-wrap"> 15893 <svg xmlns="http://www.w3.org/2000/svg" width="42" height="28" class="cmsb319-h-[24px] cmsb319-w-[36px]" style="box-shadow: 0px 0px 1px 0px rgba(0 0 0);" viewBox="0 0 42 28" fill="none" role="img"> 15894 <g clip-path="url(#clip0_201_1748)"> 15895 <path d="M0 3.5C0 1.567 1.567 0 3.5 0H38.5C40.433 0 42 1.567 42 3.5V24.5C42 26.433 40.433 28 38.5 28H3.5C1.567 28 0 26.433 0 24.5V3.5Z" fill="white"/> 15896 <path d="M16.7194 8.93559L12.4629 19.0912H9.68579L7.59114 10.9866C7.46397 10.4874 7.3534 10.3045 6.96664 10.0942C6.3352 9.7516 5.29245 9.43021 4.375 9.23074L4.43731 8.93559H8.90754C9.47734 8.93559 9.98957 9.31489 10.1189 9.97106L11.2252 15.8476L13.9592 8.93542H16.7194V8.93559ZM27.6004 15.7755C27.6115 13.0951 23.894 12.9474 23.9196 11.7501C23.9275 11.3857 24.2745 10.9982 25.034 10.8993C25.4104 10.8501 26.4476 10.8125 27.6239 11.3538L28.0853 9.20026C27.4532 8.97081 26.6399 8.75 25.628 8.75C23.0313 8.75 21.2038 10.1304 21.1884 12.107C21.1716 13.569 22.4928 14.3849 23.4881 14.8707C24.5121 15.3682 24.8557 15.6879 24.8518 16.1329C24.8445 16.8141 24.0351 17.1149 23.2787 17.1267C21.9582 17.1471 21.192 16.7694 20.5812 16.4855L20.105 18.7103C20.7189 18.9919 21.8519 19.2376 23.0265 19.25C25.7865 19.25 27.5919 17.8867 27.6004 15.7755ZM34.4573 19.0912H36.8871L34.7662 8.93559H32.5236C32.0193 8.93559 31.5939 9.22921 31.4056 9.68065L27.4634 19.0912H30.222L30.7696 17.5743H34.1402L34.4573 19.0912ZM31.526 15.4928L32.9088 11.6798L33.7047 15.4928H31.526ZM20.473 8.93559L18.3006 19.0912H15.6736L17.8468 8.93559H20.473Z" fill="#1434CB"/> 15897 </g> 15898 <defs> 15899 <clipPath id="clip0_201_1748"> 15900 <rect width="42" height="28" fill="white"/> 15901 </clipPath> 15902 </defs> 15903 </svg> 15904 15905 <svg xmlns="http://www.w3.org/2000/svg" width="42" height="28" class="cmsb319-h-[24px] cmsb319-w-[36px]" style="box-shadow: 0px 0px 1px 0px rgba(0 0 0);" viewBox="0 0 42 28" fill="none" role="img"> 15906 <g clip-path="url(#clip0_201_1760)"> 15907 <path d="M0 3.5C0 1.567 1.567 0 3.5 0H38.5C40.433 0 42 1.567 42 3.5V24.5C42 26.433 40.433 28 38.5 28H3.5C1.567 28 0 26.433 0 24.5V3.5Z" fill="white"/> 15908 <path d="M24.8286 7.12158H17.1724V20.881H24.8286V7.12158Z" fill="#FF5F00"/> 15909 <path d="M17.6585 14C17.6585 11.2097 18.9661 8.72326 21.0005 7.12153C19.5106 5.95 17.6342 5.25 15.5925 5.25C10.7606 5.25 6.84253 9.16806 6.84253 14C6.84253 18.8319 10.7606 22.75 15.5925 22.75C17.6342 22.75 19.5106 22.05 21.0005 20.8785C18.9661 19.2767 17.6585 16.7903 17.6585 14Z" fill="#EB001B"/> 15910 <path d="M35.156 14C35.156 18.8319 31.238 22.75 26.406 22.75C24.3644 22.75 22.488 22.05 20.998 20.8785C23.0324 19.2767 24.3401 16.7903 24.3401 14C24.3401 11.2097 23.0324 8.72326 20.998 7.12153C22.4855 5.95 24.3644 5.25 26.406 5.25C31.238 5.25 35.156 9.16806 35.156 14Z" fill="#F79E1B"/> 15911 </g> 15912 <defs> 15913 <clipPath id="clip0_201_1760"> 15914 <rect width="42" height="28" fill="white"/> 15915 </clipPath> 15916 </defs> 15917 </svg> 15918 15919 <svg xmlns="http://www.w3.org/2000/svg" width="42" height="28" class="cmsb319-h-[24px] cmsb319-w-[36px]" style="box-shadow: 0px 0px 1px 0px rgba(0 0 0);" viewBox="0 0 42 28" fill="none" role="img"> 15920 <g clip-path="url(#clip0_201_1754)"> 15921 <path d="M0 4.5C0 2.567 1.567 1 3.5 1H38.5C40.433 1 42 2.567 42 4.5V25.5C42 27.433 40.433 29 38.5 29H3.5C1.567 29 0 27.433 0 25.5V4.5Z" fill="white"/> 15922 <path d="M26.1267 9.275C26.1267 11.4427 24.1263 14 21.0996 14H18.1841L18.041 14.903L17.3608 19.25H13.7375L15.9172 5.25H21.7875C23.7642 5.25 25.3194 6.35172 25.8922 7.88278C26.0574 8.32793 26.137 8.80029 26.1267 9.275Z" fill="#002991"/> 15923 <path d="M28.2151 13.2999C28.0217 14.4749 27.4164 15.5427 26.5077 16.3123
15923C25.5989 17.0818 24.446 17.5028 23.2552 17.4999H21.2306L20.3879 22.7499H16.7841L17.3608 19.2499L18.0413 14.9029L18.1841 13.9999H21.0996C24.1224 13.9999 26.1267 11.4426 26.1267 9.2749C27.6142 10.0426 28.4814 11.5938 28.2151 13.2999Z" fill="#60CDFF"/> 15924 <path d="M26.1267 9.275C25.5029 8.94872 24.7466 8.75 23.9233 8.75H19.0077L18.1841 14H21.0996C24.1224 14 26.1267 11.4427 26.1267 9.275Z" fill="#008CFF"/> 15925 </g> 15926 <defs> 15927 <clipPath id="clip0_201_1754"> 15928 <rect width="42" height="28" fill="white"/> 15929 </clipPath> 15930 </defs> 15931 </svg> 15932 15933 <svg xmlns="http://www.w3.org/2000/svg" width="42" height="28" class="cmsb319-h-[24px] cmsb319-w-[36px]" style="box-shadow: 0px 0px 1px 0px rgba(0 0 0);" viewBox="0 0 42 28" fill="none" role="img"> 15934 <g clip-path="url(#clip0_201_1766)"> 15935 <path d="M0 3.5C0 1.567 1.567 0 3.5 0H38.5C40.433 0 42 1.567 42 3.5V24.5C42 26.433 40.433 28 38.5 28H3.5C1.567 28 0 26.433 0 24.5V3.5Z" fill="white"/> 15936 <path d="M10.7333 6.37558C12.9727 5.94102 15.1914 6.03508 17.3134 6.94785C20.0581 8.12854 21.4675 10.2989 21.8261 13.2115C21.8392 13.3174 21.8345 13.427 21.8261 13.5338C21.8212 13.5956 21.7921 13.656 21.7577 13.773C21.4752 13.7915 21.18 13.8268 20.8847 13.8277C18.7296 13.8348 16.574 13.834 14.4188 13.8375C14.2251 13.8379 14.0092 13.7985 13.8436 13.8697C13.7074 13.9287 13.5745 14.115 13.5487 14.2633C13.5358 14.3432 13.7452 14.5414 13.8632 14.5494C14.378 14.5827 14.8969 14.5666 15.414 14.567C17.3323 14.568 19.2506 14.5679 21.1688 14.5709C21.3592 14.5712 21.5495 14.5895 21.8026 14.6031C21.9073 15.6328 21.6486 16.5837 21.287 17.4889C20.1621 20.3064 17.9203 21.691 15.0399 22.1666C13.1009 22.4866 11.1901 22.3359 9.32314 21.6695C6.39475 20.6245 4.48727 17.9624 4.38368 14.8443C4.31742 12.853 4.6269 10.9843 5.82607 9.3414C7.04555 7.6707 8.74666 6.76111 10.7333 6.37558ZM23.4032 14.5582C25.1046 14.5909 26.8077 14.5699 28.5097 14.5699V14.5748C30.061 14.5748 31.6129 14.5604 33.164 14.5836C33.7628 14.5924 34.3736 14.6273 34.9559 14.7555C36.6194 15.1211 37.8054 16.8856 37.6024 18.6148C37.3886 20.4334 35.9794 21.7752 34.204 21.7945C30.6286 21.8332 27.0528 21.8382 23.4774 21.8775C22.8729 21.8841 22.5984 21.7495 22.6181 21.0523C22.6722 19.1363 22.6677 17.217 22.6298 15.3004C22.6176 14.6803 22.8333 14.5473 23.4032 14.5582ZM23.5448 6.61191C26.7541 6.61424 29.9645 6.61179 33.1737 6.63535C33.7912 6.63976 34.4261 6.67678 35.0214 6.8248C36.6829 7.23782 37.7935 8.92028 37.5741 10.5894C37.3324 12.428 35.9536 13.727 34.162 13.7467C30.5874 13.7863 27.0119 13.7893 23.4374 13.8365C22.8275 13.8445 22.6202 13.6746 22.6347 13.0406C22.678 11.1461 22.6551 9.25028 22.6581 7.35507C22.6585 7.14387 22.6591 6.93217 22.6591 6.66855C22.9975 6.64578 23.2711 6.61182 23.5448 6.61191Z" fill="url(#paint0_linear_201_1766)"/> 15937 </g> 15938 <defs> 15939 <linearGradient id="paint0_linear_201_1766" x1="55.0812" y1="-3.84989" x2="4.59528" y2="23.1611" gradientUnits="userSpaceOnUse"> 15940 <stop stop-color="#002052"/> 15941 <stop offset="1" stop-color="#009656"/> 15942 </linearGradient> 15943 <clipPath id="clip0_201_1766"> 15944 <rect width="42" height="28" fill="white"/> 15945 </clipPath> 15946 </defs> 15947 </svg> 15948 15949 </div> 15950 </div> 15951 15952 <div> 15953 <p class=" cmsb319-text-xs cmsb319-font-semibold cmsb319-text-zinc-900 cmsb319-uppercase cmsb319-tracking-wider cmsb319-mb-2">Modes de livraison</p> 15954 <div class="cmsb319-flex cmsb319-gap-3 cmsb319-flex-wrap"> 15955 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="126" height="28" viewBox="0 0 126 28" class="cmsb319-h-[26px] cmsb319-w-[100px]" fill="none" role="img"> 15956 <rect width="126" height="28" fill="url(#pattern0_201_1833)"/> 15957 <defs> 15958 <pattern id="pattern0_201_1833" patternContentUnits="objectBoundingBox" width="1" height="1"> 15959 <use xlink:href="#image0_201_1833" transform="matrix(0.000669792 0 0 0.00301205 -0.0348292 -1.30422)"/> 15960 </pattern> 15961 <image id="image0_201_1833" width="1600" height="1200" preserveAspectRatio="none" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABkAAAASwCAYAAACjAYaXAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAIABJREFUeJzs3Xu0pXV93/H3HhTwQlwoSURrt4kWKPUSuwyjiSFGmhS8RaGpuk3tWgUaTbSJsWvV1abpH2mbtaJRo1FbZCSInCgarRcavGGlJgpW03idgSCeqIkakKIgIgy7f2zEmTNnzpyZOec85/J6rXWAs5/L77P2DP88n/V7vgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOjR+IAAAAPklEQVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICDwf8Heh3W9SgEPLoAAAAASUVORK5CYII="/> 15962 </defs> 15963 </svg> 15964 15965 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="105" height="28" viewBox="0 0 105 28" class="cmsb319-h-[26px] cmsb319-w-[100px]" fill="none" role="img"> 15966 <rect width="105" height="28" fill="url(#pattern0_201_1837)"/> 15967 <defs> 15968 <pattern id="pattern0_201_1837" patternContentUnits="objectBoundingBox" width="1" height="1"> 15969 <use xlink:href="#image0_201_1837" transform="matrix(0.002 0 0 0.0075188 0
15969-1.36842)"/> 15970 </pattern> 15971 <image id="image0_201_1837" width="500" height="500" preserveAspectRatio="none" xlink:href="data:image/png;base64,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"/> 15972 </defs> 15973 </svg> 15974 15975 </div> 15976 </div> 15977 </div> 15978 </div> 15979 15980 <!-- Ligne du bas avec switchers --> 15981 <div class="cmsb319-border-t cmsb319-border-zinc-200 cmsb319-pt-6"> 15982 <div class="content-wrapper cmsb319-mx-auto cmsb319-flex cmsb319-w-full cmsb319-flex-col cmsb319-items-center cmsb319-gap-5 cmsb319-md:flex-row-reverse cmsb319-md:justify-between cmsb319-md:gap-7"> 15983 <div class="cmsb319-flex cmsb319-flex-wrap cmsb319-justify-center cmsb319-gap-5 cmsb319-text-center cmsb319-md:order-1"> 15984 15985 15986 15987<div x-data="Dropdown()" x-ref="DropdownWrapper" class="relative"> 15988 <button 15989 @click="toggleDropdown()" 15990 id="store-selector-button" 15991 data-dropdown-toggle="store-selector" 15992 data-dropdown-placement="top" 15993 class="bg-bg-500 inline-flex items-center justify-between gap-6 whitespace-nowrap rounded-sm border border-text-500 px-6 py-3" 15994 type="button" 15995 :aria-expanded="isDropdownVisible" 15996 aria-controls="store-selector" 15997 >
15998 Esprit KTM FR <span 15999 :class="isDropdownVisible ? '-rotate-90' : 'rotate-90'" 16000 class="transition-transform motion-reduce:transition-none"> 16001 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" width="24" height="24" role="img"> 16002 <path d="M10.707 17.707 16.414 12l-5.707-5.707-1.414 1.414L13.586 12l-4.293 4.293z"/> 16003</svg> 16004 </span> 16005 </button> 16006 <div 16007 id="store-selector" 16008 x-cloak 16009 x-a11y-trap="isDropdownVisible" 16010 x-show="isDropdownVisible" 16011 class="bg-bg-500 absolute left-1/2 z-10 hidden min-w-full -translate-x-1/2 transform rounded-sm border border-text-500 p-2 16012 bottom-full " 16013 :class="{ 'block': isDropdownVisible, 'hidden': !isDropdownVisible }" 16014 > 16015 <ul class="max-h-48 overflow-y-auto p-2 text-sm" 16016 aria-labelledby="store-selector-button"> 16017 16018<li> 16019 <a 16020 tabindex="0" 16021 data-value="esprit_ktm_es" 16022 class="flex cursor-pointer justify-between p-3 text-text-500 md:hover:text-primary-600 gap-x-6 text-nowrap rounded-xs" 16023 href="https://www.esprit-ktm.com/stores/store/redirect/___store/esprit_ktm_es/___from_store/esprit_ktm_fr/uenc/aHR0cHM6Ly93d3cuZXNwcml0LWt0bS5lcy8_X19fc3RvcmU9ZXNwcml0X2t0bV9lcw~~/" 16024 > 16025 Esprit KTM ES </a> 16026</li> 16027 16028<li> 16029 <a 16030 tabindex="0" 16031 data-value="esprit_ktm_fr" 16032 class="flex cursor-pointer justify-between p-3 text-text-500 bg-bg-600 text-primary-600 md:cursor-not-allowed gap-x-6 text-nowrap rounded-xs" 16033 href="https://www.esprit-ktm.com/stores/store/redirect/___store/esprit_ktm_fr/___from_store/esprit_ktm_fr/uenc/aHR0cHM6Ly93d3cuZXNwcml0LWt0bS5jb20vP19fX3N0b3JlPWVzcHJpdF9rdG1fZnI~/" 16034 aria-current="true" 16035 > 16036 Esprit KTM FR </a> 16037</li> 16038 </ul> 16039 </div> 16040</div> 16041 16042 16043 16044 16045 </div> 16046 <small class="copyright"> 16047 <span>© 2026 Esprit-KTM.com - Tous droits réservés - R.C.S GAP 508 215 357 - APE : 4540 Z - TVA Intra : FR 83 508 215 357</span> 16048</small> 16049 16050 </div> 16051 </div> 16052 </div> 16053 </section> 16054 </div> </div> 16055 </footer> 16056</div> 16057<div class="footer content"><div id="footer-portal" class="bg-bg-500"></div> 16058</div>
16058<script type="text/x-magento-init">{"*": 16059 {"Magento_Persistent/js/remember-me-config": { 16060 "config": {"persistenceConfig":{"isRememberMeCheckboxVisible":true,"isRememberMeCheckboxChecked":true}} 16061 }}}</script>
16061<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"9e2d3d13f1d14373b25e021e4f107b93","r":1,"spa":2}' crossorigin="anonymous"></script>
16061 16062</body> 16063</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.