/* ============================================================
   青焱智能 Qingyan Intelligence — Design System v4.0
   AI TECH • LIGHT BLUE • CLEAN & MODERN
   Built by UI Designer | 2026
   ============================================================ */

/* === CSS Reset & Base === */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body{
  font-family:"PingFang SC","Microsoft YaHei","Helvetica Neue",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#334155;
  background:#f0f5fa;
  line-height:1.7;
  overflow-x:hidden;
  font-size:16px;
}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
ul{list-style:none}

/* ============================================================
   DESIGN TOKEN SYSTEM — LIGHT BLUE THEME
   ============================================================ */
:root{
  /* --- Core Backgrounds --- */
  --bg-deep:      #e8f0f8;
  --bg-primary:   #f0f5fa;
  --bg-surface:   #f5f8fc;
  --bg-elevated:  #ffffff;
  --bg-card:      rgba(255,255,255,0.92);
  --bg-glass:     rgba(255,255,255,0.7);

  /* --- Brand Accents — Light Blue AI Palette --- */
  --cyan-400:     #4da8da;
  --cyan-500:     #3b91c4;
  --cyan-600:     #2e7aab;
  --cyan-900:     #1a4d6e;

  --purple-400:   #9b7fd4;
  --purple-500:   #7c5cbf;
  --purple-600:   #6240a8;
  --purple-900:   #3a2060;

  --blue-400:     #60a5fa;
  --blue-500:     #3b82f6;
  --blue-600:     #2563eb;

  --emerald-400:  #34d399;
  --emerald-500:  #10b981;

  --orange-400:   #fb923c;
  --orange-500:   #f97316;

  --rose-400:     #fb7185;
  --rose-500:     #f43f5e;

  /* --- Text Colors --- */
  --text-primary:   #0f172a;
  --text-secondary: #475569;
  --text-muted:     #94a3b8;
  --text-inverse:   #ffffff;

  /* --- Border Colors --- */
  --border-subtle:  rgba(148,163,184,0.2);
  --border-default: rgba(148,163,184,0.3);
  --border-strong:  rgba(148,163,184,0.45);
  --border-glow:    rgba(59,130,246,0.3);

  /* --- Typography --- */
  --font-display: "PingFang SC","Microsoft YaHei",sans-serif;
  --font-body:    "PingFang SC","Microsoft YaHei","Helvetica Neue",sans-serif;
  --font-mono:    "SF Mono","Fira Code","JetBrains Mono","Consolas",monospace;
  --font-tech:    "SF Mono","Fira Code","JetBrains Mono",monospace;

  --text-xs:    0.75rem;
  --text-sm:    0.875rem;
  --text-base:  1rem;
  --text-lg:    1.125rem;
  --text-xl:    1.25rem;
  --text-2xl:   1.5rem;
  --text-3xl:   1.875rem;
  --text-4xl:   2.25rem;
  --text-5xl:   3rem;
  --text-6xl:   3.75rem;

  --leading-tight:  1.25;
  --leading-normal: 1.6;
  --leading-relaxed:1.75;

  /* --- Spacing (4px base) --- */
  --space-1:  0.25rem;
  --space-2:  0.5rem;
  --space-3:  0.75rem;
  --space-4:  1rem;
  --space-5:  1.25rem;
  --space-6:  1.5rem;
  --space-8:  2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;

  /* --- Border Radius --- */
  --radius-sm:   0.375rem;
  --radius-md:   0.5rem;
  --radius-lg:   0.75rem;
  --radius-xl:   1rem;
  --radius-2xl:  1.25rem;
  --radius-3xl:  1.5rem;
  --radius-full: 9999px;

  /* --- Shadows (Light theme) --- */
  --shadow-sm:     0 1px 2px rgba(0,0,0,0.05);
  --shadow-md:     0 4px 12px rgba(0,0,0,0.06);
  --shadow-lg:     0 10px 30px rgba(0,0,0,0.08);
  --shadow-xl:     0 20px 50px rgba(0,0,0,0.1);

  --glow-cyan:     0 0 20px rgba(59,130,246,0.15), 0 0 40px rgba(59,130,246,0.06);
  --glow-cyan-sm:  0 0 10px rgba(59,130,246,0.1);
  --glow-purple:   0 0 20px rgba(124,92,191,0.15), 0 0 40px rgba(124,92,191,0.06);
  --glow-blue:     0 0 20px rgba(59,130,246,0.15), 0 0 40px rgba(59,130,246,0.06);
  --glow-emerald:  0 0 20px rgba(16,185,129,0.15);
  --glow-orange:   0 0 20px rgba(249,115,22,0.15);

  /* --- Transitions --- */
  --ease-out:     cubic-bezier(0.16,1,0.3,1);
  --ease-in-out:  cubic-bezier(0.65,0,0.35,1);
  --ease-spring:  cubic-bezier(0.34,1.56,0.64,1);
  --duration-fast:   150ms;
  --duration-normal: 300ms;
  --duration-slow:   500ms;
  --duration-slower: 800ms;

  /* --- Gradients --- */
  --gradient-cyan:      linear-gradient(135deg, #3b82f6, #60a5fa);
  --gradient-purple:    linear-gradient(135deg, #6240a8, #7c5cbf, #9b7fd4);
  --gradient-blue:      linear-gradient(135deg, #2563eb, #3b82f6, #60a5fa);
  --gradient-ai:        linear-gradient(135deg, #2563eb, #3b82f6, #7c5cbf);
  --gradient-scrm:      linear-gradient(135deg, #f97316, #fb923c, #fbbf24);
  --gradient-hero:      linear-gradient(160deg, #dce8f4 0%, #e8f0f8 40%, #f0f5fa 100%);
  --gradient-card-hover:linear-gradient(135deg, rgba(59,130,246,0.04), rgba(124,92,191,0.04));
  --gradient-border:    linear-gradient(135deg, #3b82f6, #7c5cbf, #3b82f6);

  /* --- Layout --- */
  --header-h: 56px;
  --container-max: 1200px;
  --content-max: 900px;
}

/* ============================================================
   LAYOUT SYSTEM
   ============================================================ */
.container{
  max-width:var(--container-max);
  margin:0 auto;
  padding:0 var(--space-6);
}
.container-sm{max-width:var(--content-max);margin:0 auto;padding:0 var(--space-6)}
@media(max-width:768px){
  .container,.container-sm{padding:0 var(--space-5)}
}

.section{padding:var(--space-20) 0}
.section-sm{padding:var(--space-12) 0}
.section-lg{padding:var(--space-24) 0}

.bg-surface{background:var(--bg-surface);position:relative}
.bg-elevated{background:var(--bg-elevated);position:relative}

.text-center{text-align:center}
.text-left{text-align:left}

/* ============================================================
   SECTION HEADERS — TECH STYLE
   ============================================================ */
.section-tag{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:5px 18px;
  background:rgba(59,130,246,0.08);
  border:1px solid rgba(59,130,246,0.2);
  color:var(--blue-500);
  border-radius:var(--radius-full);
  font-size:var(--text-xs);
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
  margin-bottom:var(--space-5);
  font-family:var(--font-tech);
}
.section-tag::before{
  content:'';
  width:6px;height:6px;
  background:var(--blue-500);
  border-radius:50%;
  box-shadow:0 0 6px rgba(59,130,246,0.4);
  animation:tagPulse 2s ease-in-out infinite;
}
@keyframes tagPulse{
  0%,100%{box-shadow:0 0 6px rgba(59,130,246,0.4)}
  50%{box-shadow:0 0 12px rgba(59,130,246,0.5),0 0 20px rgba(59,130,246,0.3)}
}

.section-title{
  font-size:var(--text-4xl);
  font-weight:900;
  line-height:var(--leading-tight);
  letter-spacing:-0.02em;
  margin-bottom:var(--space-4);
  color:var(--text-primary);
}

.section-subtitle{
  font-size:var(--text-lg);
  color:var(--text-secondary);
  max-width:40em;
  line-height:var(--leading-relaxed);
  margin-bottom:var(--space-10);
}
.text-center .section-subtitle{margin-left:auto;margin-right:auto}

@media(max-width:768px){
  .section-title{font-size:var(--text-2xl)}
  .section-subtitle{font-size:var(--text-base);margin-bottom:var(--space-8)}
  .section{padding:var(--space-12) 0}
}

/* ============================================================
   NAVIGATION — GLASS TECH
   ============================================================ */
.navbar{
  position:sticky;top:0;left:0;right:0;
  z-index:1000;
  height:var(--header-h);
  background:rgba(255,255,255,0.92);
  backdrop-filter:blur(10px) saturate(140%);
  -webkit-backdrop-filter:blur(10px) saturate(140%);
  border-bottom:1px solid rgba(59,130,246,0.1);
  transition:all var(--duration-normal) var(--ease-out);
}
.navbar.scrolled{
  background:rgba(255,255,255,0.72);
  backdrop-filter:blur(16px) saturate(160%);
  -webkit-backdrop-filter:blur(16px) saturate(160%);
  border-bottom-color:rgba(59,130,246,0.12);
  box-shadow:0 4px 24px rgba(0,0,0,0.04);
}
.navbar .container{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:100%;
  max-width:none;
  width:100%;
  padding-left:var(--space-4);
  padding-right:var(--space-6);
}
.nav-logo{
  display:inline-flex;
  align-items:center;
  gap:var(--space-3);
  font-size:1.35rem;
  font-weight:800;
  color:var(--text-primary);
  letter-spacing:-0.02em;
  text-decoration:none;
  margin-left:0;
  flex-shrink:0;
}
.nav-logo-img{
  height:36px;
  width:auto;
  max-width:140px;
  object-fit:contain;
  display:block;
  flex-shrink:0;
}
.nav-logo-text{
  white-space:nowrap;
}
.footer-logo-img{
  height:28px;
  width:auto;
  max-width:120px;
  object-fit:contain;
  vertical-align:middle;
  margin-right:6px;
  display:inline-block;
}
.nav-logo .logo-icon{
  width:42px;height:42px;
  background:var(--gradient-ai);
  border-radius:var(--radius-lg);
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:1.1rem;
  box-shadow:0 0 20px rgba(59,130,246,0.3);
  position:relative;
  flex-shrink:0;
}
.nav-logo .logo-icon::after{
  content:'';
  position:absolute;
  inset:-2px;
  border-radius:var(--radius-lg);
  background:var(--gradient-border);
  z-index:-1;
  opacity:0;
  transition:opacity var(--duration-fast);
}
.nav-logo:hover .logo-icon::after{opacity:1}

/* Nav Links */
.nav-links{
  display:flex;
  align-items:center;
  gap:2px;
}
.nav-links a{
  padding:6px 14px;
  border-radius:var(--radius-md);
  font-size:var(--text-sm);
  font-weight:500;
  color:var(--text-secondary);
  transition:all var(--duration-fast) var(--ease-out);
  position:relative;
}
.nav-links a:hover{
  color:var(--blue-500);
  background:rgba(59,130,246,0.06);
}
.nav-links a.active{
  color:var(--blue-500);
  background:rgba(59,130,246,0.08);
  font-weight:600;
  box-shadow:inset 0 0 0 1px rgba(59,130,246,0.15);
}

/* Mobile Toggle */
.mobile-toggle{
  display:none;
  flex-direction:column;
  gap:5px;
  cursor:pointer;
  padding:8px 4px;
  z-index:1001;
  background:none;
  border:none;
}
.mobile-toggle span{
  display:block;
  width:24px;height:2px;
  background:var(--text-secondary);
  border-radius:2px;
  transition:all var(--duration-normal) var(--ease-out);
}
.mobile-toggle.open span{background:var(--blue-500)}
.mobile-toggle.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.mobile-toggle.open span:nth-child(2){opacity:0}
.mobile-toggle.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}

@media(max-width:768px){
  .nav-links{
    display:none;
    position:fixed;
    top:var(--header-h);
    left:0;right:0;
    background:rgba(255,255,255,0.97);
    backdrop-filter:blur(24px);
    flex-direction:column;
    padding:var(--space-4) var(--space-6);
    border-bottom:1px solid rgba(59,130,246,0.1);
    box-shadow:var(--shadow-lg);
    gap:4px;
  }
  .nav-links.open{display:flex}
  .nav-links a{
    width:100%;
    padding:12px 16px;
    font-size:var(--text-base);
  }
  .mobile-toggle{display:flex}
  .nav-item{position:relative}
}

/* ============================================================
   BUTTON SYSTEM — NEON GLOW
   ============================================================ */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:var(--space-2);
  padding:10px 24px;
  border-radius:var(--radius-md);
  font-weight:600;
  font-size:var(--text-sm);
  font-family:inherit;
  border:none;
  cursor:pointer;
  transition:all var(--duration-normal) var(--ease-out);
  text-align:center;
  white-space:nowrap;
  position:relative;
  overflow:hidden;
}
.btn:active{transform:scale(0.97)}
.btn:focus-visible{
  outline:2px solid var(--blue-500);
  outline-offset:2px;
}
.btn img{
  width:1.1em;
  height:1.1em;
  object-fit:contain;
  display:inline-block;
  vertical-align:middle;
  flex-shrink:0;
}

/* Primary — Blue gradient */
.btn-primary{
  background:linear-gradient(135deg, #2563eb, #3b82f6);
  color:#fff;
  box-shadow:0 2px 12px rgba(59,130,246,0.25);
}
.btn-primary:hover{
  transform:translateY(-2px);
  box-shadow:0 4px 20px rgba(59,130,246,0.35), 0 8px 16px rgba(59,130,246,0.15);
}

/* Outline — Blue border */
.btn-outline{
  background:transparent;
  border:1.5px solid rgba(59,130,246,0.35);
  color:var(--blue-500);
}
.btn-outline:hover{
  background:rgba(59,130,246,0.06);
  border-color:var(--blue-500);
  box-shadow:0 0 12px rgba(59,130,246,0.1);
  transform:translateY(-2px);
}
.btn-outline-light{
  border:1.5px solid rgba(148,163,184,0.35);
  color:var(--text-primary);
  background:rgba(255,255,255,0.5);
  backdrop-filter:blur(10px);
}
.btn-outline-light:hover{
  background:rgba(255,255,255,0.8);
  border-color:rgba(59,130,246,0.4);
  box-shadow:0 0 16px rgba(59,130,246,0.1);
  transform:translateY(-2px);
}

/* Accent — Purple gradient */
.btn-accent{
  background:linear-gradient(135deg, #6240a8, #7c5cbf);
  color:#fff;
  box-shadow:0 2px 12px rgba(124,92,191,0.25);
}
.btn-accent:hover{
  transform:translateY(-2px);
  box-shadow:0 4px 20px rgba(124,92,191,0.35), 0 8px 16px rgba(124,92,191,0.15);
}

/* Ghost */
.btn-ghost{
  background:transparent;
  color:var(--text-secondary);
}
.btn-ghost:hover{
  background:rgba(59,130,246,0.06);
  color:var(--text-primary);
}

.btn.has-custom-color{
  background:var(--btn-custom-bg) !important;
  border-color:var(--btn-custom-bg) !important;
  color:#fff !important;
  box-shadow:0 2px 12px color-mix(in srgb, var(--btn-custom-bg) 30%, transparent);
}
.btn.has-custom-color:hover{
  filter:brightness(1.08);
  transform:translateY(-2px);
  box-shadow:0 4px 20px color-mix(in srgb, var(--btn-custom-bg) 40%, transparent);
}
.btn-lg{padding:14px 32px;font-size:var(--text-base);border-radius:var(--radius-lg)}
.btn-xl{padding:16px 40px;font-size:var(--text-lg);border-radius:var(--radius-xl)}
.btn-block{width:100%}

/* ============================================================
   HERO CAROUSEL — IMMERSIVE TECH
   ============================================================ */
.hero-carousel{
  position:relative;
  width:100%;
  overflow:hidden;
  background:var(--bg-deep);
  margin-top:0;
}
.hero-carousel .carousel-track{
  display:flex;
  transition:transform 0.7s var(--ease-in-out);
}
.hero-carousel .carousel-slide{
  min-width:100%;
  position:relative;
}
.hero-slide{
  min-height:820px;
  display:flex;
  align-items:center;
  position:relative;
  overflow:hidden;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
/* 首页轮播：按后台裁剪比例完整展示（1920×820） */
.hero-carousel:not(.hero-carousel--sm) .hero-slide{
  min-height:0;
  height:auto;
  aspect-ratio:1920 / 820;
  background-size:100% 100%;
  background-position:center;
  background-repeat:no-repeat;
}

/* Home carousel slides — background images（选择器需对准 .carousel-slide 下的 .hero-slide） */
.hero-carousel .carousel-slide:nth-child(1) .hero-slide{background-image:url('images/banner-1.png')}
.hero-carousel .carousel-slide:nth-child(2) .hero-slide{background-image:url('images/banner-2.jpg')}
.hero-carousel .carousel-slide:nth-child(3) .hero-slide{background-image:url('images/banner-3.jpg')}

.hero-carousel .hero-slide::before{
  display:none;
}

.hero-carousel .hero-slide .container{
  color:#fff;
  text-shadow:0 2px 16px rgba(0,0,0,0.25);
}
.hero-carousel .hero-slide h1,.hero-carousel .hero-slide h2{
  background:none;
  -webkit-text-fill-color:initial;
  color:#fff;
}
.hero-carousel .hero-slide p{
  color:rgba(255,255,255,0.9);
  opacity:1;
}
.hero-carousel .hero-slide .btn-outline-light{
  color:#fff;
  border-color:rgba(255,255,255,0.5);
  background:rgba(255,255,255,0.08);
  backdrop-filter:blur(10px);
}
.hero-carousel .hero-slide .btn-outline-light:hover{
  background:rgba(255,255,255,0.2);
  border-color:#fff;
  color:#fff;
}

/* Inner-page carousel slides — light gradient background */
.hero-carousel--sm .hero-slide{
  background-image:none;
}
.hero-carousel--sm .hero-slide.has-hero-bg{
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.hero-carousel--sm .hero-slide.has-hero-bg::before{
  display:none;
}
.hero-carousel--sm .hero-slide.has-hero-bg .container{
  color:#fff;
  text-shadow:0 2px 16px rgba(0,0,0,0.25);
}
.hero-carousel--sm .hero-slide.has-hero-bg h2{
  background:none;
  -webkit-text-fill-color:initial;
  color:#fff;
}
.hero-carousel--sm .hero-slide.has-hero-bg p{
  color:rgba(255,255,255,0.9);
  opacity:1;
}
.hero-carousel--sm .hero-slide::before{
  background:
    radial-gradient(ellipse at 35% 50%, rgba(59,130,246,0.10) 0%, transparent 55%),
    radial-gradient(ellipse at 70% 30%, rgba(124,92,191,0.05) 0%, transparent 50%),
    radial-gradient(ellipse at 40% 90%, rgba(59,130,246,0.04) 0%, transparent 60%);
}
.hero-carousel--sm .hero-slide .container{
  color:var(--text-primary);
  text-shadow:none;
}
.hero-carousel--sm .hero-slide h1,.hero-carousel--sm .hero-slide h2{
  background:linear-gradient(135deg, #1e3a5f 0%, #2563eb 50%, #7c5cbf 100%);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.hero-carousel--sm .hero-slide p{
  color:var(--text-secondary);
  opacity:0.75;
}

/* Floating orbs — inner pages only */
.hero-carousel--sm .hero-slide::after{
  content:'';
  position:absolute;
  width:500px;height:500px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(59,130,246,0.06) 0%, transparent 70%);
  top:15%;right:-8%;
  z-index:1;
  animation:heroOrbFloat 10s ease-in-out infinite;
}
.hero-carousel--sm .hero-slide:nth-child(2)::after{
  background:radial-gradient(circle, rgba(16,185,129,0.06) 0%, transparent 70%);
  left:-10%;right:auto;top:auto;bottom:10%;
  animation-delay:-3s;
}
.hero-carousel--sm .hero-slide:nth-child(3)::after{
  background:radial-gradient(circle, rgba(124,92,191,0.06) 0%, transparent 70%);
  top:auto;bottom:5%;right:5%;
  animation-delay:-6s;
}

/* Data particles in hero */
.hero-particles{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  overflow:hidden;
}
.hero-particle{
  position:absolute;
  width:2px;height:2px;
  background:var(--cyan-400);
  border-radius:50%;
  animation:particleFloat linear infinite;
}

.hero-slide .container{
  position:relative;
  z-index:2;
  color:var(--text-primary);
  padding-top:var(--space-8);
  text-align:left;
  max-width:560px;
  margin-left:10%;
  margin-right:auto;
  padding-left:var(--space-6);
  padding-right:var(--space-6);
}
.hero-slide h1,.hero-slide h2{
  font-size:var(--text-6xl);
  font-weight:900;
  line-height:1.1;
  letter-spacing:-0.04em;
  margin-bottom:var(--space-5);
  max-width:none;
  white-space:nowrap;
  background:linear-gradient(135deg, #1e3a5f 0%, #2563eb 50%, #7c5cbf 100%);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  animation:fadeInUp 0.8s var(--ease-out);
}
.hero-slide h1.rich-html,.hero-slide h2.rich-html{
  background:none !important;
  -webkit-background-clip:border-box !important;
  background-clip:border-box !important;
  -webkit-text-fill-color:currentColor;
  color:#fff;
}
.hero-slide h1 br,.hero-slide h2 br,
.hero-slide h1.rich-html br,.hero-slide h2.rich-html br{
  display:none !important;
}
.hero-slide h1.rich-html > p,.hero-slide h2.rich-html > p,
.hero-slide h1.rich-html > div,.hero-slide h2.rich-html > div{
  display:inline !important;
  white-space:nowrap;
  margin:0 !important;
  padding:0 !important;
}
.hero-slide p{
  font-size:var(--text-xl);
  opacity:0.75;
  max-width:520px;
  line-height:var(--leading-relaxed);
  margin-bottom:var(--space-8);
  margin-left:0;
  animation:fadeInUp 0.8s 0.15s var(--ease-out) both;
  color:var(--text-secondary);
}
.hero-slide .btn{
  animation:fadeInUp 0.8s 0.3s var(--ease-out) both;
}

/* 首页轮播：按钮统一相对整张图定位（与第一张一致） */
.hero-carousel:not(.hero-carousel--sm) .hero-slide .container{
  position:static !important;
  min-height:280px;
  padding-bottom:88px;
  box-sizing:border-box;
}
.hero-carousel:not(.hero-carousel--sm) .hero-slide .container > .btn,
.hero-carousel:not(.hero-carousel--sm) .hero-btn-center{
  position:absolute !important;
  left:24% !important;
  top:80% !important;
  bottom:auto !important;
  right:auto !important;
  transform:translate(-50%,-50%) !important;
  z-index:5 !important;
  margin:0 !important;
  animation:none !important;
}
.hero-carousel:not(.hero-carousel--sm) .hero-slide .container > p{
  margin-bottom:0;
}
@media(max-width:768px){
  .hero-carousel:not(.hero-carousel--sm) .hero-slide .container > .btn,
  .hero-carousel:not(.hero-carousel--sm) .hero-btn-center{
    left:22% !important;
  }
}

/* 首页仅第一张：标题/副标题居中偏上 */
.hero-carousel:not(.hero-carousel--sm) .carousel-slide:first-child .hero-slide,
.hero-carousel:not(.hero-carousel--sm) .carousel-slide.is-first-hero .hero-slide{
  align-items:flex-start;
}
.hero-carousel:not(.hero-carousel--sm) .carousel-slide:first-child .hero-slide .container,
.hero-carousel:not(.hero-carousel--sm) .carousel-slide.is-first-hero .hero-slide .container{
  min-height:0 !important;
  padding-bottom:0 !important;
  margin:0 !important;
  max-width:none !important;
  width:100%;
  text-align:center;
}
.hero-carousel:not(.hero-carousel--sm) .carousel-slide:first-child .hero-slide .container > h2,
.hero-carousel:not(.hero-carousel--sm) .carousel-slide.is-first-hero .hero-slide .container > h2,
.hero-carousel:not(.hero-carousel--sm) .carousel-slide:first-child .hero-slide .container > p,
.hero-carousel:not(.hero-carousel--sm) .carousel-slide.is-first-hero .hero-slide .container > p{
  position:absolute !important;
  left:50% !important;
  width:auto;
  max-width:min(96vw,1100px);
  margin:0 !important;
  text-align:center;
  z-index:4;
}
.hero-carousel:not(.hero-carousel--sm) .carousel-slide:first-child .hero-slide .container > h2,
.hero-carousel:not(.hero-carousel--sm) .carousel-slide.is-first-hero .hero-slide .container > h2{
  top:28% !important;
  transform:translate(-50%,-100%) !important;
}
.hero-carousel:not(.hero-carousel--sm) .carousel-slide:first-child .hero-slide .container > p,
.hero-carousel:not(.hero-carousel--sm) .carousel-slide.is-first-hero .hero-slide .container > p{
  top:30% !important;
  transform:translate(-50%,0) !important;
}
.hero-btn-group{
  display:flex;
  gap:var(--space-4);
  flex-wrap:wrap;
}
.hero-btn-group .btn{
  animation:fadeInUp 0.8s 0.3s var(--ease-out) both;
}
.hero-btn-group .btn:nth-child(2){
  animation-delay:0.45s;
}
.btn-outline-white{
  background:transparent;
  color:#fff;
  border:2px solid rgba(255,255,255,0.6);
}
.btn-outline-white:hover{
  background:rgba(255,255,255,0.15);
  border-color:#fff;
  color:#fff;
  transform:translateY(-2px);
  box-shadow:0 4px 16px rgba(255,255,255,0.15);
}
.btn-outline-white:active{
  transform:translateY(0);
}

/* Hero indicators */
.carousel-indicators{
  display:flex;
  justify-content:center;
  gap:10px;
  position:absolute;
  bottom:36px;
  left:0;right:0;
  z-index:5;
}
.carousel-indicators button{
  width:32px;height:3px;
  border-radius:2px;
  border:none;
  background:rgba(148,163,184,0.35);
  cursor:pointer;
  transition:all var(--duration-normal) var(--ease-out);
}
.carousel-indicators button.active{
  width:48px;
  background:var(--blue-500);
  box-shadow:0 0 8px rgba(59,130,246,0.3);
}

@keyframes heroOrbFloat{
  0%,100%{transform:translate(0,0) scale(1)}
  33%{transform:translate(40px,-30px) scale(1.1)}
  66%{transform:translate(-25px,15px) scale(0.92)}
}
@keyframes particleFloat{
  0%{transform:translateY(680px) translateX(0); opacity:0}
  10%{opacity:0.8}
  90%{opacity:0.8}
  100%{transform:translateY(-40px) translateX(40px); opacity:0}
}
@keyframes fadeInUp{
  from{opacity:0;transform:translateY(30px)}
  to{opacity:1;transform:translateY(0)}
}

@media(max-width:1024px){
  .hero-slide{min-height:620px}
  .hero-carousel:not(.hero-carousel--sm) .hero-slide{
    min-height:0;
    height:auto;
    aspect-ratio:1920 / 820;
  }
  .hero-slide .container{max-width:480px;margin-left:6%}
  .hero-slide h1,.hero-slide h2{font-size:var(--text-4xl)}
  .hero-slide p{font-size:var(--text-lg)}
}
@media(max-width:640px){
  .hero-slide{min-height:500px}
  .hero-carousel:not(.hero-carousel--sm) .hero-slide{
    min-height:0;
    height:auto;
    aspect-ratio:1920 / 820;
  }
  .hero-slide .container{max-width:var(--container-max);margin-left:auto;margin-right:auto;padding-left:var(--space-5);padding-right:var(--space-5)}
  .hero-slide h1,.hero-slide h2{font-size:var(--text-2xl)}
  .hero-slide p{font-size:var(--text-base)}
  .carousel-indicators button{width:24px;height:3px}
  .carousel-indicators button.active{width:36px}
}

/* ── Inner-page hero (small) ── */
.hero-carousel--sm .hero-slide{min-height:420px}
@media(max-width:1024px){.hero-carousel--sm .hero-slide{min-height:380px}}
@media(max-width:640px){.hero-carousel--sm .hero-slide{min-height:320px}}

/* Page Banner (inner pages) */
.page-banner{
  background:linear-gradient(160deg, #dce8f4 0%, #e8f0f8 50%, #f0f5fa 100%);
  color:var(--text-primary);
  padding:var(--space-16) 0 var(--space-12);
  text-align:center;
  position:relative;
  overflow:hidden;
}
.page-banner::before{
  content:'';
  position:absolute;
  inset:0;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(59,130,246,0.08) 0%, transparent 60%),
    radial-gradient(ellipse at 80% 100%, rgba(124,92,191,0.05) 0%, transparent 50%);
}
.page-banner h1{
  font-size:var(--text-4xl);
  font-weight:900;
  letter-spacing:-0.03em;
  margin-bottom:var(--space-4);
  position:relative;z-index:1;
  color:var(--text-primary);
}
.page-banner p{
  font-size:var(--text-lg);
  opacity:0.65;
  position:relative;z-index:1;
  color:var(--text-secondary);
}

/* ============================================================
   CARD SYSTEM — WHITE + SHADOW
   ============================================================ */
.card-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:var(--space-6);
}
.card-grid-2{grid-template-columns:repeat(2,1fr)}
.card-grid-4{grid-template-columns:repeat(4,1fr)}

.card{
  background:#fff;
  border-radius:var(--radius-xl);
  padding:var(--space-8);
  border:1px solid var(--border-subtle);
  transition:all var(--duration-normal) var(--ease-out);
  position:relative;
  overflow:hidden;
}
.card::before{
  content:'';
  position:absolute;
  inset:0;
  background:var(--gradient-card-hover);
  opacity:0;
  transition:opacity var(--duration-normal) var(--ease-out);
  z-index:0;
  border-radius:inherit;
}
.card:hover{
  transform:translateY(-4px);
  border-color:rgba(59,130,246,0.25);
  box-shadow:0 12px 36px rgba(0,0,0,0.08), 0 4px 12px rgba(0,0,0,0.04);
}
.card:hover::before{opacity:1}
.card > *{position:relative;z-index:1}

/* Card icon container */
.card-icon-wrap{
  width:52px;height:52px;
  border-radius:var(--radius-lg);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.5rem;
  margin-bottom:var(--space-5);
  transition:all var(--duration-normal) var(--ease-out);
  position:relative;
  overflow:hidden;
}
.card-icon-wrap img{width:28px;height:28px;object-fit:contain;flex-shrink:0}
.card:hover .card-icon-wrap{transform:scale(1.1)}
.card-icon-wrap.cyan{background:rgba(59,130,246,0.1);color:var(--blue-500);box-shadow:0 0 12px rgba(59,130,246,0.08)}
.card-icon-wrap.purple{background:rgba(124,92,191,0.1);color:var(--purple-500);box-shadow:0 0 12px rgba(124,92,191,0.08)}
.card-icon-wrap.green{background:rgba(16,185,129,0.1);color:var(--emerald-500);box-shadow:0 0 12px rgba(16,185,129,0.08)}
.card-icon-wrap.orange{background:rgba(249,115,22,0.1);color:var(--orange-500);box-shadow:0 0 12px rgba(249,115,22,0.08)}
.card-icon-wrap.blue{background:rgba(59,130,246,0.1);color:var(--blue-500);box-shadow:0 0 12px rgba(59,130,246,0.08)}
.card-icon-wrap.rose{background:rgba(244,63,94,0.1);color:var(--rose-500);box-shadow:0 0 12px rgba(244,63,94,0.08)}

.card h3{
  font-size:var(--text-lg);
  font-weight:700;
  margin-bottom:var(--space-3);
  color:var(--text-primary);
}
.card p{
  font-size:var(--text-sm);
  color:var(--text-secondary);
  line-height:var(--leading-relaxed);
}

/* ============================================================
   FEATURE BOXES — TECH STYLE
   ============================================================ */
.feature-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:var(--space-5);
}
.feature-grid--tight{
  max-width:1000px;
  margin-left:auto;
  margin-right:auto;
}
.feature-box{
  background:#fff;
  border-radius:var(--radius-xl);
  padding:var(--space-6);
  border:1px solid var(--border-subtle);
  transition:all var(--duration-normal) var(--ease-out);
}
.feature-box:hover{
  border-color:rgba(59,130,246,0.25);
  box-shadow:0 8px 30px rgba(0,0,0,0.06), 0 2px 8px rgba(0,0,0,0.03);
  transform:translateY(-3px);
}
.feat-icon{
  width:48px;height:48px;
  border-radius:var(--radius-lg);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.25rem;
  margin-bottom:var(--space-4);
  transition:all var(--duration-normal) var(--ease-out);
  overflow:hidden;
}
.feat-icon img{width:24px;height:24px;object-fit:contain}
.feature-box:hover .feat-icon{transform:scale(1.12)}
.feat-icon.cyan{background:rgba(59,130,246,0.1);color:var(--blue-500)}
.feat-icon.purple{background:rgba(124,92,191,0.1);color:var(--purple-500)}
.feat-icon.green{background:rgba(16,185,129,0.1);color:var(--emerald-500)}
.feat-icon.orange{background:rgba(249,115,22,0.1);color:var(--orange-500)}
.feat-icon.blue{background:rgba(59,130,246,0.1);color:var(--blue-500)}
.feat-icon.rose{background:rgba(244,63,94,0.1);color:var(--rose-500)}
.feat-icon.amber{background:rgba(251,191,36,0.1);color:#eab308}
.feature-box h4{
  font-size:var(--text-base);
  font-weight:700;
  margin-bottom:var(--space-2);
  color:var(--text-primary);
}
.feature-box p{
  font-size:var(--text-sm);
  color:var(--text-secondary);
  line-height:var(--leading-relaxed);
}

/* ============================================================
   STATS COUNTER — DIGITAL DISPLAY
   ============================================================ */
#stats.section{
  padding:var(--space-8) 0;
}
.stats-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:var(--space-5);
  text-align:center;
}
.stat-item{
  position:relative;
  padding:var(--space-5) var(--space-4);
  background:#fff;
  border-radius:var(--radius-xl);
  border:1px solid var(--border-subtle);
  transition:all var(--duration-normal) var(--ease-out);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.stat-item:hover{
  transform:translateY(-6px);
  border-color:rgba(59,130,246,0.25);
  box-shadow:0 20px 40px rgba(59,130,246,0.08);
}
.stat-item .stat-icon{
  width:56px;
  height:56px;
  border-radius:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:var(--space-5);
  background:linear-gradient(135deg, rgba(59,130,246,0.08) 0%, rgba(59,130,246,0.02) 100%);
  color:var(--blue-500);
  font-size:1.5rem;
  transition:all var(--duration-normal) var(--ease-out);
  overflow:hidden;
}
.stat-item .stat-icon img{width:28px;height:28px;object-fit:contain;flex-shrink:0}
.stat-item:hover .stat-icon{
  transform:scale(1.08) rotate(-4deg);
  background:linear-gradient(135deg, rgba(59,130,246,0.12) 0%, rgba(59,130,246,0.04) 100%);
  box-shadow:0 8px 20px rgba(59,130,246,0.12);
}
.stat-item .stat-value{
  font-size:var(--text-5xl);
  font-weight:900;
  color:var(--blue-500);
  line-height:1;
  margin-bottom:var(--space-3);
  font-family:var(--font-tech);
}
.stat-item .stat-label{
  font-size:var(--text-sm);
  color:var(--text-secondary);
  font-weight:500;
}

/* ============================================================
   TIMELINE — CYBER STYLE
   ============================================================ */
/* ============================================================
   HORIZONTAL TIMELINE — 青焱智能成长之路
   ============================================================ */
.timeline-h{
  position:relative;
  padding:var(--space-10) 0;
}
.timeline-h-scroll{
  overflow:hidden;
  padding:var(--space-12) 0 var(--space-6);
  margin:0 calc(-1 * var(--space-6));
  cursor:grab;
  touch-action:pan-y;
  user-select:none;
}
.timeline-h-scroll.is-dragging{
  cursor:grabbing;
}
.timeline-h-track{
  display:flex;
  gap:0;
  padding:0 var(--space-12);
  min-width:max-content;
  position:relative;
  will-change:transform;
  backface-visibility:hidden;
}
.timeline-h-track::before{
  content:'';
  position:absolute;
  left:var(--space-12);
  right:var(--space-12);
  top:44px;
  height:3px;
  background:linear-gradient(90deg,
    rgba(59,130,246,0.1) 0%,
    var(--blue-500) 25%,
    #7c5cbf 50%,
    var(--blue-500) 75%,
    rgba(59,130,246,0.1) 100%
  );
  border-radius:2px;
  z-index:0;
}
.timeline-h-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  position:relative;
  z-index:1;
  flex:0 0 320px;
  width:320px;
  min-width:320px;
  max-width:320px;
  padding:0 var(--space-6);
  box-sizing:content-box;
}
.timeline-h-node{
  min-width:fit-content;
  width:auto;
  height:36px;
  padding:0 var(--space-4);
  border-radius:18px;
  background:linear-gradient(135deg, var(--blue-500), #7c5cbf);
  border:3px solid #fff;
  box-shadow:0 0 0 3px rgba(59,130,246,0.08), 0 4px 16px rgba(59,130,246,0.15);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-bottom:var(--space-6);
  position:relative;
  z-index:2;
  flex-shrink:0;
  white-space:nowrap;
}
.timeline-h-node span{
  font-size:12px;
  font-weight:700;
  color:#fff;
  font-family:var(--font-tech);
  letter-spacing:0.03em;
}
.timeline-h-card{
  background:#fff;
  border-radius:var(--radius-xl);
  border:1px solid var(--border-subtle);
  padding:var(--space-6);
  text-align:center;
  width:100%;
  transition:all var(--duration-normal) var(--ease-out);
  box-shadow:0 2px 12px rgba(0,0,0,0.04);
}
.timeline-h-card:hover{
  transform:translateY(-4px);
  border-color:rgba(59,130,246,0.2);
  box-shadow:0 12px 32px rgba(59,130,246,0.08), 0 4px 12px rgba(0,0,0,0.04);
}
.timeline-h-card h4{
  font-size:var(--text-base);
  font-weight:700;
  color:var(--text-primary);
  margin-bottom:var(--space-2);
}
.timeline-h-date{
  display:inline-block;
  font-size:var(--text-xs);
  font-weight:600;
  color:var(--blue-500);
  background:rgba(59,130,246,0.08);
  padding:2px var(--space-2);
  border-radius:4px;
  margin-bottom:var(--space-2);
  letter-spacing:0.02em;
}
.timeline-h-card p{
  font-size:var(--text-sm);
  color:var(--text-secondary);
  line-height:var(--leading-relaxed);
  margin:0;
}

@media(max-width:768px){
  .timeline-h-item{flex-basis:260px;width:260px;min-width:260px;max-width:260px;padding:0 var(--space-4)}
  .timeline-h-card{padding:var(--space-5)}
  .timeline-h-track{padding:0 var(--space-6)}
  .timeline-h-track::before{left:var(--space-6);right:var(--space-6)}
}

/* ============================================================
   PRICING CARDS — CLEAN & ELEVATED
   ============================================================ */
.pricing-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:var(--space-6);
  align-items:stretch;
}
.pricing-card{
  background:#fff;
  border-radius:var(--radius-2xl);
  overflow:hidden;
  border:1px solid var(--border-subtle);
  transition:all var(--duration-normal) var(--ease-out);
  position:relative;
  display:flex;
  flex-direction:column;
}
.pricing-card:hover{
  transform:translateY(-4px);
  border-color:rgba(59,130,246,0.2);
  box-shadow:0 12px 40px rgba(0,0,0,0.08), 0 4px 12px rgba(0,0,0,0.04);
}
.pricing-card.featured{
  border-color:rgba(59,130,246,0.35);
  box-shadow:0 4px 24px rgba(59,130,246,0.1), 0 8px 32px rgba(0,0,0,0.06);
  transform:scale(1.04);
  z-index:2;
  background:#f8fbff;
}
.pricing-card.featured::before{
  content:'';
  position:absolute;
  inset:-1px;
  border-radius:var(--radius-2xl);
  background:var(--gradient-border);
  z-index:-1;
  opacity:0.3;
}
.pricing-card.featured:hover{
  transform:scale(1.04) translateY(-6px);
  box-shadow:0 16px 48px rgba(59,130,246,0.12), 0 8px 24px rgba(0,0,0,0.06);
}
.pricing-card.featured .pricing-badge{
  background:var(--gradient-blue);
  box-shadow:0 2px 12px rgba(59,130,246,0.25);
}
.pricing-badge{
  position:absolute;
  top:16px;right:16px;
  background:var(--gradient-purple);
  color:#fff;
  padding:4px 14px;
  border-radius:var(--radius-full);
  font-size:var(--text-xs);
  font-weight:700;
  z-index:3;
}
.pricing-header{
  padding:var(--space-8) var(--space-6) var(--space-6);
  text-align:center;
  background:#f8fafc;
  border-bottom:1px solid var(--border-subtle);
}
.pricing-card.featured .pricing-header{
  background:rgba(59,130,246,0.04);
  border-bottom-color:rgba(59,130,246,0.12);
}
.pricing-header h3{
  font-size:var(--text-xl);
  font-weight:800;
  margin-bottom:var(--space-1);
  color:var(--text-primary);
}
.pricing-header .pricing-sub{
  font-size:var(--text-xs);
  color:var(--text-muted);
  margin-bottom:var(--space-4);
}
.pricing-price{
  font-size:2.75rem;
  font-weight:900;
  color:var(--blue-500);
  line-height:1;
  font-family:var(--font-tech);
}
.pricing-card.featured .pricing-price{
  color:var(--blue-500);
}
.pricing-price span{
  font-size:var(--text-sm);
  font-weight:500;
  color:var(--text-muted);
  display:block;
  margin-top:var(--space-1);
}
.pricing-body{padding:var(--space-6);flex:1;display:flex;flex-direction:column;justify-content:flex-start}
.pricing-features{list-style:none}
.pricing-features li{
  padding:var(--space-3) 0;
  font-size:var(--text-sm);
  color:var(--text-secondary);
  display:flex;
  align-items:flex-start;
  gap:var(--space-3);
  border-bottom:1px solid var(--border-subtle);
}
.pricing-features li:last-child{border-bottom:none}
.pricing-features li i{
  color:var(--emerald-400);
  margin-top:3px;
  flex-shrink:0;
}
.pricing-footer{
  padding:0 var(--space-6) var(--space-6);
}

/* ============================================================
   CLIENT LOGO GRID — 公司案例品牌墙
   ============================================================ */
.company-case-title{
  color:var(--blue-500);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:var(--space-3);
  font-size:var(--text-3xl);
  font-weight:800;
}
.company-case-title i{
  font-size:.55em;
  opacity:.85;
}
.clients-section{
  background:linear-gradient(180deg,#f5f8fc 0%,#eef3f9 100%);
  overflow:hidden;
}
.clients-section .container{
  margin-bottom:var(--space-8);
}
.clients-marquee{
  display:flex;
  flex-direction:column;
  gap:18px;
  width:100%;
  overflow:hidden;
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
}
.clients-marquee-row{
  overflow:hidden;
  width:100%;
}
.clients-marquee-track{
  display:flex;
  width:max-content;
  gap:16px;
  will-change:transform;
  animation:clients-marquee-left var(--marquee-duration,42s) linear infinite;
}
.clients-marquee-row[data-dir="right"] .clients-marquee-track{
  animation-name:clients-marquee-right;
}
.clients-marquee-row:hover .clients-marquee-track{
  animation-play-state:paused;
}
@keyframes clients-marquee-left{
  from{transform:translate3d(0,0,0)}
  to{transform:translate3d(-50%,0,0)}
}
@keyframes clients-marquee-right{
  from{transform:translate3d(-50%,0,0)}
  to{transform:translate3d(0,0,0)}
}
.client-logo-card{
  flex:0 0 auto;
  width:168px;
  height:88px;
  background:#fff;
  border:none;
  border-radius:10px;
  box-shadow:0 4px 16px rgba(30,64,120,0.08);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:12px 18px;
  transition:box-shadow var(--duration-normal) var(--ease-out),transform var(--duration-normal) var(--ease-out);
}
.client-logo-card:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 22px rgba(30,64,120,0.12);
}
.client-logo{
  max-width:100%;
  max-height:100%;
  text-align:center;
}
.client-logo-img{
  max-width:100%;
  max-height:56px;
  width:auto;
  height:auto;
  object-fit:contain;
  display:block;
}
@media(max-width:768px){
  .company-case-title{font-size:var(--text-2xl)}
  .clients-marquee{gap:12px}
  .clients-marquee-track{gap:12px}
  .client-logo-card{width:140px;height:76px;padding:10px 14px}
}
@media(max-width:480px){
  .client-logo-card{width:120px;height:68px;padding:8px 12px}
  .client-logo-card .client-logo{font-size:.9em}
}
@media(prefers-reduced-motion:reduce){
  .clients-marquee-track{animation:none!important}
}
.contact-main-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--space-8);
}

/* Panel containers */
.contact-info-panel,
.contact-form-panel{
  display:flex;
  flex-direction:column;
  background:#fff;
  border-radius:var(--radius-2xl);
  border:1px solid var(--border-subtle);
  overflow:hidden;
  transition:border-color var(--duration-normal) var(--ease-out);
}
.contact-info-panel:hover,
.contact-form-panel:hover{
  border-color:rgba(59,130,246,0.2);
}

/* Panel header */
.panel-header{
  display:flex;
  align-items:center;
  gap:var(--space-2);
  padding:var(--space-5) var(--space-6);
  background:rgba(59,130,246,0.05);
  border-bottom:1px solid var(--border-subtle);
  font-size:var(--text-base);
  font-weight:700;
  color:var(--blue-500);
}
.panel-header i{font-size:1.1rem}
.panel-header--accent{
  background:rgba(124,92,191,0.05);
  color:var(--purple-500);
}

/* === LEFT PANEL: contact info + QR === */
.contact-info-panel .contact-cards{
  display:flex;
  flex-direction:column;
  gap:var(--space-3);
  padding:var(--space-5);
}
.contact-card{
  display:flex;
  gap:var(--space-4);
  padding:var(--space-4);
  background:#f8fafc;
  border-radius:var(--radius-lg);
  border:1px solid transparent;
  transition:all var(--duration-fast) var(--ease-out);
}
.contact-card:hover{
  background:rgba(59,130,246,0.04);
  border-color:rgba(59,130,246,0.15);
  transform:translateX(4px);
}
.contact-card-icon{
  width:44px;height:44px;
  border-radius:var(--radius-md);
  background:rgba(59,130,246,0.1);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--blue-500);
  font-size:1rem;
  flex-shrink:0;
  overflow:hidden;
}
.contact-card-icon img{width:22px;height:22px;object-fit:contain;flex-shrink:0}
.contact-card-info h5{
  font-size:var(--text-xs);
  font-weight:600;
  margin-bottom:2px;
  color:var(--text-muted);
  text-transform:uppercase;
  letter-spacing:0.04em;
}
.contact-card-info p{
  font-size:var(--text-sm);
  color:var(--text-primary);
  font-weight:500;
}
.contact-link{
  color:var(--blue-500);
  text-decoration:none;
  font-weight:600;
  transition:color var(--duration-fast);
}
.contact-link:hover{color:var(--blue-600);text-decoration:underline}

/* QR Section inside left panel */
.qr-section{
  border-top:1px solid var(--border-subtle);
  padding:var(--space-5);
}
.qr-section .panel-header{
  background:transparent;
  border-bottom:none;
  padding:0 0 var(--space-4);
  font-size:var(--text-sm);
  color:var(--text-secondary);
}
.qr-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:var(--space-4);
}
.qr-box{
  background:#f8fafc;
  border-radius:var(--radius-lg);
  padding:var(--space-3);
  text-align:center;
  border:1px solid var(--border-subtle);
  transition:all var(--duration-normal) var(--ease-out);
}
.qr-box:hover{
  border-color:rgba(59,130,246,0.2);
  box-shadow:0 4px 16px rgba(59,130,246,0.06);
  transform:translateY(-2px);
}
.qr-placeholder{
  width:100%;
  aspect-ratio:1;
  max-width:140px;
  height:auto;
  background:#f0f4f8;
  border:1px solid var(--border-default);
  border-radius:var(--radius-md);
  margin:0 auto var(--space-2);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--text-muted);
  font-size:2.75rem;
  overflow:hidden;
}
.qr-placeholder img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  background:#fff;
}
.qr-box p{font-size:var(--text-xs);color:var(--text-secondary);font-weight:500;margin:0}

/* === RIGHT PANEL: contact form === */
.contact-form-body{
  padding:var(--space-6);
  flex:1;
  display:flex;
  flex-direction:column;
}
.contact-form-body .btn-block{margin-top:auto}
.form-intro{
  font-size:var(--text-sm);
  color:var(--text-secondary);
  margin-bottom:var(--space-5);
  line-height:1.6;
}
.required{
  color:var(--rose-500);
  font-weight:700;
}

/* Form */
.form-group{margin-bottom:var(--space-5)}
.form-group label{
  display:block;
  font-size:var(--text-sm);
  font-weight:600;
  margin-bottom:var(--space-2);
  color:var(--text-secondary);
}
.form-group input,
.form-group textarea{
  width:100%;
  padding:12px 16px;
  background:#f8fafc;
  border:1.5px solid var(--border-default);
  border-radius:var(--radius-md);
  font-size:var(--text-sm);
  font-family:inherit;
  color:var(--text-primary);
  transition:all var(--duration-fast) var(--ease-out);
}
.form-group input:focus,
.form-group textarea:focus{
  outline:none;
  border-color:var(--blue-500);
  box-shadow:0 0 0 3px rgba(59,130,246,0.08), 0 0 8px rgba(59,130,246,0.06);
  background:#fff;
}
.form-group input::placeholder,
.form-group textarea::placeholder{color:var(--text-muted)}
.form-group textarea{min-height:120px;resize:vertical}

/* Map Embed */
.map-embed{
  background:#fff;
  border-radius:var(--radius-2xl);
  border:1px solid var(--border-subtle);
  overflow:hidden;
  margin-top:var(--space-8);
}
.map-embed-frame{
  position:relative;
  width:100%;
  height:420px;
  background:#e8eef6;
}
.map-embed-frame .leaflet-container{
  width:100%;
  height:100%;
  font:inherit;
}
.map-embed-frame iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  display:block;
}
.map-embed-bar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-3);
  padding:16px 20px;
  border-top:1px solid var(--border-subtle);
  background:#f8fafc;
}
.map-embed-bar .map-card-address{
  margin:0;
  text-align:left;
  flex:1;
  min-width:200px;
}
.map-card{
  background:#fff;
  border-radius:var(--radius-2xl);
  border:1px solid var(--border-subtle);
  min-height:280px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:var(--space-8);
  text-align:center;
  transition:border-color var(--duration-normal) var(--ease-out);
}
.map-card:hover{border-color:rgba(59,130,246,0.2)}
.map-card-icon{
  font-size:3rem;
  color:var(--blue-500);
  margin-bottom:var(--space-4);
}
.map-card-address{
  font-size:var(--text-base);
  font-weight:600;
  color:var(--text-primary);
  margin-bottom:var(--space-4);
}
.map-card-link{
  display:inline-flex;
  align-items:center;
  gap:var(--space-2);
  padding:10px 24px;
  background:rgba(59,130,246,0.06);
  color:var(--blue-500);
  font-weight:600;
  font-size:var(--text-sm);
  border-radius:var(--radius-full);
  border:1px solid rgba(59,130,246,0.15);
  text-decoration:none;
  transition:all var(--duration-fast) var(--ease-out);
  margin:0;
  white-space:nowrap;
}
.map-card-link:hover{
  background:rgba(59,130,246,0.1);
  box-shadow:0 2px 12px rgba(59,130,246,0.15);
}
@media(max-width:768px){
  .map-embed-frame{height:300px}
  .map-embed-bar{flex-direction:column;align-items:flex-start}
}

/* ============================================================
   CERTIFICATE GALLERY — 资质证书横向轮播
   ============================================================ */
.cert-marquee{
  position:relative;
  width:100%;
  overflow:hidden;
  margin-top:var(--space-8);
  cursor:grab;
  user-select:none;
  -webkit-user-select:none;
  touch-action:pan-y;
  mask-image:linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%);
  -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%);
}
.cert-marquee.is-dragging{cursor:grabbing}
.cert-marquee-track{
  display:flex;
  align-items:stretch;
  gap:var(--space-5);
  width:max-content;
  will-change:transform;
  padding:var(--space-2) var(--space-6) var(--space-4);
}
.cert-gallery-card{
  background:#fff;
  border-radius:var(--radius-2xl);
  border:1px solid var(--border-subtle);
  box-shadow:0 8px 28px rgba(15,23,42,0.06);
  padding:var(--space-4);
  text-align:center;
  transition:box-shadow var(--duration-normal) var(--ease-out), transform var(--duration-normal) var(--ease-out);
  display:flex;
  flex-direction:column;
  width:210px;
  flex:0 0 210px;
}
.cert-gallery-card:hover{
  transform:translateY(-4px);
  box-shadow:0 16px 40px rgba(15,23,42,0.1);
}
.cert-image-wrap{
  position:relative;
  border-radius:var(--radius-xl);
  overflow:hidden;
  background:linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
  border:1px solid rgba(148,163,184,0.15);
  aspect-ratio:3/4;
  cursor:zoom-in;
}
.cert-image{
  width:100%;
  height:100%;
  object-fit:contain;
  padding:var(--space-3);
  display:block;
  pointer-events:none;
}
.cert-image-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(15,23,42,0.05) 0%, rgba(15,23,42,0.55) 100%);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:var(--space-2);
  color:#fff;
  opacity:0;
  transition:opacity var(--duration-normal) var(--ease-out);
  z-index:2;
  pointer-events:none;
}
.cert-image-overlay i{font-size:var(--text-2xl);margin-bottom:2px}
.cert-image-overlay span{font-size:var(--text-xs);font-weight:600}
.cert-gallery-card:hover .cert-image-overlay{opacity:1}
.cert-gallery-caption{
  padding-top:var(--space-4);
}
.cert-gallery-caption h4{
  font-size:var(--text-sm);
  font-weight:700;
  color:var(--text-primary);
  margin-bottom:var(--space-1);
  line-height:1.4;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.cert-gallery-caption p{
  font-size:var(--text-xs);
  color:var(--text-muted);
  margin:0;
}

/* --- 灯箱 --- */
.cert-lightbox{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  pointer-events:none;
  transition:opacity var(--duration-normal) var(--ease-out);
}
.cert-lightbox.active{
  opacity:1;
  pointer-events:auto;
}
.cert-lightbox-backdrop{
  position:absolute;
  inset:0;
  background:rgba(15,23,42,0.92);
  backdrop-filter:blur(8px);
}
.cert-lightbox-close{
  position:absolute;
  top:var(--space-6);
  right:var(--space-6);
  width:44px;
  height:44px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,0.2);
  background:rgba(255,255,255,0.1);
  color:#fff;
  font-size:1.25rem;
  cursor:pointer;
  z-index:3;
  transition:all var(--duration-fast) var(--ease-out);
}
.cert-lightbox-close:hover{
  background:rgba(255,255,255,0.2);
  transform:rotate(90deg);
}
.cert-lightbox-content{
  position:relative;
  z-index:2;
  max-width:min(900px, 90vw);
  max-height:90vh;
  text-align:center;
}
.cert-lightbox-content img{
  max-width:100%;
  max-height:80vh;
  object-fit:contain;
  border-radius:var(--radius-xl);
  box-shadow:0 24px 80px rgba(0,0,0,0.3);
  background:#fff;
}
.cert-lightbox-content p{
  color:#fff;
  margin-top:var(--space-4);
  font-size:var(--text-lg);
  font-weight:600;
  text-shadow:0 2px 10px rgba(0,0,0,0.3);
}

@media(max-width:1024px){
  .cert-gallery-card{width:180px;flex-basis:180px}
}
@media(max-width:640px){
  .cert-gallery-card{width:160px;flex-basis:160px;padding:var(--space-3)}
  .cert-marquee{
    mask-image:linear-gradient(90deg, transparent 0, #000 2%, #000 98%, transparent 100%);
    -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 2%, #000 98%, transparent 100%);
  }
}

/* ============================================================
   TECH CAPABILITY — 技术能力展示 (关于我们)
   ============================================================ */
.tech-cap-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:var(--space-6);
}
.tech-cap-item{
  display:flex;
  gap:var(--space-5);
  padding:var(--space-6);
  background:var(--bg-card);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border-radius:var(--radius-2xl);
  border:1px solid var(--border-subtle);
  transition:all var(--duration-normal) var(--ease-out);
}
.tech-cap-item:hover{
  border-color:rgba(59,130,246,0.2);
  transform:translateX(4px);
}
.tech-cap-icon{
  width:56px;height:56px;
  border-radius:var(--radius-xl);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.4rem;
  flex-shrink:0;
  overflow:hidden;
}
.tech-cap-icon img{width:28px;height:28px;object-fit:contain;flex-shrink:0}
.tech-cap-icon--cyan{background:rgba(59,130,246,0.12);color:var(--cyan-400)}
.tech-cap-icon--purple{background:rgba(124,92,191,0.12);color:var(--purple-400)}
.tech-cap-icon--green{background:rgba(16,185,129,0.12);color:#10b981}
.tech-cap-icon--orange{background:rgba(251,146,60,0.12);color:#fb923c}
.tech-cap-icon--blue{background:rgba(59,130,246,0.12);color:#3b82f6}
.tech-cap-icon--rose{background:rgba(244,63,94,0.12);color:#f43f5e}
.tech-cap-body h4{
  font-size:var(--text-base);
  font-weight:700;
  color:var(--text-primary);
  margin-bottom:var(--space-1);
}
.tech-cap-body p{
  font-size:var(--text-sm);
  color:var(--text-secondary);
  line-height:1.6;
  margin:0;
}
.tech-cap-meta{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-2);
  margin-top:var(--space-3);
}
.tech-tag{
  display:inline-block;
  font-size:var(--text-xs);
  padding:2px 10px;
  border-radius:var(--radius-full);
  background:rgba(59,130,246,0.08);
  color:var(--cyan-400);
  font-weight:500;
  border:1px solid rgba(59,130,246,0.12);
}

/* ============================================================
   CTA SECTION — GLOWING
   ============================================================ */
.cta-section{
  background:var(--bg-deep);
  color:#fff;
  text-align:center;
  padding:var(--space-24) 0;
  position:relative;
  overflow:hidden;
}
.cta-section::before{
  content:'';
  position:absolute;
  inset:0;
  background:
    radial-gradient(ellipse at 30% 50%, rgba(59,130,246,0.08) 0%, transparent 50%),
    radial-gradient(ellipse at 70% 50%, rgba(124,92,191,0.08) 0%, transparent 50%);
}
.cta-section .container{position:relative;z-index:1}
.cta-section h2{
  font-size:var(--text-4xl);
  font-weight:900;
  margin-bottom:var(--space-4);
  letter-spacing:-0.02em;
  background:linear-gradient(135deg, #0f172a 0%, #2563eb 50%, #7c5cbf 100%);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.cta-section p{
  font-size:var(--text-lg);
  opacity:0.75;
  margin-bottom:var(--space-8);
  max-width:40em;
  margin-left:auto;margin-right:auto;
  color:var(--text-secondary);
  line-height:1.7;
}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{
  background:var(--bg-surface);
  border-top:1px solid var(--border-subtle);
  color:var(--text-secondary);
  padding:var(--space-16) 0 var(--space-8);
}
.footer-grid{
  display:grid;
  grid-template-columns:1.6fr 1.1fr 1.1fr 1fr;
  gap:var(--space-8);
  margin-bottom:var(--space-10);
}
.footer-brand h3{
  color:var(--text-primary);
  font-size:var(--text-xl);
  font-weight:800;
  margin-bottom:var(--space-3);
}
.footer-brand p{
  font-size:var(--text-sm);
  line-height:var(--leading-relaxed);
  opacity:0.7;
}
.footer-col h4{
  color:var(--text-primary);
  font-size:var(--text-sm);
  font-weight:700;
  margin-bottom:var(--space-4);
  text-transform:uppercase;
  letter-spacing:0.5px;
}
.footer-col a{
  display:block;
  padding:4px 0;
  font-size:var(--text-sm);
  opacity:0.6;
  transition:all var(--duration-fast);
}
.footer-col a:hover{opacity:1;color:var(--cyan-400)}
.footer-bottom{
  border-top:1px solid var(--border-subtle);
  padding-top:var(--space-6);
  text-align:center;
  font-size:var(--text-xs);
  opacity:0.5;
}
.footer-bottom a{color:var(--text-secondary);text-decoration:underline}

/* Contact Bar */
.contact-bar{
  background:var(--bg-surface);
  border-top:1px solid var(--border-subtle);
  color:var(--text-secondary);
  padding:var(--space-12) 0 var(--space-8);
}
.contact-bar-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:var(--space-6);
  margin-bottom:var(--space-8);
}
.contact-bar-item{
  display:flex;
  gap:var(--space-4);
  align-items:flex-start;
}
.contact-bar-item .cb-icon{
  width:44px;height:44px;
  background:rgba(59,130,246,0.1);
  border-radius:var(--radius-lg);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.1rem;
  flex-shrink:0;
  color:var(--cyan-400);
}
.contact-bar-item h5{font-size:var(--text-sm);font-weight:600;margin-bottom:2px;color:var(--text-primary)}
.contact-bar-item p{font-size:var(--text-sm);opacity:0.6}
.contact-bar-bottom{
  border-top:1px solid var(--border-subtle);
  padding-top:var(--space-6);
  text-align:center;
  font-size:var(--text-xs);
  opacity:0.4;
}
.contact-bar-bottom a{color:var(--text-secondary)}

/* ============================================================
   FLOATING PANEL
   ============================================================ */
.float-panel{
  position:fixed;
  right:24px;
  bottom:120px;
  z-index:999;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.float-btn{
  width:48px;height:48px;
  border-radius:var(--radius-lg);
  background:var(--bg-elevated);
  border:1px solid var(--border-default);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  box-shadow:var(--shadow-md);
  font-size:1.1rem;
  color:var(--cyan-400);
  transition:all var(--duration-normal) var(--ease-out);
}
.float-btn:hover{
  background:rgba(59,130,246,0.15);
  border-color:rgba(59,130,246,0.4);
  transform:translateY(-2px);
  box-shadow:0 8px 25px rgba(0,0,0,0.06), 0 0 20px rgba(59,130,246,0.2);
}
.float-top{
  opacity:0;visibility:hidden;
  transition:all var(--duration-normal) var(--ease-out);
}
.float-top.visible{opacity:1;visibility:visible}

/* ============================================================
   PRODUCT SHOWCASE — TECH CARDS
   ============================================================ */
.product-showcase{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--space-8);
}
.product-card-lg{
  background:#fff;
  border-radius:var(--radius-2xl);
  padding:var(--space-10);
  border:1px solid var(--border-subtle);
  transition:all var(--duration-normal) var(--ease-out);
  position:relative;
  overflow:hidden;
}
.product-card-lg:hover{
  transform:translateY(-6px);
  box-shadow:0 16px 48px rgba(0,0,0,0.08);
}
.product-card-lg::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:3px;
  border-radius:3px 3px 0 0;
}
.product-card-lg.ai::before{
  background:var(--gradient-ai);
  box-shadow:0 0 20px rgba(59,130,246,0.4);
}
.product-card-lg.scrm::before{
  background:var(--gradient-scrm);
  box-shadow:0 0 20px rgba(249,115,22,0.4);
}
.product-card-lg.ai:hover{border-color:rgba(59,130,246,0.3);box-shadow:0 20px 60px rgba(0,0,0,0.08),0 0 40px rgba(59,130,246,0.08)}
.product-card-lg.scrm:hover{border-color:rgba(249,115,22,0.3);box-shadow:0 20px 60px rgba(0,0,0,0.08),0 0 40px rgba(249,115,22,0.08)}
.product-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 14px;
  border-radius:var(--radius-full);
  font-size:var(--text-xs);
  font-weight:700;
  margin-bottom:var(--space-4);
}
.product-badge.ai{background:rgba(59,130,246,0.15);color:var(--cyan-400);border:1px solid rgba(59,130,246,0.2)}
.product-badge.scrm{background:rgba(249,115,22,0.15);color:var(--orange-400);border:1px solid rgba(249,115,22,0.2)}
.product-card-lg h3{font-size:var(--text-2xl);font-weight:800;margin-bottom:var(--space-3);color:var(--text-primary)}
.product-card-lg > p{font-size:var(--text-base);color:var(--text-secondary);margin-bottom:var(--space-6);line-height:var(--leading-relaxed)}
.product-features{list-style:none;margin-bottom:var(--space-6)}
.product-features li{
  padding:var(--space-2) 0;
  font-size:var(--text-sm);
  color:var(--text-secondary);
  display:flex;
  align-items:center;
  gap:var(--space-2);
}
.product-features li::before{
  content:'';
  width:6px;height:6px;
  background:var(--cyan-400);
  border-radius:50%;
  flex-shrink:0;
  box-shadow:0 0 6px var(--cyan-400);
}

/* about.html company intro visual panel */
.about-showcase-visual{
  background:var(--gradient-ai);
  border-radius:var(--radius-2xl);
  min-height:340px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:5rem;
  position:relative;
  overflow:hidden;
}
.about-showcase-visual.has-image{
  background:#e8eef6;
  padding:0;
  font-size:0;
}
.about-showcase-visual .about-showcase-img{
  width:100%;
  height:100%;
  min-height:340px;
  object-fit:cover;
  display:block;
}
@media(max-width:640px){
  .about-showcase-visual{min-height:260px;font-size:3.5rem}
  .about-showcase-visual .about-showcase-img{min-height:260px}
}

/* ============================================================
   ABOUT INTRO — HOME PAGE COMPANY INTRO
   ============================================================ */
.about-intro{
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:var(--space-8);
  align-items:stretch;
  max-width:1100px;
  margin:0 auto;
}

/* --- Left Visual Panel --- */
.about-intro-visual{
  border-radius:var(--radius-2xl);
  overflow:hidden;
  position:relative;
  min-height:420px;
}
.about-visual-inner{
  width:100%;height:100%;
  background:linear-gradient(160deg, #1e3a5f 0%, #0f2744 40%, #0a1a30 100%);
  background-size:cover;
  background-position:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:var(--space-10);
  text-align:center;
  position:relative;
  overflow:hidden;
}
.about-visual-inner.has-bg-image{
  background-color:#e8eef6;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  padding:0;
}
.about-visual-inner.has-bg-image::before,
.about-visual-inner.has-bg-image::after{
  display:none;
}
.about-visual-inner.has-bg-image .about-visual-icon,
.about-visual-inner.has-bg-image .about-visual-badge,
.about-visual-inner.has-bg-image .about-visual-stats{
  display:none;
}
.about-visual-inner::before{
  content:'';
  position:absolute;
  top:-60px;right:-60px;
  width:220px;height:220px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(59,130,246,0.2) 0%, transparent 70%);
}
.about-visual-inner::after{
  content:'';
  position:absolute;
  bottom:-40px;left:-40px;
  width:180px;height:180px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(124,92,191,0.18) 0%, transparent 70%);
}
.about-visual-icon{
  width:80px;height:80px;
  border-radius:24px;
  background:linear-gradient(135deg, rgba(59,130,246,0.2), rgba(124,92,191,0.15));
  border:1.5px solid rgba(255,255,255,0.12);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:2rem;
  color:#fff;
  margin-bottom:var(--space-6);
  position:relative;
  z-index:1;
  backdrop-filter:blur(10px);
}
.about-visual-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 18px;
  border-radius:var(--radius-full);
  font-size:var(--text-sm);
  font-weight:600;
  color:#93c5fd;
  background:rgba(59,130,246,0.15);
  border:1px solid rgba(59,130,246,0.25);
  position:relative;
  z-index:1;
  margin-bottom:var(--space-8);
}
.about-visual-stats{
  display:flex;
  gap:var(--space-6);
  position:relative;
  z-index:1;
}
.about-visual-stat{
  text-align:center;
}
.about-visual-stat-num{
  display:block;
  font-size:var(--text-3xl);
  font-weight:900;
  color:#fff;
  font-family:var(--font-tech);
  line-height:1.1;
}
.about-visual-stat-num span{font-size:var(--text-lg);font-weight:700;color:var(--cyan-400)}
.about-visual-stat-label{
  display:block;
  font-size:var(--text-xs);
  color:rgba(255,255,255,0.55);
  margin-top:4px;
  font-weight:500;
}

/* --- Right Content Panel --- */
.about-intro-content{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:var(--space-4) 0;
}
.about-intro-content h3{
  font-size:var(--text-2xl);
  font-weight:800;
  color:var(--text-primary);
  margin-bottom:var(--space-4);
  line-height:1.3;
}
.about-intro-desc{
  font-size:var(--text-base);
  color:var(--text-secondary);
  line-height:var(--leading-relaxed);
  margin-bottom:var(--space-8);
}
.about-intro-highlights{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--space-5);
  margin-bottom:var(--space-8);
}
.about-highlight-item{
  display:flex;
  gap:var(--space-4);
  align-items:flex-start;
}
.about-highlight-icon{
  width:44px;height:44px;
  border-radius:14px;
  background:rgba(59,130,246,0.06);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  color:var(--blue-500);
  font-size:1.1rem;
  transition:all var(--duration-fast) var(--ease-out);
  overflow:hidden;
}
.about-highlight-icon img{width:22px;height:22px;object-fit:contain;flex-shrink:0}
.about-highlight-item:hover .about-highlight-icon{
  background:rgba(59,130,246,0.12);
  transform:scale(1.06);
}
.about-highlight-item h4{
  font-size:var(--text-sm);
  font-weight:700;
  color:var(--text-primary);
  margin-bottom:2px;
}
.about-highlight-item p{
  font-size:var(--text-xs);
  color:var(--text-secondary);
  line-height:1.5;
  margin:0;
}

/* --- Responsive --- */
@media(max-width:1024px){
  .about-intro{grid-template-columns:1fr}
  .about-intro-visual{min-height:340px}
  .about-intro-highlights{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .about-intro-visual{min-height:300px}
  .about-intro-highlights{grid-template-columns:1fr}
  .about-visual-stats{gap:var(--space-4)}
}
/* ============================================================
   NEWS CARDS
   ============================================================ */
.news-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:var(--space-6);
}
.news-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-2);
  justify-content:center;
  margin-bottom:var(--space-10);
}
.news-tab{
  padding:8px 20px;
  border-radius:var(--radius-full);
  font-size:var(--text-sm);
  font-weight:600;
  cursor:pointer;
  border:1px solid var(--border-default);
  background:transparent;
  color:var(--text-secondary);
  transition:all var(--duration-fast) var(--ease-out);
  font-family:inherit;
}
.news-tab:hover{
  border-color:rgba(59,130,246,0.4);
  color:var(--cyan-400);
  background:rgba(59,130,246,0.08);
}
.news-tab.active{
  background:rgba(59,130,246,0.15);
  border-color:var(--cyan-400);
  color:var(--cyan-400);
  box-shadow:0 0 16px rgba(59,130,246,0.15);
}
.news-card{
  background:#fff;
  border-radius:var(--radius-xl);
  overflow:hidden;
  border:1px solid var(--border-subtle);
  transition:all var(--duration-normal) var(--ease-out);
}
.news-card:hover{
  transform:translateY(-6px);
  border-color:rgba(59,130,246,0.2);
  box-shadow:0 12px 40px rgba(0,0,0,0.08);
}
.news-card-link{
  display:block;
  color:inherit;
  text-decoration:none;
  cursor:pointer;
}
.news-card-link:focus-visible{
  outline:2px solid var(--cyan-400);
  outline-offset:2px;
}
.news-card .news-more{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:var(--space-3);
  font-size:var(--text-sm);
  font-weight:600;
  color:var(--cyan-500);
}
.news-card:hover .news-more{color:var(--cyan-600)}
.faq-list{
  max-width:820px;
  margin:var(--space-8) auto 0;
  display:flex;
  flex-direction:column;
  gap:var(--space-4);
}
.faq-item{
  background:#fff;
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-xl);
  padding:var(--space-5) var(--space-6);
}
.faq-q{
  font-size:var(--text-lg);
  font-weight:700;
  color:var(--text-primary);
  margin:0 0 var(--space-3);
  line-height:1.4;
}
.faq-a{
  margin:0;
  font-size:var(--text-base);
  line-height:1.8;
  color:var(--text-secondary);
}
.news-img{
  height:200px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--text-muted);
  font-size:3rem;
  position:relative;
  overflow:hidden;
  background:linear-gradient(135deg, rgba(59,130,246,0.12), rgba(77,168,218,0.12));
}
.news-cover-img{
  width:100%;height:100%;object-fit:cover;position:absolute;inset:0;z-index:1;
  display:block;max-width:none;
}
.news-img::after{
  content:'';
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:linear-gradient(180deg, transparent 55%, rgba(15,23,42,0.08));
}
.news-body{padding:var(--space-5)}
.news-date{
  font-size:var(--text-xs);
  color:var(--cyan-400);
  font-weight:600;
  margin-bottom:var(--space-2);
  font-family:var(--font-tech);
}
.news-card h5,
.news-card h3{
  font-size:var(--text-base);
  font-weight:700;
  margin-bottom:var(--space-3);
  line-height:1.4;
  color:var(--text-primary);
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.news-card p,
.news-card .news-summary{
  font-size:var(--text-sm);
  color:var(--text-secondary);
  display:-webkit-box;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
  overflow:hidden;
  line-height:1.7;
  white-space:pre-line;
  word-break:break-word;
}

/* 新闻详情弹窗 */
.news-modal{
  position:fixed;
  inset:0;
  z-index:12000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px 16px;
  opacity:0;
  visibility:hidden;
  transition:opacity .28s ease,visibility .28s ease;
}
.news-modal.show{
  opacity:1;
  visibility:visible;
}
.news-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(15,23,42,.55);
  backdrop-filter:blur(6px);
}
.news-modal-dialog{
  position:relative;
  z-index:1;
  width:min(1040px,100%);
  max-height:min(88vh,900px);
  background:#fff;
  border-radius:20px;
  box-shadow:0 28px 80px rgba(15,23,42,.28);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  transform:translateY(28px) scale(.97);
  transition:transform .32s cubic-bezier(.22,1,.36,1);
}
.news-modal.show .news-modal-dialog{
  transform:translateY(0) scale(1);
}
.news-modal-close{
  position:absolute;
  top:14px;
  right:14px;
  z-index:3;
  width:40px;
  height:40px;
  border:none;
  border-radius:50%;
  background:rgba(255,255,255,.92);
  color:#334155;
  box-shadow:0 4px 16px rgba(15,23,42,.15);
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1rem;
  transition:background .15s,transform .15s;
}
.news-modal-close:hover{
  background:#fff;
  transform:scale(1.06);
}
.news-modal-cover{
  position:relative;
  height:220px;
  flex-shrink:0;
  background:linear-gradient(135deg,#e0f2fe 0%,#dbeafe 45%,#e0e7ff 100%);
  overflow:hidden;
}
.news-modal-cover img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.news-modal-cover.has-img::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, transparent 40%, rgba(15,23,42,.45));
}
.news-modal-cover-fallback{
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:rgba(37,99,235,.35);
  font-size:4rem;
}
.news-modal-body{
  padding:28px 32px 32px;
  overflow-y:auto;
  flex:1;
}
.news-modal-meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px 16px;
  margin-bottom:14px;
}
.news-modal-date{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:.8rem;
  font-weight:700;
  color:var(--cyan-500);
  font-family:var(--font-tech);
}
.news-modal-tag{
  font-size:.72rem;
  font-weight:700;
  color:#2563eb;
  background:#eff6ff;
  border:1px solid #bfdbfe;
  padding:3px 10px;
  border-radius:999px;
}
.news-modal-title{
  font-size:clamp(1.35rem,2.5vw,1.75rem);
  font-weight:800;
  line-height:1.35;
  color:var(--text-primary);
  margin:0 0 20px;
  letter-spacing:-.02em;
}
.news-modal-content.rich-html{
  font-size:1.02rem;
  line-height:1.85;
  color:#475569;
}
.news-modal-content.rich-html p{margin:0 0 1em}
.news-modal-content.rich-html p:last-child{margin-bottom:0}
.news-modal-content.rich-html img{
  max-width:100%;
  height:auto;
  border-radius:12px;
  margin:12px 0;
}
.news-modal-content.rich-html h1,
.news-modal-content.rich-html h2,
.news-modal-content.rich-html h3{
  color:var(--text-primary);
  margin:1.2em 0 .6em;
  line-height:1.35;
}
.news-modal-footer{
  padding:14px 32px 22px;
  border-top:1px solid var(--border-subtle);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  background:#f8fafc;
  flex-shrink:0;
}
.news-modal-footer-date{
  font-size:var(--text-sm);
  color:var(--text-secondary);
  font-family:var(--font-tech);
  font-weight:600;
  white-space:nowrap;
}
.news-modal-footer-sign{
  font-size:var(--text-sm);
  color:var(--text-secondary);
  font-weight:600;
  letter-spacing:0.02em;
}
@media(max-width:640px){
  .news-modal{padding:12px}
  .news-modal-cover{height:160px}
  .news-modal-body{padding:20px 18px 24px}
  .news-modal-footer{padding:12px 18px 18px}
  .news-modal-title{font-size:1.25rem}
}

/* ============================================================
   TECH DECORATIONS
   ============================================================ */
/* Glow line divider */
.glow-divider{
  display:flex;
  align-items:center;
  gap:var(--space-4);
  margin:var(--space-8) 0;
}
.glow-divider::before,
.glow-divider::after{
  content:'';
  flex:1;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(59,130,246,0.3), transparent);
}
.glow-divider i{
  color:var(--cyan-400);
  font-size:0.9rem;
  opacity:0.7;
}

/* Corner accent */
.corner-accent{
  position:absolute;
  width:24px;height:24px;
  pointer-events:none;
}
.corner-accent::before,
.corner-accent::after{
  content:'';
  position:absolute;
  background:var(--cyan-400);
}
.corner-accent.top-left{top:-1px;left:-1px}
.corner-accent.top-right{top:-1px;right:-1px}
.corner-accent.top-left::before{top:0;left:0;width:16px;height:1px}
.corner-accent.top-left::after{top:0;left:0;width:1px;height:16px}

/* Animated scan line */
@keyframes scanLine{
  0%{transform:translateY(-100%)}
  100%{transform:translateY(100%)}
}

/* ============================================================
   STICKY BANNER
   ============================================================ */
.sticky-banner{
  background:linear-gradient(135deg, rgba(59,130,246,0.08), rgba(124,92,191,0.08));
  border-bottom:1px solid var(--border-subtle);
  color:var(--text-primary);
  padding:14px 0;
  position:sticky;
  top:var(--header-h);
  z-index:50;
}
.sticky-banner.orange{
  background:linear-gradient(135deg, rgba(249,115,22,0.08), rgba(251,191,36,0.08));
}
.sticky-banner .container{
  display:flex;
  align-items:center;
  gap:var(--space-3);
}
.sticky-banner .badge-tag{
  background:rgba(59,130,246,0.08);
  padding:3px 14px;
  border-radius:var(--radius-full);
  font-size:var(--text-xs);
  font-weight:700;
  white-space:nowrap;
  border:1px solid rgba(59,130,246,0.15);
}
.sticky-banner h3{font-size:var(--text-base);margin:0;font-weight:600}

/* ============================================================
   DIVIDER
   ============================================================ */
.section-divider{
  padding:var(--space-10) 0 var(--space-6);
  text-align:center;
}
.divider-line{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
  max-width:520px;
  margin:0 auto;
}
.divider-line::before,
.divider-line::after{
  content:'';
  height:2px;
  flex:1;
  border-radius:2px;
  background:linear-gradient(90deg, transparent, rgba(59,130,246,0.5), rgba(124,92,191,0.5));
}
.divider-line::before{
  background:linear-gradient(90deg, transparent, rgba(59,130,246,0.5), rgba(124,92,191,0.5));
}
.divider-line::after{
  background:linear-gradient(90deg, rgba(124,92,191,0.5), rgba(59,130,246,0.5), transparent);
}
.divider-dot{
  width:48px;height:48px;
  background:linear-gradient(135deg, var(--blue-500), #7c5cbf);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:1.1rem;
  flex-shrink:0;
  box-shadow:0 0 24px rgba(59,130,246,0.25), 0 4px 12px rgba(59,130,246,0.15);
}

/* Industry tabs */
.industry-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-2);
  justify-content:center;
  margin-bottom:var(--space-10);
}
.industry-tab{
  padding:8px 20px;
  border-radius:var(--radius-full);
  font-size:var(--text-sm);
  font-weight:600;
  cursor:pointer;
  border:1px solid var(--border-default);
  background:transparent;
  color:var(--text-secondary);
  transition:all var(--duration-fast) var(--ease-out);
  font-family:inherit;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.industry-tab img,
.industry-tab .industry-icon-img{
  width:18px;
  height:18px;
  object-fit:contain;
  flex-shrink:0;
  vertical-align:middle;
  border-radius:4px;
}
.industry-tab i{
  font-size:.95rem;
  width:18px;
  text-align:center;
  flex-shrink:0;
}
.industry-tab:hover{
  border-color:rgba(59,130,246,0.4);
  color:var(--cyan-400);
  background:rgba(59,130,246,0.08);
}
.industry-tab.active{
  background:rgba(59,130,246,0.15);
  border-color:var(--cyan-400);
  color:var(--cyan-400);
  box-shadow:0 0 16px rgba(59,130,246,0.15);
}
.industry-panel{display:none}
.industry-panel.active{display:block}

/* ============================================================
   COMPARISON TABLE (tech style)
   ============================================================ */
.compare-table{
  width:100%;
  table-layout:fixed;
  border-collapse:collapse;
  background:var(--bg-card);
  border-radius:var(--radius-xl);
  overflow:hidden;
  border:1px solid var(--border-subtle);
}
.compare-table col.col-label{width:40%}
.compare-table col.col-ver{width:20%}
.compare-table th{
  background:rgba(59,130,246,0.08);
  padding:14px 16px;
  text-align:center;
  font-size:var(--text-sm);
  font-weight:700;
  color:var(--cyan-400);
  border-bottom:1px solid var(--border-default);
}
.compare-table th.label-col{text-align:left;padding-left:20px}
.compare-table td{
  padding:12px 16px;
  font-size:var(--text-sm);
  color:var(--text-secondary);
  border-bottom:1px solid var(--border-subtle);
  text-align:center;
  vertical-align:middle;
}
.compare-table td.label-col{text-align:left;font-weight:600;color:var(--text-primary);padding-left:20px}
.compare-table tr:hover td{background:rgba(59,130,246,0.03)}
.compare-table td i.fa-check{color:var(--emerald-400)}
.compare-table td i.fa-times{color:var(--text-muted)}
.compare-check{color:var(--emerald-400);font-size:1.1rem}
.compare-dash{color:var(--text-muted)}
.compare-pct{font-weight:700;color:var(--cyan-400)}
.compare-cat-row td{
  background:rgba(59,130,246,0.04);
  padding:10px 16px 10px 20px;
  font-size:var(--text-sm);
  color:var(--cyan-400);
  border-bottom:1px solid var(--border-default);
  text-align:left;
}
.compare-cat-row td strong{font-size:var(--text-sm)}

/* ============================================================
   SCROLL REVEAL ANIMATIONS
   ============================================================ */
.reveal{
  opacity:0;
  transform:translateY(30px);
  transition:all 0.7s var(--ease-out);
}
.reveal.visible{
  opacity:1;
  transform:translateY(0);
}
.reveal-delay-1{transition-delay:0.1s}
.reveal-delay-2{transition-delay:0.2s}
.reveal-delay-3{transition-delay:0.3s}
.reveal-delay-4{transition-delay:0.4s}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:1024px){
  .card-grid,.feature-grid,.news-grid{grid-template-columns:repeat(2,1fr)}
  .card-grid-4{grid-template-columns:repeat(2,1fr)}
  .product-showcase,.contact-main-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .pricing-grid{grid-template-columns:1fr;max-width:420px;margin:0 auto}
  .pricing-card.featured{transform:none}
  .pricing-card.featured:hover{transform:translateY(-6px)}
  .contact-bar-grid{grid-template-columns:repeat(2,1fr)}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .tech-cap-grid{grid-template-columns:1fr}
}
@media(max-width:768px){
  .card-grid,.feature-grid,.news-grid,
  .card-grid-2,.card-grid-4,
  .contact-bar-grid,.stats-grid,
  .tech-cap-grid,
  .footer-grid,.qr-grid{grid-template-columns:1fr}
  .page-banner h1{font-size:var(--text-2xl)}
  .hero-slide h1,.hero-slide h2{font-size:var(--text-2xl)}
  .cta-section h2{font-size:var(--text-2xl)}
  .section{padding:var(--space-12) 0}
  .compare-table{font-size:var(--text-xs)}
  .compare-table th,.compare-table td{padding:10px 8px}
}
/* ── Extra small screens (375-480px) ── */
@media(max-width:480px){
  body{font-size:15px}
  .container,.container-sm{padding:0 var(--space-4)}
  .section{padding:var(--space-8) 0}
  .section-title{font-size:var(--text-xl)}
  .section-subtitle{font-size:var(--text-sm)}
  .section-tag{font-size:var(--text-xs);padding:var(--space-1) var(--space-3)}
  .hero-slide h1,.hero-slide h2{font-size:1.5rem}
  .hero-slide p{font-size:var(--text-sm)}
  .hero-slide .btn{font-size:var(--text-sm);padding:var(--space-2) var(--space-5)}
  .card-grid,.feature-grid,.card-grid-2,.card-grid-4{gap:var(--space-3)}
  .feature-box,.card,.news-item,.cert-item{padding:var(--space-4)}
  .pricing-card{padding:var(--space-6)}
  .pricing-card h3{font-size:var(--text-lg)}
  .pricing-card .pricing-price{font-size:var(--text-3xl)}
  .footer-grid{gap:var(--space-6)}
  .footer-grid h4{font-size:var(--text-sm)}
  .nav-links a{padding:10px 14px;font-size:var(--text-sm)}
  .timeline-h-item{flex-basis:240px;width:240px;min-width:240px;max-width:240px}
  .timeline-h-card{padding:var(--space-4)}
  .timeline-h-card h4{font-size:var(--text-sm)}
  .stats-grid{gap:var(--space-3)}
  .stat-box{padding:var(--space-4)}
  .stat-icon{width:44px;height:44px;font-size:1.25rem}
  .about-showcase-visual{min-height:220px;font-size:3rem}
  .about-intro-visual{min-height:260px}
  .news-date{font-size:var(--text-xs)}
  .contact-bar-item{padding:var(--space-4)}
  .contact-bar-item i{font-size:1.5rem}
  .cert-lightbox-content p{font-size:var(--text-base)}
  .cert-lightbox-close{top:var(--space-3);right:var(--space-3);width:36px;height:36px}
}

/* ============================================================
   UTILITY CLASSES
   ============================================================ */
.mt-4{margin-top:var(--space-4)}
.mt-6{margin-top:var(--space-6)}
.mt-8{margin-top:var(--space-8)}
.mb-4{margin-bottom:var(--space-4)}
.mb-8{margin-bottom:var(--space-8)}
.pt-0{padding-top:0}
.text-gradient{
  background:linear-gradient(135deg, #3b82f6, #7c5cbf);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}

/* Accessibility */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0.01ms !important;transition-duration:0.01ms !important}
}

/* Rich HTML from CMS */
.rich-html img{max-width:100%;height:auto;border-radius:8px;margin:8px 0}
.rich-html table{border-collapse:collapse;width:100%;margin:12px 0}
.rich-html th,.rich-html td{border:1px solid #cbd5e1;padding:8px 10px}
.rich-html blockquote{border-left:3px solid #3b82f6;margin:12px 0;padding:6px 14px;color:#64748b;background:#f8fafc}
.rich-html pre,.rich-html code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.rich-html pre{background:#0f172a;color:#e2e8f0;padding:12px 14px;border-radius:8px;overflow:auto}
.rich-html ul.task-list{list-style:none;padding-left:0}
.rich-html ul.task-list li{display:flex;align-items:flex-start;gap:8px;margin:6px 0}
.rich-html a{color:#2563eb;text-decoration:underline}

/* 轮播标题/副标题富文本：以后台 TinyMCE 样式为准（颜色/字号/加粗/对齐等） */
.hero-slide h2.rich-html,
.hero-slide p.rich-html{
  display:block;
  background:none !important;
  -webkit-background-clip:border-box !important;
  background-clip:border-box !important;
  -webkit-text-fill-color:currentColor;
}
.hero-slide h1.rich-html,.hero-slide h2.rich-html{
  /* 无内联颜色时的默认色；有 span[style] 时以富文本为准 */
  color:#fff;
  white-space:nowrap;
}
.hero-slide p.rich-html{
  color:rgba(255,255,255,0.92);
  opacity:1;
}
.hero-carousel--sm .hero-slide:not(.has-hero-bg) h2.rich-html{
  color:var(--text-primary);
}
.hero-carousel--sm .hero-slide:not(.has-hero-bg) p.rich-html{
  color:var(--text-secondary);
}
.hero-slide h1.rich-html > p,.hero-slide h2.rich-html > p,
.hero-slide h2.rich-html > div,
.hero-slide p.rich-html > p,
.hero-slide p.rich-html > div{
  margin:0;
  padding:0;
  display:inline;
}
.hero-slide h1.rich-html br,.hero-slide h2.rich-html br{display:none !important}
.hero-slide p.rich-html br{display:block;content:''}

/* 富文本内联样式优先（颜色/字号/字重等） */
.hero-slide h2.rich-html [style],
.hero-slide p.rich-html [style]{
  -webkit-text-fill-color:currentColor !important;
  background:none !important;
  -webkit-background-clip:border-box !important;
  background-clip:border-box !important;
}
.hero-slide h2.rich-html span[style*="font-size"],
.hero-slide p.rich-html span[style*="font-size"],
.hero-slide h2.rich-html span[style*="font-weight"],
.hero-slide p.rich-html span[style*="font-weight"],
.hero-slide h2.rich-html strong,
.hero-slide p.rich-html strong,
.hero-slide h2.rich-html em,
.hero-slide p.rich-html em,
.hero-slide h2.rich-html u,
.hero-slide p.rich-html u{
  -webkit-text-fill-color:currentColor !important;
}

/* ============================================================
   CMS 上传图标统一尺寸（兜底 + 各容器细化）
   ============================================================ */
img.cms-icon{
  width:24px;
  height:24px;
  object-fit:contain;
  display:inline-block;
  vertical-align:middle;
  flex-shrink:0;
  max-width:100%;
}

/* 招商页动态图标容器 */
.advantage-icon,
.mode-icon,
.support-icon{
  width:52px;
  height:52px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 16px;
  font-size:1.5rem;
  background:rgba(59,130,246,0.08);
  color:var(--blue-500);
  overflow:hidden;
}
.advantage-icon img,
.mode-icon img,
.support-icon img,
.advantage-icon-img{
  width:28px !important;
  height:28px !important;
  object-fit:contain;
}

/* 运营中心 */
.service-card-icon{
  overflow:hidden;
}
.service-card-icon img{
  width:28px;
  height:28px;
  object-fit:contain;
}
.slide-placeholder img.cms-icon,
.slide-placeholder img{
  width:48px;
  height:48px;
  object-fit:contain;
  margin-bottom:12px;
  opacity:.9;
}
.about-chenshu-feature img.cms-icon,
.about-chenshu-feature img{
  position:absolute;
  left:16px;
  top:18px;
  width:26px;
  height:26px;
  object-fit:contain;
  border-radius:8px;
  padding:4px;
  background:linear-gradient(135deg,#6366f1,#818cf8);
  box-sizing:border-box;
}

/* 行业 Tab / 标题已在上方单独限制；这里再兜底一次 */
.industry-tab img,
.industry-icon-img{
  width:18px !important;
  height:18px !important;
  object-fit:contain;
}
.industry-info-card h4 img,
.industry-info-card h4 .industry-icon-img{
  width:28px !important;
  height:28px !important;
  object-fit:contain;
}

/* 圆形/方块容器内的图标：填满容器观感一致 */
.ia-icon img,
.ia-icon img.cms-icon{
  width:100% !important;
  height:100% !important;
  object-fit:cover;
}
.loop-icon img,
.loop-icon img.cms-icon{
  width:28px !important;
  height:28px !important;
  object-fit:contain;
}
.feat-icon img,
.feat-icon img.cms-icon{
  width:24px !important;
  height:24px !important;
  object-fit:contain;
}
.integration-item img,
.integration-item img.cms-icon{
  width:28px !important;
  height:28px !important;
  object-fit:contain;
  margin:0 auto 8px;
  display:block;
}
.value-card .value-icon img,
.value-card .value-icon img.cms-icon{
  width:44px !important;
  height:44px !important;
  object-fit:contain;
}

/* 按钮内图标随文字缩放 */
.btn img,
.btn img.cms-icon{
  width:1.1em !important;
  height:1.1em !important;
  object-fit:contain;
}
