/* TECH-04B: scoped navigation, focus and narrow-screen title improvements. */
.rd-mobilemenu[hidden],
.rd-mobilemenu [hidden],
.navbar [data-type="navbar"] [hidden] {
  display: none !important;
}

.rd-mobilemenu a:focus,
.rd-mobilemenu button:focus,
.rd-mobilepanel_toggle:focus,
.navbar a:focus,
.navbar button:focus {
  outline: 3px solid #123d70 !important;
  outline-offset: -3px;
  box-shadow: inset 0 0 0 5px #fff;
}

.rd-submenu-toggle,
.eksas-submenu-toggle {
  border: 1px solid #666;
  border-radius: 4px;
  background: #f7f7f7;
  color: #333;
  cursor: pointer;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  text-align: center;
}

.rd-submenu-toggle::after,
.eksas-submenu-toggle::after {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
}

.rd-submenu-toggle[aria-expanded="true"]::after,
.eksas-submenu-toggle[aria-expanded="true"]::after {
  transform: translateY(2px) rotate(225deg);
}

.rd-submenu-toggle:hover,
.eksas-submenu-toggle:hover {
  background: #e9e9e9;
  color: #111;
}

.rd-mobilemenu_ul li {
  position: relative;
}

.rd-mobilemenu_ul > li.eksas-has-submenu {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 52px;
}

.rd-mobilemenu_ul > li > .rd-submenu-toggle {
  position: static;
  align-self: start;
  margin: 3px 8px 3px 0;
  width: 44px;
  height: 44px;
}

.rd-mobilemenu_ul > li > .rd-mobilemenu_submenu {
  grid-column: 1 / -1;
}

.rd-mobilemenu_ul a {
  overflow-wrap: anywhere;
}

@media (min-width: 768px) {
  .navbar .navbar-nav > li.eksas-has-submenu {
    display: grid;
    grid-template-columns: auto 44px;
    position: relative;
  }

  .navbar .navbar-nav > li.eksas-has-submenu > a {
    padding-right: 12px;
  }

  .navbar .navbar-nav > li.eksas-has-submenu > .eksas-submenu-toggle {
    align-self: stretch;
    width: 44px;
    height: auto;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #333;
  }

  .navbar .navbar-nav > li.eksas-has-submenu:hover,
  .navbar .navbar-nav > li.eksas-has-submenu:focus-within,
  .navbar .navbar-nav > li.eksas-dropdown-open {
    background: #333;
  }

  .navbar .navbar-nav > li.eksas-has-submenu:hover > a,
  .navbar .navbar-nav > li.eksas-has-submenu:focus-within > a,
  .navbar .navbar-nav > li.eksas-dropdown-open > a,
  .navbar .navbar-nav > li.eksas-has-submenu:hover > .eksas-submenu-toggle,
  .navbar .navbar-nav > li.eksas-has-submenu:focus-within > .eksas-submenu-toggle,
  .navbar .navbar-nav > li.eksas-dropdown-open > .eksas-submenu-toggle {
    background: transparent;
    color: #e1704b;
  }

  /* Pointer clicks stay visually integrated; keyboard focus remains prominent. */
  .navbar a:focus:not(:focus-visible),
  .navbar button:focus:not(:focus-visible) {
    outline: none !important;
    box-shadow: none;
  }

  .navbar .navbar-nav > li.eksas-dropdown-open > .dropdown-menu:not([hidden]) {
    display: block !important;
  }

  .navbar .navbar-nav > li.eksas-has-submenu > .dropdown-menu {
    top: 100%;
    left: 0;
    right: auto;
    margin: 0;
    width: max(260px, 100%);
    max-width: calc(100vw - 30px);
    padding: 8px 0;
    max-height: calc(100vh - 100px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  /* Replace the legacy double padding without changing the generated markup. */
  .navbar .navbar-nav > li.eksas-has-submenu > .dropdown-menu > li {
    padding: 0 !important;
  }

  .navbar .navbar-nav > li.eksas-has-submenu > .dropdown-menu > li > a {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 10px 18px !important;
    line-height: 20px;
  }
}

@media (max-width: 767px) {
  html {
    scroll-padding-top: calc(var(--rd-panel-height, 56px) + 8px);
  }

  body {
    padding-top: var(--rd-panel-height, 56px);
  }

  .rd-mobilepanel {
    display: flex;
    align-items: center;
    gap: 10px;
    height: auto;
    min-height: 56px;
    padding: 4px 8px;
  }

  .rd-mobilepanel_toggle {
    position: static;
    flex: 0 0 48px;
  }

  .rd-mobilepanel_title {
    position: static;
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    padding: 0;
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .rd-mobilemenu_ul {
    top: var(--rd-panel-height, 56px);
    bottom: 0;
    padding: 20px 0;
    max-width: calc(100vw - 16px);
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
  }

  .page main h1,
  .page main h2,
  .page main h3 {
    overflow-wrap: anywhere;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rd-mobilemenu,
  .rd-mobilemenu_ul,
  .rd-mobilepanel_toggle,
  .rd-mobilepanel_toggle span,
  .rd-mobilepanel_toggle span::before,
  .rd-mobilepanel_toggle span::after {
    transition: none;
  }
}
