:root{
--ink:#1c2b33;--paper:#f5f3ee;--line:#d9d4c8;--accent:#a8551c;--accent-ink:#7c3d12;
--mono:"SFMono-Regular",Consolas,"Courier New",monospace;
--sp1:4px;--sp2:8px;--sp3:12px;--sp4:16px;--sp5:24px;--sp6:32px;--sp7:48px;--sp8:64px;
--fs-sm:.8125rem;--fs-md:1rem;--fs-lg:1.25rem;--fs-xl:1.75rem;--fs-2xl:2.5rem;--fs-3xl:4rem;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--paper);line-height:1.75;font-size:var(--fs-md)}
.wrap{max-width:1280px;margin:0 auto;padding:0 var(--sp5)}
h1,h2,h3{font-weight:700;line-height:1.25;letter-spacing:.01em}
h1{font-size:var(--fs-2xl)}h2{font-size:var(--fs-xl)}h3{font-size:var(--fs-lg)}
p{max-width:66ch}
a{color:var(--accent-ink);text-decoration:underline;text-underline-offset:3px}
a:hover{color:var(--accent)}
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.btn{display:inline-block;background:var(--ink);color:var(--paper);padding:var(--sp3) var(--sp5);text-decoration:none;font-weight:700;border:2px solid var(--ink)}
.btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--paper)}
.kicker{font-family:var(--mono);font-size:var(--fs-sm);letter-spacing:.12em;color:var(--accent-ink);text-transform:uppercase}
.secno{font-family:var(--mono);color:var(--accent-ink);margin-right:var(--sp3);font-weight:400}
.secnote{color:#5a676e;font-size:var(--fs-sm)}
/* header */
.site-head{border-bottom:2px solid var(--ink);background:var(--paper)}
.head-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp4);padding-top:var(--sp4);padding-bottom:var(--sp4)}
.head-row nav a{margin-left:var(--sp4);text-decoration:none;font-weight:500}
.head-row nav a:hover{text-decoration:underline}
.head-row nav a[aria-current]{border-bottom:3px solid var(--accent)}
/* breadcrumb */
.breadcrumb{font-size:var(--fs-sm);letter-spacing:.05em;padding:var(--sp4) 0;border-bottom:1px solid var(--line)}
.breadcrumb a{color:#5a676e;text-decoration:none}
.breadcrumb a:hover{color:var(--accent)}
.breadcrumb span{color:#8a9096;margin:0 var(--sp2)}
/* hero variants */
.hero{padding:var(--sp8) 0;border-bottom:1px solid var(--line)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:var(--sp6);align-items:center}
.hero .lede{margin:var(--sp5) 0;font-size:var(--fs-lg)}
.hero-index h1{font-size:var(--fs-3xl)}
.hero-about{background:var(--ink);color:var(--paper)}
.hero-about h1.giant{font-size:6rem;line-height:1.05;letter-spacing:.04em;color:var(--paper)}
.hero-about .lede{color:#d5d2ca;margin-top:var(--sp5);font-size:var(--fs-lg)}
.hero-services{background:var(--accent);color:#fff}
.hero-services h1{font-size:var(--fs-3xl);color:#fff}
.hero-services .lede{color:#fdeee2}
.hero-services a{color:#fff}
.hero-contact{padding-bottom:var(--sp7)}
.contact-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:var(--sp7)}
.hero-fig img{width:100%;height:auto;display:block;border:1px solid var(--line)}
/* metrics */
.metrics{border-bottom:1px solid var(--line)}
.metrics .wrap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp5);padding-top:var(--sp6);padding-bottom:var(--sp6)}
.metric{border-left:3px solid var(--accent);padding-left:var(--sp4)}
.metric .num{display:block;font-family:var(--mono);font-size:var(--fs-2xl);color:var(--accent-ink)}
.metric span:last-child{font-size:var(--fs-sm);color:#5a676e}
/* caps */
.caps{padding:var(--sp7) 0;border-bottom:1px solid var(--line)}
.cap{border-top:2px solid var(--ink);padding-top:var(--sp5);margin-top:var(--sp6)}
.cap h3{font-family:var(--mono);font-size:var(--fs-lg);letter-spacing:.06em}
.cap p{margin-top:var(--sp3)}
/* items grid */
.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;filter:saturate(.7) contrast(1.05)}
.item{border-top:2px solid var(--ink);padding-top:var(--sp4)}
.item h2,.item h3{margin-top:var(--sp3);font-size:var(--fs-lg)}
.item h2{font-family:var(--mono)}
.item p{margin-top:var(--sp2);font-size:var(--fs-md);color:#3d4a52}
.item ul{margin-top:var(--sp3);padding-left:var(--sp4);font-size:var(--fs-sm);color:#5a676e}
.item ul li{margin-bottom:var(--sp1)}
.services-brief{padding:var(--sp7) 0;border-bottom:1px solid var(--line)}
.services-brief .secnote{margin:var(--sp3) 0 var(--sp5)}
.items-sec{padding:var(--sp7) 0}
.items-sec .item{margin-bottom:0}
/* process / steps */
.process{padding:var(--sp7) 0;border-bottom:1px solid var(--line)}
.steps{list-style:none;counter-reset:st;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp5);margin-top:var(--sp5)}
.steps li{counter-increment:st;border-top:2px solid var(--accent);padding-top:var(--sp4)}
.steps li::before{content:"0" counter(st);font-family:var(--mono);color:var(--accent-ink);font-size:var(--fs-lg);display:block}
.steps h3{margin-top:var(--sp2)}
.steps p{margin-top:var(--sp2);font-size:var(--fs-md)}
.faq-home{padding:var(--sp7) 0;border-bottom:1px solid var(--line)}
.faq-home dt,.faq-page dt{font-weight:700;margin-top:var(--sp5);border-left:3px solid var(--accent);padding-left:var(--sp3)}
.faq-home dd,.faq-page dd{padding-left:var(--sp4);margin-top:var(--sp2);color:#3d4a52}
/* about */
.about-grid{padding:var(--sp7) 0;border-bottom:1px solid var(--line)}
.about-cols{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--sp6)}
.about-cols img{width:100%;height:auto;display:block;border:1px solid var(--line)}
.about-text article{margin-bottom:var(--sp6)}
.about-text h2{font-family:var(--mono);letter-spacing:.1em;color:var(--accent-ink);margin-bottom:var(--sp3)}
/* guide */
.guide-head{padding:var(--sp7) 0 var(--sp6)}
.guide-head h1{font-size:var(--fs-3xl)}
.guide-head .lede{margin-top:var(--sp5);font-size:var(--fs-lg)}
.guide-head img{width:100%;height:auto;display:block;border:1px solid var(--line);margin-top:var(--sp6)}
.guide-body{padding:var(--sp6) 0 var(--sp8);border-top:1px solid var(--line)}
.guide-body h2{margin:var(--sp6) 0 var(--sp3);font-size:var(--fs-xl)}
.guide-body p{margin-bottom:var(--sp4)}
.guide-body table{width:100%;border-collapse:collapse;margin:var(--sp5) 0;font-size:var(--fs-md)}
.guide-body caption{text-align:left;font-family:var(--mono);font-size:var(--fs-sm);color:var(--accent-ink);padding-bottom:var(--sp2)}
.guide-body th,.guide-body td{border:1px solid var(--line);padding:var(--sp2) var(--sp3);text-align:left}
.guide-body th{background:var(--ink);color:var(--paper)}
/* faq page */
.faq-page{padding:var(--sp7) 0 var(--sp8)}
.faq-page .lede{margin:var(--sp4) 0 var(--sp5)}
/* contact */
.contact-faq h2{margin:var(--sp6) 0 var(--sp3);border-top:2px solid var(--ink);padding-top:var(--sp4)}
/* cta */
.cta-end{padding:var(--sp8) 0;background:var(--ink);color:var(--paper)}
.cta-end h2{font-size:var(--fs-2xl);color:#fff}
.cta-end p{margin-top:var(--sp4);color:#d5d2ca}
.cta-end .btn{background:var(--accent);border-color:var(--accent);color:#fff;margin-top:var(--sp4)}
.cta-end .btn.ghost{background:transparent;border-color:#d5d2ca;color:#d5d2ca}
.cta-end .btn.ghost:hover{background:#fff;color:var(--ink);border-color:#fff}
/* footer */
.site-foot{border-top:2px solid var(--ink);padding:var(--sp6) 0}
.foot-grid{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--sp5)}
.foot-name{font-weight:700}
.foot-grid nav a{display:inline-block;margin-right:var(--sp4);text-decoration:none;font-size:var(--fs-sm)}
.foot-grid nav a:hover{text-decoration:underline}
@media(max-width:900px){
.hero-grid,.about-cols,.contact-split{grid-template-columns:minmax(0,1fr)}
.metrics .wrap{grid-template-columns:repeat(2,minmax(0,1fr))}
.steps{grid-template-columns:repeat(2,minmax(0,1fr))}
.hero-about h1.giant{font-size:3.5rem}
.hero-index h1,.hero-services h1,.guide-head h1{font-size:var(--fs-2xl)}
}
@media(max-width:760px){.items{grid-template-columns:minmax(0,1fr)}}
@media(max-width:560px){.metrics .wrap,.steps{grid-template-columns:minmax(0,1fr)}}