{
  "version": 3,
  "sources": ["/cdn/shop/t/1/assets/drkalla-guard-20260611.js?dkv=20260722-performance-fixes-3"],
  "sourcesContent": ["(function () {\n  const KLAVIYO_PATTERN = /klaviyo|sign me up|no thanks/i;\n  const COOKIE_PATTERN = /cookie|cookies|consent|datenschutz|einwilligung|zustimmung|akzeptieren|ablehnen/i;\n  const COOKIE_ROOT_SELECTOR = '#shopify-pc__banner';\n  let scheduled = false;\n  let lastTextRepairAt = 0;\n  let profiStatusPromise = null;\n  let profiStatusCache = null;\n  let profiStatusCacheKey = \"\";\n  let profiStatusCacheAt = 0;\n  let staticEnhancementsDone = false;\n  let headerCopyRepaired = false;\n  const normalizedStyles = new Map();\n\n  function textOf(node) {\n    return (node && node.textContent ? node.textContent : \"\").replace(/\\s+/g, \" \").trim();\n  }\n\n  function isVisible(el) {\n    if (!el || !(el instanceof HTMLElement)) return false;\n    const style = window.getComputedStyle(el);\n    const rect = el.getBoundingClientRect();\n    return style.display !== \"none\" && style.visibility !== \"hidden\" && rect.width > 20 && rect.height > 20;\n  }\n\n  function isOverlayCandidate(el) {\n    const style = window.getComputedStyle(el);\n    const rect = el.getBoundingClientRect();\n    const zIndex = Number.parseInt(style.zIndex || \"0\", 10);\n    const role = (el.getAttribute(\"role\") || \"\").toLowerCase();\n    const modal = el.getAttribute(\"aria-modal\") === \"true\";\n    const shopifyPrivacy = /shopify-pc/i.test(`${el.id || \"\"} ${el.className || \"\"}`);\n    const fixedLayer = style.position === \"fixed\" || style.position === \"sticky\";\n    return shopifyPrivacy && (modal || role === \"dialog\" || fixedLayer || zIndex > 50 || rect.height > 80);\n  }\n\n  function looksLikeKlaviyo(el) {\n    if (el.matches?.(\"#dkRabattPopup, .dk-rpopup\")) return true;\n    const haystack = `${el.id || \"\"} ${el.className || \"\"} ${textOf(el)}`;\n    return KLAVIYO_PATTERN.test(haystack);\n  }\n\n  function looksLikeCookie(el) {\n    const haystack = `${el.id || \"\"} ${el.className || \"\"} ${textOf(el)}`;\n    return COOKIE_PATTERN.test(haystack);\n  }\n\n  function setImportantStyle(el, property, value) {\n    if (!el || !(el instanceof HTMLElement)) return;\n    // CSSOM normalizes colors, zero lengths and shorthands before returning them.\n    const key = `${property}:${value}`;\n    if (!normalizedStyles.has(key)) {\n      const style = document.createElement(\"span\").style;\n      style.setProperty(property, value, \"important\");\n      normalizedStyles.set(key, style.getPropertyValue(property));\n    }\n    if (el.style.getPropertyValue(property) === normalizedStyles.get(key) &&\n        el.style.getPropertyPriority(property) === \"important\") return;\n    el.style.setProperty(property, value, \"important\");\n  }\n\n  function ensureProductCardTitleIntegrity() {\n    let style = document.getElementById(\"dk-product-card-title-integrity-style\");\n    if (!style) {\n      style = document.createElement(\"style\");\n      style.id = \"dk-product-card-title-integrity-style\";\n      style.textContent = `\n        .product-card-wrapper .card__heading,\n        .product-card-wrapper .card__heading.h5,\n        .product-card-wrapper .card__heading .full-unstyled-link,\n        .template-search .card__heading,\n        .template-search .card__heading .full-unstyled-link,\n        .collection .card__heading,\n        .collection .card__heading .full-unstyled-link,\n        .dk-index-page .card__heading,\n        .dk-index-page .card__heading .full-unstyled-link{\n          -webkit-box-orient:initial!important;\n          -webkit-line-clamp:unset!important;\n          display:block!important;\n          height:auto!important;\n          max-height:none!important;\n          min-height:0!important;\n          overflow:visible!important;\n          overflow-wrap:break-word!important;\n          word-break:normal!important;\n          white-space:normal!important;\n        }\n        .skip-to-content-link.button:focus{\n          height:auto!important;\n          line-height:1.15!important;\n          max-width:calc(100vw - 2rem)!important;\n          min-height:0!important;\n          padding:.75rem 1.1rem!important;\n          white-space:normal!important;\n        }\n      `;\n      document.head.appendChild(style);\n    }\n\n  }\n\n  function fitCookieBanner() {\n    const banner = document.getElementById(\"shopify-pc__banner\");\n    if (!isVisible(banner)) return;\n\n    const isMobile = window.matchMedia(\"(max-width: 749px)\").matches;\n    setImportantStyle(banner, \"box-sizing\", \"border-box\");\n    setImportantStyle(banner, \"height\", \"auto\");\n    setImportantStyle(banner, \"border-radius\", isMobile ? \"14px\" : \"16px\");\n    setImportantStyle(banner, \"overflow\", \"hidden\");\n    setImportantStyle(banner, \"background\", \"#ffffff\");\n    setImportantStyle(banner, \"border\", \"1px solid #ece8df\");\n    setImportantStyle(banner, \"box-shadow\", \"0 14px 44px rgba(11, 11, 11, 0.16)\");\n    setImportantStyle(banner, \"bottom\", isMobile ? \"8px\" : \"20px\");\n    setImportantStyle(banner, \"left\", isMobile ? \"8px\" : \"50%\");\n    setImportantStyle(banner, \"right\", isMobile ? \"8px\" : \"auto\");\n    setImportantStyle(banner, \"top\", \"auto\");\n    setImportantStyle(banner, \"margin\", \"0\");\n    setImportantStyle(banner, \"width\", isMobile ? \"auto\" : \"min(640px, calc(100vw - 40px))\");\n    setImportantStyle(banner, \"max-width\", isMobile ? \"none\" : \"min(640px, calc(100vw - 40px))\");\n    setImportantStyle(\n      banner,\n      \"max-height\",\n      isMobile ? \"min(206px, calc(100vh - 16px))\" : \"min(204px, calc(100vh - 40px))\",\n    );\n    setImportantStyle(banner, \"transform\", isMobile ? \"none\" : \"translateX(-50%)\");\n\n    const wrapper = banner.querySelector(\".shopify-pc__banner__wrapper\");\n    setImportantStyle(wrapper, \"box-sizing\", \"border-box\");\n    setImportantStyle(wrapper, \"display\", \"flex\");\n    setImportantStyle(wrapper, \"flex-direction\", \"column\");\n    setImportantStyle(wrapper, \"align-items\", \"stretch\");\n    setImportantStyle(wrapper, \"gap\", \"0px\");\n    setImportantStyle(wrapper, \"width\", \"auto\");\n    setImportantStyle(wrapper, \"overflow\", \"hidden\");\n    setImportantStyle(\n      wrapper,\n      \"max-height\",\n      isMobile ? \"min(190px, calc(100vh - 32px))\" : \"min(188px, calc(100vh - 40px))\",\n    );\n    setImportantStyle(wrapper, \"padding\", isMobile ? \"10px 11px 11px\" : \"14px 18px 14px\");\n\n    const body = banner.querySelector(\".shopify-pc__banner__body\");\n    setImportantStyle(body, \"flex\", \"0 1 auto\");\n    setImportantStyle(body, \"max-height\", isMobile ? \"48px\" : \"48px\");\n    setImportantStyle(body, \"overflow\", \"auto\");\n    setImportantStyle(body, \"padding-right\", isMobile ? \"4px\" : \"8px\");\n\n    const title = banner.querySelector(\"#shopify-pc__banner__body-title\");\n    setImportantStyle(title, \"color\", \"#0b0b0b\");\n    setImportantStyle(title, \"font-size\", isMobile ? \"12px\" : \"12.5px\");\n    setImportantStyle(title, \"font-weight\", \"700\");\n    setImportantStyle(title, \"line-height\", \"1.2\");\n    setImportantStyle(title, \"margin-bottom\", isMobile ? \"3px\" : \"2px\");\n\n    banner.querySelectorAll(\".shopify-pc__banner__body p, .shopify-pc__banner__body span\").forEach((node) => {\n      setImportantStyle(node, \"color\", \"#6b6b6b\");\n      setImportantStyle(node, \"font-size\", isMobile ? \"11px\" : \"12px\");\n      setImportantStyle(node, \"line-height\", isMobile ? \"1.25\" : \"1.35\");\n    });\n\n    const buttonGroup = banner.querySelector(\".shopify-pc__banner__btns\");\n    setImportantStyle(buttonGroup, \"display\", \"flex\");\n    setImportantStyle(buttonGroup, \"flex-direction\", \"row\");\n    setImportantStyle(buttonGroup, \"flex-wrap\", \"wrap\");\n    setImportantStyle(buttonGroup, \"justify-content\", isMobile ? \"flex-start\" : \"flex-end\");\n    setImportantStyle(buttonGroup, \"grid-template-columns\", \"none\");\n    setImportantStyle(buttonGroup, \"gap\", isMobile ? \"6px\" : \"8px\");\n    setImportantStyle(buttonGroup, \"margin-top\", isMobile ? \"8px\" : \"10px\");\n    setImportantStyle(buttonGroup, \"flex\", \"0 0 auto\");\n\n    const manageButton = banner.querySelector(\"#shopify-pc__banner__btn-manage-prefs\");\n    setImportantStyle(manageButton, \"grid-column\", \"auto\");\n    setImportantStyle(manageButton, \"flex\", isMobile ? \"1 1 100%\" : \"0 0 auto\");\n    setImportantStyle(manageButton, \"order\", isMobile ? \"3\" : \"0\");\n\n    banner.querySelectorAll(\".shopify-pc__banner__btns button\").forEach((button) => {\n      setImportantStyle(button, \"flex\", isMobile ? (button === manageButton ? \"1 1 100%\" : \"1 1 0\") : \"0 0 auto\");\n      setImportantStyle(button, \"min-height\", \"44px\");\n      setImportantStyle(button, \"height\", \"44px\");\n      setImportantStyle(button, \"padding\", isMobile ? \"0 10px\" : \"0 16px\");\n      setImportantStyle(button, \"font-size\", \"12px\");\n      setImportantStyle(button, \"font-weight\", \"700\");\n      setImportantStyle(button, \"line-height\", \"1\");\n      setImportantStyle(button, \"white-space\", \"nowrap\");\n      setImportantStyle(button, \"border-radius\", \"9px\");\n    });\n    setImportantStyle(manageButton, \"flex\", isMobile ? \"1 1 100%\" : \"0 0 auto\");\n\n    const colorButton = (button, color) => {\n      if (!button) return;\n      setImportantStyle(button, \"color\", color);\n      button.querySelectorAll(\"*\").forEach((node) => setImportantStyle(node, \"color\", color));\n    };\n\n    const acceptButton = banner.querySelector(\"#shopify-pc__banner__btn-accept\");\n    setImportantStyle(acceptButton, \"background\", \"#c8a45c\");\n    setImportantStyle(acceptButton, \"border\", \"1px solid #c8a45c\");\n    colorButton(acceptButton, \"#1a1a1a\");\n\n    const declineButton = banner.querySelector(\"#shopify-pc__banner__btn-decline\");\n    setImportantStyle(declineButton, \"background\", \"#ffffff\");\n    setImportantStyle(declineButton, \"border\", \"1.5px solid #0b0b0b\");\n    colorButton(declineButton, \"#0b0b0b\");\n\n    setImportantStyle(manageButton, \"background\", \"#f4f0e8\");\n    setImportantStyle(manageButton, \"border\", \"1px solid #cbc3b2\");\n    colorButton(manageButton, \"#3a3a3a\");\n  }\n\n  function observeLayerState(root) {\n    if (!(root instanceof HTMLElement) || root.dataset.dkLayerObserved === \"true\") return;\n\n    root.dataset.dkLayerObserved = \"true\";\n    const stateObserver = new MutationObserver((records) => {\n      if (records.some((record) => record.oldValue !== root.getAttribute(record.attributeName))) {\n        scheduleRun();\n      }\n    });\n    stateObserver.observe(root, {\n      attributes: true,\n      attributeOldValue: true,\n      attributeFilter: [\"class\", \"style\", \"hidden\", \"aria-hidden\"],\n    });\n    root.addEventListener(\n      \"click\",\n      () => {\n        [50, 300, 1000].forEach((delay) => window.setTimeout(scheduleRun, delay));\n      },\n      { passive: true },\n    );\n  }\n\n  function syncMarketingLayerState() {\n    const marketingVisible = Array.from(\n      document.querySelectorAll('#dkRabattPopup, .dk-rpopup, .klaviyo-form, [class*=\"klaviyo\"], [id*=\"klaviyo\"]'),\n    ).some((el) => isVisible(el) && looksLikeKlaviyo(el));\n    document.body.classList.toggle(\"dk-marketing-layer-visible\", marketingVisible);\n    syncConsentLinkAccess(marketingVisible);\n  }\n\n  function classifyDialogs() {\n    document.body.classList.toggle(\"dk-preview-bar-visible\", Boolean(document.getElementById(\"PBarNextFrame\")));\n    document.body.classList.toggle(\n      \"dk-product-page\",\n      window.location.pathname.indexOf(\"/products/\") === 0,\n    );\n    document.body.classList.toggle(\n      \"dk-pro-registration-page\",\n      window.location.pathname.indexOf(\"/pages/als-friseur-registrieren\") === 0,\n    );\n\n    observeLayerState(document.getElementById(\"shopify-pc__banner\"));\n    document.querySelectorAll(\"#dkRabattPopup, .dk-rpopup\").forEach(observeLayerState);\n\n    const candidates = Array.from(\n      document.querySelectorAll(`${COOKIE_ROOT_SELECTOR}, #dkRabattPopup, .dk-rpopup, .klaviyo-form, [class*=\"klaviyo\"], [id*=\"klaviyo\"]`),\n    ).filter((el) => isVisible(el) && (isOverlayCandidate(el) || looksLikeKlaviyo(el)));\n\n    const cookieRoots = new Set();\n    for (const el of candidates) {\n      if (!looksLikeCookie(el) || looksLikeKlaviyo(el)) continue;\n      const root = el.closest(\"#shopify-pc__banner\") || el.closest('[id*=\"shopify-pc\"], [class*=\"shopify-pc\"]') || el;\n      if (root instanceof HTMLElement && isVisible(root)) cookieRoots.add(root);\n    }\n\n    document.querySelectorAll(\".dk-cookie-consent-panel\").forEach((el) => {\n      if (!cookieRoots.has(el)) el.classList.remove(\"dk-cookie-consent-panel\");\n    });\n    cookieRoots.forEach((el) => {\n      if (!el.classList.contains(\"dk-cookie-consent-panel\")) el.classList.add(\"dk-cookie-consent-panel\");\n    });\n\n    const cookieVisible = cookieRoots.size > 0;\n    document.body.classList.toggle(\"dk-cookie-layer-visible\", cookieVisible);\n    fitCookieBanner();\n\n    if (!cookieVisible) {\n      document.querySelectorAll('[data-dk-deferred=\"true\"]').forEach((el) => {\n        el.removeAttribute(\"data-dk-deferred\");\n        el.style.removeProperty(\"display\");\n      });\n      syncMarketingLayerState();\n      updateStickyAtc();\n      return;\n    }\n\n    for (const el of candidates) {\n      if (looksLikeKlaviyo(el)) {\n        el.setAttribute(\"data-dk-deferred\", \"true\");\n        el.style.setProperty(\"display\", \"none\", \"important\");\n      }\n    }\n    syncMarketingLayerState();\n    updateStickyAtc();\n  }\n\n\n  /* DK_PRIVACY_UI_COOKIE_FIX_20260812_START\n   * Keeps Shopify's consent controls reachable above the optional discount dialog\n   * and removes only the named, script-readable first-party analytics/marketing\n   * cookies after an explicit denial. It does not touch essential, unknown,\n   * third-party, or HttpOnly cookies.\n   */\n  const DK_ANALYTICS_COOKIE_PATTERN = /^_ga(?:_|$)/;\n  const DK_MARKETING_COOKIE_NAMES = new Set([\n    \"_pin_unauth\",\n    \"_pinterest_ct_ua\",\n    \"shopify_client_id\",\n    \"otm_scid\",\n  ]);\n  const DK_CONSENT_LINK_SELECTOR =\n    'a[href=\"#shopifyReshowConsentBanner\"], a[href$=\"/policies/#shopifyReshowConsentBanner\"]';\n\n  function syncConsentLinkAccess(marketingVisible) {\n    document.querySelectorAll(DK_CONSENT_LINK_SELECTOR).forEach((link) => {\n      if (!(link instanceof HTMLElement)) return;\n      if (marketingVisible) {\n        link.dataset.dkConsentLinkElevated = \"true\";\n        link.style.setProperty(\"position\", \"relative\", \"important\");\n        link.style.setProperty(\"z-index\", \"10001\", \"important\");\n      } else if (link.dataset.dkConsentLinkElevated === \"true\") {\n        delete link.dataset.dkConsentLinkElevated;\n        link.style.removeProperty(\"position\");\n        link.style.removeProperty(\"z-index\");\n      }\n    });\n  }\n\n  function closeDiscountPopupForConsentLink(event) {\n    const target = event.target instanceof Element ? event.target.closest(DK_CONSENT_LINK_SELECTOR) : null;\n    if (!target) return;\n    const popup = document.getElementById(\"dkRabattPopup\");\n    if (!isVisible(popup)) return;\n    const closeButton = popup.querySelector(\"[data-dk-close]\");\n    if (closeButton instanceof HTMLElement) closeButton.click();\n  }\n\n  function dkExplicitlyDenied(value) {\n    return value === false || String(value || \"\").toLowerCase() === \"no\";\n  }\n\n  function dkCookiePaths() {\n    const paths = new Set([\"/\"]);\n    const segments = window.location.pathname.split(\"/\").filter(Boolean);\n    let current = \"\";\n    segments.slice(0, -1).forEach((segment) => {\n      current += \"/\" + segment;\n      paths.add(current);\n      paths.add(current + \"/\");\n    });\n    return Array.from(paths);\n  }\n\n  function dkCookieDomains() {\n    const host = window.location.hostname.toLowerCase().replace(/^\\.+|\\.+$/g, \"\");\n    const domains = [null];\n    if (host) domains.push(host, \".\" + host);\n    if (host === \"drkalla.com\" || host.endsWith(\".drkalla.com\")) {\n      domains.push(\"drkalla.com\", \".drkalla.com\");\n    }\n    return Array.from(new Set(domains));\n  }\n\n  function cleanupExplicitlyDeniedCookies() {\n    const privacy = window.Shopify && window.Shopify.customerPrivacy;\n    if (!privacy || typeof privacy.currentVisitorConsent !== \"function\") return;\n\n    let consent;\n    try {\n      consent = privacy.currentVisitorConsent() || {};\n    } catch (_) {\n      return;\n    }\n\n    const analyticsDenied = dkExplicitlyDenied(consent.analytics);\n    const marketingDenied = dkExplicitlyDenied(consent.marketing);\n    if (!analyticsDenied && !marketingDenied) return;\n\n    const names = Array.from(new Set(document.cookie.split(\";\").map((part) => {\n      const separator = part.indexOf(\"=\");\n      return part.slice(0, separator < 0 ? part.length : separator).trim();\n    }).filter((name) =>\n      name && ((analyticsDenied && DK_ANALYTICS_COOKIE_PATTERN.test(name)) ||\n        (marketingDenied && DK_MARKETING_COOKIE_NAMES.has(name))),\n    )));\n\n    const secure = window.location.protocol === \"https:\" ? \"; Secure\" : \"\";\n    names.forEach((name) => {\n      dkCookiePaths().forEach((path) => {\n        dkCookieDomains().forEach((domain) => {\n          const domainAttribute = domain ? \"; Domain=\" + domain : \"\";\n          document.cookie = name + \"=; Path=\" + path +\n            \"; Expires=Thu, 01 Jan 1970 00:00:00 GMT; Max-Age=0; SameSite=Lax\" +\n            domainAttribute + secure;\n        });\n      });\n    });\n  }\n\n  function scheduleExplicitCookieCleanup() {\n    [0, 150, 1000].forEach((delay) => window.setTimeout(cleanupExplicitlyDeniedCookies, delay));\n  }\n\n  function initializeExplicitCookieCleanup() {\n    if (window.Shopify && window.Shopify.customerPrivacy) {\n      scheduleExplicitCookieCleanup();\n      return;\n    }\n    if (window.Shopify && typeof window.Shopify.loadFeatures === \"function\") {\n      window.Shopify.loadFeatures(\n        [{ name: \"consent-tracking-api\", version: \"0.1\" }],\n        (error) => { if (!error) scheduleExplicitCookieCleanup(); },\n      );\n    }\n  }\n\n  document.addEventListener(\"click\", closeDiscountPopupForConsentLink, true);\n  document.addEventListener(\"visitorConsentCollected\", scheduleExplicitCookieCleanup);\n  initializeExplicitCookieCleanup();\n  /* DK_PRIVACY_UI_COOKIE_FIX_20260812_END */\n\n  function fixConsentLinks() {\n    document.querySelectorAll('a[href*=\"/policies/#shopifyReshowConsentBanner\"]').forEach((link) => {\n      link.setAttribute(\"href\", \"#shopifyReshowConsentBanner\");\n    });\n  }\n\n  function ensureStickyAtc() {\n    let sticky = document.querySelector(\".dk-sticky-atc\");\n    if (!sticky) {\n      sticky = document.createElement(\"div\");\n      sticky.className = \"dk-sticky-atc\";\n      sticky.innerHTML = '<button type=\"button\" class=\"dk-sticky-atc__button\"></button><div class=\"dk-sticky-atc__status\" role=\"status\" aria-live=\"polite\" hidden></div>';\n      document.body.appendChild(sticky);\n      sticky.querySelector(\"button\").addEventListener(\"click\", () => {\n        if (sticky.dataset.mode === \"choose\") {\n          const picker = document.querySelector(\"variant-selects, variant-radios, .product-form__input\");\n          const target = picker || document.querySelector(\".product__info-container\");\n          target?.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n          window.setTimeout(() => {\n            const control = target?.querySelector(\"select, input:not([type='hidden']), button\");\n            control?.focus({ preventScroll: true });\n          }, 450);\n          return;\n        }\n        const submit = getMainProductSubmit();\n        if (submit && !submit.disabled) submit.click();\n        const status = sticky.querySelector(\".dk-sticky-atc__status\");\n        if (status) {\n          status.hidden = false;\n          status.textContent = \"Wird in den Warenkorb gelegt...\";\n          window.setTimeout(() => {\n            status.textContent = \"Warenkorb aktualisiert.\";\n          }, 1400);\n          window.setTimeout(() => {\n            status.hidden = true;\n            status.textContent = \"\";\n          }, 3600);\n        }\n      });\n    }\n    return sticky;\n  }\n\n  function getMainProductSubmit() {\n    if (window.location.pathname.indexOf(\"/products/\") !== 0) return null;\n\n    const productRoot =\n      document.querySelector('main [id*=\"MainProduct\"], main .product') ||\n      document.querySelector('[id*=\"MainProduct\"], .product');\n    const formRoot = productRoot || document.querySelector(\"main\") || document;\n    const forms = Array.from(formRoot.querySelectorAll('form[action*=\"/cart/add\"]'));\n    const form =\n      forms.find((candidate) => candidate.getAttribute(\"data-type\") === \"add-to-cart-form\" && candidate.querySelector('button[type=\"submit\"], button[name=\"add\"]')) ||\n      forms.find((candidate) => candidate.querySelector('button[type=\"submit\"], button[name=\"add\"]'));\n    if (!form) return null;\n\n    return form.querySelector('button[type=\"submit\"], button[name=\"add\"]');\n  }\n\n  function getSubmitLabel(submit) {\n    if (!submit) return \"In den Warenkorb legen\";\n\n    const visibleTextNodes = Array.from(submit.querySelectorAll(\"span, div\"))\n      .filter((node) => {\n        const style = window.getComputedStyle(node);\n        return !node.classList.contains(\"hidden\") && style.display !== \"none\" && style.visibility !== \"hidden\";\n      })\n      .map((node) => (node.innerText || node.textContent || \"\").replace(/\\s+/g, \" \").trim())\n      .filter(Boolean);\n\n    const visibleLabel = visibleTextNodes[0] || (submit.innerText || submit.textContent || \"\").replace(/\\s+/g, \" \").trim();\n    const soldOutText = (window.Shopify?.translations?.soldOut || \"Ausverkauft\").trim();\n\n    if (submit.disabled || /ausverkauft|sold out/i.test(visibleLabel)) return soldOutText;\n    if (/in den warenkorb|add to cart/i.test(visibleLabel)) return \"In den Warenkorb legen\";\n\n    return visibleLabel || \"In den Warenkorb legen\";\n  }\n\n  function updateStickyAtc() {\n    // Keep purchasing in the product form; floating copies can cover mobile navigation.\n    document.querySelectorAll(\".dk-sticky-atc\").forEach((sticky) => sticky.remove());\n    document.body.classList.remove(\"dk-sticky-atc-ready\", \"dk-main-atc-covered-by-cookie\");\n  }\n\n  function getProductGalleryWrappers() {\n    return Array.from(document.querySelectorAll(\".product__media-wrapper\")).filter(\n      (wrapper) => wrapper instanceof HTMLElement,\n    );\n  }\n\n  function getPrimaryProductGalleryWrapper() {\n    const wrappers = getProductGalleryWrappers();\n    if (!wrappers.length) return null;\n\n    const mainProduct =\n      document.querySelector('main [id*=\"MainProduct\"], main .product') ||\n      document.querySelector('[id*=\"MainProduct\"], .product');\n    return wrappers.find((wrapper) => mainProduct && mainProduct.contains(wrapper)) || wrappers.find(isVisible) || wrappers[0];\n  }\n\n  function updateProductGallerySticky() {\n    if (window.location.pathname.indexOf(\"/products/\") !== 0) return;\n\n    const wrappers = getProductGalleryWrappers();\n    if (!wrappers.length) return;\n\n    const desktop = window.matchMedia(\"(min-width: 990px)\").matches;\n    const primary = getPrimaryProductGalleryWrapper();\n\n    for (const wrapper of wrappers) {\n      if (!desktop || wrapper !== primary) {\n        wrapper.classList.remove(\"dk-gallery-sticky-ready\");\n      }\n    }\n\n    if (!desktop || !primary) return;\n\n    const thumbnailRail = primary.querySelector(\".thumbnail-slider, .thumbnail-list\");\n    let activationScroll = 0;\n    if (thumbnailRail && isVisible(thumbnailRail)) {\n      const rect = thumbnailRail.getBoundingClientRect();\n      activationScroll = Math.max(0, Math.round(rect.bottom + window.scrollY - window.innerHeight + 24));\n    }\n\n    primary.classList.toggle(\"dk-gallery-sticky-ready\", window.scrollY >= activationScroll);\n  }\n\n  function repairGermanPopupCopy() {\n    const now = Date.now();\n    if (now - lastTextRepairAt < 1200) return;\n    lastTextRepairAt = now;\n\n    const pathname = window.location.pathname;\n    const shouldScanMain =\n      pathname.indexOf(\"/pages/als-friseur-registrieren\") === 0 ||\n      pathname.indexOf(\"/pages/profi\") === 0 ||\n      pathname.indexOf(\"/pages/konto\") === 0;\n    const header = !headerCopyRepaired ? document.querySelector(\"header\") : null;\n    const roots = Array.from(\n      new Set(\n        [\n          header,\n          shouldScanMain ? document.querySelector(\"#MainContent\") : null,\n          ...document.querySelectorAll(\".klaviyo-form, [class*='klaviyo'], [id*='klaviyo'], #shopify-pc__banner\"),\n        ].filter(Boolean),\n      ),\n    );\n\n    const replacements = [\n      [/Haar\\s+Pflege/gi, \"Haarpflege\"],\n      [/Complete form below to signup for Shopify account\\./gi, \"F\u00FClle das Formular aus, damit wir deinen Profi-Zugang pr\u00FCfen k\u00F6nnen.\"],\n      [/Create an account/gi, \"Profi-Konto erstellen\"],\n      [/Confirm password/gi, \"Passwort best\u00E4tigen\"],\n      [/Enter your password/gi, \"Passwort eingeben\"],\n      [/Confirm your password/gi, \"Passwort best\u00E4tigen\"],\n      [/First Name/gi, \"Vorname\"],\n      [/Last Name/gi, \"Nachname\"],\n      [/\\bEmail\\b/gi, \"E-Mail\"],\n      [/\\bPassword\\b/gi, \"Passwort\"],\n      [/\\bSubmit\\b/gi, \"Anfrage absenden\"],\n      [/Gewerbe\\s+Nachwei(?:s|\u00DF)\\s+als\\s+Friseur/gi, \"Gewerbenachweis als Friseur\"],\n      [/Gewerbe Nachweis als Friseur/gi, \"Gewerbenachweis als Friseur\"],\n      [/sign me up!?/gi, \"Rabatt sichern\"],\n      [/no,?\\s*thanks/gi, \"Nein danke\"],\n      [/Close\\s+dialog/gi, \"Dialog schlie\u00DFen\"],\n    ];\n\n    for (const root of roots) {\n      const walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT);\n      while (walker.nextNode()) {\n        let value = walker.currentNode.nodeValue;\n        let next = value;\n        for (const [pattern, replacement] of replacements) {\n          next = next.replace(pattern, replacement);\n        }\n        if (next !== value) walker.currentNode.nodeValue = next;\n      }\n    }\n    if (header) headerCopyRepaired = true;\n\n    document.querySelectorAll(\".samitaWS-container input, .samitaWS-container textarea\").forEach((el) => {\n      const placeholder = el.getAttribute(\"placeholder\");\n      if (!placeholder) return;\n      let next = placeholder;\n      for (const [pattern, replacement] of replacements) {\n        next = next.replace(pattern, replacement);\n      }\n      if (next !== placeholder) el.setAttribute(\"placeholder\", next);\n    });\n\n    document.querySelectorAll(\".samitaWS-container [data-label]\").forEach((el) => {\n      const label = el.getAttribute(\"data-label\");\n      if (!label) return;\n      let next = label;\n      for (const [pattern, replacement] of replacements) {\n        next = next.replace(pattern, replacement);\n      }\n      if (next !== label) el.setAttribute(\"data-label\", next);\n    });\n  }\n\n  function repairHomepageShowcase() {\n    const categoryGrid = document.querySelector(\".dk-home-showcase__categories\");\n    if (!categoryGrid) return;\n\n    const cards = Array.from(categoryGrid.querySelectorAll(\".dk-home-category\"));\n    const perfumeCard = cards.find((card) => {\n      const title = textOf(card.querySelector(\".dk-home-category__title\")).normalize(\"NFC\").toLowerCase();\n      return title.indexOf(\"parf\u00FCm\") !== -1 || title.indexOf(\"parfum\") !== -1 || (card.getAttribute(\"href\") || \"\").indexOf(\"/parfum\") !== -1;\n    });\n    const barberCard = cards.find((card) => {\n      const title = textOf(card.querySelector(\".dk-home-category__title\")).normalize(\"NFC\").toLowerCase();\n      return title.indexOf(\"herrenpflege\") !== -1 || title.indexOf(\"barber\") !== -1 || (card.getAttribute(\"href\") || \"\").indexOf(\"barber-herrenpflege\") !== -1;\n    });\n\n    if (barberCard) {\n      barberCard.classList.add(\"dk-home-category--barber-herrenpflege\");\n      const title = barberCard.querySelector(\".dk-home-category__title\");\n      const copy = barberCard.querySelector(\".dk-home-category__copy\");\n      if (title) title.textContent = \"Barber\";\n      if (copy) copy.textContent = \"Barberbedarf und Herrenstyling\";\n    }\n    if (barberCard && categoryGrid.lastElementChild !== barberCard) {\n      categoryGrid.appendChild(barberCard);\n    }\n    if (perfumeCard && categoryGrid.lastElementChild !== perfumeCard) {\n      categoryGrid.appendChild(perfumeCard);\n    }\n\n    for (const card of cards) {\n      const title = textOf(card.querySelector(\".dk-home-category__title\")).normalize(\"NFC\").toLowerCase();\n      if (title.indexOf(\"parf\u00FCm\") !== -1 || title.indexOf(\"parfum\") !== -1) {\n        card.classList.add(\"dk-home-category--perfume\");\n      }\n      if (title.indexOf(\"marken\") !== -1) {\n        card.classList.add(\"dk-home-category--brand\");\n        const media = card.querySelector(\".dk-home-category__media\");\n        if (media && media.querySelectorAll(\".dk-home-category__brand-mark\").length < 60) {\n          media.innerHTML = [\n            '<span class=\"dk-home-category__brand-marks\">',\n            '<span class=\"dk-home-category__brand-mark dk-brand-black\"><span class=\"dk-home-category__brand-word\">Black Professional</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-wella\"><span class=\"dk-home-category__brand-word\">Wella</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-parisienne\"><span class=\"dk-home-category__brand-word\">Parisienne Italia</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-xanitalia\"><span class=\"dk-home-category__brand-word\">Xanitalia</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-schwarzkopf\"><span class=\"dk-home-category__brand-word\">Schwarzkopf Pro</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-loreal\"><span class=\"dk-home-category__brand-word\">L\u2019Oreal Pro</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-evelon\"><span class=\"dk-home-category__brand-word\">Evelon Pro</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-sthauer\"><span class=\"dk-home-category__brand-word\">Sthauer</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-lattafa\"><span class=\"dk-home-category__brand-word\">Lattafa</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-linexance\"><span class=\"dk-home-category__brand-word\">Lin Exance</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-elegans\"><span class=\"dk-home-category__brand-word\">Elegans</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-wella\"><span class=\"dk-home-category__brand-word\">Wella</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-black\"><span class=\"dk-home-category__brand-word\">Black Professional</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-xanitalia\"><span class=\"dk-home-category__brand-word\">Xanitalia</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-parisienne\"><span class=\"dk-home-category__brand-word\">Parisienne Italia</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-loreal\"><span class=\"dk-home-category__brand-word\">L\u2019Oreal Pro</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-schwarzkopf\"><span class=\"dk-home-category__brand-word\">Schwarzkopf Pro</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-evelon\"><span class=\"dk-home-category__brand-word\">Evelon Pro</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-lattafa\"><span class=\"dk-home-category__brand-word\">Lattafa</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-sthauer\"><span class=\"dk-home-category__brand-word\">Sthauer</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-linexance\"><span class=\"dk-home-category__brand-word\">Lin Exance</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-elegans\"><span class=\"dk-home-category__brand-word\">Elegans</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-black\"><span class=\"dk-home-category__brand-word\">Black Professional</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-wella\"><span class=\"dk-home-category__brand-word\">Wella</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-parisienne\"><span class=\"dk-home-category__brand-word\">Parisienne Italia</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-xanitalia\"><span class=\"dk-home-category__brand-word\">Xanitalia</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-schwarzkopf\"><span class=\"dk-home-category__brand-word\">Schwarzkopf Pro</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-loreal\"><span class=\"dk-home-category__brand-word\">L\u2019Oreal Pro</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-evelon\"><span class=\"dk-home-category__brand-word\">Evelon Pro</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-sthauer\"><span class=\"dk-home-category__brand-word\">Sthauer</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-lattafa\"><span class=\"dk-home-category__brand-word\">Lattafa</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-linexance\"><span class=\"dk-home-category__brand-word\">Lin Exance</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-elegans\"><span class=\"dk-home-category__brand-word\">Elegans</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-wella\"><span class=\"dk-home-category__brand-word\">Wella</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-black\"><span class=\"dk-home-category__brand-word\">Black Professional</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-xanitalia\"><span class=\"dk-home-category__brand-word\">Xanitalia</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-parisienne\"><span class=\"dk-home-category__brand-word\">Parisienne Italia</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-loreal\"><span class=\"dk-home-category__brand-word\">L\u2019Oreal Pro</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-schwarzkopf\"><span class=\"dk-home-category__brand-word\">Schwarzkopf Pro</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-evelon\"><span class=\"dk-home-category__brand-word\">Evelon Pro</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-lattafa\"><span class=\"dk-home-category__brand-word\">Lattafa</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-sthauer\"><span class=\"dk-home-category__brand-word\">Sthauer</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-linexance\"><span class=\"dk-home-category__brand-word\">Lin Exance</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-elegans\"><span class=\"dk-home-category__brand-word\">Elegans</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-black\"><span class=\"dk-home-category__brand-word\">Black Professional</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-wella\"><span class=\"dk-home-category__brand-word\">Wella</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-parisienne\"><span class=\"dk-home-category__brand-word\">Parisienne Italia</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-xanitalia\"><span class=\"dk-home-category__brand-word\">Xanitalia</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-schwarzkopf\"><span class=\"dk-home-category__brand-word\">Schwarzkopf Pro</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-loreal\"><span class=\"dk-home-category__brand-word\">L\u2019Oreal Pro</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-evelon\"><span class=\"dk-home-category__brand-word\">Evelon Pro</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-sthauer\"><span class=\"dk-home-category__brand-word\">Sthauer</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-lattafa\"><span class=\"dk-home-category__brand-word\">Lattafa</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-linexance\"><span class=\"dk-home-category__brand-word\">Lin Exance</span></span>',\n            '<span class=\"dk-home-category__brand-mark dk-brand-elegans\"><span class=\"dk-home-category__brand-word\">Elegans</span></span>',\n            \"</span>\",\n          ].join(\"\");\n          const marks = media.querySelector(\".dk-home-category__brand-marks\");\n          if (marks) {\n            marks.classList.add(\"dk-home-category__brand-marks--main\");\n          }\n        }\n        if (media) {\n          const marks = media.querySelector(\".dk-home-category__brand-marks\");\n          if (marks && (marks.children.length !== 63 || marks.dataset.dkLayout !== \"symmetry-grid\")) {\n            const brandItems = [\n              [\"black\", \"Black\"],\n              [\"wella\", \"Wella\"],\n              [\"parisienne\", \"Parisienne\"],\n              [\"xanitalia\", \"Xanitalia\"],\n              [\"schwarzkopf\", \"Schwarzkopf\"],\n              [\"loreal\", \"L'Oreal\"],\n              [\"evelon\", \"Evelon\"],\n              [\"sthauer\", \"Sthauer\"],\n              [\"lattafa\", \"Lattafa\"],\n              [\"linexance\", \"Lin Exance\"],\n              [\"elegans\", \"Elegans\"],\n            ];\n            const brandRows = [\n              [0, 4, 1, 5, 1, 4, 0],\n              [7, 3, 6, 8, 6, 3, 7],\n              [2, 10, 9, 5, 9, 10, 2],\n              [4, 1, 0, 3, 0, 1, 4],\n              [8, 6, 7, 5, 7, 6, 8],\n              [10, 2, 9, 1, 9, 2, 10],\n              [0, 4, 1, 5, 1, 4, 0],\n              [7, 3, 6, 8, 6, 3, 7],\n              [2, 10, 9, 5, 9, 10, 2],\n            ];\n            const tiles = brandRows\n              .flatMap((row) => row.map((index) => brandItems[index]))\n              .map(([key, label]) => '<span class=\"dk-home-category__brand-mark dk-brand-' + key + '\"><span class=\"dk-home-category__brand-word\">' + label + \"</span></span>\")\n              .join(\"\");\n            marks.className = \"dk-home-category__brand-marks dk-home-category__brand-marks--main\";\n            marks.dataset.dkLayout = \"symmetry-grid\";\n            marks.innerHTML = tiles;\n            media.querySelectorAll(\".dk-home-category__brand-marks--floor\").forEach((el) => el.remove());\n          }\n        }\n      }\n    }\n\n    const showcase = categoryGrid.closest(\".dk-home-showcase__inner\");\n    if (showcase && !showcase.querySelector(\".dk-home-fragrance\")) {\n      const fragrance = document.createElement(\"div\");\n      fragrance.className = \"dk-home-fragrance\";\n      fragrance.setAttribute(\"aria-label\", \"Parf\u00FCm und Duftsortiment\");\n      fragrance.innerHTML = [\n        \"<div>\",\n        '<span class=\"dk-home-fragrance__kicker\">Duft & Beauty</span>',\n        \"<h3>Parf\u00FCm f\u00FCr Alltag, Geschenkideen und pers\u00F6nliche Lieblingsmomente.</h3>\",\n        \"</div>\",\n        \"<p>Ausgew\u00E4hlte D\u00FCfte sind bei Dr.Kalla ein eigenes Sortiment f\u00FCr Privatkundinnen und Privatkunden. Zum Entdecken, Verschenken oder einfach f\u00FCr dich.</p>\",\n        '<a class=\"dk-home-fragrance__button\" href=\"/collections/parfum\">Parf\u00FCm ansehen</a>',\n      ].join(\"\");\n      categoryGrid.insertAdjacentElement(\"afterend\", fragrance);\n    }\n  }\n\n  function frameBrandWords() {\n    document.querySelectorAll(\".dk-home-category--brand .dk-home-category__media\").forEach((media) => {\n      const rect = media.getBoundingClientRect();\n      if (!rect.width || !rect.height) return;\n      const edge = 1;\n      media.querySelectorAll(\".dk-home-category__brand-mark\").forEach((mark) => {\n        const content = mark.querySelector(\".dk-home-category__brand-word\") || mark.querySelector(\".dk-home-category__brand-logo\");\n        if (!content) return;\n        const contentRect = content.getBoundingClientRect();\n        const intersects =\n          contentRect.right > rect.left &&\n          contentRect.left < rect.right &&\n          contentRect.bottom > rect.top &&\n          contentRect.top < rect.bottom;\n        const contentInside =\n          contentRect.left >= rect.left + edge &&\n          contentRect.right <= rect.right - edge &&\n          contentRect.top >= rect.top + edge &&\n          contentRect.bottom <= rect.bottom - edge;\n        mark.classList.toggle(\"dk-brand-edge\", intersects && !contentInside);\n      });\n    });\n  }\n\n  function orderHomepageSections() {\n    if (!document.body.classList.contains(\"dk-index-page\")) return;\n\n    document.querySelectorAll('[id$=\"__dk_home_shop_paths\"]').forEach((section) => section.remove());\n\n    const hairAnalysis = document.querySelector('[id$=\"__dk_hair_analysis\"]');\n    const showcase = document.querySelector('[id$=\"__dk_home_showcase\"]');\n    const bestseller = document.querySelector('[id*=\"__99a8105b-0068-4986-bb78-1be9b5381f1b\"]');\n    if (!hairAnalysis || !showcase || !bestseller) return;\n\n    const parent = hairAnalysis.parentElement;\n    if (!parent || showcase.parentElement !== parent || bestseller.parentElement !== parent) {\n      return;\n    }\n\n    let anchor = hairAnalysis;\n    for (const section of [showcase, bestseller]) {\n      if (section.previousElementSibling !== anchor) {\n        anchor.insertAdjacentElement(\"afterend\", section);\n      }\n      anchor = section;\n    }\n  }\n\n  function getProfiPriceBlocks() {\n    return Array.from(document.querySelectorAll(\"[data-drkalla-profi-price]\")).filter(\n      (el) => el instanceof HTMLElement,\n    );\n  }\n\n  function getProfiProductIds(blocks) {\n    return Array.from(\n      new Set(\n        blocks\n          .map((block) => block.getAttribute(\"data-profi-product-id\"))\n          .filter((value) => value && /^\\d+$/.test(value)),\n      ),\n    );\n  }\n\n  function getProfiVariantIds(blocks) {\n    return Array.from(\n      new Set(\n        blocks\n          .map((block) => block.getAttribute(\"data-profi-variant-id\"))\n          .filter((value) => value && /^\\d+$/.test(value)),\n      ),\n    );\n  }\n\n  function fetchProfiStatus(force, productIds, variantIds) {\n    const now = Date.now();\n    const productKey = (productIds || []).slice().sort().join(\",\");\n    const variantKey = (variantIds || []).slice().sort().join(\",\");\n    const key = `${productKey}|${variantKey}`;\n    if (!force && profiStatusCache && profiStatusCacheKey === key && now - profiStatusCacheAt < 45000) {\n      return Promise.resolve(profiStatusCache);\n    }\n    if (!force && profiStatusPromise) return profiStatusPromise;\n\n    const statusUrl = new URL(\"/apps/drkalla-profi/status\", window.location.origin);\n    if (productKey) statusUrl.searchParams.set(\"product_ids\", productKey);\n    if (variantKey) statusUrl.searchParams.set(\"variant_ids\", variantKey);\n\n    profiStatusPromise = fetch(statusUrl.toString(), {\n      headers: { Accept: \"application/json\" },\n      credentials: \"same-origin\",\n      cache: \"no-store\",\n    })\n      .then((response) => (response.ok ? response.json() : null))\n      .then((status) => {\n        profiStatusCache = status || { authenticated: false, profi: false, enabled: false };\n        profiStatusCacheKey = key;\n        profiStatusCacheAt = Date.now();\n        return profiStatusCache;\n      })\n      .catch(() => {\n        profiStatusCache = { authenticated: false, profi: false, enabled: false };\n        profiStatusCacheKey = key;\n        profiStatusCacheAt = Date.now();\n        return profiStatusCache;\n      })\n      .finally(() => {\n        profiStatusPromise = null;\n      });\n\n    return profiStatusPromise;\n  }\n\n  function applyProfiStatus(status) {\n    const blocks = getProfiPriceBlocks();\n    if (!blocks.length) return;\n\n    const active = Boolean(status && status.enabled && status.profi);\n    const productIdsWithPrice = new Set((status?.profiProductIds || []).map(String));\n    const variantIdsWithPrice = new Set((status?.profiVariantIds || []).map(String));\n    const pricesByProductId = status?.profiPricesByProductId || {};\n    const pricesByVariantId = status?.profiPricesByVariantId || {};\n    document.body.classList.toggle(\"dk-profi-customer\", active);\n\n    for (const block of blocks) {\n      const liquidActive = block.getAttribute(\"data-profi-liquid-active\") === \"true\";\n      const productId = block.getAttribute(\"data-profi-product-id\");\n      const variantId = block.getAttribute(\"data-profi-variant-id\");\n      const serverHasPrice = productId && productIdsWithPrice.has(productId);\n      const serverVariantHasPrice = variantId && variantIdsWithPrice.has(variantId);\n      const shouldShow = liquidActive || (active && (serverVariantHasPrice || serverHasPrice));\n      block.hidden = true;\n      block.classList.toggle(\"is-profi-active\", shouldShow);\n      if (!shouldShow) {\n        block.remove();\n        continue;\n      }\n\n      let grossCents = Number(\n        (variantId ? pricesByVariantId[variantId] : 0) ||\n        (productId ? pricesByProductId[productId] : 0) ||\n        block.getAttribute(\"data-profi-price-cents\"),\n      );\n      if (!Number.isSafeInteger(grossCents) || grossCents <= 0) continue;\n      const retailCents = Number(block.getAttribute(\"data-profi-retail-cents\"));\n      if (Number.isSafeInteger(retailCents) && retailCents >= 0 && block.getAttribute(\"data-profi-retail-cents\") !== null) {\n        grossCents = Math.min(grossCents, retailCents);\n      }\n      const net = block.getAttribute(\"data-profi-net\") === \"true\";\n      const displayCents = net ? Math.round(grossCents * 100 / 119) : grossCents;\n      const netLabel = document.documentElement.lang?.startsWith(\"de\") ? \" netto\" : \" net\";\n      replaceVisiblePrice(block, formatCents(displayCents) + (net ? netLabel : \"\"));\n      const priceRoot = block.closest(\".price\");\n      let taxNote = priceRoot?.querySelector(\":scope > [data-dk-tax-note]\");\n      if (!taxNote && priceRoot && block.querySelector(\"[data-dk-tax-note]\")) {\n        taxNote = block.querySelector(\"[data-dk-tax-note]\").cloneNode(true);\n        priceRoot.appendChild(taxNote);\n      }\n      const grossLabel = taxNote?.querySelector(\"[data-dk-gross-price]\");\n      if (net && grossLabel) {\n        const suffix = document.documentElement.lang?.startsWith(\"de\") ? \" brutto\" : \" incl. VAT\";\n        grossLabel.textContent = formatCents(grossCents) + suffix;\n      }\n    }\n  }\n\n  function replaceVisiblePrice(sourceBlock, priceHtml) {\n    if (!priceHtml) return;\n\n    const priceRoot = sourceBlock.closest(\".price\");\n    if (!priceRoot) return;\n\n    priceRoot.classList.add(\"price--drkalla-profi\");\n    priceRoot.classList.remove(\"price--on-sale\", \"price--no-compare\");\n    priceRoot.querySelectorAll(\".price__sale s, .price__badge-sale\").forEach((el) => {\n      el.setAttribute(\"hidden\", \"\");\n    });\n\n    const target =\n      priceRoot.querySelector(\".price__regular .price-item--regular:not(.variant-item__old-price)\") ||\n      priceRoot.querySelector(\".price__sale .price-item--sale.price-item--last\") ||\n      priceRoot.querySelector(\".price-item\");\n    if (target) target.innerHTML = priceHtml;\n\n    if (!priceRoot.querySelector(\".drkalla-profi-inline-label\")) {\n      const label = document.createElement(\"span\");\n      label.className = \"drkalla-profi-inline-label\";\n      label.textContent = \"Profi-Preis\";\n      const container = priceRoot.querySelector(\".price__container\") || priceRoot;\n      container.insertAdjacentElement(\"afterbegin\", label);\n    }\n  }\n\n  function formatCents(value) {\n    const cents = Number(value);\n    if (!Number.isFinite(cents) || cents < 0) return \"\";\n    try {\n      return new Intl.NumberFormat(document.documentElement.lang || \"de-DE\", {\n        style: \"currency\",\n        currency: window.Shopify?.currency?.active || \"EUR\",\n      }).format(cents / 100);\n    } catch {\n      return \"\";\n    }\n  }\n\n  function updateProfiPricing(force) {\n    const blocks = getProfiPriceBlocks();\n    if (!blocks.length) return;\n    fetchProfiStatus(force, getProfiProductIds(blocks), getProfiVariantIds(blocks)).then(applyProfiStatus);\n  }\n\n  function primeAccountComponentRefresh() {\n    document.querySelectorAll(\"shopify-account\").forEach((account) => {\n      if (account.getAttribute(\"data-dk-profi-bound\") === \"true\") return;\n      account.setAttribute(\"data-dk-profi-bound\", \"true\");\n      account.addEventListener(\"click\", () => {\n        window.setTimeout(() => updateProfiPricing(true), 1800);\n        window.setTimeout(() => updateProfiPricing(true), 5200);\n      });\n    });\n  }\n\n  function fitAboutVideoPoster() {\n    document.querySelectorAll(\".dk-about-page__media .deferred-media__poster img\").forEach((image) => {\n      image.style.width = \"100%\";\n      image.style.height = \"100%\";\n      image.style.objectFit = \"contain\";\n      image.style.objectPosition = \"center\";\n    });\n  }\n\n  function upgradeBrandLogoStrip() {\n    const section = document.querySelector(\".dk-brand-logo-strip\");\n    if (!section || section.querySelector(\".dk-brand-logo-strip__track\")) return;\n\n    const seen = new Set();\n    const brands = Array.from(section.querySelectorAll(\".dk-brand-logo-strip__item\")).reduce((items, item) => {\n      const image = item.querySelector(\"img\");\n      const label = image?.getAttribute(\"alt\")?.trim();\n      const src = image?.currentSrc || image?.getAttribute(\"src\");\n      const href = item.getAttribute(\"href\");\n      if (!label || !src || seen.has(label)) return items;\n      seen.add(label);\n      items.push({\n        label,\n        src,\n        href,\n        className: Array.from(item.classList).filter((className) => className.startsWith(\"dk-brand-logo-strip__item--\")).join(\" \"),\n      });\n      return items;\n    }, []);\n\n    if (brands.length < 2) return;\n\n    let style = document.getElementById(\"dk-brand-logo-marquee-runtime-style\");\n    if (!style) {\n      style = document.createElement(\"style\");\n      style.id = \"dk-brand-logo-marquee-runtime-style\";\n      style.textContent = `\n        .dk-brand-logo-strip{overflow:hidden!important;background:radial-gradient(circle at 18% 50%,rgba(211,189,136,.22),rgba(211,189,136,0) 28%),radial-gradient(circle at 78% 50%,rgba(168,145,98,.16),rgba(168,145,98,0) 24%),linear-gradient(180deg,#fff 0%,#fbfaf7 46%,#f5f1e8 100%)!important;color:#171512!important;border-top:1px solid rgba(168,145,98,.28)!important;border-bottom:1px solid rgba(168,145,98,.22)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.9),inset 0 -1px 0 rgba(168,145,98,.12)!important;padding:0!important}\n        .dk-brand-logo-strip__inner{min-height:clamp(5.9rem,5.6vw,7.4rem)!important;display:flex!important;align-items:center!important;width:min(100%,160rem)!important;margin:0 auto!important;padding-inline:clamp(.6rem,1.4vw,1.8rem)!important}\n        .dk-brand-logo-strip__viewport{position:relative!important;flex:1 1 auto!important;min-width:0!important;overflow:hidden!important;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 5.5rem,#000 calc(100% - 5.5rem),transparent 100%)!important;mask-image:linear-gradient(90deg,transparent 0,#000 5.5rem,#000 calc(100% - 5.5rem),transparent 100%)!important}\n        .dk-brand-logo-strip__track{display:flex!important;align-items:center!important;width:max-content!important;animation:dk-brand-logo-marquee 36s linear infinite!important;will-change:transform!important}\n        .dk-brand-logo-strip__group{display:flex!important;align-items:center!important;gap:clamp(2.8rem,4.2vw,6.4rem)!important;padding-right:clamp(2.8rem,4.2vw,6.4rem)!important}\n        .dk-brand-logo-strip__item{flex:0 0 auto!important;min-width:clamp(10.8rem,11vw,15.4rem)!important;height:clamp(4.8rem,4.5vw,5.9rem)!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;color:inherit!important;text-decoration:none!important;opacity:.88!important}\n        .dk-brand-logo-strip__item[href]:hover{opacity:1!important}\n        .dk-brand-logo-strip__logo{display:block!important;width:auto!important;max-width:100%!important;height:auto!important;max-height:clamp(3.5rem,3.45vw,5rem)!important;object-fit:contain!important;filter:drop-shadow(0 .7rem 1.2rem rgba(23,21,18,.08))!important}\n        .dk-brand-logo-strip__item--black-professional-line{min-width:clamp(15.2rem,15.2vw,19.6rem)!important}\n        .dk-brand-logo-strip__item--black-professional-line .dk-brand-logo-strip__logo{max-height:clamp(4.7rem,4.8vw,6.5rem)!important}\n        .dk-brand-logo-strip__item--schwarzkopf-professional{min-width:clamp(13.4rem,13vw,17rem)!important}\n        .dk-brand-logo-strip__item--schwarzkopf-professional .dk-brand-logo-strip__logo,.dk-brand-logo-strip__item--lattafa .dk-brand-logo-strip__logo{max-height:clamp(4.9rem,4.6vw,6.4rem)!important}\n        @keyframes dk-brand-logo-marquee{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}\n        @media screen and (max-width:749px){.dk-brand-logo-strip__inner{min-height:6rem!important;padding-inline:0!important}.dk-brand-logo-strip__viewport{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 2.2rem,#000 calc(100% - 2.2rem),transparent 100%)!important;mask-image:linear-gradient(90deg,transparent 0,#000 2.2rem,#000 calc(100% - 2.2rem),transparent 100%)!important}.dk-brand-logo-strip__track{animation-duration:28s!important}.dk-brand-logo-strip__group{gap:2.6rem!important;padding-right:2.6rem!important}.dk-brand-logo-strip__item{min-width:11.8rem!important;height:5.1rem!important}}\n      `;\n      document.head.appendChild(style);\n    }\n\n    const renderItem = (brand, duplicate) => {\n      const tag = brand.href && !duplicate ? \"a\" : \"span\";\n      const href = brand.href && !duplicate ? ` href=\"${brand.href}\" aria-label=\"${brand.label} ansehen\"` : \"\";\n      const ariaHidden = duplicate ? ' aria-hidden=\"true\"' : \"\";\n      return `<${tag} class=\"dk-brand-logo-strip__item ${brand.className}\"${href}${ariaHidden}><img class=\"dk-brand-logo-strip__logo\" src=\"${brand.src}\" alt=\"${brand.label}\" loading=\"eager\" decoding=\"async\" width=\"420\" height=\"170\"></${tag}>`;\n    };\n\n    section.innerHTML = `<div class=\"dk-brand-logo-strip__inner\"><div class=\"dk-brand-logo-strip__viewport\"><div class=\"dk-brand-logo-strip__track\"><div class=\"dk-brand-logo-strip__group\">${brands.map((brand) => renderItem(brand, false)).join(\"\")}</div><div class=\"dk-brand-logo-strip__group\" aria-hidden=\"true\">${brands.map((brand) => renderItem(brand, true)).join(\"\")}</div></div></div></div>`;\n  }\n\n  function run() {\n    classifyDialogs();\n    fixConsentLinks();\n    ensureProductCardTitleIntegrity();\n    updateProductGallerySticky();\n    repairGermanPopupCopy();\n    if (!staticEnhancementsDone) {\n      orderHomepageSections();\n      repairHomepageShowcase();\n      upgradeBrandLogoStrip();\n      fitAboutVideoPoster();\n      staticEnhancementsDone = true;\n      window.requestAnimationFrame(frameBrandWords);\n    }\n    updateProfiPricing(false);\n    primeAccountComponentRefresh();\n  }\n\n  function scheduleRun() {\n    if (scheduled) return;\n    scheduled = true;\n    window.requestAnimationFrame(() => {\n      scheduled = false;\n      run();\n    });\n  }\n\n  let galleryUpdateScheduled = false;\n  function scheduleGalleryUpdate() {\n    if (window.location.pathname.indexOf(\"/products/\") !== 0) return;\n    if (galleryUpdateScheduled) return;\n    galleryUpdateScheduled = true;\n    window.requestAnimationFrame(() => {\n      galleryUpdateScheduled = false;\n      updateProductGallerySticky();\n      updateStickyAtc();\n    });\n  }\n\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", run, { once: true });\n  } else {\n    run();\n  }\n\n  const observer = new MutationObserver((records) => {\n    for (const record of records) {\n      if (record.type === \"childList\") {\n        const addedNodes = Array.from(record.addedNodes || []);\n        if (\n          addedNodes.some(\n            (node) =>\n              node instanceof HTMLElement &&\n              (node.matches(`${COOKIE_ROOT_SELECTOR}, #dkRabattPopup, .dk-rpopup, .klaviyo-form, [class*=\"klaviyo\"], [id*=\"klaviyo\"], .samitaWS-container`) ||\n                node.querySelector(`${COOKIE_ROOT_SELECTOR}, #dkRabattPopup, .dk-rpopup, .klaviyo-form, [class*=\"klaviyo\"], [id*=\"klaviyo\"], .samitaWS-container`)),\n          )\n        ) {\n          scheduleRun();\n          return;\n        }\n      } else if (\n        record.type === \"characterData\" &&\n        record.target.parentElement?.closest(\".samitaWS-container, .klaviyo-form, #shopify-pc__banner\")\n      ) {\n        scheduleRun();\n        return;\n      }\n    }\n  });\n  observer.observe(document.documentElement, { childList: true, subtree: true, characterData: true });\n\n  [900, 2400].forEach((delay) => window.setTimeout(scheduleRun, delay));\n  window.addEventListener(\"scroll\", scheduleGalleryUpdate, { passive: true });\n  window.addEventListener(\"resize\", scheduleGalleryUpdate, { passive: true });\n  window.addEventListener(\"focus\", () => updateProfiPricing(true));\n  window.addEventListener(\"pageshow\", scheduleRun);\n})();\n"],
  "mappings": "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",
  "names": []
}
