/* ============================================================
   AI Heartland — BRUTUS Redesign (2026-07-02)
   --------------------------------------------------------------
   Source: awesome-design-md-jp/brutus/DESIGN.md（実測値ベース）
   redesign.css の後に読み込むオーバーライドレイヤー。
   - 漆黒 #101010 × 純白、暗色帯 #191919、フッター #394045
   - 和文: Zen Kaku Gothic New（筑紫ゴシック代替）/ 欧文: Jost（Futura PT代替）
   - palt不使用・letter-spacing normal・角丸ゼロ
   - シグネチャ: 対訳セクションヘッダー（EN ／ 和文）+ クラスタ別インキ色帯
   ============================================================ */

/* ---------- 1. Tokens ---------- */
:root {
  /* BRUTUS ink & surfaces */
  --ink:            #101010;   /* Brutus Ink — 本文・見出し */
  --charcoal:       #191919;   /* 暗色帯 */
  --paper:          #ffffff;
  --section-light:  #eaeaea;
  --cream:          #f4f3ef;   /* WHAT'S NEW帯 */
  --beige:          #e2dfd7;   /* RECOMMEND帯 */
  --footer-slate:   #394045;
  --muted:          #939393;
  --news-red:       #e63946;

  /* クラスタ別インキ（clusters.yml と同期） */
  --cat-claude-code:    #a95f26;
  --cat-ai-agent:       #275ba1;
  --cat-ai-coding:      #6d4fa1;
  --cat-mcp:            #2f7fb6;
  --cat-rag:            #b07a00;
  --cat-llm:            #577590;
  --cat-security:       #e63946;
  --cat-devops:         #46505a;
  --cat-claude-api:     #c1502e;
  --cat-docs-knowledge: #2f6f4f;

  /* --- redesign.css のセマンティック変数を上書き --- */
  --note-text:          #101010;
  --note-text-2:        rgba(16,16,16,0.72);
  --note-text-3:        #939393;
  --note-bg:            #ffffff;
  --note-bg-section:    #f4f3ef;
  --note-border:        rgba(16,16,16,0.16);
  --note-border-strong: rgba(16,16,16,0.32);

  --zenn-text:    #101010;
  --zenn-text-2:  rgba(16,16,16,0.66);
  --zenn-text-3:  #939393;
  --zenn-bg:      #ffffff;
  --zenn-surface: #f4f3ef;
  --zenn-border:  rgba(16,16,16,0.16);

  /* 旧ブランド緑 → 漆黒へ（チップ地はクリーム/ベージュ） */
  --brand-50:  #f4f3ef;
  --brand-100: #e2dfd7;
  --brand-200: #d4d0c4;
  --brand-300: #939393;
  --brand-500: #101010;
  --brand-600: #101010;
  --brand-700: #101010;
  --brand-800: #000000;

  /* zenn blue 系 → 紺インキへ */
  --blue-50:   #eef2f7;
  --blue-100:  #dbe4ef;
  --blue-200:  rgba(16,16,16,0.16);
  --blue-500:  #275ba1;
  --blue-600:  #1d4a88;
  --blue-700:  #1d4a88;
  --blue-surface: #f4f3ef;

  --bg:          #ffffff;
  --bg2:         #ffffff;
  --bg3:         #f4f3ef;
  --bg-muted:    #f4f3ef;
  --bg-section:  #f4f3ef;
  --surface:     #ffffff;
  --surface2:    #f4f3ef;
  --surface-toc: #ffffff;
  --border:      rgba(16,16,16,0.16);
  --border2:     rgba(16,16,16,0.32);
  --border-strong: rgba(16,16,16,0.32);
  --header-bg:   #ffffff;
  --menu-bg:     rgba(255,255,255,0.99);
  --text:        #101010;
  --text2:       rgba(16,16,16,0.72);
  --text3:       #939393;
  --link:        #101010;
  --link-hover:  #000000;
  --accent:      #101010;
  --claude:      #101010;
  --claude2:     #333333;
  --green:       #2f6f4f;
  --orange:      #a95f26;
  --pink:        #e63946;
  --purple:      #6d4fa1;

  /* 角丸ゼロ（BRUTUS: シャープなWordPress組版） */
  --radius:      0px;
  --radius-pill: 0px;

  --shadow-sm: none;
  --shadow:    0 2px 12px rgba(16,16,16,0.10);
  --shadow-lg: 0 8px 32px rgba(16,16,16,0.14);

  /* 書体 */
  --sans: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Hiragino Sans",
          "Noto Sans JP", "Yu Gothic Medium", sans-serif;
  --sans-zenn: var(--sans);
  --en:   "Jost", "Futura", "Century Gothic", "Zen Kaku Gothic New", sans-serif;
  --mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}

/* ---------- 1b. Dark mode（チャコール誌面） ---------- */
html.dark {
  --ink:           #f2f1ed;
  --paper:         #191919;
  --section-light: #2a2a2a;
  --cream:         #232220;
  --beige:         #2a2822;
  --muted:         #8f8f8f;

  --note-text:          #f2f1ed;
  --note-text-2:        rgba(242,241,237,0.72);
  --note-text-3:        #8f8f8f;
  --note-bg:            #191919;
  --note-bg-section:    #232220;
  --note-border:        rgba(242,241,237,0.16);
  --note-border-strong: rgba(242,241,237,0.34);

  --zenn-text:    #f2f1ed;
  --zenn-text-2:  rgba(242,241,237,0.66);
  --zenn-text-3:  #8f8f8f;
  --zenn-bg:      #191919;
  --zenn-surface: #232220;
  --zenn-border:  rgba(242,241,237,0.16);

  --brand-50:  #232220;
  --brand-100: #2a2822;
  --brand-200: #3a3831;
  --brand-300: #8f8f8f;
  --brand-500: #f2f1ed;
  --brand-600: #f2f1ed;
  --brand-700: #f2f1ed;
  --brand-800: #ffffff;

  --blue-50:   #20242b;
  --blue-100:  #262c36;
  --blue-500:  #7da7dd;
  --blue-600:  #94b8e6;
  --blue-700:  #94b8e6;
  --blue-surface: #232220;

  --bg:          #191919;
  --bg2:         #191919;
  --bg3:         #232220;
  --bg-muted:    #232220;
  --bg-section:  #232220;
  --surface:     #191919;
  --surface2:    #232220;
  --surface-toc: #191919;
  --border:      rgba(242,241,237,0.16);
  --border2:     rgba(242,241,237,0.34);
  --border-strong: rgba(242,241,237,0.34);
  --header-bg:   #191919;
  --menu-bg:     rgba(25,25,25,0.99);
  --text:        #f2f1ed;
  --text2:       rgba(242,241,237,0.72);
  --text3:       #8f8f8f;
  --link:        #f2f1ed;
  --link-hover:  #ffffff;
  --accent:      #f2f1ed;
  --claude:      #f2f1ed;
  --claude2:     #cfceca;
  --shadow:    0 2px 12px rgba(0,0,0,0.5);
  --shadow-lg: 0 8px 32px rgba(0,0,0,0.6);
}

/* ---------- 2. Global type & links ---------- */
body {
  font-family: var(--sans);
  color: var(--text);
  background: var(--bg);
  font-feature-settings: normal;   /* palt不使用 */
  letter-spacing: normal;
}

::selection { background: var(--ink); color: var(--paper); }

/* ---------- 3. Header（純白 × 漆黒 2px罫 + Jostワードマーク） ---------- */
header {
  background: var(--header-bg) !important;
  border-bottom: 2px solid var(--ink) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.logo {
  font-family: var(--en) !important;
  font-weight: 600 !important;
  font-size: 18px !important;
  letter-spacing: 0.10em !important;
  text-transform: uppercase;
  color: var(--text) !important;
}
.logo-icon {
  background: var(--ink) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-size: 13px !important;
  width: 26px !important;
  height: 26px !important;
}
.desktop-nav a, .nav-dropdown-trigger {
  font-family: var(--sans);
  font-weight: 500;
  color: var(--text2);
  border-radius: 0;
}
.desktop-nav a:hover, .nav-dropdown-trigger:hover {
  background: none;
  color: var(--text);
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 6px;
}
.desktop-nav a[href*="/news/"] { color: var(--news-red) !important; font-weight: 700; }
.desktop-nav .rss-link {
  color: var(--text2);
  border: 1px solid var(--border2);
  border-radius: 0;
  font-family: var(--en);
  letter-spacing: 0.06em;
}
.desktop-nav .rss-link:hover { background: var(--cream); color: var(--text); }
.nav-dropdown-menu {
  border: 1px solid var(--ink);
  border-radius: 0;
  box-shadow: var(--shadow-lg);
  background: var(--surface);
}
.nav-dropdown-item { border-radius: 0; }
.nav-dropdown-dot { border-radius: 0; }   /* 色チップも四角に */
.header-btn { border-radius: 0; }
.hamburger { border-radius: 0; }

/* ---------- 4. 対訳セクションヘッダー（シグネチャ） ----------
   <div class="mag-head"><span class="mag-head__en">NEWS</span>
   <span class="mag-head__ja">／ 速報</span></div>
   帯型: <div class="mag-head mag-head--band" style="--cat:#577590">…</div> */
.mag-head {
  display: flex;
  align-items: baseline;
  gap: 10px;
  border-top: 4px solid var(--ink);
  padding: 12px 0 0;
  margin: 0 0 18px;
}
.mag-head__en {
  font-family: var(--en);
  font-weight: 600;
  font-size: 24px;
  line-height: 1.1;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--text);
}
.mag-head__ja {
  font-size: 13px;
  font-weight: 700;
  color: var(--muted);
  letter-spacing: 0.02em;
}
.mag-head__link {
  margin-left: auto;
  font-size: 12px;
  font-weight: 700;
  color: var(--text2);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.mag-head__link:hover { color: var(--text); }
.mag-head--band {
  border-top: none;
  background: var(--cat, var(--ink));
  padding: 8px 14px;
}
.mag-head--band .mag-head__en,
.mag-head--band .mag-head__ja { color: #fff; }
.mag-head--band .mag-head__ja { opacity: 0.85; }
.mag-head--red { border-top-color: var(--news-red); }
.mag-head--red .mag-head__en { color: var(--news-red); }

/* ---------- 5. トップページ：雑誌グリッド化（index.mdのインライン<style>に勝つ） ---------- */
/* ヒーロー */
.hero { padding: 24px 0 16px !important; }
.hero::after { background: var(--ink) !important; height: 1px !important; }
.hero-desc {
  font-size: 13px !important;
  color: var(--text2) !important;
  font-weight: 500;
}

/* CTAトリオ → 漆黒帯3分割 */
.cta-trio__card {
  border-radius: 0 !important;
  border: 1px solid var(--ink) !important;
}

/* 人気記事帯 → ベージュ帯（RECOMMEND調） */
.popular-section {
  background: var(--beige) !important;
  border: none !important;
  border-radius: 0 !important;
}
.popular-section-label {
  background: var(--ink) !important;
  border-radius: 0 !important;
  font-family: var(--en) !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
}
.popular-section-label::before { content: '' !important; }
.popular-section-sub { font-family: var(--en) !important; color: rgba(16,16,16,0.55) !important; }
html.dark .popular-section-sub { color: rgba(242,241,237,0.6) !important; }
.popular-card {
  border: none !important;
  border-radius: 0 !important;
  background: var(--paper) !important;
}
.popular-card:hover { transform: none !important; }
.popular-card:hover .popular-card-title { text-decoration: underline; text-decoration-thickness: 2px; }
.popular-card-img { border-radius: 0 !important; }
.popular-card-rank { font-family: var(--en) !important; font-weight: 600 !important; }
.popular-card-rank.gold   { color: var(--news-red) !important; }
.popular-card-rank.silver { color: var(--ink) !important; }
.popular-card-rank.bronze { color: var(--ink) !important; }
html.dark .popular-card-rank.silver, html.dark .popular-card-rank.bronze { color: var(--text) !important; }
.popular-card-title { font-weight: 700 !important; }

/* セクションラベル（旧デザイン）を対訳スタイルに寄せる */
.section-label {
  border-radius: 0 !important;
  font-family: var(--en) !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
}
.section-label--breaking { background: var(--news-red) !important; }
.section-label--featured { background: var(--ink) !important; }

/* 記事カード → 表紙上置きの雑誌グリッド */
.section-cards {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px 16px;
}
.date-group.visible { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 20px 16px; }
.date-group .date-label { grid-column: 1 / -1; margin-bottom: 0 !important; }
.card {
  flex-direction: column !important;
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  margin-bottom: 0 !important;
  overflow: visible !important;
}
.card:hover {
  border-color: transparent !important;
  box-shadow: none !important;
  transform: none !important;
}
.card:hover .card-title { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.card-thumb {
  width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  aspect-ratio: 16 / 9;
  border: 1px solid var(--border) !important;
  overflow: hidden !important;
}
.card-thumb img { transition: transform 0.3s ease; }
.card:hover .card-thumb img { transform: scale(1.03); }
.card-body {
  padding: 10px 0 0 !important;
  min-height: 0 !important;
}
.card-title {
  font-size: 15px !important;
  font-weight: 900 !important;     /* 筑紫H調の極太見出し */
  line-height: 1.5 !important;
}
.card-desc { font-size: 12px !important; line-height: 1.6 !important; }
.card-en {
  font-family: var(--en) !important;
  font-style: normal !important;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 10px !important;
}
.card-why-mini { color: var(--text2) !important; border-top: 1px solid var(--border) !important; }
.card-why-mini::before { color: var(--news-red); }

/* 日付ラベル → Jost */
.date-label {
  font-family: var(--en) !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  letter-spacing: 0.08em !important;
  color: var(--text) !important;
  border-bottom: 1px solid var(--ink) !important;
}
.date-label-count {
  border-radius: 0 !important;
  border: 1px solid var(--border2) !important;
  background: transparent !important;
  font-family: var(--en) !important;
}

/* フィルター */
.filter-btn {
  border-radius: 0 !important;
  font-family: var(--en) !important;
  letter-spacing: 0.04em;
  border: 1px solid var(--border2) !important;
}
.filter-btn:hover, .filter-btn.active {
  background: var(--ink) !important;
  border-color: var(--ink) !important;
  color: var(--paper) !important;
}
.filter-label { font-family: var(--en) !important; letter-spacing: 0.08em !important; }

/* クラスタカード */
.cluster-card {
  border: 1px solid var(--border) !important;
  border-radius: 0 !important;
  background: var(--paper) !important;
}
.cluster-card:hover { transform: none !important; box-shadow: var(--shadow) !important; }
.cluster-card-dot { border-radius: 0 !important; }
.cluster-header-label { font-weight: 900 !important; }
.cluster-header-link { color: var(--text2) !important; text-decoration: underline !important; text-underline-offset: 3px; }

/* CTA帯・ボタン */
.cta {
  background: var(--cream) !important;
  border: none !important;
  border-top: 4px solid var(--ink) !important;
  border-radius: 0 !important;
}
.cta-btn, .load-more-btn {
  background: var(--ink) !important;
  color: var(--paper) !important;
  border: 1px solid var(--ink) !important;
  border-radius: 0 !important;
  font-family: var(--sans) !important;
  font-weight: 700 !important;
}
.cta-btn:hover, .load-more-btn:hover {
  background: var(--paper) !important;
  color: var(--ink) !important;
}
html.dark .cta-btn, html.dark .load-more-btn { background: var(--text) !important; color: var(--bg) !important; border-color: var(--text) !important; }
html.dark .cta-btn:hover, html.dark .load-more-btn:hover { background: transparent !important; color: var(--text) !important; }

/* モバイル: 2カラム碁盤目（BRUTUS密度） */
@media (max-width: 639px) {
  .date-group.visible { grid-template-columns: repeat(2, 1fr); gap: 16px 12px; }
  .section-cards--scroll {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    overflow-x: visible !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .section-cards--scroll > .card { flex: none !important; }
  .card-title { font-size: 13px !important; }
  .card-desc { display: none !important; }   /* 表紙+見出しのみ＝誌面密度 */
  .card-why-mini { display: none !important; }
  .mag-head__en { font-size: 19px; }
}
@media (min-width: 640px) and (max-width: 1023px) {
  .date-group.visible, .section-cards { grid-template-columns: repeat(2, 1fr); }
}

/* CTAトリオ: 水玉ウォーターマーク除去・切手風絵文字 */
.cta-trio__card::after { display: none !important; }
.cta-trio__card--tools::before, .cta-trio__card--security::before,
.cta-trio__card--learn::before { opacity: 1 !important; }
/* 帯内の対訳ヘッダー（Trending用） */
.popular-section .mag-head { margin-bottom: 14px; }
.popular-section-label { color: #fff !important; }

/* ---------- 6. タグ／バッジ（四角・Jost・インキ白抜き） ---------- */
.tag {
  font-family: var(--en) !important;
  font-weight: 600 !important;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  border-radius: 0 !important;
  background: transparent !important;
  border: 1px solid var(--border2) !important;
  color: var(--text2) !important;
}
.cat-badge, .pill-tag {
  border-radius: 0 !important;
  font-family: var(--en);
  font-weight: 600;
  letter-spacing: 0.04em;
  background: var(--cream);
  color: var(--text);
  border: 1px solid var(--border2);
}
.cat-badge:hover, .pill-tag:hover { transform: none; background: var(--beige); }
/* クラスタ別: 面色白抜き（BRUTUS特集帯） */
.cat-badge--claude-code { background: var(--cat-claude-code) !important; color: #fff !important; border-color: var(--cat-claude-code) !important; }
.cat-badge--ai-agent    { background: var(--cat-ai-agent) !important;    color: #fff !important; border-color: var(--cat-ai-agent) !important; }
.cat-badge--ai-coding   { background: var(--cat-ai-coding) !important;   color: #fff !important; border-color: var(--cat-ai-coding) !important; }
.cat-badge--mcp         { background: var(--cat-mcp) !important;         color: #fff !important; border-color: var(--cat-mcp) !important; }
.cat-badge--rag         { background: var(--cat-rag) !important;         color: #fff !important; border-color: var(--cat-rag) !important; }
.cat-badge--llm         { background: var(--cat-llm) !important;         color: #fff !important; border-color: var(--cat-llm) !important; }
.cat-badge--security    { background: var(--cat-security) !important;    color: #fff !important; border-color: var(--cat-security) !important; }
.cat-badge--news        { background: var(--news-red) !important;        color: #fff !important; border-color: var(--news-red) !important; }

/* ---------- 7. 記事ページ ---------- */
/* 読了プログレスバー（post.htmlインラインに勝つ） */
#reading-progress {
  background: var(--ink) !important;
  border-radius: 0 !important;
  height: 4px !important;
}
html.dark #reading-progress { background: var(--text) !important; }

.post-title, .article-head__title {
  font-weight: 900 !important;          /* 筑紫H級の重厚見出し */
  line-height: 1.4 !important;
  letter-spacing: 0.01em !important;
}
.article-head { border-bottom: 4px solid var(--ink); padding-bottom: 20px; }
.article-head__date {
  font-family: var(--en);
  font-weight: 600;
  letter-spacing: 0.08em;
}

/* 本文タイポグラフィ（雑誌寄り: 17px/1.75） */
.post-body, .article-body, .news-body {
  font-size: 17px;
  line-height: 1.75;
}
.post-body h2, .article-body h2, .news-body h2 {
  font-weight: 900 !important;
  font-size: 24px !important;
  line-height: 1.45 !important;
  border-left: 6px solid var(--ink) !important;
  border-bottom: none !important;
  background: transparent !important;
  padding: 2px 0 2px 14px !important;
  margin-top: 56px !important;
  border-radius: 0 !important;
}
.post-body h3, .article-body h3, .news-body h3 {
  font-weight: 700 !important;
  border-left: none !important;
  border-bottom: 1px solid var(--border2) !important;
  padding-bottom: 6px !important;
  border-radius: 0 !important;
}
/* 本文リンクは紺インキ＋下線（可読性優先） */
.post-body a, .article-body a, .news-body a {
  color: var(--blue-500) !important;
  text-decoration: underline !important;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
.post-body a:hover, .article-body a:hover, .news-body a:hover {
  color: var(--blue-600) !important;
  text-decoration-thickness: 2px;
}
/* 画像・図版はシャープに */
.post-body img, .article-body img, .news-body img,
.post-body figure, .article-body figure {
  border-radius: 0 !important;
}
.post-body figcaption, .article-body figcaption {
  font-size: 12px;
  color: var(--muted);
  border-left: 3px solid var(--border2);
  padding-left: 10px;
}
/* 引用 */
.post-body blockquote, .article-body blockquote, .news-body blockquote {
  border-left: 4px solid var(--ink) !important;
  background: var(--cream) !important;
  border-radius: 0 !important;
  color: var(--text2) !important;
}
/* テーブル: 漆黒ヘッダー白抜き（誌面データ表） */
.post-body table, .article-body table, .news-body table {
  border-radius: 0 !important;
  border: 1px solid var(--border2) !important;
}
.post-body th, .article-body th, .news-body th {
  background: var(--charcoal) !important;
  color: #fff !important;
  border-radius: 0 !important;
  font-weight: 700 !important;
}
html.dark .post-body th, html.dark .article-body th, html.dark .news-body th {
  background: #000 !important;
}
.post-body td, .article-body td, .news-body td { border-color: var(--border) !important; }

/* コードブロックはダークのまま（既存踏襲）、角だけ直角に */
.post-body pre, .article-body pre, .news-body pre,
.post-body div.highlight, .article-body div.highlight {
  border-radius: 0 !important;
}
.post-body code, .article-body code, .news-body code { border-radius: 0 !important; }

/* 装飾ボックス群 → クリーム/ベージュ＋インキ罫 */
.point-box, .info-box, .warning-box, .success-box, .note-box, .summary-box {
  border-radius: 0 !important;
  background: var(--cream) !important;
  border: 1px solid var(--border) !important;
  border-left: 4px solid var(--ink) !important;
}
.warning-box { border-left-color: var(--news-red) !important; }
.success-box { border-left-color: var(--cat-docs-knowledge) !important; }
.marker-yellow { background: linear-gradient(transparent 55%, #ffe066 55%) !important; }
html.dark .marker-yellow { background: linear-gradient(transparent 55%, rgba(255,224,102,0.35) 55%) !important; }

/* 共有バー・ボタン類 */
.share-bar a, .share-btn { border-radius: 0 !important; }

/* 関連記事カード */
.related-posts .card, .related-card { border-radius: 0 !important; }

/* TOC */
.toc-card, .surface-toc, nav.toc {
  border-radius: 0 !important;
  border: 1px solid var(--border2) !important;
}

/* ---------- 8. 検索オーバーレイ / FAB ---------- */
.search-overlay-v2 { background: rgba(16,16,16,0.92) !important; }
/* 入力欄は暗いオーバーレイ上の白ボックス（両モード共通）。
   redesign.css は bg:#fff 固定なのに color:var(--note-text) で、
   ダークでは --note-text が明色に反転し「白地に白文字」で読めなくなる。
   背景=白・文字=インキ黒に固定してコントラストを両モードで確保する。 */
.search-box-v2__input, .search-input {
  border-radius: 0 !important;
  background: #ffffff !important;
  color: #101010 !important;
  caret-color: #101010 !important;
}
.search-box-v2__input::placeholder, .search-input::placeholder { color: rgba(16,16,16,0.5) !important; }
.cat-chip { border-radius: 0 !important; }
.fab-search {
  border-radius: 0 !important;
  background: var(--ink) !important;
  color: #fff !important;
  border: none !important;
  box-shadow: var(--shadow-lg) !important;
}
html.dark .fab-search { background: var(--text) !important; color: var(--bg) !important; }

/* ---------- 9. Footer（スレート帯 #394045） ---------- */
footer {
  background: var(--footer-slate) !important;
  border-top: none !important;
  margin-top: 48px;
  /* インラインstyleの var(--text2)/var(--text3) をフッター内だけ差し替え */
  --text2: #e8eaec;
  --text3: #aeb4b9;
}
.footer-inner, .footer-inner a { color: #cfd4d8 !important; }
.footer-inner a:hover { color: #ffffff !important; text-decoration: underline; }
html.dark footer { background: #2e2e2e !important; }

/* ---------- 10. モバイルメニュー ---------- */
.mobile-nav-link { border-radius: 0 !important; }
.mobile-tag-link { border-radius: 0 !important; }
.mobile-nav-link-badge {
  border-radius: 0 !important;
  font-family: var(--en) !important;
  color: var(--news-red) !important;
  background: transparent !important;
  border: 1px solid var(--news-red) !important;
}
.mobile-menu-section {
  font-family: var(--en) !important;
  letter-spacing: 0.1em !important;
}

/* ---------- 11. アクセシビリティ・印刷 ---------- */
:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 2px;
}
html.dark :focus-visible { outline-color: var(--text); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* ---------- 12. QA追補（2026-07-02 スクショ検証後） ---------- */
/* CTAトリオ矢印: 円形+旧緑 → 角形インキ */
.cta-trio__arrow {
  border-radius: 0 !important;
  background: var(--ink) !important;
  color: var(--paper) !important;
}
html.dark .cta-trio__arrow { background: var(--text) !important; color: var(--bg) !important; }
.cta-trio__card:hover .cta-trio__arrow { background: var(--news-red) !important; color: #fff !important; }

/* モバイル: 説明文と補足行を全カードで確実に非表示（誌面密度の統一） */
@media (max-width: 639px) {
  .card .card-desc, .card .card-why-mini { display: none !important; }
}
