:root{
  --ink:#141414;
  --paper:#f4f1ea;
  --amber:#c47a12;
  --amber-deep:#8a540c;
  --line:#141414;
  --muted:#5c574e;
  --fs-1:.8125rem;
  --fs-2:1rem;
  --fs-3:1.25rem;
  --fs-4:1.75rem;
  --fs-5:2.625rem;
  --fs-6:clamp(2.4rem,6vw,4.25rem);
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  font-family:Georgia,"Songti SC","Noto Serif SC",serif;
  background:var(--paper);color:var(--ink);
  font-size:var(--fs-2);line-height:1.75;
}
h1,h2,h3,.kicker,.btn,nav{font-family:"Helvetica Neue",Arial,"PingFang SC","Microsoft YaHei",sans-serif}
.wrap{max-width:1280px;margin:0 auto;padding:0 var(--s5)}
a{color:var(--amber-deep);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--amber)}
a:focus-visible,button:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
/* header */
.site-header{border-bottom:3px solid var(--line);background:var(--paper);position:sticky;top:0;z-index:10}
.header-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s5);padding-top:var(--s4);padding-bottom:var(--s4);flex-wrap:wrap}
.site-header nav{display:flex;gap:var(--s5);flex-wrap:wrap}
.site-header nav a{text-decoration:none;font-size:var(--fs-1);letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.site-header nav a:hover{color:var(--amber)}
.site-header nav a[aria-current]{border-bottom:3px solid var(--amber)}
/* breadcrumb */
.breadcrumb{max-width:1280px;margin:0 auto;padding:var(--s4) var(--s5) 0;font-size:12px;letter-spacing:.08em;color:var(--muted)}
.breadcrumb a{color:var(--muted)}
.breadcrumb span{margin:0 var(--s2)}
/* hero variants — each page different */
.hero{padding:var(--s8) 0}
.hero-home .hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--s7);align-items:center}
.hero h1{font-size:var(--fs-6);line-height:1.1;font-weight:800;letter-spacing:-.01em;margin-bottom:var(--s5)}
.kicker{font-size:var(--fs-1);letter-spacing:.2em;text-transform:uppercase;color:var(--amber-deep);margin-bottom:var(--s4)}
.lead{max-width:64ch;margin-bottom:var(--s5)}
.hero img{width:100%;height:auto;border:3px solid var(--line)}
.hero-about .hero-split{display:grid;grid-template-columns:.9fr 1.1fr;gap:var(--s7);align-items:center}
.hero-about img{order:-1;border:3px solid var(--line);width:100%;height:auto}
.hero-services h1,.hero-contact h1,.hero-faq h1{border-left:12px solid var(--amber);padding-left:var(--s5)}
.hero-contact{background:var(--ink);color:var(--paper);margin-bottom:var(--s7)}
.hero-contact .lead{color:#d9d4c9}
.hero-contact a{color:var(--amber)}
.hero-faq{border-bottom:3px solid var(--line)}
.hero-actions{display:flex;gap:var(--s4);flex-wrap:wrap}
.btn{display:inline-block;background:var(--amber);color:#fff;padding:var(--s3) var(--s6);text-decoration:none;font-weight:700;font-size:var(--fs-3);border:3px solid var(--amber-deep)}
.btn:hover{background:var(--amber-deep);color:#fff}
.btn-ghost{background:transparent;color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--paper)}
/* sections */
.section{padding:var(--s8) 0}
.section h2{font-size:var(--fs-5);font-weight:800;margin-bottom:var(--s5);border-bottom:3px solid var(--line);padding-bottom:var(--s3)}
.section-note{color:var(--muted);margin-bottom:var(--s5)}
/* abilities */
.ability-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s6)}
.h-line{display:none}
.ability{border-top:3px solid var(--ink);padding-top:var(--s4)}
.ability h3{font-size:var(--fs-3);margin-bottom:var(--s3);color:var(--amber-deep)}
/* mini grid (9 items on home) */
.mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5)}
.mini-grid figure{margin:0}
.mini-grid img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block;filter:grayscale(35%) contrast(1.05)}
.mini-grid figcaption{font-family:"Helvetica Neue",Arial,"PingFang SC",sans-serif;font-weight:700;padding:var(--s2) 0;border-bottom:2px solid var(--ink)}
/* steps */
.steps{list-style:none;counter-reset:s;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s5)}
.steps li{border-left:3px solid var(--amber);padding-left:var(--s4)}
.steps h3{font-size:var(--fs-3);margin-bottom:var(--s2)}
.steps-col{grid-template-columns:1fr 1fr;gap:var(--s6)}
/* faq */
dl dt{font-family:"Helvetica Neue",Arial,"PingFang SC",sans-serif;font-weight:700;font-size:var(--fs-3);margin-top:var(--s5)}
dl dd{margin-top:var(--s2);max-width:70ch}
.faq-list h2{margin-top:var(--s7)}
/* services 9-grid (contract) */
.items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.item{border:3px solid var(--line);padding:var(--s4)}
.item img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block}
.item h2{font-size:var(--fs-3);margin:var(--s3) 0 var(--s2);border:none;padding:0}
.item p{font-size:var(--fs-2);line-height:1.7}
.item ul{margin-top:var(--s3);padding-left:0;list-style:none}
.item li{font-size:var(--fs-1);font-family:"Helvetica Neue",Arial,"PingFang SC",sans-serif;padding:var(--s1) 0;border-top:1px solid var(--muted);color:var(--muted)}
@media(max-width:760px){.items{grid-template-columns:minmax(0,1fr)}}
/* about two col */
.about-cols{display:grid;grid-template-columns:1fr 1fr;gap:var(--s7)}
.about-cols h2{font-size:var(--fs-4)}
/* article */
.article .wrap{max-width:860px}
.article h2{font-size:var(--fs-4);margin-top:var(--s7)}
.article p{margin-top:var(--s4);max-width:68ch}
table{width:100%;border-collapse:collapse;margin-top:var(--s5);font-family:"Helvetica Neue",Arial,"PingFang SC",sans-serif;font-size:var(--fs-1)}
caption{text-align:left;color:var(--muted);padding-bottom:var(--s2)}
th,td{border:1px solid var(--line);padding:var(--s2) var(--s3);text-align:left}
th{background:var(--ink);color:var(--paper)}
/* cta */
.cta{background:var(--ink);color:var(--paper)}
.cta h2{color:var(--paper);border-color:var(--amber)}
.cta a.btn{color:#fff}
/* footer */
.site-footer{border-top:3px solid var(--line);padding:var(--s6) 0;margin-top:var(--s8)}
.footer-row{display:flex;justify-content:space-between;gap:var(--s5);flex-wrap:wrap;font-size:var(--fs-1)}
.site-footer nav{display:flex;gap:var(--s4);flex-wrap:wrap}
/* responsive */
@media(max-width:900px){
  .hero-home .hero-grid,.hero-about .hero-split,.about-cols,.steps-col{grid-template-columns:1fr}
  .ability-row,.mini-grid{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .ability-row,.mini-grid,.steps{grid-template-columns:1fr}
  .hero{padding:var(--s6) 0}
  .section{padding:var(--s6) 0}
}