/* ============================================
   RAILWISE DESIGN SYSTEM — main.css
   ============================================ */

/* --- CSS Variables (Design Tokens) --- */
:root {
  --brand-primary: #1E3A8A;
  --brand-primary-light: #3B82F6;
  --brand-primary-dark: #1D4ED8;
  --brand-accent: #10B981;
  --brand-dark: #0F172A;
  --brand-surface: #F8FAFC;
  --brand-gold: #D4A843;
  --brand-gradient: linear-gradient(135deg, #1E3A8A 0%, #3B82F6 50%, #0EA5E9 100%);
  --brand-gradient-dark: linear-gradient(135deg, #0F172A 0%, #1E3A8A 100%);
  --shadow-soft: 0 4px 24px rgba(0, 0, 0, 0.06);
  --shadow-medium: 0 8px 32px rgba(0, 0, 0, 0.1);
  --shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);
  --radius-lg: 16px;
  --radius-xl: 24px;
  --transition-base: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --transition-spring: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
  --header-h: 72px;
}

/* --- Typography --- */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

/* --- Global Smoothing --- */
html {
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

body {
  font-family: 'Inter', 'HarmonyOS Sans SC', 'PingFang SC', system-ui, -apple-system, sans-serif;
  color: #1E293B;
  background: #ffffff;
  overflow-x: hidden;
}

/* --- Navigation — Glassmorphism --- */
.nav-glass {
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  transition: var(--transition-base);
}

/* 站点 Logo（SVG）统一样式 */
.site-logo {
  height: 34px;
  width: auto;
  max-width: 280px;
  display: block;
  transition: opacity 0.2s;
}
.site-logo:hover { opacity: 0.88; }
/* 深色模式：反色让黑色 logo 变白 */
body.body-dark .site-logo,
.nav-glass.scrolled .site-logo {
  filter: invert(1) brightness(1.1);
}

.nav-header-spacer {
  height: var(--header-h);
}

.nav-glass.scrolled {
  background: rgba(15, 23, 42, 0.92);
  backdrop-filter: blur(24px) saturate(200%);
  -webkit-backdrop-filter: blur(24px) saturate(200%);
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.15);
}

.nav-glass.scrolled .nav-link,
.nav-glass.scrolled .nav-logo-text {
  color: #E2E8F0;
}

.nav-glass.scrolled .nav-link:hover,
.nav-glass.scrolled .nav-link.active {
  color: #60A5FA;
}

.nav-glass.scrolled .mobile-menu-btn {
  color: #E2E8F0;
}

.nav-link {
  position: relative;
  transition: var(--transition-base);
  color: #475569;
}

.nav-link::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 50%;
  width: 0;
  height: 2px;
  background: var(--brand-gradient);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  transform: translateX(-50%);
  border-radius: 1px;
}

.nav-link:hover::after,
.nav-link.active::after {
  width: 100%;
}

.nav-link:hover {
  color: var(--brand-primary);
  transform: translateY(-1px);
}

.nav-link.active {
  color: var(--brand-primary);
  font-weight: 600;
}

.nav-dropdown {
  position: relative;
}
.nav-dropdown .nav-link {
  display: inline-flex;
  align-items: center;
}
.nav-mega-menu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(8px);
  width: min(820px, 82vw);
  /* padding-top 18px 作为"视觉间距 + hover bridge"，替代原来的 top: calc(100% + 18px) */
  padding: 18px 1rem 1rem;
  background: transparent;
  border: none;
  box-shadow: none;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: var(--transition-base);
  z-index: 70;
}
.nav-mega-menu::after {
  content: '';
  position: absolute;
  top: 18px;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(255,255,255,0.96);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border: 1px solid rgba(15,98,254,0.12);
  border-radius: 18px;
  box-shadow: 0 20px 50px rgba(15,23,42,0.14);
  z-index: -1;
}
.nav-mega-menu::before {
  content: '';
  position: absolute;
  top: 11px;
  left: 50%;
  width: 14px;
  height: 14px;
  transform: translateX(-50%) rotate(45deg);
  background: rgba(255,255,255,0.96);
  border-left: 1px solid rgba(15,98,254,0.12);
  border-top: 1px solid rgba(15,98,254,0.12);
}
.nav-dropdown:hover .nav-mega-menu,
.nav-dropdown:focus-within .nav-mega-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
.nav-mega-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}
.nav-product-card {
  display: block;
  padding: 0.95rem 1rem;
  border-radius: 14px;
  border: 1px solid #E5E7EB;
  background: linear-gradient(180deg, #FFFFFF 0%, #F8FAFC 100%);
  transition: var(--transition-base);
}
.nav-product-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(15,23,42,0.08);
  border-color: rgba(15,98,254,0.28);
}
.nav-product-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.55rem;
  color: #64748B;
}
.nav-product-top .badge {
  padding: 0.15rem 0.5rem;
  border-radius: 999px;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.nav-product-card.cli .badge { background: rgba(15,98,254,0.10); color: #0F62FE; }
.nav-product-card.desktop .badge { background: rgba(16,185,129,0.10); color: #059669; }
.nav-product-card.tsm .badge { background: rgba(139,92,246,0.12); color: #7C3AED; }
.nav-product-card.os .badge { background: rgba(251,146,60,0.14); color: #EA580C; }
.nav-product-card h4 {
  font-size: 0.95rem;
  font-weight: 700;
  color: #0F172A;
  margin-bottom: 0.3rem;
}
.nav-product-card p {
  font-size: 0.78rem;
  line-height: 1.55;
  color: #64748B;
}

/* --- Mobile Menu Overlay --- */
.mobile-menu-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.95);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  z-index: 100;
  opacity: 0;
  visibility: hidden;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.mobile-menu-overlay.active {
  opacity: 1;
  visibility: visible;
}

.mobile-menu-overlay .menu-content {
  transform: translateX(30px);
  opacity: 0;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) 0.1s;
}

.mobile-menu-overlay.active .menu-content {
  transform: translateX(0);
  opacity: 1;
}

.mobile-menu-link {
  font-size: 1.5rem;
  font-weight: 600;
  color: #E2E8F0;
  padding: 0.75rem 0;
  display: block;
  transition: var(--transition-base);
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.mobile-menu-link:hover,
.mobile-menu-link.active {
  color: #60A5FA;
  transform: translateX(8px);
}

/* --- Hero Section --- */
.hero-section {
  position: relative;
  min-height: 100vh;
  overflow: hidden;
  margin-top: calc(-1 * var(--header-h));
}

.hero-section .carousel-slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  transition: opacity 1s cubic-bezier(0.4, 0, 0.2, 1);
}

.hero-section .carousel-slide.has-link {
  cursor: pointer;
}

.hero-section .carousel-slide::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(15, 23, 42, 0.45) 0%, rgba(30, 58, 138, 0.2) 50%, rgba(15, 23, 42, 0.55) 100%);
  z-index: 1;
}

.hero-content {
  position: relative;
  z-index: 20;
  min-height: 100vh;
}

.carousel-container {
  min-height: 100vh;
}

.hero-title {
  font-size: clamp(2rem, 5vw, 4.5rem);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.02em;
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.3);
}

.hero-subtitle {
  font-size: clamp(1rem, 2vw, 1.5rem);
  font-weight: 400;
  line-height: 1.6;
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.2);
  max-width: 640px;
}

.hero-scroll-hint {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 20;
  color: rgba(255, 255, 255, 0.7);
  animation: breathing 3s ease-in-out infinite;
}

/* Hero carousel indicators — pill style */
.hero-indicators {
  position: absolute;
  bottom: 2.5rem;
  right: 2.5rem;
  z-index: 30;
  display: flex;
  gap: 8px;
}

.hero-indicator {
  width: 12px;
  height: 4px;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.4);
  transition: all 0.4s ease;
  cursor: pointer;
  border: none;
  padding: 0;
}

.hero-indicator.active {
  width: 32px;
  background: #ffffff;
}

/* Hero nav arrows */
.hero-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 30;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: var(--transition-base);
  opacity: 0;
}

.hero-section:hover .hero-arrow {
  opacity: 1;
}

.hero-arrow:hover {
  background: rgba(255, 255, 255, 0.25);
  transform: translateY(-50%) scale(1.1);
}

.hero-arrow.prev { left: 1.5rem; }
.hero-arrow.next { right: 1.5rem; }

/* --- Section Styles --- */
.section-heading {
  text-align: center;
  margin-bottom: 4rem;
}

.section-heading h2 {
  font-size: 2.25rem;
  font-weight: 800;
  color: #0F172A;
  letter-spacing: -0.02em;
  margin-bottom: 1rem;
}

.section-heading p {
  font-size: 1.125rem;
  color: #64748B;
  max-width: 42rem;
  margin: 0 auto;
}

.section-divider {
  width: 48px;
  height: 3px;
  background: var(--brand-gradient);
  border-radius: 2px;
  margin: 1rem auto;
}

/* --- Card System — 3D Micro-interactions --- */
.card-premium {
  background: #ffffff;
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: var(--transition-spring);
  border: 1px solid rgba(0, 0, 0, 0.04);
  box-shadow: var(--shadow-soft);
}

.card-premium:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-medium);
  border-color: rgba(59, 130, 246, 0.1);
}

.card-3d {
  transition: var(--transition-base);
  transform-style: preserve-3d;
  perspective: 1000px;
}

.card-3d:hover {
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.12);
}

/* --- Buttons --- */
.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.875rem 2rem;
  background: var(--brand-gradient);
  color: #ffffff !important;
  font-weight: 600;
  border-radius: 12px;
  transition: var(--transition-spring);
  text-decoration: none;
  border: none;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}

.btn-primary::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.15) 0%, transparent 50%);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.btn-primary:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(30, 58, 138, 0.35);
  color: #ffffff !important;
}

.btn-primary:hover::before {
  opacity: 1;
}

.btn-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.875rem 2rem;
  background: transparent;
  color: var(--brand-primary);
  font-weight: 600;
  border-radius: 12px;
  border: 2px solid var(--brand-primary);
  transition: var(--transition-spring);
  text-decoration: none;
  cursor: pointer;
}

.btn-outline:hover {
  background: var(--brand-primary);
  color: #ffffff;
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(30, 58, 138, 0.25);
}

.btn-white {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.875rem 2rem;
  background: #ffffff;
  color: var(--brand-primary);
  font-weight: 600;
  border-radius: 12px;
  transition: var(--transition-spring);
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

.btn-white:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.15);
}

/* --- Feature Icon Containers --- */
.feature-icon {
  width: 64px;
  height: 64px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  transition: var(--transition-spring);
  position: relative;
}

.feature-icon::after {
  content: '';
  position: absolute;
  inset: -4px;
  border-radius: 20px;
  background: inherit;
  opacity: 0.3;
  filter: blur(8px);
  z-index: -1;
  transition: opacity 0.3s ease;
}

.card-premium:hover .feature-icon::after {
  opacity: 0.5;
}

/* --- Stats / Data Display --- */
.stat-number {
  font-family: 'DIN Alternate', 'Inter', system-ui, sans-serif;
  font-size: 3rem;
  font-weight: 800;
  line-height: 1;
  background: var(--brand-gradient);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.stat-label {
  font-size: 0.875rem;
  color: #94A3B8;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-top: 0.5rem;
}

/* --- Scroll Reveal --- */
.reveal {
  opacity: 0;
  transform: translateY(48px);
  transition: opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1),
              transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-left {
  opacity: 0;
  transform: translateX(-40px);
  transition: opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1),
              transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}

.reveal-left.visible {
  opacity: 1;
  transform: translateX(0);
}

.reveal-right {
  opacity: 0;
  transform: translateX(40px);
  transition: opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1),
              transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}

.reveal-right.visible {
  opacity: 1;
  transform: translateX(0);
}

.reveal-scale {
  opacity: 0;
  transform: scale(0.9);
  transition: opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1),
              transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}

.reveal-scale.visible {
  opacity: 1;
  transform: scale(1);
}

/* Stagger delays */
.stagger-1 { transition-delay: 0.08s; }
.stagger-2 { transition-delay: 0.18s; }
.stagger-3 { transition-delay: 0.28s; }
.stagger-4 { transition-delay: 0.38s; }
.stagger-5 { transition-delay: 0.48s; }
.stagger-6 { transition-delay: 0.58s; }

/* --- Footer Premium --- */
.footer-premium {
  background: var(--brand-dark);
  position: relative;
  overflow: hidden;
}

.footer-premium::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(59, 130, 246, 0.5), transparent);
}

.footer-wave {
  position: absolute;
  top: -60px;
  left: 0;
  width: 100%;
  height: 60px;
}

.footer-grid-bg {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(59, 130, 246, 0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(59, 130, 246, 0.03) 1px, transparent 1px);
  background-size: 40px 40px;
  pointer-events: none;
}

/* --- Back to Top --- */
.back-to-top {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: var(--brand-gradient);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 24px rgba(30, 58, 138, 0.3);
  transition: var(--transition-spring);
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  cursor: pointer;
  border: none;
  z-index: 40;
}

.back-to-top.visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.back-to-top:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(30, 58, 138, 0.45);
}

/* --- Toast Notifications --- */
.toast {
  position: fixed;
  top: 1.5rem;
  right: 1.5rem;
  padding: 1rem 1.5rem;
  border-radius: 12px;
  color: #ffffff;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  z-index: 9999;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15);
  animation: slideDown 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.toast.success { background: linear-gradient(135deg, #059669, #10B981); }
.toast.error { background: linear-gradient(135deg, #DC2626, #EF4444); }

/* --- Loading Spinner --- */
.loading-spinner {
  display: inline-block;
  width: 20px;
  height: 20px;
  border: 3px solid rgba(255, 255, 255, 0.3);
  border-radius: 50%;
  border-top-color: #fff;
  animation: spin 0.8s ease-in-out infinite;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

@keyframes breathing {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-8px); }
}

@keyframes slideDown {
  0% { opacity: 0; transform: translateY(-16px) scale(0.95); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}

/* --- Honors Carousel --- */
.honors-carousel-container {
  overflow: hidden;
  position: relative;
}

.honors-carousel {
  display: flex;
  transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.honor-item {
  flex-shrink: 0;
}

.honor-card {
  cursor: pointer;
  transition: var(--transition-spring);
}

.honor-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.1);
}

/* --- Modal --- */
.modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.8);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9990;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
}

.modal-backdrop.active {
  opacity: 1;
  visibility: visible;
}

.modal-backdrop .modal-content {
  transform: scale(0.9);
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.modal-backdrop.active .modal-content {
  transform: scale(1);
}

/* --- Dark Section --- */
.section-dark {
  background: var(--brand-dark);
  color: #E2E8F0;
  position: relative;
  overflow: hidden;
}

.section-dark .bg-pattern {
  position: absolute;
  inset: 0;
  opacity: 0.15;
  background-size: cover;
  background-position: center;
  pointer-events: none;
}

.section-dark::before {
  content: '';
  position: absolute;
  top: -200px;
  right: -200px;
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, rgba(59, 130, 246, 0.08), transparent 70%);
  pointer-events: none;
}

/* --- CTA Section --- */
.cta-section {
  background: var(--brand-gradient);
  position: relative;
  overflow: hidden;
}

.cta-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Ccircle cx='30' cy='30' r='2'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") repeat;
  pointer-events: none;
}

/* --- Partners Grid --- */
.partner-logo {
  background: #ffffff;
  border-radius: 12px;
  padding: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 128px;
  transition: var(--transition-spring);
  border: 1px solid #F1F5F9;
}

.partner-logo:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  border-color: rgba(59, 130, 246, 0.2);
}

.partner-logo img {
  max-height: 80%;
  max-width: 80%;
  object-fit: contain;
  filter: grayscale(30%);
  opacity: 0.85;
  transition: all 0.3s ease;
}

.partner-logo:hover img {
  filter: grayscale(0%);
  opacity: 1;
}

.partner-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: #CBD5E1;
}
.partner-placeholder i {
  font-size: 1.5rem;
}

/* --- Company Intro Section --- */
.company-section {
  position: relative;
  overflow: hidden;
}

.company-section .bg-pattern {
  position: absolute;
  inset: 0;
  opacity: 0.15;
  background-size: cover;
  background-position: center;
}

/* --- Service Content (rich text from CKEditor) --- */
.service-content {
  line-height: 1.5;
}
.service-content h1, .service-content h2, .service-content h3 {
  margin-top: 2rem;
  margin-bottom: 1rem;
  color: #2d3748;
}
.service-content img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  margin: 1rem 0;
}
.service-content table {
  max-width: 100%;
  border-collapse: collapse;
  margin: 1rem auto;
}
.service-content figure.table {
  margin: 1rem auto;
}
.service-content table th,
.service-content table td {
  border: 1px solid #e2e8f0;
  padding: 0.75rem;
  text-align: left;
}
.service-content table th {
  background-color: #f7fafc;
  font-weight: 600;
}

/* --- Line Clamp Utilities --- */
.line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.line-clamp-3 {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* --- Responsive Adjustments --- */

/* --- Hero Stats Bar --- */
.hero-stats {
  display: flex;
  gap: 2rem;
  padding-top: 2.5rem;
  border-top: 1px solid rgba(255,255,255,0.15);
  margin-top: 2.5rem;
  position: relative;
  z-index: 20;
}

.hero-stat-item {
  text-align: left;
}

.hero-stat-number {
  font-family: 'DIN Alternate', 'Inter', system-ui, sans-serif;
  font-size: 2.5rem;
  font-weight: 800;
  color: #ffffff;
  line-height: 1;
}

.hero-stat-number .stat-suffix {
  font-size: 1.5rem;
  font-weight: 600;
  opacity: 0.8;
}

.hero-stat-label {
  font-size: 0.8125rem;
  color: rgba(255,255,255,0.6);
  margin-top: 0.25rem;
  font-weight: 400;
}

/* --- Hero Particle Dots Background --- */
.hero-particles {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  overflow: hidden;
}

.hero-particles .dot {
  position: absolute;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: rgba(255,255,255,0.25);
  animation: particleFloat 15s infinite ease-in-out;
}

.hero-particles .dot:nth-child(1) { left: 10%; top: 20%; animation-delay: 0s; animation-duration: 18s; }
.hero-particles .dot:nth-child(2) { left: 25%; top: 50%; animation-delay: 2s; animation-duration: 14s; }
.hero-particles .dot:nth-child(3) { left: 40%; top: 30%; animation-delay: 4s; animation-duration: 20s; }
.hero-particles .dot:nth-child(4) { left: 60%; top: 70%; animation-delay: 1s; animation-duration: 16s; }
.hero-particles .dot:nth-child(5) { left: 75%; top: 40%; animation-delay: 3s; animation-duration: 22s; }
.hero-particles .dot:nth-child(6) { left: 85%; top: 15%; animation-delay: 5s; animation-duration: 17s; }
.hero-particles .dot:nth-child(7) { left: 50%; top: 85%; animation-delay: 6s; animation-duration: 19s; }
.hero-particles .dot:nth-child(8) { left: 15%; top: 75%; animation-delay: 7s; animation-duration: 21s; }

@keyframes particleFloat {
  0%, 100% { transform: translate(0, 0); opacity: 0; }
  10% { opacity: 1; }
  50% { transform: translate(40px, -60px); opacity: 0.6; }
  90% { opacity: 1; }
}

/* --- Typing Effect --- */
.typing-cursor {
  display: inline-block;
  width: 3px;
  height: 1em;
  background: rgba(255,255,255,0.8);
  margin-left: 2px;
  animation: blink 1s step-end infinite;
  vertical-align: text-bottom;
}

@keyframes blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0; }
}

/* --- AI Product Showcase Section --- */
.product-showcase {
  background: linear-gradient(180deg, #0A0F1E 0%, #0F172A 40%, #111B2E 100%);
  position: relative;
  overflow: hidden;
}

.product-showcase::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 20% 30%, rgba(59,130,246,0.08) 0%, transparent 40%),
    radial-gradient(circle at 80% 70%, rgba(16,185,129,0.06) 0%, transparent 40%);
  pointer-events: none;
}

.product-showcase .grid-lines {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(59,130,246,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(59,130,246,0.04) 1px, transparent 1px);
  background-size: 80px 80px;
  pointer-events: none;
}

.product-showcase .section-heading h2 {
  color: #E2E8F0;
}

.product-showcase .section-heading p {
  color: #94A3B8;
}

/* Product Cards */
.product-card {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 20px;
  padding: 2rem;
  transition: var(--transition-spring);
  position: relative;
  overflow: hidden;
}

.product-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--brand-gradient);
  opacity: 0;
  transition: opacity 0.4s ease;
}

.product-card:hover {
  background: rgba(255,255,255,0.06);
  border-color: rgba(59,130,246,0.2);
  transform: translateY(-6px);
  box-shadow: 0 20px 60px rgba(0,0,0,0.4), 0 0 40px rgba(59,130,246,0.08);
}

.product-card:hover::before {
  opacity: 1;
}

.product-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.375rem 0.875rem;
  border-radius: 20px;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.025em;
}

.product-badge.cli {
  background: rgba(59,130,246,0.12);
  color: #60A5FA;
  border: 1px solid rgba(59,130,246,0.2);
}

.product-badge.desktop {
  background: rgba(16,185,129,0.12);
  color: #34D399;
  border: 1px solid rgba(16,185,129,0.2);
}

.product-card h3 {
  font-size: 1.75rem;
  font-weight: 800;
  color: #F1F5F9;
  margin: 1rem 0 0.5rem;
  letter-spacing: -0.02em;
}

.product-card .product-desc {
  color: #94A3B8;
  font-size: 0.9375rem;
  line-height: 1.6;
  margin-bottom: 1.5rem;
}

/* Terminal Mock */
.terminal-mock {
  background: #0D1117;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.06);
  margin-bottom: 1.5rem;
  font-family: 'SF Mono', 'Fira Code', 'Cascadia Code', monospace;
}

.terminal-header {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0.75rem 1rem;
  background: rgba(255,255,255,0.03);
  border-bottom: 1px solid rgba(255,255,255,0.06);
}

.terminal-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
}

.terminal-dot.red { background: #FF5F56; }
.terminal-dot.yellow { background: #FFBD2E; }
.terminal-dot.green { background: #27C93F; }

.terminal-title {
  color: #6B7280;
  font-size: 0.75rem;
  margin-left: 0.5rem;
}

.terminal-body {
  padding: 1rem 1.25rem;
  font-size: 0.8125rem;
  line-height: 1.7;
  color: #D1D5DB;
  max-height: 240px;
  overflow: hidden;
}

.terminal-body .prompt {
  color: #34D399;
}

.terminal-body .command {
  color: #F1F5F9;
  font-weight: 600;
}

.terminal-body .output {
  color: #9CA3AF;
}

.terminal-body .highlight {
  color: #60A5FA;
}

.terminal-body .accent {
  color: #FBBF24;
}

.terminal-body .success {
  color: #34D399;
}

/* Desktop App Mock */
.desktop-mock {
  background: #1A1A2E;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.06);
  margin-bottom: 1.5rem;
}

.desktop-titlebar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.625rem 1rem;
  background: rgba(255,255,255,0.03);
  border-bottom: 1px solid rgba(255,255,255,0.06);
}

.desktop-titlebar-left {
  display: flex;
  align-items: center;
  gap: 6px;
}

.desktop-titlebar-title {
  color: #94A3B8;
  font-size: 0.75rem;
  font-weight: 500;
  margin-left: 0.5rem;
}

.desktop-body {
  display: flex;
  min-height: 200px;
}

.desktop-sidebar {
  width: 200px;
  padding: 0.75rem;
  border-right: 1px solid rgba(255,255,255,0.06);
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.desktop-sidebar-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  border-radius: 8px;
  font-size: 0.8125rem;
  color: #94A3B8;
  transition: all 0.2s ease;
}

.desktop-sidebar-item.active {
  background: rgba(59,130,246,0.12);
  color: #60A5FA;
}

.desktop-sidebar-item i {
  width: 16px;
  text-align: center;
  font-size: 0.75rem;
}

.desktop-main {
  flex: 1;
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.desktop-msg {
  padding: 0.625rem 0.875rem;
  border-radius: 10px;
  font-size: 0.8125rem;
  line-height: 1.5;
  max-width: 85%;
}

.desktop-msg.user {
  background: rgba(59,130,246,0.15);
  color: #93C5FD;
  align-self: flex-end;
  border-bottom-right-radius: 4px;
}

.desktop-msg.ai {
  background: rgba(255,255,255,0.05);
  color: #D1D5DB;
  align-self: flex-start;
  border-bottom-left-radius: 4px;
}

/* Product Feature Tags */
.product-features {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
}

.feature-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.375rem 0.75rem;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 8px;
  font-size: 0.75rem;
  color: #CBD5E1;
  transition: all 0.2s ease;
}

.product-card:hover .feature-tag {
  border-color: rgba(59,130,246,0.15);
}

.feature-tag i {
  color: #60A5FA;
  font-size: 0.625rem;
}

/* Product Stats Row */
.product-stats {
  display: flex;
  gap: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255,255,255,0.06);
  margin-top: auto;
}

.product-stat {
  text-align: center;
  flex: 1;
}

.product-stat .num {
  font-family: 'DIN Alternate', 'Inter', system-ui, sans-serif;
  font-size: 1.75rem;
  font-weight: 800;
  color: #F1F5F9;
  line-height: 1;
}

.product-stat .label {
  font-size: 0.6875rem;
  color: #64748B;
  margin-top: 0.25rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.product-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: #60A5FA;
  font-weight: 600;
  font-size: 0.9375rem;
  text-decoration: none;
  transition: all 0.3s ease;
  padding-top: 1rem;
}

.product-link:hover {
  color: #93C5FD;
  gap: 0.75rem;
}

/* --- Enhanced Card Hover 3D --- */
.card-premium.card-3d:hover {
  transform: translateY(-8px) rotateX(2deg) rotateY(-1deg);
  box-shadow:
    0 25px 50px rgba(0,0,0,0.12),
    0 0 0 1px rgba(59,130,246,0.08);
}

/* --- Section Alternating Backgrounds --- */
.section-alt {
  background: linear-gradient(180deg, #F8FAFC 0%, #F1F5F9 100%);
}

/* --- Animated Gradient Border --- */
.gradient-border {
  position: relative;
}

.gradient-border::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--brand-gradient);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.gradient-border:hover::after {
  opacity: 1;
}

/* --- Responsive Adjustments --- */
@media (max-width: 768px) {
  .hero-section {
    min-height: 70vh;
  }
  
  .hero-title {
    font-size: 1.75rem;
  }
  
  .hero-subtitle {
    font-size: 0.9375rem;
  }

  .section-heading h2 {
    font-size: 1.75rem;
  }

  .stat-number {
    font-size: 2rem;
  }

  .hero-arrow {
    display: none;
  }

  .hero-indicators {
    right: auto;
    left: 50%;
    transform: translateX(-50%);
  }

  .hero-stats {
    flex-wrap: wrap;
    gap: 1rem;
  }

  .hero-stat-number {
    font-size: 1.75rem;
  }

  .desktop-sidebar {
    display: none;
  }

  .product-stats {
    flex-wrap: wrap;
    gap: 1rem;
  }

  .product-stat {
    flex: 0 0 auto;
  }
}

@media (max-width: 480px) {
  .hero-section {
    min-height: 60vh;
  }
}

/* ============================================================
   V2 — TOP-TIER TECH AESTHETIC OVERRIDE
   仿 Linear / Anthropic / Stripe / Vercel 的克制科技美学
   ============================================================ */

/* --- v2 Tokens --- */
:root {
  --v2-brand: #0F62FE;
  --v2-brand-hover: #0353E9;
  --v2-ink: #0B0D17;
  --v2-ink-2: #111827;
  --v2-ink-3: #1F2937;
  --v2-text: #1F2937;
  --v2-text-muted: #6B7280;
  --v2-text-soft: #9CA3AF;
  --v2-border: #E5E7EB;
  --v2-border-strong: #D1D5DB;
  --v2-bg: #FFFFFF;
  --v2-bg-alt: #F9FAFB;
  --v2-bg-dark: #0B0D17;
  --v2-bg-dark-alt: #111827;
  --v2-accent-green: #10B981;
  --v2-accent-cyan: #06B6D4;
  --v2-accent-violet: #8B5CF6;
  --v2-radius: 12px;
  --v2-radius-sm: 8px;
  --v2-shadow-sm: 0 1px 2px rgba(16, 24, 40, 0.06), 0 1px 3px rgba(16, 24, 40, 0.10);
  --v2-shadow: 0 4px 6px -1px rgba(16, 24, 40, 0.06), 0 2px 4px -2px rgba(16, 24, 40, 0.06);
  --v2-shadow-lg: 0 12px 24px -6px rgba(16, 24, 40, 0.08), 0 4px 8px -4px rgba(16, 24, 40, 0.04);
}

/* --- Base Typography Refinement --- */
body {
  font-family: 'Inter', 'HarmonyOS Sans SC', 'PingFang SC', system-ui, -apple-system, sans-serif;
  font-feature-settings: 'cv02', 'cv03', 'cv04', 'cv11', 'ss01';
  color: var(--v2-text);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  letter-spacing: -0.011em;
}

/* ----------- NAVIGATION V2 — thin, clean ----------- */
.nav-glass {
  background: rgba(255, 255, 255, 0.72) !important;
  backdrop-filter: blur(14px) saturate(180%);
  -webkit-backdrop-filter: blur(14px) saturate(180%);
  border-bottom: 1px solid rgba(17, 24, 39, 0.06) !important;
  box-shadow: none !important;
}
.nav-glass.scrolled {
  background: rgba(255, 255, 255, 0.92) !important;
  border-bottom: 1px solid rgba(17, 24, 39, 0.08) !important;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04) !important;
}
.nav-glass.scrolled .nav-link,
.nav-glass.scrolled .nav-logo-text {
  color: var(--v2-ink) !important;
}
.nav-link {
  color: var(--v2-text) !important;
  font-weight: 500 !important;
  font-size: 0.9375rem;
  letter-spacing: -0.01em;
}
.nav-link::after { background: var(--v2-brand) !important; height: 2px !important; }
.nav-link.active, .nav-link:hover { color: var(--v2-brand) !important; }

/* ----------- HERO V2 — Dark, precise, code-like ----------- */
.hero-section {
  background: var(--v2-bg-dark);
  min-height: 100vh;
}
/* Hide the slide background image overlay, use dark gradient instead */
.hero-section .carousel-slide {
  background-blend-mode: multiply !important;
  background-color: #0B0D17;
}
.hero-section .carousel-slide::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 80% 50% at 20% 0%, rgba(15, 98, 254, 0.18), transparent 60%),
    radial-gradient(ellipse 60% 50% at 80% 100%, rgba(6, 182, 212, 0.12), transparent 60%),
    linear-gradient(180deg, rgba(11, 13, 23, 0.85) 0%, rgba(11, 13, 23, 0.95) 100%);
  z-index: 1;
}
.hero-section .carousel-slide::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, black, transparent);
  -webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, black, transparent);
  z-index: 1;
  opacity: 0.6;
}
.hero-section .hero-content {
  position: relative;
  z-index: 2;
}

/* Hide old particles (look amateurish) */
.hero-particles { display: none !important; }

/* Hero typography — Linear/Anthropic scale */
.hero-title {
  font-size: clamp(2.5rem, 5.2vw, 4.25rem) !important;
  font-weight: 700 !important;
  line-height: 1.05 !important;
  letter-spacing: -0.035em !important;
  color: #FFFFFF !important;
  text-shadow: none !important;
  max-width: 22ch;
  background: linear-gradient(180deg, #FFFFFF 0%, #CBD5E1 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.hero-subtitle {
  font-size: clamp(1rem, 1.6vw, 1.25rem) !important;
  font-weight: 400 !important;
  color: #94A3B8 !important;
  line-height: 1.6 !important;
  max-width: 56ch;
  margin-bottom: 2.5rem !important;
  letter-spacing: -0.005em;
}

/* Hero eyebrow badge (shown via ::before on hero content column) */
.hero-content .max-w-2xl::before,
.hero-content .max-w-3xl::before {
  content: '● 国家级高新技术企业  ·  宁波创新型中小企业';
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 0.875rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: #7DD3FC;
  background: rgba(15, 98, 254, 0.12);
  border: 1px solid rgba(125, 211, 252, 0.25);
  border-radius: 999px;
  margin-bottom: 1.5rem;
  letter-spacing: 0.01em;
  backdrop-filter: blur(8px);
}

/* Hero CTA row — inject via ::after on subtitle */
.hero-subtitle::after {
  content: '';
  display: block;
  height: 0;
}

/* Hero Stats V2 — monospace, precise */
.hero-stats {
  display: flex;
  gap: 3rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  max-width: 640px;
}
.hero-stat-item { flex: 0 0 auto; }
.hero-stat-number {
  font-family: 'JetBrains Mono', 'SF Mono', 'Menlo', ui-monospace, monospace !important;
  font-size: 1.875rem !important;
  font-weight: 600 !important;
  color: #FFFFFF !important;
  line-height: 1 !important;
  letter-spacing: -0.02em !important;
  background: none !important;
  -webkit-text-fill-color: #FFFFFF !important;
  margin-bottom: 0.375rem;
}
.hero-stat-label {
  font-size: 0.8125rem !important;
  color: #94A3B8 !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em;
  text-transform: none !important;
}

/* Scroll hint refinement */
.hero-scroll-hint {
  color: rgba(255, 255, 255, 0.4) !important;
  font-size: 0.875rem;
}
.hero-scroll-hint i { font-size: 1rem !important; }

/* Hero arrows — minimal */
.hero-arrow {
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  backdrop-filter: blur(12px);
  width: 44px !important;
  height: 44px !important;
  font-size: 0.875rem !important;
}
.hero-arrow:hover { background: rgba(255, 255, 255, 0.12) !important; }

.hero-indicators { gap: 6px !important; }
.hero-indicator {
  width: 6px !important;
  height: 6px !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, 0.25) !important;
  border: none !important;
  transition: all 0.25s ease;
}
.hero-indicator.active {
  width: 24px !important;
  background: #FFFFFF !important;
}

/* ----------- SECTION HEADING V2 — Stripe style ----------- */
.section-heading {
  text-align: left !important;
  margin-bottom: 3.5rem;
  max-width: 720px;
}
.section-heading.text-center,
section.text-center .section-heading {
  text-align: center !important;
  margin-left: auto;
  margin-right: auto;
}
.section-heading h2 {
  font-size: clamp(1.875rem, 3.5vw, 2.75rem) !important;
  font-weight: 700 !important;
  color: var(--v2-ink) !important;
  line-height: 1.1 !important;
  letter-spacing: -0.028em !important;
  margin-bottom: 1rem !important;
  background: none !important;
  -webkit-text-fill-color: var(--v2-ink) !important;
}
.section-heading .section-divider {
  display: none !important;
}
.section-heading p {
  font-size: 1.0625rem !important;
  color: var(--v2-text-muted) !important;
  line-height: 1.65 !important;
  font-weight: 400 !important;
  max-width: 60ch;
  margin: 0 !important;
}
/* Eyebrow label above section-heading h2 */
.section-heading h2::before {
  content: attr(data-eyebrow);
  display: block;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--v2-brand);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 0.75rem;
}
.section-heading h2:not([data-eyebrow])::before { content: none; display: none; }

/* ----------- CARDS V2 — Thin border, no 3D, subtle lift ----------- */
.card-premium,
.card-3d {
  background: #FFFFFF !important;
  border: 1px solid var(--v2-border) !important;
  border-radius: var(--v2-radius) !important;
  box-shadow: none !important;
  transition: border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease !important;
  transform: none !important;
}
.card-premium:hover,
.card-3d:hover {
  border-color: var(--v2-border-strong) !important;
  box-shadow: var(--v2-shadow-lg) !important;
  transform: translateY(-2px) !important;
}
/* Kill the 3D rotateX/rotateY effect */
.card-3d:hover {
  transform: translateY(-2px) !important;
}

/* ----------- FEATURE ICONS V2 — Monochrome, consistent ----------- */
.feature-icon {
  width: 44px !important;
  height: 44px !important;
  border-radius: 10px !important;
  background: #F1F5FF !important;
  color: var(--v2-brand) !important;
  box-shadow: none !important;
  font-size: 1.125rem !important;
  margin-bottom: 1.25rem !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
}
.feature-icon::after { display: none !important; }
/* Override all colored variants to unified brand color */
.feature-icon.bg-blue-50, .feature-icon.bg-emerald-50,
.feature-icon.bg-purple-50, .feature-icon.bg-red-50,
.feature-icon.bg-cyan-50, .feature-icon.bg-green-50 {
  background: #F1F5FF !important;
  color: var(--v2-brand) !important;
}
.feature-icon.text-blue-600, .feature-icon.text-emerald-600,
.feature-icon.text-purple-600, .feature-icon.text-red-600 {
  color: var(--v2-brand) !important;
}
/* Card body typography */
.card-premium h3, .card-3d h3 {
  font-size: 1.0625rem !important;
  font-weight: 600 !important;
  color: var(--v2-ink) !important;
  letter-spacing: -0.015em;
  line-height: 1.4;
}

/* ----------- BUTTONS V2 ----------- */
.btn-primary {
  background: var(--v2-ink) !important;
  color: #FFFFFF !important;
  padding: 0.75rem 1.5rem !important;
  border-radius: 10px !important;
  font-weight: 500 !important;
  font-size: 0.9375rem !important;
  letter-spacing: -0.01em;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.1) !important;
  border: 1px solid var(--v2-ink) !important;
  transition: all 0.18s ease !important;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}
.btn-primary::before { display: none !important; }
.btn-primary:hover {
  background: var(--v2-ink-3) !important;
  border-color: var(--v2-ink-3) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 12px rgba(16, 24, 40, 0.15) !important;
}
.btn-outline {
  background: transparent !important;
  color: var(--v2-ink) !important;
  border: 1px solid var(--v2-border-strong) !important;
  padding: 0.75rem 1.5rem !important;
  border-radius: 10px !important;
  font-weight: 500 !important;
  font-size: 0.9375rem !important;
}
.btn-outline:hover {
  border-color: var(--v2-ink) !important;
  background: var(--v2-bg-alt) !important;
}
.btn-white {
  background: #FFFFFF !important;
  color: var(--v2-ink) !important;
  padding: 0.75rem 1.5rem !important;
  border-radius: 10px !important;
  font-weight: 500 !important;
  border: 1px solid rgba(255,255,255,0.2) !important;
}

/* ----------- SECTION BACKGROUNDS V2 ----------- */
section.bg-gray-50\/50,
.section-alt {
  background: var(--v2-bg-alt) !important;
}
section.bg-white { background: #FFFFFF !important; }

/* Section vertical rhythm */
section.py-24, section.py-20 { padding-top: 6rem !important; padding-bottom: 6rem !important; }
@media (min-width: 1024px) {
  section.py-24.lg\:py-32, section.py-20.lg\:py-32 {
    padding-top: 7rem !important;
    padding-bottom: 7rem !important;
  }
}

/* ----------- SECTION-DARK V2 ----------- */
.section-dark {
  background: var(--v2-bg-dark) !important;
  color: #E5E7EB;
  position: relative;
}
.section-dark .bg-pattern { opacity: 0.35 !important; }
.section-dark h2, .section-dark h3 { color: #FFFFFF !important; -webkit-text-fill-color: #FFFFFF !important; }
.section-dark p { color: #94A3B8 !important; }

/* ----------- PRODUCT SHOWCASE V2 — Anthropic style ----------- */
.product-showcase {
  background: var(--v2-bg-dark) !important;
  color: #E5E7EB;
  position: relative;
  overflow: hidden;
}
.product-showcase::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 40% at 15% 20%, rgba(15, 98, 254, 0.15), transparent 70%),
    radial-gradient(ellipse 50% 40% at 90% 90%, rgba(139, 92, 246, 0.10), transparent 70%);
  pointer-events: none;
}
.product-showcase .grid-lines {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: radial-gradient(ellipse 70% 80% at 50% 50%, black, transparent);
  -webkit-mask-image: radial-gradient(ellipse 70% 80% at 50% 50%, black, transparent);
  opacity: 0.8;
  pointer-events: none;
}
.product-showcase .section-heading h2 {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}
.product-showcase .section-heading p { color: #94A3B8 !important; }
.product-showcase .section-heading h2::before { color: #7DD3FC !important; }

.product-card {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.015) 100%) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 16px !important;
  padding: 2rem !important;
  backdrop-filter: blur(8px);
  position: relative;
  transition: border-color 0.2s ease, transform 0.2s ease !important;
}
.product-card:hover {
  border-color: rgba(255, 255, 255, 0.18) !important;
  transform: translateY(-2px);
}
.product-card::before { display: none !important; }
.product-card h3 {
  font-size: 1.5rem !important;
  font-weight: 600 !important;
  color: #FFFFFF !important;
  margin: 0.5rem 0 0.75rem !important;
  letter-spacing: -0.02em;
}
.product-card .product-desc {
  color: #94A3B8 !important;
  font-size: 0.9375rem !important;
  line-height: 1.65 !important;
  margin-bottom: 1.5rem !important;
}
.product-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.75rem !important;
  font-weight: 500 !important;
  padding: 0.25rem 0.625rem !important;
  border-radius: 999px !important;
  letter-spacing: 0.02em;
}
.product-badge.cli {
  background: rgba(15, 98, 254, 0.15) !important;
  color: #7DD3FC !important;
  border: 1px solid rgba(125, 211, 252, 0.25);
}
.product-badge.desktop {
  background: rgba(16, 185, 129, 0.12) !important;
  color: #6EE7B7 !important;
  border: 1px solid rgba(110, 231, 183, 0.25);
}

/* Terminal mock V2 */
.terminal-mock {
  background: #0A0E1A !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 10px !important;
  overflow: hidden;
  margin: 1.5rem 0 !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3) !important;
}
.terminal-header {
  background: rgba(255, 255, 255, 0.03) !important;
  padding: 0.625rem 0.875rem !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.375rem !important;
}
.terminal-dot { width: 11px !important; height: 11px !important; }
.terminal-dot.red { background: #FF5F57 !important; }
.terminal-dot.yellow { background: #FEBC2E !important; }
.terminal-dot.green { background: #28C840 !important; }
.terminal-title {
  margin-left: auto !important;
  font-size: 0.6875rem !important;
  color: #6B7280 !important;
  font-family: 'JetBrains Mono', ui-monospace, monospace !important;
}
.terminal-body {
  padding: 1rem !important;
  font-family: 'JetBrains Mono', 'SF Mono', ui-monospace, monospace !important;
  font-size: 0.8125rem !important;
  line-height: 1.65 !important;
  color: #E5E7EB !important;
  min-height: auto !important;
}
.terminal-body .prompt { color: #0F62FE !important; }
.terminal-body .command { color: #E5E7EB !important; }
.terminal-body .output { color: #9CA3AF !important; }
.terminal-body .highlight { color: #7DD3FC !important; font-weight: 500; }
.terminal-body .accent { color: #FBBF24 !important; }
.terminal-body .success { color: #34D399 !important; }

/* Desktop mock V2 */
.desktop-mock {
  background: #0A0E1A !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 10px !important;
  overflow: hidden;
  margin: 1.5rem 0 !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3) !important;
}
.desktop-titlebar {
  background: rgba(255, 255, 255, 0.03) !important;
  padding: 0.5rem 0.75rem !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
}
.desktop-titlebar-title {
  font-size: 0.6875rem !important;
  color: #6B7280 !important;
}
.desktop-body { display: flex !important; height: 210px !important; }
.desktop-sidebar {
  width: 140px !important;
  background: rgba(255, 255, 255, 0.02) !important;
  border-right: 1px solid rgba(255, 255, 255, 0.06) !important;
  padding: 0.625rem 0.375rem !important;
}
.desktop-sidebar-item {
  padding: 0.375rem 0.625rem !important;
  font-size: 0.75rem !important;
  color: #9CA3AF !important;
  border-radius: 6px;
  margin-bottom: 2px;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.desktop-sidebar-item.active {
  background: rgba(15, 98, 254, 0.18) !important;
  color: #7DD3FC !important;
}
.desktop-main {
  flex: 1 !important;
  padding: 0.75rem !important;
  overflow-y: auto;
}
.desktop-msg {
  font-size: 0.8125rem !important;
  padding: 0.5rem 0.75rem !important;
  border-radius: 8px !important;
  margin-bottom: 0.5rem !important;
  line-height: 1.55 !important;
  max-width: 85%;
}
.desktop-msg.user {
  background: rgba(15, 98, 254, 0.18) !important;
  color: #DBEAFE !important;
  margin-left: auto;
}
.desktop-msg.ai {
  background: rgba(255, 255, 255, 0.04) !important;
  color: #D1D5DB !important;
  border: 1px solid rgba(255, 255, 255, 0.06);
}

/* Feature tags V2 */
.product-features {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem !important;
  margin: 1.25rem 0 1.5rem !important;
}
.feature-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.3125rem 0.625rem !important;
  background: rgba(255, 255, 255, 0.04) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 6px !important;
  font-size: 0.75rem !important;
  color: #CBD5E1 !important;
  font-weight: 400 !important;
}
.feature-tag i { color: var(--v2-brand); }
.feature-tag:hover { background: rgba(255, 255, 255, 0.07) !important; }

/* Product stats V2 */
.product-stats {
  display: flex;
  gap: 1.75rem !important;
  padding-top: 1.25rem !important;
  border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
  margin-bottom: 1.25rem !important;
}
.product-stat .num {
  font-family: 'JetBrains Mono', 'SF Mono', ui-monospace, monospace !important;
  font-size: 1.375rem !important;
  font-weight: 600 !important;
  color: #FFFFFF !important;
  line-height: 1;
  letter-spacing: -0.02em;
}
.product-stat .label {
  font-size: 0.75rem !important;
  color: #6B7280 !important;
  margin-top: 0.25rem;
  font-weight: 500;
}
.product-link {
  display: inline-flex !important;
  align-items: center;
  gap: 0.5rem;
  color: #E5E7EB !important;
  font-size: 0.875rem !important;
  font-weight: 500;
  padding: 0.625rem 0;
  border-top: 1px solid transparent;
  transition: color 0.18s ease;
}
.product-link:hover { color: #7DD3FC !important; }

/* ----------- STAT NUMBER V2 (in about/etc) ----------- */
.stat-number {
  font-family: 'JetBrains Mono', ui-monospace, monospace !important;
  color: var(--v2-ink) !important;
  background: none !important;
  -webkit-text-fill-color: var(--v2-ink) !important;
  font-size: 2.5rem !important;
  font-weight: 700 !important;
  letter-spacing: -0.025em;
}
.section-dark .stat-number {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

/* ----------- FOOTER V2 — cleaner ----------- */
.footer-premium {
  background: var(--v2-bg-dark) !important;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

/* ----------- CTA V2 ----------- */
.cta-section {
  background: var(--v2-bg-dark) !important;
  position: relative;
  overflow: hidden;
}
.cta-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 50% 50% at 50% 0%, rgba(15, 98, 254, 0.22), transparent 70%);
  pointer-events: none;
}
.cta-section > * { position: relative; z-index: 1; }

/* ----------- HONOR / MODAL V2 ----------- */
.honor-card {
  background: #FFFFFF !important;
  border: 1px solid var(--v2-border) !important;
  border-radius: var(--v2-radius) !important;
  box-shadow: none !important;
  transition: all 0.18s ease !important;
}
.honor-card:hover {
  border-color: var(--v2-border-strong) !important;
  box-shadow: var(--v2-shadow-lg) !important;
  transform: translateY(-2px) !important;
}

/* ----------- PARTNER LOGO V2 ----------- */
.partner-logo {
  background: #FFFFFF !important;
  border: 1px solid var(--v2-border) !important;
  border-radius: var(--v2-radius-sm) !important;
  filter: grayscale(100%) opacity(0.6);
  transition: all 0.2s ease;
}
.partner-logo:hover {
  filter: grayscale(0%) opacity(1);
  border-color: var(--v2-border-strong) !important;
}

/* ----------- REVEAL V2 — ensure visible by default as safety ----------- */
/* In case JS fails, content must still be visible */
@media (prefers-reduced-motion: reduce) {
  .reveal, .reveal-left, .reveal-right, .reveal-scale {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* ----------- UTILITY — text-primary / text-accent override ----------- */
.text-primary { color: var(--v2-brand) !important; }
.text-accent { color: var(--v2-brand) !important; }
.bg-accent { background: var(--v2-brand) !important; }

/* ----------- RESPONSIVE FIXES ----------- */
@media (max-width: 768px) {
  .hero-title { font-size: 2rem !important; }
  .hero-subtitle { font-size: 0.9375rem !important; }
  .hero-stats { gap: 1.5rem; flex-wrap: wrap; padding-top: 1.5rem; }
  .hero-stat-number { font-size: 1.5rem !important; }
  .hero-content .max-w-2xl::before, .hero-content .max-w-3xl::before { font-size: 0.6875rem; }
  .section-heading h2 { font-size: 1.75rem !important; }
  .product-card { padding: 1.5rem !important; }
  .product-card h3 { font-size: 1.25rem !important; }
  .desktop-sidebar { width: 100px !important; }
  .desktop-sidebar-item { font-size: 0.6875rem !important; padding: 0.3125rem 0.5rem !important; }
}

/* ============================================================
   HERO TERMINAL — real product preview (right-side of hero)
   ============================================================ */
.hero-terminal {
  background: linear-gradient(180deg, #0C1020 0%, #060912 100%);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  box-shadow:
    0 0 0 1px rgba(15, 98, 254, 0.08),
    0 24px 48px -12px rgba(0, 0, 0, 0.55),
    0 0 72px -20px rgba(15, 98, 254, 0.35);
  overflow: hidden;
  transform: perspective(1800px) rotateY(-4deg) rotateX(2deg);
  transform-origin: left center;
  transition: transform 0.4s ease;
  font-family: 'JetBrains Mono', 'SF Mono', ui-monospace, Menlo, monospace;
  position: relative;
}
.hero-terminal::before {
  content: '';
  position: absolute;
  inset: -1px;
  background: linear-gradient(140deg, rgba(15, 98, 254, 0.35), transparent 40%, transparent 70%, rgba(6, 182, 212, 0.2));
  border-radius: inherit;
  z-index: -1;
  opacity: 0.8;
}
.hero-terminal:hover {
  transform: perspective(1800px) rotateY(-2deg) rotateX(1deg);
}
.hero-terminal-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 0.875rem;
  background: rgba(255, 255, 255, 0.02);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.hero-terminal-dots { display: flex; gap: 0.375rem; }
.hero-terminal-dots .dot {
  width: 11px; height: 11px; border-radius: 999px; display: inline-block;
  animation: none !important;
  position: static !important;
  background: #333 !important;
  box-shadow: none !important;
  opacity: 1 !important;
}
.hero-terminal-dots .dot.red { background: #FF5F57 !important; }
.hero-terminal-dots .dot.yellow { background: #FEBC2E !important; }
.hero-terminal-dots .dot.green { background: #28C840 !important; }
.hero-terminal-title {
  flex: 1;
  text-align: center;
  font-size: 0.75rem;
  color: #6B7280;
  letter-spacing: 0.01em;
}
.hero-terminal-status {
  font-size: 0.6875rem;
  color: #6EE7B7;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.125rem 0.5rem;
  border-radius: 999px;
  background: rgba(16, 185, 129, 0.1);
  border: 1px solid rgba(110, 231, 183, 0.25);
}
.hero-terminal-status .status-dot {
  width: 6px; height: 6px; border-radius: 999px;
  background: #34D399;
  box-shadow: 0 0 8px rgba(52, 211, 153, 0.7);
}
.hero-terminal-body {
  padding: 1.25rem 1.25rem 1rem;
  font-size: 0.8125rem;
  line-height: 1.7;
  color: #D1D5DB;
  min-height: 360px;
}
.hero-terminal-body .ln {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.hero-terminal-body .ln.sp { height: 0.5rem; }
.hero-terminal-body .ln.indent { padding-left: 1.25rem; }
.hero-terminal-body .prompt { color: #06B6D4; font-weight: 500; }
.hero-terminal-body .arrow { color: #10B981; margin: 0 0.375rem; }
.hero-terminal-body .cmd { color: #F3F4F6; font-weight: 500; }
.hero-terminal-body .arg { color: #FBBF24; }
.hero-terminal-body .ic { display: inline-block; width: 1.125rem; color: #10B981; }
.hero-terminal-body .ln.run .ic { color: #FBBF24; }
.hero-terminal-body .ln.indent .ic { color: #6B7280; width: auto; margin-right: 0.375rem; }
.hero-terminal-body .agent { color: #7DD3FC; font-weight: 500; }
.hero-terminal-body .ln.ok b { color: #F3F4F6; font-weight: 600; }
.hero-terminal-body .muted { color: #6B7280; }
.hero-terminal-body .highlight { color: #A78BFA; font-weight: 500; }
.hero-terminal-body .time { color: #6B7280; font-size: 0.6875rem; }
.hero-terminal-body .caret {
  display: inline-block;
  color: #F3F4F6;
  animation: caret-blink 1.1s steps(1) infinite;
  margin-left: 0.125rem;
}
@keyframes caret-blink {
  0%, 50% { opacity: 1; }
  51%, 100% { opacity: 0; }
}

/* Responsive: hide tilt on mobile, narrower padding */
@media (max-width: 1023px) {
  .hero-terminal { display: none; }
}

.hero-main-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.5rem;
}
.hero-main-actions .hero-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.8rem 1.3rem;
  border-radius: 10px;
  font-weight: 600;
  transition: var(--transition-base);
}
.hero-main-actions .hero-cta.primary {
  background: #0F62FE;
  color: #fff;
  box-shadow: 0 8px 20px rgba(15,98,254,0.25);
}
.hero-main-actions .hero-cta.ghost {
  background: rgba(255,255,255,0.08);
  color: #E2E8F0;
  border: 1px solid rgba(255,255,255,0.14);
}
.hero-main-actions .hero-cta:hover { transform: translateY(-1px); }
.hero-product-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin-top: 1rem;
  max-width: 42rem;
}
.hero-product-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.75rem 0.9rem;
  border-radius: 12px;
  background: rgba(9,14,28,0.42);
  border: 1px solid rgba(255,255,255,0.10);
  backdrop-filter: blur(8px);
}
.hero-product-link:hover {
  border-color: rgba(15,98,254,0.34);
  transform: translateY(-1px);
}
.hero-product-link .hp-left {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}
.hero-product-link .hp-icon {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 0.85rem;
}
.hero-product-link.cli .hp-icon { background: linear-gradient(135deg, #0F62FE, #2563EB); }
.hero-product-link.desktop .hp-icon { background: linear-gradient(135deg, #10B981, #059669); }
.hero-product-link.tsm .hp-icon { background: linear-gradient(135deg, #A78BFA, #7C3AED); }
.hero-product-link.os .hp-icon { background: linear-gradient(135deg, #FDBA74, #FB923C); }
.hero-product-link .hp-title {
  color: #F8FAFC;
  font-size: 0.8rem;
  font-weight: 700;
}
.hero-product-link .hp-sub {
  color: #94A3B8;
  font-size: 0.68rem;
  margin-top: 0.1rem;
}
.hero-product-link .hp-arrow {
  color: #7DD3FC;
  font-size: 0.8rem;
}
.hero-product-meta {
  margin-top: 0.9rem;
  padding: 0.9rem 1rem;
  border-radius: 12px;
  background: rgba(7,10,18,0.72);
  border: 1px solid rgba(255,255,255,0.08);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.hero-pmeta-title {
  color: #F8FAFC;
  font-size: 0.92rem;
  font-weight: 700;
}
.hero-pmeta-desc {
  color: #94A3B8;
  font-size: 0.74rem;
  margin-top: 0.2rem;
}
.hero-pmeta-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.6rem 0.9rem;
  border-radius: 9px;
  background: #0F62FE;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 600;
  white-space: nowrap;
}
.hero-pmeta-btn:hover { background: #0B50D9; }
@media (max-width: 767px) {
  .hero-product-links { grid-template-columns: 1fr; }
  .hero-main-actions { flex-direction: column; align-items: flex-start; }
}

/* ============================================================
   PRODUCT MATRIX — 4 products with category grouping
   ============================================================ */

/* Category header */
.product-category {
  margin-bottom: 1.5rem;
  padding-bottom: 0.875rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.product-category-label {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  flex-wrap: wrap;
}
.product-category-label .cat-index {
  font-family: 'JetBrains Mono', 'SF Mono', ui-monospace, monospace;
  font-size: 0.75rem;
  font-weight: 500;
  color: #6B7280;
  letter-spacing: 0.08em;
}
.product-category-label .cat-name {
  font-size: 1rem;
  font-weight: 600;
  color: #FFFFFF;
  letter-spacing: -0.01em;
}
.product-category-label .cat-desc {
  font-size: 0.8125rem;
  color: #6B7280;
  font-weight: 400;
  margin-left: auto;
}

/* Compact product card variant */
.product-card.compact {
  padding: 1.5rem 1.5rem 1.25rem !important;
  display: flex;
  flex-direction: column;
  gap: 0;
  min-height: 520px;
}
.product-card.compact h3 {
  font-size: 1.25rem !important;
  margin: 0.5rem 0 0.625rem !important;
}
.product-card.compact .product-desc {
  font-size: 0.875rem !important;
  line-height: 1.6 !important;
  margin-bottom: 1rem !important;
}
.product-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.product-card-github a,
.product-lock {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: #9CA3AF;
  font-size: 0.875rem;
  transition: all 0.18s ease;
}
.product-card-github a:hover {
  background: rgba(255, 255, 255, 0.1);
  color: #FFFFFF;
  border-color: rgba(255, 255, 255, 0.18);
}
.product-lock {
  color: #6B7280;
  font-size: 0.75rem;
}

/* TSM / OS badges */
.product-badge.tsm {
  background: rgba(168, 85, 247, 0.12) !important;
  color: #C4B5FD !important;
  border: 1px solid rgba(196, 181, 253, 0.25);
}
.product-badge.os {
  background: rgba(251, 146, 60, 0.12) !important;
  color: #FDBA74 !important;
  border: 1px solid rgba(253, 186, 116, 0.25);
}

/* Compact terminal & desktop mocks */
.product-card.compact .terminal-mock,
.product-card.compact .desktop-mock {
  margin: 0.75rem 0 1rem !important;
}
.product-card.compact .terminal-body {
  padding: 0.75rem 0.875rem !important;
  font-size: 0.75rem !important;
  line-height: 1.65 !important;
  min-height: 140px;
}
.product-card.compact .desktop-body {
  height: 160px !important;
}
.product-card.compact .desktop-sidebar {
  width: 110px !important;
  padding: 0.5rem 0.3125rem !important;
}
.product-card.compact .desktop-sidebar-item {
  font-size: 0.6875rem !important;
  padding: 0.3125rem 0.5rem !important;
}
.product-card.compact .desktop-msg {
  font-size: 0.6875rem !important;
  padding: 0.375rem 0.5rem !important;
}
.product-card.compact .product-features {
  margin: 0.75rem 0 1rem !important;
}
.product-card.compact .feature-tag {
  font-size: 0.6875rem !important;
  padding: 0.25rem 0.5rem !important;
}

/* Product footer (tech stack + link) */
.product-footer {
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
}
.tech-stack {
  font-size: 0.75rem;
  color: #6B7280;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
}
.tech-stack i { color: #9CA3AF; }
.product-card.compact .product-link {
  font-size: 0.8125rem !important;
  padding: 0 !important;
  border: none !important;
}

/* ============================================================
   TSM MOCK — Monitoring Dashboard
   ============================================================ */
.tsm-mock {
  background: #0A0E1A;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  overflow: hidden;
  margin: 0.75rem 0 1rem;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
}
.tsm-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 0.75rem;
  background: rgba(139, 92, 246, 0.08);
  border-bottom: 1px solid rgba(139, 92, 246, 0.12);
}
.tsm-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  color: #E5E7EB;
  font-weight: 500;
}
.tsm-title i { color: #C4B5FD; font-size: 0.75rem; }
.tsm-pulse {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.6875rem;
  font-weight: 600;
  color: #34D399;
  letter-spacing: 0.08em;
}
.tsm-pulse .pulse-dot {
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: #34D399;
  box-shadow: 0 0 0 0 rgba(52, 211, 153, 0.6);
  animation: tsm-pulse 1.8s infinite;
}
@keyframes tsm-pulse {
  0% { box-shadow: 0 0 0 0 rgba(52, 211, 153, 0.6); }
  70% { box-shadow: 0 0 0 6px rgba(52, 211, 153, 0); }
  100% { box-shadow: 0 0 0 0 rgba(52, 211, 153, 0); }
}
.tsm-body { padding: 0.75rem 0.875rem; }
.tsm-kpis {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}
.tsm-kpi {
  padding: 0.5rem 0.625rem;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 6px;
}
.tsm-kpi.warn {
  background: rgba(251, 146, 60, 0.1);
  border-color: rgba(251, 146, 60, 0.22);
}
.tsm-kpi .k-num {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 1.125rem;
  font-weight: 600;
  color: #FFFFFF;
  line-height: 1.1;
}
.tsm-kpi.warn .k-num { color: #FDBA74; }
.tsm-kpi .k-unit {
  font-size: 0.625rem;
  color: #9CA3AF;
  margin-left: 0.125rem;
  font-weight: 500;
}
.tsm-kpi .k-label {
  font-size: 0.625rem;
  color: #9CA3AF;
  margin-top: 0.125rem;
  letter-spacing: 0.02em;
}
.tsm-chart {
  margin-bottom: 0.625rem;
  padding: 0.25rem 0;
}
.tsm-chart svg {
  width: 100%;
  height: 40px;
  display: block;
}
.tsm-alerts {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.tsm-alert {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.6875rem;
  color: #CBD5E1;
  padding: 0.25rem 0.375rem;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.02);
}
.tsm-alert .a-level {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border-radius: 3px;
  font-size: 0.625rem;
  font-weight: 700;
  flex-shrink: 0;
}
.tsm-alert.orange .a-level { background: #F97316; color: #FFF; }
.tsm-alert.yellow .a-level { background: #FACC15; color: #1F2937; }
.tsm-alert.red .a-level { background: #EF4444; color: #FFF; }
.tsm-alert.blue .a-level { background: #3B82F6; color: #FFF; }

/* ============================================================
   OS MOCK — Business Operations Dashboard (redesigned)
   ============================================================ */
.os-mock {
  background: linear-gradient(180deg, #0D1220 0%, #0A0E1A 100%);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  overflow: hidden;
  margin: 0.75rem 0 1rem;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
}
/* Topbar */
.os-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.4375rem 0.75rem;
  background: rgba(251, 146, 60, 0.04);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  gap: 0.5rem;
}
.os-logo {
  display: inline-flex;
  align-items: center;
  gap: 0.4375rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: #F9FAFB;
  letter-spacing: 0.02em;
}
.os-logo-mark {
  width: 16px;
  height: 16px;
  border-radius: 4px;
  background: linear-gradient(135deg, #FB923C, #F97316);
  color: #FFFFFF;
  font-size: 0.625rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 6px rgba(251, 146, 60, 0.35);
}
.os-topbar-right {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}
.os-search {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.625rem;
  color: #6B7280;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
  padding: 0.1875rem 0.5rem;
  border-radius: 4px;
}
.os-search i { font-size: 0.5625rem; }
.os-user {
  font-size: 0.625rem;
  color: #D1D5DB;
  display: inline-flex;
  align-items: center;
  gap: 0.3125rem;
  padding: 0.1875rem 0.4375rem;
  background: rgba(255, 255, 255, 0.03);
  border-radius: 4px;
}
.os-user .user-dot {
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: #34D399;
  box-shadow: 0 0 6px rgba(52, 211, 153, 0.6);
}

/* Body */
.os-body { display: flex; height: 210px; }

/* Sidebar */
.os-sidebar {
  width: 118px;
  background: rgba(0, 0, 0, 0.2);
  border-right: 1px solid rgba(255, 255, 255, 0.05);
  padding: 0.5rem 0.3125rem;
  overflow: hidden;
}
.os-nav-group {
  font-size: 0.5625rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #4B5563;
  padding: 0.25rem 0.5rem 0.1875rem;
  text-transform: uppercase;
}
.os-nav-group:not(:first-child) { margin-top: 0.25rem; }
.os-nav-item {
  padding: 0.3125rem 0.5rem;
  font-size: 0.6875rem;
  color: #9CA3AF;
  border-radius: 4px;
  margin-bottom: 1px;
  display: flex;
  align-items: center;
  gap: 0.375rem;
  position: relative;
}
.os-nav-item i {
  width: 12px;
  font-size: 0.625rem;
  color: #6B7280;
}
.os-nav-item.active {
  background: linear-gradient(90deg, rgba(251, 146, 60, 0.18), rgba(251, 146, 60, 0.06));
  color: #FDBA74;
  box-shadow: inset 2px 0 0 #FB923C;
}
.os-nav-item.active i { color: #FDBA74; }
.os-nav-item .nav-badge {
  margin-left: auto;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 0.5625rem;
  background: rgba(255, 255, 255, 0.06);
  color: #D1D5DB;
  padding: 0.0625rem 0.3125rem;
  border-radius: 999px;
  line-height: 1.3;
}
.os-nav-item .nav-dot {
  margin-left: auto;
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: #F97316;
  box-shadow: 0 0 6px rgba(249, 115, 22, 0.8);
  animation: os-dot-pulse 1.6s infinite;
}
@keyframes os-dot-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(0.85); }
}

/* Main */
.os-main {
  flex: 1;
  padding: 0.625rem 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  overflow: hidden;
}

/* KPI row with sparklines */
.os-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.4375rem;
}
.os-card {
  padding: 0.4375rem 0.5rem 0.3125rem;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 6px;
  position: relative;
  overflow: hidden;
}
.os-card-label {
  font-size: 0.5625rem;
  color: #9CA3AF;
  letter-spacing: 0.02em;
  margin-bottom: 0.125rem;
}
.os-card-value {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 0.9375rem;
  font-weight: 600;
  color: #FFFFFF;
  line-height: 1.15;
}
.os-card-unit {
  font-size: 0.625rem;
  color: #9CA3AF;
  margin-left: 0.1875rem;
  font-weight: 500;
}
.os-spark {
  width: 100%;
  height: 14px;
  display: block;
  margin-top: 0.1875rem;
  opacity: 0.85;
}

/* AI Activity Feed */
.os-activity {
  flex: 1;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 6px;
  padding: 0.4375rem 0.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.1875rem;
  overflow: hidden;
  position: relative;
}
.os-activity::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 0% 0%, rgba(168, 85, 247, 0.06), transparent 40%);
  pointer-events: none;
}
.os-activity-head {
  font-size: 0.625rem;
  color: #C4B5FD;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 0.3125rem;
  letter-spacing: 0.04em;
  margin-bottom: 0.125rem;
  position: relative;
}
.os-activity-head i {
  color: #FDBA74;
  font-size: 0.625rem;
}
.os-activity-item {
  display: flex;
  align-items: center;
  gap: 0.4375rem;
  font-size: 0.625rem;
  color: #CBD5E1;
  padding: 0.1875rem 0.25rem;
  border-radius: 4px;
  position: relative;
}
.os-activity-item:hover { background: rgba(255, 255, 255, 0.02); }
.act-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 0.5rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 0.125rem 0.3125rem;
  border-radius: 3px;
  min-width: 34px;
  flex-shrink: 0;
}
.act-tag.ppt {
  background: rgba(251, 146, 60, 0.18);
  color: #FDBA74;
  border: 1px solid rgba(251, 146, 60, 0.3);
}
.act-tag.algo {
  background: rgba(96, 165, 250, 0.18);
  color: #93C5FD;
  border: 1px solid rgba(96, 165, 250, 0.3);
}
.act-tag.rag {
  background: rgba(168, 85, 247, 0.18);
  color: #C4B5FD;
  border: 1px solid rgba(168, 85, 247, 0.3);
}
.act-text {
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.act-time {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 0.5625rem;
  color: #6B7280;
  flex-shrink: 0;
}

/* Responsive */
@media (max-width: 768px) {
  .product-card.compact { min-height: auto; }
  .product-category-label .cat-desc { margin-left: 0; flex-basis: 100%; }
}

/* ============================================================
   WHY US — 为什么选择睿威（Anthropic style，衔接产品矩阵）
   ============================================================ */
.why-us {
  position: relative;
  overflow: hidden;
  padding: 6rem 0;
  background: var(--v2-bg-dark, #0B0D17);
  color: #E5E7EB;
}
.why-us::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 55% 45% at 85% 10%, rgba(15, 98, 254, 0.18), transparent 70%),
    radial-gradient(ellipse 45% 45% at 10% 95%, rgba(139, 92, 246, 0.12), transparent 70%);
  pointer-events: none;
}
/* .grid-lines 复用全局定义 */
.why-us .section-heading h2 {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}
.why-us .section-heading p {
  color: #94A3B8 !important;
}
.why-us .section-heading h2::before { color: #7DD3FC !important; }

/* 工程服务底蕴 · 4 项精炼数字（WHY US 头部） */
.why-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin: 2.5rem 0 3rem;
  padding: 1.5rem 1.25rem;
  background: linear-gradient(180deg, rgba(255,255,255,0.04) 0%, rgba(255,255,255,0.015) 100%);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 16px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.why-stat {
  position: relative;
  text-align: center;
  padding: 0.25rem 0.5rem;
}
.why-stat + .why-stat::before {
  content: '';
  position: absolute;
  left: 0;
  top: 12%;
  bottom: 12%;
  width: 1px;
  background: linear-gradient(180deg, transparent, rgba(125,211,252,0.25), transparent);
}
.why-stat-num {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 2.25rem;
  font-weight: 800;
  line-height: 1;
  background: linear-gradient(135deg, #7DD3FC 0%, #A78BFA 55%, #FB923C 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  letter-spacing: -0.02em;
}
.why-stat-label {
  margin-top: 0.5rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: #E5E7EB;
  letter-spacing: 0.02em;
}
.why-stat-sub {
  margin-top: 0.25rem;
  font-size: 0.75rem;
  color: #94A3B8;
  line-height: 1.4;
}
@media (max-width: 767px) {
  .why-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; padding: 1rem; }
  .why-stat + .why-stat::before { display: none; }
  .why-stat-num { font-size: 1.85rem; }
}

/* ============================================================
   CORE STRENGTHS — 核心优势（浅色缓冲段）
   ============================================================ */
.core-strengths { position: relative; }
.core-strengths .section-heading h2 { color: #0F172A; }
.core-strengths .section-heading p  { color: #475569; }

.strengths-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.5rem;
  margin-top: 2.5rem;
}
@media (max-width: 1023px) { .strengths-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px)  { .strengths-grid { grid-template-columns: 1fr; } }

.strength-card {
  position: relative;
  padding: 1.75rem 1.5rem;
  background: #FFFFFF;
  border: 1px solid rgba(15, 23, 42, 0.06);
  border-radius: 16px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 8px 24px -12px rgba(15, 23, 42, 0.08);
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.35s, border-color 0.35s;
  overflow: hidden;
}
.strength-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: var(--brand-gradient, linear-gradient(90deg, #0F62FE, #FB923C));
  opacity: 0.85;
}
.strength-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 2px 4px rgba(15, 23, 42, 0.05), 0 16px 40px -16px rgba(15, 23, 42, 0.18);
  border-color: rgba(15, 23, 42, 0.1);
}

.strength-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px; height: 52px;
  border-radius: 14px;
  color: #FFFFFF;
  font-size: 1.25rem;
  margin-bottom: 1.15rem;
  box-shadow: 0 8px 18px -8px currentColor;
}
.strength-icon-qual  { background: linear-gradient(135deg, #0F62FE 0%, #6366F1 100%); }
.strength-icon-spec  { background: linear-gradient(135deg, #10B981 0%, #059669 100%); }
.strength-icon-scene { background: linear-gradient(135deg, #8B5CF6 0%, #A78BFA 100%); }
.strength-icon-team  { background: linear-gradient(135deg, #FB923C 0%, #F59E0B 100%); }

.strength-eyebrow {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: #64748B;
  margin-bottom: 0.35rem;
}
.strength-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: #0F172A;
  margin-bottom: 0.9rem;
}
.strength-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.strength-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  padding: 0.4rem 0;
  font-size: 0.9rem;
  color: #334155;
  line-height: 1.5;
  border-top: 1px dashed rgba(15, 23, 42, 0.08);
}
.strength-list li:first-child { border-top: 0; padding-top: 0.15rem; }
.strength-list li i {
  flex-shrink: 0;
  margin-top: 0.25rem;
  font-size: 0.7rem;
  color: #10B981;
}
.strength-list li b { color: #0F172A; font-weight: 600; }

/* ============================================================
   MISSION · VISION — 公司使命与目标（深色 · 玻璃卡）
   ============================================================ */
.mission-vision {
  position: relative;
  overflow: hidden;
  padding: 6rem 0;
  background: var(--v2-bg-dark, #0B0D17);
  color: #E5E7EB;
}
.mission-vision::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 50% 40% at 15% 15%, rgba(99, 102, 241, 0.16), transparent 70%),
    radial-gradient(ellipse 50% 40% at 88% 88%, rgba(251, 146, 60, 0.12), transparent 70%);
  pointer-events: none;
}
.mission-vision .section-heading h2 { color: #FFFFFF !important; -webkit-text-fill-color:#FFFFFF !important; }
.mission-vision .section-heading p  { color: #94A3B8 !important; }
.mission-vision .section-heading h2::before { color: #A78BFA !important; }

.mv-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
  margin-top: 3rem;
}
@media (max-width: 1023px) { .mv-grid { grid-template-columns: 1fr; } }

.mv-card {
  position: relative;
  padding: 2rem 1.75rem;
  background: linear-gradient(180deg, rgba(255,255,255,0.05) 0%, rgba(255,255,255,0.015) 100%);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 20px;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  transition: transform 0.4s cubic-bezier(0.4,0,0.2,1), border-color 0.4s, box-shadow 0.4s;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.mv-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, #7DD3FC, #A78BFA, #FB923C);
  opacity: 0.7;
}
.mv-card-mid {
  background: linear-gradient(180deg, rgba(167,139,250,0.08) 0%, rgba(255,255,255,0.02) 100%);
  border-color: rgba(167,139,250,0.2);
}
.mv-card:hover {
  transform: translateY(-4px);
  border-color: rgba(255,255,255,0.16);
  box-shadow: 0 20px 60px -20px rgba(99,102,241,0.25);
}

.mv-card-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.25rem;
}
.mv-eyebrow {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: #94A3B8;
}
.mv-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px; height: 44px;
  border-radius: 12px;
  color: #FFFFFF;
  font-size: 1.05rem;
}
.mv-icon-mission { background: linear-gradient(135deg, #0F62FE 0%, #6366F1 100%); box-shadow: 0 8px 18px -8px rgba(99,102,241,0.8); }
.mv-icon-goal    { background: linear-gradient(135deg, #8B5CF6 0%, #A78BFA 100%); box-shadow: 0 8px 18px -8px rgba(167,139,250,0.8); }
.mv-icon-vision  { background: linear-gradient(135deg, #FB923C 0%, #F59E0B 100%); box-shadow: 0 8px 18px -8px rgba(251,146,60,0.8); }

.mv-title {
  font-size: 1.35rem;
  font-weight: 700;
  color: #FFFFFF;
  margin-bottom: 0.85rem;
  letter-spacing: 0.02em;
}
.mv-quote {
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.35;
  margin-bottom: 1rem;
  background: linear-gradient(135deg, #7DD3FC 0%, #A78BFA 55%, #FB923C 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.mv-desc {
  font-size: 0.92rem;
  line-height: 1.72;
  color: #CBD5E1;
  margin-bottom: 1.25rem;
  flex: 1;
}
.mv-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.mv-tag {
  display: inline-block;
  padding: 0.3rem 0.75rem;
  font-size: 0.75rem;
  font-weight: 500;
  color: #CBD5E1;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 999px;
}

/* ============================================================
   COMPANY INTRO — 公司简介（深色 + 左文右徽章板）
   ============================================================ */
.company-intro {
  position: relative;
  overflow: hidden;
  padding: 6rem 0;
  background: linear-gradient(180deg, #0B0D17 0%, #0E1428 100%);
  color: #E5E7EB;
}
.company-intro::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 50% 40% at 80% 20%, rgba(15, 98, 254, 0.2), transparent 70%),
    radial-gradient(ellipse 45% 35% at 15% 90%, rgba(251, 146, 60, 0.12), transparent 70%);
  pointer-events: none;
}
.company-intro .section-heading h2 { color: #FFFFFF !important; -webkit-text-fill-color:#FFFFFF !important; }
.company-intro .section-heading p  { color: #94A3B8 !important; }
.company-intro .section-heading h2::before { color: #7DD3FC !important; }

.ci-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 2.5rem;
  margin-top: 3rem;
  align-items: stretch;
}
@media (max-width: 1023px) { .ci-grid { grid-template-columns: 1fr; } }

.ci-body { display: flex; flex-direction: column; gap: 1.25rem; }
.ci-name {
  font-size: 1.85rem;
  font-weight: 800;
  color: #FFFFFF;
  line-height: 1.25;
  letter-spacing: -0.01em;
}
.ci-meta { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.ci-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.4rem 0.85rem;
  font-size: 0.78rem;
  color: #CBD5E1;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 999px;
}
.ci-badge i { color: #7DD3FC; font-size: 0.8rem; }

.ci-desc p {
  font-size: 0.95rem;
  line-height: 1.85;
  color: #D1D5DB;
}

.ci-points {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem 1rem;
}
@media (max-width: 640px) { .ci-points { grid-template-columns: 1fr; } }
.ci-points li {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  font-size: 0.88rem;
  color: #CBD5E1;
  line-height: 1.55;
}
.ci-points li i { color: #34D399; font-size: 0.9rem; margin-top: 0.25rem; flex-shrink: 0; }
.ci-points li b { color: #FFFFFF; font-weight: 600; }

.ci-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 0.5rem; }

.ci-side {
  padding: 1.75rem 1.5rem;
  background: linear-gradient(180deg, rgba(255,255,255,0.04) 0%, rgba(255,255,255,0.015) 100%);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 20px;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.ci-side-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 0.75rem;
  border-bottom: 1px dashed rgba(255,255,255,0.1);
  margin-bottom: 0.5rem;
}
.ci-side-title {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: #7DD3FC;
}
.ci-side-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: #34D399;
  box-shadow: 0 0 0 4px rgba(52,211,153,0.2);
}

.ci-cert {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.7rem 0.4rem;
  border-bottom: 1px solid rgba(255,255,255,0.05);
}
.ci-cert:last-of-type { border-bottom: none; }
.ci-cert-ico {
  flex-shrink: 0;
  width: 42px; height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  color: #FFFFFF;
  font-size: 1rem;
}
.ci-cert-ico-1 { background: linear-gradient(135deg, #0F62FE 0%, #6366F1 100%); }
.ci-cert-ico-2 { background: linear-gradient(135deg, #10B981 0%, #059669 100%); }
.ci-cert-ico-3 { background: linear-gradient(135deg, #8B5CF6 0%, #A78BFA 100%); }
.ci-cert-ico-4 { background: linear-gradient(135deg, #FB923C 0%, #F59E0B 100%); }
.ci-cert-title { font-size: 0.92rem; font-weight: 600; color: #FFFFFF; }
.ci-cert-sub   { font-size: 0.72rem; color: #94A3B8; margin-top: 0.15rem; letter-spacing: 0.01em; }

.ci-brand-strip {
  margin-top: 0.5rem;
  padding: 0.9rem 1rem;
  background: linear-gradient(135deg, rgba(15,98,254,0.15), rgba(251,146,60,0.12));
  border: 1px solid rgba(125,211,252,0.2);
  border-radius: 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.ci-brand-key { font-size: 0.72rem; color: #94A3B8; letter-spacing: 0.08em; }
.ci-brand-val {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 0.95rem;
  font-weight: 700;
  background: linear-gradient(135deg, #7DD3FC, #A78BFA, #FB923C);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* ============================================================
   HERO SHOWCASE — 首屏右侧卡片（产品 / 服务 / 企业 三合一结构）
   ============================================================ */
.hero-showcase {
  position: relative;
  width: 100%;
  max-width: 480px;
  margin-left: auto;
  background: linear-gradient(180deg, rgba(17, 24, 39, 0.82) 0%, rgba(11, 13, 23, 0.92) 100%);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 22px;
  overflow: hidden;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  box-shadow:
    0 30px 80px -20px rgba(0, 0, 0, 0.55),
    0 0 0 1px rgba(255, 255, 255, 0.04) inset;
  animation: hs-float 6s ease-in-out infinite;
}
@keyframes hs-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}
.hero-showcase::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, #7DD3FC, #A78BFA, #FB923C, transparent);
  z-index: 3;
}

/* 顶部统一 16:10 主图（自动截取主体） */
.hs-media {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #0B0D17;
}
.hs-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}
.hero-showcase:hover .hs-media img { transform: scale(1.04); }

.hs-media-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(11,13,23,0.15) 0%, rgba(11,13,23,0.6) 70%, rgba(11,13,23,0.92) 100%);
  pointer-events: none;
}

/* 图上角标 */
.hs-head {
  position: absolute;
  top: 1rem;
  left: 1rem;
  right: 1rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  z-index: 2;
}
.hs-eyebrow {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: #FFFFFF;
  padding: 0.35rem 0.7rem;
  background: rgba(15, 98, 254, 0.85);
  border-radius: 999px;
  text-transform: uppercase;
  backdrop-filter: blur(8px);
}
.hero-showcase-service .hs-eyebrow { background: rgba(16, 185, 129, 0.85); }
.hero-showcase-about   .hs-eyebrow { background: rgba(251, 146, 60, 0.85); }

.hs-live,
.hs-tag-b,
.hs-year {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #FFFFFF;
  padding: 0.35rem 0.7rem;
  background: rgba(0, 0, 0, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 999px;
  backdrop-filter: blur(8px);
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.hs-live i {
  font-size: 0.55rem;
  color: #34D399;
  animation: hs-pulse 1.8s ease-in-out infinite;
}
@keyframes hs-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.35; } }

/* 正文 */
.hs-body {
  padding: 1.3rem 1.4rem 1.4rem;
  color: #E5E7EB;
}
.hs-title {
  font-size: 1.25rem;
  font-weight: 800;
  color: #FFFFFF;
  line-height: 1.35;
  margin-bottom: 0.5rem;
  letter-spacing: -0.01em;
}
.hs-desc {
  font-size: 0.88rem;
  line-height: 1.6;
  color: #CBD5E1;
  margin-bottom: 1rem;
}

/* 产品：3 格参数 */
.hs-specs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
  margin-bottom: 1rem;
}
.hs-spec {
  padding: 0.55rem 0.4rem;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  text-align: center;
}
.hs-spec-k {
  display: block;
  font-size: 0.65rem;
  color: #94A3B8;
  letter-spacing: 0.08em;
  margin-bottom: 0.2rem;
  text-transform: uppercase;
}
.hs-spec-v {
  display: block;
  font-size: 0.82rem;
  font-weight: 700;
  color: #FFFFFF;
}

/* 服务：场景列表 */
.hs-scenes {
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.hs-scenes li {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.82rem;
  color: #CBD5E1;
}
.hs-scenes li i {
  flex-shrink: 0;
  width: 26px; height: 26px;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(16, 185, 129, 0.15);
  color: #34D399;
  border-radius: 7px;
  font-size: 0.75rem;
}

/* 企业：3 格 KPI + 资质 chip */
.hs-kpi {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
  margin-bottom: 0.85rem;
}
.hs-kpi-item {
  padding: 0.55rem 0.3rem;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  text-align: center;
}
.hs-kpi-n {
  font-size: 1.15rem;
  font-weight: 800;
  background: linear-gradient(135deg, #7DD3FC, #A78BFA, #FB923C);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.hs-kpi-l {
  font-size: 0.68rem;
  color: #94A3B8;
  margin-top: 0.15rem;
}
.hs-creds {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 1rem;
}
.hs-cred {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.65rem;
  font-size: 0.72rem;
  color: #CBD5E1;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 999px;
}
.hs-cred i { color: #FB923C; font-size: 0.75rem; }

/* CTA 按钮 */
.hs-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.7rem 1.1rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: #FFFFFF;
  background: linear-gradient(135deg, #0F62FE 0%, #6366F1 100%);
  border-radius: 10px;
  text-decoration: none;
  transition: transform 0.25s, box-shadow 0.25s, filter 0.25s;
  box-shadow: 0 8px 24px -8px rgba(15, 98, 254, 0.6);
}
.hero-showcase-service .hs-cta { background: linear-gradient(135deg, #10B981 0%, #059669 100%); box-shadow: 0 8px 24px -8px rgba(16,185,129,0.6); }
.hero-showcase-about   .hs-cta { background: linear-gradient(135deg, #FB923C 0%, #F59E0B 100%); box-shadow: 0 8px 24px -8px rgba(251,146,60,0.6); }
.hs-cta:hover { transform: translateY(-2px); filter: brightness(1.08); color: #FFFFFF; }
.hs-cta i { transition: transform 0.25s; }
.hs-cta:hover i { transform: translateX(4px); }

/* 响应式：窄屏把卡片收小 */
@media (max-width: 1279px) {
  .hero-showcase { max-width: 420px; }
  .hs-body { padding: 1.1rem 1.15rem 1.2rem; }
}

.why-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
}
@media (max-width: 1023px) {
  .why-grid { grid-template-columns: 1fr; }
}

.why-card {
  position: relative;
  padding: 1.75rem 1.5rem 1.5rem;
  background: linear-gradient(180deg, rgba(255,255,255,0.04) 0%, rgba(255,255,255,0.01) 100%);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 18px;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.4s, box-shadow 0.4s;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.why-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent 0%, rgba(96,165,250,0.65) 50%, transparent 100%);
  opacity: 0;
  transition: opacity 0.4s;
}
.why-card:hover {
  transform: translateY(-6px);
  border-color: rgba(96,165,250,0.3);
  box-shadow: 0 24px 56px -18px rgba(15,98,254,0.35);
}
.why-card:hover::before { opacity: 1; }

.why-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.25rem;
}
.why-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.25rem 0.55rem;
  border-radius: 999px;
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  border: 1px solid;
}
.why-tag-dot {
  width: 6px; height: 6px; border-radius: 999px;
}
.why-tag-scene { color: #60A5FA; border-color: rgba(96,165,250,0.3); background: rgba(15,98,254,0.08); }
.why-tag-scene .why-tag-dot { background: #60A5FA; box-shadow: 0 0 6px rgba(96,165,250,0.8); }
.why-tag-trust { color: #34D399; border-color: rgba(52,211,153,0.3); background: rgba(16,185,129,0.08); }
.why-tag-trust .why-tag-dot { background: #34D399; box-shadow: 0 0 6px rgba(52,211,153,0.8); }
.why-tag-loop { color: #FB923C; border-color: rgba(251,146,60,0.3); background: rgba(251,146,60,0.08); }
.why-tag-loop .why-tag-dot { background: #FB923C; box-shadow: 0 0 6px rgba(251,146,60,0.8); }

.why-metric {
  font-family: 'JetBrains Mono', 'SF Mono', ui-monospace, monospace;
  line-height: 1;
  letter-spacing: -0.02em;
}
.why-metric-num {
  font-size: 2rem;
  font-weight: 700;
  color: #F8FAFC;
  background: linear-gradient(180deg, #F8FAFC 0%, #CBD5E1 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.why-metric-plus {
  font-size: 1rem;
  color: #60A5FA;
  margin-left: 0.1rem;
  font-weight: 600;
  -webkit-text-fill-color: #60A5FA;
}

.why-title {
  font-size: 1.375rem;
  font-weight: 700;
  color: #F8FAFC;
  margin-bottom: 0.5rem;
  letter-spacing: -0.01em;
}
.why-desc {
  font-size: 0.875rem;
  line-height: 1.65;
  color: #9CA3AF;
  margin-bottom: 1.25rem;
  min-height: 2.9em;
}

/* ---- Visual containers ---- */
.why-visual {
  margin-top: auto;
  background: linear-gradient(180deg, #0B1020 0%, #060912 100%);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 12px;
  padding: 0.875rem 0.875rem;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 12px;
  line-height: 1.6;
}

/* Visual 1: skill list */
.why-visual-list { min-height: 160px; }
.why-visual-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 0.5rem;
  margin-bottom: 0.5rem;
  border-bottom: 1px solid rgba(255,255,255,0.05);
}
.why-visual-title {
  color: #60A5FA;
  font-weight: 600;
  font-size: 11px;
}
.why-visual-count {
  color: #64748B;
  font-size: 10px;
  padding: 0.1rem 0.4rem;
  background: rgba(15,98,254,0.12);
  border-radius: 4px;
}
.why-skill {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.35rem 0;
  font-size: 11.5px;
  color: #CBD5E1;
}
.why-skill-ico {
  width: 22px; height: 22px;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  flex-shrink: 0;
}
.skl-ico-1 { background: rgba(15,98,254,0.15); color: #60A5FA; }
.skl-ico-2 { background: rgba(139,92,246,0.15); color: #A78BFA; }
.skl-ico-3 { background: rgba(251,146,60,0.15); color: #FB923C; }
.why-skill-name { flex: 1; }
.why-skill-meta { color: #475569; font-size: 10px; }
.why-skill-more {
  color: #475569;
  font-style: italic;
  padding-top: 0.4rem;
  font-size: 10.5px;
}

/* Visual 2: code console */
.why-visual-code { min-height: 160px; color: #D1D5DB; }
.why-code-ln { padding: 0.1rem 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.why-code-prompt { color: #06B6D4; font-weight: 600; }
.why-code-cmd { color: #F3F4F6; font-weight: 500; }
.why-code-arg { color: #FBBF24; }
.why-code-ok { color: #34D399; display: inline-block; width: 1rem; }
.why-code-eng { color: #7DD3FC; font-weight: 500; }
.why-code-muted { color: #6B7280; }
.why-code-hl {
  margin-top: 0.35rem;
  padding-top: 0.45rem;
  border-top: 1px dashed rgba(52,211,153,0.2);
  color: #34D399;
  font-weight: 600;
}

/* Visual 3: loop svg */
.why-visual-loop {
  min-height: 160px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0.75rem;
}
.why-visual-loop svg {
  width: 100%;
  max-width: 240px;
  height: auto;
}
.why-loop-node { transition: transform 0.3s; }
.why-card:hover .why-loop-node {
  transform-origin: center;
}
.why-loop-caption {
  margin-top: 0.5rem;
  font-size: 10.5px;
  color: #64748B;
  letter-spacing: 0.05em;
}

@media (max-width: 1023px) {
  .why-card { padding: 1.5rem 1.25rem 1.25rem; }
  .why-desc { min-height: 0; }
}

/* ============================================
   LANDING SECTION — 痛点 + 业务全景
   ============================================ */
.biz-landing {
  position: relative;
  overflow: hidden;
  padding: 6rem 0;
  background:
    radial-gradient(circle at 10% 0%, rgba(15,98,254,0.14) 0%, transparent 28%),
    radial-gradient(circle at 90% 10%, rgba(139,92,246,0.12) 0%, transparent 30%),
    linear-gradient(180deg, #07101F 0%, #0C162A 100%);
}
.biz-landing::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.028) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.028) 1px, transparent 1px);
  background-size: 36px 36px;
  mask-image: radial-gradient(circle at center, #000 40%, transparent 100%);
  -webkit-mask-image: radial-gradient(circle at center, #000 40%, transparent 100%);
  pointer-events: none;
}
.biz-landing .section-heading h2 {
  color: #F8FAFC !important;
  -webkit-text-fill-color: #F8FAFC !important;
}
.biz-landing .section-heading p {
  color: #A5B4C7 !important;
}
.biz-landing .section-heading h2::before { color: #7DD3FC !important; }
.biz-landing-grid {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  gap: 1.5rem;
  align-items: stretch;
}
.biz-story-card,
.biz-flow-card {
  position: relative;
  z-index: 1;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(10, 16, 31, 0.72);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 18px 50px rgba(2,6,23,0.28);
}
.biz-story-card { padding: 1.5rem; }
.biz-flow-card { padding: 1.35rem; }
.biz-story-title {
  color: #F8FAFC;
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1.35;
  margin-bottom: 0.6rem;
}
.biz-story-desc {
  color: #A5B4C7;
  font-size: 0.92rem;
  line-height: 1.8;
}
.biz-stat-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75rem;
  margin: 1.25rem 0 1.1rem;
}
.biz-stat {
  border-radius: 14px;
  padding: 0.9rem 0.85rem;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.06);
}
.biz-stat .num {
  font-size: 1.25rem;
  font-weight: 800;
  color: #fff;
}
.biz-stat .lab {
  margin-top: 0.2rem;
  font-size: 0.72rem;
  color: #94A3B8;
}
.biz-pain-list {
  display: grid;
  gap: 0.8rem;
}
.biz-pain-line {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 0.8rem;
  align-items: start;
  padding: 0.8rem;
  border-radius: 14px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.06);
}
.biz-pain-ico {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(15,98,254,0.25), rgba(96,165,250,0.12));
  color: #7DD3FC;
}
.biz-pain-line h4 {
  color: #F8FAFC;
  font-size: 0.92rem;
  font-weight: 700;
  margin-bottom: 0.25rem;
}
.biz-pain-line p {
  color: #94A3B8;
  font-size: 0.78rem;
  line-height: 1.65;
}
.biz-flow-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
}
.biz-flow-head h3 {
  color: #F8FAFC;
  font-size: 1.1rem;
  font-weight: 800;
}
.biz-flow-head span {
  font-size: 0.68rem;
  color: #7DD3FC;
  padding: 0.3rem 0.7rem;
  border-radius: 999px;
  border: 1px solid rgba(15,98,254,0.25);
  background: rgba(15,98,254,0.08);
}
.biz-panorama {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
}
.biz-pano-stage {
  text-align: center;
  padding: 0.8rem 0.6rem;
  border-radius: 14px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.06);
  transition: var(--transition-base);
}
.biz-pano-stage:hover {
  transform: translateY(-2px);
  border-color: rgba(15,98,254,0.28);
}
.biz-pano-ico {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  margin: 0 auto 0.55rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(15,98,254,0.12);
  color: #60A5FA;
}
.biz-pano-stage h5 {
  color: #E2E8F0;
  font-size: 0.78rem;
  font-weight: 700;
  margin-bottom: 0.2rem;
}
.biz-pano-stage .pano-sub {
  color: #64748B;
  font-size: 0.68rem;
}
.biz-cta-row {
  display: flex;
  gap: 0.9rem;
  margin-top: 1.15rem;
  flex-wrap: wrap;
}
.biz-cta-row a {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.75rem 1.15rem;
  border-radius: 10px;
  font-size: 0.82rem;
  font-weight: 700;
  text-decoration: none;
  transition: var(--transition-base);
}
.biz-cta-row .cta-os {
  background: linear-gradient(135deg, #FDBA74, #FB923C);
  color: #1E293B;
}
.biz-cta-row .cta-tsm {
  background: linear-gradient(135deg, #C4B5FD, #8B5CF6);
  color: #fff;
}
.biz-cta-row a:hover { transform: translateY(-2px); }
@media (max-width: 1024px) {
  .biz-landing-grid { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .biz-stat-row { grid-template-columns: 1fr; }
  .biz-panorama { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nav-mega-menu { width: min(92vw, 640px); }
  .nav-mega-grid { grid-template-columns: 1fr; }
}

/* ============================================
   HERO AI SLIDES — 科技感纯 CSS 背景（不使用工程现场照片）
   左侧是 AI 产品叙事 + 右侧是产品模拟器，背景需与主题对齐
   ============================================ */
.ai-slide {
  background-color: #0B0D17;
  background-image:
    linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px);
  background-size: 48px 48px, 48px 48px;
  background-position: center center;
  position: relative;
}
.ai-slide::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background-image:
    radial-gradient(ellipse 60% 50% at 18% 30%, var(--ai-glow-a, rgba(15,98,254,0.35)) 0%, transparent 55%),
    radial-gradient(ellipse 50% 45% at 82% 75%, var(--ai-glow-b, rgba(251,146,60,0.25)) 0%, transparent 60%),
    linear-gradient(135deg, rgba(11,13,23,0.55) 0%, rgba(11,13,23,0.78) 100%);
}
.ai-slide::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background:
    linear-gradient(180deg, transparent 0%, rgba(11,13,23,0.4) 80%, rgba(11,13,23,0.65) 100%);
}
.ai-slide .hero-content { position: relative; z-index: 2; }

/* 每个 AI 产品独立主题色 */
.ai-slide-cli {
  --ai-glow-a: rgba(15,98,254,0.45);     /* 电蓝 */
  --ai-glow-b: rgba(56,189,248,0.22);    /* 青 */
}
.ai-slide-desktop {
  --ai-glow-a: rgba(139,92,246,0.4);     /* 紫 */
  --ai-glow-b: rgba(236,72,153,0.2);     /* 粉 */
}
.ai-slide-tsm {
  --ai-glow-a: rgba(16,185,129,0.4);     /* 翠绿 */
  --ai-glow-b: rgba(45,212,191,0.22);    /* 青绿 */
}
.ai-slide-os {
  --ai-glow-a: rgba(251,146,60,0.42);    /* 暖橙 */
  --ai-glow-b: rgba(250,204,21,0.2);     /* 金 */
}
/* 前 3 张 DB slide 的主题色 */
.ai-slide-product {
  --ai-glow-a: rgba(15,98,254,0.4);      /* 产品=蓝 */
  --ai-glow-b: rgba(56,189,248,0.2);
}
.ai-slide-service {
  --ai-glow-a: rgba(16,185,129,0.38);    /* 服务=绿 */
  --ai-glow-b: rgba(251,146,60,0.18);
}
.ai-slide-about {
  --ai-glow-a: rgba(251,146,60,0.4);     /* 企业=橙 */
  --ai-glow-b: rgba(139,92,246,0.2);
}

/* hero-showcase 卡片里的 banner 小图加深色叠加，避免工程现场抢戏 */
.ai-slide .hero-showcase .hs-media img {
  filter: brightness(0.78) saturate(0.95);
}
.ai-slide .hero-showcase .hs-media-overlay {
  background: linear-gradient(180deg, rgba(11,13,23,0.15) 0%, rgba(11,13,23,0.55) 60%, rgba(11,13,23,0.85) 100%);
}

/* ============================================
   HERO PRODUCT SWITCHER
   ============================================ */
.hero-product-switcher {
  position: relative;
  width: 100%;
  height: 100%;
}
.hero-product-tabs {
  display: flex;
  gap: 0;
  margin-bottom: 1rem;
  background: rgba(255,255,255,0.06);
  border-radius: 10px;
  padding: 3px;
  border: 1px solid rgba(255,255,255,0.08);
}
.hero-ptab {
  flex: 1;
  padding: 0.4rem 0.5rem;
  border-radius: 8px;
  border: none;
  background: transparent;
  color: #94A3B8;
  font-size: 0.7rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition-base);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  white-space: nowrap;
}
.hero-ptab i { font-size: 0.7rem; }
.hero-ptab.active {
  background: rgba(15,98,254,0.2);
  color: #E2E8F0;
  box-shadow: 0 1px 4px rgba(0,0,0,0.2);
}
.hero-ptab:hover:not(.active) {
  color: #CBD5E1;
  background: rgba(255,255,255,0.04);
}
/* Progress bar under active tab */
.hero-ptab.active::after {
  content: '';
  position: absolute;
  bottom: 3px;
  left: 0;
  height: 2px;
  border-radius: 1px;
  background: #0F62FE;
  animation: ptab-progress 5s linear forwards;
}
.hero-ptab { position: relative; }
@keyframes ptab-progress {
  from { width: 0; }
  to { width: 100%; }
}

.hero-pslide-wrap {
  position: relative;
  min-height: 310px;
}
.hero-pslide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.5s ease, transform 0.5s ease;
  pointer-events: none;
}
.hero-pslide.active {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

/* ============================================================
   HERO APP MOCKS — Desktop / TSM / OS slides (right-side hero)
   共享 .hero-terminal 的外壳，但内容不是 CLI 终端行
   ============================================================ */
.hero-terminal-status.status-warn {
  color: #FDBA74;
  background: rgba(251, 146, 60, 0.1);
  border-color: rgba(251, 146, 60, 0.25);
}
.hero-terminal-status.status-warn .status-dot {
  background: #FB923C;
  box-shadow: 0 0 8px rgba(251, 146, 60, 0.7);
}

/* 通用 app body：替代 CLI 终端的行内容布局 */
.hero-terminal-body.hero-app-body {
  padding: 0;
  line-height: 1.5;
  font-family: 'Inter', 'PingFang SC', 'Microsoft YaHei', system-ui, sans-serif;
  font-size: 0.72rem;
}

/* -------- Desktop mock -------- */
.hero-desktop {
  display: flex;
  height: 100%;
  min-height: 360px;
}
.hero-desktop-sidebar {
  width: 30%;
  background: rgba(255, 255, 255, 0.03);
  border-right: 1px solid rgba(255, 255, 255, 0.06);
  padding: 0.75rem 0.6rem;
}
.hero-desktop-label {
  color: #64748B;
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0.5rem;
}
.hero-desktop-item {
  display: flex;
  align-items: center;
  color: #94A3B8;
  padding: 0.35rem 0.5rem;
  border-radius: 6px;
  margin-bottom: 0.1rem;
}
.hero-desktop-item i {
  margin-right: 0.4rem;
  font-size: 0.65rem;
  width: 0.9rem;
}
.hero-desktop-item.active {
  color: #E2E8F0;
  background: rgba(15, 98, 254, 0.15);
}
.hero-desktop-item.active i { color: #60A5FA; }

.hero-desktop-main {
  flex: 1;
  padding: 0.75rem;
}
.hero-desktop-msg {
  border-radius: 8px;
  padding: 0.6rem 0.8rem;
  margin-bottom: 0.6rem;
}
.hero-desktop-msg.user { background: rgba(15, 98, 254, 0.08); }
.hero-desktop-msg.bot { background: rgba(16, 185, 129, 0.08); }
.hero-desktop-msg-role {
  font-size: 0.65rem;
  color: #94A3B8;
}
.hero-desktop-msg.bot .hero-desktop-msg-role { color: #34D399; }
.hero-desktop-msg-text {
  color: #CBD5E1;
  margin-top: 0.2rem;
}
.hero-desktop-msg.user .hero-desktop-msg-text { color: #E2E8F0; }
.hero-desktop-msg-text .ok { color: #34D399; margin-right: 0.25rem; }
.hero-desktop-msg-text .hl { color: #7DD3FC; }

.hero-desktop-input {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 8px;
  padding: 0.5rem 0.7rem;
  margin-top: 0.5rem;
}
.hero-desktop-input i { color: #60A5FA; font-size: 0.65rem; }
.hero-desktop-input span { color: #64748B; font-size: 0.7rem; }

/* -------- TSM mock -------- */
.hero-tsm {
  padding: 0.75rem;
}
.hero-tsm-stats {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}
.hero-tsm-stat {
  flex: 1;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 8px;
  padding: 0.6rem;
  text-align: center;
}
.hero-tsm-stat.warn {
  background: rgba(251, 146, 60, 0.08);
  border-color: rgba(251, 146, 60, 0.2);
}
.hero-tsm-stat-num {
  font-family: 'JetBrains Mono', 'SF Mono', ui-monospace, monospace;
  color: #E2E8F0;
  font-size: 1.1rem;
  font-weight: 700;
  line-height: 1.1;
}
.hero-tsm-stat.warn .hero-tsm-stat-num { color: #FB923C; }
.hero-tsm-stat-num .unit {
  font-size: 0.65rem;
  color: #64748B;
  font-weight: 500;
  margin-left: 0.1rem;
}
.hero-tsm-stat-label {
  color: #64748B;
  font-size: 0.6rem;
  margin-top: 0.15rem;
}

.hero-tsm-chart {
  background: rgba(255, 255, 255, 0.03);
  border-radius: 8px;
  padding: 0.6rem;
  margin-bottom: 0.6rem;
}
.hero-tsm-chart svg {
  width: 100%;
  height: 40px;
  display: block;
}

.hero-tsm-alerts {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.hero-tsm-alert {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  border-radius: 6px;
  padding: 0.4rem 0.6rem;
  color: #CBD5E1;
  font-size: 0.7rem;
}
.hero-tsm-alert.orange {
  background: rgba(251, 146, 60, 0.06);
  border: 1px solid rgba(251, 146, 60, 0.15);
}
.hero-tsm-alert.yellow {
  background: rgba(234, 179, 8, 0.05);
  border: 1px solid rgba(234, 179, 8, 0.12);
}
.hero-tsm-tag {
  font-size: 0.55rem;
  font-weight: 700;
  padding: 0.15rem 0.4rem;
  border-radius: 4px;
  color: #fff;
}
.hero-tsm-alert.orange .hero-tsm-tag { background: #FB923C; }
.hero-tsm-alert.yellow .hero-tsm-tag { background: #EAB308; color: #1E293B; }

/* -------- OS mock -------- */
.hero-os {
  display: flex;
  height: 100%;
  min-height: 360px;
}
.hero-os-sidebar {
  width: 28%;
  background: rgba(255, 255, 255, 0.03);
  border-right: 1px solid rgba(255, 255, 255, 0.06);
  padding: 0.6rem 0.5rem;
  font-size: 0.65rem;
}
.hero-os-brand {
  color: #FB923C;
  font-weight: 700;
  font-size: 0.6rem;
  margin-bottom: 0.5rem;
}
.hero-os-label {
  color: #64748B;
  font-size: 0.55rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0.4rem 0 0.3rem;
}
.hero-os-label:first-of-type { margin-top: 0; }
.hero-os-item {
  display: flex;
  align-items: center;
  color: #94A3B8;
  padding: 0.3rem 0.4rem;
  border-radius: 5px;
  margin-bottom: 0.1rem;
}
.hero-os-item i {
  margin-right: 0.3rem;
  font-size: 0.55rem;
  width: 0.75rem;
}
.hero-os-item.active {
  color: #E2E8F0;
  background: rgba(15, 98, 254, 0.15);
}
.hero-os-item.active i { color: #60A5FA; }
.hero-os-badge {
  background: rgba(15, 98, 254, 0.15);
  color: #60A5FA;
  font-size: 0.5rem;
  padding: 0.1rem 0.3rem;
  border-radius: 3px;
  margin-left: auto;
}

.hero-os-main {
  flex: 1;
  padding: 0.6rem;
  font-size: 0.65rem;
}
.hero-os-kpis {
  display: flex;
  gap: 0.4rem;
  margin-bottom: 0.6rem;
}
.hero-os-kpi {
  flex: 1;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 6px;
  padding: 0.5rem;
}
.hero-os-kpi-label {
  color: #64748B;
  font-size: 0.55rem;
}
.hero-os-kpi-num {
  color: #E2E8F0;
  font-family: 'JetBrains Mono', 'SF Mono', ui-monospace, monospace;
  font-size: 0.9rem;
  font-weight: 700;
  margin-top: 0.15rem;
}
.hero-os-kpi-num.ok { color: #34D399; }
.hero-os-kpi-num.info { color: #60A5FA; }
.hero-os-kpi-num .unit {
  font-size: 0.55rem;
  color: #64748B;
  font-weight: 500;
  margin-left: 0.1rem;
}

.hero-os-feed {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 6px;
  padding: 0.5rem;
}
.hero-os-feed-title {
  color: #64748B;
  font-size: 0.55rem;
  font-weight: 600;
  margin-bottom: 0.35rem;
}
.hero-os-feed-title i {
  color: #FBBF24;
  margin-right: 0.3rem;
}
.hero-os-feed-item {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin-bottom: 0.25rem;
}
.hero-os-feed-item:last-child { margin-bottom: 0; }
.hero-os-tag {
  font-size: 0.5rem;
  padding: 0.1rem 0.35rem;
  border-radius: 3px;
  font-weight: 600;
}
.hero-os-tag.ppt { background: rgba(139, 92, 246, 0.2); color: #A78BFA; }
.hero-os-tag.algo { background: rgba(16, 185, 129, 0.2); color: #34D399; }
.hero-os-tag.rag { background: rgba(15, 98, 254, 0.2); color: #60A5FA; }
.hero-os-feed-text {
  color: #CBD5E1;
  font-size: 0.65rem;
}
.hero-os-feed-time {
  color: #475569;
  font-size: 0.55rem;
  margin-left: auto;
}

/* ============================================================
   BODY-DARK 主题 —— 内页深色模式（products.php 等复用）
   ============================================================ */
body.body-dark {
  background: var(--v2-bg-dark, #0B0D17);
  color: #E5E7EB;
}

/* Header 在深色 body 上：让未滚动状态也使用深色玻璃背景 */
body.body-dark .nav-glass {
  background: rgba(11, 13, 23, 0.82);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
body.body-dark .nav-link,
body.body-dark .nav-logo-text {
  color: #E2E8F0;
}
body.body-dark .nav-link:hover,
body.body-dark .nav-link.active {
  color: #60A5FA;
}
body.body-dark .mobile-menu-btn {
  color: #E2E8F0;
}
/* mega-menu 在深色模式下依然是明亮卡片（跟 Home 一致），不改 */

/* 面包屑 */
body.body-dark .bg-white {
  background: transparent !important;
}
body.body-dark nav.flex.items-center.space-x-2 {
  color: #94A3B8;
}
body.body-dark nav.flex.items-center.space-x-2 a {
  color: #94A3B8;
}
body.body-dark nav.flex.items-center.space-x-2 a:hover {
  color: #60A5FA;
}
body.body-dark nav.flex.items-center.space-x-2 .text-gray-800 {
  color: #E2E8F0 !important;
}
body.body-dark nav.flex.items-center.space-x-2 .text-gray-400 {
  color: #475569 !important;
}

/* 段落容器透明化 */
body.body-dark section.py-16,
body.body-dark section.bg-white {
  background: transparent !important;
}

/* 分类按钮深色版（products.php "全部产品" / 分类 chip） */
body.body-dark .bg-blue-600.text-white {
  background: linear-gradient(135deg, #0F62FE 0%, #0353E9 100%) !important;
  box-shadow: 0 8px 20px -8px rgba(15, 98, 254, 0.55);
}
body.body-dark .bg-gray-100.text-gray-700 {
  background: rgba(255, 255, 255, 0.04) !important;
  color: #CBD5E1 !important;
  border: 1px solid rgba(255, 255, 255, 0.08);
}
body.body-dark .bg-gray-100.text-gray-700:hover,
body.body-dark a.bg-gray-100.text-gray-700:hover {
  background: rgba(255, 255, 255, 0.08) !important;
  border-color: rgba(96, 165, 250, 0.3);
  color: #E2E8F0 !important;
}

/* products.php 产品矩阵 4 卡：覆盖 min-height，避免首页专用留给 mock 的空白 */
body.body-dark .product-card.compact {
  min-height: 0 !important;
  padding: 1.75rem 1.5rem 1.25rem !important;
}

/* 亮点信息行 — products.php 专用，撑起卡片视觉重心 */
.product-highlights {
  list-style: none;
  margin: 1rem 0 1.25rem;
  padding: 1rem 0 0;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.product-highlights li {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: #CBD5E1;
}
.product-highlights li i {
  color: #60A5FA;
  font-size: 0.75rem;
  margin-top: 0.25rem;
  flex-shrink: 0;
  width: 1rem;
  text-align: center;
}
/* 按产品色调区分 highlight 图标 */
.product-card.compact:has(.product-badge.cli)     .product-highlights li i { color: #60A5FA; }
.product-card.compact:has(.product-badge.desktop) .product-highlights li i { color: #34D399; }
.product-card.compact:has(.product-badge.tsm)     .product-highlights li i { color: #A78BFA; }
.product-card.compact:has(.product-badge.os)      .product-highlights li i { color: #FB923C; }

/* 数据库驱动的产品卡（.card-premium.bg-white） */
body.body-dark .card-premium.bg-white {
  background: linear-gradient(180deg, rgba(255,255,255,0.04) 0%, rgba(255,255,255,0.01) 100%) !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  box-shadow: none !important;
}
body.body-dark .card-premium.bg-white:hover {
  border-color: rgba(96, 165, 250, 0.3) !important;
  transform: translateY(-4px);
  box-shadow: 0 20px 48px -16px rgba(15,98,254,0.25) !important;
}
body.body-dark .card-premium.bg-white h3,
body.body-dark .card-premium.bg-white .text-gray-800 {
  color: #F8FAFC !important;
}
body.body-dark .card-premium.bg-white p,
body.body-dark .card-premium.bg-white .text-gray-600 {
  color: #94A3B8 !important;
}
body.body-dark .card-premium.bg-white .bg-gray-100 {
  background: rgba(255, 255, 255, 0.06) !important;
  color: #CBD5E1 !important;
}

/* DB 产品卡内部"推荐"/"类别"胶囊 */
body.body-dark .bg-blue-600.text-white.px-3,
body.body-dark .card-premium .bg-blue-600 {
  background: rgba(15, 98, 254, 0.18) !important;
  color: #7DD3FC !important;
  border: 1px solid rgba(125, 211, 252, 0.25);
}
body.body-dark .bg-red-500.text-white {
  background: rgba(239, 68, 68, 0.2) !important;
  color: #FCA5A5 !important;
  border: 1px solid rgba(252, 165, 165, 0.3);
}

/* 查看详情的白色圆按钮 */
body.body-dark .bg-white.text-blue-600 {
  background: rgba(255, 255, 255, 0.08) !important;
  color: #7DD3FC !important;
  border: 1px solid rgba(125, 211, 252, 0.25);
}
body.body-dark .bg-white.text-blue-600:hover {
  background: rgba(15, 98, 254, 0.25) !important;
  color: #FFFFFF !important;
}

/* section-heading 在深色下默认浅色（因为全站 !important 锁了 --v2-ink 深色） */
body.body-dark .section-heading h2 {
  color: #F8FAFC !important;
  -webkit-text-fill-color: #F8FAFC !important;
}
body.body-dark .section-heading p {
  color: #94A3B8 !important;
}
body.body-dark .section-heading h2::before {
  color: #7DD3FC !important;
}

/* Hero（顶部图片 banner）上的遮罩加深以便在深色页衬上有层次 */
body.body-dark section.relative.text-white .absolute.inset-0.bg-black {
  background: linear-gradient(180deg, rgba(11,13,23,0.55) 0%, rgba(11,13,23,0.85) 100%) !important;
  opacity: 1 !important;
}

/* Pagination 深色化（products.php 下方分页） */
body.body-dark .pagination a,
body.body-dark .pagination button {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  color: #CBD5E1;
}
body.body-dark .pagination .active,
body.body-dark .pagination a:hover {
  background: rgba(15,98,254,0.2);
  border-color: rgba(96,165,250,0.35);
  color: #FFFFFF;
}

/* Footer 在深色页保持原色（footer 本身就深，不动） */

/* ============================================================
   富文本正文统一排版（高级感 · 科技风）
   适用于后台编辑器输出的 .prose / .product-content /
   .service-content / .news-content / .content-body / .help-content
   — 无论编辑器多简陋，前端通过 CSS 让 h2/h3/p/ul/blockquote/
     table/img/code/hr 自动呈现高级视觉
   ============================================================ */
.prose,
.product-content,
.service-content,
.news-content,
.help-content,
.content-body,
.article-body {
  --rx-ink:        #1F2937;       /* 正文字色 */
  --rx-ink-soft:   #4B5563;       /* 次要字色 */
  --rx-head:       #0F172A;       /* 标题字色 */
  --rx-brand:      #0F62FE;       /* 主题蓝 */
  --rx-accent:     #FB923C;       /* 强调橙 */
  --rx-line:       #E5E7EB;       /* 分隔线 */
  --rx-card:       #F8FAFC;       /* 卡片底 */
  --rx-code-bg:    #0F172A;       /* 代码深底 */
  --rx-code-ink:   #E2E8F0;
  --rx-code-inline:#EFF6FF;
  --rx-quote-bg:   linear-gradient(135deg, rgba(15,98,254,0.05), rgba(251,146,60,0.04));

  font-size: 1.05rem;
  line-height: 1.9;
  color: var(--rx-ink);
  word-break: break-word;
}

/* ---- 段落 ---- */
.prose p,
.product-content p,
.service-content p,
.news-content p,
.help-content p,
.content-body p,
.article-body p {
  margin: 1.15em 0;
  color: var(--rx-ink);
  font-size: 1.05rem;
  line-height: 1.9;
  letter-spacing: 0.01em;
}
.prose p:first-child,
.product-content p:first-child,
.service-content p:first-child,
.news-content p:first-child,
.help-content p:first-child,
.content-body p:first-child,
.article-body p:first-child {
  margin-top: 0;
  font-size: 1.18rem;
  color: var(--rx-ink-soft);
  font-weight: 500;
  line-height: 1.85;
  padding: 1.1rem 1.3rem;
  border-left: 3px solid var(--rx-brand);
  background: var(--rx-quote-bg);
  border-radius: 0 12px 12px 0;
}

/* ---- 标题 H1-H4 ---- */
.prose h1, .prose h2, .prose h3, .prose h4,
.product-content h1, .product-content h2, .product-content h3, .product-content h4,
.service-content h1, .service-content h2, .service-content h3, .service-content h4,
.news-content h1, .news-content h2, .news-content h3, .news-content h4,
.help-content h1, .help-content h2, .help-content h3, .help-content h4,
.content-body h1, .content-body h2, .content-body h3, .content-body h4,
.article-body h1, .article-body h2, .article-body h3, .article-body h4 {
  color: var(--rx-head);
  font-weight: 800;
  letter-spacing: -0.015em;
  line-height: 1.35;
  scroll-margin-top: 96px;
}
.prose h1, .product-content h1, .service-content h1, .news-content h1, .help-content h1, .content-body h1, .article-body h1 {
  font-size: 2rem;
  margin: 2.2em 0 1em;
}
.prose h2, .product-content h2, .service-content h2, .news-content h2, .help-content h2, .content-body h2, .article-body h2 {
  font-size: 1.55rem;
  margin: 2em 0 0.9em;
  padding-bottom: 0.55rem;
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.6rem;
}
.prose h2::before, .product-content h2::before, .service-content h2::before, .news-content h2::before, .help-content h2::before, .content-body h2::before, .article-body h2::before {
  content: '';
  width: 4px;
  height: 1.1em;
  border-radius: 3px;
  background: linear-gradient(180deg, var(--rx-brand), var(--rx-accent));
  flex-shrink: 0;
}
.prose h2::after, .product-content h2::after, .service-content h2::after, .news-content h2::after, .help-content h2::after, .content-body h2::after, .article-body h2::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, var(--rx-line) 0%, var(--rx-line) 60%, transparent 100%);
}
.prose h3, .product-content h3, .service-content h3, .news-content h3, .help-content h3, .content-body h3, .article-body h3 {
  font-size: 1.25rem;
  margin: 1.7em 0 0.7em;
  color: var(--rx-brand);
  padding-left: 0.75rem;
  border-left: 3px solid var(--rx-brand);
}
.prose h4, .product-content h4, .service-content h4, .news-content h4, .help-content h4, .content-body h4, .article-body h4 {
  font-size: 1.1rem;
  margin: 1.4em 0 0.55em;
  color: var(--rx-head);
}

/* ---- 链接 ---- */
.prose a, .product-content a, .service-content a, .news-content a, .help-content a, .content-body a, .article-body a {
  color: var(--rx-brand);
  font-weight: 600;
  text-decoration: none;
  background-image: linear-gradient(transparent 85%, rgba(15,98,254,0.25) 85%);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  transition: background-size 0.25s ease, color 0.2s ease;
}
.prose a:hover, .product-content a:hover, .service-content a:hover, .news-content a:hover, .help-content a:hover, .content-body a:hover, .article-body a:hover {
  color: #FFFFFF;
  background-size: 100% 100%;
  background-image: linear-gradient(rgba(15,98,254,1), rgba(15,98,254,1));
  padding: 0 3px;
  border-radius: 3px;
}

/* ---- 强调 ---- */
.prose strong, .product-content strong, .service-content strong, .news-content strong, .help-content strong, .content-body strong, .article-body strong {
  color: var(--rx-head);
  font-weight: 700;
  background: linear-gradient(transparent 60%, rgba(251,146,60,0.18) 60%);
  padding: 0 2px;
}
.prose em, .product-content em, .service-content em, .news-content em, .help-content em, .content-body em, .article-body em {
  color: var(--rx-brand);
  font-style: normal;
  font-weight: 600;
}

/* ---- 列表 ---- */
.prose ul, .prose ol,
.product-content ul, .product-content ol,
.service-content ul, .service-content ol,
.news-content ul, .news-content ol,
.help-content ul, .help-content ol,
.content-body ul, .content-body ol,
.article-body ul, .article-body ol {
  margin: 1.2em 0;
  padding-left: 1.75em;
}
.prose ul li, .product-content ul li, .service-content ul li, .news-content ul li, .help-content ul li, .content-body ul li, .article-body ul li {
  position: relative;
  margin: 0.5em 0;
  padding-left: 0.4em;
  list-style: none;
}
.prose ul li::before, .product-content ul li::before, .service-content ul li::before, .news-content ul li::before, .help-content ul li::before, .content-body ul li::before, .article-body ul li::before {
  content: '';
  position: absolute;
  left: -1.15em;
  top: 0.72em;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--rx-brand), var(--rx-accent));
  box-shadow: 0 0 0 3px rgba(15,98,254,0.12);
}
.prose ol, .product-content ol, .service-content ol, .news-content ol, .help-content ol, .content-body ol, .article-body ol {
  counter-reset: rx-ol;
  list-style: none;
  padding-left: 0;
}
.prose ol li, .product-content ol li, .service-content ol li, .news-content ol li, .help-content ol li, .content-body ol li, .article-body ol li {
  counter-increment: rx-ol;
  position: relative;
  margin: 0.6em 0;
  padding-left: 2.6em;
  min-height: 1.8em;
}
.prose ol li::before, .product-content ol li::before, .service-content ol li::before, .news-content ol li::before, .help-content ol li::before, .content-body ol li::before, .article-body ol li::before {
  content: counter(rx-ol, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 0;
  width: 2em;
  height: 2em;
  line-height: 2em;
  text-align: center;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--rx-brand);
  background: rgba(15,98,254,0.08);
  border: 1px solid rgba(15,98,254,0.2);
  border-radius: 8px;
}

/* ---- 引用块 ---- */
.prose blockquote, .product-content blockquote, .service-content blockquote, .news-content blockquote, .help-content blockquote, .content-body blockquote, .article-body blockquote {
  margin: 1.6em 0;
  padding: 1.3rem 1.5rem 1.3rem 3.2rem;
  border-radius: 14px;
  background: var(--rx-quote-bg);
  border-left: 4px solid var(--rx-brand);
  color: var(--rx-ink-soft);
  font-size: 1rem;
  line-height: 1.85;
  position: relative;
  font-style: italic;
  box-shadow: 0 4px 20px rgba(15,98,254,0.06);
}
.prose blockquote::before, .product-content blockquote::before, .service-content blockquote::before, .news-content blockquote::before, .help-content blockquote::before, .content-body blockquote::before, .article-body blockquote::before {
  content: '\201C';
  position: absolute;
  left: 0.8rem;
  top: 0.2rem;
  font-size: 3rem;
  font-family: Georgia, 'Times New Roman', serif;
  color: var(--rx-brand);
  opacity: 0.35;
  line-height: 1;
  font-style: normal;
  font-weight: 700;
}
.prose blockquote p, .product-content blockquote p, .service-content blockquote p, .news-content blockquote p, .help-content blockquote p, .content-body blockquote p, .article-body blockquote p {
  margin: 0.4em 0;
  background: none;
  padding: 0;
  border: 0;
  font-size: inherit;
  color: inherit;
}

/* ---- 行内 code / 代码块 ---- */
.prose code, .product-content code, .service-content code, .news-content code, .help-content code, .content-body code, .article-body code {
  font-family: 'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace;
  font-size: 0.88em;
  background: var(--rx-code-inline);
  color: var(--rx-brand);
  padding: 0.15em 0.45em;
  border-radius: 5px;
  border: 1px solid rgba(15,98,254,0.15);
}
.prose pre, .product-content pre, .service-content pre, .news-content pre, .help-content pre, .content-body pre, .article-body pre {
  margin: 1.5em 0;
  padding: 1.3rem 1.5rem;
  background: var(--rx-code-bg);
  color: var(--rx-code-ink);
  border-radius: 14px;
  overflow-x: auto;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 0.9rem;
  line-height: 1.7;
  box-shadow: 0 10px 30px rgba(15,23,42,0.25);
  border: 1px solid rgba(148,163,184,0.15);
  position: relative;
}
.prose pre::before, .product-content pre::before, .service-content pre::before, .news-content pre::before, .help-content pre::before, .content-body pre::before, .article-body pre::before {
  content: '';
  position: absolute;
  top: 14px;
  left: 18px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #FF5F56;
  box-shadow: 20px 0 0 #FFBD2E, 40px 0 0 #27C93F;
}
.prose pre > code, .product-content pre > code, .service-content pre > code, .news-content pre > code, .help-content pre > code, .content-body pre > code, .article-body pre > code {
  display: block;
  margin-top: 1.4rem;
  background: transparent;
  color: inherit;
  border: 0;
  padding: 0;
  font-size: inherit;
}

/* ---- 分隔线 ---- */
.prose hr, .product-content hr, .service-content hr, .news-content hr, .help-content hr, .content-body hr, .article-body hr {
  margin: 2.5em auto;
  border: 0;
  height: 2px;
  max-width: 160px;
  background: linear-gradient(90deg, transparent, var(--rx-brand), var(--rx-accent), transparent);
  position: relative;
}
.prose hr::after, .product-content hr::after, .service-content hr::after, .news-content hr::after, .help-content hr::after, .content-body hr::after, .article-body hr::after {
  content: '\25C6';
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%,-50%);
  color: var(--rx-brand);
  background: #FFFFFF;
  padding: 0 10px;
  font-size: 0.7rem;
}

/* ---- 图片 / figure ---- */
.prose img, .product-content img, .service-content img, .news-content img, .help-content img, .content-body img, .article-body img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 1.8em auto;
  border-radius: 14px;
  box-shadow:
    0 16px 40px -12px rgba(15,23,42,0.28),
    0 2px 6px -2px rgba(15,23,42,0.08);
  transition: transform 0.6s cubic-bezier(0.22,1,0.36,1), box-shadow 0.4s ease;
}
.prose img:hover, .product-content img:hover, .service-content img:hover, .news-content img:hover, .help-content img:hover, .content-body img:hover, .article-body img:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 60px -18px rgba(15,98,254,0.35);
}
.prose figure, .product-content figure, .service-content figure, .news-content figure, .help-content figure, .content-body figure, .article-body figure {
  margin: 2em 0;
}
.prose figcaption, .product-content figcaption, .service-content figcaption, .news-content figcaption, .help-content figcaption, .content-body figcaption, .article-body figcaption {
  margin-top: 0.6em;
  text-align: center;
  font-size: 0.88rem;
  color: #6B7280;
  font-style: italic;
}

/* ---- 表格 ---- */
.prose table, .product-content table, .service-content table, .news-content table, .help-content table, .content-body table, .article-body table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  margin: 1.8em 0;
  background: #FFFFFF;
  border: 1px solid var(--rx-line);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(15,23,42,0.04);
  font-size: 0.95rem;
}
.prose thead, .product-content thead, .service-content thead, .news-content thead, .help-content thead, .content-body thead, .article-body thead {
  background: linear-gradient(135deg, #0F172A, #1E293B);
}
.prose th, .product-content th, .service-content th, .news-content th, .help-content th, .content-body th, .article-body th {
  padding: 0.9rem 1.1rem;
  text-align: left;
  color: #FFFFFF;
  font-weight: 700;
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border: 0;
}
.prose td, .product-content td, .service-content td, .news-content td, .help-content td, .content-body td, .article-body td {
  padding: 0.8rem 1.1rem;
  border-top: 1px solid var(--rx-line);
  color: var(--rx-ink);
  vertical-align: top;
}
.prose tbody tr:hover, .product-content tbody tr:hover, .service-content tbody tr:hover, .news-content tbody tr:hover, .help-content tbody tr:hover, .content-body tbody tr:hover, .article-body tbody tr:hover {
  background: rgba(15,98,254,0.03);
}
.prose tbody tr:nth-child(even), .product-content tbody tr:nth-child(even), .service-content tbody tr:nth-child(even), .news-content tbody tr:nth-child(even), .help-content tbody tr:nth-child(even), .content-body tbody tr:nth-child(even), .article-body tbody tr:nth-child(even) {
  background: #FAFBFC;
}

/* ---- kbd / mark / del ---- */
.prose kbd, .product-content kbd, .service-content kbd, .news-content kbd, .help-content kbd, .content-body kbd, .article-body kbd {
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.82em;
  padding: 0.12em 0.55em;
  background: #F8FAFC;
  border: 1px solid #CBD5E1;
  border-bottom-width: 2px;
  border-radius: 6px;
  color: var(--rx-head);
  box-shadow: 0 1px 0 rgba(0,0,0,0.04);
}
.prose mark, .product-content mark, .service-content mark, .news-content mark, .help-content mark, .content-body mark, .article-body mark {
  background: linear-gradient(transparent 60%, rgba(251,204,21,0.45) 60%);
  color: inherit;
  padding: 0 2px;
}
.prose del, .product-content del, .service-content del, .news-content del, .help-content del, .content-body del, .article-body del {
  color: #9CA3AF;
  text-decoration: line-through;
  text-decoration-thickness: 2px;
  text-decoration-color: rgba(239,68,68,0.6);
}

/* ---- 首字下沉（长文 feel）仅 news / article ---- */
.news-content > p:first-of-type::first-letter,
.article-body > p:first-of-type::first-letter {
  float: left;
  font-size: 3.4rem;
  line-height: 0.95;
  padding: 0.35rem 0.65rem 0 0;
  font-weight: 800;
  color: var(--rx-brand);
  font-family: Georgia, 'Times New Roman', serif;
}

/* ---- 响应式 ---- */
@media (max-width: 768px) {
  .prose, .product-content, .service-content, .news-content, .help-content, .content-body, .article-body { font-size: 1rem; }
  .prose h1, .product-content h1, .service-content h1, .news-content h1, .help-content h1, .content-body h1, .article-body h1 { font-size: 1.6rem; }
  .prose h2, .product-content h2, .service-content h2, .news-content h2, .help-content h2, .content-body h2, .article-body h2 { font-size: 1.3rem; }
  .prose h3, .product-content h3, .service-content h3, .news-content h3, .help-content h3, .content-body h3, .article-body h3 { font-size: 1.1rem; }
  .prose pre, .product-content pre, .service-content pre, .news-content pre, .help-content pre, .content-body pre, .article-body pre { padding: 1rem; font-size: 0.82rem; }
  .prose table, .product-content table, .service-content table, .news-content table, .help-content table, .content-body table, .article-body table { font-size: 0.85rem; display: block; overflow-x: auto; }
}

/* ============================================================
   详情页壳体（Article Shell）
   让正文容器漂浮在带微纹理的卡片里，整体"高级感"
   ============================================================ */
.article-shell {
  max-width: 880px;
  margin: 0 auto;
  padding: 2.5rem clamp(1.2rem, 4vw, 3rem);
  background: #FFFFFF;
  border: 1px solid var(--rx-line, #E5E7EB);
  border-radius: 20px;
  box-shadow: 0 40px 100px -40px rgba(15,23,42,0.18), 0 2px 8px rgba(15,23,42,0.04);
  position: relative;
  overflow: hidden;
}
.article-shell::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: linear-gradient(90deg, #0F62FE 0%, #FB923C 100%);
}
.article-shell::after {
  content: '';
  position: absolute;
  top: 0; right: 0;
  width: 220px;
  height: 220px;
  background: radial-gradient(circle at top right, rgba(15,98,254,0.08) 0%, transparent 65%);
  pointer-events: none;
}
.article-shell > * { position: relative; z-index: 1; }

/* 文章头部 meta 条（如使用） */
.article-meta-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
  padding: 0.9rem 1rem;
  margin: 0 0 1.8em;
  background: linear-gradient(135deg, rgba(15,98,254,0.04), rgba(251,146,60,0.03));
  border: 1px solid var(--rx-line, #E5E7EB);
  border-radius: 12px;
  font-size: 0.88rem;
  color: #4B5563;
}
.article-meta-bar .amb-item {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
.article-meta-bar .amb-item i {
  color: #0F62FE;
}


