/* Belle Work テーマ（案A エディトリアル＋B・C 移植）— 外部読込なし・システムフォントのみ */
:root{
--ink:#3D3433;--ink-2:#6B5F5D;--rose:#AF7373;--rose-ink:#8C5252;--blush:#F2E7E6;--line:#E3C9C8;--paper:#fff;--tint:#FAF6F5;
--c-money:#785F4A;--c-chat-lady:#8D535D;--c-papa-katsu:#7D5471;--c-side-job:#695C7A;--c-column:#544745;--c-law:#695E4F;--c-default:#8C5252;
--sans:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans JP","Meiryo",sans-serif;
--serif:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",serif;
--gut:16px;--max:1180px;color-scheme:light}
@media(min-width:600px){:root{--gut:24px}}
@media(min-width:900px){:root{--gut:32px}}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.7;overflow-wrap:anywhere}
img,svg{max-width:100%;height:auto;display:block}
a{color:var(--rose-ink);text-underline-offset:.2em}
a:hover{color:var(--ink)}
:focus-visible{outline:2px solid var(--rose-ink);outline-offset:2px}
h1,h2,h3,h4{line-height:1.45;margin:0;font-weight:700}
p{margin:0}
ul,ol{margin:0;padding:0}
button,input,textarea{font:inherit;color:inherit}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:8px;top:-80px;background:var(--ink);color:#fff;padding:10px 14px;z-index:60}
.skip-link:focus{top:8px}
.wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--gut)}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}html{scroll-behavior:auto}}

/* ヘッダ */
.masthead{background:#fff;border-bottom:1px solid var(--line)}
.logo,.logo__img{background:#fff}
.masthead__bar{display:grid;grid-template-columns:56px 1fr 56px;align-items:center;gap:8px;padding-block:8px}
.logo{justify-self:center;display:block;width:176px;color:var(--ink);text-decoration:none}
.logo__img{width:100%;height:auto}
.logo__text{font-family:var(--serif);font-size:24px;letter-spacing:.06em}
.ibtn{width:56px;min-height:48px;display:grid;justify-items:center;align-content:center;gap:1px;border:0;background:none;cursor:pointer;border-radius:4px;color:var(--ink);padding:2px 0}
.ibtn:hover{background:var(--tint)}
.ibtn svg{width:22px;height:22px}
.ibtn__l{font-size:10.5px;line-height:1.2;letter-spacing:.04em}
.gnav{display:none;border-top:1px solid var(--line)}
.gnav.is-open{display:block}
.gnav ul{list-style:none;display:grid}
.gnav a{display:flex;align-items:center;min-height:48px;padding:0 4px;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--blush);font-size:15px}
.gnav a:hover{color:var(--rose-ink)}
.gnav a[aria-current="page"],.gnav .is-myfans a{color:var(--rose-ink);font-weight:700}
.spanel{border-top:1px solid var(--line);background:var(--tint);padding-block:14px}
@media(min-width:900px){
.masthead__bar{padding-block:18px 12px}
.logo{width:248px}
.ibtn--menu{visibility:hidden}
.gnav{display:block}
.gnav ul{display:flex;justify-content:center;flex-wrap:wrap}
.gnav a{border:0;padding:0 14px;font-size:14.5px;letter-spacing:.04em}
.gnav li+li a{border-left:1px solid var(--blush)}
}

/* 検索窓（ヘッダ・トップ・用語集・検索ページ共通） */
.sbox{display:flex;gap:8px;max-width:560px}
.sbox input{flex:1;min-width:0;height:48px;border:1px solid var(--line);background:#fff;padding:0 14px;font-size:16px;border-radius:2px}
.sbox input:focus{border-color:var(--rose-ink)}
.sbox button{height:48px;padding:0 20px;border:0;background:var(--ink);color:#fff;cursor:pointer;border-radius:2px;flex:none}
.sbox button:hover{background:var(--rose-ink)}

/* パンくず */
.crumbs{font-size:13px;color:var(--ink-2);padding-block:2px}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:0 .4em}
.crumbs li:not(:last-child)::after{content:"/";margin-left:.4em;color:var(--line)}
.crumbs a{color:var(--ink-2);text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.crumbs li{display:flex;align-items:center;min-height:44px}
.crumbs a:hover{text-decoration:underline}

/* 節見出し */
.sec{padding-block:48px}
.sec--tint{background:var(--tint)}
.sec-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 16px;margin-bottom:24px}
.sec-head h2{font-family:var(--serif);font-size:26px;font-weight:600;letter-spacing:.06em}
.sec-head::after{content:"";flex:1;border-top:1px solid var(--ink);transform:translateY(-.3em);min-width:24px;order:2}
.sec-head .more{order:3;font-size:14px;display:inline-flex;align-items:center;min-height:44px}
.sec-lead{color:var(--ink-2);font-size:15px;margin:-12px 0 24px;max-width:46em}
@media(max-width:599px){.sec-head .more{flex-basis:100%;margin-top:-6px}.news .idx li:nth-child(n+4),.catblock ul li:nth-child(n+4){display:none}}
@media(min-width:900px){.sec{padding-block:72px}.sec-head h2{font-size:34px}}

/* カテゴリ色ラベル・メタ・監修バッジ */
.cat{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;text-decoration:none;color:var(--cc,var(--rose-ink));letter-spacing:.03em}
.cat::before{content:"";width:7px;height:7px;background:currentColor;border-radius:1px;flex:none}
a.cat{min-height:44px}
.cat--money,.catblock--money,.wcat--money,.gbadge--money,.phead--money{--cc:var(--c-money)}
.cat--chat-lady,.catblock--chat-lady,.wcat--chat-lady,.gbadge--chat-lady,.phead--chat-lady{--cc:var(--c-chat-lady)}
.cat--papa-katsu,.catblock--papa-katsu,.wcat--papa-katsu,.gbadge--papa-katsu,.phead--papa-katsu{--cc:var(--c-papa-katsu)}
.cat--side-job,.catblock--side-job,.wcat--side-job,.gbadge--side-job,.phead--side-job{--cc:var(--c-side-job)}
.cat--column,.catblock--column,.wcat--column,.gbadge--column,.phead--column{--cc:var(--c-column)}
.cat--law,.catblock--law,.wcat--law,.gbadge--law,.phead--law{--cc:var(--c-law)}
.cat--default,.catblock--default,.wcat--default,.gbadge--default{--cc:var(--c-default)}
.meta{font-size:12.5px;color:var(--ink-2);display:flex;flex-wrap:wrap;align-items:center;gap:2px 12px}
time{font-variant-numeric:tabular-nums}
.svb{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:700;color:var(--rose-ink);border:1px solid var(--line);border-radius:2px;padding:0 6px;line-height:1.7;background:#fff}
.svb::before{content:"";width:8px;height:4px;border:solid currentColor;border-width:0 0 1.5px 1.5px;transform:rotate(-45deg) translateY(-1px)}

/* サムネイル（写真／カテゴリ別の CSS カード） */
.thumb{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--blush) center/cover no-repeat;border:1px solid var(--blush)}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb--money{background-image:url(card-money.svg)}
.thumb--chat-lady{background-image:url(card-chat-lady.svg)}
.thumb--papa-katsu{background-image:url(card-papa-katsu.svg)}
.thumb--side-job{background-image:url(card-side-job.svg)}
.thumb--column{background-image:url(card-column.svg)}
.thumb--law{background-image:url(card-law.svg)}
.thumb--default{background-image:url(card-default.svg)}

/* カード */
.cards{list-style:none;display:grid;gap:20px}
.card{position:relative;display:grid;grid-template-columns:112px minmax(0,1fr);gap:14px;align-items:start;align-content:start}
.card__t{font-family:var(--serif);font-size:16.5px;font-weight:600;line-height:1.6;margin:4px 0 0}
.card__t a{color:var(--ink);text-decoration:none}
.card__t a::after{content:"";position:absolute;inset:0}
.card:hover .card__t a{text-decoration:underline;text-decoration-thickness:1px}
.card__ex{display:none;font-size:14px;line-height:1.85;color:var(--ink-2);margin-top:8px}
@media(min-width:600px){
.cards--4{grid-template-columns:repeat(2,1fr);gap:32px 24px}
.cards--3{grid-template-columns:repeat(3,1fr);gap:24px}
.cards--4 .card,.cards--3 .card{grid-template-columns:1fr;gap:10px}
}
@media(min-width:1000px){.cards--4{grid-template-columns:repeat(4,1fr)}}
.cards--mini .card{grid-template-columns:88px minmax(0,1fr);gap:12px}
.cards--mini .card__t{font-size:14.5px}

/* 索引リスト（日付＋題名） */
.idx{list-style:none;margin-top:32px;border-top:1px solid var(--ink)}
.idx li{display:grid;grid-template-columns:auto 1fr;gap:2px 14px;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--blush)}
.idx time{font-size:12.5px;color:var(--ink-2)}
.idx__t{grid-column:1/-1;color:var(--ink);text-decoration:none;font-size:15.5px;line-height:1.7;display:flex;align-items:center;min-height:44px}
.idx__t:hover{text-decoration:underline}
.idx .svb{grid-column:1/-1;justify-self:start}
@media(min-width:700px){.idx li{grid-template-columns:96px 170px 1fr}.idx__t{grid-column:3}.idx .svb{grid-column:3}}
.sidebar .idx{margin-top:0;border-top:0}
.sidebar .idx li,.news__side .idx li{grid-template-columns:auto 1fr}
.sidebar .idx__t{grid-column:1/-1;font-size:14.5px}
.sidebar .idx .svb,.news__side .idx .svb{grid-column:1/-1}

/* ランキング */
.sblock+.sblock{margin-top:40px}
.sblock h2{font-family:var(--serif);font-size:20px;font-weight:600;letter-spacing:.06em;padding-bottom:10px;border-bottom:1px solid var(--ink);margin-bottom:6px}
.rank{list-style:none}
.rank li{display:grid;grid-template-columns:36px 1fr;gap:10px;padding:12px 0;border-bottom:1px solid var(--blush)}
.rank__n{font-family:var(--serif);font-size:24px;line-height:1.1;color:var(--rose)}
.rank a{color:var(--ink);text-decoration:none;font-size:14.5px;line-height:1.65;display:block}
.rank a:hover{text-decoration:underline}
.rank .meta{margin-top:4px}
.scats{list-style:none}
.scats a{display:flex;justify-content:space-between;align-items:center;min-height:44px;border-bottom:1px solid var(--blush);color:var(--ink);text-decoration:none;font-size:14.5px}
.scats a:hover,.scats a[aria-current="page"]{color:var(--rose-ink)}
.scats small{color:var(--ink-2);font-size:12.5px}
.pr-label{display:inline-block;background:var(--ink-2);color:#fff;font-size:11px;padding:1px 8px;letter-spacing:.1em;margin-bottom:8px}
.banners{list-style:none;display:grid;gap:16px;justify-items:center}
.banners img{max-width:300px;width:100%}

/* 広告枠（中身が入るまで高さ 0） */
.ad-slot{margin-block:40px;min-height:1px}
.ad-slot:empty{margin:0;min-height:0}

/* レイアウト（本文＋サイドバー） */
.layout{display:grid;gap:48px;padding-block:16px 64px}
.layout>main{min-width:0}
@media(min-width:1100px){.layout{grid-template-columns:minmax(0,1fr) 300px;gap:64px}.layout--single{grid-template-columns:minmax(0,1fr)}}

/* トップ：ヒーロー（検索＋五十音） */
.hero{background:var(--tint);border-bottom:1px solid var(--line);padding-block:28px}
.hero__in{display:grid;gap:24px}
.hero__h1{font-family:var(--serif);font-size:28px;font-weight:600;letter-spacing:.06em;line-height:1.35;word-break:auto-phrase;text-wrap:balance}
.hero__lead{font-size:14.5px;color:var(--ink-2);margin:8px 0 16px}
.hero__h1+.sbox{margin-top:16px}
.hero__kh{font-family:var(--serif);font-size:16px;font-weight:600;margin-bottom:8px}
.hero__kh a{color:var(--ink);display:inline-flex;align-items:center;min-height:44px}
.kana{list-style:none;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.kana a{display:grid;place-items:center;align-content:center;min-height:48px;padding:4px 2px;border:1px solid var(--line);background:#fff;text-decoration:none;color:var(--ink);line-height:1.2;text-align:center}
.kana a:hover{border-color:var(--rose-ink);color:var(--rose-ink)}
.kana b{font-family:var(--serif);font-size:17px;font-weight:600}
.kana small{font-size:10.5px;color:var(--ink-2)}
@media(min-width:900px){.hero{padding-block:40px}.hero__in{grid-template-columns:minmax(0,1fr) 420px;gap:48px;align-items:center}.hero__h1{font-size:40px}}

/* トップ：巻頭特集 */
.lead{padding-block:32px 40px}
.lead__grid{display:grid;gap:20px}
.lead__fig{margin:0 calc(var(--gut)*-1)}
.lead__fig img,.lead__fig .thumb{width:100%;aspect-ratio:3/2;object-fit:cover;border:0}
.lead__body{display:flex;gap:16px}
.tategaki{writing-mode:vertical-rl;font-family:var(--serif);font-size:18px;letter-spacing:.35em;color:var(--rose-ink);line-height:1;flex:none;border-left:1px solid var(--line);padding:2px 0 0 10px}
.lead__text{flex:1;min-width:0}
.lead__label{font-size:13px;color:var(--ink-2);display:flex;align-items:center;gap:8px}
.lead__title{font-family:var(--serif);font-size:24px;font-weight:600;line-height:1.5;letter-spacing:.02em;margin:10px 0 14px;word-break:auto-phrase;text-wrap:pretty}
.lead__title a{color:var(--ink);text-decoration:none}
.lead__title a:hover{text-decoration:underline;text-decoration-thickness:1px}
.lead__ex{font-size:15px;line-height:1.9;margin-bottom:12px}
.lead__sub{display:grid;gap:24px;margin-top:32px;padding-top:24px;border-top:1px solid var(--ink)}
.feat{display:grid;grid-template-columns:112px 1fr;gap:14px;align-items:start;position:relative}
.feat h3{font-family:var(--serif);font-size:17px;font-weight:600;margin-top:4px;line-height:1.55}
.feat h3 a{color:var(--ink);text-decoration:none}
.feat h3 a::after{content:"";position:absolute;inset:0}
.feat:hover h3 a{text-decoration:underline}
@media(min-width:900px){
.lead{padding-block:48px 56px}
.lead__grid{grid-template-columns:5fr 7fr;gap:48px;align-items:center}
.lead__fig{margin:0;order:2}
.lead__title{font-size:32px;max-width:17em}
.tategaki{font-size:22px}
.lead__sub{grid-template-columns:1fr 1fr;gap:48px}
.feat{grid-template-columns:180px 1fr;gap:24px}.feat h3{font-size:20px}
}

/* トップ：新着 */
.news{display:grid;gap:40px}
@media(min-width:1000px){.news{grid-template-columns:minmax(0,1fr) 300px;gap:56px}}

/* トップ：カテゴリ別 */
.cats{display:grid;gap:40px}
.catblock{border-top:3px solid var(--cc);padding-top:12px}
.catblock h3{font-family:var(--serif);font-size:22px;font-weight:600;letter-spacing:.04em}
.catblock h3 a{color:var(--ink);text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.catblock h3 a:hover{color:var(--cc)}
.catblock ul{list-style:none;margin-top:4px}
.catblock li{border-top:1px solid var(--blush);position:relative}
.catblock li>a{display:block;padding:11px 0;color:var(--ink);text-decoration:none;font-size:15px;line-height:1.7}
.catblock li>a:hover{text-decoration:underline}
.catblock li .svb{margin:-6px 0 10px}
.catblock__first{display:grid;grid-template-columns:96px 1fr;gap:12px;align-items:center;border-top:0!important}
.catblock__first>a{font-family:var(--serif);font-weight:600}
.catblock__first>a::after{content:"";position:absolute;inset:0}
.catblock__first .svb{grid-column:2;justify-self:start}
.catblock__all{display:inline-flex;align-items:center;min-height:44px;margin-top:4px;font-size:14px}
@media(min-width:700px){.cats{grid-template-columns:repeat(2,1fr);gap:48px 32px}}

/* myfans 特集帯 */
.serial{background:var(--ink);color:#F6EEED;padding-block:48px}
.serial__grid{display:grid;gap:28px}
.serial__k{font-size:13px;color:#E3C9C8;letter-spacing:.1em;margin-bottom:10px}
.serial h2{font-family:var(--serif);font-size:28px;font-weight:600;line-height:1.5}
.serial p{font-size:15px;line-height:1.95;margin-top:14px;color:#EADCDB}
.serial ul{list-style:none;border-top:1px solid #7A6D6B}
.serial li{border-bottom:1px solid #7A6D6B;padding:14px 0;font-size:15px}
.serial li span{display:block;font-size:12px;color:#E3C9C8}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;border:1px solid currentColor;text-decoration:none;font-size:15px;letter-spacing:.06em;border-radius:2px;background:none;cursor:pointer}
.btn--light{color:#fff;margin-top:22px}
.btn--light:hover{background:#fff;color:var(--ink)}
.btn--ink{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn--ink:hover{background:var(--rose-ink);border-color:var(--rose-ink)}
@media(min-width:900px){.serial{padding-block:72px}.serial__grid{grid-template-columns:1fr 1fr;gap:64px;align-items:center}.serial h2{font-size:34px}}

/* 用語集の分野 */
.wcats{list-style:none;display:grid;gap:12px}
.wcat{display:block;min-height:48px;padding:12px 16px;border:1px solid var(--line);border-left:4px solid var(--cc);background:#fff;text-decoration:none;color:var(--ink)}
.wcat:hover{background:var(--tint)}
.wcat__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.wcat b{font-family:var(--serif);font-size:18px;font-weight:600}
.wcat small{font-size:13px;color:var(--ink-2);white-space:nowrap}
.wcat__d{display:block;font-size:13.5px;color:var(--ink-2);line-height:1.75;margin-top:6px}
@media(min-width:700px){.wcats{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.sec .wcats{grid-template-columns:repeat(5,1fr)}}

/* 書く人と、確かめる人 */
.trust{display:grid;gap:32px}
.trust h3{font-size:14px;color:var(--ink-2);letter-spacing:.08em;margin-bottom:12px}
.people{list-style:none;display:grid;gap:16px}
.people li{display:grid;grid-template-columns:64px 1fr;gap:14px;align-items:center}
.people__img,.people__m{width:64px;height:64px;border-radius:50%;object-fit:cover}
.people__m{display:grid;place-items:center;border:1px solid var(--rose);color:var(--rose-ink);font-family:var(--serif);font-size:22px;background:#fff}
.people__n{font-family:var(--serif);font-size:18px;font-weight:600}
.people__n a{color:var(--ink);display:inline-flex;align-items:center;min-height:44px}
.people__j{font-size:13px;color:var(--ink-2)}
.textlinks{display:flex;flex-wrap:wrap;gap:0 24px;margin-top:20px;font-size:14px}
.textlinks a{display:inline-flex;align-items:center;min-height:44px}
@media(min-width:900px){.trust{grid-template-columns:3fr 2fr;gap:56px}}
.about__b{max-width:46em;color:var(--ink-2);font-size:15px}

/* ページ見出し */
.phead{padding-block:8px 24px;border-bottom:1px solid var(--ink);margin-bottom:24px}
.phead h1{font-family:var(--serif);font-size:30px;font-weight:600;letter-spacing:.05em;line-height:1.4;word-break:auto-phrase;text-wrap:balance}
.phead--cat h1{border-left:4px solid var(--cc);padding-left:14px}
.phead__lead{margin-top:12px;font-size:15px;line-height:1.9;color:var(--ink-2);max-width:44em}
.phead__body{margin:12px 0 20px;color:var(--ink-2)}
@media(min-width:900px){.phead h1{font-size:42px}}
.subnav ul{list-style:none;display:flex;flex-wrap:wrap;gap:0 18px;margin:-8px 0 16px;font-size:14px}
.subnav a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink-2);text-decoration:none}
.subnav a:hover,.subnav a[aria-current="page"]{color:var(--ink);text-decoration:underline}
.list-h{font-family:var(--serif);font-size:22px;font-weight:600;margin:40px 0 4px;padding-bottom:10px;border-bottom:1px solid var(--ink)}

/* 一覧 */
.alist{list-style:none}
.alist>.card{padding:20px 0;border-bottom:1px solid var(--blush)}
.alist .card__t{font-size:18px}
.alist__ad{list-style:none}
@media(min-width:700px){.alist>.card{grid-template-columns:200px minmax(0,1fr);gap:24px}.alist .card__ex{display:block}.alist .card__t{font-size:20px}}
.pagination{margin-top:40px}
.pagination ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.pagination a,.pagination span{display:grid;place-items:center;min-width:48px;height:48px;padding:0 14px;border:1px solid var(--line);text-decoration:none;color:var(--ink);font-variant-numeric:tabular-nums}
.pagination a:hover{border-color:var(--ink)}
.pagination [aria-current="page"]{background:var(--ink);border-color:var(--ink);color:#fff}

/* 五十音索引（用語集・用語カテゴリ） */
.kana--nav{margin:4px 0 16px}
.wsec{margin-top:40px}
.wsec>h2{font-family:var(--serif);font-size:24px;font-weight:600;letter-spacing:.05em;padding-bottom:10px;border-bottom:1px solid var(--ink);margin-bottom:16px}
.krow{padding:16px 0;border-top:1px solid var(--blush);scroll-margin-top:12px}
.krow>h2,.krow>h3{font-family:var(--serif);font-size:22px;font-weight:600;color:var(--rose-ink);line-height:1.2;margin-bottom:6px}
.krow ul{list-style:none;display:flex;flex-wrap:wrap;gap:0 20px}
.krow a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line);font-size:15px;line-height:1.4}
.krow a:hover{color:var(--rose-ink);border-color:var(--rose-ink)}
@media(min-width:800px){.krow{display:grid;grid-template-columns:120px 1fr;align-items:start}.kana--nav{grid-template-columns:repeat(12,minmax(0,1fr))}}
.dict{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--blush);border-block:1px solid var(--ink)}
.dict li{background:#fff}
.dict a{display:flex;align-items:center;min-height:48px;padding:10px 12px;text-decoration:none;color:var(--ink);font-family:var(--serif);font-weight:600}
@media(min-width:700px){.dict{grid-template-columns:repeat(4,1fr)}}

/* 記事（投稿・myfans）の骨組み：1100px 以上で 目次（追従）とサイドバーを右カラムへ。目次は .post__toc（head と本文の行）の中で追従し、3 行目のサイドバーに重ならない */
.post{padding-block:8px 64px}
.post__head{padding-bottom:20px}
.post__head h1{font-family:var(--serif);font-size:25px;font-weight:600;line-height:1.55;letter-spacing:.02em;margin:6px 0 16px;word-break:auto-phrase;text-wrap:pretty}
.emeta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px;margin:0;padding-top:14px;border-top:1px solid var(--ink);font-size:13.5px}
.emeta div{display:flex;gap:10px;min-width:0}
.emeta dt{color:var(--ink-2);flex:none}
.emeta dd{margin:0;min-width:0}
.emeta a{color:var(--ink);font-weight:700;display:inline-flex;align-items:center;min-height:44px;margin-block:-12px}
.cover{margin:24px calc(var(--gut)*-1) 0}
.cover img{width:100%;aspect-ratio:3/2;object-fit:cover}
@media(min-width:600px){.cover{margin-inline:0}.emeta{display:flex;flex-wrap:wrap;gap:6px 24px}}
@media(min-width:900px){.post__head h1{font-size:34px}}
.post>*{min-width:0}
.post__body,.post__foot{max-width:760px}
.post .sidebar{margin-top:56px}
@media(min-width:1100px){
.post{display:grid;grid-template-columns:minmax(0,1fr) 300px;column-gap:64px;align-items:start}
.post>*{grid-column:1}
.post>.post__toc{grid-column:2;grid-row:1/span 2;align-self:stretch}
.post__toc>.toc{position:sticky;top:16px;max-height:calc(100vh - 32px);overflow:auto;margin:0 0 32px}
.post>.sidebar{grid-column:2;grid-row:3;margin-top:0}
.post--notoc>.sidebar{grid-row:1/span 3}
.toc__btn{display:none!important}
}

/* 目次（1 つだけ） */
.toc{border:1px solid var(--line);padding:14px 18px;background:#fff;margin:8px 0 32px;font-size:14.5px}
.toc__top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.toc__h{font-family:var(--serif);font-size:17px;font-weight:600;letter-spacing:.2em}
.toc__btn{min-height:44px;padding:0 14px;border:1px solid var(--line);background:#fff;font-size:13px;cursor:pointer;border-radius:2px}
.toc ol{list-style:none}
.toc__list{counter-reset:t;margin-top:8px}
.toc__list>li{counter-increment:t;border-top:1px solid var(--blush);padding:2px 0}
.toc__list>li>a{display:grid;grid-template-columns:1.8em 1fr;align-items:center;font-weight:700}
.toc__list>li>a::before{content:counter(t);font-family:var(--serif);color:var(--rose-ink);font-weight:600}
.toc a{color:var(--ink);text-decoration:none;display:flex;align-items:center;min-height:44px;padding:4px 0 4px 8px;border-left:2px solid transparent;line-height:1.6}
.toc a:hover{text-decoration:underline}
.toc a.is-current{color:var(--rose-ink);border-left-color:var(--rose)}
.toc li ol{margin-left:1.8em;font-size:13.5px}
.toc li ol a{color:var(--ink-2)}
.toc.is-closed .toc__list{display:none}

/* 本文（bw- class のみ） */
.bw-body{font-size:16px;line-height:1.95}
@media(min-width:900px){.post .bw-body,.term .bw-body{font-size:17px;line-height:2}}
.bw-body>*+*{margin-top:1.3em}
.bw-body h2{font-family:var(--serif);font-size:23px;font-weight:600;line-height:1.55;letter-spacing:.03em;margin-top:2.4em;padding-top:22px;position:relative;scroll-margin-top:16px}
.bw-body h2::before{content:"";position:absolute;top:0;left:0;width:40px;border-top:2px solid var(--rose)}
.bw-body h3{font-size:18px;line-height:1.6;margin-top:2em;padding-bottom:6px;border-bottom:1px solid var(--line);scroll-margin-top:16px}
.bw-body h4{font-size:16.5px;margin-top:1.6em}
@media(min-width:900px){.bw-body h2{font-size:27px}.bw-body h3{font-size:20px}}
.bw-body ul,.bw-body ol{padding-left:1.4em}
.bw-body li+li{margin-top:.35em}
.bw-body ul li::marker{color:var(--rose)}
.bw-body strong{background:linear-gradient(transparent 62%,var(--blush) 62%)}
.bw-body img{margin-inline:auto}
.bw-body blockquote{margin:1.3em 0 0;padding:12px 18px;border-left:3px solid var(--line);color:var(--ink-2)}
.bw-h-accent{border-bottom:0!important;border-left:3px solid var(--rose);padding:0 0 0 12px!important}
.bw-term-link{color:inherit!important;text-decoration:underline dotted var(--rose-ink);text-decoration-thickness:1.5px;text-underline-offset:.3em}
.bw-term-link:hover{color:var(--rose-ink)!important;text-decoration-style:solid}
.bw-ta-center{text-align:center!important}
.bw-box-summary{background:var(--tint);border-left:3px solid var(--rose);padding:16px 20px;font-size:15px;line-height:1.9}
.bw-box-summary__label{font-weight:700;font-size:14px;color:var(--rose-ink);margin-bottom:6px}
.bw-box-point{background:var(--tint);border-left:3px solid var(--line);padding:14px 18px;font-size:15px}
.bw-box-message{position:relative;background:var(--tint);padding:40px 22px 22px;font-size:15.5px;line-height:1.95}
.bw-box-message::before{content:"\201C";position:absolute;top:4px;left:16px;font-family:var(--serif);font-size:56px;line-height:1;color:var(--rose)}
.bw-box-message p+p{margin-top:1em}
.bw-box-byline{font-size:13.5px;line-height:1.9;color:var(--ink-2);border-block:1px solid var(--line);padding:12px 0}
.bw-faq{border-top:1px solid var(--line)}
.bw-faq+.bw-faq{margin-top:0}
.bw-faq:last-of-type{border-bottom:1px solid var(--line)}
.bw-body summary{min-height:44px;cursor:pointer}
.bw-faq summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:1.8em 1fr 24px;gap:8px;align-items:baseline;padding:14px 0;font-weight:700;line-height:1.7;min-height:48px}
.bw-faq summary::-webkit-details-marker{display:none}
.bw-faq summary::before{content:"Q";font-family:var(--serif);color:var(--rose-ink);font-size:20px;line-height:1}
.bw-faq summary::after{content:"+";font-size:20px;color:var(--ink-2);text-align:center;line-height:1}
.bw-faq[open] summary::after{content:"\2212"}
.bw-faq>:not(summary){padding-left:2.6em;margin:0 0 14px;font-size:15.5px}
.bw-faq>summary+*{position:relative}
.bw-faq>summary+*::before{content:"A";position:absolute;left:.4em;top:0;font-family:var(--serif);color:var(--ink-2);font-size:18px}
.faq{margin-top:48px}
.faq>h2{font-family:var(--serif);font-size:23px;font-weight:600;margin-bottom:12px}
/* 表：3 列まではそのまま収める（min-width なし）。4 列以上だけ最小幅を持たせて横スクロール＋案内（JS）・1 列目を固定 */
.bw-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.bw-table-wrap table,.bw-body table{width:100%;border-collapse:collapse;font-size:14.5px;line-height:1.7}
.bw-body th,.bw-body td{border:1px solid var(--line);padding:9px 10px;text-align:left;vertical-align:top}
.bw-body th{background:var(--tint);font-weight:700}
.bw-row-accent>*{background:var(--tint)}
.bw-body table:has(tr>:nth-child(4)){min-width:40em}
.bw-body table:has(tr>:nth-child(4)) tr>:first-child{position:sticky;left:0;z-index:1;background:#fff;box-shadow:1px 0 0 var(--line)}
.bw-body table:has(tr>:nth-child(4)) tr>th:first-child{background:var(--tint)}
.tbl-hint{font-size:12.5px;color:var(--ink-2);margin-bottom:-.8em}

/* 記事末：著者・監修・関連・前後 */
.abox{margin-top:48px;border:1px solid var(--ink);padding:20px}
.abox__k{font-size:12.5px;color:var(--ink-2);letter-spacing:.08em;margin-bottom:10px}
.abox__k:empty{display:none}
.abox__in{display:grid;grid-template-columns:72px 1fr;gap:16px;align-items:start}
.abox__in>div{min-width:0}
.abox__in>div:only-child{grid-column:1/-1}
.abox__img{width:72px;height:72px;border-radius:50%;object-fit:cover}
.abox__name{font-family:var(--serif);font-size:20px;font-weight:600}
.abox__name a{color:var(--ink);display:inline-flex;align-items:center;min-height:44px}
.abox__job{font-size:13px;color:var(--rose-ink);font-weight:700}
.abox__stats{font-size:12.5px;color:var(--ink-2);margin-top:2px}
.abox__bio{font-size:14.5px;line-height:1.85;margin-top:8px}
.abox__ach{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.abox__ach li{font-size:12.5px;font-weight:700;color:var(--rose-ink);background:var(--blush);border-radius:2px;padding:2px 8px}
.abox__exp{font-size:13.5px;line-height:1.8;margin-top:10px}.abox__exp span{display:inline-block;font-size:12px;font-weight:700;color:var(--ink-2);border:1px solid var(--line);border-radius:2px;padding:0 6px;margin-right:8px}
.abox__more{margin-top:8px}.abox__more a{display:inline-flex;align-items:center;min-height:44px;font-size:14px;font-weight:700;color:var(--rose-ink)}
@media(min-width:700px){.abox{padding:26px}.abox__in{grid-template-columns:104px 1fr;gap:24px}.abox__img{width:104px;height:104px}}
.team{margin-top:40px}
.team>h2,.related>h2,.cluster>h2{font-family:var(--serif);font-size:22px;font-weight:600;padding-bottom:10px;border-bottom:1px solid var(--ink);margin-bottom:20px;letter-spacing:.05em}
.team .abox{margin-top:20px}
.review{margin-top:24px;padding:18px 20px;border:1px solid var(--line);background:#fff}
.review h2{font-family:var(--serif);font-size:18px;font-weight:600}
.review ul{list-style:none;margin-top:8px;display:grid;gap:4px;font-size:15px}
.review li span{display:inline-block;min-width:6.5em;font-size:13px;color:var(--ink-2)}
.review p{font-size:13px;color:var(--ink-2);margin-top:8px}
.related{margin-top:56px}
.pn{display:grid;gap:12px;margin-top:40px}
.pn a{display:block;padding:14px 18px;border:1px solid var(--line);text-decoration:none;color:var(--ink);font-size:15px;line-height:1.7}
.pn a:hover{border-color:var(--ink)}
.pn span{display:block;font-size:12.5px;color:var(--ink-2);margin-bottom:2px}
.pn__next{text-align:right}
@media(min-width:700px){.pn{grid-template-columns:1fr 1fr}.pn__next:only-child{grid-column:2}}

/* 用語ページ */
.term__head{padding-bottom:20px;margin-bottom:24px;border-bottom:1px solid var(--ink)}
.term__head h1{font-family:var(--serif);font-size:32px;font-weight:600;letter-spacing:.05em;margin:12px 0 14px;word-break:auto-phrase;text-wrap:balance}
.term__head .emeta{border:0;padding:0}
.gbadge{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border:1px solid currentColor;border-radius:22px;font-size:13px;font-weight:700;text-decoration:none;color:var(--cc)}
@media(min-width:900px){.term__head h1{font-size:44px}}

/* myfans */
.mf-head{border-top:3px solid var(--ink);padding-top:16px}
.mf-head__k{display:inline-block;font-size:12px;letter-spacing:.12em;color:#fff;background:var(--ink);padding:2px 10px}
.cluster{margin-top:48px}
.cluster ol{list-style:none;counter-reset:c}
.cluster li{counter-increment:c;display:grid;grid-template-columns:3em 1fr;gap:8px;padding:12px 0;border-bottom:1px solid var(--blush)}
.cluster li::before{content:counter(c,decimal-leading-zero);font-family:var(--serif);font-size:18px;color:var(--rose-ink)}
.cluster a{color:var(--ink);text-decoration:none;font-size:15.5px;line-height:1.7}
.cluster a:hover{text-decoration:underline}

/* 固定ページ・フォーム */
.contact-form{margin-top:32px;display:grid;gap:18px;max-width:640px}
.fld label{display:flex;align-items:center;gap:8px;font-weight:700;font-size:15px;margin-bottom:6px}
.fld input:not([type=checkbox]),.fld textarea,.contact-form input[type=text],.contact-form input[type=email],.contact-form textarea{width:100%;min-height:48px;border:1px solid var(--line);background:#fff;padding:10px 12px;font-size:16px;border-radius:2px}
.fld textarea,.contact-form textarea{min-height:200px;resize:vertical}
.fld input:focus,.fld textarea:focus{border-color:var(--rose-ink)}
.fld--check{display:flex;align-items:center;gap:10px}
.fld--check label{margin:0;font-weight:400;min-height:44px}
.contact-form input[type=checkbox]{width:24px;height:24px;accent-color:var(--rose-ink);flex:none}
.req{font-size:11px;font-weight:700;color:#fff;background:var(--rose-ink);padding:0 6px;border-radius:2px}
.contact-form button{min-height:48px;padding:0 28px}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.bw-contact-rows{width:100%;border-collapse:collapse;border-top:1px solid var(--line);margin:16px 0}
.bw-contact-rows th,.bw-contact-rows td{display:block;text-align:left;border:0;padding:0}
.bw-contact-rows th{font-weight:700;padding-top:12px;background:none}
.bw-contact-rows td{padding:4px 0 12px;border-bottom:1px solid var(--blush);overflow-wrap:anywhere}

/* 検索・404 */
.sbox--page{margin:8px 0 16px}
.sstatus{font-size:14px;color:var(--ink-2);min-height:1.7em}
.sresults{list-style:none;margin-top:12px;border-top:1px solid var(--ink)}
.sresults li{padding:14px 0;border-bottom:1px solid var(--blush)}
.sresults a{font-family:var(--serif);font-size:17px;font-weight:600;color:var(--ink);text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.sresults a:hover{text-decoration:underline}
.sresults p{font-size:14px;color:var(--ink-2);line-height:1.8}
.sresults .meta{margin-bottom:2px}
.note{font-size:13px;color:var(--ink-2);margin-top:16px}
.lost{font-size:15.5px;line-height:1.9;margin-bottom:16px}
.lost__links{list-style:none;display:flex;flex-wrap:wrap;gap:0 24px;margin-top:16px}
.lost__links a{display:inline-flex;align-items:center;min-height:44px}

/* フッター（大きな明朝のキャッチは 1 回だけ） */
.site-foot{background:var(--tint);border-top:1px solid var(--ink);padding-block:48px 24px;font-size:14px}
.foot-mark{font-family:var(--serif);font-weight:600;font-size:34px;line-height:1.3;letter-spacing:.14em;color:var(--ink);padding-bottom:28px;margin-bottom:28px;border-bottom:1px solid var(--line);word-break:keep-all}
.foot-grid{display:grid;gap:28px}
.foot-name{font-family:var(--serif);font-size:20px;letter-spacing:.08em}
.foot-about{color:var(--ink-2);line-height:1.9;margin-top:6px;max-width:28em}
.foot-grid h2{font-size:13px;color:var(--ink-2);font-weight:700;margin-bottom:6px;letter-spacing:.08em}
.foot-grid>div>nav+nav{margin-top:12px}
.foot-grid ul{list-style:none}
.foot-grid li a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);text-decoration:none}
.foot-grid li a:hover{text-decoration:underline}
.sns{display:flex;gap:0 20px;margin-top:8px}
.copy{margin-top:32px;padding-top:16px;border-top:1px solid var(--line);font-size:12.5px;color:var(--ink-2)}
@media(min-width:800px){.foot-grid{grid-template-columns:2fr 1fr 1fr}}
@media(min-width:900px){.foot-mark{font-size:64px}}
.to-top{position:fixed;right:16px;bottom:16px;width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);display:grid;place-items:center;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .2s;box-shadow:0 2px 8px rgba(61,52,51,.12);z-index:20}
.to-top.is-shown{opacity:1;pointer-events:auto}
.to-top svg{width:20px;height:20px}
