{
  "version": 3,
  "sources": ["/cdn/shop/t/194/assets/varion-theme-mode.js?codex=desktop-cover-hq-20260523"],
  "sourcesContent": ["(function () {\n  var root = document.documentElement;\n  var metaThemeColor = document.querySelector('meta[name=\"theme-color\"]');\n\n  function enforceDarkTheme() {\n    root.setAttribute('data-varion-theme-mode', 'dark');\n    root.style.colorScheme = 'dark';\n\n    if (document.body) {\n      document.body.setAttribute('data-varion-theme-mode', 'dark');\n    }\n\n    if (metaThemeColor) {\n      metaThemeColor.setAttribute('content', '#0e0c0a');\n    }\n  }\n\n  function initializeTheme() {\n    enforceDarkTheme();\n    initializeProductGalleryZoom();\n    initializeBackToTop();\n    initializeReferenceListingSeamCleanup();\n  }\n\n  function getHighResolutionImageUrl(src) {\n    if (!src) {\n      return '';\n    }\n\n    try {\n      var url = new URL(src, window.location.href);\n      url.searchParams.set('width', '3200');\n      return url.toString();\n    } catch (error) {\n      return src;\n    }\n  }\n\n  function initializeProductGalleryZoom() {\n    if (window.VarionProductGalleryZoomReady) {\n      return;\n    }\n\n    window.VarionProductGalleryZoomReady = true;\n\n    var state = {\n      images: [],\n      index: 0,\n      overlay: null,\n      image: null,\n      count: null,\n      preloaded: {}\n    };\n\n    function ensureOverlay() {\n      if (state.overlay) {\n        return;\n      }\n\n      var overlay = document.createElement('div');\n      overlay.className = 'varion-gallery-lightbox';\n      overlay.setAttribute('role', 'dialog');\n      overlay.setAttribute('aria-modal', 'true');\n      overlay.setAttribute('aria-hidden', 'true');\n      overlay.innerHTML =\n        '<div class=\"varion-gallery-lightbox__backdrop\" data-varion-gallery-close></div>' +\n        '<div class=\"varion-gallery-lightbox__stage\">' +\n          '<button class=\"varion-gallery-lightbox__button varion-gallery-lightbox__close\" type=\"button\" data-varion-gallery-close aria-label=\"Galerie schliessen\">x</button>' +\n          '<button class=\"varion-gallery-lightbox__button varion-gallery-lightbox__prev\" type=\"button\" data-varion-gallery-prev aria-label=\"Vorheriges Bild\">&lt;</button>' +\n          '<img class=\"varion-gallery-lightbox__image\" alt=\"\" decoding=\"async\">' +\n          '<button class=\"varion-gallery-lightbox__button varion-gallery-lightbox__next\" type=\"button\" data-varion-gallery-next aria-label=\"Naechstes Bild\">&gt;</button>' +\n          '<div class=\"varion-gallery-lightbox__meta\" data-varion-gallery-count>1 / 1</div>' +\n        '</div>';\n\n      document.body.appendChild(overlay);\n\n      state.overlay = overlay;\n      state.image = overlay.querySelector('.varion-gallery-lightbox__image');\n      state.count = overlay.querySelector('[data-varion-gallery-count]');\n\n      overlay.addEventListener('click', function (event) {\n        var target = event.target;\n        if (!target || typeof target.closest !== 'function') {\n          return;\n        }\n\n        if (target.closest('[data-varion-gallery-close]')) {\n          closeGallery();\n          return;\n        }\n\n        if (target === overlay || target.classList.contains('varion-gallery-lightbox__stage')) {\n          closeGallery();\n          return;\n        }\n\n        if (target.closest('[data-varion-gallery-prev]')) {\n          event.preventDefault();\n          stepGallery(-1);\n          return;\n        }\n\n        if (target.closest('[data-varion-gallery-next]')) {\n          event.preventDefault();\n          stepGallery(1);\n        }\n      });\n    }\n\n    function collectImages(clickedImage) {\n      var gallery = clickedImage.closest('#va3c');\n      var images = gallery ? Array.prototype.slice.call(gallery.querySelectorAll('[data-item] img')) : [];\n\n      state.images = images.map(function (image) {\n        return {\n          alt: image.getAttribute('alt') || 'Produktbild',\n          src: getHighResolutionImageUrl(image.currentSrc || image.src)\n        };\n      }).filter(function (image) {\n        return !!image.src;\n      });\n\n      state.index = Math.max(0, images.indexOf(clickedImage));\n      state.preloaded = {};\n    }\n\n    function preloadImage(index) {\n      if (!state.images.length) {\n        return;\n      }\n\n      var normalizedIndex = index;\n      if (normalizedIndex < 0) {\n        normalizedIndex = state.images.length - 1;\n      }\n\n      if (normalizedIndex >= state.images.length) {\n        normalizedIndex = 0;\n      }\n\n      var image = state.images[normalizedIndex];\n      if (!image || !image.src || state.preloaded[image.src]) {\n        return;\n      }\n\n      state.preloaded[image.src] = true;\n      var preload = new Image();\n      preload.decoding = 'async';\n      preload.src = image.src;\n    }\n\n    function preloadNeighbors() {\n      preloadImage(state.index);\n      preloadImage(state.index - 1);\n      preloadImage(state.index + 1);\n    }\n\n    function paintGallery() {\n      if (!state.overlay || !state.images.length) {\n        return;\n      }\n\n      if (state.index < 0) {\n        state.index = state.images.length - 1;\n      }\n\n      if (state.index >= state.images.length) {\n        state.index = 0;\n      }\n\n      var image = state.images[state.index];\n      state.image.alt = image.alt;\n      state.image.src = image.src;\n      state.count.textContent = (state.index + 1) + ' / ' + state.images.length;\n      preloadNeighbors();\n    }\n\n    function openGallery(clickedImage) {\n      collectImages(clickedImage);\n\n      if (!state.images.length) {\n        return;\n      }\n\n      ensureOverlay();\n      paintGallery();\n      state.overlay.classList.add('is-open');\n      state.overlay.setAttribute('aria-hidden', 'false');\n      document.body.classList.add('varion-gallery-lightbox-open');\n      state.overlay.querySelector('[data-varion-gallery-close]').focus();\n    }\n\n    function closeGallery() {\n      if (!state.overlay) {\n        return;\n      }\n\n      state.overlay.classList.remove('is-open');\n      state.overlay.setAttribute('aria-hidden', 'true');\n      document.body.classList.remove('varion-gallery-lightbox-open');\n      state.image.removeAttribute('src');\n    }\n\n    function stepGallery(direction) {\n      if (!state.images.length) {\n        return;\n      }\n\n      state.index += direction;\n      paintGallery();\n    }\n\n    document.addEventListener('click', function (event) {\n      var target = event.target;\n      if (!target || typeof target.closest !== 'function') {\n        return;\n      }\n\n      var image = target.closest('#va3c [data-item] img');\n      if (!image) {\n        return;\n      }\n\n      event.preventDefault();\n      openGallery(image);\n    });\n\n    document.addEventListener('keydown', function (event) {\n      if (!state.overlay || !state.overlay.classList.contains('is-open')) {\n        return;\n      }\n\n      if (event.key === 'Escape') {\n        closeGallery();\n      } else if (event.key === 'ArrowLeft') {\n        stepGallery(-1);\n      } else if (event.key === 'ArrowRight') {\n        stepGallery(1);\n      }\n    });\n  }\n\n  function initializeBackToTop() {\n    if (window.VarionBackToTopReady) {\n      return;\n    }\n\n    window.VarionBackToTopReady = true;\n\n    var button = document.createElement('button');\n    button.type = 'button';\n    button.className = 'varion-back-to-top';\n    button.setAttribute('aria-label', 'Zurueck nach oben');\n    button.innerHTML = '<span class=\"varion-back-to-top__arrow\" aria-hidden=\"true\"></span>';\n    document.body.appendChild(button);\n\n    var ticking = false;\n\n    function isStickyCtaVisible() {\n      var stickyCta = document.getElementById('va-sticky');\n      if (!stickyCta) {\n        return false;\n      }\n\n      var style = window.getComputedStyle(stickyCta);\n      var rect = stickyCta.getBoundingClientRect();\n\n      return style.display !== 'none' &&\n        style.visibility !== 'hidden' &&\n        rect.width > 0 &&\n        rect.height > 0;\n    }\n\n    function updateVisibility() {\n      var scrollTop = window.scrollY || window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n      var show = isStickyCtaVisible() || scrollTop > Math.max(520, window.innerHeight * 0.65);\n      button.classList.toggle('is-visible', show);\n    }\n\n    function requestUpdate() {\n      if (ticking) {\n        return;\n      }\n\n      ticking = true;\n      window.requestAnimationFrame(function () {\n        ticking = false;\n        updateVisibility();\n      });\n    }\n\n    button.addEventListener('click', function () {\n      window.scrollTo({\n        top: 0,\n        behavior: 'smooth'\n      });\n    });\n\n    window.addEventListener('scroll', requestUpdate, { passive: true });\n    window.addEventListener('resize', requestUpdate, { passive: true });\n    updateVisibility();\n  }\n\n  function initializeReferenceListingSeamCleanup() {\n    window.VarionReferenceListingSeamReady = true;\n\n    ['varion-reference-listing-seam-cleanup', 'varion-reference-listing-seam-inline'].forEach(function (id) {\n      var oldStyle = document.getElementById(id);\n      if (oldStyle) {\n        oldStyle.remove();\n      }\n    });\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', initializeTheme);\n  } else {\n    initializeTheme();\n  }\n\n  window.addEventListener('pageshow', enforceDarkTheme);\n})();\n"],
  "mappings": "CAAC,UAAY,CACX,IAAI,KAAO,SAAS,gBAChB,eAAiB,SAAS,cAAc,0BAA0B,EAEtE,SAAS,kBAAmB,CAC1B,KAAK,aAAa,yBAA0B,MAAM,EAClD,KAAK,MAAM,YAAc,OAErB,SAAS,MACX,SAAS,KAAK,aAAa,yBAA0B,MAAM,EAGzD,gBACF,eAAe,aAAa,UAAW,SAAS,CAEpD,CAEA,SAAS,iBAAkB,CACzB,iBAAiB,EACjB,6BAA6B,EAC7B,oBAAoB,EACpB,sCAAsC,CACxC,CAEA,SAAS,0BAA0B,IAAK,CACtC,GAAI,CAAC,IACH,MAAO,GAGT,GAAI,CACF,IAAI,IAAM,IAAI,IAAI,IAAK,OAAO,SAAS,IAAI,EAC3C,WAAI,aAAa,IAAI,QAAS,MAAM,EAC7B,IAAI,SAAS,CACtB,OAAS,MAAO,CACd,OAAO,GACT,CACF,CAEA,SAAS,8BAA+B,CACtC,GAAI,OAAO,8BACT,OAGF,OAAO,8BAAgC,GAEvC,IAAI,MAAQ,CACV,OAAQ,CAAC,EACT,MAAO,EACP,QAAS,KACT,MAAO,KACP,MAAO,KACP,UAAW,CAAC,CACd,EAEA,SAAS,eAAgB,CACvB,GAAI,OAAM,QAIV,KAAI,QAAU,SAAS,cAAc,KAAK,EAC1C,QAAQ,UAAY,0BACpB,QAAQ,aAAa,OAAQ,QAAQ,EACrC,QAAQ,aAAa,aAAc,MAAM,EACzC,QAAQ,aAAa,cAAe,MAAM,EAC1C,QAAQ,UACN,svBASF,SAAS,KAAK,YAAY,OAAO,EAEjC,MAAM,QAAU,QAChB,MAAM,MAAQ,QAAQ,cAAc,iCAAiC,EACrE,MAAM,MAAQ,QAAQ,cAAc,6BAA6B,EAEjE,QAAQ,iBAAiB,QAAS,SAAU,MAAO,CACjD,IAAI,OAAS,MAAM,OACnB,GAAI,GAAC,QAAU,OAAO,OAAO,SAAY,YAIzC,IAAI,OAAO,QAAQ,6BAA6B,EAAG,CACjD,aAAa,EACb,MACF,CAEA,GAAI,SAAW,SAAW,OAAO,UAAU,SAAS,gCAAgC,EAAG,CACrF,aAAa,EACb,MACF,CAEA,GAAI,OAAO,QAAQ,4BAA4B,EAAG,CAChD,MAAM,eAAe,EACrB,YAAY,EAAE,EACd,MACF,CAEI,OAAO,QAAQ,4BAA4B,IAC7C,MAAM,eAAe,EACrB,YAAY,CAAC,GAEjB,CAAC,EACH,CAEA,SAAS,cAAc,aAAc,CACnC,IAAI,QAAU,aAAa,QAAQ,OAAO,EACtC,OAAS,QAAU,MAAM,UAAU,MAAM,KAAK,QAAQ,iBAAiB,iBAAiB,CAAC,EAAI,CAAC,EAElG,MAAM,OAAS,OAAO,IAAI,SAAU,MAAO,CACzC,MAAO,CACL,IAAK,MAAM,aAAa,KAAK,GAAK,cAClC,IAAK,0BAA0B,MAAM,YAAc,MAAM,GAAG,CAC9D,CACF,CAAC,EAAE,OAAO,SAAU,MAAO,CACzB,MAAO,CAAC,CAAC,MAAM,GACjB,CAAC,EAED,MAAM,MAAQ,KAAK,IAAI,EAAG,OAAO,QAAQ,YAAY,CAAC,EACtD,MAAM,UAAY,CAAC,CACrB,CAEA,SAAS,aAAa,MAAO,CAC3B,GAAK,MAAM,OAAO,OAIlB,KAAI,gBAAkB,MAClB,gBAAkB,IACpB,gBAAkB,MAAM,OAAO,OAAS,GAGtC,iBAAmB,MAAM,OAAO,SAClC,gBAAkB,GAGpB,IAAI,MAAQ,MAAM,OAAO,eAAe,EACxC,GAAI,GAAC,OAAS,CAAC,MAAM,KAAO,MAAM,UAAU,MAAM,GAAG,GAIrD,OAAM,UAAU,MAAM,GAAG,EAAI,GAC7B,IAAI,QAAU,IAAI,MAClB,QAAQ,SAAW,QACnB,QAAQ,IAAM,MAAM,KACtB,CAEA,SAAS,kBAAmB,CAC1B,aAAa,MAAM,KAAK,EACxB,aAAa,MAAM,MAAQ,CAAC,EAC5B,aAAa,MAAM,MAAQ,CAAC,CAC9B,CAEA,SAAS,cAAe,CACtB,GAAI,GAAC,MAAM,SAAW,CAAC,MAAM,OAAO,QAIpC,CAAI,MAAM,MAAQ,IAChB,MAAM,MAAQ,MAAM,OAAO,OAAS,GAGlC,MAAM,OAAS,MAAM,OAAO,SAC9B,MAAM,MAAQ,GAGhB,IAAI,MAAQ,MAAM,OAAO,MAAM,KAAK,EACpC,MAAM,MAAM,IAAM,MAAM,IACxB,MAAM,MAAM,IAAM,MAAM,IACxB,MAAM,MAAM,YAAe,MAAM,MAAQ,EAAK,MAAQ,MAAM,OAAO,OACnE,iBAAiB,EACnB,CAEA,SAAS,YAAY,aAAc,CACjC,cAAc,YAAY,EAErB,MAAM,OAAO,SAIlB,cAAc,EACd,aAAa,EACb,MAAM,QAAQ,UAAU,IAAI,SAAS,EACrC,MAAM,QAAQ,aAAa,cAAe,OAAO,EACjD,SAAS,KAAK,UAAU,IAAI,8BAA8B,EAC1D,MAAM,QAAQ,cAAc,6BAA6B,EAAE,MAAM,EACnE,CAEA,SAAS,cAAe,CACjB,MAAM,UAIX,MAAM,QAAQ,UAAU,OAAO,SAAS,EACxC,MAAM,QAAQ,aAAa,cAAe,MAAM,EAChD,SAAS,KAAK,UAAU,OAAO,8BAA8B,EAC7D,MAAM,MAAM,gBAAgB,KAAK,EACnC,CAEA,SAAS,YAAY,UAAW,CACzB,MAAM,OAAO,SAIlB,MAAM,OAAS,UACf,aAAa,EACf,CAEA,SAAS,iBAAiB,QAAS,SAAU,MAAO,CAClD,IAAI,OAAS,MAAM,OACnB,GAAI,GAAC,QAAU,OAAO,OAAO,SAAY,YAIzC,KAAI,MAAQ,OAAO,QAAQ,uBAAuB,EAC7C,QAIL,MAAM,eAAe,EACrB,YAAY,KAAK,GACnB,CAAC,EAED,SAAS,iBAAiB,UAAW,SAAU,MAAO,CAChD,CAAC,MAAM,SAAW,CAAC,MAAM,QAAQ,UAAU,SAAS,SAAS,IAI7D,MAAM,MAAQ,SAChB,aAAa,EACJ,MAAM,MAAQ,YACvB,YAAY,EAAE,EACL,MAAM,MAAQ,cACvB,YAAY,CAAC,EAEjB,CAAC,CACH,CAEA,SAAS,qBAAsB,CAC7B,GAAI,OAAO,qBACT,OAGF,OAAO,qBAAuB,GAE9B,IAAI,OAAS,SAAS,cAAc,QAAQ,EAC5C,OAAO,KAAO,SACd,OAAO,UAAY,qBACnB,OAAO,aAAa,aAAc,mBAAmB,EACrD,OAAO,UAAY,qEACnB,SAAS,KAAK,YAAY,MAAM,EAEhC,IAAI,QAAU,GAEd,SAAS,oBAAqB,CAC5B,IAAI,UAAY,SAAS,eAAe,WAAW,EACnD,GAAI,CAAC,UACH,MAAO,GAGT,IAAI,MAAQ,OAAO,iBAAiB,SAAS,EACzC,KAAO,UAAU,sBAAsB,EAE3C,OAAO,MAAM,UAAY,QACvB,MAAM,aAAe,UACrB,KAAK,MAAQ,GACb,KAAK,OAAS,CAClB,CAEA,SAAS,kBAAmB,CAC1B,IAAI,UAAY,OAAO,SAAW,OAAO,aAAe,SAAS,gBAAgB,WAAa,SAAS,KAAK,WAAa,EACrH,KAAO,mBAAmB,GAAK,UAAY,KAAK,IAAI,IAAK,OAAO,YAAc,GAAI,EACtF,OAAO,UAAU,OAAO,aAAc,IAAI,CAC5C,CAEA,SAAS,eAAgB,CACnB,UAIJ,QAAU,GACV,OAAO,sBAAsB,UAAY,CACvC,QAAU,GACV,iBAAiB,CACnB,CAAC,EACH,CAEA,OAAO,iBAAiB,QAAS,UAAY,CAC3C,OAAO,SAAS,CACd,IAAK,EACL,SAAU,QACZ,CAAC,CACH,CAAC,EAED,OAAO,iBAAiB,SAAU,cAAe,CAAE,QAAS,EAAK,CAAC,EAClE,OAAO,iBAAiB,SAAU,cAAe,CAAE,QAAS,EAAK,CAAC,EAClE,iBAAiB,CACnB,CAEA,SAAS,uCAAwC,CAC/C,OAAO,gCAAkC,GAEzC,CAAC,wCAAyC,sCAAsC,EAAE,QAAQ,SAAU,GAAI,CACtG,IAAI,SAAW,SAAS,eAAe,EAAE,EACrC,UACF,SAAS,OAAO,CAEpB,CAAC,CACH,CAEI,SAAS,aAAe,UAC1B,SAAS,iBAAiB,mBAAoB,eAAe,EAE7D,gBAAgB,EAGlB,OAAO,iBAAiB,WAAY,gBAAgB,CACtD,GAAG",
  "names": []
}
