:root{
  --paper:#f4efe4;
  --paper-2:#ece4d3;
  --ink:#2b2620;
  --ink-soft:#5c5347;
  --rust:#9a4a1e;
  --rust-deep:#7a3814;
  --line:#c8bda6;
  --fs-xs:12px;--fs-s:15px;--fs-m:18px;--fs-l:28px;--fs-xl:44px;--fs-xxl:64px;
  --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}
body{background:var(--paper);color:var(--ink);font-family:Georgia,"Songti SC","Noto Serif SC",serif;font-size:var(--fs-s);line-height:1.75}
.wrap{max-width:1280px;margin:0 auto;padding:0 var(--sp-5)}
a{color:var(--rust);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--rust-deep)}
a:focus-visible,button:focus-visible{outline:2px solid var(--rust);outline-offset:2px}
/* header */
.site-head{border-bottom:2px solid var(--ink);background:var(--paper)}
.head-in{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5);padding-top:var(--sp-4);padding-bottom:var(--sp-4);flex-wrap:wrap}
.site-head nav ul{display:flex;gap:var(--sp-5);list-style:none;flex-wrap:wrap}
.site-head nav a{color:var(--ink);font-size:var(--fs-s);letter-spacing:.08em;text-decoration:none;border-bottom:2px solid transparent;padding-bottom:2px}
.site-head nav a:hover{border-bottom-color:var(--rust)}
.site-head nav a[aria-current="page"]{border-bottom-color:var(--ink);font-weight:700}
/* breadcrumb */
.breadcrumb{font-size:var(--fs-xs);letter-spacing:.12em;color:var(--ink-soft);padding-top:var(--sp-4)}
.breadcrumb a{color:var(--ink-soft)}
.breadcrumb span{margin:0 var(--sp-2)}
/* hero variants */
.hero-split{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--sp-7);padding-top:var(--sp-7);padding-bottom:var(--sp-7);align-items:start}
.hero-plate,.hero-side{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-6);padding-top:var(--sp-6);padding-bottom:var(--sp-6);align-items:start}
.hero-side .hero-text{order:-1}
.plate{font-size:var(--fs-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);border-top:1px solid var(--ink);border-bottom:1px solid var(--line);padding:var(--sp-2) 0;margin-bottom:var(--sp-4)}
h1{font-size:var(--fs-xxl);line-height:1.15;font-weight:700;letter-spacing:.02em;margin-bottom:var(--sp-5)}
.accent{color:var(--rust)}
.lede{font-size:var(--fs-m);max-width:62ch;color:var(--ink);margin-bottom:var(--sp-5)}
.hero-fig img{width:100%;height:auto;border:1px solid var(--line);display:block}
.hero-fig figcaption{font-size:var(--fs-xs);letter-spacing:.1em;color:var(--ink-soft);padding-top:var(--sp-2)}
/* bands */
.band{padding-top:var(--sp-7);padding-bottom:var(--sp-7);border-top:1px solid var(--line)}
.band.alt{background:var(--paper-2)}
.h1{font-size:var(--fs-xl);line-height:1.2;margin-bottom:var(--sp-4)}
.h2{font-size:var(--fs-l);margin-bottom:var(--sp-5);letter-spacing:.03em}
/* capabilities */
.caps{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-6)}
.caps article{border-top:2px solid var(--ink);padding-top:var(--sp-4)}
.caps h2{font-size:var(--fs-m);margin-bottom:var(--sp-3)}
.caps span{color:var(--rust);font-size:var(--fs-s);margin-right:var(--sp-2);letter-spacing:.1em}
/* steps */
.steps{list-style:none;counter-reset:s;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-5)}
.steps li{counter-increment:s;border-left:2px solid var(--rust);padding-left:var(--sp-4)}
.steps li::before{content:counter(s,decimal-leading-zero);display:block;font-size:var(--fs-l);color:var(--rust);font-weight:700}
.steps strong{display:block;font-size:var(--fs-m);margin-bottom:var(--sp-1)}
.steps span{color:var(--ink-soft);font-size:var(--fs-s)}
/* 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;border:1px solid var(--line);filter:sepia(.12)}
.item h2{font-size:var(--fs-m);margin-top:var(--sp-3)}
.item p{font-size:var(--fs-s);color:var(--ink-soft);margin-top:var(--sp-1)}
.item ul{margin:var(--sp-2) 0 0 var(--sp-4);font-size:var(--fs-s);color:var(--ink)}
.item li{margin-bottom:var(--sp-1)}
@media(max-width:760px){.items{grid-template-columns:minmax(0,1fr)}}
.more{display:inline-block;margin-top:var(--sp-5);font-size:var(--fs-m);letter-spacing:.06em}
/* faqs */
.faqs div{border-top:1px solid var(--line);padding:var(--sp-4) 0}
.faqs dt{font-size:var(--fs-m);font-weight:700;margin-bottom:var(--sp-2)}
.faqs dd{max-width:68ch;color:var(--ink)}
.faq-long dd{margin-bottom:0}
/* table */
.cmp{width:100%;border-collapse:collapse;margin-top:var(--sp-5);font-size:var(--fs-s)}
.cmp caption{text-align:left;font-size:var(--fs-xs);letter-spacing:.12em;color:var(--ink-soft);padding-bottom:var(--sp-2)}
.cmp th,.cmp td{border:1px solid var(--line);padding:var(--sp-2) var(--sp-3);text-align:left}
.cmp th{background:var(--paper-2);font-weight:700}
/* article */
.article{padding-top:var(--sp-6);padding-bottom:var(--sp-8)}
.article h2{font-size:var(--fs-l);margin:var(--sp-6) 0 var(--sp-3)}
.article p{max-width:66ch;margin-bottom:var(--sp-3)}
.article ul{margin:0 0 var(--sp-3) var(--sp-5)}
/* buttons */
.btn{display:inline-block;background:var(--rust);color:#fff;padding:var(--sp-3) var(--sp-5);text-decoration:none;font-size:var(--fs-m);letter-spacing:.08em;border:1px solid var(--rust-deep)}
.btn:hover{background:var(--rust-deep);color:#fff}
.btn.ghost{background:transparent;color:var(--rust);border:1px solid var(--rust)}
.btn.ghost:hover{background:var(--rust);color:#fff}
/* cta */
.cta{border-top:2px solid var(--ink)}
.cta h2{font-size:var(--fs-xl);line-height:1.3;max-width:24ch;margin-bottom:var(--sp-5)}
/* footer */
.site-foot{border-top:2px solid var(--ink);margin-top:var(--sp-7)}
.foot-in{display:flex;justify-content:space-between;gap:var(--sp-5);padding-top:var(--sp-5);padding-bottom:var(--sp-5);flex-wrap:wrap;color:var(--ink-soft);font-size:var(--fs-s)}
.foot-in nav{display:flex;gap:var(--sp-4);flex-wrap:wrap}
.foot-in a{color:var(--ink-soft)}
/* responsive */
@media(max-width:900px){
  .hero-split,.hero-plate,.hero-side{grid-template-columns:1fr}
  .caps{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr 1fr}
  h1{font-size:var(--fs-xl)}
  .cta h2{font-size:var(--fs-l)}
}
@media(max-width:600px){
  .steps{grid-template-columns:1fr}
}
.contact-steps{grid-template-columns:repeat(2,1fr)}
@media(max-width:900px){.contact-steps{grid-template-columns:1fr}}