/* Aplike desktop navigation; extracted from shared rules for independently
   maintained viewport composition. Do not duplicate in navigation.css. */
/* A third-level pane is absolutely positioned against its nearest positioned
   ancestor: the full mega-menu UL. Category tiles remain in normal static flow
   in the shared css/navigation.css. Do not add positioning to category tiles:
   that would re-anchor this panel over the left column. Mobile nested lists
   stay in flow under css/mobile/navigation.css. */

@media(min-width:1121px){
 .apx-nav nav>ul>li:not(.apx-nav-mega).apx-menu-open>ul{left:var(--apx-submenu-left,18px);transform:none;width:min(780px,calc(100vw - 32px));grid-template-columns:repeat(2,minmax(0,1fr));max-width:none;min-height:0;max-height:min(76vh,650px)}
 .apx-nav nav>ul>li.apx-nav-compact.apx-menu-open>ul{width:min(350px,calc(100vw - 32px));max-width:min(350px,calc(100vw - 32px));grid-template-columns:minmax(0,1fr);padding:12px;gap:6px}
 .apx-nav nav>ul>li.apx-nav-compact.apx-menu-open>ul>li>a{padding:13px 17px}
}

@media(min-width:1121px){
 .apx-site .apx-nav nav>ul>li.apx-nav-mega.apx-menu-open>ul{
  position:absolute;grid-template-rows:repeat(10,minmax(0,auto));
  min-height:0;max-height:min(82dvh,760px);overflow-x:hidden;overflow-y:auto;
  overscroll-behavior-y:auto;scrollbar-width:thin;
  scrollbar-color:#86e5d17a transparent;
 }
 .apx-site .apx-nav nav>ul>li:not(.apx-nav-mega).apx-menu-open>ul{
  max-height:min(80dvh,700px);overflow:auto;overscroll-behavior:auto;
 }
 .apx-site .apx-nav-mega>ul>li.apx-menu-selected>ul{display:grid;pointer-events:auto}
 .apx-site .apx-nav-mega>ul>li:not(.apx-menu-selected)>ul{display:none;pointer-events:none}
 .apx-site .apx-nav nav>ul>li.apx-nav-mega.apx-menu-open>ul::before{
  content:"";position:absolute;right:32px;bottom:28px;width:46%;height:155px;
  border-radius:17px;border:1px solid #7bdacd45;pointer-events:none;z-index:0;
  background:radial-gradient(circle at 28% 42%,#6cf3dc30 0 6px,transparent 7px),
             radial-gradient(circle at 71% 62%,#c1a0fa30 0 7px,transparent 8px),
             repeating-linear-gradient(90deg,transparent 0 29px,#8ee9da0e 30px 31px),
             linear-gradient(135deg,#16253d85,#25244b88);
  animation:apxMenuMonitor 16s ease-in-out infinite alternate;
 }
 .apx-site .apx-nav nav>ul>li.apx-nav-mega.apx-menu-open>ul::after{
  content:"";position:absolute;right:12%;bottom:63px;width:110px;height:110px;
  border-radius:50%;border:1px dashed #8af3e37e;box-shadow:0 0 0 26px #7feedd0a;
  pointer-events:none;animation:apxMenuOrb 22s linear infinite;
 }
}

@media(min-width:1121px){
 .apx-site .apx-nav nav>ul>li.apx-menu-open>ul,
 .apx-site .apx-nav nav>ul>li.apx-nav-mega.apx-menu-open>ul{transform-origin:50% 0}
 .apx-site .apx-nav nav li>ul>li{transition:background-color .65s ease,border-color .65s ease,box-shadow .7s ease}
 .apx-site .apx-nav nav li>ul>li>a{transition:color .6s ease,background-color .6s ease}
}

@keyframes apxMenuMonitor{to{filter:hue-rotate(28deg) brightness(1.2);transform:translateY(-5px)}}

@keyframes apxMenuOrb{to{transform:rotate(360deg)}}

@keyframes apxMenuSoftOpen{0%{opacity:0;translate:0 -11px;filter:blur(6px)}60%{opacity:.87;filter:blur(1px)}100%{opacity:1;translate:0 0;filter:blur(0)}}

/* Menu emphasis lives with desktop menu geometry, not in a parallel controller. */
@media (min-width:1121px) and (hover:hover) and (pointer:fine){
  /* A link-local optical underline. Each link owns its own geometry; there is
     no extra DOM node or header-level moving bar to escape the viewport. */
  .apx-site .apx-nav nav>ul>li:not(:last-child)>a{
    position:relative;
  }
  .apx-site .apx-nav nav>ul>li:not(:last-child)>a::after{
    content:"";position:absolute;left:0;right:0;bottom:7px;height:2px;
    background:linear-gradient(90deg,#70f8e0,#ffdb72 75%,#ffffff);
    border-radius:999px;box-shadow:0 0 12px #78ffe085,0 0 17px #ffcf6566;
    transform:scaleX(0);transform-origin:0 50%;opacity:0;pointer-events:none;
    transition:transform .55s cubic-bezier(.2,.82,.22,1),opacity .25s ease;
  }
  .apx-site .apx-nav nav>ul>li:not(:last-child)>a:is(:hover,:focus-visible)::after,
  .apx-site .apx-nav nav>ul>li:not(:last-child):is(.apx-menu-open,:focus-within)>a::after,
  .apx-site .apx-nav nav>ul>li:not(:last-child)>a:is(.is-active,[aria-current="page"])::after{
    transform:scaleX(1);opacity:1;
  }
  .apx-site .apx-nav nav>ul>li>a:is(:hover,:focus-visible){text-shadow:0 0 13px #8ffff063}
}
@media (prefers-reduced-motion:reduce){.apx-site .apx-nav nav>ul>li>a::after{transition:none}}
