@charset "UTF-8";
.header-inner .nav-link {
  position: relative;
}

.header-inner .nav-link::before {
  content: '';
  display: block;
  width: 0;
  height: 2px;
  background: #fff;
  position: absolute;
  bottom: 0;
  left: 0;
  transition: width 0.3s ease;
}

.header-inner .nav-link:hover::before, .header-inner .nav-link.active::before {
  width: 100%;
}

.header-inner .active .nav-link::before {
  width: 100%;
}

.site-header.site-header--fixed > .container {
  position: relative;
  z-index: 55;
}

.nav-backdrop {
  position: fixed;
  inset: 0;
  z-index: 40;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.nav-mobile {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  width: 100%;
  /* 使用原生 CSS min()，避免 Sass 内置 min() 与 calc 冲突 */
  max-height: min(72vh, calc(100vh - 3.5rem));
  /* 与顶栏有底色时一致（与 .is-scrolled / body.nav-open 时相同）。
   * 不用 var(--site-header-bg)：关闭菜单会立刻去掉 body.nav-open，顶部未滚动时变量会变回 transparent，
   * 收缩动画还没结束背景就先没了；固定色可避免与 is-scrolled 状态不同步的视觉问题。 */
  background-color: rgba(4, 11, 33, 0.5);
  /* 高于 .nav-backdrop，略低于顶栏 .container(55)，下拉区在顶栏下方不与顶栏重叠 */
  z-index: 52;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: none;
  /* 自上而下「展开」：用 clip-path 从顶边向下露出，避免整块 translate 平移感 */
  clip-path: inset(0 0 100% 0);
  -webkit-clip-path: inset(0 0 100% 0);
  visibility: hidden;
  pointer-events: none;
  transition: clip-path 0.55s cubic-bezier(0.4, 0, 0.2, 1), -webkit-clip-path 0.55s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.55s, box-shadow 0.5s ease;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.nav-mobile-link {
  display: block;
  color: #fff;
  transition: background 0.2s;
}

.nav-mobile-link:hover {
  background: rgba(255, 255, 255, 0.06);
}

body.nav-open {
  overflow: hidden;
}

body.nav-open .nav-backdrop {
  opacity: 1;
  pointer-events: auto;
}

body.nav-open .nav-mobile {
  clip-path: inset(0 0 0 0);
  -webkit-clip-path: inset(0 0 0 0);
  visibility: visible;
  pointer-events: auto;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
}

body.nav-open .nav-toggle-icon {
  display: none;
}

body.nav-open .nav-toggle-icon-close {
  display: block !important;
}

.nav-toggle-icon-close {
  display: none;
}

.site-header.site-header--fixed {
  --site-header-bg: transparent;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 45;
  /* 子元素 .nav-mobile 可用 top:100% 贴在顶栏下缘 */
  overflow: visible;
  transition: background-color 0.35s ease, box-shadow 0.35s ease;
}

.site-header.site-header--fixed.is-scrolled,
body.nav-open .site-header.site-header--fixed {
  --site-header-bg: rgba(4, 11, 33, 0.5);
}

.site-header.site-header--fixed.is-scrolled,
body.nav-open .site-header.site-header--fixed {
  background-color: var(--site-header-bg) !important;
}

@media (prefers-reduced-motion: reduce) {
  .site-header.site-header--fixed {
    transition-duration: 0.01ms;
  }
  .nav-mobile {
    transition-duration: 0.01ms;
    transition-property: clip-path, -webkit-clip-path, visibility, box-shadow;
  }
}

.site-footer {
  background: url("/skin/bxtnt/img/footer-bg.png") no-repeat center center;
  background-size: cover;
}

body {
  -webkit-user-select: none;
  /* Chrome, Safari, Android */
  -moz-user-select: none;
  /* Firefox */
  -ms-user-select: none;
  /* IE10+/Edge */
  user-select: none;
  /* 标准语法 */
}

.list-square {
  list-style-type: square;
  list-style-position: inside;
}
