/* ──────────────────────────────────────────────────────────────
 * 前台清單卡片「長內容防爆版」溢位防護
 * 適用：媒合查詢 / 成果展示 / 專案計畫 三個前台清單頁共用的清單卡片
 *
 * 原則：只補溢位防護，不更動切版（main.css）的 DOM 結構與視覺設計。
 *       於 main.css 之後載入，不影響其他卡片（news-card 等）。
 * ────────────────────────────────────────────────────────────── */

/* ★★ 真正主因（列表模式 + 所在位置太多才會發生）：
 *
 * 列表模式容器 .result-list 是 display:grid，但切版「桌機版漏了定義欄寬」
 * （只有 @media(max-width:992px) 才補 grid-template-columns:100%）。
 * 桌機上那唯一的隱式欄是 auto = max-content：當「所在位置」項目很多且 nowrap 時，
 * 該欄的 max-content 變得超寬，auto 欄被撐寬 → 整張卡片寬度爆出容器，
 * 連帶 35% 寬的封面圖也被一起放大（先前看到的「巨大圖片」其實是這裡的受害症狀，非主因）。
 *
 * 修法：把單欄鎖成 minmax(0, 1fr) —— 欄寬等於容器寬、且可收縮到 0，
 *       讓 .info-row 內既有的 nowrap + text-overflow:ellipsis 正常截斷。
 *       (.result-list.grid-view 三欄規則特異度較高，不受影響；本專案卡片模式另用 Bootstrap row/col) */
.result-list {
  grid-template-columns: minmax(0, 1fr);
}

/* ── 封面圖（次要防呆）：補齊切版自身意圖所需的尺寸宣告，讓 object-fit:cover 真正裁切，
 *    避免真實非 4:3 封面在水平卡片撐高。不更動 DOM 與版面。 */
.case-card .img-box {
  min-height: 0;
}
.case-card .img-box img {
  height: 100%;
  object-fit: cover;
}

/* ① 標題 / 描述：允許長英數字串、URL 斷行，讓切版的 line-clamp/ellipsis 正常收斂 */
.case-card.detail-card .info-box .title,
.case-card.detail-card .info-box .description {
  max-width: 100%;
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* ② 計畫編號：資料過長時改單行省略（… 截斷），避免無空白長字串撐破卡片 */
.case-card.detail-card .info-box .plan-id {
  display: block;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* 列表(水平)模式的計畫編號位於 .card-header-row，補上單行省略所需的收縮與裁切 */
.case-card.detail-card.horizontal .card-header-row .plan-id {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ③ 政策標籤：群組可換行、單一標籤可內部斷行，避免長標籤撐開標籤列 */
.case-card.detail-card .info-box .tag-group {
  min-width: 0;
}
.case-card.detail-card .info-box .tag-group > span {
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* ④ 提案單位 / 所在位置：確保 dd 在 flex 內可收縮，讓既有 nowrap+ellipsis 生效（雙保險） */
.case-card.detail-card .detail-info-list,
.case-card.detail-card .detail-info-list .detail-info-item,
.case-card.detail-card .detail-info-list .detail-info-item dd {
  min-width: 0;
}

/* ⑤ 列表(水平)模式 info-box 可收縮（雙保險） */
.case-card.detail-card.horizontal .info-box {
  min-width: 0;
}
