{"time":"2026-01-01T00:06:38.299Z","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: cart-corrections.js */\n(function(){\ntry{\n\"use strict\";\n\nprofileEnabledInterval(\"accessMode\", () => {\n  const cartDialog = document.querySelector(\".cart.drawer\");\n  if (!cartDialog) return false;\n  const observer = new MutationObserver(mutations => {\n    mutations.forEach(_ref => {\n      var _target$matches, _target$matches2;\n      let {\n        target,\n        addedNodes\n      } = _ref;\n      if (target === cartDialog) {\n        if (target.classList.contains(\"active\")) {\n          (cartDialog.querySelector(\"[data-acsb-navigable='true']\") || cartDialog).focus();\n        }\n        if (target.getAttribute(\"aria-label\") !== \"Your cart\") {\n          target.setAttribute(\"aria-label\", \"Your cart\");\n        }\n        return;\n      }\n      if (target === drawerClose) {\n        if (target.hasAttribute(\"role\")) target.removeAttribute(\"role\");\n        return;\n      }\n      if (target === cartContentWrapper && addedNodes !== null && addedNodes !== void 0 && addedNodes.length) {\n        target.querySelectorAll(\".ajaxcart__item .ajax__item__remove\").forEach(removeBtn => {\n          if (removeBtn.hasAttribute(\"observer-attached\")) return;\n          observer.observe(removeBtn, {\n            attributeFilter: [\"role\"],\n            attributes: true\n          });\n          removeBtn.setAttribute(\"role\", \"button\");\n          removeBtn.setAttribute(\"observer-attached\", true);\n        });\n        updateCartFooter(true);\n        return;\n      }\n      if (cartFooter && target === cartFooter && addedNodes !== null && addedNodes !== void 0 && addedNodes.length) {\n        updateCheckboutBtn();\n        updateDeliveryInstructions();\n        return;\n      }\n      if ((_target$matches = target.matches) !== null && _target$matches !== void 0 && _target$matches.call(target, \".ajax__item__remove\")) {\n        if (target.getAttribute(\"role\") !== \"button\") {\n          target.setAttribute(\"role\", \"button\");\n        }\n        return;\n      }\n      if (target === checkoutLink) {\n        checkoutLink.removeAttribute(\"data-acsb-force-unnavigable\");\n        if (checkoutLink.getAttribute(\"tabindex\") !== \"0\") {\n          forceNavigable(checkoutLink);\n        }\n        if (checkoutLink.hasAttribute(\"aria-hidden\")) checkoutLink.removeAttribute(\"aria-hidden\");\n        if (checkoutLink.hasAttribute(\"data-acsb-hidden\")) checkoutLink.removeAttribute(\"data-acsb-hidden\");\n        if (checkoutLink.hasAttribute(\"role\")) checkoutLink.removeAttribute(\"role\");\n        return;\n      }\n      if (target === headerCartToggler) {\n        headerCartToggler.getAttribute(\"aria-haspopup\") !== \"dialog\" && target.setAttribute(\"aria-haspopup\", \"dialog\");\n        return;\n      }\n      if ((_target$matches2 = target.matches) !== null && _target$matches2 !== void 0 && _target$matches2.call(target, \".corso-info-content button.corso-info-icon\")) {\n        const textSpan = target.previousElementSibling;\n        if (textSpan && textSpan.tagName === \"SPAN\" && target.getAttribute(\"aria-label\") !== textSpan.innerText) {\n          target.setAttribute(\"aria-label\", textSpan.innerText);\n        }\n      }\n    });\n  });\n  observer.observe(cartDialog, {\n    attributeFilter: [\"class\"],\n    attributes: true\n  });\n  cartDialog.setAttribute(\"aria-label\", \"Your cart\");\n  cartDialog.addEventListener(\"focusout\", event => {\n    if (!cartDialog.classList.contains(\"active\")) return;\n    if (event.relatedTarget !== cartDialog && !cartDialog.contains(event.relatedTarget)) {\n      cartDialog.focus();\n    }\n  });\n  const drawerClose = cartDialog.querySelector(\".drawer__header.drawer__close\");\n  if (drawerClose) {\n    observer.observe(drawerClose, {\n      attributeFilter: [\"role\"],\n      attributes: true\n    });\n    drawerClose.removeAttribute(\"role\");\n  }\n  const cartContentWrapper = cartDialog.querySelector(\".ajaxcart > [data-ajaxcart-content]\");\n  if (cartContentWrapper) {\n    observer.observe(cartContentWrapper, {\n      childList: true\n    });\n    cartContentWrapper.querySelectorAll(\".ajaxcart__item .ajax__item__remove\").forEach(removeBtn => {\n      if (removeBtn.hasAttribute(\"observer-attached\")) return;\n      observer.observe(removeBtn, {\n        attributeFilter: [\"role\"],\n        attributes: true\n      });\n      removeBtn.setAttribute(\"role\", \"button\");\n      removeBtn.setAttribute(\"observer-attached\", true);\n    });\n  }\n  const headerCartToggler = document.querySelector(\"header .site-header__right button[data-desktop-open-cart]\");\n  if (headerCartToggler) {\n    observer.observe(headerCartToggler, {\n      attributeFilter: [\"aria-haspopup\"],\n      attributes: true\n    });\n    headerCartToggler.setAttribute(\"aria-haspopup\", \"dialog\");\n    headerCartToggler.setAttribute(\"aria-label\", \"Your cart\");\n  }\n  let cartFooter = cartDialog.querySelector(\".ajaxcart__footer\");\n  const updateCheckboutBtn = () => {\n    var _cartFooter;\n    const checkoutLink = (_cartFooter = cartFooter) === null || _cartFooter === void 0 ? void 0 : _cartFooter.querySelector(\"a[id*='checkout-button-corso-']\");\n    if (checkoutLink && !checkoutLink.hasAttribute(\"observer-attached\")) {\n      observer.observe(checkoutLink, {\n        attributeFilter: [\"aria-hidden\", \"tabindex\", \"data-acsb-hidden\", \"role\"],\n        attributes: true\n      });\n      checkoutLink.removeAttribute(\"aria-hidden\");\n      checkoutLink.removeAttribute(\"data-acsb-hidden\");\n      checkoutLink.removeAttribute(\"data-acsb-force-unnavigable\");\n      checkoutLink.removeAttribute(\"role\");\n      forceNavigable(checkoutLink);\n      checkoutLink.setAttribute(\"observer-attached\", true);\n    }\n  };\n  const updateDeliveryInstructions = () => {\n    var _cartFooter2;\n    const deliveryInstructions = (_cartFooter2 = cartFooter) === null || _cartFooter2 === void 0 ? void 0 : _cartFooter2.querySelector(\".corso-info-content button.corso-info-icon\");\n    if (deliveryInstructions && !deliveryInstructions.hasAttribute(\"observer-attached\")) {\n      observer.observe(deliveryInstructions, {\n        attributeFilter: [\"aria-label\", \"aria-haspopup\"],\n        attributes: true\n      });\n      deliveryInstructions.setAttribute(\"aria-haspopup\", true);\n      deliveryInstructions.setAttribute(\"observer-attached\", true);\n      const textSpan = deliveryInstructions.previousElementSibling;\n      if (textSpan && textSpan.tagName === \"SPAN\") {\n        deliveryInstructions.setAttribute(\"aria-label\", textSpan.innerText);\n      }\n    }\n  };\n  const updateCartFooter = refresh => {\n    if (refresh) cartFooter = cartDialog.querySelector(\".ajaxcart__footer\");\n    if (!cartFooter || cartFooter.hasAttribute(\"observer-attached\")) return;\n    observer.observe(cartFooter, {\n      childList: true\n    });\n    updateCheckboutBtn();\n    updateDeliveryInstructions();\n    cartFooter.setAttribute(\"observer-attached\", true);\n  };\n  if (cartFooter) {\n    updateCartFooter();\n  }\n  return true;\n});\n}catch(ex){}\n})();\n/** file: form-errors-announcement.js */\n(function(){\ntry{\n\"use strict\";\n\nif (window.location.pathname.includes(\"account\")) {\n  profileEnabledInterval(\"accessMode\", () => {\n    const errors = document.querySelector(\".errors\");\n    if (errors) {\n      errors.setAttribute(\"tabindex\", -1);\n      errors.focus();\n      return true;\n    }\n  });\n}\n}catch(ex){}\n})();\n/** file: skip-to-content-correction.js */\n(function(){\ntry{\n\"use strict\";\n\nprofileEnabledInterval(\"accessMode\", () => {\n  var _skipLinkContainer$sh;\n  const skipLinkContainer = document.querySelector('access-widget-ui[data-acsb=\"skipLinks\"]');\n  const skipToContentLink = skipLinkContainer === null || skipLinkContainer === void 0 || (_skipLinkContainer$sh = skipLinkContainer.shadowRoot) === null || _skipLinkContainer$sh === void 0 ? void 0 : _skipLinkContainer$sh.querySelector(\".skip-links a[href='#acsbContent']\");\n  if (!skipToContentLink) return false;\n  const mainWrapper = document.querySelector(\"main#siteContent\");\n  if (mainWrapper) {\n    skipToContentLink.addEventListener(\"keydown\", event => {\n      if (event.code !== \"Enter\") return;\n      event.preventDefault();\n      mainWrapper.scrollIntoView({\n        behavior: \"smooth\"\n      });\n      mainWrapper.setAttribute(\"tabindex\", -1);\n      mainWrapper.tagName !== \"MAIN\" && mainWrapper.setAttribute(\"role\", \"main\");\n      mainWrapper.setAttribute(\"data-acsb-main\", true);\n      mainWrapper.focus();\n      event.target.blur();\n      setTimeout(() => {\n        mainWrapper.removeAttribute(\"tabindex\");\n      }, 2000);\n    });\n  }\n  return true;\n});\n}catch(ex){}\n})();\n\n}catch(ex){}\n})();\n\n</script><style>\n\n</style>","addonAnalytics":true,"blockMeta":false,"blockImages":true,"blockStyles":true,"blockTextSimplifier":false,"widgetSettings":null,"featureFlags":{"text-simplifier":false}}