/* =============================================================
   ZELUS CODEX — メインスタイルシート
   1か所変更で全ページ反映：:root の変数を書き換えるだけ
   ============================================================= */

/* -------------------------------------------------------------
   CSS変数（デザインの全設定を一元管理）
   ここを変えれば全ページに即反映
   ------------------------------------------------------------- */
:root {
  /* カラーパレット */
  --color-primary:      #1B4A8A;   /* メイン：深い青 */
  --color-primary-dark: #0F2E5C;   /* メイン濃い */
  --color-accent:       #C9A24A;   /* アクセント：古代金 */
  --color-accent-dark:  #A07A2E;   /* アクセント濃い */

  --color-bg:           #FBFAF6;   /* ページ背景：羊皮紙白 */
  --color-bg-alt:       #F4F1E8;   /* セクション背景 */
  --color-bg-card:      #FFFFFF;   /* カード背景 */

  --color-text:         #111827;   /* 本文テキスト */
  --color-text-mute:    #6B7280;   /* 補助テキスト・日付 */
  --color-text-light:   #9CA3AF;   /* さらに薄い */

  --color-rule:         #E4DDC9;   /* 罫線・区切り線 */
  --color-border:       #D1C9B0;   /* ボーダー */

  /* カテゴリ別カラー */
  --color-company:      #1B4A8A;   /* 企業ストーリー */
  --color-news:         #0F6E56;   /* ニュース */
  --color-anohanashi:   #7B3F9A;   /* あの話！ */

  /* タイポグラフィ */
  --font-serif:   'Noto Serif JP', 'Georgia', serif;
  --font-sans:    'Noto Sans JP', 'Hiragino Kaku Gothic ProN', sans-serif;
  --font-deco:    'Cinzel', 'Playfair Display', serif;
  --font-mono:    'Consolas', 'Monaco', monospace;

  /* フォントサイズ */
  --text-xs:   0.75rem;    /* 12px */
  --text-sm:   0.875rem;   /* 14px */
  --text-base: 1rem;       /* 16px */
  --text-lg:   1.125rem;   /* 18px */
  --text-xl:   1.25rem;    /* 20px */
  --text-2xl:  1.5rem;     /* 24px */
  --text-3xl:  1.875rem;   /* 30px */
  --text-4xl:  2.25rem;    /* 36px */

  /* スペーシング */
  --space-1:   0.25rem;
  --space-2:   0.5rem;
  --space-3:   0.75rem;
  --space-4:   1rem;
  --space-6:   1.5rem;
  --space-8:   2rem;
  --space-12:  3rem;
  --space-16:  4rem;

  /* レイアウト */
  --content-max:    1200px;
  --content-narrow:  800px;
  --radius-sm:        4px;
  --radius:           8px;
  --radius-lg:       12px;
  --radius-xl:       16px;

  /* シャドウ */
  --shadow-sm:  0 1px 3px rgba(0,0,0,.08);
  --shadow:     0 2px 8px rgba(0,0,0,.10);
  --shadow-lg:  0 4px 20px rgba(0,0,0,.13);

  /* トランジション */
  --transition: 0.2s ease;
}

/* ダークモード変数（body.dark で上書き） */
body.dark {
  --color-bg:       #0F1419;
  --color-bg-alt:   #1A1F26;
  --color-bg-card:  #1E2530;
  --color-text:     #F0EDE8;
  --color-text-mute:#9BA3AF;
  --color-rule:     #2D3748;
  --color-border:   #374151;
}


/* =============================================================
   リセット・ベース
   ============================================================= */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  scroll-behavior: smooth;
  font-size: 16px;
}

body {
  font-family: var(--font-sans);
  font-size: var(--text-base);
  color: var(--color-text);
  background-color: var(--color-bg);
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
  transition: background-color 0.3s, color 0.3s;
}

img { max-width: 100%; height: auto; display: block; }
a { color: var(--color-primary); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--color-accent); }

/* =============================================================
   レイアウト
   ============================================================= */
.zelus-container {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 0 var(--space-6);
}

.zelus-container--narrow {
  max-width: var(--content-narrow);
  margin: 0 auto;
  padding: 0 var(--space-6);
}

.zelus-section {
  padding: var(--space-16) 0;
}

.zelus-section--alt {
  background-color: var(--color-bg-alt);
}


/* =============================================================
   ヘッダー
   ============================================================= */
.zelus-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(27, 74, 138, 0.97);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid rgba(201, 162, 74, 0.4);
  box-shadow: 0 2px 12px rgba(0,0,0,.2);
}

.zelus-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 64px;
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 0 var(--space-6);
}

.zelus-logo {
  display: flex;
  flex-direction: column;
  gap: 1px;
  text-decoration: none;
}

.zelus-logo__en {
  font-family: var(--font-deco);
  font-size: var(--text-xl);
  font-weight: 800;
  color: #FFFFFF;
  letter-spacing: 0.1em;
  line-height: 1;
}

.zelus-logo__ja {
  font-family: var(--font-serif);
  font-size: var(--text-xs);
  color: var(--color-accent);
  letter-spacing: 0.15em;
}

.zelus-nav {
  display: flex;
  align-items: center;
  gap: var(--space-1);
}

.zelus-nav__link {
  color: rgba(255,255,255,.85);
  font-size: var(--text-sm);
  font-weight: 500;
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-sm);
  letter-spacing: 0.05em;
  transition: all var(--transition);
  position: relative;
}

.zelus-nav__link::after {
  content: '';
  position: absolute;
  bottom: 0; left: 50%; right: 50%;
  height: 2px;
  background: var(--color-accent);
  transition: all var(--transition);
}

.zelus-nav__link:hover,
.zelus-nav__link.current {
  color: #fff;
  background: rgba(255,255,255,.1);
}

.zelus-nav__link:hover::after,
.zelus-nav__link.current::after {
  left: var(--space-3);
  right: var(--space-3);
}

/* ダークモードトグル */
.zelus-dark-toggle {
  background: rgba(255,255,255,.15);
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 20px;
  color: #fff;
  cursor: pointer;
  font-size: var(--text-sm);
  padding: 5px 12px;
  transition: all var(--transition);
  margin-left: var(--space-3);
  white-space: nowrap;
}

.zelus-dark-toggle:hover {
  background: rgba(255,255,255,.25);
}

/* ハンバーガーメニュー（モバイル） */
.zelus-hamburger {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: var(--space-2);
  flex-direction: column;
  gap: 5px;
}

.zelus-hamburger span {
  display: block;
  width: 22px;
  height: 2px;
  background: #fff;
  border-radius: 1px;
  transition: all var(--transition);
}


/* =============================================================
   カテゴリバッジ
   ============================================================= */
.zelus-badge {
  display: inline-block;
  font-size: var(--text-xs);
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 20px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  vertical-align: middle;
}

.zelus-badge--company    { background: var(--color-company);    color: #fff; }
.zelus-badge--news       { background: var(--color-news);       color: #fff; }
.zelus-badge--anohanashi { background: var(--color-anohanashi); color: #fff; }

/* 薄いバッジ（ボーダータイプ） */
.zelus-badge--company-outline    { border: 1.5px solid var(--color-company);    color: var(--color-company);    background: transparent; }
.zelus-badge--news-outline       { border: 1.5px solid var(--color-news);       color: var(--color-news);       background: transparent; }
.zelus-badge--anohanashi-outline { border: 1.5px solid var(--color-anohanashi); color: var(--color-anohanashi); background: transparent; }


/* =============================================================
   記事カード（全カテゴリ共通）
   ============================================================= */
.zelus-card {
  background: var(--color-bg-card);
  border: 1px solid var(--color-rule);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: transform var(--transition), box-shadow var(--transition);
  display: flex;
  flex-direction: column;
}

.zelus-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-lg);
}

.zelus-card__thumb {
  width: 100%;
  aspect-ratio: 16/9;
  background: var(--color-bg-alt);
  object-fit: cover;
}

.zelus-card__body {
  padding: var(--space-4) var(--space-6);
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.zelus-card__meta {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
}

.zelus-card__date {
  font-size: var(--text-xs);
  color: var(--color-text-mute);
}

.zelus-card__title {
  font-family: var(--font-serif);
  font-size: var(--text-lg);
  font-weight: 700;
  color: var(--color-text);
  line-height: 1.5;
  transition: color var(--transition);
}

.zelus-card:hover .zelus-card__title {
  color: var(--color-primary);
}

.zelus-card__excerpt {
  font-size: var(--text-sm);
  color: var(--color-text-mute);
  line-height: 1.7;
  flex: 1;
}

.zelus-card__footer {
  border-top: 1px solid var(--color-rule);
  padding: var(--space-3) var(--space-6);
  display: flex;
  justify-content: flex-end;
}

.zelus-card__link {
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-primary);
  display: flex;
  align-items: center;
  gap: 4px;
}

.zelus-card__link::after { content: '→'; }

/* カードグリッド */
.zelus-cards {
  display: grid;
  gap: var(--space-6);
}

.zelus-cards--3 { grid-template-columns: repeat(3, 1fr); }
.zelus-cards--4 { grid-template-columns: repeat(4, 1fr); }
.zelus-cards--2 { grid-template-columns: repeat(2, 1fr); }


/* =============================================================
   企業カード（カンパニーロゴ特化）
   ============================================================= */
.zelus-company-card {
  background: var(--color-bg-card);
  border: 1px solid var(--color-rule);
  border-radius: var(--radius-lg);
  padding: var(--space-6);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  transition: transform var(--transition), box-shadow var(--transition);
  position: relative;
  overflow: hidden;
}

.zelus-company-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--color-primary), var(--color-accent));
}

.zelus-company-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-lg);
}

.zelus-company-card__logo {
  width: 60px;
  height: 60px;
  border-radius: var(--radius);
  background: var(--color-bg-alt);
  border: 1px solid var(--color-rule);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.zelus-company-card__logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 4px;
}

.zelus-company-card__name {
  font-family: var(--font-serif);
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--color-text);
}

.zelus-company-card__code {
  font-size: var(--text-xs);
  color: var(--color-text-mute);
  font-family: var(--font-mono);
}

.zelus-company-card__excerpt {
  font-size: var(--text-sm);
  color: var(--color-text-mute);
  line-height: 1.7;
  flex: 1;
}


/* =============================================================
   セクションヘッダー
   ============================================================= */
.zelus-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: var(--space-8);
  padding-bottom: var(--space-4);
  border-bottom: 2px solid var(--color-rule);
}

.zelus-section-head__title {
  font-family: var(--font-serif);
  font-size: var(--text-2xl);
  font-weight: 700;
  color: var(--color-text);
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.zelus-section-head__title::before {
  content: '';
  display: block;
  width: 4px;
  height: 1.4em;
  background: var(--color-accent);
  border-radius: 2px;
}

.zelus-section-head__link {
  font-size: var(--text-sm);
  color: var(--color-primary);
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
}

.zelus-section-head__link::after { content: '→'; }


/* =============================================================
   今週のポイントボックス
   ============================================================= */
.zelus-weekly-box {
  background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
  border-radius: var(--radius-xl);
  padding: var(--space-8) var(--space-12);
  color: #fff;
  position: relative;
  overflow: hidden;
}

.zelus-weekly-box::before {
  content: 'WEEKLY CODEX';
  position: absolute;
  top: var(--space-4); right: var(--space-8);
  font-family: var(--font-deco);
  font-size: 2.5rem;
  color: rgba(255,255,255,.06);
  font-weight: 800;
  letter-spacing: 0.1em;
  pointer-events: none;
}

.zelus-weekly-box__label {
  font-family: var(--font-deco);
  font-size: var(--text-xs);
  letter-spacing: 0.2em;
  color: var(--color-accent);
  margin-bottom: var(--space-2);
}

.zelus-weekly-box__title {
  font-family: var(--font-serif);
  font-size: var(--text-2xl);
  font-weight: 700;
  margin-bottom: var(--space-6);
}

.zelus-weekly-box__content {
  font-size: var(--text-base);
  line-height: 1.9;
  color: rgba(255,255,255,.9);
}

.zelus-weekly-box__content p + p { margin-top: var(--space-3); }

.zelus-weekly-box__footer {
  margin-top: var(--space-6);
  font-size: var(--text-xs);
  color: rgba(255,255,255,.5);
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

/* 自動更新ボタン（管理者のみ表示） */
.zelus-weekly-box__update-btn {
  background: rgba(255,255,255,.15);
  border: 1px solid rgba(255,255,255,.3);
  border-radius: var(--radius-sm);
  color: #fff;
  cursor: pointer;
  font-size: var(--text-xs);
  padding: 4px 10px;
  transition: all var(--transition);
}

.zelus-weekly-box__update-btn:hover { background: rgba(255,255,255,.25); }


/* =============================================================
   トレ助コメント枠（ニュース記事専用）
   ============================================================= */
.toresuke-comment {
  background: var(--color-bg-alt);
  border: 1px solid var(--color-rule);
  border-left: 4px solid var(--color-accent);
  border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
  padding: var(--space-6);
  margin: var(--space-8) 0;
  display: flex;
  gap: var(--space-6);
  align-items: flex-start;
}

.toresuke-comment__avatar {
  width: 64px;
  height: 64px;
  flex-shrink: 0;
  border-radius: 50%;
  background: var(--color-bg-card);
  border: 2px solid var(--color-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  overflow: hidden;
}

.toresuke-comment__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.toresuke-comment__body {}

.toresuke-comment__label {
  font-size: var(--text-xs);
  font-weight: 700;
  color: var(--color-accent);
  letter-spacing: 0.1em;
  margin-bottom: var(--space-2);
}

.toresuke-comment__name {
  font-family: var(--font-serif);
  font-size: var(--text-base);
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: var(--space-3);
}

.toresuke-comment__text {
  font-size: var(--text-base);
  line-height: 1.85;
  color: var(--color-text);
}


/* =============================================================
   パンくずリスト
   ============================================================= */
.zelus-breadcrumb {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-sm);
  color: var(--color-text-mute);
  margin-bottom: var(--space-6);
  flex-wrap: wrap;
}

.zelus-breadcrumb__sep { color: var(--color-rule); }

.zelus-breadcrumb a {
  color: var(--color-text-mute);
}

.zelus-breadcrumb a:hover {
  color: var(--color-primary);
}

/* =============================================================
   記事詳細ページ共通
   ============================================================= */
.zelus-article {
  max-width: var(--content-narrow);
  margin: 0 auto;
  padding: var(--space-12) var(--space-6);
}

.zelus-article__header {
  margin-bottom: var(--space-8);
  padding-bottom: var(--space-6);
  border-bottom: 2px solid var(--color-rule);
}

.zelus-article__title {
  font-family: var(--font-serif);
  font-size: var(--text-4xl);
  font-weight: 700;
  line-height: 1.35;
  color: var(--color-text);
  margin-top: var(--space-4);
  margin-bottom: var(--space-4);
}

.zelus-article__meta {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  font-size: var(--text-sm);
  color: var(--color-text-mute);
  flex-wrap: wrap;
}

/* 本文スタイル */
.zelus-article__content {
  line-height: 1.9;
}

.zelus-article__content h2 {
  font-family: var(--font-serif);
  font-size: var(--text-2xl);
  font-weight: 700;
  margin: var(--space-12) 0 var(--space-4);
  padding-left: var(--space-4);
  border-left: 4px solid var(--color-accent);
  color: var(--color-primary);
}

.zelus-article__content h3 {
  font-family: var(--font-serif);
  font-size: var(--text-xl);
  font-weight: 700;
  margin: var(--space-8) 0 var(--space-3);
  color: var(--color-text);
}

.zelus-article__content p {
  margin-bottom: var(--space-4);
}

.zelus-article__content blockquote {
  background: var(--color-bg-alt);
  border-left: 4px solid var(--color-accent);
  padding: var(--space-4) var(--space-6);
  margin: var(--space-6) 0;
  border-radius: 0 var(--radius) var(--radius) 0;
  font-style: italic;
  color: var(--color-text-mute);
}

/* =============================================================
   年表（企業ストーリー専用）
   ============================================================= */
.zelus-timeline {
  position: relative;
  padding-left: var(--space-8);
  margin: var(--space-8) 0;
}

.zelus-timeline::before {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  left: 10px;
  width: 2px;
  background: linear-gradient(to bottom, var(--color-accent), var(--color-rule));
}

.zelus-timeline__item {
  position: relative;
  margin-bottom: var(--space-8);
}

.zelus-timeline__item::before {
  content: '';
  position: absolute;
  left: calc(var(--space-8) * -1 + 5px);
  top: 8px;
  width: 10px;
  height: 10px;
  background: var(--color-accent);
  border-radius: 50%;
  border: 2px solid var(--color-bg);
}

.zelus-timeline__year {
  font-family: var(--font-deco);
  font-size: var(--text-sm);
  font-weight: 700;
  color: var(--color-accent);
  letter-spacing: 0.1em;
  margin-bottom: var(--space-1);
}

.zelus-timeline__event {
  font-family: var(--font-serif);
  font-size: var(--text-lg);
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: var(--space-2);
}

.zelus-timeline__desc {
  font-size: var(--text-sm);
  color: var(--color-text-mute);
  line-height: 1.75;
}


/* =============================================================
   フッター
   ============================================================= */
.zelus-footer {
  background: var(--color-primary-dark);
  color: rgba(255,255,255,.7);
  padding: var(--space-12) 0 var(--space-6);
  margin-top: var(--space-16);
}

.zelus-footer__inner {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 0 var(--space-6);
}

.zelus-footer__top {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: var(--space-8);
  margin-bottom: var(--space-8);
  padding-bottom: var(--space-8);
  border-bottom: 1px solid rgba(255,255,255,.1);
}

.zelus-footer__brand .zelus-logo__en { font-size: var(--text-2xl); }
.zelus-footer__brand .zelus-logo__ja { margin-top: var(--space-1); }
.zelus-footer__brand p {
  margin-top: var(--space-4);
  font-size: var(--text-sm);
  line-height: 1.8;
}

.zelus-footer__nav h3 {
  font-size: var(--text-sm);
  font-weight: 700;
  color: rgba(255,255,255,.9);
  letter-spacing: 0.1em;
  margin-bottom: var(--space-4);
}

.zelus-footer__nav ul { list-style: none; }
.zelus-footer__nav li { margin-bottom: var(--space-2); }
.zelus-footer__nav a {
  color: rgba(255,255,255,.6);
  font-size: var(--text-sm);
  transition: color var(--transition);
}

.zelus-footer__nav a:hover { color: var(--color-accent); }

.zelus-footer__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: var(--text-xs);
  color: rgba(255,255,255,.4);
  flex-wrap: wrap;
  gap: var(--space-4);
}


/* =============================================================
   ボタン
   ============================================================= */
.zelus-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  font-size: var(--text-sm);
  font-weight: 600;
  padding: var(--space-3) var(--space-6);
  border-radius: var(--radius);
  border: none;
  cursor: pointer;
  transition: all var(--transition);
  text-decoration: none;
  letter-spacing: 0.03em;
}

.zelus-btn--primary {
  background: var(--color-primary);
  color: #fff;
}

.zelus-btn--primary:hover {
  background: var(--color-primary-dark);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: var(--shadow);
}

.zelus-btn--accent {
  background: var(--color-accent);
  color: #fff;
}

.zelus-btn--accent:hover {
  background: var(--color-accent-dark);
  color: #fff;
  transform: translateY(-1px);
}

.zelus-btn--outline {
  background: transparent;
  color: var(--color-primary);
  border: 2px solid var(--color-primary);
}

.zelus-btn--outline:hover {
  background: var(--color-primary);
  color: #fff;
}

.zelus-btn--lg {
  font-size: var(--text-base);
  padding: var(--space-4) var(--space-8);
}

/* 「もっと見る」リンク */
.zelus-more-link {
  display: flex;
  justify-content: center;
  margin-top: var(--space-8);
}


/* =============================================================
   ヒーローセクション（TOPページ）
   ============================================================= */
.zelus-hero {
  background: linear-gradient(135deg, var(--color-primary-dark) 0%, var(--color-primary) 60%, #2A5F9E 100%);
  color: #fff;
  padding: var(--space-16) 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.zelus-hero::before {
  content: 'ZELUS CODEX';
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  font-family: var(--font-deco);
  font-size: clamp(4rem, 15vw, 12rem);
  color: rgba(255,255,255,.04);
  font-weight: 800;
  letter-spacing: 0.08em;
  white-space: nowrap;
  pointer-events: none;
}

.zelus-hero__inner { position: relative; z-index: 1; }

.zelus-hero__label {
  font-family: var(--font-deco);
  font-size: var(--text-xs);
  letter-spacing: 0.3em;
  color: var(--color-accent);
  margin-bottom: var(--space-4);
}

.zelus-hero__title {
  font-family: var(--font-serif);
  font-size: clamp(var(--text-3xl), 5vw, 3.5rem);
  font-weight: 700;
  line-height: 1.35;
  margin-bottom: var(--space-4);
}

.zelus-hero__sub {
  font-size: var(--text-lg);
  color: rgba(255,255,255,.8);
  margin-bottom: var(--space-8);
}


/* =============================================================
   ニュースリスト（横ライン形式）
   ============================================================= */
.zelus-news-list {
  list-style: none;
}

.zelus-news-list__item {
  display: flex;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-4) 0;
  border-bottom: 1px solid var(--color-rule);
}

.zelus-news-list__item:last-child { border-bottom: none; }

.zelus-news-list__date {
  font-size: var(--text-xs);
  color: var(--color-text-mute);
  white-space: nowrap;
  padding-top: 3px;
  min-width: 90px;
  font-family: var(--font-mono);
}

.zelus-news-list__title {
  font-size: var(--text-base);
  font-weight: 600;
  color: var(--color-text);
  line-height: 1.55;
  transition: color var(--transition);
}

.zelus-news-list__item:hover .zelus-news-list__title {
  color: var(--color-primary);
}


/* =============================================================
   管理者ツールバー（Claude API ボタン）
   ============================================================= */
.zelus-admin-bar {
  display: none; /* 管理者ログイン時のみ表示（PHPで制御） */
  background: var(--color-bg-alt);
  border: 1px solid var(--color-rule);
  border-radius: var(--radius);
  padding: var(--space-4) var(--space-6);
  margin-bottom: var(--space-6);
  align-items: center;
  gap: var(--space-4);
  flex-wrap: wrap;
}

.zelus-admin-bar.is-visible {
  display: flex;
}

.zelus-admin-bar__label {
  font-size: var(--text-xs);
  font-weight: 700;
  color: var(--color-text-mute);
  letter-spacing: 0.1em;
}

.zelus-admin-btn {
  background: var(--color-primary);
  color: #fff;
  border: none;
  border-radius: var(--radius-sm);
  padding: var(--space-2) var(--space-4);
  font-size: var(--text-sm);
  font-weight: 600;
  cursor: pointer;
  transition: all var(--transition);
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.zelus-admin-btn:hover {
  background: var(--color-primary-dark);
  transform: translateY(-1px);
}

.zelus-admin-btn--news { background: var(--color-news); }
.zelus-admin-btn--news:hover { background: #0B5A46; }

.zelus-admin-btn--weekly { background: var(--color-accent); }
.zelus-admin-btn--weekly:hover { background: var(--color-accent-dark); }


/* =============================================================
   ローディングスピナー（API通信中）
   ============================================================= */
.zelus-spinner {
  display: inline-block;
  width: 16px;
  height: 16px;
  border: 2px solid rgba(255,255,255,.3);
  border-top-color: #fff;
  border-radius: 50%;
  animation: spin 0.6s linear infinite;
  vertical-align: middle;
}

@keyframes spin { to { transform: rotate(360deg); } }

.zelus-spinner--dark {
  border-color: rgba(27,74,138,.2);
  border-top-color: var(--color-primary);
}

/* =============================================================
   レスポンシブ対応
   ============================================================= */
@media (max-width: 1024px) {
  .zelus-cards--4 { grid-template-columns: repeat(2, 1fr); }
  .zelus-footer__top { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px) {
  .zelus-nav { display: none; }
  .zelus-nav.is-open {
    display: flex;
    flex-direction: column;
    position: absolute;
    top: 64px; left: 0; right: 0;
    background: var(--color-primary-dark);
    padding: var(--space-4);
    z-index: 99;
    border-top: 1px solid rgba(255,255,255,.1);
  }
  .zelus-hamburger { display: flex; }
  .zelus-dark-toggle { display: none; }

  .zelus-cards--3 { grid-template-columns: 1fr 1fr; }
  .zelus-cards--2 { grid-template-columns: 1fr; }
  .zelus-cards--4 { grid-template-columns: 1fr; }

  .zelus-weekly-box { padding: var(--space-6); }
  .zelus-weekly-box::before { display: none; }

  .zelus-footer__top { grid-template-columns: 1fr; }

  .zelus-article__title { font-size: var(--text-3xl); }

  .toresuke-comment { flex-direction: column; }
}

@media (max-width: 480px) {
  .zelus-cards--3 { grid-template-columns: 1fr; }
  .zelus-section-head { flex-direction: column; align-items: flex-start; gap: var(--space-3); }
  .zelus-article__title { font-size: var(--text-2xl); }
}/* ============================================================
   企業ストーリー詳細ページ用CSS（ソフトバンク・ファストリテイリング等）
   zelus-style.css の末尾に追記
   ============================================================ */

/* ── ティッカーバー ── */
.zc-wrap,.zcfr-wrap{max-width:860px;margin:0 auto;font-family:'Noto Sans JP','Inter',sans-serif;line-height:1.65;-webkit-font-smoothing:antialiased;}
.zc-wrap *,.zcfr-wrap *{box-sizing:border-box;}

.zc-ticker,.zcfr-ticker{background:#fff;border:1px solid #e4ddc9;border-radius:10px;padding:1rem 1.4rem;margin-bottom:2.5rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap;box-shadow:0 1px 2px rgba(10,36,71,.04);}
.zc-ticker-code,.zcfr-ticker-code{font-family:'Cinzel',serif;font-size:15px;font-weight:800;letter-spacing:.1em;color:#0a2447;}
.zc-ticker-tag,.zcfr-ticker-tag{font-size:10px;color:#6b7280;padding:2px 8px;border:1px solid #e4ddc9;border-radius:3px;letter-spacing:.06em;}
.zc-ticker-name,.zcfr-ticker-name{font-size:13px;color:#3b475c;}
.zc-ticker-price,.zcfr-ticker-price{font-size:26px;font-weight:800;letter-spacing:-.03em;margin-left:auto;color:#0a2447;}
.zc-ticker-badge,.zcfr-ticker-badge{font-size:12px;font-weight:700;padding:3px 10px;border-radius:4px;}
.zc-badge-up,.zcfr-badge-up{background:#ecfdf5;color:#15803d;}
.zc-badge-dn,.zcfr-badge-dn{background:#eaf2fb;color:#1b4a8a;}
.zc-ticker-loading,.zcfr-loading{font-size:13px;color:#6b7280;margin-left:auto;animation:zc-blink 1.4s ease-in-out infinite;}
@keyframes zc-blink{0%,100%{opacity:1}50%{opacity:.3}}

/* ── ヒーロー ── */
.zc-hero,.zcfr-hero{margin-bottom:3rem;}
.zc-eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-family:'Cinzel',serif;font-size:11px;letter-spacing:.24em;color:#1b4a8a;font-weight:700;margin-bottom:.9rem;padding:4px 10px;background:#eaf2fb;border-radius:3px;}
.zcfr-eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-family:'Cinzel',serif;font-size:11px;letter-spacing:.24em;color:#1b4a8a;font-weight:700;margin-bottom:.9rem;padding:4px 10px;background:#eaf2fb;border-radius:3px;}
.zc-h1,.zcfr-h1{font-family:'Noto Serif JP',serif;font-weight:900;font-size:clamp(2.2rem,5vw,3.4rem);line-height:1.1;letter-spacing:.02em;color:#0a2447;margin-bottom:1.1rem;}
.zc-lead,.zcfr-lead{font-size:15px;color:#3b475c;line-height:2;max-width:640px;}

/* ── セクション ── */
.zc-sec-head,.zcfr-sec-head{display:flex;align-items:baseline;gap:.8rem;margin-bottom:.6rem;margin-top:3rem;}
.zc-sec-num,.zcfr-sec-num{font-family:'Cinzel',serif;font-size:11px;font-weight:700;color:#c9a24a;letter-spacing:.12em;}
.zc-sec-title,.zcfr-sec-title{font-family:'Noto Serif JP',serif;font-size:16px;font-weight:700;color:#0a2447;letter-spacing:.06em;}
.zc-rule{height:1px;background:#e4ddc9;margin-bottom:1.8rem;position:relative;}
.zc-rule::before{content:'';position:absolute;left:0;top:0;width:40px;height:1px;background:#c9a24a;}
.zcfr-rule{height:1px;background:#e4ddc9;margin-bottom:1.8rem;position:relative;}
.zcfr-rule::before{content:'';position:absolute;left:0;top:0;width:40px;height:1px;background:#1b4a8a;}

/* ── タイムライン ── */
.zc-tl,.zcfr-tl{position:relative;padding-left:2.4rem;}
.zc-tl::before,.zcfr-tl::before{content:'';position:absolute;left:8px;top:10px;bottom:10px;width:1px;background:#d9d1bb;}
.zc-tl-item,.zcfr-tl-item{position:relative;margin-bottom:2.4rem;}
.zc-tl-dot,.zcfr-tl-dot{position:absolute;left:-2.4rem;top:6px;width:14px;height:14px;border-radius:50%;border:2px solid #d9d1bb;background:#fbfaf6;}
.zc-tl-item.hl .zc-tl-dot{background:#1b4a8a;border-color:#1b4a8a;box-shadow:0 0 0 3px #d6e6f5;}
.zcfr-tl-item.hl .zcfr-tl-dot{background:#1b4a8a;border-color:#1b4a8a;box-shadow:0 0 0 3px #eaf2fb;}
.zc-tl-year,.zcfr-tl-year{font-family:'Cinzel',serif;font-size:11px;font-weight:700;letter-spacing:.1em;color:#6b7280;margin-bottom:.35rem;}
.zc-tl-item.hl .zc-tl-year{color:#1b4a8a;}
.zcfr-tl-item.hl .zcfr-tl-year{color:#1b4a8a;}
.zc-tl-title,.zcfr-tl-title{font-family:'Noto Serif JP',serif;font-size:15px;font-weight:700;color:#111827;margin-bottom:.5rem;}
.zc-tl-body,.zcfr-tl-body{font-size:13.5px;color:#3b475c;line-height:1.9;}

/* ── 事業カード ── */
.zc-biz-grid,.zcfr-biz-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;}
.zc-biz-card{background:#fff;border:1px solid #e4ddc9;border-radius:10px;border-top:3px solid #1b4a8a;padding:1.1rem 1.2rem;box-shadow:0 1px 2px rgba(10,36,71,.04);}
.zcfr-biz-card{background:#fff;border:1px solid #e4ddc9;border-radius:10px;border-top:3px solid #1b4a8a;padding:1.1rem 1.2rem;box-shadow:0 1px 2px rgba(10,36,71,.04);}
.zc-biz-num,.zcfr-biz-num{font-family:'Cinzel',serif;font-size:10px;color:#c9a24a;letter-spacing:.12em;margin-bottom:.4rem;}
.zc-biz-name,.zcfr-biz-name{font-family:'Noto Serif JP',serif;font-size:15px;font-weight:700;color:#0a2447;margin-bottom:.5rem;}
.zc-biz-desc,.zcfr-biz-desc{font-size:12.5px;color:#3b475c;line-height:1.75;}

/* ── 指標グリッド ── */
.zc-metrics,.zcfr-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;}
.zc-metric,.zcfr-metric{background:#fff;border:1px solid #e4ddc9;border-radius:6px;padding:1rem 1.1rem;}
.zc-metric-label,.zcfr-metric-label{font-size:11px;color:#6b7280;margin-bottom:.4rem;letter-spacing:.06em;}
.zc-metric-val,.zcfr-metric-val{font-size:21px;font-weight:700;color:#0a2447;letter-spacing:-.02em;}
.zc-metric-note,.zcfr-metric-note{font-size:11px;color:#6b7280;margin-top:.25rem;}
.zc-skel,.zcfr-skel{font-size:21px;font-weight:700;color:#d9d1bb;animation:zc-blink 1.4s ease-in-out infinite;}
.zc-data-note,.zcfr-data-note{font-size:11px;color:#6b7280;margin-top:.85rem;}

/* ── インサイト ── */
.zc-insight{background:#eaf2fb;border-left:3px solid #1b4a8a;border-radius:0 6px 6px 0;padding:1.2rem 1.5rem;margin-top:2rem;}
.zc-insight-label{font-family:'Cinzel',serif;font-size:11px;letter-spacing:.2em;color:#1b4a8a;font-weight:700;margin-bottom:.5rem;}
.zc-insight-body{font-size:13.5px;color:#3b475c;line-height:1.9;}
.zcfr-insight{background:#eaf2fb;border-left:3px solid #1b4a8a;border-radius:0 6px 6px 0;padding:1.2rem 1.5rem;margin-top:2rem;}
.zcfr-insight-label{font-family:'Cinzel',serif;font-size:11px;letter-spacing:.2em;color:#1b4a8a;font-weight:700;margin-bottom:.5rem;}
.zcfr-insight-body{font-size:13.5px;color:#3b475c;line-height:1.9;}

/* ── アコーディオン（ソフトバンク：紺） ── */
.zc-accordion,.zcfr-accordion{margin-top:3rem;border-top:2px solid #e4ddc9;padding-top:2.5rem;}
.zc-acc-btn{width:100%;background:linear-gradient(135deg,#0a2447 0%,#1b4a8a 100%);color:#fff;border:none;border-radius:10px;padding:1.4rem 2rem;display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-family:'Noto Serif JP',serif;font-size:16px;font-weight:700;letter-spacing:.05em;transition:opacity .2s;}
.zc-acc-btn:hover{opacity:.9;}
/* ── アコーディオン（ファストリテイリング：赤） ── */
.zcfr-acc-btn{width:100%;background:linear-gradient(135deg,#0a2447 0%,#1b4a8a 100%);color:#fff;border:none;border-radius:10px;padding:1.4rem 2rem;display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-family:'Noto Serif JP',serif;font-size:16px;font-weight:700;letter-spacing:.05em;transition:opacity .2s;}
.zcfr-acc-btn:hover{opacity:.9;}

.zc-btn-inner,.zcfr-btn-inner{display:flex;align-items:center;gap:1rem;}
.zc-acc-sub,.zcfr-acc-sub{font-size:11px;font-family:'Cinzel',serif;letter-spacing:.2em;color:rgba(255,255,255,.8);font-weight:600;display:block;margin-bottom:3px;}
.zc-acc-arrow,.zcfr-acc-arrow{width:28px;height:28px;border:1.5px solid rgba(255,255,255,.35);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .3s;}
.zc-acc-btn.open .zc-acc-arrow,.zcfr-acc-btn.open .zcfr-acc-arrow{transform:rotate(180deg);}
.zc-acc-body,.zcfr-acc-body{display:none;margin-top:2rem;padding:2rem 2.5rem;background:#fff;border:1px solid #e4ddc9;border-radius:10px;box-shadow:0 2px 8px rgba(10,36,71,.05);}
.zc-acc-body.open,.zcfr-acc-body.open{display:block;}

/* ── 詳細ストーリー本文 ── */
.zc-story h2,.zcfr-story h2{font-family:'Noto Serif JP',serif;font-size:18px;font-weight:700;color:#0a2447;margin:2.5rem 0 .8rem;padding-left:1rem;line-height:1.55;}
.zc-story h2:first-child,.zcfr-story h2:first-child{margin-top:0;}
.zc-story h2{border-left:3px solid #c9a24a;}
.zcfr-story h2{border-left:3px solid #1b4a8a;}
.zc-story p,.zcfr-story p{font-size:14.5px;color:#3b475c;line-height:2;margin-bottom:1.2rem;}
.zc-story p:last-child,.zcfr-story p:last-child{margin-bottom:0;}

@media(max-width:600px){
  .zc-metrics,.zcfr-metrics{grid-template-columns:repeat(2,1fr);}
  .zc-h1,.zcfr-h1{font-size:2.2rem;}
  .zc-acc-body,.zcfr-acc-body{padding:1.5rem 1.2rem;}
}
/* ============================================================
   ZELUS CODEX — zelus-style-additions.css
   ============================================================
   ★ このファイルの中身を zelus-style.css の末尾にまるごとコピペしてください。
   　 上書きではなく「追記」です。既存の内容は消さないでください。
   ============================================================ */


/* ------------------------------------------------------------
   D-1. ヒーロー背景画像
   ------------------------------------------------------------
   【使い方】
   1. WordPressの「メディア」に背景画像（1920×900px推奨、500KB以下）を
      ライト用・ダーク用の2枚アップロード
   2. 各画像を開いて右側「ファイルのURL」をコピー
   3. 下の PLACEHOLDER_LIGHT_IMAGE_URL / PLACEHOLDER_DARK_IMAGE_URL を
      そのURLで置き換えてください
   ------------------------------------------------------------ */
:root {
  --hero-bg-light: url(http://www.zeluscodex.com/wp-content/uploads/2026/05/toplight.jpg);
  --hero-bg-dark:  url(http://www.zeluscodex.com/wp-content/uploads/2026/05/topdark.jpg);
}

.zelus-hero {
  background-image:
    linear-gradient(135deg, rgba(15,46,92,.72) 0%, rgba(27,74,138,.62) 60%, rgba(42,95,158,.65) 100%),
    var(--hero-bg-light);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

body.dark .zelus-hero {
  background-image:
    linear-gradient(135deg, rgba(0,0,0,.78) 0%, rgba(15,20,25,.7) 60%, rgba(15,46,92,.72) 100%),
    var(--hero-bg-dark);
}

/* 透かし文字をうっすら残す */
.zelus-hero::before { color: rgba(255,255,255,.06); }
body.dark .zelus-hero::before { color: rgba(255,255,255,.04); }


/* ------------------------------------------------------------
   D-2. サイト全体検索バー（B-3）
   ------------------------------------------------------------ */
.zelus-search-bar-section {
  background: var(--color-bg-alt);
  padding: var(--space-6) 0;
  border-bottom: 1px solid var(--color-rule);
}

.zelus-search-bar {
  display: flex;
  max-width: 600px;
  margin: 0 auto;
  background: var(--color-bg-card);
  border: 1px solid var(--color-rule);
  border-radius: var(--radius);
  overflow: hidden;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.zelus-search-bar:focus-within {
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px rgba(201,162,74,.15);
}

.zelus-search-bar__input {
  flex: 1;
  border: none;
  background: transparent;
  padding: var(--space-3) var(--space-4);
  font-family: var(--font-sans);
  font-size: var(--text-base);
  color: var(--color-text);
  outline: none;
}

.zelus-search-bar__input::placeholder {
  color: var(--color-text-mute);
}

.zelus-search-bar__btn {
  background: var(--color-primary);
  color: #fff;
  border: none;
  padding: 0 var(--space-5);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s;
}

.zelus-search-bar__btn:hover {
  background: var(--color-accent);
}

.zelus-search-bar__btn svg {
  width: 18px;
  height: 18px;
}


/* ------------------------------------------------------------
   D-3. 企業オートコンプリート検索（C-1）
   ------------------------------------------------------------ */
.zelus-company-search {
  position: relative;
  flex: 1;
  max-width: 320px;
  margin: 0 var(--space-4);
}

.zelus-company-search--hero {
  max-width: 480px;
  margin: var(--space-6) auto 0;
}

.zelus-company-search__input {
  width: 100%;
  padding: var(--space-2) var(--space-4);
  border: 1px solid var(--color-rule);
  border-radius: var(--radius);
  background: var(--color-bg-card);
  color: var(--color-text);
  font-family: var(--font-sans);
  font-size: var(--text-sm);
  outline: none;
  transition: border-color .2s, box-shadow .2s;
  box-sizing: border-box;
}

.zelus-company-search--hero .zelus-company-search__input {
  padding: var(--space-3) var(--space-4);
  font-size: var(--text-base);
  background: rgba(255,255,255,.95);
  color: #111;
}

.zelus-company-search__input:focus {
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px rgba(201,162,74,.15);
}

.zelus-company-search__results {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  margin-top: 4px;
  background: var(--color-bg-card);
  border: 1px solid var(--color-rule);
  border-radius: var(--radius);
  box-shadow: 0 8px 24px rgba(0,0,0,.12);
  list-style: none;
  padding: 0;
  max-height: 320px;
  overflow-y: auto;
  z-index: 100;
}

.zelus-company-search__results[hidden] {
  display: none;
}

.zelus-company-search__item {
  padding: var(--space-3) var(--space-4);
  cursor: pointer;
  border-bottom: 1px solid var(--color-rule);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-3);
  color: var(--color-text);
  text-decoration: none;
}

.zelus-company-search__item:last-child {
  border-bottom: none;
}

.zelus-company-search__item:hover,
.zelus-company-search__item--active {
  background: var(--color-bg-alt);
  color: var(--color-accent);
}

.zelus-company-search__item-name {
  font-weight: 500;
}

.zelus-company-search__item-code {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--color-text-mute);
  flex-shrink: 0;
}

.zelus-company-search__empty {
  padding: var(--space-4);
  text-align: center;
  color: var(--color-text-mute);
  font-size: var(--text-sm);
  list-style: none;
}


/* ------------------------------------------------------------
   F. zelus-section-head のレイアウト微調整（検索ボックスあり版）
   ------------------------------------------------------------ */
.zelus-section-head--with-search {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  flex-wrap: wrap;
}

.zelus-section-head--with-search .zelus-section-head__title {
  margin-right: auto;
}


/* ------------------------------------------------------------
   レスポンシブ（モバイル対応）
   ------------------------------------------------------------ */
@media (max-width: 768px) {
  .zelus-company-search {
    max-width: 100%;
    margin: var(--space-3) 0 0;
    flex-basis: 100%;
  }

  .zelus-section-head--with-search {
    flex-wrap: wrap;
  }

  .zelus-company-search--hero {
    max-width: 100%;
  }
}
/* ================================================================
   ZELUS CODEX — 追記CSS（2026-05-07）
   zelus-style.css の末尾に追記してください
   ================================================================

   修正内容:
   1. 企業ストーリーヒーローヘッダー（銘柄情報を青ヘッダーに統合）
   2. ダークモード時の白枠カード輝度低減（事業構造・投資指標・Deep Dive等）
   3. ダークモード時の本文テキスト可読性向上
   ================================================================ */


/* ================================================================
   1. 企業ストーリー ヒーローヘッダー（銘柄情報統合版）
   ================================================================ */

.zelus-companystory-hero {
  background: linear-gradient(135deg, var(--color-primary-dark) 0%, var(--color-primary) 60%, #2A5F9E 100%);
  color: #fff;
  padding: var(--space-12) 0;
}

.zelus-companystory-hero__inner {
  display: flex;
  align-items: flex-start;
  gap: var(--space-6);
  flex-wrap: wrap;
}

.zelus-companystory-hero__logo {
  flex-shrink: 0;
  background: rgba(255,255,255,.12);
  border-radius: var(--radius);
  padding: var(--space-3) var(--space-4);
}

.zelus-companystory-hero__text {
  flex: 1;
  min-width: 200px;
}

.zelus-companystory-hero__title {
  font-family: var(--font-serif);
  font-size: var(--text-3xl);
  font-weight: 700;
  color: #fff;
  margin: 0 0 var(--space-3);
  line-height: 1.3;
}

.zelus-companystory-hero__tagline {
  font-size: var(--text-sm);
  color: rgba(255,255,255,.75);
  margin: 0 0 var(--space-4);
}

/* 銘柄情報バッジ群 */
.zelus-companystory-hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-top: var(--space-3);
}

.zelus-companystory-hero__badge {
  display: inline-block;
  font-size: var(--text-xs);
  padding: 4px 12px;
  border-radius: 999px;
  font-weight: 600;
  letter-spacing: .04em;
}

/* 証券コード：白背景 + 紺文字（目立たせる） */
.zelus-companystory-hero__badge--code {
  background: rgba(255,255,255,.95);
  color: var(--color-primary-dark);
  font-size: var(--text-sm);
  font-weight: 700;
  padding: 4px 14px;
}

/* 市場区分：半透明白枠 */
.zelus-companystory-hero__badge--market {
  background: rgba(255,255,255,.15);
  border: 1px solid rgba(255,255,255,.5);
  color: #fff;
}

/* 正式名称：半透明 */
.zelus-companystory-hero__badge--formal {
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.3);
  color: rgba(255,255,255,.9);
}

/* 業種：アクセントカラー系 */
.zelus-companystory-hero__badge--industry {
  background: rgba(201,162,74,.25);
  border: 1px solid rgba(201,162,74,.6);
  color: #f5d98a;
}


/* ================================================================
   2. ダークモード時の白枠カード輝度低減
      対象: 事業構造カード / 投資指標カード / Deep Diveボックス /
            投資家目線ボックス / タイムライン etc.
   ================================================================ */

/* カード全般 */
body.dark .zelus-article__content [style*="background:#fff"],
body.dark .zelus-article__content [style*="background: #fff"],
body.dark .zelus-article__content [style*="background:white"],
body.dark .zelus-article__content [style*="background: white"] {
  background: #1e2535 !important;
  border-color: rgba(255,255,255,.1) !important;
}

/* Gutenbergブロック由来の白背景 */
body.dark .wp-block-group,
body.dark .wp-block-columns,
body.dark .wp-block-column {
  background: transparent;
}

/* zelus-card（事業構造の4枚カード） */
body.dark .zelus-card {
  background: #1e2535 !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  box-shadow: 0 2px 12px rgba(0,0,0,.4) !important;
}

/* zelus-metric（投資指標ボックス） */
body.dark .zelus-metric,
body.dark [class*="zelus-metric"] {
  background: #1a2030 !important;
  border: 1px solid rgba(255,255,255,.1) !important;
}

/* Deep Dive アコーディオン */
body.dark .zelus-deepdive,
body.dark [class*="zelus-deepdive"],
body.dark [class*="deep-dive"],
body.dark [class*="deepdive"] {
  background: #1b2540 !important;
  border: 1px solid rgba(255,255,255,.15) !important;
}

/* 投資家目線ボックス（zelus-investor-point） */
body.dark .zelus-investor-point,
body.dark [class*="investor"] {
  background: #1c2842 !important;
  border-left-color: var(--color-accent) !important;
}

/* タイムラインアイテム */
body.dark .zelus-timeline__item {
  background: #1e2535 !important;
  border: 1px solid rgba(255,255,255,.1) !important;
}

/* インラインスタイルで白背景が指定された要素（記事本文内） */
body.dark .zelus-article__content > div[style],
body.dark .zelus-article__content > section[style] {
  border-color: rgba(255,255,255,.12) !important;
}

/* セクション番号見出し（01 / 02 / 03） */
body.dark .zelus-section-heading,
body.dark [class*="section-heading"] {
  color: rgba(255,255,255,.6) !important;
}


/* ================================================================
   3. ダークモード時の文字色 可読性向上
   ================================================================ */

/* 本文テキスト全般 */
body.dark .zelus-article__content {
  color: #d4dae8;
}

/* 見出し */
body.dark .zelus-article__content h1,
body.dark .zelus-article__content h2,
body.dark .zelus-article__content h3,
body.dark .zelus-article__content h4 {
  color: #e8ecf4;
}

/* カード内テキスト */
body.dark .zelus-card p,
body.dark .zelus-card span,
body.dark .zelus-metric p,
body.dark .zelus-metric span {
  color: #c8d0e0 !important;
}

/* カードの小見出し（事番号ラベル等） */
body.dark .zelus-card__label {
  color: rgba(255,255,255,.5) !important;
}

/* 投資指標の数値（「—」ダッシュ部分） */
body.dark .zelus-metric__value {
  color: #e0e6f0 !important;
}

/* 注記テキスト（データ取得失敗など） */
body.dark .zelus-metric__note,
body.dark [class*="metric__note"] {
  color: rgba(255,255,255,.45) !important;
}

/* Deep Diveタイトル */
body.dark .zelus-deepdive__title,
body.dark [class*="deepdive__title"] {
  color: #e0e6f4 !important;
}

/* タイムライン年・イベント */
body.dark .zelus-timeline__year {
  color: var(--color-accent) !important;
}
body.dark .zelus-timeline__event {
  color: #e0e6f4 !important;
}
body.dark .zelus-timeline__desc {
  color: #b8c2d8 !important;
}

/* セクション罫線 */
body.dark .zelus-article__content hr,
body.dark [class*="border"] {
  border-color: rgba(255,255,255,.1) !important;
}

/* リンク */
body.dark .zelus-article__content a {
  color: #8ab4f8;
}
body.dark .zelus-article__content a:hover {
  color: #aecbfa;
}

/* トレ助コメントボックス */
body.dark .zelus-toresuke,
body.dark [class*="toresuke"] {
  background: #1a2535 !important;
  border-color: rgba(201,162,74,.4) !important;
}
body.dark .zelus-toresuke p,
body.dark [class*="toresuke"] p {
  color: #c8d4e8 !important;
}
/* ================================================================
   ZELUS CODEX — ダークモード追加スタイル（2026-05-07）
   zelus-style.css の【末尾】に追記してください。
   既存のコードは絶対に削除・上書きしないこと。
   ================================================================ */

/* --------------------------------------------------------------
   B-1: カード・ボックス類の白背景 → 目に優しい暗色へ
   -------------------------------------------------------------- */

/* 事業構造カード（02セクションの4枚） */
body.dark .zelus-card {
  background: #1e2535 !important;
  border-color: rgba(255,255,255,.1) !important;
  box-shadow: 0 2px 12px rgba(0,0,0,.5) !important;
}

/* 投資指標カード（03セクションの8枚） */
body.dark .zelus-metric {
  background: #1a2030 !important;
  border-color: rgba(255,255,255,.1) !important;
}

/* Deep Diveアコーディオン */
body.dark .zelus-deepdive {
  background: #1b2440 !important;
  border-color: rgba(255,255,255,.15) !important;
}

/* 投資家目線のポイントボックス */
body.dark .zelus-investor-point {
  background: #1c2842 !important;
  border-left-color: var(--color-accent) !important;
}

/* タイムラインのドット背景（白いカード感をなくす） */
body.dark .zelus-timeline__item::before {
  border-color: #1a1f2e !important;
}

/* zelus-article__content内のインラインstyle白背景を暗色に */
body.dark .zelus-article__content [style*="background:#fff"],
body.dark .zelus-article__content [style*="background: #fff"],
body.dark .zelus-article__content [style*="background:white"],
body.dark .zelus-article__content [style*="background: white"] {
  background: #1e2535 !important;
  border-color: rgba(255,255,255,.1) !important;
}

/* Gutenbergブロック由来の白背景 */
body.dark .zelus-article__content .wp-block-group {
  background: transparent;
}

/* --------------------------------------------------------------
   B-2: 文字色 — 背景と同化して読みにくい箇所を可読色に
   -------------------------------------------------------------- */

/* タイムライン — サブタイトル（最も問題が深刻な箇所） */
body.dark .zelus-timeline__event {
  color: #e0e6f4 !important;
}

/* タイムライン — 説明文 */
body.dark .zelus-timeline__desc {
  color: #b8c4d8 !important;
}

/* タイムライン — 年号（アクセントカラーのまま維持でOKだが念のため） */
body.dark .zelus-timeline__year {
  color: var(--color-accent) !important;
}

/* 事業カード内テキスト */
body.dark .zelus-card p,
body.dark .zelus-card span,
body.dark .zelus-card h3,
body.dark .zelus-card h4 {
  color: #c8d0e0 !important;
}

/* 事業カードのラベル（仕01など） */
body.dark .zelus-card__label {
  color: rgba(255,255,255,.45) !important;
}

/* 投資指標の数値（「—」など） */
body.dark .zelus-metric__value {
  color: #e0e6f0 !important;
}

/* 投資指標のラベル（「株価」「PER」など） */
body.dark .zelus-metric__label {
  color: rgba(255,255,255,.55) !important;
}

/* 投資指標の注記（「データ取得失敗」「東証プライム」など） */
body.dark .zelus-metric__note,
body.dark .zelus-metric__sub {
  color: rgba(255,255,255,.4) !important;
}

/* 本文全体 */
body.dark .zelus-article__content {
  color: #d4dae8;
}

/* 本文見出し */
body.dark .zelus-article__content h2,
body.dark .zelus-article__content h3,
body.dark .zelus-article__content h4 {
  color: #e8ecf4;
}

/* Deep Diveタイトル */
body.dark .zelus-deepdive__title {
  color: #e0e6f4 !important;
}

/* 投資家目線ボックス内テキスト */
body.dark .zelus-investor-point p,
body.dark .zelus-investor-point h3 {
  color: #c8d4e8 !important;
}

/* セクション見出し（01 / 02 / 03 のタイトル） */
body.dark .zelus-section__heading {
  color: rgba(255,255,255,.55) !important;
}

/* トレ助コメントボックス */
body.dark .zelus-toresuke {
  background: #1a2535 !important;
  border-color: rgba(201,162,74,.35) !important;
}
body.dark .zelus-toresuke p {
  color: #c8d4e8 !important;
}

/* リンク */
body.dark .zelus-article__content a {
  color: #8ab4f8;
}
body.dark .zelus-article__content a:hover {
  color: #aecbfa;
}
/* ================================================================
   ZELUS CODEX — zcfr ダークモード対応 v2
   zelus-style.css の末尾に追記してください（末尾追記のみ・既存削除禁止）
   ※ 前回追記した「zcfr-dark.css」の内容は削除してから追記してください
   ================================================================ */

/* タイムライン */
body.dark .zcfr-tl-title {
  color: #e0e6f4;
}
body.dark .zcfr-tl-body {
  color: #b8c4d8;
}
body.dark .zcfr-tl-year {
  color: #c9a24a;
}

/* 事業カード */
body.dark .zcfr-biz-card {
  background: #1e2535;
  border-color: rgba(255,255,255,.1);
  border-top-color: #1b4a8a;
}
body.dark .zcfr-biz-num {
  color: rgba(255,255,255,.4);
}
body.dark .zcfr-biz-name {
  color: #e0e6f4;
}
body.dark .zcfr-biz-desc {
  color: #b8c4d8;
}

/* 投資指標カード */
body.dark .zcfr-metric {
  background: #1a2030;
  border-color: rgba(255,255,255,.08);
}
body.dark .zcfr-metric-label {
  color: rgba(255,255,255,.5);
}
body.dark .zcfr-metric-val,
body.dark .zcfr-skel {
  color: #e0e8f4;
}
body.dark .zcfr-metric-note {
  color: rgba(255,255,255,.38);
}

/* 投資家目線ボックス */
body.dark .zcfr-insight {
  background: #1c2842;
  border-left-color: #c9a24a;
}
body.dark .zcfr-insight-label {
  color: #c9a24a;
}
body.dark .zcfr-insight-body {
  color: #c8d4e8;
}

/* Deep Dive 本文 */
body.dark .zcfr-story h2 {
  color: #e0e6f4;
}
body.dark .zcfr-story p {
  color: #b8c4d8;
}

/* データ注記 */
body.dark .zcfr-data-note {
  color: rgba(255,255,255,.38);
}

/* ティッカーバー */
body.dark .zcfr-ticker {
  background: #1e2535;
  border-color: rgba(255,255,255,.1);
}
body.dark .zcfr-ticker-code {
  color: #e0e8f4;
}
body.dark .zcfr-ticker-tag {
  border-color: rgba(255,255,255,.2);
  color: rgba(255,255,255,.55);
}
body.dark .zcfr-ticker-name {
  color: rgba(255,255,255,.7);
}

/* セクション見出し */
body.dark .zcfr-sec-num {
  color: rgba(255,255,255,.3);
}
body.dark .zcfr-sec-title {
  color: rgba(255,255,255,.6);
}