/* ニュース一覧ページ（style.css に追加で読み込む） */

.news-section { padding-bottom: clamp(48px, 7vw, 88px); }
.news-list { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }
.news-card {
  position: relative;
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr);
  gap: 20px;
  align-items: start;
  padding: 18px;
  background: var(--card);
  border: 1px solid var(--hairline);
  border-radius: var(--radius);
  transition: box-shadow .2s, transform .2s;
}
.news-card:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(31, 42, 51, .08); }
.news-card img { width: 160px; height: 160px; object-fit: cover; border-radius: 12px; background: var(--night); }
.news-card time { color: var(--muted); font-size: .88rem; font-variant-numeric: tabular-nums; }
.news-card h2 { margin: 4px 0 8px; font-family: var(--font-body); font-size: 1.12rem; line-height: 1.6; }
.news-card h2 a { color: var(--ink); text-decoration: none; }
/* カード全体を押せるようにする（リンクは見出しの1つだけ） */
.news-card h2 a::after { content: ""; position: absolute; inset: 0; border-radius: var(--radius); }
.news-card:hover h2 a { color: var(--sea-dark); text-decoration: underline; }
.news-card h2 a:focus-visible { outline: none; }
.news-card:has(a:focus-visible) { outline: 3px solid var(--sea-dark); outline-offset: 2px; }
.news-card p {
  display: -webkit-box;
  margin: 0;
  max-width: none;
  overflow: hidden;
  color: var(--muted);
  font-size: .93rem;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

@media (max-width: 600px) {
  .news-card { grid-template-columns: 88px minmax(0, 1fr); gap: 14px; padding: 14px; }
  .news-card img { width: 88px; height: 88px; }
  .news-card p { -webkit-line-clamp: 4; }
}
