/* =========================================================
   xxxxnese — components/news-item.css
   ニュース一覧の行（将来 News一覧ページでも使い回す）
   ---------------------------------------------------------
   .news-item__tag は chip.css に分離（小タグの共通性を優先）
   ========================================================= */

.news-list {
  border-top: 1px solid var(--color-line);
}

.news-item {
  border-bottom: 1px solid var(--color-line);
}

.news-item a {
  display: grid;
  grid-template-columns: 220px 1fr 40px;
  gap: 40px;
  align-items: center;
  padding: 32px 8px;
  transition: padding 0.3s var(--ease);
}

.news-item a:hover {
  padding-left: 20px;
}

.news-item__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 16px;
  row-gap: 6px;
}

.news-item__date {
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.08em;
  color: var(--color-ink-soft);
  font-feature-settings: "tnum" 1, "lnum" 1;
}

.news-item__title {
  font-size: 15px;
  line-height: 1.7;
  color: var(--color-ink);
  letter-spacing: 0.02em;
}

.news-item__arrow {
  font-size: 14px;
  color: var(--color-muted);
  justify-self: end;
  transition: transform 0.3s var(--ease), color 0.3s var(--ease);
}

.news-item a:hover .news-item__arrow {
  transform: translateX(6px);
  color: var(--color-ink);
}

/* =========================================================
   Responsive — news-item
   ========================================================= */

/* Tablet */
@media (max-width: 960px) {
  .news-item a {
    grid-template-columns: 180px 1fr 32px;
    gap: 24px;
  }
}

/* Mobile */
@media (max-width: 640px) {
  .news-item a {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 24px 4px;
  }

  .news-item a:hover {
    padding-left: 10px;
  }

  .news-item__arrow {
    display: none;
  }

  .news-item__title {
    font-size: 14px;
  }
}
