:root{
  --green:#2c4a3b;
  --green-dark:#1f3529;
  --terra:#c67b4e;
  --cream:#faf7f2;
  --paper:#ffffff;
  --ink:#2b2a26;
  --muted:#6f6a60;
  --line:#e6dfd3;
  --serif:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",serif;
  --sans:"Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans JP",-apple-system,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--cream);line-height:1.85;font-size:16px}
img{max-width:100%;height:auto;display:block;border-radius:10px}
a{color:var(--green);text-decoration:underline;text-underline-offset:3px}
a:hover{color:var(--terra)}

/* header */
.site-header{background:var(--green-dark);position:sticky;top:0;z-index:50;box-shadow:0 1px 6px rgba(0,0,0,.18)}
.header-inner{max-width:1080px;margin:0 auto;padding:.65rem 1rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:.55rem;text-decoration:none;color:#fff;font-family:var(--serif);font-size:1.15rem;font-weight:700;letter-spacing:.04em}
.brand svg{width:26px;height:26px;flex:none}
.nav-toggle{display:none;margin-left:auto;background:none;border:1px solid rgba(255,255,255,.4);border-radius:8px;color:#fff;font-size:1.3rem;line-height:1;padding:.35rem .6rem;cursor:pointer}
.site-nav{margin-left:auto}
.site-nav ul{list-style:none;display:flex;gap:.2rem;flex-wrap:wrap}
.site-nav a{color:#f2efe8;text-decoration:none;font-size:.86rem;padding:.4rem .55rem;border-radius:7px;display:block}
.site-nav a:hover,.site-nav a[aria-current="page"]{background:rgba(255,255,255,.14);color:#fff}
@media(max-width:860px){
  .nav-toggle{display:block}
  .site-nav{display:none;width:100%;margin:0}
  .site-nav.open{display:block}
  .site-nav ul{flex-direction:column;padding:.4rem 0 .6rem}
  .site-nav a{font-size:.98rem;padding:.55rem .4rem}
}

/* layout */
.wrap{max-width:840px;margin:0 auto;padding:0 1rem}
main{padding-bottom:3.5rem}
.breadcrumbs{font-size:.82rem;color:var(--muted);padding:.9rem 0 .2rem}
.breadcrumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.25rem}
.breadcrumbs li+li::before{content:"›";margin-right:.25rem;color:#b5ad9f}
.breadcrumbs a{color:var(--muted)}

article h1{font-family:var(--serif);font-size:1.75rem;line-height:1.45;color:var(--green-dark);margin:.8rem 0 1rem}
article h2{font-family:var(--serif);font-size:1.35rem;line-height:1.5;color:var(--green-dark);margin:2.4rem 0 .9rem;padding:.35rem 0 .35rem .8rem;border-left:5px solid var(--terra);background:linear-gradient(90deg,rgba(198,123,78,.08),transparent)}
article h3{font-size:1.08rem;color:var(--green);margin:1.7rem 0 .6rem;padding-bottom:.25rem;border-bottom:2px solid var(--line)}
article p{margin:.85rem 0}
article ul,article ol{margin:.85rem 0 .85rem 1.5rem}
article li{margin:.3rem 0}
article figure{margin:1.4rem 0}
article figcaption{font-size:.8rem;color:var(--muted);margin-top:.4rem;text-align:center}

table{width:100%;border-collapse:collapse;margin:1.2rem 0;font-size:.9rem;background:var(--paper)}
th,td{border:1px solid var(--line);padding:.55rem .7rem;text-align:left;vertical-align:top}
th{background:var(--green);color:#fff;font-weight:600;white-space:nowrap}
tr:nth-child(even) td{background:#f6f1e8}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-scroll table{min-width:560px}

/* boxes */
.tldr{background:var(--paper);border:1px solid var(--line);border-top:4px solid var(--green);border-radius:10px;padding:1rem 1.2rem;margin:1.2rem 0}
.tldr strong{color:var(--green-dark)}
.toc{background:#f2ede3;border-radius:10px;padding:1rem 1.2rem;margin:1.4rem 0;font-size:.92rem}
.toc>strong{display:block;margin-bottom:.4rem;color:var(--green-dark);font-family:var(--serif)}
.toc ol{list-style:none;margin:0}
.toc ol ol{margin-left:1.1rem;font-size:.88rem}
.toc a{text-decoration:none}
.toc a:hover{text-decoration:underline}
.related{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:1rem 1.2rem;margin:2.2rem 0}
.related strong{display:block;color:var(--green-dark);font-family:var(--serif);margin-bottom:.5rem}
.related ul{list-style:none;margin:0}
.related li{margin:.35rem 0;padding-left:1.1em;text-indent:-1.1em}
.related li::before{content:"▸ ";color:var(--terra)}

/* home */
.hero{position:relative;max-width:1080px;margin:0 auto}
.hero img{border-radius:0 0 14px 14px;width:100%;object-fit:cover;max-height:430px}
.hero-copy{padding:1.6rem 1rem .4rem;text-align:center}
.hero-copy h1{font-family:var(--serif);font-size:1.9rem;color:var(--green-dark);line-height:1.5}
.hero-copy p{color:var(--muted);max-width:640px;margin:.7rem auto 0}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.1rem;margin:1.6rem 0}
.card{background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;transition:transform .15s}
.card:hover{transform:translateY(-3px)}
.card img{border-radius:0;height:150px;object-fit:cover}
.card-body{padding:.9rem 1rem 1.1rem}
.card-body h3{font-size:1rem;margin:0 0 .35rem;border:none;padding:0}
.card-body p{font-size:.84rem;color:var(--muted);margin:0}
.card a{text-decoration:none}
.section-title{font-family:var(--serif);font-size:1.4rem;color:var(--green-dark);margin:2.6rem 0 .4rem;text-align:center}
.section-sub{text-align:center;color:var(--muted);font-size:.9rem;margin-bottom:1rem}

/* footer */
.site-footer{background:var(--green-dark);color:#d8d2c4;margin-top:3rem;font-size:.85rem}
.footer-inner{max-width:1080px;margin:0 auto;padding:2.2rem 1rem 2.6rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}
.site-footer h4{color:#fff;font-family:var(--serif);margin-bottom:.6rem;font-size:.95rem}
.site-footer ul{list-style:none}
.site-footer li{margin:.3rem 0}
.site-footer a{color:#d8d2c4;text-decoration:none}
.site-footer a:hover{color:#fff;text-decoration:underline}
.copyright{border-top:1px solid rgba(255,255,255,.15);text-align:center;padding:1rem;color:#a9a293}

/* to top */
#toTop{position:fixed;right:1.1rem;bottom:1.3rem;width:46px;height:46px;border-radius:50%;border:none;background:var(--terra);color:#fff;font-size:1.25rem;cursor:pointer;opacity:0;visibility:hidden;transition:opacity .25s;box-shadow:0 3px 10px rgba(0,0,0,.25);z-index:60}
#toTop.show{opacity:1;visibility:visible}
#toTop:hover{background:var(--green)}

@media(max-width:600px){
  article h1{font-size:1.45rem}
  article h2{font-size:1.2rem}
  .hero-copy h1{font-size:1.5rem}
}
