/* メーカーキャリア 本体のCSS（mc-20261031d.css）。ファイル名に版を入れている: 本番のサーバーがURLの ?ver= を取り除き、同じURLだとブラウザが最大7日古いCSSを使い続けるため。CSSを直したら、このファイル名の末尾（日付と英字）を変え、functions.php の MC_CSS_FILE も同じにする */

:root {
  /* 変数名は旧デザインのまま（--navy=見出し・罫線の墨色、--amber=アクセントの緑）。値だけ差し替えている */
  --bg: #f6f7f9; --paper: #fff; --fg: #111827; --mut: #4b5563; --line: #e1e5ea; --soft: #eef1f4;
  --navy: #111827; --navy-2: #1f2937; --link: #047857; --amber: #059669; --amber-soft: #e6f6ef; --r: 0.5rem;
  --font: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", system-ui, sans-serif;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; scroll-padding-top: 1rem; -webkit-text-size-adjust: 100%; }

body { margin: 0; background: var(--bg); color: var(--fg); font: 1rem/1.9 var(--font); }

img { max-width: 100%; height: auto; }

a { color: var(--link); }

.skip { position: absolute; left: -999px; }
 .skip:focus { left: 0.5rem; top: 0.5rem; background: #fff; padding: 0.375rem 0.625rem; z-index: 99; }

.wrap { max-width: 67.5rem; margin: 0 auto; padding: 0 max(1rem, env(safe-area-inset-left)); }
 /* ヘッダー・フッター（1080px）と左端をそろえる */
.wrap--read { max-width: 47.5rem; }


/* ヘッダー */
.hd { background: var(--navy); color: #fff; }

.hd__in { max-width: 67.5rem; margin: 0 auto; padding: 0.625rem 1rem; display: flex; align-items: center; gap: 0.875rem 1.5rem; flex-wrap: wrap; }

.hd__logo { color: #fff; font-weight: 900; font-size: 1.1875rem; text-decoration: none; display: block; line-height: 1.3; }

.hd__logo small { display: block; font-weight: 400; font-size: 0.625rem; letter-spacing: .06em; opacity: .75; }

.gnav { display: flex; align-items: center; gap: 0.25rem; margin-left: auto; flex-wrap: wrap; }

.gnav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 2px; }

.gnav a { color: #fff; text-decoration: none; font-size: 0.875rem; padding: 0.375rem 0.75rem; border-radius: 0.375rem; display: block; }

.gnav a:hover { background: rgba(255,255,255,.12); }

.gnav a.gnav__cta { background: var(--amber); color: #1c1405; font-weight: 700; }


/* トップ */
.hero { background: linear-gradient(180deg, var(--navy), var(--navy-2)); color: #fff; padding: 2.75rem 0 2.5rem; }

.sec { padding-top: 2.125rem; }

.sec__title { font-size: 1.25rem; margin: 0 0 0.875rem; padding-bottom: 0.5rem; border-bottom: 3px solid var(--navy); }


/* 一覧（カードの影や角丸の大きい枠は使わず、横長の行にする） */
.list { display: grid; gap: 0; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; }

.item { display: grid; grid-template-columns: 10.5rem minmax(0, 1fr); gap: 1rem; padding: 0.875rem 1rem; border-bottom: 1px solid var(--line); align-items: center; }

.item:last-child { border-bottom: 0; }

.item__thumb { display: block; aspect-ratio: 1280 / 670; background: var(--soft); border-radius: 0.375rem; overflow: hidden; }

.item__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }

.item__title { font-size: 1rem; line-height: 1.55; margin: 0.25rem 0; font-weight: 700; }

.item__title a { color: var(--fg); text-decoration: none; }
 .item__title a:hover { text-decoration: underline; }

.item__date { font-size: 0.75rem; color: var(--mut); }

.tag { display: inline-block; font-size: 0.6875rem; font-weight: 700; color: var(--navy-2); background: var(--soft); border-radius: 0.25rem; padding: 1px 0.5rem; }


/* 一覧ページ・パンくず */
.archive__head { padding: 1.375rem 0 0.875rem; }

.archive__title { font-size: clamp(1.375rem, 3.4vw, 1.75rem); margin: 0.375rem 0; line-height: 1.45; }

.archive__desc { color: var(--mut); margin: 0 0 0.625rem; font-size: 0.875rem; }

.chips { list-style: none; padding: 0; margin: 0.5rem 0 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }

.chips a { display: block; background: var(--soft); color: var(--navy-2); text-decoration: none; padding: 0.3125rem 0.875rem; border-radius: 999px; font-size: 0.875rem; }

.crumb ol { list-style: none; margin: 0; padding: 0; font-size: 0.75rem; color: var(--mut); display: flex; flex-wrap: wrap; gap: 2px 0; }

.crumb li + li::before { content: "›"; margin: 0 0.4375rem; }

.crumb a { color: var(--mut); }

.pager ul { list-style: none; display: flex; gap: 0.375rem; justify-content: center; padding: 0; margin: 1.375rem 0; flex-wrap: wrap; }

.pager a, .pager span { display: block; min-width: 2.5rem; padding: 0.5rem 0.75rem; text-align: center; border: 1px solid var(--line); border-radius: 0.375rem; background: var(--paper); text-decoration: none; }

.pager .current { background: var(--navy); color: #fff; border-color: var(--navy); }


/* 記事 */
.entry { padding: 1.375rem 0 0.625rem; }

.entry__title { font-size: clamp(1.4375rem, 3.4vw, 1.875rem); line-height: 1.45; margin: 0.5rem 0; font-weight: 900; text-wrap: balance; }

.entry__meta { font-size: 0.75rem; color: var(--mut); margin: 0 0 0.875rem; display: flex; gap: 0.75rem; }

.toc { background: var(--soft); border-radius: var(--r); padding: 0.75rem 1.125rem; margin: 0 0 1.375rem; font-size: 0.875rem; }

.toc b { display: block; margin-bottom: 2px; }
 .toc ol { margin: 0; padding-left: 1.4em; }
 .toc a { text-decoration: none; }

.entry__body h2 { font-size: 1.3125rem; line-height: 1.5; margin: 2.375rem 0 0.75rem; padding-bottom: 0.5rem; border-bottom: 3px solid var(--navy); font-weight: 700; }

.entry__body h3 { font-size: 1.125rem; line-height: 1.55; margin: 1.625rem 0 0.625rem; padding-left: 0.625rem; border-left: 4px solid var(--amber); }

.entry__body p { margin: 0 0 0.875rem; }

.entry__body ul, .entry__body ol { padding-left: 1.3em; margin: 0 0 0.875rem; }

.entry__body figure { margin: 0 0 0.375rem; }

.entry__body .wp-block-table, .entry__body figure.wp-block-table { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--r); background: var(--paper); }

.entry__body table { border-collapse: collapse; width: 100%; min-width: 27.5rem; font-size: 0.875rem; line-height: 1.6; }

.entry__body th, .entry__body td { padding: 0.5625rem 0.75rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }

.entry__body thead th, .entry__body tbody th { background: var(--soft); }

.entry__body tbody tr:last-child td, .entry__body tbody tr:last-child th { border-bottom: 0; }

.entry__body blockquote { margin: 0 0 0.875rem; background: var(--amber-soft); border-radius: var(--r); padding: 0.625rem 1rem; }

.entry__body blockquote p:last-child { margin: 0; }


/* フッター */
.ft { background: var(--navy); color: #cfd9e3; font-size: 0.8125rem; margin-top: 2.75rem; padding: 1.625rem 0; }

.ft__in { max-width: 67.5rem; margin: 0 auto; padding: 0 1rem; }

.ft__name { font-weight: 900; font-size: 1rem; color: #fff; margin: 0 0 0.625rem; }
 .ft__name span { display: block; font-weight: 400; font-size: 0.75rem; color: #a9b8c6; }

.ft__nav a { color: #cfd9e3; display: block; padding: 2px 0; }

.ft__copy { margin: 0; color: #a9b8c6; }


/* トップ: 2列の一覧・企業チップ */
@media (min-width: 56.25em) { .list--2col { grid-template-columns: 1fr 1fr; } .list--2col .item { border-right: 1px solid var(--line); } .list--2col .item:nth-child(2n) { border-right: 0; } .list--2col .item:nth-last-child(-n+2) { border-bottom: 0; } .list--2col .item { grid-template-columns: 8.25rem minmax(0, 1fr); } }

.chips--co a { background: var(--paper); border: 1px solid var(--line); color: var(--fg); border-radius: 0.375rem; padding: 0.375rem 0.875rem; }

.chips--co a:hover { border-color: var(--navy); }


/* トップ: ランキング上位 */
.rank { list-style: none; margin: 0; padding: 0; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; }

.rank li { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr) auto; align-items: center; gap: 0.75rem; padding: 0.6875rem 1rem; border-bottom: 1px solid var(--line); }

.rank li:last-child { border-bottom: 0; }

.rank a { color: var(--fg); font-weight: 700; text-decoration: none; }
 .rank a:hover { text-decoration: underline; }

.rank b { font-size: 1rem; }


/* 企業データ末尾の「あとに読むなら」: 文字帯は1行にして、スマホでは縦に長くしない（記事側はインライン指定なので !important） */
.mc-rel__band span { display: inline; }

@media (max-width: 43.75em) {
  .mc-rel { grid-template-columns: 1fr !important; gap: 0.5rem !important; }
  .mc-rel__band { padding: 0.5rem 0.875rem !important; font-size: 0.8125rem !important; }
}

/* 固定ページ・404・検索 */
main#main.wrap--read, .archive__head { padding-top: 1.375rem; }

.search-form { display: flex; gap: 0.5rem; margin: 0.625rem 0 0; max-width: 32.5rem; }

.search-form label { flex: 1; }
 .search-form input[type="search"] { width: 100%; padding: 0.625rem 0.75rem; border: 1px solid var(--line); border-radius: 0.375rem; font: inherit; background: var(--paper); }

.search-form input[type="submit"] { padding: 0.625rem 1.125rem; border: 0; border-radius: 0.375rem; background: var(--navy); color: #fff; font: inherit; font-weight: 700; cursor: pointer; }

.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }


/* 一覧: 題名のリンクを面全体に広げる（サムネ用の別リンクを持たない） */
.item { position: relative; }

.item__title a::after { content: ""; position: absolute; inset: 0; }



.sec__lead { margin: 0 0 0.875rem; color: var(--mut); font-size: 0.875rem; line-height: 1.8; }

.co-table { width: 100%; border-collapse: collapse; background: var(--paper); font-size: 0.875rem; }

.co-table th, .co-table td { padding: 0.5625rem 0.75rem; border-bottom: 1px solid var(--line); text-align: left; }

.co-table thead th { background: var(--soft); font-weight: 700; white-space: nowrap; }

.co-table tbody th { font-weight: 500; }

.co-table td { white-space: nowrap; font-variant-numeric: tabular-nums; }

.co-table a { color: var(--link); text-decoration: none; }

.co-table a:hover { text-decoration: underline; }

.note { background: var(--amber-soft); border-radius: var(--r); padding: 0.75rem 1rem; font-size: 0.875rem; margin: 0; }

.note b { color: var(--amber); }


/* 個別ページ: 本文＋サイドバーの2列 */
.two { display: grid; grid-template-columns: minmax(0, 1fr) 17.5rem; gap: 2rem; align-items: start; padding-top: 0; }

.two .entry { max-width: 45rem; min-width: 0; }

.two > .side { padding-top: 1.375rem; }

@media (max-width: 56.25em) {
  .two { grid-template-columns: minmax(0, 1fr); gap: 0.5rem; }
  .two > .side { padding-top: 0; }
}

.side { display: grid; gap: 0.875rem; min-width: 0; align-content: start; }
 /* 固定表示にしない: 画面より縦に長いと、下の箱が記事を読み終えるまで見えなくなるため */
.box { background: var(--paper); border: 1px solid var(--line); border-radius: var(--r); padding: 0.75rem 1rem; }

.box__t { margin: 0 0 0.375rem; font-size: 0.875rem; color: var(--navy-2); border: 0; padding: 0; }

.box ul { margin: 0; padding-left: 1.2em; font-size: 0.875rem; line-height: 1.7; }

.box li { margin-bottom: 0.25rem; }

.box p { margin: 0; font-size: 0.8125rem; color: var(--mut); line-height: 1.7; }

.entry__meta a { color: var(--mut); }

.entry__meta { flex-wrap: wrap; gap: 2px 0.875rem; }

.entry__body--wide { max-width: none; }


/* フッター: 3列 */
.ft__h { margin: 0 0 0.375rem; font-size: 0.8125rem; color: #fff; }

.ft__text { margin: 0; color: #a9b8c6; line-height: 1.7; }

.ft__copy { margin-top: 1.125rem; }


.ft__nav a { text-decoration: none; }
 .ft__nav a:hover { text-decoration: underline; }


.box--key { border-color: var(--navy); box-shadow: inset 0 3px 0 var(--navy); }


/* カテゴリ: 本文＋サイドバー */
.two__main { min-width: 0; }

.archive__head .chips { margin-bottom: 0.25rem; }

.two__main > .sec__title { margin-top: 1.125rem; }


/* カテゴリ: 本文＋サイドバー */
.two__main { min-width: 0; }

.archive__head .chips { margin-bottom: 0.25rem; }

.two__main > .sec__title { margin-top: 1.125rem; }


/* パンくず: 現在のページ名は1行で省略 */
.crumb__cur { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }


/* スマホ: ヘッダーはロゴだけの1行。ランキングなどへはフッターとトップのボタン、現在地はパンくずで案内する。パンくずは1行で横スクロール */
@media (max-width: 43.75em) {
  .hd__in { padding: 0.625rem 1rem; flex-wrap: nowrap; }
  .hd__logo { flex: 1 1 0; min-width: 0; font-size: 1.125rem; white-space: nowrap; }
  .hd__logo small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .gnav { display: none; }
  .crumb ol { flex-wrap: wrap; row-gap: 2px; }
  .crumb li.crumb__cur { flex: 1 1 100%; min-width: 0; max-width: 100%; }
  .crumb li.crumb__cur::before { display: none; }
}

@media (max-width: 22.5em) {
  .hd__logo { font-size: 1rem; }
}

/* 中間幅: メニューはロゴの下に左から並べる（右に寄せない） */
@media (min-width: 43.8125em) and (max-width: 61.25em) { .gnav { margin-left: 0; width: 100%; } }


/* フッター（一般的な形: ブランド紹介＋カテゴリ＋主要ページ＋サイト情報、下に免責とコピーライト） */
.ft__grid { display: grid; grid-template-columns: 1.6fr 1.1fr 1.4fr 1fr; gap: 1.5rem 1.75rem; }

@media (max-width: 56.25em) {
  .ft__grid { grid-template-columns: 1fr 1fr; }
  .ft__brand { grid-column: 1 / -1; }
}

@media (max-width: 32.5em) {
  .ft__grid { grid-template-columns: 1fr; }
}

.ft__name a { color: #fff; text-decoration: none; }

.ft__nav ul { list-style: none; padding: 0; margin: 0; display: block; }

.ft__nav > ul > li { padding: 0.1875rem 0; line-height: 1.6; }

.ft__bottom { margin-top: 1.375rem; padding-top: 0.875rem; border-top: 1px solid rgba(255,255,255,.14); }

.ft__disc { margin: 0 0 0.375rem; color: #a9b8c6; font-size: 0.75rem; line-height: 1.7; }

.ft__bottom .ft__copy { margin: 0; }
/* 日本語の見出しは、単語の途中で折り返さない（対応ブラウザのみ。非対応でも崩れない） */
.entry__title, .archive__title, .item__title, .sec__title, .entry__body h2, .entry__body h3 { word-break: auto-phrase; }


.pager--co ul { margin: 0.875rem 0; }


/* ── 見た目の仕上げ ── */
/* ヒーローの数字タイル */
.stats { list-style: none; margin: 1.625rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; max-width: 47.5rem; }

.stats li { background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.18); border-radius: var(--r); padding: 0.75rem 1rem; }

.stats b { display: block; font-size: 1.625rem; line-height: 1.3; font-weight: 900; color: #fff; font-variant-numeric: tabular-nums; }

.stats b small { font-size: 0.8125rem; font-weight: 700; margin-left: 0.1875rem; color: #f3c987; }

.stats span { display: block; margin-top: 2px; font-size: 0.75rem; color: #cfd9e3; line-height: 1.6; }

@media (max-width: 43.75em) {
  .stats { grid-template-columns: 1fr; gap: 0.5rem; }
  .stats li { display: flex; align-items: baseline; gap: 0.625rem; padding: 0.5625rem 0.875rem; }
  .stats b { font-size: 1.25rem; flex: 0 0 auto; }
}


/* 企業の表: 給与は右寄せ・強調、行にホバー */
.co-table td:nth-child(2), .co-table th:nth-child(2) { text-align: right; }

.co-table td:nth-child(2) { font-weight: 700; color: var(--navy); }

.co-table tbody tr:hover > * { background: var(--amber-soft); }

.co-table tbody th { background: var(--paper); }

.co-table tbody tr:last-child > * { border-bottom: 0; }

.rank li:hover { background: var(--soft); }

.item:hover { background: #fafbfc; }

.box a:hover, .crumb a:hover { color: var(--navy); }

a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid var(--amber); outline-offset: 2px; border-radius: 0.1875rem; }

.pager a:hover { border-color: var(--navy); }


/* 記事の表: 縞と見出しの強調で、数字の行を追いやすく */
.entry__body tbody tr:nth-child(even) td { background: #fafbfc; }

.entry__body thead th { color: var(--navy); font-weight: 700; white-space: nowrap; }

@media (max-width: 43.75em) {
  .hero { padding: 1.75rem 0 1.625rem; }
}

@media (max-width: 43.75em) {
  .stats li:last-child b { font-size: 1rem; }
  .stats span { font-size: 0.75rem; }
}


/* トップの「続きを見る」: 番号の下に、何社目かを小さく添える */
.co-more { margin: 0.875rem 0 0.375rem; font-size: 0.875rem; color: var(--mut); }

.co-more b { color: var(--fg); font-size: 0.9375rem; }

/* スマホの企業表: 会社名の幅を確保する（余白と文字を小さく、決算期は小さく折り返す） */
@media (max-width: 43.75em) {
  .co-table th, .co-table td { padding: 0.5625rem 0.5rem; font-size: 0.8125rem; }
  .co-table td:nth-child(3) { white-space: normal; font-size: 0.6875rem; line-height: 1.35; width: 3.625rem; color: var(--mut); }
  .co-table thead th:nth-child(3) { font-size: 0.75rem; }
}


/* 極端に狭い画面（〜340px）: 数字タイルと見出しを少し小さくする */
@media (max-width: 21.25em) { .stats b { font-size: 1.125rem; } .entry__title { font-size: 1.3125rem; } }

/* 極端に広い画面（1800px〜）: 本文の幅は保ったまま、文字を少し大きくして、中央の細い帯に見えにくくする */
@media (min-width: 112.5em) { html { zoom: 1.12; } }

/* トップの「続きを見る」: 見出しとボタンを中央にそろえ、4つのボタンは同じ幅にする */
.co-more { text-align: center; margin: 1.125rem 0 0.5rem; }

.co-more b { display: block; margin-bottom: 2px; }

.co-more span { display: inline-block; }


/* 記事カードの抜粋（2行まで）と、見出しの本数 */
.item__ex { margin: 0.25rem 0 0; font-size: 0.8125rem; line-height: 1.7; color: var(--mut); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

.sec__count { font-size: 0.8125rem; font-weight: 400; color: var(--mut); margin-left: 0.375rem; }


/* 行き止まりのページ（検索0件・404） */
.deadend { margin-top: 0.5rem; }

.deadend__t { font-size: 1rem; margin: 1.375rem 0 0.5rem; }

.deadend__lead { margin: 0.875rem 0 0.375rem; }

.list .deadend__lead { padding: 0.875rem 1rem 0; }

.list .deadend { padding: 0 1rem 1rem; }


/* カテゴリのサイドバー: 現在地を強調し、記事数を右に */
.box__cats { list-style: none; padding: 0; margin: 0; }

.box__cats li { display: flex; justify-content: space-between; gap: 0.5rem; padding: 0.3125rem 0; border-bottom: 1px solid var(--line); margin: 0; }

.box__cats li:last-child { border-bottom: 0; }

.box__cats li span { color: var(--mut); font-size: 0.75rem; }

.box__cats li.is-cur a { font-weight: 700; color: var(--navy); text-decoration: none; }

.box__cats li.is-cur { border-left: 3px solid var(--amber); padding-left: 0.5rem; margin-left: -0.6875rem; }


p.ft__h { margin: 0 0 0.375rem; }


/* スマホ・タブレット: サイドバーはページの下に回り、フッターと同じリンクが続けて出るので、重複する箱は隠す（パソコン幅では出す） */
@media (max-width: 56.25em) { .box--dup { display: none; } }



/* メニュー（スマホ）: ハンバーガーのボタンと、右から出る引き出し（dialog）。パソコン幅ではボタンも出さない */
.hd__menu { display: none; flex: 0 0 auto; flex-direction: column; align-items: center; justify-content: center; gap: 0.3125rem; width: 3.375rem; height: 3.25rem; padding: 0; font: inherit; color: #fff; background: transparent; border: 1px solid rgba(255,255,255,.4); border-radius: 0.5rem; cursor: pointer; }

.hd__menu:hover { background: rgba(255,255,255,.1); }

.burger, .burger::before, .burger::after { display: block; width: 1.375rem; height: 2px; background: #fff; border-radius: 2px; }

.burger { position: relative; margin-top: 0.5rem; }

.burger::before, .burger::after { content: ""; position: absolute; left: 0; }

.burger::before { top: -0.4375rem; }
 .burger::after { top: 0.4375rem; }

.hd__menu-t { font-size: 0.625rem; font-weight: 700; line-height: 1; letter-spacing: .04em; margin-top: 0.375rem; }

.menu { position: fixed; inset: 0 0 0 auto; width: min(88vw, 23.75rem); height: 100vh; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; border-radius: 0.875rem 0 0 0.875rem; background: var(--paper); color: var(--fg); overflow: auto; box-shadow: -8px 0 28px rgba(10,22,34,.35); }

.menu[open] { animation: mc-slide .22s ease-out; }

@keyframes mc-slide { from { transform: translateX(100%); } to { transform: none; } }

.menu::backdrop { background: rgba(10,22,34,.55); }

@media (prefers-reduced-motion: reduce) {
  .menu[open] { animation: none; }
}

.menu__bar { position: sticky; top: 0; z-index: 1; display: flex; justify-content: space-between; align-items: center; padding: 0.5rem 0.75rem 0.5rem 1.125rem; background: var(--navy); color: #fff; }

.menu__title { font-weight: 900; font-size: 1rem; }

.menu__close { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; padding: 0; background: transparent; border: 1px solid rgba(255,255,255,.4); border-radius: 0.5rem; cursor: pointer; }

.x, .x::before { display: block; width: 1.25rem; height: 2px; background: #fff; border-radius: 2px; transform: rotate(45deg); }

.x::before { content: ""; transform: rotate(90deg); }

.menu__search { padding: 0.75rem 1rem 0; }

.menu__search .search-form { margin: 0; max-width: none; }

.menu__body { padding: 0.25rem 1rem 1.75rem; }

.menu__h { margin: 1.125rem 0 0.375rem; font-size: 0.75rem; font-weight: 700; color: var(--mut); letter-spacing: .06em; }

.menu__links { list-style: none; margin: 0; padding: 0; }

.menu__links a { display: block; padding: 0.75rem 0; border-bottom: 1px solid var(--line); color: var(--link); text-decoration: none; }

body:has(dialog.menu[open]) { overflow: hidden; }

.menu--sheet .menu__links { padding: 0.25rem 1rem 1.75rem; }

.menu--sheet .menu__links a { display: flex; justify-content: space-between; gap: 0.75rem; }

.menu--sheet .menu__links small { color: var(--mut); font-size: 0.75rem; }

.chips .chips__all { padding: 0.4375rem 0.875rem; font: inherit; font-size: 0.875rem; font-weight: 700; color: var(--link); background: #fff; border: 1px solid var(--link); border-radius: 999px; cursor: pointer; }


/* カテゴリページ: 企業一覧へのジャンプ（ページ内の案内。チップではなく、全幅のリンク） */
.jump { display: flex; justify-content: space-between; align-items: center; gap: 0.75rem; margin: 0.75rem 0 0; padding: 0.75rem 1rem; background: var(--amber-soft); border: 1px solid #ecd2a2; border-radius: var(--r); color: #6b4208; font-weight: 700; font-size: 0.9375rem; text-decoration: none; }

.jump i { font-style: normal; font-size: 1.125rem; }

.jump:hover { border-color: var(--amber); }

@media (max-width: 43.75em) {
  .hd__menu { display: flex; }
}


@media (max-width: 22.5em) {
  .hd__logo small { display: none; }
}


/* サイドバーのカテゴリ: いまのカテゴリの下に小カテゴリを展開（インデント・小さめの文字） */
.box__cats ul { list-style: none; margin: 0.25rem 0 2px; padding: 0 0 0 0.75rem; font-size: 0.8125rem; }

.box__cats ul li { border-bottom: 0; padding: 0.1875rem 0; }

.box__cats li { display: block; }

.box__cats > li > a { font-size: 0.875rem; }

.box__cats > li > span { float: right; }

.box__cats ul li span { float: right; }

.box__cats ul li.is-cur a { font-weight: 700; color: var(--navy); text-decoration: none; }

.box__cats ul li.is-cur { border-left: 0; padding-left: 0; margin-left: 0; }


/* 増えても長くならないための上限 */
/* 目次: details。開閉の三角は消し、見出しの右に ▾ を出す */
.toc summary { cursor: pointer; font-weight: 700; list-style: none; display: flex; align-items: center; }

.toc summary::-webkit-details-marker { display: none; }

.toc summary::after { content: "▾"; margin-left: auto; color: var(--mut); transition: transform .15s; }

.toc details[open] > summary::after { transform: rotate(180deg); }

.toc summary small { font-weight: 400; color: var(--mut); margin-left: 0.375rem; }

.toc ol { margin-top: 0.5rem; }
/* サイドバーの関連・フッターの主要ページ: 題名は2行まで */
.box__rel a { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* ページ送り: 「…」と、サイドバーの「ほかNカテゴリ」 */
.pager .gap { border: 0; background: transparent; min-width: 0; padding: 0.5rem 0.25rem; color: var(--mut); }

.box__cats ul li.more a { font-size: 0.75rem; color: var(--mut); }


/* カテゴリのカード（トップ「探し方」・スマホのカテゴリのモーダル）: 記事数・小カテゴリ（記事数つき）・最新の記事 */
.cb { display: grid; gap: 0.75rem; }

.cb__card { display: flex; flex-direction: column; gap: 0.5rem; background: var(--paper); border: 1px solid var(--line); border-left: 4px solid var(--amber); border-radius: var(--r); padding: 0.75rem 0.875rem; }

.cb__card.is-cur { border-color: var(--navy); border-left-color: var(--amber); box-shadow: inset 0 0 0 1px var(--navy); }

.cb__head { display: flex; justify-content: space-between; align-items: baseline; gap: 0.5rem; text-decoration: none; color: var(--fg); }

.cb__head b { font-size: 1.0625rem; }
 .cb__head b::after { content: " →"; color: var(--amber); }

.cb__head span { font-size: 0.75rem; color: var(--mut); }

.cb__subs { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.375rem; }

.cb__subs a { display: inline-flex; align-items: baseline; gap: 0.3125rem; padding: 0.3125rem 0.75rem; border-radius: 999px; background: var(--soft); color: var(--navy-2); font-size: 0.8125rem; text-decoration: none; }

.cb__subs a.is-cur { background: var(--navy); color: #fff; }

.cb__subs small { font-size: 0.6875rem; opacity: .7; }

.cb__latest { margin: 0; padding-top: 0.5rem; border-top: 1px dashed var(--line); font-size: 0.8125rem; line-height: 1.6; color: var(--mut); }

.cb__latest small { display: inline-block; margin-right: 0.375rem; padding: 0 0.375rem; border-radius: 0.1875rem; background: var(--amber-soft); color: #7a4a05; font-weight: 700; font-size: 0.6875rem; }

.cb__latest a { color: var(--fg); text-decoration: none; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

.cb__latest small + a { display: inline; }

.cb--list { gap: 0.625rem; }


p.box__t { display: block; font-weight: 700; }


/* 固定ページ（運営者情報など）の下の、サイト情報の行き来 */
.policy-nav { margin: 0.5rem 0 0; padding: 0.875rem 1rem; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r); }

.policy-nav ul { list-style: none; margin: 0.375rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }

.policy-nav a, .policy-nav span { display: block; padding: 0.4375rem 0.875rem; border-radius: 999px; background: var(--soft); color: var(--navy-2); font-size: 0.875rem; text-decoration: none; }

.policy-nav span { background: var(--navy); color: #fff; }

.box p.box__t, .policy-nav p.box__t { margin: 0 0 0.375rem; font-size: 0.875rem; font-weight: 700; color: var(--navy-2); line-height: 1.6; }


/* 企業一覧ページ: 表の上の数字（収録社数・最高・最低） */
.facts { list-style: none; margin: 1.125rem 0 0.5rem; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.625rem; }

.facts li { background: var(--paper); border: 1px solid var(--line); border-radius: var(--r); padding: 0.75rem 0.875rem; }

.facts b { display: block; font-size: 1.625rem; line-height: 1.3; font-weight: 900; color: var(--navy); font-variant-numeric: tabular-nums; }

.facts b small { font-size: 0.8125rem; font-weight: 700; margin-left: 0.1875rem; color: var(--amber); }

.facts span { display: block; margin-top: 2px; font-size: 0.75rem; color: var(--mut); line-height: 1.6; }

.facts__note { margin: 0.375rem 0 0.25rem; font-size: 0.8125rem; color: var(--mut); }

@media (max-width: 43.75em) {
  .facts { grid-template-columns: 1fr; gap: 0.5rem; }
  .facts li { display: flex; align-items: baseline; gap: 0.625rem; padding: 0.5625rem 0.875rem; }
  .facts b { font-size: 1.25rem; flex: 0 0 auto; }
}

.entry__body .facts { padding-left: 0; margin-left: 0; }


/* お問い合わせフォーム（Contact Form 7）。フォームのあるページだけで読み込まれる */
.wpcf7-form { max-width: 40rem; }

.wpcf7-form fieldset.hidden-fields-container { display: none; }

.wpcf7-form p { margin: 0 0 1rem; }

.wpcf7-form label { display: block; font-weight: 700; font-size: 0.875rem; line-height: 1.6; }

.wpcf7-form-control-wrap { display: block; margin-top: 0.3125rem; }

.wpcf7-form input[type="text"], .wpcf7-form input[type="email"], .wpcf7-form input[type="tel"], .wpcf7-form input[type="url"], .wpcf7-form select, .wpcf7-form textarea { width: 100%; padding: 0.6875rem 0.75rem; font: inherit; font-weight: 400; color: var(--fg); background: var(--paper); border: 1px solid var(--line); border-radius: 0.375rem; }

.wpcf7-form textarea { min-height: 10.625rem; resize: vertical; }

.wpcf7-form input:focus, .wpcf7-form textarea:focus, .wpcf7-form select:focus { outline: 3px solid var(--amber); outline-offset: 1px; border-color: var(--navy); }

.wpcf7-form .wpcf7-list-item { display: block; margin: 0 0 0.375rem; }

.wpcf7-form .wpcf7-submit { display: inline-block; min-height: 3rem; padding: 0.75rem 2rem; font: inherit; font-weight: 700; color: #fff; background: var(--navy); border: 0; border-radius: 0.375rem; cursor: pointer; }

.wpcf7-form .wpcf7-submit:hover { background: var(--navy-2); }

.wpcf7-not-valid-tip { display: block; margin-top: 0.25rem; font-size: 0.8125rem; color: #b3261e; }

.wpcf7-response-output { margin: 1rem 0 0 !important; padding: 0.75rem 1rem !important; border-radius: 0.375rem; font-size: 0.875rem; }

.wpcf7-spinner { display: none; }


/* スマホではみ出さないための指定 */
/* 1) 本文の表の最小幅（440px）が、企業の表に当たらないようにする。表は枠の中で横スクロール */
.entry__body .co-table { min-width: 0; }

.tbl { overflow-x: auto; }

/* 2) サムネのない記事は、枠を出さず、本文だけにする */
/* 3) お問い合わせ: 送信前や空のときは、結果の表示欄を出さない */
.wpcf7-form.init .wpcf7-response-output, .wpcf7-response-output:empty { display: none !important; }

/* 4) 表の会社名のリンクは、セルいっぱいを押せるようにする（スマホで押しやすく） */
.co-table tbody th a { display: block; padding: 0.75rem 0.5rem; margin: -0.5625rem -0.5rem; }

/* スマホ: 列が5つ以上ある表（ランキングなど）は、4列目以降（平均年齢・勤続年数・従業員数）を表から外す。横スクロールだと、右の列に気づかないため。数字は、会社名のリンク先（企業データ）で見られる */
@media (max-width: 43.75em) {
  .entry__body table:has(thead th:nth-child(5)) { min-width: 0; font-size: 0.875rem; }
  .entry__body table:has(thead th:nth-child(5)) :is(th, td):nth-child(n+4) { display: none; }
  .entry__body table:has(thead th:nth-child(5)) :is(th, td):nth-child(1) { width: 2.8em; white-space: nowrap; }
  .entry__body table:has(thead th:nth-child(5)) :is(th, td):nth-child(3) { white-space: nowrap; text-align: right; }
  .entry__body figure.wp-block-table:has(thead th:nth-child(5))::after { content: "平均年齢・勤続年数・従業員数は、会社名のリンク先で見られます。"; display: block; padding: 0.5rem 0.75rem 0.625rem; font-size: 0.75rem; color: var(--mut); border-top: 1px solid var(--line); }
}


/* メニューの中のカテゴリ: カードを少し詰める */
.menu .cb__card { padding: 0.625rem 0.75rem; gap: 0.375rem; }

.menu .cb__head b { font-size: 1rem; }


/* スマホのページ送り: 1行に収まる大きさにする。企業一覧の上側のページ送りは出さない（最初の画面を押し下げるため。表の下にある） */
@media (max-width: 43.75em) {
  .pager ul { gap: 0.3125rem; margin: 1rem 0; flex-wrap: wrap; }
  .pager a, .pager span { display: flex; align-items: center; justify-content: center; min-width: 2.25rem; height: 2.5rem; padding: 0 0.5625rem; font-size: 0.875rem; }
  .pager-top { display: none; }
}

.pager a, .pager span { white-space: nowrap; }

@media (max-width: 43.75em) {
  .pager a[rel], .pager a:first-child, .pager li:last-child a { padding: 0 0.6875rem; }
}

/* 狭い画面（〜560px）の記事カード: サムネを上、題名・抜粋を下に積む（横並びだと、題名の列が細すぎて1行5文字ほどで折り返す） */
@media (max-width: 35em) {
  .item, .item--nothumb { grid-template-columns: minmax(0, 1fr); gap: 0.625rem; padding: 0.75rem; }
  .item__thumb { width: 100%; }
  .item__title { font-size: 1rem; }
}


/* メニューのカテゴリ: いまの分野だけ大きく、ほかの分野は名前だけの小さなリンク */
.cb__other-t { margin: 0.875rem 0 0.375rem; font-size: 0.75rem; font-weight: 700; color: var(--mut); letter-spacing: .06em; }

.cb__other { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.375rem; }

.cb__other a { display: inline-flex; align-items: baseline; gap: 0.3125rem; padding: 0.5rem 0.875rem; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); color: var(--fg); font-size: 0.875rem; text-decoration: none; }

.cb__other small { font-size: 0.6875rem; color: var(--mut); }


/* スマホのカテゴリ上部のチップ: 横スクロールにせず、折り返して全部見せる（右側が見落とされるため）。「企業の平均年収一覧」へのジャンプは別の帯 */
@media (max-width: 43.75em) {
  .archive__head .chips { margin: 0.625rem 0 0; gap: 0.375rem; }
  .archive__head .chips a { padding: 0.4375rem 0.875rem; font-size: 0.875rem; }
}

/* パソコン幅: 小カテゴリはサイドバーのカテゴリの木にあるので、タイトル下のチップは出さない（重複）。サイドバーが隠れる幅（〜900px）では出す */
@media (min-width: 56.3125em) { .archive__head .chips { display: none; } }


/* 個別ページのサムネ: パソコン幅は題名の右に小さく、スマホは題名の下に（導入の文を押し下げない） */
.entry__head--thumb { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }

.entry__head--thumb > .crumb, .entry__head--thumb > .tag { grid-column: 1 / -1; }

.entry__head--thumb > .tag { justify-self: start; }

.entry__thumb { display: block; width: 100%; height: auto; aspect-ratio: 1280 / 670; object-fit: cover; border-radius: var(--r); border: 1px solid var(--line); margin: 0.375rem 0 0.5rem; }

@media (min-width: 56.3125em) {
  .entry__head--thumb { grid-template-columns: minmax(0, 1fr) 15.625rem; column-gap: 1.375rem; align-items: start; }
  .entry__head--thumb > .entry__thumb { grid-column: 2; grid-row: 3; margin: 0.5rem 0 0; }
  .entry__head--thumb > .entry__titles { grid-column: 1; grid-row: 3; }
}


/* サムネのない記事: カテゴリ名を載せた枠で、一覧のカードの形をそろえる（パソコン幅）。狭い画面では文字だけのカード */
.item__thumb--ph { display: grid; place-items: center; background: linear-gradient(135deg, var(--navy), var(--navy-2)); color: #fff; font-weight: 900; font-size: 0.8125rem; line-height: 1.4; text-align: center; padding: 0.375rem; }

.item__thumb--ph span { display: block; max-width: 100%; word-break: keep-all; overflow-wrap: break-word; }

@media (max-width: 35em) {
  .item--nothumb .item__thumb--ph { display: none; }
}

/* ページ送りの、番号と「1〜25社」の間を空ける */

/* 「続きを見る」の番号ボタン（社数つき）: 補助の操作なので、小さく。パソコンは中央に4つ、スマホも4つが1行に収まる大きさ */
.pager--labeled ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem; margin: 0 0 0.5rem; padding: 0; }

.pager--labeled a { display: grid; justify-items: center; gap: 0; width: auto; min-width: 5.25rem; height: auto; padding: 0.3125rem 0.75rem; line-height: 1.3; font-weight: 700; font-size: 1rem; }

.pager--labeled a span { display: block; }

.pager--labeled a small { font-weight: 400; font-size: 0.6875rem; color: var(--mut); white-space: nowrap; }

@media (max-width: 43.75em) {
  .pager--labeled ul { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.375rem; }
  .pager--labeled a { min-width: 0; width: 100%; padding: 0.3125rem 0.125rem; }
  .pager--labeled a small { font-size: 0.625rem; }
}

@media (max-width: 21em) {
  .pager--labeled ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.pager--labeled a span { min-width: 0; height: auto; padding: 0; border: 0; background: transparent; border-radius: 0; font-size: 1rem; line-height: 1.3; }


/* メニューのカードの「ほかN件 →」 */
.cb__subs a.cb__more { background: transparent; border: 1px dashed var(--line); color: var(--mut); }


/* 小カテゴリが9つ以上のカテゴリは、サイドバーに入りきらないので、パソコン幅でもチップを出す */
@media (min-width: 56.3125em) { .archive__head .chips.chips--full { display: flex; } }


/* ── 配色の差し替え（2026-10-31）: 濃紺のグラデーション・半透明タイルをやめ、白地＋墨色＋鮮やかな緑1色にする ── */
.hd { background: #fff; color: var(--fg); border-bottom: 1px solid var(--line); }

.hd__logo { color: var(--fg); }

.hd__logo small { opacity: 1; color: var(--mut); }

.gnav a { color: var(--fg); }

.gnav a:hover { background: var(--soft); }

.gnav a.gnav__cta { background: #047857; color: #fff; }

.hd__menu { color: var(--fg); border-color: var(--line); }

.hd__menu:hover { background: var(--soft); }

.burger, .burger::before, .burger::after { background: var(--fg); }

.hero { background: #fff; color: var(--fg); border-bottom: 1px solid var(--line); padding: 2.75rem 0 2.5rem; }

.stats { display: none; }

.sec__title { border-bottom-color: var(--fg); }

.ft { background: #111827; }

.co-table tbody tr:hover > * { background: var(--amber-soft); }

.item__thumb--ph { display: none; }

.item:has(.item__thumb--ph) { grid-template-columns: minmax(0, 1fr); }


/* ── レイアウトの整え（2026-10-31） ── */
.sec__title { border-bottom-width: 2px; }

.hero { padding: 2.25rem 0 2.125rem; }

.co-table { table-layout: fixed; width: 100%; }

.co-table th:nth-child(1), .co-table td:nth-child(1) { width: 52%; }

.co-table th:nth-child(2), .co-table td:nth-child(2) { width: 24%; }

.co-table th:nth-child(3), .co-table td:nth-child(3) { width: 24%; text-align: right; white-space: nowrap; }

.co-table td:nth-child(2) { padding-right: 1.5rem; }

@media (max-width: 43.75em) {
  .co-table th:nth-child(1), .co-table td:nth-child(1) { width: 48%; }
  .co-table td:nth-child(3), .co-table th:nth-child(3) { font-size: 0.75rem; }
}


/* ── 記事ページの整え（2026-10-31）: サムネは題名の文字と重複するので出さない／サイドバーのリンクは下線なし・省略を3行に ── */
.box a { text-decoration: none; }

.box a:hover { text-decoration: underline; }

.box__rel a { -webkit-line-clamp: 3; }

.entry__body h2 { border-bottom-width: 2px; }


/* ── 新しいトップ（2026-10-31）: 左に見出しと検索、右に年収ランキングのカード。職種カードと探し方のタイル ── */
.hero2 { background: #fff; border-bottom: 1px solid var(--line); padding: 2.75rem 0 3rem; }

.hero2__in { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: 3rem; align-items: center; }

.hero2__eyebrow { margin: 0 0 0.625rem; font-weight: 700; color: #047857; font-size: 0.9375rem; }

.hero2__title { margin: 0 0 1rem; font-size: clamp(1.75rem, 4.2vw, 2.625rem); line-height: 1.4; font-weight: 900; word-break: auto-phrase; }

.hero2__lead { margin: 0 0 1.375rem; color: var(--mut); font-size: 1rem; line-height: 1.85; max-width: 34rem; }

.rankcard { background: #fff; border: 1px solid var(--line); border-radius: 0.75rem; padding: 1.125rem 1.25rem 0.875rem; box-shadow: 0 8px 28px rgba(17,24,39,.08); }

.rankcard__label { margin: 0 0 0.625rem; font-weight: 700; font-size: 0.9375rem; }

.rankcard__list { list-style: none; margin: 0; padding: 0; }

.rankcard__list li { display: grid; grid-template-columns: 1.5rem minmax(0, 1fr) auto; column-gap: 0.625rem; align-items: baseline; padding: 0.5rem 0 0.625rem; border-top: 1px solid var(--line); }

.rankcard__n { font-weight: 900; color: #047857; text-align: center; font-variant-numeric: tabular-nums; }

.rankcard__name { color: var(--fg); font-weight: 700; text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.rankcard__name:hover { text-decoration: underline; }

.rankcard__val { font-weight: 900; font-size: 1.125rem; font-variant-numeric: tabular-nums; }

.rankcard__val small { font-size: 0.75rem; font-weight: 700; margin-left: 2px; }

.rankcard__bar { grid-column: 2 / 4; display: block; height: 0.5rem; background: var(--soft); border-radius: 999px; margin-top: 0.375rem; overflow: hidden; }

.rankcard__bar i { display: block; height: 100%; background: #10b981; border-radius: 999px; }

.rankcard__foot { display: flex; justify-content: space-between; gap: 0.75rem; align-items: baseline; margin: 0.375rem 0 0; font-size: 0.75rem; color: var(--mut); border-top: 1px solid var(--line); padding-top: 0.625rem; }

.rankcard__foot a { font-weight: 700; white-space: nowrap; font-size: 0.875rem; }

.jobgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(15.5rem, 100%), 1fr)); gap: 0.875rem; }

.jobcard { background: #fff; border: 1px solid var(--line); border-radius: 0.625rem; padding: 1rem 1.125rem 0.625rem; }

.jobcard h3 { margin: 0 0 0.5rem; font-size: 1.0625rem; }

.jobcard h3 a { color: var(--fg); text-decoration: none; display: flex; justify-content: space-between; align-items: baseline; }

.jobcard h3 a:hover { color: #047857; }

.jobcard h3 small { font-size: 0.75rem; font-weight: 400; color: var(--mut); }

.jobcard ul { list-style: none; margin: 0; padding: 0; }

.jobcard li { border-top: 1px solid var(--line); }

.jobcard li a { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; padding: 0.5625rem 0; font-size: 0.875rem; line-height: 1.6; color: var(--fg); text-decoration: none; }

.jobcard li a:hover { color: #047857; text-decoration: underline; }

.tilegrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(15.5rem, 100%), 1fr)); gap: 0.875rem; }

.tile { display: block; background: #fff; border: 1px solid var(--line); border-radius: 0.625rem; padding: 1rem 1.125rem; text-decoration: none; color: var(--fg); }

.tile b { display: block; font-size: 1.0625rem; margin-bottom: 0.25rem; }

.tile b span { color: #047857; }

.tile > span { display: block; font-size: 0.8125rem; color: var(--mut); line-height: 1.7; }

.tile:hover { border-color: #047857; box-shadow: 0 4px 16px rgba(4,120,87,.12); }

@media (max-width: 56.25em) {
  .hero2 { padding: 1.75rem 0 2rem; }
  .hero2__in { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
}


.hero2__title { font-size: clamp(1.5rem, 2.7vw, 2rem); }

.jobcard li { padding: 0; }

.jobcard li a { padding: 0; margin: 0.5625rem 0; max-height: 3.2em; }


/* ── フッターの作り直し（2026-10-31）: 白基調・4列を同じ高さに・記事の長い題名の列をやめる ── */
.ft { background: #fff; color: var(--fg); border-top: 1px solid var(--line); margin-top: 3rem; padding: 2.25rem 0 1.5rem; }

.ft__grid { grid-template-columns: 1.7fr 1fr 1fr 1fr; gap: 1.5rem 2rem; align-items: start; }

.ft__name { color: var(--fg); font-size: 1.125rem; }

.ft__name a { color: var(--fg); }

.ft__name span { color: var(--mut); }

.ft__text { color: var(--mut); max-width: 24rem; }

.ft__h, p.ft__h { color: var(--fg); font-weight: 700; font-size: 0.875rem; margin: 0 0 0.625rem; }

.ft__nav a { color: var(--fg); padding: 0.3125rem 0; font-size: 0.875rem; }

.ft__nav a:hover { color: #047857; }

.ft__bottom { border-top: 1px solid var(--line); margin-top: 1.75rem; padding-top: 1rem; }

.ft__disc, .ft__copy { color: var(--mut); }

@media (max-width: 56.25em) {
  .ft__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 32.5em) {
  .ft__grid { grid-template-columns: 1fr; }
}

.ft__bottom { border-top: 0; margin-top: 1.25rem; }

.ft__disc { border-top: 1px solid var(--line); padding-top: 1rem; }


/* 画像: 職種カードは先頭に最新記事のアイキャッチ。新着記事は左にサムネ */
.jobcard { padding: 0 0 0.375rem; overflow: hidden; }

.jobcard h3, .jobcard ul { padding-left: 1.125rem; padding-right: 1.125rem; }

.jobcard h3 { margin-top: 0.75rem; }

.dbnew__h { font-size: 0.9375rem; margin: 0 0 0.625rem; color: var(--mut); }

.cogrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(12.5rem, 100%), 1fr)); gap: 0.875rem; }

.cocard { display: block; background: #fff; border: 1px solid var(--line); border-radius: 0.625rem; overflow: hidden; text-decoration: none; color: var(--fg); }

.cocard:hover { border-color: #047857; box-shadow: 0 4px 16px rgba(4,120,87,.12); }

.cocard__img { display: block; aspect-ratio: 1280 / 670; background: var(--soft); }

.cocard__img img { display: block; width: 100%; height: 100%; object-fit: cover; }

.cocard__body { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.125rem 0.5rem; padding: 0.625rem 0.875rem 0.75rem; align-items: baseline; }

.cocard__body b { font-size: 0.9375rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.cocard__val { font-weight: 900; font-size: 1.0625rem; font-variant-numeric: tabular-nums; }

.cocard__val small { font-size: 0.6875rem; font-weight: 700; margin-left: 1px; }

.cocard__fy { grid-column: 1 / -1; font-size: 0.75rem; color: var(--mut); }


.jobcard li a { -webkit-line-clamp: 2; max-height: none; font-size: 0.9375rem; font-weight: 700; }

.jobcard__more { margin: 0; padding: 0.5rem 1.125rem 0.5rem; border-top: 1px solid var(--line); font-size: 0.8125rem; }

.jobcard__more a { text-decoration: none; font-weight: 700; }

.jobcard__more a:hover { text-decoration: underline; }

.jobcard { display: flex; flex-direction: column; }

.jobcard ul { flex: 1 1 auto; }


/* ── 記事本文のインライン色（青系）を、新しい緑に寄せる（本文のMarkdownは変えない） ── */
.entry__body [style*="background:#e6f0fa"] { background: #e6f6ef !important; }

.entry__body [style*="border-color:#0b5cad"] { border-color: #047857 !important; }

.entry__body [style*="background:#0b5cad"] { background: #059669 !important; }

.entry__body [style*="background:#7fa9d6"] { background: #8fd3b6 !important; }

.entry__body [style*="color:#0b5cad"] { color: #047857 !important; }

.entry__body td a, .entry__body th a { font-style: normal; }

/* 企業一覧のページ送り: 二重枠をやめ、1つの枠にそろえる */
.pager--labeled a { border: 1px solid var(--line); background: #fff; border-radius: 0.5rem; }

.pager--labeled a span { border: 0; background: transparent; box-shadow: none; width: auto; height: auto; }

.pager--labeled .current { background: #111827; color: #fff; border-color: #111827; }

.pager a > span { border: 0; background: transparent; min-width: 0; padding: 0; display: inline; }

.pager--labeled a > span { display: block; }


/* ── 見出しサイズの統一（2026-10-31）: ページの大見出し=1.875rem、セクション見出し=1.3125rem（記事の本文内h2とそろえる）。スマホは1段小さく ── */
.entry__title, .archive__title { font-size: 1.875rem; line-height: 1.45; }
.sec__title, .entry__body h2, .archive h2 { font-size: 1.3125rem; }

@media (max-width: 43.75em) {
  .entry__title, .archive__title { font-size: 1.5rem; }
  .sec__title, .entry__body h2, .archive h2 { font-size: 1.1875rem; }
  /* トップの企業カード: スマホは2列にして縦に長くしない */
  .cogrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.625rem; }
  .cocard__body { grid-template-columns: minmax(0, 1fr); padding: 0.5rem 0.625rem 0.625rem; }
  .cocard__body b { font-size: 0.8125rem; }
  .cocard__val { font-size: 0.9375rem; }
  .cocard__fy { grid-column: 1; }
}


/* 企業の表: 行の中身は中央揃え。スマホは「の平均年収」を隠して社名を1行に（文字はHTMLに残る） */
.co-table th, .co-table td { vertical-align: middle; }

@media (max-width: 43.75em) {
  .co-sfx { display: none; }
  .co-table th:nth-child(1), .co-table td:nth-child(1) { width: 44%; }
}


/* 固定ページ・404・検索: 本文の列の左端を、ヘッダー・記事ページと同じ位置にそろえる（幅は720pxのまま） */
main.wrap--read { max-width: 67.5rem; }

main.wrap--read > * { max-width: 47.5rem; }


/* ── サムネ（題名の文字入りの画像）は、題名と重複するので一覧では出さない。トップは、データ（棒）と図記号で見せる ── */
/* トップの新着だけ、サムネを出さない（カテゴリ・検索の一覧は、サムネ付きのまま） */
.cocard__img { display: block; }

.cocard__body { padding: 0.875rem 1rem 0.875rem; }

.cocard__body b { font-size: 1rem; }

.cocard__val { font-size: 1.25rem; }

.cocard__bar { grid-column: 1 / -1; display: block; height: 0.5rem; background: var(--soft); border-radius: 999px; overflow: hidden; margin: 0.375rem 0 0.125rem; }

.cocard__bar i { display: block; height: 100%; background: #10b981; border-radius: 999px; }

.jobcard__ico { display: grid; place-items: center; height: 5.25rem; background: var(--amber-soft); color: #047857; }

.jobcard__ico svg { width: 2.75rem; height: 2.75rem; }

@media (max-width: 43.75em) {
  .jobcard__ico { height: 3.75rem; }
  .jobcard__ico svg { width: 2.25rem; height: 2.25rem; }
  .cocard__body { padding: 0.625rem 0.75rem 0.75rem; }
  .cocard__val { font-size: 1rem; }
}


/* 職種カード: 見出しの左に小さな図記号、各記事の行にサムネ（記事の入口なので、サムネを付ける） */
.jobcard__ico { display: inline-grid; place-items: center; width: 1.75rem; height: 1.75rem; height: 1.75rem; background: none; color: #047857; margin-right: 0.5rem; flex: 0 0 auto; }

.jobcard__ico svg { width: 1.75rem; height: 1.75rem; }

.jobcard h3 { margin-top: 0; padding-top: 1rem; }

.jobcard h3 a { justify-content: flex-start; align-items: center; }

.jobcard li a.jobrow { display: grid; grid-template-columns: 5.25rem minmax(0, 1fr); gap: 0.625rem; align-items: center; margin: 0; padding: 0.5625rem 0; max-height: none; -webkit-line-clamp: unset; }

.jobrow__img { display: block; aspect-ratio: 1280 / 670; background: var(--soft); border-radius: 0.25rem; overflow: hidden; }

.jobrow__img img { display: block; width: 100%; height: 100%; object-fit: cover; }

.jobrow__t { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; font-size: 0.875rem; line-height: 1.5; font-weight: 700; }

@media (max-width: 43.75em) {
  .jobcard__ico { height: 1.75rem; }
}


/* 探し方のタイル: 概念図（文字なしのイラスト）を上に */
.tile { padding: 0; overflow: hidden; }

.tile__img { display: block; aspect-ratio: 5 / 3; background: var(--bg); border-bottom: 1px solid var(--line); }

.tile__img img { display: block; width: 100%; height: 100%; object-fit: cover; }

.tile b, .tile > span:not(.tile__img) { margin-left: 1.125rem; margin-right: 1.125rem; }

.tile b { margin-top: 0.875rem; }

.tile > span:last-child { margin-bottom: 1rem; }


/* 職種カード: 4列で、5件目以降は次の行へ折り返す（最大8件）。企業カードもサムネ付き */
.jobgrid { grid-template-columns: repeat(4, minmax(0, 1fr)); }

@media (max-width: 62em) {
  .jobgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 36em) {
  .jobgrid { grid-template-columns: minmax(0, 1fr); }
}

.cocard__body { padding: 0.625rem 0.875rem 0.75rem; }

.cocard__body b { font-size: 0.9375rem; }

.cocard__val { font-size: 1.125rem; }


/* 見出し右端の「すべて見る」: 大きなボタンにせず、小さな文字リンク */
.sec__title:has(.sec__all) { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }

.sec__all { font-size: 0.875rem; font-weight: 700; white-space: nowrap; text-decoration: none; }

.sec__all:hover { text-decoration: underline; }


/* 職種カード: 3列（増えた分だけ行が増える）。幅が広くなるので、題名の折り返しが減る */
.jobgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }

@media (max-width: 62em) {
  .jobgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 36em) {
  .jobgrid { grid-template-columns: minmax(0, 1fr); }
}

.jobrow__t { -webkit-line-clamp: 2; }

.jobcard li a.jobrow { grid-template-columns: 6.5rem minmax(0, 1fr); }


/* 職種カードの列数は、枚数に応じて3か4（余りが出にくい方）。広い画面だけ */
@media (min-width: 62.01em) {
  .jobgrid--c3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .jobgrid--c4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .jobgrid--c4 .jobcard li a.jobrow { grid-template-columns: 5.25rem minmax(0, 1fr); }
  .jobgrid--c4 .jobrow__t { -webkit-line-clamp: 3; }
}

.hero2__lead { margin-bottom: 0; }


/* 企業一覧の表（役割列つき）: 会社 / 年収 / 決算期 / 主な事業。会社と年収を先に見せ、長い役割の文は右端。スマホは表のまま横スクロール */
.tbl--scroll { overflow-x: auto; -webkit-overflow-scrolling: touch;
  background:
    linear-gradient(to right, var(--bg), var(--bg)) left center / 1.25rem 100% no-repeat local,
    linear-gradient(to left, var(--bg), var(--bg)) right center / 1.25rem 100% no-repeat local,
    linear-gradient(to right, rgba(17,24,39,.14), rgba(17,24,39,0)) left center / 0.625rem 100% no-repeat scroll,
    linear-gradient(to left, rgba(17,24,39,.14), rgba(17,24,39,0)) right center / 0.625rem 100% no-repeat scroll; }

.co-table--role { table-layout: auto; width: 100%; min-width: 44rem; }

.co-table--role th:first-child, .co-table--role td:first-child { white-space: nowrap; min-width: 12.5rem; }

.co-table--role th:nth-child(2), .co-table--role td:nth-child(2) { white-space: nowrap; text-align: right; padding-right: 1.25rem; }

.co-table--role th:nth-child(3), .co-table--role td:nth-child(3) { white-space: nowrap; text-align: right; width: 1%; padding-right: 1.5rem; }

.co-table--role th.co-role, .co-table--role td.co-role { text-align: left; min-width: 18rem; white-space: normal; font-size: 0.875rem; line-height: 1.6; font-weight: 400; color: var(--fg); }

.co-table--role tbody th, .co-table--role thead th:first-child { position: sticky; left: 0; z-index: 1; box-shadow: 1px 0 0 var(--line); }

.co-table--role tbody th { background: var(--paper); }

.co-table--role thead th:first-child { background: var(--soft); }

@media (max-width: 43.75em) {
  .co-table--role { min-width: 40rem; }
  .co-table--role .co-sfx { display: none; }
  .co-table--role th:first-child, .co-table--role td:first-child { min-width: 8.5rem; }
  .co-table--role th, .co-table--role td { font-size: 0.8125rem; }
  .co-table--role td:nth-child(3) { font-size: 0.8125rem; line-height: inherit; width: 1%; color: var(--mut); }
  .co-table--role th.co-role, .co-table--role td.co-role { min-width: 15rem; }
}


/* ── 本番にあるWordPress標準のブロックCSS（wp-block-library）の表の枠線を打ち消す。ローカルには無く、本番のライブプレビューで分かった ── */
.entry__body .wp-block-table table { border: 0; border-collapse: collapse; width: 100%; }

.entry__body .wp-block-table th, .entry__body .wp-block-table td { border: 0; border-bottom: 1px solid var(--line); }

.entry__body .wp-block-table thead { border-bottom: 0; }

.entry__body .wp-block-table tbody tr:last-child td, .entry__body .wp-block-table tbody tr:last-child th { border-bottom: 0; }

.entry__body .wp-block-table figcaption { font-size: 0.8125rem; color: var(--mut); text-align: left; }

/* 管理者バー（ログイン中の管理者にだけ見える）のSANGOアイコン: 親テーマのCSSを出さないため、SVGが原寸で大きく出る。20pxに収める */
#wpadminbar svg { max-width: 1.25rem; max-height: 1.25rem; }

/* スマホ: 見出しとリンクの折り返し・ランキング注記の縦積み */
@media (max-width: 36em) {
  .sec__title:has(.sec__all) { flex-wrap: wrap; row-gap: 0.25rem; }
  .rankcard__foot { flex-direction: column; gap: 0.375rem; }
}
