/* ==========================================================================
   首页 · 全国服务地图（home-map.css，2026-11-03）
   依赖：site.css 变量 + branches.css（省份着色 .pv / 标注 .mk / 图例 .lg / 等级 .bp-lv）
   只作用于首页 .hmap 容器，不影响「城市分站」完整页
   ========================================================================== */

/* ---------- 版式 ---------- */
.hmap{
  display:grid;grid-template-columns:1.32fr 1fr;gap:18px;align-items:stretch;
  background:linear-gradient(180deg,#FBFDFF 0%,#fff 55%);
  border:1px solid var(--line);border-radius:16px;padding:16px;
  box-shadow:0 10px 30px rgba(10,42,74,.06);position:relative;overflow:hidden;
}
/* 顶部细彩条：蓝→绿→橙，呼应 LOGO 三色 */
.hmap::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg,var(--blue-b),var(--green-b) 55%,var(--orange-b));opacity:.85}

.hmap-stage{position:relative;min-width:0;height:430px;display:flex;align-items:center;justify-content:center}
.hmap-stage>svg#hmSvg{width:100%;height:100%;display:block}
.hmap-stage .cnmap-inset{position:absolute;right:2px;bottom:0;width:96px;height:auto;background:#F6F9FC;
  border:1px solid var(--line);border-radius:6px;padding:3px 5px;pointer-events:none}
.hmap-stage .cnmap-inset path{fill:none;stroke:#41719C;stroke-width:1.1;vector-effect:non-scaling-stroke}
.hmap-stage .cnmap-inset .jd{stroke:#B4472E;stroke-width:1.3}

/* 底纹网格：极淡，只负责"图"的秩序感 */
.hm-grid{position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(19,108,183,.055) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(19,108,183,.055) 1px,transparent 1px);
  background-size:34px 34px;
  -webkit-mask-image:radial-gradient(120% 90% at 50% 45%,#000 30%,transparent 78%);
          mask-image:radial-gradient(120% 90% at 50% 45%,#000 30%,transparent 78%)}

/* ---------- 逐省点亮 ---------- */
.hmap .pv{opacity:0;animation:pvIn .5s var(--ease) forwards}
@keyframes pvIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.hmap .pv{transform-box:fill-box;transform-origin:center}
/* 悬停光晕：比完整页多一层外发光，指哪亮哪 */
.hmap .pv:hover,.hmap .pv.hot{filter:drop-shadow(0 2px 7px rgba(232,163,61,.45))}

/* ---------- 服务网络流光 ---------- */
.hm-net{pointer-events:none}
.hm-link{fill:none;stroke:rgba(30,128,214,.42);stroke-width:1.7;stroke-linecap:round;
  stroke-dasharray:5 8;animation:hmFlow 1.9s linear infinite,vIn .7s var(--ease) .35s both}
@keyframes hmFlow{to{stroke-dashoffset:-26}}
@keyframes vIn{from{opacity:0}to{opacity:1}}
.hm-spark{fill:var(--orange-b);filter:drop-shadow(0 0 5px rgba(245,168,46,.85))}

/* ---------- 提示 ---------- */
.hm-hint{position:absolute;left:10px;bottom:6px;font-size:11.8px;color:var(--gray-3);letter-spacing:.02em}
.hm-hint::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green-b);
  margin-right:6px;vertical-align:1px;animation:hmDot 1.8s ease-in-out infinite}
@keyframes hmDot{0%,100%{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}

/* ---------- 右侧面板 ---------- */
.hmap-panel{
  position:relative;border:1px solid var(--line);border-radius:14px;padding:20px 20px 16px;
  background:linear-gradient(180deg,#F6FAFF 0%,#fff 62%);
  display:flex;flex-direction:column;gap:10px;min-height:0;overflow:hidden;
}
.hmap-panel.anim .hm-tag,.hmap-panel.anim .hm-t,.hmap-panel.anim .hm-d,
.hmap-panel.anim .hm-cta,.hmap-panel.anim .hm-stats{animation:hmIn .38s var(--ease) both}
.hmap-panel.anim .hm-t{animation-delay:.04s}
.hmap-panel.anim .hm-d{animation-delay:.08s}
.hmap-panel.anim .hm-cta,.hmap-panel.anim .hm-stats{animation-delay:.12s}
@keyframes hmIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.hm-tag{align-self:flex-start;font-size:12.3px;font-weight:700;color:var(--blue-ink);
  background:var(--tint-blue);border-radius:999px;padding:4px 11px;letter-spacing:.04em}
.hm-t{font-size:22px;margin:0;color:var(--deep);display:flex;align-items:center;gap:9px;flex-wrap:wrap;line-height:1.3}
.hm-d{margin:0;font-size:14.2px;line-height:1.82;color:var(--gray-2)}

.hm-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.hm-stats>div{background:#fff;border:1px solid var(--line-2);border-radius:10px;padding:10px 11px}
.hm-stats b{display:block;font-family:var(--font-en);font-size:23px;font-weight:800;color:var(--blue);line-height:1.1}
.hm-stats span{display:block;margin-top:4px;font-size:11.6px;line-height:1.5;color:var(--gray-3)}

.hm-cta{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}
.hm-cta .btn--sm{padding:8px 14px;font-size:13.2px}

.hm-legend{margin-top:auto;display:flex;flex-wrap:wrap;gap:6px 12px;border-top:1px dashed var(--line);padding-top:11px}
.hm-legend span{font-size:11.6px;color:var(--gray-2);display:inline-flex;align-items:center;gap:5px}

.hm-close{position:absolute;top:10px;right:10px;width:28px;height:28px;border-radius:8px;border:1px solid var(--line);
  background:#fff;color:var(--gray-2);font-size:16px;line-height:1;cursor:pointer;transition:.15s}
.hm-close:hover{color:var(--deep);border-color:var(--deep)}

/* ---------- 快捷城市 ---------- */
.hmap-foot{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px}
.hm-quick{display:flex;gap:8px;flex-wrap:wrap;flex:1;min-width:0}
.hm-chip{font-family:inherit;font-size:13px;font-weight:600;color:var(--gray);background:#fff;
  border:1px solid var(--line);border-radius:999px;padding:6px 14px;cursor:pointer;transition:.18s var(--ease)}
.hm-chip:hover{color:var(--blue-ink);border-color:var(--blue-b);background:var(--tint-blue);transform:translateY(-1px)}
.hm-chip--all{color:var(--blue-ink);border-color:var(--blue-b);background:var(--tint-blue);text-decoration:none}
.hmap-note{margin-top:12px;font-size:11.8px;line-height:1.75;color:var(--gray-3)}

/* 底图未加载 / 加载失败 */
.hmap-stage.is-fail::after{content:"地图数据未能加载，可直接查看城市分站页";position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;font-size:13.5px;color:var(--gray-2);background:#F7FAFD;border-radius:10px}

/* ---------- 响应式 ---------- */
@media(max-width:1024px){
  .hmap{grid-template-columns:1fr;gap:14px;padding:14px}
  .hmap-stage{height:360px}
  .hmap-panel{min-height:0}
  .hm-legend{margin-top:2px}
}
@media(max-width:600px){
  .hmap{padding:10px}
  .hmap-stage{height:280px;padding-bottom:56px;align-items:flex-start}
  .hmap-stage .cnmap-inset{width:66px;right:0;bottom:0}
  .hm-t{font-size:19px}
  .hm-stats b{font-size:20px}
  .hm-hint{font-size:11px;bottom:2px}
}

@media(prefers-reduced-motion:reduce){
  .hmap .pv{opacity:1;animation:none}
  .hm-spark,.hm-link,.hm-hint::before{animation:none}
  .hm-link{opacity:1}
  .hmap-panel.anim *{animation:none!important}
}

/* ==========================================================================
   电话入口（2026-11-03）：地图底栏常驻热线 + 面板各视图常驻拨打条
   ========================================================================== */
.hm-callbtn{
  display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;
  padding:8px 14px;border-radius:999px;background:var(--blue);color:#fff;
  text-decoration:none;font-size:13.4px;font-weight:700;letter-spacing:.01em;
  box-shadow:0 6px 16px rgba(19,108,183,.22);
  transition:background .18s var(--ease),transform .18s var(--ease),box-shadow .18s var(--ease);
}
.hm-callbtn:hover{background:var(--blue-ink);transform:translateY(-1px);box-shadow:0 9px 22px rgba(19,108,183,.28)}
.hm-callbtn svg{flex:0 0 auto}
.hm-callbtn small{font-weight:600;opacity:.9;font-size:11.8px}
.hm-callbtn em{font-style:normal;font-family:var(--font-en);font-weight:800}

.hm-call{
  display:flex;align-items:center;gap:10px;
  border:1px solid #CFE3F7;border-radius:10px;padding:9px 12px;
  background:linear-gradient(96deg,#F1F8FF,#fff 72%);
  text-decoration:none;
  transition:border-color .18s var(--ease),background .18s var(--ease),transform .18s var(--ease);
}
.hm-call:hover{border-color:var(--blue-b);background:#EAF5FF;transform:translateY(-1px)}
.hm-call-i{flex:0 0 30px;width:30px;height:30px;border-radius:8px;background:var(--blue);color:#fff;
  display:flex;align-items:center;justify-content:center}
.hm-call-b{display:flex;flex-direction:column;line-height:1.22;min-width:0}
.hm-call-b b{font-size:11.4px;font-weight:600;color:var(--gray-2)}
.hm-call-b em{font-style:normal;font-family:var(--font-en);font-size:17px;font-weight:800;color:var(--blue);letter-spacing:.01em}
.hm-call-m{margin-left:auto;font-size:11.4px;color:var(--gray-3);white-space:nowrap}
.hm-call--sm{padding:8px 11px}
.hm-call--sm .hm-call-b em{font-size:15.6px}

@media(max-width:600px){
  .hm-callbtn{order:-1;width:100%;justify-content:center;padding:9px 14px}
  .hm-call-m{display:none}
  .hm-call{padding:8px 10px}
}

/* ---------- 分公司驻地提示（2026-11-03） ---------- */
.hm-branch{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;
  background:linear-gradient(180deg,#F7FBFF,#FFF);border:1px solid var(--line-2);
  border-left:3px solid var(--blue-b);border-radius:9px;padding:9px 12px
}
.hm-branch b{font-size:13px;color:var(--deep)}
.hm-branch span{font-size:12.2px;line-height:1.6;color:var(--gray-2)}
@media (max-width:470px){ .hm-branch{padding:8px 10px} .hm-branch span{font-size:11.8px} }
