/* Shared navigation motion; the existing grids and menu content stay intact. */
.navbar .navbar-nav > .dropdown > .dropdown-toggle::after {
  transform-origin: center;
  transition: transform 220ms cubic-bezier(.22, 1, .36, 1), color 160ms ease;
}

@media (min-width: 992px) {
  .navbar.navbar-expand-lg .navbar-nav > .dropdown > .dropdown-menu.mega-menu {
    display: block;
    top: 100% !important;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate(-50%, 10px) !important;
    transition: opacity 180ms ease, transform 240ms cubic-bezier(.22, 1, .36, 1), visibility 0s 240ms;
  }

  .navbar.navbar-expand-lg .navbar-nav > .dropdown:not(.dv-menu-dismissed):hover > .dropdown-menu.mega-menu,
  .navbar.navbar-expand-lg .navbar-nav > .dropdown:not(.dv-menu-dismissed) > .dropdown-menu.mega-menu.show {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate(-50%, 0) !important;
    transition: opacity 200ms ease, transform 240ms cubic-bezier(.22, 1, .36, 1), visibility 0s;
  }

  .navbar .navbar-nav > .dropdown:not(.dv-menu-dismissed):hover > .dropdown-toggle::after,
  .navbar .navbar-nav > .dropdown > .dropdown-toggle[aria-expanded="true"]::after {
    transform: rotate(180deg);
  }

  .navbar.navbar-expand-lg .navbar-nav > .dropdown.dv-menu-dismissed:hover > .dropdown-menu.mega-menu {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate(-50%, 10px) !important;
    transition: opacity 180ms ease, transform 240ms cubic-bezier(.22, 1, .36, 1), visibility 0s 240ms;
  }
}

@media (max-width: 991.98px) {
  .navbar .offcanvas-nav {
    transition: transform 320ms cubic-bezier(.22, 1, .36, 1);
  }

  .navbar .navbar-nav > .dropdown > .dropdown-toggle[aria-expanded="true"]::after {
    transform: rotate(180deg);
  }

  .navbar .navbar-nav > .dropdown > .dropdown-menu.show {
    animation: dv-menu-mobile-in 180ms ease both;
  }

  @supports (transition-behavior: allow-discrete) {
    .navbar .navbar-nav > .dropdown > .dropdown-menu {
      opacity: 0;
      transition: opacity 180ms ease, display 180ms allow-discrete;
    }
    .navbar .navbar-nav > .dropdown > .dropdown-menu.show {
      opacity: 1;
      animation: none;
    }
    @starting-style {
      .navbar .navbar-nav > .dropdown > .dropdown-menu.show { opacity: 0; }
    }
  }
}

@keyframes dv-menu-mobile-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .navbar .navbar-nav > .dropdown > .dropdown-menu.mega-menu,
  .navbar .navbar-nav > .dropdown:hover > .dropdown-menu.mega-menu,
  .navbar .navbar-nav > .dropdown > .dropdown-menu.mega-menu.show,
  .navbar .navbar-nav > .dropdown > .dropdown-toggle::after,
  .navbar .offcanvas-nav {
    transition: none !important;
    animation: none !important;
  }
}
