/* 三千知行 · 官网样式 v7 —— 墨色首屏 / 月白纸面 / 朱砂印章色 / 思源宋体标题 / 首页内容区排成「行」字 */

/* ============ 1. 设计变量 ============ */
:root{
  /* 墨：深色底（首屏、联系、页脚） */
  --night:#101B36; --night-2:#1A2848; --on-night:#EAEEF7; --on-night-2:#A8B3CB; --night-line:rgba(234,238,247,.15);
  /* 纸：浅色底 */
  --paper:#EEF1F5; --white:#FFFFFF; --ink:#111A2E; --ink-2:#3F495E; --ink-3:#5D677E; --line:#D7DDE7;
  /* 朱：强调色 */
  --accent:#D93B24; --accent-2:#BD2E19; --accent-ink:#FFFFFF; --accent-soft:#FF8769; --tint:#FBE8E3;

  --disp:"Noto Serif SC","Songti SC","Source Han Serif SC","Noto Serif CJK SC","PingFang SC","Microsoft YaHei",serif;
  --sans:"PingFang SC","HarmonyOS Sans SC","MiSans","Microsoft YaHei","Noto Sans SC",system-ui,-apple-system,sans-serif;
  --w:1200px; --pad:clamp(20px,4vw,48px); --nav:68px;
  --ease:cubic-bezier(.2,.8,.2,1); --ease-io:cubic-bezier(.65,0,.35,1);
  --r:16px;
}

/* ============ 2. 基础 ============ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--nav) + 16px)}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.75 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:clip}
img,video,canvas,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
p{margin:0}
h1,h2,h3,h4{margin:0;font-family:var(--disp);font-weight:900;line-height:1.25;letter-spacing:.02em;text-wrap:balance}
h1{font-size:clamp(32px,4.4vw,58px)}
h2{font-size:clamp(26px,3vw,40px)}
h3{font-size:clamp(19px,1.7vw,23px);font-weight:900;line-height:1.4}
::selection{background:var(--accent);color:var(--accent-ink)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:calc(var(--w) + 2 * var(--pad));margin-inline:auto;padding-inline:var(--pad)}
.lead{font-size:clamp(16.5px,1.3vw,19px);line-height:1.8;color:var(--ink-2);text-wrap:pretty}
.empty{color:var(--ink-3);padding:40px 0}

/* 按钮 */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;height:48px;padding:0 26px;border:0;border-radius:999px;background:var(--accent);color:var(--accent-ink);font:600 15.5px/1 var(--sans);letter-spacing:.02em;white-space:nowrap;cursor:pointer;transition:transform .35s var(--ease),background-color .25s,color .25s,box-shadow .35s}
.btn:hover{background:var(--accent-2);transform:translateY(-2px);box-shadow:0 12px 24px -10px color-mix(in srgb,var(--accent) 75%,transparent)}
.btn:active{transform:scale(.98)}
.btn.sm{height:40px;padding:0 18px;font-size:14.5px}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--paper);box-shadow:inset 0 0 0 1.5px var(--ink)}
.btn.line{background:transparent;color:inherit;box-shadow:inset 0 0 0 1.5px color-mix(in srgb,currentColor 55%,transparent)}
.btn.line:hover{background:var(--on-night);color:var(--night);box-shadow:none}
.btn.light{background:#fff;color:var(--ink)}
.btn.light:hover{background:#fff;color:var(--accent);box-shadow:0 14px 28px -14px rgba(0,0,0,.45)}

/* 文字链接 */
.more{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--accent);background:linear-gradient(currentColor,currentColor) 0 100%/0 1.5px no-repeat;padding-bottom:3px;transition:background-size .45s var(--ease)}
.arr{flex-shrink:0;transition:transform .35s var(--ease)}
.more:hover,a:hover>*>.more{background-size:100% 1.5px}
.more:hover .arr,a:hover .more .arr{transform:translate(3px,-3px)}

/* 滚动出现 */
.js [data-r]{opacity:0;transform:translateY(18px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:var(--d,0ms)}
.js [data-r].in{opacity:1;transform:none}

.preview-bar{position:sticky;top:0;z-index:70;background:#FFB340;color:#111;font-size:14px;text-align:center;padding:8px var(--pad)}
.preview-bar a{text-decoration:underline;margin-left:10px}
.preview-bar ~ .top{top:37px}

/* ============ 3. 页头 ============ */
.top{position:sticky;top:0;z-index:50;height:var(--nav);color:var(--ink);transition:color .35s}
.top::before{content:"";position:absolute;inset:0;z-index:-1;background:color-mix(in srgb,var(--paper) 86%,transparent);-webkit-backdrop-filter:blur(14px) saturate(1.5);backdrop-filter:blur(14px) saturate(1.5);border-bottom:1px solid var(--line);transition:opacity .35s}
[data-page="home"] .top:not(.solid),.top.menu-open{color:var(--on-night)}
[data-page="home"] .top:not(.solid)::before,.top.menu-open::before{opacity:0}
.top .wrap{height:100%;display:flex;align-items:center;justify-content:space-between;gap:20px}
.logo{display:inline-flex;align-items:center;gap:10px;font:900 21px/1 var(--disp);letter-spacing:.08em;white-space:nowrap}
.seal{position:relative;flex-shrink:0;width:46px;height:46px;transition:transform .5s var(--ease)}
.seal img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity .35s}
.seal .mk-l{opacity:0}
/* 深色底（首页首屏的页眉、手机菜单、页脚）用浅色版 */
[data-page="home"] .top:not(.solid) .seal .mk-c,.top.menu-open .seal .mk-c,.foot .seal .mk-c{opacity:0}
[data-page="home"] .top:not(.solid) .seal .mk-l,.top.menu-open .seal .mk-l,.foot .seal .mk-l{opacity:1}
.logo:hover .seal{transform:rotate(-8deg) scale(1.06)}
.top nav{display:flex;align-items:center;gap:clamp(14px,2.4vw,34px);font-size:15px}
.top nav a:not(.btn){position:relative;padding:8px 0;opacity:.74;white-space:nowrap;transition:opacity .2s}
.top nav a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
.top nav a:not(.btn):hover,.top nav a[aria-current="page"]{opacity:1}
.top nav a:not(.btn):hover::after,.top nav a[aria-current="page"]::after{transform:scaleX(1)}
.menu-btn{display:none;position:relative;width:44px;height:44px;margin-right:-10px;border:0;background:transparent;cursor:pointer;padding:0}
.menu-btn span{position:absolute;left:11px;right:11px;height:2px;background:currentColor;transition:transform .35s var(--ease),top .35s var(--ease)}
.menu-btn span:nth-child(1){top:17px}.menu-btn span:nth-child(2){top:25px}
.menu-btn[aria-expanded="true"] span{top:21px}
.menu-btn[aria-expanded="true"] span:nth-child(1){transform:rotate(45deg)}
.menu-btn[aria-expanded="true"] span:nth-child(2){transform:rotate(-45deg)}
@media (max-width:700px){
  .menu-btn{display:block}
  .top nav{position:fixed;inset:0;z-index:-1;flex-direction:column;align-items:stretch;gap:0;padding:calc(var(--nav) + 20px) var(--pad) 32px;background:var(--night);color:var(--on-night);overflow:auto;visibility:hidden;opacity:0;transition:opacity .3s,visibility .3s}
  .top nav.open{visibility:visible;opacity:1}
  .top nav a:not(.btn){padding:17px 0;font:900 26px/1.2 var(--disp);letter-spacing:.04em;border-bottom:1px solid var(--night-line);opacity:0;transform:translateY(14px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
  .top nav a:not(.btn)::after{display:none}
  .top nav a[aria-current="page"]{color:var(--accent-soft)}
  .top nav.open a:not(.btn){opacity:1;transform:none}
  .top nav.open a:nth-child(2){transition-delay:.05s}.top nav.open a:nth-child(3){transition-delay:.1s}.top nav.open a:nth-child(4){transition-delay:.15s}.top nav.open a:nth-child(5){transition-delay:.2s}
  .top nav .btn{margin-top:28px;height:52px;font-size:16px}
  html.nav-open{overflow:hidden}
}

/* ============ 4. 区块 ============ */
.sec{padding:clamp(60px,8vw,112px) 0}
.sec.white{background:var(--white)}
.sec.night,.sec.dark{background:var(--night);color:var(--on-night)}
.sec.night .lead,.sec.dark .lead{color:var(--on-night-2)}
.sec.tight{padding-top:clamp(28px,4vw,44px)}
.sec-head{margin-bottom:clamp(28px,3.6vw,48px)}
.sec-head.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px clamp(24px,5vw,80px);align-items:end}
.sec-head h2{max-width:14em}
.sec-head .side{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.sec-head .side p{max-width:30em;font-size:clamp(16px,1.2vw,18px);line-height:1.8;color:var(--ink-2);text-wrap:pretty}
.sec.night .sec-head .side p,.sec.dark .sec-head .side p{color:var(--on-night-2)}
@media (max-width:700px){.sec-head.split{grid-template-columns:1fr}}

/* ============ 5. 首页首屏 ============ */
.hero{position:relative;height:170vh;margin-top:calc(-1 * var(--nav));background:var(--night)}
.stage{--tick:52px;position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;isolation:isolate;background:var(--night);color:var(--on-night)}
.stage:not(:has(.ticker)){--tick:0px}
.scenes{position:absolute;inset:0;z-index:0}
.scenes img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.1);opacity:0;transform:scale(1.08);transition:opacity 1.8s ease,transform 9s linear}
.scenes img.on{opacity:.24;transform:scale(1)}
.stage::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:
  radial-gradient(52% 62% at 74% 47%,color-mix(in srgb,var(--accent) 20%,transparent),transparent 72%),
  linear-gradient(90deg,var(--night) 0%,color-mix(in srgb,var(--night) 80%,transparent) 40%,color-mix(in srgb,var(--night) 25%,transparent) 100%),
  linear-gradient(0deg,var(--night) 0%,transparent 36%),
  linear-gradient(180deg,color-mix(in srgb,var(--night) 80%,transparent) 0%,transparent 22%)}
.stage::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.09;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
#glyphs{position:absolute;inset:0;z-index:2;width:100%;height:100%;touch-action:pan-y}
.hero-in{position:absolute;inset:var(--nav) 0 var(--tick) 0;z-index:3;pointer-events:none}
.hero-in .wrap{position:relative;height:100%;display:flex;flex-direction:column;justify-content:center}
.hero-copy{max-width:min(600px,47%);display:flex;flex-direction:column;gap:clamp(14px,2.6vh,26px)}
.wl{margin:0;font-size:clamp(31px,4.9vw,68px);line-height:1.22;color:#fff}
.wl .ln{display:block;overflow:hidden;padding:.05em 0}
.wl .ln>span{display:inline-block}
.js .wl .ln>span{transform:translateY(112%)}
.loaded .wl .ln>span{transform:none;transition:transform 1s var(--ease)}
.loaded .wl .ln:nth-child(2)>span{transition-delay:.12s}
.hero-sub{pointer-events:auto;display:flex;flex-direction:column;gap:8px}
.hero-sub p{max-width:30em;font-size:clamp(15.5px,1.25vw,18px);line-height:1.8;color:var(--on-night-2);text-wrap:pretty}
.hero-sub .acts{display:flex;gap:12px;flex-wrap:wrap;margin-top:clamp(10px,1.8vh,20px)}
.js .hero-sub{opacity:0;transform:translateY(14px)}
.loaded .hero-sub{opacity:1;transform:none;transition:opacity .9s .4s var(--ease),transform .9s .4s var(--ease)}
/* 知 → 行 进度 */
.zx{position:absolute;left:var(--pad);bottom:clamp(12px,2.6vh,26px);display:flex;align-items:center;gap:12px;font-size:13px;color:var(--on-night-2)}
.zx b{font:900 17px/1 var(--disp);color:var(--on-night)}
.zx i{position:relative;width:clamp(56px,9vw,120px);height:1px;background:var(--night-line)}
.zx i::before{content:"";position:absolute;inset:0;background:var(--accent-soft);transform-origin:left;transform:scaleX(var(--mp,0))}
.zx i::after{content:"";position:absolute;top:-3px;left:calc(var(--mp,0) * 100%);width:7px;height:7px;margin-left:-3.5px;background:var(--accent-soft);transform:rotate(45deg)}
.js .zx{opacity:0}.loaded .zx{opacity:1;transition:opacity 1s 1.1s}
/* 业务滚动条 */
.ticker{position:absolute;left:0;right:0;bottom:0;z-index:3;height:var(--tick);display:flex;align-items:center;overflow:hidden;border-top:1px solid var(--night-line);-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.ticker-in{display:flex;width:max-content;animation:tick var(--dur,70s) linear infinite}
.ticker:hover .ticker-in{animation-play-state:paused}
.ticker ul{display:flex;flex-shrink:0;margin:0;padding:0;list-style:none}
.ticker li{display:flex;align-items:center;gap:clamp(18px,2.2vw,30px);padding-left:clamp(18px,2.2vw,30px);white-space:nowrap;font-size:14.5px;letter-spacing:.05em;color:var(--on-night-2)}
.ticker li::after{content:"";width:5px;height:5px;background:var(--accent);transform:rotate(45deg)}
@keyframes tick{to{transform:translateX(-50%)}}
@media (max-width:640px){
  .hero-in .wrap{justify-content:flex-end;padding-bottom:54px}
  .hero-copy{max-width:none}
  .wl{font-size:clamp(30px,8.8vw,42px)}
}
@media (max-height:520px){.zx{display:none}}
/* ============ 6. 首页：内容区按「行」字六笔排布 ============
   撇 = 小标题块（斜的） · 横 = 业务 / 产品 · 竖 = 案例 · 竖钩 = 预约
   所有尺寸用 cqw（相对内容区宽度），整个字跟着窗口等比缩放；窄到 600 以下改成单列 */
.xing{--cap:clamp(44px,9vw,128px);position:relative;z-index:2;margin-top:calc(-1 * var(--cap));padding:clamp(36px,5vw,72px) 0 clamp(110px,16vw,236px);background:var(--paper);border-radius:0 var(--cap) 0 0}
.xing::after{content:"";position:absolute;left:0;right:0;bottom:0;aspect-ratio:1920/470;background:url(/assets/scenes/hefei.webp) center bottom/cover no-repeat;filter:grayscale(1) contrast(1.1);mix-blend-mode:multiply;opacity:.42;-webkit-mask-image:linear-gradient(transparent,#000 60%);mask-image:linear-gradient(transparent,#000 60%);pointer-events:none}
.xing .wrap{position:relative;z-index:1}
.xing-in{container-type:inline-size}
.xr{--R:clamp(22px,4.6cqw,56px);--r:clamp(8px,1.2cqw,14px);--px:clamp(15px,2.5cqw,30px);--sk:15deg;--tk:.2679;--h2:clamp(22px,3.3cqw,40px);--body:clamp(15.5px,1.36cqw,16.5px);position:relative;display:grid}
.xr h2{font-size:var(--h2);line-height:1.2}
.st{position:relative;isolation:isolate;color:#fff}
/* 笔画“写”出来：撇、竖从上往下，横从左往右 */
.js [data-w]{transition:clip-path 1.25s var(--ease-io)}
.js [data-w="y"]{clip-path:inset(-40px -70% 100% -70%)}
.js [data-w="x"]{clip-path:inset(-40px 100% -40px -70%);transition-delay:.18s}
.js [data-w].in{clip-path:inset(-40px -70% -40px -70%)}

.xr-1{grid-template-columns:4cqw 32cqw 8cqw 52cqw 4cqw;grid-template-rows:auto 1fr}
.xr-1 .pie{grid-column:2;grid-row:1/3}
.xr-1 .heng{grid-column:4;grid-row:1/3;margin-top:5cqw}
.xr-2{grid-template-columns:34cqw 6cqw 60cqw;margin-top:clamp(18px,3.4cqw,44px)}
.xr-2 .pie{grid-column:1}
.xr-2 .heng{grid-column:3;margin-top:5cqw}
.xr-3{grid-template-columns:3cqw 62cqw 26cqw 9cqw}
.xr-3 .cases{grid-column:2}
.xr-3 .gou{grid-column:3}

/* —— 撇：斜着的标题块，照片垫在颜色里 —— */
.pie{display:flex;flex-direction:column;justify-content:space-between;gap:clamp(20px,3cqw,40px);min-height:clamp(300px,35cqw,430px);padding:var(--px)}
.pie-bg{position:absolute;inset:0;z-index:-1;container-type:size}
.pie-bg i{position:absolute;inset:0 calc(100cqh * var(--tk)) 0 0;border-radius:var(--R) var(--r);overflow:hidden;transform:skewX(calc(-1 * var(--sk)));transform-origin:0 100%}
.pie.red .pie-bg i{background:var(--accent)}
.pie.ink .pie-bg i{background:var(--night)}
.pie-bg img{position:absolute;top:0;left:-45%;width:190%;max-width:none;height:100%;object-fit:cover;transform:skewX(var(--sk));transform-origin:0 100%}
.pie.red img{mix-blend-mode:multiply;filter:grayscale(1) contrast(1.2);opacity:.45}
.pie.ink img{filter:grayscale(1) contrast(1.1);opacity:.36}
.pie h2{align-self:flex-end;max-width:70%;text-align:right}
.pie p{max-width:70%;font-size:var(--body);line-height:1.7;color:rgba(255,255,255,.92);text-wrap:pretty}

/* —— 横 —— */
.heng{border-radius:var(--R) var(--r);overflow:hidden;background:var(--night)}
/* 横一：业务。点标签换内容，新照片从标签处像墨一样晕开 */
.svc{display:flex;flex-direction:column;justify-content:space-between;gap:clamp(36px,6cqw,80px);min-height:clamp(250px,29cqw,360px);padding:var(--px)}
.svc-pics{position:absolute;inset:0;z-index:-1}
.svc-pics>*{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;clip-path:circle(0 at var(--x,50%) var(--y,0%))}
.svc-pics>.was{clip-path:none;z-index:1}
.svc-pics>.on{clip-path:circle(150% at var(--x,50%) var(--y,0%));z-index:2;transition:clip-path .95s var(--ease-io)}
.svc-pics::after{content:"";position:absolute;inset:0;z-index:3;background:linear-gradient(0deg,rgba(16,27,54,.95) 0%,rgba(16,27,54,.74) 42%,rgba(16,27,54,.3) 100%)}
.svc-tabs{display:flex;flex-wrap:wrap;gap:8px}
.svc-tabs button{height:40px;padding:0 clamp(12px,1.6cqw,18px);border:0;border-radius:999px;background:rgba(16,27,54,.66);color:#fff;font:600 clamp(14px,1.3cqw,15.5px)/1 var(--sans);letter-spacing:.02em;white-space:nowrap;cursor:pointer;transition:background-color .3s,color .3s,transform .3s var(--ease)}
.svc-tabs button:hover{background:rgba(16,27,54,.9)}
.svc-tabs button[aria-selected="true"]{background:#fff;color:var(--ink)}
.svc-tabs button:active{transform:scale(.96)}
html:not(.js) .svc-tabs{display:none}
.svc-panes{display:grid;gap:18px}
.svc-panes article{display:flex;flex-direction:column;gap:8px;max-width:36em}
.svc-panes h3{font-size:clamp(19px,2.2cqw,27px);line-height:1.35}
.svc-panes p{font-size:var(--body);line-height:1.75;color:rgba(255,255,255,.9);text-wrap:pretty}
.js .svc-panes{gap:0}
.js .svc-panes article{grid-area:1/1;align-self:end;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .28s,transform .28s,visibility 0s .28s}
.js .svc-panes article.on{opacity:1;visibility:visible;transform:none;transition:opacity .55s .22s,transform .6s .22s var(--ease),visibility 0s}

/* 横二：产品。指到哪个哪个展开，文字块宽度固定所以展开时不会重新折行 */
.prods{--g:1.75;--open:calc(60cqw * var(--g) / (var(--g) + var(--n) - 1));display:flex;min-height:clamp(380px,41cqw,500px)}
.prod{position:relative;flex:1 1 0;min-width:0;display:flex;flex-direction:column;overflow:hidden;background:var(--night);transition:flex-grow .8s var(--ease-io),background-color .6s}
.prod.on{flex-grow:var(--g);background:var(--night-2)}
.prod:focus-visible{outline-offset:-4px}
.prod-t{flex-shrink:0;width:var(--open);padding:var(--px) var(--px) 0;display:flex;flex-direction:column;align-items:flex-start;gap:clamp(8px,1cqw,12px)}
.prod-tag{font-size:clamp(14px,1.25cqw,15px);font-weight:600;letter-spacing:.04em;color:var(--accent-soft);white-space:nowrap}
.prod h3{font-size:clamp(23px,3cqw,38px);line-height:1.2;white-space:nowrap}
.prod-t p{font-size:var(--body);line-height:1.75;color:rgba(255,255,255,.88);text-wrap:pretty}
.prod-t ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px;font-size:15px;color:rgba(255,255,255,.88)}
.prod-t li{display:flex;gap:10px;align-items:baseline}
.prod-t li::before{content:"";flex-shrink:0;width:6px;height:6px;background:var(--accent-soft);transform:translateY(-2px) rotate(45deg)}
.go{display:inline-flex;align-items:center;gap:6px;font-size:var(--body);font-weight:600}
.prod-t p,.prod-t ul,.prod-t .go{opacity:0;transform:translateY(8px);transition:opacity .25s,transform .25s}
.prod.on .prod-t p,.prod.on .prod-t ul,.prod.on .prod-t .go{opacity:1;transform:none;transition:opacity .55s .3s,transform .6s .3s var(--ease)}
.prod:hover .go .arr{transform:translate(3px,-3px)}
.prod-pic{position:relative;flex:1 0 clamp(150px,17cqw,210px);width:var(--open);margin-top:clamp(16px,2.2cqw,26px)}
.prod-pic img{position:absolute;top:0;max-width:none;border-radius:clamp(10px,1.5cqw,18px);translate:calc(var(--mx,0) * -10px) calc(var(--my,0) * -8px);transition:translate .6s var(--ease),filter .6s}
.prod-pic.phones img{left:var(--px);width:31%}
.prod-pic.phones img:nth-child(2){left:calc(var(--px) + 36%);top:12%;translate:calc(var(--mx,0) * -18px) calc(var(--my,0) * -14px)}
.prod-pic.wide img{left:var(--px);width:calc(100% - var(--px));border-radius:clamp(6px,.9cqw,10px) 0 0 0}
.prod:not(.on) .prod-pic img{filter:brightness(.55) saturate(.5)}

/* —— 竖：案例。左边一条是图，右边白底是对应的文字，整行是一个链接 —— */
.cases{--c1:19cqw;--f:clamp(10px,2.4cqw,28px);display:grid;grid-template-columns:var(--c1) minmax(0,1fr);color:var(--ink)}
.shu-bg{grid-column:1;grid-row:1/span var(--n);position:relative;background:var(--night);border-radius:0 0 var(--R) var(--r)}
.shu-bg::before{content:"";position:absolute;right:100%;top:0;width:var(--f);height:var(--f);background:radial-gradient(circle at 0 100%,transparent calc(var(--f) - .6px),var(--night) var(--f))}
.note-bg{grid-column:2;grid-row:1/span var(--n);background:var(--white)}
.cs-h{grid-column:1;grid-row:1;position:relative;background:var(--night);padding:clamp(22px,3.6cqw,44px) clamp(12px,1.8cqw,22px) clamp(12px,1.8cqw,20px);color:#fff;overflow-wrap:anywhere}
.cs-intro{grid-column:2;grid-row:1;position:relative;align-self:end;padding:clamp(22px,3.6cqw,44px) var(--px) clamp(12px,1.8cqw,20px);font-size:var(--body);color:var(--ink-2)}
.cs{grid-column:1/-1;position:relative;display:grid;grid-template-columns:var(--c1) minmax(0,1fr);min-height:clamp(118px,14.5cqw,172px)}
.cs-pic{position:relative;margin:clamp(4px,.6cqw,7px) clamp(8px,1.1cqw,13px);border-radius:var(--r);overflow:hidden;background:var(--night-2)}
.cs-pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:scale .9s var(--ease),filter .5s}
.cs-note{position:relative;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:clamp(10px,1.4cqw,16px) var(--px);transition:translate .5s var(--ease)}
.cs-note::before{content:"";position:absolute;left:0;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;background:var(--accent);rotate:45deg;scale:0;transition:scale .4s var(--ease)}
.cs-cat{margin-top:2px;font-size:14px;color:var(--ink-3)}
.cs h3{font-size:clamp(18px,1.9cqw,23px);transition:color .3s}
.cs-note p{font-size:var(--body);line-height:1.65;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cs:hover h3,.cs:focus-visible h3{color:var(--accent)}
.cs:hover .cs-pic img{scale:1.07}
.cs:hover .cs-note{translate:8px 0}
.cs:hover .cs-note::before{scale:1}
.cs:focus-visible{outline-offset:-3px}
.cases:has(.cs:hover) .cs:not(:hover) .cs-pic img{filter:grayscale(1) brightness(.5)}
.cs-all{grid-column:1;position:relative;background:var(--night);border-radius:0 0 var(--R) var(--r);display:flex;align-items:center;gap:6px;min-height:clamp(84px,12.5cqw,150px);padding:0 clamp(12px,1.8cqw,22px) clamp(8px,1.5cqw,18px);font-size:var(--body);font-weight:600;color:#fff}
.cs-all:hover .arr{transform:translate(3px,-3px)}

/* —— 竖钩：预约。墨线跟着滚动往下走，钩在最底下往左挑 —— */
.gou{--f:clamp(10px,2.2cqw,26px);display:flex;flex-direction:column;gap:clamp(12px,1.6cqw,18px);padding:clamp(22px,3.6cqw,44px) var(--px) var(--px);background:var(--accent);border-radius:0 0 var(--R) 0}
.gou::before,.gou::after{content:"";position:absolute;top:0;width:var(--f);height:var(--f)}
.gou::before{right:100%;background:radial-gradient(circle at 0 100%,transparent calc(var(--f) - .6px),var(--accent) var(--f))}
.gou::after{left:100%;background:radial-gradient(circle at 100% 100%,transparent calc(var(--f) - .6px),var(--accent) var(--f))}
.gou>p{font-size:var(--body);line-height:1.7;color:rgba(255,255,255,.95);text-wrap:pretty}
.gou-steps{flex:1;position:relative;list-style:none;margin:clamp(10px,1.6cqw,20px) 0;padding:clamp(6px,1cqw,14px) 0;display:flex;flex-direction:column;justify-content:space-around;gap:22px;counter-reset:st}
.gou-steps::before,.gou-steps::after{content:"";position:absolute;left:14px;top:0;bottom:0;width:4px;border-radius:2px;background:rgba(255,255,255,.3)}
.gou-steps::after{background:#fff;transform-origin:top;transform:scaleY(var(--p,0))}
.gou-steps li{counter-increment:st;position:relative;z-index:1;display:grid;grid-template-columns:32px minmax(0,1fr);gap:clamp(8px,1.1cqw,14px);align-items:center;font-size:var(--body);line-height:1.6}
.gou-steps li::before{content:counter(st);width:32px;height:32px;border-radius:50%;background:var(--accent-2);color:#fff;display:grid;place-items:center;font:900 16px/1 var(--disp);transition:background-color .4s,color .4s,scale .5s var(--ease)}
.gou-steps li.on::before{background:#fff;color:var(--accent);scale:1.1}
.gou .btn{align-self:stretch;height:50px;padding:0 10px}
.gou-hook{position:absolute;right:calc(100% - 1px);bottom:0;width:13cqw;height:clamp(60px,10cqw,120px);background:var(--accent);clip-path:polygon(0 0,100% 36%,100% 100%,24% 100%)}

/* —— 右下角的小「行」字：写到哪一笔就亮到哪一笔，点笔画跳到对应内容 —— */
.bihua{position:fixed;z-index:40;right:max(14px,calc((100vw - 1296px) / 2 - 96px));bottom:18px;width:66px;padding:10px 9px 7px;border-radius:14px;background:#fff;box-shadow:0 12px 30px -12px rgba(16,27,54,.5);display:none;flex-direction:column;align-items:center;gap:5px;opacity:0;transform:translateY(14px);pointer-events:none;transition:opacity .4s,transform .5s var(--ease)}
.js .bihua{display:flex}
.bihua.show{opacity:1;transform:none;pointer-events:auto}
.bihua svg{width:100%;height:auto;overflow:visible}
.bihua a{outline:0}
.bs{fill:#D3D9E4;stroke:transparent;stroke-width:3;stroke-linejoin:round;transition:fill .5s,stroke .2s}
.bs.done{fill:var(--ink)}
.bihua a.cur .bs.done,.bihua a:hover .bs{fill:var(--accent)}
.bihua a:focus-visible .bs{stroke:var(--accent)}
.bihua-t{font-size:13px;line-height:1.3;color:var(--ink-2);white-space:nowrap}

@container (max-width:860px){
  .xr{--sk:10deg;--tk:.1763}
  .prod-t ul{display:none}
}
/* 手机：六笔依次往下排 */
@container (max-width:600px){
  .xr,.xr-1,.xr-2,.xr-3{display:flex;flex-direction:column;margin-top:0}
  .xr{--h2:26px;--body:16px;--px:20px;--R:34px;--sk:6deg;--tk:.1051}
  .xr-2{margin-top:14px}
  .pie{min-height:0;gap:22px;margin-right:6cqw;padding:22px 20px}
  .pie p{max-width:80%}
  .xr .heng{margin-top:10px}
  .svc{min-height:330px}
  .prods{flex-direction:column;--open:100cqw;min-height:0}
  .prod,.prod.on{flex:none}
  .prod:nth-child(odd){background:var(--night-2)}
  .prod:nth-child(even){background:var(--night)}
  .prod-t p,.prod-t .go{opacity:1;transform:none}
  .prod-pic{flex:0 0 190px}
  .prod .prod-pic img{filter:none}
  .cases{--c1:33cqw}
  .cs-h{font-size:21px}
  .shu-bg::before,.gou::before,.gou::after,.gou-hook{display:none}
  .cs{min-height:128px}
  .cs-all{min-height:76px}
  .gou{margin-top:12px;border-radius:var(--R) var(--r);padding:26px 20px 22px}
  .gou-steps{gap:16px}
}
@media (max-width:700px){.bihua{right:10px;bottom:12px;width:54px;padding:8px 7px 6px}.bihua-t{font-size:12px}}

/* ============ 9. 底部号召 ============ */
.cta{background:var(--accent);color:var(--accent-ink)}
.cta .wrap{display:grid;grid-template-columns:1fr;gap:28px;align-items:center;padding-block:clamp(56px,7vw,100px)}
.cta .wrap.has-steps{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(28px,5vw,80px)}
.cta h2{font-size:clamp(27px,3.2vw,44px)}
.cta-main{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.cta-main p{max-width:30em;font-size:17px;line-height:1.75;opacity:.93}
.cta-main .btn{margin-top:12px;height:52px;padding:0 30px;font-size:16px}
.cta-steps{list-style:none;margin:0;padding:0;counter-reset:st}
.cta-steps li{counter-increment:st;display:flex;align-items:center;gap:18px;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.3);font-size:17px}
.cta-steps li:first-child{border-top:1px solid rgba(255,255,255,.3)}
.cta-steps li::before{content:counter(st);flex-shrink:0;width:36px;height:36px;border-radius:50%;background:#fff;color:var(--accent);display:grid;place-items:center;font:900 17px/1 var(--disp)}
@media (max-width:700px){.cta .wrap.has-steps{grid-template-columns:1fr}}

/* ============ 10. 页脚 ============ */
.foot{background:var(--night);color:var(--on-night-2);padding:clamp(48px,6vw,84px) 0 28px;font-size:15px;border-top:1px solid var(--night-line)}
.foot .cols{display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr;gap:32px}
.foot .logo{color:#fff;margin-bottom:18px}
.foot-line{font:900 clamp(17px,1.5vw,20px)/1.5 var(--disp);letter-spacing:.02em;color:var(--on-night);margin-bottom:6px}
.foot h4{font:600 14px/1.4 var(--sans);letter-spacing:.08em;color:var(--on-night);margin-bottom:14px}
.foot ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.foot a{transition:color .2s}
.foot a:hover{color:#fff}
.foot .qr{margin-top:14px;border-radius:8px;background:#fff}
.foot .legal{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:clamp(36px,5vw,64px);padding-top:20px;border-top:1px solid var(--night-line);font-size:13px;color:color-mix(in srgb,var(--on-night-2) 80%,var(--night))}
@media (max-width:700px){.foot .cols{grid-template-columns:1fr 1fr}.foot .cols>div:first-child{grid-column:1/-1}}

/* ============ 11. 内页页首 ============ */
.crumb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;color:var(--ink-3)}
.crumb i{font-style:normal;opacity:.5}
.crumb a{transition:color .2s}
.crumb a:hover{color:var(--accent)}
.phead{padding:clamp(24px,3.4vw,44px) 0 clamp(32px,4.5vw,60px)}
.phead .crumb{margin-bottom:clamp(22px,3.4vw,48px)}
.phead-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px clamp(24px,5vw,80px);align-items:end}
.phead-grid .lead{max-width:32em}
@media (max-width:700px){.phead-grid{grid-template-columns:1fr}}
.nf{min-height:52vh;padding-top:clamp(56px,8vw,110px)}
.nf .lead{margin-top:14px}
.nf .acts{display:flex;gap:12px;margin-top:28px}

/* 产品页页首（左文右图） */
.phero{padding:clamp(24px,3.4vw,44px) 0 clamp(48px,6vw,84px)}
.phero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,72px);align-items:center}
.phero .crumb{margin-bottom:clamp(18px,2.6vw,32px)}
.phero h1 .sub{display:inline-block;margin-top:8px;font-size:.56em;font-weight:900;color:var(--ink-2)}
.phero .lead{margin-top:18px;max-width:30em}
.phero .acts{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.phero .pic{position:relative;height:clamp(320px,36vw,480px);border-radius:22px;overflow:hidden;isolation:isolate;display:flex;justify-content:center;align-items:flex-start;gap:18px;padding-top:36px;background:radial-gradient(110% 90% at 78% 0%,color-mix(in srgb,var(--accent) 26%,var(--night-2)),var(--night) 62%)}
.phero .pic>img:not(.bg){position:relative;z-index:2;box-shadow:0 24px 50px -12px rgba(0,0,0,.6)}
.phero .pic .bg{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;filter:grayscale(1) contrast(1.1);opacity:.3}
.phero .pic.phones img:not(.bg){width:36%;max-width:230px;border-radius:20px}
.phero .pic.phones img:not(.bg):nth-of-type(n+3){margin-top:44px}
.phero .pic.phones:not(.photo) img:nth-child(2){margin-top:44px}
.phero .pic.phones .bg+img:last-child{width:auto;height:118%;max-width:none}
.phero .pic.wide{align-items:center;padding:28px}
.phero .pic.wide img:not(.bg){border-radius:8px}
@media (max-width:700px){.phero .wrap{grid-template-columns:1fr}}

/* ============ 12. 案例 ============ */
.cases-sec{padding-bottom:clamp(64px,8vw,112px)}
.tabs{display:flex;flex-wrap:wrap;gap:8px}
.tabs a{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 18px;border-radius:999px;background:var(--white);box-shadow:inset 0 0 0 1px var(--line);font-size:15px;color:var(--ink-2);transition:box-shadow .2s,color .2s,background-color .2s}
.tabs a span{font-size:12.5px;font-variant-numeric:tabular-nums;color:var(--ink-3)}
.tabs a:hover{box-shadow:inset 0 0 0 1px var(--ink);color:var(--ink)}
.tabs a[aria-current="page"]{background:var(--ink);box-shadow:none;color:#fff}
.tabs a[aria-current="page"] span{color:rgba(255,255,255,.62)}
.cgroup{margin-top:clamp(36px,5vw,64px)}
.cgroup-h{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-bottom:14px;margin-bottom:clamp(20px,2.6vw,32px);border-bottom:1px solid var(--ink)}
.cgroup-h h2{font-size:clamp(22px,2.3vw,30px)}
.cgroup-h span{font-size:14px;color:var(--ink-3);white-space:nowrap}
.cgrid{display:grid;gap:clamp(24px,3vw,40px) clamp(14px,2vw,28px)}
.cgrid.wide{grid-template-columns:repeat(2,minmax(0,1fr))}
.cgrid.poster,.cgrid.film{grid-template-columns:repeat(3,minmax(0,1fr))}
.ccard{display:flex;flex-direction:column;gap:14px}
.ccard .pic{position:relative;display:block;border-radius:14px;overflow:hidden;background:var(--night);transition:translate .6s var(--ease),box-shadow .6s var(--ease)}
.ccard.wide .pic{aspect-ratio:16/10}
.ccard.poster .pic{aspect-ratio:2/3}
.ccard.film .pic{aspect-ratio:16/9}
.ccard .pic img,.ccard .pic video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ccard .pic img{transition:scale 1s var(--ease)}
.ccard.poster .pic img{object-position:top}
.ccard .pic video{opacity:0;transition:opacity .4s}
.ccard.playing .pic video{opacity:1}
.ccard:hover .pic{translate:0 -6px;box-shadow:0 24px 40px -24px color-mix(in srgb,var(--night) 70%,transparent)}
.ccard:hover .pic img{scale:1.04}
.ccard .body{display:flex;flex-direction:column;gap:6px}
.ccard h3{font-size:clamp(18px,1.6vw,21px);transition:color .3s}
.ccard:hover h3{color:var(--accent)}
.ccard p{font-size:14.5px;line-height:1.65;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.play{position:absolute;left:12px;bottom:12px;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.94);display:grid;place-items:center;transition:opacity .3s,scale .3s}
.play::before{content:"";margin-left:3px;border-left:11px solid var(--ink);border-block:7px solid transparent}
.ccard.playing .play{opacity:0;scale:.7}
@media (max-width:560px){
  .cgrid.wide,.cgrid.film{grid-template-columns:1fr}
  .cgrid.poster{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* 案例详情 */
.case-media-sec{padding-bottom:clamp(48px,6vw,84px)}
.case-main{width:100%;border-radius:18px;background:var(--night);box-shadow:0 30px 60px -36px color-mix(in srgb,var(--night) 70%,transparent)}
.case-media-sec:not(.tall) .case-main{max-height:600px;object-fit:cover}
.case-media-sec.tall .wrap{display:flex;justify-content:center}
.case-media-sec.tall .case-main{width:auto;max-width:min(100%,820px)}
.case-body{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,5vw,80px);align-items:start}
.case-body h2{font-size:clamp(23px,2.3vw,31px);margin-bottom:18px}
.prose{display:flex;flex-direction:column;gap:14px;font-size:16.5px;line-height:1.9;color:var(--ink-2)}
.ba{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.ba li{display:grid;gap:10px;padding:18px 0;border-bottom:1px solid var(--line);font-size:15.5px;line-height:1.75}
.ba li>div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:baseline}
.ba b{font-size:12.5px;font-weight:600;line-height:1;padding:5px 9px;border-radius:999px;white-space:nowrap}
.ba .was{color:var(--ink-3)}
.ba .was b{background:var(--paper);color:var(--ink-3)}
.ba .now2 b{background:var(--accent);color:var(--accent-ink)}
@media (max-width:700px){.case-body{grid-template-columns:1fr}}
.gallery{columns:3 280px;column-gap:clamp(16px,2vw,24px)}
.gallery figure{break-inside:avoid;margin:0 0 clamp(16px,2vw,24px);border-radius:14px;overflow:hidden;background:var(--white);box-shadow:inset 0 0 0 1px var(--line)}
.gallery figure img{width:100%}
.gallery figure.tallshot{background:var(--night);padding:18px 18px 0}
.gallery figure.tallshot img{max-width:260px;margin:0 auto;border-radius:14px 14px 0 0}
.gallery figcaption{padding:12px 16px;font-size:14px;color:var(--ink-2);background:var(--white);border-top:1px solid var(--line)}
.gallery figure.tallshot figcaption{margin:0 -18px}
.case-pager{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding-block:clamp(36px,5vw,60px)}
.case-pager a{display:flex;flex-direction:column;gap:6px;padding:20px 22px;border-radius:14px;background:var(--white);box-shadow:inset 0 0 0 1px var(--line);font:900 clamp(17px,1.7vw,21px)/1.35 var(--disp);transition:box-shadow .25s,color .25s,translate .5s var(--ease)}
.case-pager a span{font:400 13px/1.4 var(--sans);color:var(--ink-3)}
.case-pager a:last-child{text-align:right}
.case-pager a:hover{box-shadow:inset 0 0 0 1.5px var(--accent);color:var(--accent);translate:0 -3px}

/* ============ 13. 关于我们 ============ */
.about2{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(28px,5vw,80px);align-items:start}
.about-l{display:flex;flex-direction:column;align-items:flex-start;gap:clamp(22px,3vw,40px)}
.about-l h1{font-size:clamp(26px,3.1vw,40px);line-height:1.35}
/* 印章：两行「知行 / 合一」 */
.stamp{width:clamp(86px,9vw,112px);aspect-ratio:1;display:grid;place-items:center;border-radius:9px;background:var(--accent);color:#fff;box-shadow:inset 0 0 0 4px var(--accent),inset 0 0 0 5.5px rgba(255,255,255,.8);transform:rotate(-5deg)}
.stamp span{width:2.2em;font:900 clamp(30px,3.2vw,40px)/1.12 var(--disp);letter-spacing:.06em;text-indent:.06em;text-align:center;word-break:break-all}
.js .stamp{opacity:0;transform:rotate(-16deg) scale(1.6)}
.loaded .stamp{opacity:1;transform:rotate(-5deg);transition:transform .5s cubic-bezier(.3,1.5,.5,1) .75s,opacity .2s .75s}
.about2 .txt{display:flex;flex-direction:column;gap:18px;font-size:16.5px;line-height:1.9;color:var(--ink-2);padding-top:clamp(0px,1vw,14px)}
.about2 .txt p:first-child{font-size:clamp(18px,1.6vw,22px);line-height:1.8;color:var(--ink)}
.about2 .txt b{color:var(--ink);font-weight:600}
@media (max-width:700px){.about2{grid-template-columns:1fr}}
.banner{margin-block:0 clamp(60px,8vw,112px)}
.banner-pic{border-radius:18px;overflow:hidden;background:var(--night)}
.banner-pic img{width:100%;aspect-ratio:1920/470;min-height:200px;object-fit:cover}
.banner figcaption{margin-top:10px;font-size:13px;color:var(--ink-3)}
.js .banner[data-r]{opacity:1;transform:none}
.js .banner[data-r] .banner-pic{clip-path:inset(0 100% 0 0 round 18px);transition:clip-path 1.4s var(--ease-io)}
.js .banner[data-r].in .banner-pic{clip-path:inset(0 0 0 0 round 18px)}
.vsec{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,5vw,80px);align-items:start}
.vsec>h2{position:sticky;top:calc(var(--nav) + 28px)}
.vlist{border-top:1px solid var(--ink)}
.vlist article{display:flex;flex-direction:column;gap:8px;padding:clamp(20px,2.6vw,30px) 0;border-bottom:1px solid var(--line)}
.vlist h3{font-size:clamp(20px,1.9vw,25px);font-weight:900}
.vlist p{color:var(--ink-2)}
@media (max-width:700px){.vsec{grid-template-columns:1fr}.vsec>h2{position:static}}

/* 联系（深色） */
.contact{display:grid;grid-template-columns:1fr;max-width:720px;gap:clamp(16px,2.4vw,28px)}
.contact.two{max-width:none;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:stretch}
.way{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:clamp(22px,3vw,40px);border-radius:22px;background:var(--night-2);box-shadow:inset 0 0 0 1px var(--night-line)}
.way h3{font-size:clamp(21px,2vw,25px);font-weight:900;color:#fff}
.way>p{color:var(--on-night-2)}
.way-k{margin-bottom:-6px;font-size:13px;letter-spacing:.12em;color:var(--accent-soft)}
.wx{flex:1;align-self:stretch;margin:8px 0 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;border-radius:14px;background:#fff;font-size:14px;color:#5D677E;text-align:center}
.wx img{width:min(220px,60vw);height:auto;aspect-ratio:1;object-fit:contain}
.lead-form{color-scheme:dark}
.lead-form label{display:flex;flex-direction:column;gap:7px;width:100%;font-size:14px;color:var(--on-night-2)}
.lead-form .req{margin-left:2px;color:var(--accent-soft)}
.lead-form input,.lead-form select,.lead-form textarea{width:100%;min-height:46px;padding:11px 14px;border:1px solid var(--night-line);border-radius:10px;background:rgba(255,255,255,.06);color:#fff;font:16px/1.5 var(--sans);transition:border-color .2s,background-color .2s}
.lead-form textarea{resize:vertical}
.lead-form ::placeholder{color:rgba(234,238,247,.42)}
.lead-form input:focus,.lead-form select:focus,.lead-form textarea:focus{outline:0;border-color:var(--accent-soft);background:rgba(255,255,255,.1)}
.lead-form .row2{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%}
.lead-form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.lead-form button{margin-top:6px}
.lead-form button[disabled]{opacity:.6;cursor:progress}
.form-msg{min-height:1.5em;font-size:15px;color:var(--on-night)}
.form-msg.err{color:#FFC27A}
#contact .info{display:flex;flex-wrap:wrap;gap:20px clamp(32px,5vw,72px);margin:clamp(28px,4vw,48px) 0 0;padding-top:clamp(20px,2.5vw,28px);border-top:1px solid var(--night-line)}
#contact .info div{display:flex;flex-direction:column;gap:2px}
#contact .info dt{font-size:13px;letter-spacing:.06em;color:var(--on-night-2)}
#contact .info dd{margin:0;font-size:17px}
#contact .info a:hover{color:var(--accent-soft)}
@media (max-width:900px){.lead-form .row2{grid-template-columns:1fr}}
@media (max-width:700px){.contact.two{grid-template-columns:1fr}.lead-form .row2{grid-template-columns:1fr 1fr}}
@media (max-width:440px){.lead-form .row2{grid-template-columns:1fr}}

/* ============ 14. 产品页通用 ============ */
.cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,40px)}
.cols3 article{display:flex;flex-direction:column;gap:10px;padding-top:20px;border-top:1px solid var(--ink)}
.cols3 h3{font-weight:900}
.cols3 p{color:var(--ink-2)}
.sec.dark .cols3 article{border-color:var(--night-line)}
.sec.dark .cols3 p{color:var(--on-night-2)}
.cols3 .dot{width:12px;height:12px;border-radius:3px}
@media (max-width:700px){.cols3{grid-template-columns:1fr}}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;border-radius:var(--r);overflow:hidden;background:var(--line);box-shadow:0 0 0 1px var(--line)}
.grid4 article{display:flex;flex-direction:column;gap:8px;padding:24px;background:var(--white);transition:background-color .3s}
.grid4 article:hover{background:var(--tint)}
.grid4 h3{font-size:19px}
.grid4 p{font-size:15px;line-height:1.65;color:var(--ink-2)}
@media (max-width:980px){.grid4{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.grid4{grid-template-columns:1fr}}

/* 知行元力：功能开关 */
.feat{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(24px,4vw,64px);align-items:start}
.bands{display:flex;flex-direction:column;gap:10px}
.band{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:1fr auto;align-items:center;gap:20px;padding:20px 24px;border-radius:var(--r);background:var(--white);box-shadow:inset 0 0 0 1px var(--line);transition:background-color .4s var(--ease),box-shadow .3s}
.band:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.band:hover{box-shadow:inset 0 0 0 1px var(--ink-3)}
.band .s{display:block;font:900 clamp(18px,1.6vw,21px)/1.4 var(--disp)}
.band .c{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--ease)}
.band .c>span{overflow:hidden;font-size:16px;line-height:1.75;color:var(--ink-2);transition:padding .5s var(--ease)}
.band[aria-checked="true"]{background:var(--tint);box-shadow:inset 0 0 0 1.5px var(--accent)}
.band[aria-checked="true"] .c{grid-template-rows:1fr}
.band[aria-checked="true"] .c>span{padding-top:8px}
.sw{position:relative;flex-shrink:0;width:48px;height:28px;border-radius:14px;background:#C5CCD8;transition:background-color .3s}
.sw::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform .45s var(--ease)}
.band[aria-checked="true"] .sw{background:var(--accent)}
.band[aria-checked="true"] .sw::after{transform:translateX(20px)}
.phone{margin:0;position:sticky;top:calc(var(--nav) + 24px)}
.phone .scr{position:relative;aspect-ratio:880/1904;max-height:min(70vh,620px);margin-inline:auto;border-radius:28px;overflow:hidden;background:var(--night);box-shadow:0 30px 60px -30px color-mix(in srgb,var(--night) 80%,transparent)}
.phone img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top;opacity:0;transition:opacity .6s var(--ease)}
.phone img.on{opacity:1}
.phone figcaption{margin-top:14px;font-size:14px;color:var(--ink-3);text-align:center}
@media (max-width:700px){.feat{grid-template-columns:1fr}.phone{position:relative;top:0}.phone .scr{width:min(70vw,300px)}}

/* 知行Live：直播台（产品界面，保留它自己的硬件风格） */
.live-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(24px,4vw,64px);align-items:center}
.live-grid .how{display:flex;flex-direction:column;gap:14px}
.live-grid .how ol{margin:8px 0 0;padding-left:1.3em;display:flex;flex-direction:column;gap:8px;color:var(--on-night-2)}
.console{background:#1E2226;border:1px solid #3A4148;border-radius:14px;padding:clamp(14px,1.6vw,22px);display:flex;flex-direction:column;gap:14px;color:#E8EAEC;min-width:0;box-shadow:0 40px 80px -40px rgba(0,0,0,.7)}
.c-top{display:flex;align-items:center;gap:14px}
.onair{font:700 14px/1 var(--sans);letter-spacing:.12em;padding:9px 11px;border-radius:3px;background:#D7322A;color:#fff;box-shadow:0 0 16px rgba(255,69,58,.5)}
.c-store{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.c-store b{font-size:15.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.c-store span{font-size:13px;color:#9AA3AB}
.c-tc{text-align:right;font-variant-numeric:tabular-nums}
.c-tc b{display:block;font:600 24px/1 var(--sans)}
.c-tc span{font-size:13px;color:#9AA3AB}
.meters{display:grid;gap:8px;padding:12px 14px;background:#262B30;border-radius:8px}
.meter{display:grid;grid-template-columns:3em 1fr;align-items:center;gap:12px;font-size:13px;color:#9AA3AB}
.meter .segs{display:grid;grid-template-columns:repeat(24,1fr);gap:3px}
.meter .segs i{height:9px;border-radius:2px;background:#3A4148}
.meter.amber .segs i.lit{background:#FFB340}
.meter.cyan .segs i.lit{background:#64D2FF}
.meter.green .segs i.lit{background:#30D158}
.now{min-height:5em;padding:12px 14px;border-radius:8px;background:#262B30}
.now .k{font-size:13px;display:flex;align-items:center;gap:8px;color:#9AA3AB;margin-bottom:4px}
.now .k i{width:8px;height:8px;border-radius:2px;background:#FFB340}
.now p{font:600 17px/1.55 var(--sans);color:#fff}
.now p::after{content:"";display:inline-block;width:2px;height:1em;background:currentColor;margin-left:3px;vertical-align:-.15em;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;height:250px;overflow:hidden;justify-content:flex-end}
.feed li{display:grid;grid-template-columns:8px 1fr auto;gap:10px;align-items:baseline;font-size:14px;line-height:1.5;padding:5px 2px;animation:feedin .45s var(--ease)}
.feed li i{width:8px;height:8px;border-radius:2px;background:#4A525A}
.feed li .m{font-size:12.5px;color:#8A939B;white-space:nowrap}
.feed li.chat{color:#B9C0C6}
.feed li.chat b{color:#E8EAEC;font-weight:600}
.feed li.k-narr i{background:#FFB340}.feed li.k-reply i{background:#64D2FF}.feed li.k-welcome i,.feed li.k-thanks i{background:#30D158}
.feed li.skip{color:#8A939B}
.feed li.mine{color:#fff}.feed li.mine b{color:#64D2FF}
@keyframes feedin{from{opacity:0;transform:translateY(8px)}}
.c-in{display:flex;gap:8px}
.c-in input{flex:1;min-width:0;height:44px;padding:0 14px;border-radius:8px;border:1px solid #3A4148;background:#30363C;color:#fff;font:16px var(--sans)}
.c-in input::placeholder{color:#8A939B}
.c-in input:focus{outline:2px solid #64D2FF;border-color:transparent}
.c-in button{height:44px;padding:0 18px;border:0;border-radius:8px;background:#FFB340;color:#1E2226;font-weight:900;cursor:pointer}
.c-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chips button,.voice{border:1px solid #3A4148;background:transparent;border-radius:8px;padding:6px 11px;font-size:13.5px;color:#C8CED3;cursor:pointer}
.chips button:hover{background:#30363C;color:#fff}
.voice[aria-pressed="true"]{background:#30D158;color:#10230F;border-color:#30D158}
@media (max-width:980px){.live-grid{grid-template-columns:1fr}}
@media (max-width:520px){.meter .segs{grid-template-columns:repeat(16,1fr)}.meter .segs i:nth-child(n+17){display:none}}

/* 短视频步骤（是真的先后顺序，所以编号） */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,28px);counter-reset:s;list-style:none;margin:0;padding:0}
.steps li{counter-increment:s;display:flex;flex-direction:column;gap:8px;padding-top:18px;border-top:1px solid var(--ink)}
.steps li::before{content:counter(s);font:900 30px/1 var(--disp);color:var(--accent)}
.steps h3{font-weight:900}
.steps p{font-size:15.5px;color:var(--ink-2)}
.shot{margin:clamp(28px,4vw,48px) 0 0;border-radius:var(--r);overflow:hidden;box-shadow:0 0 0 1px var(--line),0 40px 70px -50px color-mix(in srgb,var(--night) 70%,transparent)}
.shot img{width:100%}
@media (max-width:700px){.steps{grid-template-columns:1fr 1fr}}

/* ============ 15. 滚动联动与转场 ============ */
@keyframes drift{from{translate:0 var(--y0,20px)}to{translate:0 var(--y1,-20px)}}
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .banner-pic img{animation:drift linear both;animation-timeline:view();animation-range:entry 0% exit 100%}
    .banner-pic img{--y0:-5%;--y1:5%;scale:1.12}
  }
}
@view-transition{navigation:auto}
::view-transition-old(root){animation:.2s ease both vt-out}
::view-transition-new(root){animation:.5s cubic-bezier(.2,.8,.2,1) both vt-in}
@keyframes vt-out{to{opacity:0}}
@keyframes vt-in{from{opacity:0;transform:translateY(10px)}}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js [data-r]{transform:none;transition:opacity .3s}
  .js [data-w]{clip-path:none;transition:none}
  .svc-pics>.on{transition:none}
  .hero{height:auto}.stage{position:relative}
  .ticker-in{animation:none}
  .scenes img{transition:none;transform:none}
  .js .banner[data-r] .banner-pic{clip-path:none}
  ::view-transition-old(root),::view-transition-new(root){animation:none}
  *{animation-duration:.01ms!important}
}
