/* ============================================
   龙筑斯维尔 - 建设行业软件及解决方案服务商
   全局样式表
   ============================================ */

/* CSS Reset & Base */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

:root {
  --white: #ffffff;
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.06);
  --shadow: 0 4px 20px rgba(0,0,0,0.08);
  --shadow-lg: 0 10px 40px rgba(0,0,0,0.12);
  --radius: 8px;
  --radius-lg: 16px;
  --transition: all 0.3s ease;
  --max-width: 1280px;
}

html { scroll-behavior: smooth; font-size: 16px; }

body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", "Helvetica Neue", sans-serif;
  color: #333;
  background: var(--white);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

a { text-decoration: none; color: var(--primary); transition: var(--transition); }
a:hover { color: var(--primary-light); }
ul { list-style: none; }
img { max-width: 100%; display: block; }

.container { max-width: var(--max-width); margin: 0 auto; padding: 0 24px; }

/* ========== Header ========== */
.header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  background: var(--header-bg, rgba(10, 22, 40, 0.95));
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--header-border, rgba(255,255,255,0.06));
  transition: var(--transition);
}
.header.scrolled { background: var(--header-bg-scrolled, rgba(10, 22, 40, 0.98)); box-shadow: 0 2px 20px var(--header-shadow, rgba(0,0,0,0.3)); }

.header-inner {
  display: flex; align-items: center; justify-content: space-between;
  height: 68px; max-width: var(--max-width); margin: 0 auto; padding: 0 24px;
}

.logo { display: flex; align-items: center; gap: 12px; }
.logo-icon {
  width: 42px; height: 42px; background: linear-gradient(135deg, var(--primary), var(--accent));
  border-radius: 10px; display: flex; align-items: center; justify-content: center;
  font-size: 20px; color: var(--white); font-weight: 700;
}
.logo-text { color: var(--header-text, var(--white)); font-size: 20px; font-weight: 700; letter-spacing: 1px; }
.logo-sub { color: var(--header-sub, var(--gray-500)); font-size: 12px; }

.nav { display: flex; align-items: center; gap: 4px; }
.nav-item { position: relative; }
.nav-link {
  display: block; padding: 10px 18px; color: var(--nav-link, #b0c4d8); font-size: 15px;
  border-radius: 6px; transition: var(--transition); white-space: nowrap;
}
.nav-link:hover, .nav-link.active { color: var(--nav-link-hover, var(--white)); background: var(--nav-link-hover-bg, rgba(255,255,255,0.08)); }

.nav-dropdown {
  position: absolute; top: 100%; left: 0; min-width: 200px;
  background: var(--nav-dropdown-bg, var(--gray-900)); border-radius: var(--radius);
  box-shadow: var(--shadow-lg); opacity: 0; visibility: hidden;
  transform: translateY(8px); transition: var(--transition);
  padding: 8px 0; border: 1px solid var(--nav-dropdown-border, rgba(255,255,255,0.06));
}
.nav-item:hover .nav-dropdown { opacity: 1; visibility: visible; transform: translateY(0); }
.nav-dropdown a {
  display: block; padding: 10px 20px; color: var(--nav-link, #b0c4d8); font-size: 14px;
  transition: var(--transition);
}
.nav-dropdown a:hover { background: var(--nav-dropdown-hover-bg, rgba(255,255,255,0.06)); color: var(--nav-link-hover, var(--white)); }

.header-actions { display: flex; align-items: center; gap: 12px; }
.btn-tel {
  display: flex; align-items: center; gap: 6px; color: var(--accent);
  font-size: 15px; font-weight: 600; padding: 8px 16px;
  border: 1px solid var(--btn-tel-border, rgba(0, 180, 216, 0.3)); border-radius: 20px;
}
.btn-tel:hover { background: var(--btn-tel-hover-bg, rgba(0, 180, 216, 0.1)); color: var(--accent); }
.menu-toggle { display: none; background: none; border: none; color: var(--header-text, var(--white)); font-size: 24px; cursor: pointer; }

/* ========== Hero ========== */
.hero {
  position: relative; min-height: 100vh; display: flex; align-items: center;
  background:
    /* 网格线 - 微弱 */
    linear-gradient(var(--hero-grid-line, rgba(255,255,255,0.015)) 1px, transparent 1px),
    linear-gradient(90deg, var(--hero-grid-line, rgba(255,255,255,0.015)) 1px, transparent 1px),
    /* 主题渐变色（默认深色，明亮主题可覆盖） */
    var(--hero-bg, linear-gradient(160deg, #060D1A 0%, rgba(10,22,40,0.95) 40%, rgba(15,44,89,0.7) 65%, #060D1A 100%));
  background-size: 80px 80px, 80px 80px, 100% 100%;
  overflow: hidden;
}
.hero-bg {
  position: absolute; inset: 0;
  background: var(--hero-glow, radial-gradient(ellipse at 30% 50%, rgba(26, 115, 232, 0.06) 0%, transparent 60%),
              radial-gradient(ellipse at 70% 30%, rgba(15, 44, 89, 0.04) 0%, transparent 50%));
}
.hero-grid {
  position: absolute; inset: 0; opacity: var(--hero-grid-opacity, 0.04);
  background-image: linear-gradient(var(--hero-grid-color, rgba(255,255,255,0.3)) 1px, transparent 1px),
                    linear-gradient(90deg, var(--hero-grid-color, rgba(255,255,255,0.3)) 1px, transparent 1px);
  background-size: 60px 60px;
}
.hero .container { position: relative; z-index: 10; }
.hero-content { position: relative; z-index: 1; max-width: 720px; }
.hero-badge {
  display: inline-block; padding: 6px 18px; background: var(--hero-badge-bg, rgba(0, 180, 216, 0.15));
  border: 1px solid var(--hero-badge-border, rgba(0, 180, 216, 0.3)); border-radius: 20px;
  color: var(--hero-badge-color, var(--accent)); font-size: 13px; font-weight: 500; margin-bottom: 28px;
}
.hero h1 { color: var(--hero-title-color, var(--white)); font-size: 52px; font-weight: 800; line-height: 1.25; margin-bottom: 20px; }
.hero h1 span { background: var(--hero-title-grad, linear-gradient(135deg, var(--primary-light), var(--accent))); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.hero-desc { color: var(--hero-desc-color, #b0c8e0); font-size: 18px; line-height: 1.8; margin-bottom: 36px; max-width: 560px; }
.hero-buttons { display: flex; gap: 16px; flex-wrap: wrap; }

.btn {
  display: inline-flex; align-items: center; gap: 8px; padding: 14px 32px;
  border-radius: 28px; font-size: 15px; font-weight: 600; cursor: pointer;
  transition: var(--transition); border: none;
}
.btn-primary { background: linear-gradient(135deg, var(--primary), var(--primary-light)); color: var(--white); box-shadow: 0 4px 20px rgba(15,44,89,0.25); }
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 30px rgba(15,44,89,0.35); color: var(--white); }
.btn-outline { background: transparent; color: var(--hero-btn-outline-color, var(--white)); border: 1px solid var(--hero-btn-outline-border, rgba(255,255,255,0.2)); }
.btn-outline:hover { border-color: var(--accent); color: var(--accent); background: rgba(0,180,216,0.05); }

.hero-stats { display: flex; gap: 48px; margin-top: 56px; }
.stat-item { text-align: left; }
.stat-num { color: var(--stat-num-color, var(--white)); font-size: 36px; font-weight: 800; }
.stat-num small { font-size: 20px; }
.stat-label { color: var(--stat-label-color, var(--gray-500)); font-size: 13px; margin-top: 4px; }

.hero-visual {
  position: absolute; right: -60px; top: 50%; transform: translateY(-50%);
  width: 600px; height: 600px; z-index: 0; opacity: 0.7;
}
.hero-skyline {
  position: absolute; left: 0; right: 0; bottom: 0;
  width: 100%; height: auto; max-height: 48vh;
  z-index: 0; pointer-events: none; opacity: var(--hero-skyline-opacity, 0.42);
  object-fit: cover; object-position: bottom;
}
.hero-visual .orbit {
  position: absolute; border: 1px solid rgba(255,255,255,0.06); border-radius: 50%;
  animation: spin 20s linear infinite;
}
.hero-visual .orbit:nth-child(1) { width: 500px; height: 500px; top: 50px; left: 50px; animation-duration: 25s; }
.hero-visual .orbit:nth-child(2) { width: 380px; height: 380px; top: 110px; left: 110px; animation-duration: 18s; animation-direction: reverse; }
.hero-visual .orbit:nth-child(3) { width: 260px; height: 260px; top: 170px; left: 170px; animation-duration: 14s; }
.hero-visual .dot {
  position: absolute; width: 8px; height: 8px; background: var(--accent);
  border-radius: 50%; box-shadow: 0 0 20px rgba(0,180,216,0.6);
}
.hero-visual .dot:nth-child(4) { top: 50px; left: 300px; background: var(--primary-light); }
.hero-visual .dot:nth-child(5) { top: 250px; left: 50px; background: var(--accent); }
.hero-visual .dot:nth-child(6) { top: 400px; left: 250px; background: var(--primary-light); }

@keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

/* ========== Global World Map Watermark ========== */
.page-map-overlay {
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  z-index: 9999;
  pointer-events: none;
  opacity: 0.12;
  background: url('data:image/webp;base64,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') no-repeat center;
  background-size: contain;
}
/* 首页：世界地图从第二屏开始，避开 Hero */
.home .page-map-overlay {
  top: 100vh;
}

/* ========== Section Common ========== */
.section { padding: 100px 0; }
.section-dark { background: var(--section-dark-bg, var(--dark)); color: var(--section-dark-text, var(--white)); }
.section-gray { background: var(--gray-100); }
.section-header { text-align: center; margin-bottom: 64px; }
.section-tag { display: inline-block; padding: 4px 14px; background: var(--section-tag-bg, rgba(0,102,204,0.08)); border-radius: 12px; color: var(--section-tag-color, var(--primary)); font-size: 13px; font-weight: 600; margin-bottom: 12px; }
.section-dark .section-tag { background: var(--section-dark-tag-bg, rgba(0,180,216,0.15)); color: var(--section-dark-tag-color, var(--accent)); }
.section-header h2 { font-size: 38px; font-weight: 700; margin-bottom: 12px; }
.section-header p { color: var(--gray-600); font-size: 16px; max-width: 560px; margin: 0 auto; }
.section-dark .section-header p { color: var(--section-dark-desc, #7a8fa3); }

/* ========== Products Grid ========== */
.products-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.product-card {
  background: var(--white); border-radius: var(--radius-lg); padding: 36px 28px;
  box-shadow: var(--shadow-sm); transition: var(--transition); border: 1px solid transparent;
  position: relative; overflow: hidden;
}
.product-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: var(--gray-200); }
.product-card::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, var(--primary), var(--accent));
  transform: scaleX(0); transition: transform 0.4s ease;
}
.product-card:hover::before { transform: scaleX(1); }
.product-icon {
  width: 56px; height: 56px; border-radius: 14px; display: flex;
  align-items: center; justify-content: center; font-size: 24px; margin-bottom: 20px;
  background: var(--icon-bg, linear-gradient(135deg, rgba(0,102,204,0.1), rgba(0,180,216,0.1)));
}
.product-card h3 { font-size: 20px; font-weight: 700; margin-bottom: 10px; }
.product-card p { color: var(--gray-600); font-size: 14px; line-height: 1.7; }
.product-card .arrow { display: inline-flex; align-items: center; gap: 6px; margin-top: 16px; font-size: 14px; font-weight: 600; color: var(--primary); }

/* ========== Solutions ========== */
.solutions-tabs { display: flex; justify-content: center; gap: 8px; margin-bottom: 48px; flex-wrap: wrap; }
.tab-btn {
  padding: 10px 24px; border-radius: 24px; border: 1px solid var(--gray-200);
  background: var(--white); color: var(--gray-600); cursor: pointer;
  font-size: 14px; font-weight: 500; transition: var(--transition);
}
.tab-btn:hover, .tab-btn.active {
  background: linear-gradient(135deg, var(--primary), var(--accent));
  color: var(--white); border-color: transparent; box-shadow: 0 4px 16px rgba(15,44,89,0.25);
}

.solution-content { display: none; }
.solution-content.active { display: block; }
.solution-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.solution-info h3 { font-size: 28px; font-weight: 700; margin-bottom: 16px; color: var(--solution-title-color, inherit); }
.solution-info p { color: var(--solution-desc-color, var(--gray-600)); font-size: 15px; line-height: 1.8; margin-bottom: 20px; }
.solution-features { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.solution-features li { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--solution-feature-color, var(--gray-700)); }
.solution-features li::before { content: ''; width: 6px; height: 6px; background: var(--accent); border-radius: 50%; flex-shrink: 0; }
.solution-visual {
  position: relative; overflow: hidden;
  background: var(--solution-visual-bg, linear-gradient(135deg, var(--dark), var(--gray-900)));
  border-radius: var(--radius-lg); padding: 48px; text-align: center;
  min-height: 300px; display: flex; align-items: center; justify-content: center;
}
.solution-visual::before {
  content: '';
  position: absolute; top: -25%; left: -25%;
  width: 150%; height: 150%;
  background: conic-gradient(from 0deg, transparent 0deg, var(--accent) 35deg, transparent 85deg,
                              transparent 180deg, var(--primary-light) 215deg, transparent 265deg);
  border-radius: 50%;
  animation: spin 16s linear infinite;
  opacity: var(--solution-orbit-opacity, 0.28);
  pointer-events: none; z-index: 0;
}
.solution-visual::after {
  content: '';
  position: absolute; left: 22%; top: 24%;
  width: 12px; height: 12px; border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 16px var(--accent),
              72px 96px 0 -3px var(--primary-light),
              -84px 52px 0 -4px var(--accent),
              44px -96px 0 -4px var(--primary-light),
              -52px -74px 0 -3px var(--accent);
  animation: solutionFloat 7s ease-in-out infinite;
  opacity: 0.55; pointer-events: none; z-index: 0;
}
.solution-visual .tech-icon {
  position: relative; z-index: 1;
  font-size: 80px; opacity: var(--tech-icon-opacity, 0.6);
  animation: iconFloat 3.5s ease-in-out infinite;
}
/* 首页解决方案区块：图标移到角落做装饰，主区域交给场景动画 */
#solutions .solution-visual .tech-icon {
  position: absolute; top: 18px; left: 20px; z-index: 3;
  font-size: 30px; line-height: 1;
  animation: none;
  filter: drop-shadow(0 2px 8px rgba(0,0,0,.16));
}
/* 场景动画容器 */
.scene {
  position: absolute; inset: 0; z-index: 1;
  overflow: hidden; pointer-events: none;
  border-radius: var(--radius-lg);
}

/* ========== 施工动画：施工现场全流程 ========== */
/* 天空：太阳 + 云朵 */
.sky-sun {
  position: absolute; right: 9%; top: 6%;
  width: 28px; height: 28px; border-radius: 50%;
  background: radial-gradient(circle, #ffe9a8 32%, rgba(255,217,102,.45) 58%, transparent 72%);
  animation: sunPulse 5s ease-in-out infinite;
}
.sky-cloud {
  position: absolute; left: -80px; top: 8%;
  width: 46px; height: 14px; border-radius: 12px;
  background: rgba(255,255,255,.55);
  animation: cloudDrift 30s linear infinite;
}
.sky-cloud::before, .sky-cloud::after {
  content: ''; position: absolute; border-radius: 50%;
  background: rgba(255,255,255,.55);
}
.sky-cloud::before { width: 16px; height: 16px; left: 9px; top: -8px; }
.sky-cloud::after { width: 22px; height: 22px; right: 7px; top: -12px; }
.sky-cloud.cloud-2 { top: 21%; width: 34px; height: 10px; animation-duration: 38s; animation-delay: -14s; }

/* 塔吊 */
.crane { position: absolute; left: 26%; bottom: 26px; width: 190px; height: 232px; z-index: 3; }
/* 塔吊底座（金属横撑 + 混凝土基座，插入地面） */
.crane::before {
  content: ''; position: absolute; left: 40px; bottom: 0;
  width: 36px; height: 12px;
  background: linear-gradient(180deg, rgba(140,140,140,.8), rgba(95,95,95,.4));
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.35);
  z-index: 2;
}
.crane::after {
  content: ''; position: absolute; left: 31px; bottom: -8px;
  width: 54px; height: 10px;
  background: linear-gradient(180deg, rgba(105,105,105,.55), rgba(105,105,105,.15));
  border-radius: 2px;
  z-index: 2;
}
.crane-beacon {
  position: absolute; left: 57px; top: -6px;
  width: 8px; height: 8px; border-radius: 50%;
  background: #ff5252;
  animation: beaconBlink 1.4s ease-in-out infinite;
  z-index: 4;
}
.crane-mast {
  position: absolute; left: 52px; top: 0; width: 12px; height: 232px;
  background: linear-gradient(90deg, rgba(105,105,105,.6), rgba(105,105,105,.16));
  border-radius: 3px;
}
.crane-mast::before {
  content: ''; position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent 0 20px, rgba(255,255,255,.32) 20px 22px);
}
.crane-mast::after {
  content: ''; position: absolute; left: 12px; top: 0; bottom: 0; width: 3px;
  background: repeating-linear-gradient(180deg, rgba(105,105,105,.35) 0 16px, transparent 16px 32px);
}
.crane-head {
  position: absolute; left: 0; top: 0; width: 190px; height: 232px;
  transform-origin: 58px 4px;
  animation: craneSwing 7s ease-in-out infinite;
}
.crane-pulley {
  position: absolute; left: 45px; top: -18px;
  width: 26px; height: 20px;
  background: linear-gradient(135deg, rgba(170,170,170,.95), rgba(100,100,100,.6));
  clip-path: polygon(50% 0, 100% 100%, 0 100%);
}
.crane-pulley::after {
  content: ''; position: absolute; left: 50%; top: -4px; transform: translateX(-50%);
  width: 10px; height: 4px; border-radius: 2px;
  background: rgba(190,190,190,.9);
}
.crane-jib {
  position: absolute; left: 54px; top: 2px; width: 118px; height: 8px;
  background:
    repeating-linear-gradient(90deg, rgba(120,120,120,.5) 0 14px, rgba(190,190,190,.85) 14px 16px),
    linear-gradient(180deg, rgba(190,190,190,.95), rgba(110,110,110,.55));
  border-radius: 3px 8px 8px 3px;
}
.crane-jib-counter {
  position: absolute; left: 20px; top: 3px; width: 34px; height: 6px;
  background: linear-gradient(180deg, rgba(190,190,190,.95), rgba(110,110,110,.55));
  border-radius: 8px 3px 3px 8px;
}
.crane-counter {
  position: absolute; left: 12px; top: 9px; width: 18px; height: 16px;
  background: repeating-linear-gradient(0deg, rgba(150,150,150,.95) 0 3px, rgba(95,95,95,.95) 3px 5px);
  border-radius: 2px;
}
.crane-cab {
  position: absolute; left: 40px; top: -7px; width: 26px; height: 20px;
  background: var(--accent); border-radius: 4px 4px 6px 6px;
  box-shadow: inset 0 -3px 0 rgba(0,0,0,.14);
}
.crane-cab::before {
  content: ''; position: absolute; right: 3px; top: 4px;
  width: 9px; height: 8px; border-radius: 2px;
  background: rgba(255,255,255,.75);
}
.crane-cable {
  position: absolute; left: 160px; top: 10px;
  width: 2px; height: 30px;
  background: rgba(190,190,190,.7);
  transform-origin: top center;
  animation: cableStretch 4.6s ease-in-out infinite;
}
.crane-hook {
  position: absolute; left: 158px; top: 10px; width: 6px; height: 30px;
  background: rgba(190,190,190,.85); border-radius: 2px;
  animation: hookLift 4.6s ease-in-out infinite;
}
.crane-hook::before {
  content: ''; position: absolute; left: -2px; top: 28px;
  width: 10px; height: 7px; border: 3px solid rgba(190,190,190,.9);
  border-top: none; border-radius: 0 0 9px 9px;
}
.crane-hook::after {
  content: ''; position: absolute; left: -13px; top: 34px;
  width: 30px; height: 20px;
  background: linear-gradient(135deg, var(--accent), var(--primary-light));
  border-radius: 3px; box-shadow: 0 5px 12px rgba(0,0,0,.28);
  animation: loadSway 4.6s ease-in-out infinite;
}

/* 施工进度标签 */
.progress-chip {
  position: absolute; left: 50%; top: 12px; transform: translateX(-50%);
  display: flex; align-items: center; gap: 6px;
  padding: 4px 9px; z-index: 2;
  background: rgba(255,255,255,.55);
  border: 1px solid var(--accent);
  border-radius: 8px;
  box-shadow: 0 4px 14px rgba(0,0,0,.14);
}
.progress-chip b { font-size: 10px; font-weight: 700; color: var(--accent); letter-spacing: 1px; }
.chip-bar { width: 46px; height: 5px; border-radius: 3px; background: rgba(128,128,128,.3); overflow: hidden; }
.chip-bar i {
  display: block; height: 100%; width: 0;
  background: linear-gradient(90deg, var(--primary-light), var(--accent));
  animation: chipFill 5.5s ease-in-out infinite;
}
.progress-chip em { font-style: normal; font-size: 10px; font-weight: 700; color: var(--accent); animation: chipPct 5.5s ease-in-out infinite; }

/* 建筑 + 脚手架 */
.building {
  position: absolute; right: 12%; bottom: 12%; width: 92px;
  display: flex; flex-direction: column-reverse; gap: 5px;
}
.scaffold {
  position: absolute; left: -14px; top: 0; bottom: 0; width: 13px;
  border-right: 2px solid rgba(180,150,90,.85);
  background: repeating-linear-gradient(180deg, rgba(200,175,120,.9) 0 3px, transparent 3px 24px);
  animation: scaffoldPulse 4.2s ease-in-out infinite;
}
.floor {
  position: relative; height: 28px; padding: 0 8px;
  display: flex; align-items: center; gap: 6px;
  background: linear-gradient(135deg, var(--accent), var(--primary-light));
  border-radius: 4px;
  transform-origin: bottom center;
  opacity: 0;
  animation: floorRise 7s ease-in-out infinite;
}
.floor i {
  flex: 1; height: 12px; border-radius: 2px;
  background: rgba(255,255,255,.42);
  animation: windowLight 3.6s ease-in-out infinite;
}
.floor i:nth-child(2) { animation-delay: .4s; }
.floor i:nth-child(3) { animation-delay: .8s; }
.floor.f1 { animation-delay: 0s; }
.floor.f2 { animation-delay: .55s; }
.floor.f3 { animation-delay: 1.1s; }
.floor.f4 { animation-delay: 1.65s; }
.floor.f5 { animation-delay: 2.2s; }
.building-roof {
  align-self: center; width: 92px; height: 12px;
  background: linear-gradient(135deg, var(--accent), var(--primary-light));
  border-radius: 4px 4px 0 0;
  opacity: 0;
  animation: roofRise 7s ease-in-out infinite;
  animation-delay: 2.75s;
}

/* 地面 */
.ground {
  position: absolute; left: 0; right: 0; bottom: 0; height: 26px;
  background: linear-gradient(180deg, rgba(105,105,105,.3), rgba(105,105,105,.1));
  border-top: 2px solid rgba(105,105,105,.45);
}
.ground::before {
  content: ''; position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, rgba(105,105,105,.16) 0 18px, transparent 18px 36px);
}

/* 材料堆放 */
.materials { position: absolute; left: 4%; bottom: 26px; display: flex; align-items: flex-end; gap: 7px; }
.mat-pile {
  width: 28px; height: 17px; border-radius: 50% 50% 6px 6px;
  background: linear-gradient(180deg, #e8c07a, #c79f56);
  border: 1px solid rgba(120,90,40,.4);
}
.mat-brick {
  width: 26px; height: 13px; border-radius: 2px;
  background: repeating-linear-gradient(0deg, #c96b5a 0 4px, #a84a3c 4px 5px);
  box-shadow: 5px -4px 0 #d97b6a, 11px -4px 0 #b85547;
}
.mat-steel {
  width: 24px; height: 8px; border-radius: 4px;
  background: repeating-linear-gradient(90deg, rgba(160,160,160,.95) 0 5px, rgba(90,90,90,.95) 5px 6px);
  transform: rotate(-9deg);
}

/* 运料车 */
.truck {
  position: absolute; left: 0; bottom: 26px;
  width: 64px; height: 30px; z-index: 2;
  animation: truckDrive 18s linear infinite;
}
.truck-body {
  position: absolute; left: 0; bottom: 9px;
  width: 42px; height: 20px;
  background: linear-gradient(180deg, var(--accent), var(--primary-light));
  border-radius: 2px 0 0 2px; opacity: .92;
}
.truck-body::before {
  content: ''; position: absolute; inset: 4px 4px;
  border: 1px dashed rgba(255,255,255,.55); border-radius: 2px;
}
.truck-cab {
  position: absolute; right: 0; bottom: 9px;
  width: 18px; height: 15px;
  background: rgba(105,105,105,.88);
  border-radius: 0 3px 2px 0;
}
.truck-cab::before {
  content: ''; position: absolute; right: 2px; top: 2px;
  width: 7px; height: 6px; border-radius: 2px;
  background: rgba(255,255,255,.6);
}
.truck-wheel {
  position: absolute; bottom: 0; width: 10px; height: 10px; border-radius: 50%;
  background: radial-gradient(circle at 50% 50%, #666 0 3px, #222 3px 5px);
  animation: wheelSpin .9s linear infinite;
}
.truck-wheel.w1 { left: 5px; }
.truck-wheel.w2 { right: 5px; }
.truck-wheel::after {
  content: ''; position: absolute; left: 4px; top: 1px;
  width: 2px; height: 3px; background: #fff; opacity: .5; border-radius: 1px;
}

/* 扬尘 */
.dust { position: absolute; left: 20%; bottom: 26px; width: 20px; height: 20px; }
.dust i {
  position: absolute; width: 5px; height: 5px; border-radius: 50%;
  background: rgba(170,150,120,.6);
  animation: dustRise 3.2s ease-out infinite;
}
.dust i:nth-child(2) { left: 12px; animation-delay: .7s; }
.dust i:nth-child(3) { left: -10px; animation-delay: 1.3s; }
.dust i:nth-child(4) { left: 6px; top: 4px; animation-delay: 2s; }

/* ========== 软件使用动画：软件界面操作 ========== */
.scene-app { display: flex; align-items: center; justify-content: center; }
.app-window {
  position: relative;
  width: 282px; height: 250px;
  background: var(--app-window-bg, rgba(255,255,255,.16));
  border: 1px solid var(--accent);
  border-radius: 12px;
  box-shadow: 0 18px 44px rgba(0,0,0,.26);
  display: flex; flex-direction: column;
  overflow: hidden;
  animation: appFloat 6s ease-in-out infinite;
}
.app-titlebar {
  display: flex; align-items: center; gap: 5px;
  height: 26px; padding: 0 10px;
  background: var(--accent);
  border-radius: 11px 11px 0 0;
  flex-shrink: 0;
}
.app-titlebar span { width: 7px; height: 7px; border-radius: 50%; background: rgba(255,255,255,.85); }
.app-titlebar span:nth-child(2) { opacity: .55; }
.app-titlebar span:nth-child(3) { opacity: .3; }
.app-titlebar b {
  margin: 0 auto; font-size: 10px; font-weight: 600; color: #fff;
  letter-spacing: 1px; opacity: .92;
}
.app-toolbar {
  display: flex; align-items: center; gap: 6px;
  height: 30px; padding: 0 10px;
  border-bottom: 1px solid rgba(128,128,128,.22);
  flex-shrink: 0;
}
.app-toolbar i {
  width: 15px; height: 15px; border-radius: 4px;
  background: var(--accent); opacity: .28;
  animation: toolbarPulse 3s ease-in-out infinite;
}
.app-toolbar i:nth-child(2) { border-radius: 50%; animation-delay: .4s; }
.app-toolbar i:nth-child(3) { animation-delay: .8s; }
.app-toolbar i:nth-child(4) { border-radius: 50%; animation-delay: 1.2s; }
.app-toolbar i:nth-child(5) { animation-delay: 1.6s; }
.app-main { flex: 1; display: flex; min-height: 0; }
.app-sidebar {
  width: 42px; flex-shrink: 0;
  display: flex; flex-direction: column; gap: 8px;
  padding: 10px 8px;
  border-right: 1px solid rgba(128,128,128,.18);
}
.app-sidebar i {
  height: 8px; border-radius: 4px;
  background: rgba(128,128,128,.45);
  animation: sidebarPulse 2.4s ease-in-out infinite;
}
.app-sidebar i:nth-child(1) { width: 68%; }
.app-sidebar i:nth-child(2) { width: 86%; background: var(--accent); box-shadow: 0 0 8px var(--accent); }
.app-sidebar i:nth-child(3) { width: 74%; }
.app-sidebar i:nth-child(4) { width: 60%; }
.app-content { flex: 1; padding: 10px 12px; display: flex; flex-direction: column; justify-content: space-between; min-width: 0; }
.chart-bars { display: flex; align-items: flex-end; gap: 8px; height: 46px; }
.chart-bars i {
  position: relative; flex: 1; height: var(--h, 60%);
  background: linear-gradient(180deg, var(--accent), var(--primary-light));
  border-radius: 4px 4px 2px 2px;
  transform-origin: bottom;
  opacity: 0;
  animation: barGrow 4.2s ease-in-out infinite;
}
.chart-bars i::after {
  content: ''; position: absolute; left: 50%; top: -3px; transform: translateX(-50%);
  width: 6px; height: 6px; border-radius: 50%;
  background: #fff; box-shadow: 0 0 6px var(--accent);
  animation: barTip 4.2s ease-in-out infinite;
}
.chart-bars i b {
  position: absolute; left: 50%; bottom: calc(100% + 3px); transform: translateX(-50%);
  font-size: 8px; font-weight: 700; color: var(--accent); white-space: nowrap;
  opacity: 0; animation: barTip 4.2s ease-in-out infinite;
}
.chart-bars i:nth-child(2) { animation-delay: .18s; }
.chart-bars i:nth-child(3) { animation-delay: .36s; }
.chart-bars i:nth-child(4) { animation-delay: .54s; }
.chart-bars i:nth-child(2)::after, .chart-bars i:nth-child(2) b { animation-delay: .18s; }
.chart-bars i:nth-child(3)::after, .chart-bars i:nth-child(3) b { animation-delay: .36s; }
.chart-bars i:nth-child(4)::after, .chart-bars i:nth-child(4) b { animation-delay: .54s; }
.chart-line { height: 48px; }
.chart-line svg { width: 100%; height: 48px; display: block; overflow: visible; }
.chart-line .line-path {
  fill: none; stroke: var(--accent); stroke-width: 2;
  stroke-linecap: round; stroke-linejoin: round;
  stroke-dasharray: 260; stroke-dashoffset: 260;
  animation: lineDraw 3.6s ease-in-out infinite;
}
.chart-line .line-fill {
  fill: var(--accent);
  animation: lineFill 3.6s ease-in-out infinite;
}
.chart-line .line-dot {
  fill: var(--accent); stroke: #fff; stroke-width: 1;
  animation: lineDot 3.6s ease-in-out infinite;
}
.app-rows { display: flex; flex-direction: column; gap: 6px; }
.app-row { display: flex; align-items: center; gap: 7px; }
.app-row em {
  width: 30px; height: 6px; border-radius: 3px;
  background: var(--accent); opacity: .4; flex-shrink: 0;
}
.progress { flex: 1; height: 6px; border-radius: 3px; background: rgba(128,128,128,.25); overflow: hidden; }
.progress i {
  display: block; height: 100%; width: 8%;
  background: linear-gradient(90deg, var(--primary-light), var(--accent));
  border-radius: 3px;
  animation: progressFill 3.8s ease-in-out infinite;
}
.app-row:nth-child(2) .progress i { animation-delay: .7s; }
.app-row b {
  width: 30px; flex-shrink: 0; text-align: right;
  font-size: 9px; font-weight: 700; color: var(--accent);
  animation: pctPulse 3.8s ease-in-out infinite;
}
.app-row:nth-child(2) b { animation-delay: .7s; }
.app-status {
  height: 20px; flex-shrink: 0;
  display: flex; align-items: center; padding: 0 10px;
  font-size: 9px; color: var(--accent);
  border-top: 1px solid rgba(128,128,128,.18);
  animation: statusBlink 4s ease-in-out infinite;
}
.app-cursor {
  position: absolute; right: 14px; bottom: 30px;
  width: 2px; height: 13px;
  background: var(--accent); border-radius: 1px;
  animation: cursorBlink 1.05s steps(2, start) infinite;
}
.app-toast {
  position: absolute; right: 10px; bottom: 30px;
  padding: 5px 9px;
  font-size: 10px; color: #fff;
  background: var(--accent);
  border-radius: 6px;
  box-shadow: 0 6px 14px rgba(0,0,0,.3);
  opacity: 0;
  animation: toastPop 6s ease-in-out infinite;
}
@keyframes craneSwing {
  0%, 100% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
}
@keyframes hookLift {
  0%, 10% { transform: translateY(0); }
  28% { transform: translateY(178px); }
  50% { transform: translateY(178px); }
  66% { transform: translateY(0); }
  100% { transform: translateY(0); }
}
@keyframes cableStretch {
  0%, 10% { transform: scaleY(1); }
  28%, 50% { transform: scaleY(6); }
  66%, 100% { transform: scaleY(1); }
}
@keyframes loadSway {
  0%, 24% { opacity: 0; transform: rotate(0deg) scale(.8); }
  32% { opacity: 1; transform: rotate(0deg) scale(1); }
  50% { opacity: 1; transform: rotate(4deg) scale(1); }
  60% { opacity: 1; transform: rotate(-3deg) scale(1); }
  70% { opacity: 1; transform: rotate(0deg) scale(1); }
  84% { opacity: 1; transform: rotate(2deg) scale(1); }
  100% { opacity: 0; transform: rotate(0deg) scale(.9); }
}
@keyframes floorRise {
  0% { transform: scaleY(0); opacity: 0; }
  8% { transform: scaleY(1); opacity: 1; }
  90% { transform: scaleY(1); opacity: 1; }
  100% { transform: scaleY(0); opacity: 0; }
}
@keyframes roofRise {
  0% { transform: scaleY(0); opacity: 0; }
  10% { transform: scaleY(1); opacity: 1; }
  90% { transform: scaleY(1); opacity: 1; }
  100% { transform: scaleY(0); opacity: 0; }
}
@keyframes windowLight {
  0%, 100% { opacity: .35; }
  50% { opacity: .9; }
}
@keyframes scaffoldPulse {
  0%, 100% { opacity: .75; }
  50% { opacity: 1; }
}
@keyframes sunPulse {
  0%, 100% { transform: scale(1); opacity: .85; }
  50% { transform: scale(1.12); opacity: 1; }
}
@keyframes cloudDrift {
  from { transform: translateX(0); }
  to { transform: translateX(760px); }
}
@keyframes beaconBlink {
  0%, 100% { box-shadow: 0 0 0 0 rgba(255,82,82,.55); opacity: 1; }
  50% { box-shadow: 0 0 0 6px rgba(255,82,82,0); opacity: .6; }
}
@keyframes chipFill {
  0% { width: 8%; }
  45%, 82% { width: 75%; }
  100% { width: 75%; }
}
@keyframes chipPct {
  0%, 10% { opacity: .3; }
  40%, 85% { opacity: 1; }
  100% { opacity: 1; }
}
@keyframes truckDrive {
  from { transform: translateX(-90px); }
  to { transform: translateX(720px); }
}
@keyframes wheelSpin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
@keyframes dustRise {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  15% { opacity: .7; }
  100% { transform: translate(12px, -50px) scale(1.9); opacity: 0; }
}
@keyframes barGrow {
  0% { transform: scaleY(.12); opacity: .35; }
  14% { transform: scaleY(1); opacity: 1; }
  84% { transform: scaleY(1); opacity: 1; }
  100% { transform: scaleY(.12); opacity: .35; }
}
@keyframes barTip {
  0% { opacity: 0; }
  14%, 84% { opacity: 1; }
  100% { opacity: 0; }
}
@keyframes lineDraw {
  0%, 12% { stroke-dashoffset: 260; }
  55%, 88% { stroke-dashoffset: 0; }
  100% { stroke-dashoffset: 0; }
}
@keyframes lineFill {
  0%, 42% { opacity: 0; }
  60%, 88% { opacity: .14; }
  100% { opacity: .14; }
}
@keyframes lineDot {
  0%, 34% { opacity: 0; }
  48%, 88% { opacity: 1; }
  100% { opacity: 1; }
}
@keyframes progressFill {
  0%, 10% { width: 6%; }
  55% { width: 92%; }
  88%, 100% { width: 92%; }
}
@keyframes pctPulse {
  0%, 12% { opacity: .3; }
  30%, 85% { opacity: 1; }
  100% { opacity: 1; }
}
@keyframes toolbarPulse {
  0%, 100% { opacity: .25; transform: scale(1); }
  50% { opacity: .9; transform: scale(1.15); }
}
@keyframes sidebarPulse {
  0%, 100% { opacity: .5; }
  50% { opacity: 1; }
}
@keyframes statusBlink {
  0%, 100% { opacity: 1; }
  50% { opacity: .45; }
}
@keyframes toastPop {
  0%, 14% { opacity: 0; transform: translateY(8px); }
  24%, 52% { opacity: 1; transform: translateY(0); }
  64%, 100% { opacity: 0; transform: translateY(4px); }
}
@keyframes cursorBlink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }
@keyframes appFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}
/* 各解决方案 tab 动画节奏差异化 */
.solution-content:nth-child(3) .solution-visual::before { animation-direction: reverse; animation-duration: 12s; }
.solution-content:nth-child(4) .solution-visual::before { animation-duration: 21s; }
.solution-content:nth-child(5) .solution-visual::before { animation-direction: reverse; animation-duration: 18s; }
.solution-content:nth-child(6) .solution-visual::before { animation-duration: 14s; }
.solution-content:nth-child(6) .solution-visual .tech-icon { animation-duration: 4.2s; }
.solution-content:nth-child(7) .solution-visual::before { animation-direction: reverse; animation-duration: 23s; }
.solution-content:nth-child(7) .solution-visual .tech-icon { animation-duration: 2.9s; }
/* 施工/软件场景 tab 差异化 */
#tab-design .crane-head { animation-duration: 9s; }
#tab-design .building .floor, #tab-design .building-roof { animation-duration: 9s; }
#tab-design .truck { animation-duration: 21s; }
#tab-construct .crane-head { animation-duration: 6.5s; }
#tab-construct .building .floor, #tab-construct .building-roof { animation-duration: 6s; }
#tab-construct .truck { animation-duration: 13s; }
#tab-bim .crane-head { animation-duration: 8.5s; }
#tab-bim .building .floor, #tab-bim .building-roof { animation-duration: 8s; }
#tab-bim .truck { animation-duration: 16s; }
#tab-realestate .app-window { animation-duration: 5.5s; }
#tab-consult .app-window { animation-duration: 7.5s; }
#tab-gov .app-window { animation-duration: 6.5s; }
@keyframes solutionFloat {
  0%, 100% { transform: translate(0, 0); }
  50% { transform: translate(-16px, 20px); }
}
@keyframes iconFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-12px); }
}

/* ========== Features (why us) ========== */
.features-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.feature-card { text-align: center; padding: 40px 24px; }
.feature-card .icon {
  width: 72px; height: 72px; margin: 0 auto 20px; border-radius: 20px;
  display: flex; align-items: center; justify-content: center; font-size: 30px;
  background: var(--icon-bg, linear-gradient(135deg, rgba(0,102,204,0.1), rgba(0,180,216,0.1)));
}
.feature-card h4 { font-size: 18px; font-weight: 700; margin-bottom: 8px; }
.feature-card p { color: var(--gray-600); font-size: 14px; }

/* ========== Clients ========== */
.clients-scroll { display: flex; gap: 40px; align-items: center; justify-content: center; flex-wrap: wrap; }
.client-item {
  padding: 16px 32px; background: var(--white); border-radius: var(--radius);
  box-shadow: var(--shadow-sm); color: var(--gray-600); font-size: 14px;
  font-weight: 500; transition: var(--transition);
}
.client-item:hover { color: var(--primary); box-shadow: var(--shadow); }

/* ========== CTA ========== */
.cta {
  background: var(--cta-bg, linear-gradient(135deg, var(--primary), var(--primary-dark)));
  text-align: center; padding: 80px 24px; color: var(--cta-text, var(--white));
}
.cta h2 { font-size: 36px; font-weight: 700; margin-bottom: 12px; }
.cta p { font-size: 16px; opacity: 0.85; margin-bottom: 32px; }
.cta .btn-primary { background: var(--white); color: var(--primary); box-shadow: 0 4px 20px rgba(0,0,0,0.2); }
.cta .btn-primary:hover { box-shadow: 0 8px 30px rgba(0,0,0,0.3); }
.cta .btn-outline { border-color: rgba(255,255,255,0.4); color: var(--white); }
.cta .btn-outline:hover { border-color: var(--white); background: rgba(255,255,255,0.1); }

/* ========== Footer ========== */
.footer { background: var(--footer-bg, var(--dark)); color: var(--footer-text, #8899aa); padding: 64px 0 32px; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 48px; margin-bottom: 48px; }
.footer-info h3 { color: var(--footer-heading, var(--white)); font-size: 18px; margin-bottom: 16px; }
.footer-info p { font-size: 14px; line-height: 1.8; margin-bottom: 20px; }
.footer h4 { color: var(--footer-heading, var(--white)); font-size: 15px; font-weight: 600; margin-bottom: 20px; }
.footer-links a { display: block; color: var(--footer-text, #8899aa); font-size: 14px; padding: 4px 0; transition: var(--transition); }
.footer-links a:hover { color: var(--accent); padding-left: 4px; }
.footer-contact li { display: flex; align-items: flex-start; gap: 8px; font-size: 14px; margin-bottom: 12px; }
.footer-contact li .icon { color: var(--accent); flex-shrink: 0; margin-top: 2px; }
.footer-bottom { border-top: 1px solid var(--footer-border, rgba(255,255,255,0.08)); padding-top: 24px; text-align: center; font-size: 13px; }
.footer-bottom a { color: var(--accent); }

/* ========== Page Banner ========== */
.page-banner {
  padding: 140px 0 60px; background: var(--banner-bg, linear-gradient(160deg, var(--dark), var(--gray-900)));
  text-align: center; color: var(--banner-title-color, var(--white));
}
.page-banner h1 { font-size: 40px; font-weight: 700; margin-bottom: 8px; }
.page-banner p { color: var(--banner-desc-color, #7a8fa3); font-size: 16px; }

/* ========== About Page ========== */
.about-intro { padding: 80px 0; }
.about-intro .container { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.about-intro h2 { font-size: 32px; font-weight: 700; margin-bottom: 20px; }
.about-intro p { color: var(--gray-600); font-size: 15px; line-height: 1.9; margin-bottom: 16px; }
.about-image {
  border-radius: var(--radius-lg); min-height: 360px;
  overflow: hidden;
}

.values-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.value-card {
  background: var(--white); border-radius: var(--radius-lg); padding: 40px 28px;
  text-align: center; box-shadow: var(--shadow-sm); transition: var(--transition);
}
.value-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.value-card .icon {
  width: 64px; height: 64px; border-radius: 16px; margin: 0 auto 20px;
  display: flex; align-items: center; justify-content: center; font-size: 28px;
  background: var(--icon-bg, linear-gradient(135deg, rgba(0,102,204,0.1), rgba(0,180,216,0.1)));
}
.value-card h4 { font-size: 18px; font-weight: 700; margin-bottom: 8px; }
.value-card p { color: var(--gray-600); font-size: 14px; }

.timeline { position: relative; padding-left: 40px; }
.timeline::before { content: ''; position: absolute; left: 15px; top: 0; bottom: 0; width: 2px; background: var(--gray-200); }
.timeline-item { position: relative; padding-bottom: 32px; }
.timeline-item::before {
  content: ''; position: absolute; left: -31px; top: 4px;
  width: 12px; height: 12px; background: var(--primary); border-radius: 50%;
  border: 3px solid var(--white); box-shadow: 0 0 0 2px var(--primary);
}
.timeline-item .year { font-weight: 700; color: var(--primary); font-size: 16px; }
.timeline-item p { color: var(--gray-600); font-size: 14px; margin-top: 4px; }

/* ========== Contact ========== */
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }
.contact-info h3 { font-size: 24px; font-weight: 700; margin-bottom: 20px; }
.contact-info li { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 20px; font-size: 15px; color: var(--gray-700); }
.contact-info .icon { color: var(--primary); font-size: 20px; flex-shrink: 0; margin-top: 2px; }
.contact-form { background: var(--white); border-radius: var(--radius-lg); padding: 40px; box-shadow: var(--shadow); }
.form-group { margin-bottom: 20px; }
.form-group label { display: block; font-size: 14px; font-weight: 600; margin-bottom: 6px; color: var(--gray-700); }
.form-group input, .form-group textarea {
  width: 100%; padding: 12px 16px; border: 1px solid var(--gray-200); border-radius: var(--radius);
  font-size: 15px; transition: var(--transition); font-family: inherit;
}
.form-group input:focus, .form-group textarea:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(0,102,204,0.1); }
.form-group textarea { resize: vertical; min-height: 120px; }

/* ========== News Page ========== */
.news-list { max-width: 860px; margin: 0 auto; }
.news-item {
  display: grid; grid-template-columns: auto 1fr; gap: 20px; padding: 24px 0;
  border-bottom: 1px solid var(--gray-200); transition: var(--transition);
}
.news-item:hover { padding-left: 8px; }
.news-date {
  text-align: center; padding: 8px 16px; background: var(--gray-100);
  border-radius: var(--radius); min-width: 70px;
}
.news-date .day { font-size: 24px; font-weight: 700; color: var(--primary); display: block; }
.news-date .month { font-size: 12px; color: var(--gray-600); }
.news-item h3 { font-size: 17px; font-weight: 600; margin-bottom: 6px; }
.news-item h3 a { color: inherit; }
.news-item h3 a:hover { color: var(--primary); }
.news-item p { color: var(--gray-600); font-size: 14px; line-height: 1.6; }
.news-item .meta { color: var(--gray-500); font-size: 13px; margin-top: 8px; }

/* ========== Training Page ========== */
.training-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-bottom: 60px; }
.training-card {
  background: var(--white); border-radius: var(--radius-lg); overflow: hidden;
  box-shadow: var(--shadow-sm); transition: var(--transition);
}
.training-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.training-card-header {
  padding: 32px 28px; background: linear-gradient(135deg, var(--primary), var(--primary-dark));
  color: var(--white); text-align: center;
}
.training-card-header h3 { font-size: 20px; font-weight: 700; }
.training-card-header .level { font-size: 13px; opacity: 0.8; margin-top: 4px; }
.training-card-body { padding: 24px 28px; }
.training-card-body li { padding: 8px 0; font-size: 14px; color: var(--gray-600); border-bottom: 1px solid var(--gray-100); }
.training-card-body li::before { content: '✓'; color: var(--primary); margin-right: 8px; font-weight: 700; }

/* ========== Download Page ========== */
.download-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.download-card {
  background: var(--white); border-radius: var(--radius-lg); padding: 28px;
  box-shadow: var(--shadow-sm); transition: var(--transition);
  display: flex; gap: 20px; align-items: flex-start;
}
.download-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-2px); }
.download-icon {
  width: 56px; height: 56px; border-radius: 14px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center; font-size: 24px;
  background: var(--icon-bg, linear-gradient(135deg, rgba(0,102,204,0.1), rgba(0,180,216,0.1)));
}
.download-info h4 { font-size: 16px; font-weight: 600; margin-bottom: 6px; }
.download-info p { color: var(--gray-600); font-size: 13px; margin-bottom: 12px; }
.download-info .meta { font-size: 12px; color: var(--gray-500); }

/* ========== 下载中心：搜索栏（滚动时固定在顶部菜单下方） ========== */
#download { padding-top: 34px; }
.download-search-wrap {
  position: sticky; top: 68px; z-index: 90;
  background: var(--section-bg, #f8fafc);
  border-bottom: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 6px 18px rgba(15,23,42,.06);
  padding: 16px 0;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.download-search { display: flex; align-items: center; gap: 12px; max-width: 680px; margin: 0 auto; }
.download-search .dl-search-icon {
  position: absolute; left: 26px; color: var(--gray-400); font-size: 16px; pointer-events: none;
}
.download-search input {
  flex: 1; height: 48px; border-radius: 24px; border: 2px solid transparent;
  background: var(--white); padding: 0 24px 0 44px; font-size: 14px; color: var(--dark);
  box-shadow: var(--shadow-sm); outline: none; transition: border-color .2s, box-shadow .2s;
}
.download-search input:focus { border-color: var(--primary); box-shadow: 0 0 0 4px rgba(0,102,204,.12); }
.download-search input::placeholder { color: var(--gray-400); }
.dl-search-btn {
  height: 48px; padding: 0 26px; border: none; border-radius: 24px; cursor: pointer;
  font-size: 14px; font-weight: 600; color: #fff; white-space: nowrap;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  box-shadow: 0 6px 16px rgba(0,102,204,.28); transition: transform .2s, box-shadow .2s;
}
.dl-search-btn:hover { transform: translateY(-1px); box-shadow: 0 8px 20px rgba(0,102,204,.35); }

/* ========== 下载中心：左右两栏 ========== */
.download-layout { display: flex; gap: 24px; align-items: flex-start; }
.dl-sidebar { width: 230px; flex-shrink: 0; position: sticky; top: 146px; }
.dl-sidebar-card {
  background: var(--white); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm); padding: 14px;
}
.dl-sidebar-title {
  padding: 6px 10px 12px; font-size: 15px; font-weight: 700; color: var(--dark);
  border-bottom: 1px solid var(--gray-100); margin-bottom: 8px;
}
.dl-sidebar ul { list-style: none; }
.dl-sidebar a {
  display: flex; align-items: center; gap: 10px;
  padding: 11px 12px; border-radius: 10px; text-decoration: none;
  color: var(--gray-600); font-size: 14px; transition: all .2s;
}
.dl-sidebar a:hover { background: var(--gray-50); color: var(--primary); }
.dl-sidebar a.active {
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  color: #fff; box-shadow: 0 6px 14px rgba(0,102,204,.25);
}
.dl-group-icon { font-size: 17px; }
.dl-count {
  margin-left: auto; min-width: 22px; text-align: center; font-size: 12px;
  background: rgba(0,0,0,.07); color: var(--gray-500); border-radius: 12px; padding: 2px 7px;
}
.dl-sidebar a.active .dl-count { background: rgba(255,255,255,.25); color: #fff; }

.dl-main { flex: 1; min-width: 0; }
.dl-panel { display: none; }
.dl-panel.active { display: block; animation: dlFade .3s ease; }

/* 搜索结果（跨大类合并） */
.dl-results-head {
  background: linear-gradient(135deg, #334155, #475569);
  box-shadow: 0 8px 20px rgba(51,65,85,.28);
}
.dl-badge {
  display: inline-block; margin-right: 8px; padding: 2px 10px;
  border-radius: 10px; font-size: 11px; font-weight: 600;
  background: rgba(0,102,204,.1); color: var(--primary);
  vertical-align: 1px;
}
.dl-item:nth-child(n) .dl-badge { background: rgba(0,102,204,.1); color: var(--primary); }
.dl-panel-head {
  display: flex; align-items: center; gap: 14px;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  color: #fff; border-radius: var(--radius-lg); padding: 18px 22px; margin-bottom: 16px;
  box-shadow: 0 8px 20px rgba(0,102,204,.22);
}
.dl-panel-icon { font-size: 26px; }
.dl-panel-head h3 { font-size: 17px; font-weight: 700; margin: 0 0 3px; color: #fff; }
.dl-panel-head p { font-size: 12px; opacity: .85; margin: 0; }
.dl-list { display: block; }
.dl-item {
  display: flex; align-items: center; gap: 16px;
  background: var(--white); border-radius: var(--radius-lg);
  padding: 16px 20px; margin-bottom: 12px;
  box-shadow: var(--shadow-sm); transition: transform .2s, box-shadow .2s;
}
.dl-item:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); }
.dl-item-icon {
  width: 46px; height: 46px; border-radius: 12px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center; font-size: 20px;
  background: var(--icon-bg, linear-gradient(135deg, rgba(0,102,204,0.1), rgba(0,180,216,0.1)));
}
.dl-item-info { flex: 1; min-width: 0; }
.dl-item-name { font-size: 15px; font-weight: 600; color: var(--dark); line-height: 1.4; }
.dl-item-desc { font-size: 12px; color: var(--gray-500); margin-top: 4px; line-height: 1.5; }
.dl-item-meta {
  display: flex; flex-direction: column; gap: 4px; align-items: flex-end; flex-shrink: 0;
  font-size: 12px; color: var(--gray-500);
}
.dl-btn {
  flex-shrink: 0; padding: 8px 18px; border-radius: 20px; font-size: 13px; font-weight: 600;
  color: #fff; text-decoration: none; white-space: nowrap;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  box-shadow: 0 4px 12px rgba(0,102,204,.25); transition: transform .2s, box-shadow .2s;
}
.dl-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(0,102,204,.35); }
.dl-btn.outline {
  background: transparent; color: var(--primary);
  border: 1.5px solid var(--primary); box-shadow: none;
}
.dl-btn.outline:hover { background: rgba(0,102,204,.06); }
.dl-empty {
  text-align: center; padding: 48px 20px; color: var(--gray-400); font-size: 14px;
  background: var(--white); border-radius: var(--radius-lg); border: 1px dashed var(--gray-200);
}
@keyframes dlFade {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
/* 下载列表分页 */
.dl-pagination {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  padding: 14px 0 6px;
}
.pg-btn, .pg-num {
  min-width: 36px; height: 36px; padding: 0 14px;
  border: 1px solid var(--gray-200); border-radius: 10px;
  background: var(--white); color: var(--gray-600); font-size: 13px;
  cursor: pointer; transition: all .2s;
}
.pg-btn:hover:not(:disabled), .pg-num:hover { border-color: var(--primary); color: var(--primary); }
.pg-btn:disabled { opacity: .45; cursor: not-allowed; }
.pg-num.active {
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  border-color: transparent; color: #fff; font-weight: 600;
  box-shadow: 0 4px 12px rgba(0,102,204,.25);
}
.pg-info { font-size: 13px; color: var(--gray-500); padding: 0 6px; }

/* ========== 产品详情页 ========== */
.dl-item-link { color: var(--dark); text-decoration: none; transition: color .2s; }
.dl-item-link:hover { color: var(--primary); }
.dl-sidebar-back {
  display: block; margin-top: 12px; padding: 11px 16px; border-radius: 12px;
  text-align: center; font-size: 13px; font-weight: 600; text-decoration: none;
  color: var(--primary); background: rgba(0,102,204,.08); transition: background .2s;
}
.dl-sidebar-back:hover { background: rgba(0,102,204,.14); }

.dl-detail { min-width: 0; }
/* 上栏：产品信息 */
.dl-detail-top {
  display: flex; align-items: center; gap: 22px;
  background: linear-gradient(135deg, #0f3d5c, #155d8f);
  color: #fff; border-radius: var(--radius-lg); padding: 26px 28px;
  box-shadow: 0 10px 26px rgba(15,61,92,.28); margin-bottom: 18px;
}
.dl-detail-icon {
  width: 76px; height: 76px; border-radius: 18px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center; font-size: 36px;
  background: rgba(255,255,255,.14); box-shadow: inset 0 0 0 1px rgba(255,255,255,.18);
}
.dl-detail-info { flex: 1; min-width: 0; }
.dl-detail-tags { margin-bottom: 8px; }
.dl-detail-info .dl-badge { background: rgba(255,255,255,.18); color: #fff; font-size: 12px; }
.dl-detail-title { font-size: 24px; font-weight: 700; margin: 0 0 12px; line-height: 1.3; }
.dl-detail-meta { display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: 13px; opacity: .9; }
.dl-detail-meta b { color: #ffe08a; font-weight: 600; }
.dl-detail-actions { flex-shrink: 0; text-align: center; }
.dl-btn-lg { display: inline-block; padding: 12px 30px; font-size: 15px; border-radius: 26px; }
.dl-detail-hint { display: block; margin-top: 8px; font-size: 12px; opacity: .75; }

/* 下栏：选项卡 */
.dl-detail-tabs {
  display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 14px;
  padding: 6px; border-radius: 14px; background: #eef2f7;
}
.dl-tab {
  border: none; background: transparent; cursor: pointer;
  padding: 10px 20px; border-radius: 10px; font-size: 14px; font-weight: 600;
  color: var(--gray-600); font-family: inherit; transition: all .2s;
}
.dl-tab:hover { color: var(--primary); }
.dl-tab.active {
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  color: #fff; box-shadow: 0 4px 12px rgba(0,102,204,.28);
}
.dl-tab-count {
  display: inline-block; margin-left: 6px; padding: 1px 8px; border-radius: 10px;
  font-size: 11px; background: rgba(0,102,204,.12); color: var(--primary);
}
.dl-tab.active .dl-tab-count { background: rgba(255,255,255,.25); color: #fff; }

.dl-tab-panel { display: none; }
.dl-tab-panel.active { display: block; animation: dlFade .25s ease; }

.dl-notes {
  background: var(--white); border-radius: var(--radius-lg); padding: 24px 26px;
  box-shadow: var(--shadow-sm); line-height: 1.9; font-size: 14px; color: var(--gray-700);
  white-space: pre-line;
}
.dl-desc-content {
  background: var(--white); border-radius: var(--radius-lg); padding: 24px 26px;
  box-shadow: var(--shadow-sm); line-height: 1.9; font-size: 14px; color: var(--gray-700);
  white-space: pre-line;
}

/* 产品教程 */
.dl-tutorial-list { display: block; }
.dl-tutorial-item {
  display: flex; align-items: center; gap: 14px;
  background: var(--white); border-radius: var(--radius-lg);
  padding: 15px 18px; margin-bottom: 10px; text-decoration: none;
  box-shadow: var(--shadow-sm); transition: transform .2s, box-shadow .2s;
}
.dl-tutorial-item:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); }
.dl-tutorial-play {
  width: 42px; height: 42px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; color: #fff;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  box-shadow: 0 4px 10px rgba(0,102,204,.28);
}
.dl-tutorial-name { flex: 1; min-width: 0; font-size: 14px; font-weight: 600; color: var(--dark); }
.dl-tutorial-go { flex-shrink: 0; font-size: 12px; color: var(--gray-400); }
.dl-tutorial-item:hover .dl-tutorial-go { color: var(--primary); }

/* 相关版本 */
.dl-related-head { font-size: 13px; color: var(--gray-500); margin: 0 0 12px; padding-left: 2px; }

/* ========== Responsive ========== */
@media (max-width: 1024px) {
  .products-grid { grid-template-columns: repeat(2, 1fr); }
  .features-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .solution-grid { grid-template-columns: 1fr; }
  .about-intro .container { grid-template-columns: 1fr; }
  .hero h1 { font-size: 38px; }
  .hero-visual { display: none; }
}

@media (max-width: 768px) {
  .header-inner { height: 60px; }
  .nav { display: none; }
  .nav.open { display: flex; flex-direction: column; position: absolute; top: 60px; left: 0; right: 0; background: var(--nav-mobile-bg, var(--dark)); padding: 16px; border-top: 1px solid var(--header-border, rgba(255,255,255,0.06)); }
  .nav-dropdown { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; background: transparent; padding-left: 20px; }
  .menu-toggle { display: block; }
  .products-grid { grid-template-columns: 1fr; }
  .features-grid { grid-template-columns: 1fr; }
  .values-grid { grid-template-columns: 1fr; }
  .training-cards { grid-template-columns: 1fr; }
  .download-grid { grid-template-columns: 1fr; }
  .download-search-wrap { top: 60px; padding: 12px 0; }
  .download-layout { flex-direction: column; }
  .dl-sidebar { width: 100%; position: static; }
  .dl-sidebar-card { overflow-x: auto; white-space: nowrap; }
  .dl-sidebar-card ul { display: flex; gap: 6px; }
  .dl-sidebar-card li { flex-shrink: 0; }
  .dl-sidebar a { padding: 9px 12px; }
  .dl-item { flex-wrap: wrap; gap: 12px; padding: 14px 16px; }
  .dl-item-info { flex: 1 1 100%; }
  .dl-item-meta { flex-direction: row; gap: 12px; align-items: center; }
  .dl-search-btn { padding: 0 18px; }
  .dl-detail-top { flex-wrap: wrap; padding: 20px 18px; gap: 16px; }
  .dl-detail-icon { width: 60px; height: 60px; font-size: 28px; }
  .dl-detail-title { font-size: 20px; }
  .dl-detail-actions { width: 100%; text-align: left; }
  .dl-tab { padding: 9px 14px; font-size: 13px; }
  .footer-grid { grid-template-columns: 1fr; }
  .contact-grid { grid-template-columns: 1fr; }
  .hero h1 { font-size: 30px; }
  .hero-stats { gap: 24px; flex-wrap: wrap; }
  .section-header h2 { font-size: 28px; }
  .section { padding: 60px 0; }
}
