/* TES premium primary nav — mobile-first glass panel */

.primary-nav.open {
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 20px;
  box-shadow: 0 18px 48px rgba(15, 23, 42, 0.12);
  padding: 10px 8px 12px;
}

.primary-nav ul {
  gap: 0 !important;
}

.primary-nav ul li {
  margin: 0;
}

.primary-nav ul li + li {
  border-top: 1px solid rgba(148, 163, 184, 0.16);
}

.primary-nav ul li a {
  display: flex;
  align-items: center;
  min-height: 48px;
  padding: 10px 14px;
  border-radius: 14px;
  font-weight: 700;
  letter-spacing: 0.01em;
  transition: background 0.18s ease, color 0.18s ease, transform 0.12s ease;
}

.primary-nav ul li a:active {
  transform: scale(0.985);
}

.primary-nav ul li a:hover,
.primary-nav ul li a:focus-visible {
  background: rgba(91, 75, 255, 0.08);
  color: var(--primary, #5b4bff);
}

.nav-mobile-tools {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(148, 163, 184, 0.22);
}

.nav-mobile-tools .pill-link {
  min-height: 46px;
  border-radius: 14px;
  font-weight: 700;
  justify-content: center;
}

@media (min-width: 901px) {
  .primary-nav.open,
  .primary-nav {
    background: transparent;
    backdrop-filter: none;
    border: 0;
    box-shadow: none;
    padding: 0;
  }

  .primary-nav ul {
    gap: 14px !important;
  }

  .primary-nav ul li + li {
    border-top: 0;
  }

  .primary-nav ul li a {
    min-height: auto;
    padding: 0;
    border-radius: 0;
  }

  .nav-mobile-tools {
    display: none !important;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .primary-nav.open {
    animation: tesPremiumNavIn 0.22s ease;
  }

  @keyframes tesPremiumNavIn {
    from {
      opacity: 0;
      transform: translateY(-6px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
}

@media (prefers-reduced-motion: reduce) {
  .primary-nav.open {
    animation: none;
  }

  .primary-nav ul li a {
    transition: none;
  }
}

/* Local Weather page — app layer + blue page chrome must not hide menu link text */
body.tes-lw-app-page .site-header {
  z-index: 5000;
  overflow: visible !important;
  isolation: isolate;
}

body.tes-lw-app-page .container.header-wrap,
body.tes-lw-app-page .header-wrap {
  overflow: visible !important;
}

body.tes-lw-app-page .primary-nav.tes-premium-nav-panel.open {
  z-index: 5001 !important;
  background: #fff !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: 0 18px 48px rgba(15, 23, 42, 0.18) !important;
  isolation: isolate;
}

body.tes-lw-app-page .primary-nav.open .tes-premium-menu {
  position: relative;
  z-index: 5002;
  opacity: 1 !important;
  visibility: visible !important;
}

body.tes-lw-app-page .primary-nav.open .tes-premium-menu li {
  position: relative;
  z-index: 1;
  opacity: 1 !important;
  visibility: visible !important;
}

body.tes-lw-app-page .primary-nav.open .tes-premium-menu a,
body.tes-lw-app-page .primary-nav.open .tes-premium-menu li a {
  display: flex !important;
  position: relative;
  z-index: 1;
  opacity: 1 !important;
  visibility: visible !important;
  color: #14213d !important;
  -webkit-text-fill-color: #14213d !important;
  font-size: 1rem !important;
  line-height: 1.35 !important;
  text-shadow: none !important;
  background-clip: border-box !important;
  -webkit-background-clip: border-box !important;
}

/* Google Translate may inject white inline text on the blue weather page */
body.tes-lw-app-page .primary-nav.open .tes-premium-menu a *,
body.tes-lw-app-page .primary-nav.open .tes-premium-menu font,
body.tes-lw-app-page .primary-nav.open .tes-premium-menu font span {
  color: #14213d !important;
  -webkit-text-fill-color: #14213d !important;
  opacity: 1 !important;
  visibility: visible !important;
  font-size: inherit !important;
}

body.tes-lw-app-page .primary-nav.open .nav-mobile-tools .pill-link {
  color: var(--text, #13203a) !important;
  -webkit-text-fill-color: var(--text, #13203a) !important;
}

body.tes-lw-app-page .primary-nav.open .nav-mobile-tools .pill-link.primary {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

/* Forced fallback list — bypasses wp_nav_menu on Local Weather */
body.tes-lw-app-page .tes-premium-menu--forced {
  position: relative;
  z-index: 5020;
  isolation: isolate;
  list-style: none;
  margin: 0;
  padding: 0;
  opacity: 1 !important;
  visibility: visible !important;
}

body.tes-lw-app-page .tes-premium-menu--forced .menu-item-tes-forced {
  position: relative;
  z-index: 1;
  opacity: 1 !important;
  visibility: visible !important;
}

body.tes-lw-app-page .tes-premium-menu--forced .tes-premium-menu-link {
  display: flex !important;
  align-items: center;
  min-height: 48px;
  padding: 10px 14px;
  position: relative;
  z-index: 1;
  pointer-events: auto !important;
  text-decoration: none !important;
  color: #14213d !important;
  -webkit-text-fill-color: #14213d !important;
  opacity: 1 !important;
  visibility: visible !important;
  background: transparent !important;
  background-clip: border-box !important;
  -webkit-background-clip: border-box !important;
}

body.tes-lw-app-page .tes-premium-menu--forced .tes-premium-menu-label {
  display: block !important;
  position: relative;
  z-index: 2;
  color: #14213d !important;
  -webkit-text-fill-color: #14213d !important;
  opacity: 1 !important;
  visibility: visible !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  pointer-events: auto !important;
}

body.tes-lw-app-page .tes-premium-menu--forced .tes-premium-menu-link *,
body.tes-lw-app-page .tes-premium-menu--forced font,
body.tes-lw-app-page .tes-premium-menu--forced font span {
  color: #14213d !important;
  -webkit-text-fill-color: #14213d !important;
  opacity: 1 !important;
  visibility: visible !important;
  font-size: inherit !important;
}

@media (max-width: 900px) {
  body.tes-lw-app-page main,
  body.tes-lw-app-page .section,
  body.tes-lw-app-page .tes-lw-app,
  body.tes-lw-app-page .tes-lw-app-screen {
    position: relative;
    z-index: 0;
  }
}
