/* Browser-native interaction states; layout values live in design.css. */
.page-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 99;
}
body {
  padding-top: var(--header-height, 80px);
}
.modal[hidden] {
  display: none !important;
}
.modal {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 9999;
  overflow: auto;
}
.modal-panel {
  position: relative;
}
.modal-content {
  text-align: start;
}
.modal-close {
  position: absolute;
  cursor: pointer;
}
.modal:not([hidden]) .modal-panel {
  animation: dialog-reveal 1.2s both;
}
#dialog-navigation .modal-panel {
  animation: none;
}
.dialog-content {
  display: block !important;
}
body.dialog-open {
  position: fixed;
  width: 100%;
  overflow: hidden;
}
@keyframes dialog-reveal {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.navigation-desktop .menu-item-has-children {
  position: relative;
}
.navigation-desktop .sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 10em;
  width: auto;
  display: none;
  z-index: 100;
}
.navigation-desktop .submenu-open > .sub-menu {
  display: block;
}
.navigation-desktop .sub-menu a {
  white-space: nowrap;
}
.navigation-desktop a[role="button"] {
  cursor: pointer;
}
.accordion-item:not([open]) > :not(summary) {
  display: none;
}
.modal-close:focus-visible,
.navigation-link:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto !important;
  }
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
  [data-parallax-x] {
    transform: none !important;
  }
  [data-scroll-opacity] {
    opacity: 1 !important;
  }
}
