:root{
  --ink-900:#18181b; --ink-700:#3f3f46; --ink-500:#71717a;
  --ink-300:#d4d4d8; --ink-200:#e4e4e7; --ink-100:#f4f4f5; --ink-50:#fafafa;
  --paper:#ffffff; --shu:#c2402a; --shu-bg:#faf1ef; --down:#2f7d5f;
  --content-max:960px; --content-pad:20px; /* 整列線=本文テキスト左右端（第5波A4） */
  --font-jp:"Noto Sans JP",sans-serif; --font-num:"Inter","Noto Sans JP",sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--font-jp);color:var(--ink-900);background:var(--paper);font-size:15px;line-height:1.8}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
:focus-visible{outline:2px solid var(--shu);outline-offset:2px;border-radius:2px}
.num{font-family:var(--font-num);font-feature-settings:"tnum";letter-spacing:-.01em}
.container{max-width:var(--content-max);margin:0 auto;padding:0 var(--content-pad)}
.skip{position:absolute;left:-9999px;top:0;background:var(--ink-900);color:#fff;padding:10px 16px;z-index:99}
.skip:focus{left:0}

/* ===== Header ===== */
.site-header{border-bottom:1px solid var(--ink-200)}
.site-header .container{display:flex;align-items:center;justify-content:space-between;gap:16px;height:58px}
.brand{display:flex;align-items:baseline;gap:10px;white-space:nowrap}
.brand-mark{width:10px;height:10px;background:var(--shu);display:inline-block;transform:translateY(-1px)}
.brand-name{font-family:var(--font-num);font-weight:800;font-size:18px;letter-spacing:-.02em}
.brand-name.jp{font-family:var(--font-jp);font-weight:700;font-size:17.5px;letter-spacing:.14em}
.brand-sub{font-size:12px;font-weight:700;color:var(--ink-500);letter-spacing:.12em}
.header-nav{display:flex;gap:18px;font-size:13px;font-weight:500}

/* ===== 提出ティッカー ===== */
.ticker{border-bottom:1px solid var(--ink-200);background:var(--ink-50)}
.ticker .container{display:flex;align-items:center}
.ticker .t-label{flex:none;font-size:10.5px;font-weight:700;letter-spacing:.1em;color:#fff;background:var(--ink-900);padding:4px 9px;margin:7px 12px 7px 0;white-space:nowrap}
.t-item{flex:none;display:flex;align-items:baseline;gap:6px;padding:8px 14px;border-left:1px solid var(--ink-200);font-size:12px;white-space:nowrap}
.t-item .t-name{font-weight:600}
.t-item .t-val{font-family:var(--font-num);font-feature-settings:"tnum";font-weight:600}
.t-delta{font-family:var(--font-num);font-feature-settings:"tnum";font-size:11px;font-weight:700}
.t-delta.up{color:var(--shu)}
.t-delta.down{color:var(--down)}

/* ===== Hero：検索 ===== */
.hero{padding:42px 0 0}
.hero-eyebrow{font-size:12px;color:var(--ink-500);letter-spacing:.08em}
.hero-eyebrow strong{color:var(--ink-900);font-weight:700}
.hero h1{font-size:clamp(24px,5.4vw,36px);font-weight:700;line-height:1.45;margin-top:10px}
.hero h1 em{font-style:normal;border-bottom:4px solid var(--shu);padding-bottom:2px}
.hero-search{display:flex;margin:24px 0 0;max-width:600px;border:1px solid var(--ink-900)}
.hero-search input{flex:1;border:0;outline:0;padding:16px 17px;font-family:var(--font-jp);font-size:15px;min-width:0}
.hero-search input::placeholder{color:var(--ink-500)}
.hero-search button{border:0;background:var(--ink-900);color:#fff;font-family:var(--font-jp);font-weight:700;font-size:14px;padding:0 26px;cursor:pointer;display:flex;align-items:center;gap:8px}
.hero-search button:hover{background:var(--ink-700)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;font-size:12px;align-items:center}
.chips span{color:var(--ink-500)}
.chips a{border:1px solid var(--ink-300);padding:4px 12px;font-weight:600}
.chips a:hover{border-color:var(--ink-900);background:var(--ink-50);text-decoration:none}
.hero-foot{display:flex;gap:20px;flex-wrap:wrap;font-size:12px;color:var(--ink-500);padding:16px 0 6px}
.hero-foot strong{color:var(--ink-900);font-weight:700}

/* ===== 分布プレート（チャート＋帯ナビ一体） ===== */
.dist{margin-top:26px;border:1px solid var(--ink-200);border-top:3px solid var(--ink-900);background:var(--paper)}
.dist-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:18px 20px 4px;flex-wrap:wrap}
.dist-head h2{font-size:14px;font-weight:700;letter-spacing:.03em}
.dist-head span{font-size:11px;color:var(--ink-500)}
.dist svg{display:block;width:100%;height:auto;padding:0 8px}
.dist .bar{fill:var(--ink-300);transition:fill .15s}
.dist a:hover .bar,.dist a:focus-visible .bar{fill:var(--ink-700)}
.band-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--ink-200);border-top:1px solid var(--ink-200)}
.band-cell{background:var(--paper);padding:12px 14px;display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:13px;min-height:46px}
.band-cell:hover{background:var(--shu-bg);text-decoration:none}
.band-cell .b-range{font-family:var(--font-num);font-feature-settings:"tnum";font-weight:700}
.band-cell .b-range small{font-size:10.5px;font-weight:600;color:var(--ink-700)}
.band-cell .b-count{font-size:11.5px;color:var(--ink-500);white-space:nowrap}
.band-cell .b-count strong{font-family:var(--font-num);color:var(--ink-900);font-weight:700;font-size:13px}

/* ===== セクション ===== */
.section{margin-top:54px}
.section.tint{background:var(--ink-50);border-top:1px solid var(--ink-200);border-bottom:1px solid var(--ink-200);padding:46px 0 50px;margin-top:54px}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-bottom:1px solid var(--ink-900);padding-bottom:10px}
.section-head h2{font-size:17px;font-weight:700;letter-spacing:.04em}
.section-head a.more{font-size:12px;font-weight:600;color:var(--ink-500);white-space:nowrap}
.section-head a.more:hover{color:var(--ink-900)}
.section-head .meta{font-size:11.5px;color:var(--ink-500)}

/* ===== 二軸ランキング ===== */
.dual{margin-top:22px;display:grid;gap:36px}
.dual h3{font-size:13.5px;font-weight:700;border-left:3px solid var(--ink-900);padding-left:10px}
.dual h3 small{font-weight:500;color:var(--ink-500);font-size:11px;margin-left:8px}
.rank-list{margin-top:12px;border-top:1px solid var(--ink-200)}
.rank-line{display:grid;grid-template-columns:2.2em 1fr 5.4em;gap:10px;align-items:center;padding:11px 2px;border-bottom:1px solid var(--ink-200);font-size:13.5px;min-height:46px}
.rank-line.with-bar{grid-template-columns:2.2em 1fr minmax(70px,100px) 5.4em}
.rank-line .pos{font-family:var(--font-num);font-weight:700;color:var(--ink-500)}
.rank-line:nth-child(-n+3) .pos{color:var(--shu)}
.rank-line .name{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rank-line .name small{display:block;font-size:10.5px;color:var(--ink-500);font-weight:400;line-height:1.4}
.rank-line .track{height:7px;background:var(--ink-100)}
.rank-line .fill{height:100%;background:var(--ink-900);display:block}
.rank-line .delta{font-family:var(--font-num);font-feature-settings:"tnum";font-size:12px;font-weight:700;color:var(--shu);white-space:nowrap}
.rank-line .val{font-family:var(--font-num);font-feature-settings:"tnum";font-weight:700;text-align:right;white-space:nowrap}
.rank-line .val small{font-size:10.5px;font-weight:600}

/* ===== 業種（全33） ===== */
.ind-grid{margin-top:22px;display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--ink-200);border:1px solid var(--ink-200)}
.ind-grid a{background:var(--paper);padding:11px 14px;display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:13px;min-height:44px}
.ind-grid a:hover{background:var(--ink-50);text-decoration:none}
.ind-grid .i-name{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ind-grid .i-val{font-family:var(--font-num);font-feature-settings:"tnum";color:var(--ink-700);white-space:nowrap;font-size:12.5px}
.ind-grid .i-val small{color:var(--ink-500);font-size:10.5px;margin-left:5px}

/* ===== 新着 ===== */
.new-list{margin-top:18px;border-top:1px solid var(--ink-200)}
.new-row{display:flex;align-items:baseline;gap:12px;padding:12px 2px;border-bottom:1px solid var(--ink-200);font-size:14px;min-height:46px}
.new-row .date{font-family:var(--font-num);font-size:11.5px;color:var(--ink-500);white-space:nowrap}
.new-row .name{flex:1;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.new-row .delta{font-family:var(--font-num);font-feature-settings:"tnum";font-size:11.5px;font-weight:700;white-space:nowrap}
.new-row .delta.up{color:var(--shu)}
.new-row .delta.down{color:var(--down)}
.new-row .val{font-family:var(--font-num);font-feature-settings:"tnum";font-weight:600;white-space:nowrap}

/* ===== 読み方 ===== */
.literacy{margin-top:54px;border:1px solid var(--ink-200);border-left:4px solid var(--ink-900);padding:22px 24px}
.literacy h2{font-size:15px;font-weight:700;letter-spacing:.04em}
.literacy .nums{display:flex;gap:28px;margin-top:12px;flex-wrap:wrap}
.literacy .nums div{display:flex;flex-direction:column}
.literacy .nums dt{font-size:11px;color:var(--ink-500);letter-spacing:.08em}
.literacy .nums dd{font-family:var(--font-num);font-feature-settings:"tnum";font-size:22px;font-weight:700}
.literacy ul{list-style:none;margin-top:12px;display:grid;gap:6px;font-size:13px;color:var(--ink-700)}
.literacy li{padding-left:14px;position:relative}
.literacy li::before{content:"";position:absolute;left:0;top:.8em;width:6px;height:1px;background:var(--ink-500)}
.literacy a{font-weight:600;text-decoration:underline;text-underline-offset:3px}

/* ===== コラム ===== */
.col-list{margin-top:18px;border-top:1px solid var(--ink-200)}
.col-row{display:flex;align-items:baseline;gap:14px;padding:12px 2px;border-bottom:1px solid var(--ink-200);font-size:14px;min-height:46px}
.col-row a{font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.col-row .c-date{font-family:var(--font-num);font-size:11.5px;color:var(--ink-500);white-space:nowrap}

.ad-slot{margin-top:46px;border:1px dashed var(--ink-300);background:var(--ink-50);height:110px;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--ink-500);letter-spacing:.14em}
/* AdSense手動ユニット枠（本番。CLS対策で最小高さ確保・枠線なし） */
.ad-unit{margin-top:46px;min-height:110px;overflow:hidden}
.ad-unit .adsbygoogle{display:block}

/* ===== Footer（インデックス内蔵） ===== */
.site-footer{margin-top:64px;border-top:1px solid var(--ink-200);padding:28px 0 44px;font-size:12px;color:var(--ink-500)}
.site-footer .container{display:grid;gap:14px}
.site-footer .f-brand{font-family:var(--font-num);font-weight:800;color:var(--ink-900);font-size:14px}
.f-index{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline;padding:12px 0;border-top:1px solid var(--ink-200);border-bottom:1px solid var(--ink-200)}
.f-index .f-label{font-weight:700;color:var(--ink-700);letter-spacing:.06em}
.f-index a{font-weight:600;color:var(--ink-700)}
.f-index a:hover{color:var(--ink-900)}

@media (min-width:760px){
  .dual{grid-template-columns:1fr 1fr;gap:44px}
  .ind-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:759px){
  .header-nav{display:none}
  .rank-line.with-bar{grid-template-columns:2.2em 1fr 5.4em}
  .rank-line .track{display:none}
}
@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}

/* ===== 実装側追記（モックアップ抽出分はここより上。SP幅の横はみ出し対策 task.md①） ===== */
@media (max-width:759px){
  /* 業種グリッド: 1frの暗黙最小値（min-content）が長い社名でトラックを押し広げ
     2列合計がビューポートを超えるため、minmax(0,1fr)で内容による押し広げを禁止。
     セル内は値を縮めず、入り切らないときだけ折り返す */
  .ind-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ind-grid a{flex-wrap:wrap}
  .ind-grid .i-val{flex:none}
}

/* ===== ランキング等の下層ページ用（モック非対象。デザインシステム§11準拠の最小構成） ===== */
.breadcrumb{font-size:12px;color:var(--ink-500);padding:14px 0 0}
.breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px}
.breadcrumb li+li::before{content:"›";margin-right:6px;color:var(--ink-300)}
.breadcrumb a:hover{color:var(--ink-900)}
.page-head{margin-top:18px}
.page-head h1{font-size:clamp(20px,4.6vw,26px);font-weight:700;line-height:1.45}
.page-head .page-lead{font-size:13px;color:var(--ink-700);margin-top:8px;max-width:62em}

/* ランキング種類タブ（全企業／主要企業） */
.rank-tabs{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}
.rank-tabs a{font-size:13px;font-weight:700;padding:9px 14px;border:1px solid var(--ink-300);color:var(--ink-700);background:var(--paper)}
.rank-tabs a:hover{border-color:var(--ink-900);text-decoration:none}
.rank-tabs a.cur{background:var(--ink-900);color:#fff;border-color:var(--ink-900)}
.rank-tabs a .num{font-family:var(--font-num);font-weight:600;opacity:.65;margin-left:3px}
/* 透明性（単体/持株）: ランキングの注記と持株ラベル */
.rank-caveat{margin-top:14px;font-size:12px;line-height:1.7;color:var(--ink-500);background:var(--ink-50);border:1px solid var(--ink-200);padding:10px 14px}
.rank-caveat strong{color:var(--ink-700);font-weight:700}
.hold-tag{display:inline-block;font-size:10px;font-weight:700;color:var(--ink-700);border:1px solid var(--ink-300);border-radius:2px;padding:0 5px;vertical-align:1px;letter-spacing:.02em}
/* 低額の疑い 一覧用「要確認」タグ（企業ページの注釈へ） */
.rank-flag{display:inline-block;font-size:10px;font-weight:700;color:#8a5a00;background:#fdf3d6;border:1px solid #e6c15a;border-radius:2px;padding:0 5px;vertical-align:1px;white-space:nowrap}
.rank-flag:hover{text-decoration:none;background:#fbecbf}

/* ===== 記事システム（§6.1） ===== */
/* 一覧 */
.art-list{list-style:none;margin-top:22px;border-top:1px solid var(--ink-200)}
.art-item{border-bottom:1px solid var(--ink-200)}
.art-link{display:block;padding:16px 4px}
.art-link:hover{background:var(--ink-50);text-decoration:none}
.art-date{display:block;font-size:11.5px;color:var(--ink-500);letter-spacing:.04em}
.art-title{display:block;font-size:15.5px;font-weight:700;line-height:1.5;margin-top:3px}
.art-link:hover .art-title{text-decoration:underline;text-underline-offset:3px}
.art-desc{display:block;font-size:12.5px;color:var(--ink-700);margin-top:5px;line-height:1.7}
.art-empty{margin-top:22px;color:var(--ink-500);font-size:14px}
/* 個別記事: 本文＋追従サイドバー（広告・回遊）の2カラム。SPは1カラム */
.article-layout{margin-top:4px}
.article-main{min-width:0}
.article-side{margin-top:36px}
.side-box{border:1px solid var(--ink-200);padding:16px 18px;margin-top:18px}
.side-box h3{font-size:11px;color:var(--ink-500);letter-spacing:.08em;font-weight:700}
.side-box ul{list-style:none;margin-top:12px;display:grid;gap:10px}
.side-box a{font-size:13.5px;font-weight:600;color:var(--ink-700)}
.side-box a:hover{color:var(--ink-900)}
@media (min-width:900px){
  .article-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:48px;align-items:start}
  .article-side{margin-top:0;position:sticky;top:72px}
}
.article{margin-top:16px}
.article-head{border-bottom:3px solid var(--ink-900);padding-bottom:16px}
.article-head h1{font-size:clamp(22px,5vw,31px);font-weight:700;line-height:1.5;letter-spacing:.01em}
.article-meta{font-size:12px;color:var(--ink-500);margin-top:12px;letter-spacing:.04em}
.article-body{margin-top:28px;font-size:15.5px;line-height:2;color:var(--ink-900)}
.article-body > p:first-of-type{font-size:16.5px;color:var(--ink-700);line-height:1.95}
.article-body h2{font-size:20px;font-weight:700;letter-spacing:.02em;margin-top:44px;padding:2px 0 2px 14px;border-left:5px solid var(--shu)}
.article-body h3{font-size:16px;font-weight:700;margin-top:30px}
.article-body p{margin-top:16px}
.article-body ul,.article-body ol{margin-top:16px;padding-left:1.4em;display:grid;gap:8px}
.article-body li{line-height:1.85}
.article-body a{font-weight:600;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--ink-300)}
.article-body a:hover{text-decoration-color:var(--ink-900)}
.article-body strong{font-weight:700}
.article-body blockquote{margin-top:18px;border-left:3px solid var(--ink-300);padding:2px 0 2px 16px;color:var(--ink-700)}
.article-body table{width:100%;border-collapse:collapse;margin-top:20px;font-size:13.5px}
.article-body th,.article-body td{border-bottom:1px solid var(--ink-200);padding:9px 12px;text-align:left}
.article-body th{font-size:12px;color:var(--ink-500);border-bottom:1px solid var(--ink-900)}
.article-body img{max-width:100%;height:auto;margin-top:18px}
/* 記事内 関連リンク */
.rel-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.rel-links a{font-size:13px;font-weight:600;border:1px solid var(--ink-300);padding:7px 13px;color:var(--ink-700)}
.rel-links a:hover{border-color:var(--ink-900);background:var(--ink-50);text-decoration:none}
.pagination{display:flex;flex-wrap:wrap;gap:8px;margin-top:32px;font-size:13px;align-items:center}
.pagination a,.pagination .cur{border:1px solid var(--ink-300);padding:6px 13px;font-weight:600;font-family:var(--font-num)}
.pagination a:hover{border-color:var(--ink-900);background:var(--ink-50);text-decoration:none}
.pagination .cur{background:var(--ink-900);color:#fff;border-color:var(--ink-900)}
.pagination .gap{color:var(--ink-500)}

/* ===== 一覧リストの列ヘッダ・数値揃え（50音・検索結果。task.md①） ===== */
.co-list .list-head{display:flex;align-items:baseline;gap:12px;padding:8px 2px;border-bottom:1px solid var(--ink-900);font-size:11px;color:var(--ink-500);letter-spacing:.08em}
.co-list .list-head .h-code{width:4.2em;text-align:right}
.co-list .list-head .h-name{flex:1;min-width:0}
.co-list .list-head .h-val{white-space:nowrap}
.co-list .new-row .date{width:4.2em;text-align:right;font-variant-numeric:tabular-nums}
.co-list .new-row .val{font-variant-numeric:tabular-nums}

/* ===== トップ帯ナビの7セル化（task.md指示・§11差分リスト記録済み） =====
   PC=1行7列、SP=4+3の2段折返し。セル内は値を折り返してタップ高さ(min-height:46px)を維持 */
.dist .band-strip{grid-template-columns:repeat(7,minmax(0,1fr))}
.dist .band-cell{flex-wrap:wrap}
@media (max-width:759px){
  .dist .band-strip{grid-template-columns:repeat(4,minmax(0,1fr))}
  /* 狭セルでは縦積み（帯名の下に社数）。「万円」の文字泣き別れを防ぐ */
  .dist .band-cell{flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;padding:9px 10px}
  .dist .band-cell .b-range{font-size:12px;word-break:keep-all;overflow-wrap:anywhere}
  .dist .band-cell .b-range small,.dist .band-cell .b-count{white-space:nowrap}
}

/* 共有UI（task.md⑤。X/LINE/はてブ=素リンク、コピー=§6例外2号） */
.share{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:26px;font-size:12px}
.share .share-label{color:var(--ink-500)}

/* ===== レイアウト調整パス第2波 ===== */
/* (7) ページャーをセンター寄せ */
.pagination{justify-content:center}
/* (5) リスト/テーブルの端密着解消（左右端セルに水平padding） */
.rank-line{padding-left:8px;padding-right:8px}
.rank-row{padding-left:8px;padding-right:8px}
.new-row{padding-left:8px;padding-right:8px}
.col-row{padding-left:8px;padding-right:8px}
/* (4) リストの列ヘッダ行（語の明示。table型のledgerはth済み） */
.rank-head{display:grid;grid-template-columns:2.2em 1fr 5.4em;gap:10px;align-items:baseline;margin-top:12px;padding:8px 8px;border-bottom:1px solid var(--ink-900);font-size:11px;color:var(--ink-500);letter-spacing:.08em}
.rank-head.with-bar{grid-template-columns:2.2em 1fr minmax(70px,100px) 5.4em}
.rank-head .h-val{text-align:right;white-space:nowrap}
.rank-list.has-head{border-top:0;margin-top:0}
.co-list-head{display:flex;align-items:baseline;gap:12px;padding:8px 8px;border-bottom:1px solid var(--ink-900);font-size:11px;color:var(--ink-500);letter-spacing:.08em}
.co-list-head .h-code{width:4.2em}
.co-list-head .h-name{flex:1;min-width:0}
.co-list-head .h-val{white-space:nowrap}
.new-list.has-head{border-top:0;margin-top:0}
@media (max-width:759px){
  .rank-head.with-bar{grid-template-columns:2.2em 1fr 5.4em}
  .rank-head.with-bar span:nth-child(3){display:none}
}
/* (6) 業種/県グリッド: 年収と社数を別カラム化（各右寄せ+tabular-nums） */
.ind-grid a{display:grid;grid-template-columns:1fr minmax(5.8em,auto) minmax(3.6em,auto);align-items:baseline;gap:8px}
.ind-grid .i-sal,.ind-grid .i-cnt{font-family:var(--font-num);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.ind-grid .i-sal{color:var(--ink-700);font-size:12.5px}
.ind-grid .i-cnt{color:var(--ink-500);font-size:10.5px}
/* (9) 帯ナビ7セルをラベル上段/社数下段の2段・センター寄せに全幅統一 */
.dist .band-cell{flex-direction:column;align-items:center;justify-content:center;gap:1px;text-align:center;padding:9px 10px}
.dist .band-cell .b-range{font-size:12px;word-break:keep-all;overflow-wrap:anywhere}
.dist .band-cell .b-range small,.dist .band-cell .b-count{white-space:nowrap}
/* (10) 新着ティッカーの低速無限自動スクロール（CSSのみ・transformのみ=CLSゼロ。hover/focusで停止） */
/* 第6波改#1: ラベルの外側(.ticker-viewport)でクリップ。スクロールはラベル右端で消え、ラベルの下をくぐらない */
.ticker-viewport{flex:1 1 auto;min-width:0;overflow:hidden}
.ticker-track{display:flex;min-width:max-content;animation:ticker-marquee 45s linear infinite;will-change:transform}
.ticker-set{display:flex;flex:none}
.ticker:hover .ticker-track,.ticker:focus-within .ticker-track{animation-play-state:paused}
@keyframes ticker-marquee{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion: reduce){
  .ticker-track{animation:none!important}
  .ticker-viewport{overflow-x:auto}
}
/* (13) 共有アイコン（公式モノクロSVG）の縦位置 */
/* (14) 追従ヘッダー＋SPバーガーメニュー（details/summary・JSゼロ。§11記録） */
.site-header{position:sticky;top:0;z-index:50;background:var(--paper)}
.site-header .container{height:56px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.site-header .header-nav{display:flex;gap:16px;font-size:13px;font-weight:500;white-space:nowrap}
.site-header .header-search{display:flex;align-items:center;gap:8px;border:1px solid var(--ink-300);padding:7px 12px;flex:0 1 230px;min-width:0;background:var(--paper)}
.site-header .header-search svg{flex:none;color:var(--ink-500)}
.site-header .header-search input{border:0;outline:0;width:100%;font-family:var(--font-jp);font-size:13px;background:transparent}
.site-header .header-search input::placeholder{color:var(--ink-500)}
.hmenu{display:none}
.sticky-bar{top:56px}
[id]{scroll-margin-top:72px}
@media (max-width:759px){
  .site-header .container{height:48px}
  .site-header .header-nav{display:none}
  .site-header > .container > .header-search{display:none}
  .hmenu{display:block}
  .hmenu summary{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;padding:7px 10px;border:1px solid var(--ink-300);cursor:pointer;list-style:none;white-space:nowrap}
  .hmenu summary::-webkit-details-marker{display:none}
  .hmenu[open] summary{background:var(--ink-900);color:#fff;border-color:var(--ink-900)}
  .hmenu-panel{position:fixed;left:0;right:0;top:48px;bottom:0;background:var(--paper);border-top:1px solid var(--ink-200);overflow-y:auto;padding:18px 20px 40px;z-index:60;display:grid;gap:18px;align-content:start}
  .hmenu-panel .header-search{display:flex;width:100%;flex:none}
  .hmenu-links{display:grid}
  .hmenu-links a{padding:13px 2px;border-bottom:1px solid var(--ink-200);font-size:14px;font-weight:600}
  .hmenu-panel .share{margin-top:4px}
  .sticky-bar{top:48px}
  [id]{scroll-margin-top:64px}
}
/* ロゴ組込み（§14(7)）: ヘッダーはマーク（PC40px/SP32px）+「年収白書」のみ。
   第5波A3: MZワードマークはヘッダー・フッターから撤去（logo-mz.svgはassetsに残置・未使用）。
   フッターの「年収白書 by MONEY ZONE」はmoneyzone.jpへのテキストリンク（下線なし・hover/focusで下線） */
.site-header .brand{align-items:center}
svg.brand-mark{width:33.4px;height:40px;background:none;transform:none}
.site-footer .f-brand a:focus-visible{text-decoration:underline}
/* 第5波A1: 共有はブランドカラーのテキストボタン4つ（X=#000・LINE=#06C755・はてブ=#00A4DE・コピー=ニュートラル。
   SPタップ高44px以上。旧ピル型 .share a の上書きを兼ねる詳細度）。
   A2: コピーの小アイコンと完了チェックはLucideアイコンセット（ISCライセンス）のcopy/check。完了時は.copiedで切替 */
.share{gap:8px}
.share .share-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;min-height:32px;border:1px solid transparent;background:var(--ink-900);color:#fff;font-family:var(--font-jp);font-size:12.5px;font-weight:700;line-height:1;cursor:pointer;transition:opacity .15s}
/* 第6波#2: ホバーはふんわり透過（旧ピル型のグレー背景で白文字が消える不具合を解消） */
.share .share-btn:hover{opacity:.82;text-decoration:none}
.share .share-x{background:#000}
.share .share-line{background:#06C755}
.share .share-hatena{background:#00A4DE}
.share .share-copy{background:var(--paper);color:var(--ink-700);border-color:var(--ink-300)}
.share .share-btn svg{width:14px;height:14px;display:block}
.share .share-copy .ico-check{display:none;color:var(--down)}
/* SR専用の不可視テキスト（コピー完了のrole="status"通知用） */
.vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.share .share-copy.copied .ico-copy{display:none}
.share .share-copy.copied .ico-check{display:block}
@media (max-width:759px){
  svg.brand-mark{width:26.7px;height:32px}
  .share .share-btn{min-height:44px;padding:0 16px}
}
