/*! v2.css — stnv2-* components (docs/v2/design-spec-final.md §2/§3/§7). Scoped by the stnv2- prefix only (no body-class scope). Existing --stn-* tokens are referenced with fallbacks only. */
/* 00 tokens — 7 new colors (spec 2.1) + number font stack + sizes. The --stnv2-* aliases below the first block are NOT new colors: they alias plugin :root --stn-* values with the same hex as fallback (needed on the REST preview page, which has no plugin inline :root). */
:root{--stnv2-muted-strong:var(--stn-r2-muted,#526579);--stnv2-green-bg:#e3f6ec;--stnv2-amber-text:#9a3f05;--stnv2-warn-bg:#fff7ec;--stnv2-warn-line:#f3d9a8;--stnv2-chip-bg:#eef2f6;--stnv2-trust-ink:#5a4a32;--stnv2-font-num:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Hiragino Sans","Yu Gothic",Meiryo,sans-serif;--stnv2-tap:48px;--stnv2-row:48px;--stnv2-radius-table:8px;--stnv2-radius-tag:4px}
:root{--stnv2-blue:var(--stn-blue,#0b73d9);--stnv2-blue-press:var(--stn-blue-press,#085aa9);--stnv2-navy:var(--stn-navy,#0b2545);--stnv2-ink:var(--stn-ink,#102033);--stnv2-white:var(--stn-white,#fff);--stnv2-soft:var(--stn-canvas-soft,#f4f8fc);--stnv2-sky:var(--stn-sky,#eaf5ff);--stnv2-cream:var(--stn-cream,#f8f1e4);--stnv2-line:var(--stn-line,#dbe7f3);--stnv2-green-text:var(--stn-green-text,#0e7d51);--stnv2-amber:var(--stn-amber,#b45309);--stnv2-amber-bg:var(--stn-amber-bg,#fef3c7);--stnv2-radius-card:var(--stn-radius-card,12px);--stnv2-pill:var(--stn-radius-pill,9999px);--stnv2-shadow-1:var(--stn-shadow-level-1,0 1px 3px rgba(11,37,69,.08))}

/* 10 utils (only these five: num / unit / sub / vh / wrap) */
.stnv2-num{font-family:var(--stnv2-font-num);font-feature-settings:"tnum" 1;font-variant-numeric:tabular-nums lining-nums;white-space:nowrap;text-align:right}
.stnv2-unit{margin-left:1px;font-size:12px;font-weight:600;color:var(--stnv2-muted-strong)}
.stnv2-sub{display:block;font-size:14px;font-weight:500;line-height:1.6;color:var(--stnv2-muted-strong);white-space:normal;overflow-wrap:anywhere}
p.stnv2-sub{margin:8px 0 0;font-size:14px;line-height:1.6}
.stnv2-vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}
.stnv2-wrap{white-space:normal;max-width:160px;overflow-wrap:anywhere}
.stnv2-audience summary{list-style:none;cursor:pointer;min-height:48px}
.stnv2-audience summary::-webkit-details-marker{display:none}
.stnv2-audience:not([open]) summary{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.stnv2-audience:not([open]) summary::after{content:"…続きを読む";display:block;margin-top:2px;font-size:13px;font-weight:700;color:var(--stnv2-blue-press)}

/* 20 layout */
.stnv2-section{padding:20px 16px;border-top:1px solid var(--stnv2-line);background:var(--stnv2-white);color:var(--stnv2-ink);-webkit-text-size-adjust:100%}
.stnv2-section--soft{background:var(--stnv2-soft)}
.stnv2-section--sky{background:var(--stnv2-sky)}
.stnv2-section--cream{background:var(--stnv2-cream)}
.stnv2-section[id],.stnv2-table__row[id],.stnv2-table__group th[id],.stnv2-minicard[id],.stnv2-plan[id],.stnv2-cta[id]{scroll-margin-top:80px}
.stnv2-eyebrow{margin:0 0 6px;font-size:12px;font-weight:700;line-height:1.4;color:var(--stnv2-blue-press)}
.stnv2-h1{margin:0 0 12px;font-size:24px;font-weight:700;line-height:1.3;color:var(--stnv2-navy);overflow-wrap:anywhere}
.stnv2-h2{position:relative;margin:0 0 12px;padding-left:12px;font-size:20px;font-weight:700;line-height:1.35;color:var(--stnv2-navy)}
.stnv2-h2::before{content:"";position:absolute;left:0;top:.15em;bottom:.15em;width:4px;background:var(--stnv2-navy)}
.stnv2-h3{margin:0 0 8px;font-size:17px;font-weight:700;line-height:1.4;color:var(--stnv2-navy)}
.stnv2-lead,.stnv2-p{margin:0 0 12px;font-size:16px;line-height:1.7}
.stnv2-legend,.stnv2-meta{margin:8px 0 0;font-size:14px;line-height:1.6;color:var(--stnv2-muted-strong)}
.stnv2-meta time{font-family:var(--stnv2-font-num);font-variant-numeric:tabular-nums}

/* 30 badges / chip / tag */
.stnv2-badge{display:inline-flex;align-items:center;box-sizing:border-box;min-height:20px;padding:3px 8px;border:1px solid transparent;border-radius:var(--stnv2-pill);background:var(--stnv2-soft);color:var(--stnv2-ink);font-family:var(--stnv2-font-num);font-feature-settings:"tnum" 1;font-variant-numeric:tabular-nums lining-nums;font-size:13px;font-weight:700;line-height:1.1;white-space:nowrap;vertical-align:middle;text-decoration:none}
.stnv2-badge--danger{background:var(--stnv2-amber-bg);color:var(--stnv2-amber-text)}
.stnv2-badge--neutral{border-color:var(--stnv2-line)}
.stnv2-badge--muted{background:transparent;border:1px dashed #c3cedb;border-radius:8px;color:var(--stnv2-muted-strong)}
.stnv2-badge--confirm{background:var(--stnv2-sky);color:var(--stnv2-navy)}
.stnv2-badge--success{background:var(--stnv2-green-bg);color:var(--stnv2-green-text)}
.stnv2-confirm .stnv2-badge--stale{display:flex;width:max-content;margin-top:3px}
.stnv2-chip{display:inline-block;padding:2px 6px;border-radius:var(--stnv2-radius-tag);background:var(--stnv2-chip-bg);color:var(--stnv2-muted-strong);font-size:12px;font-weight:700;line-height:1.3;vertical-align:middle}
.stnv2-tag{display:inline-block;padding:3px 10px;border-radius:var(--stnv2-pill);background:var(--stnv2-sky);color:var(--stnv2-navy);font-size:12px;font-weight:600;line-height:1.3}

/* 40 tables — type A: .stnv2-scroll > table.stnv2-table (first column sticky). Never wrapped in .sn-table-scroll. */
.stnv2-board{margin:12px 0}
.stnv2-scrollnote{display:flex;align-items:center;gap:6px;margin:0 0 6px;font-size:14px;line-height:1.6;color:var(--stnv2-muted-strong)}
.stnv2-scrollnote::before{content:"";flex:none;width:14px;height:10px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 10' fill='none' stroke='%23526579' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 5h12M4 2 1 5l3 3M10 2l3 3-3 3'/%3E%3C/svg%3E") center/contain no-repeat}
.stnv2-scroll{position:relative;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--stnv2-line);border-radius:var(--stnv2-radius-table);background:var(--stnv2-white);scrollbar-width:thin}
.stnv2-scroll.is-overflowing{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 12px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 12px),transparent)}
.stnv2-scroll.is-scrolled-end{-webkit-mask-image:none;mask-image:none}
.stnv2-table{width:100%;min-width:592px;margin:0;border-collapse:separate;border-spacing:0;table-layout:auto;background:var(--stnv2-white);color:var(--stnv2-ink);font-family:var(--stnv2-font-num);font-feature-settings:"tnum" 1;font-variant-numeric:tabular-nums lining-nums;font-size:14px;line-height:1.45}
.stnv2-table th,.stnv2-table td{padding:6px 10px;border:0;border-bottom:1px solid var(--stnv2-line);background:var(--stnv2-white);text-align:left;vertical-align:middle;font-weight:400;overflow-wrap:anywhere}
.stnv2-table tbody tr:last-child>*{border-bottom:0}
.stnv2-table thead th{padding:9px 10px;background:var(--stnv2-soft);color:var(--stnv2-navy);font-size:13px;font-weight:700;line-height:1.3;white-space:nowrap}
.stnv2-table th:first-child,.stnv2-table td:first-child{position:-webkit-sticky;position:sticky;left:0;z-index:1;box-shadow:1px 0 0 var(--stnv2-line)}
.stnv2-table thead th:first-child{z-index:2}
.stnv2-table--total{min-width:0}
/* 97 (2026-09-20 wave2 §6): overflow用の入れ子テーブルは案件名+実額の2列しか
   持たないのに .stnv2-table の min-width:592px を継承していて、320px幅では
   <details>を開いた瞬間に横スクロールが出ていた。--total と同じ扱いにする。 */
.stnv2-table--nested{min-width:0}
.stnv2-table--total th:nth-child(1){width:150px}
.stnv2-table--total th:nth-child(2),.stnv2-table--total th:nth-child(3){width:78px}
.stnv2-table .stnv2-num{text-align:right}
.stnv2-table tbody th{padding:0}
.stnv2-table__group>th{position:static;width:auto;padding:6px 10px;border-top:1px solid var(--stnv2-line);box-shadow:none;background:var(--stnv2-soft);color:var(--stnv2-navy);font-size:14px;font-weight:700;line-height:1.4;white-space:nowrap}
.stnv2-table__group small{margin-left:4px;font-size:13px;font-weight:500;color:var(--stnv2-muted-strong)}
.stnv2-rowlink{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:6px;align-content:center;box-sizing:border-box;min-height:var(--stnv2-row);padding:5px 10px;color:var(--stnv2-ink);text-decoration:none}
.stnv2-rowlink b{grid-column:1/-1;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:14px;font-weight:700;line-height:1.35;color:var(--stnv2-navy)}
.stnv2-rowlink span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:13px;line-height:1.4;color:var(--stnv2-muted-strong)}
.stnv2-rowlink span::after{content:"\00a0→";color:var(--stnv2-blue-press);font-weight:700}
.stnv2-rowlink i{display:none;align-self:end;font-style:normal;font-size:13px;font-weight:700;line-height:1.3;color:var(--stnv2-blue-press);white-space:nowrap}
.stnv2-rowlink:hover b{text-decoration:underline}
.stnv2-amount{display:inline-block;font-family:var(--stnv2-font-num);font-feature-settings:"tnum" 1;font-variant-numeric:tabular-nums lining-nums;font-weight:700;color:var(--stnv2-navy);white-space:nowrap}
.stnv2-qual{margin:0 2px;font-size:14px;font-weight:600;color:var(--stnv2-ink)}
.stnv2-num .stnv2-sub{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;max-width:150px;margin:3px 0 0 auto;text-align:right}
.stnv2-num .stnv2-sub--short{display:block;-webkit-line-clamp:1;overflow:visible;white-space:nowrap;max-width:none}
.stnv2-rowlink b,.stnv2-rowlink span,.stnv2-num .stnv2-sub{word-break:keep-all;overflow-wrap:break-word}
.stnv2-deadline{white-space:nowrap}
.stnv2-deadline .stnv2-sub{margin-top:3px;white-space:nowrap;font-family:var(--stnv2-font-num);font-variant-numeric:tabular-nums}
.stnv2-deadline-date{white-space:nowrap}
.stnv2-confirm{white-space:nowrap}
.stnv2-table tr.is-total>*{background:var(--stnv2-soft);font-weight:700}
.stnv2-table .stnv2-empty>td{position:static;box-shadow:none;padding:10px;font-size:14px;line-height:1.6;color:var(--stnv2-muted-strong);white-space:normal}
.stnv2-more{margin:8px 0 0;font-size:14px}
.stnv2-group-details summary{min-height:var(--stnv2-tap);padding:8px 10px;cursor:pointer;list-style:none;color:var(--stnv2-blue-press);font-size:14px;font-weight:700}
.stnv2-group-details summary::-webkit-details-marker{display:none}

/* 50 kv / cards / verdict / toc / callout / minicard / empty */
.stnv2-kv{margin:0;padding:0}
.stnv2-kv>div{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 12px;box-sizing:border-box;min-height:36px;padding:7px 0;border-top:1px solid var(--stnv2-line);font-size:14px;line-height:1.6}
.stnv2-kv>div:first-child{border-top:0}
.stnv2-kv dt{flex:0 0 7em;margin:0;font-weight:400;color:var(--stnv2-muted-strong)}
.stnv2-kv dd{flex:1 1 auto;min-width:0;margin:0;text-align:right;font-weight:700;overflow-wrap:anywhere}
.stnv2-kv dd:not(.stnv2-kv__text){font-family:var(--stnv2-font-num);font-feature-settings:"tnum" 1;font-variant-numeric:tabular-nums lining-nums}
.stnv2-kv dd.stnv2-num{font-size:14px}
.stnv2-kv .stnv2-kv__text{flex:1 1 12em;text-align:left;font-weight:400}
.stnv2-kv--verdict dt{flex-basis:4.5em}
.stnv2-kv--verdict .stnv2-amount{font-size:22px;line-height:1.2}
.stnv2-kv--verdict .stnv2-qual{font-size:15.5px;font-weight:700}
.stnv2-verdict{padding:14px 16px;border-radius:8px;background:var(--stnv2-sky)}
.stnv2-verdict--article{margin:16px 0;padding:12px 0;border-top:1px solid var(--stnv2-line);border-bottom:1px solid var(--stnv2-line);border-radius:0;background:var(--stnv2-white)}
/* 記事の結論ボックス内の要点(本文の <ul class="stn-verdict-points">、2026-10-06): 判断文の下に 3 項目。行頭は小さな点だけ、項目の間は 12px 空ける。
   詳細度は v4.css の p/li 規則(margin-bottom 1.4em・li+li 10px)より高くして、読み込み順に左右されないようにする */
body.single-post .wp-block-post-content .stnv2-verdict p:has(+ul.stn-verdict-points){margin-bottom:12px}
body.single-post .wp-block-post-content .stnv2-verdict ul.stn-verdict-points{margin:0;padding:0;list-style:none}
body.single-post .wp-block-post-content .stnv2-verdict ul.stn-verdict-points>li{position:relative;margin:0;padding:0 0 0 16px}
body.single-post .wp-block-post-content .stnv2-verdict ul.stn-verdict-points>li+li{margin-top:12px}
body.single-post .wp-block-post-content .stnv2-verdict ul.stn-verdict-points>li::before{content:"";position:absolute;left:2px;top:.85em;width:5px;height:5px;border-radius:50%;background:var(--stnv2-muted-strong,#475569)}
.stnv2-toc{margin:12px 0 0}
.stnv2-toc ul{display:flex;flex-wrap:wrap;gap:12px 8px;margin:0;padding:0;list-style:none}
.stnv2-toc li{margin:0}
.stnv2-toc a{position:relative;display:inline-flex;align-items:center;box-sizing:border-box;min-height:36px;padding:0 12px;border:1px solid var(--stnv2-line);border-radius:var(--stnv2-pill);background:var(--stnv2-soft);color:var(--stnv2-blue-press);font-size:14px;font-weight:700;line-height:1.2;text-decoration:none}
.stnv2-toc a::before{content:"";position:absolute;left:0;right:0;top:-6px;bottom:-6px}
.stnv2-toc a:hover{border-color:var(--stnv2-blue-press)}
.stnv2-toc details{margin-top:6px}
.stnv2-toc details ul{margin-top:6px}
.stnv2-toc summary{min-height:var(--stnv2-tap);padding:8px 10px;cursor:pointer;list-style:none;color:var(--stnv2-blue-press);font-size:14px;font-weight:700}
.stnv2-toc summary::-webkit-details-marker{display:none}
.stnv2-plans{display:grid;gap:12px;margin:12px 0}
.stnv2-plan{box-sizing:border-box;margin:0;padding:14px 16px;border:1px solid var(--stnv2-line);border-radius:var(--stnv2-radius-card);background:var(--stnv2-white);box-shadow:var(--stnv2-shadow-1)}
.stnv2-plan--best{padding:13px 15px;border:2px solid var(--stnv2-navy)}
.stnv2-plan__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 10px;margin:0 0 6px}
.stnv2-plan__name{margin:0;font-size:17px;font-weight:700;line-height:1.4;color:var(--stnv2-navy)}
.stnv2-callout{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:8px 0 0;padding:8px 12px;border-radius:8px;background:var(--stnv2-sky);font-size:14px;line-height:1.6}
.stnv2-callout .stnv2-num,.stnv2-callout b{font-size:16px;font-weight:800;color:var(--stnv2-navy)}
.stnv2-minicards{display:grid;gap:12px;margin:16px 0 0}
.stnv2-minicard{box-sizing:border-box;margin:0;padding:12px 14px;border:1px solid var(--stnv2-line);border-radius:var(--stnv2-radius-card);background:var(--stnv2-soft)}
.stnv2-minicard--warn{border-color:var(--stnv2-warn-line);background:var(--stnv2-warn-bg)}
.stnv2-minicard__title{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 6px;font-size:15px;font-weight:700;line-height:1.4;color:var(--stnv2-navy)}
.stnv2-minicard__list{margin:0;padding:0;list-style:none}
.stnv2-minicard__row{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:32px;padding:4px 0;border-top:1px solid var(--stnv2-line);font-size:14px;line-height:1.6}
.stnv2-minicard--warn .stnv2-minicard__row{border-color:var(--stnv2-warn-line)}
.stnv2-minicard__row a{min-width:0;color:var(--stnv2-blue-press);text-decoration:none;overflow-wrap:anywhere}
.stnv2-minicard__row a:hover{text-decoration:underline}
.stnv2-minicard__row b{color:var(--stnv2-navy)}
.stnv2-minicard__side{display:flex;flex:none;flex-direction:column;align-items:flex-end;font-family:var(--stnv2-font-num);font-variant-numeric:tabular-nums;font-size:14px;color:var(--stnv2-muted-strong)}
.stnv2-empty{margin:0;font-size:14px;line-height:1.6;color:var(--stnv2-muted-strong)}
p.stnv2-empty{padding:6px 0}

/* 60 cta — one primary per page, PR row in the same block, no sticky */
.stnv2-cta{margin:16px 0;text-align:center}
.stnv2-cta__pr{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;margin:0 0 4px;font-size:13px;line-height:1.6;color:var(--stnv2-muted-strong)}
.stnv2-cta__pr+.stnv2-cta{margin-top:0;display:flow-root}
.stnv2-cta__pr a,.stnv2-cta__note a{color:var(--stnv2-blue-press)}
.stnv2-cta__btn{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;max-width:360px;min-height:var(--stnv2-tap);padding:12px 20px;border:1px solid transparent;border-radius:var(--stnv2-pill);font-size:16px;font-weight:700;line-height:1.3;text-align:center;text-decoration:none;transition:background-color 160ms ease-out,border-color 160ms ease-out,color 160ms ease-out}
/* .stnv2-cta__btn scoped (not bare .stnv2-cta--primary/--secondary): money
   pages (v2-money-pages.php) also put these modifier classes on the plain
   .stnv2-cta wrapper div around a raw A8 CTA, purely so audit selectors can
   find "which CTA is primary/secondary" — that wrapper must not turn blue. */
.stnv2-cta__btn.stnv2-cta--primary{background:var(--stnv2-blue);border-color:var(--stnv2-blue);color:var(--stnv2-white)}
.stnv2-cta__btn.stnv2-cta--primary:hover,.stnv2-cta__btn.stnv2-cta--primary:active{background:var(--stnv2-blue-press);border-color:var(--stnv2-blue-press);color:var(--stnv2-white)}
.stnv2-cta__btn.stnv2-cta--secondary{background:var(--stnv2-white);border-color:var(--stnv2-blue-press);color:var(--stnv2-blue-press)}
.stnv2-cta__btn.stnv2-cta--secondary:hover,.stnv2-cta__btn.stnv2-cta--secondary:active{background:var(--stnv2-sky);color:var(--stnv2-blue-press)}
/* #compare(softbank-mnp-campaign ④, 段④T4c): raw A8 ad code ignores the class
   passed to stn_service_sumaho_norikae_cta(), so its <a> always renders with
   the sitewide primary-blue .affiliate-text-slot a rule. design-spec 3.5
   reserves primary(blue fill) for #apply's single CTA only; ④'s 4 CTAs must
   look secondary. Scoped to #compare so other pages keep the existing look. */
#compare .affiliate-text-slot a{background:var(--stnv2-white)!important;border:1px solid var(--stnv2-blue-press)!important;color:var(--stnv2-blue-press)!important;box-shadow:none!important}
#compare .affiliate-text-slot a:hover,#compare .affiliate-text-slot a:active{background:var(--stnv2-sky)!important;border-color:var(--stnv2-blue-press)!important;color:var(--stnv2-blue-press)!important}
.stnv2-cta--inline{display:inline-flex;align-items:center;min-height:var(--stnv2-tap);padding:0 4px;color:var(--stnv2-blue-press);font-weight:700;text-decoration:none}
.stnv2-cta--inline:hover,.stnv2-jump:hover{text-decoration:underline}
.stnv2-cta__note{margin:8px 0 0;font-size:14px;line-height:1.6;color:var(--stnv2-muted-strong)}
.stnv2-jump{position:relative;display:inline-flex;align-items:center;min-height:24px;color:var(--stnv2-blue-press);font-weight:700;text-decoration:none;white-space:nowrap}
.stnv2-jump::before{content:"";position:absolute;left:-4px;right:-4px;top:-12px;bottom:-12px}

/* 70 logs / sources / quote / glossary / term / trust / disclosure */
.stnv2-log{margin:0;padding:0;list-style:none}
.stnv2-log__row{display:grid;grid-template-columns:3.5em minmax(0,1fr);gap:0 10px;padding:6px 0;border-top:1px solid var(--stnv2-line);font-size:14px;line-height:1.6}
.stnv2-log__row:first-child{border-top:0}
.stnv2-log__date,.stnv2-log time{font-family:var(--stnv2-font-num);font-variant-numeric:tabular-nums;font-weight:700;color:var(--stnv2-navy);white-space:nowrap}
.stnv2-log__body{min-width:0}
.stnv2-log__body a,.stnv2-sources a{color:var(--stnv2-blue-press)}
.stnv2-log__summary,.stnv2-log__meta{margin:2px 0 0}
.stnv2-sources ul{margin:0;padding:0;list-style:none}
.stnv2-sources__row{padding:6px 0;border-top:1px solid var(--stnv2-line);font-size:14px;line-height:1.6}
.stnv2-sources__row:first-child{border-top:0}
.stnv2-sources time{font-family:var(--stnv2-font-num);font-variant-numeric:tabular-nums}
.stnv2-quote{margin:6px 0 0 8px;padding:2px 0 2px 10px;border-left:2px solid var(--stnv2-line);font-size:14px;line-height:1.6;color:var(--stnv2-muted-strong)}
.stnv2-glossary{margin:0}
.stnv2-glossary dt{margin:0;padding:6px 0 0;border-top:1px solid var(--stnv2-line);font-size:14px;font-weight:700;color:var(--stnv2-navy)}
.stnv2-glossary dd{margin:0 0 6px;font-size:14px;line-height:1.6}
.stnv2-term{color:inherit;text-decoration:underline dotted;text-decoration-thickness:1px;text-underline-offset:2px}
.stnv2-trust{margin:16px 0;padding:16px;border-radius:var(--stnv2-radius-card);background:var(--stnv2-cream);color:var(--stnv2-trust-ink);font-size:16px;line-height:1.7}
.stnv2-trust h2,.stnv2-trust h3,.stnv2-trust p{margin:0 0 6px;color:inherit}
.stnv2-trust a{color:var(--stnv2-blue-press)}
.stnv2-disclosure{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0;padding:8px 16px;border-bottom:1px solid var(--stnv2-line);background:var(--stnv2-white);font-size:13px;line-height:1.6;color:var(--stnv2-muted-strong)}
.stnv2-disclosure b{color:var(--stnv2-ink);font-weight:700}
.stnv2-disclosure a{color:var(--stnv2-blue-press)}
/* T4b: sitewide .affiliate-disclosure forces #64748b at high specificity
   (4.31:1 on sky, fails AA); override with muted-strong (5.44:1) here too. */
.stnv2-section--sky .affiliate-disclosure,.stnv2-section--sky .affiliate-disclosure__label,.stnv2-section--sky .affiliate-disclosure__link{color:var(--stnv2-muted-strong)!important}

/* 75 reference — stage⑤ /corrections/ /reference/ (v2-reference.css.txt merged) */
.stnv2-hublist{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:1fr;gap:8px}
.stnv2-hublist__item{padding:12px 14px;border:1px solid var(--stnv2-line);border-radius:var(--stnv2-radius-card);background:var(--stnv2-soft)}
.stnv2-hublist__link{display:flex;align-items:center;min-height:var(--stnv2-tap);font-size:14px;font-weight:700;color:var(--stnv2-navy);text-decoration:none}
.stnv2-hublist__summary{margin:2px 0 0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:14px;line-height:1.6;color:var(--stnv2-muted-strong)}
.stnv2-corrections-summary{margin:12px 0 0;text-align:left;white-space:normal;font-size:14px;font-weight:700;color:var(--stnv2-navy)}
.stnv2-log__month{margin:16px 0 6px;font-size:14px;font-weight:700;color:var(--stnv2-navy)}
.stnv2-kv--corrections>div:nth-child(3) dd{color:var(--stnv2-muted-strong)}
.stnv2-kv--corrections>div:nth-child(4) dd{color:var(--stnv2-ink);font-weight:700}
.stnv2-corrections-older summary,.stnv2-reference-upcoming summary{min-height:var(--stnv2-tap);padding:8px 0}
@media (min-width:768px){.stnv2-hublist{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 80 entries / steps / lists / faq / articles */
.stnv2-entries ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}
.stnv2-entries li{min-width:0;margin:0}
.stnv2-entry{display:flex;align-items:center;justify-content:center;gap:6px;box-sizing:border-box;min-height:48px;height:48px;padding:0 8px;border:1px solid var(--stnv2-line);border-radius:var(--stnv2-radius-card);background:var(--stnv2-sky);color:var(--stnv2-navy);text-decoration:none}
.stnv2-entry:hover{border-color:var(--stnv2-blue-press)}
.stnv2-entry::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--stnv2-blue)}
.stnv2-entry__title{font-size:12px;font-weight:700;line-height:1.25;text-align:left;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.stnv2-entry__sub{display:none;font-size:11px;line-height:1.3;color:var(--stnv2-muted-strong)}
.stnv2-entry__count{display:none;font-size:11px;font-weight:700;line-height:1.3;color:var(--stnv2-blue-press);text-align:center}
.stnv2-steps{margin:0 0 12px;padding:0;list-style:none;counter-reset:stnv2-step}
.stnv2-steps>li{position:relative;padding:0 0 14px 38px;font-size:16px;line-height:1.7;counter-increment:stnv2-step}
.stnv2-steps>li::before{content:counter(stnv2-step);position:absolute;left:0;top:1px;display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--stnv2-pill);background:var(--stnv2-navy);color:var(--stnv2-white);font-family:var(--stnv2-font-num);font-size:13px;font-weight:700;line-height:1}
.stnv2-steps small{display:block;font-size:14px;line-height:1.6;color:var(--stnv2-muted-strong)}
.stnv2-list{margin:0 0 12px;padding:0;list-style:none}
.stnv2-list>li{position:relative;padding:4px 0 4px 18px;font-size:16px;line-height:1.7}
.stnv2-list>li::before{content:"";position:absolute;left:4px;top:calc(.85em + 1px);width:6px;height:6px;border-radius:50%;background:var(--stnv2-navy)}
.stnv2-list--warn>li::before{background:var(--stnv2-amber)}
.stnv2-faq{margin:0;border-top:1px solid var(--stnv2-line)}
.stnv2-faq:last-of-type{border-bottom:1px solid var(--stnv2-line)}
.stnv2-faq summary{display:flex;align-items:center;gap:8px;min-height:var(--stnv2-tap);padding:8px 0;cursor:pointer;list-style:none;font-size:16px;font-weight:700;line-height:1.5;color:var(--stnv2-navy)}
.stnv2-faq summary::-webkit-details-marker{display:none}
.stnv2-faq summary::before{content:"Q";flex:none;font-size:12px;font-weight:700;color:var(--stnv2-blue-press)}
.stnv2-faq summary::after{content:"+";margin-left:auto;font-weight:400;color:var(--stnv2-muted-strong)}
.stnv2-faq[open] summary::after{content:"−"}
.stnv2-faq>div,.stnv2-faq>p{margin:0;padding:0 0 12px 22px;font-size:16px;line-height:1.7}
.stnv2-articles{margin:0;padding:0;list-style:none}
.stnv2-articles li{padding:4px 0;border-top:1px solid var(--stnv2-line);font-size:16px;line-height:1.6}
.stnv2-articles a{display:inline-flex;align-items:center;min-height:44px;color:var(--stnv2-blue-press);text-decoration:none}

/* 82 article template — stage⑦ (v2-articles.css.txt merged) */
.stnv2-verdict__confirm{margin:8px 0 0}
.stn-post-byline,.stn-post-byline-confirm{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 8px;vertical-align:top}
.stn-post-byline-confirm{margin:4px 0 0}
.stnv2-article-stale-note{display:inline-block;margin-top:2px;font-size:14px;font-weight:500;line-height:1.6;color:var(--stnv2-muted-strong);white-space:normal}
ul.stnv2-sources{margin:0;padding:0;list-style:none}
ul.stnv2-sources>li{padding:6px 0;border-top:1px solid var(--stnv2-line);font-size:14px;line-height:1.6}
ul.stnv2-sources>li:first-child{border-top:0}
ul.stnv2-sources a{color:var(--stnv2-blue-press)}

/* 90 a11y — focus ring, reduced motion, hidden, preview base (no existing-class overrides) */
.stnv2-scroll:focus-visible,[class*="stnv2-"] a:focus-visible,a[class*="stnv2-"]:focus-visible,[class*="stnv2-"] summary:focus-visible,[class*="stnv2-"] button:focus-visible{outline:2px solid var(--stnv2-blue);outline-offset:2px}
@media (prefers-reduced-motion:reduce){[class^="stnv2-"],[class*=" stnv2-"]{transition:none!important;animation:none!important}}
.stnv2-board [hidden],.stnv2-minicards [hidden],.stnv2-scrollnote[hidden]{display:none}
.stnv2-preview{margin:0;padding:0 0 40px;background:#fff;color:var(--stnv2-ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;-webkit-text-size-adjust:100%}
.stnv2-preview .stnv2-section{max-width:960px;margin:0 auto}
.stnv2-preview__head{padding:8px 16px}

/* 95 media */
/* 2026-09-24: 横スクロール表の左右は画面端から16px空ける(旧: -16px-8vw で画面端に接触)。
   本文の外側にはテーマの root padding(min(6.5rem,8vw)、390px で約31px)があるので、
   -8vw だけ外へ出すと section の padding 16px がそのまま画面端との余白になる。 */
@media (max-width:400px){.stnv2-scroll{width:calc(100% + 16vw);max-width:calc(100% + 16vw);margin:0 -8vw}.stnv2-rowlink span,.stnv2-num .stnv2-sub{-webkit-line-clamp:1}}
@media (max-width:359px){.stnv2-h1{font-size:22px}.stnv2-h2{font-size:19px}.stnv2-badge{font-size:12.5px}.stnv2-kv--verdict .stnv2-amount{font-size:20px}}
@media (max-width:340px){.stnv2-section{padding:16px 12px}.stnv2-scroll{width:calc(100% + 16vw - 8px);max-width:calc(100% + 16vw - 8px);margin:0 calc(4px - 8vw)}}
@media (min-width:600px){.stnv2-minicards{grid-template-columns:1fr 1fr}.stnv2-cta__btn{width:auto;min-width:280px}}
@media (min-width:782px){.stnv2-section{padding:24px 20px}.stnv2-plans{grid-template-columns:repeat(3,minmax(0,1fr))}.stnv2-wrap{max-width:220px}.stnv2-table--total th:nth-child(1){width:240px}.stnv2-table--total th:nth-child(2),.stnv2-table--total th:nth-child(3){width:110px}.stnv2-rowlink span::after{content:none}.stnv2-rowlink i{display:block}.stnv2-entry{flex-direction:column;gap:2px;min-height:72px;height:100%;padding:10px 8px}.stnv2-entry::before{width:22px;height:22px;border-radius:6px}.stnv2-entry__title{font-size:14px;text-align:center;-webkit-line-clamp:2}.stnv2-entry__sub,.stnv2-entry__count{display:block}.stnv2-entry__sub{font-size:12px}}
@media (min-width:1024px){.stnv2-section{padding:32px 24px}.stnv2-h1{font-size:30px}.stnv2-h2{font-size:24px}.stnv2-h3{font-size:19px}.stnv2-lead,.stnv2-p,.stnv2-list>li,.stnv2-steps>li{font-size:16px}.stnv2-table{font-size:14px}.stnv2-table thead th{font-size:13px}.stnv2-kv--verdict .stnv2-amount{font-size:26px}}
@media (hover:hover){.stnv2-table .stnv2-table__row:hover>*{background:var(--stnv2-soft)}}

/* 96 条件表(ディール表)— 2026-09-24 redesign(docs/site-redesign-2026-09-24/HANDOFF.md)。
   旧: ≤767px で1行=1枚のカード(1件≈500px)。新: 全幅で1件=1行。
   列 = キャリア / 実質いくら / いつまで / 誰が対象 / ボタン(v2-conditions.php
   stn_v2_conditions_table_row())。確認日列は廃止し、表の下の1行(.stnv2-board__confirm)に集約。
   ≥1024px は通常の表。≤1023px は行を flex の2段組にする: 1段目 = キャリア名+実額、
   (::before の幅100%要素で改行)、2段目 = 期限+対象。ボタンは行の右端に absolute で固定し、
   行の高さは中身で決まる(目安 60〜80px)。1段目に収まらない実額は自然に2段目へ回る。
   表はどの幅でも横スクロールしない(min-width なし)。 */
.stnv2-scroll--board,.stnv2-scroll:has(>.stnv2-table--board){overflow:visible;-webkit-mask-image:none;mask-image:none}
.stnv2-table--board{min-width:0;table-layout:auto}
.stnv2-table--board th:first-child,.stnv2-table--board td:first-child{position:static;box-shadow:none}
.stnv2-table--board tbody th{padding:10px 12px}
.stnv2-table--board th,.stnv2-table--board td{padding:10px 12px}
.stnv2-table--board thead th.stnv2-go{width:1%}
.stnv2-deal__brand{display:block;font-size:15px;font-weight:700;line-height:1.4;color:var(--stnv2-navy)}
.stnv2-deal__via{margin-left:2px;font-size:14px;font-weight:500;color:var(--stnv2-muted-strong)}
.stnv2-deal__campaign{display:block;font-size:15px;font-weight:700;line-height:1.4;color:var(--stnv2-navy);overflow-wrap:anywhere}
.stnv2-deal__title{display:block;margin-top:2px;font-size:14px;font-weight:400;line-height:1.5;color:var(--stnv2-muted-strong);overflow-wrap:anywhere}
.stnv2-table--board .stnv2-deal__amount{white-space:normal}
.stnv2-deal__amount .stnv2-amount{font-size:16px;white-space:normal;line-height:1.4}
.stnv2-deal__amount .stnv2-qual{font-size:14px;font-weight:700}
.stnv2-table--board .stnv2-deadline .stnv2-sub{font-size:14px;font-weight:500}
.stnv2-table--board .stnv2-deal__who{max-width:none;font-size:14px;line-height:1.5}
.stnv2-table--board td.stnv2-go{width:1%;white-space:nowrap;text-align:right}
/* .stnv2-go__btn は行ボタン。ホームでは stn_service_internal_cta_link() 由来の
   sn-btn-small/cta-button/cta-button--secondary も付き、サイト共通CSSの
   !important(背景・文字色・枠)が掛かる。形(幅・高さ・余白・改行)だけここで決め、
   色は secondary の白地+青枠に揃える(両方の出どころで見た目を同じにする)。 */
.stnv2-table--board td.stnv2-go .stnv2-go__btn{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:auto;min-width:48px;min-height:48px;margin:0;padding:6px 14px!important;border:1px solid var(--stnv2-blue)!important;border-radius:8px!important;background:var(--stnv2-white)!important;box-shadow:none!important;color:var(--stnv2-blue-press)!important;font-size:14px;font-weight:700;line-height:1.3;text-align:center;text-decoration:none;white-space:nowrap;word-break:keep-all;overflow-wrap:normal}
.stnv2-table--board td.stnv2-go .stnv2-go__btn:hover,.stnv2-table--board td.stnv2-go .stnv2-go__btn:active{background:var(--stnv2-sky)!important;color:var(--stnv2-blue-press)!important;filter:none}
.stnv2-go__label{display:block;word-break:keep-all;overflow-wrap:normal}
@media (min-width:1024px){.stnv2-table--board td.stnv2-go .stnv2-go__btn,.stnv2-go__label{white-space:nowrap!important}.stnv2-go__label wbr{display:none}.stnv2-deal__amount .stnv2-amount{white-space:nowrap}}
.stnv2-table__group--ending>th{color:var(--stnv2-amber-text)}
.stnv2-table__row--ending>*{background:var(--stnv2-warn-bg)}
.stnv2-board__confirm{margin:10px 0 0}
.stnv2-board__confirm time{white-space:nowrap}
.stnv2-board-more{display:none}
.stnv2-board-more>summary{display:flex;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:10px 12px;border:1px solid var(--stnv2-line);border-radius:var(--stnv2-radius-card);background:var(--stnv2-white);color:var(--stnv2-blue-press);font-size:14px;font-weight:700;line-height:1.3;cursor:pointer;list-style:none}
.stnv2-board-more>summary::-webkit-details-marker{display:none}
.stnv2-board-more[open]>summary{color:var(--stnv2-muted-strong)}
/* 98 折りたたみ。PHP(stn_v2_conditions_render_board())が先頭N件より後ろの行・区切り行に
   .stnv2-is-folded を付け、表の直後に <details class="stnv2-board-more"> を出す。
   閉じている間だけ隠す(:not([open]))ので、開いたときは各行が本来の display に戻る。
   :has() 非対応のブラウザでは「全件表示・トグル無し」に落ちる(行が消えたまま、にならない)。
   fold="N" 指定のホーム(.stnv2-board--fold-all)は全幅で、指定なし(旧仕様)は ≤767px だけ畳む。 */
.stnv2-board--fold-all:has(.stnv2-board-more) .stnv2-board-more{display:block;margin:10px 0 0}
.stnv2-board--fold-all:has(.stnv2-board-more:not([open])) :is(.stnv2-table--board,.stnv2-table--nested) tbody>tr.stnv2-is-folded{display:none}
@media (max-width:767px){
  .stnv2-board--home:has(.stnv2-board-more) .stnv2-board-more{display:block;margin:10px 0 0}
  .stnv2-board--home:has(.stnv2-board-more:not([open])) .stnv2-table--board tbody>tr.stnv2-is-folded{display:none}
}
/* 行の2段組は 1023px まで。768〜1023px は本文幅が約610〜820pxで、5列の表にすると
   キャリア名・対象が3〜4行に折れて1行が120px前後になるため(2026-09-24 プレビュー実測)。 */
@media (max-width:1023px){
  .stnv2-scroll--board,.stnv2-scroll:has(>.stnv2-table--board){width:auto;max-width:100%;margin:0;border:0;border-radius:0;background:transparent}
  :is(.stnv2-table--board,.stnv2-table--nested){display:block;width:100%;min-width:0;border-top:1px solid var(--stnv2-line)}
  :is(.stnv2-table--board,.stnv2-table--nested) thead{display:none}
  :is(.stnv2-table--board,.stnv2-table--nested) tbody{display:block}
  :is(.stnv2-table--board,.stnv2-table--nested) tbody>tr{display:block}
  :is(.stnv2-table--board,.stnv2-table--nested) tbody>tr>*{display:block;position:static;width:auto;box-shadow:none}
  .stnv2-table--board tbody>tr.stnv2-table__group>th{padding:10px 0 4px;border:0;background:transparent;white-space:normal}
  /* 2026-09-24 r4(実機で「見づらい」指摘、頭脳決定): 1行=2段だけ・行全体が1つのリンク。
     1段目 = キャリア名(16px 通常)+実額(20px 太字・右寄せ)、2段目 = 期限+対象(各15px 灰色、対象は1行で…)。
     行ボタンは廃止し、行内の唯一のリンク(.stnv2-go__btn)を行いっぱいに広げて右端に「›」だけ出す
     (計測属性はそのリンクのまま。高さ = 行の高さ ≥72px で ui-details 44px / cta 48px を満たす)。 */
  :is(.stnv2-table--board,.stnv2-table--nested) tbody>tr.stnv2-table__row{position:relative;display:flex;flex-wrap:wrap;align-items:baseline;align-content:center;column-gap:10px;row-gap:4px;box-sizing:border-box;min-height:72px;padding:14px 22px 14px 0;border-bottom:1px solid #e5e7eb}
  :is(.stnv2-table--board,.stnv2-table--nested) tbody>tr.stnv2-table__row::before{content:"";order:2;flex:0 0 100%;height:0}
  :is(.stnv2-table--board,.stnv2-table--nested) tbody>tr.stnv2-table__row>*{min-width:0;padding:0;border:0;background:transparent;text-align:left}
  .stnv2-table__row>.stnv2-deal__name{order:1;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .stnv2-table__row>.stnv2-deal__name .stnv2-deal__brand{display:inline;font-size:16px;font-weight:400;line-height:1.3;color:var(--stnv2-ink)}
  .stnv2-table__row .stnv2-deal__via,.stnv2-table__row .stnv2-deal__title{display:none}
  .stnv2-table__row>.stnv2-deal__amount{order:1;flex:0 0 auto;margin-left:auto;text-align:right}
  .stnv2-table__row>.stnv2-deal__amount .stnv2-amount{font-size:20px;font-weight:700;line-height:1.3;white-space:nowrap}
  .stnv2-table__row>.stnv2-deal__amount .stnv2-qual{font-size:15px}
  .stnv2-table__row>.stnv2-deadline{order:3;flex:0 0 auto;display:flex;align-items:center;gap:0 6px;white-space:nowrap;font-size:15px;line-height:1.5;color:var(--stnv2-muted-strong)}
  .stnv2-table__row>.stnv2-deadline .stnv2-sub{display:inline;margin:0;font-size:15px;font-weight:400;color:var(--stnv2-muted-strong)}
  /* 期限の枠バッジは全廃。残り7日以内(--danger)だけ橙のバッジ、「公式サイトで確認」は出さない。 */
  .stnv2-table__row>.stnv2-deadline .stnv2-badge{min-height:0;padding:0;border:0;border-radius:0;background:none;font-size:15px;font-weight:400;line-height:1.5;color:var(--stnv2-muted-strong)}
  .stnv2-table__row>.stnv2-deadline .stnv2-badge--danger{padding:1px 8px;border-radius:var(--stnv2-pill);background:var(--stnv2-amber-bg);color:var(--stnv2-amber-text);font-weight:700}
  .stnv2-table__row>.stnv2-deadline:has(.stnv2-badge--unknown){display:none}
  .stnv2-table__row>.stnv2-deal__who{order:3;flex:1 1 0;display:block;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:15px;line-height:1.5;color:var(--stnv2-muted-strong)}
  .stnv2-table__row>.stnv2-deal__who .stnv2-audience summary{min-height:0}
  .stnv2-table__row>td.stnv2-go{display:contents}
  .stnv2-table--board td.stnv2-go .stnv2-go__btn{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;align-items:center;justify-content:flex-end;box-sizing:border-box;width:auto;min-width:0;min-height:0;margin:0;padding:0 2px 0 0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#9ca3af!important;text-decoration:none}
  .stnv2-table--board td.stnv2-go .stnv2-go__btn:hover,.stnv2-table--board td.stnv2-go .stnv2-go__btn:active{background:rgba(11,115,217,.05)!important}
  .stnv2-table--board td.stnv2-go .stnv2-go__btn:focus-visible{outline:2px solid var(--stnv2-blue);outline-offset:-2px}
  .stnv2-table__row .stnv2-go__label{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  .stnv2-table__row .stnv2-go__chev{display:block;font-size:24px;font-weight:400;line-height:1}
  /* name_mode="title"(収益ページ): 行リンクは無い(同じページ内)。1段目左 = title_short(16px、2行まで省略なし)。 */
  .stnv2-board--title :is(.stnv2-table--board,.stnv2-table--nested) tbody>tr.stnv2-table__row{align-items:flex-start;padding:12px 0}
  .stnv2-board--title .stnv2-table__row>.stnv2-deal__name{flex:1 1 0;display:block;min-width:0;overflow:visible;white-space:normal;text-overflow:clip}
  .stnv2-board--title .stnv2-deal__campaign{font-size:16px;font-weight:400;line-height:1.4;color:var(--stnv2-ink)}
  /* 今月で終わる行も同じ2段。色の帯は左の余白へ 10px はみ出させ、左の縦線は 4px。 */
  .stnv2-table__row--ending{margin-left:-10px;padding-left:10px!important;background:var(--stnv2-warn-bg);box-shadow:inset 4px 0 0 var(--stnv2-amber)}
  .stnv2-table__row--ending>*{background:transparent}
  .stnv2-table--board tbody>tr.stnv2-table__group>th{padding:24px 0 6px!important;font-size:18px;font-weight:700;line-height:1.4}
  .stnv2-table--board tbody>tr.stnv2-table__group:first-child>th{padding-top:8px!important}
  .stnv2-table--board tbody>tr.stnv2-table__group>th small{font-size:15px;font-weight:400}
  :is(.stnv2-table--board,.stnv2-table--nested) tbody>tr.stnv2-table__row.stnv2-table__row{border-bottom-color:#e5e7eb}
  :is(.stnv2-table--board,.stnv2-table--nested){border-top-color:#e5e7eb}
  .stnv2-board__confirm{font-size:15px;line-height:1.6}
  .stnv2-board-more>summary{font-size:15px}
  :is(.stnv2-table--board,.stnv2-table--nested) tbody>tr.stnv2-table__cta,:is(.stnv2-table--board,.stnv2-table--nested) tbody>tr.stnv2-table__more,:is(.stnv2-table--board,.stnv2-table--nested) tbody>tr.stnv2-empty{padding:8px 0;border-bottom:1px solid var(--stnv2-line)}
  :is(.stnv2-table--board,.stnv2-table--nested) tbody>tr.stnv2-table__cta{padding:20px 0;border-bottom-color:#e5e7eb}
  :is(.stnv2-table--board,.stnv2-table--nested) tbody>tr.stnv2-table__cta>td,:is(.stnv2-table--board,.stnv2-table--nested) tbody>tr.stnv2-table__more>td,:is(.stnv2-table--board,.stnv2-table--nested) tbody>tr.stnv2-empty>td{padding:0;border:0}
  /* ホームの左右余白は「100 左端の統一」(body.stn-edge20)で決める。2026-09-25 v3c で、
     root padding(8vw)を負の margin で打ち消して section の padding 16px で使う方式をやめた
     (ヘッダー 51px・パンくず 35px・本文 16px と左端が3通りにずれていた)。
     パンくずは「ホーム」1件だけなので出さない。 */
  .stn-breadcrumbs:has(+.stn-r2-page--home){display:none!important}
  .stn-breadcrumbs:has(+.stn-r2-page--home)+.stn-r2-page--home{margin-top:0!important}
}

/* 320〜359px: 実額 20px だと「ワイモバイル 手数料3,850円無料」等が1段目に収まらないので 18px に。
   H1 26px は「乗り換えキャンペーン一覧」が2行に折れるので 23px。 */
@media (max-width:359px){
  .stnv2-table__row>.stnv2-deal__amount .stnv2-amount{font-size:18px}
  /* 収益ページ(name_mode="title")は、実額と並べると title_short が2行に折れて行が100pxになり、
     楽天 #android・SB #device-sale の着地点から CTA が1画面に入らない(320×568 実測 568/504px)。
     320〜359px だけ1段目を名前(全幅)、2段目を 実額+期限+対象 にする。 */
  .stnv2-board--title :is(.stnv2-table--board,.stnv2-table--nested) tbody>tr.stnv2-table__row{align-items:baseline;padding:10px 0}
  .stnv2-board--title .stnv2-table__row>.stnv2-deal__name{flex:0 0 100%}
  .stnv2-board--title .stnv2-table__row>.stnv2-deal__amount{order:3;margin-left:0;text-align:left}
}
@media (min-width:1024px){.stnv2-go__chev{display:none}}

/* 99 トップ(2026-09-24): H1 → 条件表 → Primary CTA → 新着記事 */
.stnv2-deal{padding-top:16px}
/* サイト共通の .wp-site-blocks h1{font-size:clamp(26px,3.5vw,34px)!important} を上書きして、
   「乗り換えキャンペーン一覧」を 320px でも1行に収める。月は2行目に小さく。 */
.wp-site-blocks h1.stnv2-deal__h1{margin:0 0 8px;font-size:clamp(22px,6.6vw,30px)!important;line-height:1.3!important}
.stnv2-deal__month{display:block;margin-top:2px;font-size:15px;font-weight:700;line-height:1.4;color:var(--stnv2-muted-strong)}
.stnv2-deal__lead{margin:4px 0 12px;font-size:17px;line-height:1.6;color:var(--stnv2-ink)}
@media (max-width:1023px){
  .wp-site-blocks h1.stnv2-deal__h1{font-size:26px!important}
  #home-recent-posts .stnv2-h2{margin-top:4px;font-size:18px;font-weight:700}
  #home-recent-posts{padding-top:24px}
  .stnv2-home-next{padding-top:20px;padding-bottom:20px}
}
@media (max-width:359px){.wp-site-blocks h1.stnv2-deal__h1{font-size:23px!important}}
.stnv2-home-next{padding-top:4px;border-top:0}
.stnv2-home-next .stnv2-cta{margin:0}
.stnv2-home-next__alt{margin:8px 0 0;text-align:center}
.stnv2-home-next__alt .stnv2-jump{min-height:48px;padding:0 4px;font-size:16px;white-space:normal}
.stnv2-home-next__alt .stnv2-jump::before{content:none}

/* 灰色の空白帯(MAP.md §3「カード上の灰色帯」): 本体PHPのインライン CSS
   (stn-monetization-flow-styles の Editorial polish ブロック)にある
   .sn-section:nth-of-type(even){background:#f8fafc} が、同じ CSS の先に書かれた
   @media (max-width:768px){.sn-section:nth-of-type(even){background:#fff}} を後勝ちで
   打ち消している。偶数番目の .sn-section が灰色になり、白いカードの上下に
   padding(34px)分の灰色帯が出る。本来の意図(モバイルは白)に戻す。v2.css はその
   インライン CSS より前に読み込まれるので、詳細度を1段上げて勝たせる。 */
@media (max-width:768px){.wp-site-blocks .sn-section:nth-of-type(even){background:#fff}}

/* 2026-09-20 site-improvement wave2 item 12 (W19 verification): the home
   board's rakuten render_a8_ad banner/text CTA (B7) overflowed the 320-430px
   viewport right edge because the ASP-provided banner <img> has no intrinsic
   responsive sizing and the surrounding wrap had no box-sizing/overflow-wrap
   guard. Scoped to #home-board so no other page's affiliate slot changes. */
#home-board .affiliate-ad-slot,#home-board .affiliate-text-slot-wrap,#home-board .affiliate-text-slot{max-width:100%;box-sizing:border-box;overflow-wrap:anywhere}
#home-board .affiliate-ad-slot img:not([width="1"]),#home-board .affiliate-text-slot img:not([width="1"]){width:100%;height:auto;max-width:100%}

/* 2026-09-20 site-improvement wave2 item 13 (W19 verification, AGENTS.md "1
   セクションにPrimary CTAを複数置かない"): #campaign-matrix ("いま動ける
   キャンペーン一覧") renders up to 5 rows' A8 CTAs simultaneously at >=820px
   (desktop table) and each render_a8_ad() text-link slot uses the site-wide
   .affiliate-text-slot a "primary" red-gradient button look. Demoted to a
   secondary/text-link look here only, scoped to this section; href/id1 are
   untouched (CSS-only). The per-row internal "次に見る" sn-btn-small link is
   unaffected. */
#campaign-matrix .affiliate-text-slot-wrap{max-width:none;margin:6px 0 0}
#campaign-matrix .affiliate-text-slot a{background:#fff!important;background-image:none!important;color:#0b73d9!important;border:1px solid #0b73d9!important;box-shadow:none!important;font-weight:700}
#campaign-matrix .affiliate-text-slot a:hover,#campaign-matrix .affiliate-text-slot a:active{background:#eaf3fc!important;color:#085aa9!important;border-color:#085aa9!important}

/* 100 左端の統一(2026-09-25 v3c、実機 iPhone 17 Pro Max で「タイトルが左に寄りきれていない」)。
   旧: 本文の外側はテーマの root padding(min(6.5rem,8vw)、440px で35px)、ヘッダーはその内側に
   さらに12px(.sn-header-inner の width:min(100% - 24px,…))、トップと収益ページの section は
   負の margin で root padding を打ち消して padding 16px → ロゴ 47px・パンくず 35px・H1 16px。
   新: トップと収益2ページ(PHP の stn_r2_body_classes() が body.stn-edge20 を付ける)だけ、
   1023px 以下で root padding 自体を 20px(320〜359px は16px)にし、ヘッダー内側の12pxと
   section の左右 padding を0にする。ヘッダー・パンくず・本文・表・CTA の左端が同じ x になる。
   ヘッダーには本体のインライン CSS に .sn-site-header{padding-left/right:12px!important}
   (狭い幅)があるので、同じ !important で root padding に戻す。
   1024px 以上も section の左右 padding を0にして、ヘッダー・パンくずの左端(1440px で140px)と揃える。 */
body.stn-edge20 .stnv2-section:not(.stnv2-section--sky):not(.stnv2-section--soft):not(.stnv2-section--cream),body.stn-edge20 .stn-r2-page--home>.stnv2-disclosure{padding-left:0;padding-right:0}
/* ヘッダー下〜パンくずの空き: 旧 = main の block gap 19.2px + パンくずのインライン margin-top 18px = 約37px。
   16px にする(main 側の 16px だけ残し、パンくずのインライン margin-top は !important で0)。 */
body.stn-edge20 .wp-site-blocks>main{margin-top:16px}
body.stn-edge20 .stn-breadcrumbs{margin-top:0!important}
@media (max-width:1023px){
  body.stn-edge20{--wp--style--root--padding-left:20px;--wp--style--root--padding-right:20px}
  body.stn-edge20 .sn-site-header{padding-left:var(--wp--style--root--padding-left)!important;padding-right:var(--wp--style--root--padding-right)!important}
  body.stn-edge20 .sn-site-header .sn-header-inner{width:100%;max-width:100%}
  body.stn-edge20 .stnv2-scroll:not(.stnv2-scroll--board){width:auto;max-width:100%;margin-left:0;margin-right:0}
}
@media (max-width:359px){
  body.stn-edge20{--wp--style--root--padding-left:16px;--wp--style--root--padding-right:16px}
}

/* 101 ヒーロー画像(ショートコード stn_v2_hero、H1+リード文/3行まとめの直下)。16:9・角丸12px。
   393px 幅で高さ 199px(上限 220px、超える幅では object-fit:cover で上下を切る)。
   画像が読めないあいだは灰色の面だけが見える。 */
.stnv2-hero{box-sizing:border-box;width:100%;margin:12px 0 8px;padding:0;overflow:hidden;aspect-ratio:16/9;max-height:220px;border-radius:12px;background:#e5e9ef}
.stnv2-hero img{display:block;width:100%;height:100%;object-fit:cover;border-radius:12px}
@media (min-width:600px){.stnv2-hero{max-width:560px;max-height:none}}

/* 102 左端の統一を全個別ページへ(2026-09-25 v3d、ユーザー「記事もチェックした?」)。
   PHP の stn_r2_body_classes() が記事・キャリア詳細・情報ページ・固定ページ全部に body.stn-edge20 を
   付ける(上の「100」がそのまま効く)。ここは redesign-stage.css の r2 部品の幅だけを直す:
   旧 = 全幅の帯(.stn-r2-hero / .stn-r2-band、100vw)の中身と本文内の部品を width:calc(100% - 32px)
   で中央寄せ → 本文より16px内側(440px の /ahamo/ で H1 16px・表 36px・パンくず 35px)。
   新 = 全幅の帯の中身は左右 root padding(20px/16px)分だけ内側、本文内の部品は幅100%。
   本文内の .stn-r2-section(背景色つきの帯)は root padding 分だけ外へ広げて、文字は本文と同じ x。 */
@media (max-width:1023px){
  body.stn-edge20 :is(.stn-r2-hero,.stn-r2-band)>:is(.stn-r2-hero__inner,.stn-r2-shell){width:calc(100% - var(--wp--style--root--padding-left) - var(--wp--style--root--padding-right));max-width:none}
  body.stn-edge20 :is(.stn-r2-service-detail,.stn-r2-page>.stn-r2-shell,.stn-r2-page>.stn-r2-disclosure){width:100%;max-width:none;margin-left:0;margin-right:0}
  body.stn-edge20 .stn-r2-page>.stn-r2-section{width:auto;max-width:none;margin-left:calc(-1 * var(--wp--style--root--padding-left));margin-right:calc(-1 * var(--wp--style--root--padding-right));padding-left:var(--wp--style--root--padding-left);padding-right:var(--wp--style--root--padding-right)}
  body.stn-edge20 .stnv2-cta__btn{width:100%;max-width:none}
  /* 背景色つきの section(--sky/--soft/--cream)は画面端まで広げ、文字は root padding の位置(本文と同じ x) */
  /* 本文(.is-layout-constrained)直下だと WP の margin-left/right:auto!important と max-width が掛かるので !important */
  body.stn-edge20 :is(.stnv2-section--sky,.stnv2-section--soft,.stnv2-section--cream){width:auto!important;max-width:none!important;margin-left:calc(-1 * var(--wp--style--root--padding-left))!important;margin-right:calc(-1 * var(--wp--style--root--padding-right))!important;padding-left:var(--wp--style--root--padding-left);padding-right:var(--wp--style--root--padding-right)}
  body.stn-edge20 .alignfull.stn-flow-hero{padding-left:var(--wp--style--root--padding-left)!important;padding-right:var(--wp--style--root--padding-right)!important}
  /* 情報ページ(/mnp/ 等)の見出し帯 .sn-page-hero(alignfull・背景色つき)は本文幅に収まっていて、文字が背景の端に接していた */
  body.stn-edge20 .alignfull.sn-page-hero{width:auto!important;max-width:none!important;margin-left:calc(-1 * var(--wp--style--root--padding-left))!important;margin-right:calc(-1 * var(--wp--style--root--padding-right))!important;padding-left:var(--wp--style--root--padding-left)!important;padding-right:var(--wp--style--root--padding-right)!important}
  body.stn-edge20 main .affiliate-disclosure{justify-content:flex-start;text-align:left}
  body.stn-edge20 :is(.stnv2-disclosure,.stn-r2-disclosure){justify-content:flex-start;text-align:left;padding-left:0;padding-right:0}
  body.stn-edge20 main :is(.stnv2-eyebrow,.stn-r2-eyebrow,.sn-eyebrow){font-size:14px}
}
/* 記事: テーマの .sn-single-title / .sn-single-meta は width:min(860px,100vw - 32px) の中央寄せで、
   スマホでは本文(100vw - 40px)より8px広く、1440px では H1 だけ 290px(本文とヘッダーは140px)にずれる。
   本文と同じ幅にする。 */
body.stn-edge20 :is(.sn-single-title,.sn-single-meta){width:auto;max-width:100%}
@media (min-width:1024px){body.stn-edge20 :is(.sn-single-title,.sn-single-meta){max-width:min(1160px,100%);margin-left:auto;margin-right:auto}}

/* 103 記事(投稿)の読みやすさ(2026-09-25 v3d)。本文17px・行間1.7、注記14px以上、
   「この記事の結論」も本文と同じ17px。ヘッダー下〜H1 は16px(main の margin だけ)。
   日付はバイライン1行(PHP)に統合し、テンプレートの post-date の空き枠は畳む。 */
body.single-post .sn-single-title{margin-top:0}
body.single-post .sn-single-meta:not(:has(*)){display:none}
body.single-post .wp-block-post-content :is(p,li){font-size:17px;line-height:1.7}
body.single-post .wp-block-post-content :is(td,th){font-size:15px;line-height:1.6}
body.single-post .wp-block-post-content .stnv2-verdict :is(p,li,dd):not(.stnv2-eyebrow){font-size:17px;line-height:1.7}
body.single-post .wp-block-post-content :is(.sn-note,.stn-post-byline,.stnv2-eyebrow,.sn-eyebrow,.stnv2-sub,.stnv2-meta,small,figcaption){font-size:14px;line-height:1.6}
body.single-post .stn-post-byline{margin:0 0 8px;color:var(--stnv2-muted-strong)}
body.single-post .stn-post-byline time{font-family:inherit;font-variant-numeric:tabular-nums}
body.single-post .sn-pr-note{font-size:14px;line-height:1.6}
body.single-post main .sn-eyebrow,body.single-post main .stnv2-badge{font-size:14px!important}
body.single-post main .wp-block-button__link{font-size:15px!important}
@media (max-width:1023px){
  body.single-post .wp-site-blocks .sn-single-title h1{font-size:24px!important;line-height:1.4!important}
}
@media (max-width:359px){
  body.single-post .wp-site-blocks .sn-single-title h1{font-size:22px!important}
}
/* 目次: <details>「目次(N件)」の中に見出しを省略なしの縦リスト(v2-articles.php stn_v2_article_toc_filter())。 */
.stnv2-toc__box{margin:0;border:1px solid var(--stnv2-line);border-radius:var(--stnv2-radius-card);background:var(--stnv2-soft)}
.stnv2-toc__box>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:48px;padding:10px 14px;cursor:pointer;list-style:none;color:var(--stnv2-navy);font-size:16px;font-weight:700;line-height:1.4}
.stnv2-toc__box>summary::-webkit-details-marker{display:none}
.stnv2-toc__box>summary::after{content:"+";flex:none;font-size:20px;font-weight:400;line-height:1;color:var(--stnv2-blue-press)}
.stnv2-toc__box[open]>summary::after{content:"−"}
.stnv2-toc .stnv2-toc__list{display:block;margin:0;padding:0 14px 12px 2.2em;list-style:decimal}
.stnv2-toc .stnv2-toc__list>li{margin:0;padding:0;font-size:16px;line-height:1.5}
.stnv2-toc .stnv2-toc__list a{display:block;min-height:0;padding:8px 0;border:0;border-radius:0;background:none;color:var(--stnv2-blue-press);font-size:16px;font-weight:600;line-height:1.5;text-decoration:none;white-space:normal}
.stnv2-toc .stnv2-toc__list a::before{content:none}
.stnv2-toc .stnv2-toc__list a:hover{text-decoration:underline}
/* キャリア詳細の結論の「実額」が1行固定で画面外へはみ出していた(v3d 以前から。440px の /ahamo/) */
@media (max-width:1023px){
  body.stn-edge20 .stnv2-kv dd,body.stn-edge20 .stnv2-kv dd .stnv2-amount{white-space:normal;overflow-wrap:anywhere}
}

/* 104 スマホ可読性スイープ r1(2026-09-26、ユーザー「スマホで文字がごちゃごちゃ・配置がおかしいページがある」)。
   全公開ページを 393px で撮影・計測して見つけた共通の原因だけを直す(sweep/r1)。文字は 本文16〜17 / 注記14 / 見出し20〜26 の4種に寄せる。
   ・運営側の状態「再確認待ち」は読者に見せない(行の stale 判定と data 属性は PHP 側で維持)。 */
.stnv2-badge--stale{display:none!important}
@media (max-width:1023px){
  /* 結論まとめ(キャリア詳細 /ahamo/ 等・/hikari/): 旧 = ラベル左・値右寄せの2列で、長い値が右寄せのまま3〜4行に折れていた。
     新 = ラベルを上、値を下の左揃え。値は16px(実額は18px太字)、補足は15px。期限の「終了日未定」等の枠バッジは本文と重複するので出さない(残り日数の橙だけ残す)。 */
  body.stn-edge20 .stnv2-kv--verdict>div{display:block;min-height:0;padding:10px 0}
  body.stn-edge20 .stnv2-kv--verdict dt{margin:0 0 2px;font-size:14px;line-height:1.5}
  body.stn-edge20 .stnv2-kv--verdict dd{text-align:left;font-size:16px;line-height:1.6}
  body.stn-edge20 .stnv2-kv--verdict dd.stnv2-kv__text{font-weight:400}
  body.stn-edge20 .stnv2-kv--verdict dd.stnv2-amount,body.stn-edge20 .stnv2-kv--verdict dd .stnv2-amount{font-size:18px;line-height:1.5}
  body.stn-edge20 .stnv2-kv--verdict dd .stnv2-sub{display:block;max-width:none;-webkit-line-clamp:unset;overflow:visible;margin:2px 0 0;font-family:inherit;font-size:15px;font-weight:400;line-height:1.6;color:var(--stnv2-muted-strong)}
  body.stn-edge20 .stnv2-kv--verdict .stnv2-badge--muted{display:none}
  body.stn-edge20 .stnv2-kv--verdict .stnv2-badge--danger{margin-right:6px}
  body.stn-edge20 .stnv2-kv--verdict .stnv2-badge--confirm{padding:0;border:0;background:none;color:var(--stnv2-muted-strong);font-size:15px;font-weight:400}
  body.stn-edge20 .stnv2-verdict>h2.stnv2-h1{font-size:21px;line-height:1.45}
  /* 結論下の区画チップ(7〜8個の枠つきピル)は、枠と背景を外して文字リンクの並びに。押せる高さは ::before の上下6pxで確保 */
  body.stn-edge20 .stnv2-verdict .stnv2-toc ul{gap:4px 18px}
  body.stn-edge20 .stnv2-verdict .stnv2-toc a{min-height:36px;padding:0;border:0;background:none;font-size:15px;font-weight:600;text-decoration:underline;text-underline-offset:3px}
  /* キャリア詳細の本文: 手順・補足・凡例の14pxを本文寄りに */
  body.stn-edge20 .stnv2-steps p{font-size:16px;line-height:1.7}
  body.stn-edge20 main :is(p.stnv2-sub,p.stnv2-legend,p.stnv2-callout,.stnv2-callout>span){font-size:15px;line-height:1.65}
  body.stn-edge20 .stn-r2-hero__lead{font-size:16px!important;line-height:1.7}
  body.stn-edge20 main :is(.stnv2-list--warn,.stnv2-list)>li{font-size:16px;line-height:1.7}

  /* 情報ページ(/mnp/ /price-review/ /review/ /iphone-norikae/ /android-norikae/)の見出し直下の案内箱:
     旧 = 枠つき箱に見出しピル+説明文+ボタン2〜3本がリード文より先に出て、本文の左端が箱の内側(39px)にずれていた。
     新 = 箱を外し(PHP 側でリード文と PR の後ろへ移動)、先頭だけ塗りボタン、残りは文字リンク。説明文とピルは出さない。 */
  body.stn-edge20 .stn-flow-cta--top{margin:16px 0 0!important;padding:0!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important}
  body.stn-edge20 .stn-flow-cta--top>div:first-child{display:none}
  body.stn-edge20 .stn-flow-cta--top .stn-flow-cta__links{margin-top:0;gap:0}
  body.stn-edge20 .stn-flow-cta--top .stn-flow-cta__links a.stn-flow-cta__secondary{min-height:48px;padding:8px 0!important;border:0!important;background:none!important;color:var(--stnv2-blue-press,#085aa9)!important;font-size:16px;font-weight:600!important;text-decoration:underline;text-underline-offset:3px}
  /* 同じ節に塗りボタンが2本並んでいた(/mnp/ の5ステップ下など): 2本目以降は枠線ボタンに */
  body.stn-edge20 .stn-visual-cta a.stn-visual-cta-link+a.stn-visual-cta-link{border:1px solid var(--stn-blue,#0b73d9)!important;background:#fff!important;color:var(--stn-blue,#0b73d9)!important}
  /* 見出し帯の分類ピル(「MNP手続き」等)は H1 と同じことを言っているので、枠を外して小見出しの文字だけに */
  body.stn-edge20 .sn-page-hero .sn-eyebrow,body.stn-edge20 .stn-flow-hero__inner>.sn-eyebrow{display:block!important;width:auto;margin:0 0 6px!important;padding:0!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;color:var(--stnv2-muted-strong,#475569)!important;font-size:14px!important;font-weight:700!important;text-align:left}
  body.stn-edge20 .sn-page-hero .sn-page-lead,body.stn-edge20 .stn-flow-hero__inner>.sn-page-lead{font-size:16px!important;line-height:1.75!important}
  /* 見出し帯の H1(/sumaho-norikae-com/ 等、30字前後の問いかけ型)は 27px で4行に折れていた → 24px */
  body.stn-edge20 .stn-flow-hero__inner>h1,body.stn-edge20 .stn-outage-hero__inner>h1{font-size:24px!important;line-height:1.4!important}

  /* 13px 以下の地の文(計測で main 内 14px 未満が 30〜90 要素あったもの)を 14〜16px へ */
  body.stn-edge20 .stn-breadcrumbs{font-size:14px!important}
  body.stn-edge20 main :is(.affiliate-disclosure,.affiliate-disclosure>span,.affiliate-disclosure__link,.affiliate-disclosure__label,.stnv2-disclosure>span,.stnv2-disclosure a){font-size:14px!important}
  body.stn-edge20 main :is(.sn-check-list>li,.sn-guide-step>p,.stn-r2-beginner-step>p,.stn-slide-card__body>p,.stn-r2-section__head>p:not(.stn-r2-eyebrow):not(.stn-comparison-basis)){font-size:15px!important;line-height:1.7}
  body.stn-edge20 main :is(.sn-note,.sn-note a,.stn-comparison-basis,.stn-comparison-basis a,.stn-task15-context-links,.stn-task15-context-links a,figcaption,.stn-cta-assurance>span,.stnv2-sources>p,.stnv2-sources a,.stnv2-badge,.stnv2-chip,.stnv2-unit:not(:is(.stnv3-summary__value,.stnv2-deal__amount,.stnv2-kv--verdict .stnv2-amount,.stnv7-fact) *),.stn-service-card__row dt,.stn-service-card__date,.stn-table-card__row dt,.stn-r2-featured-offer__label,.stn-r2-filters button,.stn-visual-item__step,.stnv2-tag){font-size:14px!important;line-height:1.6}
  body.stn-edge20 main .affiliate-text-slot__label{font-size:13px!important}
  body.stn-edge20 main :is(.stn-r2-decision-list strong,.stn-r2-decision-list small,.stn-r2-service-row small,.stn-r2-service-row small span,.stn-r2-service-row strong){font-size:14px!important;line-height:1.45}
  body.stn-edge20 main .stn-r2-decision-list strong{font-size:15px!important}
  body.stn-edge20 main :is(.sn-card>p,.sn-card-pad>p,article.stn-r2-service-block>p){font-size:15px;line-height:1.7}
  body.stn-edge20 main .stn-task15-context-links{margin-top:10px}

  /* 公式確認日の中央寄せピル(/sumaho-norikae-com/ /docomo-online-shop/ /tsushin-shogai-check/)は上の見出し帯ピルと同じ扱い。
     /tsushin-shogai-check/ の見出し帯は外側と内側の両方が左右に余白を持ち、本文より16px内側だった */
  body.stn-edge20 .alignfull.stn-outage-hero{width:auto!important;max-width:none!important;margin-left:calc(-1 * var(--wp--style--root--padding-left))!important;margin-right:calc(-1 * var(--wp--style--root--padding-right))!important;padding-left:var(--wp--style--root--padding-left)!important;padding-right:var(--wp--style--root--padding-right)!important}
  body.stn-edge20 .stn-outage-hero__inner{padding-left:0!important;padding-right:0!important}
  body.stn-edge20 .stn-outage-hero__inner>.sn-eyebrow{display:block!important;margin:0 0 6px!important;padding:0!important;border:0!important;background:none!important;color:var(--stnv2-muted-strong,#475569)!important;font-size:14px!important;font-weight:700!important;text-align:left}

  /* 記事: 「この記事の結論」を地の文と区別できる囲みに(本文は投稿 DB のまま、見た目だけ)。末尾ボタンは本文幅いっぱいに */
  body.single-post .wp-block-post-content .stnv2-verdict--article{margin:12px 0 16px;padding:14px 16px 12px;border:0;border-left:4px solid var(--stnv2-blue-press,#085aa9);border-radius:0 10px 10px 0;background:var(--stnv2-sky,#eef6fd)}
  body.single-post .wp-block-post-content .stnv2-verdict--article :is(p,li):not(.stnv2-eyebrow){font-size:16px;line-height:1.75}
  body.single-post .wp-block-post-content .stnv2-verdict--article p+p{margin-top:10px}
  body.single-post .wp-block-post-content .stnv2-verdict--article .stnv2-eyebrow{margin:0 0 6px;font-size:15px!important;color:var(--stnv2-blue-press,#085aa9)}
  body.single-post .wp-block-post-content .stnv2-verdict__confirm .stnv2-badge--confirm{padding:0;border:0;background:none;color:var(--stnv2-muted-strong,#475569);font-weight:400}
  body.single-post main .wp-block-buttons{width:100%}
  body.single-post main .wp-block-buttons>.wp-block-button{width:100%}
  body.single-post main .wp-block-buttons .wp-block-button__link{box-sizing:border-box;width:100%}

  /* 見出しとボタンの折り返し: 末尾1文字だけの行(「す」「る」)を作らない(text-wrap:pretty。balance は日本語だと「を、」始まり等の不自然な位置で割るので使わない) */
  body.stn-edge20 main :is(h1,h2,h3,.sn-btn-small,.stnv2-cta__btn,.stn-r2-primary,.affiliate-text-slot a,.wp-block-button__link,.stn-flow-cta__links a){text-wrap:pretty}
  /* /sim-device-sale/ の買い方3択: 3列だと「分割で手元に残/す」「返却して負担を/抑える」と折れていた → 1列の行に */
  body.stn-edge20 .stn-r2-page--device .stn-r2-hero .stn-r2-decision-list{display:grid;grid-template-columns:1fr;gap:8px}
  body.stn-edge20 .stn-r2-page--device .stn-r2-hero .stn-r2-decision-list li+li{margin:0;border:0}
  body.stn-edge20 .stn-r2-page--device .stn-r2-hero .stn-r2-decision-list a{min-height:48px;justify-content:flex-start;text-align:left}
  /* /hikari/ の実額: 数値の後ろの補足(/月/回線…)が右寄せのまま折れていた */
  body.stn-edge20 .stnv2-kv--verdict dd,body.stn-edge20 .stnv2-kv--verdict dd *{text-align:left!important}
  /* 情報ページの見出し帯の下余白(次の見出しまで約100px)を詰める */
  body.stn-edge20 .alignfull.sn-page-hero{padding-bottom:24px!important}
  body.stn-edge20 .stn-outage-section{padding-left:0!important;padding-right:0!important}
  /* 一覧ページ(/category/…): 見出しの斜体・13px の抜粋・3〜4行に折れる記事タイトルを本文の型に */
  body.archive.stn-edge20 .wp-block-query-title{font-style:normal;font-size:24px!important;line-height:1.4}
  body.archive.stn-edge20 .wp-block-query-title *{font-style:normal}
  body.archive.stn-edge20 main .wp-block-post-title{font-size:18px!important;line-height:1.5!important;padding-left:0!important;border-left:0!important}
  body.archive.stn-edge20 main .wp-block-post-title::before{content:none!important;display:none!important}
  body.archive.stn-edge20 main .wp-block-post-excerpt__excerpt{font-size:15px!important;line-height:1.7}
  body.archive.stn-edge20 main :is(.wp-block-post-date,.wp-block-post-date time,.wp-block-post-terms,.wp-block-post-terms a,.wp-block-post-terms__prefix){font-size:14px!important}
  /* r2(sweep/r2 の再計測で残った 14px 未満): NUROモバイル等の旧キャリア詳細・/kakuyasu-sim/ の行・/beginner/ の準備チェック・表の見出し */
  body.stn-edge20 main :is(.stn-r2-feature-rows p,.stn-r2-verdict li,.stn-r2-service-hero__summary dd){font-size:15px!important;line-height:1.7}
  body.stn-edge20 main :is(.stn-r2-service-hero__summary dt,.stn-r2-source-links>a,.stn-r2-disclosure>span,.stn-r2-preflight small,.stn-r2-preflight span,p.sn-eyebrow,.stn-visual-copy>.sn-eyebrow,.stnv2-table th,.stnv2-table th.stnv2-num,.stn-r2-row-link,.affiliate-text-slot--a8>a,.stn-r2-service-row__capacity>span,.stn-r2-service-row__fees>span,.stn-r2-category-nav>a,.stn-r2-device-offer header>small,.stn-r2-device-offer header>span,.stn-r2-editorial-trust small){font-size:14px!important}
  body.stn-edge20 main :is(.stn-r2-service-row__purpose,.stn-r2-beginner-step>b,.stn-r2-decision-list b,.stn-r2-explainer-list li>b,.stn-r2-feature-rows>article>b,.stn-slide-card__number){font-size:13px!important}
  body.stn-edge20 main :is(.stn-r2-check-grid p,.stn-r2-campaign-panel summary,.stn-r2-service-row summary,.stn-condition-list li){font-size:15px!important;line-height:1.65}
  body.stn-edge20 main .stn-outage-section>p{font-size:16px!important;line-height:1.75}
  body.stn-edge20 main .stn-outage-section>p.sn-note{font-size:14px!important}
  /* /sim-device-sale/ の買い方3択(r1 で1列化): 行の内側余白と矢印を戻す */
  body.stn-edge20 .stn-r2-page--device .stn-r2-hero .stn-r2-decision-list a{display:grid!important;grid-template-columns:32px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 14px!important}
  body.stn-edge20 .stn-r2-page--device .stn-r2-hero .stn-r2-decision-list :is(b,i){display:grid!important;place-items:center}
  body.stn-edge20 .stn-r2-page--device .stn-r2-hero .stn-r2-decision-list b{width:30px;height:30px;border-radius:50%;background:#eaf4ff;color:var(--stn-r2-blue,#1769aa)}
  body.stn-edge20 .stn-r2-page--device .stn-r2-hero .stn-r2-decision-list i{color:var(--stn-r2-blue,#1769aa);font-style:normal}
  /* リファレンス3ページの見出し上ラベル「リファレンスD/E」「A」は運営側の分類名なので出さない */
  body.stn-edge20 :is(#reference-lead,#ending-lead,#changes-lead)>.stnv2-eyebrow,body.stn-edge20 [id^="ref-"]>.stnv2-eyebrow{display:none!important}
  /* 下部の「このページの情報について」〜フッターの空き(115〜120px)を詰める */
  body.stn-edge20 .wp-site-blocks>footer{margin-top:0!important}
}
/* 105 期間別総額表のスマホ表示(2026-09-26 r2): 旧 = 3〜4列の表を 393px に押し込み、1列目(項目+長い補足)が1行6〜7文字で
   10行以上に折れ、数字の列と行の高さがずれていた(キャリア詳細7ページと /hikari/)。
   新 = 767px 以下は1行=1ブロック: 項目名(と補足)を上に全幅、下に「12か月 / 24か月(/ 36か月)」を横並び。
   列名は PHP が td に付けた data-label を ::before で出し、見出し行は出さない。 */
@media (max-width:767px){
  body.stn-edge20 .stnv2-scroll:has(>.stnv2-table--total){overflow:visible;width:auto;max-width:100%;margin-left:0;margin-right:0;border:0}
  body.stn-edge20 .stnv2-table--total,body.stn-edge20 .stnv2-table--total tbody{display:block;width:100%;min-width:0}
  body.stn-edge20 .stnv2-table--total thead{display:none}
  body.stn-edge20 .stnv2-table--total tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 12px;padding:10px 0;border-top:1px solid var(--stnv2-line,#dfe6ee);background:none}
  body.stn-edge20 .stnv2-table--total tr:has(>td:nth-of-type(3)){grid-template-columns:repeat(3,minmax(0,1fr))}
  body.stn-edge20 .stnv2-table--total :is(th[scope="row"],th[scope="colgroup"]){grid-column:1/-1;position:static;display:block;width:auto;min-width:0;padding:0;border:0;background:none;box-shadow:none;text-align:left;font-size:15px;font-weight:700;line-height:1.55;white-space:normal}
  body.stn-edge20 .stnv2-table--total .stnv2-table__group th{padding-top:6px;color:var(--stnv2-blue-press,#085aa9)}
  body.stn-edge20 .stnv2-table--total th .stnv2-sub{display:block;max-width:none;-webkit-line-clamp:unset;overflow:visible;margin:2px 0 0;text-align:left;font-size:14px!important;font-weight:400;line-height:1.6}
  body.stn-edge20 .stnv2-table--total td{display:block;padding:2px 0 0;border:0;background:none;text-align:left;font-size:16px;line-height:1.4;white-space:nowrap}
  body.stn-edge20 .stnv2-table--total td[data-label]::before{content:attr(data-label);display:block;margin-bottom:1px;font-family:inherit;font-size:14px;font-weight:400;color:var(--stnv2-muted-strong,#475569)}
  body.stn-edge20 .stnv2-table--total tr.is-total td{font-weight:700}
  /* /hikari/ の3比較カード: 値の右寄せ折り返しを、ラベル上・値下の左揃えに */
  body.stn-edge20 .stnv2-plan .stnv2-kv>div{display:block;min-height:0;padding:8px 0}
  body.stn-edge20 .stnv2-plan .stnv2-kv dt{margin:0 0 2px;font-size:14px}
  body.stn-edge20 .stnv2-plan .stnv2-kv dd,body.stn-edge20 .stnv2-plan .stnv2-kv dd *{text-align:left!important}
  body.stn-edge20 .stnv2-plan .stnv2-kv dd{font-size:15px;line-height:1.6}
  body.stn-edge20 .stnv2-plan .stnv2-kv dd .stnv2-sub{display:block;max-width:none;-webkit-line-clamp:unset;overflow:visible;margin:2px 0 0;font-size:14px;font-weight:400}
}
/* 106 r3: 補足リンク行の「／」孤立(/mnp/ 等)と、2列の補足枠(stnv2-callout)で左の見出しが1文字ずつ縦に折れていた(キャリア詳細の「契約解除料」、/hikari/ の「進呈なし」) */
@media (max-width:767px){
  body.stn-edge20 .stn-task15-sep{display:none}
  body.stn-edge20 .stn-task15-context-links .stn-task15-text-link{display:flex!important;width:fit-content;min-height:48px!important;padding:8px 0!important}
  body.stn-edge20 main p.stnv2-callout{display:block;padding:10px 12px}
  body.stn-edge20 main p.stnv2-callout>span{display:block;text-align:left}
  body.stn-edge20 main p.stnv2-callout>span:first-child{margin-bottom:2px;font-size:14px!important;color:var(--stnv2-muted-strong,#475569)}
}
/* 107 /hikari/ の2択入口(r3): スマホの契約先で選ぶ。1行=1択、左に見出し16px・下に行き先14px、右に矢印 */
.stnv2-entries--pick{margin:12px 0 4px}
.stnv2-entries--pick ul{grid-template-columns:1fr;gap:8px}
.stnv2-entries--pick .stnv2-entry{position:relative;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;height:auto;min-height:60px;padding:10px 40px 10px 14px;background:#fff;border-color:var(--stnv2-blue-press,#085aa9)}
.stnv2-entries--pick .stnv2-entry::before{content:none}
.stnv2-entries--pick .stnv2-entry::after{content:"›";position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:24px;line-height:1;color:var(--stnv2-blue-press,#085aa9)}
.stnv2-entries--pick .stnv2-entry__title{display:block;-webkit-line-clamp:unset;font-size:16px;text-align:left}
.stnv2-entries--pick .stnv2-entry__sub{display:block;font-size:14px;text-align:left}
@media (min-width:600px){.stnv2-entries--pick ul{grid-template-columns:1fr 1fr}}


/* 110 loop2 r1(2026-09-26、全46ページ×全状態の洗い出し)。
   H1 フッターのロゴ重なり: サイト共通インライン CSS(stn-service-design-refresh)の
   `.wp-site-blocks h2::before{position:absolute;left:0}`(見出しの縦棒)がフッターのサイト名 h2 にも掛かり、
   721px 以上でロゴ円(46px)が「ス」に重なっていた。フッターの h2 だけ縦棒の指定を外す。 */
.wp-site-blocks .sn-footer h2{padding-left:0!important}
.wp-site-blocks .sn-footer-grid>.wp-block-column:first-child h2::before{position:static!important}
/* M1 フッター: 左端をヘッダー・本文と同じ root padding に(旧 = 100vw - 32/48px の中央寄せで 16px / 1280px で 60px)、
   リンクと説明文を 14px に(旧 13px)。 */
body.stn-edge20 .sn-footer{padding-left:var(--wp--style--root--padding-left)!important;padding-right:var(--wp--style--root--padding-right)!important}
body.stn-edge20 .sn-footer .sn-footer-inner{width:100%;max-width:min(1160px,100%)!important;margin-left:auto!important;margin-right:auto!important}
body.stn-edge20 .sn-footer :is(p,a,li){font-size:14px!important}
body.stn-edge20 .sn-footer h3{font-size:16px!important}
/* H3 左端の統一(1024px 以上): ヘッダー・本文・全幅帯の中身・フッターを
   「min(1160px, 100% − root padding×2) の中央寄せ」1種にする。
   旧 1280px: ロゴ 118 / 本文 102 / 帯の中身 60 / フッター 60、1024px: 94 / 82 / 24 / 24。 */
@media (min-width:1024px){
  body.stn-edge20 .sn-site-header .sn-header-inner{width:100%;max-width:min(1160px,100%)!important;margin-left:auto!important;margin-right:auto!important}
  body.stn-edge20 :is(.stn-r2-hero,.stn-r2-band)>:is(.stn-r2-hero__inner,.stn-r2-shell){width:min(1160px,calc(100% - var(--wp--style--root--padding-left) - var(--wp--style--root--padding-right)));max-width:none;margin-left:auto;margin-right:auto}
  body.stn-edge20 :is(.stn-r2-service-detail,.stn-r2-page>.stn-r2-shell,.stn-r2-page>.stn-r2-disclosure){width:100%;max-width:none;margin-left:0;margin-right:0}
  body.stn-edge20 :is(.stnv2-disclosure,.stn-r2-disclosure){padding-left:0;padding-right:0;justify-content:flex-start;text-align:left}
  /* M9 本文幅の中にある薄い背景の帯(.stn-r2-section の偶数、/mnp/ 等の .sn-page-hero と .sn-section 偶数)は、
     文字が背景の端に接していた。768px 以下と同じく背景を外し、文字は本文と同じ x に置く。 */
  body.stn-edge20 .stn-r2-page>.stn-r2-section{padding-left:0;padding-right:0;background:transparent}
  body.stn-edge20 .wp-site-blocks .alignfull.sn-page-hero{background:transparent!important;box-shadow:none!important}
  body.stn-edge20 .wp-site-blocks .sn-section:nth-of-type(even){background:transparent}
  /* M2 1行の長さ: 記事は本文列 760px を中央に(旧 1075〜1160px = 1行 63〜68字)。
     情報ページの段落・箇条書きは 48em(約46字)まで。表・カード・条件表はそのままの幅。 */
  body.single-post.stn-edge20 :is(.sn-single-title,.sn-single-meta){max-width:760px}
  body.single-post.stn-edge20 main .wp-block-post-content{max-width:760px;margin-left:auto!important;margin-right:auto!important}
  body.single-post.stn-edge20 main .wp-block-post-content>*{max-width:100%!important}
  body.stn-edge20:not(.single-post) main :is(.sn-page-lead,.sn-section p,.sn-section li,.stn-r2-section p,.stnv2-sub,.stnv2-lead){max-width:48em}
  /* M10 トップの PC: ヒーロー画像を H1・リード文の右に置き、条件表を1画面目に上げる(旧 = 560px の画像が左に寄り右半分が空白) */
  .stnv2-deal{display:grid;grid-template-columns:minmax(0,1fr) 400px;grid-template-rows:auto 1fr;column-gap:40px;align-items:start}
  .stnv2-deal>*{grid-column:1/-1}
  .stnv2-deal>.stnv2-deal__h1{grid-column:1;grid-row:1;align-self:start;margin-top:8px}
  .stnv2-deal>.stnv2-deal__lead{grid-column:1;grid-row:2;align-self:start}
  .stnv2-deal>.stnv2-hero{grid-column:2;grid-row:1/span 2;max-width:none;margin:0 0 12px}
  /* 1024px 以上の 13px(表見出し・PR・キャンペーン名) → 14px */
  body.stn-edge20 main :is(.stnv2-table th,.stnv2-disclosure span,.stnv2-disclosure a,.stnv2-table .stnv2-sub,.stnv2-vh,.affiliate-text-slot__label){font-size:14px!important}
}
/* M4 コントラスト: 条件表の行リンク「条件を見る ›」#9ca3af(2.4:1)→ #64748b、
   薄い青地の青い小見出し(4.4:1)→ 濃い青、灰色の eyebrow(4.4:1)→ #526579 */
body .stnv2-table--board td.stnv2-go .stnv2-go__btn{color:#64748b!important}
body.stn-edge20 main :is(.stn-r2-eyebrow,.stn-r2-explainer-list li>b,.stn-r2-device-offer b,.stn-r2-device-offer header>span,.stn-r2-feature-rows>article>b,.stn-r2-more-button span){color:var(--stnv2-blue-press,#085aa9)}
/* r2: 薄い地の上の本文内リンク(クラスなしの a のみ。塗りボタンは対象外)。旧 #0b73d9 は #f4f8fc 上で 4.4:1 */
body.stn-edge20 main :is(.stn-r2-section,.stnv2-section,.stnv2-kv,.stn-r2-shell,.sn-section) :is(p,dd,td) a:not([class]),body.stn-edge20 main .sn-note a{color:var(--stnv2-blue-press,#085aa9)}
body.stn-edge20 main .sn-note{color:#526579}
body.stn-edge20 main .stn-r2-category-nav a:not(:first-child){color:var(--stnv2-blue-press,#085aa9)}
body.stn-edge20 main .stn-r2-beginner-phase h3{color:var(--stn-color-compare-text,#0e7d51)!important}
body .stnv2-table--board tr.stnv2-is-ending td.stnv2-go .stnv2-go__btn,body .stnv2-table--board td.stnv2-go .stnv2-go__btn{color:#526579!important}
body.stn-edge20 main .affiliate-text-slot__label{color:#526579!important}
body.stn-edge20 main .sn-eyebrow{color:#526579!important}
/* M3 PR 表記: 1行・左揃え・14px に統一(旧: 灰色3行の長文 / PC で中央揃え) */
body.stn-edge20 main .affiliate-disclosure{display:block;max-width:none;margin:8px 0 12px;text-align:left!important;font-size:14px!important;line-height:1.6;color:#526579}
body.stn-edge20 main .affiliate-disclosure :is(span,a){font-size:14px!important}
body.stn-edge20 main .affiliate-disclosure__label{margin-right:8px;font-weight:700;color:#475569}
body.stn-edge20 main .affiliate-disclosure__link{margin-left:10px;color:#475569}
/* M8 14px 未満の文字(393px の /kakuyasu-sim/ の比較カード内、1024px 以上の全ページ)。
   前回スイープ(r1〜r4)は 1023px 以下だけを直していた。 */
html body.stn-edge20 main :is(.stn-r2-carrier-groups a,.stn-r2-carrier-groups a span,.stnv2-table__group small,.stn-r2-featured-offer__label,.stn-r2-device-offer header>span,.stn-r2-device-offer header>small,.stn-r2-chip,.stn-r2-beginner-step>b,.stn-r2-service-row__features p,.stn-r2-service-row__for,.stn-r2-service-row__for span,.stn-r2-service-row__purpose,.stn-r2-editorial-trust__items p,.stn-r2-editorial-trust__items a,.stn-editorial-note p,.stn-r2-explainer-list b,.stn-r2-feature-rows b,.stn-slide-card__number,td small:not(.stnv2-deal__amount *),summary small,summary strong,li>a>b,.affiliate-text-slot__label){font-size:14px!important}
@media (min-width:1024px){
  body.stn-edge20 :is(.stn-breadcrumbs,.stn-breadcrumbs a,.stn-breadcrumbs span){font-size:14px!important}
  body.stn-edge20 main :is(.stnv2-disclosure span,.stnv2-disclosure a,.stn-r2-eyebrow,.stnv2-eyebrow,.sn-eyebrow,.stn-r2-service-table__head span,.stn-task15-context-links,.stn-task15-context-links a,.stn-task15-sep,.stn-r2-service-row__confirmation span,.stn-r2-service-row__capacity>span,.stn-r2-service-row__fees>span,.stn-r2-service-row__fees small,.stn-r2-service-row__details>summary,.affiliate-text-slot>a,.stn-cta-assurance span,a.sn-btn-small,.stn-r2-beginner-step b,.stn-r2-beginner-step p,label small,.sn-check-list>li,.stn-visual-item__step,figcaption,.stnv2-badge,.stnv2-unit:not(:is(.stnv3-summary__value,.stnv2-deal__amount,.stnv2-kv--verdict .stnv2-amount,.stnv7-fact) *),.stnv2-sources p,.stnv2-sources a,.stnv2-tag,a>span>small,header>div>span){font-size:14px!important}
}
/* M10 収益2ページの PC: 3行まとめ(実質/いつまで/誰が)の右にヒーロー画像を置く(旧 = 560px の画像が単独で左に寄り右半分が空白) */
@media (min-width:1024px){
  .stnv2m-summary:has(+ .stnv2-hero){float:left;width:calc(100% - 432px);margin-bottom:12px}
  .stnv2m-summary + .stnv2-hero{width:400px;max-width:400px;margin:0 0 12px auto}
  .stnv2m-h2{clear:both}
}
/* 111 loop2 r2: PC(1024px 以上)
   - 全幅ヒーロー帯は min-height 430px 固定で、右列の無いキャリア詳細9ページでは上下に約110pxずつ空いていた → 内容の高さ+上下40px
   - 本文幅の中の色つき枠(結論ボックス等 .stnv2-section--sky/--soft/--cream)は文字が枠の端に接していた → 内側 24px の角丸枠 */
@media (min-width:1024px){
  body.stn-edge20 .stn-r2-hero>.stn-r2-hero__inner{min-height:0;padding-block:40px}
  body.stn-edge20 main :is(.stnv2-section--sky,.stnv2-section--soft,.stnv2-section--cream){box-sizing:border-box;padding:24px!important;border-radius:12px}
}
/* 112 1.0.267: /iphone-norikae/ /android-norikae/ の価格・在庫の注意(PR 行とは別の注記、14px) */
body.stn-edge20 main .stn-price-note{max-width:48em;margin:4px 0 12px!important;font-size:14px!important;line-height:1.6;color:#526579;text-align:left}
/* 113 1.0.269: /hikari/ ④ #hikari-offers(契約先・契約期間で選ぶ申込窓口)。1枠 = 見出し+PR+ボタン1本+リンク先の一文。
   枠線で区切るだけにして 320px のページ高(上限 12,000px)を抑える。ボタンの見た目は #compare の secondary(白地・青枠)のまま */
.stnv2-hikari-offers{margin:16px 0 0}
.stnv2-hikari-offers__title{margin:0 0 4px;font-size:17px;font-weight:700;line-height:1.4;color:var(--stnv2-navy)}
.stnv2-hikari-offer-choices{display:grid;gap:0 16px}
.stnv2-hikari-offer-choice{margin:0;padding:12px 0;border-top:1px solid var(--stnv2-line)}
.stnv2-hikari-offer-choice h4{margin:0;font-size:16px;font-weight:700;line-height:1.5;color:var(--stnv2-ink)}
.stnv2-hikari-offer-choice .affiliate-text-slot-wrap,#flets-hikari-card .affiliate-text-slot-wrap{max-width:none;margin:4px 0 0}
#compare .affiliate-text-slot-wrap .stn-cta-assurance{margin-top:4px}
#compare .affiliate-text-slot-wrap .stn-cta-assurance>span{text-align:center;text-wrap:balance}
@media (min-width:782px){.stnv2-hikari-offer-choices{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* 114 1.0.276〜278: 承認済み案件の素材の note(PR ラベルの上の一文、includes/approved-offers.php)。対象外の人・公式と誤解しやすい点を
   押す前に読ませる。文字はボタンより小さく、揃えは置き場所に合わせる(④・⑧の CTA 枠は中央、記事の CTA 箱と /ymobile/ ⑤は左)。
   /hikari/ ④カード1(ドコモ光)の枠はカード2と同じ余白。記事の CTA 箱は上に「PR」の札があるので、枠の中の PR ラベルは重ねない。
   /ymobile/ ⑤の正規取扱店(.stnv2-dealer)は副 CTA: ⑧の公式直リンクが塗りの Primary なので、#compare と同じ白地・青枠にする */
body main .affiliate-text-slot__note{margin:0 0 8px;font-size:14px;font-weight:400;line-height:1.6;color:var(--stnv2-muted-strong);overflow-wrap:anywhere}
#docomo-hikari-card .affiliate-text-slot-wrap{max-width:none;margin:4px 0 0}
/* ④のカード(ドコモ光・フレッツ光)の最後の CTA 枠は下の余白を付けない、⑧(#apply)の先頭の CTA 枠は上の余白を付けない
   (どちらも枠の内側の余白で足りる。/hikari/ の 320px のページ高を上限 14,000px 内に収める) */
.stnv2-plan>.stnv2-cta:last-child{margin-bottom:0}
section#apply>.stnv2-cta:first-child,section#apply>.stnv2-cta:first-child>.affiliate-text-slot-wrap{margin-top:0}
/* ⑧(#apply)は中央揃えの区画なので、広告の枠(幅 560px まで)と下の文字リンクの段落(幅 48em まで)も中央に置く
   (1440px で左に寄って確認日の行とずれていた。/hikari/ は .stnv2-cta の中、/ahamo/ は区画の直下に枠がある) */
section#apply>.stnv2-cta>.affiliate-text-slot-wrap,section#apply>.affiliate-text-slot-wrap,section#apply>p.stnv2-sub{margin-left:auto;margin-right:auto}
/* 記事の冒頭の PR 表記(v2-articles.php がテンプレートの sn-pr-note を固定ページと同じ1行の aside に差し替える)は、
   .sn-single の直下に入るので H1(.sn-single-title、91 節と M2 の 760px)と同じ幅・左端にそろえる */
body.stn-edge20 .sn-single>.stnv2-disclosure{width:auto;max-width:100%}
@media (min-width:1024px){body.stn-edge20 .sn-single>.stnv2-disclosure{max-width:min(1160px,100%)}body.single-post.stn-edge20 .sn-single>.stnv2-disclosure{max-width:760px}}
.sn-cta-box:has(.sn-eyebrow) .affiliate-text-slot__label{display:none}
.sn-cta-box .affiliate-text-slot-wrap{max-width:none}
.sn-cta-box .affiliate-text-slot-wrap .stn-cta-assurance>span{text-wrap:balance}
.stnv2-dealer{margin:24px 0 0;padding:16px 0 0;border-top:1px solid var(--stnv2-line);text-align:left}
.stnv2-dealer__title{margin:0 0 8px;font-size:16px;font-weight:700;line-height:1.5;color:var(--stnv2-ink)}
.stnv2-dealer .affiliate-text-slot-wrap{margin:0}
.stnv2-dealer .affiliate-text-slot-wrap .stn-cta-assurance>span{text-align:center;text-wrap:balance}
#steps .stnv2-dealer .affiliate-text-slot a{background:var(--stnv2-white)!important;border:1px solid var(--stnv2-blue-press)!important;color:var(--stnv2-blue-press)!important;box-shadow:none!important}
#steps .stnv2-dealer .affiliate-text-slot a:hover,#steps .stnv2-dealer .affiliate-text-slot a:active{background:var(--stnv2-sky)!important;border-color:var(--stnv2-blue-press)!important;color:var(--stnv2-blue-press)!important}
