/* =============================================================================
   Top news（ニュース）
   Figma: node-id=163:5371 / Image+Text component node-id=129:2794
   ============================================================================= */

/* セクション */
.top-news {
  container-type: inline-size;
  width: 100%;
}

.top-news__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--margin-40);
  max-width: 1200px;
  margin: 0 auto;
}

/* =============================================================================
   ニュースグリッド共通
   ============================================================================= */

/* トップページ: 3列 grid */
.top-news__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--margin-24);
  width: 100%;
  list-style: none;
  margin: 0;
  padding: 0;
}

/* 住民専用ページ: 4列 grid */
.resident-news__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--margin-24);
  list-style: none;
  margin: 0;
  padding: 0;
  width: 100%;
}

/* =============================================================================
   Event Card（画像付き記事カード）
   ============================================================================= */

.news-card__link {
  display: flex;
  flex-direction: column;
  gap: var(--margin-8);
  align-items: center;
  text-decoration: none;
  transition: opacity 0.2s;
}

.news-card__link:hover {
  opacity: 0.75;
}

/* サムネイル画像 */
.news-card__image {
  width: 100%;
  flex-shrink: 0;
}

.news-card__image img {
  display: block;
  width: 100%;
  aspect-ratio: 771 / 434;
  object-fit: cover;
}

/* 画像なし時のプレースホルダー */
.news-card__image-placeholder {
  width: 100%;
  aspect-ratio: 771 / 434;
  background-color: var(--color-table-border);
}

/* カード本文エリア */
.news-card__body {
  display: flex;
  flex-direction: column;
  gap: var(--margin-8);
  align-items: flex-start;
  width: 100%;
}

/* 日付・タイトルグループ */
.news-card__meta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.news-card__datetime {
  white-space: nowrap;
  margin: 0;
  text-align: left;
}

.news-card__title {
  margin: 0;
  text-align: left;
}

/* 概要テキスト（文字スタイルは paragraph コンポーネントが担当） */
.news-card__excerpt {
  margin: 0;
}

/* =============================================================================
   Top news（SP）
   ============================================================================= */

/* コンテンツが端に当たるタイミングで横パディングを追加 */
@container (max-width: 1240px) {
  .top-news__inner {
    padding: 0 var(--margin-16);
  }
}

/* SP レイアウト切替 */
@container (max-width: 1000px) {
  .top-news__grid {
    grid-template-columns: 1fr;
    gap: var(--margin-40);
  }
}

@container (max-width: 1023px) {
  .resident-news__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@container (max-width: 640px) {
  .resident-news__grid {
    grid-template-columns: 1fr;
  }
}

