/* ============================================================
   world.css — 全球行政区划数据页（/world/*）专属样式
   依赖全站 main.css 的 jc-* 设计令牌，此处仅补充预览画廊与
   索引页网格；命名空间 wv-*。
   ============================================================ */

/* ---------- 预览画廊 ---------- */
.wv-gallery { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.wv-card {
  display: flex; flex-direction: column;
  background: #fff; border: 1px solid var(--jc-line); border-radius: var(--jc-radius);
  overflow: hidden; transition: border-color 0.16s, box-shadow 0.16s, transform 0.18s var(--jc-ease);
}
.wv-card:hover { border-color: rgba(13, 148, 136, 0.45); box-shadow: 0 10px 26px rgba(13, 60, 50, 0.1); transform: translateY(-2px); }
.wv-card.solo { grid-template-columns: 1fr; } /* 单层级国家占满 */
.wv-card > a, .wv-card > figure { display: block; margin: 0; }
.wv-card-img {
  display: block; width: 100%; aspect-ratio: 8 / 5; background: var(--jc-mint);
  border-bottom: 1px solid var(--jc-line);
}
.wv-card-img img { width: 100%; height: 100%; object-fit: contain; display: block; }
.wv-card-body { padding: 12px 16px 14px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.wv-card-head { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.wv-card-head h3 { margin: 0; font-size: 15px; }
.wv-level-badge {
  flex: none; font-size: 10.5px; font-weight: 700; letter-spacing: 1px;
  color: #fff; background: var(--jc-teal); border-radius: 999px; padding: 2px 9px;
  transform: translateY(-1px);
}
/* 徽章是 10.5px 白字，属正文级字号，四档底色必须逐档 ≥4.5：
   lv1 --jc-teal 5.47 / lv2 4.69 / lv3 7.73 / lv4 10.86 */
.wv-level-badge.lv2 { background: #0e8277; }
.wv-level-badge.lv3 { background: #0b5d57; }
.wv-level-badge.lv4 { background: #08453f; }
.wv-card-meta { font-size: 12.5px; color: var(--jc-dim); }
.wv-card-meta b { color: var(--jc-teal-deep); font-family: var(--jc-mono); }
.wv-card-names { font-size: 12px; color: var(--jc-faint); line-height: 1.6; margin: 0; }
.wv-card-foot { display: flex; align-items: center; gap: 10px; margin-top: auto; padding-top: 6px; }
.wv-card-price { font-size: 17px; font-weight: 800; color: var(--jc-teal-deep); font-family: var(--jc-mono); }
.wv-card-price small { font-size: 11px; font-weight: 500; color: var(--jc-faint); font-family: var(--jc-font); }
.wv-buy-mini {
  margin-left: auto; border: 1px solid var(--jc-teal); background: #fff; color: var(--jc-teal-deep);
  border-radius: var(--jc-radius-s); padding: 6px 14px; font-size: 12.5px; font-weight: 700;
  cursor: pointer; transition: all 0.15s; font-family: inherit;
}
.wv-buy-mini:hover { background: var(--jc-teal); color: #fff; }
.wv-buy-mini:active { transform: scale(0.96); }

/* ---------- 索引页 ---------- */
.wv-hub-hero { border-bottom: 1px solid var(--jc-line); background: linear-gradient(180deg, #eff9f5, var(--jc-mint)); padding: 26px 0 24px; }
.wv-hub-hero h1 { font-size: 26px; margin-bottom: 10px; }
.wv-hub-hero .jc-pro-lead { max-width: 760px; font-size: 14.5px; }
.wv-hub-stats { display: flex; gap: 10px; margin-top: 16px; flex-wrap: wrap; }
.wv-hub-stat {
  background: #fff; border: 1px solid var(--jc-line); border-radius: var(--jc-radius);
  padding: 10px 16px; min-width: 96px;
}
.wv-hub-stat b { display: block; font-size: 20px; color: var(--jc-teal-deep); font-family: var(--jc-mono); }
.wv-hub-stat span { font-size: 11.5px; color: var(--jc-dim); }
.wv-filter { position: relative; max-width: 420px; margin: 22px auto 4px; }
.wv-filter input {
  width: 100%; height: 40px; padding: 0 14px 0 36px;
  border: 1px solid var(--jc-line-strong); border-radius: var(--jc-radius);
  font-size: 14px; font-family: inherit; color: var(--jc-ink); background: #fff; outline: none;
}
.wv-filter input:focus { border-color: var(--jc-teal); box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.14); }
.wv-filter svg { position: absolute; left: 11px; top: 11px; color: var(--jc-faint); }
.wv-cont-title { display: flex; align-items: baseline; gap: 10px; margin: 26px 0 12px; }
.wv-cont-title h2 { font-size: 18px; margin: 0; }
.wv-cont-title span { font-size: 12px; color: var(--jc-faint); }
.wv-country-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(196px, 1fr)); gap: 10px; }
.wv-country-card {
  display: flex; flex-direction: column; gap: 5px;
  background: #fff; border: 1px solid var(--jc-line); border-radius: var(--jc-radius);
  padding: 11px 13px; color: var(--jc-text); transition: border-color 0.15s, box-shadow 0.15s;
}
.wv-country-card:hover { border-color: rgba(13, 148, 136, 0.45); box-shadow: 0 6px 18px rgba(13, 60, 50, 0.08); color: var(--jc-text); }
.wv-cc-name { display: flex; align-items: baseline; gap: 7px; font-size: 14px; font-weight: 700; color: var(--jc-ink); }
.wv-cc-name small { font-size: 10.5px; color: var(--jc-faint); font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 90px; }
.wv-cc-info { display: flex; align-items: center; gap: 8px; font-size: 11.5px; color: var(--jc-dim); }
.wv-dots { display: inline-flex; gap: 3px; }
.wv-dots i { width: 7px; height: 7px; border-radius: 50%; background: var(--jc-line-strong); }
.wv-dots i.on { background: var(--jc-teal); }
.wv-empty { padding: 26px; text-align: center; color: var(--jc-faint); font-size: 13.5px; display: none; }

/* ---------- 相关国家 / 收尾链接 ---------- */
.wv-rel-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.wv-rel-grid a {
  display: flex; align-items: center; gap: 7px; padding: 8px 11px;
  border: 1px solid var(--jc-line); border-radius: var(--jc-radius-xs);
  font-size: 13px; background: #fff; color: var(--jc-text); transition: border-color 0.14s;
}
.wv-rel-grid a:hover { border-color: var(--jc-teal); color: var(--jc-teal-deep); }
.wv-rel-grid a .wv-dots i { width: 5px; height: 5px; }

/* 演示购买弹窗按钮排 */
.wv-modal-actions { display: flex; gap: 10px; margin-top: 14px; }
.wv-modal-actions .jc-btn { flex: 1; justify-content: center; height: 40px; }
.wv-order-summary { font-size: 13px; border: 1px dashed var(--jc-line-strong); border-radius: var(--jc-radius-s); padding: 10px 12px; margin-top: 12px; background: var(--jc-mint); }
.wv-order-summary dl { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; margin: 0; }
.wv-order-summary dt { color: var(--jc-dim); }
.wv-order-summary dd { margin: 0; color: var(--jc-ink); font-weight: 600; }

/* ---------- 响应式 ---------- */
/* 窄屏：规格表 6 列 + 长文件名（level1.geojson.gz）不可断行 ⇒ 表格转为横向滚动，
   避免撑破 375px 视口（world.css 仅由 /world/* 页面加载，不影响站内其他页面） */
@media (max-width: 760px) {
  .jc-content table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
}
@media (max-width: 1080px) {
  .wv-gallery { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .wv-country-grid { grid-template-columns: repeat(auto-fill, minmax(148px, 1fr)); }
  .wv-hub-hero h1 { font-size: 21px; }
}
