/* Shared desktop navigation baseline. Page-local header rules must not change
   spacing or the active state from one page to another. */
html {
  scrollbar-gutter: stable;
}

body > header {
  position: sticky !important;
  top: 0 !important;
  z-index: 1000 !important;
}

@media (min-width: 1161px) {
  header {
    height: 64px !important;
    min-height: 64px !important;
    padding: 0 24px !important;
    box-sizing: border-box !important;
  }

  header .header-inner {
    width: 100% !important;
    max-width: 1400px !important;
    margin-right: auto !important;
    margin-left: auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    height: 64px !important;
    gap: 28px !important;
  }

  header .brand {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    height: 36px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    color: inherit !important;
    text-decoration: none !important;
    transform: none !important;
  }

  header .brand img {
    display: block !important;
    width: 148px !important;
    height: auto !important;
    margin: 0 !important;
    transform: none !important;
  }

  header .header-inner > nav {
    display: flex !important;
    flex: 0 0 1100px !important;
    /* width: 900px !important; */
    /* min-width: 900px !important;
    max-width: 900px !important; */
    align-items: center !important;
    justify-content: space-between !important;
    height: 64px !important;
    gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    font-family: "Inter", "PingFang SC", "Microsoft YaHei", sans-serif !important;
    font-size: 16px !important;
    line-height: 1.4 !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
  }

  header .header-inner > nav > a {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    height: 64px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    color: var(--muted, #747985) !important;
    font-size: inherit !important;
    font-weight: 400 !important;
    line-height: inherit !important;
    letter-spacing: 0 !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    transform: none !important;
  }
  header .header-inner > nav > a[data-page-link="home"] {
    font-size: 18px !important;
    font-weight: 600 !important;
    color: #ff6b16 !important;
  }
  header .header-inner > nav > a:hover,
  header .header-inner > nav > a.is-active {
    color: #ff6b16 !important;
  }
  header .header-inner > nav > a.is-active {
    text-decoration: underline 2px #ff6b16 !important;
    text-underline-offset: 8px
  }
}

/* Shared floating-action labels: work even when a desktop shell reports no fine pointer. */
.site-floating-actions > a,
.site-floating-actions > button {
  overflow: visible !important;
}

.site-floating-actions > [data-float-tip]::after {
  content: none !important;
  display: none !important;
}

.site-floating-actions > a::before,
.site-floating-actions > button::before {
  content: attr(aria-label) !important;
  position: absolute;
  top: 50%;
  right: calc(100% + 10px);
  z-index: 2;
  display: block !important;
  width: max-content;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(17, 17, 19, .88);
  color: #fff;
  font: 600 12px/1 "Microsoft YaHei", Arial, sans-serif;
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(6px, -50%);
  transition: opacity .18s ease, visibility .18s ease, transform .18s ease;
  box-shadow: 0 8px 18px -12px rgba(17, 17, 19, .55);
}

.site-floating-actions > a:hover::before,
.site-floating-actions > button:hover::before,
.site-floating-actions > a:focus-visible::before,
.site-floating-actions > button:focus-visible::before {
  opacity: 1;
  visibility: visible;
  transform: translate(0, -50%);
}

/* Shared hero return action: mirrors the city-governance hero button. */
.site-hero-home-return {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: max-content !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: 42px !important;
  margin-top: 2px !important;
  padding: 0 17px !important;
  border: 1px solid rgba(255, 107, 22, .24) !important;
  border-radius: 999px !important;
  color: var(--orange, #ff6b16) !important;
  background: rgba(255, 255, 255, .54) !important;
  backdrop-filter: blur(16px) saturate(150%) !important;
  -webkit-backdrop-filter: blur(16px) saturate(150%) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .78), 0 16px 24px -20px rgba(17, 17, 19, .46), 0 6px 18px -14px rgba(255, 107, 22, .58) !important;
  font-size: 14px !important;
  line-height: 1 !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  transform-origin: left center;
  transition: transform .25s cubic-bezier(.2, .8, .2, 1), border-color .25s cubic-bezier(.2, .8, .2, 1), background .25s cubic-bezier(.2, .8, .2, 1) !important;
}

.site-hero-home-return::before,
.site-hero-home-return::after {
  content: none !important;
  display: none !important;
}

.site-hero-home-return:hover {
  color: var(--orange, #ff6b16) !important;
  transform: translateY(-2px) !important;
  border-color: rgba(255, 107, 22, .46) !important;
  background: rgba(255, 255, 255, .76) !important;
}

.site-hero-home-return:focus-visible {
  outline: 3px solid rgba(255, 107, 22, .22) !important;
  outline-offset: 3px !important;
}

@media (max-width: 1160px) {
  .mobile-stagger-panel {
    padding-top: 72px !important;
    overflow-y: auto !important;
  }

  .mobile-stagger-list {
    gap: 2px !important;
    /* padding-bottom: 72px !important; */
        height: 100% !important; /* 强制占满整个屏幕高度 */
    overflow-y: auto;         /* 如果内容超出，允许内部滚动 */
  }

  .mobile-stagger-list a {
    min-height: 34px !important;
    font-size: 17px !important;
  }
}

/* Shared mobile navigation: compact pill trigger + layered dark panel. */
.mobile-stagger-toggle,
.mobile-stagger-menu {
  display: none;
}

@media (max-width: 1160px) {
  header {
    height: 68px !important;
    padding-right: 18px !important;
    padding-left: 18px !important;
  }

  header .header-inner {
    min-width: 0;
    height: 100%;
    gap: 12px;
  }

  header .brand img {
    width: 138px !important;
  }

  header .header-inner > nav {
    display: none !important;
  }

  header .mobile-stagger-toggle {
    position: relative;
    top: auto;
    right: auto;
    z-index: 181;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    width: auto;
    height: 46px;
    margin: 0 0 0 auto;
    padding: 0 16px;
    border: 1px solid rgba(17, 17, 19, .08);
    border-radius: 999px;
    color: var(--ink, #111113);
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 8px 16px rgba(17, 17, 19, .08);
    font: inherit;
    cursor: pointer;
  }

  .mobile-stagger-toggle-text {
    position: relative;
    display: grid;
    width: auto;
    min-width: 28px;
    height: 18px;
    overflow: hidden;
    font-size: 13px;
    font-weight: 900;
    line-height: 18px;
  }

  .mobile-stagger-toggle-text span {
    position: static;
    grid-area: 1 / 1;
    transition: transform .42s var(--ease, cubic-bezier(.2, .8, .2, 1)), opacity .3s var(--ease, cubic-bezier(.2, .8, .2, 1));
  }

  .mobile-stagger-toggle-text span:last-child {
    opacity: 0;
    transform: translateY(18px);
  }

  body.mobile-menu-open .mobile-stagger-toggle-text span:first-child {
    opacity: 0;
    transform: translateY(-18px);
  }

  body.mobile-menu-open .mobile-stagger-toggle-text span:last-child {
    opacity: 1;
    transform: translateY(0);
  }

  .mobile-stagger-icon {
    position: relative;
    display: inline-block;
    width: 17px;
    height: 12px;
    border-top: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    border-radius: 0;
    color: var(--orange, #ff6b16);
    background: none;
  }

  .mobile-stagger-icon::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    bottom: auto;
    left: 0;
    width: auto;
    height: auto;
    border: 0;
    border-top: 2px solid currentColor;
    border-radius: 0;
    background: none;
    transform: translateY(-50%);
  }

  .mobile-stagger-icon::after {
    content: none;
    display: none;
  }

  .mobile-stagger-menu {
    position: fixed;
    inset: 0;
    z-index: 9001;
    display: block;
    visibility: visible;
    pointer-events: none;
  }

  .mobile-stagger-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .18);
    opacity: 0;
    transition: opacity .38s var(--ease, cubic-bezier(.2, .8, .2, 1));
  }

  .mobile-stagger-layer,
  .mobile-stagger-panel {
    position: absolute;
    inset: 0 0 0 auto;
    width: min(86vw, 360px);
    height: auto;
    box-sizing: border-box;
    transform: translateX(102%);
    transition: transform .58s var(--ease, cubic-bezier(.2, .8, .2, 1));
    will-change: transform;
  }

  .mobile-stagger-layer.is-white {
    width: min(86vw, 360px);
    background: rgba(255, 255, 255, .98);
    transition-delay: .03s;
  }

  .mobile-stagger-layer.is-orange {
    width: min(82vw, 344px);
    background: var(--orange, #ff6b16);
    transition-delay: .08s;
  }

  .mobile-stagger-panel {
    display: block;
    width: min(78vw, 328px);
    padding: calc(env(safe-area-inset-top, 0px) + 60px) 28px 28px;
    overflow-y: auto;
    overscroll-behavior: contain;
    color: #fff;
    background: #111113;
    box-shadow: none;
    backdrop-filter: none;
    transition-delay: .13s;
  }

  .mobile-stagger-panel::before {
    content: none;
    display: none;
  }

  body.mobile-menu-open {
    overflow: hidden;
  }

  body.mobile-menu-open .mobile-stagger-menu {
    visibility: visible;
    pointer-events: auto;
  }

  body.mobile-menu-open .mobile-stagger-backdrop {
    opacity: 1;
  }

  body.mobile-menu-open .mobile-stagger-layer,
  body.mobile-menu-open .mobile-stagger-panel {
    transform: translateX(0);
  }

  .mobile-stagger-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .mobile-stagger-list li {
    overflow: visible;
  }

  .mobile-stagger-list a {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 42px;
    padding: 0;
    color: rgba(255, 255, 255, .78);
    background: transparent;
    text-decoration: none;
    font-size: 20px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0;
    opacity: 0;
    transform: translateX(22px);
    transition: color .25s var(--ease, cubic-bezier(.2, .8, .2, 1)), opacity .42s var(--ease, cubic-bezier(.2, .8, .2, 1)), transform .42s var(--ease, cubic-bezier(.2, .8, .2, 1));
  }

  .mobile-stagger-list a::before {
    content: attr(data-index);
    position: static;
    color: rgba(255, 255, 255, .35);
    font-size: 12px;
    font-weight: 800;
  }

  .mobile-stagger-list a::after {
    content: none;
    display: none;
  }

  .mobile-stagger-list a.is-active,
  .mobile-stagger-list a:hover {
    color: var(--orange, #ff6b16);
  }

  body.mobile-menu-open .mobile-stagger-list a {
    opacity: 1;
    transform: translateX(0);
    transition-delay: calc(.18s + var(--i) * .035s);
  }

  .mobile-stagger-foot {
    display: none !important;
  }
}
