/* ============================================================
   v3-tokens.css — 牵翼云 V3 设计系统共享令牌
   Cobalt & Cream：干净浅色底 + 品牌钴蓝唯一强调色
   全站 V3 页面统一引入，根治逐页复制弊病。
   生产环境：Space Grotesk 需 self-host；离线时回退系统字体栈。
   ============================================================ */

/* ---------- 设计令牌 ---------- */
:root{
  --bg:        #FAFAF7;   /* off-white 米白 */
  --bg-tint:   #F1F1EC;   /* 浅灰米色分区 */
  --ink:       #111114;   /* 近黑 */
  --ink-60:    #5C5C63;   /* 次级文字 */
  --ink-50:    #6E6E74;   /* 流程桥文字 */
  --ink-30:    #B9B9B0;   /* 弱文字 */
  --cobalt:    #0A4FD6;   /* 品牌钴蓝 - 全页唯一强调色 */
  --cobalt-ink:#083B9E;   /* 钴蓝深阶（hover） */
  --paper:     #FFFFFF;
  --line:      #111114;   /* 结构线 */
  --line-soft: #DEDED5;   /* 细分隔线 */

  /* 状态色（谨慎使用，非装饰） */
  --ok:        #0E8A4D;
  --warn:      #B45309;
  --fail:      #C0392B;

  --font-latin:'Space Grotesk','PingFang SC','Microsoft YaHei',sans-serif;
  --font-cn:'PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif;

  --nav-h:68px;
  --pad-x:clamp(20px,5vw,72px);
}

/* ---------- 基础重置 ---------- */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
/* 锚点定位：让 sticky nav 不遮挡目标区块顶部 */
section[id],div[id],header[id]{scroll-margin-top:calc(var(--nav-h) + 12px)}
body{
  background:var(--bg);color:var(--ink);
  font-family:var(--font-cn);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{background:var(--cobalt);color:#fff}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
ul,ol{list-style:none}
.num{font-family:var(--font-latin);font-feature-settings:'tnum';letter-spacing:-.02em}

/* ---------- NAV ---------- */
.nav{
  position:sticky;top:0;z-index:100;
  height:var(--nav-h);
  background:rgba(250,250,247,.88);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 var(--pad-x);
}
.nav-logo{display:flex;align-items:baseline;gap:10px;font-family:var(--font-latin)}
.nav-logo .zh{font-family:var(--font-cn);font-weight:700;font-size:19px;letter-spacing:.06em}
.nav-logo .en{font-weight:500;font-size:12px;color:var(--ink-60);letter-spacing:.18em}
.nav-links{display:flex;gap:34px;font-size:14.5px;font-weight:500}
.nav-links a{position:relative;padding:4px 0;transition:color .25s}
.nav-links a:hover{color:var(--cobalt)}
.nav-links a::after{content:'';position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--cobalt);transition:width .28s cubic-bezier(.16,1,.3,1)}
.nav-links a:hover::after{width:100%}
.nav-links a.active{color:var(--cobalt)}
.nav-links a.active::after{width:100%}
.nav-cta{
  font-family:var(--font-cn);font-size:14px;font-weight:600;
  background:var(--ink);color:#fff;padding:10px 22px;
  transition:background .25s,transform .2s;
}
.nav-cta:hover{background:var(--cobalt)}
.nav-cta:active{transform:scale(.97)}
@media(max-width:960px){.nav-links{display:none}}

/* ---------- HERO ---------- */
.hero{
  padding:clamp(56px,9vh,110px) var(--pad-x) 0;
  border-bottom:1px solid var(--line);
  position:relative;
}
.hero-kicker{
  display:inline-flex;align-items:center;gap:10px;
  font-size:13px;font-weight:600;color:var(--cobalt);
  letter-spacing:.08em;margin-bottom:34px;
}
.hero-kicker::before{content:'';width:34px;height:2px;background:var(--cobalt)}
.hero h1{
  font-size:clamp(44px,8.2vw,124px);
  line-height:1.02;letter-spacing:-.03em;
  font-weight:700;max-width:14em;
}
.hero h1 .ai{
  font-family:var(--font-latin);font-style:italic;font-weight:700;
  color:var(--cobalt);padding-bottom:.06em;
}
.hero-sub{
  margin-top:38px;
  font-size:clamp(16px,1.4vw,20px);line-height:1.7;color:var(--ink-60);
  max-width:34em;
}
.hero-ctas{display:flex;gap:14px;margin-top:44px;flex-wrap:wrap}

/* ---------- 按钮 ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-size:15.5px;font-weight:600;
  padding:16px 34px;border:1px solid var(--line);
  transition:transform .22s cubic-bezier(.16,1,.3,1),background .25s,color .25s,border-color .25s;
  white-space:nowrap;
}
.btn-primary{background:var(--cobalt);color:#fff;border-color:var(--cobalt)}
.btn-primary:hover{background:var(--cobalt-ink);border-color:var(--cobalt-ink);transform:translateY(-2px)}
.btn-primary:active{transform:scale(.98)}
.btn-ghost{background:transparent;color:var(--ink)}
.btn-ghost:hover{border-color:var(--cobalt);color:var(--cobalt);transform:translateY(-2px)}
.btn-ghost:active{transform:scale(.98)}
.btn svg{width:16px;height:16px}

/* ---------- HERO 读数条 ---------- */
.hero-readout{
  margin-top:clamp(48px,7vh,84px);
  border-top:1px solid var(--line);
  display:grid;grid-template-columns:repeat(4,1fr);
}
.hero-readout .cell{padding:26px 24px 30px 0;padding-left:24px;border-right:1px solid var(--line-soft)}
.hero-readout .cell:first-child{padding-left:0}
.hero-readout .cell:last-child{border-right:none}
.readout-label{font-size:12.5px;color:var(--ink-60);letter-spacing:.04em;margin-bottom:8px}
.readout-value{font-size:clamp(30px,3.4vw,46px);font-weight:700;line-height:1}
.readout-value .unit{font-size:.42em;font-weight:500;color:var(--ink-60);margin-left:4px;letter-spacing:0}
.readout-value .up{color:var(--cobalt);font-size:.4em;font-weight:700;vertical-align:super;margin-left:8px}
@media(max-width:820px){
  .hero-readout{grid-template-columns:1fr 1fr}
  .hero-readout .cell:nth-child(2){border-right:none}
  .hero-readout .cell:nth-child(-n+2){border-bottom:1px solid var(--line-soft)}
}

/* ---------- 通用 section 骨架 ---------- */
section{padding:clamp(72px,10vh,130px) var(--pad-x)}
.sec-head h1,.sec-head h2{
  font-size:clamp(30px,4.6vw,62px);font-weight:700;
  letter-spacing:-.025em;line-height:1.12;
}
.sec-head p{
  margin-top:18px;font-size:17px;line-height:1.7;color:var(--ink-60);max-width:32em;
}

/* ---------- AI 全流程：10 步流程条 ---------- */
.flow-strip{
  margin-top:clamp(44px,6vh,72px);
  display:grid;grid-template-columns:repeat(5,1fr);
  border-top:1px solid var(--line);
}
.flow-node{
  padding:30px 26px 30px 0;
  border-bottom:1px solid var(--line);
  display:flex;flex-direction:column;gap:10px;
  position:relative;cursor:pointer;
  transition:padding .3s cubic-bezier(.16,1,.3,1);
}
.flow-node:nth-child(n+6){border-bottom:none}
.flow-node:hover{padding-left:12px}
.flow-node::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:0;
  background:var(--cobalt);transition:width .3s cubic-bezier(.16,1,.3,1);
}
.flow-node:hover::before{width:3px}
.flow-node .step-no{font-family:var(--font-latin);font-size:12px;font-weight:500;color:var(--cobalt);letter-spacing:.14em}
.flow-node h3{font-size:17px;font-weight:700;letter-spacing:-.01em;display:flex;align-items:center;justify-content:space-between;gap:8px}
.flow-node h3 .arrow{color:var(--ink-30);transition:color .25s,transform .3s}
.flow-node:hover h3 .arrow{color:var(--cobalt);transform:translate(3px,-3px)}
.flow-node p{font-size:12.5px;line-height:1.65;color:var(--ink-60)}
.flow-bridge{
  margin-top:10px;display:flex;align-items:center;gap:14px;
  font-size:13px;color:var(--ink-50);
}
.flow-bridge::before,.flow-bridge::after{content:'';flex:1;height:1px;background:var(--line)}
.cap-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:clamp(28px,4vh,44px)}
.cap-tag{
  font-size:13px;color:var(--ink-50);
  padding:8px 16px;border:1px solid var(--line);
  border-radius:100px;transition:color .25s,border-color .25s;
  text-decoration:none;
}
.cap-tag:hover{color:var(--cobalt);border-color:var(--cobalt)}
@media(max-width:1280px){
  .flow-strip{grid-template-columns:repeat(2,1fr)}
  .flow-node:nth-child(n+6){border-bottom:1px solid var(--line)}
  .flow-node:nth-last-child(-n+2){border-bottom:none}
}
@media(max-width:760px){
  .flow-strip{grid-template-columns:1fr}
  .flow-node:nth-child(n+6){border-bottom:1px solid var(--line)}
  .flow-node:last-child{border-bottom:none}
}

/* ---------- 智能体 bento ---------- */
.agents-grid{
  margin-top:clamp(44px,6vh,72px);
  display:grid;grid-template-columns:repeat(6,1fr);
  grid-auto-rows:auto;gap:1px;
  background:var(--line);border:1px solid var(--line);
}
.agent-cell{
  background:var(--bg);padding:34px 30px 38px;
  position:relative;overflow:hidden;cursor:pointer;
  transition:background .3s;
  display:flex;flex-direction:column;gap:18px;
}
.agent-cell:hover{background:var(--paper)}
.agent-cell.big{grid-column:span 3}
.agent-cell.big .agent-desc{max-width:26em}
.agent-cell.sm{grid-column:span 2}
.agent-no{
  font-family:var(--font-latin);font-size:13px;font-weight:500;
  color:var(--ink-30);letter-spacing:.1em;
  display:flex;justify-content:space-between;
}
.agent-no .tag{color:var(--cobalt)}
.agent-cell h3{font-size:clamp(19px,1.6vw,24px);font-weight:700;letter-spacing:-.01em}
.agent-desc{font-size:14.5px;line-height:1.75;color:var(--ink-60)}
.agent-foot{
  margin-top:auto;padding-top:16px;
  font-size:13px;font-weight:600;color:var(--ink);
  display:inline-flex;align-items:center;gap:8px;
  transition:color .25s,gap .25s;
}
.agent-cell:hover .agent-foot{color:var(--cobalt);gap:14px}
.agent-media{margin:6px -30px -38px;height:clamp(140px,22vh,240px);overflow:hidden}
.agent-media img{width:100%;height:100%;object-fit:cover;filter:saturate(.72) contrast(1.02);transition:transform .6s cubic-bezier(.16,1,.3,1),filter .4s}
.agent-cell:hover .agent-media img{transform:scale(1.045);filter:saturate(.95)}
@media(max-width:960px){.agent-cell.big,.agent-cell.sm{grid-column:span 6}}

/* ---------- 产品：目录式大列表（深色） ---------- */
.products{background:var(--ink);color:var(--bg)}
.products .sec-head h2{color:#fff}
.products .sec-head p{color:var(--ink-30)}
.prod-list{margin-top:clamp(44px,6vh,72px);border-top:1px solid rgba(250,250,247,.22)}
.prod-row{
  display:grid;grid-template-columns:88px 1fr auto;align-items:center;gap:28px;
  padding:30px 8px;border-bottom:1px solid rgba(250,250,247,.22);
  position:relative;cursor:pointer;
  transition:padding .3s cubic-bezier(.16,1,.3,1);
}
.prod-row:hover{padding-left:22px}
.prod-row::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:0;
  background:var(--cobalt);transition:width .3s cubic-bezier(.16,1,.3,1);
}
.prod-row:hover::before{width:5px}
.prod-code{font-family:var(--font-latin);font-size:14px;color:var(--ink-30);letter-spacing:.1em}
.prod-row:hover .prod-code{color:#7DA4FF}
.prod-name{font-size:clamp(20px,2.4vw,32px);font-weight:700;letter-spacing:-.015em;transition:color .25s}
.prod-row:hover .prod-name{color:#7DA4FF}
.prod-brief{font-size:14px;color:var(--ink-30);max-width:26em;text-align:right}
.prod-arrow{
  display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;
  color:var(--ink-30);transition:color .25s,transform .3s;
}
.prod-row:hover .prod-arrow{color:#7DA4FF;transform:translate(3px,-3px)}
@media(max-width:760px){
  .prod-row{grid-template-columns:52px 1fr;gap:14px}
  .prod-brief{display:none}
}

/* ---------- 行业 marquee ---------- */
.industries{padding:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden}
.ind-track{display:flex;width:max-content;animation:indScroll 42s linear infinite}
.industries:hover .ind-track{animation-play-state:paused}
@keyframes indScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.ind-group{display:flex;align-items:stretch}
.ind-item{
  display:flex;align-items:center;gap:12px;
  padding:30px 38px;font-size:clamp(20px,2.2vw,30px);font-weight:700;
  letter-spacing:-.01em;white-space:nowrap;
  border-right:1px solid var(--line-soft);
  transition:color .25s;
}
.ind-item:hover{color:var(--cobalt)}
.ind-item .count{
  font-family:var(--font-latin);font-size:.44em;font-weight:500;
  color:var(--ink-30);align-self:flex-start;margin-top:.55em;
}

/* ---------- 现场照片墙 ---------- */
.scenery{background:var(--bg-tint)}
.scenery-rail{
  margin-top:clamp(40px,5vh,60px);
  display:flex;gap:1px;overflow-x:auto;
  scroll-snap-type:x mandatory;border:1px solid var(--line);
  scrollbar-width:thin;
}
.scenery-rail::-webkit-scrollbar{height:6px}
.scenery-rail::-webkit-scrollbar-thumb{background:var(--ink-30)}
.shot{flex:0 0 clamp(240px,30vw,420px);scroll-snap-align:start;position:relative;background:var(--paper)}
.shot img{width:100%;height:clamp(200px,32vh,340px);object-fit:cover;filter:saturate(.78)}
.shot figcaption{padding:16px 18px 18px;font-size:13.5px;line-height:1.6;color:var(--ink-60);border-top:1px solid var(--line-soft)}
.shot figcaption b{display:block;color:var(--ink);font-size:14.5px;margin-bottom:4px}

/* ---------- CTA ---------- */
.cta{background:var(--cobalt);color:#fff;text-align:center;padding:clamp(90px,14vh,170px) var(--pad-x)}
.cta h2{font-size:clamp(36px,6vw,86px);font-weight:700;letter-spacing:-.03em;line-height:1.08}
.cta h2 .en{font-family:var(--font-latin);font-style:italic;padding-bottom:.08em}
.cta p{margin-top:24px;font-size:17px;color:rgba(255,255,255,.82)}
.cta .hero-ctas{justify-content:center;margin-top:48px}
.cta .btn-primary{background:#fff;color:var(--cobalt);border-color:#fff}
.cta .btn-primary:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.cta .btn-ghost{color:#fff;border-color:rgba(255,255,255,.55)}
.cta .btn-ghost:hover{border-color:#fff;color:#fff}

/* ---------- FOOTER ---------- */
footer{
  background:var(--bg);padding:clamp(56px,8vh,90px) var(--pad-x) 40px;
  border-top:1px solid var(--line);
}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:44px;padding-bottom:56px;border-bottom:1px solid var(--line-soft)}
.foot-brand .nav-logo{margin-bottom:18px}
.foot-brand p{font-size:14px;line-height:1.8;color:var(--ink-60);max-width:24em}
.foot-col h4{font-size:13px;font-weight:600;letter-spacing:.1em;color:var(--ink-30);margin-bottom:20px}
.foot-col a{display:block;font-size:14.5px;padding:7px 0;color:var(--ink-60);transition:color .2s}
.foot-col a:hover{color:var(--cobalt)}
.foot-contact p{font-size:14.5px;line-height:2.1;color:var(--ink-60)}
.foot-contact .tel{font-family:var(--font-latin);font-size:22px;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.foot-contact .qr{display:flex;gap:16px;margin-top:12px}
.foot-contact .qr-item{text-align:center}
.foot-contact .qr-item .qr-box{background:#fff;border:1px solid var(--line-soft);padding:6px;margin-bottom:6px}
.foot-contact .qr-item .qr-box img{width:78px;height:78px;display:block}
.foot-contact .qr-item span{font-size:12px;color:var(--ink-60)}
.foot-base{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-top:26px;font-size:12.5px;color:var(--ink-30)}
.foot-base a:hover{color:var(--cobalt)}
@media(max-width:900px){.foot-grid{grid-template-columns:1fr 1fr}}

/* ---------- Scroll reveal（尊重 reduced-motion） ---------- */
@media (prefers-reduced-motion:no-preference){
  .rv{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
  .rv.in{opacity:1;transform:none}
  .rv-d1{transition-delay:.08s}.rv-d2{transition-delay:.16s}.rv-d3{transition-delay:.24s}
}

/* ---------- 通用小工具 ---------- */
.container{max-width:1280px;margin:0 auto;width:100%}
.section-label{
  font-size:13px;font-weight:600;color:var(--cobalt);
  letter-spacing:.08em;margin-bottom:18px;text-transform:uppercase;
}
.section-title{
  font-size:clamp(30px,4.6vw,62px);font-weight:700;
  letter-spacing:-.025em;line-height:1.12;
}
.section-desc{
  margin-top:18px;font-size:17px;line-height:1.7;color:var(--ink-60);max-width:32em;
}
