/* ============================================================
   数字虹桥·探索地图 — 首页入口模块（独立可下架）
   下架方法：删除 index.html 中标记的「MAP-PROMO 开始/结束」整块
             + 删除本文件(map-promo.css) + 删除 map-promo.js
             + 删除 index.html <head> 中对应的 <link> 行即可，互不影响 /map/ 独立页。
   ============================================================ */
.mp-section{max-width:1180px;margin:30px auto;padding:0 18px;font-family:var(--sans);}
.mp-section *{box-sizing:border-box;}
.mp-card{position:relative;border-radius:22px;overflow:hidden;background:#fff;
  box-shadow:0 18px 50px -22px rgba(11,42,91,.38);border:1px solid rgba(11,42,91,.08);}
.mp-card.mp-prep{opacity:0;transform:translateY(18px);
  transition:opacity .6s ease,transform .6s ease;}
.mp-card.mp-in{opacity:1;transform:none;}

.mp-ribbon{position:absolute;top:16px;left:16px;z-index:3;display:inline-flex;align-items:center;gap:8px;
  padding:7px 14px;border-radius:999px;background:rgba(11,42,91,.82);color:#fff;
  font-size:13px;font-weight:600;backdrop-filter:blur(6px);
  box-shadow:0 6px 18px -8px rgba(0,0,0,.5);}
.mp-ribbon .dot{width:9px;height:9px;border-radius:50%;
  background:linear-gradient(135deg,#F08A24,#FFD678);box-shadow:0 0 0 3px rgba(240,138,36,.25);}

.mp-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:0;}
@media(max-width:860px){.mp-grid{grid-template-columns:1fr;}}

.mp-media{position:relative;display:block;min-height:320px;background:#eaf0f8;overflow:hidden;}
.mp-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s ease;}
.mp-media:hover img{transform:scale(1.045);}
.mp-media .mp-go{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);
  display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:999px;
  background:linear-gradient(135deg,#0B2A5B,#16407e);color:#fff;font-weight:700;font-size:15px;
  text-decoration:none;box-shadow:0 12px 28px -10px rgba(11,42,91,.75);
  transition:transform .25s ease,box-shadow .25s ease;white-space:nowrap;}
.mp-media .mp-go:hover{transform:translateX(-50%) translateY(-2px);
  box-shadow:0 18px 36px -10px rgba(11,42,91,.85);}

.mp-body{padding:26px 26px 28px;display:flex;flex-direction:column;gap:14px;}
.mp-title{font-family:var(--serif);font-size:23px;margin:2px 0 0;color:#0B2A5B;font-weight:800;line-height:1.25;}
.mp-sub{margin:0;color:#5b6b85;font-size:13.5px;line-height:1.65;}

.mp-tabs{display:inline-flex;background:#eef2f9;border-radius:999px;padding:4px;gap:4px;align-self:flex-start;}
.mp-tab{border:0;background:transparent;padding:7px 16px;border-radius:999px;font-size:13px;font-weight:600;
  color:#5b6b85;cursor:pointer;transition:all .2s ease;font-family:inherit;}
.mp-tab.active{background:#fff;color:#0B2A5B;box-shadow:0 4px 12px -6px rgba(11,42,91,.4);}

.mp-group{display:flex;flex-wrap:wrap;gap:9px;}
.mp-group[hidden]{display:none;}
.mp-chip{display:inline-flex;align-items:center;gap:7px;text-decoration:none;padding:9px 14px;border-radius:12px;
  background:#f4f7fc;border:1px solid rgba(11,42,91,.08);color:#1d3a66;font-size:13.5px;font-weight:600;
  transition:all .2s ease;}
.mp-chip:hover{background:#0B2A5B;color:#fff;transform:translateY(-2px);
  box-shadow:0 10px 20px -10px rgba(11,42,91,.6);}
.mp-chip .badge{font-size:11px;background:rgba(240,138,36,.16);color:#b35e12;
  padding:1px 7px;border-radius:999px;font-weight:700;}
.mp-chip:hover .badge{background:rgba(255,255,255,.22);color:#fff;}

.mp-cta{margin-top:6px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 20px;
  border-radius:14px;background:linear-gradient(135deg,#F08A24,#ffae4d);color:#3a1c00;font-weight:800;font-size:15px;
  text-decoration:none;box-shadow:0 14px 30px -12px rgba(240,138,36,.7);
  transition:transform .2s ease,box-shadow .2s ease;}
.mp-cta:hover{transform:translateY(-2px);box-shadow:0 20px 38px -12px rgba(240,138,36,.85);}

.mp-foot{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;padding:14px 26px;
  background:linear-gradient(180deg,#f7f9fc,#eef2f9);border-top:1px solid rgba(11,42,91,.07);
  font-size:12.5px;color:#5b6b85;}
.mp-foot .mp-stat{display:inline-flex;gap:6px;align-items:center;}
.mp-foot b{color:#0B2A5B;}
.mp-foot .mp-note{margin-left:auto;opacity:.85;}
