{"time":"2026-08-10T15:39:29.504Z","specifics":"<script>\n\n(function(){\ntry{\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: account-control.js */\n(function(){\ntry{\n\"use strict\";\n\nprofileEnabledInterval(\"accessMode\", () => {\n  const accountControl = document.querySelector('.at-element-marker a[href*=\"/account\"]');\n  if (accountControl) {\n    const setRole = () => {\n      if (accountControl.getAttribute(\"role\") !== \"button\") {\n        accountControl.setAttribute(\"role\", \"button\");\n      }\n    };\n    setRole();\n    const observer = new MutationObserver(setRole);\n    observer.observe(accountControl, {\n      attributes: true,\n      attributeFilter: [\"role\"]\n    });\n    return true;\n  }\n});\n}catch(ex){}\n})();\n/** file: cart-dialog-correction.js */\n(function(){\ntry{\n\"use strict\";\n\nprofileEnabledInterval(\"accessMode\", () => {\n  const mainWrapper = document.body;\n  if (!mainWrapper) return false;\n  const observerCallbacks = new Map();\n  const observer = new MutationObserver(mutations => {\n    mutations.forEach(mutation => {\n      var _observerCallbacks$ge;\n      (_observerCallbacks$ge = observerCallbacks.get(mutation.target)) === null || _observerCallbacks$ge === void 0 || _observerCallbacks$ge(mutation);\n    });\n  });\n  const dialogAttributes = {\n    role: \"dialog\",\n    \"aria-modal\": \"true\",\n    \"data-acsb-overlay\": \"popup\",\n    tabindex: \"-1\",\n    \"aria-label\": \"Cart\"\n  };\n  const attrNames = Object.keys(dialogAttributes);\n  const updateCartDialog = nodesAdded => {\n    var _nodesAdded$find;\n    const cartDialog = (_nodesAdded$find = nodesAdded.find(node => {\n      var _node$children, _node$querySelector;\n      return node.parentElement === document.body && ((_node$children = node.children) === null || _node$children === void 0 ? void 0 : _node$children[0]) && window.getComputedStyle(node.children[0]).position === \"fixed\" && ((_node$querySelector = node.querySelector) === null || _node$querySelector === void 0 ? void 0 : _node$querySelector.call(node, 'a[href=\"/cart\"]'));\n    })) === null || _nodesAdded$find === void 0 ? void 0 : _nodesAdded$find.children[0];\n    if (!cartDialog || cartDialog.hasAttribute(\"observer-attached\")) return;\n    observerCallbacks.set(cartDialog, _ref => {\n      let {\n        attributeName\n      } = _ref;\n      if (attributeName in dialogAttributes) {\n        if (cartDialog.getAttribute(attributeName) !== dialogAttributes[attributeName]) {\n          cartDialog.setAttribute(attributeName, dialogAttributes[attributeName]);\n        }\n        return;\n      }\n    });\n    observer.observe(cartDialog, {\n      attributeFilter: attrNames,\n      attributes: true\n    });\n    attrNames.forEach(attributeName => {\n      cartDialog.setAttribute(attributeName, dialogAttributes[attributeName]);\n    });\n    cartDialog.setAttribute(\"observer-attached\", true);\n  };\n  observerCallbacks.set(document.body, _ref2 => {\n    let {\n      addedNodes\n    } = _ref2;\n    if (addedNodes !== null && addedNodes !== void 0 && addedNodes.length) {\n      updateCartDialog([...addedNodes]);\n    }\n  });\n  observer.observe(document.body, {\n    childList: true\n  });\n  return true;\n});\n}catch(ex){}\n})();\n/** file: menu-corrections.js */\n(function(){\ntry{\n\"use strict\";\n\nprofileEnabledInterval(\"accessMode\", () => {\n  const menuTriggers = document.querySelectorAll(\"nav#header-navigation div > a[href]\");\n  if (!menuTriggers.length) return false;\n  const observerCallbacks = new Map();\n  const observer = new MutationObserver(mutations => {\n    mutations.forEach(mutation => {\n      var _observerCallbacks$ge;\n      (_observerCallbacks$ge = observerCallbacks.get(mutation.target)) === null || _observerCallbacks$ge === void 0 || _observerCallbacks$ge(mutation);\n    });\n  });\n  let timeoutId = null,\n    intervalId = null;\n  lastResolvePromise = null;\n  const captureBodyPopoverNode = async previousPopoverNodes => {\n    clearInterval(intervalId);\n    clearTimeout(timeoutId);\n    if (lastResolvePromise) lastResolvePromise(null);\n    return new Promise(res => {\n      lastResolvePromise = res;\n      timeoutId = setTimeout(() => {\n        res(null);\n      }, 5000);\n      intervalId = setInterval(() => {\n        const newNode = [...document.querySelectorAll(\"body > .react-tiny-popover-container\")].find(node => previousPopoverNodes.every(prevNode => prevNode !== node));\n        if (newNode) {\n          clearInterval(intervalId);\n          clearTimeout(timeoutId);\n          res(newNode);\n        }\n      }, 100);\n    });\n  };\n  menuTriggers.forEach(trigger => {\n    trigger.setAttribute(\"aria-expanded\", false);\n    observerCallbacks.set(trigger, () => {\n      if (trigger.hasAttribute(\"role\")) trigger.removeAttribute(\"role\");\n      if (trigger.hasAttribute(\"aria-haspopup\")) trigger.removeAttribute(\"aria-haspopup\");\n    });\n    observer.observe(trigger, {\n      attributeFilter: [\"role\", \"aria-haspopup\"],\n      attributes: true\n    });\n    trigger.removeAttribute(\"role\");\n    trigger.removeAttribute(\"aria-haspopup\");\n    trigger.parentElement.style.order = \"initial\";\n    let cachedDropdown = null;\n    let escapePressed = false;\n    trigger.addEventListener(\"focus\", async () => {\n      if (escapePressed) {\n        escapePressed = false;\n        return;\n      }\n      if (cachedDropdown) {\n        trigger.setAttribute(\"aria-expanded\", true);\n        cachedDropdown.style.display = \"block\";\n        return;\n      }\n      trigger.setAttribute(\"aria-expanded\", true);\n      const previousPopoverNodes = document.querySelectorAll(\"body > .react-tiny-popover-container\");\n      trigger.dispatchEvent(new MouseEvent(\"mouseover\", {\n        bubbles: true,\n        cancelable: true,\n        view: window\n      }));\n      const newNode = await captureBodyPopoverNode([...previousPopoverNodes]);\n      if (!newNode) return;\n      const clonedNode = newNode.cloneNode(true);\n      trigger.parentElement.append(clonedNode);\n      newNode.style.display = \"none\";\n      cachedDropdown = clonedNode;\n      cachedDropdown.style.display = \"block\";\n      trigger.setAttribute(\"aria-expanded\", true);\n      trigger.dispatchEvent(new MouseEvent(\"mouseout\", {\n        bubbles: true,\n        cancelable: true,\n        view: window\n      }));\n      setTimeout(() => {\n        const attrsToRemove = [\"role\", \"aria-haspopup\", \"aria-modal\", \"tabindex\", \"aria-label\"];\n        observerCallbacks.set(cachedDropdown, _ref => {\n          let {\n            attributeName\n          } = _ref;\n          if (attrsToRemove.includes(attributeName) && cachedDropdown.hasAttribute(attributeName)) cachedDropdown.removeAttribute(attributeName);\n          if (attributeName === \"class\" && cachedDropdown.classList.contains(\"acsb-active\")) cachedDropdown.classList.remove(\"acsb-active\");\n        });\n        observer.observe(cachedDropdown, {\n          attributeFilter: [\"class\", ...attrsToRemove],\n          attributes: true\n        });\n        attrsToRemove.forEach(name => cachedDropdown.removeAttribute(name));\n        cachedDropdown.classList.remove(\"acsb-active\");\n        cachedDropdown.querySelectorAll(\"[data-acsb-navigable='true']\").forEach(navigable => {\n          if (navigable.hasAttribute(\"observer-attached\")) return;\n          observerCallbacks.set(navigable, () => {\n            if (navigable.hasAttribute(\"aria-haspopup\")) navigable.removeAttribute(\"aria-haspopup\");\n          });\n          observer.observe(navigable, {\n            attributeFilter: [\"aria-haspopup\"],\n            attributes: true\n          });\n          navigable.removeAttribute(\"aria-haspopup\");\n          navigable.setAttribute(\"observer-attached\", true);\n        });\n      }, 1000);\n    });\n    trigger.parentElement.addEventListener(\"focusout\", event => {\n      if (!cachedDropdown) return;\n      if (event.relatedTarget !== trigger.parentElement && !trigger.parentElement.contains(event.relatedTarget)) {\n        trigger.setAttribute(\"aria-expanded\", false);\n        cachedDropdown.style.display = \"none\";\n      }\n    });\n    trigger.parentElement.addEventListener(\"keydown\", event => {\n      if (!cachedDropdown || cachedDropdown.style.display !== \"block\" || event.code !== \"Escape\") return;\n      event.preventDefault();\n      event.stopImmediatePropagation();\n      escapePressed = true;\n      setTimeout(() => {\n        trigger.setAttribute(\"aria-expanded\", false);\n        trigger.blur();\n        trigger.focus();\n        cachedDropdown.style.display = \"none\";\n      }, 500);\n    });\n  });\n  return true;\n});\n}catch(ex){}\n})();\n/** file: product-swatches-correction.js */\n(function(){\ntry{\n\"use strict\";\n\nprofileEnabledInterval(\"accessMode\", () => {\n  const mainWrapper = document.querySelector(\"main\");\n  if (!mainWrapper) return false;\n  const observerCallbacks = new Map();\n  const observerAttrName = \"observer-attached\";\n  const observer = new MutationObserver(mutations => {\n    mutations.forEach(mutation => {\n      var _observerCallbacks$ge;\n      (_observerCallbacks$ge = observerCallbacks.get(mutation.target)) === null || _observerCallbacks$ge === void 0 || _observerCallbacks$ge(mutation);\n    });\n  });\n  const updateSwatchOptions = () => {\n    const swatchesWrapper = mainWrapper.querySelector(\"#buy-module-options\");\n    if (!swatchesWrapper) return;\n    if (!swatchesWrapper.hasAttribute(observerAttrName)) {\n      observerCallbacks.set(swatchesWrapper, _ref => {\n        let {\n          addedNodes\n        } = _ref;\n        if (addedNodes !== null && addedNodes !== void 0 && addedNodes.length) {\n          updateSwatchOptions();\n        }\n      });\n      observer.observe(swatchesWrapper, {\n        childList: true,\n        subtree: true\n      });\n      swatchesWrapper.hasAttribute(observerAttrName, true);\n    }\n    [...swatchesWrapper.children].forEach(child => {\n      var _child$children, _child$children$0$que;\n      if (!((_child$children = child.children) !== null && _child$children !== void 0 && _child$children.length)) return;\n      const hasAtcBtn = [...child.querySelectorAll(\"button\")].find(btn => btn.textContent.toLowerCase().includes(\"add to cart\"));\n      if (hasAtcBtn) return;\n      const swatchName = (_child$children$0$que = child.children[0].querySelector(\":not(button) > p\")) === null || _child$children$0$que === void 0 || (_child$children$0$que = _child$children$0$que.textContent) === null || _child$children$0$que === void 0 ? void 0 : _child$children$0$que.trim().replace(\":\", \"\");\n      if (!swatchName) return;\n      const allOptions = child.querySelectorAll(\"button, a\");\n      if (!allOptions.length) return;\n      allOptions.forEach(option => {\n        var _option$querySelector;\n        if (option.tagName === \"A\") {\n          observerCallbacks.set(option, _ref2 => {\n            let {\n              attributeName\n            } = _ref2;\n            if (attributeName === \"class\") {\n              updateSwatchOptions();\n              return;\n            }\n            if (option.getAttribute(\"role\") !== \"button\") option.setAttribute(\"role\", \"button\");\n          });\n          observer.observe(option, {\n            attributeFilter: [\"role\", \"class\"],\n            attributes: true\n          });\n          option.setAttribute(\"role\", \"button\");\n        } else {\n          observerCallbacks.set(option, _ref3 => {\n            let {\n              attributeName\n            } = _ref3;\n            if (attributeName === \"class\") {\n              updateSwatchOptions();\n              return;\n            }\n            if (option.hasAttribute(\"role\")) option.removeAttribute(\"role\");\n          });\n          observer.observe(option, {\n            attributeFilter: [\"role\", \"class\"],\n            attributes: true\n          });\n          option.removeAttribute(\"role\");\n        }\n        option.setAttribute(\"aria-pressed\", false);\n        if (swatchName.includes(\"Color\")) {\n          const borderColor = window.getComputedStyle(option).borderColor;\n          if (borderColor && borderColor.includes(\"rgb(187, 187, 187)\")) {\n            option.setAttribute(\"aria-pressed\", true);\n          } else {\n            option.setAttribute(\"aria-pressed\", false);\n          }\n        } else {\n          const bgColor = window.getComputedStyle(option).backgroundColor;\n          if (bgColor && bgColor.includes(\"rgb(51, 51, 51)\")) {\n            option.setAttribute(\"aria-pressed\", true);\n          } else {\n            option.setAttribute(\"aria-pressed\", false);\n          }\n          if (!option.querySelector(\".acsb-sr-only.swatch-name\")) {\n            const srEL = createSrOnlyElement();\n            srEL.classList.add(\"acsb-sr-only\", \"swatch-name\");\n            srEL.textContent = swatchName;\n            option.append(srEL);\n          }\n        }\n        (_option$querySelector = option.querySelector(\".acsb-sr-only.sold-out\")) === null || _option$querySelector === void 0 || _option$querySelector.remove();\n        if (window.getComputedStyle(option).opacity !== \"1\") {\n          const srEL = createSrOnlyElement();\n          srEL.classList.add(\"acsb-sr-only\", \"sold-out\");\n          srEL.textContent = \"Sold out\";\n          option.append(srEL);\n        }\n      });\n      i;\n    });\n  };\n  observerCallbacks.set(mainWrapper, _ref4 => {\n    let {\n      addedNodes\n    } = _ref4;\n    if (addedNodes !== null && addedNodes !== void 0 && addedNodes.length) {\n      setTimeout(() => updateSwatchOptions(), 2000);\n    }\n  });\n  observer.observe(mainWrapper, {\n    childList: true\n  });\n  updateSwatchOptions();\n  return true;\n});\n}catch(ex){}\n})();\n/** file: search-corrections.js */\n(function(){\ntry{\n\"use strict\";\n\nprofileEnabledInterval(\"accessMode\", () => {\n  var _searchInput$parentEl2;\n  const mainSearchWrapper = document.querySelector(\"nav#header-navigation form[role='search']\");\n  const searchInput = mainSearchWrapper === null || mainSearchWrapper === void 0 ? void 0 : mainSearchWrapper.querySelector(\"input[type='search']\");\n  if (!searchInput) return false;\n  let updateListElements = null;\n  const observerCallbacks = new Map();\n  const observer = new MutationObserver(mutations => {\n    mutations.forEach(mutation => {\n      var _mutation$target$clas, _mutation$target$clos, _mutation$target, _observerCallbacks$ge;\n      if (mutation.addedNodes && ((_mutation$target$clas = mutation.target.classList) !== null && _mutation$target$clas !== void 0 && _mutation$target$clas.contains(\"acsb-search-results\") || (_mutation$target$clos = (_mutation$target = mutation.target).closest) !== null && _mutation$target$clos !== void 0 && _mutation$target$clos.call(_mutation$target, \".acsb-search-results\"))) {\n        var _updateListElements;\n        (_updateListElements = updateListElements) === null || _updateListElements === void 0 || _updateListElements();\n        return;\n      }\n      (_observerCallbacks$ge = observerCallbacks.get(mutation.target)) === null || _observerCallbacks$ge === void 0 || _observerCallbacks$ge(mutation);\n    });\n  });\n  let searchResultsWrapper = null,\n    resultClicked = null;\n  addSearchboxInstructions(searchInput);\n  searchInput.addEventListener(\"focus\", () => {\n    if (!resultClicked && (searchResultsWrapper || mainSearchWrapper.querySelector(\".acsb-search-updated\"))) return;\n    setTimeout(() => {\n      const allPopups = [...document.body.querySelectorAll(\":scope > .react-tiny-popover-container\")].reverse();\n      if (!allPopups.length) return;\n      const searchPopup = allPopups.find(popup => {\n        return window.getComputedStyle(popup).position === \"fixed\" && popup.textContent.toLowerCase().includes(\"search\");\n      }) || allPopups[0];\n      document.querySelectorAll(\"body > .acsb-search-updated\").forEach(el => el.remove());\n      searchPopup.classList.add(\"acsb-search-updated\");\n      searchResultsWrapper = searchPopup;\n      searchInput.parentElement.insertAdjacentElement(\"afterend\", searchResultsWrapper);\n      if (!searchResultsWrapper.hasAttribute(\"observer-attached\")) {\n        var _searchResultsWrapper;\n        const resultsList = (_searchResultsWrapper = searchResultsWrapper.querySelector(\":scope > div > div > p\")) === null || _searchResultsWrapper === void 0 ? void 0 : _searchResultsWrapper.nextElementSibling;\n        if (resultsList) {\n          resultsList.classList.add(\"acsb-search-results\");\n          updateListElements = () => {\n            setTimeout(() => {\n              resultsList.querySelectorAll(\"[data-acsb-navigable]\").forEach(el => {\n                if (el.hasAttribute(\"listener-attached\")) return;\n                el.addEventListener(\"keydown\", event => {\n                  if (searchResultsWrapper && (event.code === \"Enter\" || event.code === \"Space\")) {\n                    event.preventDefault();\n                    event.stopImmediatePropagation();\n                    resultClicked = el;\n                    searchInput.focus();\n                    searchInput.dispatchEvent(new KeyboardEvent(\"keydown\", {\n                      key: \"Escape\",\n                      code: \"Escape\",\n                      keyCode: 27,\n                      which: 27,\n                      bubbles: true,\n                      cancelable: true\n                    }));\n                  }\n                });\n                observerCallbacks.set(el, () => {\n                  if (el.getAttribute(\"role\") !== \"button\") {\n                    el.setAttribute(\"role\", \"button\");\n                  }\n                });\n                observer.observe(el, {\n                  attributes: true,\n                  attributeFilter: [\"role\"]\n                });\n                el.setAttribute(\"role\", \"button\");\n                el.setAttribute(\"listener-attached\", true);\n              });\n            }, 1000);\n          };\n          observer.observe(resultsList, {\n            childList: true,\n            subtree: true\n          });\n          updateListElements();\n        }\n        searchResultsWrapper.setAttribute(\"observer-attached\", true);\n      }\n      if (!observerCallbacks.has(searchResultsWrapper)) {\n        observerCallbacks.set(searchResultsWrapper, () => {\n          if (!searchResultsWrapper) return;\n          if (searchResultsWrapper.hasAttribute(\"aria-hidden\")) {\n            searchResultsWrapper.removeAttribute(\"aria-hidden\");\n          }\n          if (searchResultsWrapper.hasAttribute(\"data-acsb-hidden\")) {\n            searchResultsWrapper.removeAttribute(\"data-acsb-hidden\");\n          }\n        });\n        observer.observe(searchResultsWrapper, {\n          attributeFilter: [\"aria-hidden\", \"data-acsb-hidden\"],\n          attributes: true\n        });\n        searchResultsWrapper.removeAttribute(\"aria-hidden\");\n        searchResultsWrapper.removeAttribute(\"data-acsb-hidden\");\n      }\n    }, 1000);\n  });\n  mainSearchWrapper.addEventListener(\"focusout\", event => {\n    if (!searchResultsWrapper) return;\n    if (event.relatedTarget !== mainSearchWrapper && !mainSearchWrapper.contains(event.relatedTarget)) {\n      document.body.append(searchResultsWrapper);\n      if (resultClicked) {\n        setTimeout(() => {\n          const currentUrl = window.location.href;\n          (resultClicked.querySelector(\"[searchsuggestion]\") || resultClicked).click();\n          resultClicked = null;\n          searchResultsWrapper = null;\n          const intervalId = setInterval(() => {\n            if (window.location.href !== currentUrl) {\n              clearInterval(intervalId);\n              window.location.reload();\n            }\n          }, 100);\n          setTimeout(() => {\n            clearInterval(intervalId);\n          }, 10000);\n        }, 1000);\n        return;\n      }\n      setTimeout(() => {\n        var _mainSearchWrapper$pr;\n        (_mainSearchWrapper$pr = mainSearchWrapper.previousElementSibling) === null || _mainSearchWrapper$pr === void 0 || _mainSearchWrapper$pr.click();\n        searchResultsWrapper = null;\n      }, 100);\n    }\n  });\n  mainSearchWrapper.addEventListener(\"keydown\", event => {\n    if (event.code !== \"Escape\" || !searchResultsWrapper || event.target === searchInput) return;\n    event.preventDefault();\n    event.stopImmediatePropagation();\n    searchInput.focus();\n    searchInput.dispatchEvent(new KeyboardEvent(\"keydown\", {\n      key: \"Escape\",\n      code: \"Escape\",\n      keyCode: 27,\n      which: 27,\n      bubbles: true,\n      cancelable: true\n    }));\n  });\n  observerCallbacks.set(searchInput.parentElement, _ref => {\n    let {\n      addedNodes\n    } = _ref;\n    if (addedNodes !== null && addedNodes !== void 0 && addedNodes.length) {\n      var _searchInput$parentEl;\n      (_searchInput$parentEl = searchInput.parentElement.querySelector(\"span[id*='sr-hint']\")) === null || _searchInput$parentEl === void 0 || _searchInput$parentEl.remove();\n    }\n  });\n  const liveRegion = createLiveRegion(\"polite\", mainSearchWrapper.closest(\"nav#header-navigation\"));\n  let timeOutId = null;\n  searchInput.addEventListener(\"input\", () => {\n    if (!searchResultsWrapper || !searchInput.value) return;\n    clearTimeout(timeOutId);\n    timeOutId = setTimeout(() => {\n      liveRegion.textContent = \"Search results for \".concat(searchInput.value);\n    }, 500);\n  });\n  observer.observe(searchInput.parentElement, {\n    childList: true\n  });\n  (_searchInput$parentEl2 = searchInput.parentElement.querySelector(\"span[id*='sr-hint']\")) === null || _searchInput$parentEl2 === void 0 || _searchInput$parentEl2.remove();\n  return true;\n});\n}catch(ex){}\n})();\n/** file: skip-link.js */\n(function(){\ntry{\n\"use strict\";\n\nprofileEnabledInterval(\"accessMode\", () => {\n  const mainMenu = document.getElementById(\"header-navigation\");\n  if (mainMenu) {\n    mainMenu.setAttribute(\"data-acsb-main-menu\", \"true\");\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":{"consistentHelpData":[],"disableBgProcess":false,"footerHtml":"","hideComponents":[],"hideMobile":false,"hideTrigger":true,"language":"en","leadColor":"#000000","mobile":{"triggerOffsetX":4,"triggerOffsetY":100,"triggerPositionX":"right","triggerPositionY":"bottom","triggerRadius":"50%","triggerSize":"small","triggerIcon":"people"},"position":"right","remoteAnalytics":true,"statementLink":"","statementVariant":"default","triggerColor":"#000000","triggerIcon":"people","triggerOffsetX":4,"triggerOffsetY":100,"triggerPositionX":"right","triggerPositionY":"bottom","triggerRadius":"50%","triggerSize":"small","copilotChat":false},"featureFlags":{"text-simplifier":false,"ai-assistant":true,"classification-provider":false}}