:root{
  /* 面与线 */
  --bg:#f2f2f2;
  --surface:#ffffff;
  --surface-alt:#fafafa;
  --line:#e2e2e2;
  --line-2:#eeeeee;

  /* 文字三级（在 #f2f2f2 与 #ffffff 上都达到 4.5:1） */
  --strong:#1c1c1c;
  --body:#4d4d4d;
  --muted:#6d6d6d;

  /* 主题粉：保留参考站色相，把明度下压到可与白字达到 4.5:1 */
  --primary:#e0117a;
  --primary-dark:#b0134d;
  --primary-ink:#c2185b;
  --primary-soft:#ffe3f0;
  --primary-tint:#fffafd;
  --on-primary:#ffffff;

  /* 反白面上的叠加层 */
  --veil:rgba(255,255,255,.22);
  --veil-line:rgba(255,255,255,.3);
  --veil-dim:rgba(255,255,255,.84);
  --veil-text:rgba(255,255,255,.9);
  --scrim:rgba(0,0,0,.12);
  --scrim-strong:rgba(0,0,0,.28);

  /* 阴影与 CTA 动效色 */
  --shadow-ink:rgba(0,0,0,.06);
  --lift-ink:rgba(176,19,77,.32);
  --cta-ring:rgba(255,255,255,.85);
  --cta-tick:rgba(255,255,255,.62);

  --shadow:0 1px 2px var(--shadow-ink);
  --shadow-lift:0 6px 18px var(--lift-ink);

  --radius:4px;
  --radius-sm:5px;
  --radius-pill:20px;
  --wrap:960px;
  --ease:cubic-bezier(.4,.2,.3,1);
  --t:.2s;
  --sans:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",Tahoma,Arial,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--bg);
  color:var(--body);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.7;
  padding-bottom:96px;
  overflow-wrap:break-word;
}
h1{font-size:23px;line-height:1.4;margin:0 0 10px;font-weight:700;color:var(--strong)}
h2{font-size:18px;line-height:1.45;margin:0 0 10px;font-weight:700;color:var(--strong)}
h3{font-size:17px;line-height:1.5;margin:0 0 6px;font-weight:700;color:var(--strong)}
p{margin:0 0 12px;font-size:16px;line-height:1.8}
ul,ol{margin:0 0 14px;padding-left:1.25em}
li{margin:0 0 7px;font-size:16px;line-height:1.8}
a{color:var(--primary-ink);text-decoration:none}
a:hover{color:var(--primary);text-decoration:underline}
a:focus-visible,summary:focus-visible,button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
hr{border:0;border-top:1px solid var(--line);margin:18px 0}
table{width:100%;border-collapse:collapse;font-size:15px}
caption{caption-side:bottom;padding-top:8px;color:var(--muted);font-size:14px;text-align:left}
th,td{padding:10px;border-bottom:1px solid var(--line-2);text-align:left;vertical-align:top;line-height:1.7}
th{background:var(--surface-alt);color:var(--strong);font-weight:700}
tbody tr:last-child th,tbody tr:last-child td{border-bottom:0}
.Tw{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 16px;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow)}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 16px}
.skip{position:absolute;left:-9999px;top:0;z-index:120;background:var(--primary);color:var(--on-primary);padding:10px 14px}
.skip:focus{left:0}

/* 顶栏：整条主题粉，白字，静态 */
.C-Header{background:var(--primary);color:var(--on-primary)}
.Hd__in{display:flex;align-items:center;gap:16px;min-height:73px;flex-wrap:wrap}
.Hd__brand{display:flex;align-items:center;gap:8px;min-height:60px;color:var(--on-primary);font-size:20px;font-weight:700;letter-spacing:.02em}
.Hd__brand:hover{color:var(--on-primary);text-decoration:none}
.Hd__mark{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-sm);background:var(--veil);font-size:16px;font-weight:700;line-height:1}
.Hd__nav{display:flex;flex-wrap:wrap;align-items:center;flex:1 1 auto;min-width:0}
.Hd__nav a{display:block;padding:24px 8px;font-size:16px;color:var(--on-primary);line-height:1.35}
.Hd__nav a:hover{color:var(--on-primary);background:var(--scrim);text-decoration:none}
.Hd__nav a[aria-current="page"]{background:var(--scrim-strong);font-weight:700}
.Hd__side{display:flex;align-items:center;gap:14px;margin-left:auto}
.Hd__side a{color:var(--on-primary);font-size:15px;padding:6px 2px}
.Hd__side a:hover{color:var(--on-primary);text-decoration:underline}
.Hd__side a[aria-current="page"]{font-weight:700;text-decoration:underline}

/* 白卡通用 */
.G-Field{background:var(--surface);border-radius:var(--radius);padding:16px;margin:8px 0}
.G-Field > p:last-child,.G-Field > ul:last-child{margin-bottom:0}

/* 统计条 */
.Stats{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:12px;
  background:var(--surface);border-radius:var(--radius);padding:10px 16px;margin:14px 0 0;
  box-shadow:var(--shadow);font-size:14px;color:var(--body)}
.Stats span{display:inline-flex;align-items:baseline;gap:5px;white-space:nowrap}
.Stats b{color:var(--primary-ink);font-size:16px}
@media (max-width:768px){
  .Stats{flex-wrap:wrap;gap:6px 14px;padding:8px 12px}
}

/* 播报条 */
.Acts{display:flex;align-items:center;gap:10px;background:var(--surface);border-radius:var(--radius);
  padding:9px 16px;margin:10px 0 0;box-shadow:var(--shadow);overflow:hidden}
.Acts__ico{flex:0 0 auto}
.Acts__track{display:flex;align-items:center;gap:28px;white-space:nowrap;overflow-x:auto;scrollbar-width:none;
  font-size:14px;color:var(--muted);min-width:0}
.Acts__track::-webkit-scrollbar{display:none}
.Acts__track span{flex:0 0 auto}

/* 区块标题 */
.Field__hd{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 10px;
  padding-bottom:8px;border-bottom:1px solid var(--line-2)}
.Field__hd h2{margin:0;font-size:16px;color:var(--strong)}
.Field__hd .More{margin-left:auto;font-size:14px;color:var(--muted)}
.Field__hd .More:hover{color:var(--primary-ink)}

/* 城市／目录行 */
.ListRow{display:flex;gap:12px;margin:0 0 4px;align-items:flex-start}
.ListRow__label{flex:0 0 auto;color:var(--muted);font-size:15px;padding:4px 0}
.ListRow__fields{flex:1 1 auto;min-width:0;display:flex;flex-wrap:wrap}
.ListRow__fields a{flex:0 0 33.3333%;max-width:33.3333%;padding:4px 8px 4px 0;color:var(--strong);font-size:15px}
@media (max-width:575px){
  .ListRow__fields a{flex:0 0 50%;max-width:50%}
}

/* 大区分组 */
details.Zone{border-top:1px solid var(--line-2);margin:0}
details.Zone:first-of-type{border-top:0}
details.Zone > summary{cursor:pointer;list-style:none;padding:10px 0;font-size:15px;font-weight:700;color:var(--strong);display:flex;gap:10px;align-items:center}
details.Zone > summary::-webkit-details-marker{display:none}
details.Zone > summary::after{content:"＋";margin-left:auto;color:var(--primary);font-weight:400}
details.Zone[open] > summary::after{content:"－"}
.Zone__body{padding:0 0 12px}
.Zone__body a{display:inline-block;padding:4px 10px 4px 0;color:var(--strong);font-size:15px;min-width:33.3333%}
.Zone__body a.Zone__all{color:var(--primary-ink)}
@media (max-width:575px){.Zone__body a{min-width:50%}}
.Zone__n{font-weight:400;color:var(--muted)}

/* 卡片网格：三档列数与参考站一致 1 / 2 / 3 */
.Grid{display:flex;flex-wrap:wrap;background:var(--surface);border-radius:var(--radius);overflow:hidden}
.datashow{flex:0 0 100%;max-width:100%;padding:0 4px 0 0;margin:0 0 8px}
@media (min-width:768px){.datashow{flex:0 0 50%;max-width:50%}}
@media (min-width:992px){.datashow{flex:0 0 33.3333%;max-width:33.3333%}}

.C-InfoCard{display:flex;position:relative;background:var(--surface);border-radius:var(--radius);
  height:155px;padding:0 10px 0 0;overflow:hidden}
.C-InfoCard:hover{background:var(--primary-tint)}
.Cover{flex:0 0 auto;display:inline-block;width:100px;height:132px;margin:16px 16px 16px 14px;
  border-radius:var(--radius);overflow:hidden;background:var(--primary-soft)}
.Cover__in{display:flex;align-items:center;justify-content:center;width:100%;height:100%;
  background:linear-gradient(160deg,var(--primary) 0%,var(--primary-dark) 100%);
  color:var(--on-primary);font-size:34px;font-weight:700;line-height:1;letter-spacing:.04em}
.Content{display:block;overflow:hidden;min-width:0;flex:1 1 auto}
.Content .Title{display:block;padding:16px 8px 6px 16px;font-size:16px;color:var(--strong);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.Content .Meta{display:flex;align-items:center;gap:10px;padding:0 8px 0 16px;font-size:14px;color:var(--muted);white-space:nowrap}
.Content .Desc{display:block;padding:2px 8px 0 16px;font-size:15px;line-height:21px;color:var(--body);
  height:46px;overflow:hidden}
.Content .Location{display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:6px 8px 12px 16px;font-size:14px;color:var(--muted);white-space:nowrap}
.Content .Location em{font-style:normal;color:var(--primary-ink)}

/* 表格化清单 */
.Dl{display:grid;grid-template-columns:1fr;margin:0 0 16px}
.Dl > div{display:grid;gap:2px 14px;grid-template-columns:1fr;padding:10px 0;border-bottom:1px solid var(--line-2)}
@media (min-width:620px){.Dl > div{grid-template-columns:9em minmax(0,1fr)}}
.Dl dt{font-size:14px;color:var(--muted);font-weight:700}
.Dl dd{margin:0;font-size:16px;color:var(--body);min-width:0;line-height:1.8}
.Dl > div:last-child{border-bottom:0}

/* 提示块 */
.Note{background:var(--primary-soft);border-radius:var(--radius);padding:12px 14px;margin:0 0 16px}
.Note h3{font-size:15px;color:var(--primary-ink);margin:0 0 4px}
.Note p{font-size:15px;margin:0;color:var(--strong)}

/* 折叠问答 */
details.Q{background:var(--surface);border-radius:var(--radius);margin:0 0 8px;box-shadow:var(--shadow)}
details.Q > summary{cursor:pointer;list-style:none;padding:12px 14px;font-size:16px;font-weight:700;color:var(--strong);display:flex;gap:12px}
details.Q > summary::-webkit-details-marker{display:none}
details.Q > summary::after{content:"＋";margin-left:auto;color:var(--primary);font-weight:400}
details.Q[open] > summary::after{content:"－"}
details.Q .Q__b{padding:0 14px 12px}
details.Q .Q__b p:last-child{margin-bottom:0}

/* 面包屑与页头 */
.Crumb{font-size:14px;color:var(--muted);margin:14px 0 0}
.Crumb a{color:var(--muted)}
.Crumb a:hover{color:var(--primary-ink)}
.Head__kicker{display:inline-block;background:var(--primary-soft);color:var(--primary-ink);
  font-size:14px;font-weight:700;padding:3px 10px;border-radius:var(--radius-pill);margin:0 0 10px}
.Head .Lede{font-size:16px;color:var(--body);line-height:1.85;margin:0}

/* 页脚 */
.C-Footer{background:var(--primary);color:var(--on-primary);margin-top:20px}
.C-Footer a{color:var(--on-primary)}
.C-Footer a:hover{color:var(--on-primary)}
.Ft__nav{display:flex;flex-wrap:wrap;gap:0 4px;border-bottom:1px solid var(--veil-line)}
.Ft__nav a{display:block;padding:14px 10px;font-size:16px}
.Ft__nav a:hover{background:var(--scrim);text-decoration:none}
.Ft__cols{display:grid;gap:18px;grid-template-columns:1fr;padding:18px 0 4px}
@media (min-width:600px){.Ft__cols{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:992px){.Ft__cols{grid-template-columns:repeat(4,minmax(0,1fr))}}
.Ft__cols h2{font-size:14px;font-weight:700;color:var(--veil-dim);margin:0 0 8px;letter-spacing:.06em}
.Ft__cols ul{list-style:none;margin:0;padding:0}
.Ft__cols li{margin:0}
.Ft__cols a{display:block;padding:4px 0;font-size:15px}
.Ft__brand{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;padding:16px 0 20px;margin-top:14px;border-top:1px solid var(--veil-line)}
.Ft__brand a{font-size:19px;font-weight:700}
.Ft__brand p{margin:0;font-size:14px;color:var(--veil-text);line-height:1.75}

/* 唯一寻芳 CTA：固定底部，动效完全由伪元素承载 */
.site-cta{
  position:fixed;left:16px;right:16px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:100;
  display:flex;align-items:center;justify-content:center;min-height:50px;padding:11px 22px;
  background:var(--primary);color:var(--on-primary);font-size:17px;font-weight:700;letter-spacing:.02em;
  text-align:center;border-radius:var(--radius);box-shadow:var(--shadow-lift);overflow:hidden;isolation:isolate;
  transition:background-color var(--t) var(--ease);
}
.site-cta:hover{background:var(--primary-dark);color:var(--on-primary);text-decoration:none}
.site-cta:active{filter:brightness(.95)}
.site-cta:focus-visible{outline:2px solid var(--on-primary);outline-offset:3px}
.site-cta::before{
  content:"";position:absolute;inset:0;z-index:-1;border-radius:var(--radius);
  border:2px solid var(--cta-ring);animation:ring-emit 2.4s var(--ease) infinite;
}
.site-cta::after{
  content:"";position:absolute;top:0;left:0;right:0;height:4px;
  background-image:repeating-linear-gradient(90deg,var(--cta-tick) 0 6px,transparent 6px 26px);
  animation:ticker-step 2.4s var(--ease) infinite;
}
@keyframes ring-emit{
  0%{transform:scale(1);opacity:.9}
  38%{transform:scale(1.13);opacity:0}
  39%{transform:scale(1);opacity:0}
  100%{transform:scale(1);opacity:0}
}
@keyframes ticker-step{
  0%,9%{background-position:0 0}
  25%,34%{background-position:-26px 0}
  50%,59%{background-position:-52px 0}
  75%,84%{background-position:-78px 0}
  100%{background-position:-104px 0}
}
@media (min-width:640px){
  .site-cta{left:50%;right:auto;transform:translateX(-50%);width:clamp(400px,40vw,560px);min-height:52px;font-size:18px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms !important}
  .site-cta::before{animation:none;opacity:.42}
  .site-cta::after{animation:none}
}
