{"time":"2026-08-10T15:58:45.195Z","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  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/** 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/** file: setWidgetSpecificsOptions.js */\n\"use strict\";\n\nconst _window = window;\nfunction setWidgetSpecificsOptions(options) {\n  if (!_window.accessWidgetSpecificsOptions) {\n    _window.accessWidgetSpecificsOptions = {\n      ...options,\n      enable: true,\n      disableLegacy: typeof options.disableLegacy === \"object\" ? {\n        ...options.disableLegacy\n      } : options.disableLegacy,\n      modifications: options.modifications ? {\n        classifier: options.modifications.classifier ? [...options.modifications.classifier] : undefined,\n        auditor: options.modifications.auditor ? [...options.modifications.auditor] : undefined\n      } : undefined\n    };\n    return;\n  }\n  const current = _window.accessWidgetSpecificsOptions;\n  current.enable = true;\n  if (options.disableLegacy !== undefined) {\n    const shouldFullyDisable = options.disableLegacy === true || current.disableLegacy === true;\n    if (shouldFullyDisable) {\n      current.disableLegacy = true;\n    } else if (typeof options.disableLegacy === \"object\") {\n      current.disableLegacy = {\n        ...(typeof current.disableLegacy === \"object\" ? current.disableLegacy : {}),\n        ...options.disableLegacy\n      };\n    }\n  }\n  if (typeof options.onReady === \"function\") {\n    if (typeof current.onReady === \"function\") {\n      const previousOnReady = current.onReady;\n      current.onReady = () => {\n        var _options$onReady;\n        previousOnReady();\n        (_options$onReady = options.onReady) === null || _options$onReady === void 0 || _options$onReady.call(options);\n      };\n    } else {\n      current.onReady = options.onReady;\n    }\n  }\n  if (options.modifications) {\n    if (!current.modifications) {\n      current.modifications = {};\n    }\n    if (options.modifications.classifier) {\n      current.modifications.classifier = [...(current.modifications.classifier || []), ...(options.modifications.classifier || [])];\n    }\n    if (options.modifications.auditor) {\n      current.modifications.auditor = [...(current.modifications.auditor || []), ...(options.modifications.auditor || [])];\n    }\n  }\n}\n/** file: trapFocus.js */\n\"use strict\";\n\nfunction trapFocus(container) {\n  let interactives = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [\"a[href]\", \"button\", \"input\", \"select\", \"textarea\", '[tabindex]:not([tabindex=\"-1\"])'];\n  let filteringCallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n  let trigger = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n  let closeSelector = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n  let onClose = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;\n  let onClosePreventDefault = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;\n  if (!container) return;\n  if (getAllFocusableElementsAsAnArray().length === 0) return;\n  function keydownTrapHandler(event) {\n    const allFocusableElements = getAllFocusableElementsAsAnArray();\n    if (allFocusableElements.length === 0) return;\n    const [firstElement] = allFocusableElements;\n    const [lastElement] = allFocusableElements.slice(-1);\n    if ((event === null || event === void 0 ? void 0 : event.code) === \"Tab\") {\n      if (event !== null && event !== void 0 && event.shiftKey) {\n        if (document.activeElement === firstElement) {\n          event.preventDefault();\n          lastElement === null || lastElement === void 0 || lastElement.focus();\n        }\n      } else {\n        if (document.activeElement === lastElement) {\n          event.preventDefault();\n          firstElement === null || firstElement === void 0 || firstElement.focus();\n        }\n      }\n    } else if (event.code === \"Escape\" && closeSelector) {\n      keydownCloseHandler(event);\n    }\n  }\n  container.addEventListener(\"keydown\", keydownTrapHandler);\n  function removeTrapFocus() {\n    container.removeEventListener(\"keydown\", keydownTrapHandler);\n  }\n  function getCloseButton() {\n    if (!closeSelector) return false;\n    const closeButton = container.querySelector(closeSelector);\n    if (!closeButton) return false;\n    return closeButton;\n  }\n  const closeButton = getCloseButton();\n  if (closeButton) {\n    closeButton.addEventListener(\"click\", keydownCloseHandler);\n    closeButton.addEventListener(\"keydown\", keydownCloseHandler);\n  }\n  function keydownCloseHandler(event) {\n    if (event.type === \"click\" || [\"Enter\", \"Space\", \"Escape\"].includes(event.code)) {\n      if (onClosePreventDefault) event.preventDefault();\n      trigger === null || trigger === void 0 || trigger.focus();\n      onClose === null || onClose === void 0 || onClose();\n    }\n  }\n  function removeCloseHandler() {\n    if (!closeButton) return;\n    closeButton.removeEventListener(\"click\", keydownCloseHandler);\n    closeButton.removeEventListener(\"keydown\", keydownCloseHandler);\n  }\n  function getAllFocusableElementsAsAnArray() {\n    let elements = Array.from(container.querySelectorAll(interactives.join(\", \")));\n    if (filteringCallback) {\n      elements = elements.filter(filteringCallback);\n    }\n    return elements;\n  }\n  return {\n    removeTrapFocus,\n    removeCloseHandler,\n    getAllFocusableElementsAsAnArray\n  };\n}\n\n/** file: accessible-menu.js */\n(function(){\ntry{\n\"use strict\";\n\nsetWidgetSpecificsOptions({\n  enable: true,\n  modifications: {\n    classifier: [{\n      type: \"detection\",\n      selector: \"#appContainer > nav ul > li > div > a\",\n      detectorId: \"perceivable-component-link\",\n      expected: false\n    }, {\n      type: \"detection\",\n      selector: \"#appContainer > nav ul > li > div > a\",\n      detectorId: \"perceivable-component-button\",\n      expected: true\n    }, {\n      type: \"detection\",\n      selector: \"#appContainer > nav ul:has(div[class*='opacity'])\",\n      detectorId: \"perceivable-component-list-menu\",\n      expected: false\n    }, {\n      type: \"detection\",\n      selector: \"#appContainer > nav ul:has(div[class*='opacity'])\",\n      detectorId: \"perceivable-component-tab-list\",\n      expected: false\n    }, {\n      type: \"detection\",\n      selector: \"#appContainer > nav ul:has(div[class*='opacity'])\",\n      detectorId: \"compliant-component-tab-list\",\n      expected: false\n    }]\n  }\n});\nAJS.events.on(window, \"acsbActionEnabling\", e => {\n  if (e.detail.action.toLowerCase() === \"keynav\") {\n    findMenu();\n    const originalPushState = history.pushState;\n    const isPushStateOverridden = originalPushState.toString().includes(\"[native code]\") === false;\n    history.pushState = function () {\n      if (isPushStateOverridden) {\n        for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n          args[_key] = arguments[_key];\n        }\n        originalPushState.apply(history, args);\n      }\n      if (document.activeElement !== document.body) {\n        setTimeout(() => {\n          findMenu();\n        }, 1000);\n      }\n    };\n  }\n});\nfunction findMenu() {\n  const menuUl = document.querySelector(\"#appContainer > nav ul\");\n  if (menuUl) {\n    menuUl.setAttribute(\"data-acsb\", \"\");\n    createMenuStyles();\n    observeKeypresses(menuUl);\n    focusOutHandler();\n    fixMenuTriggerAnchorTags();\n  }\n}\nfunction fixMenuTriggerAnchorTags() {\n  const menuTriggerAnchorTags = document.querySelectorAll(\"#appContainer > nav ul > li > div > a\");\n  menuTriggerAnchorTags.forEach(menuTriggerAnchorTag => {\n    menuTriggerAnchorTag.setAttribute(\"role\", \"button\");\n    menuTriggerAnchorTag.setAttribute(\"tabindex\", \"0\");\n  });\n}\nfunction createMenuStyles() {\n  const menuStyles = document.createElement(\"style\");\n  menuStyles.textContent = \"\\n    .menu-visible {\\n        opacity: 1 !important;\\n        visibility: visible !important;\\n    }\\n    .menu-hidden {\\n        opacity: 0 !important;\\n        visibility: hidden !important;\\n    }\\n    \";\n  document.head.appendChild(menuStyles);\n}\nfunction observeKeypresses(menuUl) {\n  const ul = document.querySelector(\"#appContainer > nav ul\");\n  const menuDropdownItems = ul.querySelectorAll(\":scope > li > div div[class*='opacity']\");\n  menuUl.addEventListener(\"focus\", event => {\n    if (!event.relatedTarget) {\n      return;\n    }\n    const closestLi = event.target.closest(\"li\");\n    if (closestLi) {\n      const dropdownElm = closestLi.querySelector(\"div[class*='opacity']\");\n      if (dropdownElm) {\n        menuDropdownItems.forEach(item => {\n          const previousSibling = item.previousElementSibling;\n          if (item === dropdownElm) {\n            dropdownElm.style.setProperty(\"opacity\", \"1\", \"important\");\n            dropdownElm.style.setProperty(\"visibility\", \"visible\", \"important\");\n            previousSibling.setAttribute(\"aria-expanded\", \"true\");\n          } else {\n            item.style.setProperty(\"opacity\", \"0\", \"important\");\n            item.style.setProperty(\"visibility\", \"hidden\", \"important\");\n            previousSibling.setAttribute(\"aria-expanded\", \"false\");\n          }\n        });\n      }\n    }\n  }, true);\n  menuUl.addEventListener(\"keydown\", event => {\n    if (event.key === \"Enter\" || event.key === \" \") {\n      if (event.target.matches(\"#appContainer > nav ul > li > div > a\")) {\n        event.preventDefault();\n        const parentElm = event.target.parentElement;\n        if (parentElm) {\n          const dropdownElm = parentElm.querySelector(\"div[class*='opacity']\");\n          if (dropdownElm) {\n            if (dropdownElm.style.getPropertyValue(\"opacity\") === \"1\") {\n              dropdownElm.style.setProperty(\"opacity\", \"0\", \"important\");\n              dropdownElm.style.setProperty(\"visibility\", \"hidden\", \"important\");\n              event.target.setAttribute(\"aria-expanded\", \"false\");\n            } else {\n              dropdownElm.style.setProperty(\"opacity\", \"1\", \"important\");\n              dropdownElm.style.setProperty(\"visibility\", \"visible\", \"important\");\n              event.target.setAttribute(\"aria-expanded\", \"true\");\n            }\n          }\n        }\n      }\n    }\n  });\n}\nfunction focusOutHandler() {\n  const menuUl = document.querySelector(\"#appContainer > nav ul\");\n  const menuDropdownItems = menuUl.querySelectorAll(\":scope > li\");\n  if (menuDropdownItems.length > 0) {\n    menuDropdownItems.forEach(menuDropdownItem => {\n      menuDropdownItem.addEventListener(\"focusout\", event => {\n        if (!menuDropdownItem.contains(event.relatedTarget)) {\n          const dropdownElm = menuDropdownItem.querySelector(\"div[class*='opacity']\");\n          const previousSibling = dropdownElm.previousElementSibling;\n          if (dropdownElm && previousSibling) {\n            dropdownElm.style.setProperty(\"opacity\", \"0\", \"important\");\n            dropdownElm.style.setProperty(\"visibility\", \"hidden\", \"important\");\n            previousSibling.setAttribute(\"aria-expanded\", \"false\");\n          }\n        }\n      });\n      menuDropdownItem.addEventListener(\"keydown\", event => {\n        if (event.key === \"Escape\") {\n          const dropdownElm = menuDropdownItem.querySelector(\"div[class*='opacity']\");\n          const previousSibling = dropdownElm.previousElementSibling;\n          if (dropdownElm && previousSibling) {\n            dropdownElm.style.setProperty(\"opacity\", \"0\", \"important\");\n            dropdownElm.style.setProperty(\"visibility\", \"hidden\", \"important\");\n            previousSibling.setAttribute(\"aria-expanded\", \"false\");\n            setTimeout(() => {\n              previousSibling.focus();\n            }, 100);\n          }\n        }\n      });\n    });\n  }\n}\n}catch(ex){}\n})();\n/** file: fix-find-a-school-control-expanded-collapsed-states.js */\n(function(){\ntry{\n\"use strict\";\n\nif (!isMobile()) {\n  profileEnabledInterval(\"accessMode\", () => {\n    const findSchoolButton = document.querySelector('button[aria-controls=\"find-school-dropdown-menu\"]');\n    const findSchoolMenu = document.getElementById(\"find-school-dropdown-menu\");\n    if (!findSchoolButton || !findSchoolMenu) return false;\n    if (findSchoolButton.hasAttribute(\"data-acsb-find-school-processed\")) return true;\n    findSchoolButton.setAttribute(\"data-acsb-find-school-processed\", \"true\");\n    const syncExpandedState = () => {\n      const expandedValue = findSchoolMenu.classList.contains(\"visible\") ? \"true\" : \"false\";\n      if (findSchoolButton.getAttribute(\"aria-expanded\") !== expandedValue) {\n        findSchoolButton.setAttribute(\"aria-expanded\", expandedValue);\n      }\n    };\n    syncExpandedState();\n    const observer = new MutationObserver(mutations => {\n      const needsSync = mutations.some(mutation => {\n        if (mutation.target === findSchoolMenu && mutation.attributeName === \"class\") return true;\n        return mutation.target === findSchoolButton && mutation.attributeName === \"aria-expanded\" && !findSchoolButton.hasAttribute(\"aria-expanded\");\n      });\n      if (needsSync) syncExpandedState();\n    });\n    observer.observe(findSchoolMenu, {\n      attributes: true,\n      attributeFilter: [\"class\"]\n    });\n    observer.observe(findSchoolButton, {\n      attributes: true,\n      attributeFilter: [\"aria-expanded\"]\n    });\n    return true;\n  });\n}\n}catch(ex){}\n})();\n/** file: fix-find-a-school-search-results-accessibility.js */\n(function(){\ntry{\n\"use strict\";\n\nsetWidgetSpecificsOptions({\n  enable: true,\n  modifications: {\n    classifier: [{\n      type: \"ignore\",\n      selector: \"#find-school-dropdown-menu\"\n    }, {\n      type: \"ignore\",\n      selector: \"#find-school-dropdown-menu input#header-find-school-input\"\n    }, {\n      type: \"ignore\",\n      selector: \".pac-container\"\n    }]\n  }\n});\nprofileEnabledInterval(\"accessMode\", () => {\n  if (document.body.hasAttribute(\"data-acsb-find-school-search\")) return true;\n  document.body.setAttribute(\"data-acsb-find-school-search\", \"true\");\n  if (!document.getElementById(\"acsb-find-school-pac-styles\")) {\n    const style = document.createElement(\"style\");\n    style.id = \"acsb-find-school-pac-styles\";\n    style.textContent = \"\\n      .pac-container .pac-item.pac-item-selected {\\n        background-color: #e8e8e6 !important;\\n        outline: 2px solid #000 !important;\\n        outline-offset: -2px !important;\\n      }\\n    \";\n    document.head.appendChild(style);\n  }\n  const getPacItems = () => Array.from(document.querySelectorAll(\".pac-container .pac-item\")).filter(item => {\n    const container = item.closest(\".pac-container\");\n    return container && window.getComputedStyle(container).display !== \"none\";\n  });\n  const setActiveOption = (searchInput, activeIndex) => {\n    const pacItems = getPacItems();\n    if (!pacItems.length) return;\n    pacItems.forEach((pacItem, index) => {\n      const isActive = index === activeIndex;\n      pacItem.classList.toggle(\"pac-item-selected\", isActive);\n      pacItem.setAttribute(\"aria-selected\", isActive ? \"true\" : \"false\");\n      if (isActive) {\n        searchInput.setAttribute(\"aria-activedescendant\", pacItem.id);\n        pacItem.scrollIntoView({\n          block: \"nearest\"\n        });\n      }\n    });\n  };\n  const handleSearchKeydown = event => {\n    if (event.code !== \"ArrowDown\" && event.code !== \"ArrowUp\" && event.code !== \"Enter\") return;\n    const searchInput = document.querySelector(\"#find-school-dropdown-menu input#header-find-school-input\");\n    if (!searchInput || document.activeElement !== searchInput) return;\n    const pacItems = getPacItems();\n    if (!pacItems.length) return;\n    const activeId = searchInput.getAttribute(\"aria-activedescendant\");\n    let activeIndex = pacItems.findIndex(item => item.id === activeId);\n    if (event.code === \"ArrowDown\") {\n      event.preventDefault();\n      event.stopImmediatePropagation();\n      activeIndex = activeIndex < pacItems.length - 1 ? activeIndex + 1 : 0;\n      setActiveOption(searchInput, activeIndex);\n    }\n    if (event.code === \"ArrowUp\") {\n      event.preventDefault();\n      event.stopImmediatePropagation();\n      activeIndex = activeIndex > 0 ? activeIndex - 1 : pacItems.length - 1;\n      setActiveOption(searchInput, activeIndex);\n    }\n    if (event.code === \"Enter\" && activeIndex >= 0) {\n      event.preventDefault();\n      event.stopImmediatePropagation();\n      pacItems[activeIndex].click();\n    }\n  };\n  window.addEventListener(\"keydown\", handleSearchKeydown, true);\n  const addSearchInstructions = searchInput => {\n    if (document.getElementById(\"search-instructions\")) return;\n    const newSpan = createSrOnlyElement();\n    newSpan.id = \"search-instructions\";\n    newSpan.textContent = \"Results or suggestions will be displayed as they become available. Continue navigating to access them.\";\n    searchInput.insertAdjacentElement(\"afterend\", newSpan);\n    searchInput.setAttribute(\"aria-describedby\", \"search-instructions\");\n  };\n  const setupSearchInput = searchInput => {\n    forceNavigable(searchInput);\n    if (searchInput.hasAttribute(\"data-acsb-search-setup\")) return;\n    searchInput.setAttribute(\"data-acsb-search-setup\", \"true\");\n    searchInput.setAttribute(\"data-acsb\", \"\");\n    searchInput.setAttribute(\"role\", \"combobox\");\n    searchInput.setAttribute(\"aria-expanded\", \"false\");\n    searchInput.setAttribute(\"aria-haspopup\", \"listbox\");\n    searchInput.setAttribute(\"aria-autocomplete\", \"list\");\n    addSearchInstructions(searchInput);\n  };\n  const applyPacItems = () => {\n    const pacContainer = document.querySelector(\".pac-container\");\n    const searchInput = document.querySelector(\"#find-school-dropdown-menu input#header-find-school-input\");\n    if (!pacContainer) {\n      if (searchInput) {\n        searchInput.setAttribute(\"aria-expanded\", \"false\");\n        searchInput.removeAttribute(\"aria-activedescendant\");\n      }\n      return;\n    }\n    if (!pacContainer.id) pacContainer.id = \"acsb-find-school-listbox\";\n    pacContainer.setAttribute(\"role\", \"listbox\");\n    const pacItems = pacContainer.querySelectorAll(\".pac-item\");\n    if (searchInput) {\n      searchInput.setAttribute(\"aria-controls\", pacContainer.id);\n      searchInput.setAttribute(\"aria-expanded\", pacItems.length ? \"true\" : \"false\");\n    }\n    pacItems.forEach((pacItem, index) => {\n      var _queryEl$children$, _queryEl$children$2;\n      pacItem.id = \"acsb-find-school-option-\".concat(index + 1);\n      pacItem.setAttribute(\"role\", \"option\");\n      const queryEl = pacItem.querySelector(\".pac-item-query\");\n      queryEl.setAttribute(\"aria-hidden\", \"true\");\n      const name = (queryEl === null || queryEl === void 0 || (_queryEl$children$ = queryEl.children[0]) === null || _queryEl$children$ === void 0 ? void 0 : _queryEl$children$.textContent.trim()) || \"\";\n      const subtitle = (queryEl === null || queryEl === void 0 || (_queryEl$children$2 = queryEl.children[1]) === null || _queryEl$children$2 === void 0 ? void 0 : _queryEl$children$2.textContent.trim()) || \"\";\n      const label = subtitle ? \"\".concat(name, \", \").concat(subtitle) : name;\n      if (label) pacItem.setAttribute(\"aria-label\", label);\n      pacItem.querySelectorAll(\".pac-item-query span\").forEach(span => forceUnnavigable(span));\n      if (pacItem.classList.contains(\"pac-item-selected\")) {\n        pacItem.setAttribute(\"aria-selected\", \"true\");\n        searchInput === null || searchInput === void 0 || searchInput.setAttribute(\"aria-activedescendant\", pacItem.id);\n      } else {\n        pacItem.setAttribute(\"aria-selected\", \"false\");\n      }\n    });\n  };\n  const focusChangeLocationButton = () => {\n    const findSchoolMenu = document.getElementById(\"find-school-dropdown-menu\");\n    if (!findSchoolMenu || !findSchoolMenu.classList.contains(\"visible\")) return;\n    const changeLocationButton = [...findSchoolMenu.querySelectorAll(\"button\")].find(button => button.textContent.trim() === \"Change Location\");\n    if (!changeLocationButton) return;\n    setTimeout(() => changeLocationButton.focus(), 50);\n  };\n  let hadSearchInput = false;\n  const existingInput = document.querySelector(\"#find-school-dropdown-menu input#header-find-school-input\");\n  if (existingInput) {\n    hadSearchInput = true;\n    setupSearchInput(existingInput);\n  }\n  const observer = new MutationObserver(() => {\n    const searchInput = document.querySelector(\"#find-school-dropdown-menu input#header-find-school-input\");\n    if (searchInput) {\n      hadSearchInput = true;\n      setupSearchInput(searchInput);\n    } else if (hadSearchInput) {\n      hadSearchInput = false;\n      focusChangeLocationButton();\n    }\n    applyPacItems();\n  });\n  observer.observe(document.body, {\n    childList: true,\n    subtree: true,\n    attributes: true,\n    attributeFilter: [\"class\"]\n  });\n  return true;\n});\n}catch(ex){}\n})();\n/** file: fix-non-descriptive-label-form-input-field.js */\n(function(){\ntry{\n\"use strict\";\n\nprofileEnabledInterval(\"accessMode\", () => {\n  const form = document.querySelector(\"form.gravity-form\");\n  if (!form) return false;\n  const correctAriaLabelsMap = new WeakMap();\n  const setAriaLabel = (select, label) => {\n    if (!select) return;\n    correctAriaLabelsMap.set(select, label);\n    if (select.getAttribute(\"aria-label\") !== label) {\n      select.setAttribute(\"aria-label\", label);\n    }\n  };\n  const fixBirthDateFields = () => {\n    const birthDateFields = Array.from(form.querySelectorAll(\".gfield\")).filter(gfield => {\n      var _gfield$querySelector;\n      const labelText = (_gfield$querySelector = gfield.querySelector(\"label\")) === null || _gfield$querySelector === void 0 ? void 0 : _gfield$querySelector.textContent.trim();\n      return labelText === null || labelText === void 0 ? void 0 : labelText.includes(\"Birth Date\");\n    });\n    if (!birthDateFields.length) return false;\n    birthDateFields.forEach(monthField => {\n      var _monthField$querySele, _dayField$querySelect, _yearField$querySelec;\n      const birthDateLabel = ((_monthField$querySele = monthField.querySelector(\"label\")) === null || _monthField$querySele === void 0 ? void 0 : _monthField$querySele.textContent.trim()) || \"Birth Date*\";\n      const monthSelect = monthField.querySelector(\"select\");\n      const dayField = monthField.nextElementSibling;\n      const yearField = dayField === null || dayField === void 0 ? void 0 : dayField.nextElementSibling;\n      const dayLabelText = dayField === null || dayField === void 0 || (_dayField$querySelect = dayField.querySelector(\"label\")) === null || _dayField$querySelect === void 0 ? void 0 : _dayField$querySelect.textContent.trim();\n      const yearLabelText = yearField === null || yearField === void 0 || (_yearField$querySelec = yearField.querySelector(\"label\")) === null || _yearField$querySelec === void 0 ? void 0 : _yearField$querySelec.textContent.trim();\n      const daySelect = dayLabelText === \"Date\" ? dayField.querySelector(\"select\") : null;\n      const yearSelect = yearLabelText === \"Year\" ? yearField.querySelector(\"select\") : null;\n      setAriaLabel(monthSelect, \"\".concat(birthDateLabel, \" Month\"));\n      setAriaLabel(daySelect, \"\".concat(birthDateLabel, \" Day\"));\n      setAriaLabel(yearSelect, \"\".concat(birthDateLabel, \" Year\"));\n    });\n    return true;\n  };\n  if (!fixBirthDateFields()) return false;\n  const observer = new MutationObserver(mutations => {\n    let shouldRefix = false;\n    mutations.forEach(mutation => {\n      if (mutation.type === \"childList\") {\n        shouldRefix = true;\n        return;\n      }\n      if (mutation.type === \"attributes\" && mutation.attributeName === \"aria-label\") {\n        const target = mutation.target;\n        const storedLabel = correctAriaLabelsMap.get(target);\n        if (storedLabel && target.getAttribute(\"aria-label\") !== storedLabel) {\n          target.setAttribute(\"aria-label\", storedLabel);\n        }\n      }\n    });\n    if (shouldRefix) {\n      fixBirthDateFields();\n    }\n  });\n  observer.observe(form, {\n    childList: true,\n    subtree: true,\n    attributes: true,\n    attributeFilter: [\"aria-label\"]\n  });\n  return true;\n});\n}catch(ex){}\n})();\n/** file: fix-search-control-not-accessible-by-keyboard.js */\n(function(){\ntry{\n\"use strict\";\n\nsetWidgetSpecificsOptions({\n  enable: true,\n  modifications: {\n    classifier: [{\n      type: \"ignore\",\n      selector: 'form[title=\"Desktop - Search Across Our Site\"]'\n    }, {\n      type: \"ignore\",\n      selector: \"input#nav-search-site-desktop\"\n    }]\n  }\n});\nAJS.events.on(window, \"acsbActionEnabling\", function (e) {\n  var _document$querySelect;\n  if (e.detail.action !== \"keyNav\") return;\n  const form = (_document$querySelect = document.querySelector(\"#nav-search-site-desktop\")) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.closest(\"form\");\n  if (!form) return;\n  form.setAttribute(\"data-acsb\", \"\");\n  const searchInput = form.querySelector(\"input#nav-search-site-desktop\");\n  const searchButton = form.querySelector('label[for=\"nav-search-site-desktop\"]');\n  const closeButton = form.querySelector('button[type=\"reset\"]');\n  if (!searchInput || !searchButton) return;\n  if (form.getAttribute(\"data-acsb-search-keyboard-bound\") === \"true\") return;\n  form.setAttribute(\"data-acsb-search-keyboard-bound\", \"true\");\n  searchInput.setAttribute(\"aria-label\", \"Search\");\n  searchInput.removeAttribute(\"aria-hidden\");\n  addSearchboxInstructions(searchInput, \"Please press the enter key to initiate a search\");\n  forceNavigable(searchButton);\n  const ariaHiddenObserver = new MutationObserver(() => {\n    if (searchInput.getAttribute(\"aria-hidden\") === \"true\") {\n      searchInput.removeAttribute(\"aria-hidden\");\n    }\n  });\n  ariaHiddenObserver.observe(searchInput, {\n    attributes: true,\n    attributeFilter: [\"aria-hidden\"]\n  });\n  let suppressOpenOnFocus = false;\n  const openSearch = () => {\n    searchInput.removeAttribute(\"aria-hidden\");\n    searchInput.style.removeProperty(\"width\");\n    searchButton.style.removeProperty(\"display\");\n    if (closeButton) {\n      closeButton.style.removeProperty(\"display\");\n    }\n    forceNavigable(searchInput);\n    searchInput.focus();\n  };\n  const closeSearch = () => {\n    searchInput.style.width = \"0\";\n    if (closeButton) {\n      closeButton.style.setProperty(\"display\", \"none\", \"important\");\n    }\n    searchButton.style.setProperty(\"display\", \"flex\", \"important\");\n  };\n  const closeSearchAndFocusButton = () => {\n    closeSearch();\n    searchInput.blur();\n    forceNavigable(searchButton);\n    suppressOpenOnFocus = true;\n    setTimeout(() => {\n      searchButton.focus();\n    }, 0);\n  };\n  const focusNextAfterForm = () => {\n    const focusableSelector = 'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])';\n    const focusables = Array.from(document.querySelectorAll(focusableSelector)).filter(el => {\n      const style = window.getComputedStyle(el);\n      return style.display !== \"none\" && style.visibility !== \"hidden\";\n    });\n    let passedForm = false;\n    for (const el of focusables) {\n      if (form.contains(el)) {\n        passedForm = true;\n        continue;\n      }\n      if (passedForm) {\n        el.focus();\n        return;\n      }\n    }\n  };\n  searchInput.addEventListener(\"focus\", () => {\n    searchInput.removeAttribute(\"aria-hidden\");\n    searchInput.style.removeProperty(\"width\");\n    searchButton.style.removeProperty(\"display\");\n    if (closeButton) {\n      closeButton.style.removeProperty(\"display\");\n    }\n  });\n  searchButton.addEventListener(\"focus\", () => {\n    if (suppressOpenOnFocus) {\n      suppressOpenOnFocus = false;\n      return;\n    }\n    openSearch();\n  });\n  searchButton.addEventListener(\"keydown\", event => {\n    if (event.code !== \"Enter\" && event.code !== \"Space\") return;\n    event.preventDefault();\n    event.stopPropagation();\n    event.stopImmediatePropagation();\n    openSearch();\n  }, true);\n  searchInput.addEventListener(\"keydown\", event => {\n    if (event.code === \"Tab\" && !event.shiftKey) {\n      event.preventDefault();\n      event.stopPropagation();\n      event.stopImmediatePropagation();\n      if (closeButton) {\n        searchInput.style.width = \"10rem\";\n        closeButton.style.setProperty(\"display\", \"block\", \"important\");\n        forceNavigable(closeButton);\n        setTimeout(() => {\n          closeButton.focus();\n        }, 0);\n      }\n    }\n    if (event.code === \"Escape\") {\n      event.preventDefault();\n      event.stopPropagation();\n      event.stopImmediatePropagation();\n      closeSearchAndFocusButton();\n    }\n  }, true);\n  if (closeButton) {\n    closeButton.setAttribute(\"aria-label\", \"Reset\");\n    closeButton.addEventListener(\"keydown\", event => {\n      if (event.code === \"Escape\") {\n        event.preventDefault();\n        event.stopPropagation();\n        event.stopImmediatePropagation();\n        closeSearchAndFocusButton();\n        return;\n      }\n      if (event.code === \"Tab\" && !event.shiftKey) {\n        event.preventDefault();\n        event.stopPropagation();\n        event.stopImmediatePropagation();\n        closeSearch();\n        closeButton.blur();\n        setTimeout(() => {\n          focusNextAfterForm();\n        }, 0);\n      }\n    }, true);\n  }\n});\n}catch(ex){}\n})();\n/** file: fix-skip-to-content-link-issue.js */\n(function(){\ntry{\n\"use strict\";\n\nsetWidgetSpecificsOptions({\n  enable: true,\n  modifications: {\n    classifier: [{\n      type: \"locating\",\n      selector: \"main.main.main--container\",\n      locatorId: \"perceivable-component-main\"\n    }]\n  }\n});\n(function (_skipWidget$shadowRoo) {\n  const skipWidget = document.querySelector('access-widget-ui[data-acsb=\"skipLinks\"]');\n  const skipLinksContainer = skipWidget === null || skipWidget === void 0 || (_skipWidget$shadowRoo = skipWidget.shadowRoot) === null || _skipWidget$shadowRoo === void 0 ? void 0 : _skipWidget$shadowRoo.querySelector(\".skip-links\");\n  const skipToContentLink = skipLinksContainer === null || skipLinksContainer === void 0 ? void 0 : skipLinksContainer.querySelector('a[href=\"#acsbContent\"]');\n  const mainContent = document.querySelector(\"main.main.main--container\");\n  if (!mainContent) return false;\n  const fixMainContentAttributes = () => {\n    if (mainContent.getAttribute(\"aria-label\") !== \"Main Content\") {\n      mainContent.setAttribute(\"aria-label\", \"Main Content\");\n    }\n    if (mainContent.getAttribute(\"role\") !== \"main\") {\n      mainContent.setAttribute(\"role\", \"main\");\n    }\n    if (mainContent.getAttribute(\"data-acsb-main\") !== \"true\") {\n      mainContent.setAttribute(\"data-acsb-main\", \"true\");\n    }\n    if (mainContent.getAttribute(\"tabindex\") !== \"-1\") {\n      mainContent.setAttribute(\"tabindex\", \"-1\");\n    }\n  };\n  fixMainContentAttributes();\n  skipToContentLink.addEventListener(\"keydown\", e => {\n    if (e.code === \"Enter\" || e.code === \"Space\") {\n      skipToContentLink.click();\n      mainContent.focus();\n      setTimeout(() => {\n        mainContent.focus();\n      }, 1500);\n    }\n  });\n  const observer = new MutationObserver(fixMainContentAttributes);\n  observer.observe(mainContent, {\n    attributes: true,\n    attributeFilter: [\"aria-label\", \"role\", \"data-acsb-main\", \"tabindex\"]\n  });\n  return true;\n})();\n}catch(ex){}\n})();\n/** file: fix-tab-controls-state-announcements-and-focus-order.js */\n(function(){\ntry{\n\"use strict\";\n\nsetWidgetSpecificsOptions({\n  enable: true,\n  modifications: {\n    classifier: [{\n      type: \"detection\",\n      selector: \"#Page_Modules_Modules_FeaturedTabsBlock_2 button.text-customizationsGreen\",\n      detectorId: \"perceivable-component-tab\",\n      expected: true\n    }]\n  }\n});\nprofileEnabledInterval(\"accessMode\", () => {\n  const tabs = document.querySelectorAll(\"#Page_Modules_Modules_FeaturedTabsBlock_2 button.transition-colors\");\n  if (tabs.length) {\n    function updateAriaSelected(tabElements) {\n      tabElements.forEach(tab => {\n        const isPressed = tab.getAttribute(\"aria-pressed\") === \"true\";\n        tab.setAttribute(\"aria-selected\", isPressed ? \"true\" : \"false\");\n      });\n    }\n    updateAriaSelected(tabs);\n    tabs.forEach(tab => {\n      const observer = new MutationObserver(() => {\n        updateAriaSelected(tabs);\n      });\n      observer.observe(tab, {\n        attributes: true,\n        attributeFilter: [\"aria-pressed\"]\n      });\n      tab.addEventListener(\"keydown\", event => {\n        if (event.code === \"Enter\" || event.code === \"Space\") {\n          setTimeout(() => {\n            var _tab$parentElement;\n            const contentSection = (_tab$parentElement = tab.parentElement) === null || _tab$parentElement === void 0 ? void 0 : _tab$parentElement.nextElementSibling;\n            if (contentSection) {\n              var _contentSection$query;\n              (_contentSection$query = contentSection.querySelector(\"a, button\")) === null || _contentSection$query === void 0 || _contentSection$query.focus();\n            }\n          }, 100);\n        }\n      });\n    });\n    return true;\n  }\n});\n}catch(ex){}\n})();\n\n}catch(ex){}\n})();\n\n</script><style>\n\n</style>","addonAnalytics":true,"blockMeta":false,"blockImages":false,"blockStyles":false,"blockTextSimplifier":false,"widgetSettings":{"consistentHelpData":[],"disableBgProcess":false,"footerHtml":"","hideComponents":[],"hideMobile":false,"hideTrigger":false,"language":"en","leadColor":"#146FF8","position":"right","remoteAnalytics":true,"statementLink":"","statementVariant":"default","triggerColor":"#146FF8","triggerIcon":"people","triggerOffsetX":20,"triggerOffsetY":20,"triggerPositionX":"right","triggerPositionY":"bottom","triggerRadius":"50%","triggerSize":"medium","copilotChat":false},"featureFlags":{"text-simplifier":false,"ai-assistant":true,"classification-provider":false}}