/* 中法街 — composants (les jetons de couleur/typo sont dans charte.css) */
main { min-height:60vh; }
.top .btn { padding:8px 20px; }
.authbox { display:flex; align-items:center; gap:10px; flex:none; }
.userchip { font-size:14px; color:var(--mo); white-space:nowrap; max-width:120px; overflow:hidden; text-overflow:ellipsis; }
.logoutform { display:inline-flex; } .logoutform button { background:none; border:1px solid var(--line); border-radius:99px; padding:5px 14px; font:inherit; font-size:13px; color:var(--muted); cursor:pointer; }
.logoutform button:hover { border-color:var(--zhusha); color:var(--zhusha-text); }
@media (max-width:560px) { .userchip { max-width:70px; font-size:13px; } .authbox .btn { padding:6px 14px; font-size:13px; } }
.top { flex-wrap:wrap; row-gap:10px; } .top > a:first-child { flex:none; } nav { flex:1 1 auto; } nav a { white-space:nowrap; flex:none; }
.top .searchbox.small { flex:none; }
nav a.on::after { content:""; display:block; height:2px; background:var(--zhusha); margin-top:2px; border-radius:2px; }
.searchbox { display:flex; border:1.5px solid var(--mo); border-radius:8px; overflow:hidden; background:var(--card); }
.searchbox input { flex:1; border:0; padding:14px 18px; font:inherit; background:transparent; color:var(--mo); outline:none; min-width:0; }
.searchbox button { border:0; background:var(--mo); color:var(--xuan); padding:0 26px; font:inherit; font-weight:600; cursor:pointer; }
.searchbox.big { max-width:560px; box-shadow:0 10px 26px rgba(60,40,10,.08); }
.searchbox.small { max-width:340px; } .searchbox.small input { padding:8px 12px; font-size:14px; } .searchbox.small button { padding:0 14px; font-size:14px; }

.hero { display:grid; grid-template-columns:1.15fr .85fr; gap:40px; align-items:center; padding:64px 0 46px; position:relative; }
.hero h1 { font-size:54px; margin:18px 0 16px; } .hero h1 em { font-style:normal; color:var(--zhusha-text); }
.hero p.lead { font-size:18px; color:var(--muted); max-width:34em; margin:0 0 26px; }
.chips { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; } .chip { padding:4px 14px; border:1px solid var(--line); border-radius:99px; background:var(--card); font-size:14px; color:var(--mo); } .chip:hover { border-color:var(--zhusha); color:var(--zhusha-text); }
.scroll { position:relative; background:var(--card); border:1px solid var(--line); border-radius:6px; padding:26px 26px 22px 30px; box-shadow:0 18px 40px rgba(60,40,10,.12); }
.scroll::before,.scroll::after { content:""; position:absolute; left:-8px; right:-8px; height:12px; background:linear-gradient(#3a2f26,#1A1613); border-radius:6px; } .scroll::before { top:-8px; } .scroll::after { bottom:-8px; }
.scroll h3 { font-size:20px; margin-bottom:8px; } .scroll ul { margin:0; padding:0; } .scroll li { padding:9px 0; border-bottom:1px dashed var(--line); list-style:none; display:flex; gap:10px; align-items:baseline; } .scroll li:last-child { border:0; } .scroll li a { color:var(--mo); }
.ghost { position:absolute; right:-30px; top:6px; height:340px; opacity:.05; pointer-events:none; }

h2.sec { font-size:28px; display:flex; align-items:center; gap:14px; margin:54px 0 20px; } h2.sec a.more { font-family:var(--sans); font-weight:400; font-size:14px; margin-left:auto; color:var(--muted); }
.pillars { display:grid; grid-template-columns:repeat(auto-fill,minmax(168px,1fr)); gap:14px; }
.pillars .card { padding:20px; color:var(--mo); transition:transform .15s, box-shadow .15s; display:flex; flex-direction:column; align-items:flex-start; } .pillars .card:hover { transform:translateY(-3px); box-shadow:0 14px 30px rgba(60,40,10,.12); }
.pillars h3 { font-size:20px; margin:14px 0 6px; } .pillars p { margin:0; font-size:14px; color:var(--muted); line-height:1.6; }
.pillars .n { font-size:13px; color:var(--zhusha-text); margin-top:auto; padding-top:10px; display:block; }
.seal { white-space:nowrap; flex:none; }
.seal.dai { background:var(--daiqing); } .seal.qing { background:var(--qingci); }

.news { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.ncard { padding:0; overflow:hidden; display:flex; flex-direction:column; color:var(--mo); transition:transform .15s; } .ncard:hover { transform:translateY(-3px); }
.ncard .img { height:96px; position:relative; } .ncard .img.a { background:linear-gradient(135deg,#2F4858,#5E8C7A); } .ncard .img.b { background:linear-gradient(135deg,#8a2b20,#DE150A); } .ncard .img.c { background:linear-gradient(135deg,#B08D57,#e6d3ac); } .ncard .img.d { background:linear-gradient(135deg,#1A1613,#3a2f26); }
.ncard .img::after { content:attr(data-c); position:absolute; right:14px; bottom:-10px; font-family:var(--serif); font-size:78px; color:rgba(255,255,255,.14); line-height:1; }
.promo-badge { position:absolute; left:10px; top:10px; background:var(--zhusha); color:#fff; font-size:12px; padding:3px 10px; border-radius:99px; z-index:1; }
.ncard .in { padding:16px 20px 18px; display:flex; flex-direction:column; gap:8px; flex:1; } .ncard h3 { font-size:18px; line-height:1.5; margin:0; }
.ncard .sum { font-size:14px; color:var(--muted); margin:0; line-height:1.7; }
.list .row { display:flex; gap:16px; padding:18px 0; border-bottom:1px solid var(--line); align-items:flex-start; } .list .row:last-child { border:0; }
.list h3 { font-size:19px; line-height:1.5; margin:0 0 4px; } .list h3 a { color:var(--mo); } .list h3 a:hover { color:var(--zhusha-text); } .list p { margin:2px 0 0; color:var(--muted); font-size:15px; }

.events { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.ev { display:flex; gap:18px; align-items:center; color:var(--mo); transition:transform .15s; } .ev:hover { transform:translateY(-2px); }
.ev h3 { font-size:18px; margin:0; line-height:1.45; }
.date { flex:none; width:64px; text-align:center; border:1.5px solid var(--zhusha); border-radius:6px; color:var(--zhusha-text); padding:6px 0 4px; background:var(--card); }
.date b { display:block; font-family:var(--serif); font-size:26px; line-height:1.1; } .date span { font-size:12px; letter-spacing:.1em; }
.month { font-family:var(--serif); font-size:22px; margin:34px 0 6px; display:flex; align-items:center; gap:12px; } .month::after { content:""; flex:1; height:1px; background:var(--line); }
.filters { display:flex; flex-wrap:wrap; gap:8px; margin:6px 0 10px; } .filters small { opacity:.6; } .filters a { padding:5px 14px; border:1px solid var(--line); border-radius:99px; background:var(--card); color:var(--mo); font-size:15px; } .filters a.on { background:var(--mo); color:var(--xuan); border-color:var(--mo); }

.topic { margin:38px 0 6px; } .topic h2 { font-size:24px; display:flex; align-items:center; gap:12px; margin:0 0 16px; }
.gcards { display:grid; grid-template-columns:repeat(auto-fill,minmax(310px,1fr)); gap:18px; }
.gcard { display:flex; flex-direction:column; gap:10px; } .gcard h3 { font-size:19px; line-height:1.5; } .gcard p { margin:0; color:var(--muted); font-size:15px; }
.gcard .foot { margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:13px; color:var(--muted); padding-top:8px; }
.emerg { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:12px; } .emerg div { text-align:center; padding:14px 8px; border:1px solid var(--line); border-radius:8px; background:var(--card); }
.emerg b { display:block; font-family:var(--serif); font-size:30px; color:var(--zhusha-text); line-height:1.2; } .emerg span { font-size:14px; color:var(--muted); }
.notice { border-left:3px solid var(--jin); background:var(--card); padding:12px 16px; border-radius:0 8px 8px 0; color:var(--muted); font-size:14px; margin:18px 0; }
.pager { display:flex; gap:12px; justify-content:center; align-items:center; margin:34px 0; color:var(--muted); } .pager a { padding:8px 18px; border:1px solid var(--line); border-radius:6px; background:var(--card); color:var(--mo); }
.pagehead { padding:44px 0 6px; } .pagehead h1 { font-size:40px; display:flex; align-items:center; gap:14px; } .pagehead p { color:var(--muted); font-size:17px; margin:8px 0 0; max-width:40em; }
.dl { display:grid; grid-template-columns:max-content minmax(0,1fr); gap:10px 24px; margin:18px 0; } .dl dt { color:var(--muted); } .dl dd { margin:0; overflow-wrap:anywhere; }
.prose h2 { font-size:22px; margin:28px 0 6px; } .prose p { margin:4px 0; }
.crumb { font-size:14px; color:var(--muted); margin:26px 0 0; } .crumb a { color:var(--muted); }

footer { margin-top:70px; background:var(--mo-deep); color:#cfc6b6; padding:38px 0 30px; position:relative; }
footer::before { content:""; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--jin),transparent 60%); }
footer .cols { display:flex; gap:60px; align-items:flex-start; } footer img { height:52px; } footer a { color:#cfc6b6; } footer a:hover { color:#fff; } footer small { color:#8f8676; display:block; margin-top:26px; }
.bottomnav { display:none; }
.search-btn { flex:none; padding:8px 20px; }
@media (max-width:1450px) { .top { gap:16px; } nav a { padding:8px 10px; font-size:15px; } }
@media (max-width:1050px) { nav a { padding:8px 7px; font-size:14.5px; } }

@media (max-width:820px) {
  .wrap { padding:0 18px; }
  .top { gap:10px; height:62px; } .top img.logo { height:36px; } nav { display:none; } .search-btn { margin-left:auto; padding:7px 16px; font-size:14px; }
  .hero { grid-template-columns:1fr; padding:30px 0 26px; gap:26px; } .hero h1 { font-size:34px; margin:14px 0 12px; } .hero p.lead { font-size:16px; } .ghost { height:200px; right:-30px; top:0; }
  .pillars { grid-template-columns:repeat(2,1fr); gap:12px; } .pillars .card { padding:16px; }
  .news, .events { grid-template-columns:1fr; } .emerg { grid-template-columns:repeat(2,1fr); }
  h2.sec { font-size:24px; margin:38px 0 14px; } .pagehead h1 { font-size:32px; } .dl { grid-template-columns:minmax(0,1fr); gap:2px; } .dl dt { margin-top:10px; }
  footer .cols { flex-direction:column; gap:18px; } footer { padding-bottom:96px; }
  .bottomnav { display:flex; position:fixed; left:0; right:0; bottom:0; background:rgba(251,248,241,.96); border-top:1px solid var(--line); padding:8px 6px 14px; justify-content:space-around; z-index:9; backdrop-filter:blur(8px); }
  .bottomnav a { display:flex; flex-direction:column; align-items:center; gap:2px; font-size:12px; color:var(--muted); }
  .bottomnav .seal { width:30px; height:30px; padding:0; font-size:15px; border-radius:5px; background:transparent; color:var(--mo); box-shadow:inset 0 0 0 1.5px var(--line); }
  .bottomnav a.on { color:var(--zhusha-text); } .bottomnav a.on .seal { background:var(--zhusha); color:#fff; box-shadow:none; }
}
.monogram { display:inline-flex; align-items:center; height:44px; padding:0 14px; border:1.5px solid var(--mo); border-radius:8px; font-family:var(--serif); font-weight:700; font-size:18px; color:var(--mo); background:#fff; align-self:flex-start; margin-bottom:4px; }
.mapbtn { background:var(--zhusha) !important; color:#fff !important; border-color:var(--zhusha) !important; margin-left:auto; }
.foodmap { height:70vh; min-height:420px; border:1px solid var(--line); border-radius:10px; overflow:hidden; margin-top:14px; z-index:0; }
.authbox { position:relative; }
.usermenu summary { list-style:none; cursor:pointer; display:flex; } .usermenu summary::-webkit-details-marker { display:none; }
.avatar { width:40px; height:40px; border-radius:50%; object-fit:cover; border:1.5px solid var(--line); background:var(--card); display:block; }
.avatar.ini { display:flex; align-items:center; justify-content:center; background:var(--mo); color:var(--xuan); font-family:var(--serif); font-weight:700; font-size:18px; border-color:var(--mo); }
.usermenu summary:hover .avatar { border-color:var(--zhusha); }
.usermenu .menu { position:absolute; right:0; top:50px; min-width:210px; background:var(--card); border:1px solid var(--line); border-radius:10px; box-shadow:0 14px 34px rgba(60,40,10,.18); padding:8px; z-index:20; }
.usermenu .who { padding:8px 10px 10px; border-bottom:1px solid var(--line); margin-bottom:6px; } .usermenu .who b { display:block; font-size:15px; } .usermenu .who small { color:var(--muted); font-size:12px; word-break:break-all; }
.usermenu .menu a, .usermenu .menu button { display:block; width:100%; text-align:left; padding:9px 10px; border-radius:6px; color:var(--mo); font:inherit; font-size:14px; background:none; border:0; cursor:pointer; }
.usermenu .menu a:hover, .usermenu .menu button:hover { background:rgba(222,21,10,.07); color:var(--zhusha-text); }
.usermenu .menu form { margin:0; }
.moregrid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:16px; }
.moregrid .card { display:flex; flex-direction:column; gap:6px; padding:16px; color:var(--mo); } .moregrid b { font-family:var(--serif); font-size:18px; } .moregrid small { color:var(--muted); font-size:13px; }
.morelinks { display:flex; flex-wrap:wrap; gap:10px 18px; margin:22px 0; font-size:14px; } .morelinks a { color:var(--muted); }
@media (min-width:821px) { .moregrid { grid-template-columns:repeat(5,1fr); } }
@media (max-width:820px) { .catgrid { grid-template-columns:1fr 1fr !important; gap:10px !important; } .catgrid p { display:none; } .catgrid .card { padding:14px; gap:6px; } .catgrid h3 { font-size:17px; } }
.dz { border:2px dashed var(--line); border-radius:10px; padding:14px; background:var(--card); cursor:pointer; transition:border-color .15s, background .15s; }
.dz.over { border-color:var(--zhusha); background:rgba(222,21,10,.05); }
.dz-hint { text-align:center; color:var(--muted); padding:22px 8px; } .dz-hint small { opacity:.8; }
.dz-list { display:flex; flex-wrap:wrap; gap:10px; }
.dz-item { position:relative; width:110px; height:110px; border-radius:8px; overflow:hidden; border:1px solid var(--line); background:#fff; cursor:grab; }
.dz-item img { width:100%; height:100%; object-fit:cover; display:block; }
.dz-add { display:flex; align-items:center; justify-content:center; font-size:34px; color:var(--muted); cursor:pointer; border-style:dashed; }
.dz-cover { position:absolute; left:6px; top:6px; background:var(--zhusha); color:#fff; font-size:11px; padding:2px 8px; border-radius:99px; }
.dz-x { position:absolute; right:5px; top:5px; width:24px; height:24px; border-radius:50%; border:0; background:rgba(26,22,19,.75); color:#fff; font-size:16px; line-height:1; cursor:pointer; }
.dealgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:16px; }
.dealcard { display:flex; flex-direction:column; padding:0; overflow:hidden; color:var(--mo); transition:transform .15s; } .dealcard:hover { transform:translateY(-3px); }
.dimg { position:relative; height:150px; background:linear-gradient(135deg,#2F4858,#5E8C7A); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.7); font-family:var(--serif); font-size:22px; }
.dimg img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; } .dimg .promo-badge { z-index:1; font-style:normal; }
.dbody { padding:14px 16px 16px; display:flex; flex-direction:column; gap:6px; flex:1; } .dbody h3 { font-size:16px; line-height:1.5; margin:0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.dprice { margin:0; } .dprice b { color:var(--zhusha-text); font-size:20px; } .dprice s { color:var(--muted); font-size:14px; }
.plan-price { margin:2px 0 0; font-size:15px; } .plan-price b { font-size:26px; font-family:var(--serif, inherit); color:var(--zhu, #b3402a); }
.cmp { display:flex; flex-direction:column; } .cmprow { display:grid; grid-template-columns:1fr auto auto; gap:6px 14px; align-items:baseline; padding:11px 2px; border-bottom:1px solid var(--line, #e6dcc8); color:var(--mo); text-decoration:none; }
.cmprow:last-child { border-bottom:0; } .cmprow .cd { color:var(--muted); font-size:13px; } .cmprow .cp b { font-size:19px; color:var(--zhu, #b3402a); } .cmprow small { color:var(--muted); }
@media (max-width:640px) { .cmprow { grid-template-columns:1fr auto; } .cmprow .cd { grid-column:1; grid-row:2; } .cmprow .cp { grid-row:1 / span 2; grid-column:2; } }

.emergbar { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 18px; margin-top:16px; padding:10px 16px; border:1px solid var(--line); border-radius:8px; background:var(--card); font-size:14px; color:var(--muted); }
.emergbar b { color:var(--mo); } .emergbar span i { font-style:normal; font-family:var(--serif); font-weight:700; font-size:20px; color:var(--zhusha-text); margin-right:5px; } .emergbar em { font-style:normal; margin-left:auto; font-size:13px; }
.gtopics { margin-top:8px; }
.gtopic { break-inside:avoid; margin:0 0 22px; border:1px solid var(--line); border-radius:10px; background:var(--card); padding:6px 18px 4px; }
.gtopic h2 { font-size:20px; display:flex; align-items:center; gap:10px; margin:12px 0 4px; }
.glist { display:grid; grid-template-columns:1fr 1fr; column-gap:32px; } .grow { padding:11px 0; border-top:1px solid var(--line); } .glist .grow:nth-child(-n+2) { border-top:0; }
@media (max-width:820px) { .glist { grid-template-columns:1fr; } .glist .grow:nth-child(2) { border-top:1px solid var(--line); } }
.gmain { display:block; color:var(--mo); text-decoration:none; } .gmain b { display:block; font-size:16px; line-height:1.5; } .gmain:hover b { color:var(--zhusha-text); }
.gsum { display:block; font-size:14px; color:var(--muted); line-height:1.65; margin-top:2px; }
.gmeta { display:flex; justify-content:space-between; gap:10px; margin-top:4px; font-size:12.5px; color:var(--muted); } .gmeta a { color:var(--muted); margin-left:10px; } .gmeta a.go { color:var(--zhusha-text); }
@media (max-width:820px) { .gtopics { column-count:1; } .emergbar em { margin-left:0; width:100%; } }

.tabs { display:flex; gap:6px; margin:18px 0 0; box-shadow:inset 0 -2px 0 var(--line); overflow-x:auto; overflow-y:hidden; scrollbar-width:none; } .tabs::-webkit-scrollbar { display:none; }
.tab { padding:10px 20px; font-size:17px; color:var(--muted); text-decoration:none; border-bottom:3px solid transparent; white-space:nowrap; font-weight:600; flex:none; }
.tab:hover { color:var(--mo); } .tab.on { color:var(--zhusha-text); border-bottom-color:var(--zhusha-text); } .tab.more { margin-left:auto; font-size:14px; font-weight:400; align-self:center; padding:6px 4px; }
.tabpanel[hidden] { display:none; } .tabpanel > h2:first-child { display:none; }
.tabpanel > h2.show { display:flex; }
.tabpanel { margin-top:22px; }

.tab small { font-size:12px; color:var(--muted); font-weight:400; margin-left:2px; }
@media (max-width:520px) { .tab { padding:10px 13px; font-size:16px; } }
html { scrollbar-gutter:stable; }

.refilter { display:flex; flex-wrap:wrap; gap:10px 12px; align-items:flex-end; margin-top:14px; padding:12px 14px; border:1px solid var(--line); border-radius:10px; background:var(--card); }
.refilter label { display:flex; flex-direction:column; gap:3px; font-size:12.5px; color:var(--muted); } .refilter input, .refilter select { box-sizing:border-box; width:112px; padding:8px 10px; border:1.5px solid var(--line); border-radius:8px; background:#fff; color:var(--mo); font:inherit; font-size:14px; } .refilter select { width:132px; }
.viewsw { margin-left:auto; display:flex; border:1.5px solid var(--line); border-radius:8px; overflow:hidden; } .viewsw a { padding:8px 14px; font-size:14px; color:var(--muted); text-decoration:none; } .viewsw a.on { background:var(--mo); color:#fff; }
.pgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:18px; margin-top:16px; }
.pcard { display:flex; flex-direction:column; border:1px solid var(--line); border-radius:10px; background:var(--card); overflow:hidden; color:var(--mo); text-decoration:none; transition:box-shadow .15s; } .pcard:hover { box-shadow:0 6px 18px rgba(0,0,0,.12); }
.pimg { position:relative; aspect-ratio:4/3; background:linear-gradient(135deg,#d9cfbb,#b9ae98); display:flex; align-items:center; justify-content:center; color:#fff; font-family:var(--serif); font-size:22px; } .pimg img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.pcnt, .pbadge { position:absolute; font-style:normal; font-size:12px; padding:2px 8px; border-radius:4px; background:rgba(0,0,0,.6); color:#fff; } .pcnt { right:8px; bottom:8px; } .pbadge { left:8px; top:8px; background:var(--zhusha-text); }
.pbody { padding:12px 14px 14px; display:flex; flex-direction:column; gap:3px; } .pbody h3 { font-size:16px; line-height:1.45; margin:0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; } .pbody p { margin:0; }
.pspec { font-size:14px; color:var(--mo); font-weight:600; } .pprice { margin-top:6px !important; display:flex; align-items:baseline; gap:8px; } .pprice b { font-size:20px; color:var(--zhusha-text); } .pprice small { color:var(--muted); font-size:12.5px; }
@media (max-width:520px) { .pgrid { grid-template-columns:1fr; } .refilter input, .refilter select { width:100%; } .refilter label { flex:1 1 42%; } .viewsw { margin-left:0; } }
.re-wrap { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:28px; margin-top:14px; align-items:start; }
.re-gal .gal-main { position:relative; display:block; aspect-ratio:16/9; border-radius:12px; overflow:hidden; background:linear-gradient(135deg,#d9cfbb,#b9ae98); } .gal-main img { width:100%; height:100%; object-fit:cover; display:block; } .gal-main em { position:absolute; right:10px; bottom:10px; font-style:normal; font-size:13px; color:#fff; background:rgba(0,0,0,.6); padding:3px 10px; border-radius:5px; }
.gal-empty { display:flex; align-items:center; justify-content:center; color:#fff; font-family:var(--serif); font-size:30px; }
.gal-thumbs { display:flex; gap:8px; margin-top:8px; overflow-x:auto; } .gal-thumbs button { flex:none; width:96px; height:72px; padding:0; border:2px solid transparent; border-radius:8px; overflow:hidden; background:none; cursor:pointer; opacity:.75; } .gal-thumbs button.on { border-color:var(--zhusha-text); opacity:1; } .gal-thumbs img { width:100%; height:100%; object-fit:cover; display:block; }
.re-title { margin-top:16px; } .re-badges { display:flex; gap:6px; flex-wrap:wrap; margin:0 0 8px; } .re-title h1 { display:block; font-size:28px; line-height:1.4; margin:0; } .re-loc { margin:6px 0 0; color:var(--muted); } .re-loc a { margin-left:10px; font-size:14px; color:var(--zhusha-text); }
.re-facts { display:flex; flex-wrap:wrap; gap:0; margin-top:18px; border:1px solid var(--line); border-radius:10px; background:var(--card); } .re-facts div { flex:1 1 90px; text-align:center; padding:14px 8px; border-right:1px solid var(--line); } .re-facts div:last-child { border-right:0; } .re-facts b { display:block; font-family:var(--serif); font-size:24px; line-height:1.2; } .re-facts span { font-size:13px; color:var(--muted); }
.re-sec { margin-top:26px; } .re-sec h2 { font-size:20px; margin:0 0 10px; }
.re-feats { display:flex; flex-wrap:wrap; gap:8px; } .re-feats span { padding:6px 14px; border:1px solid var(--line); border-radius:20px; background:var(--card); font-size:14px; }
.dpe-bar { display:flex; gap:4px; max-width:520px; } .dpe-bar i { flex:1; text-align:center; font-style:normal; font-weight:700; color:#fff; padding:6px 0; font-size:14px; opacity:.55; border-radius:4px; } .dpe-bar i.on { opacity:1; transform:scale(1.18); box-shadow:0 2px 8px rgba(0,0,0,.3); }
.dpe-A { background:#319834; } .dpe-B { background:#33cc31; } .dpe-C { background:#9fcf2a; } .dpe-D { background:#e6c800; color:#333 !important; } .dpe-E { background:#f2a900; } .dpe-F { background:#ef7d1c; } .dpe-G { background:#d9261c; }
.re-facts b[class^=dpe-] { display:inline-block; min-width:34px; padding:0 8px; border-radius:6px; color:#fff; }
.re-side { position:sticky; top:84px; } .re-card { border:1px solid var(--line); border-radius:12px; background:var(--card); padding:18px 20px; box-shadow:0 4px 16px rgba(0,0,0,.06); }
.re-price { font-family:var(--serif); font-size:28px; font-weight:700; color:var(--zhusha-text); line-height:1.3; } .re-pm2 { color:var(--muted); font-size:14px; margin-top:2px; }
.re-pub { margin-top:14px; padding-top:14px; border-top:1px solid var(--line); } .re-pub b { margin-right:8px; } .re-contact { margin-top:14px; } .re-contact p { margin:4px 0; }
@media (max-width:900px) { .re-wrap { grid-template-columns:1fr; } .re-side { position:static; order:-1; } .re-title h1 { font-size:24px; } }
.re-facts span { display:block; margin-top:2px; }
.lb-lock { overflow:hidden; scrollbar-gutter:auto; }
.lb-overlay { position:fixed; inset:0; z-index:5000; background:#0c0c0c; display:flex; flex-direction:column; } .lb-overlay[hidden] { display:none; }
.lb-top { display:flex; align-items:center; gap:12px; padding:12px 16px; color:#eee; } .lb-cnt { font-size:15px; opacity:.85; margin-right:auto; }
.lb-back, .lb-x { background:rgba(255,255,255,.12); color:#fff; border:0; border-radius:8px; padding:8px 16px; font:inherit; font-size:15px; cursor:pointer; } .lb-back:hover, .lb-x:hover { background:rgba(255,255,255,.22); } .lb-x { padding:8px 14px; }
.lb-stage { flex:1; min-height:0; display:flex; align-items:center; justify-content:center; padding:0 64px; } .lb-stage img { max-width:100%; max-height:100%; object-fit:contain; border-radius:4px; }
.lb-nav { position:absolute; top:50%; transform:translateY(-50%); width:48px; height:72px; border:0; border-radius:8px; background:rgba(255,255,255,.14); color:#fff; font-size:38px; line-height:1; cursor:pointer; z-index:2; } .lb-nav:hover { background:rgba(255,255,255,.28); } .lb-prev { left:10px; } .lb-next { right:10px; } .lb-single .lb-nav, .lb-single .lb-strip { display:none; }
.lb-strip { display:flex; gap:8px; padding:12px 16px 16px; overflow-x:auto; justify-content:center; } .lb-strip button { flex:none; width:84px; height:60px; padding:0; border:2px solid transparent; border-radius:6px; overflow:hidden; background:none; cursor:pointer; opacity:.6; } .lb-strip button.on { border-color:#fff; opacity:1; } .lb-strip img { width:100%; height:100%; object-fit:cover; display:block; }
.gal-arrow { position:absolute; top:50%; transform:translateY(-50%); width:40px; height:56px; border:0; border-radius:8px; background:rgba(0,0,0,.45); color:#fff; font-size:30px; line-height:1; cursor:pointer; z-index:2; } .gal-arrow:hover { background:rgba(0,0,0,.65); } .gal-prev { left:10px; } .gal-next { right:10px; } .re-gal { position:relative; }
.re-gal .gal-main { cursor:zoom-in; }
@media (max-width:600px) { .lb-stage { padding:0 6px; } .lb-nav { width:38px; height:56px; font-size:30px; } .lb-strip button { width:64px; height:48px; } }

.re-pub { display:flex; gap:12px; align-items:center; } .re-av { flex:none; width:44px; height:44px; border-radius:10px; background:var(--zhusha-text); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-size:20px; }
.re-show { width:100%; padding:10px; border:1.5px solid var(--mo); border-radius:24px; background:#fff; font:inherit; font-weight:600; cursor:pointer; } .re-show:hover { background:var(--mo); color:#fff; } #phbox { padding:10px 4px 0; }
.re-form { display:grid; gap:10px; margin-top:12px; } .re-form label { display:flex; flex-direction:column; gap:3px; font-size:13px; color:var(--muted); } .re-form input[type=text], .re-form input:not([type=checkbox]), .re-form textarea { box-sizing:border-box; width:100%; padding:9px 11px; border:1.5px solid var(--line); border-radius:8px; background:#fff; color:var(--mo); font:inherit; font-size:14px; } .re-form textarea { resize:vertical; }
.re-consent { flex-direction:row !important; align-items:flex-start; gap:8px !important; font-size:13px !important; } .re-send { width:100%; border:0; border-radius:24px; padding:12px; font-size:16px; cursor:pointer; }

/* ---- 房产详情页（精修） ---- */
.re-wrap { gap:34px; grid-template-columns:minmax(0,1fr) 340px; }
.re-head { margin-bottom:16px; } .re-title { display:none; }
.re-head h1 { display:block; font-size:30px; line-height:1.4; margin:2px 0 0; letter-spacing:.01em; }
.re-loc { display:flex; flex-wrap:wrap; gap:4px 14px; align-items:center; margin:8px 0 0; color:var(--muted); font-size:15px; } .re-loc a { margin-left:0; }
.re-priceline { display:flex; align-items:baseline; flex-wrap:wrap; gap:6px 14px; margin-top:14px; } .re-priceline b { font-family:var(--serif); font-size:32px; line-height:1.2; color:var(--zhusha-text); } .re-priceline span { color:var(--muted); font-size:15px; padding:2px 10px; background:var(--card); border:1px solid var(--line); border-radius:20px; }
.mosaic { display:grid; gap:6px; height:420px; border-radius:16px; overflow:hidden; background:var(--line); }
.mosaic a { position:relative; display:block; overflow:hidden; cursor:zoom-in; background:#cfc6b4; } .mosaic img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .35s; } .mosaic a:hover img { transform:scale(1.04); }
.mosaic.m1 { grid-template-columns:1fr; } .mosaic.m2 { grid-template-columns:1fr 1fr; } .mosaic.m3 { grid-template-columns:2fr 1fr; grid-template-rows:1fr 1fr; } .mosaic.m3 a:first-child { grid-row:1 / 3; }
.mosaic.m0 { display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#d9cfbb,#b9ae98); color:#fff; font-family:var(--serif); font-size:30px; }
.mosaic em { position:absolute; right:10px; bottom:10px; font-style:normal; font-size:13px; color:#fff; background:rgba(0,0,0,.62); padding:4px 12px; border-radius:20px; backdrop-filter:blur(2px); }
.re-facts { margin-top:18px; border-radius:14px; box-shadow:0 2px 10px rgba(0,0,0,.04); } .re-facts div { padding:16px 8px 14px; } .re-facts b { font-size:26px; } .re-facts b.f-sm { font-size:19px; line-height:1.7; } .re-facts small { display:block; font-size:12px; color:var(--zhusha-text); margin-top:1px; }
.re-sec { margin-top:18px; padding:22px 24px; border:1px solid var(--line); border-radius:14px; background:var(--card); } .re-sec h2 { font-size:19px; margin:0 0 12px; padding-left:10px; border-left:4px solid var(--zhusha-text); line-height:1.2; }
.re-sec p { line-height:1.95; font-size:16px; } .re-sec .dl { margin:0; }
.re-feats span { background:#fff; }
.re-wrap .notice { margin:18px 0 0; font-size:13.5px; line-height:1.7; }
.re-card { padding:20px 22px; border-radius:16px; } .re-share { width:100%; margin-top:12px; padding:9px; border:1px dashed var(--line); border-radius:24px; background:none; color:var(--muted); font:inherit; font-size:14px; cursor:pointer; } .re-share:hover { color:var(--zhusha-text); border-color:var(--zhusha-text); }
.re-side .re-price { font-size:26px; }
@media (max-width:900px) { .re-wrap { grid-template-columns:1fr; gap:0; } .re-side { order:2; margin-top:18px; } .re-side .re-price, .re-side .re-pm2 { display:none; } .re-head h1 { font-size:24px; } .re-priceline b { font-size:28px; } .mosaic { height:260px; border-radius:12px; } .mosaic.m3, .mosaic.m2 { grid-template-columns:1fr; grid-template-rows:none; } .mosaic.m2 a:nth-child(2), .mosaic.m3 a:nth-child(2) { display:none; } .mosaic.m3 a:first-child { grid-row:auto; } .mosaic.m3 a:nth-child(3) { display:none; } .mosaic.m3 a:first-child::after { content:""; } .re-sec { padding:18px 16px; } }
.mosaic em.mob { display:none; }
@media (max-width:900px) { .mosaic em { display:none; } .mosaic em.mob { display:block; } }
.re-head { margin-bottom:20px; padding:0; border:0; background:none; position:static; box-shadow:none; } .re-priceline { margin-bottom:0; }
.refilter input[list] { width:130px; }

.pros-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:18px; margin-top:16px; }
.pro-card { display:flex; flex-direction:column; gap:10px; padding:18px 20px; border:1px solid var(--line); border-radius:14px; background:var(--card); color:var(--mo); text-decoration:none; transition:box-shadow .15s, transform .15s; } .pro-card:hover { box-shadow:0 6px 18px rgba(0,0,0,.1); transform:translateY(-2px); }
.pro-top { display:flex; gap:14px; align-items:center; } .pro-av { width:52px; height:52px; font-size:24px; } .pro-head { min-width:0; } .pro-head h3 { margin:0; font-size:17px; line-height:1.4; } .pro-cat { margin:4px 0 0; display:flex; gap:6px; flex-wrap:wrap; }
.pro-tag { margin:0; font-size:14.5px; line-height:1.7; color:var(--mo); } .pro-spec { margin:0; display:flex; flex-wrap:wrap; gap:6px; } .pro-spec span { font-size:12.5px; padding:2px 10px; border:1px solid var(--line); border-radius:20px; background:#fff; color:var(--muted); }
.pro-foot { margin-top:auto; display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; font-size:13px; color:var(--muted); padding-top:8px; border-top:1px dashed var(--line); }

.lvl { display:inline-block; font-size:12px; line-height:1; padding:3px 8px; border-radius:20px; border:1px solid var(--line); background:#fff; color:var(--muted); vertical-align:middle; font-weight:400; white-space:nowrap; }
.lvl.l1 { color:#8a6d00; border-color:#e6c800; } .lvl.l2 { color:#c25a00; border-color:#f2a900; } .lvl.l3 { color:#0b6b8a; border-color:#5bb7d6; } .lvl.l4 { color:#fff; background:linear-gradient(135deg,#b3402a,#e5a000); border-color:transparent; }
.scorebar { height:10px; border-radius:6px; background:var(--line); overflow:hidden; margin:8px 0 4px; } .scorebar i { display:block; height:100%; background:linear-gradient(90deg,#e5a000,#b3402a); }
.rank-row { display:flex; align-items:center; gap:14px; padding:12px 4px; border-bottom:1px solid var(--line); } .rank-no { width:34px; text-align:center; font-family:var(--serif); font-size:22px; color:var(--muted); } .rank-row.top .rank-no { color:var(--zhusha-text); font-weight:700; } .rank-row.me { background:var(--card); border-radius:8px; }

.tipbox { display:inline-block; position:relative; } .tipbox summary { cursor:pointer; font-size:13px; color:var(--muted); list-style:none; padding:2px 10px; border:1px solid var(--line); border-radius:20px; background:#fff; } .tipbox summary::-webkit-details-marker { display:none; } .tipbox[open] summary { color:var(--zhusha-text); border-color:var(--zhusha-text); }
.tipform { display:flex; align-items:center; gap:6px; margin-top:6px; flex-wrap:wrap; } .tipform button { min-width:38px; padding:5px 10px; border:1.5px solid var(--line); border-radius:8px; background:#fff; font:inherit; font-size:14px; cursor:pointer; } .tipform button:hover { border-color:var(--zhusha-text); color:var(--zhusha-text); }
.tipbox-login { font-size:13px; color:var(--muted); }
.coin { color:#b8860b; font-weight:700; } .badge-feat { display:inline-block; font-size:12px; padding:2px 8px; border-radius:4px; background:#f2a900; color:#fff; font-weight:600; }
.boostbox { margin-top:14px; padding:12px; border:1px dashed #e5a000; border-radius:10px; background:#fffaf0; } .boostbox form button { font-size:14px; }
.acc-gap { height:16px; }

.foodbar { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; align-items:center; } .foodbar .fq { flex:1 1 220px; min-width:180px; padding:10px 14px; border:1.5px solid var(--line); border-radius:10px; background:#fff; font:inherit; color:var(--mo); }
.foodbar select { padding:10px 12px; border:1.5px solid var(--line); border-radius:10px; background:#fff; font:inherit; color:var(--mo); max-width:100%; min-width:140px; } .foodbar .btn { padding:9px 20px; }
.foodclear { font-size:14px; color:var(--zhusha-text); }
@media (max-width:600px) { .foodbar select { flex:1 1 45%; } }
.foodbar select[name=r] { width:230px; } .foodbar select[name=cat] { width:150px; min-width:0; } .foodbar .fq { flex:1 1 180px; }
@media (max-width:760px) { .foodbar select[name=r], .foodbar select[name=cat] { width:auto; flex:1 1 45%; } }

.placehero { position:relative; height:300px; border-radius:16px; overflow:hidden; border:1px solid var(--line); background:#e6dfcf; } #minimap { position:absolute; inset:0; z-index:0; } .placehero .phbox { position:absolute; left:14px; bottom:14px; z-index:500; max-width:320px; display:flex; flex-direction:column; gap:2px; padding:12px 16px; border-radius:12px; background:rgba(251,248,241,.94); box-shadow:0 2px 12px rgba(0,0,0,.18); font-size:14px; } .placehero .phbox span { color:var(--muted); font-size:13px; }
@media (max-width:600px) { .placehero { height:240px; } }
.msg-row { display:flex; gap:14px; align-items:center; padding:14px 10px; border-bottom:1px solid var(--line); color:var(--mo); text-decoration:none; border-radius:8px; } .msg-row:hover { background:var(--card); } .msg-row.unread b { color:var(--zhusha-text); } .msg-snip { color:var(--muted); font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } .msg-dot { width:10px; height:10px; border-radius:50%; background:var(--zhusha-text); flex:none; }
.thread { max-width:760px; margin-top:14px; display:flex; flex-direction:column; gap:10px; } .bubble-row { display:flex; } .bubble-row.mine { justify-content:flex-end; }
.bubble { max-width:78%; padding:10px 14px; border-radius:14px; background:#fff; border:1px solid var(--line); white-space:pre-line; line-height:1.7; } .bubble.mine { background:#fbe9e5; border-color:#f0c9c1; } .bubble.hid { opacity:.6; }
.bmeta { margin-top:4px; font-size:11.5px; color:var(--muted); display:flex; gap:4px; align-items:center; white-space:normal; } .rp { display:inline-block; } .rp summary { cursor:pointer; display:inline; list-style:none; text-decoration:underline; } .rp form { display:flex; gap:4px; margin-top:4px; } .rp select { font-size:12px; }
.cpy { width:100%; box-sizing:border-box; padding:12px 14px; border:1.5px solid var(--line); border-radius:10px; background:#fff; color:var(--mo); font:inherit; font-size:15px; line-height:1.8; resize:vertical; } .cpybtn { margin-top:8px; padding:6px 18px; font-size:14px; }
/* 商业街 */
.shopcats { display:grid; grid-template-columns:repeat(auto-fill,minmax(128px,1fr)); gap:10px; margin-top:12px; }
.catcell { display:flex; flex-direction:column; align-items:center; gap:2px; padding:14px 8px 12px; border:1px solid var(--line); border-radius:12px; background:var(--card); color:var(--mo); text-decoration:none; transition:box-shadow .15s, transform .15s; } .catcell:hover { box-shadow:0 6px 16px rgba(0,0,0,.1); transform:translateY(-2px); } .catcell.on { border-color:var(--zhusha-text); }
.catcell i { font-style:normal; width:42px; height:42px; border-radius:50%; background:var(--zhusha); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-size:22px; margin-bottom:4px; } .catcell b { font-size:15px; } .catcell small { font-size:12px; color:var(--muted); }
.shopgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:16px; margin-top:14px; }
.shopcard { display:flex; gap:14px; padding:16px; border:1px solid var(--line); border-radius:14px; background:var(--card); color:var(--mo); text-decoration:none; transition:box-shadow .15s, transform .15s; } .shopcard:hover { box-shadow:0 6px 18px rgba(0,0,0,.1); transform:translateY(-2px); }
.shop-av { flex:none; width:54px; height:54px; border-radius:12px; color:#fff; font-family:var(--serif); font-size:26px; display:flex; align-items:center; justify-content:center; } .shop-av.big { width:76px; height:76px; font-size:36px; border-radius:16px; }
.shop-b { min-width:0; } .shop-b h3 { font-size:17px; margin:0 0 2px; } .shop-b p { margin:2px 0 0; } .shop-tag { font-size:14px; color:var(--mo); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.shop-badges { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin-top:8px !important; }
.shophead { display:flex; gap:18px; align-items:center; margin:16px 0 0; }
.chip.on { background:var(--mo); color:#fff; border-color:var(--mo); } .chip small { opacity:.65; }
@media (max-width:520px) { .shopgrid { grid-template-columns:1fr; } .shophead { align-items:flex-start; } .shop-av.big { width:56px; height:56px; font-size:26px; } }
/* 服务街：服务项目 */
.svc-list { list-style:none; margin:2px 0 0; padding:0; display:grid; gap:4px; } .svc-list li { display:flex; justify-content:space-between; gap:10px; font-size:14px; padding:5px 0; border-bottom:1px dashed var(--line); } .svc-list li:last-child { border:0; } .svc-list b { color:var(--zhusha-text); white-space:nowrap; font-weight:600; } .svc-list .more { color:var(--muted); font-size:13px; justify-content:flex-start; }
.svc-table { list-style:none; margin:0; padding:0; } .svc-table li { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; padding:12px 0; border-bottom:1px solid var(--line); } .svc-table li:last-child { border:0; } .svc-table span { color:var(--zhusha-text); font-weight:700; white-space:nowrap; }
/* 商家后台 */
.mgrid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:16px; margin-top:16px; } .mcard h2 { font-size:20px; margin:0 0 8px; }
.mtable { display:grid; gap:10px; } .mrow { display:flex; gap:14px; align-items:center; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:var(--card); flex-wrap:wrap; }
.mthumb { flex:none; width:64px; height:48px; border-radius:6px; overflow:hidden; background:linear-gradient(135deg,#d9cfbb,#b9ae98); display:flex; align-items:center; justify-content:center; color:#fff; font-family:var(--serif); } .mthumb img { width:100%; height:100%; object-fit:cover; }
.mmain { flex:1 1 220px; min-width:0; } .mact { display:flex; gap:8px; flex-wrap:wrap; } .mact form { display:inline; } .mact .btn { padding:6px 14px; }
.mfs { border:1px solid var(--line); border-radius:8px; padding:10px 14px; display:flex; flex-wrap:wrap; gap:6px 18px; } .mfs label { display:flex; gap:6px; align-items:center; }
.svcrow { display:grid; grid-template-columns:1.4fr 1fr 1.4fr; gap:8px; } @media (max-width:560px) { .svcrow { grid-template-columns:1fr; } }
.gtopics.one { column-count:1; }
.sirenbox { margin-top:6px; font-size:14px; line-height:1.6; } .sirenbox:empty { display:none; }
.sirenbox.ok { border:1px solid var(--qingci); border-radius:8px; padding:8px 12px; background:rgba(60,120,100,.07); }
.sirenbox.bad { border:1px solid var(--zhusha-text); border-radius:8px; padding:8px 12px; background:rgba(180,40,30,.06); color:var(--zhusha-text); }
.sirenbox .crow { display:flex; justify-content:space-between; gap:14px; padding:3px 0; border-bottom:1px dashed var(--line); } .sirenbox .crow:last-of-type { border:0; }
.sirenbox .crow span { color:var(--muted); white-space:nowrap; } .sirenbox .crow b { text-align:right; font-weight:600; color:var(--mo); }
@media (max-width:520px) { .sirenbox .crow { flex-direction:column; gap:0; } .sirenbox .crow b { text-align:left; } }
/* 带侧栏的页面：只在宽屏用固定侧栏宽度（行内样式会盖掉手机上的单列规则，所以用类） */
@media (min-width:901px) { .re-wrap.w300 { grid-template-columns:minmax(0,1fr) 300px; } .re-wrap.w340 { grid-template-columns:minmax(0,1fr) 340px; } .re-wrap.w360 { grid-template-columns:minmax(0,1fr) 360px; } }
@media (max-width:900px) { .re-wrap.w300, .re-wrap.w340, .re-wrap.w360 { grid-template-columns:minmax(0,1fr); gap:0 !important; } .re-wrap.w300 .re-side, .re-wrap.w340 .re-side, .re-wrap.w360 .re-side { order:2; margin-top:18px; } }
/* 顶栏（宽屏）：第一行 = 标志 + 搜索 + 账号，第二行 = 全部栏目；栏目多时不再把搜索和头像挤到第二行 */
@media (min-width:821px) {
  header .top { display:grid; grid-template-columns:auto 1fr auto auto; grid-template-areas:"logo . search auth" "nav nav nav nav"; align-items:center; height:auto; column-gap:14px; row-gap:0; padding-top:10px; padding-bottom:4px; }
  header .top > a:first-child { grid-area:logo; }
  header .top nav { grid-area:nav; display:flex; flex-wrap:nowrap; gap:4px; margin-top:6px; overflow-x:auto; scrollbar-width:none; }
  header .top nav::-webkit-scrollbar { display:none; }
  header .top .search-btn { grid-area:search; margin:0; }
  header .top .authbox { grid-area:auth; }
}
/* 栏目页头部固定高度：「← 首页」一行 + 标题一行 + 说明两行（手机三行），切换栏目时不跳动 */
.crumb-fixed { height:22px; line-height:22px; margin:24px 0 0; overflow:hidden; white-space:nowrap; }
.sechead { padding:10px 0 0; }
.sechead h1 { font-size:40px; line-height:56px; height:56px; margin:0; display:flex; align-items:center; gap:14px; white-space:nowrap; overflow:hidden; }
.sechead-cta { flex:none; margin-left:10px; font-size:15px; line-height:1.4; padding:7px 22px; font-weight:600; white-space:nowrap; background:var(--zhusha); color:#fff; border-color:var(--zhusha); font-family:var(--sans); }
.sechead-cta:hover { filter:brightness(.95); }
.sechead .sechead-desc { font-size:17px; line-height:1.7; margin:8px 0 0; max-width:40em; }
.sechead.fixed .sechead-desc { height:3.4em; overflow:hidden; }
@media (max-width:820px) {
  .sechead h1 { font-size:30px; line-height:46px; height:46px; }
  .sechead .sechead-desc { font-size:15px; line-height:1.65; }
  .sechead.fixed .sechead-desc { height:4.95em; }
}
@media (max-width:820px) { .sechead-cta { margin-left:6px; font-size:13.5px; padding:6px 14px; } }
/* 学校排行表 */
.ranktable-wrap { overflow-x:auto; margin-top:12px; border:1px solid var(--line); border-radius:10px; background:var(--card); }
.ranktable { width:100%; border-collapse:collapse; font-size:14.5px; min-width:760px; }
.ranktable th, .ranktable td { padding:9px 10px; text-align:center; border-bottom:1px solid var(--line); white-space:nowrap; }
.ranktable th { background:rgba(0,0,0,.03); font-weight:600; color:var(--muted); font-size:13px; position:sticky; top:0; }
.ranktable .l { text-align:left; white-space:normal; min-width:200px; }
.ranktable .rk { font-family:var(--serif); font-size:18px; color:var(--zhusha-text); width:48px; }
.ranktable td.on, .ranktable th.on { background:rgba(180,40,30,.07); font-weight:700; color:var(--zhusha-text); }
.ranktable tbody tr:last-child td { border-bottom:0; }
/* 商家入驻：选择开店 / 服务页 */
.joinpick { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:12px; }
.joinopt { display:flex; gap:10px; align-items:flex-start; padding:14px; border:1.5px solid var(--line); border-radius:12px; background:var(--card); cursor:pointer; }
.joinopt.on { border-color:var(--zhusha-text); box-shadow:0 0 0 2px rgba(180,40,30,.08); }
.joinopt input { margin-top:5px; } .joinopt b { font-size:16px; } .joinopt small { display:block; color:var(--muted); font-size:13px; line-height:1.6; margin-top:3px; }
.joinsec { border:1px solid var(--line); border-radius:12px; padding:16px; background:rgba(255,255,255,.35); }
/* 手机上的表单：两列并排的字段改成单列，减少内边距让输入框更宽 */
@media (max-width:520px) {
  form.card [style*="grid-template-columns:1fr 1fr"] { grid-template-columns:1fr !important; }
  form.card { padding:16px !important; }
  .joinsec { padding:12px; } .joinsec fieldset { padding:10px !important; }
}
/* 互助问答列表 */
.qalist .row { gap:14px; align-items:flex-start; } .qacount { flex:none; width:54px; text-align:center; padding-top:2px; } .qacount .n { font-family:var(--serif); font-size:24px; line-height:1.1; } .qacount .meta { font-size:12px; }
.qaexcerpt { margin:3px 0 0; font-size:14.5px; color:var(--muted); line-height:1.6; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
/* 首页栏目：宽屏固定 5 个一排（十个栏目正好两排） */
@media (min-width:900px) { .pillars { grid-template-columns:repeat(5,1fr); } }
@media (max-width:899px) { .pillars { grid-template-columns:repeat(2,1fr); } }
/* 房价物价 */
.pricegrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:14px; margin-top:12px; }
.pcard { padding:18px 20px; } .pcard h3 { font-size:16px; margin:0 0 6px; color:var(--muted); font-weight:600; }
.pcard .big { font-family:var(--serif); font-size:34px; margin:2px 0 8px; color:var(--zhusha-text); line-height:1.1; } .pcard .big small { font-family:inherit; font-size:13px; color:var(--muted); margin-left:8px; font-weight:400; }
.pcard .mini { width:100%; border-collapse:collapse; font-size:14px; } .pcard .mini td, .pcard .mini th { padding:5px 0; text-align:left; border-bottom:1px solid var(--line); font-weight:400; } .pcard .mini th { text-align:right; font-weight:600; } .pcard .mini tr:last-child td, .pcard .mini tr:last-child th { border-bottom:0; }
.pcard .mini tr:first-child th { color:var(--muted); font-size:12px; }
.pcard .bars { display:flex; align-items:flex-end; gap:4px; height:76px; margin:6px 0 4px; } .pcard .bars span { flex:1; height:100%; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; }
.pcard .bars i { display:block; width:100%; background:var(--zhusha-text); border-radius:3px 3px 0 0; opacity:.8; } .pcard .bars span.p i { opacity:.35; } .pcard .bars em { font-size:10px; font-style:normal; color:var(--muted); margin-top:2px; }
@media (max-width:640px) { .pricegrid { grid-template-columns:1fr; } .pcard .big { font-size:30px; } }
.pcard .mini.idx { margin-top:4px; } .pcard .mini.idx th { font-weight:500; }
.twocol { display:grid; grid-template-columns:1fr 1fr; gap:22px; align-items:start; } .subsec { font-size:18px; margin:14px 0 0; }
.ranktable.compact { min-width:0; font-size:14px; } .ranktable.compact th, .ranktable.compact td { padding:8px 8px; line-height:1.4; } .ranktable.compact .l { min-width:0; }
.twocol > div { min-width:0; }
@media (max-width:900px) { .twocol { grid-template-columns:minmax(0,1fr); gap:0; } .ranktable.compact { min-width:420px; } }
/* 模拟计算 */
.simgrid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:14px; align-items:start; } .simcard { margin:0; padding-bottom:16px; scroll-margin-top:80px; }
.simform { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:10px 14px; margin:10px 0; } .simform[hidden] { display:none; }
.simform label { display:flex; flex-direction:column; gap:4px; font-size:13.5px; color:var(--muted); } .simform input, .simform select { width:100%; font-size:15px; }
.simres:empty { display:none; } .simres { margin-top:14px; padding-top:12px; border-top:1px solid var(--line); }
.simmain { font-family:var(--serif); font-size:30px; color:var(--zhusha-text); margin:0 0 6px; line-height:1.2; }
.simtab { width:100%; border-collapse:collapse; font-size:14.5px; } .simtab td, .simtab th { padding:6px 0; border-bottom:1px solid var(--line); text-align:left; font-weight:400; } .simtab th { text-align:right; font-weight:600; }
.simwarn { background:rgba(180,40,30,.08); border-radius:8px; padding:8px 12px; font-size:14px; margin:10px 0 0; } .simerr { color:var(--zhusha-text); margin:0; } .simnote { margin:8px 0 0; line-height:1.6; } .simsrc { margin:12px 0 0; font-size:12.5px; }
@media (max-width:900px) { .simgrid { grid-template-columns:minmax(0,1fr); } }
.proposter { display:block; max-width:min(100%,420px); margin:4px 0 14px; } .proposter img { width:100%; height:auto; border-radius:10px; border:1px solid var(--line); display:block; } .proposter small { color:var(--muted); font-size:12px; }
.promobox { background:rgba(222,21,10,.06); border:1px solid rgba(222,21,10,.25); border-radius:10px; padding:12px 16px; margin:4px 0 14px; max-width:520px; } .promocode { font-family:var(--serif); font-size:30px; letter-spacing:2px; color:var(--zhusha-text); margin:6px 0 2px; user-select:all; }
.posters { display:flex; flex-wrap:wrap; gap:12px; margin:4px 0 14px; } .posters .proposter { margin:0; flex:0 1 calc(50% - 6px); max-width:340px; } @media (max-width:560px) { .posters .proposter { flex-basis:calc(50% - 6px); } }
.timeline { border-left:2px solid var(--line); margin-left:6px; } .tl { position:relative; padding:0 0 18px 18px; } .tl::before { content:''; position:absolute; left:-6px; top:6px; width:10px; height:10px; border-radius:50%; background:var(--zhusha-text); } .tl .tld { display:block; font-size:13px; color:var(--zhusha-text); margin-bottom:2px; } .tl b { font-size:16px; } .tl p { margin:4px 0 0; font-size:14.5px; line-height:1.65; color:var(--mo); } .tl p.meta { color:var(--muted); font-size:13px; }
.posters .proposter:only-child { flex-basis:100%; max-width:380px; }

/* 海报：桌面放在右侧栏联系卡片下面，简介占满主栏；手机放在简介下面 */
.posterbox-d { display:none; } .posterbox-m .posters, .posterbox-d .posters { margin:8px 0 4px; }
@media (min-width:901px) { .posterbox-m { display:none; } .posterbox-d { display:block; margin-top:16px; } .posterbox-d .posters .proposter { flex-basis:100%; max-width:100%; } }

/* 商家后台：浏览数据 */
.mstats { display:flex; gap:22px; flex-wrap:wrap; margin:14px 0 6px; } .mstats > div { min-width:70px; } .mstats b { display:block; font-family:var(--serif); font-size:28px; color:var(--zhusha-text); line-height:1.1; } .mstats span { font-size:13px; color:var(--muted); } .mstats small { font-size:11px; }
.mbars { display:flex; align-items:flex-end; height:44px; gap:2px; margin:8px 0 0; } .mbars span { flex:1; height:100%; display:flex; align-items:flex-end; } .mbars i { display:block; width:100%; background:var(--zhusha-text); opacity:.75; border-radius:2px 2px 0 0; }
