/* 里民小幫手 Design System pilot（openlist／storeopenlist）
   由平台核心同步到各里 assets/，請勿在各里手改；要調整請改 village-platform-core。
   規則：正文與主要操作 16px、次要 metadata 14px、可點控制項至少 44px、可見的鍵盤焦點。
   不改版面結構、不加動畫；載入順序在各頁內嵌樣式之後，所以同等權重下以這裡為準。 */
:root {
  --ds-font-body: 16px;
  --ds-font-meta: 14px;
  --ds-tap: 44px;
  --ds-focus: #1d4ed8;
}

body { font-size: var(--ds-font-body); }

/* ── 可點控制項 ── */
.report-btn, .apply-btn, .dropdown-btn, .stats-btn {
  min-height: var(--ds-tap);
  padding-left: 16px;
  padding-right: 16px;
  font-size: var(--ds-font-body);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.search-input {
  min-height: var(--ds-tap);
  font-size: var(--ds-font-body);
}
.dropdown-item {
  min-height: var(--ds-tap);
  font-size: var(--ds-font-body);
  display: flex;
  align-items: center;
}
.cate-chip {
  min-height: var(--ds-tap);
  padding-left: 16px;
  padding-right: 16px;
  font-size: var(--ds-font-meta);
  display: inline-flex;
  align-items: center;
}
.vm-close { min-width: var(--ds-tap); min-height: var(--ds-tap); }

/* ── 文字層級：卡片主標題 16px，其餘說明 14px ── */
.card-title, .card-name { font-size: var(--ds-font-body); line-height: 1.45; }
.header-subtitle, .result-bar, .stats-row, .card-top, .card-location, .card-phone,
.card-address, .card-desc, .section-header-label, .cate-badge, .brand-tag,
.card-offer-label, .vc-badge, .thumb-view-badge, .rank-num, .rank-name, .rank-cnt,
.vm-empty, .state-wrap p, .card-offer, .card-offer-text {
  font-size: var(--ds-font-meta);
}
.vm-title, .state-wrap h3 { font-size: 18px; }

/* ── 狀態：鍵盤焦點、停用 ── */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, [role="button"]:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid var(--ds-focus);
  outline-offset: 2px;
}
button:disabled, [aria-disabled="true"] { opacity: .55; cursor: not-allowed; }

/* ── 卡片內的標籤與連結 ──
   標籤由 shared JS 以 inline style 產生（11px），這裡明確蓋過；卡片內電話／地址連結補到可點大小。 */
.card-tags > span { font-size: var(--ds-font-meta) !important; }
.card-phone a, .card-address a, a.card-address-text {
  display: inline-flex;
  align-items: center;
  min-height: var(--ds-tap);
}
