.pg{min-height:100vh;display:flex;flex-direction:column;background:var(--bg-page)}
.mn{flex:1;padding:30px 0 72px}
.crumb{margin:0 0 22px}
.cols{display:grid;grid-template-columns:1fr var(--sidebar-w);gap:44px;align-items:start}
.art{min-width:0}
.art__t{margin:0 0 14px;font-family:var(--font-heading);font-weight:700;font-size:30px;line-height:1.4;color:var(--ink);text-wrap:pretty}
.art__meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;margin:0 0 20px}
.art__date{font:700 12.5px/1 var(--font-ui);color:var(--text-tertiary);font-variant-numeric:tabular-nums}
.art__tags{display:flex;flex-wrap:wrap;gap:6px}
.art__sv{font:700 12px/1.4 var(--font-ui);color:var(--text-secondary)}
.art__sv a{color:var(--text-link);text-decoration:none}
.art__sv a:hover{text-decoration:underline}
.art__hero{aspect-ratio:1200/630;border-radius:var(--radius-image);overflow:hidden;margin:0 0 10px;box-shadow:var(--shadow-sm)}
.art__hero>img{display:block;width:100%;height:100%;object-fit:cover}
.art__hero .ds-eth{border-radius:var(--radius-image)}
.art__toc{margin:64px 0}
.body{background:var(--surface);border:1px solid var(--border-subtle);border-radius:16px;padding:28px 24px;font:400 15px/1.8 var(--font-body);color:var(--text-primary)}
.body h2{font-family:var(--font-heading);font-weight:700;font-size:21px;line-height:1.45;margin:96px 0 16px;padding:10px 16px;background:var(--blue-50);border-left:5px solid var(--blue-500);border-radius:0 8px 8px 0}
.body h2:first-child{margin-top:0}
.body h3{font-family:var(--font-heading);font-weight:700;font-size:19.5px;line-height:1.5;margin:64px 0 12px;padding-bottom:8px;border-bottom:2px dotted var(--border-dotted)}
.body p{margin:0 0 18px;text-wrap:pretty}
.body ul{margin:0 0 18px;padding-left:22px}
.body li{margin:0 0 6px}
.body b{color:var(--blue-700)}
.sec{margin:38px 0 0}
.mame-single .art>.sec:not(.sec--card){padding:0}
.sec--card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:16px;padding:24px 26px 28px}
.sec__t{margin:0 0 16px;font-family:var(--font-heading);font-weight:900;font-size:18px;color:var(--ink);padding-bottom:10px;border-bottom:2px solid var(--blue-500)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:30px 24px}
/* 記事下の関連記事グリッド。トップページの .grid3 とは別物（名前衝突事故の再発防止で relgrid） */
.relgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px 18px}
.relgrid .ds-acard .ds-acard__title{font-size:11.5px;line-height:1.5}
.relgrid .ds-acard .ds-acard__body{padding:8px 10px 9px;gap:5px}
.relgrid .ds-acard :is(.ds-byline,.ds-byline__aff){font-size:9.5px}
.relgrid .ds-acard .ds-tag{font-size:9px}
@media(max-width:860px){.relgrid{grid-template-columns:1fr 1fr}}
.pn{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.pn__a{display:flex;flex-direction:column;gap:6px;padding:16px 18px;background:var(--surface);border:1px solid var(--border-subtle);border-radius:14px;text-decoration:none;color:var(--ink);box-shadow:0 2px 9px rgba(20,30,60,.08);transition:transform var(--dur-base) var(--ease-standard),box-shadow var(--dur-base) var(--ease-standard)}
.pn__a:hover{transform:var(--hover-lift);box-shadow:var(--shadow-md)}
.pn__dir{font:800 11px/1 var(--font-ui);color:var(--blue-600)}
.pn__a--next{text-align:right;align-items:flex-end}
.pn__tt{font-family:var(--font-heading);font-weight:900;font-size:13.5px;line-height:1.55}
.rail{display:flex;flex-direction:column;gap:22px}
.rail__box{background:var(--surface);border:1px solid var(--border-subtle);border-radius:16px;padding:20px 22px}
.rail__t{margin:0 0 14px;font-family:var(--font-heading);font-weight:900;font-size:15px;color:var(--ink);padding-bottom:10px;border-bottom:2px solid var(--blue-500)}
.rail__recs{display:flex;flex-direction:column;gap:12px}
.rail__recs>*+*{border-top:1px dotted var(--border-dotted);padding-top:12px}
.rank{display:flex;align-items:flex-start;gap:10px;text-decoration:none;color:var(--ink)}
.rank:hover .rank__t{color:var(--blue-600);text-decoration:underline;text-underline-offset:2px}
.rank__n{flex:none;width:22px;height:22px;border-radius:50%;background:var(--blue-100);color:var(--blue-700);display:flex;align-items:center;justify-content:center;font:800 11.5px/1 var(--font-ui);margin-top:-1px;font-variant-numeric:tabular-nums}
.rank--top .rank__n{background:var(--blue-500);color:#fff}
.rank__t{font-family:var(--font-heading);font-weight:700;font-size:13px;line-height:1.6}
.rail__cats{display:flex;flex-direction:column}
.rail__cat{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 2px 4px;font:700 13.5px/1.4 var(--font-ui);color:var(--ink);text-decoration:none;transition:color var(--dur-fast) var(--ease-standard)}
.rail__cat:hover{color:var(--blue-600)}
.rail__cats>*+*{border-top:1px dotted var(--border-dotted);margin-top:8px}
.rail__subs{display:flex;flex-direction:column;padding:0 0 6px}
.rail__sub{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 2px 5px 18px;font:500 12.5px/1.5 var(--font-ui);color:var(--text-secondary);text-decoration:none;transition:color var(--dur-fast) var(--ease-standard)}
.rail__sub::before{content:"";position:absolute;left:5px;top:50%;width:7px;height:7px;border-left:1.5px solid var(--border-dotted);border-bottom:1.5px solid var(--border-dotted);transform:translateY(-72%)}
.rail__sub:hover{color:var(--blue-600)}
.rail__sub .rail__n{font-size:10.5px}
.rail__acc summary{list-style:none;cursor:pointer}
.rail__acc summary::-webkit-details-marker{display:none}
.rail__accr{display:inline-flex;align-items:center;gap:7px}
.rail__chev{color:var(--text-tertiary);font-size:10px;line-height:1;transition:transform var(--dur-fast) var(--ease-standard)}
.rail__acc[open] .rail__chev{transform:rotate(90deg)}
.rail__acc[open] .rail__sub--sum{color:var(--blue-700)}
.rail__kids{display:flex;flex-direction:column;padding:0 0 4px}
.rail__kid{position:relative;display:flex;align-items:center;padding:4px 2px 4px 32px;font:500 12px/1.5 var(--font-ui);color:var(--text-secondary);text-decoration:none;transition:color var(--dur-fast) var(--ease-standard)}
.rail__kid::before{content:"";position:absolute;left:19px;top:50%;width:6px;height:6px;border-left:1.5px solid var(--border-dotted);border-bottom:1.5px solid var(--border-dotted);transform:translateY(-72%)}
.rail__kid:hover{color:var(--blue-600)}
.rail__n{font:700 11px/1 var(--font-ui);color:var(--text-tertiary)}
.rail__sticky{position:sticky;top:84px}
@media(max-width:980px){.cols{grid-template-columns:1fr}.rail__sticky{position:static}}
@media(min-width:981px){.mame-single .cols{gap:24px}.mame-single .rail{align-self:stretch}}
@media(max-width:620px){.grid2,.relgrid,.pn{grid-template-columns:1fr}.body{padding:24px 12px;font-size:14px}.art__t{font-size:23px}.art__toc{margin:48px 0}.body h2{font-size:19px}.body h3{font-size:17px}}
@media(max-width:620px){.ds-svcard__role-sep{display:none}.ds-svcard__role-line{display:block}}
/* サムネの切り取られ対策: 外側の角丸を --radius-image(12px) に揃える */
.pg .ds-acard--boxed{border-radius:var(--radius-image)}
.pg .ds-acard--boxed .ds-media:has(.ds-eth){border-radius:calc(var(--radius-image) - 1px) calc(var(--radius-image) - 1px) 0 0}
/* 記事カード: キッカー廃止 / 下段 = カテゴリラベル(左)・編集部と日付(右) */
.pg .ds-acard__kicker{display:none}
.pg .ds-acard__body{display:grid;grid-template-columns:1fr auto;grid-template-rows:1fr auto;grid-template-areas:"title title" "tags meta";gap:12px}
.pg .ds-acard__title-link{grid-area:title;align-self:start}
.pg .ds-acard__tags{grid-area:tags;align-self:center;margin:0}
.pg .ds-acard__body .ds-byline{grid-area:meta;align-self:center;justify-self:end}
/* 目次ラベル */
.art__toc.ds-toc{padding:0;overflow:hidden;background:var(--surface);border:1px solid var(--border-subtle);border-radius:16px;box-shadow:0 8px 24px rgba(10,20,50,.08)}
.art__toc__summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;cursor:pointer;list-style:none;background:var(--blue-500);color:#fff}
.art__toc__summary::-webkit-details-marker{display:none}
.art__toc__heading{display:flex;align-items:center;gap:10px}
.art__toc__summary .ds-toc__title{display:none}
.art__toc__label{font:900 16px/1.4 var(--font-heading);color:#fff}
.art__toc__action{font:700 11px/1 var(--font-ui);color:var(--blue-600);padding:6px 9px;border:1px solid #fff;border-radius:999px;background:#fff}
.art__toc__action--close{display:none}
.art__toc[open] .art__toc__action--open{display:none}
.art__toc[open] .art__toc__action--close{display:inline}
.art__toc .ds-toc__list{margin:0 18px;padding:0;border-top:0}
.art__toc .ds-toc__item{border-top:0;border-bottom:1px dotted var(--border-dotted)}
.art__toc .ds-toc__item:last-child{border-bottom:0}
.art__toc .ds-toc__link{align-items:baseline;gap:10px;padding:10px 2px;font:700 13.5px/1.5 var(--font-ui)}
.art__toc .ds-toc__num{width:auto;height:auto;border-radius:0;background:none;color:var(--blue-600);font:800 11px/1 var(--font-display)}
.toc-sub{list-style:none;margin:-3px 0 0;padding:0 0 9px 33px}
.toc-sub a{position:relative;display:block;padding:3px 2px 3px 17px;font-family:var(--font-body);font-size:13px;color:var(--text-secondary);text-decoration:none;transition:color var(--dur-fast) var(--ease-standard)}
.toc-sub a::before{content:"";position:absolute;left:2px;top:50%;width:7px;height:7px;border-left:1.5px solid var(--border-dotted);border-bottom:1.5px solid var(--border-dotted);transform:translateY(-72%)}
.toc-sub a:hover{color:var(--text-link-hover)}
/* 本文パーツ */
/* h4 は 15px だと本文の 16px より小さく、見出しに見えなかった。
   h3(20) → h4(17) → 本文(16) の順になるようにする。h4 は36記事で使っている。 */
.body h4{font-family:var(--font-heading);font-weight:700;font-size:17px;line-height:1.6;margin:48px 0 10px;padding:8px 12px;background:var(--blue-50);border-left:3px solid var(--blue-300);border-radius:0 8px 8px 0}
/* h5 は指定が無く、本文と見分けが付かなかった（4記事で使用） */
.body h5{font-family:var(--font-heading);font-weight:700;font-size:16px;line-height:1.7;margin:32px 0 8px;color:var(--navy-700)}
.body p a,.body li a{color:var(--text-link);text-decoration:underline;text-underline-offset:2px}
.body p a:hover,.body li a:hover{color:var(--navy-600)}
.body .ds-toc__link{color:var(--text-primary);text-decoration:none}
.body .ds-toc__link:hover{color:var(--text-link-hover)}
.body .toc-sub a{color:var(--text-secondary);text-decoration:none}
.body .toc-sub a:hover{color:var(--text-link-hover)}
.body ol{margin:0 0 18px;padding-left:22px}
.mk{background:linear-gradient(transparent 62%,var(--blue-100) 62%);font-weight:700}
.code-i{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em;background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:5px;padding:1px 6px;color:var(--navy-600)}
.quote{margin:22px 0;padding:16px 20px;background:var(--surface-sunken);border-left:4px solid var(--navy-300);border-radius:0 10px 10px 0;color:var(--text-secondary);font-size:14px}
.quote p{margin:0 0 8px}
.quote cite{display:block;font:700 11px/1 var(--font-ui);color:var(--text-tertiary);font-style:normal}
.steps{list-style:none;margin:22px 0;padding:0;counter-reset:st}
.steps>li{position:relative;padding:0 0 22px 44px;counter-increment:st}
.steps>li::before{content:counter(st);position:absolute;left:0;top:0;width:28px;height:28px;border-radius:50%;background:var(--blue-500);color:#fff;display:flex;align-items:center;justify-content:center;font:800 13px/1 var(--font-ui)}
.steps>li::after{content:"";position:absolute;left:13px;top:32px;bottom:4px;border-left:2px dotted var(--border-dotted)}
.steps>li:last-child{padding-bottom:0}
.steps>li:last-child::after{display:none}
.st__t{display:block;font:800 14.5px/1.6 var(--font-heading);color:var(--ink);margin:4px 0 3px}
.steps p{margin:0;font-size:13.5px;color:var(--text-secondary)}
.fig{margin:24px 0}
.fig__frame{display:flex;align-items:center;justify-content:center;aspect-ratio:16/9;border-radius:12px;border:1px solid var(--border-subtle);background:var(--blue-50);background-image:linear-gradient(rgba(17,118,212,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(17,118,212,.09) 1px,transparent 1px);background-size:26px 26px}
.fig__frame img{width:34%;height:auto}
.fig figcaption{margin-top:9px;font:500 12px/1.6 var(--font-ui);color:var(--text-tertiary);text-align:center}
.codeblock{margin:22px 0;background:var(--navy-700);color:#E6ECF7;border-radius:12px;padding:18px 22px;font:500 13px/1.9 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-x:auto;white-space:pre}
.tblwrap{margin:22px 0;overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:13.5px;line-height:1.7}
.tbl th{background:var(--blue-50);color:var(--navy-700);font:800 12.5px/1.6 var(--font-ui);padding:10px 14px;border:1px solid var(--border-subtle);text-align:left}
.tbl td{padding:10px 14px;border:1px solid var(--border-subtle);background:var(--surface)}
.faq{margin:22px 0;display:flex;flex-direction:column;gap:12px}
.faq details{border:1px solid var(--border-subtle);border-radius:12px;background:var(--surface-sunken)}
.faq summary{display:flex;align-items:center;gap:10px;padding:13px 16px;cursor:pointer;font:800 14px/1.6 var(--font-heading);color:var(--ink);list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq__q{flex:none;width:24px;height:24px;border-radius:50%;background:var(--blue-500);color:#fff;font:900 12px/1 var(--font-ui);display:flex;align-items:center;justify-content:center}
.faq__a{display:flex;align-items:flex-start;gap:10px;padding:2px 16px 14px;font-size:14px;color:var(--text-secondary)}
.faq__a p{margin:2px 0 0}
.faq__ai{flex:none;width:24px;height:24px;border-radius:50%;background:var(--navy-600);color:#fff;font:900 12px/1 var(--font-ui);display:flex;align-items:center;justify-content:center}
.chk{list-style:none;margin:0 0 18px;padding:0}
.chk li{position:relative;padding:4px 0 4px 30px}
.chk li::before{content:"";position:absolute;left:3px;top:11px;width:13px;height:7px;border-left:2.5px solid var(--blue-500);border-bottom:2.5px solid var(--blue-500);transform:rotate(-45deg)}
/* 外部リンクの予備カード（SWELLのカード化が失敗したときに functions.php が出す） */
.btnrow{display:flex;justify-content:center;margin:28px 0 4px}
/* フッター: 中央揃え / 字間タグライン+大ロゴ / ドット罫のナビ帯 / 規約+コピーライト */
/* X口コミ埋め込みグリッド */
.xlab{display:inline-flex;align-items:center;gap:6px;margin:16px 0 0;font:800 12px/1 var(--font-ui);padding:6px 12px;border-radius:999px;background:var(--blue-50);color:var(--blue-700)}
.xlab--bad{background:rgba(244,88,72,.08);color:#C4402F}
.xgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:12px 0 8px}
.xpost{background:#fff;border:1px solid #CFD9DE;border-radius:13px;padding:14px 16px 12px;display:flex;flex-direction:column;gap:9px;font-family:-apple-system,'Segoe UI',Roboto,'Helvetica Neue','Hiragino Kaku Gothic ProN','Noto Sans JP',Arial,sans-serif}
.xpost__hd{display:flex;align-items:center;gap:9px}
.xpost__av{flex:none;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;color:#fff}
.xpost__who{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.xpost__nm{font-weight:700;font-size:13.5px;line-height:1.3;color:#0F1419}
.xpost__id{font-size:12.5px;line-height:1.3;color:#536471}
.xpost__fl{color:#1D9BF0;text-decoration:none;font-weight:700}
.xpost__fl:hover{color:#1D9BF0;text-decoration:underline}
.xpost__x{align-self:flex-start;font-weight:900;font-size:16px;line-height:1;color:#0F1419}
.xpost p{margin:0;font-size:14px;line-height:1.75;color:#0F1419}
.xpost__dt{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;color:#536471}
.xpost__acts{display:flex;align-items:center;gap:16px;padding-top:10px;border-top:1px solid #EFF3F4;font-size:12.5px;font-weight:600;color:#536471}
.xpost__act{display:inline-flex;align-items:center;gap:5px}
.xpost__act svg{flex:none}
.xpost__more{display:block;text-align:center;border:1px solid #CFD9DE;border-radius:999px;padding:7px 10px;font-size:13px;font-weight:700;color:#1D9BF0;text-decoration:none;transition:background var(--dur-fast) var(--ease-standard)}
.xpost__more:hover{background:#F7F9F9;color:#1D9BF0}
@media(max-width:620px){.xgrid{grid-template-columns:1fr}}
/* 横スクロール表 */
.scrollhint{display:none;margin:14px 0 8px;font:700 11.5px/1 var(--font-ui);color:var(--text-tertiary);background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:999px;padding:7px 12px;width:fit-content;align-items:center;gap:6px}
@media(max-width:760px){.scrollhint{display:inline-flex}}
.tbl--wide{min-width:720px}
/* フローティング目次ボタン */
.tocfab__chk{display:none}
.tocfab{position:fixed;right:18px;bottom:18px;z-index:56;width:54px;height:54px;border-radius:50%;background:var(--blue-500);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;box-shadow:0 8px 22px rgba(17,118,212,.4);transition:opacity var(--dur-fast) var(--ease-standard)}
.tocfab:hover{opacity:.85}
.tocfab__ic{display:flex;flex-direction:column;gap:3px}
.tocfab__ic i{display:block;width:15px;height:2px;border-radius:2px;background:#fff}
.tocfab__l{font:800 9px/1 var(--font-ui);letter-spacing:.08em}
.tocmodal{position:fixed;inset:0;z-index:70;display:none}
.tocfab__chk:checked~.tocmodal{display:block}
.tocmodal__bg{position:absolute;inset:0;background:rgba(15,25,50,.5);cursor:pointer}
.tocmodal__panel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(440px,calc(100vw - 40px));max-height:min(560px,calc(100vh - 60px));overflow:auto;background:var(--surface);border-radius:16px;padding:24px 26px;box-shadow:0 20px 60px rgba(10,20,50,.35)}
.tocmodal__x{position:absolute;top:16px;right:18px;font:700 14px/1 var(--font-ui);color:var(--text-tertiary);cursor:pointer;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-subtle);background:var(--surface)}
.tocmodal__t{margin:0 0 10px;font:900 16px/1.4 var(--font-heading);color:var(--ink);padding-bottom:10px;border-bottom:2px solid var(--blue-500)}
.tocmodal__list{list-style:none;margin:0;padding:0;counter-reset:tm}
.tocmodal__list>li{border-bottom:1px dotted var(--border-dotted)}
.tocmodal__list>li:last-child{border-bottom:none}
.tocmodal__list>li>a{counter-increment:tm;display:flex;gap:10px;align-items:baseline;padding:10px 2px;font:700 13.5px/1.5 var(--font-ui);color:var(--ink);text-decoration:none}
.tocmodal__list>li>a::before{content:counter(tm,decimal-leading-zero);font:800 11px/1 var(--font-display);color:var(--blue-600)}
.tocmodal__list>li>a:hover{color:var(--blue-600)}
/* 記事下LINE CTA */
.lcta{display:flex;align-items:center;gap:30px;background:var(--surface);border:1px solid var(--border-subtle);border-radius:16px;padding:28px 32px;box-shadow:var(--shadow-sm)}
.lcta__fig{flex:0 1 150px;max-width:150px}
.lcta__fig img{width:100%;height:auto;display:block}
.lcta__bd{flex:1;min-width:0;display:flex;flex-direction:column;gap:11px;align-items:flex-start}
.lcta__k{margin:0;font:800 11.5px/1 var(--font-ui);letter-spacing:.07em;color:var(--blue-600)}
.lcta__t{margin:0;font-family:var(--font-heading);font-weight:900;font-size:19px;line-height:1.55;color:var(--ink);text-wrap:pretty}
.lcta__bens{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:7px}
.lcta__bens li{display:inline-flex;align-items:center;gap:7px;background:var(--blue-50);color:var(--navy-700);font:700 11.5px/1 var(--font-ui);border-radius:999px;padding:6px 12px 6px 6px}
.lcta__bens i{font-style:normal;background:var(--line);color:#fff;font:900 9.5px/1 var(--font-ui);border-radius:999px;padding:5px 7px}
.lcta__acts{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:2px}
.lcta__sub{font:700 12.5px/1 var(--font-ui);color:var(--text-link);text-decoration:underline;text-underline-offset:3px}
.lcta__sub:hover{color:var(--navy-600)}
.lcta__note{margin:0;font:500 11.5px/1.7 var(--font-ui);color:var(--text-tertiary)}
@media(max-width:760px){.lcta{flex-direction:column-reverse;text-align:center;padding:24px 20px}.lcta__bd{align-items:center}.lcta__fig{width:120px}}
/* 本文中LINE CTAライン */
.linecta{display:flex;align-items:center;gap:16px;margin:22px 0;padding:16px 20px;background:rgba(6,199,85,.05);border:1.5px solid rgba(6,199,85,.35);border-radius:12px}
.linecta__fig{flex:0 1 60px;max-width:60px}
.linecta__fig img{width:100%;height:auto;display:block}
.linecta__bd{flex:1;min-width:0}
.linecta__t{margin:0 0 4px;font:900 15px/1.5 var(--font-heading);color:var(--ink)}
.linecta__x{margin:0;font:500 12.5px/1.8 var(--font-ui);color:var(--text-secondary)}
@media(max-width:620px){.linecta{flex-direction:column;text-align:center}}
/* サイドバーLINE CTA */
.lrail{background:var(--surface);border:1px solid var(--border-subtle);border-radius:16px;padding:22px 20px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:11px}
.lrail__fig{flex:0 1 110px;max-width:110px}
.lrail__fig img{width:100%;height:auto;display:block}
.lrail__k{margin:0;font:800 11px/1 var(--font-ui);letter-spacing:.08em;color:var(--blue-600)}
.lrail__t{margin:0;font-family:var(--font-heading);font-weight:900;font-size:16.5px;line-height:1.5;color:var(--ink)}
.lrail__note{margin:0;font:500 11px/1.6 var(--font-ui);color:var(--text-tertiary)}
.lrail__links{display:flex;gap:14px}
.lrail__links a{font:700 11.5px/1 var(--font-ui);color:var(--text-link)}
.lrail__links a:hover{color:var(--navy-600)}
/* カードのカテゴリラベル: 最下層1つだけ・小さく1行 */
.pg .ds-acard__tags{display:none}
.pg .ds-acard__tags .ds-tag{font-size:10px;padding:3px 8px;white-space:nowrap}
/* 追加パーツ */
.abst{margin:22px 0;padding:16px 20px;background:var(--surface);border:1.5px dashed var(--border-dotted);border-radius:12px}
.abst__t{margin:0 0 8px;font:900 13px/1 var(--font-heading);color:var(--navy-700)}
.abst ul{margin:0;padding-left:20px}
.abst li{margin:0 0 4px;font-size:13.5px}
.concl{display:flex;gap:12px;align-items:flex-start;margin:22px 0;padding:16px 18px;background:var(--blue-50);border:2px solid var(--blue-500);border-radius:12px;font-size:14px}
.concl__b{flex:none;background:var(--blue-500);color:#fff;font:900 11px/1 var(--font-ui);letter-spacing:.06em;border-radius:6px;padding:5px 9px;margin-top:2px}
.concl p{margin:0}
.jump{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 20px}
.jump__a{display:inline-flex;align-items:center;padding:7px 13px;background:var(--surface);border:1.5px solid var(--border-subtle);border-radius:999px;font:700 12px/1 var(--font-ui);color:var(--blue-600);text-decoration:none}
.jump__a:hover{border-color:var(--blue-500)}
.sumcard,.article-content .cap_box{margin:28px 0;border:2px solid var(--blue-500);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}
.sumcard__h,.article-content .cap_box_ttl{margin:0;background:var(--blue-500);color:#fff;font:900 13.5px/1 var(--font-heading);letter-spacing:.04em;padding:14px 20px}
.sumcard__in{padding:18px 22px 16px;background:var(--surface)}
.article-content .cap_box_content{padding:18px 16px 16px;background:var(--surface)}
.tbl--price td,.tbl--price th{text-align:center}
.tbl--price td:first-child{text-align:left;font-weight:700}
.tbl .rec{background:var(--blue-50);color:var(--navy-700);font-weight:700}
.rec__b{display:block;margin-top:3px;font:800 9.5px/1 var(--font-ui);color:#fff;background:var(--blue-500);border-radius:4px;padding:3px 5px;width:fit-content;margin-inline:auto}
.tbl--mx td{text-align:center}
.tbl--mx td:first-child{text-align:left}
.mx{font:900 16px/1 var(--font-ui)}
.mx--o{color:var(--blue-500)}
.mx--t{color:var(--cta)}
.mx--x{color:var(--coral-500)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:22px 0}
.stat{background:var(--surface);border:1px solid var(--border-subtle);border-radius:12px;padding:18px 12px;display:flex;flex-direction:column;align-items:center;gap:4px}
.stat__n{font-family:var(--font-display);font-weight:900;font-size:30px;line-height:1;color:var(--blue-600);letter-spacing:-.02em}
.stat__n i{font-style:normal;font-size:14px;margin-left:2px}
.stat__l{font:700 11.5px/1 var(--font-ui);color:var(--text-tertiary)}
.md{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0}
.md__col{border-radius:12px;border:1px solid var(--border-subtle);overflow:hidden;background:var(--surface)}
.md__h{margin:0;padding:10px 16px;font:900 13px/1 var(--font-heading)}
.md__col--m .md__h{background:var(--blue-50);color:var(--blue-700)}
.md__col--d .md__h{background:rgba(244,88,72,.07);color:var(--coral-500)}
.md__col ul{margin:0;padding:12px 16px 14px 34px}
.md__col li{margin:0 0 6px;font-size:13.5px}
.voices{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0}
.voice{background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:12px;padding:16px 18px}
.voice__hd{display:flex;align-items:center;gap:10px;margin:0 0 10px}
.voice__av{flex:none;width:36px;height:36px;border-radius:50%;background:var(--blue-100);color:var(--blue-700);display:flex;align-items:center;justify-content:center;font:900 15px/1 var(--font-ui)}
.voice__who{display:flex;flex-direction:column;gap:2px}
.voice__nm{font:800 12px/1.4 var(--font-ui);color:var(--ink)}
.voice__st{font-size:12px;letter-spacing:2px;color:#F5B01E}
.voice p{margin:0;font-size:13px;line-height:1.9;color:var(--text-secondary)}
.hsteps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:22px 0}
.hstep{position:relative;background:var(--surface);border:1px solid var(--border-subtle);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:6px}
.hstep__n{width:28px;height:28px;border-radius:50%;background:var(--blue-500);color:#fff;display:flex;align-items:center;justify-content:center;font:800 13px/1 var(--font-ui)}
.hstep__t{margin:0;font:800 13.5px/1.5 var(--font-heading);color:var(--ink)}
.hstep__x{margin:0;font:500 12px/1.7 var(--font-ui);color:var(--text-secondary)}
.hstep:not(:last-child)::after{content:"→";position:absolute;right:-13px;top:50%;transform:translateY(-50%);z-index:1;color:var(--blue-500);font-weight:800}
.tabs{margin:22px 0;border:1px solid var(--border-subtle);border-radius:12px;overflow:hidden;background:var(--surface)}
.tabs__row{display:flex;border-bottom:1px solid var(--border-subtle)}
.tabbtn{flex:1;padding:12px 8px;background:var(--surface-sunken);border:none;border-right:1px solid var(--border-subtle);font:800 13px/1 var(--font-ui);color:var(--text-tertiary);cursor:pointer}
.tabbtn:last-child{border-right:none}
.tabbtn--on{background:var(--surface);color:var(--blue-600);box-shadow:inset 0 -2.5px 0 var(--blue-500)}
.tabs__pane{padding:16px 18px}
.tabs__pane p{margin:0;font-size:13.5px}
.tl{list-style:none;margin:22px 0;padding:0}
.tl li{position:relative;display:flex;gap:14px;padding:0 0 18px 24px}
.tl li::before{content:"";position:absolute;left:5px;top:7px;width:9px;height:9px;border-radius:50%;background:var(--blue-500)}
.tl li:not(:last-child)::after{content:"";position:absolute;left:9px;top:20px;bottom:-2px;border-left:2px dotted var(--border-dotted)}
.tl__y{flex:none;font:900 14px/1.6 var(--font-display);color:var(--navy-600);width:44px}
.tl p{margin:0;font-size:13.5px}
.dlline{display:flex;align-items:center;gap:18px;margin:22px 0;padding:18px 20px;background:rgba(245,146,31,.06);border:1.5px solid rgba(245,146,31,.4);border-radius:12px}
.dlline__bd{flex:1;min-width:0}
.dlline__t{margin:0 0 4px;font:900 15px/1.5 var(--font-heading);color:var(--ink)}
.dlline__x{margin:0;font:500 12.5px/1.8 var(--font-ui);color:var(--text-secondary)}
.dlline__faq{margin-top:8px}
.dlline__faq summary{cursor:pointer;font:700 12px/1.6 var(--font-ui);color:var(--cta);list-style:none}
.dlline__faq summary::before{content:"Q. "}
.dlline__faq summary::-webkit-details-marker{display:none}
.dlline__faq p{margin:4px 0 0;font-size:12.5px;color:var(--text-secondary)}
.dlgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0}
.dlcard{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border-subtle);border-radius:12px;padding:14px 16px}
.dlcard__ic{flex:none;width:44px;height:44px;border-radius:10px;background:var(--navy-600);color:#fff;display:flex;align-items:center;justify-content:center;font:900 11px/1 var(--font-ui)}
.dlcard__bd{flex:1;min-width:0}
.dlcard__t{margin:0;font:800 13px/1.5 var(--font-heading);color:var(--ink)}
.dlcard__x{margin:2px 0 0;font:500 11px/1 var(--font-ui);color:var(--text-tertiary)}
.bangrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0}
.imgbn{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:21/9;border-radius:12px;border:3px solid var(--blue-500);text-decoration:none;background:var(--blue-50);background-image:linear-gradient(rgba(17,118,212,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(17,118,212,.09) 1px,transparent 1px);background-size:22px 22px;transition:transform var(--dur-base) var(--ease-standard),box-shadow var(--dur-base) var(--ease-standard)}
.imgbn:hover{transform:var(--hover-lift);box-shadow:var(--shadow-md)}
.imgbn__badge{position:absolute;top:0;right:0;background:var(--cta);color:#fff;font:800 10px/1 var(--font-ui);letter-spacing:.08em;padding:6px 10px;border-radius:0 0 0 8px}
.imgbn__stk{background:#fff;color:var(--navy-700);font:900 16px/1.3 var(--font-heading);border-radius:7px;padding:.4em .8em;box-shadow:0 2px 9px rgba(20,30,60,.11)}
.phone{margin:22px 0;padding:20px;background:var(--surface);border:1px solid var(--border-subtle);border-radius:12px;text-align:center}
.phone__l{margin:0 0 6px;font:800 12px/1 var(--font-ui);color:var(--text-tertiary)}
.phone__n{margin:0;font-family:var(--font-display);font-weight:900;font-size:32px;line-height:1.1;color:var(--navy-600);letter-spacing:.01em}
.phone__x{margin:6px 0 0;font:500 11.5px/1.6 var(--font-ui);color:var(--text-tertiary)}
.deadline{display:flex;align-items:center;gap:12px;margin:22px 0;padding:13px 16px;background:rgba(244,88,72,.06);border:1.5px solid rgba(244,88,72,.35);border-radius:12px;font-size:13.5px}
.deadline__b{flex:none;background:var(--coral-500);color:#fff;font:900 10.5px/1 var(--font-ui);letter-spacing:.05em;border-radius:6px;padding:5px 8px}
.deadline p{margin:0;flex:1;min-width:0}
.deadline__a{flex:none;font:800 12.5px/1 var(--font-ui);color:var(--coral-500);text-decoration:none;white-space:nowrap}
.deadline__a:hover{text-decoration:underline}
.term{margin:14px 0;padding:12px 16px;background:var(--surface-sunken);border-left:4px solid var(--navy-400);border-radius:0 10px 10px 0}
.term__w{display:block;font:900 13.5px/1.5 var(--font-heading);color:var(--navy-600);margin:0 0 4px}
.term p{margin:0;font-size:13px;color:var(--text-secondary)}
.fig2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fig2 .fig{margin:12px 0}
.sfaq{margin:22px 0;display:flex;flex-direction:column;gap:12px}
.sfaq1{border:1px solid var(--border-subtle);border-radius:12px;background:var(--surface);overflow:hidden}
.sfaq__row{display:flex;align-items:flex-start;gap:10px;padding:12px 16px}
.sfaq__row--q{background:var(--blue-50)}
.sfaq__row p{margin:2px 0 0;font-size:13.5px;color:var(--text-secondary)}
.sfaq__q{font-weight:800;color:var(--ink)}
.article-content .swell-block-faq{display:flex;flex-direction:column;gap:12px;margin:22px 0}
.article-content .swell-block-faq__item{overflow:hidden;border:1px solid var(--border-subtle);border-radius:12px;background:var(--surface)}
.article-content .swell-block-faq .faq_q,.article-content .swell-block-faq .faq_a{position:relative;margin:0;padding:12px 16px 12px 50px}
.article-content .swell-block-faq .faq_q{background:var(--blue-50);font:800 13.5px/1.7 var(--font-heading);color:var(--ink)}
.article-content .swell-block-faq .faq_a{background:var(--surface);font:400 13.5px/1.8 var(--font-body);color:var(--text-secondary)}
.article-content .swell-block-faq .faq_q::before,.article-content .swell-block-faq .faq_a::before{position:absolute;left:16px;top:12px;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;color:#fff;font:900 12px/1 var(--font-ui)}
.article-content .swell-block-faq .faq_q::before{content:"Q";background:var(--blue-500)}
.article-content .swell-block-faq .faq_a::before{content:"A";background:var(--navy-600)}
.article-content .swell-block-faq .faq_q::after,.article-content .swell-block-faq .faq_a::after{display:none!important;content:none!important}
.article-content .swell-block-faq .faq_a p{margin:0 0 8px!important;color:inherit;font:inherit}
.article-content .swell-block-faq .faq_a p:last-child{margin-bottom:0!important}
.article-content .mame-form-example{margin:26px 0;padding:22px;overflow:hidden;border:1px solid var(--blue-200);border-radius:16px;background:linear-gradient(135deg,var(--blue-50),var(--surface) 62%);box-shadow:var(--shadow-sm)}
.article-content .mame-form-example__eyebrow{display:inline-flex;margin:0 0 8px;padding:5px 9px;border-radius:6px;background:var(--blue-500);color:#fff;font:800 10px/1 var(--font-ui);letter-spacing:.1em}
.article-content .mame-form-example__title{margin:0 0 5px;font:900 19px/1.5 var(--font-heading);color:var(--navy-700)}
.article-content .mame-form-example__lead{margin:0;color:var(--text-secondary);font-size:13.5px}
.article-content .mame-form-example__list{margin:18px 0 14px;padding:0;overflow:hidden;list-style:none;border:1px solid var(--border-subtle);border-radius:12px;background:var(--surface)}
.article-content .mame-form-example__list li{display:grid;grid-template-columns:130px minmax(0,1fr);gap:16px;margin:0;padding:11px 14px;border-bottom:1px solid var(--border-subtle)}
.article-content .mame-form-example__list li:last-child{border-bottom:0}
.article-content .mame-form-example__list span{color:var(--text-tertiary);font:700 12px/1.7 var(--font-ui)}
.article-content .mame-form-example__list strong{color:var(--ink);font:700 13.5px/1.7 var(--font-body)}
.article-content .mame-form-example__note{margin:0;padding:11px 13px;border-left:3px solid var(--blue-500);border-radius:0 8px 8px 0;background:rgba(255,255,255,.72);color:var(--text-secondary);font-size:12px;line-height:1.8}
.fnote{margin:22px 0 0;border-top:1px dotted var(--border-dotted);padding-top:12px}
.fnote p{margin:0 0 4px;font:500 11.5px/1.8 var(--font-ui);color:var(--text-tertiary)}
.hist{list-style:none;margin:14px 0 18px;padding:0}
.hist li{display:flex;gap:14px;padding:8px 2px;border-bottom:1px dotted var(--border-dotted)}
.hist__d{flex:none;font:700 12px/1.9 var(--font-ui);color:var(--text-tertiary);font-variant-numeric:tabular-nums}
.hist p{margin:0;font-size:13px}
.srcs{list-style:none;margin:0 0 22px;padding:0}
.srcs li{font:500 12px/1.9 var(--font-ui);color:var(--text-tertiary)}
.sec__mini{margin:22px 0 8px;font:900 13.5px/1 var(--font-heading);color:var(--ink)}
.rlinks{list-style:none;margin:0 0 22px;padding:0}
.rlinks li{border-bottom:1px dotted var(--border-dotted)}
.rlinks a{position:relative;display:block;padding:10px 2px 10px 18px;font:700 13.5px/1.6 var(--font-ui);color:var(--ink);text-decoration:none}
.rlinks a::before{content:"";position:absolute;left:3px;top:50%;width:6px;height:6px;border-top:2px solid var(--blue-500);border-right:2px solid var(--blue-500);transform:translateY(-50%) rotate(45deg)}
.rlinks a:hover{color:var(--blue-600)}
.backshare{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:26px 0 4px;border-top:1px dotted var(--border-dotted);border-bottom:1px dotted var(--border-dotted);padding:13px 2px}
.backshare__top{font:800 12.5px/1 var(--font-ui);color:var(--blue-600);text-decoration:none}
.backshare__top:hover{text-decoration:underline}
.share{display:flex;align-items:center;gap:8px}
.share__l{font:900 10.5px/1 var(--font-display);letter-spacing:.1em;color:var(--text-tertiary);margin-right:2px}
.share__a{display:inline-flex;align-items:center;padding:7px 12px;border:1.5px solid var(--border-subtle);border-radius:999px;font:700 11.5px/1 var(--font-ui);color:var(--navy-700);text-decoration:none;background:var(--surface)}
.share__a:hover{border-color:var(--ink);color:var(--ink)}
@media(max-width:620px){.stats,.hsteps{grid-template-columns:1fr}.md,.voices,.dlgrid,.bangrid,.fig2{grid-template-columns:1fr}.dlline{flex-direction:column;align-items:stretch}.hstep:not(:last-child)::after{display:none}}
/* タグチップ刷新: 淡ブルー塗り・角丸6px */
.pg .ds-tag{background:var(--blue-500);border:1px solid var(--blue-500);color:#fff;font-weight:800;border-radius:5px;padding:2px 9px;line-height:1.5}
.pg .ds-tag:hover{background:var(--navy-600);border-color:var(--navy-600);color:#fff}

/* Existing WordPress/SWELL article blocks inside the renewed article shell. */
.article-content{min-width:0}
.article-content .p-toc{display:none!important}
.article-content p,.article-content li{word-break:auto-phrase}
/* 本文の段落の余白。!important は、カスタマイザーの「追加CSS」が
   p{margin-bottom:3em!important} を全ページへ当てていて、これが無いと 48px になるため。
   追加CSS は本番のSWELLも使っているので、そちら側は触らない。
   テーマのコンポーネント（.quote / 囲み枠 / 吹き出し / 説明リストなど）へ当たらないよう、
   本文とその中の器の「直下の段落」だけに限定する */
:is(.article-content,.article-content .wp-block-group__inner-container,.article-content .cap_box_content)>p{margin-bottom:18px!important}
:is(.article-content,.article-content .wp-block-group__inner-container,.article-content .cap_box_content)>p:has(+p){margin-bottom:24px!important}
.article-content .cap_box_content>p:last-child{margin-bottom:0!important}
.article-content h2,.article-content h3{scroll-margin-top:calc(var(--header-h) + 16px)}
.article-content figure{margin:22px 0;text-align:center}
.article-content figure.wp-block-image{margin-bottom:40px}
/* 動画とYouTube埋め込みが器の幅を超えていた（動画12個/4記事・iframe4個/1記事）。
   SWELL本体のCSSを外しているので、幅を戻す指定がどこにも無かった。
   スマホ幅だとページごと横スクロールする。 */
.article-content :is(iframe,embed,object){max-width:100%;height:auto}
.article-content video{display:block;width:auto;max-width:min(640px,100%);height:auto;margin:0 auto;background:#000;border-radius:var(--radius-image)}
.article-content .wp-block-embed__wrapper{max-width:100%}
.article-content :is(.wp-block-embed-youtube,.wp-block-embed.is-type-video) .wp-block-embed__wrapper{position:relative;aspect-ratio:16/9}
.article-content :is(.wp-block-embed-youtube,.wp-block-embed.is-type-video) iframe{position:absolute;inset:0;width:100%;height:100%}
.article-content figcaption{margin-top:8px;font:500 11.5px/1.6 var(--font-ui);color:var(--text-tertiary)}
.article-content img{display:block;max-width:100%;height:auto;margin-inline:auto;border-radius:var(--radius-image)}
/* サイト共通のPR表記。目立たせる必要はないが、認識できないほど消してはいけない
   （消費者庁の運用基準）。小さめの帯として本文の手前に置く。 */
.c-prNotation{position:relative;margin:22px 0 28px;padding:9px 14px 9px 32px;background:var(--cool-50);border:1px solid var(--border-subtle);border-radius:8px;font:400 11.5px/1.7 var(--font-ui);color:var(--text-tertiary)}
.c-prNotation::before{content:"※";position:absolute;left:14px;color:var(--cool-500);font-weight:700}

.article-content blockquote{position:relative;margin:22px 0;padding:16px 20px 14px 34px;background:var(--cool-50);border-left:3px solid var(--cool-300);border-radius:0 10px 10px 0;color:var(--text-secondary);font-size:14px}
.article-content blockquote::before{content:"\201C";position:absolute;left:8px;top:4px;font:900 30px/1 Georgia,serif;color:var(--cool-300)}
.article-content blockquote cite{display:block;margin-top:8px;font:700 11.5px/1.6 var(--font-ui);color:var(--text-tertiary);font-style:normal}
.article-content table{display:table;width:100%;margin:22px 0;border-collapse:collapse;font-size:13px}
.article-content .wp-block-table thead{border-bottom:2px solid var(--blue-500)}
.article-content table :is(.swell-block-button,.swl-inline-btn) a{white-space:nowrap}
.article-content table :is(th,td):has(>.swl-inline-btn){text-align:center}
/* 比較表（ロゴ見出し付き）: thも同じ薄グレーに揃え、ボタンはセル向けに小さく */
.article-content table:has(:is(th,td)>img:not([src*="noimage-inline"])):has(:is(th,td)>.swl-fz) th{background:var(--cool-50)}
/* 比較表は列幅を内容に合わせ、セル内の折り返しを減らす（幅の超過は横スクロールが受ける） */
.article-content table:has(:is(th,td)>img:not([src*="noimage-inline"])):has(:is(th,td)>.swl-fz){table-layout:auto!important;width:auto;min-width:100%}
.article-content table:has(:is(th,td)>img:not([src*="noimage-inline"])):has(:is(th,td)>.swl-fz) :is(th,td){white-space:nowrap}
.article-content table:has(:is(th,td)>img:not([src*="noimage-inline"])):has(:is(th,td)>.swl-fz) :is(th,td):has(br){white-space:normal;min-width:13em}
.article-content table .swell-block-button{margin:6px 0}
.article-content table .swell-block-button :is(.swell-block-button__link,a){min-width:0;padding:9px 20px;font-size:13px}
.article-content th,.article-content td{padding:8px 12px;border:1px solid var(--border-subtle);text-align:left;vertical-align:top;line-height:1.65}
.article-content th{background:var(--blue-50);font-weight:800;color:var(--navy-700)}
.article-content table :is(th,td):has(>img:not([src*="noimage-inline"])):has(>.swl-fz){background:var(--cool-50);color:var(--navy-700);font-weight:800}
.article-content table :is(th,td):has(>img:not([src*="noimage-inline"])):has(>.swl-fz){padding:8px 12px 7px;text-align:center}
.article-content table :is(th,td):has(>img:not([src*="noimage-inline"])):has(>.swl-fz)>img{box-sizing:border-box;width:min(110px,100%)!important;height:auto!important;max-height:40px;padding:5px 8px;object-fit:contain;background:var(--surface);border-radius:8px}
.article-content table img.wp-image-9510{background:var(--navy-700)!important}
.article-content table :is(th,td):has(>img:not([src*="noimage-inline"])):has(>.swl-fz)>.swl-fz{display:inline-block;margin-top:4px;color:var(--navy-700);font-weight:800;font-size:12px!important;line-height:1.4;white-space:nowrap}
.article-content table :is(th,td):has(>img:not([src*="noimage-inline"])):has(>.swl-fz) br{display:none}
.article-content .wp-block-table{max-width:100%;overflow-x:auto}
/* 記事3931の講座比較表: 列幅を内容に合わせ、改行位置は本文の<br>だけにする。
   幅の超過はfigureの横スクロールが受ける（ロゴ付き比較表と同じ扱い） */
.postid-3931 .article-content .wp-block-table table{table-layout:auto!important;width:auto;min-width:100%}
.postid-3931 .article-content .wp-block-table :is(th,td){white-space:nowrap}
/* SWELLの幅指定つきテーブル（--table-width）。幅を尊重し、超過分はfigureの横スクロールが受ける */
.article-content table[style*="--table-width"]{width:max(100%,var(--table-width));max-width:none}
/* PCでは指定800px以下なら本文幅に収める（本番と同じ・90px弱のための横スクロールを作らない）。
   920px以上（ランキング表・1200px表）はスクロール維持。値は離散的（600/800/920/980/1200）なので先頭桁で分岐 */
@media(min-width:761px){
	.article-content table[style*="--table-width:6"],
	.article-content table[style*="--table-width:7"],
	.article-content table[style*="--table-width:8"]{width:100%;table-layout:fixed}
	/* 4列以上の表は、短い見出し列（1列目）を細くして本文列に幅を回す＝折り返しを減らして行を低く */
	.article-content table[style*="--table-width"]:has(tr>*:nth-child(4)) :is(th,td):first-child{width:16%}
}
/* 既定は中立の面。青地+左の青線は h2 と同じ処方になり、本文の途中で見出しに見える。 */
.article-content [class*="is-style-icon_"]{margin:28px 0;padding:14px 18px;background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:10px;color:var(--text-primary);font-size:14px;line-height:1.9}
.article-content [class*="is-style-icon_"]::before,.article-content [class*="is-style-icon_"]::after{display:none!important;content:none!important}
.article-content .is-style-icon_bad{background:rgba(244,88,72,.06);border-color:rgba(244,88,72,.28)}
.article-content .is-style-icon_good{background:rgba(47,162,91,.07);border-color:rgba(47,162,91,.3)}
.article-content .is-style-icon_book{background:#fbf7ec;border-color:#e9ddbf}
.article-content [class*="is-style-icon_"]{position:relative;padding-left:46px}
.article-content [class*="is-style-icon_"]::before{content:""!important;display:block!important;position:absolute;left:16px;top:17px;width:20px;height:20px;border-radius:50%;color:#fff;font:800 12px/20px var(--font-ui);text-align:center;background:var(--cool-500)}
.article-content .is-style-icon_info{background:var(--sky-100);border-color:var(--sky-200)}
.article-content .is-style-icon_info::before{content:"i"!important;background:var(--info);font-style:italic}
.article-content .is-style-icon_point{background:rgba(17,118,212,.05);border-color:var(--blue-200)}
.article-content .is-style-icon_point::before{content:"!"!important;background:var(--blue-500)}
.article-content .is-style-icon_announce{background:rgba(232,164,0,.07);border-color:rgba(232,164,0,.3)}
.article-content .is-style-icon_announce::before{content:"!"!important;background:var(--warning)}
.article-content .is-style-icon_bad::before{content:"×"!important;background:var(--coral-500)}
.article-content .is-style-icon_good::before{content:"✓"!important;background:var(--success)}
.article-content .is-style-icon_pen{background:var(--surface);border:1px dashed var(--cool-400)}
.article-content .is-style-icon_pen::before{content:"✎"!important;background:var(--navy-400)}
.article-content .is-style-icon_book::before{content:"本"!important;background:#bd9a4e;font-size:11px}
.article-content .is-style-check_list{list-style:none;padding:0}
/* 背景色つきリストは内側に余白をつける（全リスト種共通・20記事41箇所）。
   .has-background を重ねて各リスト種の padding-left:2px より強くする */
.article-content :is(ul,ol).has-background.has-background{padding:14px 18px;border-radius:12px}
.article-content :is(ul,ol).has-background.has-background:not([class*="is-style-"]){padding-left:38px}
.article-content .is-style-check_list[class*="background-color"]{padding:12px 18px;border-radius:12px}
.article-content .is-style-check_list li{position:relative;padding:7px 0 7px 25px;border-bottom:1px dotted var(--border-dotted)}
.article-content .is-style-check_list li::before{content:"✓";position:absolute;left:2px;color:var(--blue-600);font-weight:900}
.article-content .is-style-check_list.has-swl-deep-03-color,.article-content .is-style-check_list .has-swl-deep-03-color{color:inherit!important}
.article-content .is-style-icon_announce .has-swl-deep-03-color,.article-content .c-balloon__text .has-swl-deep-03-color{color:inherit!important}
.article-content mark:is(.has-swl-deep-01-color,.has-swl-deep-03-color,.has-vivid-red-color){color:#dd2c2c!important;background:linear-gradient(transparent 58%,#fcf69f 58%)!important;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.article-content .swell-block-dl{counter-reset:mame-dl;display:grid;gap:0;margin:24px 0;padding:0;overflow:hidden;background:var(--surface);border:1px solid var(--blue-200);border-radius:12px}
.article-content .swell-block-dl__dt{counter-increment:mame-dl;display:flex;align-items:center;gap:10px;margin:0;padding:13px 14px;background:var(--blue-50);border-top:1px dotted var(--border-dotted);font:900 15px/1.55 var(--font-heading);color:var(--navy-700)}
.article-content .swell-block-dl__dt:first-child{border-top:0}
.article-content .swell-block-dl__dt::before{content:counter(mame-dl,decimal-leading-zero);flex:none;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:var(--blue-500);color:#fff;font:800 10px/1 var(--font-display)}
.article-content .swell-block-dl__dd{margin:0;padding:14px 16px 18px;background:var(--surface);border-bottom:1px solid var(--border-subtle);color:var(--text-secondary)}
.article-content .swell-block-dl__dd:last-child{border-bottom:0}
.article-content .swell-block-dl__dd p{margin:0 0 10px!important}
/* ddの中身がリストのとき: リスト自身の区切り線があるので、ddの下線・次dtの上線・余白を重ねない */
.article-content .swell-block-dl__dd>:is(ul,ol){margin:0}
.article-content .swell-block-dl__dd:has(>ul,>ol){padding:4px 16px 10px;border-bottom:0}
.article-content .swell-block-dl__dd:has(>ul,>ol)+.swell-block-dl__dt{border-top:0}
.article-content .swell-block-dl__dd p:last-child{margin-bottom:0!important}
/* 縦見出し（is-style-vtabel）。本番と同じ「項目名が上・値が下」の積み。番号は出さない。 */
.article-content .swell-block-dl.is-style-vtabel{grid-template-columns:1fr}
.article-content .swell-block-dl.is-style-vtabel .swell-block-dl__dt{border-top:1px solid var(--border-subtle);background:var(--cool-50);font:700 13.5px/1.7 var(--font-heading);color:var(--navy-700);padding:9px 16px}
.article-content .swell-block-dl.is-style-vtabel .swell-block-dl__dt:first-of-type{border-top:0}
.article-content .swell-block-dl.is-style-vtabel .swell-block-dl__dt::before{content:none}
.article-content .swell-block-dl.is-style-vtabel .swell-block-dl__dd{border-bottom:0;padding:11px 16px}
.article-content .cap_box_ttl svg{display:none}
/* onborder 変種は塗り見出しではなく、枠線の上にラベルが乗る型で分ける */
.article-content .cap_box:is(.is-style-onborder_ttl,.is-style-onborder_ttl2){border:2px solid var(--blue-500);box-shadow:none;overflow:visible;position:relative;margin-top:34px}
.article-content .cap_box:is(.is-style-onborder_ttl,.is-style-onborder_ttl2) .cap_box_ttl{position:absolute;top:-14px;left:14px;padding:4px 13px;background:var(--surface);color:var(--blue-600);border:2px solid var(--blue-500);border-radius:999px;font-size:12px;letter-spacing:.03em}
.article-content .cap_box:is(.is-style-onborder_ttl,.is-style-onborder_ttl2) .cap_box_content{padding-top:24px;border-radius:12px;background:var(--surface)}
/* 枠つきのブロックの中では、チェックリストが自前の枠を持たない。枠が二重に見えるため */
.article-content :is(.cap_box,.swell-block-dl) .is-style-check_list{margin:0;padding:0;background:transparent;border:0;border-radius:0}
/* キャプションボックスの中では、説明リストが自前の枠を持たない。枠が二重に見えるため */
.article-content .cap_box .swell-block-dl{background:transparent;border:0;border-radius:0}
.article-content .cap_box .swell-block-dl__dd:last-child{border-bottom:0}
/* 箱の中身が説明リストだけなら、見出しの帯を箱の内側いっぱいに伸ばす
   （cap_box_content の padding を打ち消し、左右は見出しの位置に揃える）。
   ほかの中身と同居している箱では、はみ出すのでそのままにする */
.article-content .cap_box_content>.swell-block-dl:only-child{margin:-18px -22px -16px;border-radius:0 0 12px 12px}
/* タイトルが枠線上に乗るスタイルでは、上に詰めるとタイトルピルに食い込む。上だけ余白を残す */
.article-content .cap_box:is(.is-style-onborder_ttl,.is-style-onborder_ttl2) .cap_box_content>.swell-block-dl:only-child{margin-top:-6px;border-radius:0 0 12px 12px}
.article-content .cap_box_content>.swell-block-dl:only-child>:is(.swell-block-dl__dt,.swell-block-dl__dd){padding-right:20px;padding-left:20px}
.article-content .cap_box_content> :last-child{margin-bottom:0}
.article-content .cap_box_content> :first-child{margin-top:0}
.article-content .swell-block-step{margin:22px 0;padding:0;counter-reset:mame-step}
.article-content .swell-block-step__item{position:relative;margin:0;padding:0 0 22px 44px;background:transparent;border-radius:0;counter-increment:mame-step}
.article-content .swell-block-step__item:last-child{padding-bottom:0}
.article-content .swell-block-step__item::after{content:"";position:absolute;left:13px;top:32px;bottom:4px;border-left:2px dotted var(--border-dotted)}
.article-content .swell-block-step__item:last-child::after{display:none}
.article-content .swell-block-step__number{position:absolute;left:0;top:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--blue-500);color:#fff;font:800 13px/1 var(--font-ui)}
.article-content .swell-block-step__number>*{display:none}
.article-content .swell-block-step__number::after{content:counter(mame-step)}
.article-content .swell-block-step__title{margin:4px 0 3px;font:800 14.5px/1.6 var(--font-heading);color:var(--ink)}
.article-content .swell-block-step__body{min-width:0}
.article-content .swell-block-step__body p{margin:0!important;font-size:13.5px;color:var(--text-secondary)}
/* big は番号を大きく・タイトルを立てる。small は詰める */
.article-content .swell-block-step.is-style-big .swell-block-step__item{padding-left:54px;padding-bottom:28px}
.article-content .swell-block-step.is-style-big .swell-block-step__number{width:38px;height:38px;font-size:16px;border-radius:12px}
.article-content .swell-block-step.is-style-big .swell-block-step__item::after{left:18px;top:44px}
.article-content .swell-block-step.is-style-big .swell-block-step__title{font-size:16.5px;margin-top:7px}
.article-content .swell-block-step.is-style-small .swell-block-step__item{padding-left:36px;padding-bottom:14px}
.article-content .swell-block-step.is-style-small .swell-block-step__number{width:22px;height:22px;font-size:11px}
.article-content .swell-block-step.is-style-small .swell-block-step__item::after{left:10px;top:26px}
.article-content .swell-block-step.is-style-small .swell-block-step__title{font-size:13.5px;margin-top:1px}
.article-content .hcb_wrap{box-sizing:border-box;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.article-content .hcb_wrap pre{box-sizing:border-box;min-width:max-content;max-width:none;margin:0}
/* 吹き出し（SWELLの c-balloon）。以前はアイコンを display:none で消していたが、
   誰が喋っているか分からなくなるので出す。本文中の758個すべてがこの経路を通る。
   しっぽは SWELL の __shapes（2枚のspanを回転させる作り）を使わず、CSSで描く。 */
.article-content .swell-block-balloon{margin:22px 0}
.article-content .c-balloon{display:flex;gap:12px;align-items:flex-start}
.article-content .c-balloon__icon{flex:none;width:52px;margin:0}
.article-content .c-balloon__icon img{display:block;width:52px;height:52px;object-fit:cover;border:1px solid var(--border-subtle);border-radius:50%}
/* アイコンは -square 指定でもまんまるに統一（レビュー指摘 2026-08-08） */
.article-content .c-balloon__iconName{display:block;margin-top:4px;font:700 10.5px/1.4 var(--font-ui);color:var(--text-tertiary);text-align:center;white-space:nowrap;width:max-content;max-width:none;margin-left:50%;transform:translateX(-50%)}
.article-content .c-balloon__shapes{display:none}
.article-content .c-balloon__body{flex:1;min-width:0}
.article-content .c-balloon__text{position:relative;padding:13px 16px;background:var(--surface);border:1px solid var(--cool-300);border-radius:12px}
.article-content .c-balloon__text::before{content:"";position:absolute;top:18px;left:-7px;width:11px;height:11px;background:var(--surface);border-left:1px solid var(--cool-300);border-bottom:1px solid var(--cool-300);transform:rotate(45deg)}
.article-content .c-balloon__text p{margin:0}
/* 右向き（-bln-right）はアイコンを右へ回し、しっぽも右へ向ける */
.article-content .c-balloon.-bln-right{flex-direction:row-reverse}
.article-content .c-balloon.-bln-right .c-balloon__text::before{left:auto;right:-7px;border-left:0;border-bottom:0;border-right:1px solid var(--cool-300);border-top:1px solid var(--cool-300)}
/* Cocoon吹き出しの本実装は「旧テーマの残骸」の節にある。ここにあった暫定ルール
   （アバターを消して枠だけ整える）は本実装を display:none で潰していたので削除した。 */
.mame-toc-h3{padding-left:22px}
@media(max-width:620px){.mame-toc-h3{padding-left:12px}}
.mame-toc-h3 .ds-toc__link{font-size:13px;color:var(--text-secondary)}

@media(max-width:760px){
	.article-content .wp-block-table table{min-width:620px}
	.article-content .wp-block-table{display:block}
	/* ラッパー無しの素のtable（記事9715等）は自分でスクロールする */
	.article-content table:not(.wp-block-table table){display:block;overflow-x:auto;max-width:100%}
	.article-content .c-scrollHint{margin:8px 0 4px;color:var(--text-tertiary);line-height:1.4}
	.article-content .c-scrollHint span{font-size:10.5px;line-height:1.4}
	.article-content .c-scrollHint+.wp-block-table{margin-top:4px}
}
@media(max-width:620px){
	.article-content .mame-form-example{padding:18px 16px}
	.article-content .mame-form-example__list li{grid-template-columns:1fr;gap:2px}
	.mame-single .cols{gap:24px}
	.mame-single .art>.sec{margin-top:24px}
	.mame-single .sec--card{padding-inline:20px}
	.mame-single .rail{gap:16px}
	.mame-single .lrail{display:none}
	.tocfab{bottom:84px}
	.single-post .fltwp__a,.single-post .fltwp__x{display:none}
	.single-post .fltwp__re{display:inline-flex}
}

/* Post 8342 spacing refinements. */
.postid-8342 .article-content>p.wp-block-paragraph:not([class*="is-style-"]){margin-bottom:18px;font:inherit}
.postid-8342 .article-content>p.wp-block-paragraph:not([class*="is-style-"]):has(+p){margin-bottom:18px}
.postid-8342 .article-content [class*="is-style-icon_"]{line-height:1.8}
.postid-8342 .body h2{margin-top:56px}
.postid-8342 .body h3{margin-top:32px}

@media(max-width:620px){
	.postid-8342 .body h2{margin-top:48px}
}

/* 「スクロールできます」案内と直下のテーブルは密着させる（本番は2px） */
.article-content .c-scrollHint{color:var(--text-tertiary);line-height:1.4}
.article-content .c-scrollHint span{font-size:10.5px}
.article-content .c-scrollHint+:is(.wp-block-table,figure,table){margin-top:2px}
.article-content .c-scrollHint+:is(.wp-block-table,figure,table) table{margin-top:0}
.postid-8342 .article-content .c-scrollHint:has(+figure.wp-block-table.is-all-centered){margin-bottom:0}
.postid-8342 .article-content .c-scrollHint+figure.wp-block-table.is-all-centered{margin-block:0}
.postid-8342 .article-content figure.wp-block-table.is-all-centered+.swell-block-balloon{margin-top:0}

/* 内部リンクの「あわせて読みたい」カードと、外部サイトへの post-link。
   どちらも SWELL と同じ p-blogCard のクラス名で出す（内部リンクは投稿IDから
   functions.php が組み立て、外部は SWELL の出力をそのまま使う）。SWELL本体の
   CSSを外しているので、装飾はここが全部持つ。 */
.body .swell-block-postLink{margin:32px 0}
.body .p-blogCard{position:relative;display:block;background:var(--surface);border:1px solid var(--blue-200);border-radius:12px;overflow:hidden;transition:border-color .2s,box-shadow .2s}
/* カード全体をクリック可能に（タイトルのaを全面に伸ばす）。大アイコン枠内の簡易表示は除外 */
.body .p-blogCard .p-blogCard__title::after{content:"";position:absolute;inset:0}
.article-content [class*="is-style-big_icon_"] .p-blogCard .p-blogCard__title::after{content:none}
.body .p-blogCard:hover{border-color:var(--blue-500);box-shadow:0 4px 16px rgba(17,118,212,.12)}
.body .p-blogCard__inner{display:grid;grid-template-columns:168px 1fr;gap:0;align-items:stretch}
/* サムネイルが取れない外部リンクは1カラムにする（空の列を出さない） */
.body .p-blogCard.-noimg .p-blogCard__inner{grid-template-columns:1fr}
.body .p-blogCard__caption{grid-column:1/-1;padding:8px 14px;background:var(--blue-50);border-bottom:1px dotted var(--border-dotted);font:800 12px/1 var(--font-ui);letter-spacing:.06em;color:var(--navy-700)}
.body .p-blogCard__thumb{position:relative;margin:10px 0 10px 12px;overflow:hidden;aspect-ratio:16/9;align-self:center}
/* 本文画像の一括角丸（.article-content img）がサムネのimgにも当たる。カードの中は角を立てる。 */
.body .p-blogCard img{border-radius:0}
.body .p-blogCard__thumb .c-postThumb__figure{position:absolute;inset:0;margin:0;height:auto}
.body .p-blogCard__img,.body .p-blogCard__thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.body .p-blogCard__body{display:flex;flex-direction:column;gap:6px;padding:14px 16px;min-width:0}
.body .p-blogCard__title{font:700 15px/1.6 var(--font-heading);color:var(--ink);text-decoration:none}
.body .p-blogCard__title:hover{color:var(--text-link);text-decoration:underline;text-underline-offset:2px}
.body .p-blogCard__excerpt{font:400 13px/1.8 var(--font-body);color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media(max-width:620px){
	.body .p-blogCard__inner{grid-template-columns:110px 1fr}
	.body .p-blogCard__title{font-size:14px}
	.body .p-blogCard__excerpt{-webkit-line-clamp:2;font-size:12.5px}
}

/* ---- SWELLブロックの置き換え第2弾（スタイルガイド起点・2026-08-06） ---- */

/* SWELLの余白ユーティリティ（u-mb-*）。書き手がエディタで明示した下マージン。
   これが無いと「＼ 完全無料！ ／」のような導入行が直下のボタンから離れる（本番8px→52px化していた）。
   li は除外: 本テーマのリスト（区切り線+詰め行）に1emの追い余白が乗ると意匠が崩れる。 */
.article-content :not(li).u-mb-0{margin-bottom:0!important}
.article-content :not(li).u-mb-5{margin-bottom:.5em!important}
.article-content :not(li).u-mb-10{margin-bottom:1em!important}
.article-content :not(li).u-mb-15{margin-bottom:1.5em!important}
.article-content :not(li).u-mb-20{margin-bottom:2em!important}
.article-content :not(li).u-mb-25{margin-bottom:2.5em!important}
.article-content :not(li).u-mb-30{margin-bottom:3em!important}
.article-content :not(li).u-mb-40{margin-bottom:4em!important}
.article-content :not(li).u-mb-50{margin-bottom:5em!important}
.article-content :not(li).u-mb-60{margin-bottom:6em!important}
.article-content :not(li).u-mb-80{margin-bottom:8em!important}
/* 余白を明示した要素の直後は、次ブロック側の上マージンを重ねない（本番のリズムは下マージン駆動）。
   見出しだけは本テーマの節間リズム(96px)を優先して維持する。 */
.article-content :not(li).u-mb-ctrl+*:not(h2,h3,h4){margin-top:0!important}

/* 下書き（教材51レッスンほか）で使われているSWELLクラス8種。公開時に素で出ないよう先回り。
   値はSWELL本体の定義（build/css）をこのテーマのトークンで写したもの。 */
.article-content .wp-block-table.is-style-stripes tbody tr:nth-child(odd) :is(td,th){background:var(--cool-50)}
.article-content .wp-block-table.is-style-stripes tbody :is(td,th){border:0}
.article-content .wp-block-table.is-style-stripes thead th{border:0;border-bottom:2px solid var(--blue-500)}
.article-content .wp-block-table.is-thead-centered thead{text-align:center}
.article-content .wp-block-table:is(.is-all-centered,.is-all-centered--va) :is(td,th){vertical-align:middle}
.article-content .wp-block-table.is-all-centered>table{text-align:center}
.article-content figure[class*="td_to_th_"] tbody tr> :first-child,
.article-content table[class*="td_to_th_"] tbody tr> :first-child{background:var(--blue-50);font-weight:700;color:var(--navy-700)}
.article-content .wp-block-image.is-style-rounded img{border-radius:9999px}
.article-content .size_xs img,.article-content img.size_xs{display:block;margin:auto;max-width:68%}
.article-content .has-border.-border02{border:2px solid var(--border);border-radius:10px;padding:20px;margin-bottom:24px}
.article-content .illume-cta{background:var(--cool-50);border-color:var(--blue-200)!important}
.article-content .sidebar-mock{max-width:340px}

/* マーカー線（swl-marker）。SWELL同様、文字の下側だけ塗る。色はトークンから。 */
.article-content .swl-marker{background:linear-gradient(transparent 62%,var(--mark,rgba(232,164,0,.35)) 0)}
.article-content .mark_yellow{--mark:rgba(232,164,0,.35)}
.article-content .mark_blue{--mark:var(--blue-100)}
.article-content .mark_green{--mark:rgba(47,162,91,.22)}
.article-content .mark_orange{--mark:rgba(233,116,45,.3)}

/* 文中アイコン（swl-inline-icon）。SWELLはアイコンをCSS変数 --the-icon-svg の
   data URI で持っているので、アイコンフォントが無くても mask で描ける。 */
.article-content .swl-inline-icon{display:inline-block;vertical-align:middle;width:1.05em;height:1.05em;margin:-.15em .18em 0;background:currentColor;-webkit-mask:var(--the-icon-svg) center/contain no-repeat;mask:var(--the-icon-svg) center/contain no-repeat}

/* リスト：丸数字（is-style-num_circle）。ステップの番号と同じ意匠に揃える。 */
.article-content :is(ul,ol).is-style-num_circle{list-style:none;counter-reset:mame-nc;padding-left:2px}
.article-content :is(ul,ol).is-style-num_circle>li{counter-increment:mame-nc;position:relative;padding:5px 0 5px 32px}
.article-content :is(ul,ol).is-style-num_circle>li::before{content:counter(mame-nc);position:absolute;left:0;top:10px;display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--blue-500);color:#fff;font:800 11px/1 var(--font-ui)}

/* ボタン（swell-block-button）。光沢・塗り・線・標準の違いは統一デザインに畳み、
   色クラス（blue_/red_/green_/orange_）だけトークンへ対応させて意図を残す。 */
.article-content .swell-block-button{margin:26px 0;text-align:center}
.article-content .swell-block-button :is(.swell-block-button__link,a){display:inline-flex;align-items:center;justify-content:center;gap:9px;min-width:min(320px,100%);box-sizing:border-box;padding:15px 30px;border-radius:999px;background:var(--btn-bg,var(--blue-500));color:#fff;font:700 14.5px/1.4 var(--font-ui);text-decoration:none;box-shadow:0 4px 0 color-mix(in srgb,var(--btn-bg,var(--blue-500)) 62%,#000);transition:transform var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard)}
.article-content .swell-block-button :is(.swell-block-button__link,a):hover{transform:translateY(2px);box-shadow:0 2px 0 color-mix(in srgb,var(--btn-bg,var(--blue-500)) 62%,#000)}
.article-content .swell-block-button :is(.swell-block-button__link,a):active{transform:translateY(4px);box-shadow:0 0 0 color-mix(in srgb,var(--btn-bg,var(--blue-500)) 62%,#000)}
/* 線ボタン。塗らずに2pxの線と文字色で示す */
.article-content .swell-block-button.is-style-btn_line :is(.swell-block-button__link,a){background:var(--surface);color:var(--btn-bg,var(--blue-500));border:2px solid var(--btn-bg,var(--blue-500));box-shadow:none}
.article-content .swell-block-button.is-style-btn_line :is(.swell-block-button__link,a):hover{background:color-mix(in srgb,var(--btn-bg,var(--blue-500)) 8%,var(--surface));transform:none;box-shadow:none}
/* 「もっと見る」。CTAではないので静かな型に分ける */
.article-content .swell-block-button.is-style-more_btn :is(.swell-block-button__link,a){min-width:auto;padding:11px 26px;background:var(--surface);color:var(--text-secondary);border:1px solid var(--border);box-shadow:none;font-size:13.5px}
.article-content .swell-block-button.is-style-more_btn :is(.swell-block-button__link,a)::after{content:"›";margin-left:2px;font-weight:800}
.article-content .swell-block-button.is-style-more_btn :is(.swell-block-button__link,a):hover{border-color:var(--blue-500);color:var(--blue-600);transform:none;box-shadow:none}
.article-content .swell-block-button :is(.swell-block-button__link,a) .__icon{fill:currentColor;flex:none}
.article-content .swell-block-button.red_{--btn-bg:var(--coral-500)}
.article-content .swell-block-button.green_{--btn-bg:var(--success)}
.article-content .swell-block-button.orange_{--btn-bg:var(--warning)}
/* 文中ボタン（swl-inline-btn）は角丸の小型ボタンにする */
.article-content .swl-inline-btn a{display:inline-block;padding:8px 20px;border-radius:999px;background:var(--blue-500);color:#fff;font:700 13px/1.4 var(--font-ui);text-decoration:none;box-shadow:0 3px 0 var(--blue-700);transition:transform var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard)}
.article-content .swl-inline-btn a:hover{transform:translateY(2px);box-shadow:0 1px 0 var(--blue-700)}

/* タブ（swell-block-tab）。選択中を青、非選択パネルは隠す。切り替えは
   aria-selected / aria-hidden を書き換えるだけで動く（本番はSWELLのJS、
   スタイルガイドでは比較モーダルのシムが書き換える）。 */
.article-content .swell-block-tab .c-tabList{display:flex;flex-wrap:wrap;gap:4px;list-style:none;margin:0;padding:0}
.article-content .swell-block-tab .c-tabList__item{margin:0}
.article-content .swell-block-tab .c-tabList__button{padding:10px 20px;border:1px solid var(--border-subtle);border-bottom:0;border-radius:8px 8px 0 0;background:var(--surface-sunken);font:700 13px/1 var(--font-ui);color:var(--text-secondary);cursor:pointer}
.article-content .swell-block-tab .c-tabList__button[aria-selected="true"]{background:var(--blue-500);border-color:var(--blue-500);color:#fff}
.article-content .swell-block-tab .c-tabBody{border:1px solid var(--border-subtle);border-radius:0 10px 10px 10px;padding:16px 18px}
.article-content .swell-block-tab .c-tabBody__item[aria-hidden="true"]{display:none}
/* balloon 変種は旧v1と同じ吹き出し型。選択中のタブから下向きのしっぽが中身へ伸びる */
.article-content .swell-block-tab.is-style-balloon .c-tabList{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0 0 10px;background:none;border-radius:0;list-style:none}
.article-content .swell-block-tab.is-style-balloon .c-tabList__item{display:contents}
.article-content .swell-block-tab.is-style-balloon .c-tabList__button{position:relative;z-index:2;border:1px solid var(--border);border-radius:999px;background:var(--surface);padding:8px 20px;color:var(--text-tertiary)}
.article-content .swell-block-tab.is-style-balloon .c-tabList__button[aria-selected="true"]{background:var(--blue-500);border-color:var(--blue-500);color:#fff}
.article-content .swell-block-tab.is-style-balloon .c-tabList__button[aria-selected="true"]::after{content:"";position:absolute;bottom:-9px;left:50%;transform:translateX(-50%);border:8px solid transparent;border-bottom:0;border-top:9px solid var(--blue-500)}
.article-content .swell-block-tab.is-style-balloon .c-tabBody{border:0;padding:0}
.article-content .swell-block-tab.is-style-balloon .c-tabBody :is(figure,table,.wp-block-table):first-child{margin-top:0}

/* アコーディオン（swell-block-accordion）。<details>のネイティブ開閉に任せ、
   開閉アイコンはSWELLのアイコンフォントを使わずCSSで描く。 */
.article-content .swell-block-accordion{display:flex;flex-direction:column;gap:10px;margin:24px 0}
.article-content .swell-block-accordion__item{border:1px solid var(--border-subtle);border-radius:10px;background:var(--surface);overflow:hidden}
.article-content .swell-block-accordion__title{display:flex;align-items:center;gap:10px;padding:13px 16px;background:var(--blue-50);font:800 14px/1.6 var(--font-heading);color:var(--ink);cursor:pointer;list-style:none}
.article-content .swell-block-accordion__title::-webkit-details-marker{display:none}
.article-content .swell-block-accordion__label{flex:1;min-width:0}
.article-content .swell-block-accordion__icon i{display:none}
.article-content .swell-block-accordion__icon::before{content:"▾";display:inline-block;color:var(--blue-500);font-weight:800;transition:transform var(--dur-base) var(--ease-standard)}
.article-content .swell-block-accordion__item[open]>.swell-block-accordion__title .swell-block-accordion__icon::before{transform:rotate(180deg)}
.article-content .swell-block-accordion__body{padding:14px 16px}

/* ---- 回り込み(float)対策 --------------------------------------
   本文には alignleft/alignright の画像がある（WPコアが float を出す）。
   装飾枠が float に重なると、枠線の中へ画像が食い込む（Audible解約記事で実発生）。
   枠になる部品は全部 flow-root にして、回り込みの横に「並ぶ」ようにする。
   フレックス系(c-balloon等)は元々独立文脈なので対象外。 */
.article-content :is(
  [class*="is-style-big_icon_"],[class*="is-style-icon_"],
  .is-style-balloon_box,.is-style-balloon_box2,
  .is-style-kakko_box,.is-style-big_kakko_box,
  .is-style-emboss_box,.is-style-sticky_box,
  .is-style-bg_grid,.is-style-bg_stripe,.is-style-crease,
  .is-style-index,.is-style-check_list,
  .is-style-good_list,.is-style-bad_list,.is-style-triangle_list,.is-style-note_list,
  .is-style-num_circle,
  .cap_box,.swell-block-dl,.swell-block-step,
  .swell-block-tab,.swell-block-review,
  .swell-block-button,.swell-block-postLink,blockquote
){display:flow-root}

/* ================================================================
   SWELLブロックの置き換え第3弾（未対応28種・2026-08-07）

   本文の8割超（89記事中74本）が、ここに書いていないクラスを使っていた。
   SWELLのCSSは dequeue 済みなので、指定が無いものは装飾ごと消えて素の
   段落・素のリストとして出る。意味（強調・良い/悪い・囲み）は残したまま、
   見た目だけリニューアルの言葉へ翻訳する。

   配色の方針: SWELLの元の色（ピンク寄り）ではなくトークンへ寄せる。
   ただし「良い=緑 / 悪い=赤」のように意味が色で決まっているものは、
   色を移すと本文の意味が壊れるので意味の側を優先する。
   ================================================================ */

/* ---- SWELLのカラーパレット --------------------------------------
   has-swl-pale-0X-background-color などは SWELL のCSS変数で塗られていた。
   変数ごと消えているため、記事側で背景色を指定したつもりの箇所が全部
   透明になっていた。元の色相（01=赤系 / 02=青系 / 03=緑系 / 04=黄系）を
   保ったまま、トークンの彩度へ落とす。

   自分の背景を持っている部品（チェックリスト・表のセル敷き）と、面を敷かないと
   決めた部品（目次風リスト）には、この色を乗せない。
   後から書いた指定が勝つので、除外しないと部品側のデザインを塗り潰してしまう。 */
.article-content :not(.is-style-check_list,.swl-cell-bg,.is-style-index).has-swl-pale-01-background-color{background-color:#fdf1ef!important}
.article-content :not(.is-style-check_list,.swl-cell-bg,.is-style-index).has-swl-pale-02-background-color{background-color:var(--blue-50)!important}
.article-content :not(.is-style-check_list,.swl-cell-bg,.is-style-index).has-swl-pale-03-background-color{background-color:#f0f8ee!important}
.article-content :not(.is-style-check_list,.swl-cell-bg,.is-style-index).has-swl-pale-04-background-color{background-color:#fdf8ec!important}
.article-content :not(.is-style-check_list,.swl-cell-bg,.is-style-index).has-swl-main-thin-background-color{background-color:var(--cool-50)!important}
.article-content :not(.is-style-check_list,.swl-cell-bg,.is-style-index).has-swl-main-background-color{background-color:var(--navy-600)!important}
/* 文字色。mark の中は上の455行目で別途処理しているのでここでは触らない。 */
.article-content :not(mark).has-swl-deep-01-color{color:var(--coral-600)!important}
.article-content :not(mark).has-swl-deep-02-color{color:var(--blue-600)!important}
.article-content :not(mark).has-swl-deep-04-color{color:var(--coral-500)!important}
.article-content .swl-inline-color{color:inherit}
/* SWELLの枠線プリセット(has-border -border0X)。指定が無いと線ゼロの素の段落で出る */
.article-content p.has-border{border:2px solid var(--blue-200);border-radius:12px;padding:18px 20px;line-height:1.9;text-align:left}
.article-content p.has-border img{display:block;margin:12px auto;border-radius:8px;max-width:100%;height:auto}
.article-content p.has-border .swl-fz.u-fz-s{display:inline-block;margin-top:6px;color:var(--text-secondary);line-height:1.9}
/* SWELLの文字サイズ指定。指定が無いと全部本文サイズで出る（引用の注記が大きい等） */
.article-content .u-fz-xs{font-size:.72em}
.article-content .u-fz-s{font-size:.85em}
.article-content .u-fz-l{font-size:1.15em}
.article-content .u-fz-ll{font-size:1.3em}

/* ---- 枠つきの段落・グループ ---------------------------------- */

/* 吹き出し枠（36記事）。段落そのものが吹き出しになる。線だけの版。 */
.article-content :is(p,div).is-style-balloon_box{position:relative;margin:26px 0;padding:15px 18px;background:var(--surface);border:1.5px solid var(--blue-200);border-radius:12px}
.article-content :is(p,div).is-style-balloon_box::before,
.article-content :is(p,div).is-style-balloon_box::after{content:"";position:absolute;top:100%;left:32px;width:0;height:0;border:9px solid transparent;border-top-color:var(--blue-200)}
.article-content :is(p,div).is-style-balloon_box::after{margin-top:-2.4px;border-top-color:var(--surface)}
/* 吹き出し枠2（9記事）。塗りの版。 */
.article-content :is(p,div).is-style-balloon_box2{position:relative;margin:26px 0;padding:15px 18px;background:var(--blue-50);border:0;border-radius:12px}
.article-content :is(p,div).is-style-balloon_box2::after{content:"";position:absolute;top:100%;left:32px;width:0;height:0;border:9px solid transparent;border-top-color:var(--blue-50)}

/* カギカッコ枠（19記事）。四隅ではなく左上と右下だけに線を出すのが元の形。 */
.article-content .is-style-kakko_box{position:relative;margin:26px 0;padding:22px 24px}
.article-content .is-style-kakko_box::before,
.article-content .is-style-kakko_box::after{content:"";position:absolute;width:22px;height:22px;border:2px solid var(--blue-300)}
.article-content .is-style-kakko_box::before{top:0;left:0;border-right:0;border-bottom:0}
.article-content .is-style-kakko_box::after{right:0;bottom:0;border-top:0;border-left:0}
/* 大カギカッコ（1記事）。線ではなく記号そのものを大きく置く。 */
.article-content .is-style-big_kakko_box{position:relative;margin:26px 0;padding:24px 28px}
.article-content .is-style-big_kakko_box::before,
.article-content .is-style-big_kakko_box::after{content:"";position:absolute;width:34px;height:34px;border:3px solid var(--blue-300)}
.article-content .is-style-big_kakko_box::before{top:0;left:0;border-right:0;border-bottom:0}
.article-content .is-style-big_kakko_box::after{right:0;bottom:0;border-top:0;border-left:0}

/* 左に線（3記事）。見出しの代わりに使われているので、字は太いまま残す。 */
.article-content :is(p,div).is-style-border_left{margin:28px 0 16px;padding:2px 0 2px 14px;border-left:4px solid var(--blue-500)}

/* エンボス（1記事）・付箋（1記事）。どちらも「ここだけ浮かせる」意図。
   DSは影を使わない方針なので、面の差と左の線で区別をつける。 */
.article-content :is(p,div).is-style-emboss_box{margin:26px 0;padding:15px 18px;background:var(--surface);border-radius:12px;border:1px solid var(--border-subtle);box-shadow:0 2px 8px rgba(20,27,46,.07);color:var(--text-primary);font-weight:700}
.article-content :is(p,div).is-style-sticky_box{position:relative;margin:26px 0;padding:16px 20px;background:#fbf2be;border-radius:2px;box-shadow:var(--shadow-xs);clip-path:polygon(0 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) 100%,0 100%)}
.article-content :is(p,div).is-style-sticky_box::after{content:"";position:absolute;right:0;bottom:0;width:18px;height:18px;background:linear-gradient(315deg,transparent 0 50%,#e3d187 50%)}

/* 背景：格子（16記事）。背景色を指定しているブロックが多いので、
   background-color は上書きせず background-image だけ重ねる。 */
.article-content .is-style-bg_grid{margin:26px 0;padding:18px 20px;border-radius:12px;background-image:linear-gradient(rgba(17,118,212,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(17,118,212,.05) 1px,transparent 1px);background-size:18px 18px;border:1px solid var(--border-subtle)}
.article-content .is-style-bg_grid p{margin-bottom:12px!important;line-height:1.8}
.article-content .is-style-bg_grid p:last-child{margin-bottom:0!important}
.article-content .is-style-bg_grid:not([class*="background-color"]){background-color:var(--cool-50)}
/* 背景：ストライプ（2記事） */
.article-content .is-style-bg_stripe{margin:26px 0;padding:18px 20px 20px;border:1px solid var(--border-subtle);border-radius:12px;background-image:repeating-linear-gradient(-45deg,rgba(17,118,212,.055) 0 3px,transparent 3px 10px);text-align:center}
.article-content .is-style-bg_stripe p{margin-bottom:10px!important;font:700 13.5px/1.7 var(--font-ui);color:var(--text-secondary)}
.article-content .is-style-bg_stripe .swell-block-button{margin:4px 0 0}
.article-content .is-style-bg_stripe:not([class*="background-color"]){background-color:var(--surface)}

/* 折り目（2記事）。右上の角を折った形。折り返した紙の面を三角2枚で作る。 */
.article-content .is-style-crease{position:relative;margin:26px 0;padding:20px 22px;clip-path:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,0 100%)}
.article-content .is-style-crease:not([class*="background-color"]){background-color:var(--cool-50)}
.article-content .is-style-crease::after{content:"";position:absolute;top:0;right:0;width:22px;height:22px;background:linear-gradient(225deg,transparent 0 50%,var(--cool-300) 50%)}

/* 大アイコン枠（is-style-big_icon_*）。94箇所。
   以前は functions.php が <aside class="note"> へ差し替えていたが、SWELLの
   クラス名を変えない方針にしたので、ブロックのまま装飾する。ラベルは
   ::before で出す（旧フィルタが持っていた種別→ラベルの対応表をここへ移した）。 */
.article-content [class*="is-style-big_icon_"]{position:relative;margin:28px 0 22px;padding:13px 16px 11px;border:1px solid var(--big-bd,var(--blue-200));border-radius:10px;font-size:14.5px}
/* 記事側が背景色を指定していればそちらを立てる。無いときだけ種別の色を敷く。 */
.article-content [class*="is-style-big_icon_"]:not([class*="background-color"]){background-color:var(--big-bg,var(--blue-50))}
.article-content [class*="is-style-big_icon_"]::before{position:absolute;top:-9px;left:12px;padding:2px 9px;border-radius:4px;background:var(--big-bd,var(--blue-500));color:#fff;font:800 10px/1.6 var(--font-ui);letter-spacing:var(--ls-wide)}
.article-content [class*="is-style-big_icon_"]>*:last-child{margin-bottom:0}
.article-content [class*="is-style-big_icon_"] .wp-block-group__inner-container>:first-child{margin-top:0!important}
.article-content [class*="is-style-big_icon_"] .wp-block-group__inner-container>:last-child{margin-bottom:0!important}
.article-content [class*="is-style-big_icon_"] blockquote{font-size:13.5px}
.article-content :is(.is-style-big_icon_bad,.is-style-big_icon_batsu) .is-style-index>li::before{background:var(--cool-400)}
.article-content [class*="is-style-big_icon_"] img.aligncenter{margin-left:0}
.article-content [class*="is-style-big_icon_"] p.has-text-align-center{text-align:left;font:700 13px/1.8 var(--font-ui);color:var(--text-secondary);margin-bottom:8px!important}
/* 段落そのものが大アイコン枠のときの中央寄せも左に（枠の中の煽り中央は読みにくい） */
.article-content p[class*="is-style-big_icon_"].has-text-align-center{text-align:left}
/* ステップ・FAQ・説明リストの中は段落を margin:0!important で詰めているが、
   大アイコン枠は上に飛び出すラベルを持つので、余白を潰すとラベルが前の行に刺さる */
.article-content :is(.swell-block-step__body,.faq_a,.swell-block-dl__dd,.cap_box_content) :is(p,div)[class*="is-style-big_icon_"]{margin:18px 0 12px!important}
.article-content :is(.swell-block-step__body,.faq_a,.swell-block-dl__dd,.cap_box_content) :is(p,div)[class*="is-style-big_icon_"]:first-child{margin-top:14px!important}
.article-content .is-style-big_icon_point::before{content:"POINT"}
/* POINT枠は面を敷かない。本文の途中に何度も出るので、水色の面があると本文から浮く。
   種別の区別は枠線とラベルが持つ。 */
.article-content .is-style-big_icon_point{--big-bg:transparent}
.article-content .is-style-big_icon_hatena::before{content:"QUESTION"}
.article-content :is(.is-style-big_icon_good,.is-style-big_icon_check)::before{content:"CHECK";--big-bd:var(--success)}
.article-content :is(.is-style-big_icon_good,.is-style-big_icon_check){--big-bg:rgba(47,162,91,.07);--big-bd:var(--success)}
.article-content .is-style-big_icon_caution::before{content:"CAUTION"}
.article-content .is-style-big_icon_caution{--big-bg:rgba(232,164,0,.08);--big-bd:var(--warning)}
.article-content :is(.is-style-big_icon_bad,.is-style-big_icon_batsu)::before{content:"注意"}
.article-content :is(.is-style-big_icon_bad,.is-style-big_icon_batsu){--big-bg:var(--surface);--big-bd:var(--coral-500)}
.article-content .is-style-big_icon_memo::before{content:"MEMO"}
.article-content .is-style-big_icon_memo{--big-bg:var(--surface-sunken);--big-bd:var(--navy-400)}
/* 枠の中の内部リンクはカードにせず、1行のテキストリンクとして出す */
.article-content [class*="is-style-big_icon_"] .swell-block-postLink{margin:8px 0}
.article-content [class*="is-style-big_icon_"] .p-blogCard{border:0;background:transparent;border-radius:0;overflow:visible}
.article-content [class*="is-style-big_icon_"] .p-blogCard:hover{border:0;box-shadow:none}
.article-content [class*="is-style-big_icon_"] :is(.p-blogCard__thumb,.p-blogCard__excerpt,.p-blogCard__caption){display:none}
.article-content [class*="is-style-big_icon_"] .p-blogCard__inner{display:block}
.article-content [class*="is-style-big_icon_"] .p-blogCard__body{display:block;padding:0}
.article-content [class*="is-style-big_icon_"] .p-blogCard__title{font:700 13.5px/1.8 var(--font-body);color:var(--text-link);text-decoration:underline;text-underline-offset:3px}
.article-content [class*="is-style-big_icon_"] .p-blogCard__title::before{content:"▶";margin-right:6px;font-size:10px;color:var(--blue-500);text-decoration:none;display:inline-block}
.article-content [class*="is-style-big_icon_"] .p-blogCard__title:hover{color:var(--text-link-hover)}
/* 中にカード・吹き出し・グループが入る枠は、塗りを重ねると入れ子が騒がしいので白地に落とす。
   記事側の背景色指定より優先させたいので !important（対象はこの枠だけ） */
.article-content [class*="is-style-big_icon_"]:has(.swell-block-postLink,.c-balloon,.wp-block-group,blockquote){background-color:var(--surface)!important}

/* 画像の枠線（4記事）と影つき（17記事）。 */
.article-content figure.wp-block-image.is-style-border img{border:1px solid var(--border);border-radius:var(--radius-image)}
.article-content figure.wp-block-image.is-style-shadow img{border-radius:var(--radius-image);box-shadow:var(--shadow-md)}

/* ---- リスト ----------------------------------------------------
   SWELLは先頭のアイコンで意味を出していた。アイコンフォントを外している
   ので、::before の記号で作る。「良い/悪い」は色を意味に合わせる。 */
.article-content :is(ul,ol):is(.is-style-good_list,.is-style-bad_list,.is-style-triangle_list,.is-style-note_list){list-style:none;margin:22px 0;padding-left:2px}
.article-content :is(ul,ol):is(.is-style-good_list,.is-style-bad_list,.is-style-triangle_list,.is-style-note_list)>li{position:relative;padding:4px 0 4px 30px}
.article-content :is(ul,ol):is(.is-style-good_list,.is-style-bad_list,.is-style-triangle_list,.is-style-note_list)>li::before{position:absolute;left:0;top:10px;display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font:800 12px/1 var(--font-ui)}  /* ponytail: 10px = li余白4px + (行高32px - 記号20px)/2。本文の行高を変えたらここも */
.article-content :is(ul,ol).is-style-good_list>li::before{content:"✓";background:rgba(47,162,91,.14);color:var(--success)}
.article-content :is(ul,ol).is-style-bad_list>li::before{content:"×";background:var(--coral-100);color:var(--coral-600)}
.article-content :is(ul,ol).is-style-triangle_list>li::before{content:"▶";background:none;color:var(--blue-500);font-size:11px}
/* 注釈は本文より一段落とす。丸は付けない。 */
.article-content :is(ul,ol).is-style-note_list>li{padding-left:22px;color:var(--text-secondary);font-size:13.5px}
.article-content :is(ul,ol).is-style-note_list>li::before{content:"※";top:auto;width:auto;height:auto;background:none;color:var(--text-tertiary);font-weight:700;font-size:inherit;line-height:inherit}

/* 目次風（12記事）。囲みの中で項目を区切って並べる。 */
/* 面は敷かない。本文の途中に置く一覧なので、背景があると本文から浮いて使いにくい。
   区切りは li の点線が持つ。記事側でパレット色が付いていても透明に戻す（SWELLの
   パレットもWPの global-styles も !important で塗るので、こちらも !important で返す）。*/
.article-content :is(ul,ol).is-style-index{list-style:none;margin:22px 0;padding:2px;font-size:14px;background-color:transparent!important}
.article-content :is(ul,ol).is-style-index>li{position:relative;padding:5px 0 5px 16px;border-bottom:1px dotted var(--border-dotted)}
/* 丸は1行目の文字の高さの中心に置く。li の上padding 5px ＋ 行の半分(1em=行送りの半分)
   − 丸の半径3px。top:1.05em だと1.3px上にずれていた。 */
.article-content :is(ul,ol).is-style-index>li::before{content:"";position:absolute;left:0;top:calc(5px + 1em - 3px);width:6px;height:6px;border-radius:50%;background:var(--blue-400)}

/* 項目の下に破線（SWELLの -list-under-dashed）。上のリスト種別と併用される。 */
.article-content ul.-list-under-dashed>li{border-bottom:1px dashed var(--border-dotted)}

/* ---- カラム（20記事） ------------------------------------------
   --clmn-w--pc に記事側が幅を入れている。指定が無ければ等分にする。 */
.article-content .swell-block-columns{margin:26px 0}
.article-content .swell-block-columns__inner{display:flex;flex-wrap:wrap;gap:16px}
.article-content .swell-block-column{flex:1 1 calc(var(--clmn-w--pc,50%) - 8px);min-width:0}
.article-content .swell-block-column>*:last-child{margin-bottom:0}
/* 背景色を敷いた段落は面として見えるので、面としての余白を持たせる */
.article-content p.has-background{padding:14px 16px;border-radius:8px}
/* カラム：影つき（3記事）。DSは影を使わないので線と面で分ける。 */
.article-content .swell-block-columns.is-style-clmn-shadow .swell-block-column{padding:16px 18px;background:var(--surface);border:1px solid var(--border-subtle);border-radius:12px}
/* キャプション枠の中に置かれたカラムは、素の2列だと境目が読めない。淡い面で区切る */
.article-content .cap_box .swell-block-column{padding:12px 14px;background:var(--cool-50);border-radius:10px}
.article-content .cap_box .swell-block-column p{margin-bottom:8px!important}
.article-content .cap_box .swell-block-column p:last-child{margin-bottom:0!important}
@media(max-width:600px){.article-content .swell-block-column{flex-basis:100%}}

/* ---- 表とインライン -------------------------------------------- */

/* セル背景（9記事）。SWELLはセルの中に敷き紙のspanを1枚置いて塗っていた。
   isolation でtd側に重なりの基準を作ると、z-index:-1 が「tdの背景より上・
   本文より下」に収まる。 */
.article-content td:has(>.swl-cell-bg),
.article-content th:has(>.swl-cell-bg){position:relative;isolation:isolate}
.article-content .swl-cell-bg{position:absolute;inset:0;z-index:-1;background:var(--the-cell-bg)}
/* 文中リスト。比較表の評価記号がこれ。data-icon の7種は全部が意味を持つ
   （◎○△×は評価の段階）ので、記号も色も取り違えると表の結論が変わる。 */
.article-content .swl-inline-list{display:inline-block;padding-left:20px;text-indent:-20px}
.article-content .swl-inline-list::before{display:inline-block;width:20px;text-indent:0;font-weight:800}
.article-content .swl-inline-list[data-icon="doubleCircle"]::before{content:"◎";color:var(--coral-500)}
.article-content .swl-inline-list[data-icon="circle"]::before{content:"○";color:var(--success)}
.article-content .swl-inline-list[data-icon="check"]::before{content:"✓";color:var(--success)}
.article-content .swl-inline-list[data-icon="triangle"]::before{content:"△";color:var(--warning)}
.article-content .swl-inline-list[data-icon="close"]::before{content:"×";color:var(--coral-600)}
.article-content .swl-inline-list[data-icon="hatena"]::before{content:"？";color:var(--text-tertiary)}
.article-content .swl-inline-list[data-icon="line"]::before{content:"—";color:var(--text-tertiary)}
.article-content .swl-inline-list:not([data-icon])::before{content:"・";color:var(--text-tertiary)}

/* ---- レビュー（1記事） ------------------------------------------ */
.article-content .swell-block-review{margin:28px 0}
.article-content .swell-block-review__inner{padding:14px 16px;background:var(--surface);border:1px solid var(--border-subtle);border-radius:12px;font-size:13.5px}
.article-content .swell-block-review__title{margin-bottom:10px;font:800 14.5px/1.5 var(--font-heading);color:var(--ink)}
.article-content .swell-block-review__image{float:right;margin:0 0 10px 20px}
.article-content .swell-block-review__image img{max-width:220px;border-radius:8px}
.article-content .swell-block-review__rating{display:flex;align-items:center;gap:10px;padding:7px 0;border-block:1px dotted var(--border-dotted)}
.article-content .swell-block-review__rating .__label{font:800 12px/1 var(--font-ui);color:var(--text-tertiary)}
.article-content .swell-block-review__rating .__value{display:flex;align-items:center;gap:8px}
.article-content :is(.swell-block-review__merits,.swell-block-review__demerits){margin-top:10px}
.article-content .swell-block-review__inner::after{content:"";display:block;clear:both}
.article-content .swell-block-review .__list>li{padding-top:2px;padding-bottom:2px}
@media(max-width:520px){
	.article-content .swell-block-review__image{float:none;margin:0 auto 12px;text-align:center}
	.article-content .swell-block-review__image img{max-width:120px}
	.article-content .swell-block-review__inner{font-size:13px}
}
.article-content :is(.swell-block-review__merits,.swell-block-review__demerits)>.__label{margin-bottom:4px;font:800 13px/1.6 var(--font-heading);color:var(--text-secondary)}
/* 星（レビューと比較カラムで使う）。SWELLのアイコンフォントは外してある。 */
.article-content .c-reviewStars{display:inline-flex;gap:1px;font-style:normal;letter-spacing:.02em}
.article-content .c-reviewStars i{font-style:normal;font-size:15px;line-height:1}
.article-content .c-reviewStars .icon-star-full::before{content:"★";color:var(--warning)}
.article-content .c-reviewStars .icon-star-empty::before{content:"☆";color:var(--cool-400)}
.article-content .c-reviewStars .icon-star-half::before{content:"★";color:var(--cool-400)}

/* ---- 旧テーマ（Cocoon）の残骸 -----------------------------------
   Cocoonは有効テーマではないので、これらは装飾ごと消えて素で出る。
   同じ意味を持つSWELL側のブロック（吹き出し・囲み）に見た目を揃える。 */
.article-content .wp-block-cocoon-blocks-balloon-ex-box-1{display:flex;align-items:flex-start;gap:12px;margin:26px 0}
.article-content .wp-block-cocoon-blocks-balloon-ex-box-1 .speech-person{flex:none;width:52px;text-align:center}
.article-content .wp-block-cocoon-blocks-balloon-ex-box-1 .speech-icon{margin:0}
.article-content .wp-block-cocoon-blocks-balloon-ex-box-1 .speech-icon-image{width:52px;height:52px;object-fit:cover;border-radius:50%;border:1px solid var(--border-subtle)}
.article-content .wp-block-cocoon-blocks-balloon-ex-box-1 .speech-name{margin-top:4px;font:700 10.5px/1.4 var(--font-ui);color:var(--text-tertiary)}
.article-content .wp-block-cocoon-blocks-balloon-ex-box-1 .speech-name:empty{display:none}
.article-content .wp-block-cocoon-blocks-balloon-ex-box-1 .speech-balloon{position:relative;flex:1;min-width:0;padding:13px 16px;background:var(--surface);border:1px solid var(--cool-300);border-radius:12px}
.article-content .wp-block-cocoon-blocks-balloon-ex-box-1 .speech-balloon::before{content:"";position:absolute;top:18px;left:-7px;width:11px;height:11px;background:var(--surface);border-left:1px solid var(--cool-300);border-bottom:1px solid var(--cool-300);transform:rotate(45deg)}
.article-content .wp-block-cocoon-blocks-balloon-ex-box-1 .speech-balloon>*:last-child{margin-bottom:0}
/* アイコンが無い（=話者を出していない）記事では、しっぽも出さない */
.article-content .wp-block-cocoon-blocks-balloon-ex-box-1 .speech-person:not(:has(img)){display:none}

.article-content .wp-block-cocoon-blocks-blank-box-1{margin:26px 0;padding:18px 20px;border:1px solid var(--border);border-radius:12px}
.article-content .wp-block-cocoon-blocks-blank-box-1>*:last-child{margin-bottom:0}

.article-content .wp-block-cocoon-blocks-tab-caption-box-1{margin:30px 0 26px;border:0!important}
.article-content .wp-block-cocoon-blocks-tab-caption-box-1 .tab-caption-box-label{display:inline-block;padding:7px 16px;background:var(--blue-500);color:#fff;border-radius:10px 10px 0 0;font:800 13px/1.4 var(--font-heading)}
.article-content .wp-block-cocoon-blocks-tab-caption-box-1 .tab-caption-box-content{padding:16px 18px;border:1.5px solid var(--blue-500);border-radius:0 10px 10px 10px}
.article-content .wp-block-cocoon-blocks-tab-caption-box-1 .tab-caption-box-content>*:last-child{margin-bottom:0}

/* ---- プラグイン由来（2記事） ------------------------------------
   Before/After のスライダー。プラグインのCSS・JSはリニューアル表示では
   読み込まれないため、画像が2枚そのまま縦に並ぶ状態だった。
   ponytail: スライダーは復活させず、2枚を並べて見比べる形にする。
   本当にスライダーが要ると分かったらプラグインのassetsを個別にenqueueする。 */
.article-content .wp-block-icgb-image-compare{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:26px 0}
.article-content .wp-block-icgb-image-compare::before{content:attr(data-lil);grid-column:1;font:800 11px/1 var(--font-ui);color:var(--text-tertiary);letter-spacing:var(--ls-wide)}
.article-content .wp-block-icgb-image-compare::after{content:attr(data-ril);grid-column:2;grid-row:1;font:800 11px/1 var(--font-ui);color:var(--text-tertiary);letter-spacing:var(--ls-wide)}
.article-content .wp-block-icgb-image-compare img{width:100%;height:auto;border:1px solid var(--border-subtle);border-radius:var(--radius-image)}
@media(max-width:600px){.article-content .wp-block-icgb-image-compare{grid-template-columns:1fr}.article-content .wp-block-icgb-image-compare::after{grid-column:1;grid-row:3}}

/* ---- 監修者ボックス（本文の中に置く薄型の名刺） ----
   本番ではカスタマイザーの「追加CSS」で作られていた。追加CSSは有効なテーマの名前に
   紐づいて保存されるので、テーマを切り替えると読み込まれない。17記事で使っているため
   子テーマへ引き取る。SWELLのCSSは dequeue 済みなので !important は要らない。 */
.article-content .supervisor-box{border:1px solid var(--border-subtle);border-radius:8px;padding:12px 16px;margin:16px 0 1.5em}
.article-content .supervisor-box .wp-block-columns{gap:12px;margin-bottom:0}
.article-content .supervisor-box .wp-block-column{margin-bottom:0}
/* 本文の画像は figure.wp-block-image で下40pxを取っている。名刺の中では効かせない
   （同じ強さで後勝ちにするため figure を付ける）。 */
.article-content figure.supervisor-box__photo{margin:0}
.article-content .supervisor-box__photo img{width:48px;height:48px;border-radius:50%;object-fit:cover}
.article-content .supervisor-box__info{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0;font-size:13px;line-height:1.5;color:var(--ink)}
.article-content .supervisor-box__info strong{font-size:14px}
.article-content .supervisor-box__badge{display:inline-block;padding:1px 6px;border-radius:3px;background:var(--blue-600);color:#fff;font:700 10px/1.6 var(--font-ui);letter-spacing:var(--ls-wide)}
.article-content .supervisor-box__role{font-size:11px;color:var(--text-tertiary)}
.article-content .supervisor-box__ig{display:inline-flex;align-items:center;color:var(--text-tertiary);text-decoration:none}
.article-content .supervisor-box__ig:hover{color:var(--blue-600)}
/* 旧テーマ時代の重複表示。名前と肩書きは __info の中に入っているので出さない。 */
.article-content :is(.supervisor-box__label,.supervisor-box__meta,.supervisor-box__links,.supervisor-box__name){display:none}
