/* 蓝图/制图方向：图纸蓝线条 + 浅图纸底色 + 细网格，一切按图说话 */
:root{
--ink:#1b3a4b;        /* 图纸墨蓝：主文字与主色 */
--blue:#1d4e6b;       /* 图纸蓝：主色，来自晒图工艺 */
--paper:#f2f0e9;      /* 暖图纸底 */
--grid:#dcd9cf;       /* 图纸网格线 */
--line:#b9c9d4;       /* 细线 */
--accent:#8a5a2b;     /* 制图红棕：标注色 */
--muted:#5d6b74;      /* 次级文字 */
--fs-xs:12px;--fs-s:14px;--fs-m:16px;--fs-l:24px;--fs-xl:40px;--fs-hero:56px;
--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-6:24px;--sp-8:32px;--sp-12:48px;--sp-16:64px;
--mono:"Courier New",Courier,monospace;
--serif:"Songti SC","STSong","SimSun",serif;
--sans:"PingFang SC","Microsoft YaHei",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);font-size:var(--fs-m);line-height:1.75;color:var(--ink);
background:var(--paper);
background-image:repeating-linear-gradient(0deg,var(--grid) 0 1px,transparent 1px 32px),
repeating-linear-gradient(90deg,var(--grid) 0 1px,transparent 1px 32px);}
.wrap{max-width:1240px;margin:0 auto;padding:0 var(--sp-6)}
a{color:var(--blue)}
a:hover{color:var(--accent)}
a:focus-visible,button:focus-visible{outline:2px dashed var(--accent);outline-offset:2px}
img{max-width:100%;height:auto}
/* 页头 */
.site-header{border-bottom:2px solid var(--ink);background:var(--paper)}
.header-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-4);padding-top:var(--sp-4);padding-bottom:var(--sp-4)}
.brand img{display:block}
.site-header nav ul{list-style:none;display:flex;flex-wrap:wrap;gap:var(--sp-6)}
.site-header nav a{font-family:var(--mono);font-size:var(--fs-s);letter-spacing:.08em;text-decoration:none;padding:var(--sp-1) 0;border-bottom:2px solid transparent}
.site-header nav a:hover,.site-header nav a[aria-current="page"]{border-bottom-color:var(--accent)}
/* 面包屑 */
.breadcrumb{font-size:var(--fs-xs);letter-spacing:.06em;color:var(--muted);padding:var(--sp-4) 0;border-bottom:1px dashed var(--line)}
.breadcrumb a{color:var(--muted)}
.breadcrumb span{margin:0 var(--sp-2)}
/* 首屏变体 */
.hero{border-bottom:2px solid var(--ink);padding:var(--sp-16) 0}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--sp-12);align-items:center}
.kicker{font-family:var(--mono);font-size:var(--fs-s);letter-spacing:.25em;color:var(--accent);border-left:3px solid var(--accent);padding-left:var(--sp-3);margin-bottom:var(--sp-4)}
h1{font-family:var(--serif);font-size:var(--fs-hero);font-weight:900;line-height:1.2;letter-spacing:.02em}
.lede{font-size:var(--fs-m);max-width:64ch;margin:var(--sp-4) 0 var(--sp-6)}
.hero-fig figcaption{font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);margin-top:var(--sp-2)}
.page-hero{border-bottom:2px solid var(--ink)}
.page-hero.bigtype{background:var(--blue);color:#f6f4ec;padding:var(--sp-16) 0}
.page-hero.bigtype h1{color:#f6f4ec}
.page-hero.bigtype .lede{color:#e4e0d2}
.page-hero.bigtype a{color:#fff;text-decoration:underline}
.page-hero.block{background:var(--ink);color:#f6f4ec;padding:var(--sp-12) 0}
.page-hero.block h1{color:#f6f4ec;font-size:var(--fs-xl)}
.page-hero.split{padding:var(--sp-12) 0}
.split-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:var(--sp-12);align-items:center}
.split-media img{border:1px solid var(--ink);background:#fff}
.page-hero.editor{padding:var(--sp-12) 0}
.editor-grid{display:grid;grid-template-columns:220px 1fr;gap:var(--sp-8)}
.ed-label{border-right:1px dashed var(--line);padding-right:var(--sp-4)}
.ed-meta{font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);letter-spacing:.1em;margin-top:var(--sp-3)}
/* 区块标题 */
.sec-title{font-family:var(--serif);font-size:var(--fs-l);font-weight:900;border-bottom:2px solid var(--ink);display:inline-block;margin-bottom:var(--sp-6);padding-bottom:var(--sp-1)}
.sec-note{margin-bottom:var(--sp-6);color:var(--muted)}
/* 能力区 */
.caps{padding:var(--sp-16) 0}
.cap-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-6)}
.cap-grid article{border:1px solid var(--ink);background:rgba(255,255,255,.6);padding:var(--sp-6)}
.cap-grid article:nth-child(2){border-width:2px}
.cap-grid h3{font-size:var(--fs-m);font-weight:700;margin-bottom:var(--sp-3)}
/* 九宫格（契约规则，不得删改） */
.items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.item img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block}
@media(max-width:760px){.items{grid-template-columns:minmax(0,1fr)}}
.items-sec{padding:var(--sp-12) 0;border-top:1px dashed var(--line)}
.item{border:1px solid var(--line);background:rgba(255,255,255,.6);padding:var(--sp-4)}
.item h2{font-family:var(--serif);font-size:var(--fs-m);font-weight:700;margin:var(--sp-3) 0 var(--sp-2)}
.item ul{list-style:square;margin:var(--sp-2) 0 0 var(--sp-4);font-size:var(--fs-s);color:var(--muted)}
/* 流程 */
.process{padding:var(--sp-12) 0;border-top:1px dashed var(--line)}
.steps{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-6)}
.steps.vertical{grid-template-columns:1fr;gap:var(--sp-6)}
.steps li{border-top:3px solid var(--ink);padding-top:var(--sp-3)}
.steps span{font-family:var(--mono);color:var(--accent);letter-spacing:.15em}
.steps h3{font-size:var(--fs-m);margin:var(--sp-1) 0}
.steps p{font-size:var(--fs-s);color:var(--muted)}
/* FAQ */
.faq-sec,.faq-body{padding:var(--sp-12) 0}
.faq-list{display:grid;gap:var(--sp-3);max-width:70ch}
.faq-list details{border:1px solid var(--line);background:rgba(255,255,255,.6);padding:var(--sp-4)}
.faq-list summary{cursor:pointer;font-weight:700;font-size:var(--fs-s)}
.faq-list p{margin-top:var(--sp-2);font-size:var(--fs-s)}
.more-link{margin-top:var(--sp-6)}
/* CTA */
.cta{background:var(--ink);color:#f6f4ec;padding:var(--sp-12) 0;text-align:center;border-top:2px solid var(--blue)}
.cta h2{font-family:var(--serif);font-size:var(--fs-l);font-weight:900}
.cta p{margin-top:var(--sp-3)}
.cta a{color:#fff}
/* 按钮 */
.btn{display:inline-block;font-family:var(--mono);font-size:var(--fs-s);letter-spacing:.1em;text-decoration:none;color:var(--paper);background:var(--blue);border:1px solid var(--blue);padding:var(--sp-2) var(--sp-6);margin-right:var(--sp-3)}
.btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.ghost{background:transparent;color:var(--blue)}
.btn.ghost:hover{border-color:var(--accent);color:var(--accent)}
/* 内页正文 */
.about-body,.contact-body{padding:var(--sp-12) 0}
.about-grid{display:grid;grid-template-columns:1fr 2fr;gap:var(--sp-8)}
.about-fig img{border:1px solid var(--ink);background:#fff;position:sticky;top:var(--sp-6)}
.about-text section{margin-bottom:var(--sp-8);max-width:70ch}
.about-text h2{font-family:var(--serif);font-size:var(--fs-l);font-weight:900;margin-bottom:var(--sp-3)}
.two-col{display:grid;grid-template-columns:2fr 1fr;gap:var(--sp-8)}
.col-main>.sec-title{margin-top:var(--sp-6)}
.col-side figure img{border:1px solid var(--ink);background:#fff}
.col-side figcaption{font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);margin-top:var(--sp-2)}
.side-card{border:1px solid var(--ink);background:rgba(255,255,255,.6);padding:var(--sp-4);margin-top:var(--sp-6)}
.side-card h3{font-family:var(--serif);margin-bottom:var(--sp-2)}
.narrow{max-width:72ch}
.guide-body{padding:var(--sp-12) 0}
.guide-body h2{font-family:var(--serif);font-size:var(--fs-l);font-weight:900;margin:var(--sp-8) 0 var(--sp-3)}
.guide-body p{margin-bottom:var(--sp-4)}
table.cmp{width:100%;border-collapse:collapse;margin:var(--sp-6) 0;font-size:var(--fs-s)}
.cmp caption{font-family:var(--mono);font-size:var(--fs-xs);text-align:left;padding-bottom:var(--sp-2);color:var(--muted)}
.cmp th,.cmp td{border:1px solid var(--ink);padding:var(--sp-2) var(--sp-3);text-align:left;background:rgba(255,255,255,.6)}
.cmp th{font-family:var(--mono);letter-spacing:.05em}
.tiny{font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted)}
/* 页脚 */
.site-footer{border-top:2px solid var(--ink);padding:var(--sp-8) 0;margin-top:var(--sp-6)}
.site-footer nav{margin:var(--sp-2) 0;font-size:var(--fs-s)}
/* 响应式 */
@media(max-width:900px){
h1{font-size:var(--fs-xl)}
.hero-grid,.split-grid,.editor-grid,.cap-grid,.about-grid,.two-col{grid-template-columns:1fr}
.steps{grid-template-columns:repeat(2,minmax(0,1fr))}
.about-fig img{position:static}
}
@media(max-width:560px){.steps{grid-template-columns:1fr}}