@charset "utf-8";
/* ============================================================================
 * navigation-menu.css — NEW header navigation (the survivor)
 *
 * Targets ONLY the markup emitted by headerinc_new.php:
 *   .site-header > .site-header__container
 *     .branding > .branding__identity > .branding__logo[ --simple]
 *     nav#main-nav.nav > ul#menu-main-menu.menu
 *   nav#breadcrumbsMenu > ul#breadcrumbs
 * plus the menu structure built by menu.js (.sub-menu, .mega-menu,
 * .mm-tabs-container, .menu-list, .tabs__panels, .left-content, #menu-more /
 * #moreSubMenu) and the runtime classes added by menu-templates.js.
 *
 * Self-sufficient: the legacy header loads navigation-menu-legacy.css instead,
 * so this file carries everything the new header needs on its own.
 *
 * Theme tokens (--nav-*, --submenu-*, --menu-list-*, --icon-*, …) are defined
 * by the theme stylesheets menu.js loads (widgets/menu/css/templatesStyles/*).
 * They're consumed here with fallbacks so the menu degrades gracefully if a
 * theme file is missing.
 *
 * NOTE: generic page rules that used to live in the old file (html/body/a,
 * h1–h3, footer, .container, .login-form, .user-type, #currentUser) were
 * intentionally NOT carried over — they belong in the global stylesheet, not
 * a navigation widget. Move them there if they aren't already covered.
 *
 * Sections:
 *   1. Helpers (skip link, visually-hidden, error alert)
 *   2. Header & branding
 *   3. Primary navigation
 *   4. Submenus
 *   5. "More" overflow
 *   6. Mega menu
 *   7. Carets
 *   8. Breadcrumbs
 *   9. SVG icons
 *  10. Responsive
 * ========================================================================== */

/* ============================================================================
 * 1. HELPERS
 * ========================================================================== */

.visually-hidden,
.hidden-text {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.visually-hidden:focus {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
}

a.skip-nav-link {
  position: absolute;
  left: 0;
  top: 0;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  background-color: var(--skip-nav-bg, #ffffcc);
  color: var(--skip-nav-text, #1d2733);
}
a.skip-nav-link:focus {
  width: auto;
  height: auto;
  padding: 0.5rem;
  margin: 0;
  clip: auto;
  clip-path: none;
  border: 3px solid;
  border-top: none;
  z-index: 1000;
}

.menu-error-alert {
  position: fixed;
  top: 1rem;
  right: 1rem;
  width: 400px;
  max-width: 90%;
  padding: 1rem 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: var(--color-error, #dc3545);
  color: #fff;
  border-radius: 0.25rem;
  box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.3);
  z-index: 10000;
  animation: menu-alert-slide-in 0.3s ease-out;
}
.menu-error-alert button {
  padding: 0 0 0 1rem;
  background: transparent;
  border: 0;
  color: #fff;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
  transition: opacity 0.2s;
}
.menu-error-alert button:hover {
  opacity: 0.8;
}
@keyframes menu-alert-slide-in {
  from { transform: translateX(100%); opacity: 0; }
  to   { transform: translateX(0);    opacity: 1; }
}

/* ============================================================================
 * 2. HEADER & BRANDING
 * ========================================================================== */

.site-header {
  position: fixed;
  inset-block-start: 0;
  inline-size: 100%;
  z-index: 100;
  background-color: var(--nav-bg, #ffffff);
  border-bottom: 0.15rem solid var(--nav-border-bottom, #555555);
}

.site-header__container {
  max-width: 90%;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.branding__identity {
  display: flex;
  align-items: center;
}
.branding__logo a,
.branding__logo--simple a {
  display: block;
}
.branding__logo img,
.branding__logo--simple img {
  width: 160px;
  height: auto;
  max-width: 100%;
  object-fit: contain;
}

/* Simple/wordmark logo swaps in on small screens (toggled by media queries). */
.branding__logo--simple {
  display: none;
}

/* ============================================================================
 * 3. PRIMARY NAVIGATION
 * ========================================================================== */

#main-nav ul,
#main-nav ul li {
  margin: 0;
  list-style: none;
}

#menu-main-menu {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  font-weight: 600;
}

#menu-main-menu > li {
  position: relative;
  padding: 0.4rem 0;
  flex: 0 0 auto; /* keep natural width so the JS overflow math is stable (no shrink) */
}

#menu-main-menu > li > a {
  display: block;
  padding: 0.8rem 1.25rem;
  border: 2px solid transparent;
  background: transparent;
  color: var(--nav-text, #000000);
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap; /* labels stay single-line; crowding folds into More, not wrap */
}

#menu-main-menu > li.menu-item-has-children > a {
  padding-right: 0.45em;
}

#menu-main-menu > li > a:hover,
#menu-main-menu > li > a:focus,
#menu-main-menu > li[aria-expanded="true"] > a,
#menu-main-menu > li:hover > a {
  border-color: var(--page-text, currentColor);
  background-color: var(--nav-item-bg-hover, #edf3f8);
  color: var(--nav-item-text-hover, #000000);
}

#menu-main-menu > li > a:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.5);
  border-radius: 4px;
}

/* Keep the top-level label colour steady while its submenu is open/hovered. */
#menu-main-menu > li.menu-item-has-children:hover > a {
  color: var(--nav-text-hover, #000000);
}
.menu-item-has-children[aria-expanded="false"]:has(> .sub-menu:hover) > a,
.menu-item-has-children[aria-expanded="false"]:has(> .sub-menu:hover *) > a {
  color: var(--nav-text, #000000) !important;
}

ul#menu-main-menu a:active {
  color: var(--nav-item-text-hover, #000000);
}

/* ============================================================================
 * 4. SUBMENUS
 * ========================================================================== */

/* Base: hidden, absolutely positioned under the parent. */
ul#menu-main-menu li > ul {
  position: absolute;
  top: 100%;
  opacity: 0;
  padding: 0;
  background: var(--submenu-level-1-bg, #ffffff);
}
ul#menu-main-menu li[aria-expanded="true"] > ul {
  opacity: 1;
  display: block;
}

/* First-level submenu panel. */
#menu-main-menu > li.menu-item-has-children > ul.sub-menu {
  right: 0.25rem;
  top: 4.8rem;
  min-width: 20rem;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 0 0.2rem 0 rgba(50, 50, 50, 0.75);
}

/* Nested submenu. */
ul.sub-menu li > ul.sub-menu {
  top: 0;
  padding-left: 0.75rem;
  font-weight: 400;
  box-shadow: none;
}
ul#menu-main-menu li > ul > li > ul {
  display: none;
}
ul#menu-main-menu li > ul > li > a.active > ul {
  display: block;
}

.sub-menu > li {
  display: block;
  position: relative;
}

/* Link styling by depth. Re-keyed off #menu-main-menu (no container prefix) so
   these apply to the new header. */
#menu-main-menu > li > .sub-menu a,
#menu-main-menu > li > .mega-menu a {
  display: block;
  padding: 1rem 0;
  font-weight: 600;
  line-height: 1.25;
  text-align: left;
  text-decoration: none;
  max-width: 100%;
  white-space: normal;
  color: var(--submenu-level-1-text, #1d2733);
}
#menu-main-menu > li > .sub-menu > li > a {
  padding: 1rem 0 1rem 1.5rem;
  width: 100%;
}
#menu-main-menu > li li > .sub-menu a {
  padding: 0.74rem 0 0.63rem 2rem;
  font-weight: 400;
}
#menu-main-menu > li li li > .sub-menu a {
  padding-left: 2.5rem;
}
#menu-main-menu > li li li li > .sub-menu a {
  padding-left: 3rem;
}

#menu-main-menu .sub-menu a:hover,
#menu-main-menu .sub-menu a:focus,
#menu-main-menu .mega-menu a:hover,
#menu-main-menu .mega-menu a:focus {
  background-color: var(--nav-item-bg-hover, #edf3f8);
  color: var(--submenu-level-1-text-hover, #000000);
}

/* Second-level submenu colours. */
#menu-main-menu .sub-menu .sub-menu a,
#menu-main-menu .sub-menu .sub-menu a:hover,
#menu-main-menu .sub-menu .sub-menu a:focus {
  background-color: var(--submenu-level-2-bg, #ffffff);
  color: var(--submenu-level-2-text, #1d2733);
}

/* Disable collapsed submenu links (and suppress their hover affordances). */
.menu-item-has-children[aria-expanded="false"] .sub-menu a {
  pointer-events: none;
  cursor: default;
  text-decoration: none;
}
.menu-item-has-children[aria-expanded="false"] .sub-menu a:hover {
  background: none;
  text-decoration: none;
}

/* ============================================================================
 * 5. "MORE" OVERFLOW
 * ========================================================================== */

#moreSubMenu {
  max-height: 0;
  overflow: hidden;
  transition: max-height 1s ease-in-out;
}
#menuMoreLink.active:hover + #moreSubMenu,
#menuMoreLink.active + #moreSubMenu:hover {
  opacity: 1;
}
#moreSubMenu li[aria-expanded="true"] > ul.sub-menu {
  position: relative;
  display: block;
  opacity: 1;
}
#moreSubMenu li[aria-expanded="false"] > .mega-menu {
  display: none;
}

/* Profile chip. */
.profile {
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  float: left;
  border-radius: 50%;
  background-color: #ffffff;
  border: 2px solid var(--nav-bg, #2f7d39);
  color: var(--nav-bg, #2f7d39);
  font-weight: bold;
  text-align: center;
}

/* ============================================================================
 * 6. MEGA MENU
 * ========================================================================== */

.mega-menu,
.grid-container-multiple,
.mm-tabs-container {
  overflow: visible;
}

/* Hidden state + reveal. Precise on-screen position is set by menu.js
   (determineMegaMenuPosition) on expand. */
header nav ul.menu > li.menu-item-has-children > .mega-menu,
#menu-main-menu > li.menu-item-has-children > .mega-menu {
  position: absolute;
  inset-inline-end: 6em;
  inset-inline-start: auto;
  inline-size: 100vw;
  max-width: 100vw;
  margin-top: 0.15rem;
  max-height: 85vh;
  overflow: auto;
  text-align: left;
  background-color: rgba(255, 255, 255, 0.9);
  color: #000000;
  box-shadow: -2px 2px 70px -25px rgba(0, 0, 0, 0.3);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-200px);
  transition: opacity 0.5s ease, transform 0.5s ease, visibility 0s linear 0.5s;
  will-change: transform, opacity;
}
#menu-main-menu > li[aria-expanded="true"] > .mega-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
  background-color: #fff;
  transition: opacity 0.5s ease, transform 0.5s ease, visibility 0s;
}

/* Tabbed services grid + pages grid. */
.mega-menu .mm-tabs-container {
  display: grid;
  grid-template-columns: 250px 2fr 1fr;
  grid-template-rows: 1fr;
  height: 100%;
  max-width: 100%;
  padding-bottom: 1rem;
  padding-right: 2rem;
  border: 1px solid #000;
  background-color: var(--submenu-level-1-bg, #ffffff);
  box-sizing: border-box;
  overflow: visible;
}
.mega-menu .grid-container-pages {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: 1fr;
  height: 100%;
  max-width: 100%;
  padding-bottom: 1rem;
  padding-right: 2rem;
  border: 1px solid #000;
  background-color: var(--submenu-level-1-bg, #ffffff);
  box-sizing: border-box;
  overflow: hidden;
}
#moreSubMenu .mega-menu .mm-tabs-container {
  grid-template-columns: 1fr;
  grid-auto-flow: row;
  width: 100%;
  max-width: 100%;
  padding-right: 0;
}
#moreSubMenu .mega-menu .menu-list {
  flex-direction: row;
}

.mega-menu .mm-tabs-container a,
.mega-menu .grid-container-pages > .left-content a {
  text-decoration: none;
}

/* Tab list. */
.mega-menu .menu-list li {
  display: flex;
  align-items: center;
  gap: 1em;
  padding-left: 1rem;
}
.mega-menu .menu-list svg {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
}
.mega-menu .menu-list span,
.mega-menu .tabs__panels span {
  font-weight: normal;
}
.mega-menu .menu-list a {
  color: var(--menu-list-text, #1d2733);
}
.mega-menu .menu-list a[aria-selected="true"] {
  color: var(--menu-list-text-selected, #000000) !important;
}
.mega-menu .menu-list li:hover,
.mega-menu .menu-list li:has(a:focus),
.mega-menu .menu-list li:has(a[aria-selected="true"]),
.mega-menu .menu-list a:hover,
.mega-menu .menu-list a:focus {
  background-color: var(--nav-item-bg-hover, #edf3f8) !important;
}
.mega-menu .menu-list li:hover a {
  color: var(--menu-list-text-selected, #000000) !important;
}

/* Tab "circle" caret indicator. */
.mega-menu .menu-list li .circle {
  width: 30px;
  height: 30px;
  margin-left: auto;
  margin-right: 0.5em;
  border-radius: 50%;
  border: 2px solid #000;
  background-color: #fff;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
}
.mega-menu .menu-list li .circle .caret {
  position: relative;
}
.mega-menu .menu-list li .circle .caret::before {
  content: "";
  position: absolute;
  top: 5px;
  left: 12px;
  border-left: 9px solid #000;
  border-top: 9px solid transparent;
  border-bottom: 9px solid transparent;
}
.mega-menu .menu-list li .circle .caret::after {
  content: "";
  position: absolute;
  top: 10px;
  left: 12px;
  border-left: 4px solid #fff;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
}
.mega-menu .menu-list li:has(a[aria-selected="true"]) > .circle,
.mega-menu .menu-list li:hover > .circle {
  display: none;
}

/* Tab panels (the link grid). */
.mega-menu .tabs__panels {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  grid-template-rows: repeat(5, auto);
  row-gap: 1rem;
  padding: 1rem;
  background-color: #fff;
  box-sizing: border-box;
  overflow: visible;
}
.mega-menu .tabs__panels h4 {
  grid-column: 1 / -1;
  margin: 0;
  padding: 0.5em 2rem;
  font-size: 1.2em;
  font-weight: bold;
  text-align: center;
  background-color: var(--banner-bg, #1f5ea8);
  color: var(--banner-text, #ffffff);
}
.mega-menu .tabs__panels h5 {
  margin: 20px 0 10px;
  padding-bottom: 5px;
  font-size: 1.4rem;
  font-weight: bold;
  text-align: center;
  text-transform: capitalize;
  color: var(--subtitle-text, #0f6d5b);
  border-bottom: 2px solid var(--subtitle-text, #0f6d5b);
}
.mega-menu .tabs__panels [role="listitem"] {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  padding: 0;
  text-align: left;
}
.mega-menu [role="listitem"] a {
  padding-left: 1em !important;
}
.mega-menu .tabs__panels p {
  margin: 0;
  max-width: 250px;
}
.mega-menu .tabs__panels svg,
.mega-menu .left-content svg {
  flex-shrink: 0;
  width: 80px;
  height: 85px;
}
.mega-menu .menu-mega__link {
  color: var(--menu-list-text, #1d2733);
}

/* createMenuContent cards use a bare <strong>/<span> inside .menu-mega__link.
   Force the label and description onto separate lines with spacing so the
   description doesn't butt against the name (high specificity to win cascade). */
.mega-menu .menu-mega__link > strong {
  display: block;
  font-weight: var(--menu-font-weight-medium, 600);
  line-height: 1.3;
}
.mega-menu .menu-mega__link > span {
  display: block;
  margin-top: 0.125rem;
  font-size: var(--menu-font-size-sm, 0.85rem);
  color: var(--menu-text-muted, #5a6b7b);
  line-height: 1.4;
  overflow-wrap: anywhere;
}
.mega-menu .menu-mega__panel-item:hover > p > a.menu-mega__link {
  color: var(--submenu-level-1-text, #1d2733) !important;
}

/* Pages grid left column. */
.mega-menu .grid-container-pages > .left-content {
  display: grid;
  grid-column: span 2;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  padding: 1rem;
  background-color: #fff;
}
.mega-menu .grid-container-pages > .left-content > .grid-item {
  display: flex;
  align-items: center;
  padding: 1rem;
}
.mega-menu .grid-container-pages > .left-content p {
  width: 100%;
  margin-left: 1em;
  white-space: normal;
  overflow-wrap: break-word;
  box-sizing: border-box;
}
.mega-menu .grid-container-pages > .left-content p span {
  font-weight: normal;
}

/* "More" menu mega link colours. */
#moreSubMenu .mega-menu a {
  color: #000 !important;
}
#moreSubMenu .mega-menu a:hover,
#moreSubMenu .mega-menu a:focus,
#moreSubMenu .mega-menu a:focus-visible {
  color: var(--tab-panel-text-selected, #000000) !important;
}
#moreSubMenu .menu-list a {
  color: var(--menu-list-text, #1d2733) !important;
}
#moreSubMenu .menu-list a[aria-selected="true"],
#moreSubMenu .menu-list a:hover,
#moreSubMenu .menu-list a:focus,
#moreSubMenu .menu-list a:focus-visible {
  color: var(--menu-list-text-selected, #000000) !important;
  background-color: #fff !important;
}

header,
#menu-main-menu,
.mega-menu {
  position: relative;
  z-index: 100;
}
.site-header {
  position: fixed; /* keep fixed positioning from §2 */
}

/* ============================================================================
 * 7. CARETS (angle arrows)
 * ========================================================================== */

i.caret {
  position: relative;
  top: 7px;
  left: 5px;
}
button i.caret {
  top: 0;
}
button .caret.angle-down {
  display: inline-block;
  width: 0;
  height: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 7px solid currentColor;
  transition: transform 0.2s ease;
}
button.caret.angle-down.angle-up {
  transform: rotate(180deg);
}

i.caret::before,
i.caret::after {
  content: "";
  position: relative;
}
i.angle-down::before,
i.angle-up::before {
  left: 0;
  border-left: 7px solid transparent;
  border-right: 7px solid transparent;
}
i.angle-down::before { top: 5px; }
i.angle-up::before   { top: -20px; }
i.angle-down::after {
  left: -10px;
  bottom: -2px;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
}
i.angle-up::after {
  left: -10px;
  top: -17px;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
}

/* Top-level caret colours (token-driven). */
.menu-item-has-children > a i.angle-down::before {
  border-top: 7px solid var(--nav-text, #000000);
}
.menu-item-has-children > a:hover i.angle-down::before,
.menu-item-has-children > a:focus i.angle-down::before,
.menu-item-has-children[aria-expanded="true"] > a i.angle-down::before {
  border-top: 7px solid var(--nav-item-text-hover, #000000);
}
.menu-item-has-children > a i.angle-down::after {
  border-top: 4px solid var(--nav-bg, #ffffff);
}
.menu-item-has-children > a:hover i.angle-down::after,
.menu-item-has-children > a:focus i.angle-down::after,
.menu-item-has-children[aria-expanded="true"] > a i.angle-down::after {
  border-top: 4px solid var(--nav-item-bg-hover, #edf3f8);
}
.menu-item-has-children i.angle-up::before {
  border-bottom: 7px solid var(--nav-text-hover, #000000);
}
.menu-item-has-children i.angle-up::after {
  border-bottom: 4px solid var(--nav-item-bg-hover, #edf3f8);
}
/* Submenu carets inherit the link colour of their level. */
#menu-main-menu .sub-menu i.angle-down::before {
  border-top: 7px solid currentColor;
}
#menu-main-menu .sub-menu i.angle-down::after {
  border-top: 4px solid currentColor;
}

/* ============================================================================
 * 8. BREADCRUMBS
 * ========================================================================== */

#breadcrumbsMenu {
  margin-top: 6em;
}
.breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  margin: 0 0 0 2em;
}
.breadcrumbs li {
  margin-right: 5px;
  color: var(--color-on-surface, #1d2733);
}
.breadcrumbs li a {
  color: var(--breadcrumb-link, #1f5ea8);
  text-decoration: none;
}
.breadcrumbs li::after {
  content: attr(data-symbol);
  margin-left: 5px;
}
/* visually-hidden helper for breadcrumb separators rendered as <span> */
.breadcrumbs li span {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ============================================================================
 * 9. SVG ICONS
 * ========================================================================== */

svg {
  fill: #000;
  stroke: #000;
}
[role="listitem"] svg.generic-file {
  fill: var(--icon-file-fill, currentColor);
  stroke: var(--icon-file-stroke, currentColor);
}
[role="listitem"] svg.generic-report {
  fill: var(--icon-report-fill, currentColor);
  stroke: var(--icon-report-stroke, currentColor);
}
[role="listitem"] svg.data-input {
  fill: var(--icon-data-input-fill, currentColor);
  stroke: var(--icon-file-stroke, currentColor);
}

/* ============================================================================
 * 10. RESPONSIVE
 * ========================================================================== */

/* Logo swap: simple/wordmark on small screens, full logo above. */
@media (max-width: 27rem) {
  .branding__logo { display: none; }
  .branding__logo--simple { display: block; }
}
@media (max-width: 900px) {
  .branding__logo img,
  .branding__logo--simple img { width: 120px; }
}
@media (max-width: 600px) {
  .branding__logo img,
  .branding__logo--simple img { width: 90px; }
}

/* Large desktop: 3-up tab panels. */
@media (min-width: 85.375rem) { /* > 1366px */
  .mega-menu .tabs__panels {
    grid-template-columns: repeat(3, 1fr);
  }
  .mega-menu .tabs__panels svg {
    margin-top: 1em;
    width: 3.75rem;
    height: 3.75rem;
  }
}

/* Base mobile (<= 320px). */
@media (max-width: 20rem) {
  #moreSubMenu .mega-menu .mm-tabs-container {
    width: 100%;
    grid-template-columns: 1fr;
  }
  .mega-menu .menu-list li img { display: none; }
  ul.menu-list li p { font-size: 0.8rem; padding-left: 0.3rem; }
}

/* Small mobile (<= 432px). */
@media (max-width: 27rem) {
  .mega-menu .tabs__panels { grid-template-columns: 1fr; column-gap: 0; }
  .mega-menu .mm-tabs-container .menu-list li {
    padding-left: 0.35rem;
    column-gap: 0.22rem;
  }
  #menu-main-menu > li > a { padding: 1.5rem 1.25rem; }
}

/* Medium mobile (<= 480px). */
@media (max-width: 30rem) {
  .mega-menu .tabs__panels [role="listitem"] { padding-left: 1rem; }
  .mega-menu .tabs__panels h5 { font-size: 1rem; }
  .mega-menu .tabs__panels [role="listitem"] p {
    margin: 0;
    padding-right: 0.5rem;
  }
}

/* Narrow mobile (<= 540px). */
@media (max-width: 33.75rem) {
  .mega-menu .menu-list li { gap: 1rem; }
}

/* Tablet / small devices (<= 600px). */
@media (max-width: 37.5rem) {
  #moreSubMenu .mega-menu .mm-tabs-container {
    width: 100%;
    grid-template-columns: 1fr;
  }
  .mega-menu .grid-container-pages {
    grid-template-columns: 1fr;
    padding-right: 0;
  }
  .mega-menu .grid-container-pages > .left-content {
    grid-column: 1;
    grid-template-columns: 1fr;
    row-gap: 0;
  }
  .mega-menu .tabs__panels {
    grid-template-columns: 1fr;
    width: 100%;
    max-width: 100%;
    overflow: visible;
  }
  .mega-menu .tabs__panels [role="listitem"] {
    width: 100%;
    padding-left: 1rem;
    padding-right: 0;
    overflow: visible;
  }
  .mega-menu .tabs__panels h4 { font-size: 1rem; }
  .mega-menu .tabs__panels h5 { font-size: 1.1rem; }
  .mega-menu .tabs__panels [role="listitem"] p { font-size: 0.85rem; }
  .mega-menu .menu-list li { gap: 0.5rem; }
  .mega-menu .menu-list li .circle { display: none; }
  ul.menu-list p { font-size: 0.9rem; }
  .menu-list li a:not([aria-selected="true"]) {
    padding-right: 1rem !important;
    color: var(--menu-list-text, #1d2733) !important;
  }
  #menu-main-menu > li > .sub-menu a { padding: 1rem 0; }
  /* Full-width submenus on small screens. */
  #menu-main-menu li.menu-item-has-children > ul.sub-menu {
    left: auto;
    min-width: 100vw;
    width: 100vw;
    max-width: 100vw;
  }
  .menu-error-alert {
    width: 90%;
    right: 5%;
    padding: 0.75rem 1rem;
  }
  /* Tab list scrolls horizontally. */
  .mega-menu .menu-list {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    gap: 0;
    padding-bottom: 0.5rem;
    scrollbar-width: thin;
    scrollbar-color: #c0c0c0 #f0f0f0;
  }
  .mega-menu .menu-list li { flex: 0 0 auto; }
  .mega-menu .menu-list::-webkit-scrollbar { height: 8px; }
  .mega-menu .menu-list::-webkit-scrollbar-track {
    background: #f0f0f0;
    border-radius: 4px;
  }
  .mega-menu .menu-list::-webkit-scrollbar-thumb {
    background: #c0c0c0;
    border-radius: 4px;
  }
}

/* Tablet / landscape (601px – 1024px): single-column container, scrolling tabs. */
@media (min-width: 37.5625rem) and (max-width: 64rem) {
  .mega-menu .mm-tabs-container {
    grid-template-columns: 1fr;
    padding-right: 0;
  }
  .mega-menu .menu-list {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    gap: 1rem;
    padding-bottom: 0;
    scrollbar-width: thin;
    scrollbar-color: #c0c0c0 #f0f0f0;
  }
  .mega-menu .menu-list li { flex: 0 0 auto; }
  .mega-menu .menu-list p { padding-right: 2rem; }
  .mega-menu .menu-list::-webkit-scrollbar { height: 8px; }
  .mega-menu .menu-list::-webkit-scrollbar-track {
    background: #f0f0f0;
    border-radius: 4px;
  }
  .mega-menu .menu-list::-webkit-scrollbar-thumb {
    background: #c0c0c0;
    border-radius: 4px;
  }
}
