/**
 * @file
 * Navigation in header.
 */

/*
 * Media query breakpoints.
 * Processed by postcss/postcss-custom-media.
 */

/* Navigation related breakpoints */

/* Grid related breakpoints */

/* Grid shifts from 6 to 14 columns. */

/* Width of the entire grid maxes out. */

.header-nav {
  position: fixed;
  z-index: 501; /* Appear above overlay and contextual links in header. */
  inset-block-start: 0;
  inset-inline-start: 100%;
  visibility: hidden;
  overflow: auto;
  /* Ensure that header nav not use additional space and force system branding
   * block text to unnecessarily wrap. */
  flex-basis: max-content;
  width: 100%;
  max-width: var(--mobile-nav-width);
  height: 100%;
  padding-block: 0 var(--sp);
  padding-inline-start: var(--sp);
  padding-inline-end: var(--sp);
  /* Create room for the "close" button. We cannot use margin because the
   * mobile navigation needs to slide beneath the button, but we also cannot
   * use padding because that would enable the button to scroll out of the
   * viewport on short screens. */
  border-block-start: solid var(--color--background-surface) calc(var(--sp3) + var(--drupal-displace-offset-top, 0px));
  background-color: var(--color--background-surface);
  box-shadow: 0 0 72px rgba(0, 0, 0, 0.1);
}

.header-nav.is-active {
    visibility: visible;
    transform: translateX(calc(-100% - var(--drupal-displace-offset-right, 0px))); /* LTR */
  }

.header-nav.is-active:dir(rtl) {
      transform: translateX(calc(100% + var(--drupal-displace-offset-left, 0px)));
    }

@media (min-width: 500px) {

.header-nav {
    border-top-width: calc(var(--sp5) + var(--drupal-displace-offset-top, 0px));
}
  }

@media (min-width: 768px) {

.header-nav {
    padding-block-end: var(--sp3);
    padding-inline-start: var(--sp3);
    border-top-width: calc(var(--sp7) + var(--drupal-displace-offset-top, 0px));
}
  }

@media (min-width: 1024px) {

.header-nav {
    grid-column: 5 / 14;
}
  }

/*
   * Ensure top border has the same color as the background when in forced colors.
   */

@media (forced-colors: active) {

.header-nav {
    border-top-color: canvas;
}
  }

/*
 * Only apply transition styles when JS is loaded. This
 * works around https://bugs.chromium.org/p/chromium/issues/detail?id=332189
 */

html.js .header-nav {
  transition:
    visibility 0.2s,
    transform 0.2s;
}

@media (min-width: 1200px) {

body:not(.is-always-mobile-nav) .header-nav {
    position: static;
    display: flex;
    visibility: visible;
    overflow: visible;
    flex: 1;
    grid-column: 5 / 15;
    order: 1;
    align-items: center;
    justify-content: space-between;
    max-width: none;
    height: var(--header-height-wide-when-fixed);
    margin-block-start: auto;
    padding-block: 0;
    padding-inline-start: 0;
    padding-inline-end: 0;
    transition: transform 0.2s;
    transform: none;
    border-block-start: 0;
    box-shadow: none;
}
  }

@media (min-width: 1200px) {

body:not(.is-always-mobile-nav) .header-nav__primary {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
}
  }

/*
 * Unlike .header-nav, .header-nav__secondary lives outside the collapsible
 * off-canvas panel (see page.html.twig) so it stays visible at every
 * breakpoint. Only its position within the flex row (before vs. after the
 * primary nav) changes at the --nav breakpoint.
 */

.header-nav__secondary {
  display: flex;
  align-items: center;
  gap: var(--sp0-5);
  flex-shrink: 0;
  /* Group with .mobile-buttons on the right, next to the hamburger. */
  margin-inline-start: auto;
}

@media (min-width: 1200px) {

.header-nav__secondary {
    order: 2;
    margin-inline-start: 0;
}
  }

@media (min-width: 1200px) {

body.is-always-mobile-nav .header-nav {
      overflow: auto;
      max-width: calc((7 * (var(--grid-col-width) + var(--grid-gap))));
      padding-inline-end: var(--sp);
      transition:
        transform 0.2s,
        visibility 0.2s;
      border-top-width: calc(var(--drupal-displace-offset-top, 0px) + var(--sp11));
  }
    }

@media (min-width: 1440px) {

body.is-always-mobile-nav .header-nav {
      max-width: calc(100vw - (var(--max-width) + var(--content-left)) + ((7 * (var(--grid-col-width) + var(--grid-gap)))));
      padding-inline-end: calc(100vw - (var(--max-width) + var(--content-left) - var(--sp)));
  }
    }

.header-nav-overlay {
  position: fixed;
  z-index: 101;
  inset-block-start: 0;
  inset-inline-start: 0;
  display: none;
  width: 100%;
  height: 100vh;
  opacity: 0.2;
  background: var(--color--gray-5);
}

@media (forced-colors: active) {

.header-nav-overlay {
    background: canvastext;
}
  }

.is-overlay-active .header-nav-overlay {
    display: block;
}
