{
  "version": 3,
  "sources": ["/cdn/shop/t/996/assets/a11y-fixes.js?utm_bot_source=7516fd43adaa"],
  "sourcesContent": ["// Fix for 90\nfunction removeLiTabindex() {\n  const root = document.querySelector('.browse-by-cat-desk');\n  if (!root) return;\n  root.setAttribute('role', 'none');\n  const strip = (li) => {\n    if (li && li.tagName === 'LI' && li.hasAttribute('tabindex')) {\n      li.removeAttribute('tabindex');\n    }\n  };\n  root.querySelectorAll('li[tabindex]').forEach(strip);\n  const observer = new MutationObserver(mutations => {\n    for (const m of mutations) {\n      if (\n        m.type === 'attributes' &&\n        m.attributeName === 'tabindex' &&\n        m.target.tagName === 'LI'\n      ) {\n        strip(m.target);\n      }\n      if (m.type === 'childList' && m.addedNodes.length) {\n        m.addedNodes.forEach(node => {\n          if (node.nodeType === 1) {\n            if (node.tagName === 'LI') strip(node);\n            node.querySelectorAll?.('li[tabindex]').forEach(strip);\n          }\n        });\n      }\n    }\n  });\n  observer.observe(root, {\n    subtree: true,\n    attributes: true,\n    attributeFilter: ['tabindex'],\n    childList: true\n  });\n}\n\n// Fix for ALY-51\nfunction removeReviewsWidgetTabindex() {\n  const removeTabindexFromTargets = () => {\n    const headerEl = document.querySelector('div.header__group.header__group--left > div:first-child[tabindex=\"0\"]');\n    if (headerEl) headerEl.removeAttribute('tabindex');\n    const ratingStarsEl = document.querySelector('.R-RatingStars[tabindex=\"0\"]');\n    if (ratingStarsEl) ratingStarsEl.removeAttribute('tabindex');\n  };\n  removeTabindexFromTargets();\n  new MutationObserver(removeTabindexFromTargets).observe(document.body, { childList: true, subtree: true });\n}\n\nfunction initStandaloneRatingSnippetFocus() {\n  function updateStandaloneSnippets() {\n    document.querySelectorAll('.ruk_rating_snippet[role=\"button\"]').forEach((snippet) => {\n      if (snippet.closest('a')) return;\n\n      snippet.setAttribute('tabindex', '0');\n    });\n  }\n\n  updateStandaloneSnippets();\n\n  const observer = new MutationObserver(() => {\n    requestAnimationFrame(updateStandaloneSnippets);\n  });\n\n  observer.observe(document.body, {\n    childList: true,\n    subtree: true\n  });\n}\n\n// Fix for ALY-56\nfunction initShipInsureTooltip() {\n  const initialize = () => {\n    const tooltipWrapper = document.querySelector('#ship-insure-tooltip');\n    if (!tooltipWrapper || tooltipWrapper.dataset.tooltipInit === 'true') return;\n    const tooltipText = tooltipWrapper.querySelector('p');\n    if (!tooltipText) return;\n    tooltipWrapper.dataset.tooltipInit = 'true';\n    tooltipWrapper.setAttribute('tabindex', '0');\n    tooltipWrapper.setAttribute('role', 'button');\n    tooltipWrapper.setAttribute('aria-describedby', 'ship-insure-tooltip-text');\n    tooltipWrapper.setAttribute('aria-expanded', 'false');\n    tooltipText.id = 'ship-insure-tooltip-text';\n    tooltipText.setAttribute('role', 'tooltip');\n    tooltipText.setAttribute('aria-hidden', 'true');\n    const update = (open) => {\n      tooltipWrapper.setAttribute('aria-expanded', String(open));\n      tooltipText.setAttribute('aria-hidden', String(!open));\n      tooltipWrapper.classList.toggle('ship-insure-tooltip-open', open);\n      if (open) attachEscapeHandler();\n      else detachEscapeHandler();\n    };\n    const attachEscapeHandler = () => {\n      if (tooltipWrapper.__docKeyHandler) return;\n      tooltipWrapper.__docKeyHandler = (e) => {\n        if ((e.key === 'Escape' || e.key === 'Esc') &&\n            tooltipWrapper.getAttribute('aria-expanded') === 'true') {\n          e.preventDefault();\n          e.stopImmediatePropagation();\n          update(false);\n        }\n      };\n\n      document.addEventListener('keydown', tooltipWrapper.__docKeyHandler, true);\n    };\n\n    const detachEscapeHandler = () => {\n      if (!tooltipWrapper.__docKeyHandler) return;\n\n      document.removeEventListener(\n        'keydown',\n        tooltipWrapper.__docKeyHandler,\n        true\n      );\n      delete tooltipWrapper.__docKeyHandler;\n    };\n    tooltipWrapper.addEventListener('mouseenter', () => update(true));\n    tooltipWrapper.addEventListener('mouseleave', () => update(false));\n    tooltipWrapper.addEventListener('keydown', (e) => {\n      if (e.key === 'Enter' || e.key === ' ' || e.key === 'Spacebar') {\n        e.preventDefault();\n        update(tooltipWrapper.getAttribute('aria-expanded') !== 'true');\n        tooltipWrapper.focus();\n      }\n    });\n    tooltipWrapper.addEventListener('click', (e) => {\n      e.stopPropagation();\n      update(tooltipWrapper.getAttribute('aria-expanded') !== 'true');\n      tooltipWrapper.focus();\n    });\n\n    const docClick = (e) => {\n      if (!tooltipWrapper.contains(e.target)) update(false);\n    };\n    document.addEventListener('click', docClick);\n    const removalObserver = new MutationObserver(() => {\n      if (!document.body.contains(tooltipWrapper)) {\n        detachEscapeHandler();\n        document.removeEventListener('click', docClick);\n        removalObserver.disconnect();\n      }\n    });\n    removalObserver.observe(document.body, { childList: true, subtree: true });\n    update(false);\n  };\n  initialize();\n  const observer = new MutationObserver(initialize);\n  observer.observe(document.body, { childList: true, subtree: true });\n}\n\n// Fix for ALY-81\nfunction reorderReviewHeadings() {\n  function processReview(review) {\n    const textBlock = review.querySelector(\n      '.u-displayFlex.u-flexAlignItems--center.u-columnGap--xxxs.u-rowGap--xxs.u-flexWrap--wrap.u-marginBottom--xs'\n    );\n    const rating = review.querySelector(\n      '.R-RatingStars.R-RatingStars--sm'\n    );\n    if (!textBlock || !rating) return;\n    const parent = textBlock.parentElement;\n    if (!parent || rating.parentElement !== parent) return;\n    if (textBlock.nextElementSibling === rating) return;\n    parent.insertBefore(rating, textBlock.nextElementSibling);\n  }\n\n  function handleNode(node) {\n    if (node.nodeType !== 1) return;\n    if (node.matches('.R-ContentList__item')) {\n      processReview(node);\n    }\n    node\n      .querySelectorAll?.('.R-ContentList__item')\n      .forEach(processReview);\n  }\n  document\n    .querySelectorAll('.R-ContentList__item')\n    .forEach(processReview);\n\n  const panel = document.querySelector('#product-review-panel');\n  if (!panel) return;\n\n  const observer = new MutationObserver(mutations => {\n    mutations.forEach(mutation => {\n      mutation.addedNodes.forEach(handleNode);\n    });\n  });\n\n  observer.observe(panel, {\n    childList: true,\n    subtree: true\n  });\n}\n\n// Fix for ALY-49\nfunction initTabs(tablistSelector) {\n  const tablist = document.querySelector(tablistSelector);\n  if (!tablist) return;\n\n  function setupTabs() {\n    const tabs = Array.from(tablist.querySelectorAll('[role=\"tab\"]'));\n\n    tabs.forEach(tab => {\n      let panel = document.querySelector(`[aria-labelledby=\"${tab.id}\"]`) || document.getElementById(tab.getAttribute('aria-controls'));\n      if (!panel && tab.id === 'questions-tab') {\n        panel = document.querySelector('[aria-labelledby=\"questions-tab\"]');\n      }\n\n      if (panel) {\n        tab.setAttribute('aria-controls', panel.id || tab.getAttribute('aria-controls'));\n        panel.setAttribute('role', 'tabpanel');\n        panel.setAttribute('aria-labelledby', tab.id);\n        panel.hidden = tab.getAttribute('aria-selected') !== 'true';\n        panel.tabIndex = -1;\n      }\n    });\n\n    function activateTab(tab) {\n      tabs.forEach(t => {\n        const panel = document.querySelector(`[aria-labelledby=\"${t.id}\"]`) || document.getElementById(t.getAttribute('aria-controls'));\n        const isActive = t === tab;\n        t.setAttribute('aria-selected', isActive);\n        t.tabIndex = isActive ? 0 : -1;\n        if (panel) panel.hidden = !isActive;\n      });\n    }\n\n    tabs.forEach(tab => {\n      if (!tab.dataset.listenerAttached) {\n        tab.addEventListener('keydown', e => {\n          const currentIndex = tabs.indexOf(document.activeElement);\n          let newIndex;\n          if (e.key === 'ArrowRight') {\n            newIndex = (currentIndex + 1) % tabs.length;\n          } else if (e.key === 'ArrowLeft') {\n            newIndex = (currentIndex - 1 + tabs.length) % tabs.length;\n          }\n          if (newIndex !== undefined) {\n            tabs[newIndex].focus();\n            activateTab(tabs[newIndex]);\n            tabs[newIndex].click();\n            e.preventDefault();\n          }\n        });\n\n        tab.addEventListener('click', () => {\n          activateTab(tab);\n        });\n\n        tab.dataset.listenerAttached = 'true';\n      }\n    });\n\n    const selected = tabs.find(t => t.getAttribute('aria-selected') === 'true') || tabs[0];\n    if (selected) activateTab(selected);\n  }\n\n  setupTabs();\n\n  const observer = new MutationObserver(() => {\n    setupTabs();\n  });\n  observer.observe(tablist, { childList: true, subtree: true });\n}\n\n// Fix for ALY-79\nfunction syncAriaSelected() {\n  const dropdownContainer = document.querySelector('.js-demo-sortdropdown');\n  const triggerButton = document.querySelector('.c-filters__triggerButton');\n  if (!dropdownContainer) return;\n  const innerElement = dropdownContainer.querySelector('.R-DropUpDownMenu__inner');\n  if (innerElement && innerElement.getAttribute('role') === 'group') {\n    innerElement.removeAttribute('role');\n  }\n  if (!dropdownContainer.getAttribute('role')) {\n    dropdownContainer.setAttribute('role', 'region');\n  }\n  if (!dropdownContainer.getAttribute('aria-label')) {\n    dropdownContainer.setAttribute('aria-label', 'Sort');\n  }\n\n  const groupHeadings = dropdownContainer.querySelectorAll('.R-DropUpDownMenu__item.u-cursorDefault.c-dropdown__group__heading');\n  groupHeadings.forEach(heading => {\n    if (!heading.getAttribute('role')) {\n      heading.setAttribute('role', 'heading');\n      heading.setAttribute('aria-level', '3');\n    }\n  });\n\n  const checkmarkIcons = dropdownContainer.querySelectorAll('.ricon-checkmark.item__activeIcon.u-marginLeft--sm');\n  checkmarkIcons.forEach(icon => {\n    if (!icon.querySelector('.visually-hidden')) {\n      const hiddenSpan = document.createElement('span');\n      hiddenSpan.className = 'visually-hidden';\n      hiddenSpan.textContent = 'selected';\n      icon.appendChild(hiddenSpan);\n    }\n  });\n\n  const focusable = dropdownContainer.querySelectorAll('[tabindex=\"0\"]');\n  if (focusable.length > 0) {\n    const first = focusable[0];\n    const last = focusable[focusable.length - 1];\n\n    focusable.forEach(el => {\n      if (!el.hasAttribute('data-focus-init')) {\n        el.setAttribute('data-focus-init', 'true');\n        el.addEventListener('keydown', e => {\n          if (e.key === 'Tab') {\n            if (e.shiftKey && el === first) {\n              e.preventDefault();\n              last.focus();\n            } else if (!e.shiftKey && el === last) {\n              e.preventDefault();\n              first.focus();\n            }\n          }\n        });\n      }\n    });\n  }\n\n  if (!dropdownContainer.hasAttribute('data-esc-init')) {\n\tdropdownContainer.setAttribute('data-esc-init', 'true');\n\tdropdownContainer.addEventListener('keydown', e => {\n\t\tif (e.key === 'Escape') {\n\t\tconst liveRegion = document.getElementById('liveRegion');\n\t\tif (liveRegion) liveRegion.setAttribute('aria-live', 'off');\n\t\tconst activeButton = document.querySelector('.R-DropUpDownMenu__item.isActive[role=\"button\"]');\n\t\tif (activeButton) activeButton.click();\n\t\tsetTimeout(() => {\n\t\t\tif (liveRegion) liveRegion.setAttribute('aria-live', 'polite');\n\t\t\ttriggerButton.focus();\n\t\t}, 200);\n\t\t}\n\t});\n  }\n  if (!window.__sortObserverAttached) {\n    window.__sortObserverAttached = true;\n\n    let observerTimeout;\n    const debounced = () => {\n      clearTimeout(observerTimeout);\n      observerTimeout = setTimeout(syncAriaSelected, 120);\n    };\n\n    const observer = new MutationObserver(mutations => {\n      for (const mutation of mutations) {\n        if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {\n          for (const node of mutation.addedNodes) {\n            if (\n              node.nodeType === 1 &&\n              (node.classList?.contains('js-demo-sortdropdown') ||\n                node.querySelector?.('.js-demo-sortdropdown') ||\n                node.querySelector?.('.R-DropUpDownMenu__inner') ||\n                node.querySelector?.('.ricon-checkmark.item__activeIcon'))\n            ) {\n              debounced();\n              return;\n            }\n          }\n        }\n      }\n    });\n\n    observer.observe(document.body, {\n      childList: true,\n      subtree: true\n    });\n  }\n}\n\n// Fix for ALY-86\nfunction fixGiftCardRadioGrouping() {\n  const swatchWrapper = document.querySelector('.swatch-variants-wrapper');\n  if (!swatchWrapper) return;\n  if (swatchWrapper.closest('fieldset')) return;\n  const fieldset = document.createElement('fieldset');\n  const legend = document.createElement('legend');\n  legend.textContent = \"Choose gift card amount\";\n  legend.classList.add('visually-hidden');\n  swatchWrapper.parentNode.insertBefore(fieldset, swatchWrapper);\n  fieldset.appendChild(legend);\n  fieldset.appendChild(swatchWrapper);\n}\n\n// Fix for ALY-47\nfunction setLogoBarAltTags() {\n  const logoNames = [\n    'Vogue',\n    'Vanity Fair',\n    'Glamour',\n    \"Harper's Bazaar\",\n    'ELLE',\n    'The Oprah Magazine'\n  ];\n\n  const logoBar = document.querySelector('.logo-bar');\n\n  if (logoBar) {\n    const images = logoBar.querySelectorAll(\n      'img.logo-bar__image:not(.js-no-alt)'\n    );\n\n    images.forEach((img, index) => {\n      if (index < logoNames.length) {\n        img.alt = logoNames[index];\n      }\n    });\n  }\n\n  const logoContainer = document.querySelector('.logo-container');\n\n  if (logoContainer) {\n    const images = logoContainer.querySelectorAll('img.logo-img');\n\n    images.forEach((img) => {\n      const src = img.src.toLowerCase();\n\n      if (src.includes('elle')) {\n        img.alt = 'ELLE';\n      } else if (src.includes('harper')) {\n        img.alt = \"Harper's Bazaar\";\n      } else if (src.includes('glamour')) {\n        img.alt = 'Glamour';\n      } else if (src.includes('vogue')) {\n        img.alt = 'Vogue';\n      } else if (src.includes('vanity')) {\n        img.alt = 'Vanity Fair';\n      } else if (src.includes('oprah')) {\n        img.alt = 'The Oprah Magazine';\n      }\n    });\n  }\n}\n\n// Fix For ALY-19\nfunction disableAutoplayForAnnouncementBar() {\n  const sliderContainer = document.querySelector(\".announcement-bar-inner\");\n  if (!sliderContainer) return;\n  if ($(sliderContainer).hasClass(\"slick-initialized\")) {\n    $(sliderContainer).slick(\"slickPause\");\n  } else {\n    $(sliderContainer).on(\"init\", function () {\n      $(sliderContainer).slick(\"slickPause\");\n    });\n  }\n}\n\n// Fix for ALY-55 and ALY-54\nfunction cartModalFocusTrap() {\n  let activeModal = null;\n  let activeKeyHandler = null;\n  let removalObserver = null;\n  let originalTrigger = null;\n  let idCounter = 0;\n\n  const getFocusableElements = (container) => {\n    const selectors = `\n      a[href], area[href], input:not([disabled]):not([type=\"hidden\"]),\n      select:not([disabled]), textarea:not([disabled]),\n      button:not([disabled]), iframe, object, embed,\n      [tabindex]:not([tabindex=\"-1\"]), [contenteditable]:not([contenteditable=\"false\"])\n    `;\n    return Array.from(container.querySelectorAll(selectors))\n      .filter(el => el.offsetParent !== null && getComputedStyle(el).visibility !== \"hidden\");\n  };\n\n  const findTriggerElement = () => {\n    let trigger = document.activeElement;\n    if (trigger && (trigger.closest('.js-drawer-open-right-link') || trigger.closest('.site-header__cart-toggle'))) {\n      return trigger;\n    }\n    return document.querySelector('.js-drawer-open-right-link, .site-header__cart-toggle, a[aria-label^=\"Cart\"]');\n  };\n\n  const restoreFocus = () => {\n    let target = originalTrigger && document.contains(originalTrigger) ? originalTrigger : findTriggerElement();\n    if (target && target.focus) setTimeout(() => target.focus({ preventScroll: true }), 30);\n  };\n\n  const cleanup = () => {\n    if (activeModal && activeKeyHandler) {\n      activeModal.removeEventListener(\"keydown\", activeKeyHandler);\n      activeModal.removeAttribute(\"data-focus-trapped\");\n    }\n    if (removalObserver) removalObserver.disconnect();\n    activeModal = null;\n    activeKeyHandler = null;\n    originalTrigger = null;\n    removalObserver = null;\n  };\n\n  const setupTrap = (modal) => {\n    if (modal.hasAttribute(\"data-focus-trapped\")) return true;\n\n    modal.setAttribute(\"data-focus-trapped\", \"true\");\n    modal.setAttribute(\"role\", \"dialog\");\n    modal.setAttribute(\"aria-modal\", \"true\");\n\n    const title = modal.querySelector(\".sidecart__title span\");\n    if (title && !title.id) {\n      title.id = \"cart-dialog-title-\" + (++idCounter);\n      modal.setAttribute(\"aria-labelledby\", title.id);\n    }\n    const desc = modal.querySelector(\".sidecart-inner\");\n    if (desc && !desc.id) {\n      desc.id = \"cart-dialog-desc-\" + (++idCounter);\n      modal.setAttribute(\"aria-describedby\", desc.id);\n    }\n\n    const closeButton = modal.querySelector('.sidecart__close button, [aria-label=\"Close Cart\"], .js-drawer-close button');\n\n    const keyHandler = (e) => {\n      const focusable = getFocusableElements(modal);\n      if (focusable.length === 0) return;\n\n      const first = focusable[0];\n      const last = focusable[focusable.length - 1];\n\n      if (e.key === \"Tab\") {\n        if (e.shiftKey && document.activeElement === first) {\n          e.preventDefault();\n          last.focus();\n        } else if (!e.shiftKey && document.activeElement === last) {\n          e.preventDefault();\n          first.focus();\n        }\n      } else if (e.key === \"Escape\") {\n        e.preventDefault();\n        if (closeButton) closeButton.click();\n        else {\n          const fallback = modal.querySelector('.js-drawer-close button, .sidecart__close button');\n          if (fallback) fallback.click();\n        }\n      }\n    };\n\n    modal.addEventListener(\"keydown\", keyHandler);\n    activeKeyHandler = keyHandler;\n\n    setTimeout(() => {\n      const focusable = getFocusableElements(modal);\n      if (focusable.length) focusable[0].focus();\n    }, 100);\n\n    removalObserver = new MutationObserver((mutations) => {\n      for (const mutation of mutations) {\n        if (mutation.removedNodes.length && !document.body.contains(modal)) {\n          cleanup();\n          restoreFocus();\n          break;\n        }\n      }\n    });\n    removalObserver.observe(document.body, { childList: true, subtree: true });\n\n    return true;\n  };\n\n  const tryFindAndTrap = () => {\n    if (activeModal) return true;\n\n    const possibleSelectors = [\n      '.sidecart-wrapper',\n      '.drawer--cart',\n      '.drawer--right',\n      '[class*=\"sidecart\"]',\n      '[class*=\"drawer--cart\"]',\n      '.right-drawer-vue > div'\n    ];\n\n    let modal = null;\n    for (const selector of possibleSelectors) {\n      const el = document.querySelector(selector);\n      if (el && (el.offsetParent !== null || getComputedStyle(el).display !== 'none')) {\n        modal = el;\n        break;\n      }\n    }\n\n    if (!modal) return false;\n\n    if (!originalTrigger) originalTrigger = findTriggerElement();\n    return setupTrap(modal);\n  };\n\n  const bodyObserver = new MutationObserver(() => {\n    if (!activeModal) tryFindAndTrap();\n  });\n  bodyObserver.observe(document.body, { childList: true, subtree: true });\n\n  setTimeout(tryFindAndTrap, 500);\n\n  const attachCartLinkListeners = () => {\n    const cartLinks = document.querySelectorAll('.js-drawer-open-right-link, .site-header__cart-toggle, a[aria-label^=\"Cart\"]');\n    cartLinks.forEach(link => {\n      if (link.hasAttribute('data-focus-listener')) return;\n      link.setAttribute('data-focus-listener', 'true');\n      link.addEventListener('click', () => {\n        originalTrigger = link;\n        if (activeModal) cleanup();\n      });\n    });\n  };\n\n  attachCartLinkListeners();\n  const linkObserver = new MutationObserver(attachCartLinkListeners);\n  linkObserver.observe(document.body, { childList: true, subtree: true });\n}\n// Fix For ALY-18\nfunction updateCartAriaLabel() {\n  const cartLink = document.querySelector(\".site-header__cart-toggle\");\n  if (!cartLink) return;\n  if (!cartLink.dataset.baseLabel) {\n    cartLink.dataset.baseLabel =\n      cartLink.getAttribute(\"aria-label\") || \"Cart\";\n  }\n  const baseLabel = cartLink.dataset.baseLabel;\n  const quantityEl = cartLink.querySelector(\n    \".cart-item-count-header--quantity\"\n  );\n  let quantity = 0;\n\n  if (quantityEl && !quantityEl.classList.contains(\"hide\")) {\n    quantity = parseInt(quantityEl.textContent.trim(), 10) || 0;\n  }\n  let newLabel = baseLabel;\n  if (quantity > 0) {\n    newLabel = `${baseLabel} ${quantity} ${quantity === 1 ? \"item\" : \"items\"}`;\n  }\n  cartLink.setAttribute(\"aria-label\", newLabel);\n}\n\nfunction observeCartQuantity() {\n  const quantityEl = document.querySelector(\n    \".cart-item-count-header--quantity\"\n  );\n  if (!quantityEl) return;\n  const observer = new MutationObserver(updateCartAriaLabel);\n  observer.observe(quantityEl, {\n    childList: true,\n    subtree: true,\n    characterData: true,\n  });\n}\n\n// Fix for ALY-79 \nfunction syncAriaSelected() {\n  const dropdownContainer = document.querySelector('.js-demo-sortdropdown');\n  const triggerButton = document.querySelector('.c-filters__triggerButton');\n  if (!dropdownContainer) return;\n\n  const innerElement = dropdownContainer.querySelector('.R-DropUpDownMenu__inner');\n  if (innerElement && innerElement.getAttribute('role') === 'group') {\n    innerElement.removeAttribute('role');\n  }\n\n  if (!dropdownContainer.getAttribute('role')) {\n    dropdownContainer.setAttribute('role', 'region');\n  }\n\n  if (!dropdownContainer.getAttribute('aria-label')) {\n    dropdownContainer.setAttribute('aria-label', 'Sort');\n  }\n\n  const groupHeadings = dropdownContainer.querySelectorAll('.R-DropUpDownMenu__item.u-cursorDefault.c-dropdown__group__heading');\n  groupHeadings.forEach((heading, index) => {\n    if (!heading.getAttribute('role')) {\n      heading.setAttribute('role', 'heading');\n      heading.setAttribute('aria-level', '3');\n    }\n    if (!heading.id) {\n      heading.id = 'dropdown-group-heading-' + index;\n    }\n  });\n\n  const dropdownGroups = dropdownContainer.querySelectorAll('.u-marginBottom--sm.c-filters__dropdown__group');\n  dropdownGroups.forEach((group, index) => {\n    if (!group.hasAttribute('role')) {\n      group.setAttribute('role', 'group');\n    }\n\n    const heading = group.querySelector('.R-DropUpDownMenu__item.u-cursorDefault.c-dropdown__group__heading');\n    if (heading) {\n      if (!heading.id) {\n        heading.id = 'dropdown-group-heading-' + index;\n      }\n      group.setAttribute('aria-labelledby', heading.id);\n    }\n  });\n\n  const checkmarkIcons = dropdownContainer.querySelectorAll('.ricon-checkmark.item__activeIcon.u-marginLeft--sm');\n  checkmarkIcons.forEach(icon => {\n    if (!icon.querySelector('.visually-hidden')) {\n      const hiddenSpan = document.createElement('span');\n      hiddenSpan.className = 'visually-hidden';\n      hiddenSpan.textContent = 'selected';\n      icon.appendChild(hiddenSpan);\n    }\n  });\n\n  const focusable = dropdownContainer.querySelectorAll('[tabindex=\"0\"]');\n  if (focusable.length > 0) {\n    const first = focusable[0];\n    const last = focusable[focusable.length - 1];\n\n    focusable.forEach(el => {\n      if (!el.hasAttribute('data-focus-init')) {\n        el.setAttribute('data-focus-init', 'true');\n        el.addEventListener('keydown', e => {\n          if (e.key === 'Tab') {\n            if (e.shiftKey && el === first) {\n              e.preventDefault();\n              last.focus();\n            } else if (!e.shiftKey && el === last) {\n              e.preventDefault();\n              first.focus();\n            }\n          }\n        });\n      }\n    });\n  }\n\n  if (!dropdownContainer.hasAttribute('data-esc-init')) {\n    dropdownContainer.setAttribute('data-esc-init', 'true');\n    dropdownContainer.addEventListener('keydown', e => {\n      if (e.key === 'Escape') {\n        const liveRegion = document.getElementById('liveRegion');\n        if (liveRegion) liveRegion.setAttribute('aria-live', 'off');\n\n        const activeButton = document.querySelector('.R-DropUpDownMenu__item.isActive[role=\"button\"]');\n        if (activeButton) activeButton.click();\n\n        setTimeout(() => {\n          if (liveRegion) liveRegion.setAttribute('aria-live', 'polite');\n          triggerButton.focus();\n        }, 200);\n      }\n    });\n  }\n\n  if (!window.__sortObserverAttached) {\n    window.__sortObserverAttached = true;\n\n    let observerTimeout;\n    const debounced = () => {\n      clearTimeout(observerTimeout);\n      observerTimeout = setTimeout(syncAriaSelected, 120);\n    };\n\n    const observer = new MutationObserver(mutations => {\n      for (const mutation of mutations) {\n        if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {\n          for (const node of mutation.addedNodes) {\n            if (\n              node.nodeType === 1 &&\n              (node.classList?.contains('js-demo-sortdropdown') ||\n                node.querySelector?.('.js-demo-sortdropdown') ||\n                node.querySelector?.('.R-DropUpDownMenu__inner') ||\n                node.querySelector?.('.ricon-checkmark.item__activeIcon'))\n            ) {\n              debounced();\n              return;\n            }\n          }\n        }\n      }\n    });\n\n    observer.observe(document.body, {\n      childList: true,\n      subtree: true\n    });\n  }\n}\n\n// Fix For ALY-76\nfunction fixBookmarkLinks(){\n  const links = document.querySelectorAll('.section-nav-container a');\n  if (!links || links.length === 0) return;\n  links.forEach(link => {\n    const targetId = link.getAttribute('href').substring(1);\n    const target = document.getElementById(targetId);\n    if (target && !target.hasAttribute('tabindex')) target.setAttribute('tabindex', '-1');\n\n    const setFocus = () => {\n      if (!target) return;\n      target.scrollIntoView({ block: 'start', behavior: 'smooth' });\n      target.focus({ preventScroll: true });\n    };\n\n    link.addEventListener('click', setFocus);\n    link.addEventListener('keydown', e => {\n      if (e.key === 'Enter' || e.key === ' ') {\n        e.preventDefault();\n        setFocus();\n      }\n    });\n  });\n}\n\n\n// Fix for ALY-23 ALY-25 and ALY-26\nfunction initMobileNavDrawer() {\n  const trigger = document.querySelector('button[aria-label=\"Navigation\"]');\n  const drawer = document.getElementById('NavDrawer');\n  const closeBtn = drawer.querySelector('.mobile-menu--close-btn');\n  let lastFocusedElement = null;\n  if (!trigger || !drawer || !closeBtn) return;\n  if(closeBtn) closeBtn.setAttribute('tabindex','0');\n  const getFocusableElements = (container) => {\n    return Array.from(\n      container.querySelectorAll(\n        'a[href], button:not([disabled]), textarea, input, select, [tabindex]:not([tabindex=\"-1\"])'\n      )\n    ).filter((el) => el.offsetParent !== null);\n  };\n  const trapFocus = (e) => {\n    const focusableEls = getFocusableElements(drawer);\n    if (!focusableEls.length) return;\n    const firstEl = focusableEls[0];\n    const lastEl = focusableEls[focusableEls.length - 1];\n    if (e.key === 'Tab') {\n      if (e.shiftKey && document.activeElement === firstEl) {\n        e.preventDefault();\n        lastEl.focus();\n      } else if (!e.shiftKey && document.activeElement === lastEl) {\n        e.preventDefault();\n        firstEl.focus();\n      }\n    } else if (e.key === 'Escape') {\n      e.preventDefault();\n      closeDrawer();\n    }\n  };\n  const openDrawer = () => {\n    lastFocusedElement = document.activeElement;\n    drawer.classList.add('is-open');\n    trigger.setAttribute('aria-expanded', 'true');\n    requestAnimationFrame(() => {\n      const focusableEls = getFocusableElements(drawer);\n      if (focusableEls.length) focusableEls[0].focus();\n    });\n    document.addEventListener('keydown', trapFocus);\n  };\n  const closeDrawer = () => {\n    drawer.classList.remove('is-open');\n    trigger.setAttribute('aria-expanded', 'false');\n    if (lastFocusedElement) lastFocusedElement.focus();\n    document.removeEventListener('keydown', trapFocus);\n  };\n  const toggleDrawer = () => {\n    drawer.classList.contains('is-open') ? closeDrawer() : openDrawer();\n  };\n  trigger.addEventListener('click', toggleDrawer);\n  closeBtn.addEventListener('click', closeDrawer);\n}\n // Fix for ALY-78\nfunction addEmptyAltToFeatureImages() {\n  [\n    '.features-row',\n    '.ingredients-row'\n  ].forEach((selector) => {\n    const container = document.querySelector(selector);\n    if (!container) return;\n\n    container.querySelectorAll('img').forEach((img) => {\n      img.setAttribute('alt', '');\n    });\n  });\n}\n\n// Fix for ALY-6 ALY-7 ALY-13 and ALY-14\nfunction initPopupAccessibility() {\n  const observer = new MutationObserver(() => {\n    const heading = document.querySelector('div[data-testid=\"modal-form-container\"] .klaviyo-form-richtext div');\n    if (heading && !heading.hasAttribute(\"role\")) {\n      heading.setAttribute(\"role\", \"heading\");\n      heading.setAttribute(\"aria-level\", \"2\");\n    }\n\n    const inputs = document.querySelectorAll(\"div[data-testid='POPUP'] form input[name]\");\n    inputs.forEach(input => {\n      if (input.id && document.querySelector(`div[data-testid='POPUP'] label[for=\"${input.id}\"]`)) return;\n      if (!input.id) {\n        input.id = `input-${input.name}-${Math.random().toString(36).substr(2, 5)}`;\n      }\n      input.style.setProperty(\"border\", \"1px solid #626262\", \"important\");\n      const label = document.createElement(\"label\");\n      label.setAttribute(\"for\", input.id);\n      label.classList.add(\"custom-label\");\n      if (input.type === \"date\") {\n        label.textContent = \"Date of birth:\";\n      } else if (input.name.toLowerCase() === \"email\") {\n        label.textContent = \"Email Address:\";\n      } else {\n        label.textContent = input.name.charAt(0).toUpperCase() + input.name.slice(1) + \":\";\n      }\n      input.parentNode.insertBefore(label, input);\n    });\n\n    const modalImages = document.querySelectorAll(\"div[data-testid='POPUP'] img\");\n    modalImages.forEach(img => img.setAttribute(\"alt\",\"\"));\n  });\n\n  observer.observe(document.body, {\n    childList: true,\n    subtree: true\n  });\n}\n\n// Fix for ALY-80\nfunction initPaginationFix() {\n  'use strict';\n  const PAGINATION_SEL = '.R-PaginationControls';\n  const ITEM_SEL = '.R-PaginationControls__item';\n  const INNER_SEL = '.R-TextHeading';\n  function applyFixes() {\n    const pagination = document.querySelector(PAGINATION_SEL);\n    if (!pagination) return;\n    pagination.setAttribute('role', 'navigation');\n    pagination.setAttribute('aria-label', 'Pagination');\n    let listWrapper = pagination.querySelector('[data-aly-pagination-list]');\n    if (!listWrapper) {\n      listWrapper = document.createElement('div');\n      listWrapper.setAttribute('role', 'list');\n      listWrapper.setAttribute('data-aly-pagination-list', 'true');\n      [...pagination.children].forEach((child) => {\n        listWrapper.appendChild(child);\n      });\n      pagination.appendChild(listWrapper);\n    }\n    const items = listWrapper.querySelectorAll(ITEM_SEL);\n    items.forEach((item) => {\n      item.setAttribute('role', 'listitem');\n      item.removeAttribute('tabindex');\n      item.removeAttribute('aria-label');\n      item.removeAttribute('aria-current');\n      const inner = item.querySelector(INNER_SEL);\n      if (!inner) return;\n      const pageText = inner.textContent.trim();\n      const isEllipsis = pageText === '...';\n      if (isEllipsis) {\n        inner.removeAttribute('role');\n        inner.removeAttribute('tabindex');\n        inner.removeAttribute('aria-label');\n        inner.removeAttribute('aria-current');\n        return;\n      }\n      const isActive =\n        item.classList.contains('isActive') ||\n        item.classList.contains('Pagination__item--outline');\n      inner.setAttribute('role', 'button');\n      inner.setAttribute('tabindex', '0');\n      if (isActive) {\n        inner.setAttribute('aria-current', 'page');\n        inner.setAttribute('aria-label', `current page ${pageText}`);\n      } else {\n        inner.removeAttribute('aria-current');\n        inner.setAttribute('aria-label', `page ${pageText}`);\n      }\n    });\n  }\n  applyFixes();\n  const observer = new MutationObserver(() => {\n    requestAnimationFrame(applyFixes);\n  });\n  observer.observe(document.body, {\n    childList: true,\n    subtree: true\n  });\n}\n\n// Fix for ALY-38\nfunction labelQuickAddButtons() {\n  document.querySelectorAll(\".grid-view-item\").forEach((productEl, index) => {\n    const titleEl = productEl.querySelector(\"span.nt-product-title\");\n    const buttonEl = productEl.querySelector(\"button.quick-add-button\");\n\n    if (titleEl && buttonEl) {\n      const uniqueId = `${Date.now()}-${index}`;\n      const titleId = `product-title-${uniqueId}`;\n      const buttonId = `quick-add-${uniqueId}`;\n\n      titleEl.id = titleId;\n      buttonEl.id = buttonId;\n\n      buttonEl.setAttribute(\"aria-labelledby\", `${buttonId} ${titleId}`);\n    }\n  });\n}\n\n// Fix for ALY-41\nfunction removeTabindexFromRukRating(){\n  const observer = new MutationObserver(() => {\n    const elements = document.querySelectorAll('.ruk_rating_snippet[tabindex]');\n    if (elements.length) {\n      elements.forEach(element => {\n        element.removeAttribute('tabindex');\n      });\n    }\n  });\n  observer.observe(document.body, {\n    childList: true,\n    subtree: true\n  });\n}\n\n// Fix for ALY-15 and ALY-21\nfunction makeAccessibleMenuDropdowns() {\n  const parents = document.querySelectorAll(\n    \"#AccessibleNav .site-nav--has-dropdown\",\n  );\n  parents.forEach((parent) => {\n    const toggle = parent.querySelector(\n      \":scope > .menu-link .icon-dropdown\",\n    );\n    const link = parent.querySelector(\n      \":scope > .menu-link > a\",\n    );\n    const submenu = parent.querySelector(\n      \":scope > .site-nav__dropdown, :scope > .site-nav__subdropdown\",\n    );\n    if (!toggle || !submenu || !link) return;\n    submenu.hidden = true;\n    toggle.setAttribute(\n      \"aria-label\",\n      link.textContent.trim() + \" options\",\n    );\n    toggle.setAttribute(\"aria-expanded\", \"false\");\n    const activate = () => {\n      const expanded =\n        toggle.getAttribute(\"aria-expanded\") === \"true\";\n      toggle.setAttribute(\n        \"aria-expanded\",\n        String(!expanded),\n      );\n      submenu.hidden = expanded;\n      parent.classList.toggle(\"nav-hover\", !expanded);\n    };\n    const closeMenu = () => {\n      toggle.setAttribute(\"aria-expanded\", \"false\");\n      submenu.hidden = true;\n      parent.classList.remove(\"nav-hover\");\n    };\n    toggle.addEventListener(\"click\", (e) => {\n      e.preventDefault();\n      activate();\n    });\n    toggle.addEventListener(\"keydown\", (e) => {\n      if (e.key === \"Enter\" || e.key === \" \") {\n        e.preventDefault();\n        activate();\n      }\n      if (e.key === \"Escape\") {\n        e.preventDefault();\n        closeMenu();\n        toggle.focus();\n      }\n    });\n    submenu.addEventListener(\"keydown\", (e) => {\n      if (e.key === \"Escape\") {\n        e.preventDefault();\n        closeMenu();\n        toggle.focus();\n      }\n    });\n    parent.addEventListener(\"mouseenter\", () => {\n      submenu.hidden = false;\n      parent.classList.add(\"nav-hover\");\n      toggle.setAttribute(\"aria-expanded\", \"true\");\n    });\n    parent.addEventListener(\"mouseleave\", () => {\n      closeMenu();\n    });\n    link.addEventListener(\"focus\", () => {\n      closeMenu();\n    });\n    toggle.addEventListener(\"focus\", () => {\n      closeMenu();\n    });\n  });\n}\n\n// Fix for ALY-71\nfunction initMovingContentControl() {\n  const movingSections = document.querySelectorAll('[id^=\"rellax--template--\"]');\n  if (!movingSections.length) return;\n  movingSections.forEach(section => {\n    const images = section.querySelectorAll('img');\n    images.forEach(img => {\n      setTimeout(() => {\n        if (!img.complete) return;\n        const canvas = document.createElement('canvas');\n        const ctx = canvas.getContext('2d');\n        canvas.width = img.naturalWidth || img.width;\n        canvas.height = img.naturalHeight || img.height;\n        ctx.drawImage(img, 0, 0);\n        const dataUrl = canvas.toDataURL('image/png');\n        img.src = dataUrl;\n        img.srcset = '';\n      }, 5000);\n    });\n  });\n}\n\n// Fix for ALY-87\nfunction disableProductPriceLinks() {\n  const RATING_SELECTOR = '.ruk_rating_snippet';\n  function applyTabIndexFix() {\n    const priceSections = document.querySelectorAll('.product-grid--price');\n    priceSections.forEach((section) => {\n      const ratingLink = section.querySelector(\n        '.nt-rating-col-desktop a'\n      );\n      const priceLink = section.querySelector(\n        'a.limoniapps-discountninja-productprice'\n      );\n      if (!priceLink) return;\n      const ratingElement = ratingLink?.querySelector(RATING_SELECTOR);\n      const hasVisibleRating =\n        ratingElement &&\n        ratingElement.getAttribute('aria-hidden') !== 'true' &&\n        ratingElement.innerHTML.trim() !== '';\n      if (ratingLink) {\n        if (hasVisibleRating) {\n          ratingLink.removeAttribute('tabindex');\n        } else {\n          ratingLink.setAttribute('tabindex', '-1');\n        }\n      }\n      priceLink.setAttribute('tabindex', '-1');\n    });\n  }\n  applyTabIndexFix();\n  const observer = new MutationObserver(() => {\n    requestAnimationFrame(applyTabIndexFix);\n  });\n  observer.observe(document.body, {\n    childList: true,\n    subtree: true\n  });\n}\n\n// Fix for ALY-70\nfunction fixMarkupForTickIcon() {\n  const SEL = '.rte.featured-row__subtext.textarea';\n  const TICK = '\u2714\uFE0F';\n\n  const process = el => el.querySelectorAll('p').forEach(p => {\n    if (!p.dataset.done && p.textContent.trim().startsWith(TICK)) {\n      p.innerHTML = `<span aria-hidden=\"true\">${TICK}</span> ${p.textContent.trim().slice(TICK.length).trimStart()}`;\n      p.dataset.done = 1;\n    }\n  });\n\n  const observer = new MutationObserver(() => {\n    document.querySelectorAll(SEL).forEach(process);\n  });\n\n  const init = () => {\n    document.querySelectorAll(SEL).forEach(el => {\n      process(el);\n      observer.observe(el, { childList: true, subtree: true });\n    });\n  };\n\n  const ready = () => document.querySelector(SEL) && init();\n\n  if (!ready()) {\n    const timer = setInterval(() => {\n      if (ready()) clearInterval(timer);\n    }, 300);\n  }\n}\n\nfunction applyShopRefreshStyles() {\n  const targetPath = \"/pages/shop-refresh\";\n  if (window.location.pathname !== targetPath) return;\n  const buttons = document.querySelectorAll(\"button.quick-add-button\");\n  buttons.forEach((btn) => {\n    if (btn.classList.contains(\"style-applied\")) return;\n    btn.style.setProperty(\"background\", \"#DFD6BF\", \"important\");\n    btn.style.setProperty(\"color\", \"#000\", \"important\");\n    btn.addEventListener(\"mouseenter\", () => {\n      btn.style.setProperty(\"background\", \"#C0B7A0\", \"important\");\n      btn.style.setProperty(\"color\", \"#000\", \"important\");\n    });\n    btn.addEventListener(\"mouseleave\", () => {\n      btn.style.setProperty(\"background\", \"#DFD6BF\", \"important\");\n      btn.style.setProperty(\"color\", \"#000\", \"important\");\n    });\n    btn.addEventListener(\"focus\", () => {\n      btn.style.setProperty(\"background\", \"#C0B7A0\", \"important\");\n      btn.style.setProperty(\"color\", \"#000\", \"important\");\n    });\n    btn.addEventListener(\"blur\", () => {\n      btn.style.setProperty(\"background\", \"#DFD6BF\", \"important\");\n      btn.style.setProperty(\"color\", \"#000\", \"important\");\n    });\n    btn.classList.add(\"style-applied\");\n  });\n}\n\n// Fix for ALY-37\nfunction setEmptyAltForRevealImages() {\n  function setEmptyAlt(img) {\n    if (img && img.tagName === 'IMG') {\n      img.setAttribute('alt', '');\n    }\n  }\n\n  const revealContainers = document.querySelectorAll('.reveal');\n\n  revealContainers.forEach(container => {\n    container\n      .querySelectorAll('.responsive-image-wrapper:not(.hidden) img')\n      .forEach(setEmptyAlt);\n  });\n\n  const observer = new MutationObserver(mutations => {\n    mutations.forEach(mutation => {\n      mutation.addedNodes.forEach(node => {\n        if (node.nodeType === 1) {\n          if (node.matches('.responsive-image-wrapper:not(.hidden) img')) {\n            setEmptyAlt(node);\n          } else {\n            node\n              .querySelectorAll('.responsive-image-wrapper:not(.hidden) img')\n              .forEach(setEmptyAlt);\n          }\n        }\n      });\n    });\n  });\n\n  revealContainers.forEach(container => {\n    observer.observe(container, { childList: true, subtree: true });\n  });\n}\n\nfunction stopVideoAfter5Seconds() {\n    const video = document.querySelector('.video-container video');\n\n    if (!video) return;\n\n    setTimeout(() => {\n        video.pause();\n    }, 5000);\n}\n\nif (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', stopVideoAfter5Seconds);\n} else {\n    stopVideoAfter5Seconds();\n}\n\nfunction removeBrowseByCategoryAttributes() {\n    const container = document.querySelector('.browse-by-cat-desk');\n    if (!container) return;\n\n    container.removeAttribute('role');\n    container.removeAttribute('aria-hidden');\n\n    container.querySelectorAll('li').forEach(li => {\n        li.removeAttribute('role');\n        li.removeAttribute('aria-hidden');\n    });\n\n    container.querySelectorAll('a').forEach(link => {\n        link.removeAttribute('tabindex');\n        link.removeAttribute('aria-hidden');\n    });\n}\n\nremoveBrowseByCategoryAttributes();\n\nconst observer = new MutationObserver(mutations => {\n    let shouldFix = false;\n\n    mutations.forEach(mutation => {\n        if (\n            mutation.type === 'attributes' &&\n            ['role', 'aria-hidden', 'tabindex'].includes(mutation.attributeName)\n        ) {\n            shouldFix = true;\n        }\n\n        if (mutation.type === 'childList') {\n            shouldFix = true;\n        }\n    });\n\n    if (shouldFix) {\n        removeBrowseByCategoryAttributes();\n    }\n});\n\nobserver.observe(document.body, {\n    subtree: true,\n    childList: true,\n    attributes: true,\n    attributeFilter: ['role', 'aria-hidden', 'tabindex']\n});\n\nfunction initAccessibleTabsForShopBlackFriday() {\n  const outerTablist = document.querySelector('#shopByButtons');\n  if (!outerTablist) return;\n  const outerTabs = outerTablist.querySelectorAll('button.filter-btn');\n  const allInnerContainers = document.querySelectorAll('#optionsDiv > div');\n\n  const tabPanelMapping = {\n    \"Seasonal Gifts\": \"#shop-sets-all\",\n    \"Anti-Aging Essentials\": \"#anti-aging-essentials\",\n    \"Sets for Beginners\": \"#sets-beginners\",\n    \"Expert Essentials\": \"#expert-essentials\",\n    \"Tools & Accessories\": \"#tools-accessories\",\n    \"Category\": \"#shop-category\",\n    \"Creams\": \"#creams\",\n    \"Oils\": \"#oils\",\n    \"Serums\": \"#serums\",\n    \"Shop All\": \"#anti-aging-essentials\"\n  };\n\n  allInnerContainers.forEach(container => {\n    container.setAttribute('role', 'tabpanel');\n\n    if (!container.querySelector('[role=\"tablist\"]')) {\n      const wrapper = document.createElement('div');\n      wrapper.setAttribute('role', 'tablist');\n      wrapper.className = 'inner-tablist-wrapper';\n\n      while (container.firstChild) {\n        wrapper.appendChild(container.firstChild);\n      }\n\n      container.appendChild(wrapper);\n    }\n  });\n\n  const innerTablists = document.querySelectorAll('#optionsDiv > div[role=\"tabpanel\"] > [role=\"tablist\"]');\n\n  outerTablist.setAttribute('role', 'tablist');\n  outerTabs.forEach((tab, i) => {\n    tab.setAttribute('role', 'tab');\n    tab.id = tab.id || `outer-${i}-tab`;\n    tab.setAttribute('tabindex', i === 0 ? '0' : '-1');\n\n    const filter = tab.dataset.filter;\n    if (filter) {\n      const targetId = `shop-${filter}`;\n      tab.setAttribute('aria-controls', targetId);\n    }\n  });\n\n  innerTablists.forEach(list => {\n    const innerButtons = list.querySelectorAll('button');\n    innerButtons.forEach((btn, idx) => {\n      btn.setAttribute('role', 'tab');\n      btn.id = btn.id || `inner-${list.parentElement.id || 'panel'}-tab-${idx}`;\n      btn.setAttribute('tabindex', '-1');\n\n      const label = btn.textContent.trim();\n      const mapped = tabPanelMapping[label];\n      if (mapped) {\n        btn.setAttribute('aria-controls', mapped.replace('#', ''));\n        const panelEl = document.querySelector(mapped);\n        if (panelEl) panelEl.setAttribute('role', 'tabpanel');\n      }\n    });\n  });\n\n  function activateOuterTab(tab) {\n    outerTabs.forEach(t => {\n      t.setAttribute('tabindex', '-1');\n      t.setAttribute('aria-selected', 'false');\n      t.classList.remove('selecterborder');\n    });\n\n    tab.setAttribute('tabindex', '0');\n    tab.setAttribute('aria-selected', 'true');\n    tab.classList.add('selecterborder');\n    tab.focus && tab.focus();\n\n    const filter = tab.dataset.filter;\n    const targetId = `shop-${filter}`;\n\n    allInnerContainers.forEach(container => {\n      if (container.id === targetId) {\n        container.style.display = '';\n        const innerTabs = Array.from(container.querySelectorAll('button[role=\"tab\"]'));\n        innerTabs.forEach((t, i) => {\n          t.setAttribute('tabindex', i === 0 ? '0' : '-1');\n          t.setAttribute('aria-selected', 'false');\n        });\n        if (innerTabs[0]) innerTabs[0].setAttribute('aria-selected', 'true');\n      } else {\n        container.style.display = 'none';\n        container.querySelectorAll('button[role=\"tab\"]').forEach(t => {\n          t.setAttribute('tabindex', '-1');\n          t.setAttribute('aria-selected', 'false');\n        });\n      }\n    });\n  }\n\n  function handleArrowNavigation(event, tabsArray) {\n    const current = document.activeElement;\n    const idx = tabsArray.indexOf(current);\n    if (idx === -1) return;\n\n    let newIndex = idx;\n    if (event.key === 'ArrowRight') newIndex = (idx + 1) % tabsArray.length;\n    else if (event.key === 'ArrowLeft') newIndex = (idx - 1 + tabsArray.length) % tabsArray.length;\n    else return;\n\n    if (newIndex !== idx) {\n      tabsArray[idx].setAttribute('tabindex', '-1');\n      tabsArray[newIndex].setAttribute('tabindex', '0');\n      tabsArray[newIndex].focus();\n\t  tabsArray[newIndex].click();\n      event.preventDefault();\n    }\n  }\n\n  outerTabs.forEach(tab => {\n    tab.addEventListener('keydown', e => {\n      if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n        handleArrowNavigation(e, Array.from(outerTabs));\n      } else if (e.key === 'Enter' || e.key === ' ') {\n        e.preventDefault();\n        activateOuterTab(tab);\n        tab.click && tab.click();\n      }\n    });\n    tab.addEventListener('click', () => activateOuterTab(tab));\n  });\n\n  innerTablists.forEach(list => {\n    const innerButtons = Array.from(list.querySelectorAll('button[role=\"tab\"]'));\n    innerButtons.forEach(btn => {\n      btn.addEventListener('keydown', e => {\n        if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n          handleArrowNavigation(e, innerButtons);\n        } else if (e.key === 'Enter' || e.key === ' ') {\n          e.preventDefault();\n          btn.click && btn.click();\n        }\n      });\n\n      btn.addEventListener('click', () => {\n        innerButtons.forEach(b => {\n          b.setAttribute('tabindex', '-1');\n          b.setAttribute('aria-selected', 'false');\n        });\n        btn.setAttribute('tabindex', '0');\n        btn.setAttribute('aria-selected', 'true');\n      });\n    });\n  });\n\n  if (outerTabs.length) {\n    const preselected = Array.from(outerTabs).find(t => t.classList.contains('selecterborder') || t.getAttribute('aria-selected') === 'true');\n    activateOuterTab(preselected || outerTabs[0]);\n  }\n}\n\nfunction initAccessibleTabsForShopSpringSkincare() {\n  const secondaryTabList = document.getElementById('shopByButtons');\n  if (!secondaryTabList) return;\n\n  const tabPanelMapping = {\n    \"SPRING ESSENTIALS\": \"#spring-essentials-link\",\n    \"BESTSELLERS\": \"#bestsellers\",\n    \"ANTI-AGING ESSENTIALS\": \"#anti-aging-essentials\",\n    \"STARTER SETS\": \"#starter-sets\",\n    \"SUN SPOT SETS\": \"#sun-spot-sets\",\n    \"HYDRATION HEROES\": \"#hydration-heroes\",\n    \"SHOP ALL\": \"#shopall\"\n  };\n\n  secondaryTabList.setAttribute('role', 'tablist');\n  const tabButtons = [...secondaryTabList.querySelectorAll('button.filter-btn')];\n\n  tabButtons.forEach((button, index) => {\n    const label = button.textContent.trim();\n    const filterValue = button.dataset.filter;\n\n    button.setAttribute('role', 'tab');\n    button.id = `${filterValue}-tab`;\n\n    const targetSelector = tabPanelMapping[label.toUpperCase()];\n    if (targetSelector) {\n      button.setAttribute('aria-controls', targetSelector.substring(1));\n      const targetElement = document.querySelector(targetSelector);\n      if (targetElement) {\n        const section = targetElement.closest('.shopify-section');\n        if (section) section.setAttribute('role', 'tabpanel');\n      }\n    }\n\n    button.setAttribute('aria-selected', index === 0 ? 'true' : 'false');\n    button.setAttribute('tabindex', index === 0 ? '0' : '-1');\n    button.classList.toggle('selecterborder', index === 0);\n\n    button.addEventListener('click', e => {\n      e.preventDefault();\n      updateSecondaryTabStates(button);\n    });\n  });\n  secondaryTabList.addEventListener('keydown', e => {\n    const currentIndex = tabButtons.findIndex(btn => btn.getAttribute('tabindex') === '0');\n    let newIndex = currentIndex;\n\n    if (e.key === 'ArrowRight' || e.key === 'ArrowDown') {\n      newIndex = (currentIndex + 1) % tabButtons.length;\n    } else if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') {\n      newIndex = (currentIndex - 1 + tabButtons.length) % tabButtons.length;\n    } else {\n      return;\n    }\n\n    e.preventDefault();\n    const newButton = tabButtons[newIndex];\n    tabButtons.forEach(btn => btn.setAttribute('tabindex', '-1'));\n    newButton.setAttribute('tabindex', '0');\n    newButton.focus();\n\tnewButton.click();\n  });\n\n  const dividers = secondaryTabList.querySelectorAll('.menu-divider');\n  dividers.forEach(divider => divider.setAttribute('aria-hidden', 'true'));\n\n  function updateSecondaryTabStates(activeButton) {\n    tabButtons.forEach(btn => {\n      const isActive = btn === activeButton;\n      btn.setAttribute('aria-selected', isActive ? 'true' : 'false');\n      btn.setAttribute('tabindex', isActive ? '0' : '-1');\n      btn.classList.toggle('selecterborder', isActive);\n    });\n  }\n}\n\nfunction initAccessibleTabsForValentine() {\n  const shopByButtons = document.getElementById(\"shopByButtons\");\n  const optionsDiv = document.getElementById(\"optionsDiv\");\n\n  const tabPanelMapping = {\n    \"VALENTINE'S SETS\": \"#shop-sets-all\",\n    \"SHOP ALL\": \"#shop-all-1\",\n    \"Most Loved Routines\": \"#most-loved-routines\",\n    \"Cute Couples\": \"#cute-couples\",\n    \"Thriving Throuples\": \"#thriving-throuples\",\n    \"Little Luxuries\": \"#little-luxuries\",\n  };\n\n  shopByButtons.setAttribute(\"role\", \"tablist\");\n  optionsDiv.setAttribute(\"role\", \"tabpanel\");\n\n  const parentTabs = shopByButtons.querySelectorAll(\"button.filter-btn\");\n  parentTabs.forEach((tab, index) => {\n    tab.setAttribute(\"role\", \"tab\");\n    tab.setAttribute(\"aria-selected\", index === 0 ? \"true\" : \"false\");\n    tab.setAttribute(\"tabindex\", index === 0 ? \"0\" : \"-1\");\n\n    const tabName = tab.textContent.trim();\n    const mappedId = tabPanelMapping[tabName];\n    if (mappedId) {\n      const cleanId = mappedId.replace(\"#\", \"\");\n      tab.setAttribute(\"aria-controls\", cleanId);\n\n      const controlledEl = document.querySelector(mappedId);\n      if (controlledEl) {\n        const section = controlledEl.closest(\".shopify-section\");\n        if (section) section.setAttribute(\"role\", \"tabpanel\");\n      }\n    }\n  });\n\n  const setsAllDiv = document.querySelector(\"#shop-sets-all\");\n  if (setsAllDiv) {\n    setsAllDiv.setAttribute(\"role\", \"tablist\");\n\n    const innerButtons = setsAllDiv.querySelectorAll(\"button.filter-btn\");\n    innerButtons.forEach((btn, idx) => {\n      btn.setAttribute(\"role\", \"tab\");\n      btn.setAttribute(\"aria-selected\", idx === 0 ? \"true\" : \"false\");\n      btn.setAttribute(\"tabindex\", idx === 0 ? \"0\" : \"-1\");\n\n      const innerName = btn.textContent.trim();\n      const mappedId = tabPanelMapping[innerName];\n      if (mappedId) {\n        const cleanId = mappedId.replace(\"#\", \"\");\n        btn.setAttribute(\"aria-controls\", cleanId);\n\n        const controlledEl = document.querySelector(mappedId);\n        if (controlledEl) {\n          const section = controlledEl.closest(\".shopify-section\");\n          if (section) section.setAttribute(\"role\", \"tabpanel\");\n        }\n      }\n    });\n  }\n\n  const allTabLists = document.querySelectorAll('[role=\"tablist\"]');\n  allTabLists.forEach(tabList => {\n    const tabs = tabList.querySelectorAll('[role=\"tab\"]');\n\n    tabList.addEventListener(\"keydown\", e => {\n      const currentIndex = Array.from(tabs).findIndex(tab => tab === document.activeElement);\n      if (currentIndex === -1) return;\n\n      let newIndex = currentIndex;\n      if (e.key === \"ArrowRight\") newIndex = (currentIndex + 1) % tabs.length;\n      if (e.key === \"ArrowLeft\") newIndex = (currentIndex - 1 + tabs.length) % tabs.length;\n\n      if (newIndex !== currentIndex) {\n        tabs[currentIndex].setAttribute(\"tabindex\", \"-1\");\n        tabs[currentIndex].setAttribute(\"aria-selected\", \"false\");\n        tabs[newIndex].setAttribute(\"tabindex\", \"0\");\n        tabs[newIndex].setAttribute(\"aria-selected\", \"true\");\n\t\ttabs[newIndex].click();\n        tabs[newIndex].focus();\n      }\n    });\n  });\n}\n\nfunction removeSliderTabindex() {\n  const selectors = ['.testimonial-item', '.review-item'];\n  selectors.forEach(selector => {\n    const elements = document.querySelectorAll(selector);\n    if (elements && elements.length > 0) {\n      elements.forEach(element => {\n        if (element && element.hasAttribute('tabindex')) {\n          element.removeAttribute('tabindex');\n        }\n      });\n    }\n  });\n}\nfunction updateButtonAriaLabels() {\n  const buttons = document.querySelectorAll('.nt-banner-atc.quick-add-button');\n  buttons.forEach(button => {\n    if (!button) return;\n    const form = button.closest('form');\n    if (!form) return;\n    const images = form.querySelectorAll('img');\n    let altText = '';\n    if (images && images.length > 0) {\n      for (let i = 0; i < images.length; i++) {\n        const currentAlt = images[i].getAttribute('alt');\n        if (currentAlt && currentAlt.trim() !== '') {\n          altText = currentAlt;\n          break;\n        }\n      }\n    }\n    button.setAttribute('aria-label', 'Add to bag ' + altText || 'Add to bag The Discovery Set');\n  });\n}\n\nfunction initAccessibleNTModal() {\n  const trigger = document.querySelector('#NTopenModal');\n  if (!trigger) return;\n\n  function convertH1toH2(h1) {\n    if (!h1 || h1.tagName.toLowerCase() !== 'h1') return null;\n    const h2 = document.createElement('h2');\n\n    for (let i = 0; i < h1.attributes.length; i++) {\n      const attr = h1.attributes[i];\n      h2.setAttribute(attr.name, attr.value);\n    }\n\n    h2.innerHTML = h1.innerHTML;\n\n    h1.replaceWith(h2);\n    return h2;\n  }\n\n  trigger.addEventListener('click', () => {\n    const observer = new MutationObserver(() => {\n      const modal = document.querySelector('#NTmodal');\n      if (!modal || getComputedStyle(modal).display === 'none') return;\n\n      observer.disconnect();\n\n      modal.setAttribute('role', 'dialog');\n      modal.setAttribute('aria-modal', 'true');\n      if (!modal.hasAttribute('tabindex')) modal.setAttribute('tabindex', '-1');\n\n      let heading = modal.querySelector('h1');\n      if (heading) {\n        heading = convertH1toH2(heading) || heading;\n      }\n\n      if (!heading) {\n        const headingObserver = new MutationObserver((mutations, obs) => {\n          const found = modal.querySelector('h1');\n          if (found) {\n            const newHeading = convertH1toH2(found) || found;\n            heading = newHeading;\n            if (!heading.id) heading.id = 'NTmodalTitle';\n            modal.setAttribute('aria-labelledby', heading.id);\n            obs.disconnect();\n          }\n        });\n        headingObserver.observe(modal, { childList: true, subtree: true });\n      } else {\n        if (!heading.id) heading.id = 'NTmodalTitle';\n        modal.setAttribute('aria-labelledby', heading.id);\n      }\n\n      const closeBtn = modal.querySelector('#NTcloseModal');\n      if (closeBtn) {\n        closeBtn.setAttribute('role', 'button');\n        closeBtn.setAttribute('tabindex', '0');\n        if (!closeBtn.getAttribute('aria-label'))\n          closeBtn.setAttribute('aria-label', 'Close dialog');\n      }\n\n      const focusableEls = modal.querySelectorAll(\n        'a[href], button:not([disabled]), [tabindex]:not([tabindex=\"-1\"])'\n      );\n      const firstEl = focusableEls[0];\n      const lastEl = focusableEls[focusableEls.length - 1];\n      const previouslyFocused = document.activeElement;\n\n      (firstEl || modal).focus();\n\n      function trapFocus(e) {\n        if (e.key === 'Tab') {\n          if (e.shiftKey && document.activeElement === firstEl) {\n            e.preventDefault();\n            lastEl.focus();\n          } else if (!e.shiftKey && document.activeElement === lastEl) {\n            e.preventDefault();\n            firstEl.focus();\n          }\n        } else if (e.key === 'Escape') {\n          closeModal();\n        }\n      }\n\n      function closeModal() {\n        modal.style.display = 'none';\n        document.removeEventListener('keydown', trapFocus);\n        previouslyFocused?.focus();\n      }\n\n      if (closeBtn) {\n        closeBtn.addEventListener('click', closeModal);\n        closeBtn.addEventListener('keydown', e => {\n          if (e.key === 'Enter' || e.key === ' ') closeModal();\n        });\n      }\n\n      document.addEventListener('keydown', trapFocus);\n    });\n\n    observer.observe(document.body, { childList: true, subtree: true });\n  });\n}\n\nfunction initRatingSnippetFocusHandler() {\n  function updateAnchors() {\n    document.querySelectorAll('.ruk_rating_snippet').forEach(snippet => {\n      const parentAnchor = snippet.closest('a');\n      if (!parentAnchor) return;\n      if (snippet.children.length > 0) {\n        parentAnchor.removeAttribute('tabindex');\n      } else {\n        parentAnchor.setAttribute('tabindex', '-1');\n      }\n    });\n  }\n  updateAnchors();\n  const observer = new MutationObserver(updateAnchors);\n  observer.observe(document.body, { childList: true, subtree: true });\n}\n\nfunction initLogoHeadingAccessibility() {\n  function updateHeadings(root = document) {\n    root.querySelectorAll('.small-logo-heading h4').forEach((heading) => {\n      heading.setAttribute('role', 'heading');\n      heading.setAttribute('aria-level', '3');\n    });\n  }\n\n  updateHeadings();\n\n  const observer = new MutationObserver((mutations) => {\n    mutations.forEach(({ addedNodes }) => {\n      addedNodes.forEach((node) => {\n        if (node.nodeType !== Node.ELEMENT_NODE) return;\n\n        if (node.matches?.('.small-logo-heading h4')) {\n          updateHeadings(node.parentNode);\n        } else {\n          updateHeadings(node);\n        }\n      });\n    });\n  });\n\n  observer.observe(document.body, {\n    childList: true,\n    subtree: true\n  });\n}\n\nfunction enhanceDropdownAccessibility({\n  dropdownSelector = '.dropdown',\n  buttonSelector = '.dropbtn',\n  menuSelector = '.dropdown-content',\n  openClass = 'show'\n} = {}) {\n  const dropdowns = document.querySelectorAll(dropdownSelector);\n  if (!dropdowns || !dropdowns.length) return;\n\n  const focusableSelectors =\n    'a[href], button, input, textarea, select, [tabindex]:not([tabindex=\"-1\"])';\n\n  dropdowns.forEach((dropdown) => {\n    if (!dropdown) return;\n\n    const button = dropdown.querySelector(buttonSelector);\n    const menu = dropdown.querySelector(menuSelector);\n    if (!button || !menu) return;\n\n    if (!button.hasAttribute('aria-haspopup')) button.setAttribute('aria-haspopup', 'true');\n    if (!button.hasAttribute('aria-expanded')) button.setAttribute('aria-expanded', 'false');\n    if (!menu.id) menu.id = `${button.id || 'dropdown-btn'}-menu`;\n    if (!button.getAttribute('aria-controls')) button.setAttribute('aria-controls', menu.id);\n\n    const onKeydown = (e) => {\n      if (!menu.classList.contains(openClass)) return;\n      if (e.key === 'Escape') {\n        e.preventDefault();\n        menu.classList.remove(openClass);\n        return;\n      }\n      if (e.key === 'Tab') {\n        const focusables = Array.from(menu.querySelectorAll(focusableSelectors));\n        if (!focusables.length) return;\n        const first = focusables[0];\n        const last = focusables[focusables.length - 1];\n        if (e.shiftKey && document.activeElement === first) {\n          e.preventDefault();\n          last.focus();\n        } else if (!e.shiftKey && document.activeElement === last) {\n          e.preventDefault();\n          first.focus();\n        }\n      }\n    };\n\n    const observer = new MutationObserver((mutations) => {\n      for (const m of mutations) {\n        if (m.type === 'attributes' && m.attributeName === 'class') {\n          const isOpen = menu.classList.contains(openClass);\n\n          button.setAttribute('aria-expanded', isOpen ? 'true' : 'false');\n\n          if (isOpen) {\n\t\t\tsetTimeout(() => {\n\t\t\tconst first = menu.querySelector(focusableSelectors);\n\t\t\tif (first) first.focus();\n\t\t\t},100);\n\t\t\tdocument.addEventListener('keydown', onKeydown);\n        }  else {\n            document.removeEventListener('keydown', onKeydown);\n\n            if (dropdown.contains(document.activeElement)) {\n              button.focus();\n            }\n          }\n        }\n      }\n    });\n\n    observer.observe(menu, { attributes: true, attributeFilter: ['class'] });\n\n    const hasInlineHandler = button.hasAttribute('onclick');\n    const hasGlobalHandler =\n      typeof window !== 'undefined' && typeof window.myFunction === 'function';\n\n    button.addEventListener('keydown', (e) => {\n      if (e.key === 'Enter' || e.key === ' ' || e.key === 'ArrowDown') {\n        if (hasInlineHandler || hasGlobalHandler) {\n          e.preventDefault();\n          button.click();\n        } else {\n          e.preventDefault();\n          menu.classList.toggle(openClass);\n        }\n      }\n    });\n\n    if (!hasInlineHandler && !hasGlobalHandler) {\n      button.addEventListener('click', (e) => {\n        e.preventDefault();\n        menu.classList.toggle(openClass);\n      });\n    }\n\n    document.addEventListener('click', (e) => {\n      if (!menu.classList.contains(openClass)) return;\n      if (!dropdown.contains(e.target)) {\n        menu.classList.remove(openClass);\n      }\n    });\n  });\n}\n\ndocument.addEventListener('DOMContentLoaded', () => {\n  initPopupAccessibility();\n  initShipInsureTooltip();\n  setLogoBarAltTags();\n  cartModalFocusTrap();\n  initAccessibleNTModal();\n  setTimeout(()=>{\n\t  disableAutoplayForAnnouncementBar();\n  },6000);\n  updateCartAriaLabel();\n  observeCartQuantity();\n  initMobileNavDrawer();\n  addEmptyAltToFeatureImages();\n  labelQuickAddButtons();\n  removeTabindexFromRukRating();\n  makeAccessibleMenuDropdowns();\n  setEmptyAltForRevealImages();\n  if (location.href.includes('/pages/about-us')) {\n\t  initMovingContentControl();\n    fixMarkupForTickIcon();\n  }\n  if (location.href.includes('/blogs/news')) {\n    removeLiTabindex();\n    removeBrowseByCategoryAttributes();\n  }\n  if(window.location.href.includes('pages/trees')){\n\t stopVideoAfter5Seconds();\n  }\n  if(window.location.href.includes('pages/shop-refresh')){\n\t  applyShopRefreshStyles();\n  }\n  if (window.location.href.includes('/collections') || window.location.href.includes('/products') || window.location.href === \"https://www.nakedandthriving.com/pages/reviews\") {\n    removeReviewsWidgetTabindex();\n    initStandaloneRatingSnippetFocus();\n    reorderReviewHeadings();\n    initTabs('.R-TabControls[role=\"tablist\"]');\n    syncAriaSelected();\n    fixBookmarkLinks();\n    initPaginationFix();\n    initLogoHeadingAccessibility();\n  }\n  if (window.location.href.includes(\"https://www.nakedandthriving.com/products/digital-gift-card-1\")) {\n    fixGiftCardRadioGrouping();\n    disableProductPriceLinks();\n  }\n  if(window.location.href.includes(\"https://www.nakedandthriving.com/pages/shop-black-friday-2024\")){\n\t  initAccessibleTabsForShopBlackFriday();\n  }\n  if(window.location.href.includes(\"https://www.nakedandthriving.com/pages/shop-spring-skincare\")){\n\t  initAccessibleTabsForShopSpringSkincare();\n  }\n  if(window.location.href.includes(\"https://www.nakedandthriving.com/pages/shop-valentines\")){\n\t  initAccessibleTabsForValentine();\n  }\n  if(location.href.includes('pages/discovery-set') || location.href.includes('pages/shop-refresh')) {\n\t  removeSliderTabindex();\n  }\n  if (location.href.includes('pages/discovery-set') || location.href.includes('pages/5-step-skincare-routine')) {\n\t  updateButtonAriaLabels();\n  }\n  if(window.location.href.includes(\"pages/wellness\")){\n\t  initRatingSnippetFocusHandler();\n  }\n  if (\n  window.location.href.includes('/pages/shop-by-skincare-benefit-anti-aging') ||\n  window.location.href.includes('/pages/shop-by-skincare-benefit-brightening') ||\n  window.location.href.includes('/pages/shop-by-skincare-benefit-hydration') ||\n  window.location.href.includes('/pages/shop-by-skincare-benefit-texture') ||\n  window.location.href.includes('/pages/shop-by-skincare-benefit-calming') ||\n  window.location.href.includes('/pages/shop-by-skincare-benefit-balancing')\n) {\n  enhanceDropdownAccessibility();\n}\n});\n\n// --- ALY-91(Multiple h1 on articles), ALY-88(no h1 on blog page) ---\nfunction fixMultipleH1Headings() {\n\tif (!window.location.href.includes(\"/blogs/\")) return;\n   \n\tconst headings = document.querySelectorAll(\"h1\");\n\tif (headings.length > 1) {\n\t  for (let i = 1; i < headings.length; i++) {\n\t\tconst oldH1 = headings[i];\n\t\tconst newH2 = document.createElement(\"h2\");\n   \n\t\tnewH2.innerHTML = oldH1.innerHTML;\n\t\tfor (const attr of oldH1.attributes) newH2.setAttribute(attr.name, attr.value);\n   \n\t\tnewH2.style.cssText = window.getComputedStyle(oldH1).cssText;\n\t\tnewH2.style.textAlign = \"left\";\n\t\toldH1.replaceWith(newH2);\n\t  }\n\t}\n  }\n  document.addEventListener(\"DOMContentLoaded\", fixMultipleH1Headings);\n  function convertArticleTitleToH1() {\n\tconst targetText = \"5 Reasons 100,000+ Women Swear by Renew Serum for Age-Defying Skin*\";\n\tconst pathParts = window.location.pathname.split(\"/\").filter(Boolean);\n\tconst isBlogListing = pathParts.length === 2 && pathParts[0] === \"blogs\";\n   \n\tif (isBlogListing) {\n\t  ensureHiddenH1Exists(\"Our Blogs\");\n\t  return;\n\t}\n   \n\tif (!window.location.href.includes(\"/blogs/\")) return;\n   \n\tfunction findAndConvert() {\n\t  const headings = document.querySelectorAll(\"h1, h2\");\n\t  for (const heading of headings) {\n\t\tif (heading.textContent.trim() === targetText && heading.tagName.toLowerCase() !== \"h1\") {\n\t\t  const newH1 = document.createElement(\"h1\");\n\t\t  newH1.innerHTML = heading.innerHTML;\n\t\t  for (const attr of heading.attributes) newH1.setAttribute(attr.name, attr.value);\n\t\t  newH1.style.textAlign = \"left\";\n\t\t  heading.replaceWith(newH1);\n\t\t  return true;\n\t\t}\n\t  }\n\t  return false;\n\t}\n   \n\tif (!findAndConvert()) {\n\t  const observer = new MutationObserver(() => {\n\t\tif (findAndConvert()) observer.disconnect();\n\t  });\n\t  observer.observe(document.body, { childList: true, subtree: true });\n\t}\n  }\n  function ensureHiddenH1Exists(text) {\n\tif (document.querySelector(\"h1.sr-only\")) return;\n   \n\tconst hiddenH1 = document.createElement(\"h1\");\n\thiddenH1.className = \"sr-only\";\n\thiddenH1.textContent = text;\n\thiddenH1.setAttribute(\"aria-label\", text);\n\thiddenH1.setAttribute(\"tabindex\", \"-1\");\n\tconst header = document.querySelector(\"header\") || document.querySelector(\".header-wrapper\");\n\tif (header) {\n\t  header.insertAdjacentElement(\"afterend\", hiddenH1);\n\t} else {\n\t  document.body.insertBefore(hiddenH1, document.body.firstChild);\n\t}\n\tvoid hiddenH1.offsetHeight;\n   \n\tsetTimeout(() => {\n\t  if (!document.body.contains(hiddenH1)) {\n\t\tdocument.body.insertBefore(hiddenH1, document.body.firstChild);\n\t  }\n\t}, 3000);\n  }\n  const style = document.createElement(\"style\");\n  style.textContent = `\n\t.sr-only {\n\t  position: absolute !important;\n\t  width: 1px !important;\n\t  height: 1px !important;\n\t  padding: 0 !important;\n\t  margin: -1px !important;\n\t  overflow: hidden !important;\n\t  clip: rect(0, 0, 0, 0) !important;\n\t  clip-path: inset(50%) !important;\n\t  border: 0 !important;\n\t  white-space: nowrap !important;\n\t}\n  `;\n  document.head.appendChild(style);\n   \n  document.addEventListener(\"DOMContentLoaded\", convertArticleTitleToH1);\n  function convertSpecificBlogsToH1() {\n\tconst pathParts = window.location.pathname.split(\"/\").filter(Boolean);\n\tconst isBlogListing = pathParts.length === 2 && pathParts[0] === \"blogs\";\n\tif (isBlogListing) return;\n   \n\tif (!window.location.href.includes(\"/blogs/\")) return;\n\tconst targetTitles = [\n\t  \"How to Use Our Correcting Gel Bad Skin Days Are Over\",\n\t  \"I Haven\u2019t Tried Botox Yet \u2014 But This One Product Keeps My Skin Looking Great\"\n\t];\n   \n\tfunction findAndConvert() {\n\t  const headings = document.querySelectorAll(\"h1, h2\");\n\t  let converted = 0;\n   \n\t  headings.forEach((heading) => {\n\t\tconst text = heading.textContent.trim();\n\t\tif (targetTitles.includes(text) && heading.tagName.toLowerCase() === \"h2\") {\n\t\t  const newH1 = document.createElement(\"h1\");\n\t\t  newH1.innerHTML = heading.innerHTML;\n\t\t  for (const attr of heading.attributes) {\n\t\t\tnewH1.setAttribute(attr.name, attr.value);\n\t\t  }\n\t\t  newH1.style.textAlign = \"left\";\n   \n\t\t  heading.replaceWith(newH1);\n\t\t  converted++;\n\t\t}\n\t  });\n   \n\t  if (converted > 0)\n\t  return converted > 0;\n\t}\n\tif (!findAndConvert()) {\n\t  const observer = new MutationObserver(() => {\n\t\tif (findAndConvert()) observer.disconnect();\n\t  });\n\t  observer.observe(document.body, { childList: true, subtree: true });\n\t}\n  }\n   \n  document.addEventListener(\"DOMContentLoaded\", convertSpecificBlogsToH1);\n   \n  document.addEventListener('DOMContentLoaded', function () {\n\tconst logoBar = document.querySelector('.logo-bar');\n\tif (!logoBar) return;\n\tif (logoBar.querySelector('ul.logo-list')) return;\n\tconst ul = document.createElement('ul');\n\tul.className = 'logo-list';\n\tul.style.display = 'flex';\n\tul.style.justifyContent = 'center';\n\tul.style.flexWrap = 'wrap';\n\tul.style.gap = '20px';\n\tul.style.padding = '0';\n\tul.style.margin = '0';\n\tul.style.listStyle = 'none';\n\tconst items = Array.from(logoBar.querySelectorAll('.logo-bar__item'));\n\titems.forEach(item => {\n\t  const li = document.createElement('li');\n\t  li.style.margin = '0';\n\t  li.appendChild(item);\n\t  ul.appendChild(li);\n\t});\n\tlogoBar.innerHTML = '';\n\tlogoBar.appendChild(ul);\n  });\n "],
  "mappings": "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",
  "names": ["observer"]
}
