{"time":"2026-02-09T15:29:10.652Z","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: fix-checkout-page-payment-options.js */\n(function(){\ntry{\n\"use strict\";\n\nprofileEnabledInterval(\"accessMode\", () => {\n  const allPaymentOptions = document.querySelectorAll(\".payCheck.input-radio input\");\n  if (allPaymentOptions.length) {\n    allPaymentOptions.forEach(option => {\n      setInterval(() => {\n        option.removeAttribute(\"aria-required\");\n        option.removeAttribute(\"required\");\n      }, 0);\n      option.setAttribute(\"role\", \"radio\");\n      option.setAttribute(\"aria-checked\", option.checked);\n      option.addEventListener(\"keydown\", e => {\n        if (e.code === \"Space\" || e.code === \"Enter\") {\n          allPaymentOptions.forEach(option => option.removeAttribute(\"aria-checked\"));\n          e.currentTarget.setAttribute(\"aria-checked\", \"true\");\n        }\n      });\n    });\n    return true;\n  }\n});\n}catch(ex){}\n})();\n/** file: fix-search-issues.js */\n(function(){\ntry{\n\"use strict\";\n\nprofileEnabledInterval(\"accessMode\", () => {\n  const searchComponent = document.querySelector(\"#search_form\");\n  if (searchComponent) {\n    const searchInput = searchComponent.querySelector(\"#search\");\n    if (searchInput) {\n      addSearchboxInstructions(searchInput);\n    }\n    const observeSearchComponent = new MutationObserver(mutationCallback);\n    const config = {\n      childList: true\n    };\n    observeSearchComponent.observe(searchComponent, config);\n    function mutationCallback(mutations) {\n      mutations.forEach(mutation => {\n        mutation.addedNodes.forEach(node => {\n          if (node.nodeType === Node.ELEMENT_NODE) {\n            if (node.id === \"algolia-search-results-container\") {\n              const searchResults = node;\n              searchResults.setAttribute(\"role\", \"dialog\");\n              searchResults.setAttribute(\"aria-modal\", \"true\");\n              searchResults.setAttribute(\"data-acsb-overlay\", \"popup\");\n              searchResults.setAttribute(\"aria-label\", \"Search Results\");\n              searchResults.setAttribute(\"tabindex\", \"-1\");\n              const allMatchesLink = searchResults.querySelector(\".algolia-sqFooter a\");\n              if (allMatchesLink) {\n                setTimeout(() => {\n                  allMatchesLink.setAttribute(\"role\", \"link\");\n                }, 1000);\n              }\n              searchResults.addEventListener(\"keydown\", e => {\n                if (e.code === \"Escape\") {\n                  e.preventDefault();\n                  searchInput === null || searchInput === void 0 || searchInput.focus();\n                }\n              });\n              const searchResultsList = searchResults.querySelectorAll(\".algolia-sqContent li\");\n              searchResultsList.forEach(result => {\n                setTimeout(() => {\n                  result.setAttribute(\"role\", \"link\");\n                  result.childNodes.forEach(node => {\n                    if (node.nodeType === Node.ELEMENT_NODE) {\n                      node.removeAttribute(\"tabindex\");\n                      node.removeAttribute(\"data-acsb-now-navigable\");\n                      node.removeAttribute(\"data-acsb-navigable\");\n                      forceUnnavigable(node);\n                    }\n                  });\n                }, 1000);\n              });\n            }\n          }\n        });\n      });\n    }\n    return true;\n  }\n});\n}catch(ex){}\n})();\n/** file: mobile-fix-menu-issues.js */\n(function(){\ntry{\n\"use strict\";\n\nprofileEnabledInterval(\"accessMode\", () => {\n  const isMobileDevice = isMobile();\n  let isMenuOpen = false;\n  if (isMobileDevice) {\n    const menuControl = document.querySelector(\".mobile-menu-icon\");\n    if (menuControl) {\n      forceNavigable(menuControl);\n      menuControl.setAttribute(\"role\", \"button\");\n      menuControl.setAttribute(\"aria-haspopup\", \"dialog\");\n      menuControl.addEventListener(\"click\", () => {\n        isMenuOpen = true;\n        setTimeout(() => {\n          const mobileMenuContainer = document.querySelector(\"header nav\");\n          if (mobileMenuContainer) {\n            mobileMenuContainer.removeAttribute(\"role\");\n            mobileMenuContainer.setAttribute(\"role\", \"dialog\");\n            mobileMenuContainer.setAttribute(\"aria-modal\", \"true\");\n            mobileMenuContainer.setAttribute(\"data-acsb-overlay\", \"sidebar\");\n            mobileMenuContainer.setAttribute(\"aria-label\", \"Menu\");\n            mobileMenuContainer.setAttribute(\"tabindex\", \"-1\");\n            const closeMenuButton = mobileMenuContainer.querySelector(\"img.close-menu\");\n            if (closeMenuButton) {\n              forceNavigable(closeMenuButton);\n              setTimeout(() => {\n                closeMenuButton.setAttribute(\"role\", \"button\");\n                closeMenuButton.setAttribute(\"aria-label\", \"Close\");\n                closeMenuButton.focus();\n                const closeParent = closeMenuButton.parentElement;\n                if (closeParent) {\n                  closeParent.removeAttribute(\"role\");\n                  closeParent.removeAttribute(\"data-acsb-clickable\");\n                  closeParent.removeAttribute(\"data-acsb-navigable\");\n                  closeParent.removeAttribute(\"data-acsb-now-navigable\");\n                  closeParent.removeAttribute(\"tabindex\");\n                }\n              }, 1000);\n              if (!closeMenuButton.getAttribute(\"listener-added\")) {\n                closeMenuButton.setAttribute(\"listener-added\", \"\");\n                closeMenuButton.addEventListener(\"click\", () => {\n                  menuControl.focus();\n                  isMenuOpen = false;\n                });\n              }\n            }\n            setTimeout(() => {\n              if (isMenuOpen) {\n                var _mobileMenuContainer$;\n                const allInteractiveElements = Array.from(mobileMenuContainer.querySelectorAll(\"a, button, [tabindex]\")).filter(el => el.tabIndex !== -1 || !el.tabIndex);\n                const lastEl = allInteractiveElements[allInteractiveElements.length - 1];\n                const loginButton = (_mobileMenuContainer$ = mobileMenuContainer.querySelector(\"ul\")) === null || _mobileMenuContainer$ === void 0 ? void 0 : _mobileMenuContainer$.lastElementChild.querySelector(\"a\");\n                if (lastEl) {\n                  lastEl.addEventListener(\"focusout\", () => {\n                    if (loginButton && document.activeElement.contains(loginButton)) {\n                      closeMenuButton === null || closeMenuButton === void 0 || closeMenuButton.focus();\n                    }\n                  });\n                }\n              }\n            }, 1000);\n          }\n        }, 500);\n      });\n    }\n    return true;\n  }\n});\n}catch(ex){}\n})();\n/** file: mobile-fix-quiz-issues.js */\n(function(){\ntry{\n\"use strict\";\n\nprofileEnabledInterval(\"accessMode\", () => {\n  const isMobileDevice = isMobile();\n  if (isMobileDevice) {\n    const quizContainer = document.querySelector(\"#preeziehome\");\n    if (quizContainer) {\n      const observer = new MutationObserver(mutationCallback);\n      const config = {\n        childList: true,\n        subtree: true\n      };\n      observer.observe(quizContainer, config);\n    }\n    function mutationCallback(mutations) {\n      mutations.forEach(() => {\n        if (quizContainer.childNodes.length > 1) {\n          quizContainer.removeAttribute(\"aria-hidden\");\n          quizContainer.removeAttribute(\"data-acsb-hidden\");\n          quizContainer.querySelectorAll('[aria-hidden=\"true\"]').forEach(hiddenEl => {\n            hiddenEl.removeAttribute(\"aria-hidden\");\n            hiddenEl.removeAttribute(\"data-acsb-hidden\");\n          });\n          quizContainer.querySelectorAll('[role=\"radio\"]').forEach(radioEl => {\n            radioEl.removeAttribute(\"tabindex\");\n            radioEl.removeAttribute(\"data-acsb-navigable\");\n            radioEl.removeAttribute(\"data-acsb-now-navigable\");\n            forceNavigable(radioEl);\n          });\n        }\n      });\n    }\n    return true;\n  }\n});\n}catch(ex){}\n})();\n/** file: video-popup-focus.js */\n(function(){\ntry{\n\"use strict\";\n\nprofileEnabledInterval(\"accessMode\", () => {\n  const id = \"acsb-outline-z-index-fix-style\";\n  if (document.getElementById(id)) {\n    return true;\n  }\n  const style = document.createElement(\"style\");\n  style.id = id;\n  style.textContent = \"\\n    .featherlight[role=\\\"dialog\\\"] {\\n      z-index: 2147483646;\\n    }\\n  \";\n  document.head.appendChild(style);\n  return true;\n});\n}catch(ex){}\n})();\n\n}catch(ex){}\n})();\n\n</script><style>\n/** file: banner-content-visible-on-focus.css */\n#main-hero-banner .slick-slide {\n    outline: none !important;\n}\n\n#main-hero-banner .slick-slide:focus {\n    border: none !important;\n}\n\n#main-hero-banner .slick-slide:focus > div {\n    outline: 3px solid #639af9 !important;\n    outline-offset: -3px !important;\n}\n\n</style>","addonAnalytics":true,"blockMeta":false,"blockImages":false,"blockStyles":false,"blockTextSimplifier":false,"widgetSettings":null,"featureFlags":{"text-simplifier":false}}