/* ==========================================================================
   Mobile navigation refinements — home page (#menu1-ef)
   - Submenu opens with a smooth height/opacity animation instead of snapping
   - Mobile menu items and submenu items align to the right edge
   The desktop menu (>= 992px) is intentionally left untouched.
   ========================================================================== */

@media (max-width: 991.98px) {
  /* ---- Right aligned, full width tap targets ---------------------------- */
  #menu1-ef .navbar-collapse .navbar-nav > .nav-item {
    width: 100%;
    margin-right: 0 !important;
    margin-left: auto !important;
    text-align: right;
  }

  #menu1-ef .navbar-collapse .navbar-nav > .nav-item > a.nav-link {
    justify-content: flex-end;
    margin: .667em 0 !important;
    padding: 0 1.5rem !important;
    text-align: right;
  }

  /* Arrow turns with the panel instead of jumping */
  #menu1-ef .navbar-collapse .navbar-nav > .nav-item > a.dropdown-toggle::after {
    transform-origin: 50% 40%;
    transition: transform .32s cubic-bezier(.4, 0, .2, 1);
  }

  #menu1-ef .navbar-collapse .navbar-nav > .nav-item.open > a.dropdown-toggle::after {
    transform: rotate(180deg);
  }

  /* ---- Submenu panel ---------------------------------------------------- */
  #menu1-ef .navbar-collapse .navbar-nav > .nav-item > .dropdown-menu {
    display: block;
    width: 100% !important;
    min-width: 0;
    height: 0;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    text-align: right;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition:
      height .34s cubic-bezier(.4, 0, .2, 1),
      opacity .26s ease,
      transform .34s cubic-bezier(.4, 0, .2, 1),
      visibility 0s linear .34s;
  }

  #menu1-ef .navbar-collapse .navbar-nav > .nav-item.open > .dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition:
      height .34s cubic-bezier(.4, 0, .2, 1),
      opacity .26s ease .06s,
      transform .34s cubic-bezier(.4, 0, .2, 1),
      visibility 0s linear 0s;
  }

  #menu1-ef .navbar-collapse .navbar-nav > .nav-item > .dropdown-menu .dropdown-item {
    width: 100%;
    padding: .45rem 1.5rem !important;
    text-align: right;
    white-space: normal;
    overflow-wrap: break-word;
  }

  /* A little breathing room for the first and last row of the panel */
  #menu1-ef .navbar-collapse .navbar-nav > .nav-item > .dropdown-menu .dropdown-item:first-child {
    padding-top: .7rem !important;
  }

  #menu1-ef .navbar-collapse .navbar-nav > .nav-item > .dropdown-menu .dropdown-item:last-child {
    padding-bottom: .7rem !important;
  }

  #menu1-ef .navbar-collapse .navbar-nav > .nav-item > .dropdown-menu .dropdown-item > a {
    text-align: right;
  }
}

/* Respect users who prefer less motion */
@media (prefers-reduced-motion: reduce) {
  #menu1-ef .navbar-collapse .navbar-nav > .nav-item > .dropdown-menu,
  #menu1-ef .navbar-collapse .navbar-nav > .nav-item.open > .dropdown-menu,
  #menu1-ef .navbar-collapse .navbar-nav > .nav-item > a.dropdown-toggle::after {
    transition: none !important;
  }
}
