/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Button that expands second level nav when clicked.
 */

[dir="ltr"] .primary-nav__button-toggle {
  padding-left: 0;
}

[dir="rtl"] .primary-nav__button-toggle {
  padding-right: 0;
}

[dir="ltr"] .primary-nav__button-toggle {
  padding-right: 0;
}

[dir="rtl"] .primary-nav__button-toggle {
  padding-left: 0;
}

.primary-nav__button-toggle {
  position: relative;
  overflow: hidden;
  width: 2.25rem;
  height: 2.25rem;
  margin-top: 0.5625rem; /* Visually align button with menu link text. */
  padding-top: 0;
  padding-bottom: 0;
  cursor: pointer;
  text-indent: -62.4375rem;
  border: 0;
  background: transparent;
  -webkit-appearance: none;
}

.primary-nav__button-toggle:focus {
  outline: auto 2px #2494db;
  outline-offset: 2px;
}

.primary-nav__button-toggle .icon--menu-toggle {
  position: absolute;
  /* stylelint-disable csstools/use-logical */
  top: 50%;
  left: 50%;
  /* stylelint-enable csstools/use-logical */
  width: 1rem;
  height: 1rem;
  transition: background-color 0.2s;
  transform: translate(-50%, -50%);
  border-radius: 2px;
}

.primary-nav__button-toggle .icon--menu-toggle:before,
.primary-nav__button-toggle .icon--menu-toggle:after {
  position: absolute;
  /* stylelint-disable csstools/use-logical */
  top: 50%;
  left: 50%;
  /* stylelint-enable csstools/use-logical */
  width: 1.125rem;
  height: 0;
  content: "";
  transform: translate(-50%, -50%);
  /* Intentionally not using CSS logical properties. */
  border-top: solid 3px #2494db;
}

.primary-nav__button-toggle .icon--menu-toggle:after {
  transition: opacity 0.2s;
  transform: translate(-50%, -50%) rotate(90deg);
}

.primary-nav__button-toggle[aria-expanded="true"] .icon--menu-toggle:after {
  opacity: 0;
}

/* aria-hidden attribute is removed by JS. Button is non-functional
     until JS is enabled.
  */

.primary-nav__button-toggle[aria-hidden="true"] {
  pointer-events: none;
}

@media (min-width: 75rem) {
  [dir="ltr"] body:not(.is-always-mobile-nav) .primary-nav__button-toggle {
    margin-right: -2.25rem;
  }
  [dir="rtl"] body:not(.is-always-mobile-nav) .primary-nav__button-toggle {
    margin-left: -2.25rem;
  }
  body:not(.is-always-mobile-nav) .primary-nav__button-toggle {
    flex-shrink: 0;
    -ms-grid-row-align: stretch;
    align-self: stretch;
    width: 2.75rem;
    height: auto;
    margin-top: 0;
  }

  body:not(.is-always-mobile-nav) .primary-nav__button-toggle:focus {
    border: 0;
    outline: 0;
  }

  body:not(.is-always-mobile-nav) .primary-nav__button-toggle:focus .icon--menu-toggle {
    border: solid 2px #0d77b5;
  }

  body:not(.is-always-mobile-nav) .primary-nav__button-toggle:active {
    /* Necessary for Safari. */
    color: currentColor;
  }

  body:not(.is-always-mobile-nav) .primary-nav__button-toggle[aria-expanded="true"] .icon--menu-toggle:after {
    opacity: 0.8;
  }

  [dir="ltr"] body:not(.is-always-mobile-nav) .primary-nav__button-toggle .icon--menu-toggle {
    left: 0.1875rem;
  }

  [dir="rtl"] body:not(.is-always-mobile-nav) .primary-nav__button-toggle .icon--menu-toggle {
    right: 0.1875rem;
  }

  body:not(.is-always-mobile-nav) .primary-nav__button-toggle .icon--menu-toggle {
    width: 1.125rem;
    transform: translateY(-50%);
    border-radius: 0.25rem;
    background-color: #fff;
  }

  body:not(.is-always-mobile-nav) .primary-nav__button-toggle .icon--menu-toggle:before {
    content: none;
  }

  body:not(.is-always-mobile-nav) .primary-nav__button-toggle .icon--menu-toggle:after {
    /* stylelint-disable csstools/use-logical */
    top: calc(50% - 2px);
    left: 0.1875rem;
    /* stylelint-enable csstools/use-logical */
    width: 0.5rem;
    height: 0.5rem;
    content: "";
    transform: translateY(-50%) rotate(45deg);
    opacity: 0.8;
    /* Intentionally not using CSS logical properties. */
    border-top: none;
    border-right: solid 2px currentColor;
    border-bottom: solid 2px currentColor;
    background: transparent;
  }
}
