/* ---- カテゴリ色定義 ---- */
.cat-osirase  { background:#2FBF71; }
.cat-event     { background:#0097BD; }
.cat-pickup    { background:#B90180; }
.cat-chance      { background:#EB7742; }
.cat-nyuten   { background:#8CA823; }
.cat-hukki    { background:#6E00FF; }
.cat-photo     { background:#E36367; }
.cat-otakara   { background:#0000FF; }

/* ---- カテゴリフィルター pills ---- */
.cat-filter-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; margin-bottom:12px; padding-bottom:4px; }
.cat-filter { display:flex; gap:6px; min-width:max-content; }
.cat-pill { padding:5px 12px; border-radius:14px; font-size:11px; font-weight:bold; border:2px solid transparent; cursor:pointer; background:#eee; color:#555; white-space:nowrap; transition:all 0.15s; }
.cat-pill[data-cat="all"].is-active { background:#931d1d; color:#fff; border-color:#931d1d; }
.cat-pill.is-active { background:#931d1d; color:#fff; border-color:transparent; }
.cat-pill:not(.is-active) { opacity:0.7; }
.cat-pill:not(.is-active):hover { opacity:1; }

/* ---- ニュース件数 ---- */
.news-count { font-size:12px; color:#777; margin-bottom:10px; }
.news-count strong { color:#931d1d; font-size:15px; font-weight:bold; }

/* ---- ニュースリスト ---- */
.news-list { list-style:none; margin:0; padding:0; }
.news-item { border-bottom:1px solid #f0f0f0; padding:12px 6px; cursor:pointer; transition:background 0.12s; scroll-margin-top: 200px; }
.news-item:hover { background:#fdf8fb; }
.news-item:first-child { border-top:1px solid #f0f0f0; }
/* 画像ありアイテム */
.news-item.has-img { display:block; }
.news-img-row { display:flex; gap:10px; align-items:flex-start; margin-top:6px; }
.news-thumb { width:90px; height:68px; flex-shrink:0; overflow:hidden; border-radius:3px; background:#eee; display:flex; align-items:center; justify-content:center; }
.news-thumb img { max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; display:block; }
.news-img-row .news-text { flex:1; min-width:0; }
.news-meta { display:flex; align-items:center; gap:8px; margin-bottom:5px; flex-wrap:wrap; }
.news-cat-badge { display:inline-block; font-size:10px; font-weight:bold; padding:2px 9px; border-radius:10px; color:#fff; white-space:nowrap; line-height:1.7; }
.news-date { font-size:11px; color:#aaa; }
.news-title { font-size:13px; font-weight:bold; color:#222; line-height:1.5; margin:0 0 4px; }
.news-excerpt { font-size:12px; color:#777; line-height:1.7; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }

/* ---- モーダル ---- */
.news-modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.72); z-index:2000; display:none; align-items:center; justify-content:center; padding:16px; }
.news-modal-overlay.is-open { display:flex; }
.news-modal { background:#fff; border-radius:8px; width:100%; max-width:620px; max-height:88vh; overflow-y:auto; position:relative; }
.news-modal-close { position:absolute; top:8px; right:12px; font-size:24px; color:#888; background:none; border:none; cursor:pointer; line-height:1; z-index:1; padding:4px; }
.news-modal-close:hover { color:#333; }
.news-modal-hd { padding:16px 48px 12px 16px; border-bottom:1px solid #eee; }
.news-modal-meta { display:flex; align-items:center; gap:8px; margin-bottom:8px; flex-wrap:wrap; }
.news-modal-title { font-size:16px; font-weight:bold; color:#111; line-height:1.5; margin:0; }
.news-modal-img-wrap { display:none; background:#f5f5f5; }
.news-modal-img-wrap.has-img { display:block; }
.news-modal-img-wrap img { width:100%; max-height:320px; object-fit:contain; display:block; }
/* 複数画像（ピックアップ等） */
.news-modal-imgs { display:none; grid-template-columns:minmax(0, 320px); justify-content:center; gap:10px; padding:10px; }
.news-modal-imgs.has-imgs { display:grid; }
.news-modal-imgs a { display:flex; flex-direction:column; border-radius:3px; overflow:hidden; text-decoration:none; background:#fff; }
.news-modal-imgs a:hover { opacity:0.85; }
.news-modal-imgs img { width:100%; aspect-ratio:3/4; object-fit:cover; object-position:top center; display:block; }
.news-modal-cast-name { font-size:11px; color:#333; text-align:center; padding:3px 2px 1px; line-height:1.4; background:#fff; }
.news-modal-cast-profile { font-size:10px; color:#888; text-align:center; padding:0 2px 5px; line-height:1.5; background:#fff; }
.news-modal-body { font-size:13px; color:#444; padding:16px; white-space:pre-wrap; }
.news-modal-body:empty { display:none; }
.news-modal-footer { padding:12px 16px 20px; text-align:center; }
.news-modal-close-btn { background:#555; color:#fff; border:none; border-radius:4px; padding:10px 40px; font-size:14px; font-weight:bold; cursor:pointer; }
.news-modal-close-btn:hover { background:#333; }
