@charset "UTF-8";
/* =========================================================
   ミュージアムニュース（m_news/index.cfm）専用CSS  カード形式
   共通CSS（common_layout / common_item / header / footer）の後に読み込む
   ※ .visually-hidden は header.css / com_acce.css の共通クラスを使用
   ========================================================= */

/* 配色は共通CSS（common_item.css の :root、common_acce.css のテーマ切替）の
   カスタムプロパティを参照。黒／黄テーマでも自動で配色が切り替わる。 */
#m_news {
  color: var(--ink);
  margin-top: 2.5em;
}

/* 注意書き */
#m_news .tyuui {
  margin: 0 0 1.5em;
  font-size: 0.95rem;
  line-height: 1.7;
  color: var(--ink-soft);
}

/* 年度ブロック */
#m_news .mn_year {
  margin-bottom: 2.5em;
}

/* 年度見出し（共通の .common_title_line を、このページのみ少し目立たせる）
   ・文字を大きく太く　・左に太いアクセント線　・下に区切り線
   ・色は共通トークン（--forest / --line-strong）なので黒・黄テーマにも追従 */
#m_news .mn_year .common_title_line {
  margin: 0;
  padding: 0.35em 0 0.35em 0.7em;
  font-size: clamp(1.25rem, 1.05rem + 0.8vw, 1.6rem);
  font-weight: bold;
  line-height: 1.4;
  color: var(--ink);
  border-left: 8px solid var(--forest);
  border-bottom: 2px solid var(--line-strong);
}

/* カードリスト：スマホ2列 → タブレット3列 → PC4列（最大5列） */
#m_news .mn_card_list {
  list-style: none;
  margin: 1.2em 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
@media (min-width: 600px) {
  #m_news .mn_card_list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
}
@media (min-width: 900px) {
  #m_news .mn_card_list { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
}
@media (min-width: 1200px) {
  #m_news .mn_card_list { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

/* カード本体 */
#m_news .mn_card {
  display: flex;
  flex-direction: column;
  background: var(--paper-2);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-m);
  box-shadow: var(--shadow-card);
  overflow: hidden;
}

/* 表紙画像（A4縦を想定。画像が無い場合は薄いグレーの枠のまま残る） */
#m_news .mn_card_img {
  aspect-ratio: 300 / 424;
  background: var(--paper);
  overflow: hidden;
  border-bottom: 1px solid var(--line);
}
#m_news .mn_card_img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
}

/* テキスト部（ボタンをカード下端にそろえる） */
#m_news .mn_card_body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 12px 12px 14px;
  line-height: 1.6;
}
#m_news .mn_card_title {
  margin: 0;
  font-size: 1rem;
  font-weight: bold;
  line-height: 1.5;
}
#m_news .mn_card_date {
  margin: 4px 0 0;
  font-size: 0.875rem;
  color: var(--ink-soft);
}

/* PDFボタン（刊行物ページ book_details.css の .pub-link と同じ見た目：
   塗りのpill型＋右端に矢印。配色は共通トークンでテーマ切替に追従）
   タップ領域は44px以上 */
#m_news .mn_card_btn_area {
  margin: 10px 0 0;
}
#m_news .mn_card_date + .mn_card_btn_area {
  margin-top: auto;
  padding-top: 12px;
}
#m_news .mn_btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 44px;
  padding: 8px 14px;
  box-sizing: border-box;
  border: 1px solid var(--forest);
  border-radius: 999px;
  background: var(--forest);
  color: var(--forest-contrast);
  font-size: 0.78125rem;
  line-height: 1.4;
  text-decoration: none;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
#m_news .mn_btn:hover {
  background: var(--forest-2);
  border-color: var(--forest-2);
}
#m_news .mn_btn:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 2px;
}
/* 右端の矢印（装飾） */
#m_news .mn_btn .next_arrow {
  flex: none;
  width: 7px;
  height: 7px;
  border-top: 1.6px solid currentColor;
  border-right: 1.6px solid currentColor;
  transform: rotate(45deg);
}
/* 正誤表などの副ボタン（枠線のみ。book_details.css の .is-report に相当） */
#m_news .mn_btn_sub {
  background: transparent;
  border-color: var(--clay);
  color: var(--clay);
}
#m_news .mn_btn_sub:hover {
  background: var(--clay);
  border-color: var(--clay);
  color: var(--paper-2);
}

/* 最新号バッジ（色だけに頼らず文字で表示） */
#m_news .mn_badge {
  display: inline-block;
  align-self: flex-start;
  margin-bottom: 6px;
  padding: 1px 10px;
  font-size: 0.8rem;
  font-weight: bold;
  color: var(--paper-2);
  background: var(--clay);
  border-radius: 3px;
}

/* 動きを減らす設定 */
@media (prefers-reduced-motion: reduce) {
  #m_news .mn_btn { transition: none; }
}

/* 強制カラー（高コントラスト）モード */
@media (forced-colors: active) {
  #m_news .mn_card { border: 1px solid CanvasText; }
  #m_news .mn_badge { border: 1px solid CanvasText; }
}
