:root{
  --paper:#F7F5F0; --paper-hi:#FFFFFF; --ink:#1C1B17; --ink-soft:#6E6A60; --ink-faint:#A8A399;
  --hair:#E3DFD5; --shu:#D8432C; --shu-deep:#C23A24; --shu-soft:#F7E4DF; --green:#2E6E4E;
  --ui:'Zen Kaku Gothic New',sans-serif; --mono:'IBM Plex Mono',monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--paper);color:var(--ink);font-family:var(--ui);line-height:1.9}
.wrap{max-width:720px;margin:0 auto;padding:0 24px}
.mono{font-family:var(--mono)}
.label{font-size:12px;letter-spacing:.22em;color:var(--ink-soft);font-weight:500}

header{border-bottom:1px solid var(--hair);background:rgba(247,245,240,.9);backdrop-filter:blur(8px);position:sticky;top:0;z-index:9}
.nav{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px;letter-spacing:.1em;text-decoration:none;color:var(--ink)}
.brand img{width:34px;height:34px;border-radius:8px}
.back{font-size:13px;color:var(--ink-soft);text-decoration:none}

main{padding:44px 0 96px}
.crumb{font-size:12.5px;color:var(--ink-faint)}
.crumb a{color:var(--ink-soft);text-decoration:none}
.crumb a:hover{color:var(--shu-deep)}
h1{font-size:clamp(23px,3.2vw,31px);font-weight:700;line-height:1.55;margin-top:14px}
.lede{margin-top:18px;color:var(--ink-soft);font-size:15px}
.updated{margin-top:14px;font-size:12.5px;color:var(--ink-faint);font-family:var(--mono)}
.top-divider{height:1px;background:var(--hair);margin:30px 0 8px}

article h2{font-size:19px;font-weight:700;line-height:1.6;margin:42px 0 14px;padding-top:22px;border-top:1px solid var(--hair)}
article h2:first-of-type{margin-top:26px;padding-top:0;border-top:0}
article h3{font-size:15.5px;font-weight:700;margin:26px 0 10px}
article p{margin-top:14px;color:var(--ink-soft);font-size:14.8px;line-height:1.95}
article ul,article ol{margin:14px 0 0 1.2em;color:var(--ink-soft);font-size:14.8px}
article li{margin-top:8px;line-height:1.9}
article strong{color:var(--ink);font-weight:700}
article a{color:var(--shu-deep)}

.callout{margin-top:22px;background:var(--shu-soft);border-left:3px solid var(--shu);border-radius:0 8px 8px 0;padding:18px 20px}
.callout p{margin-top:0;color:var(--ink);font-size:14.5px}
.callout p + p{margin-top:10px}

.box{margin-top:22px;background:var(--paper-hi);border:1px solid var(--hair);border-radius:10px;padding:20px 22px}
.box h4{font-size:13px;letter-spacing:.06em;font-weight:700;margin-bottom:6px}
.box p{margin-top:8px;font-size:14px}

.tbl{margin-top:20px;width:100%;border-collapse:collapse;font-size:14px}
.tbl th,.tbl td{border:1px solid var(--hair);padding:11px 13px;text-align:left;vertical-align:top}
.tbl th{background:var(--paper-hi);font-weight:700;font-size:13px;white-space:nowrap}
.tbl td{color:var(--ink-soft)}
.tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* 請求書サンプル。和文でモノスペースが効かずASCII組みは桁ズレするため、実テーブルで組む */
.inv{margin-top:20px;background:var(--paper-hi);border:1px solid var(--hair);border-radius:10px;padding:22px 24px;font-size:13.5px;line-height:1.8;color:var(--ink)}
.inv-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.inv-top .t{font-size:16px;font-weight:700;letter-spacing:.14em}
.inv-top .meta{font-family:var(--mono);font-size:12px;color:var(--ink-soft);text-align:right}
.inv-to{margin-top:16px;font-weight:700;border-bottom:1px solid var(--ink);display:inline-block;padding-bottom:3px}
.inv-total{margin-top:14px;display:flex;gap:18px;flex-wrap:wrap;font-size:13px;color:var(--ink-soft)}
.inv-total b{color:var(--ink);font-family:var(--mono);font-size:15px}
.inv table{margin-top:16px;width:100%;border-collapse:collapse;font-size:13px}
.inv th,.inv td{padding:8px 6px;border-bottom:1px solid var(--hair);text-align:left}
.inv thead th{border-bottom:1px solid var(--ink-faint);font-size:11.5px;letter-spacing:.06em;color:var(--ink-soft);font-weight:700}
.inv .num{text-align:right;font-family:var(--mono);white-space:nowrap}
.inv tfoot td{border-bottom:0;padding-top:7px;padding-bottom:0;color:var(--ink-soft)}
.inv tfoot tr.sep td{border-top:1px solid var(--hair);padding-top:11px}
.inv tfoot tr.grand td{font-weight:700;color:var(--ink);font-size:14px;padding-top:9px}
.inv tfoot tr.grand .num{font-size:15px}
.inv-foot{margin-top:16px;padding-top:13px;border-top:1px solid var(--hair);font-family:var(--mono);font-size:11.5px;color:var(--ink-soft);line-height:1.95}
.inv-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}

.card{display:block;text-decoration:none;color:inherit;padding:26px 0;border-bottom:1px solid var(--hair)}
.card:hover h2{color:var(--shu-deep)}
.card .tag{font-size:11px;letter-spacing:.14em;color:var(--shu-deep);font-weight:700;font-family:var(--mono)}
.card h2{font-size:19px;font-weight:700;margin:8px 0 0;padding:0;border:0;line-height:1.6;transition:color .15s}
.card p{margin-top:8px;color:var(--ink-soft);font-size:14px}

.cta{margin-top:48px;background:var(--paper-hi);border:1px solid var(--hair);border-radius:12px;padding:28px}
.cta h3{font-size:17px;font-weight:700;margin:0}
.cta p{margin-top:10px;color:var(--ink-soft);font-size:14px}
.cta a{display:inline-block;margin-top:16px;background:var(--shu);color:#fff;text-decoration:none;padding:12px 22px;border-radius:8px;font-weight:700;font-size:14px}
.cta a:hover{background:var(--shu-deep)}

.related{margin-top:44px;padding-top:22px;border-top:1px solid var(--hair)}
.related h3{font-size:13px;letter-spacing:.06em;font-weight:700;color:var(--ink-soft)}
.related ul{margin:12px 0 0 1.1em;font-size:14px}
.related li{margin-top:8px}
.related a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--hair)}
.related a:hover{color:var(--shu-deep)}

.note{margin-top:36px;font-size:12.5px;color:var(--ink-faint);line-height:1.85}
footer{border-top:1px solid var(--hair);padding:34px 0;font-size:12.5px;color:var(--ink-faint);text-align:center}
footer a{color:var(--ink-soft);text-decoration:none}
