{
  "version": 3,
  "sources": ["/cdn/shop/t/37/assets/syk-pdp.js?cb=0.005480990309559508"],
  "sourcesContent": ["/* syk-pdp \u2014 productpagina-sectie runtime. Config/data uit window.SP_* (zie de sectie). Vanilla, defensief. */\n(function () {\n  /* levertijd-vangnet in de drawer (melding eigenaar: regel toonde alleen \"128 cm \u00B7\"): het thema\n     rendert per regel een VERBORGEN standaardtekst (instelling default_product_deliverytime_in_stock)\n     + een lege .custom-deliverytime die de levertijd-API vult \u2014 maar de API kent niet elke sku\n     (deliveryDate null, live gemeten voor 5055294866677/84) en dan bleef de regel leeg. Zolang de\n     API-tekst leeg is de standaardtekst tonen; vult de API alsnog, dan wint die (idempotent in\n     beide volgordes; classList-writes zijn geen childList/characterData-mutatie, dus geen lus). */\n  if (!window.__sykDrawerVangnet) {\n    window.__sykDrawerVangnet = true;\n    var sykDrawerVangnet = function () {\n      [].forEach.call(document.querySelectorAll(\"#cart .custom-deliverytime\"), function (cd) {\n        var ouder = cd.parentNode;\n        if (!ouder) return;\n        var std = null;\n        [].forEach.call(ouder.children, function (k) { if (k !== cd && /\\bstrong\\b/.test(String(k.className))) std = k; });\n        if (!std) return;\n        if (cd.textContent.trim()) std.classList.add(\"hidden\");\n        else std.classList.remove(\"hidden\");\n      });\n    };\n    (function () {\n      var box = document.getElementById(\"cart\");\n      if (!box || !window.MutationObserver) return;\n      var t2;\n      try {\n        new MutationObserver(function () { clearTimeout(t2); t2 = setTimeout(sykDrawerVangnet, 900); })\n          .observe(box, { childList: true, subtree: true, characterData: true });\n      } catch (e) {}\n      setTimeout(sykDrawerVangnet, 1200);\n    })();\n  }\n  if (!document.querySelector('.syk-pdp') || window.__sykPdpInit) return;\n  window.__sykPdpInit = true;\n  var CFG = window.SP_CFG || {};\n  /* i18n (SP_CFG.locale + SP_CFG.i18n uit de graft, per shoptaal/Market); NL-fallbacks zodat een oudere graft blijft werken */\n  var LOC = CFG.locale || 'nl-NL';\n  var I18 = CFG.i18n || {};\n  var DSUF = (I18.suffix == null ? ' in huis' : I18.suffix);\n  var VARS = window.SP_VARS || [];\n  var BULK = \"https://econcepts.bemashopping.com/delivery/bulk\";\n  var STAFFEL_URL = \"https://econcepts.bemashopping.com/delivery\";\n  var byId = {};\n  VARS.forEach(function (v) { byId[String(v.id)] = v; });\n  var DELIV = null; /* levertijd-map per sku, gevuld na de bulk-call */\n\n  /* paginabreed gescoped op .syk-pdp: werkt voor de losse sectie \u00E9n voor losse blokken in de thema-sectie */\n  function $(s, c) { return c ? c.querySelector(s) : document.querySelector('.syk-pdp ' + s); }\n  function $all(s, c) { return [].slice.call(c ? c.querySelectorAll(s) : document.querySelectorAll('.syk-pdp ' + s)); }\n  function sod(d) { var x = new Date(d); x.setHours(0, 0, 0, 0); return x; }\n  function diffDays(d) { return Math.round((sod(d) - sod(new Date())) / 86400000); }\n  function cap(s) { return s ? s.charAt(0).toUpperCase() + s.slice(1) : s; }\n  function dateLong(d) { return d.toLocaleDateString(LOC, { weekday: 'long', day: 'numeric', month: 'long' }); }\n  function dateShort(d) { return d.toLocaleDateString(LOC, { weekday: 'short', day: 'numeric', month: 'short' }).replace(/\\./g, ''); }\n  function etaShort(d) { var n = diffDays(d); if (n <= 0) return (I18.sToday || 'Vandaag'); if (n === 1) return (I18.sTomorrow || 'Morgen'); return cap(dateShort(d)); }\n  function inHuis(d) {\n    var n = diffDays(d);\n    if (n <= 0) return (I18.today || 'Vandaag in huis');\n    if (n === 1) return (I18.tomorrow || 'Morgen in huis');\n    var tpl = I18.dateTpl || '{d} in huis';\n    var ds = dateLong(d); if (tpl.indexOf('{d}') === 0) ds = cap(ds); /* alleen kapitaliseren als de datum de zin opent */\n    return tpl.replace('{d}', ds);\n  }\n  function fmtEUR(n) { try { return n.toLocaleString(LOC, { style: 'currency', currency: 'EUR' }); } catch (e) { return '\u20AC ' + n.toFixed(2).replace('.', ','); } }\n  function dayName(d) { return cap(d.toLocaleDateString(LOC, { weekday: 'long' })); }\n  /* eerstvolgende werkdag (sla za/zo over) \u2014 levering op die dag = \"snel\" (groen) */\n  function nextBusinessDay() { var d = sod(new Date()); d.setDate(d.getDate() + 1); while (d.getDay() === 0 || d.getDay() === 6) { d.setDate(d.getDate() + 1); } return d; }\n  function isFastest(d) { return sod(d).getTime() <= nextBusinessDay().getTime(); }\n\n  /* ---- quantity stepper ---- */\n  (function () {\n    var wrap = $('.buyrow'); if (!wrap) return;\n    var input = $('.qty', wrap);\n    var minus = $('[data-step=\"-1\"]', wrap);\n    var plus = $('[data-step=\"1\"]', wrap);\n    function qty() { var n = input ? parseInt(input.value, 10) : 1; return (n && n > 0) ? n : 1; }\n    function set(n) { if (!input) return; input.value = Math.max(1, n); input.dispatchEvent(new Event('change', { bubbles: true })); }\n    if (minus) minus.addEventListener('click', function () { set(qty() - 1); });\n    if (plus) plus.addEventListener('click', function () { set(qty() + 1); });\n    /* aantal gewijzigd -> leverdatum/badge opnieuw bepalen (refreshBadgeForQty is gehoist) */\n    if (input) {\n      input.addEventListener('change', function () { refreshBadgeForQty(); });\n      var __qt; input.addEventListener('input', function () { clearTimeout(__qt); __qt = setTimeout(function () { refreshBadgeForQty(); }, 350); });\n    }\n  })();\n  function currentQty() {\n    /* aantal komt primair uit de NATIVE thema-aantalkiezer (#quantity / [name=\"quantity\"]); valt terug op ons eigen veld */\n    var q = document.getElementById('quantity') || document.querySelector('.f8pr-amount input[name=\"quantity\"]') || $('.buyrow .qty') || document.querySelector('input[name=\"quantity\"]');\n    var n = q ? parseInt(q.value, 10) : 1;\n    return (n && n > 0) ? n : 1;\n  }\n  /* De klant gebruikt de NATIVE thema-aantalkiezer, niet ons veld -> levertijd-badge daarop laten reageren. */\n  (function watchThemeQty() {\n    var __qtT, __lastQ = 1;\n    function ping() { clearTimeout(__qtT); __qtT = setTimeout(function () { refreshBadgeForQty(); }, 200); }\n    document.addEventListener('input', function (e) { if (e.target && e.target.name === 'quantity') ping(); });\n    document.addEventListener('change', function (e) { if (e.target && e.target.name === 'quantity') ping(); });\n    /* vangnet: +/- stepperknoppen van het thema vuren soms geen change/input -> na elke klik het aantal herlezen */\n    document.addEventListener('click', function () { setTimeout(function () { var q = currentQty(); if (q !== __lastQ) { __lastQ = q; refreshBadgeForQty(); } }, 80); }, true);\n  })();\n\n  /* ---- thema-eigen cart-drawer (aside#cart) verversen + openen na een toevoeging ---- */\n  function openThemeCart() {\n    try { if (window.ajaxCart) { if (typeof ajaxCart.load === 'function') ajaxCart.load(); if (typeof ajaxCart.fetchCartCount === 'function') ajaxCart.fetchCartCount(); } } catch (e) {}\n    ['cart:refresh', 'cart:build'].forEach(function (ev) { try { document.dispatchEvent(new CustomEvent(ev, { bubbles: true })); } catch (e) {} });\n    if (!document.documentElement.classList.contains('m6pn-open')) {\n      var opener = document.querySelector('a.m6pn-cli, [data-panel=\"cart\"]');\n      if (opener) { try { opener.click(); } catch (e) {} }\n    }\n  }\n  /* prefers-reduced-motion: smooth-scroll uitzetten voor wie dat systeembreed vraagt (audit #23, JS-kant) */\n  var SYK_SMOOTH = 'smooth';\n  try { if (window.matchMedia && matchMedia('(prefers-reduced-motion: reduce)').matches) SYK_SMOOTH = 'auto'; } catch (e) {}\n\n  /* ---- ATC-metingen (audit #27): fetch('/cart/add.js') vult GA4/GTM/Klaviyo NIET automatisch -> defensief zelf pushen.\n     Bron = de /cart/add.js-RESPONSE (bevat titel/prijs/variant/sku \u2014 geen lookups nodig).\n     BEWUST NIET: Shopify.analytics.publish('product_added_to_cart') \u2014 trekkie instrumenteert cart-AJAX zelf al,\n     nogmaals publiceren = dubbeltelling in web pixels. BEWUST NIET: Elevar 'dl_add_to_cart' \u2014 dat schema vult\n     Elevars eigen listener; een handmatige push met afwijkend formaat verstoort de server-side feed. ---- */\n  function sykTrackATC(res) {\n    var items = (res && res.items) ? res.items : (res && res.id ? [res] : []);\n    if (!items.length) return;\n    var gaItems = [], value = 0;\n    items.forEach(function (it) {\n      var p = (it.price || 0) / 100;\n      value += p * (it.quantity || 1);\n      gaItems.push({ item_id: String(it.variant_id || it.id || ''), item_name: it.product_title || it.title || '', item_variant: it.variant_title || '', price: p, quantity: it.quantity || 1 });\n    });\n    try {\n      window.dataLayer = window.dataLayer || [];\n      window.dataLayer.push({ ecommerce: null }); /* GTM-conventie: vorige ecommerce-object wissen */\n      window.dataLayer.push({ event: 'add_to_cart', ecommerce: { currency: (window.Shopify && Shopify.currency && Shopify.currency.active) || 'EUR', value: Math.round(value * 100) / 100, items: gaItems } });\n    } catch (e) {}\n    try {\n      var k = window.klaviyo || window._learnq;\n      if (k && typeof k.push === 'function') {\n        items.forEach(function (it) {\n          k.push(['track', 'Added to Cart', { $value: Math.round((it.price || 0) * (it.quantity || 1)) / 100, Name: it.product_title || it.title || '', ProductID: it.product_id || '', VariantID: it.variant_id || it.id || '', SKU: it.sku || '', Quantity: it.quantity || 1, URL: location.href }]);\n        });\n      }\n    } catch (e) {}\n  }\n  function addToCartAjax(items, done, fail) {\n    fetch('/cart/add.js', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, body: JSON.stringify({ items: items }) })\n      .then(function (r) { if (!r.ok) throw 0; return r.json(); })\n      .then(function (res) { try { sykTrackATC(res); } catch (e) {} if (done) done(); })\n      .catch(function () { if (fail) fail(); });\n  }\n\n  /* ---- hoofd-koopknop: AJAX toevoegen + cart-drawer openen (i.p.v. paginanavigatie) ---- */\n  (function () {\n    var form = $('.syk-pdp-form'); if (!form) return;\n    form.addEventListener('submit', function (e) {\n      var v = selectedVar(); if (!v || !v.id) return;\n      e.preventDefault();\n      if (!v.available) return;\n      var btn = $('.cta', form); if (btn) btn.disabled = true;\n      addToCartAjax([{ id: v.id, quantity: currentQty() }],\n        function () { if (btn) btn.disabled = false; openThemeCart(); },\n        function () { if (btn) btn.disabled = false; if (typeof form.submit === 'function') form.submit(); });\n    });\n  })();\n\n  /* ---- galerij: thumbnails/bolletjes/swipe wisselen; klik + loep openen de lightbox ---- */\n  (function () {\n    var gmain = $('.gmain'); if (!gmain) return;\n    var mainImg = $('.gimg', gmain) || $('img', gmain); if (!mainImg) return;\n    var thumbs = $all('.thumbs .th');\n    var dots = $all('.gdots b');\n    var cnt = $('.gc-n', gmain);\n    var imgs = (window.SP_IMAGES && window.SP_IMAGES.length)\n      ? window.SP_IMAGES.map(function (o) { return o.full; })\n      : thumbs.map(function (t) { return t.getAttribute('data-full'); });\n    imgs = imgs.filter(Boolean);\n    var n = imgs.length; if (n < 1) return;\n    var cur = 0;\n    function show(i) {\n      if (i < 0) i = n - 1; else if (i >= n) i = 0;\n      cur = i;\n      if (imgs[i]) mainImg.src = imgs[i];\n      thumbs.forEach(function (t, k) { t.classList.toggle('on', k === i); });\n      dots.forEach(function (d, k) { d.classList.toggle('on', k === i); });\n      if (cnt) cnt.textContent = (i + 1);\n      var at = thumbs[i];\n      if (at && at.scrollIntoView) { try { at.scrollIntoView({ block: 'nearest', inline: 'nearest' }); } catch (e) {} }\n    }\n    thumbs.forEach(function (t, i) { t.addEventListener('click', function () { show(i); }); });\n    dots.forEach(function (d, i) { d.addEventListener('click', function () { show(i); }); });\n\n    /* lightbox = Fancybox (identiek aan het live thema) */\n    function openLb() {\n      if (window.Fancybox && typeof window.Fancybox.show === 'function') {\n        window.Fancybox.show(imgs.map(function (s) { return { src: s, type: 'image' }; }), { startIndex: cur });\n      }\n    }\n    mainImg.addEventListener('click', openLb);\n    var gz = $('.gzoom', gmain);\n    if (gz) gz.addEventListener('click', function (e) { e.stopPropagation(); openLb(); });\n\n    /* swipe op de hoofdfoto wisselt het beeld */\n    var sx = null;\n    gmain.addEventListener('touchstart', function (e) { sx = e.touches[0].clientX; }, { passive: true });\n    gmain.addEventListener('touchend', function (e) {\n      if (sx == null) return;\n      var dx = e.changedTouches[0].clientX - sx;\n      if (Math.abs(dx) > 35) show(cur + (dx < 0 ? 1 : -1));\n      sx = null;\n    }, { passive: true });\n  })();\n\n  /* ---- maat-selectie: radio's + sticky/koopknop bijwerken ---- */\n  function selectedVar() {\n    var r = $('input[name=\"id\"]:checked'); if (r && byId[String(r.value)]) return byId[String(r.value)];\n    var hid = $('.syk-pdp-form [name=\"id\"]'); if (hid && byId[String(hid.value)]) return byId[String(hid.value)];\n    return VARS[0] || null;\n  }\n  /* uitverkochte (gekozen) variant -> native koopknop verbergen + Klaviyo back-in-stock tonen; anders andersom.\n     Vangnet: blijft het Klaviyo-anker leeg (niet geladen), toon dan toch weer de (uitverkocht-)koopknop. */\n  var SYK_ATC_LBL = { nl: 'In winkelwagen', en: 'Add to cart', de: 'In den Warenkorb', fr: 'Ajouter au panier', es: 'A\\u00f1adir al carrito', it: 'Aggiungi al carrello' };\n  var SYK_OOS_TEKSTEN = ['niet op voorraad', 'out of stock', 'ausverkauft', '\\u00e9puis\\u00e9', 'agotado', 'esaurito'];\n  function syncBIS(v) {\n    /* ALLE ankers pakken (desktop- en mobiel-blok renderen elk een exemplaar) en de uit-stand ook\n       als html-klasse zetten: de bijbehorende css met !important wint van elke inline-stijl die\n       Klaviyo er later op zet \u2014 de klasse is de waarheid, de inline styles zijn compat. */\n    var bissen = [].slice.call(document.querySelectorAll('[id=\"back-in-stock-block\"], .syk-bis'));\n    var buys = [].slice.call(document.querySelectorAll('.f8pr-buy-button'));\n    var sold = !!(v && v.available === false);\n    document.documentElement.classList.toggle('syk-bis-uit', !sold);\n    buys.forEach(function (f) { f.style.display = sold ? 'none' : ''; });\n    /* melding eigenaar: pagina geladen op ?variant=<uitverkocht> (klik op uitverkochte maat herlaadt zo)\n       rendert de native koopknop server-side als class-'disabled' met 'Niet op voorraad' \u2014 bij terugwissel\n       naar een leverbare maat verdween wel de BIS-knop maar bleef de koopknop grijs. Hier her-activeren:\n       class weg + label terug (alleen als de tekst exact de uitverkocht-tekst is; sticky-knop met eigen\n       markup blijft zo intact), en de 'Niet op voorraad'-fotobadge verbergen. Andersom hoeft niet:\n       een uitverkochte maat kiezen is altijd een herlaad. */\n    if (!sold) {\n      var lbl = SYK_ATC_LBL[String(document.documentElement.lang || 'nl').slice(0, 2).toLowerCase()] || SYK_ATC_LBL.nl;\n      [].forEach.call(document.querySelectorAll('button[type=\"submit\"].disabled, button[name=\"add\"].disabled'), function (b) {\n        var vanProduct = b.id === 'AddToCart' || b.closest('.f8pr-buy-button') || String(b.getAttribute('form') || '').indexOf('product-form') > -1;\n        if (!vanProduct) return;\n        b.classList.remove('disabled', 'visible', 'overlay-quinary');\n        b.classList.add('overlay-tertiary'); /* de groene koop-stijl: leverbaar rendert het thema als overlay-tertiary (hoofdknop en sticky identiek, serververgelijking beide staten) */\n        b.disabled = false;\n        if (SYK_OOS_TEKSTEN.indexOf(b.textContent.trim().toLowerCase()) > -1) b.textContent = lbl;\n      });\n      [].forEach.call(document.querySelectorAll('.s1lb.label span, .s1lb span'), function (sp) {\n        if (sp.children.length === 0 && SYK_OOS_TEKSTEN.indexOf(sp.textContent.trim().toLowerCase()) > -1) sp.style.display = 'none';\n      });\n    }\n    bissen.forEach(function (bis) {\n      /* verbergen met inline-!important: dat is het enige dat wint van een eventuele\n         inline-!important-show van Klaviyo (stylesheet-!important verliest daarvan \u2014 live gemeten);\n         en omdat observer + failsafe-interval ons altijd het laatste woord geven, blijft uit uit */\n      if (sold) { bis.style.removeProperty('display'); }\n      else { bis.style.setProperty('display', 'none', 'important'); }\n    });\n    if (sold && bissen.length) {\n      setTimeout(function () {\n        var leeg = !bissen.some(function (b) { return b.querySelector('*'); });\n        if (leeg) { buys.forEach(function (f) { f.style.display = ''; }); bissen.forEach(function (b) { b.style.display = 'none'; }); }\n      }, 2500);\n    }\n  }\n  function syncSelection() {\n    var v = selectedVar(); if (!v) return;\n    $all('.sz').forEach(function (b) { b.classList.toggle('sel', String(b.getAttribute('data-id')) === String(v.id)); });\n    var stbSize = $('.stb-size b'); if (stbSize && v.title) stbSize.textContent = v.title;\n    $all('.cta').forEach(function (c) { c.disabled = !v.available; });\n    $all('.sp-buy-id').forEach(function (h) { h.value = v.id; }); /* verborgen id in losse koopknop-blok synchroon houden */\n    /* 02-07: NATIVE koopformulier MEE-syncen. Op templates waar alleen ons syk_sizes-blok is bedraad\n       (geen native variant_selection) valt het thema terug op een verborgen fallback-id-input met de\n       SERVERVARIANT -> de native AddToCart (en dus ook de sticky bar) voegde altijd de beginmaat toe.\n       Alleen waardes zetten, GEEN events dispatchen (custom-async crasht op change van onze radio's). */\n    [].forEach.call(document.querySelectorAll('input.f8pr-fallback-id-input, input[type=\"hidden\"][name=\"id\"][form], select[name=\"id\"][form], select[name=\"id\"][data-template]'), function (el) {\n      if (el.closest && el.closest('.syk-pdp')) return;\n      try { el.value = String(v.id); } catch (e) {}\n    });\n    [].forEach.call(document.querySelectorAll('input[type=\"radio\"][name=\"id\"][form]'), function (el) {\n      if (el.closest && el.closest('.syk-pdp')) return;\n      el.checked = String(el.value) === String(v.id);\n    });\n    syncBIS(v); /* koopknop <-> back-in-stock */\n    /* kwam de bezoeker binnen op ?variant=<uitverkocht> (klik op een uitverkochte maat herlaadt zo),\n       laat de URL dan meebewegen met de nieuwe keuze: Klaviyo (en alles wat de URL leest) kijkt\n       anders blijvend naar de oude uitverkochte variant */\n    try {\n      if (new URLSearchParams(location.search).has('variant') && history.replaceState) {\n        var u3 = new URL(location.href);\n        u3.searchParams.set('variant', String(v.id));\n        history.replaceState(null, '', u3.toString());\n      }\n    } catch (e) {}\n    refreshBadgeForQty(); /* levertijd-badge volgt de gekozen maat \u00C9N het gekozen aantal */\n  }\n  $all('.sz').forEach(function (b) {\n    b.addEventListener('click', function () {\n      var id = b.getAttribute('data-id'); if (!id) return;\n      if (b.classList.contains('out')) {\n        /* uitverkochte maat: w\u00E9l selecteerbaar -> herlaad met deze variant zodat Klaviyo back-in-stock precies deze variant oppakt en de koopknop wordt vervangen */\n        try { var u = new URL(window.location.href); u.searchParams.set('variant', id); window.location.href = u.toString(); }\n        catch (e) { window.location.search = '?variant=' + id; }\n        return;\n      }\n      var r = $('input[name=\"id\"][value=\"' + id + '\"]');\n      if (r) { r.checked = true; } /* GEEN change-dispatch: dat triggert de thema-handler (custom-async.js) die op onze radio's crasht op undefined data-template (startsWith) */\n      syncSelection();\n    });\n  });\n  document.addEventListener('change', function (e) { if (e.target && e.target.name === 'id') syncSelection(); });\n  syncSelection();\n  /* bfcache: terug-navigatie herstelt de bevroren DOM (incl. oude BIS-staat) zonder scripts opnieuw\n     te draaien \u2014 bij pageshow de hele selectie-staat opnieuw afdwingen */\n  window.addEventListener('pageshow', function () { try { syncSelection(); } catch (e) {} });\n  /* failsafe: eerste ~16s elke 800ms de BIS-staat herbevestigen \u2014 vangt elk Klaviyo-timingpad\n     dat observer/events zou missen; zelfde-waarde-writes zijn visueel gratis */\n  var bisTik = 0;\n  var bisKlok = setInterval(function () {\n    try { syncBIS(selectedVar()); } catch (e) {}\n    if (++bisTik >= 20) clearInterval(bisKlok);\n  }, 800);\n  /* Klaviyo laadt async NA onze init en zet het back-in-stock-anker zelf zichtbaar zodra hij de knop\n     injecteert \u2014 ook als de gekozen maat gewoon leverbaar is (zijn variantdetectie kent onze radio's\n     niet; hij ziet alleen dat ER een uitverkochte maat is). Elke mutatie in/op het anker -> onze\n     staat opnieuw afdwingen; schrijven van dezelfde display-waarde geeft geen nieuwe mutatie, dus\n     dit convergeert zonder lus. */\n  (function () {\n    var bis = document.getElementById('back-in-stock-block');\n    if (!bis || !window.MutationObserver) return;\n    var bezig = false;\n    new MutationObserver(function () {\n      if (bezig) return;\n      bezig = true;\n      try { syncBIS(selectedVar()); } catch (e) {}\n      setTimeout(function () { bezig = false; }, 50);\n    }).observe(bis, { childList: true, attributes: true, attributeFilter: ['style', 'class'] });\n  })();\n\n  /* sticky mobiele koopbalk (audit #2): koopt via de NATIVE koopknop (#AddToCart) zodat alle thema-listeners\n     en pixels het bestaande pad volgen; fallback = ons eigen V2-form (ajax, incl. sykTrackATC).\n     Zichtbaar zodra de koopknop boven de viewport uit beeld is gescrold; verborgen bij uitverkochte variant. */\n  (function () {\n    var bar = $('[data-sticky-bar]');\n    var stb = $('[data-sticky-add]');\n    if (!stb) return;\n    var nativeBtn = document.getElementById('AddToCart') || document.querySelector('.f8pr-buy-button [type=\"submit\"], .f8pr-buy-button button[name=\"add\"], button[name=\"add\"]');\n    var form = $('.syk-pdp-form');\n    if (!nativeBtn && !form) return;\n    stb.addEventListener('click', function () {\n      var v = selectedVar(); if (v && v.available === false) return;\n      if (nativeBtn) { try { nativeBtn.click(); return; } catch (e) {} }\n      if (form) { if (typeof form.requestSubmit === 'function') form.requestSubmit(); else form.submit(); }\n    });\n    if (!bar) return; /* oude markup (sectie-variant zonder data-sticky-bar): alleen de click-hook */\n    var lastShow = false;\n    function sold() { var v = selectedVar(); return !!(v && v.available === false); }\n    function setVis(show) { lastShow = show; if (show && !sold()) bar.removeAttribute('hidden'); else bar.setAttribute('hidden', ''); }\n    var watch = nativeBtn || (form ? form.querySelector('.cta') : null);\n    if (watch && 'IntersectionObserver' in window) {\n      /* alleen tonen als de koopknop BOVEN de viewport verdween (echt voorbij gescrold, niet 'nog onder de vouw') */\n      var io = new IntersectionObserver(function (en) { setVis(!en[0].isIntersecting && en[0].boundingClientRect.top < 0); }, { threshold: 0 });\n      io.observe(watch);\n    } else { setVis(true); }\n    /* maatwissel kan naar uitverkocht schakelen -> zichtbaarheid herzien (radio-change \u00E9n .sz-klik, die geen change dispatcht) */\n    document.addEventListener('change', function (e) { if (e.target && e.target.name === 'id') setVis(lastShow); });\n    document.addEventListener('click', function (e) { if (e.target && e.target.closest && e.target.closest('.sz')) setTimeout(function () { setVis(lastShow); }, 0); });\n  })();\n\n  /* Drawer-/cart-upsell-verrijking (levertijd + \"x\"-opruiming) is verhuisd naar het SITE-BREDE\n     snippets/syk-upsell-delivery.liquid (gerenderd via side-cart-container.liquid) \u2014 de drawer opent\n     immers ook op /cart en andere pagina's waar dit bestand niet laadt. Hier bewust niets meer. */\n\n  /* ---- LEVERTIJD: 1 bulk-call -> badge naast prijs + per-maat kleurbalk + USP ---- */\n  function fmtBadge(d) {\n    if (d && !isNaN(d.getTime())) {\n      if (isFastest(d)) {\n        var n = diffDays(d);\n        var word = (n <= 0) ? (I18.wToday || 'vandaag') : (n === 1 ? (I18.wTomorrow || 'morgen') : dayName(d));\n        var sw = (n <= 0) ? (I18.sToday || 'Vandaag') : (n === 1 ? (I18.sTomorrow || 'Morgen') : dayName(d));\n        return { later: false, long: (CFG.fast || 'Voor 23:59 besteld =').replace(/\\s*$/, ' ') + word + DSUF, short: sw + DSUF };\n      }\n      return { later: true, long: cap(dateLong(d)), short: cap(dateShort(d)) };\n    }\n    return { later: false, long: (CFG.fast || 'Voor 23:59 besteld =').replace(/\\s*$/, ' ') + (I18.wTomorrow || 'morgen') + DSUF, short: (I18.sTomorrow || 'Morgen') + DSUF };\n  }\n  function paintSold() {\n    var deliv = $('.deliv'); if (!deliv) return;\n    deliv.classList.remove('is-later'); deliv.classList.add('is-sold');\n    var long = $('.delivery-long', deliv), short = $('.delivery-short', deliv);\n    if (long) long.textContent = (I18.soldout || 'Uitverkocht');\n    if (short) short.textContent = (I18.soldout || 'Uitverkocht');\n  }\n  function paintBadge(d) {\n    var b = fmtBadge(d);\n    var deliv = $('.deliv'); if (!deliv) return;\n    deliv.classList.remove('is-sold');\n    deliv.classList.toggle('is-later', b.later);\n    var long = $('.delivery-long', deliv), short = $('.delivery-short', deliv);\n    if (long) long.textContent = b.later ? (CFG.later || 'Geleverd op').replace(/\\s*$/, ' ') + b.long : b.long;\n    if (short) short.textContent = b.short;\n  }\n  function paintSelectedBadge() {\n    var v = selectedVar();\n    if (!v || v.available === false) { paintSold(); return; } /* uitverkocht -> 'Uitverkocht' i.p.v. levertijd */\n    if (!DELIV) return;\n    var rec = DELIV[v.sku];\n    paintBadge(rec && rec.deliveryDate ? new Date(rec.deliveryDate) : null);\n  }\n  /* leverdatum/voorraad-badge mee laten lopen met het gekozen AANTAL via de STAFFEL-endpoint:\n     1 call per maat (gecachet), daarna client-side de juiste voorraad-tier kiezen -> instant.\n     Verandert pas zichtbaar als het aantal een tier-grens overschrijdt (bv. >178 stuks). */\n  var STAFFEL = {};\n  var __qtySeq = 0;\n  function tierDate(tiers, qty) {\n    if (!tiers || !tiers.length) return undefined;        /* onbekend -> badge ongemoeid laten */\n    for (var i = 0; i < tiers.length; i++) {\n      if (qty <= tiers[i].available) return tiers[i].deliveryDate ? new Date(tiers[i].deliveryDate) : null;\n    }\n    return null;                                          /* boven de hoogste tier = niet in dit aantal leverbaar */\n  }\n  function refreshBadgeForQty() {\n    var v = selectedVar();\n    if (!v || v.available === false) { paintSold(); return; } /* uitverkocht: 'Uitverkocht' (geen levertijd-data nodig) */\n    if (!DELIV) return;                                   /* nog geen levertijd-data geladen */\n    var q = currentQty();\n    if (q <= 1) { paintSelectedBadge(); return; }\n    if (STAFFEL[v.sku]) { var dc = tierDate(STAFFEL[v.sku], q); if (dc !== undefined) { paintBadge(dc); } return; }\n    var seq = ++__qtySeq;\n    fetch(STAFFEL_URL, { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: JSON.stringify({ products: [{ sku: v.sku, quantity: 1 }] }) })\n      .then(function (r) { return r.json(); })\n      .then(function (data) {\n        STAFFEL[v.sku] = (data && data.length) ? data : [];\n        if (seq !== __qtySeq) return;                     /* alleen de laatste keuze telt */\n        var d2 = tierDate(STAFFEL[v.sku], q);\n        if (d2 !== undefined) paintBadge(d2);\n      })\n      .catch(function () { /* API onbereikbaar: laat de bestaande badge staan */ });\n  }\n  var SIZEDELIV = null;\n  function labelCompMaat() {\n    /* maat-select in de comp-koop-rij: levertijd per maat in de optie-tekst (\"L \u00B7 morgen in huis\").\n       Idempotent + niet herschrijven terwijl het dropdown focus heeft: elke maatwissel muteert de pagina\n       -> observer -> herschrijven zou het geopende menu laten flikkeren (\"werkt vreemd\" op desktop). */\n    if (!SIZEDELIV) return;\n    $all('.syk-comp-maat').forEach(function (sel) {\n      if (document.activeElement === sel) return;\n      [].forEach.call(sel.options, function (o) {\n        var v = byId[String(o.value)]; if (!v) return;\n        var basis = o.getAttribute('data-maat');\n        if (!basis) { basis = (o.textContent || '').split(' \u00B7 ')[0].trim(); o.setAttribute('data-maat', basis); }\n        var rec = SIZEDELIV[v.sku];\n        var d = rec && rec.deliveryDate ? new Date(rec.deliveryDate) : null;\n        var txt = basis + ' \u00B7 ' + ((d && !isNaN(d.getTime())) ? inHuis(d) : (I18.tomorrow || 'Morgen in huis')).toLowerCase();\n        if (o.textContent !== txt) o.textContent = txt;\n      });\n    });\n  }\n  function paintBars(products) {\n    SIZEDELIV = products;\n    labelCompMaat();\n    $all('.sz').forEach(function (sz) {\n      var v = byId[String(sz.getAttribute('data-id'))]; if (!v) return;\n      var bar = $('.bar', sz);\n      var st = 'sold', d = null;\n      if (v.available) {\n        var rec = products[v.sku]; d = rec && rec.deliveryDate ? new Date(rec.deliveryDate) : null;\n        st = (d && !isNaN(d.getTime()) && isFastest(d) == false) ? 'later' : 'fast';\n      }\n      var col = st === 'fast' ? (CFG.cFast || '#1f9d57') : (st === 'later' ? (CFG.cLater || '#d9650a') : (CFG.cSold || '#9aa3ab'));\n      if (bar) bar.style.background = col;\n      if (CFG.sizeEtaOn) {\n        var eta = $('.sz-eta', sz);\n        if (!eta) { eta = document.createElement('span'); eta.className = 'sz-eta'; sz.appendChild(eta); }\n        eta.textContent = (st === 'sold') ? (I18.soldout || 'Uitverkocht') : ((d && !isNaN(d.getTime())) ? etaShort(d) : '');\n      }\n    });\n  }\n  function pickFastest(products) {\n    var best = null, bestDate = null;\n    VARS.forEach(function (v) {\n      if (!v.available) return;\n      var rec = products[v.sku]; if (!rec || !rec.deliveryDate) return;\n      var d = new Date(rec.deliveryDate); if (isNaN(d.getTime())) return;\n      if (!bestDate || d < bestDate) { bestDate = d; best = v; }\n    });\n    return { v: best, d: bestDate };\n  }\n  if (VARS.length) {\n    fetch(BULK, { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: JSON.stringify({ products: VARS.map(function (v) { return { sku: v.sku, quantity: 1, available: v.available }; }) }) })\n      .then(function (r) { return r.json(); })\n      .then(function (data) {\n        var products = (data && data.products) ? data.products : {};\n        DELIV = products;\n        paintBars(products);\n        var sel = selectedVar();\n        var fast = pickFastest(products);\n        /* auto-select snelste leverbare maat (1x) als er nog niets gekozen is */\n        if (CFG.autoOn && fast.v && (!sel || !sel.available)) {\n          var r = $('input[name=\"id\"][value=\"' + fast.v.id + '\"]');\n          if (r && !r.checked) { r.checked = true; } /* idem: geen change-dispatch naar de crashende thema-handler */\n          syncSelection();\n        }\n        /* badge volgt de gekozen maat; valt anders terug op de snelste leverbare */\n        var cur = selectedVar();\n        if (cur && cur.available && products[cur.sku] && products[cur.sku].deliveryDate) {\n          paintSelectedBadge();\n        } else if (fast.v && products[fast.v.sku] && products[fast.v.sku].deliveryDate) {\n          paintBadge(new Date(products[fast.v.sku].deliveryDate));\n        } else if (cur && cur.available === false) {\n          paintSold();\n        } else {\n          paintBadge(null);\n        }\n      })\n      .catch(function () { /* TODO levertijd-API onbereikbaar: server-gerenderde badge blijft staan */ });\n  }\n\n  /* ---- tabs (.syk-pdp.info-blocks is al server-side gezet -> dan geen tab-wissel nodig) ---- */\n  (function () {\n    /* tabs altijd actief (info-blocks-modus vervallen) */\n    var panels = $all('.tabpanel'), btns = $all('.tabbtn');\n    function showTab(id) {\n      if (!$('#' + id)) return;\n      panels.forEach(function (p) { p.classList.toggle('on', p.id === id); });\n      btns.forEach(function (t) {\n        var on = t.getAttribute('data-tab') === id;\n        t.classList.toggle('on', on);\n        /* ARIA-tabs (audit #8): alleen syncen als de Liquid de role al zet \u2014 progressive enhancement */\n        if (t.getAttribute('role') === 'tab') t.setAttribute('aria-selected', on ? 'true' : 'false');\n      });\n      /* lazy-load-widgets (bv. Judge.me) in het nu-zichtbare paneel laten initialiseren */\n      try { window.dispatchEvent(new Event('resize')); window.dispatchEvent(new Event('scroll')); } catch (e) {}\n    }\n    btns.forEach(function (t) { t.addEventListener('click', function () { showTab(t.getAttribute('data-tab')); }); });\n    $all('[data-tab-link]').forEach(function (a) {\n      a.addEventListener('click', function (e) {\n        var id = a.getAttribute('data-tab-link'); var el = $('#' + id);\n        if (el) { e.preventDefault(); showTab(id); try { el.scrollIntoView({ behavior: SYK_SMOOTH, block: 'start' }); } catch (x) {} }\n      });\n    });\n    /* thema-ankerlinks naar de juiste tab: sterren (#judgeme_product_reviews) -> Beoordelingen,\n       'lees meer' (#section-info) -> eerste tab (Beschrijving). De thema-id's bestaan niet in onze tabs.\n       Zoek de tab-knop GLOBAAL (niet via .sp-sec \u2014 die class is niet uniek, vandaar dat 'ie eerder op Beschrijving bleef). */\n    function syk_jumpHash(hash) {\n      var btn = null;\n      if (hash === '#judgeme_product_reviews') { btn = $('.tabbtn[data-tab=\"sp-reviews\"]'); }\n      else if (hash === '#section-info') { btn = $('.tabnav .tabbtn'); }\n      else { return false; }\n      if (!btn) return false;\n      var id = btn.getAttribute('data-tab');\n      showTab(id);\n      var panel = $('#' + id);\n      var wrap = (panel && panel.closest('.sp-sec')) || btn.closest('.sp-sec') || panel || btn;\n      if (wrap) { try { wrap.scrollIntoView({ behavior: SYK_SMOOTH, block: 'start' }); } catch (x) {} }\n      return true;\n    }\n    document.addEventListener('click', function (e) {\n      var a = (e.target && e.target.closest) ? e.target.closest('a[href=\"#section-info\"],a[href=\"#judgeme_product_reviews\"]') : null;\n      if (a && syk_jumpHash(a.getAttribute('href'))) e.preventDefault();\n    });\n    if (location.hash === '#section-info' || location.hash === '#judgeme_product_reviews') {\n      setTimeout(function () { syk_jumpHash(location.hash); }, 350);\n    }\n  })();\n\n  /* ---- \"Maak je look compleet\": aantal-stepper v\u00F3\u00F3r de complete-look-knop; los item toevoegen; herhaald toevoegen (andere maat) mogelijk ---- */\n  /* drawer vers renderen (sectie-API) + thema-inits nadraaien; het thema's eigen updateCartPanel zit in\n     een closure en zijn handlers zijn per render gebonden -> na ONZE render nemen de delegaties hieronder\n     verwijderen/aantal over (AJAX, geen /cart-navigatie). e.defaultPrevented-guard voorkomt dubbel werk\n     wanneer de thema-render met eigen handlers actief is. */\n  function sykVerversDrawer(openPanel) {\n    fetch('/?section_id=side-cart', { headers: { Accept: 'text/html' } })\n      .then(function (r) { return r.text(); })\n      .then(function (html) {\n        var box = document.getElementById('cart'); if (!box) { if (openPanel) openThemeCart(); return; }\n        var tmp = document.createElement('div'); tmp.innerHTML = html;\n        var vers = tmp.querySelector('#shopify-section-side-cart');\n        if (vers) {\n          /* het thema rendert de sluitknop (a.m6pn-close, met zijn handlers) als direct kind van #cart,\n             BUITEN de sectie-render \u2014 origineel element bewaren en terugzetten, anders is het kruisje weg */\n          var sluit = box.querySelector(':scope > a.m6pn-close');\n          box.innerHTML = vers.innerHTML;\n          if (sluit) box.appendChild(sluit);\n          try {\n            if (typeof amountRun === 'function') {\n              var els = box.querySelectorAll('.input-amount:not(.semantic-input-initialized)');\n              [].forEach.call(els, amountRun);\n              if (typeof amountClick === 'function') amountClick(els);\n            }\n          } catch (e) {}\n          /* levertijden per cartregel: het thema vult .custom-deliverytime pas op zijn window-event\n             (fetchDeliveryTimesHandler in custom-async.js leest data-deliveryinfo op de li's) \u2014\n             na onze innerHTML-replace moeten wij dat event zelf vuren, anders blijven de regels leeg */\n          try { window.dispatchEvent(new CustomEvent('fetchDeliverytimes')); } catch (e) {}\n        }\n        if (openPanel) openThemeCart();\n      })\n      .catch(function () { if (openPanel) openThemeCart(); });\n  }\n  function sykCartChange(key, qty) {\n    var x = new XMLHttpRequest();\n    x.open('POST', '/cart/change.js', true);\n    x.setRequestHeader('Content-Type', 'application/json');\n    x.setRequestHeader('Accept', 'application/json');\n    x.onload = function () { sykVerversDrawer(false); };\n    x.send(JSON.stringify({ id: key, quantity: qty }));\n  }\n  document.addEventListener('click', function (e) {\n    var rm = e.target && e.target.closest ? e.target.closest('#cart a.remove-from-cart-link') : null;\n    if (!rm || e.defaultPrevented) return;\n    e.preventDefault();\n    var key = rm.getAttribute('data-key');\n    if (!key) { try { key = new URL(rm.href, location.origin).searchParams.get('id'); } catch (er) {} }\n    if (key) sykCartChange(key, 0);\n  });\n  var sykQtyT = null;\n  document.addEventListener('change', function (e) {\n    var inp = e.target;\n    if (!inp || inp.name !== 'updates[]' || !inp.closest || !inp.closest('#cart') || e.defaultPrevented) return;\n    var key = inp.getAttribute('data-key'); var q = parseInt(inp.value, 10);\n    if (!key || isNaN(q) || q < 0) return;\n    clearTimeout(sykQtyT); sykQtyT = setTimeout(function () { sykCartChange(key, q); }, 250);\n  });\n  document.addEventListener('click', function (e) {\n    var pm = e.target && e.target.closest ? e.target.closest('#cart .input-amount .incr, #cart .input-amount .decr') : null;\n    if (!pm || e.defaultPrevented) return;\n    var wrap = pm.closest('.input-amount');\n    var inp = wrap ? wrap.querySelector('input[name=\"updates[]\"]') : null;\n    if (!inp) return;\n    var key = inp.getAttribute('data-key'); if (!key) return;\n    clearTimeout(sykQtyT);\n    sykQtyT = setTimeout(function () { var q = parseInt(inp.value, 10); if (!isNaN(q) && q >= 0) sykCartChange(key, q); }, 350);\n  });\n\n  function bindLook(lookRoot) {\n    if (lookRoot.getAttribute('data-syk-look-bound')) return;\n    var box = lookRoot.querySelector('.items'); if (!box) return;\n    lookRoot.setAttribute('data-syk-look-bound', '1');\n    var items = $all('.item', box);\n    var totalEl = lookRoot.querySelector('[id^=\"sp-looktotal\"]'), oldEl = lookRoot.querySelector('[id^=\"sp-lookold\"]');\n    var dattr = (lookRoot.getAttribute('data-disc') || '').replace(/[^0-9.]/g, '');\n    var disc = dattr ? parseFloat(dattr) : parseFloat(CFG.lookDiscount);\n    if (isNaN(disc) || disc < 0 || disc >= 100) disc = 0;\n    /* native .input-amount-stepper VERVANGT het <input> bij init (innerHTML-rewrap) -> NIET cachen, elke keer vers uitlezen */\n    function lookQty() { var qi = lookRoot.querySelector('.look-amount input'); var n = qi ? parseInt(qi.value, 10) : 1; return (n && n > 0) ? n : 1; }\n    function recalc() {\n      /* korting geldt ALLEEN op de accessoires, niet op het hoofdproduct \u2014 moet gelijk lopen met de server-side discount function (discount-function/), anders wijkt de knop af van de checkout */\n      var main = 0, acc = 0;\n      items.forEach(function (it) {\n        if (it.hidden) return;\n        var p = parseFloat(it.getAttribute('data-price') || 0);\n        if (it.classList.contains('item-main')) main += p; else acc += p;\n      });\n      var n = lookQty();\n      var net = Math.round((main + acc * (1 - disc / 100)) * n * 100) / 100;\n      var bruto = Math.round((main + acc) * n * 100) / 100;\n      if (totalEl) totalEl.textContent = fmtEUR(net);\n      if (oldEl) oldEl.textContent = (disc > 0 && net < bruto) ? 'i.p.v. ' + fmtEUR(bruto) : '';\n      var saveEl = lookRoot.querySelector('[id^=\"sp-looksave\"]');\n      if (saveEl) {\n        var besparing = Math.round((bruto - net) * 100) / 100;\n        if (disc > 0 && besparing > 0) { saveEl.textContent = 'Je bespaart ' + fmtEUR(besparing) + ' (' + String(disc).replace('.', ',') + '%) op deze set'; saveEl.hidden = false; }\n        else { saveEl.hidden = true; }\n      }\n    }\n    recalc();\n    function addToCart(payload, done, fail) {\n      var x = new XMLHttpRequest();\n      x.open('POST', '/cart/add.js', true);\n      x.setRequestHeader('Content-Type', 'application/json');\n      x.setRequestHeader('Accept', 'application/json');\n      x.onload = function () { if (x.status >= 200 && x.status < 300) { try { sykTrackATC(JSON.parse(x.responseText)); } catch (e) {} if (done) done(); } else if (fail) fail(); };\n      x.onerror = function () { if (fail) fail(); };\n      x.send(JSON.stringify(payload));\n    }\n    function refreshCart(openPanel) {\n      try { document.dispatchEvent(new CustomEvent('cart:refresh', { bubbles: true })); } catch (e) {}\n      try { document.dispatchEvent(new CustomEvent('cart:build', { bubbles: true })); } catch (e) {}\n      sykVerversDrawer(openPanel);\n    }\n    /* los item: korte \u2713-bevestiging, daarna weer toevoegbaar (geen permanente vergrendeling) */\n    function flashBtn(btn, html) {\n      btn.disabled = true; btn.classList.add('inset'); btn.innerHTML = '<i class=\"ti ti-check\"></i>';\n      setTimeout(function () { btn.disabled = false; btn.classList.remove('inset'); btn.innerHTML = html; }, 1600);\n    }\n    box.addEventListener('click', function (e) {\n      var btn = e.target.closest ? e.target.closest('.iadd') : null;\n      if (!btn || btn.disabled) return;\n      var it = btn.closest('.item'); if (!it) return;\n      var vid = btn.getAttribute('data-vid');\n      var sel = $('.ivar', it);\n      if (sel && !btn.getAttribute('data-vid')) {\n        if (!sel.value) { try { sel.focus(); } catch (x) {} return; }\n        vid = sel.value;\n      } else if (sel && sel.value) { vid = sel.value; }\n      if (!vid) return;\n      var orig = btn.innerHTML;\n      btn.disabled = true;\n      addToCart({ items: [{ id: vid, quantity: 1 }] }, function () { flashBtn(btn, orig); refreshCart(); }, function () { btn.disabled = false; });\n    });\n    /* native thema-stepper (.input-amount) handelt de +/- zelf af \u00E9n vervangt het <input> bij init;\n       daarom gedelegeerd herberekenen (een gecachte referentie zou stale zijn). */\n    var amtEl = lookRoot.querySelector('.look-amount');\n    if (amtEl) amtEl.addEventListener('click', function () { setTimeout(recalc, 0); });\n    lookRoot.addEventListener('input', function (e) { if (e.target && e.target.closest && e.target.closest('.look-amount')) setTimeout(recalc, 0); });\n    document.addEventListener('change', function (e) { if (e.target && (e.target.name === 'quantity' || (e.target.closest && e.target.closest('.look-amount')))) recalc(); });\n    /* \"Bestel de complete look\" via DELEGATIE op lookRoot (net als .iadd): de native thema-stepper\n       (.input-amount) herschrijft bij zijn init de .lookbuy-inhoud en VERVANGT daarmee de .lookcta-node \u2014\n       een direct op de knop gezette listener verliest die race en de knop \"doet niets\" (bug 02-07).\n       Herstel van tekst/disabled loopt via een live lookup, want ook n\u00E1 de klik kan de node vervangen worden. */\n    lookRoot.addEventListener('click', function (e) {\n      var cta = e.target && e.target.closest ? e.target.closest('.lookcta') : null;\n      if (!cta || cta.disabled) return;\n      var n = lookQty();\n      var payload = [];\n      var mv = selectedVar();\n      if (mv && mv.available && mv.id) payload.push({ id: String(mv.id), quantity: currentQty() * n });\n      /* accessoires krijgen een verborgen regel-eigenschap met het hoofdproduct-id: de discount function\n         geeft ALLEEN korting op zo gemarkeerde regels (en alleen zolang het hoofdproduct in de mand zit) \u2014\n         uit mand-samenstelling alleen is het hoofdproduct niet af te leiden zodra producten wederzijds\n         in elkaars aanbevolen-lijsten staan (USA-versiering-case: hoofdproduct kreeg ook korting) */\n      var mainPid = lookRoot.getAttribute('data-main-pid') || '';\n      items.forEach(function (it) {\n        if (it.hidden || it.classList.contains('item-main')) return;\n        var sel = $('.ivar', it);\n        var ib = $('.iadd', it);\n        var vid = (ib && ib.getAttribute('data-vid')) || (sel ? sel.value : '');\n        if (vid) payload.push(mainPid ? { id: vid, quantity: n, properties: { _syk_set: mainPid } } : { id: vid, quantity: n });\n      });\n      if (!payload.length) return;\n      var ctaOrig = cta.innerHTML;\n      function restore() {\n        var live = lookRoot.querySelector('.lookcta'); if (!live) return;\n        live.disabled = false; live.innerHTML = ctaOrig;\n      }\n      cta.disabled = true; cta.innerHTML = '<i class=\"ti ti-check\"></i> Toegevoegd \u2014 kies evt. een andere maat';\n      addToCart({ items: payload }, function () {\n        refreshCart(true);\n        setTimeout(function () { restore(); recalc(); }, 2200);\n      }, restore);\n    });\n  }\n  $all('.look').forEach(bindLook);\n  /* comp-blok (recommendations) vervangt zijn hele element async: body-breed nabinden met debounce\n     (observer op de container zelf mist een outerHTML-replace; de bound-guard maakt dit goedkoop) */\n  (function () {\n    var t = null;\n    var mo = new MutationObserver(function () {\n      clearTimeout(t);\n      t = setTimeout(function () { $all('.look').forEach(bindLook); syncCompMaat(); labelCompMaat(); }, 150);\n    });\n    try { mo.observe(document.body, { childList: true, subtree: true }); } catch (e) {}\n  })();\n  /* zichtbare maatkiezer in de comp-koop-rij: twee-weg-sync met de PDP-maatknoppen */\n  function syncCompMaat() {\n    var mv = null; try { mv = selectedVar(); } catch (e) {}\n    if (!mv) return;\n    $all('.syk-comp-maat').forEach(function (sel) { try { sel.value = String(mv.id); } catch (e) {} });\n  }\n  document.addEventListener('change', function (e) {\n    var t2 = e.target;\n    if (t2 && t2.classList && t2.classList.contains('syk-comp-maat')) {\n      var b = document.querySelector('.syk-pdp .sz[data-id=\"' + t2.value + '\"]');\n      if (b) { b.click(); }\n      else {\n        var r = document.querySelector('input[name=\"id\"][value=\"' + t2.value + '\"]');\n        if (r) { r.checked = true; r.dispatchEvent(new Event('change', { bubbles: true })); }\n      }\n    }\n    if (t2 && t2.name === 'id') setTimeout(syncCompMaat, 0);\n  });\n  document.addEventListener('click', function (e) { if (e.target && e.target.closest && e.target.closest('.syk-pdp .sz')) setTimeout(syncCompMaat, 0); });\n  setTimeout(syncCompMaat, 400);\n\n  /* ---- \"Maak je look compleet\": levertijd per item (incl. hoofdproduct) + maat-sync hoofdproduct ---- */\n  (function lookItemDelivery() {\n    var lookItems = $all('.look .item[data-sku]');\n    if (!lookItems.length) return;\n    function paintItem(it, d) {\n      var t = it.querySelector('.idel-txt'); if (!t) return;\n      var hasDate = d && !isNaN(d.getTime());\n      t.textContent = hasDate ? inHuis(d) : (I18.tomorrow || 'Morgen in huis');\n      /* latere datum (niet morgen) -> oranje, net als de levertijd-badge bovenaan; anders groen */\n      var wrap = it.querySelector('.idel');\n      if (wrap) wrap.classList.toggle('is-later', hasDate && isFastest(d) == false);\n    }\n    var seen = {}, skus = [];\n    lookItems.forEach(function (it) { var s = it.getAttribute('data-sku'); if (s && !seen[s]) { seen[s] = 1; skus.push(s); } });\n    if (skus.length) {\n      fetch(BULK, { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: JSON.stringify({ products: skus.map(function (s) { return { sku: s, quantity: 1, available: true }; }) }) })\n        .then(function (r) { return r.json(); })\n        .then(function (data) {\n          var products = (data && data.products) ? data.products : {};\n          $all('.look .item[data-sku]').forEach(function (it) {\n            var rec = products[it.getAttribute('data-sku')];\n            paintItem(it, rec && rec.deliveryDate ? new Date(rec.deliveryDate) : null);\n          });\n        })\n        .catch(function () { /* API onbereikbaar: laat \"Morgen in huis\" staan */ });\n    }\n    /* hoofdproduct-regel: sku/levertijd + maatkiezer mee laten lopen met de gekozen maat */\n    var mainItem = $('.look .item-main'); if (!mainItem) return;\n    var ivarMain = mainItem.querySelector('.ivar-main');\n    function syncMain() {\n      var v = selectedVar(); if (!v) return;\n      mainItem.setAttribute('data-sku', v.sku);\n      if (ivarMain) { try { ivarMain.value = v.id; } catch (e) {} }\n      if (DELIV && DELIV[v.sku]) paintItem(mainItem, DELIV[v.sku].deliveryDate ? new Date(DELIV[v.sku].deliveryDate) : null);\n    }\n    if (ivarMain) ivarMain.addEventListener('change', function () {\n      var r = $('input[name=\"id\"][value=\"' + ivarMain.value + '\"]'); if (r) { r.checked = true; syncSelection(); }\n      syncMain();\n    });\n    $all('.sz').forEach(function (b) { b.addEventListener('click', function () { setTimeout(syncMain, 0); }); });\n    document.addEventListener('change', function (e) { if (e.target && e.target.name === 'id') syncMain(); });\n    syncMain();\n  })();\n\n  /* ---- collectieslider-pijlen (per blok-instantie) ---- */\n  $all('.cs-track').forEach(function (track) {\n    var wrap = track.closest('.cs-wrap'); if (!wrap) return;\n    var prev = wrap.querySelector('.cs-prev'), next = wrap.querySelector('.cs-next');\n    function step() { var it = track.querySelector('.cs-item'); var w = it ? it.getBoundingClientRect().width : 92; return Math.max(1, Math.round((track.clientWidth - w) / (w + 18))) * (w + 18); }\n    function sync() { if (!prev || !next) return; var max = track.scrollWidth - track.clientWidth - 1; prev.disabled = track.scrollLeft <= 0; next.disabled = track.scrollLeft >= max; }\n    if (prev) prev.addEventListener('click', function () { track.scrollBy({ left: -step(), behavior: SYK_SMOOTH }); });\n    if (next) next.addEventListener('click', function () { track.scrollBy({ left: step(), behavior: SYK_SMOOTH }); });\n    track.addEventListener('scroll', sync, { passive: true });\n    window.addEventListener('resize', sync);\n    sync();\n  });\n\n  /* ---- recent bekeken: pijlen + wishlist + localStorage-vulling ---- */\n  (function () {\n    var tracks = $all('.rv-track'); if (!tracks.length) return;\n    tracks.forEach(function (track) {\n      var sec = track.closest('.rv-sec') || track.parentNode;\n      [].slice.call(sec.querySelectorAll('.rv-arrow')).forEach(function (b) {\n        b.addEventListener('click', function () {\n          var dir = parseInt(b.getAttribute('data-rv-dir'), 10) || 1;\n          track.scrollBy({ left: dir * Math.round(track.clientWidth * 0.8), behavior: SYK_SMOOTH });\n        });\n      });\n      track.addEventListener('click', function (e) {\n        var w = e.target.closest ? e.target.closest('.rv-wish') : null;\n        if (w) { e.preventDefault(); e.stopPropagation(); w.classList.toggle('rv-on'); }\n      });\n    });\n\n    var handle = CFG.handle || '';\n    var firstSec = tracks[0].closest('.rv-sec');\n    var max = parseInt((firstSec && firstSec.getAttribute('data-count')) || CFG.recentCount, 10) || 8;\n    /* Gebruik de NATIVE theme-historie: localStorage 'recentlyViewedProduct' = [{productUrl, productId}, ...],\n       die het thema zelf op ELKE productpagina bijwerkt. Zo loopt 'recent bekeken' exact synchroon met de\n       rest van de site (en niet meer een losse, lege eigen lijst). Nieuwste eerst, huidige uitgesloten. */\n    function read() {\n      var arr = []; try { arr = JSON.parse(localStorage.getItem('recentlyViewedProduct') || '[]') || []; } catch (e) {}\n      var out = [];\n      for (var i = arr.length - 1; i >= 0; i--) {\n        var u = arr[i] && arr[i].productUrl; if (!u) continue;\n        /* Alleen echte product-URL's: /products/<handle>. Sla afbeeldings-/andere URL's over -\n           een handle met een punt (.jpg/.png) gaf eerder fetch /products/<bestand>.js -> 404. */\n        var m = String(u).split('?')[0].match(/\\/products\\/([^\\/?#]+)\\/?$/);\n        var h = m && m[1];\n        if (h && h.indexOf('.') === -1 && h !== handle && out.indexOf(h) < 0) out.push(h);\n      }\n      return out;\n    }\n    var list = read();\n\n    function esc(s) { return String(s == null ? '' : s).replace(/[&<>\"]/g, function (c) { return { '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' }[c]; }); }\n    function card(p) {\n      var img = p.featured_image ? '<img src=\"' + esc(p.featured_image) + '\" alt=\"' + esc(p.title) + '\" loading=\"lazy\">' : '<i class=\"ti ti-photo\" aria-hidden=\"true\"></i>';\n      var price = (p.price_min != null && p.price_max != null && p.price_min !== p.price_max)\n        ? '<small>Vanaf</small> ' + fmtEUR((p.price_min || 0) / 100)\n        : fmtEUR((p.price || 0) / 100);\n      var sizes = (p.options_sizes || []).slice(0, 6).map(function (o) { return '<span class=\"rv-pill' + (o.available ? '' : ' rv-out') + '\">' + esc(o.name) + '</span>'; }).join('');\n      var dtxt = (CFG.fast || 'Voor 23:59 besteld = ').replace(/\\s*$/, ' ') + (I18.wTomorrow || 'morgen') + DSUF, dcls = '', dicon = 'ti-truck';\n      if (p.available === false) { dtxt = (I18.soldout || 'Uitverkocht'); dcls = ' rv-del-sold'; dicon = 'ti-ban'; }\n      else if (p.delivery && !isNaN(p.delivery.getTime())) {\n        if (isFastest(p.delivery)) {\n          var nn = diffDays(p.delivery);\n          dtxt = (nn <= 0 ? (I18.sToday || 'Vandaag') : (nn === 1 ? (I18.sTomorrow || 'Morgen') : dayName(p.delivery))) + DSUF;\n        } else { dtxt = cap(dateShort(p.delivery)) + DSUF; dcls = ' rv-del-later'; }\n      }\n      return '<a class=\"rv-card\" href=\"' + esc(p.url) + '\">' +\n        '<div class=\"rv-media\">' + img + '<button type=\"button\" class=\"rv-wish\" aria-label=\"Aan verlanglijst toevoegen\"><i class=\"ti ti-heart\"></i></button></div>' +\n        '<div class=\"rv-body\"><div class=\"rv-name\">' + esc(p.title) + '</div><div class=\"rv-price\">' + price + '</div>' +\n        (sizes ? '<div class=\"rv-sizes\">' + sizes + '</div>' : '') +\n        '<div class=\"rv-delivery' + dcls + '\"><i class=\"ti ' + dicon + '\"></i><span>' + esc(dtxt) + '</span></div></div></a>';\n    }\n    if (!list.length) { $all('.rv-empty').forEach(function (em) { em.hidden = false; }); return; }\n    var slice = list.slice(0, max);\n    Promise.all(slice.map(function (h) {\n      return fetch('/products/' + encodeURIComponent(h) + '.js', { headers: { 'Accept': 'application/json' } })\n        .then(function (r) { return r.ok ? r.json() : null; }).catch(function () { return null; });\n    })).then(function (prods) {\n      var built = [], items = [];\n      prods.forEach(function (p) {\n        if (!p) return;\n        var sizeOpt = (p.options || []).indexOf('Maat') > -1 ? 'Maat' : ((p.options || [])[0] || '');\n        var sizes = [];\n        if (sizeOpt && sizeOpt !== 'Title' && (p.variants || []).length > 1) {\n          var seen = {};\n          (p.variants || []).forEach(function (v) {\n            var name = v.options[(p.options || []).indexOf(sizeOpt)];\n            if (name && name !== 'Default Title' && !seen[name]) { seen[name] = 1; sizes.push({ name: name, available: v.available }); }\n          });\n        }\n        /* sku van de snelste leverbare variant (barcode of id) voor de levertijd-lookup */\n        var vs = p.variants || [], pick = null;\n        for (var k = 0; k < vs.length; k++) { if (vs[k].available) { pick = vs[k]; break; } }\n        if (!pick) pick = vs[0];\n        var sku = pick ? (pick.barcode || String(pick.id)) : '';\n        if (sku) items.push({ sku: sku, quantity: 1, available: pick ? !!pick.available : false });\n        built.push({ sku: sku, data: {\n          url: p.url, title: p.title,\n          featured_image: p.featured_image ? (p.featured_image + (p.featured_image.indexOf('?') > -1 ? '&' : '?') + 'width=300') : '',\n          price: p.price, price_min: p.price_min, price_max: p.price_max, options_sizes: sizes, available: p.available\n        } });\n      });\n      function render(dmap) {\n        var html = '';\n        built.forEach(function (b) {\n          var rec = dmap[b.sku];\n          b.data.delivery = (rec && rec.deliveryDate) ? new Date(rec.deliveryDate) : null;\n          html += card(b.data);\n        });\n        if (html) { tracks.forEach(function (t) { t.innerHTML = html; }); } else { $all('.rv-empty').forEach(function (em) { em.hidden = false; }); }\n      }\n      if (items.length) {\n        fetch(BULK, { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: JSON.stringify({ products: items }) })\n          .then(function (r) { return r.json(); })\n          .then(function (data) { render((data && data.products) || {}); })\n          .catch(function () { render({}); });\n      } else { render({}); }\n    }).catch(function () { $all('.rv-empty').forEach(function (em) { em.hidden = false; }); });\n  })();\n\n  /* ===== Thema-galerij verrijken: bestseller-badge + \"1 / N\"-teller + zoomknop (R5/R6) =====\n     De thema-galerij (.l4pr) staat BUITEN .syk-pdp; classes hier zijn dus ongescoped. */\n  function enhanceThemeGallery(force) {\n    var ul = document.querySelector('.l4pr[data-media-size]');\n    if (!ul) return;\n    var box = (ul.closest && ul.closest('.l4pr-container')) || ul.parentNode;\n    if (!box) return;\n    /* WACHT tot het thema de slides in .swiper-wrapper heeft gezet; voegen we onze overlay eerder toe,\n       dan verpakt het thema 'm mee als extra slide -> een extra (4e) paginatie-bolletje. force=true overslaat dit (galerij zonder Swiper). */\n    if (!force && !ul.querySelector('.swiper-wrapper') && ul.querySelector(':scope > li')) return;\n    /* al een overlay geplaatst? dan klaar. */\n    if (ul.querySelector(':scope > .syk-gov')) return;\n    /* anders eerst eerdere/misplaatste floaters opruimen (Swiper kan losse floaters als 'slide' verpakt hebben) */\n    [].forEach.call(document.querySelectorAll('.l4pr-container .syk-gov, .l4pr-container .syk-gcount, .l4pr-container .syk-gzoom, .l4pr-container .syk-gbadge, .l4pr-container .syk-glabel'), function (n) { if (n.parentNode) n.parentNode.removeChild(n); });\n    /* overlay die EXACT de (vierkante) foto bedekt (top:0, width:100%, aspect-ratio uit --ratio) -> alle floaters\n       op de foto-hoeken, los van de dots/paginatie-strook die \u00F3nder de foto in .l4pr zit. */\n    var ov = document.createElement('li'); /* <li> i.p.v. <div>: geldige directe child van de <ul.l4pr> (a11y 'list'-audit), blijft absoluut gepositioneerd dus zelfde uitlijning */\n    ov.className = 'syk-gov';\n\n    /* alleen echte media-slides: geen palette-/sticky-<li>, moet een afbeelding of fancybox-anchor bevatten */\n    /* slides: na Swiper-init zitten ze in .swiper-wrapper (geen directe <li> meer) -> descendant-query; clones overslaan */\n    var slides = [].slice.call(ul.querySelectorAll('li.has-anchor, .swiper-slide')).filter(function (n) {\n      return !(n.classList && (n.classList.contains('sticky') || n.classList.contains('swiper-slide-duplicate'))) && n.querySelector('a[data-fancybox], picture, img');\n    });\n    var total = parseInt(ul.getAttribute('data-media-size'), 10) || slides.length;\n\n    /* bestseller-badge uit metaveld custom.galerij_badge (via SP_CFG.galleryBadge) \u2014 op de hoofdafbeelding */\n    var badgeTxt = (CFG.galleryBadge || '').toString().trim();\n    if (badgeTxt) {\n      var badge = document.createElement('span');\n      badge.className = 'syk-gbadge';\n      badge.innerHTML = '<i class=\"ti ti-flame\"></i>';\n      badge.appendChild(document.createTextNode(badgeTxt));\n      ov.appendChild(badge);\n    }\n\n    /* PDP-label uit metaveld custom.pdp_label (vaste opties, teksten/icoon via SP_CFG.galleryLabel) */\n    var lblCfg = CFG.galleryLabel || {};\n    var lblTxt = (lblCfg.text || '').toString().trim();\n    if (lblTxt) {\n      var glabel = document.createElement('span');\n      glabel.className = 'syk-glabel' + (badgeTxt ? ' onder-badge' : '');\n      if (lblCfg.icon) { var gli = document.createElement('i'); gli.textContent = lblCfg.icon; glabel.appendChild(gli); }\n      glabel.appendChild(document.createTextNode(' ' + lblTxt));\n      ov.appendChild(glabel);\n    }\n\n    /* .l4pr (Swiper-container) = positioneringscontext; floaters worden DIRECTE kinderen ervan\n       (siblings van .swiper-wrapper) -> Swiper laat ze met rust en ze overlappen exact de foto-viewport. */\n    try { if (getComputedStyle(ul).position === 'static') ul.style.position = 'relative'; } catch (e) {}\n\n    /* teller + zoomknop (CSS toont ze nu op desktop \u00E9n mobiel, op de foto) */\n    var counter = document.createElement('span');\n    counter.className = 'syk-gcount';\n    counter.innerHTML = '<i class=\"ti ti-photo\"></i> <b class=\"syk-gc-n\">1</b> / ' + total;\n    ov.appendChild(counter);\n    var num = counter.querySelector('.syk-gc-n');\n\n    var zoom = document.createElement('button');\n    zoom.type = 'button';\n    zoom.className = 'syk-gzoom';\n    zoom.setAttribute('aria-label', 'Vergroot afbeelding');\n    zoom.innerHTML = '<i class=\"ti ti-zoom-in\"></i>';\n    ov.appendChild(zoom);\n    ul.appendChild(ov); /* overlay als directe child van .l4pr (Swiper laat niet-wrapper kinderen met rust) */\n\n    /* overlay-hoogte = exact de fotohoogte (.swiper-wrapper), NIET de hele .l4pr (incl. dots-strook).\n       Lost op dat de teller op desktop te ver naar beneden zakte bij niet-vierkante foto's\n       (de CSS-fallback aspect-ratio:1 klopt alleen bij vierkante foto's). */\n    function sizeGov() {\n      var w = ul.querySelector('.swiper-wrapper') || slides[0];\n      if (!w) return;\n      var wr = w.getBoundingClientRect();\n      if (wr.height > 20) ov.style.height = wr.height + 'px';\n      /* desktop: de miniaturen-kolom zit LINKS binnen dezelfde ul -> overlay uitlijnen op het echte fotogebied,\n         anders valt de badge/label linksboven achter de thumbs (css leest deze vars; fallback 0/100%) */\n      var ur = ul.getBoundingClientRect();\n      if (wr.width > 40) {\n        ov.style.setProperty('--syk-gov-l', Math.round(wr.left - ur.left) + 'px');\n        ov.style.setProperty('--syk-gov-w', Math.round(wr.width) + 'px');\n      }\n    }\n    sizeGov();\n    [150, 500, 1200, 2400].forEach(function (t) { setTimeout(sizeGov, t); });\n    window.addEventListener('resize', sizeGov, { passive: true });\n    window.addEventListener('load', sizeGov);\n\n    var activeIdx = 0;\n    function setActive(i) { if (i >= 0 && i !== activeIdx) { activeIdx = i; num.textContent = (i + 1); } }\n\n    /* actieve index: Swiper-API als het thema Swiper gebruikt (zo is het), anders scroll-detectie als fallback */\n    var sw = ul.swiper || (ul.children[0] && ul.children[0].swiper);\n    if (sw && typeof sw.on === 'function') {\n      setActive(sw.realIndex || 0);\n      sw.on('slideChange', function () { setActive(sw.realIndex || 0); });\n    } else {\n      var raf = 0;\n      function computeActive() {\n        raf = 0;\n        var cR = ul.getBoundingClientRect();\n        var cMid = cR.left + cR.width / 2;\n        var best = 0, bestDist = Infinity;\n        for (var i = 0; i < slides.length; i++) {\n          var r = slides[i].getBoundingClientRect();\n          var d = Math.abs((r.left + r.width / 2) - cMid);\n          if (d < bestDist) { bestDist = d; best = i; }\n        }\n        setActive(best);\n      }\n      function onScroll() { if (!raf) raf = requestAnimationFrame(computeActive); }\n      ul.addEventListener('scroll', onScroll, { passive: true });\n      if (box !== ul) box.addEventListener('scroll', onScroll, { passive: true });\n      window.addEventListener('resize', onScroll, { passive: true });\n      computeActive();\n    }\n\n    /* zoom \u2192 open Fancybox direct met de galerij-bronnen (geen navigatie-risico, juiste startindex) */\n    zoom.addEventListener('click', function (ev) {\n      ev.preventDefault();\n      var anchors = slides.map(function (li) { return li.querySelector('a[data-fancybox]'); }).filter(Boolean);\n      if (window.Fancybox && anchors.length) {\n        var srcs = anchors.map(function (a) {\n          var href = a.getAttribute('href') || '';\n          var img = /\\.(jpe?g|png|webp|gif|avif)(\\?|$)/i.test(href);\n          return img ? { src: href, type: 'image' } : { src: href };\n        });\n        var actA = slides[activeIdx] ? slides[activeIdx].querySelector('a[data-fancybox]') : null;\n        var start = actA ? anchors.indexOf(actA) : 0;\n        window.Fancybox.show(srcs, { startIndex: start < 0 ? 0 : start });\n        return;\n      }\n      var la = slides[activeIdx] || slides[0];\n      var a2 = la && la.querySelector('a[data-fancybox]');\n      if (a2) { a2.click(); }\n    });\n  }\n  enhanceThemeGallery();\n  setTimeout(function () { enhanceThemeGallery(); }, 700);   /* na de thema-slider-init opnieuw */\n  setTimeout(function () { enhanceThemeGallery(); }, 1800);\n  setTimeout(function () { enhanceThemeGallery(true); }, 2800); /* fallback: galerij zonder Swiper */\n  /* her-uitvoeren wanneer het thema de galerij opnieuw opbouwt (variant-foto-swap, AJAX-navigatie):\n     dan zijn onze floaters weg -> de observer voegt ze opnieuw toe (idempotente guard voorkomt dubbel). */\n  try {\n    var __sykGalObs = new MutationObserver(function () { clearTimeout(window.__sykGalT); window.__sykGalT = setTimeout(enhanceThemeGallery, 150); });\n    __sykGalObs.observe(document.body, { childList: true, subtree: true });\n  } catch (e) {}\n})();\n"],
  "mappings": "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",
  "names": ["computeActive", "onScroll"]
}
