{"time":"2026-05-24T10:36:44.614Z","specifics":"<script>\n\n(function(){\ntry{\n/** file: addFreshNativeFunctions.js */\n\"use strict\";\n\nconst originalSetInterval = window.setInterval;\nconst originalSetTimeout = window.setTimeout;\nconst originalClearInterval = window.clearInterval;\nconst originalClearTimeout = window.clearTimeout;\nlet setInterval = originalSetInterval;\nlet setTimeout = originalSetTimeout;\nlet clearIntervalNative = originalClearInterval;\nlet clearTimeoutNative = originalClearTimeout;\nif (!originalSetInterval.toString().includes(\"[native code]\") || !originalSetTimeout.toString().includes(\"[native code]\") || !originalClearInterval.toString().includes(\"[native code]\") || !originalClearTimeout.toString().includes(\"[native code]\")) {\n  const iframe = document.createElement(\"iframe\");\n  Object.assign(iframe.style, {\n    position: \"fixed\",\n    width: \"1px\",\n    height: \"1px\",\n    border: \"none\",\n    top: \"-10px\",\n    left: \"-10px\",\n    visibility: \"hidden\",\n    pointerEvents: \"none\"\n  });\n  iframe.setAttribute(\"role\", \"presentation\");\n  iframe.setAttribute(\"sandbox\", \"allow-same-origin\");\n  document.body.appendChild(iframe);\n  iframe.src = \"about:blank\";\n  iframe.onload = () => {\n    const iframeWindow = iframe.contentWindow;\n    if (iframeWindow) {\n      if (!originalSetInterval.toString().includes(\"[native code]\") && iframeWindow.setInterval) {\n        setInterval = iframeWindow.setInterval.bind(iframeWindow);\n      }\n      if (!originalSetTimeout.toString().includes(\"[native code]\") && iframeWindow.setTimeout) {\n        setTimeout = iframeWindow.setTimeout.bind(iframeWindow);\n      }\n      if (!originalClearInterval.toString().includes(\"[native code]\") && iframeWindow.clearInterval) {\n        clearIntervalNative = iframeWindow.clearInterval.bind(iframeWindow);\n      }\n      if (!originalClearTimeout.toString().includes(\"[native code]\") && iframeWindow.clearTimeout) {\n        clearTimeoutNative = iframeWindow.clearTimeout.bind(iframeWindow);\n      }\n    }\n  };\n}\n/** file: addSearchboxInstructions.js */\n\"use strict\";\n\nfunction addSearchboxInstructions(searchInput) {\n  let announcementMessage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"Results or suggestions will be displayed as they become available. Continue navigating to access them.\";\n  const newSpan = createSrOnlyElement();\n  newSpan.id = \"instructions\";\n  newSpan.textContent = announcementMessage;\n  searchInput.insertAdjacentElement(\"afterend\", newSpan);\n  searchInput.setAttribute(\"aria-describedby\", \"instructions\");\n}\n/** file: applyMenuAttributes.js */\n\"use strict\";\n\nfunction applyMenuAttributes(menu) {\n  menu.setAttribute(\"data-acsb-m-menu\", \"ul\");\n  menu.setAttribute(\"data-acsb-fake-menu\", \"true\");\n}\n/** file: applyMenuItemAttributes.js */\n\"use strict\";\n\nfunction applyMenuItemAttributes(menuItem) {\n  let {\n    alternativeMenu = true\n  } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  if (alternativeMenu) {\n    forceAlternativeDropdown(menuItem);\n  }\n  menuItem.setAttribute(\"role\", \"menuitem\");\n  menuItem.setAttribute(\"data-acsb-menu-root\", \"true\");\n  menuItem.setAttribute(\"data-acsb-m-menu\", \"li\");\n  menuItem.setAttribute(\"data-acsb-menu\", \"li\");\n  menuItem.setAttribute(\"data-acsb-dropdown-container\", \"true\");\n}\n/** file: chatButtonAccessible.js */\n\"use strict\";\n\nfunction accessChatButton(iframe, skipLinks) {\n  let chatButtonSelector = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"\";\n  let chatButtonTabHandler = arguments.length > 3 ? arguments[3] : undefined;\n  const iframeDocument = iframe.contentDocument || iframe.contentWindow.document;\n  const chatButton = iframeDocument.querySelector(\"\".concat(chatButtonSelector ? chatButtonSelector : \"#mountHere\", \" button\"));\n  const skipLinksContainer = skipLinks.shadowRoot.querySelector(\".skip-links\");\n  const skipLink = skipLinksContainer.querySelector(\"div\");\n  const clone = skipLink.cloneNode(true);\n  const link = clone.querySelector(\"a\");\n  link.addEventListener(\"keydown\", event => {\n    if (event.key === \"Enter\") {\n      chatButton.focus();\n      chatButton.setAttribute(\"data-acsb-focused\", \"true\");\n      chatButton.style.borderColor = \"#639af9\";\n    }\n  });\n  link.addEventListener(\"click\", () => {\n    chatButton.focus();\n    chatButton.setAttribute(\"data-acsb-focused\", \"true\");\n    chatButton.style.borderColor = \"#639af9\";\n  });\n  if (chatButtonTabHandler) {\n    chatButton.addEventListener(\"keydown\", event => {\n      if (event.code === \"Tab\" && !event.shiftKey) {\n        event.preventDefault();\n        chatButtonTabHandler();\n      }\n    });\n  }\n  link.childNodes[0].textContent = \"Skip to Chat\";\n  link.href = chatButtonSelector ? chatButtonSelector : \"#gorgias-chat-container\";\n  skipLinksContainer.appendChild(clone);\n}\n/** file: connectMenuToMenuItem.js */\n\"use strict\";\n\nfunction connectMenuToMenuItem(_ref) {\n  let {\n    menuItem,\n    menu,\n    applyWrappingMenuItem = false,\n    alternativeMenu = true,\n    removeOriginalMenu = true\n  } = _ref;\n  let currentMenuItem = menuItem;\n  if (applyWrappingMenuItem) {\n    currentMenuItem = wrappMenuItem(menuItem);\n  }\n  const clonedMenu = menu.cloneNode(true);\n  currentMenuItem.appendChild(clonedMenu);\n  applyMenuItemAttributes(currentMenuItem, {\n    alternativeMenu\n  });\n  if (removeOriginalMenu) {\n    menu.remove();\n  }\n  return clonedMenu;\n}\nfunction wrappMenuItem(menuItem) {\n  const div = document.createElement(\"div\");\n  menuItem.before(div);\n  const clonedMenuItem = menuItem.cloneNode(true);\n  div.appendChild(clonedMenuItem);\n  menuItem.remove();\n  applyMenuItemAttributes(div);\n  return div;\n}\nfunction forceAlternativeDropdown(listItem) {\n  const fakeMenu1 = document.createElement(\"div\");\n  const fakeMenu2 = document.createElement(\"div\");\n  fakeMenu1.setAttribute(\"data-acsb-menu\", \"ul\");\n  fakeMenu2.setAttribute(\"data-acsb-menu\", \"ul\");\n  listItem.appendChild(fakeMenu1);\n  listItem.appendChild(fakeMenu2);\n}\n/** file: createLiveRegion.js */\n\"use strict\";\n\nfunction createLiveRegion(ariaLive, container) {\n  const span = document.createElement(\"span\");\n  span.className = \"acsb-sr-only\";\n  span.setAttribute(\"data-acsb-force-visible\", \"true\");\n  if (ariaLive) {\n    span.setAttribute(\"aria-live\", ariaLive);\n  }\n  if (container) {\n    container.append(span);\n  }\n  return span;\n}\n/** file: createSrOnlyElement.js */\n\"use strict\";\n\nfunction createSrOnlyElement() {\n  const srOnlyElement = document.createElement(\"span\");\n  srOnlyElement.style.position = \"absolute\";\n  srOnlyElement.style.width = \"1px\";\n  srOnlyElement.style.height = \"1px\";\n  srOnlyElement.style.padding = \"0\";\n  srOnlyElement.setAttribute(\"data-acsb-force-visible\", \"true\");\n  srOnlyElement.style.margin = \"-1px\";\n  srOnlyElement.style.overflow = \"hidden\";\n  srOnlyElement.style.clip = \"rect(0, 0, 0, 0)\";\n  srOnlyElement.style.whiteSpace = \"nowrap\";\n  srOnlyElement.style.borderWidth = \"0\";\n  srOnlyElement.setAttribute(\"data-acsb-force-visible\", \"true\");\n  return srOnlyElement;\n}\n/** file: forceNavigable.js */\n\"use strict\";\n\nfunction forceNavigable(element) {\n  element.setAttribute(\"data-acsb-now-navigable\", \"true\");\n  element.setAttribute(\"data-acsb-navigable\", \"true\");\n  element.setAttribute(\"data-acsb-force-navigable\", \"true\");\n  element.setAttribute(\"tabindex\", \"0\");\n}\n/** file: forceUnnavigable.js */\n\"use strict\";\n\nfunction forceUnnavigable(el) {\n  el.setAttribute(\"tabindex\", \"-1\");\n  el.setAttribute(\"data-acsb-force-unnavigable\", \"true\");\n  el.setAttribute(\"data-acsb-navigable\", \"false\");\n  el.setAttribute(\"data-acsb-now-navigable\", \"false\");\n}\n/** file: isMobile.js */\n\"use strict\";\n\nfunction isMobile() {\n  var _navigator, _window, _navigator2, _navigator3;\n  const userAgent = navigator.userAgent || ((_navigator = navigator) === null || _navigator === void 0 ? void 0 : _navigator.vendor) || ((_window = window) === null || _window === void 0 ? void 0 : _window.opera);\n  const isMobileUserAgent = /android|iphone|ipad|ipod|blackberry|bb|playbook|iemobile|opera mini|webos|windows phone/i.test(userAgent);\n  const hasTouchSupport = \"ontouchstart\" in window || navigator.maxTouchPoints && navigator.maxTouchPoints > 0 || ((_navigator2 = navigator) === null || _navigator2 === void 0 ? void 0 : _navigator2.msMaxTouchPoints) && ((_navigator3 = navigator) === null || _navigator3 === void 0 ? void 0 : _navigator3.msMaxTouchPoints) > 0;\n  const isSmallScreen = window.matchMedia(\"(max-width: 768px)\").matches;\n  const isPortrait = window.matchMedia(\"(orientation: portrait)\").matches;\n  const isCoarsePointer = window.matchMedia(\"(pointer: coarse)\").matches;\n  const noHover = window.matchMedia(\"(hover: none)\").matches;\n  const likelyMobile = isMobileUserAgent || hasTouchSupport && (isSmallScreen || isPortrait) || isCoarsePointer || noHover;\n  return likelyMobile;\n}\n/** file: profileEnabledInterval.js */\n\"use strict\";\n\nfunction profileEnabledInterval(profile, cb) {\n  let {\n    interval = 1000,\n    clearAfterTimeout = true,\n    timeout = 15000\n  } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  const intervalId = setInterval(() => {\n    var _acsbState$actions;\n    const acsbState = JSON.parse(localStorage.acsbState || \"{}\");\n    if (acsbState !== null && acsbState !== void 0 && (_acsbState$actions = acsbState.actions) !== null && _acsbState$actions !== void 0 && (_acsbState$actions = _acsbState$actions[profile]) !== null && _acsbState$actions !== void 0 && _acsbState$actions.enabled) {\n      try {\n        const shouldClear = cb();\n        if (shouldClear) {\n          clearInterval(intervalId);\n        }\n      } catch (error) {\n        clearInterval(intervalId);\n        window.dispatchEvent(new CustomEvent(\"acsbWidgetSpecificsError\", {\n          detail: error\n        }));\n      }\n    }\n  }, interval);\n  if (clearAfterTimeout) {\n    setTimeout(() => {\n      clearInterval(intervalId);\n    }, timeout);\n  }\n}\n\n/** file: add-to-cart-success-message-announcement.js */\n(function(){\ntry{\n\"use strict\";\n\nif (window.location.pathname.includes(\"/gl/shop\")) {\n  profileEnabledInterval(\"accessMode\", () => {\n    const addToCartButtons = document.querySelectorAll(\".product-details .product-desc-layout button.btn, .product-details .configurable-options button.btn\");\n    const successMessageContainer = document.querySelector(\".product-details .inline-notification\");\n    if (addToCartButtons.length && successMessageContainer) {\n      addToCartButtons.forEach(addToCartButton => {\n        addToCartButton.addEventListener(\"keydown\", event => {\n          if (event.code === \"Enter\" || event.code === \"Space\") {\n            const successMessageObserver = new MutationObserver(mutations => {\n              mutations.forEach(mutation => {\n                mutation.addedNodes.forEach(node => {\n                  if (node.nodeType === Node.ELEMENT_NODE && node.classList.contains(\"inline-notification__content-wrapper\")) {\n                    setTimeout(() => {\n                      successMessageContainer.setAttribute(\"tabindex\", \"-1\");\n                      successMessageContainer.focus();\n                      successMessageObserver.disconnect();\n                    }, 1000);\n                  }\n                });\n              });\n            });\n            setTimeout(() => {\n              successMessageObserver.disconnect();\n            }, 10000);\n            successMessageObserver.observe(successMessageContainer, {\n              childList: true,\n              subtree: true\n            });\n          }\n        });\n      });\n      return true;\n    }\n  });\n}\n}catch(ex){}\n})();\n/** file: become-a-member-control.js */\n(function(){\ntry{\n\"use strict\";\n\nprofileEnabledInterval(\"accessMode\", () => {\n  const memberControl = document.querySelector(\".nav-cmp__logo-bar__know-more .button a\");\n  if (memberControl) {\n    memberControl.removeAttribute(\"role\", \"button\");\n    memberControl.removeAttribute(\"aria-label\");\n    const observer = new MutationObserver(() => {\n      if (memberControl.getAttribute(\"role\") === \"button\") {\n        memberControl.removeAttribute(\"role\", \"button\");\n      }\n      if (memberControl.getAttribute(\"aria-label\") === \"Become a Member\") {\n        memberControl.removeAttribute(\"aria-label\");\n      }\n    });\n    observer.observe(memberControl, {\n      attributes: true,\n      attributeFilter: [\"role\", \"aria-label\"]\n    });\n    return true;\n  }\n});\n}catch(ex){}\n})();\n/** file: cart-control-and-dialog-accessibility.js */\n(function(){\ntry{\n\"use strict\";\n\nwindow.accessWidgetSpecificsOptions = {\n  enable: true,\n  disableLegacy: {\n    processForms: true\n  },\n  modifications: {\n    classifier: [{\n      type: \"ignore\",\n      selector: \"header .shop-header-cart\"\n    }, {\n      type: \"ignore\",\n      selector: \".left-navigation nav.left-navigation-container\"\n    }, {\n      type: \"ignore\",\n      selector: \".shop-accordion__panel\"\n    }, {\n      type: \"ignore\",\n      selector: \"header .nav-wrapper .brand-bar-wrapper\"\n    }]\n  }\n};\nif (window.location.pathname.includes(\"/gl/shop\")) {\n  profileEnabledInterval(\"accessMode\", () => {\n    const cartButtonContainer = document.querySelector(\"header .shop-header-cart\");\n    if (cartButtonContainer) {\n      cartButtonContainer.removeAttribute(\"role\");\n      cartButtonContainer.removeAttribute(\"aria-label\");\n      const cartButton = cartButtonContainer.querySelector(\"button.shop-header__cart\");\n      if (cartButton) {\n        var _cartButtonContainer$;\n        cartButton.removeAttribute(\"tabindex\");\n        cartButton.setAttribute(\"aria-expanded\", \"false\");\n        cartButton.setAttribute(\"aria-haspopup\", \"dialog\");\n        let label = \"Cart\";\n        const itemCount = (_cartButtonContainer$ = cartButtonContainer.querySelector(\".shop-header__cart--count\")) === null || _cartButtonContainer$ === void 0 || (_cartButtonContainer$ = _cartButtonContainer$.textContent) === null || _cartButtonContainer$ === void 0 ? void 0 : _cartButtonContainer$.trim();\n        if (itemCount) {\n          label += \", \".concat(itemCount, \" item\").concat(Number(itemCount) > 1 ? \"s\" : \"\");\n        }\n        cartButton.setAttribute(\"aria-label\", label);\n        const cartButtonContainerObserver = new MutationObserver(mutations => {\n          mutations.forEach(mutation => {\n            const target = mutation.target;\n            if (mutation.type === \"childList\") {\n              mutation.addedNodes.forEach(node => {\n                if (node.nodeType === Node.ELEMENT_NODE && node.classList.contains(\"mini-cart-popup-container\")) {\n                  node.setAttribute(\"role\", \"dialog\");\n                  node.setAttribute(\"aria-label\", \"Cart\");\n                  node.addEventListener(\"keydown\", event => {\n                    if (event.code === \"Escape\") {\n                      setTimeout(() => {\n                        cartButton.focus();\n                      }, 200);\n                    }\n                  });\n                  cartButton.setAttribute(\"aria-expanded\", \"true\");\n                  const checkoutLink = node.querySelector(\".mini-cart-popup-container__checkout-btn button\");\n                  if (checkoutLink) {\n                    checkoutLink.setAttribute(\"role\", \"link\");\n                  }\n                }\n                if (node.classList.contains(\"shop-header__cart--count\")) {\n                  setTimeout(() => {\n                    setLabel(node, cartButton);\n                  }, 100);\n                }\n              });\n              mutation.removedNodes.forEach(node => {\n                if (node.nodeType === Node.ELEMENT_NODE && node.classList.contains(\"mini-cart-popup-container\")) {\n                  cartButton.setAttribute(\"aria-expanded\", \"false\");\n                }\n              });\n            }\n            if (mutation.type === \"characterData\" && target.parentElement.classList.contains(\"shop-header__cart--count\")) {\n              setLabel(target.parentElement, cartButton);\n            }\n            if (mutation.type === \"attributes\" && mutation.attributeName === \"tabindex\" && target === cartButton) {\n              if (target.hasAttribute(\"tabindex\")) {\n                target.removeAttribute(\"tabindex\");\n              }\n            }\n          });\n        });\n        cartButtonContainerObserver.observe(cartButtonContainer, {\n          attributes: true,\n          attributeFilter: [\"tabindex\"],\n          childList: true,\n          subtree: true,\n          characterData: true\n        });\n        function setLabel(elementWithCount, button) {\n          const newItemCount = elementWithCount.textContent.trim();\n          let newLabel = \"Cart\";\n          if (newItemCount) {\n            newLabel += \", \".concat(newItemCount, \" item\").concat(Number(newItemCount) > 1 ? \"s\" : \"\");\n          }\n          button.setAttribute(\"aria-label\", newLabel);\n        }\n      }\n      return true;\n    }\n  });\n}\nAJS.events.on(window, \"acsbActionEnabling\", function (e) {\n  if (e.detail.action === \"keyNav\") {\n    const cartButtonContainer = document.querySelector(\"header .shop-header-cart\");\n    if (cartButtonContainer) {\n      cartButtonContainer.setAttribute(\"data-acsb\", \"\");\n    }\n  }\n});\n}catch(ex){}\n})();\n/** file: header-tab-navigation-fix.js */\n(function(){\ntry{\n\"use strict\";\n\nprofileEnabledInterval(\"accessMode\", () => {\n  const languageSelectorButton = document.querySelector(\"header .brand-bar-wrapper .nav-cmp__utility-list .mbl-list-item a.language-block\");\n  const languageSelectorList = document.querySelector(\"header .brand-bar-wrapper #language-menu\");\n  if (languageSelectorButton && languageSelectorList) {\n    var _languageSelectorButt;\n    const listItems = languageSelectorList.querySelectorAll(\"li > a\");\n    listItems.forEach(item => {\n      item.removeAttribute(\"role\");\n      const label = item.textContent.trim();\n      if (label) {\n        item.setAttribute(\"aria-label\", label);\n        if (item.parentElement.classList.contains(\"cmp-languagenavigation__item--active\")) {\n          item.setAttribute(\"aria-current\", \"true\");\n        } else {\n          item.removeAttribute(\"aria-current\");\n        }\n      }\n    });\n    const languageSelectorButtonLabel = (_languageSelectorButt = languageSelectorButton.querySelector(\"span.utility-item-title\")) === null || _languageSelectorButt === void 0 ? void 0 : _languageSelectorButt.textContent.trim();\n    if (languageSelectorButtonLabel) {\n      languageSelectorButton.setAttribute(\"aria-label\", languageSelectorButtonLabel);\n    }\n    languageSelectorButton.setAttribute(\"role\", \"button\");\n    languageSelectorList.style.setProperty(\"z-index\", \"1000\", \"important\");\n    languageSelectorList.style.setProperty(\"position\", \"absolute\", \"important\");\n    languageSelectorList.style.setProperty(\"background\", \"#fff\", \"important\");\n    languageSelectorList.style.setProperty(\"padding\", \"5px 30px\", \"important\");\n    languageSelectorList.removeAttribute(\"role\");\n    languageSelectorList.removeAttribute(\"aria-label\");\n    function setAttributes() {\n      if (languageSelectorList.classList.contains(\"open\")) {\n        languageSelectorList.style.setProperty(\"display\", \"block\", \"important\");\n        languageSelectorButton.setAttribute(\"aria-expanded\", \"true\");\n      } else {\n        languageSelectorList.style.setProperty(\"display\", \"none\", \"important\");\n        languageSelectorButton.setAttribute(\"aria-expanded\", \"false\");\n      }\n    }\n    setAttributes();\n    const parentContainer = languageSelectorList.parentElement;\n    const observer = new MutationObserver(mutations => {\n      mutations.forEach(mutation => {\n        const target = mutation.target;\n        if (mutation.attributeName === \"class\") {\n          setAttributes();\n        }\n        if (mutation.attributeName === \"role\" && target.tagName === \"A\" && target.classList.contains(\"language-block\")) {\n          if (target.getAttribute(\"role\") !== \"button\") {\n            target.setAttribute(\"role\", \"button\");\n          }\n        }\n        if (mutation.attributeName === \"aria-label\" && target.tagName === \"A\" && target.classList.contains(\"language-block\")) {\n          var _target$querySelector;\n          const label = (_target$querySelector = target.querySelector(\"span.utility-item-title\")) === null || _target$querySelector === void 0 ? void 0 : _target$querySelector.textContent.trim();\n          if (label && target.getAttribute(\"aria-label\") !== label) {\n            target.setAttribute(\"aria-label\", label);\n          }\n        }\n        if (mutation.attributeName === \"role\" && target.id === \"language-menu\") {\n          if (target.hasAttribute(\"role\")) {\n            target.removeAttribute(\"role\");\n          }\n        }\n        if (mutation.attributeName === \"aria-label\" && target.id === \"language-menu\") {\n          if (target.hasAttribute(\"aria-label\")) {\n            target.removeAttribute(\"aria-label\");\n          }\n        }\n        if (mutation.attributeName === \"aria-label\" && target.tagName === \"A\" && target.classList.contains(\"brand-item\")) {\n          var _target$textContent;\n          const label = (_target$textContent = target.textContent) === null || _target$textContent === void 0 ? void 0 : _target$textContent.trim();\n          if (label && target.getAttribute(\"aria-label\") !== label) {\n            target.setAttribute(\"aria-label\", label);\n          }\n        }\n        if (mutation.attributeName === \"class\" && target.tagName === \"LI\" && target.classList.contains(\"cmp-languagenavigation__item\")) {\n          if (target.classList.contains(\"cmp-languagenavigation__item--active\")) {\n            var _target$querySelector2;\n            (_target$querySelector2 = target.querySelector(\"a\")) === null || _target$querySelector2 === void 0 || _target$querySelector2.setAttribute(\"aria-current\", \"true\");\n          } else {\n            var _target$querySelector3;\n            (_target$querySelector3 = target.querySelector(\"a\")) === null || _target$querySelector3 === void 0 || _target$querySelector3.removeAttribute(\"aria-current\");\n          }\n        }\n      });\n    });\n    observer.observe(parentContainer, {\n      attributes: true,\n      attributeFilter: [\"class\", \"role\", \"aria-label\"],\n      subtree: true\n    });\n    languageSelectorButton.addEventListener(\"keydown\", event => {\n      if (event.code === \"Enter\" || event.code === \"Space\") {\n        event.preventDefault();\n        languageSelectorButton.click();\n      }\n    });\n    languageSelectorList.addEventListener(\"keydown\", event => {\n      if (event.code === \"Escape\") {\n        languageSelectorButton.click();\n        setTimeout(() => {\n          languageSelectorButton.focus();\n        }, 200);\n      }\n    });\n    return true;\n  }\n});\nAJS.events.on(window, \"acsbActionEnabling\", e => {\n  if (e.detail.action === \"keyNav\") {\n    const headerTabs = document.querySelector(\"header .nav-wrapper .brand-bar-wrapper\");\n    const LanguageLink = document.querySelector(\"header .brand-bar-wrapper .nav-cmp__utility-list .mbl-list-item\");\n    if (headerTabs && LanguageLink) {\n      headerTabs.setAttribute(\"data-acsb\", \"\");\n      LanguageLink.setAttribute(\"data-acsb\", \"\");\n    }\n  }\n});\n}catch(ex){}\n})();\n/** file: homepage-cta-announcement-fix.js */\n(function(){\ntry{\n\"use strict\";\n\nif (window.location.pathname.includes(\"/home\")) {\n  profileEnabledInterval(\"accessMode\", () => {\n    const ctaLinks = document.querySelectorAll(\".video-background a[href^='https://shop.shrm.org/']\");\n    const links = Array.from(document.querySelectorAll(\"a\")).filter(a => {\n      const text = a.textContent.toLowerCase();\n      return text.includes(\"view all\") || text.includes(\"learn more\") || text.includes(\"join shrm today\") || text.includes(\"what hr pros are saying\") || text.includes(\"donate now\") || text.includes(\"shop the deals\");\n    });\n    if (ctaLinks.length && links.length) {\n      ctaLinks.forEach(ctaLink => {\n        ctaLink.removeAttribute(\"role\");\n      });\n      links.forEach(link => {\n        link.setAttribute(\"role\", \"link\");\n      });\n      return true;\n    }\n  });\n  AJS.events.on(window, \"acsbActionEnabling\", function (e) {\n    if (e.detail.action === \"keyNav\") {\n      var _document$querySelect;\n      const storycards = document.querySelectorAll(\".storycard\");\n      storycards.forEach(storycard => {\n        storycard.setAttribute(\"data-acsb\", \"\");\n      });\n      const utilityList = (_document$querySelect = document.querySelector(\".nav-cmp__utility-list\")) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.parentElement;\n      if (utilityList) {\n        utilityList.setAttribute(\"data-acsb\", \"\");\n      }\n    }\n  });\n}\n}catch(ex){}\n})();\n/** file: product-customization-control.js */\n(function(){\ntry{\n\"use strict\";\n\nif (window.location.pathname.includes(\"/gl/shop\")) {\n  AJS.events.on(window, \"acsbActionEnabling\", e => {\n    if (e.detail.action === \"keyNav\") {\n      const productCustomizationContainer = document.querySelector(\".product-details .pdp-merchandise-info-panel .configurable-free-selector\");\n      if (productCustomizationContainer) {\n        productCustomizationContainer.setAttribute(\"data-acsb\", \"\");\n      }\n    }\n  });\n  profileEnabledInterval(\"accessMode\", () => {\n    const container = document.querySelector(\".product-details .pdp-merchandise-info-panel .configurable-option-container\");\n    if (!container) return;\n    const combo = container.querySelector(\"#shrm_size_select\");\n    const listbox = container.querySelector(\"#shrm_size\");\n    if (!combo || !listbox) return;\n    combo.setAttribute(\"role\", \"combobox\");\n    combo.setAttribute(\"aria-haspopup\", \"listbox\");\n    listbox.setAttribute(\"role\", \"listbox\");\n    const options = Array.from(listbox.querySelectorAll(\".shop-dropdown-container__options--item\"));\n    options.forEach((option, index) => {\n      var _option$querySelector;\n      option.setAttribute(\"role\", \"option\");\n      const label = option.querySelector(\"label[id]\");\n      if (label) {\n        option.id = label.id;\n        label.removeAttribute(\"id\");\n        label.setAttribute(\"aria-hidden\", \"true\");\n      }\n      if (option.classList.contains(\"disabled-option\")) {\n        option.setAttribute(\"aria-disabled\", \"true\");\n      }\n      if (!option.id) {\n        option.id = \"shrm_size_option_\".concat(index);\n      }\n      const text = (_option$querySelector = option.querySelector(\".option-value\")) === null || _option$querySelector === void 0 || (_option$querySelector = _option$querySelector.textContent) === null || _option$querySelector === void 0 ? void 0 : _option$querySelector.trim();\n      if (text) {\n        option.setAttribute(\"aria-label\", text);\n      }\n    });\n    let activeIndex = options.findIndex(o => o.getAttribute(\"aria-selected\") === \"true\");\n    if (activeIndex < 0) activeIndex = 0;\n    function setActive(index) {\n      const option = options[index];\n      if (!option) return;\n      if (option.getAttribute(\"aria-disabled\") === \"true\") return;\n      combo.setAttribute(\"aria-activedescendant\", option.id);\n      options.forEach((opt, i) => {\n        opt.classList.toggle(\"focused\", i === index);\n      });\n      activeIndex = index;\n    }\n    setActive(activeIndex);\n    combo.addEventListener(\"keydown\", e => {\n      const expanded = combo.getAttribute(\"aria-expanded\") === \"true\";\n      switch (e.code) {\n        case \"ArrowDown\":\n          e.preventDefault();\n          if (!expanded) {\n            combo.click();\n            return;\n          }\n          for (let i = activeIndex + 1; i < options.length; i++) {\n            if (options[i].getAttribute(\"aria-disabled\") !== \"true\") {\n              setActive(i);\n              break;\n            }\n          }\n          break;\n        case \"ArrowUp\":\n          e.preventDefault();\n          if (!expanded) {\n            combo.click();\n            return;\n          }\n          for (let i = activeIndex - 1; i >= 0; i--) {\n            if (options[i].getAttribute(\"aria-disabled\") !== \"true\") {\n              setActive(i);\n              break;\n            }\n          }\n          break;\n        case \"Enter\":\n        case \"Space\":\n          e.preventDefault();\n          if (!expanded) {\n            combo.click();\n          } else {\n            var _options$activeIndex;\n            (_options$activeIndex = options[activeIndex]) === null || _options$activeIndex === void 0 || _options$activeIndex.click();\n          }\n          break;\n        case \"Escape\":\n          if (expanded) {\n            e.preventDefault();\n            combo.setAttribute(\"aria-expanded\", \"false\");\n          }\n          break;\n      }\n    });\n    options.forEach((option, index) => {\n      option.addEventListener(\"mouseenter\", () => {\n        if (option.getAttribute(\"aria-disabled\") !== \"true\") {\n          setActive(index);\n        }\n      });\n      option.addEventListener(\"click\", () => {\n        setActive(index);\n      });\n    });\n    const observer = new MutationObserver(mutations => {\n      mutations.forEach(mutation => {\n        const target = mutation.target;\n        if (target === combo && combo.getAttribute(\"role\") !== \"combobox\") {\n          combo.setAttribute(\"role\", \"combobox\");\n        }\n        if (target === listbox && listbox.getAttribute(\"role\") !== \"listbox\") {\n          listbox.setAttribute(\"role\", \"listbox\");\n        }\n        if (target.tagName === \"LI\" && target.classList.contains(\"shop-dropdown-container__options--item\") && target.getAttribute(\"role\") !== \"option\") {\n          target.setAttribute(\"role\", \"option\");\n        }\n      });\n    });\n    observer.observe(container, {\n      attributes: true,\n      subtree: true,\n      attributeFilter: [\"role\"]\n    });\n    return true;\n  });\n}\n}catch(ex){}\n})();\n/** file: sidebar-menu-accessibility.js */\n(function(){\ntry{\n\"use strict\";\n\nif (window.location.pathname.includes(\"/gl/shop\")) {\n  profileEnabledInterval(\"accessMode\", () => {\n    const sidebarMenu = document.querySelector(\".left-navigation nav.left-navigation-container\");\n    if (sidebarMenu) {\n      const menuLinks = sidebarMenu.querySelectorAll(\".shop-left-navigation button.shop-accordion__header.non-expandable-item\");\n      const menuButtons = sidebarMenu.querySelectorAll(\".shop-left-navigation .shop-accordion__item button.shop-accordion__header:not(.non-expandable-item)\");\n      menuLinks.forEach(menuLink => {\n        var _menuLink$querySelect;\n        menuLink.setAttribute(\"role\", \"link\");\n        menuLink.removeAttribute(\"aria-expanded\");\n        menuLink.removeAttribute(\"aria-haspopup\");\n        (_menuLink$querySelect = menuLink.querySelector(\".shop-accordion__title\")) === null || _menuLink$querySelect === void 0 || _menuLink$querySelect.classList.remove(\"acsb-sr-only\");\n      });\n      menuButtons.forEach(menuButton => {\n        var _menuButton$textConte;\n        menuButton.setAttribute(\"role\", \"button\");\n        menuButton.removeAttribute(\"aria-haspopup\");\n        const label = (_menuButton$textConte = menuButton.textContent) === null || _menuButton$textConte === void 0 ? void 0 : _menuButton$textConte.trim();\n        if (label) {\n          menuButton.setAttribute(\"aria-label\", label);\n        }\n        const menuButtonParent = menuButton.parentElement;\n        if (menuButtonParent) {\n          const menuButtonsParentObserver = new MutationObserver(mutations => {\n            mutations.forEach(mutation => {\n              const target = mutation.target;\n              if (mutation.type === \"childList\") {\n                mutation.addedNodes.forEach(node => {\n                  if (node.nodeType === Node.ELEMENT_NODE && node.classList.contains(\"shop-accordion__panel\")) {\n                    node.removeAttribute(\"tabindex\");\n                    node.removeAttribute(\"role\");\n                    const subMenuLinks = node.querySelectorAll(\"a\");\n                    subMenuLinks.forEach(subMenuLink => {\n                      subMenuLink.setAttribute(\"role\", \"link\");\n                      subMenuLink.removeAttribute(\"aria-haspopup\");\n                    });\n                  }\n                });\n              }\n              if (mutation.type === \"attributes\" && target.classList.contains(\"shop-accordion__panel\")) {\n                if (mutation.attributeName === \"tabindex\" && target.hasAttribute(\"tabindex\")) {\n                  target.removeAttribute(\"tabindex\");\n                }\n              }\n              if (mutation.type === \"attributes\" && mutation.attributeName === \"role\" && target.classList.contains(\"shop-accordion__item\")) {\n                if (target.hasAttribute(\"role\")) {\n                  target.removeAttribute(\"role\");\n                }\n              }\n              if (mutation.type === \"attributes\" && mutation.attributeName === \"role\" && target.classList.contains(\"shop-text__link\")) {\n                if (target.getAttribute(\"role\") !== \"link\") {\n                  target.setAttribute(\"role\", \"link\");\n                }\n              }\n            });\n          });\n          menuButtonsParentObserver.observe(menuButtonParent, {\n            attributes: true,\n            attributeFilter: [\"role\", \"tabindex\"],\n            childList: true,\n            subtree: true\n          });\n        }\n        menuButton.addEventListener(\"keydown\", event => {\n          if (event.code === \"Enter\" || event.code === \"Space\") {\n            event.preventDefault();\n            event.stopImmediatePropagation();\n            menuButton.click();\n            setTimeout(() => {\n              const isExpanded = menuButton.getAttribute(\"aria-expanded\") === \"true\";\n              if (isExpanded) {\n                setTimeout(() => {\n                  menuButton.focus();\n                }, 500);\n              }\n            }, 500);\n          }\n        });\n      });\n      return true;\n    }\n  });\n  AJS.events.on(window, \"acsbActionEnabling\", e => {\n    if (e.detail.action === \"keyNav\") {\n      const sidebarMenu = document.querySelector(\".left-navigation nav.left-navigation-container\");\n      if (sidebarMenu) {\n        sidebarMenu.setAttribute(\"data-acsb\", \"\");\n      }\n    }\n  });\n}\n}catch(ex){}\n})();\n/** file: skip-links.js */\n(function(){\ntry{\n\"use strict\";\n\nprofileEnabledInterval(\"accessMode\", () => {\n  const mainMenu = document.querySelector(\"nav.left-navigation-container\");\n  if (!mainMenu) return;\n  mainMenu.setAttribute(\"data-acsb-main-menu\", \"true\");\n  if (mainMenu.getAttribute(\"role\") === \"presentation\") {\n    mainMenu.removeAttribute(\"role\");\n  }\n  const fixRole = () => {\n    if (mainMenu.getAttribute(\"role\") === \"presentation\") {\n      mainMenu.removeAttribute(\"role\");\n    }\n  };\n  const observer = new MutationObserver(fixRole);\n  observer.observe(mainMenu, {\n    attributes: true,\n    attributeFilter: [\"role\"]\n  });\n  return true;\n});\n}catch(ex){}\n})();\n/** file: submenu-accessibility.js */\n(function(){\ntry{\n\"use strict\";\n\nprofileEnabledInterval(\"accessMode\", () => {\n  const submenuContainer = document.querySelector(\"header .globalheader #menu-bar-wrapper nav .cmp-navigation__group\");\n  if (submenuContainer) {\n    setTimeout(() => {\n      const menuItems = submenuContainer === null || submenuContainer === void 0 ? void 0 : submenuContainer.querySelectorAll(\":scope > li\");\n      menuItems.forEach(menuItem => {\n        var _menuItem$lastElement;\n        const submenuContainer = (_menuItem$lastElement = menuItem.lastElementChild) === null || _menuItem$lastElement === void 0 ? void 0 : _menuItem$lastElement.shadowRoot;\n        if (submenuContainer) {\n          const allLinks = submenuContainer === null || submenuContainer === void 0 ? void 0 : submenuContainer.querySelectorAll(\"a\");\n          allLinks.forEach(link => {\n            link.setAttribute(\"role\", \"link\");\n            const label = link.textContent.trim();\n            if (label) {\n              link.setAttribute(\"aria-label\", label);\n            }\n          });\n          const submenuObserver = new MutationObserver(mutations => {\n            mutations.forEach(mutation => {\n              const target = mutation.target;\n              if (mutation.type === \"attributes\" && mutation.attributeName === \"aria-label\" && target.tagName === \"A\" && target.parentElement.tagName === \"LI\") {\n                const label = target.textContent.trim();\n                if (label && target.getAttribute(\"aria-label\") !== label) {\n                  target.setAttribute(\"aria-label\", label);\n                }\n              }\n              if (mutation.type === \"attributes\" && mutation.attributeName === \"role\" && target.tagName === \"A\" && target.parentElement.tagName === \"LI\") {\n                if (target.getAttribute(\"role\") !== \"link\") {\n                  target.setAttribute(\"role\", \"link\");\n                }\n              }\n            });\n          });\n          submenuObserver.observe(submenuContainer, {\n            attributes: true,\n            attributeFilter: [\"aria-label\", \"role\"],\n            subtree: true\n          });\n        }\n      });\n    }, 5000);\n    return true;\n  }\n});\n}catch(ex){}\n})();\n\n}catch(ex){}\n})();\n\n</script><style>\n\n</style>","addonAnalytics":true,"blockMeta":false,"blockImages":false,"blockStyles":false,"blockTextSimplifier":false,"widgetSettings":null,"featureFlags":{"text-simplifier":false,"ai-assistant":true,"classification-provider":false}}