/* ==========================================================================
   盛廷科技法律服务 · AI与数字经济事业部
   全站共用样式表 site.css
   ========================================================================== */

/* ============ 基础 ============ */
*{margin:0;padding:0;box-sizing:border-box}
:root{
  /* 底色统一为中性冷白：原先的米黄（#F6F5F2 / #EFEDE8）是「发黄、不干净」的来源 */
  --bg:#ffffff;
  --bg-soft:#F3F5F7;
  --bg-cool:#F1F4F7;
  --bg-soft-cool:#E8EDF2;
  --bg-warm:#F2F4F6;
  /* 墨色带一点冷调，与赭石 accent 的对比更沉稳 */
  --ink:#171A1D;
  --ink-2:#52585E;
  --ink-3:#8A9096;
  --line:#E4E7EA;
  --line-dark:#2A2E31;
  --dark:#0D0F11;
  --dark-2:#15181B;
  --accent:#A8452A;
  --accent-2:#C0674A;
  /* 图片统一处理参数：轻微去饱和 + 中性冷调压一层，
     让手稿/器物/科技/风景等不同家族的照片读成同一套系统 */
  --img-filter:saturate(.86) contrast(1.04) brightness(1.01);
  --img-veil:rgba(20,26,33,.07);
  --sans:"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei","Hiragino Sans GB","Noto Sans SC","Source Han Sans SC",-apple-system,"Segoe UI",sans-serif;
  --serif:Georgia,"Times New Roman","Songti SC","Source Han Serif SC","Noto Serif SC",serif;
  --ease:cubic-bezier(.22,.61,.36,1);
}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--sans);
  color:var(--ink);
  background:var(--bg);
  line-height:1.75;
  letter-spacing:.02em;
  font-size:15px;
  overflow-x:hidden;
}
/* 中文排版：标题均衡换行、正文避免末行孤字 */
h1,h2,h3,h4,h5{text-wrap:balance}
p,li{text-wrap:pretty}
img{display:block;max-width:100%;background:var(--bg-soft)}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
::selection{background:#141414;color:#fff}

.wrap{max-width:1340px;margin:0 auto;padding:0 48px}
.wrap-n{max-width:1020px;margin:0 auto;padding:0 48px}
.en{font-family:var(--serif);letter-spacing:.2em;text-transform:uppercase}
.sec{padding:118px 0}
.sec-sm{padding:84px 0}

/* 眉标 */
.eyebrow{
  display:flex;align-items:center;gap:14px;
  font-size:11px;letter-spacing:.28em;color:var(--ink-3);
  font-family:var(--serif);text-transform:uppercase;margin-bottom:26px;
}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--accent)}
.eyebrow.light{color:rgba(255,255,255,.62)}
.eyebrow.light::before{background:rgba(255,255,255,.5)}

/* 区块标题 */
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:64px}
.sec-title{font-size:34px;font-weight:400;line-height:1.35;letter-spacing:.06em}
.sec-title .sub{display:block;font-size:13px;color:var(--ink-3);letter-spacing:.24em;font-family:var(--serif);margin-top:14px;font-weight:400}
.sec-desc{max-width:440px;color:var(--ink-2);font-size:14px;line-height:1.95}

/* 按钮 */
.btn{
  display:inline-flex;align-items:center;gap:12px;
  padding:14px 30px;font-size:13px;letter-spacing:.16em;
  border:1px solid var(--ink);color:var(--ink);transition:.45s var(--ease);
  position:relative;overflow:hidden;background:transparent;
}
.btn span{position:relative;z-index:2;transition:.35s}
.btn::after{content:"";position:absolute;inset:0;background:var(--ink);transform:translateY(101%);transition:.45s var(--ease);z-index:1}
.btn:hover{color:#fff;border-color:var(--ink)}
.btn:hover::after{transform:translateY(0)}
.btn-fill{background:var(--accent);border-color:var(--accent);color:#fff}
.btn-fill::after{background:#822F1A}
.btn-fill:hover{border-color:#822F1A;color:#fff}
.btn-light{border-color:rgba(255,255,255,.45);color:#fff}
.btn-light::after{background:#fff}
.btn-light:hover{color:var(--ink);border-color:#fff}
.btn i{font-style:normal;position:relative;z-index:2;font-size:15px;transition:transform .45s var(--ease)}
.btn:hover i{transform:translateX(5px)}

/* ============ 顶部工具条 ============ */
.topbar{
  background:var(--dark);color:rgba(255,255,255,.55);
  font-size:11.5px;letter-spacing:.12em;height:38px;
  display:flex;align-items:center;transition:.5s var(--ease);
}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;width:100%}
.topbar-l,.topbar-r{display:flex;align-items:center;gap:26px}
.topbar a{transition:.3s}
.topbar a:hover{color:#fff}
.topbar .dot{width:4px;height:4px;background:var(--accent-2);border-radius:50%;display:inline-block;margin-right:10px;vertical-align:middle}
.topbar .divider{width:1px;height:11px;background:rgba(255,255,255,.22)}
.lang{display:flex;gap:8px;align-items:center}
.lang b{color:#fff;font-weight:400}
.en-soon{color:rgba(255,255,255,.32)}

/* ============ 导航 ============ */
.nav{
  position:sticky;top:0;z-index:900;
  background:rgba(255,255,255,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;transition:.5s var(--ease);
}
html.scrolled .nav{border-bottom-color:var(--line);background:rgba(255,255,255,.95)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:78px;transition:height .35s var(--ease)}
html.scrolled .nav .wrap{height:66px}
.brand{display:flex;align-items:center;gap:14px}
.brand-mark{width:34px;height:34px;flex:0 0 34px}
.brand-txt{line-height:1.2}
.brand-cn{font-size:16.5px;letter-spacing:.14em;font-weight:500}
.brand-en{font-family:var(--serif);font-size:9.5px;letter-spacing:.26em;color:var(--ink-3);text-transform:uppercase;margin-top:3px;white-space:nowrap;display:block}
.menu{display:flex;align-items:center;gap:40px}
.menu a{font-size:14px;letter-spacing:.1em;position:relative;padding:6px 0;color:var(--ink-2);transition:.3s}
.menu a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--ink);transition:.4s var(--ease)}
.menu a:hover{color:var(--ink)}
.menu a:hover::after{width:100%}
.menu a.cur{color:var(--ink)}
.menu a.cur::after{width:100%;background:var(--accent)}
.nav-cta{display:flex;align-items:center;gap:22px}
.icon-btn{width:32px;height:32px;display:grid;place-items:center;color:var(--ink-2);transition:.3s}
.icon-btn:hover{color:var(--ink)}
.nav-btn{padding:11px 24px;font-size:12.5px;letter-spacing:.14em;border:1px solid var(--ink);transition:.4s var(--ease);position:relative;overflow:hidden}
.nav-btn span{position:relative;z-index:2}
.nav-btn::after{content:"";position:absolute;inset:0;background:var(--ink);transform:translateY(101%);transition:.4s var(--ease)}
.nav-btn:hover{color:#fff}
.nav-btn:hover::after{transform:translateY(0)}
.site-settings-nav-phone{font-family:var(--sans);font-size:16px;font-weight:600;letter-spacing:.02em;color:var(--ink-2);white-space:nowrap;transition:color .3s}
.site-settings-nav-phone:hover{color:var(--ink)}
.burger{display:none;width:34px;height:34px;flex-direction:column;justify-content:center;gap:6px;align-items:flex-end}
.burger i{display:block;width:24px;height:1.4px;background:var(--ink);transition:.4s var(--ease)}
.burger i:nth-child(2){width:16px}

/* 移动菜单 */
.mobile{
  position:fixed;inset:0;background:var(--dark);z-index:1200;
  display:flex;flex-direction:column;justify-content:center;padding:0 40px;
  transform:translateY(-100%);transition:.7s var(--ease);visibility:hidden;
}
.mobile.open{transform:translateY(0);visibility:visible}
.mobile a{display:block;color:#fff;font-size:26px;letter-spacing:.12em;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.1)}
.mobile .m-close{position:absolute;top:32px;right:40px;color:#fff;font-size:30px;line-height:1;font-weight:200}
.mobile .m-foot{margin-top:44px;color:rgba(255,255,255,.45);font-size:12px;letter-spacing:.14em}

/* ============ HERO ============ */
.hero{
  position:relative;height:calc(100vh - 116px);min-height:600px;max-height:900px;
  display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--dark);
}
.hero-bg{position:absolute;inset:0;background:var(--dark)}
/* 大图轮播：每张铺满，淡入淡出 + 缓慢推近（Ken Burns） */
.hero-slide{
  position:absolute;inset:0;background-size:cover;background-position:center 45%;
  opacity:0;transform:scale(1.08);
  transition:opacity 1.6s var(--ease);
}
.hero-slide.on{opacity:1;transform:scale(1);transition:opacity 1.6s var(--ease),transform 9s linear}
@keyframes heroZoom{to{transform:scale(1)}}
/* 遮罩：原中部仅 .30，白字压在雪峰/亮天空上会发飘。提到 .38 并收紧径向渐变的透明核 */
.hero-mask{position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(6,10,14,.66) 0%,rgba(6,10,14,.38) 34%,rgba(6,10,14,.50) 68%,rgba(6,10,14,.82) 100%);}
.hero-mask::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 46%,transparent 6%,rgba(6,10,14,.44) 100%)}
.hero-inner{position:relative;z-index:3;text-align:center;color:#fff;padding:0 40px;max-width:1100px}
.hero-eyebrow{
  font-family:var(--serif);font-size:11.5px;letter-spacing:.42em;text-transform:uppercase;
  color:rgba(255,255,255,.7);margin-bottom:34px;
  display:flex;align-items:center;justify-content:center;gap:18px;
}
.hero-eyebrow::before,.hero-eyebrow::after{content:"";width:44px;height:1px;background:rgba(255,255,255,.35)}
.hero-en{
  font-family:var(--serif);font-size:clamp(26px,4vw,52px);letter-spacing:.14em;
  text-transform:uppercase;font-weight:400;line-height:1.28;
}
.hero-cn{
  font-size:clamp(17px,1.9vw,25px);font-weight:400;letter-spacing:.28em;
  margin-top:28px;color:rgba(255,255,255,.94);text-indent:.28em;
}
.hero-line{width:1px;height:56px;background:linear-gradient(180deg,transparent,rgba(255,255,255,.55),transparent);margin:44px auto 0}
@keyframes up{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.hero-foot{
  position:absolute;left:0;right:0;bottom:0;z-index:4;border-top:1px solid rgba(255,255,255,.16);
  color:rgba(255,255,255,.6);font-size:11.5px;letter-spacing:.16em;
}
.hero-foot .wrap{display:flex;justify-content:space-between;align-items:center;height:56px}
.hero-foot .scroll{display:flex;align-items:center;gap:10px}
.hero-foot .scroll em{font-style:normal;display:block;width:26px;height:1px;background:rgba(255,255,255,.5);animation:pulse 2.4s infinite}
@keyframes pulse{0%,100%{opacity:.3}50%{opacity:1}}

/* ---- HERO 多屏轮播：一屏一个主题，背景 / 内容 / 指示器同步 ----
   内容屏用 visibility 而非仅 opacity：否则不可见的那一屏虽透明，按钮仍在
   原位可点、可获焦，用户会点到看不见的链接。隐藏时延后 .9s 再生效，
   让淡出动画完整播完。 */
.hero-stage{position:absolute;inset:0;z-index:3}
.hero-panel{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;transform:translateY(16px);
  transition:opacity .9s var(--ease),transform .9s var(--ease),visibility 0s linear .9s;
}
.hero-panel.on{
  opacity:1;visibility:visible;transform:none;
  transition:opacity .9s var(--ease),transform .9s var(--ease),visibility 0s;
}
/* 屏 2 起：主题屏（案例地图等），文案比口号屏密，字号与间距单独收敛 */
.hp-kicker{
  font-family:var(--serif);font-size:11.5px;letter-spacing:.42em;text-transform:uppercase;
  color:rgba(255,255,255,.66);margin-bottom:26px;
}
.hp-title{
  color:#fff;font-size:clamp(24px,3.4vw,42px);font-weight:400;
  letter-spacing:.1em;line-height:1.4;
}
.hp-desc{
  color:rgba(255,255,255,.76);font-size:14.5px;line-height:2.05;
  max-width:680px;margin:22px auto 0;
}
.hp-acts{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:34px}
.hero-dots{
  position:absolute;left:0;right:0;bottom:78px;z-index:5;
  display:flex;gap:10px;justify-content:center;align-items:center;
}
.hero-dots button{
  width:30px;height:2px;border:0;padding:0;background:rgba(255,255,255,.3);
  cursor:pointer;transition:.45s var(--ease);
}
.hero-dots button:hover{background:rgba(255,255,255,.62)}
.hero-dots button.on{width:52px;background:#fff}

/* ============ 内页头图 ============ */
.phero{
  position:relative;min-height:60vh;padding:158px 0 104px;background:var(--dark);overflow:hidden;
  display:flex;align-items:center;
}
/* 背景图由 .42 提到 .9：原先几乎看不见，是内页头图「小气」的主因 */
.phero-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.9;filter:saturate(.9) contrast(1.04) brightness(1.02)}
.phero-mask{position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,10,14,.70),rgba(6,10,14,.44) 42%,rgba(6,10,14,.88))}
.phero .wrap{position:relative;z-index:3;width:100%}
@media (max-width:768px){
  .phero{min-height:0;padding:112px 0 70px}
}
.crumb{
  display:flex;align-items:center;gap:10px;color:rgba(255,255,255,.5);
  font-size:11.5px;letter-spacing:.14em;margin-bottom:30px;
}
.crumb a{transition:.3s}
.crumb a:hover{color:#fff}
.crumb i{font-style:normal;color:rgba(255,255,255,.3);font-size:10px}
.phero h1{
  color:#fff;font-size:clamp(30px,4.2vw,54px);font-weight:400;
  letter-spacing:.1em;line-height:1.42;max-width:900px;
}
.phero .sub{
  font-family:var(--serif);font-size:12px;letter-spacing:.3em;
  color:rgba(255,255,255,.45);text-transform:uppercase;margin-top:20px;
}
.phero p.lead{
  color:rgba(255,255,255,.72);font-size:14.5px;line-height:2.05;
  max-width:800px;margin-top:30px;
}
.phero-meta{
  display:flex;gap:34px;flex-wrap:wrap;margin-top:40px;
  border-top:1px solid rgba(255,255,255,.16);padding-top:26px;
}
.phero-meta div span{display:block}
.phero-meta .n{font-family:var(--serif);font-size:26px;color:#fff;letter-spacing:.04em}
.phero-meta .t{color:rgba(255,255,255,.48);font-size:11.5px;letter-spacing:.16em;margin-top:6px}
/* 文字型统计位：26px serif 数字位塞中文会失衡，故换成小号标签 + 常规说明。
   含文字项时改由 padding 控距（gap:0），竖分隔线才能落在两项正中间而不与 gap 叠加。 */
.phero-meta .m-txt .n{font-family:inherit;font-size:13px;letter-spacing:.2em;
  color:rgba(255,255,255,.92);font-weight:400}
.phero-meta .m-txt .t{font-size:12.5px;letter-spacing:.09em;color:rgba(255,255,255,.52);margin-top:8px}
.phero-meta.is-txt{gap:0}
.phero-meta.is-txt div{padding-right:34px}
.phero-meta.is-txt div+div{padding-left:34px;border-left:1px solid rgba(255,255,255,.16)}
.phero-meta.is-txt div:last-child{padding-right:0}

/* ============ 典型案例页头图：标语固定 + 5 屏案例轮播 ============
   与 .phero 的区别：这里是「一屏一条案例」，背景图与案例文案同步淡入淡出，
   底部指示条可手动切换。标语层（面包屑 / 标题 / 导语 / 统计位）始终不动。 */
/* 高度要留有余地：首屏必须同时容下标语、案例文案和底部指示条，
   否则切换控件被推到视口外，用户根本看不见可以手动翻页。 */
.chero{
  position:relative;min-height:92vh;padding:112px 0 76px;background:var(--dark);overflow:hidden;
  display:flex;align-items:stretch;
}
.chero-bg{position:absolute;inset:0}
.chero-slide{
  position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;
  filter:saturate(.9) contrast(1.04) brightness(1.02);transform:scale(1.06);
  transition:opacity 1.3s var(--ease),transform 8s linear;
}
.chero-slide.on{opacity:.9;transform:scale(1)}
/* 上下双向压深：上方托标语，下方托案例文案，中段留亮保持通透。
   下部别压过头——实测 .92 时案例层背景只剩 L≈38，白字对比度虽高达 15:1，
   但画面被压没了，配图也就失去意义；.82 时仍能到 8:1 以上，够读且看得见图。 */
.chero-mask{position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(6,10,14,.78) 0%,rgba(6,10,14,.44) 36%,
                                   rgba(6,10,14,.54) 64%,rgba(6,10,14,.82) 100%)}
.chero-inner{
  position:relative;z-index:3;width:100%;
  /* 不用 space-between：否则指示条被顶到头图最底部、在常见视口里落到首屏外。
     改由上到下顺排，指示条紧贴案例文案，控件与内容成一组。 */
  display:flex;flex-direction:column;justify-content:flex-start;gap:36px;
}
.chero h1{
  color:#fff;font-size:clamp(30px,4.2vw,54px);font-weight:400;
  letter-spacing:.1em;line-height:1.42;max-width:900px;
}
.chero .sub{
  font-family:var(--serif);font-size:12px;letter-spacing:.3em;
  color:rgba(255,255,255,.45);text-transform:uppercase;margin-top:20px;
}
.chero p.lead{
  color:rgba(255,255,255,.72);font-size:14.5px;line-height:2.05;
  max-width:720px;margin-top:26px;
}
.chero-cases{position:relative;min-height:216px}
.chero-case{
  position:absolute;left:0;top:0;width:100%;max-width:780px;display:block;
  text-decoration:none;color:#fff;opacity:0;pointer-events:none;
  transform:translateY(16px);transition:opacity .85s var(--ease),transform .85s var(--ease);
}
.chero-case.on{opacity:1;pointer-events:auto;transform:none}
.cc-head{display:flex;align-items:center;gap:16px}
.cc-no{font-family:var(--serif);font-size:13px;letter-spacing:.2em;color:var(--accent-2)}
.cc-kind{font-size:11.5px;letter-spacing:.18em;color:rgba(255,255,255,.62);
  border-left:1px solid rgba(255,255,255,.24);padding-left:16px}
.chero-case h3{
  font-size:clamp(19px,2.1vw,26px);font-weight:400;letter-spacing:.06em;
  line-height:1.6;margin:16px 0 0;
}
.chero-case p{
  font-size:13px;line-height:2;color:rgba(255,255,255,.74);margin:14px 0 0;max-width:660px;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.cc-more{
  display:inline-flex;align-items:center;gap:9px;font-size:11.5px;letter-spacing:.18em;
  color:rgba(255,255,255,.9);margin-top:18px;padding-bottom:5px;
  border-bottom:1px solid rgba(255,255,255,.30);transition:.4s var(--ease);
}
.cc-more i{font-style:normal}
.chero-case:hover .cc-more{border-color:var(--accent-2);color:#fff}
.chero-dots{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.chero-dot{
  background:none;border:0;padding:0;cursor:pointer;color:#fff;
  display:flex;align-items:center;gap:9px;opacity:.52;transition:.45s var(--ease);
}
.chero-dot i{display:block;width:26px;height:1px;background:rgba(255,255,255,.65);transition:.45s var(--ease)}
.chero-dot em{font-family:var(--serif);font-style:normal;font-size:11.5px;letter-spacing:.14em}
.chero-dot.on{opacity:1}
.chero-dot.on i{width:54px;background:var(--accent-2)}
.chero-dot:hover{opacity:.85}
@media(max-width:992px){
  .chero{min-height:0;padding:118px 0 84px}
  .chero-inner{gap:46px}
  .chero-cases{min-height:280px}
}
@media(max-width:640px){
  .chero{padding:100px 0 66px}
  .chero-cases{min-height:300px}
  .chero-case h3{font-size:18px}
  .chero-dots{gap:16px}
  .chero-dot i{width:18px}
  .chero-dot.on i{width:34px}
}

/* ============ 导语 ============ */
/* 三段主张已拆出成为独立的 .tw 区块并自带上下留白，这里不再为它预留 100px 间距 */
.intro{background:var(--bg);padding:130px 0 96px;position:relative}
.intro-lead{max-width:940px;margin:0 auto;text-align:center}
.intro-lead .eyebrow{justify-content:center}
/* 导语：正文压到 Light（300），只有「可落地、可验证」加粗到 Semibold，
   靠字重差把这一句顶出来。400 与 500 只差一档，视觉上「加重」不明显改成
   两头拉开的取舍：300 靠 PingFang SC Light / 微软雅黑 Light，缺字形时回退常规。 */
.intro-lead h2{font-size:clamp(22px,2.8vw,36px);font-weight:300;line-height:1.8;letter-spacing:.07em}
.intro-lead h2 b{font-weight:600;border-bottom:1px solid var(--accent);padding-bottom:3px}
.intro-lead p{margin-top:30px;color:var(--ink-3);font-size:13.5px;letter-spacing:.16em;font-family:var(--serif);text-transform:uppercase}

/* ---- 三段主张：三块横向并排，整排铺满视口 ----
   每块 1/3 宽、各自一张风景背景，文字压在底部。遮罩走竖向渐变——
   三块是并排的，横向渐变会把某一侧压死；底部压到 .9 才托得住白字。 */
.tw{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.tw-item{
  position:relative;display:flex;align-items:flex-end;overflow:hidden;
  min-height:540px;padding:54px 44px;background:var(--dark);
  border-left:1px solid rgba(255,255,255,.16);
}
.tw-item:first-child{border-left:0}
.tw-bg{
  position:absolute;inset:0;background-size:cover;background-position:center;
  filter:var(--img-filter);transform:scale(1.03);
  transition:transform 1.6s var(--ease);
}
.tw-item:hover .tw-bg{transform:scale(1.08)}
.tw-veil{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(6,10,14,.22) 0%,rgba(6,10,14,.60) 44%,rgba(6,10,14,.92) 100%);
}
.tw-body{position:relative;z-index:3;width:100%}
.tw-num{font-family:var(--serif);font-size:12px;letter-spacing:.2em;color:var(--accent-2);margin-bottom:20px}
.tw-num em{font-style:normal;opacity:.55;margin:0 6px}
.tw-body h3{
  font-size:22px;font-weight:400;color:#fff;
  letter-spacing:.06em;line-height:1.55;margin-bottom:18px;
}
.tw-body p{color:rgba(255,255,255,.76);font-size:13.5px;line-height:2}

/* ============ 业务领域 ============ */
.practice{background:var(--bg-soft);padding:112px 0}
.pr-grid{display:grid;grid-template-columns:1fr 1fr;gap:76px;align-items:start}
.pr-left .sec-title{margin-bottom:28px}
.pr-left p{color:var(--ink-2);font-size:14px;line-height:2.1;max-width:400px}
/* 原为 position:sticky;top:130px：图片吸附后是定位元素，会盖在下方「引导语 + 按钮」
   之上滚动（sticky 只保留原位空间，不阻止后续内容从下面穿过），且整块显得断裂。
   改为随内容一起走，左栏成为一个整体。 */
.pr-visual{position:relative;top:0;aspect-ratio:4/3.15;overflow:hidden;background:var(--dark)}
.pr-visual figure{position:absolute;inset:0;opacity:0;transition:opacity .9s var(--ease),transform 1.4s var(--ease);transform:scale(1.05)}
.pr-visual figure.on{opacity:1;transform:scale(1)}
.pr-visual img{width:100%;height:100%;object-fit:cover;filter:var(--img-filter)}
.pr-visual figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:26px 30px;color:#fff;font-size:12px;letter-spacing:.18em;
  background:linear-gradient(0deg,rgba(6,10,14,.8),transparent);
  display:flex;justify-content:space-between;align-items:center;
}
.pr-visual figcaption em{font-style:normal;font-family:var(--serif);color:rgba(255,255,255,.55)}
.pr-list{border-top:1px solid var(--line)}
.pr-item{
  border-bottom:1px solid var(--line);padding:32px 0;cursor:pointer;
  display:grid;grid-template-columns:56px 1fr auto;gap:20px;align-items:start;
  transition:padding .5s var(--ease);position:relative;
}
.pr-item:hover{padding-left:14px}
.pr-num{font-family:var(--serif);font-size:12.5px;letter-spacing:.14em;color:var(--ink-3);padding-top:6px;transition:.4s}
.pr-item.on .pr-num{color:var(--accent)}
.pr-body h3{font-size:19px;font-weight:500;letter-spacing:.07em;line-height:1.5}
.pr-body .en2{font-family:var(--serif);font-size:10.5px;letter-spacing:.2em;color:var(--ink-3);text-transform:uppercase;margin-top:6px}
.pr-body p{color:var(--ink-2);font-size:13px;line-height:1.9;margin-top:14px;max-width:520px}
.pr-arrow{font-size:18px;color:var(--ink-3);padding-top:4px;transition:.45s var(--ease);opacity:.45}
.pr-item:hover .pr-arrow{color:var(--ink);transform:translateX(6px);opacity:1}
.pr-more{margin-top:44px}

/* ============ 数信法度（图片带） ============ */
.research{position:relative;padding:130px 0;background:var(--dark);overflow:hidden}
.research-bg{position:absolute;inset:0;background:url("../img/renaissance-law-library.jpg") center 55%/cover no-repeat;opacity:.5}
.research-mask{position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,10,14,.9),rgba(6,10,14,.62) 46%,rgba(6,10,14,.93))}
.research .wrap{position:relative;z-index:3}
.research .sec-head{color:#fff;margin-bottom:70px}
.research .sec-title{color:#fff}
.research .sec-desc{color:rgba(255,255,255,.62)}
.res-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14)}
.res-card{
  background:rgba(13,15,17,.72);backdrop-filter:blur(6px);padding:48px 40px 52px;
  transition:.55s var(--ease);position:relative;overflow:hidden;
}
.res-card::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--accent-2);transition:.6s var(--ease)}
.res-card:hover{background:rgba(13,15,17,.9)}
.res-card:hover::after{width:100%}
.res-idx{font-family:var(--serif);font-size:11px;letter-spacing:.22em;color:rgba(255,255,255,.42);margin-bottom:30px}
.res-card h3{color:#fff;font-size:19px;font-weight:400;letter-spacing:.1em;margin-bottom:10px}
.res-card .en3{font-family:var(--serif);font-size:10px;letter-spacing:.22em;color:rgba(255,255,255,.4);text-transform:uppercase}
.res-card p{color:rgba(255,255,255,.62);font-size:13px;line-height:2;margin-top:22px}
.res-card ul{margin-top:24px;border-top:1px solid rgba(255,255,255,.12);padding-top:20px}
.res-card li{color:rgba(255,255,255,.55);font-size:12.5px;padding:7px 0;display:flex;gap:10px;align-items:baseline}
.res-card li::before{content:"";width:3px;height:3px;background:var(--accent-2);flex:0 0 3px;transform:translateY(-3px)}
.research .btn{margin-top:58px}

/* 浅色场景下的研究卡片（research.html 用）
   原 .res-card 配色为首页深色研究带设计（白字 + 半透明深底），
   在浅色页面直接使用会导致「白字压浅底看不见」，故整套覆盖为墨色系。 */
.res-cards.light{background:var(--line);border:1px solid var(--line)}
.res-cards.light .res-card{background:var(--bg);backdrop-filter:none}
.res-cards.light .res-card:hover{background:var(--bg-soft-cool)}
.res-cards.light .res-card::after{background:var(--accent)}
.res-cards.light .res-idx{color:var(--ink-3)}
.res-cards.light .res-card h3{color:var(--ink)}
.res-cards.light .res-card .en3{color:var(--ink-3)}
.res-cards.light .res-card p{color:var(--ink-2)}
.res-cards.light .res-card ul{border-top-color:var(--line)}
.res-cards.light .res-card li{color:var(--ink-2)}
.res-cards.light .res-card li::before{background:var(--accent)}

/* 研究卡片配图（负外距铺满卡片顶部） */
.res-card .res-thumb{
  height:168px;margin:-48px -40px 30px;position:relative;
  background-size:cover;background-position:center;
  filter:var(--img-filter);
}

/* ============ 数据条 ============ */
/* 关键词带：原本用 44px 衬线显示统计数字，既显得堆砌、中文衬线在大字号下也发笨。
   改为宽字距的无衬线中文词，读作「领域标签」而不是「业绩数字」。 */
.stats{background:var(--dark-2);border-top:1px solid var(--line-dark);padding:78px 0 74px}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px}
.stat{padding:2px 34px;border-right:1px solid var(--line-dark);text-align:center}
.stat:last-child{border-right:none}
.stat .n{
  font-size:clamp(20px,2.2vw,28px);font-weight:400;color:#fff;
  letter-spacing:.24em;text-indent:.24em;line-height:1.5;
}
.stat .n sup{font-size:16px;color:var(--accent-2);vertical-align:super;margin-left:2px}
.stat .t{color:rgba(255,255,255,.44);font-size:11px;letter-spacing:.24em;margin-top:14px}
.stats-note{text-align:center;color:rgba(255,255,255,.26);font-size:11px;letter-spacing:.12em;margin-top:38px}

/* ============ 洞察 ============ */
.insights{background:var(--bg)}
.ins-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:38px}
.ins-card{display:block;transition:.5s var(--ease)}
.ins-thumb{aspect-ratio:16/10;overflow:hidden;background:var(--bg-warm)}
.ins-thumb img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease);filter:var(--img-filter)}
.ins-card:hover .ins-thumb img{transform:scale(1.055)}
.ins-meta{display:flex;align-items:center;gap:14px;margin-top:26px;font-size:11px;letter-spacing:.18em;color:var(--ink-3);font-family:var(--serif);text-transform:uppercase}
.ins-meta .tag{color:var(--accent);border:1px solid rgba(168,69,42,.3);padding:3px 10px;border-radius:1px;letter-spacing:.1em}
.ins-card h3{font-size:17px;font-weight:500;line-height:1.72;letter-spacing:.04em;margin-top:16px;transition:.4s}
.ins-card:hover h3{color:var(--accent)}
.ins-card p{color:var(--ink-3);font-size:13px;line-height:1.95;margin-top:14px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ============ 场景图片带 ============ */
.band{padding:0;background:var(--bg-soft)}
.band-head{padding:96px 0 54px;text-align:center}
.band-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line)}
.band-cell{position:relative;aspect-ratio:3/4.4;overflow:hidden;background:var(--dark)}
.band-cell img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease),filter .9s var(--ease);filter:saturate(.86) contrast(1.04) brightness(.86)}
.band-cell:hover img{transform:scale(1.07);filter:saturate(.94) contrast(1.04) brightness(1.02)}
.band-cell figcaption{position:absolute;left:0;right:0;bottom:0;padding:30px 24px;color:#fff;background:linear-gradient(0deg,rgba(6,10,14,.86),transparent)}
.band-cell .k{font-family:var(--serif);font-size:10px;letter-spacing:.2em;color:rgba(255,255,255,.55);text-transform:uppercase}
.band-cell h4{font-size:14.5px;font-weight:400;letter-spacing:.1em;margin-top:10px;line-height:1.6}
.band-cell p{font-size:11.5px;color:rgba(255,255,255,.6);margin-top:8px;line-height:1.7}

/* ============ 生态 + 活动 ============ */
.dual{padding:0;background:var(--bg-soft)}
.dual-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line)}
.dual-card{position:relative;min-height:520px;overflow:hidden;display:flex;align-items:flex-end;background:var(--dark)}
.dual-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease);filter:var(--img-filter)}
.dual-card:hover img{transform:scale(1.05)}
.dual-card::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(6,10,14,.9) 6%,rgba(6,10,14,.42) 46%,rgba(6,10,14,.24))}
.dual-body{position:relative;z-index:3;padding:60px 54px;color:#fff;width:100%}
.dual-body .k{font-family:var(--serif);font-size:10.5px;letter-spacing:.28em;color:rgba(255,255,255,.55);text-transform:uppercase}
.dual-body h3{font-size:27px;font-weight:400;letter-spacing:.12em;margin:18px 0 18px}
.dual-body p{color:rgba(255,255,255,.7);font-size:13.5px;line-height:2;max-width:420px}
.dual-body ul{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.dual-body li{font-size:11.5px;letter-spacing:.12em;padding:6px 14px;border:1px solid rgba(255,255,255,.28);color:rgba(255,255,255,.82);transition:.4s}
.dual-card:hover li{border-color:rgba(255,255,255,.5)}
.dual-link{display:inline-flex;align-items:center;gap:10px;margin-top:34px;font-size:12.5px;letter-spacing:.16em;color:#fff;border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:6px;transition:.4s}
.dual-link:hover{gap:16px;border-color:#fff}

/* ============ 宣言 ============ */
.statement{position:relative;padding:168px 0;background:var(--dark);overflow:hidden}
.statement-bg{position:absolute;inset:0;background:url("../img/stars-salt-lake-mirror.jpg") center/cover no-repeat;opacity:.58}
.statement-mask{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,rgba(6,10,14,.42),rgba(6,10,14,.9))}
.statement .wrap{position:relative;z-index:3;text-align:center}
.statement h2{color:#fff;font-size:clamp(20px,2.4vw,31px);font-weight:400;line-height:2;letter-spacing:.1em;max-width:790px;margin:0 auto}
.statement h2 em{font-style:normal;color:var(--accent-2)}
.statement .sig{margin-top:52px;color:rgba(255,255,255,.42);font-family:var(--serif);font-size:11.5px;letter-spacing:.32em;text-transform:uppercase}

/* ============ CTA ============ */
.cta{background:var(--bg);padding:118px 0;text-align:center}
.cta h2{font-size:clamp(24px,3vw,40px);font-weight:400;letter-spacing:.1em;line-height:1.6}
.cta .en-line{font-family:var(--serif);font-size:12px;letter-spacing:.34em;color:var(--ink-3);text-transform:uppercase;margin-bottom:28px}
.cta p{color:var(--ink-2);font-size:14px;line-height:2;max-width:600px;margin:32px auto 0}
.cta-acts{display:flex;gap:18px;justify-content:center;margin-top:52px;flex-wrap:wrap}
.cta-note{margin-top:46px;color:var(--ink-3);font-size:11.5px;letter-spacing:.1em;line-height:2}
.cta-note b{color:var(--ink-2);font-weight:400}

/* ============ 页脚 ============ */
.footer{background:var(--dark);color:rgba(255,255,255,.6);padding:88px 0 0}
.f-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr 1.1fr;gap:42px;padding-bottom:66px;border-bottom:1px solid var(--line-dark)}
.f-brand .brand-cn{color:#fff;font-size:15.5px;white-space:nowrap}
.f-brand .brand-en{color:rgba(255,255,255,.38);letter-spacing:.2em;font-size:9px}
.f-brand p{font-size:12.5px;line-height:2.1;color:rgba(255,255,255,.45);margin-top:26px;max-width:300px}
.f-col h5{color:#fff;font-size:13px;font-weight:400;letter-spacing:.16em;margin-bottom:24px}
.f-col a{display:block;font-size:12.5px;padding:7px 0;color:rgba(255,255,255,.55);transition:.35s}
.f-col a:hover{color:#fff;transform:translateX(4px)}
.f-col .tel{font-family:var(--sans);font-size:17px;color:#fff;letter-spacing:.04em;margin-bottom:8px}
.f-bot{display:flex;justify-content:space-between;align-items:center;padding:30px 0;font-size:11.5px;color:rgba(255,255,255,.35);letter-spacing:.08em;flex-wrap:wrap;gap:14px}
.f-bot .links{display:flex;gap:24px}
.f-bot a:hover{color:#fff}
.f-demo{background:#080A0C;border-top:1px solid #1A1D20;padding:14px 0;text-align:center;font-size:11px;color:rgba(255,255,255,.28);letter-spacing:.1em}

/* ============ 滚动动效 ============ */
.rv{opacity:0;transform:translateY(30px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.rv.in{opacity:1;transform:none}
.rv-d1{transition-delay:.1s}.rv-d2{transition-delay:.2s}.rv-d3{transition-delay:.3s}.rv-d4{transition-delay:.4s}

/* ==========================================================================
   深层页组件
   ========================================================================== */

/* 通用栅格 */
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:64px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:38px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.grid-5{display:grid;grid-template-columns:repeat(5,1fr);gap:22px}
.mt-0{margin-top:0}

/* 标签组（个人页 / 通用） */
.ptags{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.ptags span{font-size:11.5px;color:var(--ink-3);border:1px solid var(--line);padding:5px 12px;letter-spacing:.06em}

/* 编号要点列表（洞察详情页） */
.plist{list-style:none;margin:0;padding:0}
.plist li{display:flex;gap:18px;padding:18px 0;border-bottom:1px solid var(--line)}
.plist li:last-child{border-bottom:0}
.plist .pno{flex:none;width:30px;font-family:var(--serif);font-size:15px;color:var(--accent);letter-spacing:.04em}
.plist .ptxt{font-size:14px;line-height:2.05;color:var(--ink-2)}

/* 站点地图 / 索引链接列表 */
.slist{list-style:none;margin:0;padding:0}
.slist li{border-bottom:1px solid var(--line);padding:11px 0;display:flex;justify-content:space-between;align-items:baseline;gap:14px}
.slist li:last-child{border-bottom:0}
.slist a{font-size:13.5px;color:var(--ink);letter-spacing:.03em}
.slist a:hover{color:var(--accent)}
.slist span{font-size:11.5px;color:var(--ink-3);letter-spacing:.08em;flex:none}

/* 正文容器：940px 宽下中文每行近 67 字，远超舒适区间（35–45 字）。
   收到 780px、字号提到 14.5px，行长约 52 字，阅读明显更稳。 */
.prose{max-width:780px}
.prose h3{font-size:22px;font-weight:400;letter-spacing:.06em;margin:0 0 20px;line-height:1.6}
.prose h4{font-size:17px;font-weight:500;letter-spacing:.06em;margin:0 0 14px}
.prose p{color:var(--ink-2);font-size:14.5px;line-height:2.1;margin-bottom:22px}
.prose p:last-child{margin-bottom:0}
.prose strong{font-weight:500;color:var(--ink)}
.prose .lead{font-size:16px;line-height:2.1;color:var(--ink)}
.prose em.qu{font-style:normal;color:var(--accent)}

/* 章节锚点导航 */
.sidenav{position:sticky;top:130px}
.sidenav h6{font-size:11px;letter-spacing:.24em;color:var(--ink-3);font-family:var(--serif);text-transform:uppercase;margin-bottom:20px;font-weight:400}
.sidenav a{display:block;font-size:13px;color:var(--ink-2);padding:10px 0;border-bottom:1px solid var(--line);transition:.35s}
.sidenav a:hover{color:var(--accent);padding-left:8px}

/* 服务卡 */
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.svc-card{
  background:var(--bg);transition:.55s var(--ease);
  position:relative;display:flex;flex-direction:column;overflow:hidden;
}
/* 统一图片调性：让手稿 / 器物 / 科技设施 / 自然风光这四类来源完全不同的照片
   读成同一套视觉语言（原先的 sepia 会把蓝绿色海面与雨林压脏） */
.svc-thumb{
  width:100%;height:172px;background-color:#E9ECEF;position:relative;
  background-position:center;background-size:cover;background-repeat:no-repeat;
  filter:var(--img-filter);
}
.svc-thumb::after,.ev-thumb::after,.ev-fcard .ph::after,.res-thumb::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:var(--img-veil);
}
.ev-thumb{position:relative}
.svc-inner{padding:34px 34px 40px;display:flex;flex-direction:column;flex:1}
.svc-card::after{content:"";position:absolute;left:0;top:0;width:0;height:2px;background:var(--accent);transition:.6s var(--ease)}
.svc-card:hover::after{width:100%}
.svc-card:hover{background:var(--bg-soft)}
.svc-idx{font-family:var(--serif);font-size:11.5px;letter-spacing:.2em;color:var(--accent);margin-bottom:20px;display:flex;align-items:center;gap:12px}
.svc-idx em{font-style:normal;width:20px;height:1px;background:var(--accent);display:inline-block}
.svc-card h3{font-size:19px;font-weight:500;letter-spacing:.06em;margin-bottom:8px;line-height:1.55}
.svc-card .get{font-family:var(--serif);font-size:10px;letter-spacing:.2em;color:var(--ink-3);text-transform:uppercase}
.svc-card p{color:var(--ink-2);font-size:13px;line-height:2;margin-top:18px}
.svc-card .more{display:inline-flex;align-items:center;gap:8px;margin-top:22px;font-size:12px;letter-spacing:.14em;color:var(--ink);transition:.4s}
.svc-card:hover .more{gap:14px;color:var(--accent)}
.svc-inner .more{margin-top:auto;padding-top:28px}

/* 编号清单 */
.nlist{border-top:1px solid var(--line);margin-top:8px}
.nlist li{
  display:grid;grid-template-columns:64px 1fr;gap:18px;align-items:start;
  padding:22px 0;border-bottom:1px solid var(--line);
}
.nlist .k{font-family:var(--serif);font-size:12px;letter-spacing:.16em;color:var(--accent);padding-top:4px}
.nlist .v h4{font-size:15px;font-weight:500;letter-spacing:.05em;margin-bottom:8px;line-height:1.6}
.nlist .v p{font-size:13px;color:var(--ink-2);line-height:1.95}

/* 强调框 */
.cbox{
  border-left:2px solid var(--accent);background:var(--bg-soft);
  padding:30px 34px;margin:38px 0;
}
.cbox h4{font-size:15px;font-weight:500;letter-spacing:.08em;margin-bottom:12px}
.cbox p{font-size:13.5px;color:var(--ink-2);line-height:2.05}
.cbox p:last-child{margin-bottom:0}

/* 数据表 */
.tbl-wrap{overflow-x:auto;margin-top:34px;border:1px solid var(--line)}
table.dt{width:100%;border-collapse:collapse;min-width:640px;background:var(--bg)}
table.dt thead th{
  background:var(--dark);color:#fff;font-size:12px;font-weight:400;
  letter-spacing:.16em;text-align:left;padding:18px 24px;
}
table.dt tbody td{
  padding:20px 24px;border-top:1px solid var(--line);
  font-size:13px;color:var(--ink-2);line-height:1.9;vertical-align:top;
}
table.dt tbody tr:nth-child(even){background:var(--bg-soft)}
table.dt tbody td:first-child{
  color:var(--ink);font-weight:500;letter-spacing:.05em;white-space:nowrap;
  border-right:1px solid var(--line);
}

/* 案例 */
/* 案例卡：左侧配图（复用该案例详情页头图）+ 右侧正文；编号移到图下横排 */
.case-item{
  display:grid;grid-template-columns:392px 1fr;gap:52px;align-items:start;
  padding:46px 0;border-bottom:1px solid var(--line);
}
.case-item:first-child{border-top:1px solid var(--line)}
.case-pic .picwrap{
  display:block;overflow:hidden;background:var(--bg-soft);
}
.case-pic .ph{
  display:block;width:100%;aspect-ratio:16/9;
  background-position:center;background-size:cover;background-repeat:no-repeat;
  filter:var(--img-filter);
  transition:transform 1.5s var(--ease);
}
.case-item:hover .ph{transform:scale(1.05)}
.case-no{font-family:var(--serif);font-size:12px;letter-spacing:.2em;color:var(--accent);padding-top:6px}
.case-no span{display:block;font-size:10px;color:var(--ink-3);letter-spacing:.14em;margin-top:8px}
/* 编号在图下方：改横排，中间用细斜线分隔 */
.case-pic .case-no{
  display:flex;align-items:baseline;gap:12px;padding-top:0;margin-top:16px;
}
.case-pic .case-no span{display:inline;margin-top:0}
.case-pic .case-no span::before{content:"/";margin-right:12px;color:var(--line)}
.case-body h3{font-size:19px;font-weight:500;line-height:1.7;letter-spacing:.04em;margin-bottom:12px}
.case-body h3 a{transition:color .45s var(--ease)}
.case-item:hover .case-body h3 a{color:var(--accent)}
.case-body .cid{font-family:var(--serif);font-size:11.5px;letter-spacing:.14em;color:var(--ink-3);margin-bottom:18px}
.case-body p{font-size:13.5px;color:var(--ink-2);line-height:2.05;margin-bottom:16px}
.case-body .best{border-left:2px solid var(--accent);padding:4px 0 4px 18px;margin-top:22px}
.case-body .best b{display:block;font-size:12px;letter-spacing:.16em;color:var(--accent);margin-bottom:8px;font-weight:500}
.case-body .best p{font-size:13px;margin:0}
.badge{
  display:inline-block;font-size:11px;letter-spacing:.12em;color:#fff;
  background:var(--accent);padding:4px 12px;margin-bottom:14px;
}

/* 深度文章（数信法度 · 外部来源索引） */
.art-group + .art-group{margin-top:60px}
.art-src{
  display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;
  padding-bottom:18px;border-bottom:2px solid var(--ink);
}
.art-src .src-name{
  display:flex;align-items:center;gap:12px;
  font-size:16px;font-weight:500;letter-spacing:.08em;color:var(--ink);
}
.art-src .src-name::before{content:"";width:7px;height:7px;flex:none;background:var(--accent)}
/* 第二组改用深墨色标，与赭红形成来源区分 */
.art-group:nth-child(2) .src-name::before{background:var(--dark)}
.art-src .src-note{font-size:12px;color:var(--ink-3);letter-spacing:.06em}

/* 左右各留 20px 出血，hover 时铺成一片白底，视觉上像整行卡片 */
.art-list{margin:0 -20px}
.art-list li{border-bottom:1px solid var(--line)}
.art-list a{
  display:grid;grid-template-columns:148px 1fr 34px;gap:30px;align-items:start;
  padding:26px 20px;color:inherit;transition:background .5s var(--ease);
}
.art-list a:hover{background:var(--bg)}
.art-date{font-family:var(--serif);font-size:13px;letter-spacing:.12em;color:var(--ink)}
.art-date em{
  display:block;font-style:normal;font-size:11px;
  letter-spacing:.14em;color:var(--ink-3);margin-top:9px;
}
.art-title{
  display:block;font-size:17px;font-weight:500;line-height:1.7;letter-spacing:.03em;
  margin-bottom:11px;transition:color .45s var(--ease);
}
.art-list a:hover .art-title{color:var(--accent)}
.art-sum{display:block;font-size:13px;color:var(--ink-2);line-height:1.95}
.art-go{
  justify-self:end;font-size:15px;color:var(--ink-3);line-height:1.7;
  transition:transform .45s var(--ease),color .45s var(--ease);
}
.art-list a:hover .art-go{color:var(--accent);transform:translate(4px,-2px)}
.art-note{margin-top:40px;font-size:12.5px;color:var(--ink-3);letter-spacing:.04em}

/* 案例地图入口（数信法度 · 深底横幅） */
.atlas{display:grid;grid-template-columns:1fr 300px;gap:70px;align-items:center}
.atlas-title{
  font-family:var(--serif);font-size:34px;font-weight:500;line-height:1.45;
  letter-spacing:.06em;color:#fff;margin:20px 0 22px;
}
.atlas-desc{font-size:14px;line-height:2.05;color:rgba(255,255,255,.68);max-width:660px}
.atlas-acts{margin-top:36px;display:flex;gap:14px;flex-wrap:wrap}
/* 1px gap 露底色形成分隔线 */
.atlas-stat{
  display:grid;gap:1px;background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.16);
}
.atlas-stat li{background:var(--dark);padding:26px 30px;display:flex;align-items:baseline;gap:18px}
.atlas-stat b{
  font-family:var(--serif);font-size:32px;font-weight:500;color:var(--accent-2);
  letter-spacing:.02em;min-width:78px;
}
.atlas-stat span{font-size:12.5px;letter-spacing:.14em;color:rgba(255,255,255,.62)}

/* 服务行业卡（industries.html） */
/* 1px gap 露线，卡与卡之间只靠一条细线分隔，图直接出血到卡边缘 */
.ind-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:1px;
  background:var(--line);border:1px solid var(--line);margin-top:34px;
}
.ind-card{display:block;background:var(--bg);color:inherit;transition:background .55s var(--ease)}
.ind-card:hover{background:var(--bg-soft)}
.ind-pic{overflow:hidden;background:var(--bg-soft)}
.ind-pic .ph{
  display:block;width:100%;aspect-ratio:16/9;
  background-position:center;background-size:cover;background-repeat:no-repeat;
  filter:var(--img-filter);transition:transform 1.5s var(--ease);
}
.ind-card:hover .ph{transform:scale(1.05)}
.ind-body{padding:32px 38px 38px}
.ind-idx{font-family:var(--serif);font-size:12px;letter-spacing:.24em;color:var(--accent);margin-bottom:14px}
.ind-body h3{font-size:21px;font-weight:500;letter-spacing:.06em;margin-bottom:8px;transition:color .45s var(--ease)}
.ind-card:hover h3{color:var(--accent)}
.ind-body .en3{font-family:var(--serif);font-size:10px;letter-spacing:.22em;color:var(--ink-3);text-transform:uppercase}
.ind-scenes{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 22px}
.ind-scenes li{
  font-size:11.5px;letter-spacing:.1em;color:var(--ink-2);
  border:1px solid var(--line);padding:5px 12px;
}
.ind-scenes.big li{padding:7px 16px;font-size:12.5px;letter-spacing:.12em}
.ind-risks{display:grid;gap:13px}
.ind-risks li{
  font-size:12.5px;color:var(--ink-2);line-height:1.85;
  padding-left:16px;position:relative;
}
.ind-risks li::before{
  content:"";position:absolute;left:0;top:10px;width:5px;height:1px;background:var(--accent);
}
.ind-risks b{color:var(--ink);font-weight:500;margin-right:8px}
.ind-more{
  display:inline-flex;align-items:center;gap:10px;margin-top:26px;
  font-size:12px;letter-spacing:.14em;color:var(--accent);
}
.ind-more i{font-style:normal;transition:transform .45s var(--ease)}
.ind-card:hover .ind-more i{transform:translateX(5px)}

/* 出海：跨行业共同场景 */
.cb-list{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.cb-list li{
  background:var(--bg);padding:24px 30px;
  font-size:13px;color:var(--ink-2);line-height:1.95;
}
.cb-list b{
  display:block;font-size:14px;font-weight:500;color:var(--ink);
  margin-bottom:8px;letter-spacing:.04em;
}

/* 行业详情页 */
.prof{background:var(--bg);border:1px solid var(--line);padding:32px 34px}
.prof h6{font-size:12px;letter-spacing:.16em;color:var(--accent);margin-bottom:18px;font-weight:500}
.prof ul{display:grid;gap:11px}
.prof li{font-size:13px;color:var(--ink-2);line-height:1.8;padding-left:16px;position:relative}
.prof li::before{
  content:"";position:absolute;left:0;top:10px;width:5px;height:1px;background:var(--line);
}
.risk-list{
  display:grid;gap:1px;background:var(--line);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.risk-list li{
  display:grid;grid-template-columns:64px 1fr;gap:24px;
  background:var(--bg);padding:30px 24px 30px 0;
}
.risk-list .rn{
  font-family:var(--serif);font-size:13px;letter-spacing:.2em;color:var(--accent);padding-top:4px;
}
.risk-list b{display:block;font-size:15px;font-weight:500;color:var(--ink);margin-bottom:10px;letter-spacing:.04em}
.risk-list p{font-size:13px;color:var(--ink-2);line-height:1.95}
.ind-svc{
  display:block;background:var(--bg);border:1px solid var(--line);
  padding:30px 32px;color:inherit;transition:.55s var(--ease);
}
.ind-svc:hover{border-color:var(--ink);background:var(--bg-soft)}
.ind-svc h4{font-size:15px;font-weight:500;letter-spacing:.05em;margin-bottom:12px}
.ind-svc p{font-size:12.5px;color:var(--ink-2);line-height:1.9}

/* 团队成员 */
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
/* 团队页：改用冷调中性底，替代原先偏黄白的米色 */
.team-sec{background:var(--bg-cool)}
.team-sec .tcard{background:var(--bg)}
.team-sec .tcard:hover{background:var(--bg-soft-cool)}

.tcard{display:block;background:var(--bg);padding:40px 34px 42px;color:inherit;transition:.55s var(--ease)}
.tcard:hover{background:var(--bg-soft)}
.tcard .ava{
  width:64px;height:64px;border:1px solid var(--line);display:grid;place-items:center;overflow:hidden;
  font-family:var(--serif);font-size:22px;color:var(--accent);margin-bottom:22px;transition:.5s;
}
/* 头像去色：中和生成图的米黄 / 赭石底色，使全组统一为中性灰 */
.tcard .ava img{width:100%;height:100%;object-fit:cover;display:block}
.tcard:hover .ava{background:var(--dark);border-color:var(--dark);color:#fff}
.tcard h3{font-size:18px;font-weight:500;letter-spacing:.1em;margin-bottom:6px}
.tcard .role{font-family:var(--serif);font-size:10.5px;letter-spacing:.18em;color:var(--ink-3);text-transform:uppercase;margin-bottom:18px}
.tcard .desc{font-size:12.5px;color:var(--ink-2);line-height:1.95}
.tcard .tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px;border-top:1px solid var(--line);padding-top:16px}
.tcard .tags span{font-size:11px;color:var(--ink-3);border:1px solid var(--line);padding:3px 9px}

/* 团队成员卡 · 图片背景版
   底图 = 该成员个人页同款头图（内联 background-image 保证不被其它规则覆盖）；
   深色蒙版压住画面，使头像 / 姓名 / 正文在任意底图上都可读。 */
.tcard.has-bg{position:relative;overflow:hidden;color:#fff;
  background-size:cover;background-position:center;background-repeat:no-repeat}
.team-sec .tcard.has-bg{background-color:var(--dark)}
.tcard.has-bg::after{
  content:"";position:absolute;inset:0;z-index:0;
  background:linear-gradient(165deg,rgba(13,15,17,.86) 0%,rgba(13,15,17,.66) 45%,rgba(13,15,17,.93) 100%);
  transition:.55s var(--ease);
}
.tcard.has-bg:hover::after{
  background:linear-gradient(165deg,rgba(13,15,17,.78) 0%,rgba(13,15,17,.56) 45%,rgba(13,15,17,.88) 100%);
}
.tcard.has-bg>*{position:relative;z-index:1}
.tcard.has-bg h3{color:#fff}
.tcard.has-bg .role{color:rgba(255,255,255,.6)}
.tcard.has-bg .desc{color:rgba(255,255,255,.78)}
.tcard.has-bg .tags{border-top-color:rgba(255,255,255,.18)}
.tcard.has-bg .tags span{color:rgba(255,255,255,.72);border-color:rgba(255,255,255,.22)}
.tcard.has-bg .ava{border-color:rgba(255,255,255,.32);background:rgba(255,255,255,.08)}
.tcard.has-bg:hover .ava{background:var(--dark);border-color:var(--dark)}
/* 团队页默认只展示前 6 位，其余折叠（JS 切换 .is-open） */
.tcard.tg-fold{display:none}
.team-grid.is-open .tcard.tg-fold{display:block}
.tg-more{text-align:center;margin-top:26px}
.tg-toggle{display:inline-flex;align-items:center;gap:12px;padding:14px 34px;cursor:pointer;
  background:none;border:1px solid var(--line);color:var(--ink-2);
  font-family:inherit;font-size:13px;letter-spacing:.1em;transition:.45s var(--ease)}
.tg-toggle:hover{border-color:var(--ink);color:var(--ink);background:var(--bg-soft)}
.tg-toggle i{font-style:normal;transition:transform .45s var(--ease)}
.tg-toggle[aria-expanded="true"] i{transform:rotate(180deg)}

/* 专业人员个人页：照片在前、简介在后 */
.mb-head{display:grid;grid-template-columns:320px 1fr;gap:56px;align-items:start}
.mb-photo{position:relative;overflow:hidden;background:var(--bg-soft);border:1px solid var(--line)}
.mb-photo img{width:100%;display:block}
.mb-body h3{font-size:22px;font-weight:400;letter-spacing:.08em;margin-bottom:16px}
.mb-body .mb-role{font-family:var(--serif);font-size:11px;letter-spacing:.18em;
  color:var(--ink-3);text-transform:uppercase;margin-bottom:22px}
.mb-body p{font-size:15px;color:var(--ink-2);line-height:2.05}
@media(max-width:860px){
  .mb-head{grid-template-columns:1fr;gap:30px}
  .mb-photo{max-width:300px}
}

/* 荣誉 */
.honor-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.honor{background:var(--bg);padding:30px 32px;display:flex;gap:20px;align-items:flex-start;transition:.5s var(--ease)}
.honor:hover{background:var(--bg-soft)}
.honor .ico{
  width:34px;height:34px;flex:0 0 34px;border:1px solid var(--accent);
  display:grid;place-items:center;color:var(--accent);font-family:var(--serif);font-size:13px;
}
.honor p{font-size:13.5px;color:var(--ink-2);line-height:1.9}

/* 议题 / 研究清单 */
.topic-list{border-top:1px solid var(--line)}
.topic-list li{border-bottom:1px solid var(--line);transition:.4s}
.topic-list li:hover{background:var(--bg-soft)}
.topic-list a{
  display:grid;grid-template-columns:70px 1fr 22px;gap:20px;align-items:baseline;
  padding:20px 0;transition:.4s;
}
.topic-list li:hover a{padding-left:12px}
.topic-list .no{font-family:var(--serif);font-size:11.5px;letter-spacing:.16em;color:var(--accent)}
.topic-list .txt{font-size:14px;color:var(--ink);line-height:1.85;letter-spacing:.03em}
/* 副行：案例的法院与地域 */
.topic-list .txt em{
  display:block;font-style:normal;font-size:12px;letter-spacing:.06em;
  color:var(--ink-3);margin-top:4px;
}
.topic-list .ar{font-size:14px;color:var(--ink-3);text-align:right;transition:.3s}
.topic-list li:hover .ar{color:var(--accent)}

/* 表单 */
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}
.field label{display:block;font-size:11.5px;letter-spacing:.16em;color:var(--ink-3);margin-bottom:10px;font-family:var(--serif);text-transform:uppercase}
.field input,.field select,.field textarea{
  width:100%;border:1px solid var(--line);background:var(--bg);
  padding:14px 16px;font-family:inherit;font-size:14px;color:var(--ink);
  transition:.4s var(--ease);outline:none;
}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent)}
.field textarea{min-height:130px;resize:vertical;line-height:1.9}
.field.full{grid-column:1 / -1}
.form-note{margin-top:26px;font-size:12px;color:var(--ink-3);line-height:1.9}
.form-submit-status{margin-top:10px;font-size:13px;line-height:1.7}
.form-submit-status[data-state="success"]{color:#28704a}
.form-submit-status[data-state="error"]{color:#a8452a}
.form-submit-status[data-state="pending"]{color:var(--ink-3)}

/* 联系块 */
.contact-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:78px;align-items:start}
.contact-info .row{padding:24px 0;border-bottom:1px solid var(--line)}
.contact-info .row:first-child{border-top:1px solid var(--line)}
.contact-info .lb{font-family:var(--serif);font-size:11px;letter-spacing:.2em;color:var(--ink-3);text-transform:uppercase;margin-bottom:10px}
.contact-info .vl{font-size:15px;color:var(--ink);line-height:1.9}
.contact-info .vl.big{font-family:var(--sans);font-size:25px;letter-spacing:.03em}
.tech-law-datamap-content .cb-phone{font-family:var(--sans)}

.tech-law-back-to-top{position:fixed;right:24px;bottom:24px;z-index:1100;display:grid;width:44px;height:44px;place-items:center;border:1px solid rgba(255,255,255,.3);background:var(--dark);color:#fff;font-size:22px;line-height:1;box-shadow:0 4px 16px rgba(0,0,0,.18);transition:background .25s,color .25s}
.tech-law-back-to-top:hover{background:var(--accent);color:#fff}

/* ============ 响应式 ============ */
@media(max-width:1180px){
  .wrap,.wrap-n{padding:0 34px}
  .menu{gap:26px}
  .menu a{font-size:13px}
  .pr-grid{gap:48px}
  .band-grid{grid-template-columns:repeat(3,1fr)}
  .band-cell:nth-child(n+4){display:none}
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .grid-5{grid-template-columns:repeat(3,1fr)}
  .team-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:992px){
  .menu,.nav-cta .nav-btn,.nav-cta .icon-btn{display:none}
  .burger{display:flex}
  .sec{padding:88px 0}
  .sec-head{flex-direction:column;align-items:flex-start;gap:22px;margin-bottom:48px}
  .sec-title{font-size:27px}
  /* 三段主张：并排三块在窄屏必然挤成窄条，改为纵向堆叠 */
  .tw{grid-template-columns:1fr}
  .tw-item{min-height:0;padding:64px 22px;border-left:0;border-top:1px solid rgba(255,255,255,.16)}
  .pr-grid{grid-template-columns:1fr}
  .pr-visual{position:relative;top:0;order:-1;margin-bottom:16px;aspect-ratio:16/9}
  .res-cards{grid-template-columns:1fr}
  .case-item{grid-template-columns:300px 1fr;gap:34px}
  .art-list a{grid-template-columns:124px 1fr 28px;gap:22px}
  .atlas{grid-template-columns:1fr;gap:46px}
  .atlas-stat{grid-template-columns:repeat(3,1fr)}
  .atlas-stat li{flex-direction:column;gap:8px;padding:22px 24px}
  .atlas-stat b{min-width:0}
  .ind-body{padding:28px 30px 32px}
  .risk-list li{grid-template-columns:48px 1fr;gap:16px}
  .ins-grid{grid-template-columns:1fr;gap:52px}
  .dual-grid{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:1fr 1fr;gap:34px 0}
  .stat{border-right:none}
  .stat:nth-child(odd){border-right:1px solid var(--line-dark)}
  .f-top{grid-template-columns:1fr 1fr;gap:38px}
  /* 内容屏全部 absolute 后，流内只剩 .hero-foot 一个子元素：
     不换成 column + flex-end，它会被 align-items:center 顶到头图正中。 */
  .hero{height:auto;min-height:620px;padding:120px 0 90px;
    flex-direction:column;justify-content:flex-end;align-items:stretch}
  .hero-foot{position:relative}
  /* 内容屏是 absolute 铺满的，会一路盖到底部的 .hero-foot 上：
     让出 foot 高 57 + padding-bottom 90 = 147px，内容只在剩余区居中。 */
  .hero-stage{bottom:147px}
  .phero{padding:74px 0 56px}
  .grid-2,.grid-3{grid-template-columns:1fr;gap:38px}
  .grid-5{grid-template-columns:repeat(2,1fr)}
  .svc-grid{grid-template-columns:1fr}
  .honor-grid{grid-template-columns:1fr}
  .team-grid{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr;gap:48px}
  .sidenav{position:relative;top:0;margin-bottom:20px}
  .case-item{grid-template-columns:1fr;gap:20px}
  .art-group + .art-group{margin-top:44px}
  .art-list{margin:0 -14px}
  .art-list a{grid-template-columns:1fr;gap:10px;padding:22px 14px}
  .art-date em{display:inline;margin-top:0;margin-left:14px}
  .art-go{display:none}
  .atlas-title{font-size:26px}
  .atlas-stat{grid-template-columns:1fr}
  .atlas-stat li{flex-direction:row;align-items:baseline;padding:20px 24px}
  .ind-grid{grid-template-columns:1fr}
  .ind-body{padding:26px 24px 30px}
  .ind-body h3{font-size:19px}
  .risk-list li{grid-template-columns:1fr;gap:10px;padding:24px 20px}
  .prof{padding:26px 24px}
  .cb-list li{padding:20px 22px}
  .form-grid{grid-template-columns:1fr}
}
@media(max-width:640px){
  .wrap,.wrap-n{padding:0 22px}
  body{font-size:14.5px}
  .sec{padding:70px 0}
  .topbar .topbar-l span.hide-s{display:none}
  .intro{padding:82px 0 70px}
  .research{padding:88px 0}
  .statement{padding:110px 0}
  .cta{padding:84px 0}
  .band-grid{grid-template-columns:1fr 1fr}
  .band-cell:nth-child(n+3){display:none}
  .dual-body{padding:42px 30px}
  .f-top{grid-template-columns:1fr}
  .f-bot{flex-direction:column;align-items:flex-start}
  .stat .n{font-size:34px}
  .pr-item{grid-template-columns:38px 1fr auto;gap:12px}
  .nlist li{grid-template-columns:1fr;gap:6px}
  .topic-list a{grid-template-columns:1fr;gap:6px}
  .topic-list .ar{display:none}
  .team-grid,.honor-grid,.svc-grid,.grid-4,.grid-5{grid-template-columns:1fr}
  /* HERO 主题屏：窄屏收窄说明段行距，别让文字挤成一整块 */
  .hp-desc{font-size:13.5px;line-height:1.95}
  .hero-dots{bottom:70px}
  /* 说明段在窄屏会多折两行，头图再留高点，别让统计位顶到指示器 */
  .hero{min-height:660px}
}

/* ===================== 锚点偏移与可访问性 ===================== */
/* 固定页头下，锚点定位不被遮挡 */
section[id],.prose[id]{scroll-margin-top:86px}

/* 键盘导航时给出可见焦点（鼠标点击不显示） */
a:focus-visible,button:focus-visible,
input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:2px solid var(--accent);outline-offset:3px;border-radius:1px;
}

/* 尊重系统「减少动态效果」设置 */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
}

/* ===================== 学术活动 / 研讨沙龙 ===================== */
/* 精选研讨（大图卡片） */
.ev-fgrid{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.ev-fcard{position:relative;display:flex;flex-direction:column;border:1px solid var(--line);background:#fff;overflow:hidden;transition:.45s var(--ease)}
/* 悬停语言与全站卡片统一：accent 顶边 + 底色，而不是全站唯一的一处投影 */
.ev-fcard::before{content:"";position:absolute;left:0;top:0;width:0;height:2px;background:var(--accent);transition:.6s var(--ease);z-index:2}
.ev-fcard:hover::before{width:100%}
.ev-fcard:hover{background:var(--bg-soft);border-color:#DADEE3}
.ev-fcard .ph{width:100%;aspect-ratio:16/10;background-color:#E9ECEF;position:relative;background-position:center;background-size:cover;background-repeat:no-repeat;filter:var(--img-filter)}
.ev-fcard .fb{padding:26px 28px 30px}
.ev-fcard .ft{font-size:19px;font-weight:500;line-height:1.62;letter-spacing:.03em;color:var(--ink);margin:14px 0 0}
.ev-fcard .fs{font-size:13.5px;color:var(--ink-2);line-height:1.95;margin-top:14px}
.ev-fcard .flink{display:inline-block;margin-top:16px;font-size:13px;color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(168,69,42,.35);padding-bottom:2px;transition:.3s}
.ev-fcard .flink:hover{border-bottom-color:var(--accent)}
.ev-fcard.lead{grid-column:1 / -1;flex-direction:row}
.ev-fcard.lead .ph{width:56%;aspect-ratio:auto;min-height:300px}
.ev-fcard.lead .fb{flex:1;display:flex;flex-direction:column;justify-content:center;padding:40px 46px}
.ev-fcard.lead .ft{font-size:26px;line-height:1.4}

/* 查看更多按钮 */
.ev-more-wrap{margin:54px 0 8px;text-align:center}
.ev-more-btn{position:relative;overflow:hidden;appearance:none;cursor:pointer;font-size:14px;letter-spacing:.14em;color:var(--ink);border:1px solid var(--ink);background:transparent;padding:15px 42px;transition:color .4s var(--ease)}
.ev-more-btn::after{content:"";position:absolute;inset:0;background:var(--ink);transform:translateY(101%);transition:transform .4s var(--ease);z-index:1}
.ev-more-btn:hover{color:#fff}
.ev-more-btn:hover::after{transform:translateY(0)}
.ev-more-btn .t{position:relative;z-index:2}

/* 全部研讨（年分组列表，默认隐藏） */
.ev-all{margin-top:24px}
.ev-ygroup{margin-bottom:8px}
.ev-yhead{display:flex;align-items:baseline;gap:14px;margin:46px 0 4px;padding-bottom:14px;border-bottom:2px solid var(--ink)}
.ev-yhead .y{font-family:var(--serif);font-size:13px;letter-spacing:.2em;color:var(--accent)}
.ev-yhead h3{font-size:24px;font-weight:400;letter-spacing:.08em;margin:0}
.ev-yhead .c{margin-left:auto;font-size:13px;color:var(--ink-3)}
.ev-list{border-top:1px solid var(--line)}
.ev-item{position:relative;display:grid;grid-template-columns:150px 1fr;gap:28px;padding:26px 8px;border-bottom:1px solid var(--line);transition:background .3s var(--ease)}
.ev-item::before{content:"";position:absolute;left:0;top:0;bottom:0;width:0;background:var(--accent);transition:width .35s var(--ease)}
.ev-item:hover::before{width:2px}
.ev-item:hover{background:var(--bg-soft)}
.ev-thumb{width:150px;height:100px;background-color:#E9ECEF;background-position:center;background-size:cover;background-repeat:no-repeat;filter:var(--img-filter)}
.ev-body{min-width:0}
.ev-top{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.ev-badge{flex:0 0 auto;font-size:11px;letter-spacing:.12em;color:var(--ink-3);border:1px solid var(--line);padding:3px 10px;white-space:nowrap}
.ev-date{font-family:var(--serif);font-size:12px;letter-spacing:.14em;color:var(--ink-3);white-space:nowrap}
.ev-title{font-size:17px;font-weight:500;letter-spacing:.02em;line-height:1.6;color:var(--ink);margin:10px 0 0}
/* 主办 / 承办信息：原本数据里有但一直没渲染，列表因而显得单薄。补上并限制两行。 */
.ev-role{
  margin-top:10px;font-size:13px;color:var(--ink-2);line-height:1.85;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.ev-sub{margin-top:10px;font-size:13.5px;color:var(--ink-2);line-height:1.9}
.ev-empty{margin-top:40px;color:var(--ink-3);font-size:14px;text-align:center}

.more-link{margin-top:18px;font-size:14px;letter-spacing:.04em}
.more-link a{color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(168,69,42,.35);padding-bottom:2px;transition:.3s}
.more-link a:hover{border-bottom-color:var(--accent)}

@media(max-width:768px){
  .ev-fgrid{grid-template-columns:1fr}
  .ev-fcard.lead{flex-direction:column}
  .ev-fcard.lead .ph{width:100%;aspect-ratio:16/9;min-height:0}
  .ev-fcard.lead .fb{padding:24px 22px}
  .ev-fcard.lead .ft{font-size:22px}
  .ev-item{grid-template-columns:108px 1fr;gap:16px;padding:22px 4px}
  .ev-thumb{width:108px;height:80px}
  .ev-yhead{flex-wrap:wrap;gap:8px 14px}
  .ev-yhead .c{margin-left:0;width:100%}
  .ev-yhead h3{font-size:20px}
}

/* ============ 学术活动：筛选栏 + 可展开条目（events.html #full）============
   30 场活动若每场配大图，页面会到上万像素；筛选型页面靠信息密度取胜，
   故全量区改用「小缩略图 + 信息 + 行内展开详情」的紧凑条目。 */
.evfilter{border:1px solid var(--line);background:#fff;border-radius:12px;
  padding:16px 24px 18px;margin-bottom:38px;position:sticky;top:0;z-index:5;
  box-shadow:0 12px 34px -26px rgba(16,24,32,.4)}
.evfilter-row{display:flex;align-items:flex-start;gap:18px;padding:9px 0;border-bottom:1px dashed #EDF0F2}
.evfilter-row:last-of-type{border-bottom:0}
.evfilter-lb{flex:none;width:76px;padding-top:7px;font-size:12.5px;letter-spacing:.08em;color:var(--ink-3)}
.evchips{display:flex;flex-wrap:wrap;gap:8px;align-items:center;flex:1}
.evchip{appearance:none;cursor:pointer;font:inherit;font-size:13px;color:var(--ink-2);
  background:var(--soft);border:1px solid transparent;border-radius:20px;padding:6px 15px;
  transition:.28s var(--ease)}
.evchip:hover{background:#E8ECF0;color:var(--ink)}
.evchip.on{background:var(--dark);color:#fff;border-color:var(--dark)}
.evchip.reset{background:transparent;border-color:var(--line);color:var(--ink-3)}
.evchip.reset:hover{border-color:var(--ink);color:var(--ink)}
.evsearch{flex:1;min-width:220px;max-width:380px;font:inherit;font-size:13px;color:var(--ink);
  background:#fff;border:1px solid var(--line);border-radius:20px;padding:7px 16px}
.evsearch:focus{outline:none;border-color:var(--ink)}
.evsearch::placeholder{color:var(--ink-3)}
.evcount{margin-top:14px;font-size:12.5px;color:var(--ink-3)}
.evcount b{color:var(--accent);font-size:15px;margin:0 3px}

.evrow{border-bottom:1px solid var(--line);background:#fff;transition:background .3s var(--ease)}
.evrow:hover{background:var(--bg-soft)}
.evr-main{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:26px;
  align-items:center;padding:20px 10px}
.evr-thumb{width:150px;height:96px;background-color:#E9ECEF;background-position:center;
  background-size:cover;background-repeat:no-repeat;filter:var(--img-filter)}
.evr-info{min-width:0}
.evr-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:9px}
.ev-dir{font-size:12px;color:var(--ink-3)}
.evr-title{margin:0 0 8px;font-size:16.5px;font-weight:500;line-height:1.65;
  letter-spacing:.02em;color:var(--ink)}
.evr-role{font-size:12.5px;color:var(--ink-3)}
.evr-btn{flex:none;appearance:none;cursor:pointer;font:inherit;font-size:12.5px;color:var(--ink-2);
  background:transparent;border:1px solid var(--line);border-radius:20px;padding:6px 14px;
  display:inline-flex;align-items:center;gap:6px;transition:.28s var(--ease);white-space:nowrap}
.evr-btn:hover{border-color:var(--ink);color:var(--ink)}
.evr-btn i{font-style:normal;transition:transform .3s var(--ease)}
.evr-btn.open i{transform:rotate(180deg)}
.evr-detail{padding:2px 10px 26px 186px;border-top:1px dashed #EDF0F2;background:var(--bg-soft)}
.evr-detail dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px 34px;margin:20px 0 16px}
.evr-detail dl>div{display:flex;gap:12px;align-items:baseline}
.evr-detail dt{flex:none;width:80px;font-size:12.5px;color:var(--ink-3)}
.evr-detail dd{margin:0;font-size:13px;color:var(--ink-2);line-height:1.75}
.evr-src{display:inline-block;font-size:13px;color:var(--accent);text-decoration:none;
  border-bottom:1px solid rgba(168,69,42,.35);padding-bottom:2px}
.evr-src.none{color:var(--ink-3);border-bottom:0}
@media(max-width:900px){
  .evfilter{position:static;padding:18px}
  .evfilter-row{flex-direction:column;gap:6px;padding:10px 0}
  .evfilter-lb{width:100%;padding-top:0}
  .evr-main{grid-template-columns:108px minmax(0,1fr);gap:16px;padding:18px 4px}
  .evr-thumb{width:108px;height:76px}
  .evr-btn{grid-column:1 / -1;justify-self:start}
  .evr-detail{padding:2px 4px 22px}
  .evr-detail dl{grid-template-columns:1fr}
}


/* ===================== 业务领域总览：报头 + 五层服务体系大图 ===================== */
/* 报头：原来是与其它页一致的 .sec-head（左右对齐、标题 34px），在这一页略显平。
   改为不对称双栏 masthead —— 标题放大到 48px 量级、英文副题给足字距，
   右栏放导语 + 两个数据锚点，版面的"分量"由此建立。 */
.svc-mast{
  display:grid;grid-template-columns:minmax(0,1fr) 460px;gap:90px;align-items:end;
  padding-bottom:38px;border-bottom:1px solid var(--line);margin-bottom:44px;
}
.svc-mast-h{font-size:clamp(34px,4vw,48px);font-weight:400;line-height:1.22;letter-spacing:.1em;margin:24px 0 0}
.svc-mast-en{font-family:var(--serif);font-size:12px;letter-spacing:.34em;color:var(--ink-3);margin-top:18px;text-transform:uppercase}
.svc-mast-lead{color:var(--ink-2);font-size:14.5px;line-height:2.1;margin:0}
.svc-mast-figs{display:flex;align-items:center;gap:36px;margin-top:32px;padding-top:26px;border-top:1px solid var(--line)}
.svc-mast-figs .vr{display:block;width:1px;height:42px;background:var(--line)}
.svc-mast-figs b{display:block;font-family:var(--serif);font-size:34px;font-weight:400;line-height:1;letter-spacing:.02em}
.svc-mast-figs span{display:block;font-size:11.5px;color:var(--ink-3);letter-spacing:.18em;margin-top:9px}

/* 五层服务体系：12 栏不对称拼图 —— 首行一大一中，次行三等分。
   关键判断：这五张图（与全站头图同批）天空占了约一半画面，主体压在下方。
   所以文字放在**上方空域**、遮罩自上而下渐隐，箭头所指的主体留在下方不受遮挡；
   若照常规把文字放底部、遮罩自下而上压深，恰好会把主体压成一块黑。 */
.lyrs{display:grid;grid-template-columns:repeat(12,1fr);gap:12px;margin-bottom:78px}
.lyr{position:relative;display:block;overflow:hidden;background:var(--dark);text-decoration:none;color:#fff}
.lyr-1{grid-column:1 / 8;min-height:404px}
.lyr-2{grid-column:8 / 13;min-height:404px}
.lyr-3{grid-column:1 / 5;min-height:322px}
.lyr-4{grid-column:5 / 9;min-height:322px}
.lyr-5{grid-column:9 / 13;min-height:322px}
.lyr-img{
  position:absolute;inset:0;background-size:cover;background-position:center;background-repeat:no-repeat;
  filter:var(--img-filter) brightness(.92);
  transition:transform 1.5s var(--ease),filter .9s var(--ease);
}
.lyr:hover .lyr-img{transform:scale(1.045);filter:var(--img-filter) brightness(1.0)}
.lyr-veil{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(8,11,15,.82) 0%,rgba(8,11,15,.50) 32%,rgba(8,11,15,.10) 58%,rgba(8,11,15,0) 78%)}
/* 悬停补偿层：静止态刻意留亮（通透才大气），只在鼠标进入时再压一档，
   把「查看该层」从明亮的画面里托出来。实测最坏卡片对比度 2.32 -> 4.17。
   ::after 已用于 accent 底边，故这一层走 ::before。 */
.lyr::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;
  background:linear-gradient(180deg,rgba(8,11,15,.50) 0%,rgba(8,11,15,.34) 40%,rgba(8,11,15,.20) 62%,rgba(8,11,15,.10) 100%);
  transition:opacity .6s var(--ease)}
.lyr:hover::before{opacity:1}
/* 序号落在图片主体一侧的留白处，做大字号页码式的装饰 */
.lyr-no{position:absolute;bottom:18px;right:28px;font-family:var(--serif);font-size:52px;line-height:1;
  color:rgba(255,255,255,.42);text-shadow:0 1px 16px rgba(0,0,0,.45)}
.lyr-body{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:flex-start;padding:32px 34px 34px}
.lyr-k{font-family:var(--serif);font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:rgba(255,255,255,.72);display:flex;align-items:center;gap:10px}
.lyr-k em{font-style:normal;color:var(--accent-2)}
.lyr h3{font-size:19px;font-weight:400;letter-spacing:.12em;line-height:1.5;margin:13px 0 0}
.lyr p{font-size:12.5px;line-height:1.92;color:rgba(255,255,255,.78);margin:12px 0 0;max-width:430px}
.lyr-more{display:inline-flex;align-items:center;gap:9px;font-size:11.5px;letter-spacing:.18em;
  color:rgba(255,255,255,.88);margin-top:20px;opacity:0;transform:translateY(7px);transition:.5s var(--ease)}
.lyr-more i{font-style:normal}
.lyr:hover .lyr-more{opacity:1;transform:none}
/* 悬停语言与全站卡片保持一致：accent 底边展开，不做位移 / 投影 */
.lyr::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--accent);transition:width .65s var(--ease);z-index:3}
.lyr:hover::after{width:100%}

/* 16 项服务清单的小标题：在全出血大图块与下方清单之间做一次结构切分 */
.svc-sub{display:flex;align-items:baseline;justify-content:space-between;gap:40px;
  border-top:1px solid var(--line);padding-top:26px;margin-bottom:34px}
.svc-sub h3{font-size:15px;font-weight:400;letter-spacing:.16em;margin:0}
.svc-sub p{font-size:12.5px;color:var(--ink-3);letter-spacing:.04em;max-width:520px;text-align:right;margin:0}

@media(max-width:1180px){
  .svc-mast{grid-template-columns:minmax(0,1fr) 380px;gap:56px}
}
@media(max-width:992px){
  .svc-mast{grid-template-columns:1fr;gap:34px;align-items:start}
  .svc-mast-h{margin-top:18px}
  .lyr-1{grid-column:1 / 13;min-height:360px}
  .lyr-2,.lyr-3,.lyr-4,.lyr-5{grid-column:span 6;min-height:308px}
  .svc-sub{flex-direction:column;gap:10px}
  .svc-sub p{text-align:left}
}
@media(max-width:640px){
  .lyr-1,.lyr-2,.lyr-3,.lyr-4,.lyr-5{grid-column:1 / 13;min-height:264px}
  .lyr-body{padding:24px 22px 26px}
  .lyr h3{font-size:17px}
  .lyr-no{font-size:34px;bottom:14px;right:18px}
  .svc-mast-figs{gap:26px}
  .svc-mast-figs b{font-size:28px}
}

/* === 案例地图区：图片背景 + 暗化蒙版
   原用于 research.html #atlas；cases.html 的「行业案例地图」与其共用同一套，
   放在本所经办案例之后，靠深色通栏在视觉上明确切成两块互不包含的内容。 === */
#atlas,.atlas-band{position:relative;background-color:var(--dark);
  background-image:url('../img/Archipelago_scattered_islands__2026-10-02T14-33-20.jpg');
  background-size:cover;background-position:center}
#atlas::before,.atlas-band::before{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(13,18,28,.7) 0%,rgba(13,18,28,.6) 100%);z-index:0}
#atlas .wrap,.atlas-band .wrap{position:relative;z-index:1}
#atlas .atlas-title,#atlas .atlas-desc,#atlas .eyebrow.light,
.atlas-band .atlas-title,.atlas-band .atlas-desc,.atlas-band .eyebrow.light{text-shadow:0 1px 4px rgba(0,0,0,.45)}

/* === 数信法度三板块入口卡：卡片右下角「进入 →」 === */
.res-go{display:inline-flex;align-items:center;gap:8px;margin-top:24px;
  font-size:13px;color:var(--accent)}
.res-go i{font-style:normal;display:inline-block;transition:transform .4s var(--ease)}
.res-card:hover .res-go i{transform:translateX(5px)}

/* === 近期学术活动精简列表（research / achievements 共用）===
   不带图：这一层只是「近期动态」，图留给 events.html 的头条区抢视觉。 */
.evmini{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.evmini li{border-bottom:1px solid var(--line)}
.evmini a{display:flex;align-items:center;gap:26px;padding:22px 6px;
  text-decoration:none;color:inherit;transition:.35s var(--ease)}
.evmini a:hover{padding-left:14px;background:var(--bg-soft)}
.em-date{flex:none;width:86px;font-family:var(--serif);font-size:12px;
  letter-spacing:.06em;color:var(--ink-3)}
.em-main{flex:1;min-width:0}
.em-title{display:block;font-size:16px;line-height:1.65;margin-bottom:5px}
.em-meta{display:block;font-size:12.5px;color:var(--ink-3)}
.em-go{flex:none;color:var(--ink-3);transition:transform .35s var(--ease),color .35s var(--ease)}
.evmini a:hover .em-go{color:var(--accent);transform:translateX(4px)}
@media (max-width:760px){
  .evmini a{flex-wrap:wrap;gap:6px}
  .em-date{width:auto}
}

/* === 数信法度文库入口条（research.html #library 三图卡上方）
   纯文字引导条：不配图，避免与下方第一张文章卡重复，让照片成为唯一视觉焦点 === */
.lib-entry{display:flex;align-items:flex-end;justify-content:space-between;gap:48px;
  padding:0 0 26px;margin-bottom:44px;border-bottom:1px solid var(--line);
  text-decoration:none;color:inherit}
.le-body{max-width:760px;min-width:0}
.le-body .eyebrow{margin-bottom:10px}
.le-body h3{margin:0 0 10px;font-size:29px;letter-spacing:.01em}
.le-body p{margin:0;font-size:14px;line-height:1.85;color:var(--ink-2)}
.le-go{flex:none;font-size:14px;color:var(--ink);white-space:nowrap;padding-bottom:3px;
  transition:color .4s var(--ease)}
.le-go i{font-style:normal;margin-left:8px;display:inline-block;transition:transform .4s var(--ease)}
.lib-entry:hover .le-go{color:var(--accent)}
.lib-entry:hover .le-go i{transform:translateX(5px)}

/* === 深度文章「精选三篇」：三张并列铺满横屏的图片卡 ===
   压暗调淡、图片更亮更满，图上只留标题 */
.art-picks{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.art-pick{position:relative;display:block;min-height:520px;overflow:hidden;
  background:#0b111c;text-decoration:none;color:#fff}
.art-pick + .art-pick{border-left:1px solid rgba(255,255,255,.14)}
.ap-bg{position:absolute;inset:0;background-size:cover;background-position:center;
  transition:transform 1s var(--ease)}
.art-pick:hover .ap-bg{transform:scale(1.035)}
.art-pick::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(10,16,26,0) 0%,rgba(10,16,26,.10) 54%,rgba(10,16,26,.86) 100%)}
.ap-body{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;
  min-height:520px;padding:44px 36px}
.ap-title{margin:0;font-size:25px;line-height:1.5;font-weight:600;color:#fff;
  letter-spacing:.01em;text-shadow:0 2px 12px rgba(0,0,0,.6)}
@media (max-width:1080px){
  .lib-entry{flex-direction:column;align-items:flex-start;gap:16px}
  .le-body h3{font-size:24px}
  .art-picks{grid-template-columns:1fr}
  .art-pick + .art-pick{border-left:0;border-top:1px solid rgba(255,255,255,.14)}
  .art-pick,.ap-body{min-height:330px}
  .ap-title{font-size:21px;line-height:1.45}
}
