/* ==========================================================
   gxbbs.com 广西门户网 v6 原型样式
   基调：街坊门户 · 亲民生活感（暖橘主色 + 多彩频道 + 大圆角）
   与 v5 的区别：去宋体标题、去深色工具条、去下划线式导航高亮、
                金刚区彩色图标、卡片圆角 14~18px、阴影更软
   ========================================================== */
:root{
  /* 文字（暖调黑，不用纯黑） */
  --ink:#2b211a;
  --ink-2:#4c4139;
  --ink-3:#6b5f56;
  --muted:#7c7168;

  /* 线与底 */
  --line:#f1e7dd;
  --line-2:#f8f1e9;
  --paper:#ffffff;
  --bg:#fdf9f4;

  /* 主色：暖橘 */
  --brand:#f2683c;
  --brand-d:#d9532a;
  --brand-l:#fff1e9;

  /* 辅色：青碧（表示"放心/已核验"） */
  --accent:#14a08a;
  --accent-l:#e6f7f3;

  /* 点缀色 */
  --gold:#f5a623;
  --gold-l:#fff6e6;
  --blue:#3d8bfd;
  --blue-l:#eaf2ff;
  --violet:#8b6be0;
  --violet-l:#f1edfd;
  --pink:#e85d8a;
  --pink-l:#fdeef4;
  --green:#4caf6d;
  --green-l:#eaf7ee;

  --sans:"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei","Hiragino Sans GB",system-ui,sans-serif;
  --serif:"Noto Serif SC","Songti SC",SimSun,serif; /* 仅页脚等少数位置保留 */

  --r:14px;
  --r-sm:10px;
  --r-lg:18px;
  --shadow:0 1px 3px rgba(120,80,50,.045),0 10px 28px rgba(120,80,50,.055);
  --shadow-h:0 2px 6px rgba(120,80,50,.06),0 16px 36px rgba(120,80,50,.09);
  --wrap:1200px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font:15px/1.7 var(--sans);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
a:hover{color:var(--brand)}
img{max-width:100%;display:block}
ul{margin:0;padding:0;list-style:none}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 20px}
.serif{font-family:var(--serif)}
.muted{color:var(--muted)}
.tar{text-align:right}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- 顶部工具条（浅色，不用深底） ---------- */
.topbar{background:#fffaf4;border-bottom:1px solid var(--line);color:var(--muted);font-size:12.5px;line-height:36px}
.topbar .wrap{display:flex;align-items:center;gap:14px}
.topbar a{color:var(--muted)}
.topbar a:hover{color:var(--brand)}
.tb-city{display:flex;align-items:center;gap:6px;color:var(--ink);background:var(--brand-l);padding:0 10px;border-radius:20px;line-height:24px;font-size:12px}
.tb-city b{font-weight:600;color:var(--brand)}
.tb-city .caret{font-size:9px;opacity:.6}
.tb-cities{display:flex;gap:12px;overflow:hidden;white-space:nowrap;mask-image:linear-gradient(90deg,#000 88%,transparent)}
.tb-cities a{color:#9a8f85}
.tb-cities a.on{color:var(--brand);font-weight:600}
.tb-slogan{color:#b8ada3;font-size:12px;letter-spacing:.3px}
.tb-right{margin-left:auto;display:flex;gap:14px;align-items:center;flex-shrink:0}
.tb-right a.post{color:var(--brand);font-weight:600}

/* ---------- 头部 ---------- */
.header{background:var(--paper);border-bottom:1px solid var(--line)}
.header .wrap{display:flex;align-items:center;gap:26px;padding-top:18px;padding-bottom:18px}
.logo{display:flex;align-items:center;gap:11px;flex-shrink:0}
.logo-mark{
  width:44px;height:44px;border-radius:14px;
  background:linear-gradient(135deg,#ff8a5c,#f2683c 60%,#e2542c);
  color:#fff;display:grid;place-items:center;
  font:800 21px/1 var(--sans);letter-spacing:-.5px;
  box-shadow:0 6px 16px rgba(242,104,60,.32);
}
.logo-txt strong{display:block;font:800 20px/1.2 var(--sans);letter-spacing:.2px}
.logo-txt span{display:block;font-size:11px;color:#a99e94;letter-spacing:2px;margin-top:3px;font-weight:500}
.searchbar{flex:1;max-width:560px;display:flex;height:44px;border:1.5px solid var(--line);border-radius:24px;overflow:hidden;background:#fdfaf6;transition:.18s}
.searchbar:focus-within{border-color:var(--brand);background:#fff;box-shadow:0 0 0 4px rgba(242,104,60,.09)}
.searchbar input{flex:1;border:0;outline:0;padding:0 18px;font-size:14px;font-family:var(--sans);color:var(--ink);background:none}
.searchbar input::placeholder{color:#b3a89e}
.searchbar button{
  width:88px;border:0;margin:4px;border-radius:20px;
  background:var(--brand);color:#fff;font-size:14.5px;cursor:pointer;font-family:var(--sans);
  font-weight:600;letter-spacing:.5px;
}
.searchbar button:hover{background:var(--brand-d)}
/* 头部「免费咨询」：一键打开企业微信客服会话 */
.header-kf{
  display:flex;align-items:center;gap:10px;flex-shrink:0;
  padding:7px 16px 7px 8px;border-radius:16px;
  background:var(--accent-l);border:1.5px solid #c6ece3;
  transition:.18s;cursor:pointer;
}
.header-kf:hover{background:#d8f4ee;border-color:#a5e0d2;transform:translateY(-1px);box-shadow:0 6px 16px rgba(20,160,138,.16)}
.header-kf .kf-ico{
  width:34px;height:34px;border-radius:11px;flex-shrink:0;
  background:var(--accent);display:grid;place-items:center;
  box-shadow:0 4px 12px rgba(20,160,138,.3);
}
.header-kf .kf-ico svg{width:20px;height:20px;stroke:#fff;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.header-kf .kf-txt{display:flex;flex-direction:column;gap:2px;line-height:1.2}
.header-kf small{display:block;font-size:11.5px;line-height:1.35;color:var(--ink-3);font-weight:500;letter-spacing:.2px}
.header-kf b{display:block;font:800 15.5px/1.3 var(--sans);color:#0d8271;letter-spacing:.2px;white-space:nowrap}
.header-kf b::after{content:"›";margin-left:3px;font-weight:700}
/* 在线状态小绿点 */
.header-kf .kf-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#19b58a;margin-left:5px;vertical-align:1px;box-shadow:0 0 0 3px rgba(25,181,138,.14)}

/* ---------- 主导航（胶囊高亮，不用下划线） ---------- */
.nav{background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;box-shadow:0 2px 10px rgba(120,80,50,.03)}
.nav .wrap{display:flex;align-items:center;gap:4px;overflow-x:auto;scrollbar-width:none;padding-top:7px;padding-bottom:7px}
.nav .wrap::-webkit-scrollbar{display:none}
.nav a{
  padding:0 15px;line-height:36px;font-size:15px;font-weight:500;color:var(--ink-2);
  border-radius:20px;white-space:nowrap;transition:.16s;
}
.nav a:hover{color:var(--brand);background:var(--brand-l)}
.nav a.on{color:#fff;font-weight:600;background:var(--brand);box-shadow:0 4px 12px rgba(242,104,60,.26)}
.nav a.on:hover{color:#fff;background:var(--brand)}
.nav a.forum{margin-left:auto;color:var(--accent);background:#fff;border:1.5px solid #b8e5db;font-weight:600}
.nav a.forum:hover{background:var(--accent-l);color:var(--accent);border-color:#8fd8c8}
.nav a.forum.on{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 4px 12px rgba(20,160,138,.26)}

/* ---------- 金刚区（多彩图标） ---------- */
.jingang{background:var(--paper);border-bottom:1px solid var(--line)}
.jingang .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding-top:18px;padding-bottom:18px}
.jg{
  display:flex;align-items:center;gap:11px;padding:11px 13px;border:1px solid var(--line-2);
  border-radius:var(--r);background:#fefcfa;transition:.18s;
}
.jg:hover{border-color:transparent;background:#fff;box-shadow:var(--shadow-h);transform:translateY(-2px);color:var(--ink)}
.jg-ico{
  width:40px;height:40px;border-radius:13px;display:grid;place-items:center;flex-shrink:0;
  background:var(--cl,#fff1e9);
}
.jg-ico svg{width:21px;height:21px;stroke:var(--c,var(--brand));fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.jg-t{min-width:0}
.jg b{display:block;font-size:15px;font-weight:700;line-height:1.3;white-space:nowrap;letter-spacing:.2px}
.jg-t span{display:block;font-size:11.5px;color:var(--muted);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---------- 需要什么（场景快捷条） ---------- */
.want{margin-top:14px;padding:14px 16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.want .lb{font-size:13.5px;font-weight:600;color:var(--ink-2);flex-shrink:0;margin-right:2px}
.want a{
  font-size:13px;padding:6px 13px;border-radius:18px;background:#fdf7f1;color:var(--ink-3);
  border:1px solid #f6ece2;transition:.16s;white-space:nowrap;
}
.want a:hover{background:var(--brand-l);color:var(--brand);border-color:#fbd8c8}
.want a em{font-style:normal;margin-right:4px}

/* ---------- 城市条 ---------- */
.citybar{display:flex;align-items:center;gap:8px;padding:14px 0 2px;font-size:13px;flex-wrap:wrap}
.citybar .lb{color:var(--muted);flex-shrink:0;margin-right:2px}
.citybar a{padding:4px 12px;border-radius:20px;color:var(--ink-3);background:#fff;border:1px solid var(--line)}
.citybar a.on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.citybar a:hover{border-color:#f9c4ae;color:var(--brand)}
.citybar a.on:hover{color:#fff;border-color:var(--brand)}

/* ---------- 通用卡片 ---------- */
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.sec{margin-top:16px}
.sec-hd{display:flex;align-items:center;gap:6px 10px;padding:15px 18px;border-bottom:1px solid var(--line-2);flex-wrap:wrap}
.sec-hd h2{
  margin:0;font:800 18px/1.25 var(--sans);letter-spacing:.2px;
  display:flex;align-items:center;gap:8px;
}
.sec-hd h2::before{content:"";width:9px;height:9px;border-radius:3px;background:var(--brand);flex-shrink:0}
.sec-hd .sub{font-size:12.5px;color:var(--muted)}
.sec-hd .more{margin-left:auto;font-size:12.5px;color:var(--muted);background:#fdf7f1;padding:3px 10px;border-radius:14px}
.sec-hd .more:hover{color:var(--brand);background:var(--brand-l)}

/* ---------- 首屏两栏 ---------- */
.top-grid{display:grid;grid-template-columns:1fr 344px;gap:16px;margin-top:16px;align-items:start}

/* 今日话题（原头条，改成生活化话题卡） */
.headline{display:grid;grid-template-columns:1.1fr 1fr;gap:0;overflow:hidden;border-radius:var(--r-lg)}
.hl-pic{position:relative;min-height:320px;background:#f6e6d8;overflow:hidden}
.hl-pic img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;transition:transform .5s}
.hl-pic:hover img{transform:scale(1.03)}
.hl-pic::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(56,28,14,0) 28%,rgba(52,26,14,.34) 54%,rgba(44,20,10,.88) 100%)}
.hl-cap{position:absolute;left:20px;right:20px;bottom:18px;z-index:2;color:#fff}
.hl-cap .tag{display:inline-block;background:rgba(255,255,255,.94);color:var(--brand);font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:14px;margin-bottom:9px;letter-spacing:.3px}
.hl-cap h3{margin:0;font:800 20px/1.5 var(--sans);text-shadow:0 2px 14px rgba(30,12,4,.55);letter-spacing:.2px}
.hl-cap p{margin:8px 0 0;font-size:13px;color:#f0e8e2;line-height:1.65}
.hl-list{padding:8px 18px 12px}
.hl-list li{padding:13px 0;border-bottom:1px dashed var(--line-2)}
.hl-list li:last-child{border-bottom:0}
.hl-list h4{margin:0;font-size:15px;font-weight:600;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.hl-list .meta{font-size:12px;color:var(--muted);margin-top:5px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pill{font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;background:var(--accent-l);color:var(--accent)}
.pill.c1{background:var(--brand-l);color:var(--brand)}
.pill.c2{background:var(--blue-l);color:var(--blue)}
.pill.c3{background:var(--violet-l);color:var(--violet)}
.pill.c4{background:var(--gold-l);color:#c07d09}

/* ---------- 内容流 ---------- */
.tabs{display:flex;gap:6px;padding:12px 18px 0;border-bottom:1px solid var(--line-2);overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs button{
  border:0;background:none;padding:7px 14px;margin-bottom:10px;border-radius:16px;
  font:500 14px/1.2 var(--sans);color:var(--ink-3);cursor:pointer;white-space:nowrap;font-family:var(--sans);transition:.16s;
}
.tabs button:hover{background:#fdf7f1;color:var(--brand)}
.tabs button.on{color:#fff;font-weight:600;background:var(--brand)}
.feed{padding:6px 18px 12px}
.feed li{display:flex;gap:14px;padding:15px 0;border-bottom:1px solid var(--line-2)}
.feed li:last-child{border-bottom:0}
.feed .txt{flex:1;min-width:0}
.feed h4{margin:0;font-size:15.5px;font-weight:700;line-height:1.5;letter-spacing:.1px}
.feed p{margin:5px 0 0;font-size:13px;color:var(--ink-3);line-height:1.65;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.feed .meta{margin-top:7px;font-size:12px;color:var(--muted);display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.feed .thumb{width:136px;height:92px;border-radius:12px;overflow:hidden;flex-shrink:0;background:#f3ece4;position:relative;border:1px solid #f4ece3}
.feed .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.feed li:hover .thumb img{transform:scale(1.05)}

/* ---------- 频道卡（四宫格） ---------- */
.chan3{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:16px}
.chan3 .card{display:flex;flex-direction:column;transition:.18s}
.chan3 .card:hover{box-shadow:var(--shadow-h);transform:translateY(-2px)}
.chan-hd{display:flex;align-items:center;gap:9px;padding:14px 16px;border-bottom:1px solid var(--line-2)}
.chan-hd .ic{width:32px;height:32px;border-radius:11px;background:var(--cl,var(--brand-l));display:grid;place-items:center}
.chan-hd .ic svg{width:17px;height:17px;stroke:var(--c,var(--brand));fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.chan-hd b{font:800 16px/1.2 var(--sans);letter-spacing:.2px}
.chan-hd .more{margin-left:auto;font-size:12px;color:var(--muted)}
.chan-hd .more:hover{color:var(--brand)}
.chan-body{padding:4px 16px 12px;flex:1}
.chan-body li{padding:9px 0;border-bottom:1px dashed var(--line-2);font-size:14px;line-height:1.5}
.chan-body li:last-child{border-bottom:0}
.chan-body li .t{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;font-weight:500}
.chan-body li .d{font-size:11.5px;color:var(--muted);margin-top:2px}
.chan-foot{border-top:1px solid var(--line-2);padding:10px 16px;display:flex;gap:7px;flex-wrap:wrap}
.chan-foot a{font-size:12.5px;color:var(--ink-3);background:#fdf7f1;padding:4px 10px;border-radius:12px}
.chan-foot a:hover{background:var(--brand-l);color:var(--brand)}

/* ---------- 侧栏 ---------- */
.aside{display:flex;flex-direction:column;gap:16px}
.order{padding:16px;background:linear-gradient(180deg,#fff8f3,#fff 46%)}
.order h3{margin:0 0 4px;font:800 17px/1.3 var(--sans)}
.order .tip{font-size:12px;color:var(--muted);margin:0 0 12px}
.order .fld{display:flex;gap:8px;margin-bottom:9px}
.order input,.order select{
  width:100%;height:42px;border:1px solid var(--line);border-radius:12px;padding:0 12px;
  font:14px var(--sans);color:var(--ink);background:#fdfaf6;outline:0;transition:.16s;
}
.order input:focus,.order select:focus{border-color:var(--brand);background:#fff;box-shadow:0 0 0 3px rgba(242,104,60,.09)}
.order .btn{
  width:100%;height:44px;border:0;border-radius:12px;background:var(--brand);color:#fff;
  font:700 15px var(--sans);cursor:pointer;letter-spacing:.5px;
  box-shadow:0 6px 16px rgba(242,104,60,.24);
}
.order .btn:hover{background:var(--brand-d)}
.order .note{font-size:11.5px;color:var(--muted);margin-top:9px;text-align:center}
.order .tel{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:11px;padding-top:11px;border-top:1px dashed var(--line)}
.order .tel b{font-size:17px;color:var(--brand);letter-spacing:.2px;font-weight:800}

.telbook{padding:8px 16px 14px}
.telbook li{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px dashed var(--line-2);font-size:13.5px}
.telbook li:last-child{border-bottom:0}
.telbook .k{color:var(--ink-3);width:76px;flex-shrink:0}
.telbook .v{margin-left:auto;font-weight:600;color:var(--brand);font-size:13.5px;background:var(--brand-l);padding:2px 9px;border-radius:10px}

/* 服务热线卡 */
.hotline{padding:16px 16px 14px;text-align:center;background:linear-gradient(135deg,#fff3ea,#f4fbf9);border-bottom:1px dashed var(--line)}
.hl-num{font:800 24px/1.2 var(--sans);color:var(--brand);letter-spacing:.4px}
.hl-sub{font-size:11.5px;color:var(--muted);margin-top:5px;line-height:1.6}
.hl-tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:10px}
.hl-tags span{font-size:11px;color:var(--ink-3);background:#fff;border:1px solid var(--line);padding:2px 8px;border-radius:10px}

.tags{padding:14px 16px;display:flex;flex-wrap:wrap;gap:8px}
.tags a{font-size:12.5px;padding:5px 11px;border-radius:14px;background:#fdf7f1;color:var(--ink-3)}
.tags a:hover{background:var(--brand-l);color:var(--brand)}
.tags a.hot{color:var(--brand);background:var(--brand-l)}

.rank{padding:6px 16px 12px;counter-reset:r}
.rank li{display:flex;gap:9px;padding:9px 0;font-size:13.5px;line-height:1.5;border-bottom:1px dashed var(--line-2)}
.rank li:last-child{border-bottom:0}
.rank li::before{
  counter-increment:r;content:counter(r);flex-shrink:0;width:20px;height:20px;border-radius:7px;
  display:grid;place-items:center;font:700 11px/1 var(--sans);background:#f6eee6;color:#9a8f85;margin-top:1px;
}
.rank li:nth-child(1)::before{background:#f2683c;color:#fff}
.rank li:nth-child(2)::before{background:#f79a6d;color:#fff}
.rank li:nth-child(3)::before{background:#fbc7a8;color:#8a4a1e}
.rank .t{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ---------- 论坛条 ---------- */
.forum-strip{display:grid;grid-template-columns:1fr 306px;gap:16px;margin-top:16px}
/* v6.17 修复：首页 body 直下区块（频道四宫格/论坛条）限宽居中，避免全宽拉伸 */
.chan3,.forum-strip{width:100%;max-width:var(--wrap);margin-left:auto;margin-right:auto;padding:0 20px;box-sizing:border-box}
.fthread{padding:4px 18px 12px}
.fthread li{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px dashed var(--line-2);font-size:14px}
.fthread li:last-child{border-bottom:0}
.fthread .bd{font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:10px;background:var(--accent-l);color:var(--accent);flex-shrink:0}
.fthread .bd.b1{background:var(--brand-l);color:var(--brand)}
.fthread .bd.b2{background:var(--blue-l);color:var(--blue)}
.fthread .bd.b3{background:var(--violet-l);color:var(--violet)}
.fthread .bd.b4{background:var(--gold-l);color:#c07d09}
.fthread .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fthread .r{font-size:12px;color:var(--muted);flex-shrink:0}
.fstat{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line-2)}
.fstat div{background:#fff;padding:15px 8px;text-align:center}
.fstat b{display:block;font:800 19px/1.2 var(--sans);color:var(--brand)}
.fstat span{font-size:11.5px;color:var(--muted)}

/* ---------- 城市矩阵 ---------- */
.citymat{padding:16px 18px 18px;display:grid;grid-template-columns:repeat(7,1fr);gap:10px}
.citymat a{
  display:block;padding:11px 8px;text-align:center;border:1px solid var(--line-2);border-radius:12px;
  font-size:13.5px;background:#fefcfa;color:var(--ink-2);transition:.16s;
}
.citymat a b{display:block;font-weight:700}
.citymat a small{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.citymat a:hover{border-color:#f9c4ae;color:var(--brand);background:var(--brand-l);transform:translateY(-1px)}
.citymat a.soon{opacity:.55}
.citymat a.soon:hover{border-color:var(--line);color:var(--ink-2);background:#fefcfa;transform:none}

/* ---------- 页脚 ---------- */
.footer{margin-top:26px;background:#3b2b20;color:#b7a89b;font-size:13px;padding-bottom:26px}
.footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:26px;padding:32px 0 22px;border-bottom:1px solid rgba(255,255,255,.09)}
.footer h5{margin:0 0 10px;font:700 14px/1.3 var(--sans);color:#f3ece5;letter-spacing:.3px}
.footer a{display:block;padding:4px 0;color:#b7a89b}
.footer a:hover{color:#ffc9ae}
.footer .brandline{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.footer .brandline .logo-mark{width:35px;height:35px;font-size:16px;border-radius:11px;box-shadow:none}
.footer .brandline strong{color:#f3ece5;font:800 16px/1.2 var(--sans)}
.footer .copy{padding-top:18px;display:flex;gap:18px;flex-wrap:wrap;font-size:12px;color:#8e8074}
.footer .copy span:last-child{margin-left:auto}

/* ---------- 移动端底部悬浮双按钮 ---------- */
.mbar{display:none}

/* ==========================================================
   频道页
   ========================================================== */
.crumb{font-size:12.5px;color:var(--muted);padding:14px 0 0}
.crumb a{color:var(--muted)}
.crumb a:hover{color:var(--brand)}
.crumb em{font-style:normal;color:var(--ink-3)}
.chan-hero{
  margin-top:12px;padding:24px 26px 20px;border-radius:var(--r-lg);position:relative;overflow:hidden;
  background:var(--hbg,#fff4ec);border:1px solid var(--hln,#fbdcc8);
}
.chan-hero::after{content:"";position:absolute;right:-90px;top:-110px;width:300px;height:300px;border-radius:50%;background:#fff;opacity:.42}
.chan-hero h1{margin:0;font:800 26px/1.3 var(--sans);letter-spacing:.3px;color:var(--hink,var(--brand-d))}
.chan-hero p{margin:8px 0 0;font-size:13.5px;color:var(--ink-3);max-width:660px;line-height:1.75;position:relative;z-index:1}
.chan-hero .kv{display:flex;gap:22px;margin-top:15px;font-size:12.5px;color:var(--muted);flex-wrap:wrap;position:relative;z-index:1}
.chan-hero .kv b{font-size:17px;color:var(--hink,var(--brand));margin-right:3px;font-weight:800}
/* 频道主题（浅色，只换色调不换明暗） */
.chan-hero.t-green{--hbg:#eaf8f3;--hln:#cdebe1;--hink:#0f8a75}
.chan-hero.t-blue{--hbg:#eef4ff;--hln:#d8e6fc;--hink:#2f74d9}
.chan-hero.t-violet{--hbg:#f4efff;--hln:#e2d8fa;--hink:#7150cf}
/* 补齐其余频道主题（金 / 绿 / 粉 / 红），仍走浅色，不加深 */
.chan-hero.t-gold{--hbg:#fff8ec;--hln:#f5e3c4;--hink:#b0700a}
.chan-hero.t-green2{--hbg:#eefaf1;--hln:#cfeeda;--hink:#2c8a49}
.chan-hero.t-pink{--hbg:#fdf1f6;--hln:#f8dce7;--hink:#bd3a68}
.chan-hero.t-red{--hbg:#fdf1ef;--hln:#f7dad4;--hink:#bb3b2c}
.chan-grid{display:grid;grid-template-columns:1fr 336px;gap:16px;margin-top:16px;align-items:start}
.artlist{padding:6px 20px 14px}
.artlist li{display:flex;gap:16px;padding:18px 0;border-bottom:1px solid var(--line-2)}
.artlist li:last-child{border-bottom:0}
.artlist .thumb{width:176px;height:116px;border-radius:12px;overflow:hidden;flex-shrink:0;background:#f3ece4;border:1px solid #f4ece3}
.artlist .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.artlist li:hover .thumb img{transform:scale(1.04)}
.artlist h3{margin:0;font:700 17px/1.5 var(--sans);letter-spacing:.1px}
.artlist p{margin:6px 0 0;font-size:13px;color:var(--ink-3);line-height:1.65;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.artlist .meta{margin-top:8px;font-size:12px;color:var(--muted);display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.subnav{display:flex;flex-wrap:wrap;gap:8px;padding:14px 18px}
.subnav a{font-size:13px;padding:6px 14px;border-radius:16px;border:1px solid var(--line);color:var(--ink-3)}
.subnav a:hover{border-color:#f9c4ae;color:var(--brand)}
.subnav a.on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.pager{display:flex;justify-content:center;gap:6px;padding:18px}
.pager a{min-width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--line);border-radius:11px;font-size:13px;background:#fff}
.pager a:hover{border-color:#f9c4ae;color:var(--brand)}
.pager a.on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}

/* ---------- 房源 / 楼盘速览表 ---------- */
.ptable{width:100%;border-collapse:collapse;font-size:13px}
.ptable th{
  text-align:left;font-weight:600;font-size:12px;color:var(--muted);white-space:nowrap;
  padding:10px 12px;background:#fdf8f3;border-bottom:1px solid var(--line-2);
}
.ptable td{padding:12px;border-bottom:1px solid var(--line-2);vertical-align:middle}
.ptable tr:last-child td{border-bottom:0}
.ptable tbody tr:hover{background:#fffcf9}
.ptable .nm{font-weight:700;font-size:13.5px;white-space:nowrap}
.ptable .nm small{display:block;font-weight:400;font-size:11.5px;color:var(--muted);margin-top:1px}
.ptable .price{color:var(--brand-d);font-weight:800;white-space:nowrap}
.ptable .price small{font-weight:400;color:var(--muted);font-size:11px}
.ptable .tag{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;background:var(--accent-l);color:var(--accent);white-space:nowrap}
.ptable .tag.hot{background:var(--brand-l);color:var(--brand)}
.ptable .go{color:var(--brand);font-size:12.5px;white-space:nowrap;font-weight:600}
.ptable tr:hover .go{text-decoration:underline}
.ptable-wrap{overflow-x:auto}
.ptable-foot{padding:10px 12px;font-size:11.5px;color:var(--muted);border-top:1px dashed var(--line)}

/* 表单校验提示（原型用，落 PHP 前替换为接口返回） */
.form-msg{display:none;font-size:12.5px;margin-top:9px;padding:8px 10px;border-radius:10px;line-height:1.5}
.form-msg.err{display:block;background:var(--brand-l);color:var(--brand-d)}
.form-msg.ok{display:block;background:var(--accent-l);color:var(--accent)}

/* ==========================================================
   论坛页
   ========================================================== */
.fwrap{display:grid;grid-template-columns:1fr 326px;gap:16px;margin-top:16px;align-items:start}
.bgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line-2)}
.bgrid a{background:#fff;display:flex;gap:12px;padding:16px;transition:.16s}
.bgrid a:hover{background:#fffaf5}
/* 8 个版块图标分色，避免整页只有一种橘色 */
.bgrid a:nth-child(8n+1) .ico{--c:#f2683c;--cl:#fff1e9}
.bgrid a:nth-child(8n+2) .ico{--c:#3d8bfd;--cl:#eaf2ff}
.bgrid a:nth-child(8n+3) .ico{--c:#8b6be0;--cl:#f1edfd}
.bgrid a:nth-child(8n+4) .ico{--c:#14a08a;--cl:#e6f7f3}
.bgrid a:nth-child(8n+5) .ico{--c:#f5a623;--cl:#fff6e6}
.bgrid a:nth-child(8n+6) .ico{--c:#4caf6d;--cl:#eaf7ee}
.bgrid a:nth-child(8n+7) .ico{--c:#e85d8a;--cl:#fdeef4}
.bgrid a:nth-child(8n+8) .ico{--c:#e0503f;--cl:#fdecea}
.bgrid .ico{width:46px;height:46px;border-radius:14px;background:var(--cl,var(--brand-l));display:grid;place-items:center;flex-shrink:0}
.bgrid .ico svg{width:22px;height:22px;stroke:var(--c,var(--brand));fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.bgrid .bt{flex:1;min-width:0}
.bgrid .bt b{display:block;font-size:15px;font-weight:700}
.bgrid .bt p{margin:3px 0 0;font-size:12px;color:var(--muted);line-height:1.5}
.bgrid .n{margin-left:auto;text-align:right;flex-shrink:0}
.bgrid .n b{font:800 16px/1.2 var(--sans);color:var(--brand)}
.bgrid .n span{font-size:11px;color:var(--muted)}
.thr{width:100%;border-collapse:collapse;font-size:13.5px}
.thr th{
  text-align:left;font-weight:600;font-size:12.5px;color:var(--muted);padding:10px 14px;
  background:#fdf8f3;border-bottom:1px solid var(--line-2);
}
.thr td{padding:12px 14px;border-bottom:1px solid var(--line-2);vertical-align:middle}
.thr tr:last-child td{border-bottom:0}
.thr tbody tr:hover{background:#fffcf9}
.thr .tt{font-size:14.5px;font-weight:600;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:520px}
.thr .sub{font-size:11.5px;color:var(--muted);margin-top:2px}
.thr .num{color:var(--muted);font-size:12.5px;white-space:nowrap}
.thr .who{color:var(--ink-3);font-size:12.5px;white-space:nowrap}
.hot-badge{font-size:10.5px;font-weight:600;color:#fff;background:var(--brand);padding:2px 6px;border-radius:8px;margin-right:5px;vertical-align:1px}
.post-btn{
  display:block;text-align:center;padding:13px;border-radius:12px;background:var(--brand);color:#fff;
  font:700 15px var(--sans);letter-spacing:.5px;margin:0 16px 14px;
  box-shadow:0 6px 16px rgba(242,104,60,.22);
}
.post-btn:hover{background:var(--brand-d);color:#fff}
.rules{padding:4px 16px 14px;font-size:12.5px;color:var(--ink-3);line-height:1.85}
.rules li{padding-left:14px;position:relative}
.rules li::before{content:"·";position:absolute;left:2px;color:var(--brand);font-weight:700}

/* ==========================================================
   右侧悬浮双按钮（全站 · 呼吸版）
   取自 nnbbs.com/南宁论坛V1版：圆形按钮 + 电话专属 2.2s 呼吸外圈
   微聊不呼吸 —— 两个都在动会显得廉价且抢注意力
   ========================================================== */
.sidekf{
  position:fixed;right:20px;top:50%;transform:translateY(-50%);
  z-index:90;display:flex;flex-direction:column;gap:32px;align-items:flex-end;
}
.sk-btn{
  width:56px;height:56px;border-radius:50%;position:relative;
  display:flex;align-items:center;justify-content:center;color:#fff;
  box-shadow:0 8px 22px rgba(120,80,50,.24);
  transition:transform .22s cubic-bezier(.34,1.4,.64,1),box-shadow .18s;
}
.sk-btn svg{width:25px;height:25px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sk-btn.tel{background:linear-gradient(135deg,#ff8a5c,#f2683c)}
.sk-btn.we{background:linear-gradient(135deg,#25bda1,#14a08a)}
.sk-btn:hover{transform:translateY(-2px) scale(1.04);color:#fff;box-shadow:0 12px 28px rgba(120,80,50,.3)}
/* 电话专属呼吸外圈 */
.sk-pulse{position:absolute;inset:0;border-radius:50%;border:2px solid var(--brand);animation:skbreath 2.2s infinite;pointer-events:none}
@keyframes skbreath{0%{transform:scale(1);opacity:.7}70%{transform:scale(1.55);opacity:0}100%{opacity:0}}
/* 悬停浮出的文字标签 */
.sk-lbl{
  position:absolute;right:66px;top:50%;transform:translateY(-50%) translateX(6px);
  background:#2b211a;color:#fff;font-size:12.5px;font-weight:700;white-space:nowrap;
  padding:7px 11px;border-radius:9px;opacity:0;pointer-events:none;transition:.2s;
  box-shadow:0 6px 18px rgba(43,33,26,.25);
}
.sk-lbl::after{
  content:"";position:absolute;right:-4px;top:50%;transform:translateY(-50%) rotate(45deg);
  width:8px;height:8px;background:#2b211a;
}
.sk-btn:hover .sk-lbl{opacity:1;transform:translateY(-50%) translateX(0)}
/* 电话圆钮下方的号码徽标 */
.sk-num{
  position:absolute;right:-14px;bottom:-17px;font-size:10px;font-weight:800;color:var(--ink-2);
  font-family:ui-monospace,monospace;letter-spacing:.3px;white-space:nowrap;
  background:#fff;border:1px solid var(--line);border-radius:5px;padding:1px 5px;
  box-shadow:0 2px 6px rgba(120,80,50,.1);
}
@media (max-width:1180px){
  .sidekf{right:10px;gap:30px}
  .sk-btn{width:52px;height:52px}
  .sk-btn svg{width:23px;height:23px}
  .sk-lbl{display:none}
  .sk-num{right:-8px;font-size:9.5px}
}

/* ==========================================================
   响应式
   ========================================================== */
@media (max-width:1180px){
  .nav a{padding:0 12px;font-size:14.5px}
  .nav a.forum{margin-left:0}
}
@media (max-width:1100px){
  .citybar a{padding:4px 9px;font-size:12.5px}
  .top-grid,.chan-grid,.fwrap,.forum-strip{grid-template-columns:minmax(0,1fr) 280px}
  .chan3{grid-template-columns:repeat(2,1fr)}
  .citymat{grid-template-columns:repeat(5,1fr)}
  .footer .cols{grid-template-columns:1fr 1fr}
}
@media (max-width:820px){
  .wrap{padding:0 14px}
  .chan3,.forum-strip{padding:0 14px}
  .header .wrap{flex-wrap:wrap;gap:12px;padding-top:14px;padding-bottom:14px}
  .searchbar{order:3;max-width:none;flex-basis:100%;height:42px}
  .sidekf{display:none}
  .header-kf{margin-left:auto;padding:5px 13px 5px 5px;border-radius:14px;gap:8px}
  .header-kf small{display:none}
  .header-kf b{font-size:14px}
  .header-kf .kf-ico{width:34px;height:34px;border-radius:11px}
  .logo-mark{width:40px;height:40px;font-size:19px;border-radius:12px}
  .logo-txt strong{font-size:18px}
  .tb-cities,.tb-slogan{display:none}
  .jingang .wrap{grid-template-columns:repeat(2,1fr);gap:9px}
  .hl-pic{min-height:210px}
  .headline{grid-template-columns:1fr;border-radius:var(--r)}
  .top-grid,.chan-grid,.fwrap,.forum-strip{grid-template-columns:1fr}
  .chan3{grid-template-columns:1fr}
  .bgrid{grid-template-columns:1fr}
  .citymat{grid-template-columns:repeat(3,1fr)}
  .artlist .thumb{width:112px;height:80px}
  .artlist h3{font-size:15.5px}
  .artlist p{display:none}
  .feed .thumb{width:106px;height:76px}
  .thr{table-layout:auto}
  .thr th:nth-child(2),.thr th:nth-child(4){display:none}
  .thr td:nth-child(2),.thr td:nth-child(4){display:none}
  .thr th:first-child{width:auto !important}
  .thr .tt{max-width:none}
  .thr th:nth-child(3){text-align:right;width:68px;padding:10px 14px 10px 4px}
  .thr td:nth-child(3){text-align:right;width:68px;padding:12px 14px 12px 4px}
  .ptable,.ptable tbody{display:block}
  .ptable thead{display:none}
  .ptable tr{display:block;padding:12px 14px;border-bottom:1px solid var(--line-2)}
  .ptable tr:last-child{border-bottom:0}
  .ptable td{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:3px 0;border:0}
  .ptable td::before{content:attr(data-l);color:var(--muted);font-size:12px;flex-shrink:0}
  .ptable td.nm{display:block;font-size:15.5px;padding-bottom:5px}
  .ptable td.nm::before{content:none}
  .ptable td.nm small{margin-top:2px}
  .ptable td.tar{justify-content:flex-end;padding-top:9px}
  .ptable td.tar::before{content:none}
  .ptable td.tar a{display:inline-block;padding:6px 15px;border-radius:12px;background:var(--brand-l);font-size:13px}
  .nav a{padding:0 13px;font-size:14.5px;line-height:34px}
  .nav a.forum{margin-left:0}
  .sec-hd{padding:12px 14px;gap:4px 8px}
  .sec-hd .sub{display:none}
  .sec-hd .more{margin-left:auto}
  .want{padding:12px 14px;gap:8px}
  .want .lb{flex-basis:100%;margin-bottom:2px}
  .citybar{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:6px}
  .citybar::-webkit-scrollbar{display:none}
  .citybar .lb,.citybar a{flex-shrink:0}
  .hl-pic{min-height:0;aspect-ratio:16/10}
  .hl-cap{left:14px;right:14px;bottom:12px}
  .hl-cap h3{font-size:16.5px;line-height:1.45}
  .hl-cap p{font-size:12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .hl-num{font-size:21px}
  body{padding-bottom:64px}
  .mbar{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:99;height:58px;
    background:rgba(255,255,255,.97);backdrop-filter:blur(8px);border-top:1px solid var(--line);
    box-shadow:0 -6px 20px rgba(120,80,50,.08);padding:0 10px;gap:8px;align-items:center;
  }
  .mbar a{
    flex:1;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;
    gap:6px;font-size:14.5px;font-weight:700;
  }
  .mbar a.tel{background:var(--brand);color:#fff;box-shadow:0 4px 14px rgba(242,104,60,.28);font-size:14px}
  .mbar a.we{background:var(--accent);color:#fff;box-shadow:0 4px 14px rgba(20,160,138,.26);font-size:14px}
  .mbar a.post{background:#fdf3ea;color:var(--ink-2);font-size:14px}
  .mbar svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
}
@media (max-width:520px){
  .jingang .wrap{grid-template-columns:repeat(2,1fr);gap:8px;padding-top:12px;padding-bottom:12px}
  .jg{padding:8px 10px;gap:9px;border-radius:12px}
  .jg-ico{width:34px;height:34px;border-radius:11px}
  .jg-ico svg{width:18px;height:18px}
  .jg b{font-size:14px}
  .jg-t span{display:none}
  .sec-hd{padding:13px 14px}
  .sec-hd h2{font-size:16.5px}
  .feed,.artlist{padding-left:14px;padding-right:14px}
  .citymat{grid-template-columns:repeat(2,1fr)}
  .chan-hero{padding:20px 16px;border-radius:var(--r)}
  .chan-hero h1{font-size:21px}
  .footer .cols{grid-template-columns:1fr;gap:8px;padding:24px 0 14px}
}

/* ==========================================================
   内容详情页（文章页）
   ========================================================== */
.post-wrap{display:grid;grid-template-columns:1fr 336px;gap:16px;margin-top:12px;align-items:start}
.post{padding:26px 30px 28px}
.post h1{margin:0;font:800 26px/1.42 var(--sans);letter-spacing:.2px}
.post-meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:12px;font-size:12.5px;color:var(--muted);padding-bottom:14px;border-bottom:1px solid var(--line-2)}
.post-lead{margin:18px 0 0;padding:14px 16px;background:#fdf8f3;border-left:3px solid var(--brand);border-radius:0 10px 10px 0;font-size:14.5px;line-height:1.85;color:var(--ink-2)}
.post-body{margin-top:18px;font-size:15.5px;line-height:1.95;color:var(--ink-2)}
.post-body h2{margin:26px 0 10px;font:800 18.5px/1.4 var(--sans);color:var(--ink)}
.post-body h2:first-child{margin-top:0}
.post-body p{margin:0 0 14px}
.post-body strong{color:var(--ink);font-weight:700}
.post-box{margin:20px 0;padding:15px 18px;background:var(--accent-l);border-radius:12px;border:1px solid #cdeee6}
.post-box b{display:block;font-size:14px;color:#0d8271;margin-bottom:8px;font-weight:700}
.post-box li{position:relative;padding-left:16px;font-size:13.5px;line-height:1.9;color:var(--ink-2)}
.post-box li::before{content:"✓";position:absolute;left:0;color:var(--accent);font-weight:700}
.post-warn{margin:20px 0;padding:15px 18px;background:#fff8ec;border-radius:12px;border:1px solid #f6e3c2}
.post-warn b{display:block;font-size:14px;color:#b0700a;margin-bottom:8px}
.post-warn li{position:relative;padding-left:16px;font-size:13.5px;line-height:1.9;color:#7a5a20}
.post-warn li::before{content:"!";position:absolute;left:3px;font-weight:800;color:#d99a1a}
.post-table{width:100%;border-collapse:collapse;font-size:13.5px;margin:16px 0}
.post-table th{text-align:left;font-size:12.5px;color:var(--muted);font-weight:600;padding:9px 12px;background:#fdf8f3;border-bottom:1px solid var(--line-2)}
.post-table td{padding:10px 12px;border-bottom:1px solid var(--line-2)}
.post-table tr:last-child td{border-bottom:0}
.post-table .price{color:var(--brand-d);font-weight:700;white-space:nowrap}
.post-convert{margin-top:22px;padding:18px;border-radius:14px;background:linear-gradient(135deg,#fff4ec,#f4fbf9);border:1px solid #f7ddd0;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.post-convert .tx{flex:1;min-width:200px}
.post-convert b{display:block;font:800 17px/1.35 var(--sans)}
.post-convert p{margin:5px 0 0;font-size:12.5px;color:var(--ink-3);line-height:1.7}
.post-convert .btns{display:flex;gap:9px;flex-wrap:wrap}
.post-convert .btns a{padding:11px 18px;border-radius:10px;font:700 14.5px var(--sans);white-space:nowrap}
.post-convert .btns a.tel{background:var(--brand);color:#fff;box-shadow:0 6px 16px rgba(242,104,60,.24)}
.post-convert .btns a.tel:hover{background:var(--brand-d);color:#fff}
.post-convert .btns a.wx{background:var(--accent);color:#fff}
.post-convert .btns a.wx:hover{background:#0f8a75;color:#fff}
.post-rel{margin-top:22px;padding-top:16px;border-top:1px dashed var(--line)}
.post-rel b{font-size:14px;display:block;margin-bottom:6px;color:var(--ink)}
.post-rel li{padding:9px 0;font-size:14px;border-bottom:1px dashed var(--line-2);line-height:1.6}
.post-rel li:last-child{border-bottom:0}
.post-rel li a{color:var(--ink-2)}
.post-rel li a:hover{color:var(--brand)}
.post-note{margin-top:18px;font-size:12px;color:#a99e94;line-height:1.7}
@media (max-width:1100px){
  .post-wrap{grid-template-columns:1fr}
}
@media (max-width:820px){
  .post{padding:18px 16px 20px}
  .post h1{font-size:20px;line-height:1.5}
  .post-body{font-size:15px;line-height:1.9}
  .post-lead{font-size:14px}
  .post-convert .btns{width:100%}
  .post-convert .btns a{flex:1;text-align:center;padding:11px 10px;font-size:14px}
}

/* ==========================================================
   论坛版块页 / 帖子页（V6 版块功能）
   ========================================================== */
.fbhead{display:flex;gap:18px;align-items:flex-start;padding:22px 24px;margin-top:12px;flex-wrap:wrap}
.fb-ico{width:54px;height:54px;border-radius:16px;background:var(--cl,var(--brand-l));display:grid;place-items:center;flex-shrink:0}
.fb-ico svg{width:26px;height:26px;stroke:var(--c,var(--brand));fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.fb-hd{flex:1;min-width:240px}
.fb-hd h1{margin:0;font:800 23px/1.3 var(--sans);letter-spacing:.2px}
.fb-hd p{margin:8px 0 0;font-size:13px;color:var(--ink-3);line-height:1.75;max-width:680px}
.fb-hd .kv{display:flex;gap:18px;margin-top:12px;font-size:12.5px;color:var(--muted);flex-wrap:wrap}
.fb-hd .kv b{color:var(--ink-2);font-weight:700}
.fb-hd .kv em{font-style:normal;color:var(--brand);font-weight:700}
.fb-act{display:flex;flex-direction:column;gap:8px;min-width:152px}
.fb-act a{padding:11px 16px;border-radius:10px;text-align:center;font:700 14px var(--sans);white-space:nowrap}
.fb-act a.b1{background:var(--brand);color:#fff;box-shadow:0 6px 16px rgba(242,104,60,.22)}
.fb-act a.b1:hover{background:var(--brand-d);color:#fff}
.fb-act a.b2{background:#fdf7f1;color:var(--ink-2)}
.fb-act a.b2:hover{background:var(--brand-l);color:var(--brand)}
.fnotice{display:flex;gap:10px;align-items:flex-start;margin-top:12px;padding:11px 16px;background:#fff8ec;border:1px solid #f6e3c2;border-radius:12px;font-size:12.5px;color:#7a5a20;line-height:1.7}
.fnotice b{flex-shrink:0;background:var(--gold);color:#fff;font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px;letter-spacing:.3px}
.fsort{display:flex;align-items:center;gap:2px;padding:0 14px;border-bottom:1px solid var(--line-2);overflow-x:auto;scrollbar-width:none}
.fsort::-webkit-scrollbar{display:none}
.fsort a{padding:12px 12px;font-size:14px;color:var(--ink-3);border-bottom:2.5px solid transparent;white-space:nowrap;flex-shrink:0}
.fsort a:hover{color:var(--brand)}
.fsort a.on{color:var(--brand);font-weight:700;border-bottom-color:var(--brand)}
.fsort .sp{margin-left:auto;flex-shrink:0}
.fsort .sp a{border-bottom:0;color:var(--brand);font-size:13px;padding-right:2px}
.badge-pin{font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:5px;background:var(--brand);color:#fff;margin-right:5px;vertical-align:1px}
.badge-dig{font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:5px;background:var(--gold);color:#fff;margin-right:5px;vertical-align:1px}
.fpost-user{display:flex;align-items:center;gap:11px;margin-top:16px;padding:14px 0;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
.avatar{width:40px;height:40px;border-radius:50%;background:var(--brand-l);color:var(--brand);display:grid;place-items:center;font:700 15px var(--sans);flex-shrink:0}
.avatar.g{background:var(--accent-l);color:var(--accent)}
.fpost-user .who b{display:block;font-size:14px;font-weight:700}
.fpost-user .who span{display:block;font-size:11.5px;color:var(--muted);margin-top:2px}
.fpost-user .lf{margin-left:auto;font-size:11.5px;color:#b3a89e;flex-shrink:0}
.post-foot{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
.post-foot a{font-size:13px;padding:7px 14px;border-radius:8px;border:1px solid var(--line);color:var(--ink-3);background:#fff}
.post-foot a:hover{border-color:var(--brand);color:var(--brand)}
.flist-hd{display:flex;align-items:baseline;gap:8px;padding:15px 20px;border-bottom:1px solid var(--line-2)}
.flist-hd h2{margin:0;font:800 17px/1.2 var(--sans);padding-left:11px;position:relative}
.flist-hd h2::before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:3px;border-radius:2px;background:var(--brand)}
.flist-hd span{font-size:12.5px;color:var(--muted)}
.flist li{display:flex;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line-2)}
.flist li:last-child{border-bottom:0}
.flist .bd{flex:1;min-width:0}
.flist .hd{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.flist .hd b{font-size:13.5px;font-weight:700}
.flist .hd span{font-size:11.5px;color:var(--muted)}
.flist .hd .floor{margin-left:auto;font-size:11.5px;color:#b3a89e}
.flist .tx{margin:8px 0 0;font-size:14.5px;line-height:1.85;color:var(--ink-2)}
.fjoin{padding:20px;display:flex;gap:18px;align-items:center;flex-wrap:wrap;background:#fdfaf6}
.fjoin .tx{flex:1;min-width:220px}
.fjoin .tx b{display:block;font:800 17px/1.3 var(--sans)}
.fjoin .tx p{margin:6px 0 0;font-size:12.5px;color:var(--ink-3);line-height:1.75}
.fjoin .btns{display:flex;gap:10px;flex-wrap:wrap}
.fjoin .btns a{padding:11px 18px;border-radius:10px;font:700 14.5px var(--sans);white-space:nowrap}
.fjoin .btns a.wx{background:var(--accent);color:#fff}
.fjoin .btns a.wx:hover{background:#0f8a75;color:#fff}
.fjoin .btns a.tel{background:var(--brand);color:#fff}
.fjoin .btns a.tel:hover{background:var(--brand-d);color:#fff}
.fpostnav{display:flex;gap:14px;padding:16px 20px;flex-wrap:wrap;font-size:13.5px}
.fpostnav .it{flex:1;min-width:220px;color:var(--ink-3)}
.fpostnav .it span{display:block;font-size:11.5px;color:var(--muted);margin-bottom:3px}
.fpostnav .it a{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-2)}
.fpostnav .it a:hover{color:var(--brand)}
.fpostnav .it.nx{text-align:right}
@media (max-width:820px){
  .fbhead{padding:16px 14px}
  .fb-hd h1{font-size:19px}
  .fb-act{width:100%;flex-direction:row;min-width:0}
  .fb-act a{flex:1;padding:10px 8px;font-size:13.5px}
  .flist li,.flist-hd,.fjoin,.fpostnav{padding-left:14px;padding-right:14px}
  .fjoin .btns{width:100%}
  .fjoin .btns a{flex:1;text-align:center;padding:11px 10px;font-size:14px}
  .fpostnav .it{min-width:100%}
  .fpostnav .it.nx{text-align:left}
}

/* ==========================================================
   手机端表格标题换行修正（V6.6）
   .thr 标题原为 nowrap，长标题在 ≤820px 会把卡片最小宽度
   撑到 440px 以上，导致整页横向溢出；此处改为两行截断。
   ========================================================== */
@media (max-width:820px){
  .thr{table-layout:auto;width:100%;min-width:0}
  .thr .tt{
    white-space:normal;max-width:100%;display:-webkit-box;
    -webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
    line-height:1.5;
  }
  .thr .num,.thr .who,.thr .sub{white-space:normal}
  .bgrid{grid-template-columns:minmax(0,1fr)}
  .bgrid a{padding:13px 12px}
  .bgrid .ico{width:40px;height:40px;border-radius:12px}
  .bgrid .bt b{font-size:14.5px}
  .bgrid .bt p{font-size:11.5px}
  .bgrid .n b{font-size:15px}
}
@media (max-width:520px){
  .thr .tt{-webkit-line-clamp:3;font-size:14px}
  .fb-hd{min-width:0}
  .fb-hd .kv{gap:12px;font-size:12px}
}

/* ==========================================================
   手机端栅格与表单收缩修正（V6.6）
   1fr 轨道的自动最小尺寸等于内容 min-content：侧栏 <select>
   里最长选项文字会把整列顶到 590px，导致整站横向溢出。
   这里把轨道改成 minmax(0,1fr)，并约束表单控件可收缩。
   ========================================================== */
@media (max-width:820px){
  .top-grid,.forum-strip,.chan-grid,.fwrap,.post-wrap{grid-template-columns:minmax(0,1fr)}
  .aside,.aside>*,.card,.card>*{min-width:0}
  .order .fld{flex-wrap:wrap}
  .order input,.order select,.order textarea{
    min-width:0;width:100%;max-width:100%;box-sizing:border-box;
  }
  .order select{text-overflow:ellipsis}
  .thr{table-layout:fixed}
  .thr th:first-child{width:auto !important}
  .thr th:nth-child(3),.thr td:nth-child(3){width:54px !important;padding-left:4px;padding-right:6px}
  .thr th:last-child,.thr td:last-child{width:74px !important}
  .headline,.hl-pic,.hero,.jgb{min-width:0}
}

/* ==========================================================
   电话 / 微聊 双按钮（v6.8，参考南宁时空「立即拨打 / 微聊顾问」）
   全站凡电话号码外显处统一用这组；颜色跟 --brand / --accent 走。
   ========================================================== */
.tel-duo{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tel-duo .lb{font-size:12.5px;color:#8b8078;white-space:nowrap}
.tel-duo a{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:40px;padding:0 18px;border-radius:8px;font:700 14.5px var(--sans);white-space:nowrap;transition:.18s}
.tel-duo a svg{width:16px;height:16px;fill:currentColor;flex-shrink:0}
.tel-duo .td-call{background:linear-gradient(135deg,#f4753c,#e8552e);color:#fff;box-shadow:0 6px 14px rgba(232,85,46,.26)}
.tel-duo .td-call:hover{background:var(--brand-d);color:#fff;transform:translateY(-1px);box-shadow:0 9px 18px rgba(232,85,46,.32)}
.tel-duo .td-we{background:#fff;color:var(--accent);border:1px solid #bfe0d4}
.tel-duo .td-we:hover{border-color:var(--accent);background:#f2faf7;color:var(--accent);transform:translateY(-1px)}
/* 侧栏 order 底部：原来的号码行改为双按钮 */
.order .tel-duo{display:block;border-top:1px dashed var(--line);padding-top:12px;margin-top:11px}
.order .tel-duo .lb{display:block;margin-bottom:9px}
/* hotline：双按钮为主，号码退为次要小字 */
.hotline .tel-duo{justify-content:center;margin-bottom:10px}
.hotline .tel-duo .td-call,.hotline .tel-duo .td-we{flex:1;max-width:172px}
.hotline .hl-num{font:700 13.5px/1.5 var(--sans);color:var(--ink-3);letter-spacing:.6px}
/* 内容页 / 论坛页转化条沿用同一套按钮皮肤 */
.post-convert .btns a.td-call,.fjoin .btns a.td-call{background:linear-gradient(135deg,#f4753c,#e8552e);color:#fff;border:0;box-shadow:0 6px 14px rgba(232,85,46,.26)}
.post-convert .btns a.td-call:hover,.fjoin .btns a.td-call:hover{background:var(--brand-d);color:#fff}
.post-convert .btns a.td-we,.fjoin .btns a.td-we{background:#fff;color:var(--accent);border:1px solid #bfe0d4;box-shadow:none}
.post-convert .btns a.td-we:hover,.fjoin .btns a.td-we:hover{border-color:var(--accent);background:#f2faf7;color:var(--accent)}
.post-convert .btns a svg,.fjoin .btns a svg{width:15px;height:15px;fill:currentColor;flex-shrink:0}
/* 手机端：双按钮铺满一行，拇指好点 */
@media (max-width:820px){
  .tel-duo{width:100%}
  .tel-duo a{flex:1;padding:0 10px}
  .order .tel-duo a{width:100%}
  .post-convert .btns a.td-call,.fjoin .btns a.td-call,.post-convert .btns a.td-we,.fjoin .btns a.td-we{flex:1;text-align:center;padding:11px 8px;font-size:14px}
  .hotline .tel-duo .td-call,.hotline .tel-duo .td-we{max-width:none}
}

/* v6.8 补充：city 页热线卡没有 .hotline 祖先，号码行紧跟着双按钮出现，
   用相邻选择器统一降级为次要小字，两种结构都覆盖 */
.tel-duo + .hl-num{font:700 13.5px/1.5 var(--sans);color:var(--ink-3);letter-spacing:.6px;margin-top:2px}

/* ==========================================================
   v6.9 微调：双按钮间距与微聊按钮辨识度
   - 橙钮阴影会压到相邻白钮，把间距从 10px 拉到 14px
   - 微聊钮白底在米纸背景上不够醒目：加青碧描边 + 淡青底
   - 手机端两钮之间留缝，不再各占一半贴死
   ========================================================== */
.tel-duo{gap:14px}
.tel-duo .td-we{background:#eef8f4;border:1.5px solid var(--accent);color:#0e7d68}
.tel-duo .td-we:hover{background:#dff2ec;color:#0e7d68}
.post-convert .btns a.td-we,.fjoin .btns a.td-we{background:#eef8f4;border:1.5px solid var(--accent);color:#0e7d68}
@media (max-width:820px){
  .tel-duo{gap:12px}
  .tel-duo a{flex:1 1 calc(50% - 6px);padding:0 8px}
  .order .tel-duo a{width:auto}
}

/* v6.10 修正：.order .tel-duo 之前是 display:block，flex 的 gap 不生效，
   两个按钮只隔一个空格几乎贴死；改回 flex 才有真实间距 */
.order .tel-duo{display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.order .tel-duo .lb{width:100%}

/* v6.13：card 直包 tel-duo（版块页「相关服务」卡等）按钮居中，不再左贴边 */
.card > .tel-duo{justify-content:center;margin:2px 0 10px}
