*, *::before, *::after { box-sizing: border-box; }
html { font-size: var(--fs-base); scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font-family);
  background: var(--theme-bg-primary);
  color: var(--theme-text-primary);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
:root {
  --safe-area-bottom: env(safe-area-inset-bottom, 0px);
  --contact-footer-h: 72px;
  --bottom-nav-h: 44px;
}
body.has-contact-footer {
  padding-bottom: calc(var(--contact-footer-h) + var(--bottom-nav-h) + var(--safe-area-bottom));
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--theme-data-highlight); }
.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 9999;
  padding: 8px 16px; background: #000; color: #fff;
}
.skip-link:focus { left: 0; }
.sr-only, .aria-live { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.container { max-width: 1200px; margin: 0 auto; padding: 0 16px; }
.section-title { font-size: var(--fs-h2); margin: 0 0 8px; }
.section-desc { color: var(--theme-text-secondary); margin: 0 0 24px; font-size: var(--fs-body); }
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 12px 20px; border-radius: var(--radius-md); border: none;
  font-size: var(--fs-body); cursor: pointer; text-decoration: none;
  transition: transform var(--transition-base), opacity var(--transition-base);
}
.btn:active { transform: scale(0.98); }
.btn-primary { background: var(--theme-data-highlight); color: #0a1628; font-weight: 600; }
.btn-secondary {
  background: transparent; color: var(--theme-text-primary);
  border: 1px solid var(--theme-border);
}
.navbar {
  position: fixed; top: 0; left: 0; right: 0; z-index: var(--z-nav);
  background: rgba(10, 22, 40, 0.85); backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--theme-border);
}
.navbar-inner { display: flex; align-items: center; gap: 10px; padding: 10px 16px; }
.navbar-title { font-weight: 600; font-size: 1rem; }
.skeleton-wrap { padding: 24px 16px; }
.skeleton-line {
  height: 12px; margin-bottom: 12px; border-radius: 6px;
  background: linear-gradient(90deg, var(--theme-bg-panel) 25%, #1e3a5f 50%, var(--theme-bg-panel) 75%);
  background-size: 200% 100%; animation: shimmer 1.2s infinite;
}
@keyframes shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
@keyframes fadeInUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes scrollIndicator {
  0%, 100% { transform: translateY(0); opacity: 0.5; }
  50% { transform: translateY(8px); opacity: 1; }
}
.memory-banner {
  background: #f59e0b; color: #111; text-align: center; padding: 6px 12px; font-size: 13px;
}

/* ========== H5 标准底栏（R28 定稿） ========== */
.contact-footer {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 850;
  background: #1a1a1a;
  padding: .55rem .75rem calc(.55rem + var(--safe-area-bottom));
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.contact-footer__btns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 88px));
  justify-content: center;
  gap: .4rem;
  max-width: 320px;
  margin: 0 auto;
}
.contact-footer__cta {
  display: block;
  background: #c41e1e !important;
  color: #fff !important;
  text-align: center;
  padding: .48rem .2rem;
  border-radius: 6px;
  font-size: .72rem;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  border: none;
}
.contact-footer__btn {
  display: block;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.35);
  color: #fff;
  padding: .48rem .2rem;
  border-radius: 6px;
  font-size: .72rem;
  cursor: pointer;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  font-family: inherit;
}
.contact-footer__brand {
  text-align: center;
  font-size: .62rem;
  color: rgba(255, 255, 255, 0.5);
  margin: .4rem 0 0;
}
body.has-contact-footer .zw-root .zw-fab {
  bottom: calc(var(--contact-footer-h) + 12px + var(--safe-area-bottom));
}
.navbar-actions { display: flex; gap: 6px; margin-left: auto; align-items: center; }
.navbar-actions .btn { padding: 6px 10px; font-size: 12px; }
