/* Scope only the navigation; nested groups keep their own open state. */
.nav-group > .nav-item--group,
.nav-group > .nav-subitem-group {
  min-height: 40px;
  transition: background-color 140ms ease, color 140ms ease;
}
.nav-group > a > .nav-caret {
  display: block;
  width: 7px;
  height: 7px;
  margin-right: 5px;
  flex: 0 0 7px;
  border-right: 1.7px solid currentColor;
  border-bottom: 1.7px solid currentColor;
  transform: rotate(-45deg);
  transition: transform 180ms cubic-bezier(.2,0,0,1), color 140ms ease;
}
.nav-group.is-open > a > .nav-caret { transform: rotate(45deg); }
.nav-group > .nav-sublist,
.nav-group.is-open > .nav-sublist {
  display: grid;
  grid-template-rows: 0fr;
  gap: 0;
  opacity: 0;
  visibility: hidden;
  transition: grid-template-rows 180ms cubic-bezier(.2,0,0,1), opacity 140ms ease, visibility 180ms;
}
.nav-group.is-open > .nav-sublist {
  grid-template-rows: 1fr;
  opacity: 1;
  visibility: visible;
}
.nav-sublist__inner { min-height: 0; overflow: hidden; display: grid; gap: 2px; }
.nav-group > a:focus-visible { outline: 2px solid var(--primary); outline-offset: -2px; }
@media (max-width: 760px) {
  .nav-group > a, .nav-sublist__inner > .nav-subitem { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  .nav-group > .nav-sublist,
  .nav-group > a > .nav-caret { transition: none; }
}
