{
  "version": 3,
  "sources": ["/cdn/shop/t/374/assets/swb-deal-page.js?cb=925"],
  "sourcesContent": ["/* SWB DEAL PAGE (#1062): behaviour for sections/swb-deal-page.liquid. Deferred; the section's inline phase picker has\n   already run and left root.sdpPhase = { c: { i, d, to, mode }, p: { pct, st, k }, tz, now, code }. Built by\n   C:\\Claude\\BF2026\\build_section.py from src/swb-deal-page.js (do not hand-edit the asset).\n   Contracts kept: Impact quick add (cart:prepare-bundled-sections, add.js with sections, variant:add + cart:change,\n   never a cart without its sections), the switch module / v2 watch (cart attributes, swbV2.set 'echo',\n   window.switchModuleLandingPageSelect), the strap deal (2 free per 5, plus 1 for a remainder of 3 or 4, the cheapest\n   free) and the % per unit, rounded per unit. */\n(function () {\n  'use strict';\n\n  function boot(root) {\n    if (root.dataset.sdpBooted) return;\n    root.dataset.sdpBooted = '1';\n    var CFG = {};\n    try { CFG = JSON.parse(root.querySelector('script[data-sdp-cfg]').textContent); } catch (e) { return; }\n    var L = CFG.L || {}, W = CFG.W || [];\n    /* Round 24: the header menus list Apple Watch from Series 7 up. Series 1 to 6 take the same straps, so they get\n       their own \"older models\" entry at the end of Apple's list, opening the brand's all-straps collection (the\n       menu's first link). */\n    (function () {\n      var ap = W.filter(function (w) { return /^apple/i.test(w[1]); }); if (!ap.length) return;\n      var all = ap.filter(function (w) { return !w[5]; })[0], ser = ap.filter(function (w) { return w[5]; }).pop(); if (!all) return;\n      var OLD = { nl: 'Oudere modellen (Series 1 t/m 6)', de: '\u00C4ltere Modelle (Series 1 bis 6)', fr: 'Anciens mod\u00E8les (Series 1 \u00E0 6)', es: 'Modelos anteriores (Series 1 a 6)', en: 'Older models (Series 1 to 6)' };\n      var lb = OLD[String(CFG.lang || 'en').slice(0, 2)] || OLD.en;\n      W.push([String(all[0]) + '-old', all[1], lb, all[3], all[4] || (ser && ser[4]) || '', ser ? ser[5] : '']);\n    })();\n    var ROOTP = CFG.root && CFG.root.slice(-1) === '/' ? CFG.root : (CFG.root || '') + '/';\n    var PHS = root.sdpPhase || {}, PHC = PHS.c || {}, PHP = PHS.p || {};\n    var PCT = +PHP.pct || 0, STACK = !!PHP.st, CODE = PHS.code || '';\n    var panel = root.querySelector('[data-sdp-ph]:not([hidden])');\n    var WMT = panel ? panel.getAttribute('data-sdp-wmt') || '' : '';\n    var $ = function (q) { return root.querySelector(q); }, $$ = function (q) { return [].slice.call(root.querySelectorAll(q)); };\n    var qp = new URLSearchParams(location.search);\n    var JUNK = /milane|mesh|nylon|silicon|silikon|metal|staal|steel|stahl|acier|acero|titan|leather|leer|leder|cuir|cuero|piel|oplad|charg|cargad|lade|screen|protect|schutz|hoesje|cases|coque|funda|h(\u00FC|u)lle|accessoir|zubeh|accesor|^(toon |alle |all |tous|voir|mostrar|todo)/i;\n    var NF = document.documentElement.lang || undefined;\n    var reduce = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n    function esc(t) { return String(t).replace(/[&<>\"]/g, function (c) { return { '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' }[c]; }); }\n    /* Money in the theme's own format: the shop's money filter on 123456 cents (cfg.mf, e.g. \"\u20AC1.234,56\", \"\u00A31,234.56\",\n       \"1 234,56 \u20AC\") gives the prefix, suffix and separators; Intl only if that sample cannot be read. */\n    var MF = (function (t) {\n      var m = String(t || '').replace(/\\s+/g, ' ').match(/^(.*?)1([^0-9]?)234([^0-9])56(.*)$/);\n      return m ? { pre: m[1], th: m[2], dec: m[3], suf: m[4] } : null;\n    })(CFG.mf);\n    function money(c) {\n      c = Math.round(c);\n      if (MF) {\n        var neg = c < 0, v = Math.abs(c), whole = String(Math.floor(v / 100)), cents = ('0' + (v % 100)).slice(-2);\n        whole = whole.replace(/\\B(?=(\\d{3})+(?!\\d))/g, MF.th);\n        return (neg ? '-' : '') + MF.pre + whole + MF.dec + cents + MF.suf;\n      }\n      var cc = (window.Shopify && Shopify.currency && Shopify.currency.active) || 'EUR';\n      try { return new Intl.NumberFormat(NF, { style: 'currency', currency: cc }).format(c / 100); } catch (e) { return (c / 100).toFixed(2) + ' ' + cc; }\n    }\n    /* The deal maths, exactly as the store computes it (#1062 price table). */\n    /* The discount Function's ladder: 3 -> 1, 5 -> 2, 8 -> 3, 10 -> 4, 13 -> 5, 15 -> 6, 18 -> 7, 20 -> 8, flat above 20. */\n    function freeN(n) { n = Math.min(n, 20); return 2 * Math.floor(n / 5) + (n % 5 >= 3 ? 1 : 0); }\n    function nextTier(n) { if (n >= 20) return 0; var m = n + 1; while (freeN(m) <= freeN(n)) m++; return m; }\n    /* Shopify takes the % off per unit and rounds the discount DOWN to whole cents (measured on BLACK20, /cart.js:\n       19.99 -> 3.99 off -> 16.00). */\n    function unitPay(c) { return c - Math.floor(c * PCT / 100); }\n    /* A set of straps as the store prices it: the cheapest freeN() free (when the strap deal runs), unitPay() on the rest. */\n    function bundleTotal(ps) { var p = ps.slice().sort(function (a, b) { return a - b; }), f = STACK ? freeN(p.length) : 0, t = 0; for (var i = f; i < p.length; i++) t += unitPay(p[i]); return t; }\n    /* The price a card shows: the deal price where the % applies, its own price on 1+1GRATIS. */\n    function shownPrice(card) { var p = +card.getAttribute('data-price') || 0; return card.hasAttribute('data-oneone') ? p : unitPay(p); }\n    /* Price chips: hide what the card shows above the limit. Returns how many were hidden. */\n    function applyPmax(box, max) { var h = 0; [].forEach.call(box.querySelectorAll('.nr-i'), function (it) { var c = it.querySelector('[data-sdp-card]'), off = !!(max && c && shownPrice(c) > max); it.hidden = off; if (off) h++; }); return h; }\n\n    /* The phase's numbers everywhere the server drew the guessed phase's. */\n    $$('[data-sdp-pct]').forEach(function (el) { el.textContent = PCT; });\n\n    /* ---------------------------------------------------------------------------------------------------------------\n       THE WATCHES: every model in this market's header menus, [collection id, brand, title, url].\n       --------------------------------------------------------------------------------------------------------------- */\n    function byId(id) { for (var i = 0; i < W.length; i++) if (String(W[i][0]) === String(id)) return W[i]; return null; }\n    function byName(b, m) {\n      b = (b || '').toLowerCase(); m = (m || '').toLowerCase();\n      if (!m) return null;\n      for (var i = 0; i < W.length; i++) if (W[i][2].toLowerCase() === m && (!b || W[i][1].toLowerCase() === b)) return W[i];\n      return null;\n    }\n    function pk(u) { return String(u || '').replace(/^https?:\\/\\/[^/]+/i, '').split('#')[0].split('?')[0].replace(/\\/+$/, '').toLowerCase().replace(/^\\/[a-z]{2}(-[a-z]{2})?(?=\\/collections\\/)/, ''); }\n    function byUrl(u) { var p = pk(u); if (!p) return null; for (var i = 0; i < W.length; i++) if (pk(W[i][3]) === p) return W[i]; return null; }\n    function full(w) { return w[2].toLowerCase().indexOf(w[1].toLowerCase()) === 0 ? w[2] : w[1] + ' ' + w[2]; }\n\n    /* ---------------------------------------------------------------------------------------------------------------\n       PRODUCT FEEDS: the theme's own cards from templates/collection.dealrow.liquid, with the deal on them.\n       --------------------------------------------------------------------------------------------------------------- */\n    var seenCss = {}, toks = {}, pjs = {}, TAGS = {}, sample = null;\n    function pjson(href) { return (pjs[href] = pjs[href] || fetch(href + '.js', { headers: { Accept: 'application/json' } }).then(function (r) { return r.json(); })); }\n    function loadInto(box, url, key, append) {\n      var mine = toks[key] = (toks[key] || 0) + 1;\n      if (!append) box.innerHTML = new Array((+box.dataset.sk || 8) + 1).join('<div class=\"sdp-sk\"></div>');\n      var src = url + (url.indexOf('?') < 0 ? '?' : '&') + 'view=dealrow';\n      return fetch(src, { headers: { 'X-Requested-With': 'XMLHttpRequest' } })\n        .then(function (r) { if (!r.ok) throw new Error(r.status); return r.text(); })\n        .then(function (html) {\n          if (mine !== toks[key]) return -1;\n          if (/<html/i.test(html)) throw new Error('dealrow template missing');\n          var tpl = document.createElement('template'); tpl.innerHTML = html;\n          [].forEach.call(tpl.content.querySelectorAll('style'), function (st) { var c = st.textContent; if (seenCss[c]) st.remove(); else { seenCss[c] = 1; document.head.appendChild(st); } });\n          var nx = tpl.content.querySelector('[data-dr-next]'), cn = tpl.content.querySelector('[data-dr-count]');\n          box.dataset.next = nx ? nx.getAttribute('data-dr-next') : '';\n          if (cn) box.dataset.count = cn.getAttribute('data-dr-count');\n          var items = tpl.content.querySelectorAll('.nr-i');\n          if (!items.length) { if (append) return 0; throw new Error('empty'); }\n          if (!append) box.innerHTML = '';\n          [].forEach.call(items, function (it, i) { it.classList.add('sdp-enter'); it.style.setProperty('--i', Math.min(i, 8)); box.appendChild(it); });\n          enhance(box);\n          return items.length;\n        })\n        .catch(function () { if (mine !== toks[key]) return -1; if (!append) box.innerHTML = ''; box.dataset.next = ''; box.dataset.count = '0'; return 0; });\n    }\n    /* Each card (our own markup, data attributes from the template): the phase pill + percentage chip (+ \"2+1\" on straps),\n       the deal price large with today's price struck small (each with the theme's own screen-reader label), the round\n       add button (one tap for a single variant, the size picker otherwise), \"in stock\". Products tagged 1+1GRATIS\n       combine with nothing: they keep their own price and get no deal chips. */\n    var BOLT = '<svg viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M13 2L4 14h7l-1 8 9-12h-7z\"/></svg>';\n    var CHECK = '<svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12.5l4.5 4.5L19 7.5\"/></svg>';\n    function chips(strap, oneone) {\n      if (oneone) return '';\n      var h = '';\n      if (PCT > 0) h += '<span class=\"sdp-chip sdp-chip--phase\" data-sdp-motion=\"chip\">' + BOLT + esc(WMT || '') + '<b class=\"sdp-chip__pct\">-' + PCT + '%</b></span>';\n      if (strap && STACK) h += '<span class=\"sdp-chip sdp-chip--b21\">' + esc(L.b21) + '</span>';\n      return h;\n    }\n    function priceHtml(price, cap, oneone) {\n      var SRS = '<span class=\"sr-only\">' + esc(L.salep) + '</span>', SRR = '<span class=\"sr-only\">' + esc(L.regp) + '</span>';\n      if (!oneone && PCT > 0) return '<b>' + SRS + esc(money(unitPay(price))) + '</b><s>' + SRR + esc(money(price)) + '</s>';\n      if (cap > price) return '<b>' + SRS + esc(money(price)) + '</b><s>' + SRR + esc(money(cap)) + '</s>';\n      return '<b>' + esc(money(price)) + '</b>';\n    }\n    function enhance(box) {\n      [].forEach.call(box.querySelectorAll('[data-sdp-card]'), function (card) {\n        if (card.dataset.sdpx) return; card.dataset.sdpx = '1';\n        var d = card.dataset, href = (d.url || '').split('?')[0], price = +d.price || 0, cap = +d.cap || 0;\n        var strap = 'strap' in d, oneone = 'oneone' in d;\n        TAGS[d.handle] = (strap ? ['STRAP'] : []).concat(oneone ? ['1+1GRATIS'] : []);\n        if (strap && !oneone && price && !sample && cur && grid.contains(card)) { sample = price; example(price); }\n        card.querySelector('[data-chips]').innerHTML = chips(strap, oneone);\n        if (!oneone && PCT > 0 || cap > price) card.querySelector('[data-pricebox]').innerHTML = priceHtml(price, cap, oneone);\n        var st = card.querySelector('[data-stock]');\n        if ('avail' in d && st) { st.innerHTML = CHECK + esc(L.instock); st.hidden = false; }\n        var inPool = !!card.closest('[data-sdp-bbpool]'), qb = 'qb' in d || inPool;\n        if (!qb) {\n          var ob = card.querySelector('[data-add]');\n          if (ob) {\n            var go = document.createElement('a');\n            go.className = 'sdp-pc__add sdp-pc__add--go'; go.href = href; go.setAttribute('aria-label', L.choose);\n            go.innerHTML = '<svg viewBox=\"0 0 24 24\" width=\"22\" height=\"22\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\"/></svg>';\n            ob.replaceWith(go);\n          }\n          return;\n        }\n        [].forEach.call(card.querySelectorAll('a[href]'), function (a) {\n          a.addEventListener('click', function (e) {\n            if (e.metaKey || e.ctrlKey || e.shiftKey || e.altKey || e.button) return;\n            e.preventDefault(); e.stopPropagation(); openQV(href);\n          });\n        });\n        var btn = card.querySelector('[data-add]');\n        if (btn) {\n          btn.setAttribute('aria-label', d.vid ? L.add : L.choose);\n          btn.addEventListener('click', function (e) { e.preventDefault(); if (d.vid) add(d.vid, btn, href); else openQV(href); });\n        }\n      });\n    }\n\n    /* ---------------------------------------------------------------------------------------------------------------\n       QUICK ADD, the Impact contract. Every cart:change carries cart.sections for each section that asked for one\n       (the drawer reads cart.sections[<its id>] unguarded); missing ones come from the Section Rendering API, and if\n       that fails the theme gets cart:refresh instead of a cart it cannot read.\n       --------------------------------------------------------------------------------------------------------------- */\n    function withSections(cart, ids, got, url) {\n      cart.sections = got || {};\n      var miss = ids.filter(function (k) { return !cart.sections[k]; });\n      if (!miss.length) return Promise.resolve(cart);\n      return fetch(url + (url.indexOf('?') < 0 ? '?' : '&') + 'sections=' + miss.join(','), { headers: { Accept: 'application/json' } })\n        .then(function (r) { return r.ok ? r.json() : {}; })\n        .then(function (j) { miss.forEach(function (k) { if (j && j[k]) cart.sections[k] = j[k]; }); return cart; })\n        .catch(function () { return cart; });\n    }\n    function announce(cart, ids, base, items, open) {\n      var de = document.documentElement;\n      if (!ids.every(function (k) { return cart.sections && cart.sections[k]; })) { de.dispatchEvent(new CustomEvent('cart:refresh', { bubbles: true })); return; }\n      if (items) de.dispatchEvent(new CustomEvent('variant:add', { bubbles: true, detail: { items: items, cart: cart, blockCartDrawerOpening: !open } }));\n      de.dispatchEvent(new CustomEvent('cart:change', { bubbles: true, detail: { baseEvent: base, cart: cart } }));\n    }\n    function add(vid, btn, href) {\n      btn.classList.add('is-busy');\n      var bundled = ['variant-added'];\n      document.documentElement.dispatchEvent(new CustomEvent('cart:prepare-bundled-sections', { bubbles: true, detail: { sections: bundled } }));\n      return fetch(ROOTP + 'cart/add.js', { method: 'POST', headers: { 'Content-Type': 'application/json', Accept: 'application/json' },\n        body: JSON.stringify({ id: vid, quantity: 1, sections: bundled, sections_url: ROOTP + 'variants/' + vid }) })\n        .then(function (r) { if (!r.ok) throw new Error(r.status); return r.json(); })\n        .then(function (added) {\n          return fetch(ROOTP + 'cart.js', { headers: { Accept: 'application/json' } }).then(function (r) { return r.json(); })\n            .then(function (cart) { return withSections(cart, bundled, added.sections, ROOTP + 'variants/' + vid); })\n            .then(function (cart) {\n              announce(cart, bundled, 'variant:add', added.items || [added], btn.hasAttribute('data-add'));\n              bar(cart);\n              btn.classList.remove('is-busy');\n              if (btn.hasAttribute('data-add')) { btn.classList.add('is-done'); setTimeout(function () { btn.classList.remove('is-done'); }, 2200); }\n              else { var was = btn.textContent; btn.textContent = L.added; setTimeout(function () { btn.textContent = was === L.added ? L.add : was; }, 1600); }\n            });\n        })\n        .catch(function () { btn.classList.remove('is-busy'); location.href = href; });\n    }\n\n    /* ---------------------------------------------------------------------------------------------------------------\n       THE DEAL BAR: one plain sentence about the straps in the cart, and the cart button.\n       --------------------------------------------------------------------------------------------------------------- */\n    var barEl = $('[data-sdp-bar]'), heroOut = false, units = 0, tagWait = {}, lastCart = null;\n    $('[data-sdp-cta]').href = ROOTP + (CFG.lang === 'nl' || CFG.lang === 'de' ? 'cart' : 'checkout');\n    function pctInCart(cart) {\n      if (!PCT || !cart) return false;\n      var C = String(CODE || '').toUpperCase(), hit = false;\n      (cart.discount_codes || []).forEach(function (d) { if (C && String(d.code || '').toUpperCase() === C && d.applicable !== false) hit = true; });\n      function look(d) {\n        d = d || {};\n        if (d.value_type === 'percentage' && +d.value === PCT) hit = true;\n        if (C && (String(d.title || '').toUpperCase() === C || String(d.code || '').toUpperCase() === C)) hit = true;\n      }\n      (cart.items || []).forEach(function (it) { (it.line_level_discount_allocations || []).forEach(function (a) { look(a.discount_application); }); });\n      (cart.cart_level_discount_applications || []).forEach(look);\n      return hit;\n    }\n    function sentence(n, all, applied) {\n      var codeLine = !applied && PCT && CODE && PHC.mode === 'end' ? L.bar_code.replace('{p}', PCT).replace('{c}', CODE) : '';\n      var pctTail = applied && PCT ? L.bar_pct.replace('{p}', PCT) : '';\n      if (!STACK) return all ? (applied ? L.bar_pcto.replace('{p}', PCT) : codeLine) : '';\n      var f = freeN(n), k = nextTier(n) - n;\n      if (n === 0) return all ? (applied ? L.bar_pcto.replace('{p}', PCT) : codeLine || L.bar0) : L.bar0;\n      if (f === 0) return k === 1 ? L.bar_add1 : L.bar_addn.replace('{k}', k);\n      if (k === 1) return L.bar_more1.replace('{f}', f + 1);\n      var got = f === 1 ? L.bar_got1 : L.bar_gotn.replace('{f}', f);\n      return pctTail ? got + pctTail : codeLine ? got + ' \\u00b7 ' + codeLine : got;\n    }\n    function bar(cart) {\n      lastCart = cart;\n      var n = 0; units = 0;\n      (cart.items || []).forEach(function (it) {\n        units += it.quantity;\n        if (it.handle && !TAGS[it.handle] && !tagWait[it.handle]) {\n          tagWait[it.handle] = fetch(ROOTP + 'products/' + it.handle + '.js', { headers: { Accept: 'application/json' } }).then(function (r) { return r.json(); })\n            .then(function (pr) { TAGS[it.handle] = pr.tags || []; bar(lastCart); }).catch(function () { TAGS[it.handle] = []; });\n        }\n        var t = TAGS[it.handle] || [];\n        if (t.indexOf('STRAP') > -1 && t.indexOf('1+1GRATIS') < 0) n += it.quantity;\n      });\n      $('[data-sdp-bart]').textContent = sentence(n, units, pctInCart(cart));\n      syncBar();\n    }\n    function syncBar() {\n      var on = !!$('[data-sdp-bart]').textContent && (heroOut || units > 0);\n      barEl.classList.toggle('is-on', on);\n      if (on) document.documentElement.style.setProperty('--sdp-bar-h', barEl.offsetHeight + 'px');\n      document.documentElement.classList.toggle('sdp-bar-on', on);\n    }\n    fetch(ROOTP + 'cart.js', { headers: { Accept: 'application/json' } }).then(function (r) { return r.json(); }).then(bar).catch(function () {});\n    document.addEventListener('cart:change', function (e) { if (e.detail && e.detail.cart && e.detail.cart.items) bar(e.detail.cart); });\n    if ('IntersectionObserver' in window) new IntersectionObserver(function (es) { heroOut = !es[0].isIntersecting; syncBar(); }, { rootMargin: '-40% 0px 0px 0px' }).observe($('.sdp-hero'));\n\n    /* ---------------------------------------------------------------------------------------------------------------\n       THE CODE: only when the live phase's deal carries one; applied once per session in the background (the same\n       /discount/<code> link as the emails, answered by the tiny cart.js), shown in the hero with a copy button.\n       --------------------------------------------------------------------------------------------------------------- */\n    if (CODE && PHC.mode === 'end') {\n      try {\n        var ck = 'sdp_code_' + CODE.toUpperCase();\n        if (!sessionStorage.getItem(ck)) {\n          fetch(ROOTP + 'discount/' + encodeURIComponent(CODE) + '?redirect=' + encodeURIComponent(ROOTP + 'cart.js'), { credentials: 'same-origin' })\n            .then(function () { sessionStorage.setItem(ck, '1'); document.dispatchEvent(new CustomEvent('cart:refresh', { bubbles: true })); })\n            .catch(function () {});\n        }\n      } catch (e) {}\n      var a1 = $('[data-sdp-a1]'); if (a1) a1.textContent = L.a1c.replace('{c}', CODE).replace('{p}', PCT);\n    }\n    /* The banner's \"shop now\" button: to the deals (the category tiles), smoothly unless motion is reduced. */\n    var cta2 = $('[data-sdp-cta2]');\n    if (cta2) cta2.addEventListener('click', function (e) {\n      var t = document.getElementById((cta2.getAttribute('href') || '').slice(1)); if (!t) return;\n      e.preventDefault(); t.scrollIntoView({ behavior: reduce ? 'auto' : 'smooth', block: 'start' });\n    });\n    var copyB = $('[data-sdp-copy]');\n    if (copyB) copyB.addEventListener('click', function () {\n      var code = $('[data-sdp-code]').getAttribute('data-code'); if (!code) return;\n      var lab = copyB.querySelector('[data-sdp-copyl]') || copyB;\n      /* Round 22: \"Gekopieerd!\" is longer than \"Kopieer\" and pushed the row wider on a phone. The button keeps its\n         size now: its own content hides under a check while the store's toast says the code was added. */\n      function done() {\n        copyB.classList.add('is-done'); copyB.setAttribute('aria-label', L.copied);\n        clearTimeout(copyB._t); copyB._t = setTimeout(function () { copyB.classList.remove('is-done'); copyB.removeAttribute('aria-label'); }, 1800);\n      }\n      if (navigator.clipboard && window.isSecureContext) navigator.clipboard.writeText(code).then(done, done); else done();\n      applyCode(code);\n    });\n    /* A copied code is also put on the cart (as the action bar does) and the store's toast says so\n       (snippets/swb-deal-toast: window.swbDealToast). The session key stops the discount-link toast repeating it. */\n    function applyCode(code) {\n      if (!code) return;\n      try { sessionStorage.setItem('swb_dealtoast:' + String(code).toUpperCase(), '1'); } catch (e) {}\n      fetch(ROOTP + 'discount/' + encodeURIComponent(code) + '?redirect=' + encodeURIComponent(ROOTP + 'cart.js'), { credentials: 'same-origin' }).catch(function () {});\n      if (typeof window.swbDealToast === 'function') window.swbDealToast(code);\n    }\n\n    /* ---------------------------------------------------------------------------------------------------------------\n       HOW THE DEAL WORKS: the worked prices (2, 3 and 5 straps at one card price). The server drew them for the\n       guessed phase and the example product; redrawn for another phase, and with the chosen watch's first strap.\n       --------------------------------------------------------------------------------------------------------------- */\n    function example(price) {\n      if (!price) return;\n      var u = unitPay(price), rows = { 2: [2, 2], 3: [3, 2], 5: [5, 3] };\n      Object.keys(rows).forEach(function (n) {\n        var el = $('[data-sdp-ex=\"' + n + '\"]'); if (!el) return;\n        el.querySelector('[data-a]').textContent = money(price * rows[n][0]);\n        var bb = el.querySelector('[data-b]'); bb.textContent = money(u * rows[n][1]);\n        bb.setAttribute('data-from', price * rows[n][0]); bb.setAttribute('data-to', u * rows[n][1]);\n        el.hidden = false;\n      });\n      var h = $('[data-sdp-exh]'); if (h) { h.textContent = L.math.replace('{p}', money(price)); h.hidden = false; }\n    }\n    if (CFG.ex && PCT !== +CFG.srvPct) example(+CFG.ex);\n\n    /* \"How long does it run\": only while a deal runs, from its real end on the market clock. */\n    if (PHC.d && PHC.mode === 'end') {\n      try {\n        $('[data-sdp-period]').textContent = L.period.replace('{d}', new Intl.DateTimeFormat(NF, { timeZone: PHS.tz, weekday: 'long', day: 'numeric', month: 'long', hour: '2-digit', minute: '2-digit' }).format(new Date(PHC.to)));\n        $('[data-sdp-q6]').hidden = false;\n      } catch (e) {}\n    }\n    /* Review scores in the market's own number format (4,7 / 4.7). */\n    $$('[data-sdp-rv]').forEach(function (x) { var v = parseFloat(x.getAttribute('data-sdp-rv')); if (!isNaN(v)) x.textContent = L.rv.replace('{r}', v.toLocaleString(NF, { minimumFractionDigits: 1, maximumFractionDigits: 2 })); });\n\n    /* ---------------------------------------------------------------------------------------------------------------\n       CATEGORY RAILS: loaded when they come near the screen (a timeout loads them anyway).\n       --------------------------------------------------------------------------------------------------------------- */\n    function railNav(rail) {\n      var w = rail.parentNode, p = w.querySelector('[data-sdp-rp]'), n = w.querySelector('[data-sdp-rn]');\n      if (!p || !n) return;\n      function upd() { p.disabled = rail.scrollLeft < 8; n.disabled = rail.scrollLeft + rail.clientWidth > rail.scrollWidth - 8; }\n      p.addEventListener('click', function () { rail.scrollBy({ left: -rail.clientWidth * 0.9, behavior: reduce ? 'auto' : 'smooth' }); });\n      n.addEventListener('click', function () { rail.scrollBy({ left: rail.clientWidth * 0.9, behavior: reduce ? 'auto' : 'smooth' }); });\n      rail.addEventListener('scroll', upd, { passive: true }); upd();\n      return upd;\n    }\n    var rails = $$('[data-sdp-rail]');\n    function loadRail(rail) {\n      if (rail.dataset.sdpLoaded) return; rail.dataset.sdpLoaded = '1';\n      var u = rail.getAttribute('data-sdp-rail'), max = +rail.dataset.pmax || 0;\n      if (!rail.sdpUpd) rail.sdpUpd = railNav(rail);\n      var upd = rail.sdpUpd;\n      loadInto(rail, u + (u.indexOf('?') < 0 ? '?' : '&') + 'sort_by=' + (max ? 'price-ascending' : 'best-selling'), 'rail' + rails.indexOf(rail)).then(function (n) {\n        if (n > 0) applyPmax(rail, max);\n        if (upd) { rail.scrollLeft = 0; upd(); }\n      });\n    }\n    if ('IntersectionObserver' in window) {\n      var rio = new IntersectionObserver(function (es) { es.forEach(function (e) { if (e.isIntersecting) { loadRail(e.target); rio.unobserve(e.target); } }); }, { rootMargin: '600px 0px' });\n      rails.forEach(function (r) { rio.observe(r); });\n    }\n    setTimeout(function () { rails.forEach(loadRail); }, 4000);\n\n    /* ---------------------------------------------------------------------------------------------------------------\n       THE WATCH'S OWN STRAPS (material tabs) and ACCESSORIES (its model tag, read off its straps).\n       --------------------------------------------------------------------------------------------------------------- */\n    /* ---------------------------------------------------------------------------------------------------------------\n       DAGDEAL (2026-11-06): two products on sale with the % on top, the same two for everyone until midnight in the\n       shop's own time zone (sdpPhase.tz), then two others. No watch: the server's Universal Product Page cards. A watch:\n       two of its straps on sale from its best-selling collection (the dealrow feed). Struck = compare-at, else today's.\n       --------------------------------------------------------------------------------------------------------------- */\n    var ddEl = $('[data-sdp-dd]'), ddG = ddEl && ddEl.querySelector('[data-sdp-ddg]'), ddH = ddEl && ddEl.querySelector('[data-sdp-ddh]'),\n      ddH0 = ddH ? ddH.innerHTML : '', ddSrv = ddG ? ddG.innerHTML : '', ddFor = null, ddDay = '';\n    function ddToday() { try { return new Intl.DateTimeFormat('en-CA', { timeZone: PHS.tz || undefined, year: 'numeric', month: '2-digit', day: '2-digit' }).format(new Date()); } catch (e) { return new Date().toDateString(); } }\n    function ddPick(arr, n, salt) {\n      var d = ddToday() + '|' + (salt || ''), s = 7;\n      for (var i = 0; i < d.length; i++) s = (s * 31 + d.charCodeAt(i)) % 2147483647;\n      var a = arr.slice(), out = [];\n      while (a.length && out.length < n) { out.push(a.splice(s % a.length, 1)[0]); s = (s * 48271) % 2147483647; }\n      return out;\n    }\n    function ddPrice(price, cap) {\n      var SRS = '<span class=\"sr-only\">' + esc(L.salep) + '</span>', SRR = '<span class=\"sr-only\">' + esc(L.regp) + '</span>';\n      var was = cap > price ? cap : price, pay = unitPay(price);\n      return (was > pay ? '<s>' + SRR + esc(money(was)) + '</s> ' : '') + '<b>' + SRS + esc(money(pay)) + '</b>';\n    }\n    function ddChoose(items, salt) {\n      var sale = items.filter(function (x) { return x.cap > x.price; }), rest = items.filter(function (x) { return !(x.cap > x.price); });\n      var got = ddPick(sale, 2, salt);\n      return got.concat(ddPick(rest, 2 - got.length, salt));\n    }\n    /* the photo strip in each dagdeal card: swipe, tap a dot, or hover (mouse) to peek at the second photo */\n    function ddStrips() {\n      if (!ddG) return;\n      [].forEach.call(ddG.querySelectorAll('.sdp-dd__img'), function (box) {\n        if (box.dataset.sdpx) return; box.dataset.sdpx = '1';\n        var st = box.querySelector('.sdp-dd__strip'), dots = box.querySelectorAll('.sdp-dd__dots i');\n        if (!st || dots.length < 2) return;\n        function go(i) { st.scrollTo({ left: i * st.clientWidth, behavior: reduce ? 'auto' : 'smooth' }); }\n        st.addEventListener('scroll', function () { var i = Math.round(st.scrollLeft / Math.max(1, st.clientWidth)); [].forEach.call(dots, function (d, k) { d.classList.toggle('is-on', k === i); }); }, { passive: true });\n        [].forEach.call(dots, function (d, k) { d.addEventListener('click', function (e) { e.preventDefault(); e.stopPropagation(); go(k); }); });\n        if (window.matchMedia('(hover: hover)').matches) { box.addEventListener('mouseenter', function () { go(1); }); box.addEventListener('mouseleave', function () { go(0); }); }\n      });\n    }\n    function ddServer() {\n      if (!ddG) return;\n      ddG.innerHTML = ddSrv; if (ddH) ddH.innerHTML = ddH0;\n      $$('[data-sdp-dd] [data-sdp-pct]').forEach(function (el) { el.textContent = PCT; });\n      var cs = [].slice.call(ddG.querySelectorAll('[data-dd-c]')).map(function (c) { return { el: c, price: +c.getAttribute('data-price') || 0, cap: +c.getAttribute('data-cap') || 0 }; });\n      var keep = ddChoose(cs, 'upp');\n      cs.forEach(function (x) { x.el.hidden = keep.indexOf(x) < 0; x.el.querySelector('[data-dd-p]').innerHTML = ddPrice(x.price, x.cap); });\n      keep.forEach(function (x) { ddG.appendChild(x.el); });\n      $$('[data-sdp-ddpct]').forEach(function (el) { el.textContent = L.dd_pct.replace('{p}', PCT); });\n      ddStrips();\n    }\n    function ddWatch(w) {\n      if (!ddG || !w || ddFor === w[0]) return;\n      ddFor = w[0];\n      var tmp = document.createElement('div');\n      loadInto(tmp, w[3] + '?sort_by=best-selling', 'dd').then(function (n) {\n        if (ddFor !== w[0] || n <= 0) return;\n        var items = [].slice.call(tmp.querySelectorAll('[data-sdp-card]')).filter(function (c) { return !c.hasAttribute('data-oneone'); }).map(function (c) {\n          var im = c.querySelector('.sdp-pc__img img'), tt = c.querySelector('.sdp-pc__tt');\n          var im2 = c.querySelector('.sdp-pc__img2');\n          return { url: c.getAttribute('data-url') || '', price: +c.getAttribute('data-price') || 0, cap: +c.getAttribute('data-cap') || 0, strap: c.hasAttribute('data-strap'),\n            title: tt ? tt.textContent.trim() : '', img: im ? (im.getAttribute('src') || '') : '', srcset: im ? (im.getAttribute('srcset') || '') : '',\n            img2: im2 ? (im2.getAttribute('src') || '') : '', srcset2: im2 ? (im2.getAttribute('srcset') || '') : '' };\n        });\n        var pick = ddChoose(items, String(w[0]));\n        if (!pick.length) return;\n        var bolt = BOLT, arrow = (ddSrv.match(/<span class=\"sdp-dd__go\"[^>]*>[\\s\\S]*?<\\/span>/) || [''])[0];\n        ddG.innerHTML = pick.map(function (x) {\n          var im = function (u, ss) { return '<img src=\"' + esc(u) + '\"' + (ss ? ' srcset=\"' + esc(ss) + '\" sizes=\"(max-width: 749px) 34vw, 240px\"' : '') + ' alt=\"\" loading=\"lazy\" width=\"480\" height=\"480\">'; };\n          return '<li class=\"sdp-dd__c\" data-dd-c><a class=\"sdp-dd__a\" href=\"' + esc(x.url) + '\"><span class=\"sdp-dd__img\"><span class=\"sdp-dd__strip\">' +\n            (x.img ? im(x.img, x.srcset) : '') + (x.img2 ? im(x.img2, x.srcset2) : '') + '</span>' +\n            (x.img && x.img2 ? '<span class=\"sdp-dd__dots\" aria-hidden=\"true\"><i class=\"is-on\"></i><i></i></span>' : '') +\n            '</span><span class=\"sdp-dd__b\"><span class=\"sdp-dd__chip\">' + bolt + esc(L.dd_chip) + '</span><span class=\"sdp-dd__t\">' + esc(x.title) + '</span>' +\n            (x.strap && STACK ? '<span class=\"sdp-dd__b21\">' + esc(L.b21) + '</span>' : '') +\n            '<span class=\"sdp-dd__p\" data-dd-p>' + ddPrice(x.price, x.cap) + '</span>' +\n            (PCT > 0 ? '<span class=\"sdp-dd__ok\">' + esc(L.dd_pct.replace('{p}', PCT)) + '</span>' : '') + '</span>' + arrow + '</a></li>';\n        }).join('');\n        if (ddH) ddH.textContent = L.dd_hm.replace('{m}', full(w)).replace('{p}', PCT);\n        ddStrips();\n      });\n    }\n    if (ddEl && PCT > 0) {\n      ddDay = ddToday();\n      ddServer();\n      var ddT = ddEl.querySelector('[data-sdp-ddt]'), ddC = ddEl.querySelector('[data-sdp-ddc]');\n      var ddFmt = null;\n      try { ddFmt = new Intl.DateTimeFormat('en-GB', { timeZone: PHS.tz || undefined, hourCycle: 'h23', hour: '2-digit', minute: '2-digit', second: '2-digit' }); } catch (e) {}\n      var ddTick = function () {\n        if (!ddFmt) return;\n        var p = ddFmt.formatToParts(new Date()), g = function (t) { for (var i = 0; i < p.length; i++) if (p[i].type === t) return +p[i].value; return 0; };\n        var left = 86400 - ((g('hour') % 24) * 3600 + g('minute') * 60 + g('second'));\n        var two = function (v) { return ('0' + v).slice(-2); };\n        ddC.textContent = two(Math.floor(left / 3600)) + ':' + two(Math.floor(left % 3600 / 60)) + ':' + two(left % 60);\n        ddT.hidden = false;\n        if (ddToday() !== ddDay) { ddDay = ddToday(); var f = ddFor; ddFor = null; if (f && cur) ddWatch(cur); else ddServer(); }\n      };\n      if (ddT && ddC) { ddTick(); setInterval(ddTick, 1000); }\n    }\n    var SORT = '';\n    $$('[data-sdp-news]').forEach(function (fr) {\n      function go() { if (fr.src) return; var f = fr.getAttribute('data-sdp-news'); fr.src = f + (f.indexOf('?') > -1 ? '&' : '?') + location.search.substr(1) + '&location=' + location.origin + location.pathname; }\n      if (!('IntersectionObserver' in window)) { go(); return; }\n      var io2 = new IntersectionObserver(function (es) { if (es.some(function (x) { return x.isIntersecting; })) { io2.disconnect(); go(); } }, { rootMargin: '300px' });\n      io2.observe(fr);\n    });\n    var cfb = $('[data-sdp-cfilter]');\n    function catFilter(k, scroll) {\n      if (!cfb) return;\n      [].forEach.call(cfb.children, function (x) { x.setAttribute('aria-pressed', x.getAttribute('data-cat') === k ? 'true' : 'false'); });\n      $$('section[data-cat]').forEach(function (sec) { sec.hidden = !(k === 'all' || sec.getAttribute('data-cat') === k) || (sec.classList.contains('sdp-model') && !root.classList.contains('sdp--known')); });\n      /* Round 22: an accessory filter showed the strap bundle block first; it moves below that category's band and\n         returns to its own place for all categories and for straps. */\n      var bb = $('section.sdp-bb');\n      if (bb) {\n        if (!bb._home) { bb._home = document.createComment('sdp-bb'); bb.parentNode.insertBefore(bb._home, bb); }\n        var acc = k !== 'all' && k !== 'straps', last = acc ? $$('section[data-cat=\"' + k + '\"]').pop() : null;\n        if (last) last.parentNode.insertBefore(bb, last.nextSibling); else if (bb._home.parentNode) bb._home.parentNode.insertBefore(bb, bb._home);\n      }\n      if (scroll && k !== 'all') { var t = $('section.sdp-catband[data-cat=\"' + k + '\"]'); if (k === 'straps' && root.classList.contains('sdp--known')) t = $('.sdp-model') || t; if (t) t.scrollIntoView({ behavior: reduce ? 'auto' : 'smooth', block: 'start' }); }\n    }\n    if (cfb) cfb.addEventListener('click', function (e) { var b = e.target.closest('[data-cat]'); if (b) catFilter(b.getAttribute('data-cat'), false); });\n    $$('.sdp-tile[data-cat]').forEach(function (t) { t.addEventListener('click', function (e) { e.preventDefault(); catFilter(t.getAttribute('data-cat'), true); }); });\n    var tr = $('[data-sdp-tilerail]'); if (tr) { var tu = railNav(tr); if (tu) setTimeout(tu, 60); }\n    var cur = null, MAT = '', PMAX = 0, grid = $('[data-sdp-grid]'), more = $('[data-sdp-more]');\n    function gridUrl(page) { return cur[3] + (MAT ? '/' + MAT : '') + '?sort_by=' + (SORT || (PMAX ? 'price-ascending' : 'best-selling')) + (page > 1 ? '&page=' + page : ''); }\n    $$('[data-sdp-sort]').forEach(function (sel) { sel.addEventListener('change', function () { SORT = sel.value; if (cur) loadGrid(false); }); });\n    function loadGrid(append, page) {\n      return loadInto(grid, gridUrl(page || 1), 'grid', append).then(function (n) {\n        if (n < 0) return n;\n        more.hidden = !grid.dataset.next; more.href = cur[3] + (MAT ? '/' + MAT : '') + (SORT ? '?sort_by=' + SORT : '');\n        var c = +grid.dataset.count, hid = PMAX ? applyPmax(grid, PMAX) : 0;\n        if (hid) more.hidden = true;\n        if (PMAX) c = more.hidden ? grid.querySelectorAll('.nr-i:not([hidden])').length : 0;\n        $('[data-sdp-count]').textContent = c > 0 ? L.count.replace('%n', c.toLocaleString(NF)) : '';\n        $('[data-sdp-msg]').hidden = append || (n !== 0 && !(PMAX && !grid.querySelector('.nr-i:not([hidden])')));\n        if (n > 0 && !append) accessories();\n        return n;\n      });\n    }\n    $$('.sdp-mtab').forEach(function (t) {\n      t.addEventListener('click', function () {\n        if (!cur) return;\n        MAT = t.getAttribute('data-mat');\n        $$('.sdp-mtab').forEach(function (x) { x.setAttribute('aria-selected', x === t ? 'true' : 'false'); });\n        loadGrid(false);\n      });\n    });\n    $$('[data-sdp-pchips]').forEach(function (g) {\n      g.addEventListener('click', function (e) {\n        var b = e.target.closest('[data-pmax]'); if (!b || b.getAttribute('aria-pressed') === 'true') return;\n        [].forEach.call(g.querySelectorAll('[data-pmax]'), function (x) { x.setAttribute('aria-pressed', x === b ? 'true' : 'false'); });\n        var max = +b.getAttribute('data-pmax') || 0;\n        if (g.getAttribute('data-sdp-pchips') === 'grid') { PMAX = max; if (cur) loadGrid(false); return; }\n        var rail = g.parentNode.querySelector('[data-sdp-rail]'); if (!rail) return;\n        rail.dataset.pmax = max; rail.dataset.sdpLoaded = ''; loadRail(rail);\n      });\n    });\n    var GEN = /^(ALLPRODUCTS|STRAP|ACCESSORY|SALE|UPSELL.*|GH.*|FILTERVARIANT.*|N8N.*|SMARTCOLL.*|VARIANT_.*|PROJECT.*|.*GRATIS.*|SILICONE|NYLON|LEATHER|METAL|MILANESE|TITANIUM|STEEL|ELASTIC|BLACKFRIDAY.*|BESTDEAL|NIEUW|NEW|GARMIN|SAMSUNG|APPLE|APPLEWATCH|FITBIT|HUAWEI|XIAOMI|AMAZFIT|POLAR|SUUNTO|GOOGLE|WITHINGS|OPPO|ONEPLUS|TICWATCH|COROS|WHOOP|NOTHING|CMF|HONOR|REALME|MOBVOI|FOSSIL|WAHOO|CLADD-.*)$/i;\n    var accFor = null, accHead = ($('[data-sdp-acch]') || {}).innerHTML || '';\n    /* Accessory rows for the chosen watch (2026-11-06): hoesjes, screenprotectors and opladers swap their generic\n       feed for this watch's, found two ways and merged without doubles: the model tag (read off its straps) and the\n       store search on the watch's name, filtered to accessories of that type (the model tag misses some). Bags and\n       power banks fit every watch and stay as they are. A row with nothing found keeps its generic feed. */\n    function watchBands(me, tag) {\n      var TYPES = { cases: 'case', screen: 'screen', chargers: 'charger' }, extra = [], jobs = [];\n      Object.keys(TYPES).forEach(function (k) {\n        var sec = $('section.sdp-catband[data-cat=\"' + k + '\"]'); if (!sec) return;\n        var rail = sec.querySelector('[data-sdp-rail]'), h = sec.querySelector('[data-sdp-bandh]'); if (!rail) return;\n        var ty = TYPES[k], ta = document.createElement('div'), tb = document.createElement('div');\n        rail.dataset.sdpLoaded = '1';\n        var pa = tag ? loadInto(ta, CFG.allUrl + '/accessory+' + ty + '+' + tag + '?sort_by=best-selling', 'wb' + k + 'a') : Promise.resolve(0);\n        var pb = loadInto(tb, ROOTP + 'search?type=product&options%5Bprefix%5D=none&q=' + encodeURIComponent(full(me)), 'wb' + k + 'b');\n        jobs.push(Promise.all([pa, pb]).then(function () {\n          if (cur !== me) return;\n          var seen = {}, items = [];\n          function take(box, check) {\n            [].forEach.call(box.querySelectorAll('.nr-i'), function (it) {\n              var cd = it.querySelector('[data-sdp-card]'); if (!cd) return;\n              var hd = cd.getAttribute('data-handle'); if (!hd || seen[hd]) return;\n              if (check) { var tg = cd.getAttribute('data-tags') || ''; if (tg.indexOf(',accessory,') < 0 || tg.indexOf(',' + ty + ',') < 0) return; }\n              seen[hd] = 1; items.push(it);\n            });\n          }\n          take(ta, false); take(tb, true);\n          if (items.length < 3) { items.forEach(function (it) { extra.push(it); }); if (h) h.textContent = h.getAttribute('data-c'); rail.dataset.sdpLoaded = ''; loadRail(rail); return; }\n          rail.innerHTML = '';\n          items.slice(0, 24).forEach(function (it) { rail.appendChild(it); });\n          if (!rail.sdpUpd) rail.sdpUpd = railNav(rail);\n          rail.scrollLeft = 0; if (rail.sdpUpd) rail.sdpUpd();\n          if (h) h.textContent = L.for_m.replace('{c}', h.getAttribute('data-c')).replace('{m}', full(me));\n        }));\n      });\n      Promise.all(jobs).then(function () {\n        if (cur !== me) return;\n        var acc = $('[data-sdp-acc]'), box = $('[data-sdp-accgrid]'); if (!acc || !box) return;\n        box.innerHTML = ''; extra.forEach(function (it) { box.appendChild(it); });\n        acc.hidden = !extra.length; if (!extra.length) return;\n        $$('[data-sdp-acch] [data-sdp-mname]').forEach(function (x) { x.textContent = full(me); });\n        if (!box.sdpUpd) box.sdpUpd = railNav(box); box.scrollLeft = 0; if (box.sdpUpd) { box.sdpUpd(); setTimeout(box.sdpUpd, 500); setTimeout(box.sdpUpd, 1500); }\n      });\n    }\n    function accessories() {\n      if (!cur || accFor === cur[0]) return;\n      accFor = cur[0];\n      var me = cur, hrefs = [].map.call(grid.querySelectorAll('[data-sdp-card][data-strap]'), function (c) { return (c.getAttribute('data-url') || '').split('?')[0]; }).slice(0, 4);\n      Promise.all(hrefs.map(function (h) { return pjson(h).catch(function () { return null; }); })).then(function (prs) {\n        if (cur !== me) return;\n        var sets = prs.filter(function (p) { return p && (p.tags || []).indexOf('STRAP') > -1; }).map(function (p) { return p.tags; });\n        if (!sets.length) sets = [[]];\n        var common = sets[0].filter(function (t) { return !GEN.test(t) && sets.every(function (x) { return x.indexOf(t) > -1; }); });\n        var acc = $('[data-sdp-acc]'), box = $('[data-sdp-accgrid]'), head = $('[data-sdp-acch]');\n        var brandTag = String(me[1] || '').toLowerCase().split(' ')[0].replace(/[^a-z0-9-]/g, '');\n        function load(tag, brand) {\n          if (!tag) { acc.hidden = true; return; }\n          head.innerHTML = brand ? esc(L.acc_brand.replace('{b}', me[1])) : accHead;\n          if (!brand) $$('[data-sdp-acch] [data-sdp-mname]').forEach(function (x) { x.textContent = full(me); });\n          acc.hidden = false;\n          loadInto(box, CFG.allUrl + '/accessory+' + tag + '?sort_by=best-selling', 'acc').then(function (n) {\n            if (n > 0) { if (!box.sdpUpd) box.sdpUpd = railNav(box); box.scrollLeft = 0; if (box.sdpUpd) box.sdpUpd(); }\n            if (cur !== me) return;\n            if (n <= 0 && !brand) load(brandTag, true); else if (n <= 0) acc.hidden = true;\n          });\n        }\n        $('[data-sdp-accsub]').textContent = L.acc_new + (PCT ? ' ' + L.acc_pct.replace('{p}', PCT) : '');\n        watchBands(me, common.length ? common[0].toLowerCase() : '');\n      });\n    }\n\n\n    /* ---------------------------------------------------------------------------------------------------------------\n       BUNDLE BUILDER (#1062, Alejandro 2026-11-05): pick 3 or 5 straps, see what the store will charge (bundleTotal:\n       the cheapest free, the % on the rest), add them all in one go through the Impact cart contract. Only straps with\n       one variant that are in stock and not 1+1GRATIS can be picked, so one tap is one strap.\n       --------------------------------------------------------------------------------------------------------------- */\n    var bbLoad = null, bbOn = false, bbEl = $('[data-sdp-bb]');\n    if (bbEl) (function () {\n      var pool = bbEl.querySelector('[data-sdp-bbpool]'), slots = bbEl.querySelector('[data-sdp-bbslots]'),\n        tot = bbEl.querySelector('[data-sdp-bbtot]'), go = bbEl.querySelector('[data-sdp-bbadd]'),\n        N = 3, picks = [], bbFor = null, upd = railNav(pool),\n        SRS = '<span class=\"sr-only\">' + esc(L.salep) + '</span>', SRR = '<span class=\"sr-only\">' + esc(L.regp) + '</span>';\n      var X = '<svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.6\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M6 6l12 12M18 6L6 18\"/></svg>';\n      function render() {\n        var free = picks.map(function (p, i) { return i; }).sort(function (a, b) { return picks[a].price - picks[b].price || a - b; }).slice(0, STACK ? freeN(picks.length) : 0);\n        var h = '';\n        for (var i = 0; i < N; i++) {\n          var p = picks[i];\n          if (!p) { h += '<li class=\"sdp-bb__slot\"><span class=\"sdp-bb__n\">' + (i + 1) + '</span></li>'; continue; }\n          var fr = free.indexOf(i) > -1;\n          h += '<li class=\"sdp-bb__slot is-on' + (fr ? ' is-free' : '') + '\"><span class=\"sdp-bb__img\">' + (p.img ? '<img src=\"' + esc(p.img) + '\" alt=\"\" width=\"72\" height=\"72\">' : '') +\n            (fr ? '<b class=\"sdp-pip__f\">' + esc(L.free) + '</b>' : '') + '</span><span class=\"sdp-bb__tt\">' + esc(p.title) + '</span>' +\n            '<button type=\"button\" class=\"sdp-bb__rm\" data-i=\"' + i + '\" aria-label=\"' + esc(L.bb_rm + ': ' + p.title) + '\">' + X + '</button></li>';\n        }\n        slots.innerHTML = h;\n        var ps = picks.map(function (p) { return p.price; }), was = ps.reduce(function (t, x) { return t + x; }, 0), pay = bundleTotal(ps);\n        tot.innerHTML = picks.length ? (pay < was ? '<s>' + SRR + esc(money(was)) + '</s> ' : '') + '<b>' + (pay < was ? SRS : '') + esc(money(pay)) + '</b>' : '';\n        var k = N - picks.length;\n        go.disabled = k > 0;\n        go.textContent = k > 0 ? L.bb_more.replace('{k}', k) : L.bb_add.replace('{n}', N);\n      }\n      /* Without a watch the pool has too few one-tap straps (QA 1ad415ba), so it waits for one: an invitation over the\n         skeleton, which scrolls to the watch search. Never hidden, and the skeleton keeps the height it fills to. */\n      var empty = bbEl.querySelector('[data-sdp-bbempty]'), emptyL = bbEl.querySelector('[data-sdp-bbemptyl]'), emptyTxt = emptyL ? emptyL.textContent : '';\n      bbEl.querySelector('[data-sdp-bbpickw]').addEventListener('click', function () {\n        var f = $('[data-sdp-find]') || $('.sdp-find'), qi = $('[data-sdp-q]');\n        if (f) f.scrollIntoView({ behavior: reduce ? 'auto' : 'smooth', block: 'center' });\n        if (qi) setTimeout(function () { try { qi.focus({ preventScroll: true }); } catch (e) { qi.focus(); } }, reduce ? 0 : 450);\n      });\n      bbLoad = function () {\n        bbOn = true;\n        if (!cur) { empty.hidden = false; return; }\n        if (bbFor === cur[0]) return;\n        bbFor = cur[0]; picks = []; render();\n        if (emptyL) emptyL.textContent = emptyTxt; empty.hidden = true;\n        loadInto(pool, cur[3] + '?sort_by=best-selling', 'bb').then(function (n) {\n          if (n < 0) return;\n          var ok = 0;\n          [].forEach.call(pool.querySelectorAll('.nr-i'), function (it) {\n            var c = it.querySelector('[data-sdp-card]'), good = !!(c && c.hasAttribute('data-vid') && c.hasAttribute('data-strap') && !c.hasAttribute('data-oneone'));\n            it.hidden = !good; if (good) ok++;\n          });\n          if (!ok) { pool.innerHTML = new Array(5).join('<div class=\"sdp-sk\"></div>'); if (emptyL) emptyL.textContent = L.empty; empty.hidden = false; }\n          else { if (emptyL) emptyL.textContent = emptyTxt; empty.hidden = true; }\n          pool.scrollLeft = 0; if (upd) upd();\n        });\n      };\n      /* Capture phase: a tap on a pool card's add button picks it instead of adding it to the cart on its own. */\n      pool.addEventListener('click', function (e) {\n        var b = e.target.closest('[data-add]'); if (!b || !pool.contains(b)) return;\n        e.preventDefault(); e.stopPropagation();\n        var c = b.closest('[data-sdp-card]'); if (!c || !c.hasAttribute('data-vid')) return;\n        if (picks.length >= N) { go.classList.remove('is-nudge'); void go.offsetWidth; go.classList.add('is-nudge'); return; }\n        var im = c.querySelector('.sdp-pc__img img'), tt = c.querySelector('.sdp-pc__tt');\n        picks.push({ vid: c.getAttribute('data-vid'), price: +c.getAttribute('data-price') || 0, title: tt ? tt.textContent.trim() : '', img: im ? (im.currentSrc || im.src) : '' });\n        render();\n        b.classList.add('is-done'); setTimeout(function () { b.classList.remove('is-done'); }, 900);\n      }, true);\n      slots.addEventListener('click', function (e) {\n        var b = e.target.closest('.sdp-bb__rm'); if (!b) return;\n        picks.splice(+b.getAttribute('data-i'), 1); render();\n      });\n      [].forEach.call(bbEl.querySelectorAll('[data-sdp-bbn]'), function (m) {\n        m.addEventListener('click', function () {\n          N = +m.getAttribute('data-sdp-bbn') || 3; picks = picks.slice(0, N);\n          [].forEach.call(bbEl.querySelectorAll('[data-sdp-bbn]'), function (x) { x.setAttribute('aria-pressed', x === m ? 'true' : 'false'); });\n          render();\n        });\n      });\n      go.addEventListener('click', function () {\n        if (picks.length < N) return;\n        var q = {}, order = [];\n        picks.forEach(function (p) { if (!q[p.vid]) { q[p.vid] = 0; order.push(p.vid); } q[p.vid]++; });\n        var items = order.map(function (v) { return { id: +v, quantity: q[v] }; }), bundled = ['variant-added'], su = ROOTP + 'variants/' + order[0];\n        go.classList.add('is-busy'); go.disabled = true;\n        document.documentElement.dispatchEvent(new CustomEvent('cart:prepare-bundled-sections', { bubbles: true, detail: { sections: bundled } }));\n        fetch(ROOTP + 'cart/add.js', { method: 'POST', headers: { 'Content-Type': 'application/json', Accept: 'application/json' },\n          body: JSON.stringify({ items: items, sections: bundled, sections_url: su }) })\n          .then(function (r) { if (!r.ok) throw new Error(r.status); return r.json(); })\n          .then(function (added) {\n            return fetch(ROOTP + 'cart.js', { headers: { Accept: 'application/json' } }).then(function (r) { return r.json(); })\n              .then(function (cart) { return withSections(cart, bundled, added.sections, su); })\n              .then(function (cart) {\n                announce(cart, bundled, 'variant:add', added.items || []);\n                bar(cart);\n                picks = []; render(); go.classList.remove('is-busy'); go.textContent = L.added;\n                setTimeout(render, 1600);\n              });\n          })\n          .catch(function () { go.classList.remove('is-busy'); render(); });\n      });\n      render();\n      if ('IntersectionObserver' in window) {\n        var bio = new IntersectionObserver(function (es) { if (es[0].isIntersecting) { bio.disconnect(); bbLoad(); } }, { rootMargin: '500px 0px' });\n        bio.observe(bbEl);\n      } else bbLoad();\n    })();\n    $$('[data-sdp-rvrail]').forEach(railNav);\n\n    /* ---------------------------------------------------------------------------------------------------------------\n       QUICK VIEW: every photo, the name, the options (the size picker), add.\n       --------------------------------------------------------------------------------------------------------------- */\n    var qv = $('[data-sdp-qv]'), qvP = null, qvSel = [], qvHref = '';\n    function qvVariant() {\n      if (!qvP) return null;\n      for (var i = 0; i < qvP.variants.length; i++) {\n        var v = qvP.variants[i], ok = true;\n        for (var o = 0; o < qvSel.length; o++) if (v['option' + (o + 1)] !== qvSel[o]) ok = false;\n        if (ok) return v;\n      }\n      return null;\n    }\n    function qvPaint() {\n      var v = qvVariant(), pr = v ? v.price : qvP.price, oneone = (qvP.tags || []).indexOf('1+1GRATIS') > -1;\n      var cap = v && v.compare_at_price ? v.compare_at_price : 0;\n      $('[data-sdp-qvp]').innerHTML = priceHtml(pr, cap, oneone);\n      $('[data-sdp-qvchips]').innerHTML = chips((qvP.tags || []).indexOf('STRAP') > -1, oneone);\n      var addB = $('[data-sdp-qvadd]');\n      addB.disabled = !(v && v.available); addB.textContent = v && v.available ? L.add : L.soldout;\n      $$('.sdp-opt').forEach(function (g, oi) {\n        [].forEach.call(g.querySelectorAll('button'), function (b) {\n          var val = b.getAttribute('data-v');\n          b.setAttribute('aria-pressed', qvSel[oi] === val ? 'true' : 'false');\n          var can = qvP.variants.some(function (x) {\n            if (!x.available || x['option' + (oi + 1)] !== val) return false;\n            for (var o = 0; o < qvSel.length; o++) if (o !== oi && x['option' + (o + 1)] !== qvSel[o]) return false;\n            return true;\n          });\n          b.classList.toggle('is-out', !can);\n        });\n      });\n      if (v && v.featured_image && v.featured_image.src) {\n        var id = v.featured_image.src.split('?')[0].split('/').pop(), g2 = $('[data-sdp-qvg]');\n        [].forEach.call(g2.querySelectorAll('img'), function (im, i) { if (im.getAttribute('data-src-id') === id) g2.scrollTo({ left: i * g2.clientWidth, behavior: reduce ? 'auto' : 'smooth' }); });\n      }\n    }\n    function openQV(href) {\n      qvHref = href;\n      pjson(href).then(function (pr) {\n        if (!pr) { location.href = href; return; }\n        qvP = pr;\n        var first = pr.variants.filter(function (v) { return v.available; })[0] || pr.variants[0], nOpt = (pr.options || []).length;\n        qvSel = []; for (var o = 0; o < nOpt; o++) qvSel.push(first['option' + (o + 1)]);\n        var imgs = (pr.images || []).slice(0, 10).map(function (u) { return (u.indexOf('//') === 0 ? 'https:' : '') + u; });\n        $('[data-sdp-qvg]').innerHTML = imgs.map(function (u, i) {\n          return '<img src=\"' + esc(u + (u.indexOf('?') < 0 ? '?' : '&') + 'width=900') + '\" data-src-id=\"' + esc(u.split('?')[0].split('/').pop()) + '\" alt=\"' + esc(pr.title) + '\" width=\"900\" height=\"900\"' + (i ? ' loading=\"lazy\"' : '') + '>';\n        }).join('');\n        $('[data-sdp-qvdots]').innerHTML = imgs.length > 1 ? imgs.map(function (u, i) { return '<button type=\"button\" aria-label=\"' + esc(L.photo.replace('%n', i + 1)) + '\"' + (i ? '' : ' aria-current=\"true\"') + ' data-i=\"' + i + '\"></button>'; }).join('') : '';\n        $('[data-sdp-qvt]').textContent = pr.title;\n        var single = pr.variants.length === 1 && (!pr.variants[0].option1 || pr.variants[0].option1 === 'Default Title');\n        $('[data-sdp-qvo]').innerHTML = single ? '' : (pr.options || []).map(function (name, oi) {\n          var vals = []; pr.variants.forEach(function (v) { var x = v['option' + (oi + 1)]; if (vals.indexOf(x) < 0) vals.push(x); });\n          if (vals.length < 2) return '';\n          var label = typeof name === 'string' ? name : (name && name.name) || '';\n          return '<div class=\"sdp-opt\"><p>' + esc(label) + '</p><div>' + vals.map(function (x) { return '<button type=\"button\" data-v=\"' + esc(x) + '\">' + esc(x) + '</button>'; }).join('') + '</div></div>';\n        }).join('');\n        $('[data-sdp-qvlink]').href = href;\n        var CHK = '<svg viewBox=\"0 0 24 24\" width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12.5l4.5 4.5L19 7.5\"/></svg>';\n        var isS = (pr.tags || []).indexOf('STRAP') > -1, facts = [];\n        if (cur) facts.push(L.fits.replace('%m', full(cur)));\n        if (isS && STACK) facts.push(L.counts);\n        facts.push(L.p1);\n        $('[data-sdp-qvf]').innerHTML = facts.map(function (f) { return '<li>' + CHK + '<span>' + esc(f) + '</span></li>'; }).join('');\n        var tmp = document.createElement('div'); tmp.innerHTML = (pr.description || '').replace(/<\\/(h[1-6]|p|li|div|ul|ol)>|<br\\s*\\/?>/gi, ' ');\n        $('[data-sdp-qvd]').textContent = (tmp.textContent || '').replace(/\\s+/g, ' ').trim().slice(0, 360);\n        qvPaint();\n        $('[data-sdp-qvg]').scrollLeft = 0;\n        if (!qv.open) {\n          qv.showModal(); document.documentElement.style.overflow = 'hidden';\n          var tt = $('[data-sdp-qvt]'); tt.setAttribute('tabindex', '-1'); tt.focus({ preventScroll: true });\n        }\n      }).catch(function () { location.href = href; });\n    }\n    $('[data-sdp-qvo]').addEventListener('click', function (e) {\n      var b = e.target.closest('.sdp-opt button'); if (!b) return;\n      qvSel[$$('.sdp-opt').indexOf(b.closest('.sdp-opt'))] = b.getAttribute('data-v'); qvPaint();\n    });\n    $('[data-sdp-qvadd]').addEventListener('click', function () {\n      var v = qvVariant(), btn = this; if (!v || !v.available) return;\n      var p = add(v.id, btn, qvHref);\n      if (p && p.then) p.then(function () { setTimeout(function () { if (qv.open) qv.close(); }, 450); });\n    });\n    $('[data-sdp-qvx]').addEventListener('click', function () { qv.close(); });\n    qv.addEventListener('click', function (e) { if (e.target === qv) qv.close(); });\n    qv.addEventListener('close', function () { document.documentElement.style.overflow = ''; });\n    $('[data-sdp-qvdots]').addEventListener('click', function (e) {\n      var b = e.target.closest('button'); if (!b) return; var g = $('[data-sdp-qvg]');\n      g.scrollTo({ left: (+b.getAttribute('data-i')) * g.clientWidth, behavior: reduce ? 'auto' : 'smooth' });\n    });\n    $('[data-sdp-qvg]').addEventListener('scroll', function () {\n      var g = this, i = Math.round(g.scrollLeft / Math.max(1, g.clientWidth));\n      [].forEach.call($('[data-sdp-qvdots]').children, function (d, j) { d.setAttribute('aria-current', j === i ? 'true' : 'false'); });\n    }, { passive: true });\n\n    /* ---------------------------------------------------------------------------------------------------------------\n       CHOOSING THE WATCH: the hero search (suggestions from the menus), the brand chips, the header (hook), a link.\n       --------------------------------------------------------------------------------------------------------------- */\n    function remember(w) {\n      if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', function () { remember(w); }); return; }\n      try { sessionStorage.setItem('wd_mid', String(w[0])); } catch (e) {}\n      var v2 = window.swbV2;\n      if (v2 && typeof v2.set === 'function') { try { v2.set({ brand: w[1], model: w[2], url: w[3] }, 'echo'); return; } catch (e) {} }\n      fetch(ROOTP + 'cart/update.js', { method: 'POST', headers: { 'Content-Type': 'application/json' },\n        body: JSON.stringify({ attributes: { 'switch-module-brand': w[1], 'switch-module-model': w[2], 'switch-module-url': w[3] } }) }).catch(function () {});\n    }\n    /* ---- 'Welk horloge heb ik?' (ported from the live Universal Product Page, initGuide) ---- */\n    function initGuide() {\n      var box = root.querySelector('[data-upp-guide]');\n      if (!box) return;\n      var card = box.querySelector('.upp-guide__box'), titleEl = box.querySelector('[data-upp-guide-title]');\n      var backBtn = box.querySelector('[data-upp-guide-back]'), brandsView = box.querySelector('[data-upp-guide-view=\"brands\"]');\n      var contentView = box.querySelector('[data-upp-guide-view=\"content\"]'), bodyEl = box.querySelector('[data-upp-guide-body]');\n      var brandsWrap = box.querySelector('[data-upp-guide-brands]'), otherBtn = box.querySelector('[data-upp-guide-other]'), stepsEl = box.querySelector('[data-upp-guide-steps]');\n      var homeTitle = titleEl ? titleEl.textContent : '', loadingText = box.getAttribute('data-loading') || '', lastFocus = null, cache = {};\n      var MAP = [];\n      try { MAP = JSON.parse(box.querySelector('[data-upp-guide-map]').textContent) || []; } catch (e) { MAP = []; }\n      function entryFor(name) {\n        var n = String(name || '').toLowerCase().replace(/[^a-z0-9]+/g, '');\n        if (!n) return null;\n        for (var i = 0; i < MAP.length; i++) { if (n.indexOf(MAP[i].k) === 0) return MAP[i]; }\n        return null;\n      }\n      function setOther(open) { if (!otherBtn || !stepsEl) return; stepsEl.hidden = !open; otherBtn.setAttribute('aria-expanded', String(open)); }\n      function showBrands() {\n        if (brandsWrap && !brandsWrap.childNodes.length) {\n          brandsWrap.innerHTML = MAP.map(function (m) {\n            return '<button type=\"button\" class=\"upp-guide__brand\" data-upp-guide-brand=\"' + esc(m.k) + '\"><span>' + esc(m.n) + '</span>' +\n              '<svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M9 6l6 6-6 6\"/></svg></button>';\n          }).join('');\n        }\n        if (titleEl) titleEl.textContent = homeTitle;\n        brandsView.hidden = false; contentView.hidden = true; backBtn.hidden = true;\n        if (!MAP.length) setOther(true);\n        card.scrollTop = 0;\n      }\n      function loadGuide(url) {\n        if (cache[url]) return Promise.resolve(cache[url]);\n        return fetch(url, { headers: { Accept: 'text/html' } })\n          .then(function (r) { if (!r.ok) throw new Error(r.status); return r.text(); })\n          .then(function (html) {\n            var doc = new DOMParser().parseFromString(html, 'text/html');\n            ['script', 'style', 'noscript'].forEach(function (t) { [].forEach.call(doc.querySelectorAll(t), function (n) { n.remove(); }); });\n            var out = [];\n            [].forEach.call(doc.querySelectorAll('section.tracker-section'), function (sec) {\n              if (sec.querySelector('form, select, input, button')) return;\n              var h = sec.querySelector('h1, h2, h3');\n              var steps = [].map.call(sec.querySelectorAll('table tr'), function (tr) { return tr.textContent.replace(/\\s+/g, ' ').trim(); }).filter(Boolean);\n              var body = '';\n              if (!steps.length) { var cl = sec.cloneNode(true), hc = cl.querySelector('h1, h2, h3'); if (hc) hc.remove(); body = cl.textContent.replace(/\\s+/g, ' ').trim(); }\n              if (!h && !steps.length) return;\n              var img = sec.querySelector('img');\n              out.push({ title: h ? h.textContent.replace(/\\s+/g, ' ').trim() : '', steps: steps, body: body, img: img ? (img.getAttribute('src') || '') : '' });\n            });\n            if (!out.length) throw new Error('empty');\n            cache[url] = out;\n            return out;\n          });\n      }\n      function showGuide(entry) {\n        if (titleEl) titleEl.textContent = entry.n;\n        brandsView.hidden = true; contentView.hidden = false; backBtn.hidden = false; card.scrollTop = 0;\n        bodyEl.innerHTML = '<p class=\"upp-guide__load\">' + esc(loadingText) + '</p>';\n        loadGuide(entry.u).then(function (secs) {\n          if (box.hidden) return;\n          bodyEl.innerHTML = secs.map(function (x) {\n            return '<div class=\"upp-guide__sec\">' + (x.title ? '<p class=\"upp-guide__h\">' + esc(x.title) + '</p>' : '') +\n              (x.steps.length ? '<ol class=\"upp-guide__list\">' + x.steps.map(function (t) { return '<li>' + esc(t.replace(/^\\d+\\s*/, '')) + '</li>'; }).join('') + '</ol>'\n                : (x.body ? '<p class=\"upp-guide__p\">' + esc(x.body) + '</p>' : '')) +\n              (x.img ? '<img class=\"upp-guide__img\" src=\"' + esc(x.img) + '\" alt=\"\" loading=\"lazy\" decoding=\"async\">' : '') + '</div>';\n          }).join('');\n        }).catch(function () { if (box.hidden) return; showBrands(); setOther(true); }); /* never a dead dialog */\n      }\n      function open() {\n        lastFocus = document.activeElement;\n        box.hidden = false; void box.offsetWidth; box.classList.add('is-open');\n        document.documentElement.style.overflow = 'hidden';\n        var entry = cur ? entryFor(cur[1]) : null;\n        if (entry) showGuide(entry); else showBrands();\n        var x = box.querySelector('[data-upp-guide-close].upp-guide__x'); if (x) { try { x.focus({ preventScroll: true }); } catch (e) {} }\n      }\n      function close() {\n        if (box.hidden) return;\n        box.classList.remove('is-open');\n        document.documentElement.style.overflow = '';\n        setTimeout(function () { box.hidden = true; setOther(false); }, 300);\n        if (lastFocus && lastFocus.focus) { try { lastFocus.focus({ preventScroll: true }); } catch (e) {} }\n      }\n      root.addEventListener('click', function (ev) {\n        var t = ev.target;\n        if (t.closest('[data-upp-guide-open]')) { ev.preventDefault(); open(); return; }\n        if (!box.contains(t)) return;\n        if (t.closest('[data-upp-guide-close]')) { close(); return; }\n        if (t.closest('[data-upp-guide-back]')) { showBrands(); return; }\n        if (t.closest('[data-upp-guide-other]')) { setOther(stepsEl.hidden); return; }\n        var b = t.closest('[data-upp-guide-brand]');\n        if (b) { var k = b.getAttribute('data-upp-guide-brand'); for (var i = 0; i < MAP.length; i++) { if (MAP[i].k === k) { showGuide(MAP[i]); return; } } }\n      });\n      document.addEventListener('keydown', function (ev) { if (ev.key === 'Escape') close(); });\n    }\n    initGuide();\n    function landTarget() { var d = $('[data-sdp-dd]'); if (d && PCT > 0 && d.offsetParent) return d; return $('.sdp-model'); }\n    /* Scroll once the layout has settled (the model rail collapses right after a pick, which moved the target up by\n       its own height mid-scroll), then correct once if the page still moved under it. */\n    function landSoon() {\n      var tries = 0;\n      function go() {\n        /* not while the watch picture is still flying into the pill (html.sdp-vt): the layout is not final yet */\n        if (document.documentElement.classList.contains('sdp-vt') && tries++ < 30) { setTimeout(go, 60); return; }\n        var m = landTarget(); if (m) m.scrollIntoView({ behavior: reduce ? 'auto' : 'smooth', block: 'start' });\n      }\n      var touched = false, stop = function () { touched = true; };\n      ['wheel', 'touchstart', 'keydown'].forEach(function (n) { window.addEventListener(n, stop, { once: true, passive: true }); });\n      requestAnimationFrame(function () { requestAnimationFrame(go); });\n      function fix() { if (touched) return; var m = landTarget(); if (!m) return; var t = m.getBoundingClientRect().top, want = parseFloat(getComputedStyle(m).scrollMarginTop) || 0; if (Math.abs(t - want) > 48) m.scrollIntoView({ behavior: 'auto', block: 'start' }); }\n      setTimeout(fix, 1100); setTimeout(fix, 2600);\n    }\n    /* Round 25: with a watch chosen, \"Ontdek alle hoesjes / screenprotectors / opladers\" opens that collection filtered\n       to the watch: the store's \"suitable for\" filter on the model's name when it has products there, else the brand\n       filter (Apple Watch is filtered by brand only), else the plain collection. Bags and power banks fit every watch. */\n    function accLinks(w) {\n      var me = w, P = 'filter.p.m.custom.';\n      function count(u) {\n        return fetch(u + '&view=dealrow', { credentials: 'same-origin' }).then(function (r) { return r.ok ? r.text() : ''; })\n          .then(function (t) { return (t.match(/data-sdp-card/g) || []).length; }).catch(function () { return 0; });\n      }\n      $$('[data-sdp-allacc]').forEach(function (a) {\n        var base = a.getAttribute('data-base') || a.getAttribute('href'); a.setAttribute('data-base', base); a.setAttribute('href', base);\n        /* The filter's values carry the names as the NL/UK menus write them (\"(45mm)\"); DE and FR write \"(45 mm)\". */\n        var nm = full(w), nm2 = nm.replace(/\\s+mm\\)/i, 'mm)');\n        var mU = base + '?' + P + 'collection_filter_suitable_for=' + encodeURIComponent(nm), m2U = base + '?' + P + 'collection_filter_suitable_for=' + encodeURIComponent(nm2);\n        var bU = base + '?' + P + 'brand_collection_filter=' + encodeURIComponent(w[1]);\n        var tries = nm2 !== nm ? [mU, m2U, bU] : [mU, bU];\n        (function next(i) {\n          if (i >= tries.length || cur !== me) return;\n          count(tries[i]).then(function (k) { if (cur !== me) return; if (k > 0) a.href = tries[i]; else next(i + 1); });\n        })(0);\n      });\n    }\n    function known(on) { root.classList.toggle('sdp--known', on); finSync(); }\n    var finEl = $('[data-sdp-fin]');\n    function finSync() {\n      if (!finEl) return;\n      var l = finEl.querySelector('[data-sdp-fingol]');\n      /* Round 22: with a watch the label runs long (\"Bekijk de deals voor je Samsung Galaxy Watch Ultra 2025\"), so it\n         sits on two rows: the phrase small, the watch bold. */\n      var gb = finEl.querySelector('[data-sdp-fingo]');\n      if (cur && root.classList.contains('sdp--known')) {\n        var pr = L.end_see.split('{m}');\n        l.innerHTML = '<span class=\"sdp-fin__l1\">' + esc((pr[0] || '').trim()) + '</span><b class=\"sdp-fin__l2\">' + esc(full(cur) + (pr[1] || '')) + '</b>';\n        gb.classList.add('is-two');\n      } else { l.textContent = l.getAttribute('data-l0') || l.textContent; gb.classList.remove('is-two'); }\n    }\n    if (finEl) (function () {\n      var l = finEl.querySelector('[data-sdp-fingol]'); l.setAttribute('data-l0', l.textContent);\n      var hc = $('[data-sdp-code]'), code = hc && !hc.hidden ? hc.getAttribute('data-code') : '';\n      var box = finEl.querySelector('[data-sdp-fincode]'), cb = finEl.querySelector('[data-sdp-fincopy]'), cl = finEl.querySelector('[data-sdp-fincopyl]');\n      if (code) { finEl.querySelector('[data-sdp-fincodec]').textContent = code; box.hidden = false; }\n      cb.addEventListener('click', function () {\n        function done() { cb.classList.add('is-done'); cl.textContent = L.copied; setTimeout(function () { cb.classList.remove('is-done'); cl.textContent = L.copy; }, 1800); }\n        if (navigator.clipboard && window.isSecureContext) navigator.clipboard.writeText(code).then(done, done); else done();\n        applyCode(code);\n      });\n      finEl.querySelector('[data-sdp-fingo]').addEventListener('click', function () {\n        if (cur && root.classList.contains('sdp--known')) { var m = landTarget(); if (m) m.scrollIntoView({ behavior: reduce ? 'auto' : 'smooth', block: 'start' }); return; }\n        var f = $('[data-sdp-find]'); if (f) f.scrollIntoView({ behavior: reduce ? 'auto' : 'smooth', block: 'center' });\n        setTimeout(function () { try { q.focus({ preventScroll: true }); } catch (e) { q.focus(); } }, reduce ? 0 : 450);\n      });\n    })();\n    function show(w, save, scroll) {\n      if (cur !== w) { sample = null; accFor = null; }\n      cur = w;\n      if (PCT > 0) ddWatch(w);\n      var bbl = $('[data-sdp-bblink]');\n      if (bbl) { try { var bu = new URL(bbl.getAttribute('href'), location.href); bu.searchParams.set('brand', w[1]); bu.searchParams.set('model', w[2]); bbl.setAttribute('href', bu.pathname + bu.search); } catch (e) {} }\n      $('[data-sdp-name]').textContent = full(w);\n      var mi = $('[data-sdp-mimg]');\n      if (mi) {\n        /* Round 23: no photo, or one that fails, shows the watch's first letter in the circle instead of a blank. */\n        mi.parentNode.setAttribute('data-l', String(modelOf(w) || w[1] || '?').trim().charAt(0).toUpperCase());\n        mi.onerror = function () { mi.hidden = true; };\n        if (w[4]) { mi.src = w[4]; mi.hidden = false; } else mi.hidden = true;\n      }\n      $$('[data-sdp-mname]').forEach(function (x) { x.textContent = full(w); });\n      known(true);\n      $$('[data-sdp-body]').forEach(function (x) { x.hidden = false; });\n      finSync();\n      MAT = ''; $$('.sdp-mtab').forEach(function (x, i) { x.setAttribute('aria-selected', i === 0 ? 'true' : 'false'); });\n      $('[data-sdp-acc]').hidden = true;\n      loadGrid(false);\n      $$('[data-matl]').forEach(function (a) { a.href = w[3] + '/' + a.getAttribute('data-matl'); });\n      $$('[data-sdp-allw]').forEach(function (a) { a.href = w[3]; });\n      accLinks(w);\n      if (save) remember(w);\n      if (bbLoad && bbOn) bbLoad();\n      if (scroll) landSoon();\n    }\n    function pick(w, scroll) {\n      var u = new URL(location.href); u.searchParams.set('mid', w[0]); history.replaceState(null, '', u);\n      closeSg(); q.value = ''; q.blur();\n      show(w, true, scroll);\n    }\n    var ball = $('[data-sdp-ball]');\n    if (ball) ball.addEventListener('click', function () { ball.parentNode.classList.add('is-all'); ball.setAttribute('aria-expanded', 'true'); });\n    var q = $('[data-sdp-q]'), sg = $('[data-sdp-sg]'), hits = [], hi = -1;\n    function norm(t) { return String(t || '').toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '').replace(/[^a-z0-9]+/g, ' ').trim(); }\n    var IDX = W.map(function (w, i) { return { i: i, t: norm(full(w)), junk: JUNK.test(w[2]) }; }).filter(function (x) { return !x.junk; });\n    function closeSg() { sg.hidden = true; q.setAttribute('aria-expanded', 'false'); q.removeAttribute('aria-activedescendant'); hi = -1; }\n    function thumb(w) { return w[4] ? '<img src=\"' + esc(w[4]) + '\" alt=\"\" width=\"44\" height=\"44\" loading=\"lazy\">' : '<i></i>'; }\n    function modelOf(w) { return w[2].toLowerCase().indexOf(w[1].toLowerCase()) === 0 ? w[2].slice(w[1].length).trim() || w[2] : w[2]; }\n    function renderSg(list, none) {\n      hits = list; hi = -1;\n      if (!list.length && !none) { closeSg(); return; }\n      sg.innerHTML = list.length ? list.map(function (x, j) { var w = W[x.i];\n        return '<li role=\"option\" id=\"' + sg.id + '-' + j + '\" data-j=\"' + j + '\" aria-selected=\"false\">' + thumb(w) + '<span><small>' + esc(w[1]) + '</small><b>' + esc(modelOf(w)) + '</b></span></li>'; }).join('')\n        : '<li class=\"sdp-sg__none\" role=\"option\" aria-disabled=\"true\">' + esc(L.s_none) + '</li>';\n      sg.hidden = false; q.setAttribute('aria-expanded', 'true');\n    }\n    function search(text) {\n      var ws = norm(text).split(' ').filter(Boolean);\n      if (!ws.length) return [];\n      return IDX.filter(function (x) { return ws.every(function (t) { return x.t.indexOf(t) > -1; }); })\n        .sort(function (a, b) { return a.t.length - b.t.length; }).slice(0, 8);\n    }\n    function mark(j) {\n      hi = j;\n      [].forEach.call(sg.querySelectorAll('[data-j]'), function (li) { var on = +li.getAttribute('data-j') === j; li.setAttribute('aria-selected', on ? 'true' : 'false'); if (on) li.scrollIntoView({ block: 'nearest' }); });\n      if (j >= 0) q.setAttribute('aria-activedescendant', sg.id + '-' + j); else q.removeAttribute('aria-activedescendant');\n    }\n    q.addEventListener('input', function () { $$('.sdp-brand').forEach(function (b) { b.setAttribute('aria-pressed', 'false'); }); renderSg(search(q.value), q.value.trim().length > 2); });\n    q.addEventListener('keydown', function (e) {\n      if (sg.hidden) return;\n      if (e.key === 'ArrowDown') { e.preventDefault(); mark(Math.min(hits.length - 1, hi + 1)); }\n      else if (e.key === 'ArrowUp') { e.preventDefault(); mark(Math.max(-1, hi - 1)); }\n      else if (e.key === 'Escape') { closeSg(); }\n    });\n    sg.addEventListener('mousedown', function (e) { e.preventDefault(); });\n    sg.addEventListener('click', function (e) { var li = e.target.closest('[data-j]'); if (li) pick(W[hits[+li.getAttribute('data-j')].i], true); });\n    $('[data-sdp-search]').addEventListener('submit', function (e) {\n      e.preventDefault();\n      var list = hits.length ? hits : search(q.value);\n      if (hi >= 0 && hits[hi]) pick(W[hits[hi].i], true);\n      else if (list.length) pick(W[list[0].i], true);\n      else renderSg([], true);\n    });\n    document.addEventListener('click', function (e) { if (!e.target.closest || !e.target.closest('[data-sdp-search], [data-sdp-brands]')) closeSg(); });\n    /* A brand chip lists that brand's models in the same dropdown. */\n    var models = $('[data-sdp-models]'), mrail = $('[data-sdp-mrail]');\n    /* Round 22, phones: a brand tap stays in place. The other brands fold away (a view transition where the browser\n       has one), the chosen brand stays as a bar that leads back to all brands, and the models come as a dropdown. */\n    var brandsEl = $('[data-sdp-brands]'), msel = $('[data-sdp-mdd]'), mqPhone = window.matchMedia('(max-width: 749px)');\n    if (brandsEl) $$('.sdp-brand[data-brand]').forEach(function (x) { x.setAttribute('data-back', brandsEl.getAttribute('data-back') || ''); });\n    function brandMorph(fn) {\n      if (mqPhone.matches && document.startViewTransition && !reduce && !document.documentElement.classList.contains('sdp-vt')) {\n        try { var vt = document.startViewTransition(fn); [vt.ready, vt.finished, vt.updateCallbackDone].forEach(function (p) { if (p && p.catch) p.catch(function () {}); }); return; } catch (e) {}\n      }\n      fn();\n    }\n    /* Round 23: the phone's model dropdown is our own list (a native select cannot show pictures): each model with its\n       photo, or its first letter where there is none or it fails to load, grouped by series. */\n    var mddB = msel && msel.querySelector('[data-sdp-mddb]'), mddL = msel && msel.querySelector('[data-sdp-mddlist]');\n    function letterOf(t) { return esc(String(t || '?').trim().charAt(0).toUpperCase()); }\n    function mddOpen(on) { if (!mddB) return; mddB.setAttribute('aria-expanded', on ? 'true' : 'false'); mddL.hidden = !on; }\n    if (mddB) {\n      mddB.addEventListener('click', function () { mddOpen(mddL.hidden); });\n      mddL.addEventListener('click', function (e) {\n        var o = e.target.closest('[data-i]'); if (!o) return;\n        var w = W[+o.getAttribute('data-i')];\n        mddOpen(false); models.hidden = true; if (brandsEl) brandsEl.classList.remove('is-picked');\n        $$('.sdp-brand').forEach(function (x) { x.setAttribute('aria-pressed', 'false'); });\n        pick(w, true);\n      });\n      mddL.addEventListener('error', function (e) { var im = e.target; if (im && im.tagName === 'IMG') { var i = document.createElement('i'); i.textContent = im.getAttribute('data-l') || '?'; im.replaceWith(i); } }, true);\n    }\n    /* A brand logo that loaded as a blank square (Whoop's file is plain white) or failed shows the brand's letter. */\n    function logoCheck(img) {\n      var sp = img.parentNode, b = img.closest('[data-brand]'); if (!sp || !b) return;\n      function letter() { sp.classList.add('is-letter'); sp.textContent = (b.getAttribute('data-brand') || '?').trim().charAt(0).toUpperCase(); }\n      function test() {\n        if (!img.naturalWidth) { letter(); return; }\n        try {\n          var c = document.createElement('canvas'); c.width = c.height = 12; var x = c.getContext('2d'); x.drawImage(img, 0, 0, 12, 12);\n          var d = x.getImageData(0, 0, 12, 12).data, ink = 0;\n          for (var k = 0; k < d.length; k += 4) if (d[k + 3] > 24 && (d[k] < 235 || d[k + 1] < 235 || d[k + 2] < 235)) ink++;\n          if (!ink) letter();\n        } catch (er) {}\n      }\n      if (img.complete) test(); else { img.addEventListener('load', test, { once: true }); img.addEventListener('error', letter, { once: true }); }\n    }\n    $$('.sdp-find .sdp-brand__logo img').forEach(function (im) { im.loading = 'eager'; logoCheck(im); });\n    $$('.sdp-brand[data-brand]').forEach(function (b) {\n      b.addEventListener('click', function () { brandMorph(function () { brandTap(b); }); });\n    });\n    function brandTap(b) {\n        var name = b.getAttribute('data-brand'), on = b.getAttribute('aria-pressed') !== 'true';\n        $$('.sdp-brand').forEach(function (x) { x.setAttribute('aria-pressed', x === b && on ? 'true' : 'false'); });\n        closeSg();\n        if (brandsEl) brandsEl.classList.toggle('is-picked', on && mqPhone.matches);\n        if (!on) { models.hidden = true; return; }\n        var mine = IDX.filter(function (x) { return W[x.i][1] === name; });\n        var ser = [];\n        mine.forEach(function (x) { var sr = W[x.i][5] || ''; if (sr && ser.indexOf(sr) < 0) ser.push(sr); });\n        function fill(sr) {\n          mrail.innerHTML = mine.filter(function (x) { return !sr || W[x.i][5] === sr; }).map(function (x) {\n            var w = W[x.i]; return '<button type=\"button\" class=\"sdp-mcard\" data-i=\"' + x.i + '\">' + thumb(w).replace('width=\"44\" height=\"44\"', 'width=\"112\" height=\"112\"') + '<span>' + esc(modelOf(w)) + '</span></button>';\n          }).join('');\n          [].forEach.call(mrail.children, function (c, i) { c.style.setProperty('--sdp-i', Math.min(i, 10)); });\n          mrail.scrollLeft = 0;\n          requestAnimationFrame(function () { mrail.scrollLeft = 0; if (mrail.sdpUpd) mrail.sdpUpd(); });\n          if (!mrail.sdpUpd) mrail.sdpUpd = railNav(mrail);\n          if (mrail.sdpUpd) setTimeout(mrail.sdpUpd, 30);\n        }\n        var sb = $('[data-sdp-series]');\n        if (sb) {\n          sb.hidden = ser.length < 2;\n          sb.innerHTML = ser.length < 2 ? '' : ['<button type=\"button\" data-ser=\"\" aria-pressed=\"true\">' + esc(L.ser_all) + '</button>'].concat(ser.map(function (sr) { return '<button type=\"button\" data-ser=\"' + esc(sr) + '\" aria-pressed=\"false\">' + esc(sr) + '</button>'; })).join('');\n          sb.scrollLeft = 0;\n          if (!sb.sdpUpd) sb.sdpUpd = railNav(sb);\n          if (sb.sdpUpd) setTimeout(sb.sdpUpd, 30);\n          sb.onclick = function (e) { var t = e.target.closest('[data-ser]'); if (!t) return; [].forEach.call(sb.children, function (x) { x.setAttribute('aria-pressed', x === t ? 'true' : 'false'); }); fill(t.getAttribute('data-ser')); };\n        }\n        models.hidden = false;\n        fill('');\n        if (mddL) {\n          var grp = {}, ord = [];\n          /* Apple's menu links outside a series are straps or accessories (nurse band, accessories), not watches. */\n          mine.filter(function (x) { return !(/^apple/i.test(name) && !W[x.i][5]); }).forEach(function (x) { var s = W[x.i][5] || ''; if (!grp[s]) { grp[s] = []; ord.push(s); } grp[s].push(x); });\n          if (ord.length > 1 && grp['']) { ord.splice(ord.indexOf(''), 1); ord.push(''); }\n          mddL.innerHTML = ord.map(function (s) {\n            var o = grp[s].map(function (x) {\n              var w = W[x.i], nm = modelOf(w), l = letterOf(nm);\n              var pic = w[4] ? '<img src=\"' + esc(w[4]) + '\" alt=\"\" width=\"44\" height=\"44\" decoding=\"async\" data-l=\"' + l + '\">' : '<i>' + l + '</i>';\n              return '<li role=\"option\" class=\"sdp-msel__o\" data-i=\"' + x.i + '\" aria-selected=\"false\">' + pic + '<span>' + esc(nm) + '</span></li>';\n            }).join('');\n            return (s && ord.length > 1 ? '<li class=\"sdp-msel__g\" role=\"presentation\">' + esc(s) + '</li>' : '') + o;\n          }).join('');\n          mddOpen(mqPhone.matches);\n        }\n        /* Round 22: tablets keep the model rail, which opens below a tall brand grid: bring it into view under the\n           sticky header. Phones fold the grid instead, so the bar and dropdown sit where the grid was; only when\n           the fold leaves them above the screen is the page moved. */\n        var hd = document.querySelector('store-header'), off = hd ? hd.getBoundingClientRect().height : 0;\n        setTimeout(function () {\n          var tgt = mqPhone.matches ? brandsEl : models; if (!tgt) return;\n          var top = tgt.getBoundingClientRect().top;\n          if (mqPhone.matches && top >= off) return;\n          if (!mqPhone.matches && !window.matchMedia('(max-width: 989px)').matches) return;\n          window.scrollTo({ top: top + window.pageYOffset - off - 12, behavior: reduce ? 'auto' : 'smooth' });\n        }, mqPhone.matches ? 320 : 60);\n    }\n    /* MOTION 3: picking from the scroller morphs the tapped watch picture into the \"your watch\" pill with a view\n       transition (only the picture travels: html.sdp-vt switches the page cross-fade off); without the API, or under\n       reduced motion, the pill simply fades in (CSS). The rest of the pick and the scroll follow the DOM update. */\n    mrail.addEventListener('click', function (e) {\n      var c = e.target.closest('[data-i]'); if (!c) return;\n      var w = W[+c.getAttribute('data-i')], img = c.querySelector('img'), mi = $('[data-sdp-mimg]'), de = document.documentElement;\n      function go() { models.hidden = true; $$('.sdp-brand').forEach(function (x) { x.setAttribute('aria-pressed', 'false'); }); pick(w, false); }\n      function land() { landSoon(); }\n      if (!document.startViewTransition || reduce || !img || !mi || !w[4]) { go(); land(); return; }\n      var done = false, cleaned = false;\n      function after() { if (done) return; done = true; go(); land(); }\n      function cleanup() { if (cleaned) return; cleaned = true; de.classList.remove('sdp-vt'); mi.style.viewTransitionName = ''; img.style.viewTransitionName = ''; }\n      img.style.viewTransitionName = 'sdp-watch';\n      de.classList.add('sdp-vt');\n      var vt;\n      try {\n        vt = document.startViewTransition(function () {\n          img.style.viewTransitionName = '';\n          $('[data-sdp-name]').textContent = full(w); mi.src = w[4]; mi.hidden = false; known(true); models.hidden = true;\n          mi.style.viewTransitionName = 'sdp-watch';\n        });\n      } catch (x) { cleanup(); after(); return; }\n      vt.ready.catch(function () {});\n      vt.updateCallbackDone.then(after, after);\n      vt.finished.then(cleanup, cleanup);\n      setTimeout(after, 600);\n      setTimeout(cleanup, 1500);\n    });\n    $('[data-sdp-change]').addEventListener('click', function () { known(false); q.focus(); });\n    /* A pick in the header switch module (or the v2 header, through its bridge) is taken in here instead of leaving. */\n    window.switchModuleLandingPageSelect = function (sel) {\n      sel = sel || {};\n      var w = byUrl(sel.url) || byName(sel.brand, sel.model);\n      if (!w) return false;\n      try { sessionStorage.setItem('wd_mid', String(w[0])); } catch (e) {}\n      var u = new URL(location.href); u.searchParams.set('mid', w[0]); history.replaceState(null, '', u);\n      show(w, false, true);\n      return true;\n    };\n\n    /* ---------------------------------------------------------------------------------------------------------------\n       SCROLL REVEALS without scroll-driven animations: an observer, with a scroll check and a timeout as backstops\n       (some tabs never deliver intersections). Only what is still below the fold is ever hidden.\n       --------------------------------------------------------------------------------------------------------------- */\n    /* MOTION 6: a rail's cards are inserted paused (CSS) and rise one after another once the rail is on screen. */\n    var railWraps = $$('.sdp-railw');\n    function seen(w) { w.classList.add('is-seen'); }\n    if ('IntersectionObserver' in window && !reduce) {\n      var sio = new IntersectionObserver(function (es) { es.forEach(function (e) { if (e.isIntersecting) { seen(e.target); sio.unobserve(e.target); } }); }, { rootMargin: '0px 0px -15% 0px' });\n      railWraps.forEach(function (w) { sio.observe(w); });\n    } else railWraps.forEach(seen);\n    window.addEventListener('scroll', function () { railWraps.forEach(function (w) { if (!w.classList.contains('is-seen') && w.getBoundingClientRect().top < window.innerHeight * 0.85) seen(w); }); }, { passive: true });\n    setTimeout(function () { railWraps.forEach(seen); }, 6000);\n\n    /* MOTION 4: when the ladder scrolls in, each paid amount counts from the normal price down to the deal price\n       (600ms, ease-out, rAF). The final amount is in the HTML from the start, so nothing depends on this running. */\n    function countTo(el) {\n      var from = +el.getAttribute('data-from'), to = +el.getAttribute('data-to');\n      if (!(from > to) || el.dataset.counted) return; el.dataset.counted = '1';\n      var t0 = performance.now(), D = 600;\n      (function step(now) {\n        var p = Math.min(1, (now - t0) / D), k = 1 - Math.pow(1 - p, 3);\n        el.textContent = money(Math.round(from + (to - from) * k));\n        if (p < 1) requestAnimationFrame(step); else el.textContent = money(to);\n      })(t0);\n    }\n    var lad = $('.sdp-lad');\n    if (lad && !reduce && 'IntersectionObserver' in window) {\n      var cio = new IntersectionObserver(function (es) { es.forEach(function (e) { if (e.isIntersecting) { $$('.sdp-lad [data-b][data-to]').forEach(function (b, i) { setTimeout(function () { countTo(b); }, i * 120); }); cio.disconnect(); } }); }, { rootMargin: '0px 0px -25% 0px' });\n      cio.observe(lad);\n    }\n\n    var SDA = !!(window.CSS && CSS.supports && CSS.supports('animation-timeline: view()'));\n    if (!SDA && !reduce && 'IntersectionObserver' in window) {\n      var ioSeen = false;\n      var io = new IntersectionObserver(function (es) { ioSeen = true; es.forEach(function (e) { if (e.isIntersecting) { e.target.classList.add('is-in'); io.unobserve(e.target); } }); }, { rootMargin: '0px 0px -10% 0px' });\n      var arm = function () {\n        $$('.sdp-sd-up, .sdp-sd-left, .sdp-sd-fade').forEach(function (el, i) {\n          if (el.dataset.rv) return; el.dataset.rv = '1';\n          if (el.getBoundingClientRect().top < window.innerHeight) return;\n          el.style.setProperty('--i', i % 4); el.classList.add('sdp-rv'); io.observe(el);\n        });\n      };\n      var sweepT = 0, sweep = function () { sweepT = 0; $$('.sdp-rv:not(.is-in)').forEach(function (el) { if (el.getBoundingClientRect().top < window.innerHeight * 0.95) { el.classList.add('is-in'); io.unobserve(el); } }); };\n      window.addEventListener('scroll', function () { if (!sweepT) sweepT = setTimeout(sweep, 80); }, { passive: true });\n      arm();\n      setTimeout(function () { if (!ioSeen) $$('.sdp-rv').forEach(function (el) { el.classList.add('is-in'); }); }, 2500);\n    }\n\n    /* ---------------------------------------------------------------------------------------------------------------\n       WHICH WATCH: the link (?mid=, else ?brand=&model=), the v2 header's saved watch for this tab, this visit, then\n       the cart attributes the switch module wrote. None: the search waits in the hero.\n       --------------------------------------------------------------------------------------------------------------- */\n    var w = byId(qp.get('mid')) || byName(qp.get('brand'), qp.get('model'));\n    if (w) { show(w, true, false); return; }\n    try { var vw = JSON.parse(sessionStorage.getItem('swbV2Watch') || 'null'); w = vw && (byUrl(vw.url) || byName(vw.brand, vw.model)); } catch (e) {}\n    if (w) { show(w, false, false); return; }\n    try { w = byId(sessionStorage.getItem('wd_mid')); } catch (e) {}\n    if (w) { show(w, false, false); return; }\n    var CA = CFG.cart || {};\n    w = byUrl(CA.url) || byName(CA.brand, CA.model);\n    if (w) { show(w, false, false); return; }\n    known(false);\n  }\n\n  [].forEach.call(document.querySelectorAll('[data-sdp]'), boot);\n})();\n"],
  "mappings": "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",
  "names": ["w", "q", "pick", "seen", "p", "i", "open", "tr"]
}
