{
  "version": 3,
  "sources": ["/cdn/shop/t/38/assets/brand-header.js?x=24549"],
  "sourcesContent": ["/*\n * Announcement bar vastzetten bovenaan het scherm.\n *\n * Eerste poging was position:sticky op de sectie-wrapper. Dat werkt niet:\n * een sticky element plakt alleen binnen zijn eigen ouder, en die ouder is\n * hier .header-sections \u2014 precies zo hoog als de header zelf. Zodra je daar\n * voorbij scrollt, houdt de sticky-context op en scrollt de balk alsnog weg.\n *\n * Daarom position:fixed, met een spacer die de vrijgekomen ruimte in de\n * document-flow opvult zodat de pagina niet omhoog springt. De hoogte gaat\n * als --announcement-h naar de CSS, zodat de header eronder uitlijnt.\n */\n(function () {\n  'use strict';\n\n  function init() {\n    var bar = document.querySelector('.announcement__wrapper--top') ||\n              document.querySelector('.announcement__wrapper');\n    if (!bar) return;\n\n    var section = bar.closest('.shopify-section') || bar.parentElement;\n    if (!section || section.classList.contains('brand-sticky-announcement')) return;\n\n    var spacer = document.createElement('div');\n    spacer.className = 'brand-sticky-announcement__spacer';\n    spacer.setAttribute('aria-hidden', 'true');\n    section.parentNode.insertBefore(spacer, section.nextSibling);\n\n    function zet(h) {\n      h = Math.round(h);\n      if (!h) return;\n      spacer.style.height = h + 'px';\n      document.documentElement.style.setProperty('--announcement-h', h + 'px');\n      // Pas fixed maken als de spacer zijn plek inneemt; eerder schoof de\n      // pagina 41 px omhoog en terug (CLS 0,05 in PageSpeed).\n      section.classList.add('brand-sticky-announcement');\n    }\n\n    function sync() {\n      zet(section.getBoundingClientRect().height);\n    }\n\n    /*\n     * PAGESPEED (15-10-2026). Hier stond eerst een directe sync() bij\n     * DOMContentLoaded. Die getBoundingClientRect vlak na het toevoegen van de\n     * klasse en de spacer dwong de browser de hele pagina op te meten voordat\n     * de CSS rond was: 303 ms geforceerde reflow op de productpagina in\n     * PageSpeed. De ResizeObserver meldt de hoogte na de eerste layout, terwijl\n     * de balk nog gewoon in de flow staat; pas dan worden spacer en fixed samen\n     * gezet, dus zonder sprong en zonder die extra meting.\n     */\n    if (window.ResizeObserver) {\n      new ResizeObserver(function (entries) {\n        var e = entries[entries.length - 1];\n        zet(e.borderBoxSize && e.borderBoxSize[0] ? e.borderBoxSize[0].blockSize : e.contentRect.height);\n      }).observe(section);\n    } else {\n      sync();\n      window.addEventListener('resize', sync, { passive: true });\n      window.addEventListener('load', sync);\n    }\n\n    document.addEventListener('shopify:section:load', sync);\n    document.addEventListener('shopify:section:unload', sync);\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', init);\n  } else {\n    init();\n  }\n})();\n\n/*\n * Het uitklapmenu niet meteen sluiten als de muis het hoofditem verlaat.\n *\n * Broadcast sluit op mouseleave van het hoofditem, zonder vertraging. Het item\n * \"Men\" is ruim 50 pixels breed, het paneel eronder 244. Wie schuin naar\n * rechtsonder beweegt, komt eerst over \"All clothing\" en verlaat zo het item\n * voordat hij het paneel bereikt \u2014 en het menu is dicht. De CSS-brug in\n * brand-menu-dropdown.css dekt alleen de beweging recht naar beneden.\n *\n * Daarom: de mouseleave van Broadcast in de capture-fase onderscheppen en pas\n * na LOSLAAT_MS doorgeven, tenzij de muis intussen terug is (het paneel zit in\n * het item, dus binnenkomen in het paneel telt als terugkomen). Gaat de muis\n * naar een ander hoofditem met een uitklapmenu, dan sluit het vorige meteen,\n * anders staan er twee panelen over elkaar.\n */\n(function () {\n  'use strict';\n\n  var LOSLAAT_MS = 350;\n  var TRIGGER = '[data-hover-disclosure-toggle]';\n  var wachtend = null;\n  var timer = 0;\n\n  function doorgeven(el) {\n    var ev = new MouseEvent('mouseleave');\n    ev.brandDoorgelaten = true;\n    el.dispatchEvent(ev);\n  }\n\n  function isTrigger(t) {\n    return t instanceof Element && t.matches(TRIGGER);\n  }\n\n  document.addEventListener('mouseleave', function (e) {\n    if (e.brandDoorgelaten || !isTrigger(e.target)) return;\n    // Op een aanraakscherm opent Broadcast via touchstart; daar niets uitstellen.\n    if (!window.matchMedia('(hover: hover)').matches) return;\n    e.stopPropagation();\n    var el = e.target;\n    clearTimeout(timer);\n    if (wachtend && wachtend !== el) doorgeven(wachtend);\n    wachtend = el;\n    timer = setTimeout(function () {\n      wachtend = null;\n      if (!el.matches(':hover')) doorgeven(el);\n    }, LOSLAAT_MS);\n  }, true);\n\n  document.addEventListener('mouseenter', function (e) {\n    if (!wachtend || !isTrigger(e.target)) return;\n    clearTimeout(timer);\n    var vorige = wachtend;\n    wachtend = null;\n    if (vorige !== e.target) doorgeven(vorige);\n  }, true);\n})();\n"],
  "mappings": "CAYC,UAAY,CACX,aAEA,SAAS,MAAO,CACd,IAAI,IAAM,SAAS,cAAc,6BAA6B,GACpD,SAAS,cAAc,wBAAwB,EACzD,GAAI,CAAC,IAAK,OAEV,IAAI,QAAU,IAAI,QAAQ,kBAAkB,GAAK,IAAI,cACrD,GAAI,CAAC,SAAW,QAAQ,UAAU,SAAS,2BAA2B,EAAG,OAEzE,IAAI,OAAS,SAAS,cAAc,KAAK,EACzC,OAAO,UAAY,oCACnB,OAAO,aAAa,cAAe,MAAM,EACzC,QAAQ,WAAW,aAAa,OAAQ,QAAQ,WAAW,EAE3D,SAAS,IAAI,EAAG,CACd,EAAI,KAAK,MAAM,CAAC,EACX,IACL,OAAO,MAAM,OAAS,EAAI,KAC1B,SAAS,gBAAgB,MAAM,YAAY,mBAAoB,EAAI,IAAI,EAGvE,QAAQ,UAAU,IAAI,2BAA2B,EACnD,CAEA,SAAS,MAAO,CACd,IAAI,QAAQ,sBAAsB,EAAE,MAAM,CAC5C,CAWI,OAAO,eACT,IAAI,eAAe,SAAU,QAAS,CACpC,IAAI,EAAI,QAAQ,QAAQ,OAAS,CAAC,EAClC,IAAI,EAAE,eAAiB,EAAE,cAAc,CAAC,EAAI,EAAE,cAAc,CAAC,EAAE,UAAY,EAAE,YAAY,MAAM,CACjG,CAAC,EAAE,QAAQ,OAAO,GAElB,KAAK,EACL,OAAO,iBAAiB,SAAU,KAAM,CAAE,QAAS,EAAK,CAAC,EACzD,OAAO,iBAAiB,OAAQ,IAAI,GAGtC,SAAS,iBAAiB,uBAAwB,IAAI,EACtD,SAAS,iBAAiB,yBAA0B,IAAI,CAC1D,CAEI,SAAS,aAAe,UAC1B,SAAS,iBAAiB,mBAAoB,IAAI,EAElD,KAAK,CAET,GAAG,GAiBF,UAAY,CACX,aAEA,IAAI,WAAa,IACb,QAAU,iCACV,SAAW,KACX,MAAQ,EAEZ,SAAS,UAAU,GAAI,CACrB,IAAI,GAAK,IAAI,WAAW,YAAY,EACpC,GAAG,iBAAmB,GACtB,GAAG,cAAc,EAAE,CACrB,CAEA,SAAS,UAAU,EAAG,CACpB,OAAO,aAAa,SAAW,EAAE,QAAQ,OAAO,CAClD,CAEA,SAAS,iBAAiB,aAAc,SAAU,EAAG,CACnD,GAAI,IAAE,kBAAoB,CAAC,UAAU,EAAE,MAAM,IAExC,OAAO,WAAW,gBAAgB,EAAE,QACzC,GAAE,gBAAgB,EAClB,IAAI,GAAK,EAAE,OACX,aAAa,KAAK,EACd,UAAY,WAAa,IAAI,UAAU,QAAQ,EACnD,SAAW,GACX,MAAQ,WAAW,UAAY,CAC7B,SAAW,KACN,GAAG,QAAQ,QAAQ,GAAG,UAAU,EAAE,CACzC,EAAG,UAAU,EACf,EAAG,EAAI,EAEP,SAAS,iBAAiB,aAAc,SAAU,EAAG,CACnD,GAAI,GAAC,UAAY,CAAC,UAAU,EAAE,MAAM,GACpC,cAAa,KAAK,EAClB,IAAI,OAAS,SACb,SAAW,KACP,SAAW,EAAE,QAAQ,UAAU,MAAM,EAC3C,EAAG,EAAI,CACT,GAAG",
  "names": []
}
