﻿/* ===================================================================
   DESIGN TOKENS
   =================================================================== */
:root {
  --primary:       #ff7200;
  --primary-light: #ff9500;
  --primary-dark:  #ea580c;
  --primary-50:    #fff9f0;
  --primary-100:   #ffedd5;
  --secondary:     #1a1a2e;
  --bg-primary:    #ffffff;
  --bg-secondary:  #fafbfc;
  --bg-dark:       #0f0f14;
  --text-primary:  #111827;
  --text-secondary:#4b5563;
  --text-muted:    #9ca3af;
  --border:        #e5e7eb;
  --border-light:  #f3f4f6;

  --p:   var(--primary);
  --pd:  var(--primary-dark);
  --pl:  rgba(255,114,0,.08);
  --pg:  rgba(255,114,0,.16);
  --bg:  var(--bg-secondary);
  --bg2: var(--primary-50);
  --w:   var(--bg-primary);
  --d0:  var(--secondary);
  --d1:  var(--bg-dark);
  --t0:  var(--text-primary);
  --t1:  var(--text-secondary);
  --t2:  var(--text-muted);
  --b0:  var(--border-light);
  --b1:  var(--border);

  --grad-primary: linear-gradient(135deg, #ff7200 0%, #ff9500 100%);
  --grad-hero: linear-gradient(180deg, #fbfcff 0%, #fffaf4 34%, #fffdf9 68%, #ffffff 100%);
  --grad-card-hover: linear-gradient(135deg, rgba(255,114,0,.04) 0%, rgba(255,149,0,.02) 100%);

  --shadow-sm: 0 1px 2px rgba(0,0,0,.04);
  --shadow-md: 0 4px 6px -1px rgba(0,0,0,.06), 0 2px 4px -2px rgba(0,0,0,.04);
  --shadow-card: 0 4px 20px rgba(0,0,0,.04);
  --shadow-card-hover: 0 12px 40px rgba(0,0,0,.08);
  --shadow-button: 0 4px 16px rgba(255,114,0,.24);
  --ss: var(--shadow-sm);
  --sm: var(--shadow-md);
  --sl: var(--shadow-card);

  --r-btn: 10px;
  --r-input: 12px;
  --r-card: 20px;
  --r-icon: 12px;

  --nav: 72px;
  --max: 1280px;
  --pad-x: 32px;
  --sec-py: 80px;
  --section-view-height: calc(100vh - var(--nav));
  --section-head-gap: 56px;
  --gap-hero: 48px;

  /* Typography scale — 页面 > 模块 > 区块 > 卡片 > 辅助 */
  --fs-hero:    clamp(40px, 4.2vw, 60px);
  --fs-h2:      clamp(28px, 2.8vw, 40px);
  --fs-h3:      20px;
  --fs-h4:      17px;
  --fs-body:    16px;
  --fs-body-sm: 14px;
  --fs-label:   12px;
  --fs-caption: 12px;
  --lh-tight:   1.15;
  --lh-title:   1.28;
  --lh-body:    1.7;
  --w-regular:  400;
  --w-medium:   500;
  --w-semibold: 600;
  --w-bold:     700;

  --mono: "JetBrains Mono","SF Mono",ui-monospace,monospace;
  --stat: 'Inter', var(--sans);
  --sans: 'Noto Sans SC', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --lh: 1.6;
  --ease: cubic-bezier(.4,0,.2,1);
  --t-fast: 150ms var(--ease);
  --t-normal: 250ms var(--ease);
  --e: var(--ease);
  --es: var(--ease);
}

/* ===================================================================
   RESET
   =================================================================== */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0 }
html { scroll-behavior:smooth; font-size:16px }
body {
  font-family:var(--sans);
  font-size:16px;
  line-height:var(--lh);
  background:var(--bg-primary);
  color:var(--text-primary);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
::selection { background:var(--pl); color:var(--p) }
::-webkit-scrollbar { width:4px }
::-webkit-scrollbar-thumb { background:rgba(0,0,0,.16); border-radius:2px }
a { text-decoration:none; color:inherit }
button, input { font-family:var(--sans) }

/* ===================================================================
   LAYOUT
   =================================================================== */
.wrap { max-width:var(--max); margin:0 auto; padding:0 var(--pad-x) }

/* 性能：非首屏区块交给浏览器按需绘制，保持锚点与布局稳定 */
.sec-view, .cta, .footer { content-visibility:auto; contain-intrinsic-size:760px }
.ai-sec, .sol-sec, .svc-sec, .testi-sec { contain:layout style }

/* ===================================================================
   NAVIGATION — light bg, dark text; frosted when scrolled
   =================================================================== */
.nav {
  position:fixed; top:0; left:0; right:0; height:var(--nav); z-index:1000;
  overflow:visible;
  transition:background var(--t-normal), box-shadow var(--t-normal);
}
.nav.is-scrolled {
  background:#fff !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  box-shadow:var(--shadow-sm) !important;
}
.nav:hover,
.nav:has(.nav-item:hover),
.nav:has(.nav-item:focus-within) {
  background:#fff;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  box-shadow:var(--shadow-sm);
}
.nav-i {
  max-width:var(--max); margin:0 auto; padding:0 var(--pad-x);
  height:100%;
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center;
}
.nav-logo {
  display:flex; align-items:center; justify-self:start;
  flex-shrink:0; transition:opacity var(--t-fast);
}
.nav-logo:hover { opacity:.75 }
.nav-logo img, #logo-img {
  display:block;
  height:32px;
  width:auto;
  max-width:min(148px, 36vw);
  object-fit:contain;
}
#footer-logo {
  display:block;
  height:28px;
  width:auto;
  max-width:min(132px, 34vw);
  object-fit:contain;
}
.nav-links {
  display:flex; align-items:center; justify-content:center; gap:22px;
  justify-self:center;
}
.nav-a {
  padding:6px 0; font-size:13.5px; font-weight:500; color:var(--text-secondary);
  white-space:nowrap;
  transition:color var(--t-fast);
}
.nav-a:hover { color:var(--primary) }
.nav-a.act { color:var(--primary) }
.nav-item {
  position:relative;
  height:100%;
  display:flex;
  align-items:center;
}
.nav-item::after {
  content:'';
  position:absolute;
  left:-18px;
  right:-18px;
  bottom:-18px;
  height:22px;
}
.nav-trigger {
  position:relative;
  display:flex;
  align-items:center;
  height:100%;
}
.nav-trigger::after {
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:2px;
  border-radius:2px;
  background:var(--primary);
  opacity:0;
  transform:scaleX(.35);
  transform-origin:center;
  transition:opacity var(--t-fast), transform var(--t-fast);
}
.nav-item:hover .nav-trigger,
.nav-item:focus-within .nav-trigger {
  color:var(--primary);
}
.nav-item:hover .nav-trigger::after,
.nav-item:focus-within .nav-trigger::after {
  opacity:1;
  transform:scaleX(1);
}
.mega-menu {
  position:fixed;
  top:calc(var(--nav) - 1px);
  left:0;
  right:0;
  z-index:999;
  background:#fff;
  border-top:1px solid rgba(17,24,39,.04);
  box-shadow:0 18px 42px rgba(17,24,39,.08);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(8px);
  transition:opacity var(--t-fast), transform var(--t-fast), visibility var(--t-fast);
}
.mega-menu::before {
  content:'';
  position:absolute;
  left:0;
  right:0;
  top:-14px;
  height:14px;
}
.nav-item:hover .mega-menu,
.nav-item:focus-within .mega-menu {
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
}
.nav.nav-force-close .mega-menu {
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
  transform:translateY(8px) !important;
}
.nav.nav-force-close .nav-trigger {
  color:var(--text-secondary) !important;
}
.nav.nav-force-close .nav-trigger::after {
  opacity:0 !important;
  transform:scaleX(.35) !important;
}
.header-nav-box,
.search-nav-box {
  display:none;
  position:fixed;
  top:calc(var(--nav) - 1px);
  left:0;
  right:0;
  padding:8px 0 24px;
  color:#222;
  line-height:1;
  background:#fff;
  border-top:1px solid rgba(17,24,39,.04);
  box-shadow:0 18px 42px rgba(17,24,39,.08);
  z-index:999;
}
.header-nav-box::before,
.search-nav-box::before {
  content:'';
  position:absolute;
  left:0;
  right:0;
  top:-14px;
  height:14px;
}
.nav-item:hover .header-nav-box,
.nav-item:focus-within .header-nav-box,
.nav-item:hover .search-nav-box,
.nav-item:focus-within .search-nav-box {
  display:block;
}
.nav.nav-force-close .header-nav-box,
.nav.nav-force-close .search-nav-box {
  display:none !important;
}
.header-nav-box-in {
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--pad-x);
  display:flex;
  align-items:flex-start;
  gap:60px;
}
.header-nav-box .nav-type-box {
  flex:0 0 320px;
  min-width:0;
}
.search-nav-box .nav-type-box {
  flex:0 0 160px;
  min-width:0;
}
.search-nav-box .nav-type-box.brand {
  margin-left:0;
}
.header-nav-box h3,
.search-nav-box h3 {
  margin-bottom:20px;
  padding-bottom:14px;
  border-bottom:1px solid #e9ebef;
  color:#111827;
  font-size:14px;
  line-height:1.6;
  font-weight:700;
}
.header-nav-box h3:hover,
.search-nav-box h3:hover {
  color:var(--primary);
}
.header-nav-box h4,
.search-nav-box h4 {
  margin-bottom:16px;
  color:#878787;
  font-size:13px;
  line-height:1.5;
  font-weight:500;
}
.header-nav-box li,
.search-nav-box li {
  margin-bottom:8px;
  list-style:none;
}
.header-nav-box .products,
.search-nav-box .products {
  display:flex;
  flex-wrap:wrap;
}
.header-nav-box li a,
.search-nav-box li a {
  display:block;
  margin-right:10px;
  margin-bottom:14px;
  padding-right:10px;
  color:#222;
  font-size:13px;
  line-height:1.4;
}
.header-nav-box li a {
  border-right:1px solid #e8ebef;
}
.header-nav-box li a:hover,
.search-nav-box li a:hover {
  color:var(--primary);
}
.nav-type-item-right {
  display:inline-block;
  padding-left:20px;
  font-weight:700;
}
.cursor-default {
  cursor:default;
}
@media (max-width: 1180px) {
  .header-nav-box .header-nav-box-in,
  .search-nav-box .header-nav-box-in {
    padding:0 24px;
    gap:32px;
  }
  .header-nav-box .nav-type-box {
    flex:1 1 0;
  }
  .search-nav-box .nav-type-box.brand {
    margin-left:0;
  }
}
.mega-inner {
  max-width:var(--max);
  margin:0 auto;
  padding:28px var(--pad-x) 32px;
}
.mega-grid {
  display:grid;
  gap:46px;
  align-items:start;
}
.mega-grid--search {
  width:max-content;
  grid-template-columns:220px 220px;
  margin-left:0;
}
.mega-grid--service { grid-template-columns:1fr 1fr 1.15fr }
.mega-col h4 {
  color:#111827;
  font-size:14px;
  line-height:1.45;
  font-weight:700;
  margin-bottom:16px;
  padding-bottom:10px;
  border-bottom:1px solid #edf0f5;
}
.mega-col h4::after {
  content:none;
}
.mega-group { margin-top:18px }
.mega-group:first-of-type { margin-top:0 }
.mega-group-title {
  color:#a0a7b3;
  font-size:12px;
  line-height:1.4;
  font-weight:500;
  margin-bottom:10px;
}
.mega-links {
  display:grid;
  grid-template-columns:repeat(2,max-content);
  column-gap:18px;
  row-gap:9px;
}
.mega-grid--search .mega-links { grid-template-columns:1fr }
.mega-link {
  color:#374151;
  font-size:12.5px;
  line-height:1.45;
  white-space:nowrap;
  transition:color var(--t-fast);
}
.mega-link:hover { color:var(--primary) }
.nav-sep { display:none }
.nav-act {
  display:flex; align-items:center; gap:32px; justify-self:end; flex-shrink:0;
}
.nav-user-state {
  display:flex; align-items:center; gap:10px;
}
.nav-popover { position:relative }
.nav-popover-panel {
  position:absolute; top:calc(100% + 10px); right:0; z-index:1100;
  opacity:0; visibility:hidden; pointer-events:none;
  transform:translateY(8px);
  transition:opacity var(--t-fast), visibility var(--t-fast), transform var(--t-fast);
}
.nav-popover-panel::before {
  content:''; position:absolute; top:-12px; left:0; right:0; height:12px;
}
.nav-popover:hover .nav-popover-panel,
.nav-popover:focus-within .nav-popover-panel,
.nav-popover.is-open .nav-popover-panel {
  opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0);
}
.nav-popover--search { display:none }
.nav.is-past-hero .nav-popover--search { display:block }
.nav-tool-btn {
  display:inline-flex; align-items:center; justify-content:center;
  color:var(--t1); background:transparent; border:1px solid transparent;
  cursor:pointer; transition:color var(--t-fast), background var(--t-fast), border-color var(--t-fast);
}
.nav-search-btn {
  min-width:42px; height:42px; padding:0 10px; border-radius:10px;
}
.nav-search-btn svg {
  display:block; width:24px; height:24px; stroke:currentColor; fill:none; stroke-width:2;
}
.nav-search-btn:hover,
.nav-popover--search:focus-within > .nav-search-btn,
.nav-popover--search.is-open > .nav-search-btn {
  color:var(--primary); background:rgba(0,0,0,.025);
}
.nav-search-panel {
  width:min(620px, calc(100vw - 32px)); padding:18px 18px 16px;
  background:#fff; border:1px solid rgba(17,24,39,.08); border-radius:16px;
  box-shadow:0 18px 44px rgba(15,23,42,.12), 0 6px 16px rgba(15,23,42,.06);
}
.nav-search-panel .search-toolbar { margin-bottom:12px; min-height:28px }
.nav-search-panel .search-cats { gap:2px }
.nav-search-panel .search-cat { padding:5px 12px 7px; font-size:14px }
.nav-search-panel .search-wrap { height:50px; padding:4px 4px 4px 14px }
.nav-search-panel .search-btn { height:42px; padding:0 16px; font-size:13.5px }
.nav-search-panel .search-graph-btn { width:38px; height:38px }
.nav-search-panel .search-in { font-size:14px }
.nav-search-panel .search-in::placeholder { font-size:13px }
.nav-ghost { font-size:13.5px; font-weight:500; color:var(--t1); transition:color var(--t-fast) }
.nav-ghost:hover { color:var(--t0) }

/* Shared button styles */
.btn-solid {
  display:inline-flex; align-items:center; justify-content:center;
  padding:10px 22px;
  background:var(--grad-primary);
  color:#fff; font-size:14px; font-weight:600; letter-spacing:.01em;
  border-radius:var(--r-btn); border:none; cursor:pointer;
  box-shadow:var(--shadow-button);
  transition:background var(--t-fast), box-shadow var(--t-fast), transform var(--t-fast);
}
.btn-solid:hover {
  background:linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 100%);
  transform:translateY(-1px);
}
.btn-solid:active { transform:none }
.nav-login-state {
  display:flex; align-items:center; gap:12px;
}
.nav-login-link {
  font-size:13.5px; font-weight:500; color:var(--t1);
  transition:color var(--t-fast);
}
.nav-login-link:hover { color:var(--primary) }
.nav-register-link { padding:10px 20px }
.nav-login-state[hidden],
.nav-user-state[hidden] { display:none !important }
.nav-user-box {
  position:relative; height:var(--nav);
  display:flex; align-items:center; gap:8px;
}
.nav-user-trigger {
  display:flex; align-items:center; gap:8px;
  max-width:154px; min-height:40px; padding:5px 10px 5px 6px;
  border:1px solid transparent; border-radius:999px;
  background:transparent; color:var(--t0); cursor:pointer;
  transition:background var(--t-fast), border-color var(--t-fast);
}
.nav-user-trigger:hover,
.nav-user-trigger:focus-visible,
.nav-user-box.is-open .nav-user-trigger {
  background:#fff7ed; border-color:#fed7aa; outline:none;
}
.nav-user-avatar {
  width:30px; height:30px; border-radius:50%; object-fit:cover;
  background:#f3f4f6; border:1px solid rgba(0,0,0,.06);
  flex-shrink:0;
}
.nav-user-name {
  min-width:0; max-width:92px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  font-size:13.5px; font-weight:600; color:var(--t0); line-height:1;
}
.nav-user-plus {
  display:inline-flex; align-items:center; justify-content:center;
  height:22px; padding:0 7px; border-radius:999px;
  background:#f3f4f6; color:#9ca3af;
  font-size:10px; font-weight:800; letter-spacing:.04em;
  transition:background var(--t-fast), color var(--t-fast), transform var(--t-fast);
}
.nav-user-plus.active {
  background:linear-gradient(135deg,#111827 0%,#4b5563 100%); color:#ffd28a;
}
.nav-user-plus:hover { transform:translateY(-1px) }
.nav-user-menu {
  position:absolute; right:0; top:calc(100% - 8px); z-index:1001;
  width:196px; padding:10px;
  background:#fff; border:1px solid rgba(17,24,39,.08); border-radius:12px;
  box-shadow:0 16px 40px rgba(17,24,39,.14);
  opacity:0; visibility:hidden; pointer-events:none;
  transform:translateY(8px);
  transition:opacity var(--t-fast), visibility var(--t-fast), transform var(--t-fast);
}
.nav-user-box:hover .nav-user-menu,
.nav-user-box:focus-within .nav-user-menu,
.nav-user-box.is-open .nav-user-menu {
  opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0);
}
.nav-user-menu::before {
  content:''; position:absolute; right:24px; top:-6px;
  width:12px; height:12px; background:#fff;
  border-left:1px solid rgba(17,24,39,.08); border-top:1px solid rgba(17,24,39,.08);
  transform:rotate(45deg);
}
.nav-user-menu-grid { display:grid; grid-template-columns:1fr 1fr; gap:6px }
.nav-user-menu a {
  display:flex; align-items:center; justify-content:center;
  min-height:38px; padding:0 8px; border-radius:8px;
  color:var(--t1); font-size:13px; font-weight:500;
  transition:background var(--t-fast), color var(--t-fast);
}
.nav-user-menu a:hover { background:#fff7ed; color:var(--primary) }
@media (max-width:900px) {
  .nav-act { gap:12px }
  .nav-login-state { gap:8px }
  .nav-login-link { display:none }
  .nav-register-link { padding:9px 14px; font-size:13px }
  .nav-user-name { max-width:72px }
  .nav-user-plus { display:none }
}
@media (max-width:760px) {
  .nav-act { display:none }
}
.btn-line {
  display:inline-flex; align-items:center; justify-content:center;
  padding:9px 20px; background:transparent; color:var(--t1);
  font-size:13.5px; font-weight:500;
  border-radius:var(--r-btn); border:1.5px solid var(--b1); cursor:pointer;
  transition:border-color var(--t-fast), color var(--t-fast), background var(--t-fast);
}
.btn-line:hover { border-color:rgba(0,0,0,.22); color:var(--t0); background:rgba(0,0,0,.025) }

/* ===================================================================
   HERO — V1.1 首屏：1:1 布局 + 加大检索卡片
   =================================================================== */
.hero {
  min-height:100vh; padding-top:var(--nav);
  position:relative; overflow:hidden;
  display:flex; align-items:center;
  background:var(--grad-hero);
}

/* 大气光场：低饱和、柔和、不抢主体 */
.hero::before {
  content:'';
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 66% 48% at 70% 8%, rgba(255,194,91,.20) 0%, rgba(255,194,91,.10) 34%, transparent 68%),
    radial-gradient(ellipse 54% 50% at 12% 78%, rgba(255,132,43,.12) 0%, transparent 66%),
    radial-gradient(ellipse 42% 38% at 86% 66%, rgba(255,232,170,.18) 0%, transparent 62%),
    linear-gradient(180deg, rgba(255,255,255,.34) 0%, rgba(255,255,255,0) 48%);
  pointer-events:none;
}

/* 光晕球：保留静态色彩层，避免首屏额外合成动画 */
.hero-orb {
  display:none;
}
.orb-a {
  width:620px; height:620px;
  background:radial-gradient(circle, rgba(255,154,31,.18) 0%, rgba(255,190,90,.09) 42%, transparent 72%);
  top:-210px; left:-170px;
}
.orb-b {
  width:390px; height:390px;
  background:radial-gradient(circle, rgba(255,207,112,.24) 0%, rgba(255,154,31,.12) 46%, transparent 74%);
  top:8%; right:-74px;
  filter:blur(54px); opacity:.76;
}
.orb-c {
  width:600px; height:600px;
  background:radial-gradient(circle, rgba(255,238,190,.22) 0%, rgba(255,180,80,.08) 44%, transparent 70%);
  bottom:-170px; right:10%;
}
.orb-d {
  width:430px; height:430px;
  background:radial-gradient(circle, rgba(255,114,0,.11) 0%, rgba(255,214,168,.08) 42%, transparent 70%);
  bottom:8%; left:-90px;
}
.orb-e {
  width:340px; height:340px;
  background:radial-gradient(circle, rgba(255,232,178,.16) 0%, rgba(255,165,64,.07) 46%, transparent 72%);
  top:31%; left:43%;
  filter:blur(58px); opacity:.64;
}
.orb-f {
  width:300px; height:300px;
  background:radial-gradient(circle, rgba(255,246,218,.20) 0%, rgba(255,185,86,.06) 48%, transparent 74%);
  top:52%; left:58%;
  filter:blur(62px); opacity:.58;
}
@keyframes orbA {
  0%,100% { transform:translate(0,0) }
  50%      { transform:translate(40px,30px) }
}
@keyframes orbB {
  0%,100% { transform:translate(0,0) }
  50%      { transform:translate(-46px,-32px) }
}
@keyframes orbC {
  0%,100% { transform:translate(0,0) }
  50%      { transform:translate(-32px,-26px) }
}
@keyframes orbD {
  0%,100% { transform:translate(0,0) }
  50%      { transform:translate(28px,-22px) }
}

.hero::after {
  content:'';
  position:absolute; bottom:0; left:0; right:0; height:48px;
  background:linear-gradient(to bottom, transparent, #ffffff);
  pointer-events:none; z-index:1;
}

/* 细腻暗角：聚焦中心、营造层次，替代廉价网格 */
.hero-tex {
  position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(rgba(255,114,0,.09) .6px, transparent .7px) 0 0 / 22px 22px,
    radial-gradient(ellipse 82% 78% at 50% 44%, transparent 58%, rgba(22,28,42,.018) 100%);
  opacity:.58;
}

.hero-glow-top {
  display:none;
}

.hero-in {
  position:relative; z-index:2;
  width:100%; max-width:var(--max); margin:0 auto;
  min-height:calc(100vh - var(--nav));
  padding:48px var(--pad-x) 64px;
  box-sizing:border-box;
  display:grid; grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr); grid-template-rows:minmax(0,1fr) auto;
  grid-template-areas:
    "copy card"
    "stats stats";
  gap:52px var(--gap-hero); align-items:center;
}
.hero-copy {
  grid-area:copy; min-width:0; min-height:388px; padding-right:8px;
  display:flex; flex-direction:column; justify-content:center;
}
.hero-visual {
  grid-area:card; min-width:0; min-height:388px;
  display:flex; justify-content:stretch; align-items:center;
}

/* ── 左侧 ── */
.hero-h1 {
  font-size:56px;
  font-weight:var(--w-bold); line-height:1.3; letter-spacing:0.02em;
  color:var(--text-primary); max-width:560px; margin-bottom:32px;
  animation:heroRise .7s var(--ease) .05s both;
}
.hero-h1 mark {
  background:linear-gradient(120deg, #ea580c 0%, #ff7200 46%, #ff9a1f 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
}

.hero-sub {
  font-size:15px; font-weight:var(--w-regular);
  line-height:1.78; color:var(--text-secondary);
  max-width:520px; margin-bottom:96px;
  animation:heroRise .7s var(--ease) .14s both;
}

.hero-ctas { display:flex; gap:12px; flex-wrap:wrap; animation:heroRise .7s var(--ease) .22s both }

@keyframes heroRise {
  from { opacity:0; transform:translateY(16px) }
  to   { opacity:1; transform:none }
}

@media (prefers-reduced-motion: reduce) {
  .hero-orb { animation:none }
  .hero-h1, .hero-sub, .hero-ctas, .hero-card, .hero-stats { animation:none }
  .sec-reveal { opacity:1; transform:none; transition:none }
}

.hero-cta-q {
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  padding:15px 36px; min-height:50px;
  border-radius:var(--r-btn);
  border:1px solid rgba(0,0,0,.10); background:var(--bg-primary);
  font-size:15px; font-weight:var(--w-medium); color:var(--text-secondary); cursor:pointer;
  transition:border-color var(--t-fast), color var(--t-fast), background var(--t-fast), box-shadow var(--t-fast), transform var(--t-fast);
}
.hero-cta-q:hover {
  border-color:transparent; color:#fff;
  background:var(--grad-primary);
}
.hero-cta-q--solid {
  background:var(--grad-primary);
  color:#fff; font-weight:600; letter-spacing:.01em;
  border:none;
  box-shadow:var(--shadow-button);
}
.hero-cta-q--solid:hover {
  background:linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 100%);
  transform:translateY(-1px);
  color:#fff;
}
.hero-cta-q--solid:active { transform:none }

/* ── 右侧检索卡片 V1.1：加大尺寸与视觉权重 ── */
.hero-card {
  width:100%;
  min-height:410px;
  display:flex; align-items:center;
  background:var(--bg-primary); border-radius:var(--r-card); padding:48px 40px 40px;
  border:1px solid var(--border-light);
  box-shadow:var(--shadow-card);
  transition:box-shadow var(--t-normal), transform var(--t-normal);
  animation:heroRise .8s var(--ease) .2s both;
}
.hero-card:hover {
  box-shadow:var(--shadow-card-hover);
  transform:translateY(-2px);
}
.hero-card-inner {
  width:100%; display:flex; flex-direction:column;
}

.card-head {
  display:flex; align-items:center; gap:14px; margin-bottom:16px;
}
.card-head-ico {
  width:44px; height:44px; flex-shrink:0;
  background:var(--grad-primary); border-radius:var(--r-icon);
  display:flex; align-items:center; justify-content:center;
  color:#fff; box-shadow:var(--shadow-button);
}
.card-head-txt { flex:1; min-width:0 }
.card-head-title {
  font-size:18px; font-weight:var(--w-bold); color:var(--text-primary);
  line-height:1.3;
}

.card-stat-line {
  font-size:22px; font-weight:var(--w-semibold); line-height:1.35;
  color:var(--text-primary); letter-spacing:-.01em;
  margin-bottom:24px;
}
.card-stat-line strong {
  font-weight:var(--w-bold); color:var(--primary);
}

/* 数据范围（查商标专属） */
.search-toolbar {
  display:flex; align-items:center; justify-content:space-between;
  gap:12px; margin-bottom:14px; min-height:32px;
}
.search-cats { margin-bottom:0 }
.search-scope {
  display:flex; align-items:center; flex-shrink:0;
}
.search-scope.is-hidden { display:none }
.scope-trigger {
  display:inline-flex; align-items:center; gap:6px;
  height:24px; padding:0 14px 0 0; margin-right:14px;
  font-size:15px; font-weight:var(--w-regular); color:var(--text-secondary);
  background:transparent; border:none; border-right:1px solid var(--border-light);
  border-radius:0; cursor:pointer; white-space:nowrap;
  font-family:var(--sans);
  transition:color var(--t-fast);
}
.scope-trigger:hover {
  color:var(--text-primary);
}
.scope-trigger[aria-expanded="true"] {
  color:var(--primary);
}
.scope-trigger-label { color:inherit; font-weight:var(--w-regular) }
.scope-trigger-value { font-weight:var(--w-semibold); color:var(--text-primary) }
.scope-trigger-chevron {
  width:14px; height:14px; flex-shrink:0; color:currentColor;
  transition:transform var(--t-fast), color var(--t-fast);
}
.scope-trigger[aria-expanded="true"] .scope-trigger-chevron {
  transform:rotate(180deg); color:var(--primary);
}

/* 搜索维度切换 */
.search-cats {
  display:flex; align-items:center; gap:4px;
}
.search-cat {
  padding:6px 14px 8px;
  font-size:15px; font-weight:var(--w-medium); color:var(--text-secondary);
  background:transparent; border:none; border-radius:0;
  cursor:pointer; white-space:nowrap; position:relative;
  transition:color var(--t-fast);
}
.search-cat:hover { color:var(--text-primary); }
.search-cat.on {
  color:var(--primary); font-weight:var(--w-semibold);
}
.search-cat.on::after {
  content:''; position:absolute; bottom:0; left:50%; transform:translateX(-50%);
  width:18px; height:2px; border-radius:1px;
  background:var(--primary);
}

.search-wrap {
  display:flex; align-items:center;
  height:54px; padding:5px 4px 5px 18px;
  border:1px solid var(--border); border-radius:var(--r-input);
  background:var(--bg-secondary); margin-bottom:0;
  transition:border-color var(--t-fast), box-shadow var(--t-fast), background var(--t-fast);
}
.search-wrap:focus-within {
  border-color:var(--primary); background:var(--bg-primary);
  box-shadow:0 0 0 3px rgba(255,114,0,.10);
}
.search-in {
  flex:1; height:100%; border:none; background:transparent; outline:none;
  font-size:15px; font-family:var(--sans); color:var(--text-primary);
  min-width:0;
}
.search-in::placeholder { color:var(--text-muted); font-size:15px }

.search-graph-btn {
  display:inline-flex; align-items:center; justify-content:center;
  width:42px; height:42px; flex-shrink:0; margin-right:4px;
  border:none; border-radius:calc(var(--r-input) - 4px);
  background:transparent; color:var(--text-secondary); cursor:pointer;
  transition:background var(--t-fast), color var(--t-fast), transform var(--t-fast);
}
.search-graph-btn:hover {
  background:rgba(255,114,0,.10); color:var(--primary);
}
.search-graph-btn:active { transform:scale(.96) }
.search-graph-btn.is-hidden { display:none }

.search-btn {
  height:44px; padding:0 24px; flex-shrink:0;
  background:var(--grad-primary);
  color:#fff; font-size:14px; font-weight:600;
  border:none; border-radius:calc(var(--r-input) - 4px); cursor:pointer;
  font-family:var(--sans); white-space:nowrap;
  box-shadow:var(--shadow-button);
  transition:background var(--t-fast), transform var(--t-fast);
}
.search-btn:hover {
  background:linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 100%);
}

/* 卡片内功能入口 — 次级辅助区，层级低于搜索框 */
.card-dock {
  margin-top:28px;
  padding-top:24px;
  border-top:1px solid var(--border-light);
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:10px;
}
.dock-entry {
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
  min-height:88px; padding:14px 8px 12px;
  border-radius:14px;
  background:#fafbfc; border:1px solid transparent;
  cursor:pointer; text-decoration:none;
  transition:background var(--t-fast), border-color var(--t-fast), transform var(--t-fast);
}
.dock-entry:hover {
  background:#fff8f2;
  border-color:rgba(255,114,0,.18);
  transform:translateY(-1px);
}
.dock-entry-body { display:flex; justify-content:center; min-width:0; width:100% }

.dock-ico {
  width:34px; height:34px; flex-shrink:0;
  border-radius:8px;
  background:#f8f9fb;
  display:flex; align-items:center; justify-content:center;
  color:#9ca3af;
  transition:background var(--t-fast), color var(--t-fast);
}
.dock-ico svg {
  width:18px; height:18px;
  stroke:currentColor; fill:none;
}
.dock-entry:hover .dock-ico {
  background:#fff4eb;
  color:var(--primary);
}

.dock-entry-title {
  font-size:13.5px; font-weight:var(--w-semibold); color:var(--text-secondary);
  line-height:1.35; white-space:nowrap;
}
.dock-entry:hover .dock-entry-title { color:var(--text-primary) }

.hero-stats {
  grid-area:stats;
  display:grid; grid-template-columns:repeat(4,1fr); gap:0;
  padding-top:24px;
  border-top:1px solid rgba(17,24,39,.08);
  animation:heroRise .7s var(--ease) .28s both;
}
.hero-stat {
  position:relative;
  display:flex; flex-direction:column; align-items:center; gap:6px;
  text-align:center;
  cursor:default;
}
.hero-stat + .hero-stat::before {
  content:'';
  position:absolute; left:0; top:8px; bottom:8px; width:1px;
  background:linear-gradient(to bottom, transparent, rgba(17,24,39,.10), transparent);
}
.hero-stat-num {
  font-family:var(--stat);
  font-size:clamp(26px, 2.6vw, 36px); font-weight:700; line-height:1;
  letter-spacing:-.04em; color:var(--text-primary);
  font-variant-numeric:tabular-nums;
  transition:color var(--t-fast);
}
.hero-stat-label {
  font-size:13px; font-weight:var(--w-medium); color:var(--text-muted);
  letter-spacing:.08em;
  transition:color var(--t-fast);
}
.hero-stat:hover .hero-stat-num,
.hero-stat:focus-within .hero-stat-num {
  color:var(--primary);
}
.hero-stat:hover .hero-stat-label,
.hero-stat:focus-within .hero-stat-label {
  color:var(--text-secondary);
}

/* ===================================================================
   COMMON SECTION STYLES — unified typography hierarchy
   =================================================================== */
.sec { padding:var(--sec-py) 0 }

/* 模块整屏垂直居中（首屏除外） */
.sec-view {
  min-height:var(--section-view-height);
  display:flex; align-items:center;
  padding-top:0 !important; padding-bottom:0 !important;
  box-sizing:border-box;
}
.sec-view > .wrap {
  width:100%; max-width:var(--max); margin:0 auto;
  padding:48px var(--pad-x); box-sizing:border-box;
}
.testi-sec.sec-view {
  flex-direction:column; justify-content:flex-start; align-items:stretch;
  padding:100px 0 0 !important;
  box-sizing:border-box;
}
.testi-sec.sec-view > .wrap {
  flex-shrink:0; width:100%; max-width:var(--max); margin:0 auto;
  padding:0 var(--pad-x); box-sizing:border-box;
}

/* Module header: 大标题(.sh) → 副标题(.st) → 说明(.sp) */
.sec-hdr { margin-bottom:var(--section-head-gap) }
.sec-hdr--center {
  text-align:center;
  display:flex; flex-direction:column; align-items:center;
}
.sec-hdr--center .sh { text-align:center; max-width:800px }
.sec-hdr--center .st { text-align:center; margin-inline:auto }
.sec-hdr--center .sp { text-align:center; margin-inline:auto }

.sh {
  font-size:var(--fs-h2); font-weight:var(--w-bold); line-height:var(--lh-title);
  letter-spacing:.02em; color:var(--text-primary);
  max-width:720px; margin-bottom:0;
}

.st {
  font-size:var(--fs-h3); font-weight:var(--w-semibold); line-height:var(--lh-title);
  color:var(--text-secondary); max-width:720px; margin-top:10px; margin-bottom:0;
}
.sh + .st { margin-top:10px }
.st + .sp, .sh + .sp { margin-top:12px }
.st + .sec-meta { margin-top:10px }

.sp {
  font-size:var(--fs-body); font-weight:var(--w-regular); line-height:var(--lh-body);
  color:var(--text-secondary); max-width:640px;
}

/* 卡片内小标签（非模块大标题） */
.lbl {
  display:inline-flex; align-items:center; gap:8px;
  font-size:var(--fs-label); font-weight:var(--w-semibold); color:var(--primary);
  letter-spacing:.04em; margin-bottom:10px;
}
.lbl::before {
  content:''; width:16px; height:2px; background:var(--primary);
  border-radius:1px; flex-shrink:0;
}
.sec-meta {
  font-size:var(--fs-body-sm); font-weight:var(--w-regular);
  color:var(--text-muted); margin-top:10px; line-height:var(--lh-body);
}

/* Link with arrow */
.la {
  display:inline-flex; align-items:center; gap:5px;
  font-size:var(--fs-body-sm); font-weight:var(--w-semibold); color:var(--p); transition:gap var(--t-fast);
}
.la::after { content:'→'; font-size:14px }
.la:hover { gap:9px }

/* ===================================================================
   AI SECTION
   =================================================================== */
.ai-sec {
  background:
    radial-gradient(ellipse 72% 62% at 18% 18%, rgba(255,114,0,.18) 0%, rgba(255,114,0,.07) 34%, transparent 66%),
    radial-gradient(ellipse 64% 58% at 84% 72%, rgba(40,68,130,.34) 0%, rgba(24,42,82,.16) 42%, transparent 70%),
    radial-gradient(ellipse 50% 46% at 62% 10%, rgba(255,149,0,.10) 0%, transparent 62%),
    linear-gradient(145deg, #070b14 0%, #0d1324 42%, #111827 100%);
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
.ai-sec::before {
  content:''; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(ellipse 42% 32% at 18% 86%, rgba(255,114,0,.11) 0%, transparent 68%),
    radial-gradient(ellipse 44% 36% at 76% 20%, rgba(76,108,180,.18) 0%, transparent 70%);
  opacity:.9;
}

.ai-hdr {
  position:relative; z-index:1;
  margin-bottom:var(--section-head-gap); padding-bottom:0;
}
.ai-sec .sh { color:#fff }
.ai-hdr .sh, .ai-hdr .st { max-width:none }
.ai-hdr-r { display:flex; flex-direction:column; gap:14px; padding-top:12px }
.ai-hdr-r .sp {
  margin-top: 10px;
  font-size:13px; font-weight:var(--w-regular);
  color:var(--text-muted); line-height:1.65; max-width:420px;
}
.ai-hdr-r .la {
  font-size:13px; font-weight:var(--w-medium); color:var(--text-muted);
}
.ai-hdr-r .la:hover { color:var(--primary) }

.ai-sec.sec-view {
  align-items:center;
}
.ai-sec.sec-view > .wrap {
  padding:54px var(--pad-x);
}

.ai-showcase {
  position:relative; z-index:1;
  display:grid; grid-template-columns:310px minmax(0,1fr);
  gap:72px; align-items:stretch;
}
.ai-tabs {
  display:flex; flex-direction:column; justify-content:space-between; gap:12px;
}
.ai-tab {
  width:100%; min-height:88px; padding:20px 0;
  display:grid; grid-template-columns:36px minmax(0,1fr); gap:13px; align-items:center;
  color:rgba(255,255,255,.38); background:transparent; border:none; border-radius:0;
  text-align:left; cursor:pointer; position:relative; overflow:hidden;
  transition:color var(--t-normal), transform var(--t-normal);
}
.ai-tab::before {
  content:''; position:absolute; left:49px; right:0; bottom:0; height:1px;
  background:linear-gradient(90deg, rgba(255,255,255,.10) 0%, rgba(255,255,255,.035) 46%, rgba(255,255,255,0) 100%);
  pointer-events:none;
}
.ai-tab::after {
  content:''; position:absolute; left:49px; right:0; bottom:0; height:2px;
  background:linear-gradient(90deg, rgba(255,114,0,1) 0%, rgba(255,149,0,.48) 44%, rgba(255,149,0,0) 100%);
  opacity:0; transition:opacity var(--t-normal); pointer-events:none;
}
.ai-tab:hover { color:rgba(255,255,255,.68) }
.ai-tab.is-active {
  color:#fff; transform:translateX(4px);
  text-shadow:0 0 24px rgba(255,114,0,.22);
}
.ai-tab.is-active::after { opacity:1 }
.ai-tab-ico {
  width:36px; height:36px; display:flex; align-items:center; justify-content:center;
  color:rgba(255,255,255,.30); position:relative; z-index:1;
  transition:color var(--t-normal);
}
.ai-tab-ico svg { display:block; width:19px; height:19px }
.ai-tab.is-active .ai-tab-ico { color:var(--primary-light) }
.ai-tab-copy { position:relative; z-index:1; min-width:0 }
.ai-tab-title {
  display:block; font-size:17px; font-weight:var(--w-semibold);
  line-height:var(--lh-title); color:currentColor; margin-bottom:4px;
}
.ai-tab-desc {
  display:block; font-size:12.5px; font-weight:var(--w-regular);
  line-height:1.4; color:rgba(255,255,255,.30);
  overflow:visible;
  text-wrap:balance;
}
.ai-tab.is-active .ai-tab-desc { color:rgba(255,232,213,.76) }

.ai-detail { position:relative; min-height:500px; contain:layout paint }
.ai-panel {
  position:absolute; inset:0;
  display:grid; grid-template-columns:minmax(0,1fr); align-items:center;
  padding:54px 58px; border:none; border-radius:30px;
  background:
    radial-gradient(ellipse 58% 72% at 90% 10%, rgba(255,149,0,.16) 0%, transparent 58%),
    radial-gradient(ellipse 70% 80% at 0% 100%, rgba(76,108,180,.12) 0%, transparent 62%),
    linear-gradient(145deg, rgba(255,255,255,.082), rgba(255,255,255,.026));
  box-shadow:0 26px 82px rgba(0,0,0,.25);
  overflow:hidden;
  opacity:0; pointer-events:none;
  transform:translate3d(0,18px,0) scale(.985);
  transition:opacity .48s var(--ease), transform .48s var(--ease);
  backface-visibility:hidden;
}
.ai-panel.is-active { opacity:1; pointer-events:auto; transform:translate3d(0,0,0) scale(1) }
.ai-panel:not(.is-active) .ai-tm-visual::before,
.ai-panel:not(.is-active) .ai-tm-visual::after,
.ai-panel:not(.is-active) .ai-tm-card,
.ai-panel:not(.is-active) .ai-tm-chip,
.ai-panel:not(.is-active) .ai-patent-doc,
.ai-panel:not(.is-active) .ai-patent-node,
.ai-panel:not(.is-active) .ai-patent-tag,
.ai-panel:not(.is-active) .ai-open-hub::before,
.ai-panel:not(.is-active) .ai-open-flow,
.ai-panel:not(.is-active) .ai-data-side::after,
.ai-panel:not(.is-active) .ai-data-hub::before,
.ai-panel:not(.is-active) .ai-data-hub em,
.ai-panel:not(.is-active) .ai-tm-mcp::before,
.ai-panel:not(.is-active) .ai-ip-visual::before,
.ai-panel:not(.is-active) .ai-ip-hub::before,
.ai-panel:not(.is-active) .ai-open-block::after,
.ai-panel:not(.is-active) .ai-open-arrow-v2::before {
  animation-play-state:paused !important;
  will-change:auto;
}
.ai-showcase.is-switching .ai-tm-visual::before,
.ai-showcase.is-switching .ai-tm-visual::after,
.ai-showcase.is-switching .ai-tm-card,
.ai-showcase.is-switching .ai-tm-chip,
.ai-showcase.is-switching .ai-patent-doc,
.ai-showcase.is-switching .ai-patent-node,
.ai-showcase.is-switching .ai-patent-tag,
.ai-showcase.is-switching .ai-open-hub::before,
.ai-showcase.is-switching .ai-open-flow,
.ai-showcase.is-switching .ai-data-side::after,
.ai-showcase.is-switching .ai-data-hub::before,
.ai-showcase.is-switching .ai-data-hub em,
.ai-showcase.is-switching .ai-tm-mcp::before,
.ai-showcase.is-switching .ai-ip-visual::before,
.ai-showcase.is-switching .ai-ip-hub::before,
.ai-showcase.is-switching .ai-open-block::after,
.ai-showcase.is-switching .ai-open-arrow-v2::before {
  animation-play-state:paused !important;
}
.ai-panel::before {
  content:''; position:absolute; inset:0;
  background:
    linear-gradient(115deg, rgba(255,255,255,.075) 0%, transparent 30%),
    linear-gradient(90deg, rgba(255,114,0,.18), transparent 38%);
  mask:linear-gradient(#000, transparent 72%);
  -webkit-mask:linear-gradient(#000, transparent 72%);
  pointer-events:none;
}
.ai-panel-main, .ai-panel-art { position:relative; z-index:1 }
.ai-panel-title {
  font-size:clamp(32px, 3.2vw, 46px); font-weight:800; line-height:1.12;
  letter-spacing:-.045em; color:#fff; margin-bottom:18px;
  max-width:760px;
}
.ai-panel-desc {
  max-width:720px; font-size:15px; line-height:1.85;
  color:rgba(255,255,255,.66); margin-bottom:44px;
}
.ai-core {
  position:relative;
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0;
  max-width:760px;
}
.ai-core-item {
  position:relative; min-height:112px;
  display:flex; flex-direction:column; justify-content:flex-start; gap:9px;
  padding:44px 30px 18px 0;
  overflow:visible;
}
.ai-core-item::before {
  content:''; position:absolute; left:0; top:14px; width:42px; height:2px;
  border-radius:2px; background:linear-gradient(90deg, rgba(255,114,0,.9), rgba(255,149,0,0));
}
.ai-core-item + .ai-core-item {
  padding-left:30px;
}
.ai-core-item + .ai-core-item::after {
  content:''; position:absolute; left:0; top:22px; bottom:22px; width:1px;
  background:linear-gradient(to bottom, transparent, rgba(255,255,255,.16), transparent);
}
.ai-core-item strong {
  display:block; color:#fff;
  font-size:clamp(24px, 2.1vw, 34px); font-weight:800; line-height:1.08; letter-spacing:-.045em;
  text-shadow:0 0 34px rgba(255,114,0,.16);
}
.ai-core-item span {
  display:block; color:rgba(255,226,204,.74);
  font-size:13px; line-height:1.45;
}
.ai-panel-art {
  position:absolute; right:42px; top:50%; transform:translateY(-50%);
  z-index:0; display:flex; align-items:center; justify-content:center;
  opacity:.12; pointer-events:none;
}
.ai-orbit {
  position:relative; width:340px; height:340px; border-radius:50%;
  border:1px solid rgba(255,255,255,.12);
  background:
    radial-gradient(circle, rgba(255,114,0,.16) 0%, rgba(255,114,0,.06) 36%, transparent 62%),
    rgba(255,255,255,.035);
  box-shadow:inset 0 0 42px rgba(255,255,255,.04), 0 0 56px rgba(255,114,0,.08);
}
.ai-orbit::before,
.ai-orbit::after {
  content:''; position:absolute; inset:22px; border-radius:50%;
  border:1px solid rgba(255,255,255,.11);
}
.ai-orbit::after {
  inset:58px; background:rgba(255,114,0,.46); border:none;
  box-shadow:0 0 34px rgba(255,114,0,.28);
}
.ai-orbit-dot {
  position:absolute; width:10px; height:10px; border-radius:50%;
  background:#ffd7b2; box-shadow:0 0 18px rgba(255,149,0,.70);
}
.ai-orbit-dot:nth-child(1) { top:22px; left:104px }
.ai-orbit-dot:nth-child(2) { right:28px; top:92px }
.ai-orbit-dot:nth-child(3) { left:44px; bottom:38px }

.ai-panel--data {
  padding:48px 50px 56px;
}
.ai-panel--data .ai-panel-main {
  min-height:396px;
  display:flex; align-items:center; justify-content:center;
}
.ai-panel--data .ai-panel-title { font-size:clamp(30px, 2.8vw, 42px) }
.ai-panel--data .ai-panel-desc { margin-bottom:0 }
.ai-data-map {
  position:relative; width:100%; min-height:372px;
  display:grid; grid-template-columns:minmax(248px, 1fr) 112px minmax(278px, 1.08fr);
  gap:22px; align-items:stretch;
  border-radius:0; overflow:visible;
  background:
    radial-gradient(circle at 50% 50%, rgba(255,114,0,.12), transparent 30%),
    radial-gradient(ellipse at 16% 16%, rgba(255,255,255,.052), transparent 46%),
    radial-gradient(ellipse at 86% 84%, rgba(255,137,43,.08), transparent 48%);
  box-shadow:none;
}
.ai-data-map::before {
  content:''; position:absolute; inset:18px 42px;
  border-radius:40px;
  background:
    radial-gradient(ellipse at 50% 52%, rgba(255,137,43,.10), transparent 58%),
    linear-gradient(90deg, transparent, rgba(255,255,255,.035), transparent);
  filter:blur(.2px);
  pointer-events:none;
}
.ai-data-side,
.ai-data-bridge {
  position:relative; z-index:1;
}
.ai-data-side {
  min-height:348px; padding:24px 26px 28px;
  display:flex; flex-direction:column;
  border-radius:30px;
  overflow:hidden;
  background-clip:padding-box;
  background:
    linear-gradient(145deg, rgba(15,23,42,.80), rgba(30,41,59,.44));
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 24px 62px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.07);
}
.ai-data-side::after {
  content:''; position:absolute; inset:-38% auto -38% -56%;
  width:42%; transform:translate3d(-10%,0,0) rotate(18deg);
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.10), rgba(255,154,31,.10), transparent);
  opacity:0; pointer-events:none;
  animation:aiCardSweep 7.8s var(--ease) infinite;
  will-change:transform, opacity;
}
.ai-data-side--right::after {
  animation-delay:-3.1s;
}
.ai-data-side--right {
  background:
    radial-gradient(circle at 86% 0%, rgba(255,154,31,.13), transparent 36%),
    linear-gradient(145deg, rgba(15,23,42,.78), rgba(30,41,59,.46));
}
.ai-data-kicker {
  display:inline-flex; align-items:center; align-self:flex-start;
  height:28px; padding:0 11px; border-radius:999px;
  color:rgba(255,214,173,.78); font-size:12px; font-weight:var(--w-semibold);
  letter-spacing:.03em;
  background:rgba(255,114,0,.10);
  border:1px solid rgba(255,137,43,.18);
}
.ai-data-heading {
  margin-top:14px; color:#fff;
  font-size:16px; font-weight:var(--w-bold); line-height:1.5;
  letter-spacing:0;
}
.ai-data-sub {
  margin-top:7px; color:rgba(255,235,218,.56);
  font-size:12.5px; line-height:1.55;
}
.ai-data-list {
  list-style:none; display:grid; gap:7px;
  margin-top:18px;
  flex:1; align-content:space-between;
}
.ai-data-list li {
  position:relative; min-height:48px; height:48px;
  display:flex; align-items:center;
  padding:7px 12px 7px 32px;
  color:rgba(255,247,237,.88); font-size:13.5px; font-weight:var(--w-semibold);
  line-height:1.35;
  border-radius:14px;
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.075);
}
.ai-data-list li::before {
  content:''; position:absolute; left:14px; top:50%; transform:translateY(-50%);
  width:6px; height:6px; border-radius:50%;
  background:#ff9a1f; box-shadow:0 0 14px rgba(255,114,0,.58);
}
.ai-data-scenarios {
  list-style:none; display:grid; gap:8px;
  margin-top:18px;
}
.ai-data-scenario {
  display:grid; grid-template-columns:32px minmax(0,1fr); gap:11px; align-items:center;
  min-height:42px; padding:8px 14px;
  border-radius:18px;
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.075);
}
.ai-data-scenario i {
  width:32px; height:32px; border-radius:11px;
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-style:normal; font-size:12px; font-weight:var(--w-bold);
  background:linear-gradient(135deg, #ff7200, #ffb347);
  box-shadow:0 0 24px rgba(255,114,0,.22);
}
.ai-data-scenario span {
  display:block; color:rgba(255,247,237,.90);
  font-size:14px; font-weight:var(--w-semibold); line-height:1.55;
}
.ai-data-bridge {
  min-height:348px; display:flex; align-items:center; justify-content:center;
}
.ai-data-bridge::before,
.ai-data-bridge::after {
  content:''; position:absolute; top:50%; width:28px; height:1px;
  background:linear-gradient(90deg, rgba(255,137,43,0), rgba(255,137,43,.62));
}
.ai-data-bridge::before { left:-22px }
.ai-data-bridge::after {
  right:-22px; transform:scaleX(-1);
}
.ai-data-hub {
  position:relative; width:112px; min-height:166px; padding:18px 14px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
  text-align:center; border-radius:26px;
  background:
    radial-gradient(circle at 50% 0%, rgba(255,183,77,.28), transparent 50%),
    linear-gradient(145deg, rgba(17,24,39,.92), rgba(30,41,59,.58));
  border:1px solid rgba(255,137,43,.32);
  box-shadow:0 0 0 8px rgba(255,114,0,.045), 0 22px 48px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.08);
}
.ai-data-hub::before {
  content:''; position:absolute; inset:-10px; border-radius:32px;
  border:1px solid rgba(255,137,43,.30);
  opacity:.34; pointer-events:none;
  animation:aiHubPulse 3.8s var(--ease) infinite;
  will-change:transform, opacity;
}
.ai-data-hub strong {
  display:block; color:#fff; font-size:18px; font-weight:var(--w-bold);
  line-height:1.55; letter-spacing:-.01em;
}
.ai-data-hub span {
  display:block; color:rgba(255,226,204,.70);
  font-size:12px; line-height:1.35;
}
.ai-data-hub em {
  display:block; width:42px; height:1px;
  background:linear-gradient(90deg, transparent, rgba(255,149,0,.80), transparent);
  transform-origin:center;
  animation:aiHubDivider 2.8s var(--ease) infinite;
  will-change:transform, opacity;
}

.ai-panel--tm {
  padding:44px 52px;
}
.ai-panel--tm .ai-panel-main {
  min-height:382px;
  display:flex; align-items:center; justify-content:center;
}
.ai-tm-visual {
  position:relative; width:100%; min-height:382px; height:100%;
  display:grid; grid-template-columns:minmax(310px,1.08fr) 124px minmax(270px,.92fr);
  gap:18px; align-items:center;
  overflow:visible; isolation:isolate;
}
.ai-tm-visual::before {
  content:''; position:absolute; left:9%; right:9%; top:50%; height:1px;
  background:
    linear-gradient(90deg, transparent, rgba(255,137,43,.58) 22%, rgba(255,137,43,.58) 78%, transparent);
  pointer-events:none; z-index:0;
}
.ai-tm-visual::after {
  content:''; position:absolute; inset:18px 4%;
  border-radius:44px;
  background:
    radial-gradient(ellipse at 26% 35%, rgba(255,255,255,.055), transparent 42%),
    radial-gradient(ellipse at 68% 64%, rgba(255,137,43,.10), transparent 48%);
  pointer-events:none; z-index:-1;
}
.ai-tm-card {
  position:relative; z-index:1;
  min-height:286px; padding:28px 30px 30px;
  border-radius:30px;
  background:
    radial-gradient(circle at 15% 0%, rgba(255,154,31,.16), transparent 38%),
    linear-gradient(145deg, rgba(15,23,42,.86), rgba(30,41,59,.52));
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 24px 64px rgba(0,0,0,.23), inset 0 1px 0 rgba(255,255,255,.08);
}
.ai-tm-card--workflow {
  min-height:286px; transform:none;
  background:
    radial-gradient(circle at 84% 0%, rgba(255,183,77,.15), transparent 36%),
    linear-gradient(145deg, rgba(20,24,36,.82), rgba(45,36,30,.48));
  border-color:rgba(255,137,43,.18);
}
.ai-tm-kicker {
  display:inline-flex; align-items:center; align-self:flex-start;
  height:28px; padding:0 11px;
  border-radius:999px;
  color:rgba(255,214,173,.76); font-size:12px; font-weight:var(--w-semibold);
  letter-spacing:.03em;
  background:rgba(255,114,0,.10);
  border:1px solid rgba(255,137,43,.18);
}
.ai-tm-heading {
  margin-top:14px; max-width:360px;
  color:#fff; font-size:16px; font-weight:var(--w-bold); line-height:1.5;
  letter-spacing:0;
}
.ai-tm-chip-grid {
  list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px; margin-top:20px;
}
.ai-tm-chip {
  min-height:34px; padding:7px 8px;
  border-radius:999px;
  display:inline-flex; align-items:center; justify-content:center;
  color:rgba(255,247,237,.88); font-size:12.5px; font-weight:var(--w-semibold);
  background:rgba(255,255,255,.060);
  border:1px solid rgba(255,255,255,.080);
  white-space:nowrap;
}
.ai-tm-bridge {
  position:relative; z-index:2;
  min-height:286px;
  display:flex; align-items:center; justify-content:center;
}
.ai-tm-bridge::before,
.ai-tm-bridge::after {
  content:''; position:absolute; left:50%; width:1px; height:72px;
  background:linear-gradient(180deg, transparent, rgba(255,137,43,.52), transparent);
}
.ai-tm-bridge::before { top:18px; transform:translateX(-50%) rotate(-14deg) }
.ai-tm-bridge::after { bottom:18px; transform:translateX(-50%) rotate(14deg) }
.ai-tm-mcp {
  position:relative; z-index:1;
  width:104px; height:104px; border-radius:30px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
  color:#fff;
  background:linear-gradient(145deg, #ff7200, #ffad47);
  box-shadow:0 0 0 8px rgba(255,114,0,.07), 0 24px 46px rgba(0,0,0,.22), 0 0 34px rgba(255,114,0,.18);
}
.ai-tm-mcp strong {
  display:block; font-size:24px; font-weight:800; letter-spacing:.02em; line-height:1;
}
.ai-tm-mcp span {
  display:block; color:rgba(255,255,255,.78); font-size:11.5px; line-height:1.2;
}
.ai-tm-workflow-list {
  list-style:none; display:grid; gap:10px; margin-top:20px;
}
.ai-tm-workflow-list li {
  position:relative;
  padding-left:18px;
  color:rgba(255,247,237,.82); font-size:13.5px; font-weight:var(--w-medium); line-height:1.55;
}
.ai-tm-workflow-list li::before {
  content:''; position:absolute; left:0; top:.72em;
  width:6px; height:6px; border-radius:50%;
  background:rgba(255,154,31,.92);
  box-shadow:0 0 12px rgba(255,114,0,.44);
}
@media (prefers-reduced-motion: reduce) {
  .ai-patent-doc,
  .ai-patent-node,
  .ai-patent-tag,
  .ai-open-hub::before,
  .ai-open-flow {
    animation:none;
  }
}

.ai-panel--patent,
.ai-panel--open {
  padding:44px 52px;
}
.ai-panel--patent .ai-panel-main,
.ai-panel--open .ai-panel-main {
  min-height:360px;
  display:flex; align-items:center; justify-content:center;
}
.ai-patent-visual,
.ai-open-visual {
  position:relative; min-height:360px; height:100%;
  overflow:visible;
}
.ai-patent-visual {
  display:flex; align-items:center; justify-content:center;
}
.ai-patent-visual::before { display:none }
.ai-patent-lines {
  position:absolute; inset:0; width:100%; height:100%;
  color:rgba(255,137,43,.24); pointer-events:none; z-index:1;
}
.ai-patent-lines path {
  fill:none; stroke:currentColor; stroke-width:1; stroke-linecap:round;
  stroke-dasharray:6 12;
}
.ai-patent-doc {
  position:relative; z-index:3;
  width:min(360px, 70%); min-height:238px;
  padding:30px 30px 28px;
  border-radius:28px;
  background:
    radial-gradient(circle at 86% 12%, rgba(255,114,0,.18), transparent 36%),
    linear-gradient(145deg, rgba(15,23,42,.88), rgba(30,41,59,.56));
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 28px 72px rgba(0,0,0,.28), 0 0 42px rgba(255,114,0,.10), inset 0 1px 0 rgba(255,255,255,.08);
  animation:aiPatentFloatMain 5.8s var(--ease) infinite alternate;
}
.ai-patent-doc::before,
.ai-patent-doc::after {
  content:''; position:absolute; inset:10px;
  border-radius:28px; border:1px solid rgba(255,255,255,.025);
  transform:translate3d(-72px,66px,0); z-index:-1;
  background:rgba(15,23,42,.10);
}
.ai-patent-doc::after {
  transform:translate3d(76px,-68px,0);
  border-style:dashed;
  border-color:rgba(255,235,218,.10);
  background:transparent;
}
.ai-patent-doc-head {
  display:flex; align-items:center; justify-content:space-between; margin-bottom:30px;
}
.ai-patent-badge {
  width:48px; height:48px; border-radius:16px;
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:16px; font-weight:var(--w-bold);
  background:linear-gradient(135deg, #ff7200, #ffb347);
  box-shadow:0 0 30px rgba(255,114,0,.34);
}
.ai-patent-code {
  color:rgba(255,235,218,.58); font-size:13px; font-weight:var(--w-semibold);
  letter-spacing:.08em;
}
.ai-patent-title {
  display:flex; flex-direction:column; gap:6px; min-width:0; margin-bottom:22px;
}
.ai-patent-title strong {
  color:rgba(255,247,237,.96); font-size:18px; font-weight:var(--w-bold); line-height:1.2;
}
.ai-patent-title span {
  width:146px; height:7px; border-radius:999px;
  background:linear-gradient(90deg, rgba(255,183,77,.46), rgba(255,255,255,.08));
}
.ai-patent-row {
  height:10px; border-radius:999px; margin-bottom:14px;
  background:rgba(255,255,255,.09);
}
.ai-patent-row:nth-child(2) { width:86% }
.ai-patent-row:nth-child(3) { width:68% }
.ai-patent-row:nth-child(4) { width:76% }
.ai-patent-grid {
  display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:26px;
}
.ai-patent-mini {
  min-height:48px; border-radius:16px;
  display:flex; align-items:center; justify-content:center;
  color:rgba(255,247,237,.92); font-size:14px; font-weight:var(--w-semibold);
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,137,43,.16);
}
.ai-patent-node {
  position:absolute; z-index:3;
  display:inline-flex; align-items:center; justify-content:center;
  min-width:104px; padding:11px 15px;
  border-radius:999px;
  color:rgba(255,247,237,.92); font-size:14px; font-weight:var(--w-semibold);
  background:rgba(15,23,42,.76);
  border:1px solid rgba(255,137,43,.24);
  box-shadow:0 14px 34px rgba(0,0,0,.18), 0 0 24px rgba(255,114,0,.08);
  white-space:nowrap;
  animation:aiPatentFloatSoft 5.2s var(--ease) infinite alternate;
}
.ai-patent-node::before {
  content:''; width:7px; height:7px; border-radius:50%; margin-right:8px;
  background:#ff9a1f; box-shadow:0 0 14px rgba(255,114,0,.62);
}
.ai-patent-node--search { left:28px; top:54px }
.ai-patent-node--draft { right:34px; top:48px; animation-delay:-1.4s }
.ai-patent-node--oa { left:44px; bottom:54px; animation-delay:-2.6s }
.ai-patent-node--translate { right:54px; bottom:52px; animation-delay:-3.5s }
.ai-patent-tag {
  position:absolute; z-index:4;
  color:rgba(255,235,218,.56); font-size:13px; font-weight:var(--w-semibold);
  animation:aiPatentFloatTiny 6.2s var(--ease) infinite alternate;
}
.ai-patent-tag--fto { left:118px; top:18px }
.ai-patent-tag--mine { right:96px; bottom:18px; animation-delay:-2.4s }
@keyframes aiPatentFloatMain {
  from { transform:translate3d(0,-5px,0) }
  to   { transform:translate3d(0,7px,0) }
}
@keyframes aiPatentFloatSoft {
  from { transform:translate3d(0,-6px,0) }
  to   { transform:translate3d(0,6px,0) }
}
@keyframes aiPatentFloatTiny {
  from { transform:translate3d(0,-4px,0) }
  to   { transform:translate3d(0,5px,0) }
}

.ai-open-visual {
  display:flex; align-items:center; justify-content:center;
}
.ai-open-lines {
  position:absolute; inset:0; width:100%; height:100%; pointer-events:none;
  color:rgba(255,137,43,.32);
}
.ai-open-lines path {
  fill:none; stroke:currentColor; stroke-width:1.1; stroke-linecap:round; stroke-dasharray:7 12;
}
.ai-open-hub {
  position:relative; z-index:2;
  width:156px; height:156px; border-radius:42px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
  background:
    radial-gradient(circle at 50% 0%, rgba(255,183,77,.24), transparent 54%),
    linear-gradient(145deg, rgba(15,23,42,.90), rgba(30,41,59,.56));
  border:1px solid rgba(255,137,43,.32);
  box-shadow:0 0 0 10px rgba(255,114,0,.04), 0 0 52px rgba(255,114,0,.16), 0 24px 62px rgba(0,0,0,.25);
}
.ai-open-hub::before {
  content:''; position:absolute; inset:0; border-radius:inherit;
  background:linear-gradient(145deg, rgba(255,114,0,.18), rgba(255,255,255,.03));
  opacity:.52; z-index:-1;
  animation:aiOpenPulse 2.9s var(--ease) infinite;
}
.ai-open-hub strong {
  color:rgba(255,247,237,.96); font-size:18px; font-weight:var(--w-bold); line-height:1.2;
}
.ai-open-hub span {
  color:rgba(255,235,218,.56); font-size:12px; font-weight:var(--w-semibold); letter-spacing:.06em;
}
.ai-open-node {
  position:absolute; z-index:3;
  width:154px; min-height:76px; padding:14px 18px;
  border-radius:20px;
  display:flex; flex-direction:column; justify-content:center; gap:5px;
  background:rgba(15,23,42,.76);
  border:1px solid rgba(255,137,43,.22);
  box-shadow:0 16px 38px rgba(0,0,0,.18), 0 0 28px rgba(255,114,0,.08), inset 0 1px 0 rgba(255,255,255,.06);
}
.ai-open-node::before {
  content:''; position:absolute; left:0; top:18px; bottom:18px; width:4px;
  border-radius:0 999px 999px 0;
  background:linear-gradient(180deg, #ffd6ad, #ff7200);
  box-shadow:0 0 16px rgba(255,114,0,.44);
}
.ai-open-node strong {
  color:rgba(255,247,237,.96); font-size:17px; font-weight:var(--w-bold); line-height:1.2;
}
.ai-open-node span {
  color:rgba(255,235,218,.58); font-size:12px; font-weight:var(--w-regular);
}
.ai-open-node--mcp { left:34px; top:42px }
.ai-open-node--api { right:34px; top:42px }
.ai-open-node--skill { left:78px; bottom:38px }
.ai-open-node--agent { right:78px; bottom:38px }
.ai-open-chip {
  position:absolute; z-index:2;
  color:rgba(255,235,218,.56); font-size:13px; font-weight:var(--w-semibold);
  letter-spacing:.02em;
  padding:8px 13px; border-radius:999px;
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.07);
}
.ai-open-chip--flow { left:50%; top:20px; transform:translateX(-50%) }
.ai-open-chip--tool { left:50%; bottom:12px; transform:translateX(-50%) }
.ai-open-flow {
  position:absolute; left:50%; top:50%; z-index:1;
  width:5px; height:5px; border-radius:50%;
  background:#ff9a1f; box-shadow:0 0 0 4px rgba(255,114,0,.10), 0 0 14px rgba(255,154,31,.68);
  transform:translate(-50%,-50%) translate3d(0,0,0);
  animation:aiOpenFlow 4.4s linear infinite;
}
.ai-open-flow--mcp { --tx:-210px; --ty:-98px; animation-delay:-.4s }
.ai-open-flow--api { --tx:210px; --ty:-98px; width:6px; height:6px; animation-delay:-1.5s }
.ai-open-flow--skill { --tx:-172px; --ty:120px; width:4px; height:4px; animation-delay:-2.6s }
.ai-open-flow--agent { --tx:172px; --ty:120px; width:7px; height:7px; animation-delay:-3.7s }
@keyframes aiOpenPulse {
  0%   { opacity:.42; transform:scale(1) }
  100% { opacity:0; transform:scale(1.58) }
}
@keyframes aiOpenFlow {
  0%   { opacity:0; transform:translate(-50%,-50%) translate3d(0,0,0) scale(.72) }
  12%  { opacity:1 }
  78%  { opacity:1 }
  100% { opacity:0; transform:translate(-50%,-50%) translate3d(var(--tx),var(--ty),0) scale(.92) }
}

/* AI panels: unified dark card system for tab 2 / 3 / 4 */
.ai-panel--tm .ai-panel-main,
.ai-panel--patent .ai-panel-main,
.ai-panel--open .ai-panel-main {
  min-height:382px;
  display:flex; align-items:center; justify-content:center;
}
.ai-tm-visual {
  min-height:382px;
  width:min(100%, 760px);
  margin:0 auto;
  display:grid; grid-template-columns:minmax(270px,.9fr) 92px minmax(320px,1.1fr);
  gap:18px; align-items:center;
  padding:26px 18px;
}
.ai-tm-visual::before {
  left:12%; right:12%; top:50%; height:1px;
  background:
    linear-gradient(90deg, transparent, rgba(255,137,43,.14), rgba(255,183,77,.72), rgba(255,137,43,.14), transparent);
  background-size:220% 100%;
  transform:none;
  animation:aiLineFlow 5.6s linear infinite;
  will-change:background-position;
}
.ai-tm-visual::after {
  inset:14px 4%; width:auto; height:auto; border:none; border-radius:44px;
  background:
    radial-gradient(ellipse at 22% 24%, rgba(255,137,43,.12), transparent 44%),
    radial-gradient(ellipse at 78% 76%, rgba(255,255,255,.045), transparent 50%);
  animation:aiAmbientBreathe 6.6s var(--ease) infinite;
  will-change:opacity, transform;
}
.ai-tm-card,
.ai-tm-card--workflow {
  width:auto; min-height:248px; transform:none;
  padding:26px 28px;
  border-radius:30px;
  animation:aiCardLift 7.2s var(--ease) infinite alternate;
  will-change:transform;
}
.ai-tm-card--workflow { animation-delay:-2.8s }
.ai-tm-card--modules {
  min-height:310px;
  display:flex; flex-direction:column; justify-content:center;
  padding-right:24px;
}
.ai-tm-card--workflow {
  min-height:270px;
  padding-left:26px;
  padding-right:22px;
  background:
    radial-gradient(circle at 84% 0%, rgba(255,183,77,.14), transparent 36%),
    linear-gradient(145deg, rgba(20,24,36,.82), rgba(45,36,30,.48));
}
.ai-tm-heading {
  margin-top:14px;
  font-size:16px;
  line-height:1.5;
  letter-spacing:0;
  max-width:100%;
  white-space:normal;
  overflow-wrap:normal;
}
.ai-tm-chip-grid {
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px; margin-top:26px;
}
.ai-tm-chip {
  min-height:42px; padding:10px 12px;
  border-radius:16px;
  background:linear-gradient(145deg, rgba(255,255,255,.080), rgba(255,255,255,.040));
}
.ai-tm-bridge {
  min-height:270px;
}
.ai-tm-mcp {
  width:92px; height:92px; border-radius:27px;
}
.ai-tm-mcp::before,
.ai-ip-hub::before {
  content:''; position:absolute; inset:-9px; border-radius:inherit;
  border:1px solid rgba(255,225,196,.34);
  opacity:.30; pointer-events:none;
  animation:aiHubPulse 3.4s var(--ease) infinite;
  will-change:transform, opacity;
}
.ai-tm-workflow-list {
  margin-top:22px;
  gap:10px;
}
.ai-tm-workflow-list li {
  min-height:38px;
  display:flex; align-items:center;
  padding:8px 12px 8px 24px;
  border-radius:14px;
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.060);
  white-space:nowrap;
}
.ai-tm-workflow-list li::before {
  top:50%; transform:translateY(-50%);
  width:4px; height:22px; border-radius:999px;
  background:linear-gradient(180deg, #ffd6ad, #ff7200);
  box-shadow:0 0 12px rgba(255,114,0,.38);
}

.ai-ip-visual {
  position:relative; width:100%; min-height:382px; height:100%;
  display:grid; grid-template-columns:minmax(300px,1fr) minmax(300px,1fr);
  gap:56px; align-items:center;
  padding:34px 8px;
  isolation:isolate;
}
.ai-ip-visual::before,
.ai-open-board-v2::before {
  content:''; position:absolute; inset:14px 4%;
  border-radius:44px;
  background:
    radial-gradient(ellipse at 22% 24%, rgba(255,137,43,.12), transparent 44%),
    radial-gradient(ellipse at 78% 76%, rgba(255,255,255,.045), transparent 50%);
  pointer-events:none; z-index:-1;
  animation:aiAmbientBreathe 6.8s var(--ease) infinite;
  will-change:opacity, transform;
}
.ai-ip-visual::after {
  content:none;
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:86px; height:86px; border-radius:28px;
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:22px; font-weight:800; letter-spacing:.02em;
  background:linear-gradient(145deg, #ff7200, #ffad47);
  box-shadow:0 0 0 8px rgba(255,114,0,.07), 0 24px 46px rgba(0,0,0,.22), 0 0 34px rgba(255,114,0,.18);
  pointer-events:none; z-index:3;
}
.ai-ip-card,
.ai-open-block {
  position:relative; z-index:1;
  min-height:286px; padding:28px 30px;
  border-radius:30px;
  background:
    radial-gradient(circle at 14% 0%, rgba(255,154,31,.14), transparent 38%),
    linear-gradient(145deg, rgba(15,23,42,.84), rgba(30,41,59,.50));
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 24px 64px rgba(0,0,0,.23), inset 0 1px 0 rgba(255,255,255,.08);
}
.ai-ip-card--right,
.ai-open-target-v2 {
  background:
    radial-gradient(circle at 84% 0%, rgba(255,183,77,.14), transparent 36%),
    linear-gradient(145deg, rgba(20,24,36,.82), rgba(45,36,30,.48));
}
.ai-ip-card:first-child {
  padding-right:52px;
}
.ai-ip-card--right {
  padding-left:52px;
  min-height:286px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.ai-ip-card--right::after {
  content:''; position:absolute; left:52px; right:30px; bottom:-28px;
  height:1px;
  background:linear-gradient(90deg, rgba(255,137,43,0), rgba(255,137,43,.34) 22%, rgba(255,137,43,.34) 78%, rgba(255,137,43,0));
  mask:repeating-linear-gradient(90deg, #000 0 8px, transparent 8px 14px);
  -webkit-mask:repeating-linear-gradient(90deg, #000 0 8px, transparent 8px 14px);
}
.ai-ip-kicker,
.ai-open-kicker-v2 {
  display:inline-flex; align-items:center; align-self:flex-start;
  height:28px; padding:0 11px; border-radius:999px;
  color:rgba(255,225,196,.78); font-size:12px; font-weight:var(--w-semibold);
  letter-spacing:.03em;
  background:rgba(255,114,0,.10);
  border:1px solid rgba(255,137,43,.18);
}
.ai-ip-title,
.ai-open-title-v2 {
  margin-top:14px;
  color:#fff; font-size:16px; font-weight:var(--w-bold);
  line-height:1.5; letter-spacing:0;
}
.ai-ip-chips {
  list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px; margin-top:24px;
}
.ai-ip-chip,
.ai-open-pill-v2 {
  min-height:38px; padding:9px 10px; border-radius:999px;
  display:flex; align-items:center; justify-content:center;
  color:rgba(255,247,237,.88); font-size:13px; font-weight:var(--w-semibold);
  background:rgba(255,255,255,.060);
  border:1px solid rgba(255,255,255,.080);
  white-space:nowrap;
}
.ai-ip-chip {
  min-height:34px; padding:7px 10px;
  font-size:12.5px;
}
.ai-ip-card > .ai-ip-chips {
  display:flex; flex-wrap:wrap;
  gap:8px; margin-top:20px;
}
.ai-ip-bridge {
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  z-index:3; min-height:0;
  display:block; pointer-events:none;
}
.ai-ip-hub {
  width:96px; height:96px; border-radius:28px;
  position:relative;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
  text-align:center; color:#fff;
  background:linear-gradient(145deg, #ff7200, #ffad47);
  box-shadow:0 0 0 8px rgba(255,114,0,.07), 0 24px 46px rgba(0,0,0,.22), 0 0 34px rgba(255,114,0,.18);
}
.ai-ip-hub strong {
  display:block; font-size:24px; font-weight:800; letter-spacing:.02em; line-height:1;
}
.ai-ip-hub span {
  display:block; color:rgba(255,255,255,.76); font-size:11.5px; line-height:1.25;
}
.ai-ip-list {
  list-style:none; display:grid; gap:11px; margin-top:22px;
}
.ai-ip-list li {
  position:relative; padding-left:18px;
  color:rgba(255,247,237,.82); font-size:13.5px; font-weight:var(--w-medium); line-height:1.55;
}
.ai-ip-list li::before {
  content:''; position:absolute; left:0; top:.72em;
  width:6px; height:6px; border-radius:50%;
  background:#ff9a1f; box-shadow:0 0 12px rgba(255,114,0,.44);
}

.ai-open-visual--v2 {
  position:relative; min-height:382px; height:100%;
  width:100%;
  display:flex; align-items:center; justify-content:center;
}
.ai-open-board-v2 {
  position:relative; min-height:382px;
  width:min(100%, 760px);
  margin:0 auto;
  padding:10px 0 4px;
  display:flex; align-items:center; justify-content:center;
  border-radius:0;
  overflow:visible;
  background:transparent;
  border:none;
  box-shadow:none;
}
.ai-open-board-v2::before {
  display:block;
  inset:10px 3%;
  opacity:.70;
}
.ai-open-head-v2 {
  display:none;
  position:relative; z-index:1;
  max-width:700px;
  margin-left:auto;
  margin-right:auto;
  margin-bottom:24px;
}
.ai-open-desc-v2 {
  display:none;
}
.ai-open-kicker-v2 { display:none }
.ai-open-title-v2 {
  margin-top: 10px;
  max-width:none;
  font-size:clamp(22px,2vw,28px);
  line-height:1.28;
}
.ai-open-route-v2 {
  position:relative; z-index:1;
  width:100%;
  display:grid;
  grid-template-columns:minmax(230px,240px) 24px minmax(170px,190px) 24px minmax(230px,240px);
  grid-template-rows:104px 206px;
  gap:10px; align-items:stretch; justify-content:center;
  margin-top: 10px;
  min-height:320px;
}
.ai-open-source-v2 { grid-column:1; grid-row:1 / 3; align-self:center }
.ai-open-arrow-v2--l1 { grid-column:2; grid-row:1; align-self:center }
.ai-open-method-v2 { grid-column:3; grid-row:1 }
.ai-open-arrow-v2--l2 { grid-column:2; grid-row:2; align-self:center }
.ai-open-platform-v2 { grid-column:3; grid-row:2 }
.ai-open-arrow-v2--r1 { grid-column:4; grid-row:1; align-self:center }
.ai-open-arrow-v2--r2 { grid-column:4; grid-row:2; align-self:center }
.ai-open-target-v2 { grid-column:5; grid-row:1 / 3; align-self:center }
.ai-open-block {
  min-height:0; height:auto; padding:20px 22px;
  display:flex; flex-direction:column; justify-content:center;
  overflow:hidden;
}
.ai-open-source-v2,
.ai-open-target-v2 {
  min-height:320px; height:320px; padding:24px 22px;
}
.ai-open-method-v2 {
  min-height:104px; height:100%; padding:12px 22px 10px;
  justify-content:center; gap:0;
}
.ai-open-platform-v2 {
  min-height:206px; height:100%; padding:16px 22px 14px;
  justify-content:flex-start; gap:0;
}
.ai-open-block::after {
  content:''; position:absolute; inset:-48% auto -48% -58%;
  width:44%; transform:translate3d(-10%,0,0) rotate(16deg);
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.09), rgba(255,154,31,.10), transparent);
  opacity:0; pointer-events:none;
  animation:aiCardSweep 8.4s var(--ease) infinite;
  will-change:transform, opacity;
}
.ai-open-method-v2::after { animation-delay:-2.2s }
.ai-open-platform-v2::after { animation-delay:-3.4s }
.ai-open-target-v2::after { animation-delay:-4.6s }
.ai-open-block h4 {
  display:inline-flex; align-items:center; justify-content:center; align-self:center;
  min-height:34px; padding:4px 12px; border-radius:999px;
  color:rgba(255,225,196,.78); font-size:12px; font-weight:var(--w-semibold);
  line-height:1.2; letter-spacing:.03em; margin:0 auto 24px;
  background:rgba(255,114,0,.10);
  border:1px solid rgba(255,137,43,.18);
}
.ai-open-method-v2 h4 {
  margin-bottom:10px;
}
.ai-open-platform-v2 h4 {
  margin-bottom:8px;
  flex-shrink:0;
}
.ai-open-content-v2--method {
  margin:0;
  align-self:center;
  padding:0;
  border:none;
  border-radius:0;
  background:transparent;
  color:#fff;
  font-size:18px;
  font-weight:var(--w-bold);
  line-height:1.2;
  letter-spacing:.02em;
  text-align:center;
}
.ai-open-tags-v2 {
  display:grid;
  grid-template-columns:1fr;
  grid-template-rows:repeat(4,minmax(0,1fr));
  gap:7px;
  width:100%;
  flex:1;
  min-height:0;
  align-content:stretch;
}
.ai-open-tags-v2 .ai-open-pill-v2 {
  min-height:0;
  height:100%;
  padding:5px 12px;
  font-size:12.5px;
  line-height:1.25;
  white-space:nowrap;
}
.ai-open-source-v2 .ai-ip-chips {
  grid-template-columns:1fr;
  gap:8px; margin-top: 10px;
}
.ai-open-source-v2 .ai-open-pill-v2 {
  min-height:34px;
  white-space:normal;
  line-height:1.32;
}
.ai-open-source-v2 .ai-open-pill-v2 {
  justify-content:flex-start;
  text-align:left;
  padding-left:18px;
  padding-right:14px;
}
.ai-open-method-v2,
.ai-open-platform-v2 {
  display:flex; flex-direction:column;
  text-align:center;
  background:
    radial-gradient(circle at 84% 0%, rgba(255,183,77,.14), transparent 36%),
    linear-gradient(145deg, rgba(20,24,36,.82), rgba(45,36,30,.48));
}
.ai-open-arrow-v2--l2::before { animation-delay:-.65s }
.ai-open-arrow-v2--r1::before { animation-delay:-1.3s }
.ai-open-arrow-v2--r2::before { animation-delay:-1.95s }
.ai-open-target-v2 {
  background:
    radial-gradient(circle at 14% 0%, rgba(255,154,31,.14), transparent 38%),
    linear-gradient(145deg, rgba(15,23,42,.84), rgba(30,41,59,.50));
}
.ai-open-target-v2 h4 {
  margin-bottom:10px;
}
.ai-open-note-v2 {
  color:rgba(255,235,218,.58); font-size:12px; font-weight:var(--w-semibold); line-height:1.45;
}
.ai-open-arrow-v2 {
  position:relative; align-self:center;
  height:1px;
  background:linear-gradient(90deg, rgba(255,137,43,.18), rgba(255,137,43,.72));
  overflow:visible;
}
.ai-open-arrow-v2::before {
  content:''; position:absolute; left:0; top:50%;
  width:5px; height:5px; border-radius:50%;
  background:#ffb347;
  box-shadow:0 0 12px rgba(255,154,31,.80);
  transform:translate3d(-3px,-50%,0);
  animation:aiArrowFlow 2.6s linear infinite;
  will-change:transform, opacity;
}
.ai-open-arrow-v2::after {
  content:''; position:absolute; right:-1px; top:50%;
  width:8px; height:8px;
  border-top:1px solid rgba(255,137,43,.82);
  border-right:1px solid rgba(255,137,43,.82);
  transform:translateY(-50%) rotate(45deg);
}
@keyframes aiCardSweep {
  0%, 28% { opacity:0; transform:translate3d(-20%,0,0) rotate(18deg) }
  42% { opacity:.72 }
  66% { opacity:0; transform:translate3d(360%,0,0) rotate(18deg) }
  100% { opacity:0; transform:translate3d(360%,0,0) rotate(18deg) }
}
@keyframes aiHubPulse {
  0%, 100% { opacity:.26; transform:scale(.96) }
  50% { opacity:.62; transform:scale(1.08) }
}
@keyframes aiHubDivider {
  0%, 100% { opacity:.55; transform:scaleX(.72) }
  50% { opacity:1; transform:scaleX(1.18) }
}
@keyframes aiLineFlow {
  from { background-position:120% 0 }
  to { background-position:-120% 0 }
}
@keyframes aiAmbientBreathe {
  0%, 100% { opacity:.70; transform:scale(.985) }
  50% { opacity:1; transform:scale(1.015) }
}
@keyframes aiCardLift {
  from { transform:translate3d(0,-3px,0) }
  to { transform:translate3d(0,4px,0) }
}
@keyframes aiArrowFlow {
  0% { opacity:0; transform:translate3d(-3px,-50%,0) scale(.75) }
  16%, 78% { opacity:1 }
  100% { opacity:0; transform:translate3d(24px,-50%,0) scale(1) }
}
@keyframes aiArrowFlowVertical {
  0% { opacity:0; transform:translate3d(-50%,-3px,0) scale(.75) }
  16%, 78% { opacity:1 }
  100% { opacity:0; transform:translate3d(-50%,24px,0) scale(1) }
}
@media (prefers-reduced-motion: reduce) {
  .ai-data-side::after,
  .ai-data-hub::before,
  .ai-data-hub em,
  .ai-tm-visual::before,
  .ai-tm-visual::after,
  .ai-tm-card,
  .ai-tm-mcp::before,
  .ai-ip-visual::before,
  .ai-ip-hub::before,
  .ai-open-board-v2::before,
  .ai-open-block::after,
  .ai-open-arrow-v2::before {
    animation:none !important;
    will-change:auto;
  }
}
/* Performance guard: keep the AI visuals calm and compositor-friendly. */
.ai-data-side::after,
.ai-open-block::after,
.ai-open-arrow-v2::before {
  display:none;
  animation:none !important;
  will-change:auto;
}
.ai-data-hub em,
.ai-tm-visual::before,
.ai-tm-card,
.ai-patent-doc,
.ai-patent-node,
.ai-patent-tag,
.ai-open-flow {
  animation:none !important;
  will-change:auto;
}
.ai-tm-visual::after,
.ai-ip-visual::before,
.ai-open-board-v2::before {
  animation:none !important;
  transform:none;
  opacity:.72;
  will-change:auto;
}
.ai-data-hub::before,
.ai-tm-mcp::before,
.ai-ip-hub::before {
  animation:aiLitePulse 4.8s var(--ease) infinite;
  will-change:auto;
}
@keyframes aiLitePulse {
  0%, 100% { opacity:.22; transform:scale(.98) }
  50% { opacity:.48; transform:scale(1.04) }
}
/* ===================================================================
   SOLUTIONS
   =================================================================== */
.sol-sec { background:var(--bg) }

.sol-hdr {
  display:flex; align-items:center; justify-content:space-between;
  gap:24px; margin-bottom:var(--section-head-gap) !important;
}
.sol-hdr .sh { text-align:left; max-width:none; margin-bottom:0 }
.sol-hdr > .st { margin-top:10px; max-width:640px }
.sol-tabs-wrap {
  display:flex; justify-content:flex-end; margin-bottom:0; flex-shrink:0;
}

/* 行业解决方案：简约大气的左文右视频 */
.sol-body {
  display:grid; grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr); align-items:center; gap:56px;
  width:100%; margin:0 auto;
}
.sol-left {
  display:flex; flex-direction:column; justify-content:center;
  min-width:0; padding:8px 0;
}
.sol-prod-head {
  display:flex; align-items:center; gap:10px;
  margin-bottom:6px;
}
.sol-prod-logo {
  width:32px; height:32px; flex-shrink:0;
  object-fit:contain; display:block;
}
.sol-prod-title {
  font-size:clamp(19px,1.7vw,23px); font-weight:var(--w-bold);
  color:var(--text-primary); line-height:1.25;
  letter-spacing:-.015em; margin:0;
}
.sol-left .sp-sub { margin:0 0 24px }
.sol-left--brand .sp-sub { color:var(--text-muted) }
.sol-left .sp-pts { margin-bottom:0 }
.sol-pts-compact { gap:0; padding-left:2px }
.sol-pts-compact .sp-pt {
  position:relative; gap:14px; padding:0 0 16px;
}
.sol-pts-compact .sp-pt:last-child { padding-bottom:0 }
.sol-pts-compact .sp-pt::before {
  content:''; position:absolute; top:23px; bottom:0; left:9px;
  width:1px; background:linear-gradient(to bottom, rgba(255,114,0,.34), rgba(255,114,0,0));
}
.sol-pts-compact .sp-pt:last-child::before { display:none }
.sol-pts-compact .sp-num {
  position:relative; width:18px; height:18px; margin-top:3px;
  color:transparent; background:transparent; border:none; border-radius:50%;
}
.sol-pts-compact .sp-num::before {
  content:''; position:absolute; inset:5px;
  border-radius:50%; background:var(--primary);
  box-shadow:0 0 0 5px rgba(255,114,0,.10);
}
.sol-pts-compact .sp-pt-desc { font-size:13.5px; color:var(--text-secondary); line-height:1.7 }
#tp-qianjian .sol-pts-compact .sp-pt:first-child .sp-pt-desc { line-height:1.4 }
.sol-pts-compact .sp-pt-title { font-size:14px; margin-bottom:3px }
.sol-left--brand .sp-sub,
.sol-left--brand .sol-pts-compact {
  margin-left:42px;
}
.sol-left--brand .sol-cta {
  margin-top:48px;
  margin-left:0;
}

.sol-cta {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  align-self:flex-start; margin-top:48px;
  padding:12px 28px; border-radius:var(--r-btn);
  background:var(--grad-primary); color:#fff;
  font-size:15px; font-weight:var(--w-semibold);
  box-shadow:var(--shadow-button);
  transition:transform var(--t-fast), box-shadow var(--t-normal);
}
.sol-cta:hover {
  transform:translateY(-2px);
  box-shadow:0 6px 24px rgba(255,114,0,.32);
}
.sol-cta::after { content:'→'; font-size:16px }

/* 右侧：视频演示区 */
.sol-video {
  position:relative; min-height:100%;
  display:flex; align-items:center; justify-content:center;
  padding:0;
}
.sol-video-inner {
  position:relative; width:100%;
  aspect-ratio:16/10; border-radius:22px;
  overflow:hidden; background:#0f172a;
  box-shadow:none;
}
.sol-video-el {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; z-index:1;
}
.sol-video-cover {
  position:absolute; inset:0; z-index:2;
  display:flex; align-items:center; justify-content:center;
  background:
    radial-gradient(ellipse 80% 60% at 70% 30%, rgba(59,130,246,.18) 0%, transparent 65%),
    radial-gradient(ellipse 60% 50% at 20% 80%, rgba(255,114,0,.12) 0%, transparent 60%),
    linear-gradient(145deg, #1e293b 0%, #0f172a 55%, #1a2744 100%);
}
.sol-video-cover-ui {
  position:absolute; inset:16px 16px auto;
  height:42%; border-radius:10px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
  backdrop-filter:blur(8px);
}
.sol-video-cover-ui::before {
  content:''; position:absolute; top:14px; left:14px; right:14px; height:8px;
  border-radius:4px; background:rgba(255,255,255,.12);
}
.sol-video-cover-ui::after {
  content:''; position:absolute; top:34px; left:14px; width:45%; height:55%;
  border-radius:6px; background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.06);
}
.sol-video-play {
  position:relative; z-index:2;
  width:64px; height:64px; border-radius:50%;
  border:none; cursor:pointer;
  background:rgba(255,255,255,.92);
  color:var(--primary);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 32px rgba(0,0,0,.25);
  transition:transform var(--t-fast), box-shadow var(--t-fast);
}
.sol-video-play:hover {
  transform:scale(1.06);
  box-shadow:0 12px 40px rgba(0,0,0,.3);
}
.sol-video-play svg { margin-left:3px }
.sol-video-label {
  position:absolute; bottom:16px; left:16px; z-index:2;
  padding:6px 14px; border-radius:999px;
  background:rgba(255,255,255,.14); backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.18);
  font-size:12px; font-weight:var(--w-medium); color:rgba(255,255,255,.85);
}
.sol-video-inner.is-playing .sol-video-cover { opacity:0; pointer-events:none; transition:opacity var(--t-normal) }
#tp-doppler .sol-video-inner { aspect-ratio:16/9 }
#tp-doppler .sol-video-el { object-fit:contain; background:#0f172a }
#tp-qianjian .sol-video-inner { aspect-ratio:4/3 }
#tp-qianjian .sol-video-el { object-fit:contain; background:#0f172a }

/* Tab strip */
.tab-strip {
  display:inline-flex; background:var(--w); border-radius:var(--r-btn); padding:4px; gap:3px;
  box-shadow:var(--ss); flex-shrink:0;
}
.tab-btn {
  padding:9px 24px; font-size:13.5px; font-weight:600; font-family:var(--sans);
  border-radius:var(--r-btn); border:none; background:transparent; color:var(--t1);
  cursor:pointer; white-space:nowrap; transition:background var(--t-normal), color var(--t-normal), box-shadow var(--t-normal);
}
.tab-btn.on { background:var(--t0); color:#fff; box-shadow:0 2px 10px rgba(0,0,0,.18) }

.tab-panel { display:none }
.tab-panel.on {
  display:block;
  animation:fadein .3s var(--e) both;
}
.sol-body > * { min-width:0 }
@keyframes fadein { from { opacity:0; transform:translateY(10px) } to { opacity:1; transform:none } }

.sp-lbl { margin-bottom:10px }
.sp-lbl::before { display:none }
.sp-h {
  font-size:var(--fs-h3); font-weight:var(--w-bold); color:var(--text-primary);
  margin-bottom:10px; line-height:var(--lh-title); letter-spacing:-.01em;
}
.sp-sub {
  font-size:var(--fs-body-sm); font-weight:var(--w-regular); color:var(--text-secondary);
  line-height:var(--lh-body); margin-bottom:28px;
}

.sp-pts { display:flex; flex-direction:column; gap:16px; margin-bottom:32px }
.sp-pt { display:flex; gap:14px; align-items:flex-start }
.sp-num {
  flex-shrink:0; width:24px; height:24px; border-radius:var(--r-btn);
  background:var(--pl); border:1px solid var(--pg);
  display:flex; align-items:center; justify-content:center;
  font-size:11px; font-weight:var(--w-bold); color:var(--p); font-family:var(--mono); margin-top:2px;
}
.sp-pt-title {
  font-size:var(--fs-body-sm); font-weight:var(--w-semibold); color:var(--text-primary);
  margin-bottom:4px; line-height:var(--lh-title);
}
.sp-pt-desc {
  font-size:var(--fs-body-sm); font-weight:var(--w-regular); color:var(--text-secondary);
  line-height:var(--lh-body);
}

/* ===================================================================
   SERVICES — DARK
   =================================================================== */
.svc-sec {
  background:
    radial-gradient(ellipse 70% 55% at 18% 46%, rgba(255,114,0,.08) 0%, transparent 58%),
    radial-gradient(ellipse 58% 52% at 78% 34%, rgba(67,91,140,.12) 0%, transparent 62%),
    linear-gradient(180deg, #0f0f14 0%, #10121a 48%, #0f0f14 100%);
  position:relative; overflow:hidden; isolation:isolate;
}

/* Dot grid */
.svc-dots {
  position:absolute; inset:0; pointer-events:none;
  background-image:radial-gradient(rgba(255,114,0,.14) 1px, transparent 1px);
  background-size:28px 28px; opacity:.18; z-index:0;
}
/* Corner glow */
.svc-glow {
  position:absolute; pointer-events:none; border-radius:50%; z-index:0;
  filter:blur(80px);
}
.glow-a { width:620px; height:620px; top:-220px; right:-150px; background:radial-gradient(circle, rgba(255,114,0,.30) 0%, rgba(255,149,0,.14) 40%, transparent 68%) }
.glow-b { width:380px; height:380px; bottom:-120px; left:-120px; background:radial-gradient(circle, rgba(255,140,0,.07), transparent 70%) }
.svc-wave {
  position:absolute; left:-8%; right:-8%; top:22%; height:58%;
  pointer-events:none; z-index:0; opacity:.78;
}
.svc-wave svg {
  width:100%; height:100%; display:block; overflow:visible;
}
.svc-wave path {
  fill:none; vector-effect:non-scaling-stroke;
}
.svc-wave-shadow {
  stroke:rgba(71,96,150,.18); stroke-width:26;
  opacity:.55;
}
.svc-wave-halo {
  stroke:rgba(255,114,0,.18); stroke-width:18;
  opacity:.6;
}
.svc-wave-core {
  stroke:rgba(255,132,43,.62); stroke-width:2.2;
}
.svc-wave-core--soft {
  stroke:rgba(255,214,168,.32); stroke-width:1;
  stroke-dasharray:8 18;
}
@keyframes glowPulse {
  0%,100% { opacity:.9; transform:scale(1) }
  50%      { opacity:1; transform:scale(1.08) }
}

.svc-sec > .wrap { position:relative; z-index:1 }
.svc-sec .sh { color:#fff; max-width:680px }
.svc-sec .st { color:rgba(255,255,255,.72); max-width:680px }
.svc-sec .sp { color:rgba(255,255,255,.50); margin-top:12px; max-width:600px }

.svc-hdr { margin-bottom:var(--section-head-gap); position:relative; z-index:1 }

/* 三大维度：大卡片 + 内部分割线 */
.svc-dims {
  display:grid; grid-template-columns:repeat(3,1fr); gap:16px;
  position:relative; z-index:1;
}
.svc-dim {
  display:flex; flex-direction:column;
  background:
    linear-gradient(155deg, rgba(31,26,22,.94) 0%, rgba(17,16,18,.84) 100%),
    linear-gradient(90deg, rgba(255,114,0,.075), rgba(255,255,255,.045));
  border:1px solid rgba(255,255,255,.13);
  border-radius:var(--r-card); padding:26px 24px 24px;
  transition:background var(--t-normal), border-color var(--t-normal), transform var(--t-normal), box-shadow var(--t-normal);
  position:relative; overflow:hidden;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.12),
    inset 0 -1px 0 rgba(255,255,255,.035),
    0 18px 52px rgba(0,0,0,.24);
}
.svc-dim::before {
  content:''; position:absolute; top:0; left:18px; right:18px; height:1px;
  background:linear-gradient(90deg, transparent 0%, rgba(255,114,0,.18) 28%, rgba(255,149,0,.62) 50%, rgba(255,114,0,.18) 72%, transparent 100%);
  opacity:0; transition:opacity var(--t-normal); pointer-events:none;
}
.svc-dim::after {
  content:''; position:absolute; inset:0; border-radius:var(--r-card);
  background:
    radial-gradient(ellipse 78% 44% at 18% 0%, rgba(255,255,255,.10) 0%, transparent 62%),
    radial-gradient(ellipse 58% 62% at 100% 20%, rgba(255,114,0,.15) 0%, transparent 70%),
    linear-gradient(160deg, rgba(255,235,218,.055) 0%, rgba(255,255,255,0) 56%);
  opacity:.9; transition:opacity var(--t-normal); pointer-events:none;
}
.svc-dim:hover {
  background:
    linear-gradient(155deg, rgba(38,30,24,.96) 0%, rgba(20,18,18,.88) 100%),
    linear-gradient(90deg, rgba(255,114,0,.11), rgba(255,255,255,.05));
  border-color:rgba(255,114,0,.34);
  transform:translateY(-4px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.16),
    inset 0 -1px 0 rgba(255,255,255,.04),
    0 20px 58px rgba(0,0,0,.30),
    0 0 26px rgba(255,114,0,.08);
}
.svc-dim:hover::before { opacity:1 }
.svc-dim:hover::after { opacity:1 }

.svc-dim-hd { margin-bottom:20px; position:relative; z-index:1 }
.svc-dim-title {
  font-size:17px; font-weight:var(--w-bold); color:#fff;
  line-height:1.35; letter-spacing:-.02em; margin:0 0 6px;
}
.svc-dim-desc {
  font-size:12px; color:rgba(255,255,255,.4); line-height:1.5; margin:0;
}

.svc-dim-cards { display:flex; flex-direction:column; position:relative; z-index:1 }

.svc-item {
  display:flex; flex-direction:column;
  padding:20px 0 0; margin-top:20px;
  border-top:1px solid rgba(255,255,255,.08);
}
.svc-dim-cards > .svc-item:first-child {
  margin-top: 10px; padding-top:0; border-top:none;
}
.svc-item-h {
  display:flex; align-items:center; gap:8px;
  font-size:14.5px; font-weight:var(--w-semibold); color:rgba(255,255,255,.92);
  margin-bottom:8px; line-height:1.45; cursor:default;
  transition:color var(--t-normal);
}
.svc-item-h::before {
  content:''; width:7px; height:7px; flex-shrink:0; border-radius:50%;
  background:var(--primary);
  box-shadow:0 0 0 4px rgba(255,114,0,.12), 0 0 14px rgba(255,114,0,.42);
  transition:box-shadow var(--t-normal);
}
/* 箭头：紧跟文字、默认隐藏，hover 从左滑入 */
.svc-item-h::after {
  content:'→';
  margin-left:6px; flex-shrink:0;
  font-size:16px; font-weight:700; color:var(--primary);
  opacity:0; transform:translateX(-8px);
  transition:opacity var(--t-normal), transform var(--t-normal);
}
.svc-item:hover .svc-item-h { color:#fff }
.svc-item:hover .svc-item-h::before {
  box-shadow:0 0 0 5px rgba(255,114,0,.22), 0 0 20px rgba(255,114,0,.6);
}
.svc-item:hover .svc-item-h::after {
  opacity:1; transform:translateX(4px);
}
.svc-item-p {
  font-size:12.5px; color:rgba(255,255,255,.42); line-height:1.6; margin-bottom:14px;
  padding-left:15px;
}
.svc-btns { display:flex; flex-wrap:wrap; gap:8px; padding-left:15px }
.svc-btn {
  display:inline-flex; align-items:center; justify-content:center;
  padding:10px 20px; border-radius:6px;
  font-size:12px; font-weight:var(--w-semibold); line-height:1;
  transition:background var(--t-normal), border-color var(--t-normal), color var(--t-normal);
  white-space:nowrap;
}
.svc-btn--ghost {
  color:rgba(255,255,255,.65); background:transparent;
  border:1px solid rgba(255,255,255,.16);
}
.svc-btn--ghost { display:none }
.svc-btn--ghost:hover { color:#fff; border-color:rgba(255,255,255,.32) }
.svc-btn--primary { color:#fff; border:none; background:var(--primary) }
.svc-btn--primary:hover { background:var(--pd) }

/* ===================================================================
   TESTIMONIALS
   =================================================================== */
.testi-sec { background:var(--w); overflow:hidden }
.testi-hdr {
  display:flex; align-items:center; justify-content:space-between;
  gap:24px; margin-bottom:var(--section-head-gap) !important;
}
.testi-hdr .sh { text-align:left; max-width:none }
.testi-tabs-wrap {
  display:flex; justify-content:flex-end; margin-bottom:0;
}
.testi-tabs {
  display:inline-flex; background:var(--bg); border-radius:var(--r-btn); padding:4px; gap:3px;
  box-shadow:var(--ss);
}
.testi-panel {
  display:none; width:100%; flex-shrink:0;
}
.testi-panel.on { display:block; animation:fadein .3s var(--e) both }

/* 3 列轮播 */
.testi-slider {
  position:relative; display:flex; align-items:center;
  max-width:var(--max); margin:0 auto; padding:0 calc(var(--pad-x) + 12px);
  --testi-shadow-pad:64px;
  box-sizing:border-box;
}
.testi-nav {
  position:absolute; top:50%; z-index:3; transform:translateY(-50%);
  flex-shrink:0; width:48px; height:48px; border-radius:50%;
  border:1px solid rgba(17,24,39,.10);
  background:linear-gradient(180deg, #fff 0%, #f8fafc 100%);
  color:#1f2937;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  transition:background var(--t-normal), border-color var(--t-normal), color var(--t-normal), box-shadow var(--t-normal), transform var(--t-normal);
  box-shadow:0 14px 34px rgba(15,23,42,.12), inset 0 1px 0 rgba(255,255,255,.90);
}
.testi-nav[data-dir="prev"] { left:-60px }
.testi-nav[data-dir="next"] { right:-60px }
.testi-nav:hover {
  border-color:rgba(17,24,39,.18); color:var(--primary);
  background:#fff; box-shadow:0 18px 42px rgba(15,23,42,.16), 0 0 0 4px rgba(255,114,0,.06);
}
.testi-nav[data-dir="prev"]:hover { transform:translateY(-50%) translateX(-2px) }
.testi-nav[data-dir="next"]:hover { transform:translateY(-50%) translateX(2px) }
.testi-nav svg { display:block; width:22px; height:22px }
.testi-viewport {
  position:relative; flex:1; overflow:hidden; min-width:0;
  margin:-32px calc(var(--testi-shadow-pad) * -1) -48px;
  padding:32px var(--testi-shadow-pad) 48px;
}
.testi-viewport::before, .testi-viewport::after {
  content:''; position:absolute; top:0; bottom:0; width:104px; z-index:2;
  pointer-events:none;
}
.testi-viewport::before {
  left:0;
  background:linear-gradient(90deg, var(--w) 0%, rgba(255,255,255,.72) 34%, rgba(255,255,255,0) 100%);
}
.testi-viewport::after {
  right:0;
  background:linear-gradient(-90deg, var(--w) 0%, rgba(255,255,255,.72) 34%, rgba(255,255,255,0) 100%);
}
.testi-track {
  display:flex; gap:24px; transition:transform .52s cubic-bezier(.22,.61,.36,1);
}
.testi-page {
  flex:0 0 100%; display:grid; grid-template-columns:repeat(3,1fr);
  gap:24px; min-width:0; box-sizing:border-box; align-items:stretch;
}

.t-card {
  position:relative; min-width:0; min-height:300px;
  padding:36px 32px 30px;
  background:#fff;
  border:1px solid rgba(17,24,39,.08); border-radius:20px;
  box-shadow:0 4px 18px rgba(15,23,42,.045), 0 1px 3px rgba(15,23,42,.03);
  display:flex; flex-direction:column; align-items:flex-start;
  gap:0; text-align:left;
  overflow:hidden;
  cursor:default;
  transition:border-color var(--t-normal), box-shadow var(--t-normal), transform var(--t-normal);
}
.t-card::after {
  content:'"';
  position:absolute; top:16px; right:28px;
  font-size:72px; font-weight:900;
  font-family:'Noto Sans SC','PingFang SC','Microsoft YaHei','SimHei',sans-serif;
  line-height:1; pointer-events:none; user-select:none;
  color:rgba(255,114,0,.18);
}
.t-card:hover {
  border-color:rgba(17,24,39,.12);
  box-shadow:0 8px 28px rgba(15,23,42,.07), 0 2px 6px rgba(15,23,42,.04);
  transform:translateY(-2px);
}
.t-card, .t-card * { cursor:default }
.t-card:hover .t-name { color:var(--primary) }
.t-name {
  font-size:20px; font-weight:var(--w-semibold); color:var(--text-primary);
  margin:0 0 24px; line-height:1.4; width:100%;
  transition:color var(--t-normal);
}
.t-role { display:none }
.t-quote {
  font-size:14px; color:#7f8996; line-height:1.72;
  margin:0 0 20px; flex:1; width:100%;
  font-weight:var(--w-regular);
  text-align:justify; text-justify:inter-ideograph;
}
.t-logo {
  width:140px; height:60px; flex-shrink:0; margin-top:auto;
  display:flex; align-items:center; justify-content:flex-start;
  background:transparent; border-radius:0;
}
.t-logo-img {
  display:block; max-width:100%; max-height:100%;
  object-fit:contain;
}

/* 企业 Logo 两行跑马灯 */
.testi-logos {
  width: 100%;
  max-width: none;
  margin: 40px 0 70px;
  padding: 32px 0 0;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 20px;
  flex-shrink: 0;
}
.logo-mq {
  position: relative;
  width: 100%;
  overflow: hidden;
  --logo-gap: 20px;
}
.logo-mq::before,
.logo-mq::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  width: 88px;
  z-index: 2;
  pointer-events: none;
}
.logo-mq::before {
  left: 0;
  background: linear-gradient(90deg, var(--w) 18%, rgba(255,255,255,.82) 52%, rgba(255,255,255,0) 100%);
}
.logo-mq::after {
  right: 0;
  background: linear-gradient(-90deg, var(--w) 18%, rgba(255,255,255,.82) 52%, rgba(255,255,255,0) 100%);
}
.logo-mq-track {
  display: flex;
  flex-wrap: nowrap;
  width: max-content;
  animation: logoMq var(--logo-dur, 220s) linear infinite;
  will-change: transform;
}
.logo-mq--row1 .logo-mq-track { --logo-dur: 220s; }
.logo-mq--row2 .logo-mq-track { --logo-dur: 260s; }
.logo-mq--rev .logo-mq-track { animation-direction: reverse; }
.logo-mq:hover .logo-mq-track { animation-play-state: paused; }
.logo-mq-set {
  display: flex;
  gap: var(--logo-gap);
  flex-shrink: 0;
  align-items: center;
  padding-right: var(--logo-gap);
}
@keyframes logoMq {
  from { transform: translate3d(0,0,0); }
  to { transform: translate3d(-50%,0,0); }
}
.logo-item {
  flex-shrink: 0;
  width: 172px;
  height: 76px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: var(--w-semibold);
  color: var(--text-secondary);
  white-space: nowrap;
  background: #fff;
  border: 1px solid rgba(17,24,39,.08);
  border-radius: var(--r-btn);
  box-shadow: 0 2px 10px rgba(15,23,42,.04), 0 1px 2px rgba(15,23,42,.025);
  transition: border-color var(--t-normal), box-shadow var(--t-normal), color var(--t-normal), background var(--t-normal), transform var(--t-normal);
  cursor: default;
}
.logo-item img {
  display: block;
  width: 140px;
  height: 36px;
  max-width: 140px;
  max-height: 36px;
  object-fit: contain;
  object-position: center;
}
.logo-item:hover {
  border-color: var(--b0);
  color: var(--text-secondary);
  background: #fff;
  box-shadow: 0 6px 18px rgba(15,23,42,.06);
}
.perf-paused .logo-mq-track,
.perf-paused .ai-data-flow,
.ai-showcase.is-offscreen .ai-data-flow,
.perf-paused .ai-data-hub::before,
.ai-showcase.is-offscreen .ai-data-hub::before,
.perf-paused .ai-tm-visual::before,
.ai-showcase.is-offscreen .ai-tm-visual::before,
.perf-paused .ai-tm-visual::after,
.ai-showcase.is-offscreen .ai-tm-visual::after,
.perf-paused .ai-tm-card,
.ai-showcase.is-offscreen .ai-tm-card,
.perf-paused .ai-tm-chip,
.ai-showcase.is-offscreen .ai-tm-chip,
.perf-paused .ai-tm-tag,
.ai-showcase.is-offscreen .ai-tm-tag,
.perf-paused .ai-patent-doc,
.ai-showcase.is-offscreen .ai-patent-doc,
.perf-paused .ai-patent-node,
.ai-showcase.is-offscreen .ai-patent-node,
.perf-paused .ai-patent-tag,
.ai-showcase.is-offscreen .ai-patent-tag,
.perf-paused .ai-open-hub::before,
.ai-showcase.is-offscreen .ai-open-hub::before,
.perf-paused .ai-open-flow,
.ai-showcase.is-offscreen .ai-open-flow {
  animation-play-state: paused !important;
}
@media (prefers-reduced-motion: reduce) {
  .logo-mq-track { animation: none !important; }
}

/* ===================================================================
   CTA
   =================================================================== */
.cta {
  background:linear-gradient(130deg, #ff8c1a 0%, #ff7200 38%, #ff9500 72%, #ffb347 100%);
  padding:72px 0; position:relative; overflow:hidden;
}
/* 细点阵底纹 */
.cta::before {
  content:''; position:absolute; inset:0; z-index:0;
  background-image:radial-gradient(rgba(255,255,255,.10) 1px, transparent 1px);
  background-size:22px 22px;
}
/* 装饰层：弥散光晕 + 大圆环轮廓 + 右侧渐变光斑 */
.cta::after {
  content:''; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(ellipse 55% 70% at 15% 50%,  rgba(255,255,255,.12) 0%, transparent 60%),
    radial-gradient(ellipse 40% 55% at 85% 20%,  rgba(255,200,80,.22)  0%, transparent 55%),
    radial-gradient(ellipse 30% 40% at 90% 90%,  rgba(255,255,255,.08) 0%, transparent 55%);
}
/* 大圆环装饰（右侧若隐若现） */
.cta-ring {
  position:absolute; z-index:0; pointer-events:none; border-radius:50%;
  border:1px solid rgba(255,255,255,.12);
}
.cta-ring-a { width:360px; height:360px; top:-80px;  right:-80px; }
.cta-ring-b { width:200px; height:200px; top:30px;   right:30px;  border-color:rgba(255,255,255,.08) }
.cta-ring-c { width:520px; height:520px; bottom:-200px; left:-100px; border-color:rgba(255,255,255,.06) }
.cta-in { position:relative; z-index:1; text-align:center }
.cta-h {
  font-size:var(--fs-h2); font-weight:var(--w-bold); color:#fff;
  margin-bottom:0; letter-spacing:.02em; line-height:var(--lh-title);
}
.cta-st {
  font-size:var(--fs-h3); font-weight:var(--w-semibold); color:rgba(255,255,255,.88);
  line-height:var(--lh-title); margin:10px auto 0; max-width:640px;
}
.cta-p {
  font-size:var(--fs-body); font-weight:var(--w-regular); color:rgba(255,255,255,.78);
  line-height:var(--lh-body); margin-bottom:24px; max-width:520px; margin-inline:auto;
}
.cta-btns { display:flex; gap:12px; justify-content:center }
.cta-bw {
  display:inline-flex; align-items:center; padding:13px 32px;
  background:#fff; color:var(--p); font-size:14.5px; font-weight:700;
  border-radius:var(--r-btn); border:none; cursor:pointer;
  box-shadow:0 4px 20px rgba(0,0,0,.15);
  transition:transform var(--t-fast), box-shadow var(--t-fast);
}
.cta-bw:hover { transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,.12) }
.cta-bg {
  display:inline-flex; align-items:center; padding:13px 30px;
  background:rgba(255,255,255,.14); color:#fff; font-size:14.5px; font-weight:600;
  border-radius:var(--r-btn); border:1.5px solid rgba(255,255,255,.35); cursor:pointer;
  backdrop-filter:blur(8px); transition:background var(--t-fast), border-color var(--t-fast), transform var(--t-fast), box-shadow var(--t-fast);
}
.cta-bg:hover { background:rgba(255,255,255,.22); border-color:rgba(255,255,255,.55); transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,.10) }

/* ===================================================================
   FOOTER
   =================================================================== */
.footer { background:var(--d0); padding:60px 0 30px }
.ft-inner { max-width:var(--max); margin:0 auto; padding:0 var(--pad-x) }
.ft-top {
  display:grid; grid-template-columns:350px 1fr; gap:56px;
  padding-bottom:44px; border-bottom:1px solid rgba(255,255,255,.06); margin-bottom:28px;
}
.ft-desc { font-size:13px; color:rgba(255,255,255,.48); line-height:1.78; margin-top:16px; max-width:280px }
.ft-nav  { display:grid; grid-template-columns:180px 180px 1fr; gap:20px; justify-content:end }
.ft-col-t { font-size:14px; font-weight:700; color:rgba(255,255,255,.55); text-transform:none; letter-spacing:0; margin-bottom:16px }
.ft-links { display:flex; flex-direction:column; gap:11px }
.ft-lnk   { font-size:14px; color:rgba(255,255,255,.50); transition:color var(--t-fast) }
.ft-lnk:hover { color:rgba(255,255,255,.88) }
.ft-contact .ft-lnk:hover { color:rgba(255,255,255,.50) }
.ft-contact .ft-lnk:hover .ft-val { color:rgba(255,255,255,.88) }
.ft-val { transition:color var(--t-fast) }
.ft-bot { display:flex; justify-content:center; align-items:center }
.ft-copy { font-size:13px; color:rgba(255,255,255,.80); display:inline-flex; align-items:center; gap:6px; flex-wrap:wrap; justify-content:center }
.ft-copy-icp { display:inline-flex; align-items:center; gap:5px }


/* Old qds footer restored from the previous homepage */
.qds-footer {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  background: #1a1a2e;
}
.qds-footer a { color: inherit; text-decoration: none; }
.qds-footer-box { width: 1200px; overflow: hidden; }
.qds-footer-head {
  width: 100%;
  margin: 0 0 42px;
  display: flex;
  align-items: flex-end;
  font-weight: bold;
  font-size: 16px;
  color: #FFFFFF;
  letter-spacing: 2px;
}
.qfh-logo { width: 140px; height: 36px; margin-right: 24px; }
.qds-footer-content { width: 1200px; display: flex; align-items: flex-start; margin: 40px 0 24px; }
.qfc-left { width: 500px; flex-shrink: 0; }
.qfc-tab { display: flex; justify-content: space-between; padding-right: 30px; }
.qfc-tab-item {
  font-weight: 400;
  font-size: 14px;
  color: #7E8186;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.qfc-tab-border { width: 80%; height: 2px; border-radius: 1px; margin-top: 6px; }
.qfc-tab-item.is-active .qfc-tab-border { background: #ff7200; }
.qfc-tab-item.is-active .qfc-tab-text { font-weight: 500; color: #FFFFFF; }
.qfc-info { width: 500px; min-height: 175px; overflow: hidden; display: none; }
.qfc-info.is-active { display: block; }
.info-row { margin-top: 16px; }
.info-row-col1,
.info-row-col2 { display: flex; font-weight: 400; font-size: 12px; color: #AEB3BC; }
.info-row-col1 { margin-bottom: 10px; }
.info-row-item { flex: 1; padding-right: 10px; }
.qfc-right {
  width: 700px;
  margin-top: 10px;
  border-left: 1px solid #2E3034;
  display: flex;
  padding-left: 50px;
}
.qfc-right-row { margin-right: 84px; }
.qfc-right-row:last-child { margin-right: 0; }
.right-row-title { font-weight: 500; font-size: 14px; color: #FFFFFF; margin-bottom: 27px; }
.right-row-text {
  font-weight: 400;
  font-size: 14px;
  color: #7E8186;
  margin-top: 13px;
  cursor: pointer;
  display: flex;
  white-space: nowrap;
}
.right-row-text:hover,
.right-row-text a:hover { color: #FFFFFF; }
.row-text-zx { text-decoration: underline; cursor: pointer; }
.right-row-icon-tip { width: 32px; height: 32px; cursor: pointer; margin-right: 28px; }
.row-share { position: relative; }
.row-share:hover .row-share-box { display: block; }
.row-share-box {
  display: none;
  position: absolute;
  top: -168px;
  left: -74px;
  width: 180px;
  height: 190px;
  padding: 8px 12px 20px 12px;
  background: url(/qdshome/images/ewm-bg.png) no-repeat center;
  background-size: 100% auto;
}
.row-share-box > img { width: 100%; }
.qds-filing {
  width: 1200px;
  height: 50px;
  line-height: 50px;
  font-weight: 400;
  font-size: 12px;
  color: #9D9FAC;
  border-top: 1px solid #2E3034;
  display: flex;
  justify-content: center;
  align-items: center;
}
.icon-filing { width: 18px; height: 16px; margin: 0 2px 0 6px; }
@media (max-width: 1240px) {
  .qds-footer-content,
  .qds-footer-box,
  .qds-filing { width: calc(100% - 40px); }
  .qds-footer-content { overflow-x: auto; }
}



/* Old data range modal */
.country-label-dialog { display: none; padding: 24px 30px; }
.country-label-dialog .modal-body { text-align: center; margin-bottom: 22px; }
.country-label-dialog .text {
  width: 400px;
  height: 32px;
  border: 1px solid #dcdfe6;
  border-radius: 4px;
  padding: 0 10px;
  outline: none;
}
.country-label-dialog .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 120px;
  height: 32px;
  color: #fff;
  background: #ff7200;
  border-radius: 4px;
}
.search-range {
  display: none;
  position: absolute;
  left: 0;
  margin-left: 0;
  overflow-y: auto;
  overflow-x: hidden;
  z-index: 15;
  background-color: #fff;
  bottom: 20px;
  top: -10px;
  max-height: 700px;
  margin-bottom: 40px;
  width: 100%;
  color: #333;
}
.search-range .input-search {
  background: #f9f9f9 url(/qdshome/images/search.png) no-repeat 8px 6px;
}
.search-range li input:focus { border: 1px solid #ff7200; }
.search-range .now-free {
  margin-left: 10px;
  color: #fff;
  font-size: 12px;
  background: #ff5b5b;
  padding: 3px 8px;
  border-radius: 2px;
  letter-spacing: 1px;
}
.search-range ul {
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  padding: 20px;
  margin: 0;
  list-style: none;
}
.search-range ul li {
  width: 100%;
  text-align: left;
  margin: 0;
  padding: 0;
  list-style: none;
}
.search-range ul .search-btns-tip {
  position: sticky;
  bottom: 0;
  z-index: 9;
  left: 0;
  padding: 10px;
  width: 100%;
  background: #fff;
  box-shadow: 0 0 4px rgba(12,27,50,.1);
}
.search-btns-tip .btns {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.search-btns-tip .country-count {
  margin-bottom: 10px;
  font-size: 12px;
}
.search-btns-tip .country-count span { margin-left: 10px; }
.search-range ul .search-btns-tip label {
  color: #888;
  margin-bottom: 0;
  font-weight: normal;
}
.search-range ul .search-btns-tip .btn-submit-cancel,
.search-range ul .search-btns-tip .btn-submit {
  width: 120px;
  height: 32px;
  box-shadow: none;
  padding: 0;
  border-radius: 4px;
  cursor: pointer;
}
.search-range ul .search-btns-tip .btn-submit-cancel {
  background: #fff;
  color: #606266;
  border: 1px solid #e5e5e5;
}
.search-range ul .search-btns-tip .btn-submit-cancel:hover {
  background: #fff0e5 !important;
  border: 1px solid #ffc799;
  color: #ff7200;
}
.search-range ul .search-btns-tip .btn-submit {
  background: #ff7200;
  color: #fff;
  border: 1px solid #ff7200;
}
.search-range ul li > label,
.search-range .range-head-label {
  color: #333;
  font-size: 14px;
  display: block;
  margin-bottom: 10px;
  font-weight: bold;
}
.search-range ul li div { margin-left: 15px; }
.search-range img {
  height: 20px;
  margin-right: 5px;
}
.ml0 { margin-left: 0 !important; }
.country-right-search {
  display: flex;
  align-items: center;
  margin-left: 15px;
}
.country-right-search select {
  width: 150px;
  height: 32px;
  border: 1px solid #dcdfe6;
  border-radius: 4px;
  color: #606266;
  padding: 0 8px;
  outline: none;
  margin-right: 20px;
}
.country-right-search .input-search {
  width: 190px;
  border-radius: 100px;
  border: 1px solid #dcdfe6;
  height: 32px;
  line-height: 32px;
  padding-left: 32px;
  outline: none;
}
.pub-label-box.quick {
  margin-bottom: 12px;
  background: #f7f7f8;
  border-radius: 6px;
  margin-top: 10px;
  padding: 10px 20px;
}
.pub-label-box .quick-title {
  margin-bottom: 10px;
  width: 90px;
  font-weight: 500;
  font-size: 13px;
  color: #666;
}
.pub-label-box .quick-content {
  display: flex;
  flex-wrap: wrap;
}
.pub-label-box .pub-item { min-width: 150px; }
.pub-label-box .icon-tip {
  display: inline-block;
  width: 16px;
  height: 16px;
  background: url(/qdshome/images/index/icon-tip.png) no-repeat center;
  background-size: cover;
  margin-right: 5px;
  vertical-align: middle;
}
.search-range .el-checkbox {
  display: inline-flex;
  align-items: center;
  margin-right: 16px;
  margin-bottom: 8px;
  color: #606266;
  cursor: pointer;
  white-space: nowrap;
  user-select: none;
}
.search-range .el-checkbox__input {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 14px;
  height: 14px;
  margin-right: 8px;
  flex-shrink: 0;
}
.search-range .el-checkbox__inner {
  display: inline-block;
  width: 14px;
  height: 14px;
  border: 1px solid #dcdfe6;
  border-radius: 2px;
  background-color: #fff;
  box-sizing: border-box;
  position: relative;
}
.search-range .el-checkbox__original {
  opacity: 0;
  outline: none;
  position: absolute;
  margin: 0;
  width: 0;
  height: 0;
}
.search-range .el-checkbox__label {
  display: flex;
  align-items: center;
  min-width: 135px;
  line-height: 28px;
  font-size: 12px;
  padding-left: 0;
}
.search-range .el-checkbox__input.is-checked + .el-checkbox__label { color: #ff7200; }
.search-range .el-checkbox__input.is-checked .el-checkbox__inner,
.search-range .el-checkbox__input.is-indeterminate .el-checkbox__inner {
  background-color: #ff7200 !important;
  border-color: #ff7200 !important;
}
.search-range .el-checkbox__input.is-checked .el-checkbox__inner:after {
  content: '';
  position: absolute;
  left: 4px;
  top: 1px;
  width: 3px;
  height: 7px;
  border: 1px solid #fff;
  border-left: 0;
  border-top: 0;
  transform: rotate(45deg);
}
.search-range .el-checkbox__input.is-indeterminate .el-checkbox__inner:before {
  content: '';
  position: absolute;
  left: 3px;
  right: 3px;
  top: 6px;
  height: 2px;
  background: #fff;
}
.search-range .el-checkbox__inner:hover { border-color: #ff7200; }
body .layui-layer-page .layui-layer-content { overflow: hidden; }
body .layui-layer-page .search-range { display: block !important; }
body .layui-layer-title {
  border-bottom: 1px solid #ecf0f7;
  padding-top: 6px;
  box-sizing: border-box;
}
@media (max-width: 980px) {
  .search-range { display: none !important; }
}
/* Old right floating toolbar */
.public-fixrightbar {
  position: fixed;
  right: 10px;
  top: 73%;
  transform: translateY(-50%);
  z-index: 900;
  width: 40px;
}
.public-fixrightbar ul,
.public-fixrightbar li {
  margin: 0;
  padding: 0;
  list-style: none;
}
.public-fixrightbar a { color: inherit; text-decoration: none; }
.public-fixrightbar .item { position: relative; }
.public-fixrightbar .list .i-title {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  line-height: 1.2;
  text-align: center;
}
.public-fixrightbar .list-ad1.list-ad-s2 {
  width: 40px;
  height: 110px;
  overflow: hidden;
  border-radius: 6px;
  background: #ff7200;
  color: #fff;
  font-weight: 700;
  box-shadow: 0 0 6px rgba(11,17,60,.10);
}
.public-fixrightbar .list-ad1.list-ad-s2 span {
  display: block;
  width: 16px;
  font-size: 14px;
  line-height: 1.15;
  color: #fff;
}
.pfx-fixed-content {
  width: 40px;
  height: 160px;
  background-color: #fff;
  box-shadow: 0 0 6px rgba(11,17,60,.10);
  border-radius: 6px;
  margin: 16px 0;
}
.pfx-fixed-item {
  width: 40px;
  height: 40px;
  cursor: pointer;
  position: relative;
}
.pfx-fixed-item1 { background: url(/qdshome/images/home/fixed-mini.png) no-repeat center; background-size: 20px; }
.pfx-fixed-item1:hover { background-image: url(/qdshome/images/home/fixed-mini-active.png); }
.pfx-fixed-item2 { background: url(/qdshome/images/home/fixed-phone.png) no-repeat center; background-size: 14px; }
.pfx-fixed-item2:hover { background-image: url(/qdshome/images/home/fixed-phone-active.png); }
.pfx-fixed-item3 { background: url(/qdshome/images/home/fixed-gzh.png) no-repeat center; background-size: 20px; }
.pfx-fixed-item3:hover { background-image: url(/qdshome/images/home/fixed-gzh-active.png); }
.pfx-fixed-item4 { background: url(/qdshome/images/home/fixed-news.png) no-repeat center; background-size: 20px; }
.pfx-fixed-item4:hover { background-image: url(/qdshome/images/home/fixed-news-active.png); }
.pfx-scroll-top {
  width: 40px;
  height: 40px;
  box-shadow: 0 0 6px rgba(11,17,60,.10);
  border-radius: 6px;
  background: url(/qdshome/images/home/fixed-top.png) no-repeat center;
  background-size: 16px;
  cursor: pointer;
  background-color: #fff;
}
.pfx-scroll-top:hover {
  background: url(/qdshome/images/home/fixed-top-active.png) no-repeat center;
  background-size: 16px;
  background-color: #fff;
}
.icon-image-box { display: none; }
.pfx-fixed-item:hover > .icon-image-box {
  display: flex;
  position: absolute;
  right: 48px;
  bottom: -50px;
  width: 200px;
  height: 216px;
  background: #fff;
  box-shadow: 0 0 6px rgba(11,17,60,.10);
  border-radius: 6px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.icon-image-box-name {
  font-weight: 700;
  font-size: 14px;
  color: #222;
  margin-bottom: 12px;
}
.icon-image-box-img {
  width: 140px;
  height: 140px;
}
.pfx-service-box { display: none; }
.pfx-fixed-item4:hover > .pfx-service-box {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 230px;
  height: 422px;
  padding: 20px 0;
  box-sizing: border-box;
  background: #fff;
  box-shadow: 0 6px 18px rgba(11,17,60,.12);
  border-radius: 6px;
  position: absolute;
  right: 40px;
  bottom: 0;
}
.pfx-service-item {
  position: relative;
  min-height: 56px;
  padding: 5px 12px 5px 54px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.pfx-service-item:hover .pfx-service-item-name { color: #ff7200; }
.pfx-service-item::before {
  content: "";
  position: absolute;
  left: 22px;
  top: 50%;
  width: 22px;
  height: 22px;
  transform: translateY(-50%);
  background: var(--pfx-icon) center / contain no-repeat;
}
.pfx-service-item:hover::before { background: var(--pfx-icon-hover) center / contain no-repeat; }
.pfx-service-item6 { cursor: default; }
.pfx-service-item6:hover .pfx-service-item-name { color: #222; }
.pfx-service-item6:hover::before { background: var(--pfx-icon) center / contain no-repeat; }
.pfx-service-item4 { min-height: 72px; }
.pfx-service-item-name {
  font-weight: 400;
  font-size: 14px;
  color: #222;
  margin-bottom: 3px;
  line-height: 1.35;
}
.pfx-service-item-tip {
  font-weight: 400;
  font-size: 12px;
  color: #6f6f6f;
  line-height: 1.45;
}
.pfx-service-item1 { --pfx-icon: url(/qdshome/images/home/rightbar-icon/2x/1@2x.png); --pfx-icon-hover: url(/qdshome/images/home/rightbar-icon/2x/1-1@2x.png); }
.pfx-service-item2 { --pfx-icon: url(/qdshome/images/home/rightbar-icon/2x/2@2x.png); --pfx-icon-hover: url(/qdshome/images/home/rightbar-icon/2x/2-1@2x.png); }
.pfx-service-item3 { --pfx-icon: url(/qdshome/images/home/rightbar-icon/2x/3@2x.png); --pfx-icon-hover: url(/qdshome/images/home/rightbar-icon/2x/3-1@2x.png); }
.pfx-service-item4 { --pfx-icon: url(/qdshome/images/home/rightbar-icon/2x/4@2x.png); --pfx-icon-hover: url(/qdshome/images/home/rightbar-icon/2x/4-1@2x.png); }
.pfx-service-item5 { --pfx-icon: url(/qdshome/images/home/rightbar-icon/2x/5@2x.png); --pfx-icon-hover: url(/qdshome/images/home/rightbar-icon/2x/5-1@2x.png); }
.pfx-service-item6 { --pfx-icon: url(/qdshome/images/home/rightbar-icon/2x/6@2x.png); --pfx-icon-hover: url(/qdshome/images/home/rightbar-icon/2x/6-1@2x.png); }
@media (max-width: 900px) {
  .public-fixrightbar { display: none; }
}

/* ===================================================================
   SECTION REVEAL — opacity/transform only (GPU-friendly)
   =================================================================== */
.sec-reveal {
  opacity:0; transform:translate3d(0,28px,0);
  transition:opacity .62s var(--e), transform .62s var(--e);
}
.sec-reveal.is-in { opacity:1; transform:none }
.sec-reveal.d1 { transition-delay:.1s }
.sec-reveal.d2 { transition-delay:.2s }
.sec-reveal.d3 { transition-delay:.3s }
.no-js .sec-reveal { opacity:1; transform:none }

/* ===================================================================
   BACK TO TOP
   =================================================================== */
.btt {
  position:fixed; bottom:32px; right:32px; z-index:800;
  width:42px; height:42px; border-radius:50%;
  background:linear-gradient(135deg, var(--p) 0%, #ff9500 100%);
  color:#fff; border:none; cursor:pointer; font-size:17px;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 16px rgba(255,114,0,.40), 0 0 28px rgba(255,114,0,.14);
  opacity:0; transform:scale(.6); pointer-events:none;
  transition:opacity var(--t-normal), transform var(--t-normal), box-shadow var(--t-normal);
}
.btt.show { opacity:1; transform:scale(1); pointer-events:auto }
.btt:hover { background:linear-gradient(135deg, var(--pd) 0%, var(--p) 100%); transform:scale(1) translateY(-2px); box-shadow:0 6px 24px rgba(255,114,0,.50), 0 0 36px rgba(255,114,0,.18) }

.coming-soon-toast {
  position:fixed; left:50%; top:50%; z-index:1200;
  padding:14px 24px; border-radius:10px;
  background:rgba(0,0,0,.72); color:#fff;
  font-size:15px; font-weight:500; line-height:1.4;
  transform:translate(-50%,-50%) scale(.96);
  opacity:0; pointer-events:none;
  transition:opacity .18s var(--ease), transform .18s var(--ease);
}
.coming-soon-toast.show { opacity:1; transform:translate(-50%,-50%) scale(1) }

.contact-modal {
  position:fixed; inset:0; z-index:1300;
  display:flex; align-items:center; justify-content:center;
  padding:24px 24px calc(24px + 7vh);
  background:rgba(0,0,0,.52);
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .22s var(--ease), visibility .22s var(--ease);
}
.contact-modal.show { opacity:1; visibility:visible; pointer-events:auto }
html.modal-open { overflow:hidden }
html.modal-open .nav.is-scrolled {
  background:#fff !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  box-shadow:var(--shadow-sm) !important;
}
.contact-modal-panel {
  position:relative; width:min(100%,360px);
  padding:32px 28px 28px; border-radius:var(--r-card);
  background:#fff; text-align:center;
  box-shadow:0 20px 60px rgba(0,0,0,.18);
  transform:translateY(calc(12px - 2vh)) scale(.98);
  transition:transform .22s var(--ease);
}
.contact-modal.show .contact-modal-panel { transform:translateY(-2vh) scale(1) }
.contact-modal-close {
  position:absolute; top:12px; right:12px;
  width:32px; height:32px; border:none; border-radius:50%;
  background:var(--border-light); color:var(--text-secondary);
  font-size:20px; line-height:1; cursor:pointer;
  transition:background var(--t-fast), color var(--t-fast);
}
.contact-modal-close:hover { background:var(--border); color:var(--text-primary) }
.contact-modal-title {
  font-size:18px; font-weight:var(--w-semibold); color:var(--text-primary);
  margin-bottom:20px; line-height:var(--lh-title);
}
.contact-modal-qr {
  width:180px; height:180px; margin:0 auto 18px;
  border-radius:12px; object-fit:cover;
  border:1px solid var(--border-light);
}
.contact-modal-name {
  font-size:16px; font-weight:var(--w-medium); color:var(--text-primary);
  margin-bottom:6px;
}
.contact-modal-phone {
  font-size:15px; color:var(--text-secondary);
}
.contact-modal-phone a { color:inherit; transition:color var(--t-fast) }
.contact-modal-phone a:hover { color:var(--p) }

@media (max-width:1400px) {
  .testi-nav[data-dir="prev"] { left:10px }
  .testi-nav[data-dir="next"] { right:10px }
}
@media (max-width:1024px) {
  .mega-grid--search { margin-left:0 }
  .hero-in {
    min-height:auto;
    padding:48px var(--pad-x) 60px;
    grid-template-columns:1fr;
    grid-template-rows:auto;
    grid-template-areas:
      "copy"
      "card"
      "stats";
    gap:40px;
  }
  .hero-copy, .hero-visual { min-height:auto }
  .hero-copy { padding-right:0 }
  .hero-sub { max-width:520px }
  .hero-card { max-width:680px; min-height:auto; margin:0 auto }
  .card-dock { grid-template-columns:repeat(4,1fr) }
  .ai-showcase { grid-template-columns:1fr; gap:28px }
  .ai-tabs { display:grid; grid-template-columns:repeat(2,1fr) }
  .ai-tab { min-height:76px }
  .ai-detail { min-height:620px }
  .ai-panel { padding:34px }
  .ai-data-map { min-height:330px; grid-template-columns:minmax(220px,1fr) 96px minmax(240px,1.06fr); gap:16px }
  .ai-data-side { min-height:330px; padding:22px }
  .ai-data-bridge { min-height:330px }
  .ai-data-hub { width:96px; min-height:150px }
  .ai-panel--tm .ai-panel-main,
  .ai-tm-visual { min-height:420px }
  .ai-tm-visual { width:min(100%,720px); grid-template-columns:minmax(250px,.9fr) 84px minmax(300px,1.1fr); gap:12px; padding-inline:12px }
  .ai-tm-heading { font-size:16px; line-height:1.5; letter-spacing:0 }
  .ai-tm-workflow-list li { font-size:13px; padding-right:8px }
  .ai-ip-visual { grid-template-columns:minmax(270px,1fr) minmax(270px,1fr); gap:44px; padding:24px 0 }
  .ai-open-board-v2 { width:min(100%,720px); padding:4px 0 }
  .ai-open-route-v2 {
    grid-template-columns:minmax(210px,220px) 22px minmax(160px,180px) 22px minmax(210px,220px);
    grid-template-rows:104px 206px;
    gap:8px; justify-content:center;
    min-height:320px;
  }
  .ai-open-title-v2 { font-size:16px; line-height:1.5; letter-spacing:0 }
  .ai-panel-art { display:none }
  .sec-view > .wrap { padding:40px var(--pad-x) }
  .svc-dims { grid-template-columns:1fr; gap:12px }
  .testi-page { grid-template-columns:repeat(2,1fr); gap:20px }
  .testi-sec.sec-view { padding:80px 0 !important }
  .t-card { min-height:260px; padding:32px 28px 26px }
  .t-name { font-size:20px; margin-bottom:24px }
  .t-role { display:none }
  .t-quote { font-size:14px; margin-bottom:28px }
  .t-logo { width:128px; height:54px }
}
@media (max-width:640px) {
  .testi-slider { gap:10px; padding:0 20px }
  .testi-nav { width:36px; height:36px }
  .testi-page { grid-template-columns:1fr; gap:16px }
  .testi-logos { margin-top:28px; gap:16px }
  .logo-mq { --logo-gap:16px }
  .logo-mq::before, .logo-mq::after { width:48px }
  .logo-item { width:156px; height:68px }
  .logo-item img { width:124px; height:32px; max-width:124px; max-height:32px }
  .t-card { min-height:auto; padding:28px 24px 24px }
  .t-name { font-size:20px; margin-bottom:24px }
  .t-role { display:none }
  .t-quote { font-size:14px; margin-bottom:24px }
  .t-logo { width:120px; height:52px }
}
@media (max-width:768px) {
  .search-toolbar { flex-wrap:wrap; row-gap:10px }
  .search-scope { margin-left:0 }
  .hero-in { padding-top:40px }
  .hero-card { padding:32px 24px 28px; max-width:none }
  .hero-stats { grid-template-columns:repeat(2,1fr); gap:22px 0; padding-top:22px }
  .hero-stat:nth-child(3)::before { display:none }
  .ai-tabs { grid-template-columns:1fr }
  .ai-tab { padding:20px 0 }
  .ai-detail { min-height:560px }
  .ai-panel { padding:28px 22px }
  .ai-panel--data { padding:28px 22px }
  .ai-data-map {
    min-height:auto; display:grid; grid-template-columns:1fr; gap:12px;
    background:transparent; box-shadow:none; overflow:visible;
  }
  .ai-data-map::before { display:none }
  .ai-data-side {
    min-height:auto; padding:20px;
  }
  .ai-data-heading { margin-top:12px; font-size:16px; line-height:1.5; letter-spacing:0 }
  .ai-data-list,
  .ai-data-scenarios { margin-top:16px }
  .ai-data-bridge { min-height:auto; padding:4px 0 }
  .ai-data-bridge::before,
  .ai-data-bridge::after { display:none }
  .ai-data-hub {
    width:100%; min-height:auto; padding:14px 16px;
    flex-direction:row; gap:14px; border-radius:18px;
  }
  .ai-data-hub strong { font-size:16px }
  .ai-data-hub em { width:1px; height:34px; background:linear-gradient(180deg, transparent, rgba(255,149,0,.80), transparent) }
  .ai-data-hub span { text-align:left }
  .ai-panel--tm { padding:28px 22px }
  .ai-tm-visual {
    min-height:auto; display:grid; grid-template-columns:1fr; gap:12px;
  }
  .ai-tm-visual::before,
  .ai-tm-visual::after { display:none }
  .ai-tm-card,
  .ai-tm-card--workflow {
    min-height:auto; transform:none; padding:20px;
    border-radius:22px;
  }
  .ai-tm-heading { margin-top:12px; font-size:16px; line-height:1.5; letter-spacing:0 }
  .ai-tm-chip-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px; margin-top:16px;
  }
  .ai-tm-chip {
    min-height:38px; padding:8px 10px;
    border-radius:14px;
  }
  .ai-tm-bridge {
    min-height:auto; padding:4px 0;
  }
  .ai-tm-bridge::before,
  .ai-tm-bridge::after { display:none }
  .ai-tm-mcp {
    width:100%; height:auto; min-height:62px; border-radius:18px;
    flex-direction:row; gap:12px;
  }
  .ai-tm-mcp strong { font-size:20px }
  .ai-tm-workflow-list { margin-top:16px; gap:10px }
  .ai-tm-workflow-list li { white-space:normal }
  .ai-tm-workflow-list li::before { height:20px }
  .ai-panel--patent,
  .ai-panel--open { padding:28px 22px }
  .ai-ip-visual {
    min-height:auto; grid-template-columns:1fr; gap:12px; padding:0;
  }
  .ai-ip-visual::before,
  .ai-ip-visual::after { display:none }
  .ai-ip-card {
    min-height:auto; padding:20px; border-radius:22px;
  }
  .ai-ip-title { margin-top:12px; font-size:16px; line-height:1.5; letter-spacing:0 }
  .ai-ip-chips {
    grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:16px;
  }
  .ai-ip-chip,
  .ai-open-pill-v2 {
    min-height:38px; padding:8px 10px; border-radius:14px;
  }
  .ai-ip-bridge {
    position:relative; left:auto; top:auto; transform:none;
    min-height:auto; padding:4px 0;
    display:flex; justify-content:center; pointer-events:auto;
  }
  .ai-ip-hub {
    width:100%; height:auto; min-height:62px; border-radius:18px;
    flex-direction:row; gap:12px;
  }
  .ai-ip-hub strong { font-size:20px }
  .ai-ip-list { margin-top:16px; gap:10px }
  .ai-open-visual--v2,
  .ai-open-board-v2 {
    min-height:auto;
  }
  .ai-open-board-v2 {
    padding:0; border-radius:0;
  }
  .ai-open-head-v2 { margin-bottom:16px }
  .ai-open-title-v2 { margin-top: 10px; font-size:16px; line-height:1.5; letter-spacing:0 }
  .ai-open-desc-v2 { margin-top:12px }
  .ai-open-route-v2 {
    grid-template-columns:1fr; grid-template-rows:none; gap:12px; margin-top:18px;
  }
  .ai-open-source-v2,
  .ai-open-target-v2,
  .ai-open-method-v2,
  .ai-open-platform-v2,
  .ai-open-arrow-v2--l1,
  .ai-open-arrow-v2--l2,
  .ai-open-arrow-v2--r1,
  .ai-open-arrow-v2--r2 {
    grid-column:1; grid-row:auto;
  }
  .ai-open-arrow-v2 {
    width:1px; height:28px; justify-self:center;
    background:linear-gradient(180deg, rgba(255,137,43,.18), rgba(255,137,43,.72));
  }
  .ai-open-arrow-v2::before {
    left:50%; top:0;
    transform:translate3d(-50%,-3px,0);
    animation-name:aiArrowFlowVertical;
  }
  .ai-open-arrow-v2::after {
    right:auto; left:50%; top:auto; bottom:-1px;
    transform:translateX(-50%) rotate(135deg);
  }
  .ai-open-block {
    height:auto; min-height:auto; padding:18px; border-radius:20px;
  }
  .ai-open-source-v2,
  .ai-open-target-v2 {
    height:auto; min-height:auto;
  }
  .ai-open-method-v2,
  .ai-open-platform-v2 {
    height:auto; min-height:auto; padding:18px;
  }
  .ai-open-method-v2 h4 { margin-bottom:8px }
  .ai-open-platform-v2 h4 { margin-bottom:10px }
  .ai-open-content-v2--method { font-size:18px }
  .ai-open-tags-v2 {
    grid-template-rows:none;
    gap:8px;
  }
  .ai-open-tags-v2 .ai-open-pill-v2 {
    height:auto;
    min-height:32px;
    padding:7px 12px;
  }
  .ai-patent-visual,
  .ai-open-visual {
    min-height:auto; display:grid; grid-template-columns:1fr; gap:10px;
  }
  .ai-patent-visual::before,
  .ai-patent-lines,
  .ai-patent-doc,
  .ai-patent-tag,
  .ai-open-lines,
  .ai-open-hub,
  .ai-open-flow,
  .ai-open-chip { display:none }
  .ai-patent-node,
  .ai-open-node {
    position:relative; inset:auto; width:auto; min-width:0; min-height:64px;
    border-radius:16px;
  }
  .ai-core { grid-template-columns:1fr; gap:12px }
  .ai-core-item,
  .ai-core-item + .ai-core-item { min-height:86px; padding:36px 0 14px 0 }
  .ai-core-item + .ai-core-item::after { display:none }
  .card-dock { grid-template-columns:repeat(2,1fr); gap:10px }
  .dock-entry { min-height:78px; padding:12px 6px 10px }
  .sol-hdr { flex-direction:column; align-items:flex-start; gap:16px }
  .sol-tabs-wrap { width:100%; justify-content:flex-start }
  .sol-body { grid-template-columns:1fr; gap:32px }
  .sol-left {
    padding:0; border-right:none;
  }
  .sol-video { padding:0 }
}

/* QDS about dropdown copied from revised homepage header */
.nav .mega-menu--drop {
  position:absolute;
  top:100%;
  left:0;
  right:auto;
  width:max-content;
  min-width:0;
  border-radius:0 0 14px 14px;
}
.nav .mega-menu--drop .mega-inner {
  max-width:none;
  width:max-content;
  margin:0;
  padding:20px 24px 24px;
}
.nav .mega-menu--drop.mega-menu--about {
  min-width:320px;
}
.nav .mega-menu--drop.mega-menu--about .mega-inner {
  width:100%;
  min-width:320px;
  padding:20px 32px 24px;
}
.nav .mega-grid--about {
  width:100%;
  min-width:320px;
  grid-template-columns:1fr;
}
.nav .mega-grid--about .mega-links {
  grid-template-columns:1fr;
}
