.m8-card.hmp-card{min-height:440px;align-items:stretch}
.hmp-text{position:relative;z-index:2;padding:44px clamp(24px,3.4vw,52px);max-width:450px;display:flex;flex-direction:column;justify-content:center;background:rgba(255,255,255,.94);border-radius:0 28px 28px 0;box-shadow:0 18px 50px rgba(15,23,42,.08)}
.hmp-text h2{font-size:clamp(28px,3vw,40px);line-height:1.08;letter-spacing:-0.025em;margin:0}
.hmp-lead{font-size:clamp(16px,1.5vw,20px);color:#6b7280;line-height:1.5;margin:16px 0 20px;font-weight:400}
.hmp-card::after{display:none}
.hmp-stage{position:absolute;inset:0;overflow:hidden}
.hmp-map{position:absolute;inset:0}
.hmp-map [class*="ground-pane"]{filter:grayscale(.3) saturate(.8) brightness(1.04)}
.hmp-fail{height:100%;display:flex;align-items:center;justify-content:center;color:var(--muted);font-weight:600;background:#eaf0f8}
.hmp-fail i{font-size:26px;color:var(--blue)}
.hmp-ask{display:grid;gap:10px;margin-bottom:10px;max-width:430px}
.hmp-acwrap{position:relative}
.hmp-input{width:100%;border:1px solid #cfd8e6;background:#fff;border-radius:14px;padding:14px 16px;font:inherit;font-size:16px;outline:none}
.hmp-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(21,112,239,.15)}
.hmp-ac{position:absolute;left:0;right:0;top:calc(100% + 6px);background:#fff;border:1px solid #dbe3ef;border-radius:14px;box-shadow:0 14px 34px rgba(15,23,42,.14);z-index:6;overflow:hidden}
.hmp-ac[hidden]{display:none}
.hmp-ac button{display:block;width:100%;text-align:left;border:0;background:#fff;padding:11px 14px;font:inherit;font-size:14.5px;cursor:pointer}
.hmp-ac button:hover{background:var(--blue-soft)}
.hmp-geo{justify-self:start;border:0;background:none;color:var(--blue);font:inherit;font-weight:700;font-size:14.5px;cursor:pointer;padding:2px 0}
.hmp-geo i{margin-right:8px}
.hmp-result{font-size:15.5px;line-height:1.5;color:var(--ink);font-weight:600;max-width:430px}
.hmp-result[hidden]{display:none}
.hmp-legend{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:14px;font-weight:600;color:var(--ink)}
.hmp-legend li{display:flex;align-items:center;gap:8px}
.hmp-legend .d{width:12px;height:12px;border-radius:50%;background:#1570ef;box-shadow:0 0 0 3px rgba(21,112,239,.2)}
.hmp-legend .d.on{background:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.22)}
.hmp-call{margin-top:14px;align-self:flex-start}
.hmp-call[hidden]{display:none}
.hmp-dot{width:18px;height:18px;position:relative}
.hmp-dot i{position:absolute;inset:0;border-radius:50%;background:#1570ef;border:3px solid #fff;box-shadow:0 2px 8px rgba(15,23,42,.3)}
.hmp-dot.on i{background:#16a34a}
.hmp-dot.on::before{content:"";position:absolute;inset:-9px;border-radius:50%;background:rgba(22,163,74,.28);animation:hmpPing 2.2s ease-out infinite}
.hmp-dot.near i{box-shadow:0 0 0 5px rgba(21,112,239,.28),0 2px 8px rgba(15,23,42,.3)}
.hmp-dot.on.near i{box-shadow:0 0 0 5px rgba(22,163,74,.3),0 2px 8px rgba(15,23,42,.3)}
@keyframes hmpPing{0%{transform:scale(.4);opacity:.9}100%{transform:scale(1.2);opacity:0}}
.hmp-me{width:20px;height:20px;border-radius:50%;background:#0b1220;border:4px solid #fff;box-shadow:0 0 0 7px rgba(11,18,32,.16),0 4px 12px rgba(15,23,42,.35)}
.hmp-rad{position:absolute;left:0;top:0;width:0;height:0;pointer-events:none;z-index:3}
.hmp-rad[hidden]{display:none}
.hmp-ring,.hmp-sweep{position:absolute;left:0;top:0;border-radius:50%;transform:translate(-50%,-50%)}
.hmp-ring{border:1.5px solid rgba(21,112,239,.55);background:rgba(21,112,239,.04)}
.hmp-sweep{background:conic-gradient(from 0deg,rgba(21,112,239,0) 0deg,rgba(21,112,239,0) 250deg,rgba(21,112,239,.34) 359deg,rgba(21,112,239,0) 360deg);opacity:0}
.hmp-rad.scan .hmp-sweep{opacity:1;animation:hmpSpin 3.6s linear infinite}
@keyframes hmpSpin{from{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}
.hmp-pop{position:absolute;z-index:5;right:24px;top:24px;background:#fff;border-radius:20px;box-shadow:0 18px 44px rgba(15,23,42,.18);padding:14px 40px 14px 14px;display:flex;gap:14px;align-items:flex-start;min-width:240px;max-width:330px}
.hmp-pop[hidden]{display:none}
.hmp-pop img{width:52px;height:52px;border-radius:50%;object-fit:cover;flex:none}
.hmp-pop b{display:block;font-size:15px;color:var(--ink)}
.hmp-pop .job{font-size:13px;color:var(--muted)}
.hmp-pop .job i{color:#f5a623;margin-right:4px}
.hmp-pop .free{display:inline-block;margin-top:6px;background:#e7f6ec;color:#1f7a45;font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px}
.hmp-pop .later{display:inline-block;margin-top:6px;background:#eef2f8;color:#52607a;font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px}
.hmp-pop-ico{width:52px;height:52px;border-radius:50%;background:var(--blue-soft);color:var(--blue);display:flex;align-items:center;justify-content:center;flex:none;font-size:20px}
.hmp-pop-x{position:absolute;right:8px;top:8px;width:28px;height:28px;border:0;border-radius:50%;background:#f1f4f9;color:var(--muted);cursor:pointer}
.hmp-pop-go{display:block;margin-top:10px;border:0;background:var(--blue);color:#fff;font:inherit;font-weight:700;font-size:13.5px;padding:9px 14px;border-radius:12px;cursor:pointer}
.hmp-wflags{display:flex;flex-direction:column;gap:5px;margin-top:8px;align-items:flex-start}
.hmp-fl{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;line-height:1;color:#fff;background:#1570ef;padding:6px 10px;border-radius:999px}
.hmp-fl--contract{background:#0e7c86}
.hmp-fl--done{background:#1b9b4a}
.hmp-fl--warranty{background:#7a3ff0}
.hmp-fl--tools{background:#475467}
.hmp-fl--sameday{background:#e8590c}
.hmp-fl--weekend{background:#0b8f6a}
.hmp-fl--cashless{background:#1b7fa8}
.hmp-fl--official{background:#344054}
.hmp-fl--top{background:linear-gradient(135deg,#f5a623,#e8590c)}
@media (max-width:900px){
  .m8-card.hmp-card{flex-direction:column;align-items:stretch;min-height:0}
  .hmp-text{max-width:none;padding:28px 22px 18px;border-radius:0;box-shadow:none;background:none}
  .hmp-stage{position:relative;order:2;height:360px;inset:auto}
  .hmp-pop{top:auto;bottom:16px;left:16px;right:16px;max-width:none}
}
