:root{--bg:#f7f5f0;--paper:#fbfaf6;--card:#fff;--ink:#1c2725;--sub:#52605c;--mute:#646f6b;--line:#e4e0d6;--line-2:#d3cdbf;
--brand:#1f5f56;--brand-d:#174a43;--brand-dd:#10302b;--brand-t:#e6efeb;--brand-tt:#f0f5f2;
--accent:#b5651d;--accent-d:#97520f;--accent-t:#f8ecdf;--gold:#b8933f;
--warn:#9b2c2c;--warn-t:#fbeeee;--up:#b3261e;--down:#1d5fa8;--up-t:#fbeae8;--down-t:#e8f0fa;
--btn:#a65b18;--btn-d:#8f4c12;
--ff:"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif;
--ff-h:var(--ff);--fw-h:700;
--r:14px;--r-s:10px;
--sh:0 1px 2px rgba(16,48,43,.05),0 6px 18px rgba(16,48,43,.06);
--sh-h:0 2px 6px rgba(16,48,43,.08),0 14px 34px rgba(16,48,43,.13);
--w:1120px;--w-main:760px}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:14px}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.85 var(--ff);overflow-wrap:anywhere;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
a{color:var(--brand);text-underline-offset:.22em;text-decoration-thickness:1px}
a:hover{color:var(--accent-d)}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:4px}
.skip{position:absolute;left:12px;top:-140px;z-index:100;background:var(--brand-dd);color:#fff;padding:10px 16px;border-radius:8px;text-decoration:none;font-weight:700}
.skip:focus{top:12px;color:#fff}
.wrap{max-width:var(--w);margin:0 auto;padding:0 16px}
.ic{width:1.25em;height:1.25em;flex:0 0 auto;vertical-align:-.25em}
.nw{white-space:nowrap}.nb{display:inline-block}
.muted{color:var(--sub)}.small{font-size:13.5px}
.up{color:var(--up);font-weight:600}.down{color:var(--down);font-weight:600}
p,li,dd{text-wrap:pretty}
h1,h2,h3,.wm,.fx{font-family:var(--ff-h);font-weight:var(--fw-h);font-feature-settings:"palt";letter-spacing:.04em}
h1{font-size:clamp(23px,1.6vw + 16px,34px);line-height:1.45;margin:18px 0 10px;word-break:auto-phrase;text-wrap:balance}
h1 .sub{display:block;font-size:.56em;line-height:1.6;margin-top:8px;letter-spacing:.06em}
h2{font-size:clamp(20px,.8vw + 15.5px,25px);line-height:1.5;margin:60px 0 16px;word-break:auto-phrase;text-wrap:balance;scroll-margin-top:14px}
h2::after{content:"";display:block;width:34px;height:2px;margin-top:12px;background:var(--gold);border-radius:2px}
h3{font-size:18px;line-height:1.55;margin:32px 0 10px;scroll-margin-top:14px;word-break:auto-phrase}
main{counter-reset:sec;padding-bottom:40px}
h2.sh::before{counter-increment:sec;content:counter(sec,decimal-leading-zero);display:block;font:700 13px/1 var(--ff);letter-spacing:.16em;color:var(--accent-d);margin-bottom:10px}
/* --- 広告の表示の帯 --- */
.disc{background:var(--paper);border-bottom:1px solid var(--line);font-size:12px;line-height:1.6;color:var(--sub);padding:6px 0}
.disc b{display:inline-block;font-size:11px;font-weight:700;border:1px solid var(--line-2);border-radius:4px;padding:0 6px;margin-right:8px;color:var(--sub);letter-spacing:.08em}
/* --- 上の帯 --- */
header.site{background:var(--card);border-bottom:1px solid var(--line)}
.hd{display:flex;align-items:center;justify-content:space-between;gap:12px 20px;min-height:68px}
.brand{display:flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none;min-width:0}
.brand:hover{color:var(--ink)}
.brand .mark{width:38px;height:38px;flex:0 0 auto;border-radius:10px;box-shadow:0 1px 2px rgba(16,48,43,.15)}
.brand .wm{display:block;font-size:19.5px;line-height:1.25;letter-spacing:.08em}
.brand .tl{display:block;font-size:11px;line-height:1.5;color:var(--sub);letter-spacing:.02em;margin-top:2px}
nav.gnav{display:flex;gap:2px}
nav.gnav a{display:flex;align-items:center;gap:7px;padding:9px 13px;border-radius:9px;color:var(--ink);text-decoration:none;font-size:14.5px;font-weight:600;white-space:nowrap}
nav.gnav a .ic{color:var(--brand);width:19px;height:19px}
nav.gnav a:hover{background:var(--brand-tt);color:var(--brand-d)}
nav.gnav a[aria-current]{background:var(--brand-t);color:var(--brand-d)}
.crumb{font-size:12.5px;color:var(--sub);margin:14px 0 0}
.crumb ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:2px 0}
.crumb li{display:inline}
.crumb li+li::before{content:"›";margin:0 8px;color:var(--mute)}
.crumb a{color:var(--sub)}
.updated{font-size:13px;color:var(--sub);margin:8px 0 0}
/* --- 2列（パソコン）--- */
.cols{display:block}
.side{display:none}
@media (min-width:1080px){
.cols{display:grid;grid-template-columns:minmax(0,var(--w-main)) 264px;gap:56px;justify-content:space-between}
.side{display:block}
.side .stick{position:sticky;top:24px;padding-top:14px}
.cols .toc{display:none}
}
.toc-side p{font-size:11.5px;font-weight:700;letter-spacing:.16em;color:var(--mute);margin:0 0 10px 18px}
.toc-side ol{list-style:none;margin:0;padding:0;border-left:2px solid var(--line);counter-reset:t}
.toc-side a{display:flex;gap:10px;padding:7px 10px 7px 16px;margin-left:-2px;border-left:2px solid transparent;color:var(--sub);text-decoration:none;font-size:14px;line-height:1.55}
.toc-side a::before{flex:none;counter-increment:t;content:counter(t,decimal-leading-zero);font-size:11.5px;font-weight:700;color:var(--mute);padding-top:2px;font-variant-numeric:tabular-nums}
.toc-side a:hover{color:var(--brand-d)}
.toc-side a.on{border-left-color:var(--brand);color:var(--brand-d);font-weight:700}
.toc-side a.on::before{color:var(--accent-d)}
.side .mini{margin-top:22px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r);background:var(--card);font-size:12.5px;color:var(--sub);line-height:1.7}
.side .mini b{display:block;color:var(--ink);font-size:13px;margin-bottom:4px}
/* スマホの目次 */
.toc{margin:18px 0 6px}
.toc p{font-size:12px;font-weight:700;letter-spacing:.14em;color:var(--mute);margin:0 0 8px}
.toc ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px;counter-reset:t}
.toc a{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--card);border-radius:999px;padding:8px 14px;font-size:14px;line-height:1.4;text-decoration:none;color:var(--ink)}
.toc a::before{counter-increment:t;content:counter(t);font-size:11px;font-weight:700;color:var(--accent-d)}
.toc a:hover{border-color:var(--brand);color:var(--brand-d)}
.honbun .toc{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px 4px;margin:22px 0 8px}
.honbun .toc ol{display:block;padding:0;margin:0}
.honbun .toc li{margin:0;border-top:1px solid var(--line)}
.honbun .toc li:first-child{border-top:0}
.honbun .toc a{display:flex;align-items:flex-start;gap:12px;border:0;background:none;border-radius:0;padding:10px 0;font-size:15px;line-height:1.55;color:var(--ink)}
.honbun .toc a::before{content:counter(t,decimal-leading-zero);font-size:12px;padding-top:3px;font-variant-numeric:tabular-nums}
.honbun .toc a:hover{color:var(--brand-d)}
/* --- 写真の見出し --- */
.phh{position:relative;isolation:isolate;overflow:hidden;background:var(--brand-dd);color:#fff;border-radius:var(--r);margin:14px 0 0}
.phh>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.phh::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(9,26,23,.16) 0%,rgba(9,26,23,.40) 45%,rgba(9,26,23,.86) 100%)}
.phh .inner{display:flex;flex-direction:column;justify-content:flex-end;min-height:280px;padding:24px 20px 22px}
.phh .eyebrow{margin:0 0 8px;font-size:12.5px;letter-spacing:.14em;color:#e9efe9;font-weight:600}
.phh h1{margin:0;color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.35)}
.phh .intro{margin:12px 0 0;color:#edf2ef;font-size:15px;line-height:1.8;max-width:42em;text-shadow:0 1px 8px rgba(0,0,0,.4)}
.phh .meta{display:flex;flex-wrap:wrap;gap:4px 16px;margin:14px 0 0;font-size:12.5px;color:#dfe8e4}
.phh .meta span{display:inline-flex;align-items:center;gap:6px}
.phh .meta .ic{width:15px;height:15px}
.phcap{font-size:11.5px;color:var(--mute);margin:6px 2px 0;line-height:1.6}
.phcap a{color:var(--mute)}
@media (min-width:760px){.phh .inner{min-height:340px;padding:36px 38px 32px}}
@media (max-width:759px){.phh{margin:12px -16px 0;border-radius:0}.phcap{margin:6px 0 0}}
.pgplain{padding:6px 0 0}
.pmeta{display:flex;flex-wrap:wrap;gap:4px 18px;margin:10px 0 0;font-size:12.5px;line-height:1.6;color:var(--sub)}
.pmeta span{display:inline-flex;align-items:center;gap:6px}
.pmeta .ic{width:15px;height:15px;color:var(--brand)}
.phh+.phcap+.intro,.pgplain+.intro{margin-top:16px}
.phcap+.pmeta,.pgplain+.pmeta{margin-top:12px}
main>.wrap>p{max-width:50em}.pmeta+.intro{margin-top:14px}.pmeta+.honbun{margin-top:20px}
figure.ph{margin:18px 0;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
figure.ph img{display:block;width:100%}
figure.ph figcaption{font-size:12px;color:var(--mute);padding:6px 12px 8px}
/* --- 写真の無い見出しの帯 --- */
.pgtop{padding:34px 0 30px;border-bottom:1px solid var(--line)}
.pgtop h1{margin:0}
.pgtop .intro{margin:12px 0 0;max-width:46em;color:var(--sub)}
.pgtop .crumb{margin:0 0 14px}
.pgtop .eyebrow{margin:0 0 10px;font-size:12.5px;font-weight:700;letter-spacing:.14em}
/* --- 数字のカード --- */
.kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:22px 0 6px}
@media (min-width:760px){.kpis{grid-template-columns:repeat(var(--n,4),minmax(0,1fr));gap:14px}}
@media (max-width:759px){.kpis.n3 .kpi:first-child{grid-column:1/-1}}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px 15px 13px;box-shadow:var(--sh);min-width:0;display:flex;flex-direction:column}
.kpi .k{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--sub);line-height:1.5}
.kpi .k .ic{width:16px;height:16px;color:var(--brand)}
.kpi .v{font-size:clamp(21px,1.2vw + 15px,27px);font-weight:700;line-height:1.25;margin:6px 0 4px;font-variant-numeric:tabular-nums;letter-spacing:.01em;color:var(--ink);white-space:nowrap}
.kpi .v small{font-size:.52em;font-weight:700;color:var(--sub);margin-left:3px;letter-spacing:0}
.kpi .s{font-size:12px;line-height:1.6;color:var(--sub);margin-top:auto}
.dl{display:inline-flex;align-items:center;font-size:11.5px;font-weight:700;padding:1px 8px;border-radius:999px;background:var(--line);color:var(--sub);white-space:nowrap;font-variant-numeric:tabular-nums;vertical-align:1px}
.dl.up{background:var(--up-t);color:var(--up)}.dl.down{background:var(--down-t);color:var(--down)}
.kpi .dl{align-self:flex-start;margin-top:2px}
.meter{display:grid;gap:5px;margin:8px 0 6px}
.meter div{display:grid;grid-template-columns:minmax(0,4.6em) minmax(0,1fr) 3.4em;align-items:center;gap:6px;font-size:11.5px;line-height:1.3;color:var(--sub)}
.meter div>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.meter div>span:last-child{text-align:right;font-variant-numeric:tabular-nums}
.meter i{display:block;height:6px;border-radius:3px;background:var(--brand-tt);overflow:hidden}
.meter i b{display:block;height:100%;border-radius:3px;background:#9fbdb5}
.meter div:first-child i b{background:var(--brand)}
.meter div:first-child{color:var(--ink);font-weight:700}
/* --- 箱 --- */
.box{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;margin:18px 0}
.box.note{background:var(--brand-tt);border-color:#cfe0d9}
.box.warn{background:var(--warn-t);border-color:#efcaca}
.box.kigen{background:var(--accent-t);border-color:#efd5b8;border-left:4px solid var(--accent)}
.box>:first-child{margin-top:0}.box>:last-child{margin-bottom:0}
.box ul{padding-left:1.3em;margin:6px 0 0}
.src{font-size:12.5px;line-height:1.75;color:var(--sub);margin:8px 0 0}
.src a{color:var(--sub)}
.intro{color:var(--sub);margin:0 0 18px}
/* --- 表 --- */
.tbl{overflow-x:auto;margin:14px 0;border:1px solid var(--line);border-radius:var(--r);background:var(--card);box-shadow:var(--sh);-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%;font-size:14.5px;font-variant-numeric:tabular-nums}
th,td{padding:10px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;line-height:1.65}
thead th{font-size:13px;font-weight:700;letter-spacing:.03em;white-space:nowrap;word-break:keep-all;vertical-align:bottom}
thead th .u{display:block;font-size:11px;font-weight:500;letter-spacing:0;margin-top:1px}
td{word-break:auto-phrase}
td.n,th.n{text-align:right;white-space:nowrap}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover td{background:var(--paper)}
tr.me td{background:var(--accent-t)}
tr.me td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
.hint{font-size:12.5px;color:var(--mute);margin:10px 0 -6px}
/* --- 広告のカード（名前に ad を使わない）--- */
.offers{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,262px),1fr));gap:14px;margin:14px 0 10px}
.offer{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px 18px 16px;display:flex;flex-direction:column;box-shadow:var(--sh)}
.offer .ot{display:flex;align-items:flex-start;gap:8px;font-weight:700;font-size:16.5px;line-height:1.55;margin:0 0 6px;color:var(--ink)}
.otag{flex:0 0 auto;font-size:10.5px;font-weight:700;letter-spacing:.08em;color:var(--sub);border:1px solid var(--line-2);border-radius:4px;padding:0 5px;line-height:1.7;margin-top:2px}
.offer .od{font-size:14px;line-height:1.75;color:var(--sub);margin:0 0 14px;flex:1}
.offer .od b{color:var(--ink)}
.obtn a{display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;text-align:center;background:var(--btn);color:#fff;text-decoration:none;font-weight:700;font-size:15.5px;line-height:1.45;padding:12px 18px;border-radius:var(--r-s);box-shadow:0 2px 0 var(--btn-d)}
.obtn a::after{content:"";flex:0 0 auto;width:7px;height:7px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg)}
.obtn a:hover{color:#fff;filter:brightness(1.07)}
.oban{text-align:center;background:#fff;border-radius:var(--r-s)}
.oban img{max-width:100%;height:auto;vertical-align:middle}
.offer.first{border:2px solid var(--accent);box-shadow:0 10px 30px rgba(181,101,29,.14)}
.offer.first .ot{font-size:18px}
.offer-note{font-size:12.5px;color:var(--mute);margin:0 0 26px}
.midcta{border:1px solid #ecd3b6;background:var(--accent-t);border-radius:var(--r);padding:16px 16px 4px;margin:24px 0}
.midcta>p{margin:0 0 10px;font-size:14.5px;line-height:1.75}
.midcta .offers{margin:0 0 12px}
.midcta .offer{box-shadow:none}
.ctabar{display:none;position:fixed;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:40;align-items:center;justify-content:center;gap:10px;background:var(--btn);color:#fff;font-weight:700;font-size:15px;line-height:1.4;padding:14px 18px;border-radius:14px;text-decoration:none;box-shadow:0 10px 28px rgba(16,32,28,.28);transition:transform .25s ease,opacity .25s ease}
.ctabar:hover{color:#fff}
.ctabar::after{content:"";flex:0 0 auto;width:8px;height:8px;margin-top:-5px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg)}
.ctabar.off{transform:translateY(140%);opacity:0;pointer-events:none}
body.has-cta{padding-bottom:84px}
/* --- 状況から探す --- */
.decide{list-style:none;margin:16px 0 26px;padding:0;display:grid;grid-template-columns:1fr;gap:10px}
@media (min-width:600px){.decide{grid-template-columns:1fr 1fr}}
.decide a{display:grid;grid-template-columns:42px minmax(0,1fr);gap:3px 13px;height:100%;padding:14px 16px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);color:var(--ink);text-decoration:none;transition:border-color .2s,box-shadow .2s}
.decide a:hover{border-color:#a9c6be;box-shadow:var(--sh-h);color:var(--ink)}
.decide .ib{grid-row:span 2;width:42px;height:42px;border-radius:12px;background:var(--brand-t);color:var(--brand);display:grid;place-items:center}
.decide .ib .ic{width:22px;height:22px}
.decide b{font-size:15.5px;line-height:1.5;color:var(--brand-d)}
.decide .d{font-size:13.5px;line-height:1.7;color:var(--sub)}
/* --- カードの並び --- */
.paths{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:12px;margin:14px 0}
.path{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;box-shadow:var(--sh);transition:border-color .2s,box-shadow .2s}
.path:hover{border-color:#a9c6be;box-shadow:var(--sh-h)}
.path b{display:block;font-size:15.5px;line-height:1.55;margin-bottom:4px}
.path b a{text-decoration:none;color:var(--brand-d)}
.path b a::after{content:"";position:absolute;inset:0}
.path p{margin:0;font-size:13.5px;line-height:1.7;color:var(--sub)}
.path .ib{width:40px;height:40px;border-radius:11px;background:var(--brand-t);color:var(--brand);display:grid;place-items:center;margin-bottom:10px}
.chips{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0;padding:0;list-style:none}
.chips a{display:inline-block;border:1px solid var(--line);background:var(--card);border-radius:999px;padding:7px 14px;font-size:14px;line-height:1.4;text-decoration:none}
.chips a:hover{border-color:var(--brand)}
.regions{display:grid;grid-template-columns:1fr;gap:12px;margin:16px 0}
@media (min-width:600px){.regions{grid-template-columns:1fr 1fr}}
@media (min-width:1000px){.regions{grid-template-columns:repeat(4,1fr)}}
.region{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px 16px;box-shadow:var(--sh)}
.region .rn{margin:0 0 10px;font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--sub)}
.region ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.region a{display:inline-block;padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--paper);font-size:14px;line-height:1.4;text-decoration:none;color:var(--ink)}
.region a:hover{border-color:var(--brand);color:var(--brand-d)}
.grid-pref{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px}
.grid-pref a{display:block;text-align:center;border:1px solid var(--line);background:var(--card);border-radius:8px;padding:10px 4px;text-decoration:none;font-size:14px}
/* --- 入力 --- */
.search{position:relative;margin:18px 0}
.search .sf{display:flex;align-items:center;background:var(--card);border:2px solid var(--brand);border-radius:12px;transition:box-shadow .2s}
.search .sf:focus-within{box-shadow:0 0 0 4px rgba(31,95,86,.2)}
.search .sf .ic{margin-left:14px;color:var(--brand);width:20px;height:20px}
.search input{flex:1;min-width:0;border:0;background:transparent;color:var(--ink);font:inherit;font-size:16px;padding:14px 14px 14px 10px;outline:0}
.search input:focus-visible{outline:0}
.search ul{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:30;list-style:none;margin:0;padding:6px;background:var(--card);border:1px solid var(--line);border-radius:12px;max-height:340px;overflow:auto;box-shadow:var(--sh-h)}
.search li a{display:block;padding:10px 12px;border-radius:8px;text-decoration:none;color:var(--ink)}
.search li a:hover,.search li a:focus{background:var(--brand-tt);color:var(--brand-d)}
.filter{margin:12px 0}
.filter input{width:100%;max-width:360px;font:inherit;font-size:16px;padding:10px 14px;border:1px solid var(--line-2);border-radius:10px;background:var(--card);color:var(--ink)}
.filter span{margin-left:8px}
details.more{margin:10px 0}
details.more>summary{cursor:pointer;display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--card);border-radius:999px;padding:8px 16px;font-size:14px;color:var(--brand-d);font-weight:600;list-style:none}
details.more>summary::-webkit-details-marker{display:none}
details.more>summary::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px)}
details.more[open]>summary::after{transform:rotate(225deg) translateY(-2px)}
details.more[open]>summary{margin-bottom:8px}
/* --- 図 --- */
.figure{margin:16px 0;padding:16px 16px 12px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh)}
.figure .ft{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 12px;margin:0 0 10px;font-size:13.5px;font-weight:700;color:var(--ink)}
.figure .ft span{font-size:12px;font-weight:400;color:var(--sub)}
.figure .fc{font-size:12px;line-height:1.7;color:var(--sub);margin:10px 0 0}
.stackbar{display:flex;height:16px;border-radius:8px;overflow:hidden;background:var(--brand-tt);margin:6px 0 12px}
.stackbar span{display:block;height:100%;min-width:2px}
.legend{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.legend li{display:grid;grid-template-columns:12px minmax(0,1fr) auto auto;align-items:center;gap:4px 10px;font-size:14px;line-height:1.5}
.legend li i{width:12px;height:12px;border-radius:3px}
.legend li .n{font-variant-numeric:tabular-nums;text-align:right;font-weight:600}
.legend li .p{font-variant-numeric:tabular-nums;text-align:right;color:var(--sub);font-size:12.5px;min-width:4.2em}
.legend li.hl{font-weight:700}
.c1{background:#9fbdb5}.c2{background:#d7c39b}.c3{background:#b9c7e0}.c4{background:var(--accent)}
.hbars{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.hbars li{display:grid;grid-template-columns:minmax(0,6.2em) minmax(0,1fr) auto;align-items:center;gap:10px;font-size:13.5px;line-height:1.4}
.hbars li>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hbars i{display:block;height:10px;border-radius:5px;background:var(--brand-tt);overflow:hidden}
.hbars i b{display:block;height:100%;border-radius:5px;background:var(--brand)}
.hbars .v{font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}
.hbars .v small{color:var(--sub);margin-left:6px;font-size:11.5px}
.trend{position:relative;height:190px;margin:4px 6px 0 40px}
.trend svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.trend .ar{fill:var(--brand);opacity:.12}
.trend .ln{fill:none;stroke:var(--brand);stroke-width:2.5;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.trend .gl{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}
.trend .bl{stroke:var(--mute);stroke-width:1;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}
.trend .yl{position:absolute;left:-40px;width:34px;text-align:right;font-size:11px;color:var(--mute);transform:translateY(-50%);font-variant-numeric:tabular-nums}
.trend .pt{position:absolute;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:var(--card);border:2px solid var(--brand)}
.trend .pt.end{width:12px;height:12px;margin:-6px 0 0 -6px;background:var(--brand)}
.trend .tag{position:absolute;transform:translate(-100%,-150%);background:var(--brand-dd);color:#fff;font-size:12px;font-weight:700;padding:2px 8px;border-radius:6px;white-space:nowrap;font-variant-numeric:tabular-nums}
.trend .tag.lo{transform:translate(-100%,60%)}
.trend-x{position:relative;height:18px;margin:8px 6px 0 40px;font-size:11px;color:var(--mute);font-variant-numeric:tabular-nums}
.trend-x span{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap}
.trend-x span:first-child{transform:none}.trend-x span:last-child{transform:translateX(-100%)}
/* --- 法務局・補助金・よくある質問・出典 --- */
.office{display:flex;gap:14px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;box-shadow:var(--sh);margin:14px 0}
.office .ib{width:44px;height:44px;flex:0 0 auto;border-radius:12px;background:var(--brand-t);color:var(--brand);display:grid;place-items:center}
.office .on{font-size:17px;font-weight:700;line-height:1.5;margin:0}
.office .on a{text-decoration:none}
.office p{margin:2px 0 0;font-size:13.5px;color:var(--sub)}
.duebar{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:12px 0 0;padding:12px 16px;border-radius:var(--r-s);background:var(--accent-t);border:1px solid #efd5b8;font-size:14px;line-height:1.6}
.duebar .ic{color:var(--accent-d)}
.duebar b{color:var(--accent-d)}
.hjs{display:grid;gap:12px;margin:14px 0}
.hj{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;box-shadow:var(--sh)}
.hj .cat{display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.06em;color:var(--brand-d);background:var(--brand-t);border-radius:999px;padding:2px 10px;margin:0 0 8px}
.hj h3{margin:0 0 10px;font-size:16.5px;line-height:1.55;font-family:var(--ff);letter-spacing:.02em}
.hj h3 .ic{width:15px;height:15px;margin-left:4px;vertical-align:-2px;color:var(--mute)}
.hj dl{margin:0;display:grid;gap:8px}
.hj dl div{display:grid;grid-template-columns:5.2em minmax(0,1fr);gap:10px;font-size:14px;line-height:1.7}
.hj dt{color:var(--sub);font-weight:700;font-size:12.5px;padding-top:2px}
.hj dd{margin:0}
.hj .amt{font-weight:700;color:var(--ink)}
.faq{margin:14px 0;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;display:grid;grid-template-columns:28px minmax(0,1fr) 16px;gap:10px;align-items:start;padding:15px 4px;font-weight:700;line-height:1.6}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q";display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--brand);color:#fff;font-size:13px;font-weight:700}
.faq summary::after{content:"";width:8px;height:8px;margin-top:9px;border-right:2px solid var(--mute);border-bottom:2px solid var(--mute);transform:rotate(45deg)}
.faq details[open] summary::after{transform:rotate(225deg);margin-top:13px}
.faq .a{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;padding:0 4px 16px;line-height:1.8}
.faq .a::before{content:"A";display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--accent-t);color:var(--accent-d);font-size:13px;font-weight:700}
.faq .a p{margin:0}
.srcs{margin:14px 0;border:1px solid var(--line);border-radius:var(--r);background:var(--card);padding:6px 18px}
.srcs dl{margin:0}
.srcs div{display:grid;grid-template-columns:minmax(0,7.5em) minmax(0,1fr);gap:4px 14px;padding:11px 0;border-bottom:1px solid var(--line);font-size:13.5px;line-height:1.7}
.srcs div:last-child{border-bottom:0}
.srcs dt{font-weight:700}
.srcs dd{margin:0;color:var(--sub)}
.srcs dd .when{display:block;color:var(--ink);font-size:12.5px}
/* --- ガイドの本文 --- */
.honbun{font-size:16.5px;line-height:1.95}
.honbun>p,.honbun li{line-height:1.95}
.honbun ul,.honbun ol{padding-left:1.4em}
.honbun li{margin:.35em 0}
.honbun ol>li::marker{color:var(--brand);font-weight:700}
.honbun ul>li::marker{color:var(--brand)}
.honbun b,.honbun strong{color:var(--ink)}
.honbun .tbl{font-size:14.5px}
.related{margin:44px 0 0}
/* --- トップ --- */
.hero{position:relative;isolation:isolate;overflow:hidden;color:#fff;background:var(--brand-dd)}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(9,26,23,.25),rgba(9,26,23,.45) 45%,rgba(9,26,23,.88))}
.hero .inner{display:flex;flex-direction:column;justify-content:flex-end;min-height:420px;padding:44px 0 86px}
.hero .eyebrow{margin:0 0 12px;font-size:13px;letter-spacing:.16em;color:#e6eee9;font-weight:600}
.hero h1{margin:0;color:#fff;font-size:clamp(30px,3.2vw + 18px,52px);line-height:1.35;letter-spacing:.06em;text-shadow:0 2px 18px rgba(0,0,0,.35)}
.hero .intro{margin:16px 0 0;max-width:36em;color:#eef3f0;font-size:16px;line-height:1.85;text-shadow:0 1px 8px rgba(0,0,0,.4)}
.hero-cap{font-size:11.5px;color:var(--mute);margin:8px 0 0;text-align:right}
.hero-cap a{color:var(--mute)}
.finder{position:relative;z-index:5;margin:-58px auto 0;max-width:820px;background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--sh-h);padding:18px 18px 16px}
.finder label{display:block;font-size:13px;font-weight:700;color:var(--sub);letter-spacing:.08em;margin:0 0 8px}
.finder .search{margin:0}
.finder .eg{margin:10px 0 0;font-size:12.5px;color:var(--sub)}
.finder .eg a{margin-right:10px}
.band{padding:46px 0 40px;border-bottom:1px solid var(--line)}
.band h1{margin:0;font-size:clamp(28px,2.6vw + 18px,46px);line-height:1.4}
.band .intro{margin:14px 0 0;max-width:40em}
.band .finder{margin:24px 0 0;max-width:760px}
.due{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 18px;align-items:center;margin:34px 0 0;padding:20px 22px;background:var(--card);border:1px solid #ecd3b6;border-left:5px solid var(--accent);border-radius:var(--r);box-shadow:var(--sh)}
.due .cd{grid-row:span 2;text-align:center;min-width:92px;padding:6px 10px;border-right:1px solid var(--line)}
.due .cd small{display:block;font-size:11.5px;color:var(--sub);font-weight:700;letter-spacing:.1em}
.due .cd b{display:block;font-size:34px;line-height:1.15;color:var(--accent-d);font-variant-numeric:tabular-nums}
.due .cd span{font-size:12px;color:var(--sub)}
.due .tt{margin:0;font-weight:700;font-size:17px;line-height:1.5;text-wrap:pretty}
.due .dd{margin:0;font-size:14px;line-height:1.75;color:var(--sub)}
.due .dd a{font-weight:700;display:inline-block}
.nums{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin:16px 0}
@media (min-width:760px){.nums{grid-template-columns:repeat(4,minmax(0,1fr))}}
.nums div{background:var(--card);padding:18px 18px 16px}
.nums .k{font-size:12.5px;font-weight:700;color:var(--sub);line-height:1.5}
.nums .v{font-size:clamp(24px,1.6vw + 16px,34px);font-weight:700;line-height:1.25;margin:6px 0 2px;font-variant-numeric:tabular-nums;color:var(--brand-dd)}
.nums .v small{font-size:.48em;margin-left:3px;color:var(--sub)}
.nums .s{font-size:12px;color:var(--sub);line-height:1.6}
.glist{list-style:none;margin:14px 0;padding:0;display:grid;grid-template-columns:1fr;gap:0 28px;counter-reset:g}
@media (min-width:760px){.glist{grid-template-columns:1fr 1fr}}
.glist li{border-bottom:1px solid var(--line)}
.glist a{display:grid;grid-template-columns:2.2em minmax(0,1fr);gap:10px;padding:13px 2px;text-decoration:none;color:var(--ink);font-size:15px;line-height:1.6}
.glist a::before{counter-increment:g;content:counter(g,decimal-leading-zero);font-size:12px;font-weight:700;color:var(--accent-d);padding-top:3px;font-variant-numeric:tabular-nums}
.glist a:hover{color:var(--brand-d)}
.trust{display:grid;grid-template-columns:1fr;gap:10px;margin:16px 0;padding:0;list-style:none}
@media (min-width:760px){.trust{grid-template-columns:1fr 1fr}}
.trust li{display:grid;grid-template-columns:40px minmax(0,1fr);gap:2px 12px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px}
.trust .ib{grid-row:span 2;width:40px;height:40px;border-radius:11px;background:var(--brand-t);color:var(--brand);display:grid;place-items:center}
.trust b{font-size:14.5px;line-height:1.5}
.trust span{font-size:12.5px;line-height:1.65;color:var(--sub)}
.nums p{margin:0}
.search li.none{padding:10px 12px;color:var(--sub);font-size:14px}
.finder.inl{margin:20px 0 6px;max-width:none;box-shadow:var(--sh)}
/* パソコンでは写真を右側だけに出す（940px の写真を横いっぱいに引き伸ばさない） */
@media (min-width:1000px){.hero>img{left:auto;width:62%;max-width:940px}
.hero::after{background:linear-gradient(90deg,var(--brand-dd) 38%,rgba(9,26,23,.62) 50%,rgba(9,26,23,.18) 78%,rgba(9,26,23,.08))}}
@media (min-width:1520px){.hero::after{background:linear-gradient(90deg,var(--brand-dd) calc(100% - 940px),rgba(9,26,23,.62) calc(100% - 820px),rgba(9,26,23,.18) calc(100% - 420px),rgba(9,26,23,.08))}}
.more-link{display:inline-flex;align-items:center;gap:6px;font-weight:700;text-decoration:none}
.more-link .ic{width:18px;height:18px}
/* --- 計算ツール --- */
.tool{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;margin:18px 0;box-shadow:var(--sh)}
.tool label{display:block;font-weight:700;margin:14px 0 6px}
.tool input,.tool select{font:inherit;font-size:16px;padding:10px 12px;border:1px solid var(--line-2);border-radius:10px;width:100%;max-width:320px;background:var(--card);color:var(--ink)}
.tool input:focus,.tool select:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(31,95,86,.18);outline:0}
.tool .row{display:flex;gap:16px;flex-wrap:wrap}
.tool .check label{font-weight:400;display:flex;gap:10px;align-items:flex-start;margin:10px 0}
.tool .check input{width:20px;height:20px;flex:0 0 auto;margin-top:5px;accent-color:var(--brand)}
.tool fieldset{border:0;margin:0;padding:0;min-width:0}
.tool legend{font-weight:700;padding:0;margin:0 0 2px}
.tool input{font-variant-numeric:tabular-nums}
.tool .go{margin:18px 0 0}
.tool .go .btn{width:100%;max-width:360px}
.result{margin-top:16px;background:var(--brand-tt);border:1px solid #cfe0d9;border-radius:var(--r);padding:16px 18px}
.result .big{font-size:26px;font-weight:700;color:var(--brand-dd);font-variant-numeric:tabular-nums}
a.btn,button.btn{display:flex;align-items:center;justify-content:center;gap:10px;text-align:center;background:var(--btn);color:#fff;text-decoration:none;font-weight:700;padding:14px 18px;border-radius:var(--r-s);box-shadow:0 2px 0 var(--btn-d)}
button.btn{border:0;font:inherit;font-weight:700;font-size:16px;cursor:pointer}
a.btn:hover,button.btn:hover{color:#fff;filter:brightness(1.07)}
button.btn:active{transform:translateY(1px);box-shadow:0 1px 0 var(--btn-d)}
.totop{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;margin:30px 0 0;text-decoration:none;color:var(--sub)}
/* --- 下の帯 --- */
footer.site{margin-top:40px;font-size:13.5px;line-height:1.75}
.fgrid{display:grid;grid-template-columns:1fr;gap:26px 32px;padding:44px 16px 26px}
@media (min-width:760px){.fgrid{grid-template-columns:1.5fr 1fr 1.2fr 1fr}}
.fgrid .brand{margin-bottom:10px}
.fgrid .mark{box-shadow:0 0 0 1px rgba(255,255,255,.22)}
.fgrid .about{margin:0;font-size:13px;max-width:30em}
.fgrid .fh{margin:0 0 10px;font-size:12px;font-weight:700;letter-spacing:.14em}
.fgrid ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.fgrid a{text-decoration:none}
.fgrid a:hover{text-decoration:underline}
.fnote{padding:18px 16px 30px;font-size:12px;line-height:1.8}
.fnote p{margin:0 0 6px}
@media (max-width:759px){
h2{margin:48px 0 14px}
.hd{min-height:0;padding:10px 16px 0;flex-wrap:wrap}
.brand .mark{width:34px;height:34px}
.brand .wm{font-size:18px}
.brand .tl{font-size:10.5px}
nav.gnav{width:calc(100% + 32px);margin:8px -16px 0;display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line)}
nav.gnav a{flex-direction:column;gap:2px;padding:8px 2px 7px;border-radius:0;font-size:11.5px;font-weight:700;line-height:1.3;text-align:center}
nav.gnav a .ic{width:20px;height:20px}
nav.gnav a[aria-current]{background:var(--brand-tt);box-shadow:inset 0 -2px 0 var(--brand)}
.kpi{padding:12px 12px 11px}
.kpi .v{font-size:21px}
table{font-size:14px}th,td{padding:9px 10px}
table.stack thead{display:none}
table.stack tr{display:block;border-bottom:1px solid var(--line);padding:6px 0 9px}
table.stack tbody tr:last-child{border-bottom:0}
table.stack tbody tr:hover td{background:none}
table.stack td{display:flex;justify-content:space-between;align-items:baseline;gap:14px;border:0;padding:3px 14px;text-align:right;white-space:normal}
table.stack td::before{content:attr(data-label);color:var(--sub);font-size:12.5px;font-weight:700;text-align:left;flex:0 0 auto;max-width:45%}
table.stack td:first-child{display:block;text-align:left;font-weight:700;padding:7px 14px 5px}
table.stack td:first-child::before{content:none}
table.stack tr.me td:first-child{box-shadow:none}
table.stack tr.me{background:var(--accent-t)}
.hide-sm{display:none}
.ctabar{display:flex}
.hero .inner{min-height:380px;padding:36px 0 84px}
.finder{margin:-62px 0 0;padding:16px 14px 14px;border-radius:16px}
.due{grid-template-columns:1fr;padding:16px 18px}
.due .cd{grid-row:auto;border-right:0;border-bottom:1px solid var(--line);padding:0 0 10px;text-align:left;display:flex;align-items:baseline;gap:10px}
.due .cd b{font-size:28px}
.honbun{font-size:16px}
.trend{height:170px}
.hj dl div{grid-template-columns:1fr;gap:0}
.srcs div{grid-template-columns:1fr;gap:0}
.office .on{font-size:16px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{.disc,header.site nav,.ctabar,.offers,.offer-note,.midcta,.search,.finder,.side,.toc,footer.site .fgrid{display:none!important}
body{background:#fff}.phh,.hero{color:#000;background:#fff}.phh>img,.hero>img,.phh::after,.hero::after{display:none}.phh h1,.hero h1,.phh .intro,.hero .intro,.phh .meta,.phh .eyebrow{color:#000;text-shadow:none}}
:root{--ff-h:var(--ff);--fw-h:700}
h1,h2,.wm{letter-spacing:.03em}
thead th{background:var(--brand-d);color:#fff;border-bottom:0}
.pgtop{background-color:var(--brand-dd);background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1.3px);background-size:18px 18px;color:#fff;border-bottom:0}
.pgtop h1{color:#fff}.pgtop .intro{color:#d9e4e0}.pgtop .crumb,.pgtop .crumb a{color:#c9d8d3}.pgtop .crumb li+li::before{color:#9fb5ae}
.pgtop h2::after{background:var(--gold)}
footer.site{background:var(--brand-dd);color:#c9d8d3}
.fgrid .fh{color:#9fb8b1}.fgrid a,.fnote a{color:#e6efeb}.fgrid .brand,.fgrid .brand:hover{color:#fff}.fgrid .brand .tl{color:#b9cbc5}
.fnote{border-top:1px solid rgba(255,255,255,.12);color:#a9bdb7}
.band{background-color:var(--brand-dd);background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1.3px);background-size:18px 18px;color:#fff;border-bottom:0}
.band h1{color:#fff}.band .intro{color:#d9e4e0}.band .eyebrow{color:#cfe0d9}
.band .nums{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.14)}
.kpis.strip{gap:0;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden}
.kpis.strip .kpi{border:0;border-radius:0;box-shadow:none;background:none;padding:16px 16px 14px}
@media (min-width:760px){.kpis.strip .kpi+.kpi{border-left:1px solid var(--line)}}
@media (max-width:759px){.kpis.strip .kpi:nth-child(even){border-left:1px solid var(--line)}.kpis.strip .kpi:nth-child(n+3){border-top:1px solid var(--line)}
.kpis.strip.n3 .kpi:nth-child(2){border-left:0;border-top:1px solid var(--line)}.kpis.strip.n3 .kpi:nth-child(3){border-left:1px solid var(--line)}}
@media (prefers-color-scheme:dark){
:root{--bg:#111716;--paper:#151c1b;--card:#1a2221;--ink:#e6ecea;--sub:#a9b6b2;--mute:#93a19c;--line:#2a3432;--line-2:#3a4643;
--brand:#86cbbb;--brand-d:#a6dccf;--brand-dd:#0b1f1c;--brand-t:#1c2d2a;--brand-tt:#172321;
--accent:#d8925a;--accent-d:#e6a874;--accent-t:#2a2119;--warn:#f0a3a3;--warn-t:#2b1c1c;--up:#ff8f86;--down:#8fb8f7;--up-t:#3a1f1d;--down-t:#1b2638;
--sh:0 1px 2px rgba(0,0,0,.3);--sh-h:0 8px 26px rgba(0,0,0,.45)}
thead th{background:#20302d;color:var(--ink)}
.box.note{border-color:#2f4440}.box.warn{border-color:#4a2a2a}.box.kigen{border-color:#4a3622}.midcta{border-color:#4a3622}
.offer.first{box-shadow:none}.oban{background:#fff}
.meter i b,.hbars i b{opacity:.9}.c1{background:#5f8c82}.c2{background:#a08a5f}.c3{background:#6f84a8}
.pgtop,.band{background-color:#0d1b19}.pgtop h1,.band h1{color:var(--ink)}
footer.site{background:#0b1514;color:var(--sub)}.fgrid a,.fnote a{color:var(--ink)}
.result{border-color:#2f4440}.duebar{border-color:#4a3622}.due{border-color:#4a3622}
.nums .v{color:var(--ink)}
figure.ph img,.phh>img,.hero>img{filter:brightness(.9)}
}