  /* ==================================================
     /topics/ ページ専用スタイル
     共通の .pagination / .topics-toolbar / .topics-year-filter は common.css に集約済み。
     ここではページ固有のスタイルのみ追加する。
     ================================================== */

  /* ==================================================
     PAGE HERO BACKGROUND — TOPICS / NEWS（写真背景に上書き）
     ================================================== */
  /* /topics/ と /topics/{slug}/ に適用（page_key='news' → body.page-news）。
     画像が明るめなのでグラデを少し濃く、白文字「トピックス」を読みやすく保つ。 */
  .page-news .page-hero-bg {
    background-image:
      linear-gradient(180deg, rgba(0,0,0,0.30) 0%, rgba(0,0,0,0.60) 60%, rgba(0,0,0,0.80) 100%),
      url('/assets/img/news/hero.webp');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
  }

  /* page-hero 直下の section（日付メタ・本文）の上パディング圧縮 */
  .page-hero + .section { padding-top: 64px; }
  @media (max-width: 600px) {
    .page-hero + .section { padding-top: 40px; }
  }

  /* ============================================================
     ニュース詳細の hero タイトル（stories 以外）
     旧: news-detail.php に inline style で 24px / letter-spacing:0.05em
         を直書きしていたが、SP override が効かないため class 化。
     ============================================================ */
  .page-hero-title.page-hero-title-news {
    font-size: 24px;
    line-height: 1.5;
    letter-spacing: 0.05em;
    /* 長いタイトル（例: 決算短信のフルタイトル）が SE 幅で
       はみ出ないよう、和文の禁則を保ちつつ任意位置で折り返す */
    word-break: keep-all;
    overflow-wrap: anywhere;
  }
  @media (max-width: 768px) {
    .page-hero-title.page-hero-title-news {
      font-size: 21px;
      line-height: 1.55;
      letter-spacing: 0.04em;
    }
  }
  @media (max-width: 480px) {
    .page-hero-title.page-hero-title-news {
      font-size: 18px;
      line-height: 1.55;
      letter-spacing: 0.02em;
    }
  }

  /* ============================================================
     記事本文（admin から HTML 直入力された body）の最低限スタイル
     news-detail.php の <article class="news-detail-body"> 配下に適用。
     ============================================================ */
  .news-detail-body {
    font-size: 14px;
    line-height: 1.95;
    color: #444444;
    letter-spacing: 0.03em;
  }
  .news-detail-body p {
    margin: 0 0 16px;
  }
  .news-detail-body h2 {
    font-size: 20px;
    line-height: 1.5;
    font-weight: 500;
    margin: 40px 0 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--line-soft);
    letter-spacing: 0.04em;
  }
  .news-detail-body h3 {
    font-size: 17px;
    line-height: 1.55;
    font-weight: 500;
    margin: 28px 0 10px;
    letter-spacing: 0.03em;
  }
  .news-detail-body h4 {
    font-size: 15px;
    font-weight: 500;
    margin: 20px 0 8px;
  }
  .news-detail-body strong { font-weight: 600; color: #222; }
  .news-detail-body em { font-style: normal; color: var(--accent); }
  .news-detail-body a {
    color: var(--link);
    border-bottom: 1px solid var(--link);
    padding-bottom: 1px;
    word-break: keep-all;
    overflow-wrap: anywhere;
  }
  .news-detail-body a:hover { opacity: 0.7; }
  .news-detail-body ul,
  .news-detail-body ol {
    margin: 0 0 16px;
    padding-left: 24px;
  }
  .news-detail-body li { margin-bottom: 6px; }
  .news-detail-body img {
    max-width: 100%;
    height: auto;
    margin: 16px 0;
    border-radius: 2px;
  }
  .news-detail-body figure {
    margin: 20px 0;
  }
  .news-detail-body figure img { margin: 0; }
  .news-detail-body figcaption {
    font-size: 12px;
    color: var(--note);
    margin-top: 6px;
    text-align: center;
  }
  .news-detail-body blockquote {
    margin: 20px 0;
    padding: 16px 20px;
    background: var(--paper);
    border-left: 3px solid var(--accent);
    color: #555;
    font-size: 13.5px;
  }
  .news-detail-body table {
    width: 100%;
    border-collapse: collapse;
    margin: 16px 0;
    font-size: 13px;
  }
  .news-detail-body th,
  .news-detail-body td {
    padding: 10px 12px;
    border: 1px solid var(--line-soft);
    text-align: left;
    vertical-align: top;
  }
  .news-detail-body th {
    background: var(--paper);
    font-weight: 500;
    color: #333;
  }
  .news-detail-body hr {
    margin: 32px 0;
    border: 0;
    border-top: 1px solid var(--line-soft);
  }

  /* SP: テーブルは横スクロール可、見出しサイズ縮小 */
  @media (max-width: 600px) {
    .news-detail-body { font-size: 14px; line-height: 1.9; }
    .news-detail-body h2 { font-size: 18px; margin: 32px 0 12px; }
    .news-detail-body h3 { font-size: 16px; margin: 24px 0 10px; }
    .news-detail-body table {
      display: block;
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
    }
    .news-detail-body blockquote { padding: 14px 16px; font-size: 13px; }
  }
