:root{
  --ink:#1e2225;
  --ink-soft:#3d4348;
  --paper:#f2efe9;
  --panel:#e6e1d6;
  --line:#b9b2a3;
  --accent:#c2571f;
  --accent-dark:#8f3d12;
  --steel:#2b3742;
  --fs-xs:12px; --fs-s:14px; --fs-m:16px; --fs-l:22px; --fs-xl:34px; --fs-hero:clamp(44px,7vw,84px);
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px; --sp-7:48px; --sp-8:64px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  background:var(--paper);color:var(--ink);
  font-size:var(--fs-m);line-height:1.75;
}
img{max-width:100%;height:auto}
a{color:var(--accent-dark);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--accent)}
a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.wrap{max-width:1280px;margin:0 auto;padding:0 var(--sp-5)}

/* header */
.site-head{background:var(--steel);border-bottom:6px solid var(--accent)}
.head-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-4);padding-top:var(--sp-4);padding-bottom:var(--sp-4)}
.head-in nav{display:flex;flex-wrap:wrap;gap:var(--sp-4)}
.head-in nav a{color:var(--paper);text-decoration:none;font-size:var(--fs-s);letter-spacing:.14em;font-weight:600;padding:var(--sp-1) 0;border-bottom:2px solid transparent}
.head-in nav a:hover{border-bottom-color:var(--accent);color:#fff}
.head-in nav a[aria-current]{border-bottom-color:var(--accent)}

/* breadcrumb */
.breadcrumb{max-width:1280px;margin:var(--sp-4) auto 0;padding:0 var(--sp-5);font-size:var(--fs-xs);letter-spacing:.12em;color:var(--line)}
.breadcrumb a{color:var(--ink-soft)}
.breadcrumb span{margin:0 var(--sp-2)}

/* buttons */
.btn{display:inline-block;background:var(--accent);color:#fff;padding:var(--sp-3) var(--sp-6);text-decoration:none;font-weight:700;font-size:var(--fs-s);letter-spacing:.1em;border:2px solid var(--accent)}
.btn:hover{background:var(--accent-dark);border-color:var(--accent-dark);color:#fff}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--paper)}
.cta-row{display:flex;flex-wrap:wrap;gap:var(--sp-4);margin-top:var(--sp-5)}
.text-link{font-weight:700}

/* headings */
h1,h2,h3{line-height:1.25;font-weight:800;letter-spacing:.02em}
h2{font-size:var(--fs-xl);margin-bottom:var(--sp-5)}
h3{font-size:var(--fs-l)}
.kicker{font-size:var(--fs-xs);letter-spacing:.3em;color:var(--accent-dark);font-weight:700;text-transform:uppercase;margin-bottom:var(--sp-3)}

/* index hero: full color-block, text left, figure right on steel block */
.hero-block{background:var(--steel);color:var(--paper);border-bottom:8px solid var(--accent)}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--sp-7);align-items:center;padding-top:var(--sp-8);padding-bottom:var(--sp-8)}
.hero-text h1{font-size:var(--fs-hero);line-height:1.1;margin-bottom:var(--sp-5);letter-spacing:.01em}
.lead{font-size:var(--fs-s);max-width:38em;color:#d9d4c9}
.hero-block .btn.ghost{color:var(--paper);border-color:var(--paper)}
.hero-block .btn.ghost:hover{background:var(--paper);color:var(--ink)}
.hero-fig{border:4px solid var(--paper)}
.hero-fig img{display:block}

/* capability */
.band{padding:var(--sp-8) 0;border-bottom:1px solid var(--line)}
.cap-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-6)}
.cap{border-top:4px solid var(--accent);padding-top:var(--sp-4)}
.cap h3{margin-bottom:var(--sp-3)}
.cap p{font-size:var(--fs-s);color:var(--ink-soft)}

/* products */
.products{padding:var(--sp-8) 0;background:var(--panel);border-bottom:1px solid var(--line)}
.products .sub{font-size:var(--fs-s);color:var(--ink-soft);margin-bottom:var(--sp-6)}

/* nine-grid contract */
.items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.item{background:var(--paper);border:1px solid var(--line)}
.item img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block;border-bottom:3px solid var(--steel)}
.item h2,.item h3{font-size:var(--fs-l);padding:var(--sp-4) var(--sp-4) var(--sp-2)}
.item>p{padding:0 var(--sp-4) var(--sp-2);font-size:var(--fs-s);color:var(--ink-soft)}
.item ul{list-style:none;padding:0 var(--sp-4) var(--sp-4)}
.item li{font-size:var(--fs-xs);color:var(--ink-soft);padding-left:var(--sp-4);position:relative;margin-bottom:var(--sp-1)}
.item li::before{content:"";position:absolute;left:0;top:.6em;width:8px;height:8px;background:var(--accent)}
.item p:last-child{padding-bottom:var(--sp-4)}
.products .item>p:only-of-type{padding-bottom:var(--sp-4)}
@media(max-width:760px){.items{grid-template-columns:minmax(0,1fr)}}

/* process */
.process{padding:var(--sp-8) 0}
.steps{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-6);counter-reset:none}
.steps li{border-left:4px solid var(--accent);padding-left:var(--sp-4)}
.steps span{display:block;font-size:var(--fs-xl);font-weight:800;color:var(--accent);font-variant-numeric:tabular-nums}
.steps h3{margin:var(--sp-2) 0}
.steps p{font-size:var(--fs-s);color:var(--ink-soft)}

/* faq (index) */
.faq{padding:var(--sp-8) 0;background:var(--panel);border-top:1px solid var(--line)}
.qa{border-top:2px solid var(--steel);padding:var(--sp-5) 0}
.qa h2,.qa h3{font-size:var(--fs-l);margin-bottom:var(--sp-3)}
.qa p{font-size:var(--fs-s);max-width:65ch;color:var(--ink-soft)}

/* cta */
.cta{background:var(--accent);color:#fff;padding:var(--sp-8) 0;text-align:left}
.cta h2{color:#fff}
.cta .btn{background:#fff;color:var(--accent-dark);border-color:#fff}
.cta .btn:hover{background:var(--ink);border-color:var(--ink);color:#fff}

/* about stagger */
.about-hero{padding:var(--sp-8) 0;background:var(--steel);color:var(--paper);border-bottom:8px solid var(--accent)}
.stagger{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-7);align-items:end}
.stagger-text h1{font-size:var(--fs-hero);line-height:1.1;margin-bottom:var(--sp-5)}
.stagger-text p{font-size:var(--fs-s);color:#d9d4c9;max-width:36em}
.stagger-fig{transform:translateY(var(--sp-6))}
.stagger-fig img{display:block;border:4px solid var(--paper)}
.about-body{padding:var(--sp-8) 0}
.about-body h2{margin-top:var(--sp-7);border-left:6px solid var(--accent);padding-left:var(--sp-4)}
.about-body h2:first-of-type{margin-top:0}
.about-body p{font-size:var(--fs-s);max-width:65ch;color:var(--ink-soft);margin-bottom:var(--sp-4)}

/* services split hero */
.svc-hero{padding:var(--sp-8) 0;border-bottom:1px solid var(--line)}
.svc-split{display:grid;grid-template-columns:.8fr 1.2fr;gap:var(--sp-7);align-items:center}
.svc-split img{display:block;border:1px solid var(--line)}
.svc-split h1{font-size:clamp(34px,5vw,56px);line-height:1.15;margin-bottom:var(--sp-4)}
.svc-split p{font-size:var(--fs-s);color:var(--ink-soft);max-width:60ch}
.svc-list{padding:var(--sp-8) 0}
.svc-tail{margin-top:var(--sp-6);font-size:var(--fs-s);color:var(--ink-soft)}

/* contact: dark full-block hero */
.contact-hero{background:var(--steel);color:var(--paper);padding:var(--sp-8) 0;border-bottom:8px solid var(--accent)}
.contact-hero h1{font-size:clamp(38px,5vw,60px);margin-bottom:var(--sp-4)}
.contact-hero p{font-size:var(--fs-s);max-width:52em;color:#d9d4c9}
.contact-flow{padding:var(--sp-8) 0;border-bottom:1px solid var(--line)}
.contact-faq{padding:var(--sp-8) 0}

/* guide & faq article */
.guide,.faq-page{padding:var(--sp-6) 0 var(--sp-8)}
.guide-meta{font-size:var(--fs-xs);letter-spacing:.2em;color:var(--accent-dark);font-weight:700;margin:var(--sp-3) 0 var(--sp-5)}
.guide h1{font-size:clamp(34px,5vw,54px)}
.guide-intro{font-size:var(--fs-m);border-left:6px solid var(--accent);padding-left:var(--sp-4);max-width:65ch;margin-bottom:var(--sp-6)}
.guide h2{margin-top:var(--sp-7);border-top:3px solid var(--steel);padding-top:var(--sp-4)}
.guide p{font-size:var(--fs-s);max-width:65ch;color:var(--ink-soft);margin-bottom:var(--sp-4)}
.guide-tail{border-top:3px solid var(--steel);padding-top:var(--sp-5)}
.table-wrap{overflow-x:auto;margin-bottom:var(--sp-5)}
table{border-collapse:collapse;width:100%;min-width:640px;background:var(--paper);border:1px solid var(--line)}
caption{text-align:left;font-size:var(--fs-s);font-weight:700;color:var(--ink-soft);padding-bottom:var(--sp-3)}
th{background:var(--steel);color:var(--paper);text-align:left;font-size:var(--fs-s);padding:var(--sp-3) var(--sp-4);letter-spacing:.06em}
td{font-size:var(--fs-s);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--line);color:var(--ink-soft);vertical-align:top}
tbody tr:nth-child(odd){background:var(--panel)}

/* faq-page */
.faq-page .qa{border-top:2px solid var(--steel)}
.faq-page .qa h2{font-size:var(--fs-l);margin-bottom:var(--sp-3)}

/* footer */
.site-foot{background:var(--ink);color:var(--paper);margin-top:var(--sp-8);border-top:6px solid var(--accent)}
.foot-in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--sp-5);padding-top:var(--sp-6);padding-bottom:var(--sp-6)}
.foot-name{font-weight:800;letter-spacing:.06em}
.foot-note{font-size:var(--fs-xs);letter-spacing:.14em;color:#9aa0a6;margin-top:var(--sp-1)}
.site-foot nav{display:flex;flex-wrap:wrap;gap:var(--sp-4)}
.site-foot nav a{color:var(--paper);font-size:var(--fs-s);text-decoration:none;letter-spacing:.1em}
.site-foot nav a:hover{color:var(--accent)}

/* responsive */
@media(max-width:900px){
  .hero-grid,.stagger,.svc-split{grid-template-columns:minmax(0,1fr)}
  .cap-grid,.steps{grid-template-columns:minmax(0,1fr)}
  .stagger-fig{transform:none}
  .head-in{flex-direction:column;align-items:flex-start}
}
@media(max-width:600px){
  :root{--fs-xl:26px;--fs-l:19px}
}