/* =========================================================
   お知らせセクション ＋ お知らせ一覧モーダル
   ========================================================= */

.news-section{ background:var(--cream); padding:2.4rem 0; border-bottom:1px solid var(--beige); }
.news-section-inner{ max-width:1280px; margin:0 auto; padding:0 2rem; }
.news-section-head{
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:1.2rem;
}
/* 書体は common.css の .section-heading-small を併用（HTML側でクラス指定） */
.news-section-title::after{
  content:""; display:block;
  width:100%; height:2px; background:var(--green);
  margin-top:.35rem;
}
.news-all-btn{ font-size:.82rem; padding:.5em 1.3em; }
.news-list{ list-style:none; }
.news-item{
  display:flex; align-items:baseline; gap:1.2rem;
  padding:.9rem 0;
  border-bottom:1px dashed #d8d4c5;
}
.news-item:first-child{ border-top:1px dashed #d8d4c5; }
.news-meta{
  display:flex; flex-direction:row; align-items:baseline; gap:.5rem;
  flex-shrink:0;
}
.news-date{ color:var(--muted); font-size:.88rem; white-space:nowrap; min-width:7em; }
.news-tag{
  background:var(--green-light); color:#fff;
  font-size:.72rem; padding:.28em 1em; border-radius:20px;
  white-space:nowrap;
}
.news-tag--info{ background:#d97b3e; }
.news-tag--event{ background:#5a8ab0; }
.news-text{ flex:1; font-size:1.05rem; color:var(--text); }
.news-text:hover{ color:var(--green); text-decoration:underline; }

/* ===== お知らせ一覧モーダル ===== */
.modal-overlay{
  position:fixed; inset:0; background:rgba(0,0,0,.45);
  display:flex; align-items:center; justify-content:center;
  z-index:2000; opacity:0; pointer-events:none;
  transition:opacity .25s;
}
.modal-overlay.is-open{ opacity:1; pointer-events:auto; }
.modal-card{
  background:#fff; border-radius:12px;
  width:min(720px,96vw); height:min(680px,88vh);
  display:flex; flex-direction:column;
  box-shadow:0 8px 40px rgba(0,0,0,.18);
  transform:translateY(16px); transition:transform .25s;
  overflow:hidden;
}
.modal-overlay.is-open .modal-card{ transform:translateY(0); }
.modal-sticky-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:1.2rem 1.4rem;
  border-bottom:1px solid #ece9dd;
  background:#fff;
  flex-shrink:0;
}
.modal-close{
  width:2rem; height:2rem; border-radius:50%;
  border:none; background:var(--beige); cursor:pointer;
  font-size:1.1rem; color:var(--text);
  display:flex; align-items:center; justify-content:center;
  line-height:1; flex-shrink:0;
}
.modal-close:hover{ background:var(--cream-2); }
.modal-scroll-body{ flex:1; overflow-y:auto; padding:1.2rem 1.4rem; }
.modal-news-list{ list-style:none; display:flex; flex-direction:column; gap:.5rem; }
.modal-news-item{ border:1px solid #ece9dd; border-radius:8px; overflow:hidden; }
.modal-news-row{
  width:100%; background:none; border:none; cursor:pointer;
  display:flex; align-items:center; gap:.8rem; padding:.9rem 1rem;
  text-align:left; transition:background .15s;
}
.modal-news-row:hover{ background:var(--cream); }
.modal-news-row.is-open{ background:var(--cream-2); }
.modal-news-meta{ display:flex; align-items:center; gap:.5rem; flex-shrink:0; }
.modal-news-title{ flex:1; font-size:.92rem; color:var(--text); line-height:1.5; }
.modal-news-arrow{ flex-shrink:0; color:var(--green); transition:transform .2s; }
.modal-news-row.is-open .modal-news-arrow{ transform:rotate(180deg); }
.modal-news-detail{ padding:.9rem 1.2rem 1.1rem; background:var(--cream); border-top:1px solid #ece9dd; }
.modal-news-detail p{ font-size:.98rem; color:#4a4a40; line-height:2; }

/* ===== レスポンシブ ===== */
@media (max-width:600px){
  .news-section{ padding:2rem 0; }
  .news-section-inner{ padding:0 1rem; }
  .news-item{ flex-wrap:wrap; gap:.4rem; align-items:flex-start; }
  .news-date{ min-width:auto; }
  .news-meta{ flex-direction:column; gap:.25rem; align-items:flex-start; min-width:5em; }
}
