/* =========================================================
   秦厚朴 官网 v0.9 · 视场
   装置：圆形视场 + 横向刻度线
   色彩：灰石纸面 / 厚朴紫褐 / 检验蓝（仅用于刻度、读数、图谱）
   字体定义见 fonts.css（基础子集 + 常用字切片）
   ========================================================= */

:root{
  --paper:#ECE8E1;--paper-2:#E2E2DE;--white:#F7F5F1;
  --ink:#1D1916;--bark:#2B1E1A;--bark-2:#3A2924;--oil:#8A5A3C;
  --mute:#6B635D;--line:rgba(29,25,22,.16);--line-d:rgba(239,230,220,.16);
  --cobalt:#2A3FC4;
  --serif:"QHP Serif","Noto Serif SC","Source Han Serif SC","Songti SC","STSong",serif;
  --sans:"PingFang SC","Microsoft YaHei","Noto Sans SC","Helvetica Neue",Arial,sans-serif;
  --mono:"QHP Mono","IBM Plex Mono",Consolas,"SFMono-Regular",monospace;
  --gut:clamp(20px,5vw,80px);--hd:68px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--hd) + 12px)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.8;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.modal-open,body.nav-open{overflow:hidden}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button{font:inherit;color:inherit}
main,footer{overflow-x:clip}
:focus-visible{outline:2px solid var(--cobalt);outline-offset:3px}
.mono{font-family:var(--mono);letter-spacing:.04em}
.keep-word{display:inline-block}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- 素材标注（审稿模式可见） ---------- */
.tag{display:none;align-items:center;gap:6px;font:400 11px/1.4 var(--mono);letter-spacing:.04em;padding:4px 8px;border:1px solid currentColor;border-radius:2px;white-space:nowrap}
html[data-review] .tag{display:inline-flex}
.tag.real{color:#2c6b4a}.tag.todo{color:#9a5a2a;border-style:dashed}
.dark .tag.real{color:#9fd3b6}.dark .tag.todo{color:#e2b48d}
.note{font:12px/1.6 var(--mono);color:var(--mute);letter-spacing:.04em}
.dark .note{color:#a89788}

/* ---------- 按钮 ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:46px;padding:0 22px;font-size:15px;border:1px solid var(--ink);border-radius:999px;transition:background .2s,color .2s;cursor:pointer;background:none;white-space:nowrap}
.btn.solid{background:var(--ink);color:var(--paper)}
.btn.solid:hover{background:var(--bark-2)}
.btn:not(.solid):hover{background:rgba(29,25,22,.06)}
.btn.sm{height:38px;padding:0 16px;font-size:14px}
.dark .btn{border-color:#E9DED2}
.dark .btn.solid{background:#E9DED2;color:var(--bark)}
.dark .btn:not(.solid):hover{background:rgba(233,222,210,.08)}
.link{display:inline-flex;gap:8px;align-items:center;border-bottom:1px solid currentColor;padding-bottom:2px;font-size:15px}
.link:hover{color:var(--oil)}
.acts{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.acts .tel{margin-left:8px;font:14px var(--mono);color:var(--mute)}

/* ---------- 页眉 ---------- */
.hd{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:30px;height:var(--hd);padding:0 var(--gut);background:rgba(236,232,225,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.logo{display:flex;align-items:center;margin-right:auto;flex-shrink:0}
.logo img{width:164px;height:auto}
.hd nav{display:flex;gap:26px;font-size:14px}
.hd nav a{padding:6px 0;border-bottom:1px solid transparent}
.hd nav a:hover{color:var(--oil)}
.hd nav a[aria-current]{border-color:var(--ink)}
.hd .tel{font:14px var(--mono);color:var(--mute)}
.menu{display:none;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:none;cursor:pointer;padding:0}
.menu span{display:block;width:16px;height:1px;background:var(--ink);box-shadow:0 5px 0 var(--ink),0 -5px 0 var(--ink);transition:.2s}
.hd.open .menu span{box-shadow:none;transform:rotate(45deg)}
.hd.open .menu span:after{content:"";display:block;width:16px;height:1px;background:var(--ink);transform:rotate(-90deg)}

/* ---------- 视场装置 ---------- */
.disc{position:relative;border-radius:50%;overflow:hidden;aspect-ratio:1;background:#0d0b0a}
.disc>img{width:100%;height:100%;object-fit:cover}
.reticle{position:absolute;left:-200vw;right:-200vw;top:50%;border-top:1px solid var(--line);pointer-events:none}
.dark .reticle{border-color:var(--line-d)}
.v-line{position:absolute;top:-8%;bottom:-8%;left:50%;border-left:1px solid rgba(255,255,255,.35);pointer-events:none}
.ret{position:absolute;inset:0;pointer-events:none}
.ret:before{content:"";position:absolute;left:-14%;right:-14%;top:50%;border-top:1px solid var(--cobalt)}
.ret:after{content:"";position:absolute;top:-6%;bottom:-6%;left:50%;border-left:1px solid var(--cobalt);opacity:.5}
.plate{position:relative;border-radius:50%;aspect-ratio:1;border:1px solid var(--ink);background:var(--white);overflow:hidden}
.plate svg{width:100%;height:100%;display:block}
.dark .plate{border-color:#E9DED2;background:var(--bark-2)}

/* ---------- 首页首屏 ---------- */
.hero{position:relative;min-height:calc(100svh - var(--hd));display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:auto 1fr auto auto;column-gap:24px;padding:36px var(--gut) 0;overflow:hidden}
.hero .meta{grid-column:1/-1;display:flex;justify-content:space-between;gap:20px;font:12px var(--mono);color:var(--mute);letter-spacing:.08em}
.hero h1{grid-column:1/7;grid-row:2;align-self:center;margin:0;font:900 clamp(84px,12.5vw,214px)/.98 var(--serif);letter-spacing:-.01em;position:relative;z-index:2}
.hero h1 span{display:block}
.hero h1 span+span{padding-left:.5em}
.hero .lede{grid-column:1/6;grid-row:3;padding:0 0 40px}
.hero .lede p{margin:0 0 26px;max-width:30em;font-size:17px;color:#3c3530}
.field{grid-column:7/13;grid-row:2/4;position:relative;align-self:center;justify-self:center;width:min(62vh,44vw);aspect-ratio:1;margin-bottom:60px}
.field>.disc{position:absolute;inset:0}
.field>.disc img{transform:scale(1.04)}
.field .mini{position:absolute;width:38%;left:-12%;bottom:-6%;border-radius:50%;overflow:hidden;box-shadow:0 0 0 10px var(--paper);aspect-ratio:1}
.field .mini svg{width:100%;height:100%;display:block}
.field .cap{position:absolute;right:-6%;top:-2%;display:flex;flex-direction:column;gap:8px;align-items:flex-end}
.field .cap2{position:absolute;left:-12%;bottom:-15%}
.index{grid-column:1/-1;grid-row:4;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink);margin:0 calc(var(--gut)*-1);padding:0 var(--gut)}
.index a{display:flex;gap:14px;align-items:baseline;padding:18px 18px 22px;border-right:1px solid var(--line)}
.index a:first-child{padding-left:0}
.index a:last-child{border-right:0}
.index i{font:normal 12px var(--mono);color:var(--mute)}
.index b{font:600 18px var(--serif);white-space:nowrap}
.index span{font-size:13px;color:var(--mute)}
.index a:hover b{color:var(--oil)}

/* ---------- 内页首屏 ---------- */
.ph{position:relative;display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;padding:36px var(--gut) 0;overflow:hidden;min-height:min(820px,calc(100svh - var(--hd)))}
.ph .meta{grid-column:1/-1;display:flex;justify-content:space-between;gap:20px;font:12px var(--mono);color:var(--mute);letter-spacing:.08em}
.ph .meta a:hover{color:var(--ink)}
.ph h1{grid-column:1/8;margin:56px 0 0;font:900 clamp(72px,10vw,176px)/.98 var(--serif);position:relative;z-index:2}
.ph h1 span{display:block}
.ph h1 span+span{padding-left:.5em}
.ph .lede{grid-column:1/6;padding:36px 0 48px}
.ph .lede p{margin:0 0 26px;max-width:30em;font-size:17px;color:#3c3530}
.ph .field{grid-column:8/13;grid-row:2/4;width:min(52vh,36vw);margin:40px 0 60px}
.ph .index{grid-row:auto;align-self:end}
.ph.dark{background:var(--bark);color:#EFE6DC}
.ph.dark .meta,.ph.dark .lede p{color:#cdbfb2}
.ph.dark .index{border-color:#EFE6DC}
.ph.dark .index a{border-color:var(--line-d)}
.ph.dark .index span,.ph.dark .index i{color:#a8988b}
.ph.dark .field .mini{box-shadow:0 0 0 10px var(--bark)}

/* ---------- 段落标题 ---------- */
.sec{position:relative}
.sec-head{display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:end;padding:140px var(--gut) 56px}
.sec-head .no{grid-column:1/3;font:12px var(--mono);color:var(--mute);letter-spacing:.1em;align-self:start;padding-top:18px;border-top:1px solid currentColor}
.sec-head h2{grid-column:3/10;min-width:0;margin:0;font:900 clamp(40px,5vw,84px)/1.14 var(--serif);text-wrap:balance}
.sec-head h2 em{font-style:normal;color:var(--cobalt)}
.sec-head p{grid-column:10/13;margin:0;color:var(--mute);font-size:15px}
.dark .sec-head .no,.dark .sec-head p{color:#a89f96}
.sec-head.tight{padding-top:96px}
.kicker{font:12px var(--mono);letter-spacing:.12em;color:var(--mute);margin:0 0 18px}
.dark .kicker{color:#b49e8c}
.h-xl{margin:0 0 24px;font:900 clamp(60px,7.6vw,128px)/1 var(--serif)}
.h-l{margin:0 0 20px;font:900 clamp(40px,4.6vw,72px)/1.14 var(--serif);text-wrap:balance}
.h-m{margin:0 0 12px;font:900 clamp(28px,2.8vw,40px)/1.2 var(--serif)}
.say{font:600 clamp(22px,2.2vw,30px)/1.6 var(--serif);margin:0 0 28px}
.body-copy{max-width:30em;margin:0 0 36px}
.dark .body-copy{color:#cdbfb2}
.muted{color:var(--mute)}

/* ---------- 左右分栏（圆 + 文字） ---------- */
.split{display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;padding:0 var(--gut) 140px;align-items:center}
.split .vis{grid-column:1/7;position:relative}
.split .txt{grid-column:8/13}
.split.flip .vis{grid-column:7/13;order:2}
.split.flip .txt{grid-column:1/6;order:1}
.split .vis.bleed{width:calc(100% + var(--gut) + 5vw);max-width:680px;margin-left:calc(var(--gut)*-1 - 5vw)}
.split.flip .vis.bleed{margin-left:0;margin-right:calc(var(--gut)*-1 - 5vw)}
.split .vis .tag{position:absolute;right:8%;bottom:8%}
.zoom img{transform:none}

/* ---------- 剂型圆阵 ---------- */
.forms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:44px}
.forms.lg{gap:clamp(20px,4vw,64px);padding:0 var(--gut) 120px;margin:0}
.forms figure{margin:0}
.forms figcaption{margin-top:14px;text-align:center}
.forms figcaption b{display:block;font:600 20px var(--serif)}
.forms figcaption span{display:block;font-size:13px;color:var(--mute);line-height:1.6}
.forms.lg figcaption{text-align:left;display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:baseline}
.forms.lg figcaption i{font:normal 12px var(--mono);color:var(--cobalt)}
.forms.lg figcaption b{font-size:28px}
.forms.lg figcaption span,.forms.lg figcaption .tag,.forms.lg figcaption .link{grid-column:2;justify-self:start}
.forms.lg figcaption span{font-size:14px;max-width:22em}
.forms.lg figcaption .link{margin-top:10px;font-size:14px}
.forms .disc img{transition:transform .6s}
.forms a:hover .disc img{transform:scale(1.04)}

/* ---------- 步骤 ---------- */
.steps{list-style:none;margin:0;padding:0;border-top:1px solid currentColor}
.steps li{display:grid;grid-template-columns:56px 120px 1fr;gap:12px;padding:16px 0;border-bottom:1px solid var(--line);font-size:15px}
.steps i{font:normal 12px var(--mono);color:var(--mute);padding-top:3px}
.steps b{font-weight:600}
.steps span{color:var(--mute)}
.dark .steps li{border-color:var(--line-d)}
.dark .steps span,.dark .steps i{color:#a8988b}
.proc{display:grid;grid-template-columns:repeat(var(--n,5),1fr);margin:0 var(--gut);padding:0;list-style:none;border-top:1px solid currentColor}
.proc li{position:relative;padding:22px 20px 0 0}
.proc li:before{content:"";position:absolute;left:0;top:-5px;width:9px;height:9px;border-radius:50%;background:var(--paper);border:1px solid currentColor}
.dark .proc li:before{background:var(--bark)}
.proc i{display:block;font:normal 12px var(--mono);color:var(--mute);margin-bottom:28px}
.proc b{display:block;font:600 22px/1.3 var(--serif);margin-bottom:8px}
.proc span{display:block;font-size:14px;color:var(--mute);max-width:14em}
.dark .proc i,.dark .proc span{color:#a8988b}

/* ---------- 深色段 ---------- */
.dark{background:var(--bark);color:#EFE6DC}
.ink{background:var(--ink);color:#E9E3DA}
.band{display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;padding:0 var(--gut);min-height:92vh;align-items:stretch}
.band .txt{grid-column:1/6;padding:120px 0;display:flex;flex-direction:column;justify-content:center}
.band .img{grid-column:7/13;position:relative;margin-right:calc(var(--gut)*-1);min-height:520px}
.band .img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.band .img .tags{position:absolute;left:24px;bottom:24px;display:flex;gap:8px;flex-wrap:wrap}
.band .img .tag{background:rgba(43,30,26,.7)}
.band .lens{position:absolute;right:8%;top:10%;width:30%;aspect-ratio:1;border-radius:50%;border:1px solid rgba(255,255,255,.55);pointer-events:none}
.band .lens:after{content:"";position:absolute;left:-40%;right:-40%;top:50%;border-top:1px solid rgba(255,255,255,.35)}

/* ---------- 检验 ---------- */
.cool{background:var(--paper-2)}
.bridge{padding:0 var(--gut) 40px;font:600 clamp(22px,2.4vw,34px)/1.6 var(--serif);max-width:26em;margin:0}
.bridge small{display:block;font:13px/1.8 var(--sans);color:var(--mute);margin-top:12px;font-weight:400}
.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,4vw,64px);padding:0 var(--gut) 120px}
.three figure{margin:0}
.three .plate{border-color:var(--line)}
.three figcaption{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin-top:22px;align-items:baseline}
.three figcaption i{font:normal 12px var(--mono);color:var(--cobalt)}
.three figcaption b{font:600 26px var(--serif)}
.three figcaption span{grid-column:2;font-size:14px;color:var(--mute)}
.three figcaption .note,.three figcaption .tag{grid-column:2;justify-self:start;margin-top:6px}
.sheet{display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;padding:40px var(--gut) 0;align-items:start}
.sheet .scope{grid-column:1/6;position:sticky;top:110px}
.sheet .scope .tag{margin-top:18px}
.sheet .rows{grid-column:7/13}
.grp{margin-bottom:64px}
.grp h3{display:flex;align-items:baseline;gap:18px;margin:0 0 10px;font:900 clamp(32px,3.4vw,48px)/1.2 var(--serif)}
.grp h3 i{font:normal 13px var(--mono);color:var(--cobalt)}
.grp>p{margin:0 0 22px;color:var(--mute);font-size:15px;max-width:32em}
.tbl{width:100%;border-collapse:collapse;font-size:15px}
.tbl th,.tbl td{text-align:left;vertical-align:top;padding:14px 0;border-top:1px solid var(--line)}
.tbl tr:first-child th,.tbl tr:first-child td{border-top:1px solid var(--ink)}
.tbl th{width:34%;font-weight:600;padding-right:16px}
.tbl td{color:#4a433d}
.tbl td .mono{font-size:12px;color:var(--cobalt);display:block;margin-top:2px}
.chrom{padding:40px 0 0}
.chrom svg{width:100%;height:auto;display:block}
.chrom .lbl{display:flex;justify-content:space-between;gap:16px;padding:12px var(--gut) 120px}

/* ---------- 实景照片 ---------- */
.reel{display:grid;grid-template-columns:5fr 4fr 3fr;grid-template-rows:300px 300px;gap:12px;padding:0 var(--gut) 140px}
.reel figure{margin:0;position:relative;overflow:hidden;background:#000}
.reel img{width:100%;height:100%;object-fit:cover;filter:saturate(.82) contrast(1.04)}
.reel figure:nth-child(1){grid-column:1;grid-row:1/3}
.reel figure:nth-child(2){grid-column:3;grid-row:1}
.reel figure:nth-child(3){grid-column:2;grid-row:1/3}
.reel figure:nth-child(4){grid-column:3;grid-row:2}
.reel figcaption{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;align-items:end;gap:10px;padding:40px 16px 14px;background:linear-gradient(transparent,rgba(0,0,0,.62));font-size:14px;color:#F3EEE7}
.reel figcaption .tag{background:rgba(0,0,0,.4);color:#9fd3b6}
.reel.wide{grid-template-columns:repeat(3,1fr);grid-template-rows:auto}
.reel.wide figure{grid-column:auto!important;grid-row:auto!important;aspect-ratio:4/3}
.reel.wide figure.big{grid-column:span 2!important;grid-row:span 2!important;aspect-ratio:auto}
.reel.reel-two{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto}
.reel.reel-two figure:nth-child(n){grid-column:auto;grid-row:auto;aspect-ratio:4/3}
.reel.reel-three{grid-template-columns:1.2fr 1fr;grid-template-rows:240px 240px}
.reel.reel-three figure:nth-child(1){grid-column:1;grid-row:1/3}
.reel.reel-three figure:nth-child(2){grid-column:2;grid-row:1}
.reel.reel-three figure:nth-child(3){grid-column:2;grid-row:2}
.split.text-only .txt{grid-column:3/11}

/* ---------- 能力矩阵 ---------- */
.cap3{display:grid;grid-template-columns:repeat(3,1fr);margin:0 var(--gut) 140px;border-top:1px solid var(--ink)}
.cap3 article{padding:36px 32px 40px 0;border-right:1px solid var(--line)}
.cap3 article+article{padding-left:32px}
.cap3 article:last-child{border-right:0}
.cap3 i{font:normal 12px var(--mono);color:var(--mute)}
.cap3 h3{font:900 clamp(28px,2.8vw,40px)/1.2 var(--serif);margin:28px 0 14px}
.cap3 p{color:var(--mute);margin:0 0 20px;font-size:15px}
.cap3 ul{list-style:none;padding:0;margin:0 0 28px;font-size:15px}
.cap3 li{padding:10px 0;border-top:1px solid var(--line)}

/* ---------- 清单 ---------- */
.check{list-style:none;padding:0;margin:0;border-top:1px solid var(--ink);counter-reset:c}
.check li{display:grid;grid-template-columns:56px 1fr;padding:18px 0;border-bottom:1px solid var(--line);font-size:17px;counter-increment:c}
.check li:before{content:counter(c,decimal-leading-zero);font:12px var(--mono);color:var(--mute);padding-top:5px}

/* ---------- 线上接诊 + 登录 ---------- */
.online{display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;padding:140px var(--gut);align-items:start}
.online .txt{grid-column:1/6}
.mods{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--ink)}
.mods span{padding:12px 0;border-bottom:1px solid var(--line);font-size:15px}
.mods span i{font:normal 11px var(--mono);color:var(--mute);margin-right:10px}
.login{grid-column:7/13;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.login button{position:relative;display:flex;flex-direction:column;justify-content:space-between;align-items:center;aspect-ratio:1;padding:28px;border:1px solid var(--ink);border-radius:50%;text-align:center;transition:.25s;background:none;cursor:pointer}
.login button:hover{background:var(--ink);color:var(--paper)}
.login i{font:normal 12px var(--mono);color:var(--mute);margin-top:18%}
.login b{font:900 clamp(28px,3vw,44px)/1.1 var(--serif)}
.login span{font-size:13px;color:var(--mute);margin-bottom:18%}
.login button:hover i,.login button:hover span{color:#bdb3a8}
.login p{grid-column:1/-1;margin:6px 0 0;font-size:13px;color:var(--mute);text-align:center}

/* 系统界面示意 */
.screen{border:1px solid var(--ink);background:var(--white);border-radius:6px;overflow:hidden;font-size:13px;box-shadow:18px 18px 0 rgba(29,25,22,.06)}
.screen .bar{display:flex;align-items:center;gap:6px;padding:10px 14px;border-bottom:1px solid var(--line);font:11px var(--mono);color:var(--mute)}
.screen .bar i{width:8px;height:8px;border-radius:50%;border:1px solid var(--mute)}
.screen .bar b{margin-left:10px;font-weight:400}
.screen .body{display:grid;grid-template-columns:110px 1fr;min-height:260px}
.screen aside{border-right:1px solid var(--line);padding:12px 0}
.screen aside span{display:block;padding:7px 14px;color:var(--mute)}
.screen aside span.on{color:var(--ink);background:var(--paper);border-left:2px solid var(--ink)}
.screen .main{padding:14px 16px}
.screen .main h4{margin:0 0 12px;font:600 15px var(--serif)}
.screen table{width:100%;border-collapse:collapse;font-size:12px}
.screen th{font:400 11px var(--mono);color:var(--mute);text-align:left;padding:6px 6px 6px 0;border-bottom:1px solid var(--ink)}
.screen td{padding:8px 6px 8px 0;border-bottom:1px solid var(--line)}
.screen .ok{color:#2c6b4a}.screen .wait{color:var(--oil)}
.screen .foot{display:flex;justify-content:space-between;align-items:center;margin-top:12px;font-size:12px;color:var(--mute)}
.screen .foot b{background:var(--ink);color:var(--paper);font-weight:400;padding:6px 12px;border-radius:99px}
/* 保留圆形视场作为背景，让系统界面完整可读。 */
.ph.client-hero h1{grid-column:1/7;grid-row:2}
.ph.client-hero .lede{grid-row:3}
.ph.client-hero .field{grid-column:7/13;width:min(40vw,500px)}
.client-hero .field .screen{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);box-shadow:12px 12px 0 rgba(29,25,22,.06)}
.client-hero .field .cap{top:auto;bottom:-28px;right:0}
.mod-list{padding:0 var(--gut) 120px}
.mod{display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:center;padding:64px 0;border-top:1px solid var(--line)}
.mod .txt{grid-column:1/5}
.mod .screen{grid-column:6/13}
.mod:nth-child(even) .txt{grid-column:9/13;order:2}
.mod:nth-child(even) .screen{grid-column:1/8;order:1}
.mod ul{list-style:none;padding:0;margin:0;font-size:15px}
.mod li{padding:10px 0;border-top:1px solid var(--line)}
.mod li:before{content:"— ";color:var(--mute)}

/* ---------- 公告 ---------- */
.news{padding:0 var(--gut) 120px}
.news h2{font:12px var(--mono);letter-spacing:.12em;color:var(--mute);margin:0 0 18px;font-weight:400}
.notice-list a{display:grid;grid-template-columns:150px 120px 1fr 40px;gap:16px;padding:22px 0;border-top:1px solid var(--line);font-size:17px;align-items:baseline}
.notice-list a:last-child{border-bottom:1px solid var(--line)}
.notice-list time{font:13px var(--mono);color:var(--mute)}
.notice-list .c{font-size:13px;color:var(--oil)}
.notice-list b{font-weight:600}
.notice-list a:hover b{color:var(--oil)}

/* ---------- 文章 ---------- */
.article{display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;padding:56px var(--gut) 120px}
.article .back{grid-column:1/-1;font:12px var(--mono);color:var(--mute);letter-spacing:.08em;margin-bottom:64px}
.article .back:hover{color:var(--ink)}
.article .side{grid-column:1/4;font:12px/2 var(--mono);color:var(--mute);border-top:1px solid var(--ink);padding-top:14px;align-self:start;position:sticky;top:100px}
.article .side b{display:block;font-weight:400;color:var(--ink)}
.article .doc{grid-column:4/11}
.article h1{margin:0 0 40px;font:900 clamp(40px,5vw,76px)/1.15 var(--serif)}
.article .lead{font:600 clamp(20px,1.8vw,24px)/1.75 var(--serif);margin:0 0 48px}
.article h2{font:900 clamp(26px,2.4vw,34px)/1.3 var(--serif);margin:64px 0 16px}
.article p{margin:0 0 20px;font-size:17px;line-height:1.95;color:#3c3530}
.article figure{margin:40px 0}
.article figure img{width:100%}
.article figcaption{display:flex;justify-content:space-between;gap:12px;margin-top:10px;font-size:13px;color:var(--mute)}
.article .pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.article .pair img{aspect-ratio:4/3;object-fit:cover}
.article .trio{display:grid;grid-template-columns:repeat(3,1fr);margin:32px 0;border-top:1px solid var(--ink)}
.article .trio div{padding:18px 18px 18px 0;border-right:1px solid var(--line)}
.article .trio div+div{padding-left:18px}
.article .trio div:last-child{border-right:0}
.article .trio b{display:block;font:600 20px var(--serif);margin-bottom:6px}
.article .trio span{font-size:14px;color:var(--mute)}
.article .remark{border-left:2px solid var(--ink);padding:4px 0 4px 18px;font-size:15px;color:var(--mute)}

/* ---------- CTA ---------- */
.cta{display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:end;padding:120px var(--gut)}
.cta h2{grid-column:1/8;margin:0;font:900 clamp(44px,5.4vw,88px)/1.08 var(--serif)}
.cta .r{grid-column:9/13;display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.cta .r p{margin:0;color:var(--mute);font-size:15px}
.dark.cta .r p{color:#cdbfb2}

/* ---------- 联系 ---------- */
.contact{display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;padding:0 var(--gut) 140px;align-items:start}
.contact .info{grid-column:1/5}
.contact .info dl{margin:0;border-top:1px solid var(--ink)}
.contact .info div{padding:18px 0;border-bottom:1px solid var(--line)}
.contact .info dt{font:11px var(--mono);letter-spacing:.12em;color:var(--mute);margin-bottom:4px}
.contact .info dd{margin:0;font-size:16px}
.contact .info dd a:hover{color:var(--oil)}
.contact-form{grid-column:6/13;display:grid;grid-template-columns:1fr 1fr;gap:0 28px}
.contact-form .message-form-heading{grid-column:1/-1;margin-bottom:24px}
.contact-form .message-form-heading p{color:var(--mute);margin:0;font-size:15px}
.contact-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--mute);margin-bottom:28px}
.contact-form label.full{grid-column:1/-1}
.form-required{color:var(--oil);margin-left:2px}
.contact-form input,.contact-form select,.contact-form textarea{font:16px var(--sans);color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--ink);border-radius:0;padding:10px 0;outline:none;width:100%}
.contact-form select{appearance:none;-webkit-appearance:none;background:linear-gradient(45deg,transparent 50%,var(--ink) 50%) right 6px center/6px 6px no-repeat,linear-gradient(-45deg,transparent 50%,var(--ink) 50%) right 0 center/6px 6px no-repeat;padding-right:24px;cursor:pointer}
.contact-form textarea{min-height:140px;resize:vertical;border:1px solid var(--ink);padding:12px}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:var(--cobalt)}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:#9a918a}
.message-form-meta{grid-column:1/-1;display:flex;justify-content:space-between;font:12px var(--mono);color:var(--mute);margin:-16px 0 24px}
.privacy-check{grid-column:1/-1;flex-direction:row!important;align-items:flex-start;gap:10px!important;font-size:14px!important;color:#3c3530!important;margin-bottom:10px!important}
.privacy-check input{width:16px;height:16px;margin-top:5px;flex:none;accent-color:var(--ink)}
.privacy-link{border-bottom:1px solid currentColor}
.privacy-note{grid-column:1/-1;margin:0 0 28px;font-size:13px;color:var(--mute)}
.contact-form button[type=submit]{grid-column:1/-1;justify-self:start}
.contact-form button:disabled{opacity:.5;cursor:wait}
.form-status{grid-column:1/-1;margin:18px 0 0;font-size:14px;min-height:1em}
.form-status.error{color:#a33a24}
.form-status.success{color:#2c6b4a}
.honeypot-field{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------- 页脚 ---------- */
.ft{background:var(--bark);color:#E9DED2;padding:120px var(--gut) 32px}
.ft .big{display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:end;padding-bottom:80px;border-bottom:1px solid var(--line-d)}
.ft .big .k{grid-column:1/-1;font:12px var(--mono);letter-spacing:.12em;color:#a89788;margin:0 0 20px}
.ft .big a.ph-no{grid-column:1/9;font:400 clamp(48px,7.6vw,128px)/1 var(--mono);letter-spacing:-.02em}
.ft .big .r{grid-column:9/13;display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.ft .big .btn{border-color:#E9DED2}
.ft .big .btn.solid{background:#E9DED2;color:var(--bark)}
.ft .cols{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:24px;padding:36px 0;font-size:14px;color:#c4b6a8}
.ft .cols b{display:block;font:11px var(--mono);letter-spacing:.12em;color:#8e7e70;margin-bottom:10px;font-weight:400}
.ft .cols a{display:block;padding:2px 0}
.ft .cols a:hover{color:#fff}
.ft .cols .footer-logo{width:176px;max-width:100%;padding:0;margin-bottom:24px}
.footer-logo img{width:100%;height:auto}
.ft .legal{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-top:24px;border-top:1px solid rgba(233,222,210,.12);font-size:12px;color:#8e7e70}
.ft .legal a:hover{color:#E9DED2}

/* 手机底栏 */
.mbar{display:none}

/* 首页保留全部内容，以段落留白和图片尺寸调整阅读节奏。 */
.home-page .sec-head{padding-top:100px;padding-bottom:40px}
.home-page .split{padding-bottom:100px}
.home-page .three{padding-bottom:64px}
.home-page .grp{margin-bottom:40px}
.home-page .chrom .lbl{padding-bottom:80px}
.home-page .reel{grid-template-rows:auto;padding-bottom:100px}
.home-page>.news{padding-top:100px}
.home-page .online{padding-top:100px;padding-bottom:100px}

/* =================== 响应式 =================== */
@media (max-width:1180px){
  .hd nav{position:fixed;inset:var(--hd) 0 0;display:none;flex-direction:column;gap:0;padding:24px var(--gut);background:var(--paper);overflow:auto}
  .hd.open nav{display:flex}
  .hd nav a{font:900 34px/1.3 var(--serif);padding:14px 0;border-bottom:1px solid var(--line)}
  .hd nav a[aria-current]{border-color:var(--line);color:var(--oil)}
  .hd .tel{display:none}
  .menu{display:inline-grid}
}
@media (max-width:860px){
  :root{--hd:60px}
  body{font-size:15px}
  .hd{gap:12px}
  .logo img{width:132px}
  .hero,.ph{display:block;min-height:0;padding-top:24px}
  .hero{display:flex;flex-direction:column;padding-top:20px}
  .hero .meta span:last-child,.ph .meta span:last-child{display:none}
  .hero .meta{order:0}
  .hero h1{order:1;align-self:flex-start;font-size:clamp(68px,20vw,112px);margin:20px 0 0}
  .ph h1{font-size:clamp(64px,20vw,112px);margin:28px 0 0}
  .field,.ph .field{width:min(76vw,calc(100% - 24px));margin:34px 0 64px auto}
  .hero .field{order:3;align-self:flex-end;width:min(64vw,340px);margin:28px 12px 54px auto}
  .hero .lede{order:2;padding:18px 0 0}
  .hero .lede p{font-size:16px;margin-bottom:18px}
  .hero .index{order:4}
  .ph.client-hero .field{width:min(100%,420px);margin:32px auto 52px}
  .field .cap{right:0;top:auto;bottom:-46px;flex-direction:row;flex-wrap:wrap;justify-content:flex-end;max-width:100%}
  .field .cap .tag{white-space:normal;text-align:right}
  .field .cap2{display:none}
  .field .mini{left:-14vw;width:36%}
  .ph .lede{padding:20px 0 36px}
  .acts .tel{display:none}
  .index{grid-template-columns:1fr 1fr}
  .index a{padding:14px 0 16px 14px;border-bottom:1px solid var(--line)}
  .index a:nth-child(odd){padding-left:0}
  .index a:nth-child(2n){border-right:0}
  .index span{display:none}
  .sec-head{display:block;padding:96px var(--gut) 36px}
  .sec-head .no{display:inline-block;margin-bottom:18px;padding-top:10px}
  .sec-head h2{font-size:clamp(32px,9.2vw,64px)}
  .sec-head p{margin-top:18px}
  .split{display:block;padding-bottom:96px}
  .split .vis,.split.flip .vis{margin:0 0 40px}
  .split .vis.bleed{margin:0 0 40px -30vw;width:110vw}
  .split.flip .vis.bleed{margin:0 -30vw 40px 20vw;width:110vw}
  .forms{gap:10px}
  .forms figcaption b{font-size:16px}
  .forms figcaption span{font-size:12px}
  .forms.lg{grid-template-columns:1fr;gap:56px;padding-bottom:96px}
  .forms.lg figure .disc,.forms.lg figure .plate{width:78%}
  .steps li{grid-template-columns:36px 92px 1fr}
  .proc{grid-template-columns:1fr;border-top:0;border-left:1px solid currentColor;margin-left:calc(var(--gut) + 4px)}
  .proc li{padding:0 0 28px 24px}
  .proc li:before{left:-5px;top:6px}
  .proc i{margin-bottom:4px}
  .band{display:flex;flex-direction:column-reverse;padding:0}
  .band .img{margin:0;height:72vh;min-height:0}
  .band .txt{padding:64px var(--gut) 80px}
  .three{grid-template-columns:repeat(2,minmax(0,1fr));padding-bottom:72px}
  .three figure:first-child{grid-column:1/-1;width:64%;justify-self:center}
  .three figcaption b{font-size:20px}
  .three .tag{white-space:normal}
  .sheet{display:block;padding-top:24px}
  .sheet .scope{position:relative;top:0;width:80%;margin:0 auto 56px}
  .chrom .lbl{padding-bottom:80px;flex-direction:column}
  .reel,.reel.wide{grid-template-columns:1fr 1fr;grid-template-rows:auto;padding-bottom:96px}
  .reel figure:nth-child(n){grid-column:auto!important;grid-row:auto!important;aspect-ratio:3/4}
  .reel figure:nth-child(1){grid-column:1/-1!important;aspect-ratio:4/3}
  .reel figure:nth-child(4){grid-column:1/-1!important;aspect-ratio:16/9}
  .reel.wide figure.big{aspect-ratio:4/3}
  .reel.reel-two,.reel.reel-three{grid-template-columns:1fr;grid-template-rows:auto}
  .reel.reel-two figure:nth-child(n),.reel.reel-three figure:nth-child(n){grid-column:auto!important;grid-row:auto!important;aspect-ratio:4/3}
  .reel figcaption{font-size:12px;flex-direction:column;align-items:flex-start;padding:30px 12px 10px}
  .cap3{grid-template-columns:1fr;margin-bottom:96px}
  .cap3 article,.cap3 article+article{padding:28px 0;border-right:0;border-bottom:1px solid var(--line)}
  .online{display:block;padding:96px var(--gut)}
  .login{margin-top:48px}
  .login button{padding:12px}
  .mod{display:block;padding:48px 0}
  .mod .txt{margin-bottom:28px}
  .screen .body{grid-template-columns:1fr}
  .screen aside{display:none}
  .mod-list{padding-bottom:72px}
  .notice-list a{grid-template-columns:1fr auto;gap:4px 12px;font-size:16px}
  .notice-list time{grid-column:1}
  .notice-list .c{grid-column:2;grid-row:1;text-align:right}
  .notice-list b{grid-column:1/-1}
  .notice-list a>i{display:none}
  .article{display:block;padding-top:32px}
  .article .back{display:block;margin-bottom:36px}
  .article .side{position:relative;top:0;margin-bottom:36px}
  .article .pair,.article .trio{grid-template-columns:1fr}
  .article .trio div,.article .trio div+div{padding:16px 0;border-right:0;border-bottom:1px solid var(--line)}
  .cta{display:block;padding:88px var(--gut)}
  .cta .r{margin-top:28px}
  .contact{display:block;padding-bottom:96px}
  .contact .info{margin-bottom:64px}
  .contact-form{grid-template-columns:1fr}
  .ft{padding:88px var(--gut) 96px}
  .ft .big{display:block}
  .ft .big a.ph-no{display:block;font-size:clamp(36px,11vw,60px);margin-bottom:28px}
  .ft .cols{grid-template-columns:1fr 1fr}
  .ft .cols>div:first-child{grid-column:1/-1}
  .mbar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:55;background:var(--ink);color:var(--paper);height:calc(56px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom)}
  .mbar a,.mbar button{display:grid;place-items:center;font-size:15px;background:none;border:0;color:inherit;cursor:pointer}
  .mbar>*+*{border-left:1px solid rgba(255,255,255,.15)!important}
  .home-page .sec-head{padding-top:64px;padding-bottom:28px}
  .home-page .split{padding-bottom:64px}
  .home-page .band .img{height:clamp(280px,50svh,440px)}
  .home-page .band .txt{padding-top:48px;padding-bottom:64px}
  .home-page .three{padding-bottom:48px}
  .home-page .sheet .scope{width:65%;max-width:300px;margin-bottom:40px}
  .home-page .chrom .lbl{padding-bottom:56px}
  .home-page .reel{grid-template-rows:auto;padding-bottom:64px}
  .home-page .online{padding-top:64px;padding-bottom:64px}
  .home-page>.news{padding-top:64px}
}
@media (max-width:360px){
  .hd{gap:8px}
  .logo img{width:118px}
  .hd .btn.sm{font-size:13px;padding:0 12px}
  .menu{width:38px;flex-shrink:0}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{.hd,.mbar{display:none!important}}
.plate{color:var(--ink)}
.dark .plate,.ink .plate{color:#E9DED2}
.forms a{display:block}
/* 深墨色段落（与 .dark 同一套反色规则） */
.ink .btn{border-color:#E9DED2}
.ink .btn.solid{background:#E9DED2;color:var(--ink)}
.ink .kicker,.ink .sec-head .no,.ink .sec-head p{color:#a89f96}
.ink .tag.real{color:#9fd3b6}.ink .tag.todo{color:#e2b48d}
.ink .note{color:#a89f96}
.ink .proc i,.ink .proc span{color:#a89f96}
.ink .proc li:before{background:var(--ink)}
.ph.ink .meta,.ph.ink .lede p,.ph.ink .acts .tel{color:#bdb3a8}
.ph.ink .index{border-color:#E9E3DA}
.ph.ink .index a{border-color:var(--line-d)}
.ph.ink .index span,.ph.ink .index i{color:#a89f96}
.ph.ink .reticle{border-color:var(--line-d)}
.ph.cool .field .mini{box-shadow:0 0 0 10px var(--paper-2)}
.ph.ink .field .mini{box-shadow:0 0 0 10px var(--ink)}
.ink .sec-head .no{border-color:#a89f96}
/* 菜单展开时取消毛玻璃，否则 fixed 导航会被页眉裁切 */
.hd.open{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--paper)}
