/* ===== 专题页 =====
   一个专题 = 一天走得完的一条线。结构固定：动线 → 九宫格 → 硬约束 → 行前三查。 */

.thero{padding:clamp(40px,6vw,84px) 0 clamp(32px,4vw,56px);
  border-bottom:1px solid var(--line);background:var(--paper-2)}
.thero .in{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.thero .crumb{font-size:12.5px;color:var(--ink-3);letter-spacing:.06em}
.thero .crumb a{border-bottom:1px solid var(--line)}
.thero .no{font-family:var(--num);font-size:clamp(52px,8vw,104px);line-height:1;
  color:var(--accent);opacity:.22;letter-spacing:.02em}
.thero-grid{display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,4vw,52px);
  align-items:end;margin-top:18px}
.thero h1{font-family:var(--serif);font-size:clamp(34px,5.4vw,72px);line-height:1.08}
.thero .oneline{margin-top:18px;font-size:clamp(16px,1.6vw,19.5px);color:var(--ink-2);max-width:52ch}
.thero .tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
@media(max-width:700px){.thero-grid{grid-template-columns:1fr;gap:8px}}

/* ---------- 动线 ---------- */
.route{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-2);
  border:1px solid var(--line-2)}
@media(max-width:820px){.route{grid-template-columns:1fr}}
.stop{background:var(--card);padding:24px 22px 26px;position:relative}
.stop .idx{display:flex;align-items:center;gap:10px;font-family:var(--num);font-size:12.5px;
  letter-spacing:.14em;color:var(--ink-3)}
.stop .idx i{font-style:normal;width:22px;height:22px;border-radius:50%;background:var(--accent);
  color:var(--on-accent);display:grid;place-items:center;font-size:11px;font-weight:700;letter-spacing:0}
.stop h3{font-family:var(--serif);font-size:25px;margin:14px 0 4px}
.stop .zone{font-size:12.5px;color:var(--ink-3);letter-spacing:.05em}
.stop .body{margin-top:14px;font-size:14.5px;color:var(--ink-2);line-height:1.8}
.stop dl{margin-top:16px;padding-top:14px;border-top:1px solid var(--line-2);
  display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:13.5px}
.stop dt{color:var(--ink-3);white-space:nowrap}
.stop dd{color:var(--ink-2)}

/* ---------- 九宫格拍摄清单 ---------- */
.shot-intro{display:flex;flex-wrap:wrap;gap:16px 32px;align-items:flex-end;margin-bottom:28px}
.grid9{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:760px}
.slot{aspect-ratio:1;border:1px solid var(--line);background:var(--paper-2);
  display:flex;flex-direction:column;justify-content:space-between;padding:12px;position:relative;
  overflow:hidden}
.slot .n{font-family:var(--num);font-size:12px;color:var(--ink-3);letter-spacing:.1em}
.slot .t{font-size:13px;font-weight:600;color:var(--ink-2);line-height:1.5}
.slot .t small{display:block;font-weight:400;color:var(--ink-3);font-size:11.5px;margin-top:3px;
  letter-spacing:.02em}
.slot[data-seg="1"]{border-top:3px solid var(--accent)}
.slot[data-seg="2"]{border-top:3px solid var(--ink-3)}
.slot[data-seg="3"]{border-top:3px solid var(--accent-d)}
.slot.filled{padding:0;border-color:transparent}
.slot.filled img{width:100%;height:100%;object-fit:cover}
.shot-legend{display:flex;flex-direction:column;gap:10px;font-size:13.5px;color:var(--ink-2)}
.shot-legend span{display:flex;align-items:center;gap:9px}
.shot-legend i{width:22px;height:3px;background:var(--line);display:inline-block;flex:0 0 auto}
.shot-legend .s1 i{background:var(--accent)}
.shot-legend .s2 i{background:var(--ink-3)}
.shot-legend .s3 i{background:var(--accent-d)}
@media(max-width:560px){.grid9{gap:6px}.slot{padding:8px}.slot .t{font-size:11.5px}}

/* ---------- 硬约束 ---------- */
.risks{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line-2);
  border:1px solid var(--line-2)}
@media(max-width:760px){.risks{grid-template-columns:1fr}}
.risk{background:var(--card);padding:22px 22px 24px}
.risk.hard{background:var(--warn-bg-soft)}
.risk h4{font-size:16px;font-weight:700;letter-spacing:.02em;display:flex;gap:9px;align-items:flex-start}
.risk h4 span{flex:0 0 auto;font-family:var(--num);color:var(--ink-3);font-size:12.5px;
  line-height:1.9}
.risk p{margin-top:8px;font-size:14px;color:var(--ink-2);line-height:1.78}

/* ---------- 行前三查（可勾选，存 localStorage） ---------- */
.checks{border:1px solid var(--line);background:var(--card);max-width:820px}
.checks li{list-style:none;border-bottom:1px solid var(--line-2)}
.checks li:last-child{border-bottom:0}
.checks label{display:flex;gap:14px;align-items:flex-start;padding:16px 20px;cursor:pointer;
  transition:background var(--dur-1)}
.checks label:hover{background:var(--paper-2)}
.checks input{appearance:none;flex:0 0 auto;width:19px;height:19px;margin-top:3px;border-radius:var(--radius-1);
  border:1.5px solid var(--ink-3);background:var(--card);cursor:pointer;transition:var(--dur-1)}
.checks input:checked{background:var(--accent);border-color:var(--accent)}
.checks input:checked::after{content:"✓";color:var(--on-accent);font-size:13px;font-weight:700;
  display:grid;place-items:center;height:100%;line-height:1}
.checks .txt{font-size:15px;line-height:1.7}
.checks .txt small{display:block;color:var(--ink-3);font-size:13px;margin-top:2px}
.checks input:checked~.txt{color:var(--ink-3);text-decoration:line-through;text-decoration-thickness:1px}
.checks-note{margin-top:12px;font-size:12.5px;color:var(--ink-3)}

/* ---------- 时间表 ---------- */
.tt{width:100%;border-collapse:collapse;font-size:14.5px}
.tt th,.tt td{text-align:left;padding:13px 14px;border-bottom:1px solid var(--line-2);vertical-align:top}
.tt th{font-size:12px;letter-spacing:.14em;color:var(--ink-3);font-weight:700;text-transform:uppercase;
  border-bottom-color:var(--line)}
.tt td:first-child{font-family:var(--num);color:var(--accent);white-space:nowrap;font-weight:700}
.tt tr:last-child td{border-bottom:0}
.tt .anchor td{background:var(--accent-wash)}
.tt-scroll{overflow-x:auto}
@media(max-width:640px){.tt{min-width:520px}}

/* ---------- 相关链接 ---------- */
.links{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;
  background:var(--line-2);border:1px solid var(--line-2)}
.links a{background:var(--card);padding:20px 22px;transition:background var(--dur-1)}
.links a:hover{background:var(--paper-2)}
.links b{display:block;font-size:15.5px;margin-bottom:4px}
.links span{font-size:13px;color:var(--ink-3)}

/* ---------- 上下篇 ---------- */
.pager{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  border-top:1px solid var(--line);margin-top:clamp(56px,7vw,96px);padding-top:22px;font-size:14px}
.pager a{font-weight:600}
.pager a:hover{color:var(--accent)}

/* ---------- 季节窗口倒计时框（原来只在海淀本地线页面内联，现在数据驱动，
   任何专题只要关联了 season_window 就会出现，挪成全局组件） ---------- */
.window{border:1px solid var(--accent);background:var(--accent-wash);padding:24px 26px 26px;
  display:grid;grid-template-columns:auto 1fr;gap:8px 28px;align-items:center}
.window .big{font-family:var(--num);font-size:clamp(40px,6vw,72px);line-height:1;color:var(--accent-d)}
.window .big small{display:block;font-size:12.5px;letter-spacing:.18em;color:var(--ink-2);
  font-family:var(--sans);font-weight:700;margin-top:8px}
.window h3{font-family:var(--serif);font-size:clamp(21px,2.4vw,28px)}
.window p{font-size:14.5px;color:var(--ink-2);margin-top:6px;line-height:1.8}
@media(max-width:640px){.window{grid-template-columns:1fr;gap:16px}}

/* ---------- 路线地图（assets/js/map.js 懒加载高德 JS API 后接管容器内部） ---------- */
.map-embed{margin-top:20px;background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius-2);
  overflow:hidden;position:relative}
.map-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:var(--ink-3);font-size:13px;margin:0}
