:root{
  --ink:#2b3a36; --ink-soft:#5b6b66; --paper:#f6f3ec; --paper-deep:#eee9de;
  --green:#3e5c50; --green-deep:#2c443a; --clay:#b56a4a; --line:#c9c2b2;
  --fs-xs:12px; --fs-s:14px; --fs-b:16px; --fs-m:20px; --fs-l:32px; --fs-xl:56px;
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-6:24px; --sp-8:32px; --sp-12:48px; --sp-16:64px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:"Songti SC","Noto Serif SC","Source Han Serif SC",serif;background:var(--paper);color:var(--ink);line-height:1.85;font-size:var(--fs-b)}
.wrap{max-width:1280px;margin:0 auto;padding:0 var(--sp-6)}
a{color:var(--green-deep);text-decoration:underline;text-underline-offset:3px}
a:hover{color:var(--clay)}
a:focus-visible,button:focus-visible{outline:2px solid var(--clay);outline-offset:3px}
.site-header{border-bottom:1px solid var(--line);background:var(--paper)}
.header-inner{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)}
.site-nav{display:flex;flex-wrap:wrap;gap:var(--sp-6)}
.site-nav a{text-decoration:none;font-size:var(--fs-s);letter-spacing:.12em}
.site-nav a:hover{color:var(--clay)}
main{padding:var(--sp-12) 0 var(--sp-16)}
/* breadcrumb */
.breadcrumb{font-size:var(--fs-xs);letter-spacing:.12em;color:var(--ink-soft);margin-bottom:var(--sp-8)}
.breadcrumb a{color:var(--ink-soft);text-decoration:none}
.breadcrumb a:hover{color:var(--clay)}
.breadcrumb span{margin:0 var(--sp-2)}
/* headings */
h1{font-size:var(--fs-xl);font-weight:900;line-height:1.25;letter-spacing:.02em;color:var(--green-deep)}
h1 .thin{font-weight:400;display:block;font-size:.62em;letter-spacing:.08em;color:var(--ink)}
h2{font-size:var(--fs-l);font-weight:700;color:var(--green-deep);margin-bottom:var(--sp-4)}
h3{font-size:var(--fs-m);font-weight:700;color:var(--ink)}
.lead{max-width:38em;font-size:var(--fs-m);line-height:1.9;margin-bottom:var(--sp-4)}
p{max-width:42em}
/* heroes: four distinct structures */
.hero-split{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--sp-12);align-items:center;margin-bottom:var(--sp-16)}
.hero-figure img{width:100%;height:auto;border:1px solid var(--line)}
.kicker{font-size:var(--fs-xs);letter-spacing:.3em;color:var(--clay);margin-bottom:var(--sp-4)}
.hero-actions{display:flex;gap:var(--sp-4);margin-top:var(--sp-6);flex-wrap:wrap}
.hero-stack{border-left:6px solid var(--clay);padding-left:var(--sp-8);margin-bottom:var(--sp-12)}
.hero-band{background:var(--green-deep);color:var(--paper);padding:var(--sp-12);margin-bottom:var(--sp-12)}
.hero-band h1{color:var(--paper)}
.hero-band h1 .thin{color:#cdd8d1}
.hero-band .lead{color:#e4e9e2}
.hero-band a{color:#e9c9b4}
.hero-band a:hover{color:#fff}
.hero-frame{border:1px solid var(--line);outline:1px solid var(--line);outline-offset:6px;padding:var(--sp-12);margin-bottom:var(--sp-12);text-align:center}
.hero-frame .lead{margin-left:auto;margin-right:auto}
.hero-frame h1{font-size:var(--fs-l)}
/* abilities */
.abilities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-8)}
.ability{border-top:3px solid var(--green);padding-top:var(--sp-4)}
.ability h3{margin-bottom:var(--sp-2)}
/* items grid */
.items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.item{border:1px solid var(--line);padding:var(--sp-4);background:#fbf9f3}
.item img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block;filter:saturate(.85)}
.item h2,.item h3{margin:var(--sp-3) 0 var(--sp-1);font-size:var(--fs-b);letter-spacing:.06em}
.item p{font-size:var(--fs-s);color:var(--ink-soft)}
.item ul{margin-top:var(--sp-2);padding-left:1.2em;font-size:var(--fs-s);color:var(--ink-soft)}
@media(max-width:760px){.items{grid-template-columns:minmax(0,1fr)}}
.section{margin-bottom:var(--sp-16)}
.section-note{color:var(--ink-soft);font-size:var(--fs-s);margin-bottom:var(--sp-6)}
/* process */
.steps{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-6);counter-reset:none}
.steps li{border-top:1px solid var(--line);padding-top:var(--sp-4)}
.step-no{display:block;font-size:var(--fs-l);font-weight:900;color:var(--clay);letter-spacing:.05em}
.steps h3{margin:var(--sp-2) 0}
.steps p{font-size:var(--fs-s);color:var(--ink-soft)}
/* faq */
.qa{border-bottom:1px solid var(--line);padding:var(--sp-4) 0}
.qa h3,.qa h2{font-size:var(--fs-m);margin-bottom:var(--sp-2)}
.qa p{color:var(--ink)}
.qa-list{max-width:60em}
/* about */
.about-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:var(--sp-12)}
.about-figure img{width:100%;height:auto;border:1px solid var(--line)}
.about-text p{margin-bottom:var(--sp-4)}
.about-text h2{font-size:var(--fs-m);border-bottom:1px solid var(--line);padding-bottom:var(--sp-2)}
/* contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:var(--sp-12);margin-bottom:var(--sp-16)}
.contact-card{background:var(--paper-deep);border:1px solid var(--line);padding:var(--sp-6)}
.contact-card h2{font-size:var(--fs-m)}
.contact-card ul{padding-left:1.2em;font-size:var(--fs-s)}
.contact-process h2{font-size:var(--fs-m)}
.contact-process .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
/* table */
table{width:100%;border-collapse:collapse;margin:var(--sp-6) 0;font-size:var(--fs-s)}
caption{caption-side:top;text-align:left;font-size:var(--fs-xs);letter-spacing:.15em;color:var(--ink-soft);padding-bottom:var(--sp-2)}
th,td{border:1px solid var(--line);padding:var(--sp-2) var(--sp-3);text-align:left;vertical-align:top}
th{background:var(--green-deep);color:var(--paper);font-weight:700;letter-spacing:.06em}
tbody tr:nth-child(even){background:#fbf9f3}
/* article */
.article{max-width:46em}
.article h2{font-size:var(--fs-m);margin-top:var(--sp-8)}
.article p{margin-bottom:var(--sp-4)}
/* cta */
.cta{background:var(--green-deep);color:var(--paper);padding:var(--sp-12);text-align:center}
.cta h2{color:var(--paper)}
.cta p{margin:0 auto var(--sp-6);color:#e4e9e2}
.cta a{color:#e9c9b4}
.cta a:hover{color:#fff}
/* buttons */
.btn{display:inline-block;background:var(--clay);color:#fff;text-decoration:none;padding:var(--sp-2) var(--sp-6);letter-spacing:.15em;font-size:var(--fs-s);border:1px solid var(--clay)}
.btn:hover{background:var(--green-deep);border-color:var(--green-deep);color:#fff}
.btn-ghost{background:transparent;color:var(--green-deep);border:1px solid var(--green-deep)}
.btn-ghost:hover{background:var(--green-deep);color:#fff}
/* footer */
.site-footer{border-top:1px solid var(--line);padding:var(--sp-8) 0}
.footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--sp-4);font-size:var(--fs-s);color:var(--ink-soft)}
.footer-inner nav{display:flex;gap:var(--sp-6)}
.footer-inner a{color:var(--ink-soft);text-decoration:none}
.footer-inner a:hover{color:var(--clay)}
/* responsive */
@media(max-width:900px){
  h1{font-size:var(--fs-l)}
  .hero-split,.about-grid,.contact-grid{grid-template-columns:minmax(0,1fr)}
  .abilities,.steps{grid-template-columns:minmax(0,1fr)}
  .contact-process .steps{grid-template-columns:minmax(0,1fr)}
  .hero-band,.cta{padding:var(--sp-8) var(--sp-4)}
}