:root{
  --main:#f472b6;
  --accent:#fbbf24;
  --bg:#fff5f7;
  --ink:#4a2530;
  --line:#f3d6e0;
  --soft:#ffe9f0;
}
*{box-sizing:border-box}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Inter','PingFang SC','Microsoft YaHei',sans-serif;
  font-weight:400;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,.heavy{
  font-weight:900;
  letter-spacing:-.02em;
  color:var(--ink);
}
.mono{
  font-family:'SF Mono','JetBrains Mono','Courier New',monospace;
  font-weight:700;
}
a{text-decoration:none;color:inherit}
a:hover{color:var(--main)}
.wrap{max-width:1280px;margin:0 auto;padding:0 20px}
.hr-line{height:1px;background:var(--line);border:0;margin:0}

/* ============ NAV ============ */
.topbar{
  background:#fff;
  border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:60;
}
.nav-inner{
  display:flex;align-items:center;justify-content:space-between;
  max-width:1280px;margin:0 auto;padding:14px 20px;gap:16px;
}
.brand{
  font-size:1.35rem;font-weight:900;color:var(--ink);
  display:flex;align-items:center;gap:8px;letter-spacing:-.03em;
}
.brand i{color:var(--main)}
.navlinks{
  display:flex;align-items:center;gap:4px;flex-wrap:wrap;
}
.navlinks a{
  padding:7px 13px;border-radius:999px;font-size:.9rem;font-weight:600;
  color:var(--ink);border:1px solid transparent;transition:.2s;
}
.navlinks a:hover{border-color:var(--main);color:var(--main);background:var(--soft)}
.navlinks a.active{background:var(--main);color:#fff;border-color:var(--main)}
.burger{
  display:none;background:#fff;border:1px solid var(--line);border-radius:10px;
  width:42px;height:38px;color:var(--ink);font-size:1.05rem;
}
@media(max-width:860px){
  .burger{display:block}
  .navlinks{
    display:none;width:100%;flex-direction:column;align-items:stretch;
    padding:8px 0 4px;
  }
  .navlinks.open{display:flex}
  .nav-inner{flex-wrap:wrap}
}

/* ============ HERO ============ */
.hero{
  position:relative;overflow:hidden;background:#fff;
  border-bottom:1px solid var(--line);
}
.hero-inner{
  max-width:1280px;margin:0 auto;padding:74px 20px 66px;position:relative;z-index:2;
}
.float-dot{
  position:absolute;border-radius:50%;z-index:1;
  border:1px solid var(--line);background:var(--soft);
}
.dot-1{width:180px;height:180px;top:-50px;right:8%;animation:floaty 7s ease-in-out infinite}
.dot-2{width:90px;height:90px;bottom:24px;right:26%;background:#fff;animation:floaty 6s ease-in-out infinite .8s}
.dot-3{width:52px;height:52px;top:60px;left:6%;background:#fff;border-color:var(--main);animation:floaty 5s ease-in-out infinite .4s}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-16px)}}
.grad-text{
  font-size:clamp(2.1rem,5.4vw,4.1rem);
  font-weight:900;line-height:1.08;letter-spacing:-.04em;
  background:linear-gradient(100deg,var(--main) 0%,var(--accent) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  display:block;margin-bottom:16px;
}
.hero-sub{max-width:640px;font-size:1.03rem;color:#6d4450;margin-bottom:26px}
.hero-stats{display:flex;gap:40px;flex-wrap:wrap}
.stat-n .mono{font-size:2.1rem;color:var(--main);display:block;line-height:1.1}
.stat-n small{font-size:.8rem;color:#8a5d6b;font-weight:600}

/* ============ SECTION ============ */
.sec{padding:56px 0}
.sec-head{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:16px;margin-bottom:26px;flex-wrap:wrap;
}
.sec-head h2{font-size:1.75rem;margin:0;display:flex;align-items:center;gap:10px}
.sec-head h2 i{color:var(--main);font-size:1.3rem}
.sec-head p{margin:4px 0 0;font-size:.9rem;color:#8a5d6b}

/* ============ 布局: 左筛选 + 右瀑布流 ============ */
.browse{display:grid;grid-template-columns:212px 1fr;gap:32px;align-items:start}
@media(max-width:900px){.browse{grid-template-columns:1fr;gap:20px}}
.filter-card{
  background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 16px;
  position:sticky;top:88px;
}
@media(max-width:900px){.filter-card{position:static}}
.filter-card h4{
  font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--main);margin:0 0 12px;font-weight:800;
}
.filter-list{list-style:none;padding:0;margin:0 0 20px}
.filter-list li{margin-bottom:4px}
.filter-list a{
  display:block;padding:8px 12px;border-radius:9px;font-size:.9rem;font-weight:600;
  border:1px solid transparent;transition:.18s;color:var(--ink);
}
.filter-list a:hover{background:var(--soft);border-color:var(--line);color:var(--main)}
.filter-list a.on{background:var(--main);color:#fff}

/* ============ 海报网格 ============ */
.poster-grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:22px;width:100%;
}
@media(max-width:1100px){.poster-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.poster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:400px){.poster-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}}
.pcard{
  position:relative;display:block;border-radius:12px;overflow:hidden;
  background:#fff;border:1px solid var(--line);
  transition:transform .28s ease,box-shadow .28s ease,border-color .28s;
}
.pcard:hover{
  transform:translateY(-8px) scale(1.025);
  box-shadow:0 18px 34px -12px rgba(244,114,182,.5);
  border-color:var(--main);
}
.pcard .thumb{
  width:100%;aspect-ratio:2/3;object-fit:cover;display:block;
  background:linear-gradient(140deg,#ffe1ec,#ffeccd);
}
.badge-q{
  position:absolute;top:9px;left:9px;background:var(--accent);color:#4a2530;
  font-size:.66rem;font-weight:800;padding:3px 8px;border-radius:6px;
  letter-spacing:.05em;font-family:'SF Mono','Courier New',monospace;
}
.badge-q.hd{background:#fff;color:var(--main);border:1px solid var(--main)}
.pcard .meta{padding:11px 12px 13px}
.pcard h3{
  font-size:.92rem;margin:0 0 5px;font-weight:800;line-height:1.35;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.pcard .sub{font-size:.76rem;color:#9a6d7c;display:flex;justify-content:space-between;gap:8px}
.pcard .sub .mono{color:var(--main);font-size:.78rem}

/* ============ 榜单 ============ */
.rank-board{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;
  border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;
}
@media(max-width:880px){.rank-board{grid-template-columns:1fr}}
.rank-col{padding:22px 22px 10px;border-right:1px solid var(--line)}
.rank-col:last-child{border-right:0}
@media(max-width:880px){.rank-col{border-right:0;border-bottom:1px solid var(--line)}}
.rank-col h4{font-size:1rem;margin:0 0 14px;display:flex;align-items:center;gap:8px}
.rank-col h4 i{color:var(--accent)}
.rank-item{
  display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px dashed var(--line);
  transition:.16s;
}
.rank-item:last-child{border-bottom:0}
.rank-item:hover{padding-left:6px;color:var(--main)}
.rank-no{
  font-family:'SF Mono','Courier New',monospace;font-weight:800;
  font-size:1.05rem;color:var(--line);min-width:26px;
}
.rank-item:nth-child(2) .rank-no{color:var(--main)}
.rank-item:nth-child(3) .rank-no{color:var(--accent)}
.rank-name{flex:1;font-weight:700;font-size:.9rem}
.rank-hot{font-size:.72rem;color:#9a6d7c;font-family:'SF Mono','Courier New',monospace}

/* ============ 推荐 TABS ============ */
.tabs{
  display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--line);
  margin-bottom:24px;padding-bottom:0;
}
.tab-btn{
  background:none;border:0;padding:10px 16px;font-weight:800;font-size:.92rem;
  color:#9a6d7c;cursor:pointer;border-bottom:3px solid transparent;transition:.2s;
}
.tab-btn:hover{color:var(--main)}
.tab-btn.on{color:var(--main);border-bottom-color:var(--main)}
.tab-panel{display:none}
.tab-panel.on{display:block;animation:fadein .35s ease}
@keyframes fadein{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ============ 时间线(经典专区说明) ============ */
.timeline{
  position:relative;padding-left:28px;margin-top:8px;
}
.timeline::before{
  content:'';position:absolute;left:7px;top:6px;bottom:6px;width:2px;
  background:linear-gradient(var(--main),var(--accent));
}
.tl-item{position:relative;margin-bottom:26px}
.tl-item::before{
  content:'';position:absolute;left:-28px;top:7px;width:14px;height:14px;
  border-radius:50%;background:#fff;border:3px solid var(--main);
}
.tl-item h4{font-size:1rem;margin:0 0 4px}
.tl-item .tl-year{
  font-family:'SF Mono','Courier New',monospace;font-size:.78rem;
  color:var(--main);font-weight:800;letter-spacing:.06em;
}
.tl-item p{margin:4px 0 0;font-size:.9rem;color:#7c4f5c}

/* ============ 预告区 ============ */
.trailer-row{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;
}
@media(max-width:900px){.trailer-row{grid-template-columns:1fr}}
.trailer{
  border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;
  transition:transform .25s,box-shadow .25s,border-color .25s;
}
.trailer:hover{
  transform:translateY(-6px);border-color:var(--main);
  box-shadow:0 16px 30px -14px rgba(244,114,182,.55);
}
.trailer .tv-top{
  aspect-ratio:16/9;width:100%;object-fit:cover;display:block;
  background:linear-gradient(120deg,#ffe1ec,#ffeccd);
}
.trailer .tv-body{padding:15px 17px 18px}
.trailer h4{font-size:.98rem;margin:0 0 6px}
.trailer p{margin:0;font-size:.84rem;color:#7c4f5c}
.tag-line{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.tag{
  font-size:.7rem;font-weight:700;padding:3px 9px;border-radius:999px;
  border:1px solid var(--line);color:var(--main);background:var(--soft);
}

/* ============ 友链 + 页脚 ============ */
.friendzone{
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:30px 0;background:#fff;
}
.friendzone h4{font-size:.95rem;margin:0 0 10px;color:var(--main);font-weight:800}
.friendzone h4 i{margin-right:6px}
.friend-links{font-size:.86rem;color:#9a6d7c;word-break:break-all;line-height:2}
footer{background:#fff;padding:44px 0 26px}
.foot-grid{
  display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:28px;margin-bottom:30px;
}
@media(max-width:820px){.foot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.foot-grid{grid-template-columns:1fr}}
.foot-grid h5{font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:var(--main);font-weight:800;margin-bottom:12px}
.foot-grid ul{list-style:none;padding:0;margin:0}
.foot-grid li{margin-bottom:8px;font-size:.87rem;color:#8a5d6b}
.foot-grid li a:hover{color:var(--main)}
.foot-brand{font-size:1.15rem;font-weight:900;margin-bottom:10px;display:flex;align-items:center;gap:8px}
.foot-brand i{color:var(--main)}
.foot-desc{font-size:.86rem;color:#8a5d6b;max-width:340px}
.copyright{
  border-top:1px solid var(--line);padding-top:20px;display:flex;
  justify-content:space-between;gap:14px;flex-wrap:wrap;
  font-size:.82rem;color:#9a6d7c;
}

/* 渐显懒加载 */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.reveal.show{opacity:1;transform:none}

/* --- 子页面追加 --- */
/* —— 本页专属少量样式，配色沿用站点变量 —— */
.guide-hero {padding:64px 0 40px;text-align:center;}
.guide-hero h1 {font-size:clamp(26px,4.4vw,42px);font-weight:900;line-height:1.25;margin:0 0 16px;}
.guide-hero p {max-width:720px;margin:0 auto;color:var(--ink);opacity:.78;font-size:16px;line-height:1.85;}
.guide-toc {margin:28px auto 0;display:flex;flex-wrap:wrap;gap:10px;justify-content:center;}
.guide-toc a {
  display:inline-block;padding:7px 16px;border-radius:999px;
  background:var(--soft);border:1px solid var(--line);color:var(--ink);
  font-size:13.5px;font-weight:600;text-decoration:none;transition:.22s;
}
.guide-toc a:hover {background:var(--main);border-color:var(--main);color:#fff;transform:translateY(-2px);}
.g-card {
  background:#fff;border:1px solid var(--line);border-radius:16px;
  padding:22px 22px 20px;height:100%;transition:.25s;
}
.g-card:hover {transform:translateY(-4px);box-shadow:0 14px 30px rgba(244,114,182,.16);border-color:var(--main);}
.g-card .g-num {
  display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:10px;font-weight:900;font-size:15px;
  background:var(--main);color:#fff;margin-bottom:12px;
}
.g-card h3 {font-size:16.5px;font-weight:800;color:var(--ink);margin:0 0 9px;line-height:1.45;}
.g-card p {margin:0;font-size:14px;line-height:1.85;color:var(--ink);opacity:.76;}
.g-block {
  background:#fff;border:1px solid var(--line);border-radius:18px;
  padding:26px;margin-bottom:22px;
}
.g-block h3 {font-size:18px;font-weight:800;color:var(--ink);margin:0 0 12px;}
.g-block h3 i {color:var(--main);margin-right:8px;}
.g-block p {font-size:14.5px;line-height:1.95;color:var(--ink);opacity:.8;margin:0 0 12px;}
.g-block p:last-child {margin-bottom:0;}
.g-tip {
  background:var(--soft);border-left:4px solid var(--accent);
  border-radius:0 12px 12px 0;padding:14px 18px;margin:16px 0 0;
  font-size:14px;line-height:1.85;color:var(--ink);
}
.g-tip b {color:var(--main);}
.g-tagrow {display:flex;flex-wrap:wrap;gap:9px;margin:14px 0 4px;}
.g-tag {
  padding:6px 14px;border-radius:999px;font-size:13px;font-weight:600;
  background:var(--soft);border:1px dashed var(--line);color:var(--ink);
}
.g-tag.hot {background:var(--main);border:1px solid var(--main);color:#fff;}
.g-tag.new {background:var(--accent);border:1px solid var(--accent);color:#4a2530;}
.g-faq {border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;margin-bottom:12px;}
.g-faq summary {
  cursor:pointer;padding:15px 20px;font-weight:700;font-size:15px;color:var(--ink);
  list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:var(--soft);transition:.2s;
}
.g-faq summary::-webkit-details-marker {display:none;}
.g-faq summary::after {content:"\f078";font-family:"Font Awesome 6 Free";font-weight:900;font-size:12px;color:var(--main);transition:.25s;}
.g-faq[open] summary::after {transform:rotate(180deg);}
.g-faq summary:hover {background:#fff0f5;}
.g-faq .g-faq-body {padding:16px 20px 18px;font-size:14.5px;line-height:1.9;color:var(--ink);opacity:.82;}
.g-cta {
  text-align:center;background:linear-gradient(135deg,var(--soft),#fff);
  border:1px solid var(--line);border-radius:20px;padding:38px 22px;margin-top:8px;
}
.g-cta h3 {font-size:20px;font-weight:900;color:var(--ink);margin:0 0 10px;}
.g-cta p {font-size:14.5px;color:var(--ink);opacity:.75;margin:0 auto 20px;max-width:560px;line-height:1.85;}
.g-btn {
  display:inline-block;padding:12px 30px;border-radius:999px;font-weight:800;font-size:14.5px;
  background:var(--main);color:#fff;text-decoration:none;transition:.24s;margin:5px;
}
.g-btn:hover {background:#ec5fa6;color:#fff;transform:translateY(-2px);box-shadow:0 12px 24px rgba(244,114,182,.32);}
.g-btn.alt {background:#fff;color:var(--main);border:2px solid var(--main);}
.g-btn.alt:hover {background:var(--main);color:#fff;}
.guide-hero {padding:44px 0 26px;}
.g-block {padding:20px 16px;}
.g-cta {padding:28px 16px;}

/* --- 子页面追加 --- */
/* 本页专属少量补充样式，沿用站点配色变量 */
  .about-hero {
    background:radial-gradient(1200px 480px at 12% -10%, var(--soft) 0%, transparent 60%),
               radial-gradient(900px 420px at 92% 8%, #fff7e0 0%, transparent 62%),
               var(--bg);
    padding:64px 0 46px;
    border-bottom:1px solid var(--line);
  }
.about-hero h1 {
    font-size:clamp(26px,4.4vw,44px);
    line-height:1.22;
    font-weight:900;
    color:var(--ink);
    letter-spacing:-.4px;
    margin-bottom:14px;
  }
.about-lead {
    color:var(--ink);
    opacity:.78;
    font-size:clamp(14px,1.7vw,17px);
    line-height:1.9;
    max-width:760px;
  }
.pink-card {
    background:#fff;
    border:1px solid var(--line);
    border-radius:18px;
    padding:24px 22px;
    height:100%;
    box-shadow:0 8px 24px rgba(244,114,182,.06);
    transition:transform .18s ease, box-shadow .18s ease;
  }
.pink-card:hover {transform:translateY(-3px);box-shadow:0 14px 32px rgba(244,114,182,.14);}
.pink-card i {
    display:inline-flex;align-items:center;justify-content:center;
    width:44px;height:44px;border-radius:13px;
    background:var(--soft);color:var(--main);
    font-size:18px;margin-bottom:12px;
  }
.pink-card h3 {
    font-size:17px;font-weight:800;color:var(--ink);margin-bottom:8px;
  }
.pink-card p {
    font-size:14px;line-height:1.85;color:var(--ink);opacity:.75;margin:0;
  }
.timeline-item {position:relative;padding-bottom:26px;}
.timeline-item:last-child {padding-bottom:0;}
.timeline-item::before {
    content:"";position:absolute;left:-31px;top:5px;
    width:12px;height:12px;border-radius:50%;
    background:var(--main);box-shadow:0 0 0 4px var(--soft);
  }
.timeline-item h4 {
    font-size:15.5px;font-weight:800;color:var(--ink);margin-bottom:6px;
  }
.timeline-item p {
    font-size:13.5px;line-height:1.85;color:var(--ink);opacity:.72;margin:0;
  }
.stat-strip {
    background:linear-gradient(120deg,var(--main),#f9a8d4 55%,var(--accent));
    border-radius:20px;padding:26px 20px;color:#fff;
  }
.stat-strip .num {
    font-size:clamp(20px,3vw,30px);font-weight:900;letter-spacing:-.5px;line-height:1.1;
  }
.stat-strip .lbl {
    font-size:12.5px;opacity:.92;margin-top:6px;letter-spacing:.4px;
  }
.faq-item {
    border:1px solid var(--line);border-radius:14px;background:#fff;
    padding:18px 20px;margin-bottom:12px;
  }
.faq-item h4 {
    font-size:15px;font-weight:800;color:var(--ink);margin-bottom:8px;
  }
.faq-item h4 span {color:var(--main);margin-right:8px;}
.faq-item p {
    font-size:13.5px;line-height:1.85;color:var(--ink);opacity:.75;margin:0;
  }
.note-box {
    background:var(--soft);
    border:1px dashed var(--line);
    border-radius:16px;padding:20px 22px;
  }
.note-box p {
    font-size:13.5px;line-height:1.9;color:var(--ink);opacity:.8;margin:0;
  }
.cta-row {
    display:flex;flex-wrap:wrap;gap:12px;margin-top:20px;
  }
.btn-pink {
    display:inline-flex;align-items:center;gap:8px;
    background:var(--main);color:#fff;text-decoration:none;
    padding:12px 22px;border-radius:999px;font-weight:700;font-size:14px;
    transition:transform .16s ease, box-shadow .16s ease;
    box-shadow:0 8px 20px rgba(244,114,182,.28);
  }
.btn-pink:hover {transform:translateY(-2px);color:#fff;box-shadow:0 12px 26px rgba(244,114,182,.36);}
.btn-ghost {
    display:inline-flex;align-items:center;gap:8px;
    background:#fff;color:var(--ink);text-decoration:none;
    padding:12px 22px;border-radius:999px;font-weight:700;font-size:14px;
    border:1px solid var(--line);transition:background .16s ease;
  }
.btn-ghost:hover {background:var(--soft);color:var(--ink);}
.sec-title {
    font-size:clamp(20px,2.7vw,28px);font-weight:900;color:var(--ink);
    letter-spacing:-.3px;margin-bottom:8px;
  }
.sec-desc {
    font-size:14px;line-height:1.85;color:var(--ink);opacity:.7;margin-bottom:26px;max-width:720px;
  }

/* --- 子页面追加 --- */
.rank-tabs {display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 26px;}
.rank-tabs a {padding:8px 18px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:14px;font-weight:600;text-decoration:none;transition:.2s;}
.rank-tabs a:hover {background:var(--soft);border-color:var(--main);}
.rank-list {display:flex;flex-direction:column;gap:12px;}
.rank-no.top1 {background:linear-gradient(135deg,#f472b6,#fbbf24);color:#fff;}
.rank-no.top2 {background:linear-gradient(135deg,#f9a8d4,#f472b6);color:#fff;}
.rank-no.top3 {background:linear-gradient(135deg,#fbbf24,#f9a8d4);color:#fff;}
.rank-info {flex:1;min-width:0;}
.rank-info h4 {margin:0 0 4px;font-size:16px;font-weight:700;color:var(--ink);}
.rank-info h4 a {color:inherit;text-decoration:none;}
.rank-info h4 a:hover {color:var(--main);}
.rank-meta {font-size:13px;color:#a07b88;display:flex;flex-wrap:wrap;gap:12px;}
.rank-score {flex:0 0 auto;text-align:right;}
.rank-score b {display:block;font-size:20px;font-weight:800;color:var(--main);}
.rank-score span {font-size:12px;color:#a07b88;}
.rank-tag {display:inline-block;font-size:12px;padding:2px 8px;border-radius:6px;background:var(--soft);color:var(--main);font-weight:600;margin-left:6px;}
.rank-note {background:#fff;border:1px dashed var(--line);border-radius:16px;padding:18px 22px;font-size:14px;color:#7a5560;line-height:1.9;}
.rank-info h4 {font-size:15px;}
.rank-score {flex:0 0 100%;text-align:left;}

/* --- 子页面追加 --- */
/* 本页专属少量样式，主体复用站点 CSS */
  .legal-hero {
    padding: 54px 0 34px;
    background:
      radial-gradient(900px 320px at 12% -10%, rgba(244,114,182,.28), transparent 60%),
      radial-gradient(760px 300px at 88% 0%, rgba(251,191,36,.22), transparent 62%);
    border-bottom: 1px solid var(--line);
  }
.legal-hero h1 {
    font-weight: 900;
    font-size: clamp(1.7rem, 4.2vw, 2.9rem);
    line-height: 1.22;
    margin: 0 0 14px;
    color: var(--ink);
    letter-spacing: -.5px;
  }
.legal-hero p.lead-line {
    color: #7b5560;
    font-size: 1.02rem;
    max-width: 760px;
    margin: 0;
  }
.legal-meta {
    margin-top: 20px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }
.legal-chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: var(--soft);
    border: 1px solid var(--line);
    color: var(--ink);
    border-radius: 999px;
    padding: 6px 14px;
    font-size: .82rem;
    font-weight: 600;
  }
.legal-chip i { color: var(--main); }
.legal-wrap {
    padding: 42px 0 20px;
  }
.legal-toc {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 20px 14px;
    position: sticky;
    top: 92px;
    box-shadow: 0 10px 30px rgba(244,114,182,.08);
  }
.legal-toc h3 {
    font-size: .95rem;
    font-weight: 800;
    color: var(--ink);
    margin: 0 0 12px;
    display: flex;
    align-items: center;
    gap: 8px;
  }
.legal-toc h3 i { color: var(--accent); }
.legal-toc ol {
    margin: 0;
    padding-left: 18px;
    font-size: .88rem;
    line-height: 2;
  }
.legal-toc ol a {
    color: #7b5560;
    text-decoration: none;
    border-bottom: 1px dashed transparent;
  }
.legal-toc ol a:hover {
    color: var(--main);
    border-bottom-color: var(--main);
  }
.legal-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 28px 26px;
    margin-bottom: 22px;
    box-shadow: 0 12px 34px rgba(244,114,182,.07);
    scroll-margin-top: 100px;
  }
.legal-card h2 {
    font-size: 1.22rem;
    font-weight: 800;
    color: var(--ink);
    margin: 0 0 14px;
    display: flex;
    align-items: center;
    gap: 10px;
    line-height: 1.4;
  }
.legal-card h2 .num {
    flex: none;
    width: 30px; height: 30px;
    border-radius: 9px;
    background: linear-gradient(135deg, var(--main), #f9a8d4);
    color: #fff;
    font-size: .9rem;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
.legal-card h3 {
    font-size: 1rem;
    font-weight: 700;
    color: var(--ink);
    margin: 20px 0 8px;
  }
.legal-card p,
  .legal-card li {
    color: #6d4a55;
    font-size: .94rem;
    line-height: 1.95;
  }
.legal-card ul {
    padding-left: 20px;
    margin: 8px 0 0;
  }
.legal-card ul li::marker { color: var(--main); }
.legal-card strong { color: var(--ink); }
.legal-note {
    background: var(--soft);
    border-left: 4px solid var(--main);
    border-radius: 10px;
    padding: 14px 16px;
    margin: 16px 0 0;
    font-size: .9rem;
    color: #6d4a55;
    line-height: 1.9;
  }
.legal-note i { color: var(--accent); margin-right: 6px; }
.legal-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 14px;
    font-size: .9rem;
    border: 1px solid var(--line);
    border-radius: 12px;
    overflow: hidden;
  }
.legal-table th {
    background: var(--soft);
    color: var(--ink);
    text-align: left;
    padding: 12px 14px;
    font-weight: 700;
    border-bottom: 1px solid var(--line);
  }
.legal-table td {
    padding: 12px 14px;
    color: #6d4a55;
    border-bottom: 1px solid var(--line);
    line-height: 1.8;
    vertical-align: top;
  }
.legal-table tr:last-child td { border-bottom: none; }
.legal-cta {
    background: linear-gradient(135deg, #fff0f6, #fff8ea);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 26px;
    text-align: center;
  }
.legal-cta h3 {
    color: var(--ink);
    font-weight: 800;
    font-size: 1.1rem;
    margin: 0 0 10px;
  }
.legal-cta p {
    color: #7b5560;
    font-size: .92rem;
    margin: 0 0 16px;
  }
.legal-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: linear-gradient(135deg, var(--main), #fb7fb8);
    color: #fff;
    border: none;
    border-radius: 999px;
    padding: 11px 26px;
    font-weight: 700;
    font-size: .92rem;
    text-decoration: none;
    box-shadow: 0 10px 24px rgba(244,114,182,.32);
    margin: 4px 6px;
  }
.legal-btn.ghost {
    background: #fff;
    color: var(--ink);
    border: 1px solid var(--line);
    box-shadow: none;
  }
.legal-btn:hover { color: #fff; opacity: .92; }
.legal-btn.ghost:hover { color: var(--main); }

/* --- 子页面追加 --- */
.map-hero {padding:52px 0 26px;}
.map-hero h1 {font-size:clamp(24px,3.4vw,40px);font-weight:900;line-height:1.25;margin:0 0 14px;}
.map-hero p {color:var(--ink);opacity:.78;max-width:760px;line-height:1.9;margin:0;font-size:15px;}
.crumb {font-size:13px;color:var(--ink);opacity:.6;margin-bottom:14px;}
.crumb a {color:var(--main);text-decoration:none;}
.crumb a:hover {text-decoration:underline;}
.map-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;margin-top:26px;}
.map-card {background:var(--soft);border:1px solid var(--line);border-radius:16px;padding:22px 22px 18px;transition:.25s;}
.map-card:hover {transform:translateY(-3px);box-shadow:0 14px 30px rgba(244,114,182,.16);border-color:var(--main);}
.map-card h3 {font-size:17px;font-weight:800;margin:0 0 6px;color:var(--ink);display:flex;align-items:center;gap:9px;}
.map-card h3 i {color:var(--main);font-size:15px;}
.map-card .desc {font-size:13px;color:var(--ink);opacity:.7;line-height:1.75;margin:0 0 14px;}
.map-links {list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}
.map-links li a {display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px;
    color:var(--ink);text-decoration:none;background:#fff;border:1px solid var(--line);border-radius:10px;
    padding:9px 13px;transition:.2s;}
.map-links li a:hover {background:#fff;border-color:var(--main);color:var(--main);transform:translateX(3px);}
.map-links li a i {font-size:11px;opacity:.5;}
.map-links li a:hover i {opacity:1;color:var(--main);}
.tag-mini {font-size:11px;background:var(--accent);color:#5a3a05;border-radius:999px;padding:2px 8px;font-weight:700;}
.note-box h3 {font-size:16px;font-weight:800;margin:0 0 12px;color:var(--ink);}
.note-box ul {margin:0;padding-left:20px;color:var(--ink);font-size:14px;line-height:2;opacity:.85;}
.note-box a {color:var(--main);text-decoration:none;}
.note-box a:hover {text-decoration:underline;}