:root{
  --bg:#F7F3EA; --panel:#EFE7D6; --wood:#D9C7A0; --ink:#2B2822; --ink-soft:#5A554A;
  --moss:#4F6148; --moss-dark:#3B4A36; --line:#C9BFA8;
  --fs-hero:clamp(2.2rem,6vw,4rem); --fs-h2:1.6rem; --fs-h3:1.15rem; --fs-body:1rem; --fs-small:.85rem; --fs-kicker:.8rem;
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:32px; --s7:48px; --s8:64px;
  --wrap:1280px;
}
*{box-sizing:border-box;margin:0}
body{font-family:"Songti SC","Noto Serif SC",Georgia,serif;background:var(--bg);color:var(--ink);line-height:1.75;font-size:var(--fs-body)}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--s5)}
h1,h2,h3{font-family:"PingFang SC","Noto Sans SC","Helvetica Neue",sans-serif;line-height:1.3}
a{color:var(--moss-dark)}
a:hover{color:var(--moss)}
a:focus-visible,summary:focus-visible{outline:2px solid var(--moss-dark);outline-offset:2px}
/* header */
.site-head{border-bottom:2px solid var(--ink);background:var(--bg)}
.head-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s4);padding-top:var(--s4);padding-bottom:var(--s4)}
.site-head nav{display:flex;flex-wrap:wrap;gap:var(--s4);font-family:"PingFang SC","Noto Sans SC",sans-serif;font-size:var(--fs-small);letter-spacing:.06em}
.site-head nav a{text-decoration:none;color:var(--ink);padding-bottom:2px;border-bottom:2px solid transparent}
.site-head nav a:hover{border-bottom-color:var(--moss)}
/* hero variants */
.hero-xl{display:grid;gap:var(--s6);padding:var(--s8) 0;align-items:center}
.hero-xl h1{font-size:var(--fs-hero);font-weight:900;letter-spacing:-.02em;max-width:18ch}
.kicker{font-family:"PingFang SC","Noto Sans SC",sans-serif;font-size:var(--fs-kicker);letter-spacing:.35em;text-transform:uppercase;color:var(--moss-dark);margin-bottom:var(--s3)}
.lead{max-width:64ch;color:var(--ink-soft);margin-top:var(--s4)}
.hero-img{width:100%;max-width:620px;height:auto;border:2px solid var(--ink);background:var(--wood)}
.hero-split{display:grid;gap:var(--s6);padding:var(--s7) 0;grid-template-columns:1.2fr .8fr;align-items:center}
.hero-split .hero-img{justify-self:end}
.hero-block{background:var(--wood);border-bottom:2px solid var(--ink);padding:var(--s7) 0}
.hero-block h1{font-size:var(--fs-hero);font-weight:900}
.hero-contact{display:grid;gap:var(--s6);padding:var(--s7) 0;grid-template-columns:1fr 1fr;align-items:center}
.hero-contact h1{font-size:var(--fs-hero);font-weight:900}
/* buttons */
.btn{display:inline-block;font-family:"PingFang SC","Noto Sans SC",sans-serif;font-weight:700;font-size:var(--fs-small);letter-spacing:.08em;padding:var(--s3) var(--s5);background:var(--moss);color:#fff;text-decoration:none;border:2px solid var(--moss-dark)}
.btn:hover{background:var(--moss-dark);color:#fff}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--bg)}
.cta-row{display:flex;gap:var(--s3);flex-wrap:wrap;margin-top:var(--s5)}
/* sections */
.band{border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);padding:var(--s7) 0;margin:var(--s7) 0}
section h2,article h2{font-size:var(--fs-h2);font-weight:800;margin-bottom:var(--s5)}
.cap-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5)}
.cap{border-left:4px solid var(--moss);padding-left:var(--s4)}
.cap h3{font-size:var(--fs-h3);margin-bottom:var(--s2)}
.cap p{color:var(--ink-soft)}
/* items grid */
.items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:var(--s5)}
.item{border:2px solid var(--ink);background:var(--panel);padding-bottom:var(--s4)}
.item img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block;border-bottom:2px solid var(--ink)}
.item h2,.item h3{font-size:var(--fs-h3);padding:var(--s3) var(--s4) 0}
.item p{padding:0 var(--s4);font-size:var(--fs-small);color:var(--ink-soft)}
.item ul{padding:var(--s2) var(--s4) 0 var(--s6);font-size:var(--fs-small);color:var(--ink-soft)}
@media(max-width:760px){.items{grid-template-columns:minmax(0,1fr)}}
/* steps */
.steps ol{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s5);counter-reset:st}
.steps li{counter-increment:st;border-top:4px solid var(--ink);padding-top:var(--s3)}
.steps li::before{content:"0" counter(st);font-family:"PingFang SC","Noto Sans SC",sans-serif;font-weight:900;font-size:var(--fs-h2);color:var(--moss);display:block}
.steps strong{font-family:"PingFang SC","Noto Sans SC",sans-serif;display:block;margin:var(--s1) 0}
.steps span{color:var(--ink-soft);font-size:var(--fs-small)}
/* faq */
.faq-list details{border-bottom:1px solid var(--line);padding:var(--s3) 0}
.faq-list summary{cursor:pointer;font-family:"PingFang SC","Noto Sans SC",sans-serif;font-weight:700}
.faq-list p{color:var(--ink-soft);margin-top:var(--s2);max-width:64ch}
/* flow */
.flow{list-style:none;counter-reset:f}
.flow li{counter-increment:f;border-left:4px solid var(--moss);margin-bottom:var(--s5);padding-left:var(--s4)}
.flow h3::before{content:counter(f) " / ";color:var(--moss)}
.flow p{color:var(--ink-soft);max-width:64ch}
/* prose */
.prose{padding:var(--s7) 0;max-width:none}
.prose>*{max-width:70ch}
.prose h2{margin-top:var(--s6);font-size:var(--fs-h2)}
.prose p{margin-bottom:var(--s4);color:var(--ink-soft)}
.prose p strong{color:var(--ink)}
table{width:100%;border-collapse:collapse;margin:var(--s5) 0;font-family:"PingFang SC","Noto Sans SC",sans-serif;font-size:var(--fs-small)}
th,td{border:1px solid var(--ink);padding:var(--s2) var(--s3);text-align:left}
th{background:var(--wood);font-weight:700}
/* breadcrumb */
.breadcrumb{font-family:"PingFang SC","Noto Sans SC",sans-serif;font-size:12px;letter-spacing:.12em;color:var(--ink-soft);padding-top:var(--s4)}
.breadcrumb a{color:var(--ink-soft);text-decoration:none}
.breadcrumb a:hover{color:var(--moss-dark);text-decoration:underline}
.breadcrumb span{margin:0 var(--s2)}
/* end cta */
.endcta{border-top:2px solid var(--ink);margin-top:var(--s7);padding:var(--s7) 0}
.endcta h2{font-size:var(--fs-h2)}
/* footer */
.site-foot{border-top:2px solid var(--ink);margin-top:var(--s7);padding:var(--s6) 0;font-size:var(--fs-small);color:var(--ink-soft)}
.site-foot nav{display:flex;flex-wrap:wrap;gap:var(--s4);margin:var(--s2) 0}
.site-foot a{color:var(--ink-soft);text-decoration:none}
.site-foot a:hover{color:var(--moss-dark)}
@media(max-width:900px){
  .hero-split,.hero-contact{grid-template-columns:1fr}
  .hero-split .hero-img{justify-self:start}
  .cap-grid{grid-template-columns:1fr}
  .steps ol{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){.steps ol{grid-template-columns:1fr}}