/* ============================================================
 * city.css —— 城市分站页 + 站内搜索结果页
 * 与 main.css 共用 tokens；类名统一加 city- / search- 前缀避免冲突
 * ============================================================ */

/* ---------- 城市页头图区 ---------- */
.city-hero{
  background:linear-gradient(135deg,#12402F 0%,#1F6B4F 55%,#2E8B62 100%);
  color:#fff;padding:34px 0 30px;
}
.city-hero .breadcrumb{color:rgba(255,255,255,.72);font-size:13px;margin-bottom:12px;}
.city-hero .breadcrumb a{color:rgba(255,255,255,.86);}
.city-hero h1{font-size:clamp(22px,3.4vw,32px);line-height:1.28;margin:0 0 12px;color:#fff;}
.city-lead{font-size:15px;line-height:1.8;color:rgba(255,255,255,.86);max-width:80ch;margin:0 0 18px;}
.city-lead b{color:#F2C94C;}
.city-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px;}
.city-actions .btn{border:1px solid transparent;}
.city-actions .btn-primary{background:var(--color-cta);}
.city-actions .btn-primary:hover{background:var(--color-cta-dark);}
.city-actions .btn:not(.btn-primary):not(.btn-ghost){background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.26);}
.city-actions .btn:not(.btn-primary):not(.btn-ghost):hover{background:rgba(255,255,255,.24);}
.city-actions .btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.4);}
.city-actions .btn-ghost:hover{background:rgba(255,255,255,.14);}

/* ---------- 城市标签 ---------- */
.city-chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.city-chips-label{font-size:12px;color:rgba(255,255,255,.66);margin-right:2px;}
.city-hero .city-chips-label{color:rgba(255,255,255,.6);}
.city-chip{
  display:inline-block;font-size:13px;padding:4px 12px;border-radius:999px;
  background:#F1F5F2;color:#204034;border:1px solid #E3EAE5;transition:all .15s ease;
}
.city-chip:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary);}
.city-hero .city-chip{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.22);}
.city-hero .city-chip:hover{background:rgba(255,255,255,.26);}

/* ---------- 厂家卡片 ---------- */
.city-makers{display:grid;grid-template-columns:1fr;gap:14px;}
@media (min-width:700px){.city-makers{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (min-width:1080px){.city-makers{grid-template-columns:repeat(3,minmax(0,1fr));}}
.city-maker{
  display:block;background:#fff;border:1px solid #E6EBE8;border-radius:14px;padding:16px 18px;
  transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease;
}
.city-maker:hover{box-shadow:0 12px 28px rgba(20,60,45,.10);transform:translateY(-2px);border-color:#CFE0D6;}
.city-maker-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:8px;}
.city-maker-top b{font-size:15px;color:#17241E;line-height:1.4;}
.city-maker-line{margin:4px 0;font-size:13px;color:#44544C;line-height:1.6;}
.city-maker-line.muted{color:#8A9691;}
.city-maker-more{display:inline-block;margin-top:8px;font-size:12px;color:var(--color-primary);}
.city-badge{font-size:11px;line-height:1;padding:3px 6px;border-radius:4px;color:#fff;white-space:nowrap;}
.city-badge.ok{background:#0F6E56;}
.city-badge.pending{background:#B45309;}
.city-badge.cert{background:#1D4ED8;}
.city-empty{
  grid-column:1/-1;background:#F7FAF8;border:1px dashed #CFE0D6;border-radius:12px;
  padding:26px;text-align:center;color:#5C6B63;font-size:14px;
}
.city-empty a{color:var(--color-primary);}

/* ---------- 需求表 ---------- */
.city-table-wrap{overflow-x:auto;background:#fff;border:1px solid #E6EBE8;border-radius:12px;}
.city-table{width:100%;border-collapse:collapse;min-width:640px;}
.city-table th,.city-table td{padding:11px 14px;text-align:left;font-size:13px;border-bottom:1px solid #F0F4F1;}
.city-table th{background:#F7FAF8;color:#5C6B63;font-weight:600;white-space:nowrap;}
.city-table tr:last-child td{border-bottom:0;}
.city-status{font-size:12px;padding:2px 8px;border-radius:999px;background:#EAF4EF;color:#0F6E56;}
.city-empty-cell{text-align:center;color:#8A9691;}

/* ---------- 正文 ---------- */
.city-article{max-width:860px;}
.city-article h2{font-size:22px;margin:0 0 14px;color:#17241E;}
.city-article h3{font-size:17px;margin:26px 0 10px;color:#1F3329;}
.city-article p{font-size:15px;line-height:1.9;color:#3B4A43;margin:0 0 12px;}
.city-list{margin:0 0 8px;padding-left:20px;}
.city-list li{font-size:14px;line-height:1.9;color:#3B4A43;}
.city-faq{margin:0;border-top:1px solid #EDF2EF;}
.city-faq dt{font-size:15px;font-weight:600;color:#1F3329;padding:14px 0 6px;}
.city-faq dd{margin:0 0 12px;font-size:14px;line-height:1.8;color:#4A5A52;border-bottom:1px solid #F2F5F3;padding-bottom:14px;}
.city-updated{font-size:12px;color:#8A9691;margin-top:22px;}

/* ---------- 城市索引页 ---------- */
.city-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;}
.city-card{
  position:relative;display:flex;flex-direction:column;gap:4px;padding:16px;
  background:#fff;border:1px solid #E6EBE8;border-radius:12px;transition:all .16s ease;
}
.city-card:hover{border-color:var(--color-primary);box-shadow:0 10px 24px rgba(20,60,45,.08);}
.city-card b{font-size:16px;color:#17241E;}
.city-card span{font-size:12px;color:#8A9691;}
.city-card em{
  position:absolute;top:10px;right:10px;font-style:normal;font-size:10px;
  padding:2px 6px;border-radius:4px;background:#FFF3D6;color:#8A5A00;
}
.city-groups{display:grid;grid-template-columns:repeat(2,1fr);gap:12px 24px;}
.city-group{padding:12px 16px;border:1px solid #EAF0EC;border-radius:10px;background:#fff;}
.city-group h3{font-size:14px;margin:0 0 8px;color:#1F3329;}
@media (max-width:720px){.city-groups{grid-template-columns:1fr;}}

/* ---------- 搜索结果页 ---------- */
.search-hero{background:#F6FAF7;border-bottom:1px solid #E6EBE8;padding:26px 0 22px;}
.search-hero h1{font-size:20px;margin:0 0 14px;color:#17241E;}
.search-box{display:flex;max-width:720px;background:#fff;border:1px solid #DCE5DF;border-radius:999px;overflow:hidden;}
.search-box input{flex:1;border:0;padding:12px 18px;font-size:15px;outline:none;min-width:0;}
.search-box input:focus{box-shadow:inset 0 0 0 2px rgba(31,107,79,.14);}
.search-box button{border:0;background:var(--color-primary);color:#fff;padding:0 26px;font-size:14px;font-weight:600;cursor:pointer;}
.search-box button:hover{background:var(--color-primary-dark);}
.search-meta{font-size:13px;color:#7A8880;margin:12px 0 0;}
.search-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:22px 0 6px;border-bottom:1px solid #E6EBE8;}
.search-tab{
  font-size:14px;padding:9px 14px;color:#5C6B63;border-bottom:2px solid transparent;
  margin-bottom:-1px;
}
.search-tab b{font-weight:600;color:#8A9691;font-size:12px;margin-left:4px;}
.search-tab.active{color:var(--color-primary);border-color:var(--color-primary);font-weight:600;}
.search-tab.active b{color:var(--color-primary);}
.search-group{margin:26px 0 0;}
.search-group h2{font-size:16px;margin:0 0 12px;color:#1F3329;}
.search-item{
  display:block;padding:14px 16px;border:1px solid #E9EEEB;border-radius:12px;margin-bottom:10px;
  background:#fff;transition:all .15s ease;
}
.search-item:hover{border-color:#C9DCD1;box-shadow:0 8px 20px rgba(20,60,45,.07);}
.search-item h3{font-size:15px;margin:0 0 6px;color:#17241E;line-height:1.5;}
.search-item p{margin:0;font-size:13px;color:#5C6B63;line-height:1.7;}
.search-item-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;font-size:12px;color:#8A9691;}
.search-tag{background:#F1F5F2;color:#3B5347;padding:2px 8px;border-radius:999px;}
.search-hit{background:#FFF3C4;color:#7A4A00;padding:0 2px;border-radius:3px;}
.search-empty{background:#FAFCFB;border:1px dashed #DCE5DF;border-radius:12px;padding:34px;text-align:center;color:#6E7C74;font-size:14px;}
.search-hot{margin-top:14px;font-size:13px;color:#6E7C74;display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.search-hot a{background:#fff;border:1px solid #DCE5DF;border-radius:999px;padding:4px 12px;color:#2F4639;}
.search-hot a:hover{border-color:var(--color-primary);color:var(--color-primary);}
.search-city{margin-top:10px;font-size:13px;color:#5C6B63;}
.search-city a{color:var(--color-primary);}
.city-tools{display:grid;grid-template-columns:1fr;gap:14px;}
@media (min-width:700px){.city-tools{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (min-width:1080px){.city-tools{grid-template-columns:repeat(4,minmax(0,1fr));}}
.city-tool{
  display:block;background:#fff;border:1px solid #E6EBE8;border-radius:14px;padding:16px 18px;
  transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease;
}
.city-tool:hover{box-shadow:0 12px 28px rgba(20,60,45,.10);transform:translateY(-2px);border-color:#CFE0D6;}
.city-tool b{display:block;font-size:14px;color:#17241E;margin-bottom:6px;}
.city-tool span{font-size:12px;color:#6B7A72;line-height:1.6;}
.city-kb-list{margin-top:14px;}
.city-kb-list li{margin:6px 0;}
.city-kb-list a{color:var(--color-primary);text-decoration:none;}
.city-kb-list a:hover{text-decoration:underline;}
