:root{--bg:#FFFDFA;--soft:#F4EFE6;--cream:#FBF6EE;--ink:#241C12;--mut:#463E33;--line:#E8E1D5;--coral:#D0664E;--coral-d:#9E3A25;--coral-soft:#F7E7DF;--sage:#2F6B59;--sage-soft:#E4F0EB;--line-green:#06C755;--navy:#26303f;--gold:#A88B5A;--shadow:0 8px 24px rgba(70,52,40,.08)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:"Noto Sans JP",system-ui,sans-serif;color:var(--ink);background:var(--bg);font-size:17.5px;line-height:2;-webkit-font-smoothing:antialiased;word-break:auto-phrase}
a{color:var(--sage)}
header.nav{position:sticky;top:0;z-index:20;background:rgba(255,253,250,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:62px}
.brand{font-weight:700;font-size:1.05rem;text-decoration:none;color:var(--ink)}
.brand small{font-weight:500;color:var(--mut);font-size:.66rem;margin-left:6px}
.nav .btn{padding:9px 18px;font-size:.82rem;border-radius:10px}
.wrap{max-width:760px;margin:0 auto;padding:0 22px}
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--line-green);color:#fff;font-weight:700;text-decoration:none;padding:15px 28px;border-radius:14px;font-size:1.04rem;box-shadow:var(--shadow)}
.btn:hover{transform:translateY(-1px)}
main{padding:40px 0 80px}
.bc{font-size:.8rem;color:var(--mut);margin-bottom:22px}
.bc a{color:var(--mut);text-decoration:none}
.bc a:hover{text-decoration:underline}
h1{font-size:clamp(1.5rem,4.4vw,2.05rem);line-height:1.6;margin:0 0 14px}
.meta{font-size:.85rem;color:var(--mut);margin-bottom:26px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.meta b{color:var(--ink);font-weight:500}
article h2{font-size:1.42rem;line-height:1.6;margin:56px 0 18px;padding-bottom:10px;border-bottom:2px solid var(--gold)}
article h3{font-size:1.12rem;margin:34px 0 10px;padding-left:12px;border-left:4px solid var(--coral)}
article p{margin:0 0 18px;color:var(--mut)}
article b,article strong{color:var(--ink)}
article ul,article ol{margin:0 0 18px;padding-left:1.4em;color:var(--mut)}
article li{margin:7px 0}
.lead-box{background:var(--cream);border-radius:16px;padding:22px 24px;margin:0 0 26px}
.lead-box p{margin:0;color:var(--ink)}
.point{background:var(--sage-soft);border-radius:14px;padding:18px 22px;margin:0 0 20px;color:var(--ink)}
.point b{color:var(--sage)}
.stat-box{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 24px;margin:0 0 20px;box-shadow:var(--shadow)}
.stat-box .num{font-size:1.7rem;font-weight:700;color:var(--coral-d);line-height:1.3}
.stat-box .t{font-size:.98rem;color:var(--mut)}
.check-list{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 26px;margin:0 0 20px;box-shadow:var(--shadow)}
.check-list li{list-style:none;position:relative;padding-left:30px;margin:10px 0}
.check-list li::before{content:"☐";position:absolute;left:0;color:var(--coral);font-weight:700}
.check-list ul{padding-left:0;margin:0}
table{width:100%;border-collapse:collapse;margin:0 0 20px;font-size:.92rem}
th,td{border:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top}
th{background:var(--cream);white-space:nowrap}
td{color:var(--mut)}
.toc{background:var(--soft);border-radius:14px;padding:18px 24px;margin:0 0 30px;font-size:.94rem}
.toc b{display:block;margin-bottom:6px;font-size:.85rem;color:var(--mut);letter-spacing:.08em}
.toc ol{margin:0;padding-left:1.3em}
.toc a{color:var(--ink);text-decoration:none}
.toc a:hover{color:var(--coral-d)}
.cta-box{background:var(--coral-soft);border:1px solid #E9C9BC;border-radius:18px;padding:28px;margin:44px 0;text-align:center}
.cta-box .q{font-family:"Noto Serif JP",serif;font-size:1.18rem;color:var(--ink);margin:0 0 8px;line-height:1.8}
.cta-box p{color:var(--mut);font-size:.92rem;margin:0 0 16px}
.cta-box .micro{font-size:.82rem;color:var(--mut);margin:10px 0 0}
.faq details{background:#fff;border:1px solid var(--line);border-radius:14px;padding:2px 20px;margin-top:12px;box-shadow:var(--shadow)}
.faq summary{font-weight:700;cursor:pointer;padding:15px 0;list-style:none;font-size:1.02rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";float:right;color:var(--coral);font-weight:700}
.faq details[open] summary::after{content:"–"}
.faq p{padding:0 0 15px;font-size:.98rem}
.refs{font-size:.85rem;color:var(--mut);line-height:1.9;background:var(--cream);border-radius:14px;padding:18px 24px;margin-top:40px}
.refs b{display:block;margin-bottom:4px}
.related{margin-top:40px}
.related h2{border:none;padding:0;font-size:1.1rem;margin:0 0 12px}
.related a{display:block;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 20px;margin-bottom:10px;text-decoration:none;color:var(--ink);font-weight:500;box-shadow:var(--shadow)}
.related a:hover{border-color:var(--coral)}
.related small{display:block;color:var(--mut);font-weight:400;font-size:.82rem;margin-top:2px}
.author{display:flex;gap:14px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 20px;margin-top:26px}
.author img{width:44px;height:44px;border-radius:10px}
.author .n{font-weight:700;font-size:.95rem}
.author .d{font-size:.82rem;color:var(--mut)}
footer{background:var(--navy);color:#DAE0EA;padding:40px 0;font-size:.88rem}
footer a{color:#DAE0EA;text-decoration:none}
footer a:hover{text-decoration:underline}
.footer-small{color:#BFC8D6;margin-top:10px;font-size:.8rem}
@media(max-width:600px){table{font-size:.8rem}th,td{padding:8px}}
