/* ZLSI Public Navigation UX Contract v1: presentation only, no IA ownership. */
.zlsi-public-navigation > .zlsi-nav-home > .zlsi-nav-home-link,
.zlsi-public-navigation .zlsi-nav-hub > .zlsi-nav-hub-link {
  display: inline-flex;
  align-items: center;
}

.zlsi-nav-home-icon {
  width: 1.15em;
  height: 1.15em;
  fill: currentColor;
  flex: 0 0 auto;
}


.zlsi-public-navigation > .zlsi-nav-home > .zlsi-nav-home-link {
  justify-content: center;
  min-width: 40px;
  padding-left: 10px !important;
  padding-right: 10px !important;
}

.zlsi-public-navigation .zlsi-nav-hub {
  position: relative;
}

.zlsi-public-navigation .zlsi-nav-hub > .zlsi-nav-hub-link {
  font-weight: 600;
}

.zlsi-public-navigation .sub-menu > .zlsi-nav-hub > .zlsi-nav-hub-link {
  padding-right: 42px !important;
  width: 100%;
}

.zlsi-public-navigation .sub-menu > .zlsi-nav-hub > .zlsi-nav-hub-toggle {
  position: absolute;
  top: 50%;
  right: 5px;
  transform: translateY(-50%);
  z-index: 2;
}

/* Keep the animated frame decorative so it cannot intercept the adjacent toggle. */
.elementor-nav-menu--main.e--pointer-framed.e--animation-shrink
  > .zlsi-public-navigation > .zlsi-nav-hub > .zlsi-nav-hub-link::before {
  pointer-events: none;
}

.zlsi-nav-native-arrow {
  display: none !important;
}

.zlsi-nav-hub-toggle {
  appearance: none;
  -webkit-appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  min-height: 32px;
  padding: 0 7px;
  margin: 0 0 0 -7px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: inherit;
  cursor: pointer;
  vertical-align: middle;
}

.zlsi-nav-hub-toggle svg {
  width: 16px;
  height: 16px;
  fill: currentColor;
  transition: transform .16s ease;
}

.zlsi-nav-hub-toggle[aria-expanded="true"] svg {
  transform: rotate(180deg);
}

.zlsi-nav-hub-link:hover,
.zlsi-nav-hub-link:focus-visible,
.zlsi-nav-home-link:hover,
.zlsi-nav-home-link:focus-visible {
  text-decoration: underline;
  text-underline-offset: .22em;
}

.zlsi-nav-hub-toggle:hover,
.zlsi-nav-hub-toggle:focus-visible {
  background: rgba(0, 0, 0, .07);
  outline: none;
}

.zlsi-nav-current > .zlsi-nav-hub-link,
.zlsi-nav-active-trail > .zlsi-nav-hub-link,
.zlsi-nav-current > .zlsi-nav-home-link {
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: .28em;
}

.zlsi-nav-hub-open > .sub-menu,
.zlsi-nav-hub-open > ul {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

@media (max-width: 1024px) {
  .zlsi-public-navigation > .zlsi-nav-home > .zlsi-nav-home-link {
    width: 48px;
    min-width: 48px;
    min-height: 44px;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .zlsi-public-navigation .zlsi-nav-hub {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 48px;
    align-items: stretch;
  }

  .zlsi-public-navigation .zlsi-nav-hub > .zlsi-nav-hub-link {
    grid-column: 1;
    min-width: 0;
  }

  .zlsi-public-navigation .zlsi-nav-hub > .zlsi-nav-hub-toggle {
    grid-column: 2;
    width: 48px;
    min-height: 44px;
    margin: 0;
    border-left: 1px solid rgba(0, 0, 0, .08);
    border-radius: 0;
  }

  .zlsi-public-navigation .zlsi-nav-hub > .sub-menu,
  .zlsi-public-navigation .zlsi-nav-hub > ul {
    grid-column: 1 / -1;
    width: 100% !important;
  }

  .zlsi-public-navigation .sub-menu > .zlsi-nav-hub > .zlsi-nav-hub-toggle {
    position: static;
    transform: none;
  }
}

.zlsi-nav-group-label {
  cursor: default;
  text-decoration: none !important;
  opacity: .88;
}

.zlsi-nav-group-label-node > .zlsi-nav-group-label {
  font-weight: 600;
}

/* N2.4: fail-safe only. It activates only when the front-page Posts widget
 * contains server-rendered articles but none are visually rendered. */
html.zlsi-homepage-posts-rescue-active .zlsi-homepage-posts-rescue,
html.zlsi-homepage-posts-rescue-active .zlsi-homepage-posts-rescue .elementor-widget-container {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

html.zlsi-homepage-posts-rescue-active .zlsi-homepage-posts-rescue .elementor-posts-container,
html.zlsi-homepage-posts-rescue-active .zlsi-homepage-posts-rescue .elementor-posts {
  display: grid !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

html.zlsi-homepage-posts-rescue-active .zlsi-homepage-posts-rescue article.elementor-post,
html.zlsi-homepage-posts-rescue-active .zlsi-homepage-posts-rescue article[class*="elementor-post"] {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  transform: none !important;
  height: auto !important;
  max-height: none !important;
}

/* Wrapped/aria-controlled Elementor submenu variant: opening does not depend
 * on the submenu being a direct LI child. */
.zlsi-public-navigation .zlsi-nav-submenu-open {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* FCP1: provider-owned submenu is shown inside one declared navigation root. */
@media (min-width: 1025px) {
  .zlsi-public-navigation > li.zlsi-nav-hub { position: relative !important; overflow: visible !important; }
  .zlsi-public-navigation > li.zlsi-nav-hub > .zlsi-nav-submenu,
  .zlsi-public-navigation > li.zlsi-nav-hub > .sub-menu {
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: auto !important;
    min-width: 250px !important;
    width: max-content !important;
    max-width: min(420px, 90vw) !important;
    z-index: 99999 !important;
    background: #fff;
  }
  .zlsi-public-navigation .zlsi-nav-submenu li.zlsi-nav-hub { position: relative !important; }
  .zlsi-public-navigation .zlsi-nav-submenu li.zlsi-nav-hub > .zlsi-nav-submenu,
  .zlsi-public-navigation .zlsi-nav-submenu li.zlsi-nav-hub > .sub-menu {
    top: 0 !important;
    left: 100% !important;
  }
}

/* FCP1 TEMPORARY_RECOVERY: only provider-rendered homepage Posts cards may be
 * unhidden. No cards are constructed and no membership is invented. */
html.zlsi-homepage-posts-recovery-active .zlsi-homepage-posts-recovery,
html.zlsi-homepage-posts-recovery-active .zlsi-homepage-posts-recovery > .elementor-widget-container,
html.zlsi-homepage-posts-recovery-active .zlsi-homepage-posts-recovery .elementor-posts-container,
html.zlsi-homepage-posts-recovery-active .zlsi-homepage-posts-recovery .elementor-posts,
html.zlsi-homepage-posts-recovery-active .zlsi-homepage-posts-recovery .elementor-grid {
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}
html.zlsi-homepage-posts-recovery-active .zlsi-homepage-posts-recovery .elementor-posts-container,
html.zlsi-homepage-posts-recovery-active .zlsi-homepage-posts-recovery .elementor-posts.elementor-grid {
  display: grid !important;
}
html.zlsi-homepage-posts-recovery-active .zlsi-homepage-posts-recovery article.elementor-post,
html.zlsi-homepage-posts-recovery-active .zlsi-homepage-posts-recovery .elementor-post,
html.zlsi-homepage-posts-recovery-active .zlsi-homepage-posts-recovery .elementor-grid-item.post {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  transform: none !important;
}


/* FE2: renderer arbitration + wrapped submenu ownership. */
.zlsi-nav-duplicate-renderer{display:none!important;}
.zlsi-nav-overflow-host,.zlsi-nav-widget-open,.zlsi-nav-widget-open .elementor-widget-container,.zlsi-nav-widget-open .elementor-nav-menu--main{overflow:visible!important;}
@media (min-width:1025px){
 .zlsi-nav-submenu-root-level.zlsi-nav-submenu-open{position:absolute!important;top:100%!important;left:0!important;right:auto!important;min-width:250px!important;width:max-content!important;max-width:min(420px,90vw)!important;z-index:99999!important;background:#fff!important;}
}

/* FE3: exactly one Elementor main/dropdown variant is active per nav widget. */
.zlsi-nav-variant-suppressed{display:none!important;}
.zlsi-nav-overflow-host{overflow:visible!important;max-height:none!important;}

/* FE4.1: navigation-only fallback for CURRENT structural Canvas pages that
 * genuinely render no Elementor nav at all. Never used when a page-owned nav
 * exists, so it cannot create a second visible header/navigation renderer. */
.zlsi-canvas-nav-fallback-wrap {
  position: relative;
  z-index: 50;
  width: 100%;
  background: #fff;
  border-bottom: 1px solid rgba(0,0,0,.08);
}
.zlsi-canvas-nav-fallback {
  max-width: 1180px;
  margin: 0 auto;
  padding: 10px 18px;
  overflow: visible;
}
.zlsi-canvas-nav-fallback > .elementor-nav-menu {
  display: flex;
  align-items: center;
  gap: 22px;
  margin: 0;
  padding: 0;
  list-style: none;
  overflow: visible;
}
.zlsi-canvas-nav-fallback .elementor-nav-menu > li { list-style: none; }
.zlsi-canvas-nav-fallback .elementor-nav-menu a {
  color: inherit;
  text-decoration: none;
  padding: 10px 4px;
}
.zlsi-canvas-nav-fallback .sub-menu {
  display: none;
  position: absolute;
  min-width: 250px;
  margin: 0;
  padding: 8px 0;
  list-style: none;
  background: #fff;
  box-shadow: 0 8px 24px rgba(0,0,0,.14);
}
@media (max-width:1024px){
  .zlsi-canvas-nav-fallback > .elementor-nav-menu { display:block; }
  .zlsi-canvas-nav-fallback { padding: 8px 12px; }
}
