/* ========== NEWS ページ固有 ==========
   Wix: 記事4件を縦に並べる。左に画像（640×375）・右に日付 13.5px／見出し 24px／本文 15px／「Show More」
   1件目の画像は5枚のスライドショー（275×367）→ 横スクロールのギャラリーに置き換え         */

.news-list { padding: var(--sec-pad) 0; }
.news-item {
  display: grid;
  grid-template-columns: minmax(0, 640px) minmax(0, 1fr);
  gap: clamp(28px, 4.5vw, 64px);
  align-items: start;
  padding: var(--block-gap) 0;
  border-top: 1px solid #e6e6e6;
}
.news-item:first-child { border-top: 0; padding-top: 0; }
.news-item:last-child { padding-bottom: 0; }

/* 画像 */
.news-media { min-width: 0; }
.news-media > img {
  width: 100%;
  aspect-ratio: 640 / 375;
  object-fit: cover;
  background: var(--gray);
}
.news-media > img.is-natural { aspect-ratio: auto; object-fit: contain; }

/* 5枚の横スクロールギャラリー */
.news-gallery {
  display: flex;
  gap: 14px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 10px;
  scrollbar-width: thin;
  scrollbar-color: rgba(0, 0, 0, 0.35) transparent;
}
.news-gallery img {
  flex: 0 0 clamp(200px, 19vw, 275px);
  width: clamp(200px, 19vw, 275px);
  min-width: 0;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  scroll-snap-align: start;
  background: var(--gray);
}
.news-gallery:focus-visible { outline-offset: 6px; }

/* 本文側 */
.news-body { min-width: 0; }
.news-date {
  display: block;
  font-family: var(--font-kaku);
  font-size: var(--fs-small);
  font-weight: 500;
  letter-spacing: 0.1em;
  color: var(--gray-text);
}
.news-title {
  margin-top: 10px;
  font-family: var(--font-kaku);
  font-weight: 700;
  font-size: clamp(20px, 1.7vw, 24px);
  line-height: 1.5;
  letter-spacing: 0.06em;
}
.news-text { position: relative; margin-top: 22px; font-size: var(--fs-body); line-height: 1.9; }
.news-text p + p, .news-text ul + p, .news-text ol + p { margin-top: 1em; }
.news-sub { margin-top: 1.4em; font-family: var(--font-body); font-weight: 700; font-size: var(--fs-body); line-height: 1.8; }
.news-sub + p, .news-sub + ul, .news-sub + ol { margin-top: 0.3em; }
.news-steps { counter-reset: step; }
.news-steps li, .news-points li { position: relative; padding-left: 1.6em; }
.news-steps li::before {
  counter-increment: step;
  content: counter(step) ".";
  position: absolute; left: 0.1em; top: 0;
  font-family: var(--font-kaku);
  font-weight: 700;
  color: var(--green);
}
.news-points li::before { content: "•"; position: absolute; left: 0.3em; top: 0; font-weight: 700; }
.news-note { font-size: var(--fs-small); line-height: 1.8; color: var(--gray-text); }

/* 「もっと見る」: 閉じている時は上から数行だけ見せて下を白くフェード。開いたら全表示（js/main.js が .is-open を付ける） */
.news-text:not(.is-open):not(.is-short) { max-height: 9.6em; overflow: hidden; }
.news-text:not(.is-open):not(.is-short)::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 4em;
  background: linear-gradient(rgba(255, 255, 255, 0), #fff 85%);
  pointer-events: none;
}
.news-more {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  padding: 4px 0;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-decoration: underline;
  text-underline-offset: 0.35em;
  text-decoration-thickness: 1px;
}
.news-more::after {
  content: "";
  width: 7px; height: 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform 0.25s ease;
}
.news-more.is-open::after { transform: translateY(2px) rotate(-135deg); }
.news-more:hover { color: var(--green); }

@media (max-width: 900px) {
  .news-item { grid-template-columns: 1fr; gap: 24px; }
  .news-media { max-width: 640px; }
  .news-gallery img { flex-basis: clamp(200px, 30vw, 275px); width: clamp(200px, 30vw, 275px); }
}
@media (max-width: 760px) {
  .news-list { padding: var(--sec-pad-s) 0 var(--sec-pad); }
  .news-item { padding: 32px 0; }
  .news-media { max-width: none; }
  .news-gallery { gap: 10px; margin: 0 calc(var(--gutter) * -1); padding: 0 var(--gutter) 8px; scroll-padding-left: var(--gutter); }
  .news-gallery img { flex-basis: 60vw; width: 60vw; }
  .news-title { font-size: 20px; }
  .news-text { margin-top: 18px; }
  .news-more { width: 100%; justify-content: center; margin-top: 12px; padding: 10px 0; }
}

/* 見出しの不自然な折返し（balance）を避ける */
.news-list h2, .news-list h3, .news-item h2, .news-item h3, .news-title { text-wrap: pretty; }
