{
  "version": 3,
  "sources": ["/cdn/shop/t/4/assets/fs-device-selector-route.js?fs_device_build=20260614-search-modal-slide"],
  "sourcesContent": ["(() => {\n  const blurAutoFocusedSearch = () => {\n    const active = document.activeElement;\n    if (active && active.matches && active.matches('fs-device-selector [data-device-search]')) {\n      active.blur();\n    }\n  };\n  document.addEventListener('click', (event) => {\n    if (!event.target.closest('fs-device-selector [data-device-toggle]')) return;\n    [0, 60, 160, 320].forEach((delay) => window.setTimeout(blurAutoFocusedSearch, delay));\n  }, true);\n})();\n/* fs-device-selector-no-autofocus */\n\n(() => {\n  const ROOT_CLASS = 'fs-search-open';\n  const findOpenSearchDetails = () => document.querySelector('details-modal.header__search details[open]');\n  const setSearchOpen = (isOpen) => {\n    document.documentElement.classList.toggle(ROOT_CLASS, Boolean(isOpen));\n  };\n  const syncSearchState = () => setSearchOpen(Boolean(findOpenSearchDetails()));\n  const closeSearch = (source) => {\n    const details = source && source.closest ? source.closest('details') : findOpenSearchDetails();\n    if (!details) {\n      setSearchOpen(false);\n      return;\n    }\n    details.removeAttribute('open');\n    const summary = details.querySelector('summary');\n    if (summary) summary.setAttribute('aria-expanded', 'false');\n    setSearchOpen(false);\n  };\n  document.addEventListener('click', (event) => {\n    const searchTrigger = event.target.closest('details-modal.header__search summary');\n    if (searchTrigger) {\n      window.setTimeout(syncSearchState, 0);\n      window.setTimeout(syncSearchState, 80);\n      return;\n    }\n    const closeTrigger = event.target.closest('details-modal.header__search .search-modal__close-button, details-modal.header__search .modal-overlay');\n    if (!closeTrigger) return;\n    event.preventDefault();\n    event.stopPropagation();\n    closeSearch(closeTrigger);\n  }, true);\n  document.addEventListener('keyup', (event) => {\n    if (event.key === 'Escape') window.setTimeout(syncSearchState, 0);\n  });\n  const startObserver = () => {\n    const root = document.body;\n    if (!root) return;\n    new MutationObserver(syncSearchState).observe(root, {\n      subtree: true,\n      attributes: true,\n      attributeFilter: ['open']\n    });\n    syncSearchState();\n  };\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', startObserver, { once: true });\n  } else {\n    startObserver();\n  }\n})();\n/* fs-search-modal-state */\n\n(() => {\n  const STORAGE_KEY = 'fs_selected_device_v2';\n  const SUGGESTION_KEY = 'fs_device_model_suggestion_v1';\n  const PROBE_KEY = 'fs_device_model_suggestion_probe_v1';\n  const normalizeText = (value) => String(value || '')\n    .toLowerCase()\n    .normalize('NFD')\n    .replace(/[\\u0300-\\u036f]/g, '')\n    .replace(/\\b(galaxy|global|compatible|pour|for|case|coque|iphone)\\b/g, ' ')\n    .replace(/[^a-z0-9]+/g, ' ')\n    .trim();\n  const unique = (items) => Array.from(new Set(items.map((item) => String(item || '').trim()).filter(Boolean)));\n  const readData = () => {\n    const scripts = Array.from(document.querySelectorAll('fs-device-selector script[type=\"application/json\"]'));\n    for (const script of scripts) {\n      try {\n        const data = JSON.parse(script.textContent || '{}');\n        if (Array.isArray(data.brands) && data.brands.length) return data;\n      } catch (error) {}\n    }\n    return { brands: [] };\n  };\n  const flattenModels = () => readData().brands.flatMap((brand) => (brand.models || []).map((model) => ({\n    brand: brand.label,\n    label: model.label,\n    slug: model.slug,\n    imageUrl: model.imageUrl || '',\n    productCount: Number(model.productCount || 0),\n    categories: Array.isArray(model.categories) ? model.categories : [],\n    normalized: normalizeText((brand.label || '') + ' ' + model.label)\n  }))).filter((model) => model.label && model.slug);\n  const samsungHints = (value) => {\n    const source = String(value || '').toUpperCase();\n    const hints = [];\n    [\n      [/SM-S928/, 'Samsung S24 Ultra'],\n      [/SM-S926/, 'Samsung S24 Plus'],\n      [/SM-S921/, 'Samsung S24'],\n      [/SM-S918/, 'Samsung S23 Ultra'],\n      [/SM-S916/, 'Samsung S23 Plus'],\n      [/SM-S911/, 'Samsung S23'],\n      [/SM-S908/, 'Samsung S22 Ultra'],\n      [/SM-S906/, 'Samsung S22 Plus'],\n      [/SM-S901/, 'Samsung S22'],\n      [/SM-G998/, 'Samsung S21 Ultra'],\n      [/SM-G996/, 'Samsung S21 Plus'],\n      [/SM-G991/, 'Samsung S21'],\n      [/SM-G988/, 'Samsung S20 Ultra'],\n      [/SM-G986|SM-G985/, 'Samsung S20 Plus'],\n      [/SM-G981|SM-G980/, 'Samsung S20'],\n      [/SM-A556/, 'Samsung A55'],\n      [/SM-A546/, 'Samsung A54'],\n      [/SM-A356/, 'Samsung A35'],\n      [/SM-A346/, 'Samsung A34'],\n      [/SM-A536/, 'Samsung A53'],\n      [/SM-A528|SM-A526|SM-A525/, 'Samsung A52'],\n      [/SM-A715/, 'Samsung A71'],\n      [/SM-A515/, 'Samsung A51']\n    ].forEach(([pattern, label]) => {\n      if (pattern.test(source)) hints.push(label);\n    });\n    return hints;\n  };\n  const userAgentHints = () => {\n    const ua = navigator.userAgent || '';\n    const hints = [];\n    const androidMatch = ua.match(/Android[^;)]*(?:;\\s*([^;)]+?))?\\s*(?:Build|\\))/i);\n    if (androidMatch && androidMatch[1]) hints.push(androidMatch[1]);\n    ['Redmi', 'POCO', 'Pixel', 'Mi ', 'M200', 'M210', 'M220', 'M230', 'SM-', 'CPH', 'DN'].forEach((marker) => {\n      const index = ua.indexOf(marker);\n      if (index !== -1) hints.push(ua.slice(index, Math.min(ua.length, index + 46)).replace(/[;)].*$/, ''));\n    });\n    return hints.concat(samsungHints(ua));\n  };\n  const getSignals = async () => {\n    const signals = userAgentHints();\n    const uaData = navigator.userAgentData;\n    if (uaData && uaData.mobile === false) return [];\n    if (uaData && typeof uaData.getHighEntropyValues === 'function') {\n      try {\n        const values = await uaData.getHighEntropyValues(['model', 'platform', 'mobile']);\n        if (values && values.mobile === false) return [];\n        signals.push(values.model, values.platform);\n        signals.push(...samsungHints(values.model));\n      } catch (error) {}\n    }\n    if (!/Android|Mobile/i.test(navigator.userAgent || '') && !(uaData && uaData.mobile)) return [];\n    if (/iPhone/i.test(navigator.userAgent || '')) return [];\n    return unique(signals).filter((signal) => normalizeText(signal).length >= 3);\n  };\n  const scoreMatch = (model, signal) => {\n    const normalizedSignal = normalizeText(signal);\n    if (!normalizedSignal || !model.normalized) return 0;\n    if (model.normalized === normalizedSignal) return 100;\n    if (model.normalized.includes(normalizedSignal) && normalizedSignal.length >= 6) return 92;\n    if (normalizedSignal.includes(model.normalized) && model.normalized.length >= 6) return 90;\n    const tokens = normalizedSignal.split(' ').filter((token) => token.length > 1);\n    if (tokens.length >= 2 && tokens.every((token) => model.normalized.split(' ').includes(token))) return 84;\n    return 0;\n  };\n  const findBestMatch = (signals) => {\n    const models = flattenModels();\n    let best = null;\n    for (const signal of signals) {\n      for (const model of models) {\n        const score = scoreMatch(model, signal);\n        if (!best || score > best.score) best = { score, signal, model };\n      }\n    }\n    return best && best.score >= 90 ? best : null;\n  };\n  const readJson = (key) => {\n    try { return JSON.parse(localStorage.getItem(key) || 'null'); } catch (error) { return null; }\n  };\n  const writeJson = (key, value) => {\n    try { localStorage.setItem(key, JSON.stringify(value)); } catch (error) {}\n  };\n  const currentCollectionHandle = () => {\n    const parts = window.location.pathname.split('/').filter(Boolean);\n    if (parts[0] !== 'collections' || !parts[1]) return '';\n    if (parts[1] === 'all' || parts[1].indexOf('modele-') === 0) return '';\n    return parts[1];\n  };\n  const deviceCollectionPath = (device) => device && device.slug ? '/collections/modele-' + device.slug : '/collections/all';\n  const isHomePage = () => {\n    const path = window.location.pathname.replace(/\\/+$/, '') || '/';\n    return path === '/';\n  };\n  const safeDeviceUrl = (device) => {\n    const handle = currentCollectionHandle();\n    if (handle && device && device.slug) return '/collections/' + handle + '/' + device.slug;\n    return deviceCollectionPath(device);\n  };\n  const activeSuggestion = () => {\n    if (readJson(STORAGE_KEY)) return null;\n    const suggestion = readJson(SUGGESTION_KEY);\n    if (!suggestion || !suggestion.slug || suggestion.dismissedAt || suggestion.acceptedAt) return null;\n    return suggestion;\n  };\n  const updateSelectors = () => {\n    document.querySelectorAll('fs-device-selector').forEach((selector) => {\n      if (typeof selector.updateLabel === 'function') selector.updateLabel();\n      if (typeof selector.render === 'function') selector.render();\n      const selected = readJson(STORAGE_KEY);\n      const label = selector.querySelector('[data-device-label]');\n      const selectedText = selector.querySelector('[data-device-selected]');\n      if (label) label.textContent = selected && selected.label ? selected.label : 'Choisir mon mod\u00E8le';\n      if (selectedText) selectedText.textContent = selected && selected.label ? 'Mod\u00E8le choisi : ' + selected.label : 'Aucun mod\u00E8le choisi';\n    });\n  };\n  const removeSuggestionCards = () => {\n    document.querySelectorAll('.fs-device-selector__suggestion').forEach((card) => card.remove());\n  };\n  const dismissSuggestion = () => {\n    const suggestion = readJson(SUGGESTION_KEY);\n    if (suggestion) writeJson(SUGGESTION_KEY, { ...suggestion, dismissedAt: new Date().toISOString() });\n    removeSuggestionCards();\n  };\n  const acceptSuggestion = () => {\n    const suggestion = activeSuggestion();\n    if (!suggestion) return;\n    const device = {\n      brand: suggestion.brand,\n      label: suggestion.label,\n      slug: suggestion.slug,\n      imageUrl: suggestion.imageUrl || '',\n      productCount: suggestion.productCount || 0,\n      categories: suggestion.categories || [],\n      selectedAt: new Date().toISOString(),\n      suggested: true,\n      detectionSignal: suggestion.signal || ''\n    };\n    writeJson(STORAGE_KEY, device);\n    writeJson(SUGGESTION_KEY, { ...suggestion, acceptedAt: device.selectedAt });\n    updateSelectors();\n    removeSuggestionCards();\n    window.dispatchEvent(new CustomEvent('fs:device:selected', { detail: device }));\n    if (isHomePage()) return;\n    const next = safeDeviceUrl(device);\n    if (window.location.pathname + window.location.search !== next) window.location.href = next;\n  };\n  const renderSuggestion = () => {\n    const suggestion = activeSuggestion();\n    document.querySelectorAll('fs-device-selector').forEach((selector) => {\n      const head = selector.querySelector('.fs-device-selector__head');\n      if (!head) return;\n      let card = head.querySelector('.fs-device-selector__suggestion');\n      if (!suggestion) {\n        if (card) card.remove();\n        return;\n      }\n      if (!card) {\n        card = document.createElement('div');\n        card.className = 'fs-device-selector__suggestion';\n        const title = head.querySelector('.fs-device-selector__title');\n        if (title && title.nextSibling) head.insertBefore(card, title.nextSibling);\n        else head.insertBefore(card, head.firstChild);\n      }\n      card.innerHTML = '<div><span class=\"fs-device-selector__suggestion-kicker\">Suggestion</span><p class=\"fs-device-selector__suggestion-title\">' + suggestion.label + '</p><p class=\"fs-device-selector__suggestion-copy\">Ce mod\u00E8le semble correspondre \u00E0 votre appareil.</p></div><div class=\"fs-device-selector__suggestion-actions\"><button type=\"button\" class=\"fs-device-selector__suggestion-accept\" data-device-suggestion-accept>Utiliser</button><button type=\"button\" class=\"fs-device-selector__suggestion-dismiss\" data-device-suggestion-dismiss>Ignorer</button></div>';\n      const accept = card.querySelector('[data-device-suggestion-accept]');\n      const dismiss = card.querySelector('[data-device-suggestion-dismiss]');\n      if (accept) accept.addEventListener('click', (event) => { event.preventDefault(); event.stopPropagation(); acceptSuggestion(); }, { once: true });\n      if (dismiss) dismiss.addEventListener('click', (event) => { event.preventDefault(); event.stopPropagation(); dismissSuggestion(); }, { once: true });\n    });\n  };\n  const storeSuggestion = (model, signal, score) => {\n    if (readJson(STORAGE_KEY) || readJson(SUGGESTION_KEY)) return;\n    const suggestion = {\n      brand: model.brand,\n      label: model.label,\n      slug: model.slug,\n      imageUrl: model.imageUrl || '',\n      productCount: model.productCount || 0,\n      categories: model.categories || [],\n      suggestedAt: new Date().toISOString(),\n      signal,\n      score,\n      status: 'pending'\n    };\n    writeJson(SUGGESTION_KEY, suggestion);\n    renderSuggestion();\n    window.dispatchEvent(new CustomEvent('fs:device:suggestion', { detail: suggestion }));\n  };\n  const run = async () => {\n    try {\n      renderSuggestion();\n      if (readJson(STORAGE_KEY) || readJson(SUGGESTION_KEY) || readJson(PROBE_KEY)) return;\n      writeJson(PROBE_KEY, { triedAt: new Date().toISOString() });\n      const signals = await getSignals();\n      const best = findBestMatch(signals);\n      if (best) storeSuggestion(best.model, best.signal, best.score);\n    } catch (error) {}\n  };\n  document.addEventListener('click', (event) => {\n    if (!event.target.closest('fs-device-selector [data-device-toggle]')) return;\n    [0, 80, 180].forEach((delay) => window.setTimeout(renderSuggestion, delay));\n  }, true);\n  window.addEventListener('storage', (event) => {\n    if (!event.key || event.key === SUGGESTION_KEY || event.key === STORAGE_KEY) renderSuggestion();\n  });\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', run, { once: true });\n  } else {\n    run();\n  }\n})();\n/* fs-mobile-device-autodetect */\n\n(() => {\n  const applySortTightRuntime = () => {\n    let style = document.getElementById('fs-shop-runtime-fixes');\n    const created = !style;\n    if (!style) {\n      style = document.createElement('style');\n      style.id = 'fs-shop-runtime-fixes';\n    }\n    if (!style.textContent.includes('fs-sort-tight-route')) {\n      style.textContent += '\\n/* fs-sort-tight-route */\\n'\n        + '.facet-filters button{margin-left:0!important}\\n'\n        + '.fs-sort-select-wrapper .fs-sort-dropdown__menu{padding:.18rem!important;left:0!important;right:auto!important;margin-left:0!important;overflow-x:hidden!important;scrollbar-gutter:auto!important}\\n'\n        + '.fs-sort-select-wrapper .fs-sort-dropdown__option{margin-left:0!important;justify-content:flex-start!important;padding:.7rem .55rem!important}\\n'\n        + '.fs-sort-select-wrapper .fs-sort-dropdown__option[aria-selected=\"true\"]{box-shadow:inset .14rem 0 0 #566044!important}\\n'\n        + 'html[data-fs-shop-mode=\"dark\"] .fs-sort-select-wrapper .fs-sort-dropdown__option[aria-selected=\"true\"]{box-shadow:inset .14rem 0 0 #a9bd6a!important}';\n    }\n    if (created) document.head.appendChild(style);\n  };\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', applySortTightRuntime, { once: true });\n  } else {\n    applySortTightRuntime();\n  }\n})();\n\n(() => {\n  const normalizeQuickBuyModal = (root = document) => {\n    const scope = root && root.querySelectorAll ? root : document;\n    const modals = scope.matches && (scope.matches('modal-dialog.quick-add-modal') || scope.matches('.quick-add-modal'))\n      ? [scope]\n      : Array.from(scope.querySelectorAll('modal-dialog.quick-add-modal, .quick-add-modal'));\n    modals.forEach((modal) => {\n      modal.querySelectorAll('.variant-item__sku,.quick-order-list__sku,.variant-sku,.product__sku').forEach((sku) => {\n        sku.style.setProperty('display', 'none', 'important');\n      });\n      modal.querySelectorAll('.quick-add-modal__content--bulk .variant-item__image-container--no-img').forEach((placeholder) => {\n        placeholder.style.setProperty('display', 'none', 'important');\n        placeholder.style.setProperty('width', '0', 'important');\n        placeholder.style.setProperty('min-width', '0', 'important');\n        placeholder.style.setProperty('height', '0', 'important');\n        const media = placeholder.closest('.variant-item__media');\n        if (media) {\n          media.style.setProperty('display', 'none', 'important');\n          media.style.setProperty('width', '0', 'important');\n          media.style.setProperty('min-width', '0', 'important');\n        }\n      });\n      modal.querySelectorAll('.quick-add-modal__content--bulk .variant-item__media').forEach((media) => {\n        if (media.querySelector('img[src]:not([src=\"\"])')) return;\n        media.style.setProperty('display', 'none', 'important');\n        media.style.setProperty('width', '0', 'important');\n        media.style.setProperty('min-width', '0', 'important');\n      });\n      modal.querySelectorAll('.variant-item__inner').forEach((inner) => {\n        inner.style.setProperty('gap', '0', 'important');\n      });\n    });\n  };\n  if (!window.__fsQuickBuyModalClickReady) {\n    window.__fsQuickBuyModalClickReady = true;\n    document.addEventListener('click', (event) => {\n      if (!event.target.closest('.quick-add__submit, modal-opener, quick-add-modal-opener')) return;\n      [80, 240, 600, 1200].forEach((delay) => {\n        window.setTimeout(() => normalizeQuickBuyModal(document), delay);\n      });\n    }, true);\n  }\n  if (!window.__fsQuickBuyModalIntervalReady) {\n    window.__fsQuickBuyModalIntervalReady = true;\n    window.setInterval(() => {\n      if (document.querySelector('modal-dialog.quick-add-modal[open], .quick-add-modal[open]')) {\n        normalizeQuickBuyModal(document);\n      }\n    }, 700);\n  }\n})();\n\n(() => {\n  const normalizeQuickBuyModal = (root = document) => {\n    const scope = root && root.querySelectorAll ? root : document;\n    const modals = scope.matches && (scope.matches('modal-dialog.quick-add-modal') || scope.matches('.quick-add-modal'))\n      ? [scope]\n      : Array.from(scope.querySelectorAll('modal-dialog.quick-add-modal, .quick-add-modal'));\n    modals.forEach((modal) => {\n      modal.querySelectorAll('.variant-item__sku,.quick-order-list__sku,.variant-sku,.product__sku').forEach((sku) => {\n        sku.style.setProperty('display', 'none', 'important');\n      });\n      modal.querySelectorAll('.quick-add-modal__content--bulk .variant-item__image-container--no-img').forEach((placeholder) => {\n        placeholder.style.setProperty('display', 'none', 'important');\n        placeholder.style.setProperty('width', '0', 'important');\n        placeholder.style.setProperty('min-width', '0', 'important');\n        placeholder.style.setProperty('height', '0', 'important');\n        const media = placeholder.closest('.variant-item__media');\n        if (media) {\n          media.style.setProperty('display', 'none', 'important');\n          media.style.setProperty('width', '0', 'important');\n          media.style.setProperty('min-width', '0', 'important');\n        }\n      });\n      modal.querySelectorAll('.quick-add-modal__content--bulk .variant-item__media').forEach((media) => {\n        if (media.querySelector('img[src]:not([src=\"\"])')) return;\n        media.style.setProperty('display', 'none', 'important');\n        media.style.setProperty('width', '0', 'important');\n        media.style.setProperty('min-width', '0', 'important');\n      });\n      modal.querySelectorAll('.variant-item__inner').forEach((inner) => {\n        inner.style.setProperty('gap', '0', 'important');\n      });\n    });\n  };\n  normalizeQuickBuyModal(document);\n  if (window.MutationObserver && !window.__fsQuickBuyModalObserverReady) {\n    window.__fsQuickBuyModalObserverReady = true;\n    let quickBuyTimer = null;\n    new MutationObserver(() => {\n      window.clearTimeout(quickBuyTimer);\n      quickBuyTimer = window.setTimeout(() => normalizeQuickBuyModal(document), 80);\n    }).observe(document.documentElement, { childList: true, subtree: true });\n  }\n})();\n\n(() => {\n  if (document.getElementById('fs-shop-runtime-fixes')) return;\n  const style = document.createElement('style');\n  style.id = 'fs-shop-runtime-fixes';\n  style.textContent = [\n    'html[data-fs-shop-mode=\"dark\"] .facets__price .field__input,html[data-fs-shop-mode=\"dark\"] .facets__price input[type=\"number\"],html[data-fs-shop-mode=\"dark\"] .facets__price input[type=\"text\"]{background:rgba(255,255,255,.075)!important;color:#f7f8f2!important;-webkit-text-fill-color:#f7f8f2!important;caret-color:#a9bd6a!important;border-color:rgba(169,189,106,.22)!important;opacity:1!important}',\n    'html[data-fs-shop-mode=\"dark\"] .facets__price .field__input::placeholder,html[data-fs-shop-mode=\"dark\"] .facets__price input::placeholder{color:rgba(247,248,242,.62)!important;-webkit-text-fill-color:rgba(247,248,242,.62)!important;opacity:1!important}',\n    'html[data-fs-shop-mode=\"dark\"] .facets__price .field__label{opacity:0!important}'\n  ].join('\\n');\n  document.head.appendChild(style);\n})();\n\n(function(){\n  var STORAGE_KEY='fs_selected_device_v2';\n  var LEGACY_STORAGE_KEY='fs_selected_device';\n  var COMPATIBILITY_FILTER='filter.p.m.fullstack.compatibility';\n  function fsModelAgnosticCollectionHandle(handle){return ['accessoires-all','batteries-externes','cables','chargeurs','popsockets','supports','reconditionne'].indexOf(String(handle||''))!==-1;}\n  function fsStripModelFromAgnosticCollection(){try{var url=new URL(window.location.href);var parts=url.pathname.split('/').filter(Boolean);if(parts[0]==='collections'&&parts[1]&&parts[2]&&fsModelAgnosticCollectionHandle(parts[1])){var next='/collections/'+parts[1]+url.search+url.hash;if(window.location.pathname+window.location.search+window.location.hash!==next)window.location.replace(next);}}catch(e){}}\n  function readData(root){try{var el=root.querySelector('script[type=\"application/json\"]');return JSON.parse(el&&el.textContent||'{\"brands\":[]}');}catch(e){return {brands:[]};}}\n  function dropLegacySelection(){try{localStorage.removeItem(LEGACY_STORAGE_KEY);}catch(e){}}\n  function readSelected(){dropLegacySelection();try{return JSON.parse(localStorage.getItem(STORAGE_KEY)||'null');}catch(e){return null;}}\n  function writeSelected(device){try{localStorage.setItem(STORAGE_KEY,JSON.stringify(device));localStorage.removeItem(LEGACY_STORAGE_KEY);}catch(e){}}\n  function clearSelected(){try{localStorage.removeItem(STORAGE_KEY);localStorage.removeItem(LEGACY_STORAGE_KEY);}catch(e){}}\n  function notifyDeviceSelection(device){try{window.dispatchEvent(new CustomEvent('fs:device:selected',{detail:device||null}));}catch(e){}}\n  function collectionBasePath(){var parts=window.location.pathname.split('/').filter(Boolean);if(parts[0]!=='collections'||!parts[1])return '/collections/all';return '/collections/'+parts[1];}\n  function deviceCollectionPath(device){return device&&device.slug?'/collections/modele-'+device.slug:'/collections/all';}\n  function isHomePage(){var path=window.location.pathname.replace(/\\/+$/,'')||'/';return path==='/';}\n  function collectionDevicePath(collectionHandle,device){return collectionHandle&&device&&device.slug?'/collections/'+collectionHandle+'/'+device.slug:null;}\n  function currentCollectionHandle(){var parts=window.location.pathname.split('/').filter(Boolean);if(parts[0]!=='collections'||!parts[1])return '';if(parts[1]==='all'||parts[1].indexOf('modele-')===0||fsModelAgnosticCollectionHandle(parts[1]))return '';return parts[1];}\n  function safeDeviceUrl(device){\n    var handle=currentCollectionHandle();\n    if(handle)return collectionDevicePath(handle,device)||deviceCollectionPath(device);\n    return deviceCollectionPath(device);\n  }\n  function navigateWithDeviceFilter(device){if(!device||!device.label||isHomePage())return;var parts=window.location.pathname.split('/').filter(Boolean);if(parts[0]==='collections'&&parts[1]&&fsModelAgnosticCollectionHandle(parts[1]))return;var next=safeDeviceUrl(device);if(window.location.pathname+window.location.search!==next)window.location.href=next;}\n  function resetCollectionFilter(){try{var url=new URL(window.location.href);var parts=url.pathname.split('/').filter(Boolean);var target='';if(parts[0]==='collections'&&parts[1]){if(parts[1].indexOf('modele-')===0){target='/collections/all';}else if(parts[2]){target='/collections/'+parts[1];}}if(target){var nextPath=target+url.search+url.hash;if(window.location.pathname+window.location.search+window.location.hash!==nextPath){window.location.href=nextPath;return;}}if(url.searchParams.has(COMPATIBILITY_FILTER)){url.searchParams.delete(COMPATIBILITY_FILTER);var next=url.pathname+url.search+url.hash;if(window.location.pathname+window.location.search+window.location.hash!==next){window.location.href=next;return;}}}catch(e){}window.location.reload();}  function syncCatalogLinks(){var selected=readSelected();document.querySelectorAll('a[href]').forEach(function(link){try{if(link.hasAttribute('data-fs-preserve-href'))return;if(!link.dataset.fsOriginalHref)link.dataset.fsOriginalHref=link.getAttribute('href')||'';var url=new URL(link.dataset.fsOriginalHref,window.location.origin);var parts=url.pathname.split('/').filter(Boolean);if(parts[0]!=='collections'||!parts[1])return;if(!selected||!selected.slug){link.setAttribute('href',link.dataset.fsOriginalHref);return;}if(parts[1]==='all'||parts[1].indexOf('modele-')===0){link.setAttribute('href',deviceCollectionPath(selected));return;}if(fsModelAgnosticCollectionHandle(parts[1])){link.setAttribute('href',url.pathname+url.search+url.hash);return;}link.setAttribute('href','/collections/'+parts[1]+'/'+selected.slug+url.search+url.hash);}catch(e){}});}\n  function numberFrom(text,regex){var match=text.match(regex);return match?parseInt(match[1],10):0;}\n  function normalizeLabel(value){var text=String(value||'');if(text.normalize)text=text.normalize('NFD').replace(/[\\u0300-\\u036f]/g,'');return text.replace(/\\u00a0/g,' ').replace(/\\s+/g,' ').trim().toLowerCase();}\n  function variantRank(text){if(/pro\\s*max|pro\\s*xl/.test(text))return 95;if(/\\bultra\\b/.test(text))return 92;if(/\\bpro\\b/.test(text))return 88;if(/\\bplus\\b|\\+/.test(text))return 76;if(/\\bair\\b/.test(text))return 72;if(/\\b16e\\b|\\be\\b/.test(text))return 62;if(/\\bfe\\b/.test(text))return 56;if(/\\bmini\\b/.test(text))return 45;if(/\\bxl\\b/.test(text))return 42;if(/\\b5g\\b/.test(text))return 12;return 60;}\n  function appleGeneration(text){var iphone=numberFrom(text,/\\biphone\\s+(\\d+)/);if(iphone)return iphone;if(/\\biphone\\s+air\\b/.test(text))return 17;if(/\\bse\\s*3\\b|\\bse3\\b/.test(text))return 12.7;if(/\\bse\\s*2\\b|\\bse2\\b/.test(text))return 11.7;if(/\\bxs\\b/.test(text))return 10.3;if(/\\bxr\\b/.test(text))return 10.2;if(/\\biphone\\s+x\\b|\\bx\\b/.test(text))return 10.1;if(/\\bse\\b/.test(text))return 6.7;return 0;}\n  function modelDisplayKey(model,index){var label=String(model&&model.label||'');var text=normalizeLabel(label);var family=0;var generation=0;var variant=variantRank(text);if(/\\biphone\\b/.test(text)){family=100;generation=appleGeneration(text);}else if(/\\bipad\\b/.test(text)){family=35;generation=numberFrom(text,/\\b(20\\d{2})\\b/)||numberFrom(text,/\\b(\\d+)(?:e|er|eme)?\\b/);}else if(/\\bgalaxy\\s+s\\d+/.test(text)){family=95;generation=numberFrom(text,/\\bgalaxy\\s+s(\\d+)/);}else if(/\\bgalaxy\\s+z/.test(text)){family=94;generation=numberFrom(text,/\\bgalaxy\\s+z\\w*\\s*(\\d+)/)||numberFrom(text,/\\b(\\d+)/);}else if(/\\bgalaxy\\s+note/.test(text)){family=90;generation=numberFrom(text,/\\bgalaxy\\s+note\\s*(\\d+)/);}else if(/\\bgalaxy\\s+a\\d+/.test(text)){family=85;generation=numberFrom(text,/\\bgalaxy\\s+a(\\d+)/);}else if(/\\bpixel\\b/.test(text)){family=82;generation=numberFrom(text,/\\bpixel\\s+(\\d+)/);}else if(/\\bredmi\\s+note\\b/.test(text)){family=80;generation=numberFrom(text,/\\bredmi\\s+note\\s+(\\d+)/);}else if(/\\b(?:mi|xiaomi)\\s+\\d+/.test(text)){family=78;generation=numberFrom(text,/\\b(?:mi|xiaomi)\\s+(\\d+)/);}else if(/\\bpoco\\b/.test(text)){family=76;generation=numberFrom(text,/\\b(?:f|m|c|x)(\\d+)/)||numberFrom(text,/\\b(\\d+)/);}else if(/\\bredmi\\b/.test(text)){family=74;generation=numberFrom(text,/\\bredmi\\s+(\\d+)/);}else if(/\\bhonor\\b|\\bhuawei\\b|\\bmotorola\\b|\\boppo\\b|\\bnothing\\b|\\bcrosscall\\b|\\bcore\\b|\\btrekker\\b/.test(text)){family=70;generation=numberFrom(text,/\\b(\\d+)/);}else{family=10;generation=numberFrom(text,/\\b(\\d+)/);}return{family:family,generation:generation,variant:variant,index:index,label:label};}\n  function compareModelDisplay(a,b){var ak=modelDisplayKey(a.model,a.index);var bk=modelDisplayKey(b.model,b.index);return(bk.family-ak.family)||(bk.generation-ak.generation)||(bk.variant-ak.variant)||ak.label.localeCompare(bk.label,'fr',{numeric:true,sensitivity:'base'})||(ak.index-bk.index);}\n  function modelsForDisplay(models){return Array.isArray(models)?models:[];}\n  function redirectLegacyDeviceRoutes(){var selected=readSelected();try{var url=new URL(window.location.href);var parts=url.pathname.split('/').filter(Boolean);if(parts[0]==='collections'&&parts[1]&&fsModelAgnosticCollectionHandle(parts[1])){if(parts[2]){var clean='/collections/'+parts[1]+url.search+url.hash;if(window.location.pathname+window.location.search+window.location.hash!==clean)window.location.replace(clean);}return;}}catch(e){}if(!selected||!selected.slug)return;try{var url=new URL(window.location.href);var parts=url.pathname.split('/').filter(Boolean);var next=deviceCollectionPath(selected);var isAllCollection=url.pathname==='/collections/all';var isLegacyFilter=url.searchParams.has(COMPATIBILITY_FILTER);var isSelectedSearch=url.pathname==='/search'&&String(url.searchParams.get('q')||'').trim().toLowerCase()===String(selected.label||'').trim().toLowerCase();var isPlainCollection=parts[0]==='collections'&&parts[1]&&parts[1]!=='all'&&parts[1].indexOf('modele-')!==0&&!fsModelAgnosticCollectionHandle(parts[1])&&!parts[2];if(isPlainCollection)next='/collections/'+parts[1]+'/'+selected.slug;if((isAllCollection||isLegacyFilter||isSelectedSearch||isPlainCollection)&&window.location.pathname+window.location.search!==next){window.location.replace(next);}}catch(e){}}\n  fsStripModelFromAgnosticCollection();\n  redirectLegacyDeviceRoutes();\n  if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',syncCatalogLinks);else syncCatalogLinks();\n  if(customElements.get('fs-device-selector'))return;\n  customElements.define('fs-device-selector',class extends HTMLElement{\n    connectedCallback(){\n      redirectLegacyDeviceRoutes();\n      this.data=readData(this);this.brands=this.data.brands||[];this.activeBrand=(readSelected()&&readSelected().brand)||((this.brands[0]||{}).label||'');\n      this.button=this.querySelector('[data-device-toggle]');this.label=this.querySelector('[data-device-label]');this.panel=this.querySelector('[data-device-panel]');this.search=this.querySelector('[data-device-search]');this.brandBox=this.querySelector('[data-device-brands]');this.modelBox=this.querySelector('[data-device-models]');this.selectedText=this.querySelector('[data-device-selected]');this.clearButton=this.querySelector('[data-device-clear]');\n      this.addEventListener('click',(event)=>event.stopPropagation());\n      this.button&&this.button.addEventListener('click',()=>this.toggle());\n      this.search&&this.search.addEventListener('input',()=>this.render());\n      this.clearButton&&this.clearButton.addEventListener('click',()=>{clearSelected();notifyDeviceSelection(null);this.updateLabel();this.close();syncCatalogLinks();resetCollectionFilter();});\n      document.addEventListener('click',(event)=>{if(!this.contains(event.target))this.close();});\n      document.addEventListener('keyup',(event)=>{if(event.key==='Escape')this.close();});\n      this.updateLabel();this.render();syncCatalogLinks();\n    }\n    toggle(){var open=this.dataset.open!=='true';this.dataset.open=open?'true':'false';if(this.button)this.button.setAttribute('aria-expanded',String(open));}\n    close(){this.dataset.open='false';if(this.button)this.button.setAttribute('aria-expanded','false');}\n    updateLabel(){var selected=readSelected();if(this.label)this.label.textContent=selected&&selected.label?selected.label:'Choisir mon mod\u00E8le';if(this.selectedText)this.selectedText.textContent=selected&&selected.label?'Mod\u00E8le choisi : '+selected.label:'Aucun mod\u00E8le choisi';if(this.clearButton)this.clearButton.hidden=!(selected&&selected.label);}\n    render(){var q=normalizeLabel(this.search&&this.search.value||'');var selected=readSelected();var brands=this.brands.map(b=>({label:b.label,slug:b.slug,models:(b.models||[]).filter(m=>!q||normalizeLabel(m.label).includes(q)||normalizeLabel(b.label).includes(q))})).filter(b=>b.models.length);if(!brands.find(b=>b.label===this.activeBrand))this.activeBrand=(brands[0]||{}).label||'';\n      if(this.brandBox){this.brandBox.innerHTML='';brands.forEach(brand=>{var btn=document.createElement('button');btn.type='button';btn.className='fs-device-selector__brand';btn.setAttribute('aria-selected',String(brand.label===this.activeBrand));btn.innerHTML='<span>'+brand.label+'</span><span class=\"fs-device-selector__count\">'+brand.models.length+'</span>';btn.addEventListener('click',()=>{this.activeBrand=brand.label;this.render();});this.brandBox.appendChild(btn);});}\n      if(this.modelBox){this.modelBox.innerHTML='';var active=brands.find(b=>b.label===this.activeBrand);if(!active){var empty=document.createElement('div');empty.className='fs-device-selector__empty';empty.style.display='block';empty.textContent='Aucun mod\u00E8le disponible.';this.modelBox.appendChild(empty);return;}var grid=document.createElement('div');grid.className='fs-device-selector__grid';modelsForDisplay(active.models).forEach(model=>{var btn=document.createElement('button');btn.type='button';btn.className='fs-device-selector__model';var isCurrent=selected&&selected.slug===model.slug;btn.setAttribute('aria-current',String(!!isCurrent));btn.innerHTML='<span>'+model.label+'</span>'+(model.productCount?'<span class=\"fs-device-selector__count\">'+model.productCount+'</span>':'');btn.addEventListener('click',()=>{var device={brand:active.label,label:model.label,slug:model.slug,selectedAt:new Date().toISOString()};writeSelected(device);notifyDeviceSelection(device);this.updateLabel();this.close();navigateWithDeviceFilter(device);});grid.appendChild(btn);});this.modelBox.appendChild(grid);}\n    }\n  });\n})();\n\n/* FS request-only mini cart */\n(function(){\n  var KEY='fs-request-only-lines-v1';\n  var API='https://api.fs-solutions.fr/public/request-only-requests';\n  var state={lines:load()};\n  function load(){try{return JSON.parse(localStorage.getItem(KEY)||'[]').filter(Boolean)}catch(e){return[]}}\n  function save(){localStorage.setItem(KEY,JSON.stringify(state.lines));}\n  function money(v){try{return new Intl.NumberFormat('fr-FR',{style:'currency',currency:'EUR'}).format(Number(v||0))}catch(e){return String(v||0)+' EUR'}}\n  function lineFromButton(btn){return{shopify_product_id:btn.dataset.productId||'',shopify_variant_id:btn.dataset.variantId||'',product_handle:btn.dataset.productHandle||'',product_title:btn.dataset.productTitle||'',variant_title:btn.dataset.variantTitle||'',image_url:btn.dataset.productImage||'',unit_display_price:Number(String(btn.dataset.productPrice||'0').replace(',','.'))||0,unit_final_price:Number(String(btn.dataset.productPrice||'0').replace(',','.'))||0,quantity:1,sku:''}}\n  function ensureDrawer(){\n    var el=document.querySelector('[data-fs-request-only-drawer]');\n    if(el)return el;\n    el=document.createElement('div');\n    el.className='fs-request-only-drawer';\n    el.dataset.fsRequestOnlyDrawer='1';\n    el.innerHTML='<div class=\"fs-request-only-drawer__backdrop\" data-fs-request-close></div><aside class=\"fs-request-only-drawer__panel\" aria-label=\"Demande sur mesure\"><header class=\"fs-request-only-drawer__head\"><div><small>FS Shop</small><strong>Demande sur mesure</strong></div><button class=\"fs-request-only-drawer__close\" type=\"button\" data-fs-request-close aria-label=\"Fermer\">\u00D7</button></header><div class=\"fs-request-only-drawer__body\" data-fs-request-lines></div><form class=\"fs-request-only-form\" data-fs-request-form><div class=\"fs-request-only-form__grid\"><label>Nom<input name=\"name\" autocomplete=\"name\" required></label><label>Email<input name=\"email\" type=\"email\" autocomplete=\"email\" required></label></div><label>T\u00E9l\u00E9phone<input name=\"phone\" autocomplete=\"tel\"></label><label>Message<textarea name=\"message\" placeholder=\"Mod\u00E8le, couleur, d\u00E9lai souhait\u00E9...\"></textarea></label><button class=\"fs-request-only-submit\" type=\"submit\">Envoyer la demande</button><p class=\"fs-request-only-feedback\" data-fs-request-feedback></p><input type=\"text\" name=\"website\" tabindex=\"-1\" autocomplete=\"off\" style=\"position:absolute;left:-9999px\"></form></aside>';\n    document.body.appendChild(el);\n    el.addEventListener('click',function(e){if(e.target.closest('[data-fs-request-close]')) close();});\n    el.querySelector('[data-fs-request-form]').addEventListener('submit',submit);\n    render();\n    return el;\n  }\n  function ensureLauncher(){\n    var btn=document.querySelector('[data-fs-request-launcher]');\n    if(btn)return btn;\n    btn=document.createElement('button');\n    btn.type='button';\n    btn.className='fs-request-only-launcher';\n    btn.dataset.fsRequestLauncher='1';\n    btn.innerHTML='<span class=\"fs-request-only-launcher__icon\">+</span><span class=\"fs-request-only-launcher__text\"><small>FS Shop</small><span>Demande en cours</span></span><span class=\"fs-request-only-launcher__count\" data-fs-request-launcher-count>0</span>';\n    document.body.appendChild(btn);\n    return btn;\n  }\n  function open(){ensureDrawer().setAttribute('data-open','true');document.documentElement.style.overflow='hidden';}\n  function close(){var el=document.querySelector('[data-fs-request-only-drawer]');if(!el)return;el.setAttribute('data-open','false');document.documentElement.style.overflow='';}\n  function updateLauncher(){\n    var btn=ensureLauncher();\n    var count=state.lines.reduce(function(sum,line){return sum+(Number(line.quantity)||0)},0);\n    btn.dataset.visible=count>0?'true':'false';\n    var countEl=btn.querySelector('[data-fs-request-launcher-count]');\n    if(countEl)countEl.textContent=String(count);\n  }\n  function render(){\n    var el=ensureDrawer();\n    var box=el.querySelector('[data-fs-request-lines]');\n    updateLauncher();\n    if(!state.lines.length){box.innerHTML='<p class=\"fs-request-only-drawer__empty\">Ajoutez un produit sur demande pour pr\u00E9parer une demande unique.</p>';return;}\n    box.innerHTML=state.lines.map(function(line,i){return '<div class=\"fs-request-only-line\"><img src=\"'+(line.image_url||'')+'\" alt=\"\"><div><strong>'+escapeHtml(line.product_title||'Produit')+'</strong><small>'+escapeHtml(line.variant_title||'Sur demande')+' \u00B7 '+money(line.unit_display_price)+'</small><div class=\"fs-request-only-line__qty\"><button type=\"button\" data-fs-qty=\"'+i+'\" data-step=\"-1\">\u2212</button><span>'+line.quantity+'</span><button type=\"button\" data-fs-qty=\"'+i+'\" data-step=\"1\">+</button></div></div><button class=\"fs-request-only-line__remove\" type=\"button\" data-fs-remove=\"'+i+'\">Supprimer</button></div>'}).join('');\n  }\n  function escapeHtml(s){return String(s||'').replace(/[&<>\"']/g,function(c){return{'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[c]})}\n  function add(line){var existing=state.lines.find(function(x){return String(x.shopify_variant_id)===String(line.shopify_variant_id)&&String(x.product_handle)===String(line.product_handle)});if(existing)existing.quantity=Math.min(99,Number(existing.quantity||1)+1);else state.lines.push(line);save();render();open();}\n  async function submit(e){\n    e.preventDefault();\n    var form=e.currentTarget;\n    var feedback=form.querySelector('[data-fs-request-feedback]');\n    if(!state.lines.length){feedback.textContent='Ajoutez au moins un produit.';return;}\n    var fd=new FormData(form);\n    var payload={name:fd.get('name'),email:fd.get('email'),phone:fd.get('phone'),message:fd.get('message'),website:fd.get('website'),source_site:'shopify',source_page_url:location.href,lines:state.lines};\n    form.querySelector('button[type=\"submit\"]').disabled=true;feedback.textContent='Envoi en cours...';\n    try{\n      var res=await fetch(API,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(payload)});\n      if(!res.ok){var data=await res.json().catch(function(){return{}});throw new Error(data.error||'Demande non envoy\u00E9e');}\n      state.lines=[];save();render();form.reset();feedback.textContent='Demande envoy\u00E9e. Nous revenons vers vous rapidement.';\n    }catch(err){feedback.textContent=err.message||'Erreur pendant l\u2019envoi.'}\n    finally{form.querySelector('button[type=\"submit\"]').disabled=false}\n  }\n  document.addEventListener('click',function(e){\n    if(e.target.closest('[data-fs-request-close]')){e.preventDefault();close();return;}\n    if(e.target.closest('[data-fs-request-launcher]')){e.preventDefault();open();return;}\n    var addBtn=e.target.closest('[data-fs-request-only-add]');\n    if(addBtn){e.preventDefault();add(lineFromButton(addBtn));return;}\n    var qty=e.target.closest('[data-fs-qty]');\n    if(qty){var i=Number(qty.dataset.fsQty);var step=Number(qty.dataset.step)||0;if(state.lines[i]){state.lines[i].quantity=Math.max(1,Math.min(99,Number(state.lines[i].quantity||1)+step));save();render();}return;}\n    var rem=e.target.closest('[data-fs-remove]');\n    if(rem){state.lines.splice(Number(rem.dataset.fsRemove),1);save();render();}\n  });\n  updateLauncher();\n})();\n\n/* FS partial request-only variants */\n(function(){\n  if(!/\\/products\\//.test(location.pathname))return;\n  var handle=decodeURIComponent(location.pathname.split('/products/')[1]||'').split(/[/?#]/)[0];\n  if(!handle)return;\n  var state={product:null,panel:null,lastId:''};\n  function money(v){try{return new Intl.NumberFormat('fr-FR',{style:'currency',currency:'EUR'}).format(Number(v||0)/100)}catch(e){return String(Number(v||0)/100)+' EUR'}}\n  function esc(s){return String(s||'').replace(/[&<>\"']/g,function(c){return{'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[c]})}\n  function selectedVariantId(){var input=document.querySelector('form[action*=\"/cart/add\"] [name=\"id\"]');return input?String(input.value||''):''}\n  function findVariant(id){return (state.product&&state.product.variants||[]).find(function(v){return String(v.id)===String(id)})}\n  function requestOnlyVariant(v){return !!(v&&(/REQONLY/i.test(String(v.sku||''))||v.available===false))}\n  function imageFor(v){return (v&&v.featured_image&&v.featured_image.src)||state.product.featured_image||''}\n  function ensurePanel(){\n    if(state.panel&&document.body.contains(state.panel))return state.panel;\n    var anchor=document.querySelector('.product-form')||document.querySelector('product-form')||document.querySelector('.fs-product-buy-card')||document.querySelector('.product__info-container');\n    if(!anchor)return null;\n    var panel=document.createElement('div');\n    panel.className='fs-partial-request-only-buy';\n    panel.innerHTML='<p class=\"fs-partial-request-only-buy__eyebrow\">Produit sur demande</p><p class=\"fs-partial-request-only-buy__title\">Sur demande</p><p class=\"fs-partial-request-only-buy__text\">Nous v\u00E9rifions la disponibilit\u00E9, le prix final et le d\u00E9lai avant confirmation.</p><button type=\"button\" class=\"fs-partial-request-only-buy__button fs-request-only-add\" data-fs-request-only-add>Ajouter \u00E0 la demande</button>';\n    anchor.parentNode.insertBefore(panel, anchor.nextSibling);\n    state.panel=panel;\n    return panel;\n  }\n  function setButtonData(panel,v){\n    var btn=panel.querySelector('[data-fs-request-only-add]');\n    if(!btn||!v)return;\n    btn.dataset.productId=String(state.product.id||'');\n    btn.dataset.variantId=String(v.id||'');\n    btn.dataset.productTitle=state.product.title||'';\n    btn.dataset.variantTitle=v.title||'Sur demande';\n    btn.dataset.productHandle=state.product.handle||handle;\n    btn.dataset.productUrl=location.origin+'/products/'+(state.product.handle||handle)+'?variant='+(v.id||'');\n    btn.dataset.productImage=imageFor(v);\n    btn.dataset.productPrice=String((Number(v.price||0)/100).toFixed(2));\n  }\n  function refresh(){\n    if(!state.product)return;\n    var id=selectedVariantId()||String((state.product.variants[0]||{}).id||'');\n    if(!id||id===state.lastId)return;\n    state.lastId=id;\n    var v=findVariant(id);\n    var active=requestOnlyVariant(v);\n    var panel=ensurePanel();\n    var container=document.querySelector('.product__info-container')||document.body;\n    container.classList.toggle('fs-partial-request-only-active',active);\n    document.documentElement.classList.toggle('fs-partial-request-only-active',active);\n    if(panel){\n      panel.dataset.visible=active?'true':'false';\n      if(active&&v){\n        var title=panel.querySelector('.fs-partial-request-only-buy__title');\n        var text=panel.querySelector('.fs-partial-request-only-buy__text');\n        if(title)title.textContent=(v.title||'Variante')+' \u00B7 '+money(v.price);\n        if(text)text.textContent='Disponibilit\u00E9 fournisseur et d\u00E9lai confirm\u00E9s avant devis. Aucun paiement imm\u00E9diat.';\n        setButtonData(panel,v);\n      }\n    }\n  }\n  fetch('/products/'+encodeURIComponent(handle)+'.js',{credentials:'same-origin'})\n    .then(function(r){return r.ok?r.json():null})\n    .then(function(product){\n      if(!product)return;\n      var tags=Array.isArray(product.tags)?product.tags.join(','):String(product.tags||'');\n      if(!/fs-partial-request-only/i.test(tags))return;\n      state.product=product;\n      refresh();\n      setInterval(refresh,250);\n      document.addEventListener('change',function(){state.lastId='';setTimeout(refresh,60);},true);\n    })\n    .catch(function(){});\n})();\n\n\n/* FS public collection empty states 2026-07-01 */\n(function(){\n  function enhanceEmptyCollections(){\n    try{\n      var path=window.location.pathname.replace(/\\/$/,'');\n      if(path!=='/collections/reconditionne')return;\n      var hasCards=document.querySelector('.card-wrapper,.product-card-wrapper,li.grid__item .card');\n      if(hasCards)return;\n      var emptyTitle=Array.from(document.querySelectorAll('h2.title--primary')).find(function(el){\n        return /Aucun produit trouv\u00E9/i.test(el.textContent||'');\n      });\n      if(!emptyTitle||emptyTitle.dataset.fsEmptyEnhanced==='true')return;\n      document.documentElement.classList.add('fs-empty-reconditionne');\n      emptyTitle.dataset.fsEmptyEnhanced='true';\n      emptyTitle.classList.add('fs-empty-collection');\n      emptyTitle.innerHTML='<span class=\"fs-empty-collection__eyebrow\">FS Shop</span><strong>Aucun reconditionn\u00E9 disponible pour le moment</strong><small>Les appareils contr\u00F4l\u00E9s atelier appara\u00EEtront ici d\u00E8s qu\\'ils seront pr\u00EAts \u00E0 la vente. En attendant, consultez les pi\u00E8ces et accessoires compatibles avec votre mod\u00E8le.</small><a class=\"button fs-empty-collection__button\" href=\"/collections/all\">Voir le catalogue</a>';\n    }catch(e){}\n  }\n  if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',enhanceEmptyCollections);\n  else enhanceEmptyCollections();\n  window.addEventListener('pageshow',enhanceEmptyCollections);\n  document.addEventListener('shopify:section:load',enhanceEmptyCollections);\n})();\n\n/* FS request modal 2026-10-23 */\n/* Demandes \u00AB sur demande \u00BB de la boutique dans une fen\u00EAtre sur le site (demande de Jason, 23/10/2026) : remplace les liens\n   mailto \u00AB Demander ce produit \u00BB / \u00AB Demander une variante \u00BB et le tiroir \u00AB Ajouter \u00E0 la demande \u00BB. La demande part dans\n   FS SaaS (Commerce \u203A Demandes sur mesure) par la route publique existante. Sans JavaScript, les liens mailto restent. */\n(function () {\n\tif (window.__fsRequestModal) return;\n\twindow.__fsRequestModal = true;\n\tvar API = \"https://api.fs-solutions.fr/public/request-only-requests\";\n\tvar SELECTEURS = \".fs-product-buy-card__request, .fs-request-only-buy__button, .fs-product-variant-request__button, [data-fs-request-only-add]\";\n\tvar MEMO = \"fs_request_modal_contact_v1\";\n\tvar root = null;\n\tvar etat = { mode: \"product\", line: null, envoi: false, retourFocus: null };\n\n\tfunction esc(v) {\n\t\treturn String(v == null ? \"\" : v).replace(/[&<>\"']/g, function (c) {\n\t\t\treturn { \"&\": \"&amp;\", \"<\": \"&lt;\", \">\": \"&gt;\", '\"': \"&quot;\", \"'\": \"&#39;\" }[c];\n\t\t});\n\t}\n\tfunction prix(v) {\n\t\tvar n = Number(v);\n\t\treturn n > 0 ? n.toFixed(2).replace(\".\", \",\") + \" \u20AC\" : \"\";\n\t}\n\tfunction lireMemo() {\n\t\ttry {\n\t\t\treturn JSON.parse(localStorage.getItem(MEMO) || \"{}\") || {};\n\t\t} catch (e) {\n\t\t\treturn {};\n\t\t}\n\t}\n\tfunction ecrireMemo(v) {\n\t\ttry {\n\t\t\tlocalStorage.setItem(MEMO, JSON.stringify(v));\n\t\t} catch (e) {}\n\t}\n\tfunction handleDepuis(el) {\n\t\tif (el && el.dataset && el.dataset.productHandle) return el.dataset.productHandle;\n\t\tvar lien = el && el.closest ? el.closest(\"[class*='card'], li, article\") : null;\n\t\tvar a = lien ? lien.querySelector(\"a[href*='/products/']\") : null;\n\t\tvar src = a ? a.getAttribute(\"href\") : location.pathname;\n\t\tvar m = String(src || \"\").match(/\\/products\\/([^/?#]+)/);\n\t\treturn m ? decodeURIComponent(m[1]) : \"\";\n\t}\n\tfunction varianteCourante() {\n\t\tvar p = new URLSearchParams(location.search).get(\"variant\");\n\t\tif (p) return p;\n\t\tvar champ = document.querySelector(\"form[action*='/cart/add'] [name='id']\");\n\t\treturn champ ? champ.value : \"\";\n\t}\n\n\t// Ligne de la demande : d'abord les donn\u00E9es du bouton (tiroir historique), sinon la fiche produit Shopify (/products/<handle>.js).\n\tfunction construireLigne(bouton) {\n\t\tvar d = bouton.dataset || {};\n\t\tif (d.productTitle) {\n\t\t\treturn Promise.resolve({\n\t\t\t\tshopify_product_id: d.productId || \"\",\n\t\t\t\tshopify_variant_id: d.variantId || \"\",\n\t\t\t\tproduct_handle: d.productHandle || \"\",\n\t\t\t\tproduct_title: d.productTitle,\n\t\t\t\tvariant_title: d.variantTitle || \"\",\n\t\t\t\timage_url: d.productImage || \"\",\n\t\t\t\tunit_display_price: Number(String(d.productPrice || \"0\").replace(\",\", \".\")) || 0,\n\t\t\t\tquantity: 1,\n\t\t\t});\n\t\t}\n\t\tvar handle = handleDepuis(bouton);\n\t\tvar titreRepli = (document.querySelector(\"h1\") || {}).textContent || document.title;\n\t\tif (!handle) return Promise.resolve({ product_title: String(titreRepli).trim(), quantity: 1 });\n\t\treturn fetch(\"/products/\" + encodeURIComponent(handle) + \".js\", { headers: { Accept: \"application/json\" } })\n\t\t\t.then(function (r) {\n\t\t\t\treturn r.ok ? r.json() : null;\n\t\t\t})\n\t\t\t.then(function (p) {\n\t\t\t\tif (!p) return { product_handle: handle, product_title: String(titreRepli).trim(), quantity: 1 };\n\t\t\t\tvar vid = varianteCourante();\n\t\t\t\tvar v = (p.variants || []).filter(function (x) {\n\t\t\t\t\treturn String(x.id) === String(vid);\n\t\t\t\t})[0] || (p.variants || [])[0] || {};\n\t\t\t\tvar img = (v.featured_image && v.featured_image.src) || p.featured_image || \"\";\n\t\t\t\treturn {\n\t\t\t\t\tshopify_product_id: String(p.id || \"\"),\n\t\t\t\t\tshopify_variant_id: String(v.id || \"\"),\n\t\t\t\t\tproduct_handle: p.handle || handle,\n\t\t\t\t\tproduct_title: p.title || titreRepli,\n\t\t\t\t\tvariant_title: v.title && v.title !== \"Default Title\" ? v.title : \"\",\n\t\t\t\t\tsku: v.sku || \"\",\n\t\t\t\t\timage_url: img ? (String(img).indexOf(\"//\") === 0 ? \"https:\" + img : img) : \"\",\n\t\t\t\t\tunit_display_price: v.price ? Number(v.price) / 100 : 0,\n\t\t\t\t\tquantity: 1,\n\t\t\t\t};\n\t\t\t})\n\t\t\t.catch(function () {\n\t\t\t\treturn { product_handle: handle, product_title: String(titreRepli).trim(), quantity: 1 };\n\t\t\t});\n\t}\n\n\tfunction creer() {\n\t\troot = document.createElement(\"div\");\n\t\troot.className = \"fs-rq\";\n\t\troot.setAttribute(\"hidden\", \"\");\n\t\troot.innerHTML =\n\t\t\t'<div class=\"fs-rq__voile\" data-fs-rq-fermer></div>' +\n\t\t\t'<div class=\"fs-rq__boite\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"fs-rq-titre\">' +\n\t\t\t'<button type=\"button\" class=\"fs-rq__x\" data-fs-rq-fermer aria-label=\"Fermer\">&times;</button>' +\n\t\t\t'<div class=\"fs-rq__corps\"></div></div>';\n\t\tdocument.body.appendChild(root);\n\t\troot.addEventListener(\"click\", function (e) {\n\t\t\tif (e.target.closest(\"[data-fs-rq-fermer]\")) fermer();\n\t\t\tvar pas = e.target.closest(\"[data-fs-rq-pas]\");\n\t\t\tif (pas && etat.line) {\n\t\t\t\tetat.line.quantity = Math.max(1, Math.min(99, (etat.line.quantity || 1) + Number(pas.dataset.fsRqPas)));\n\t\t\t\tvar q = root.querySelector(\".fs-rq__qte span\");\n\t\t\t\tif (q) q.textContent = etat.line.quantity;\n\t\t\t}\n\t\t});\n\t\troot.addEventListener(\"submit\", envoyer);\n\t\tdocument.addEventListener(\"keydown\", function (e) {\n\t\t\tif (root.hasAttribute(\"hidden\")) return;\n\t\t\tif (e.key === \"Escape\") fermer();\n\t\t\tif (e.key === \"Tab\") piegerFocus(e);\n\t\t});\n\t}\n\n\tfunction piegerFocus(e) {\n\t\tvar f = [].slice.call(root.querySelectorAll(\"button, input, textarea, a[href]\")).filter(function (x) {\n\t\t\treturn !x.disabled && x.offsetParent !== null;\n\t\t});\n\t\tif (!f.length) return;\n\t\tvar premier = f[0];\n\t\tvar dernier = f[f.length - 1];\n\t\tif (e.shiftKey && document.activeElement === premier) {\n\t\t\te.preventDefault();\n\t\t\tdernier.focus();\n\t\t} else if (!e.shiftKey && document.activeElement === dernier) {\n\t\t\te.preventDefault();\n\t\t\tpremier.focus();\n\t\t}\n\t}\n\n\tfunction rendreFormulaire() {\n\t\tvar l = etat.line || {};\n\t\tvar memo = lireMemo();\n\t\tvar variante = etat.mode === \"variant\";\n\t\tvar vignette = l.image_url ? '<img src=\"' + esc(l.image_url) + '\" alt=\"\" loading=\"lazy\">' : '<span class=\"fs-rq__vide\" aria-hidden=\"true\"></span>';\n\t\tvar detail = variante ? \"Autre mod\u00E8le ou autre couleur\" : [l.variant_title, prix(l.unit_display_price)].filter(Boolean).join(\" \u00B7 \");\n\t\troot.querySelector(\".fs-rq__corps\").innerHTML =\n\t\t\t'<p class=\"fs-rq__surtitre\">' + (variante ? \"Variante indisponible\" : \"Produit sur demande\") + \"</p>\" +\n\t\t\t'<h2 id=\"fs-rq-titre\" class=\"fs-rq__titre\">' + (variante ? \"Demander une variante\" : \"Demander ce produit\") + \"</h2>\" +\n\t\t\t'<p class=\"fs-rq__intro\">On v\u00E9rifie la disponibilit\u00E9, le d\u00E9lai et le prix final, puis on vous r\u00E9pond par e-mail. Rien n\u2019est \u00E0 payer maintenant.</p>' +\n\t\t\t'<div class=\"fs-rq__produit\">' + vignette + '<div><strong>' + esc(l.product_title || \"\") + \"</strong><small>\" + esc(detail) + \"</small></div>\" +\n\t\t\t(variante ? \"\" : '<div class=\"fs-rq__qte\" aria-label=\"Quantit\u00E9\"><button type=\"button\" data-fs-rq-pas=\"-1\" aria-label=\"Retirer un\">\u2212</button><span>' + (l.quantity || 1) + '</span><button type=\"button\" data-fs-rq-pas=\"1\" aria-label=\"Ajouter un\">+</button></div>') +\n\t\t\t\"</div>\" +\n\t\t\t'<form class=\"fs-rq__form\" novalidate>' +\n\t\t\t(variante\n\t\t\t\t? '<label class=\"fs-rq__champ fs-rq__champ--large\"><span>Mod\u00E8le ou couleur souhait\u00E9 *</span><input name=\"souhait\" required maxlength=\"200\" placeholder=\"Ex. iPhone 12 Pro, coloris bleu\"></label>'\n\t\t\t\t: \"\") +\n\t\t\t'<label class=\"fs-rq__champ\"><span>Nom *</span><input name=\"nom\" required autocomplete=\"name\" maxlength=\"180\" value=\"' + esc(memo.nom || \"\") + '\"></label>' +\n\t\t\t'<label class=\"fs-rq__champ\"><span>E-mail *</span><input name=\"email\" type=\"email\" required autocomplete=\"email\" maxlength=\"320\" value=\"' + esc(memo.email || \"\") + '\"></label>' +\n\t\t\t'<label class=\"fs-rq__champ fs-rq__champ--large\"><span>T\u00E9l\u00E9phone <em>facultatif</em></span><input name=\"tel\" type=\"tel\" autocomplete=\"tel\" maxlength=\"80\" value=\"' + esc(memo.tel || \"\") + '\"></label>' +\n\t\t\t'<label class=\"fs-rq__champ fs-rq__champ--large\"><span>Message <em>facultatif</em></span><textarea name=\"message\" rows=\"3\" maxlength=\"2000\" placeholder=\"Une pr\u00E9cision utile : d\u00E9lai souhait\u00E9, quantit\u00E9, usage\u2026\"></textarea></label>' +\n\t\t\t'<label class=\"fs-rq__piege\" aria-hidden=\"true\">Site web<input name=\"website\" tabindex=\"-1\" autocomplete=\"off\"></label>' +\n\t\t\t'<p class=\"fs-rq__erreur\" role=\"alert\" hidden></p>' +\n\t\t\t'<button type=\"submit\" class=\"fs-rq__envoyer\">Envoyer la demande</button>' +\n\t\t\t'<p class=\"fs-rq__mention\">Vos coordonn\u00E9es servent uniquement \u00E0 r\u00E9pondre \u00E0 cette demande.</p>' +\n\t\t\t\"</form>\";\n\t}\n\n\tfunction rendreSucces(email) {\n\t\troot.querySelector(\".fs-rq__corps\").innerHTML =\n\t\t\t'<div class=\"fs-rq__succes\">' +\n\t\t\t'<span class=\"fs-rq__coche\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" width=\"28\" height=\"28\"><path d=\"M5 12.5l4.2 4.2L19 7\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></span>' +\n\t\t\t'<h2 id=\"fs-rq-titre\" class=\"fs-rq__titre\">Demande envoy\u00E9e</h2>' +\n\t\t\t'<p class=\"fs-rq__intro\">Merci. On v\u00E9rifie la disponibilit\u00E9 et le prix, puis on vous r\u00E9pond \u00E0 <strong>' + esc(email) + \"</strong>.</p>\" +\n\t\t\t'<button type=\"button\" class=\"fs-rq__envoyer\" data-fs-rq-fermer>Continuer mes achats</button></div>';\n\t\tvar b = root.querySelector(\".fs-rq__succes button\");\n\t\tif (b) b.focus();\n\t}\n\n\tfunction ouvrir(bouton) {\n\t\tif (!root) creer();\n\t\tetat.mode = bouton.matches(\".fs-product-variant-request__button\") ? \"variant\" : \"product\";\n\t\tetat.retourFocus = bouton;\n\t\tetat.line = null;\n\t\troot.querySelector(\".fs-rq__corps\").innerHTML = '<p class=\"fs-rq__charge\">Chargement\u2026</p>';\n\t\troot.removeAttribute(\"hidden\");\n\t\tdocument.documentElement.classList.add(\"fs-rq-ouvert\");\n\t\trequestAnimationFrame(function () {\n\t\t\troot.classList.add(\"is-open\");\n\t\t});\n\t\tconstruireLigne(bouton).then(function (line) {\n\t\t\tetat.line = line;\n\t\t\trendreFormulaire();\n\t\t\tvar premier = root.querySelector(\".fs-rq__form input:not([value]), .fs-rq__form input[value=''], .fs-rq__form input\");\n\t\t\tif (premier) premier.focus();\n\t\t});\n\t}\n\n\tfunction fermer() {\n\t\tif (!root || root.hasAttribute(\"hidden\")) return;\n\t\troot.classList.remove(\"is-open\");\n\t\tdocument.documentElement.classList.remove(\"fs-rq-ouvert\");\n\t\tsetTimeout(function () {\n\t\t\troot.setAttribute(\"hidden\", \"\");\n\t\t}, 220);\n\t\tif (etat.retourFocus && etat.retourFocus.focus) etat.retourFocus.focus();\n\t}\n\n\tfunction erreur(msg) {\n\t\tvar p = root.querySelector(\".fs-rq__erreur\");\n\t\tif (!p) return;\n\t\tp.textContent = msg;\n\t\tp.hidden = !msg;\n\t}\n\n\tfunction envoyer(e) {\n\t\te.preventDefault();\n\t\tif (etat.envoi || !etat.line) return;\n\t\tvar f = e.target;\n\t\tvar v = function (n) {\n\t\t\treturn f.elements[n] ? String(f.elements[n].value || \"\").trim() : \"\";\n\t\t};\n\t\tvar nom = v(\"nom\");\n\t\tvar email = v(\"email\");\n\t\tvar souhait = v(\"souhait\");\n\t\tif (etat.mode === \"variant\" && !souhait) return erreur(\"Indiquez le mod\u00E8le ou la couleur que vous cherchez.\");\n\t\tif (!nom) return erreur(\"Indiquez votre nom.\");\n\t\tif (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email)) return erreur(\"Indiquez une adresse e-mail valide.\");\n\t\terreur(\"\");\n\t\tvar line = Object.assign({}, etat.line);\n\t\tif (etat.mode === \"variant\") {\n\t\t\tline.variant_title = (\"Variante demand\u00E9e : \" + souhait).slice(0, 300);\n\t\t\tline.shopify_variant_id = \"\";\n\t\t\tline.unit_display_price = 0;\n\t\t}\n\t\tvar message = v(\"message\");\n\t\tif (etat.mode === \"variant\") message = (\"Variante demand\u00E9e : \" + souhait + (message ? \"\\n\" + message : \"\")).slice(0, 2000);\n\t\tvar bouton = f.querySelector(\".fs-rq__envoyer\");\n\t\tetat.envoi = true;\n\t\tbouton.disabled = true;\n\t\tbouton.textContent = \"Envoi\u2026\";\n\t\tecrireMemo({ nom: nom, email: email, tel: v(\"tel\") });\n\t\tfetch(API, {\n\t\t\tmethod: \"POST\",\n\t\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\t\tbody: JSON.stringify({\n\t\t\t\tcustomer_name: nom,\n\t\t\t\tcustomer_email: email,\n\t\t\t\tcustomer_phone: v(\"tel\"),\n\t\t\t\tcustomer_message: message,\n\t\t\t\tsource_site: etat.mode === \"variant\" ? \"shopify_variante\" : \"shopify\",\n\t\t\t\tsource_page_url: location.href,\n\t\t\t\twebsite: v(\"website\"),\n\t\t\t\tlines: [line],\n\t\t\t}),\n\t\t})\n\t\t\t.then(function (r) {\n\t\t\t\tif (r.status === 201 || r.status === 204) return rendreSucces(email);\n\t\t\t\treturn r\n\t\t\t\t\t.json()\n\t\t\t\t\t.catch(function () {\n\t\t\t\t\t\treturn {};\n\t\t\t\t\t})\n\t\t\t\t\t.then(function (j) {\n\t\t\t\t\t\tthrow new Error(r.status === 429 ? \"Trop de demandes envoy\u00E9es : r\u00E9essayez dans quelques minutes.\" : j.error || \"La demande n\u2019a pas pu partir.\");\n\t\t\t\t\t});\n\t\t\t})\n\t\t\t.catch(function (err) {\n\t\t\t\terreur((err && err.message && err.message !== \"Failed to fetch\" ? err.message : \"La demande n\u2019a pas pu partir.\") + \" Vous pouvez aussi \u00E9crire \u00E0 support@fs-solutions.fr.\");\n\t\t\t\tbouton.disabled = false;\n\t\t\t\tbouton.textContent = \"Envoyer la demande\";\n\t\t\t})\n\t\t\t.then(function () {\n\t\t\t\tetat.envoi = false;\n\t\t\t});\n\t}\n\n\t// Capture sur window : passe avant le tiroir historique et avant le lien mailto.\n\twindow.addEventListener(\n\t\t\"click\",\n\t\tfunction (e) {\n\t\t\tvar b = e.target.closest && e.target.closest(SELECTEURS);\n\t\t\tif (!b || e.ctrlKey || e.metaKey || e.shiftKey) return;\n\t\t\te.preventDefault();\n\t\t\te.stopImmediatePropagation();\n\t\t\touvrir(b);\n\t\t},\n\t\ttrue\n\t);\n})();\n"],
  "mappings": "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",
  "names": []
}
