/* ============================================================
   规谷通 · Web 对外门户 · 全站样式
   依据：outputs/规谷通_对外门户_UI_V5.html（UI 定稿，视觉规范照抄）
   ------------------------------------------------------------
   色板（方案 V5 §4 定稿）：
     主色 #1E6FD9 ｜ 主色深 #154C96 ｜ 强调蓝 #4A9EFF
     卡片底 #EAF3FE ｜ 区块底 #F2F7FE ｜ 导航底色 #DCECFB
     党建红 #E24B4A ｜ 浅红底 #FEF4F4
     加盟区底 #E8F1FD ＋ 边框 #C6DDFA ｜ 页脚 #12304F（全站唯一深色块）
     圆角：卡片 12/14px、小件 8px；边框 0.5px；数字 tabular-nums
   ============================================================ */

:root{
  --p:#1E6FD9;      /* 主色 科技蓝 */
  --p-d:#154C96;
  --p-l:#EAF3FE;    /* 极浅蓝 卡片底 */
  --p-l2:#F2F7FE;   /* 极浅蓝 区块底 */
  --sky:#4A9EFF;    /* 强调蓝 */
  --pt:#E24B4A;     /* 党建红 */
  --pt-l:#FEF4F4;
  --t:#1A1D23; --t2:#5A626E; --t3:#8C949F;
  --ln:rgba(30,111,217,.14);
  --ln2:rgba(30,111,217,.26);
  --w:#fff;
  --r:12px; --rs:8px;
  /* R1 Q3=B：全站区块底色节奏统一（老大定：参考首页）
     --sec-alt = 交替区块底色（比原 --p-l2 更中性，避免蓝味过重）
     --card-sh = 卡片统一阴影，与首页金刚区一致 */
  --sec-alt:#F6F8FB;
  --card-sh:0 2px 10px rgba(30,111,217,.13);
  --card-bd:rgba(30,111,217,.14);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  color:var(--t);background:var(--w);font-size:13.5px;line-height:1.65;-webkit-font-smoothing:antialiased;padding-top:58px}
a{cursor:pointer;color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none;font-size:inherit;color:inherit}
input{font-family:inherit;border:none;outline:none;background:none}
select{font-family:inherit;font-size:inherit;color:inherit}
img{border:none}
.wrap{max-width:1180px;margin:0 auto;padding:0 26px}
.nm{font-variant-numeric:tabular-nums}
.hide{display:none !important}

/* ===== header —— 天蓝底色（清淡不压） ===== */
header{position:fixed;top:0;left:0;right:0;z-index:99;background:#DCECFB;border-bottom:.5px solid rgba(30,111,217,.22)}
.nav{display:flex;align-items:center;gap:30px;height:58px}
.logo{display:flex;align-items:center;gap:9px;font-size:16px;font-weight:500;color:var(--p-d);letter-spacing:.6px;flex-shrink:0}
.logo .mk{width:24px;height:24px;border-radius:7px;background:var(--p);position:relative;flex-shrink:0}
.logo .mk::before{content:"";position:absolute;inset:7px;border-radius:2.5px;background:#fff}
.menu{display:flex;gap:24px;font-size:14px;color:var(--t2)}
.menu a{padding:4px 0;border-bottom:2px solid transparent}
.menu a:hover{color:var(--p)}
.menu a.on{color:var(--p);font-weight:500;border-bottom-color:var(--p)}
.menu a.pt{color:var(--pt)}
.menu a.pt.on{border-bottom-color:var(--pt)}
.navr{margin-left:auto;display:flex;align-items:center;gap:10px}
.bt{font-size:13.5px;padding:7px 16px;border-radius:var(--rs);border:.5px solid var(--ln2);color:var(--t2);background:#fff}
.bt:hover{border-color:var(--p);color:var(--p)}
.bt.p{background:var(--p);border-color:var(--p);color:#fff;font-weight:500}
.bt.p:hover{background:var(--p-d);border-color:var(--p-d);color:#fff}
.bt.sm{padding:5px 13px;font-size:12.5px}
.bt.pt{background:var(--pt);border-color:var(--pt);color:#fff}

/* ===== page ===== */
.page{display:none}
.page.on{display:block;animation:fi .22s ease}
@keyframes fi{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
/* 页头带：面包屑 + 页名 + 简介，压缩各 TAB 页顶部空白 */
.pHd{background:linear-gradient(180deg,#E9F3FE 0%,#DCEBFD 100%);border-bottom:.5px solid var(--ln);padding:19px 0 21px}
.pHd .crumb{padding:0 0 8px}
.pHd h1{font-size:23px;font-weight:500;letter-spacing:.4px;color:var(--t)}
.pHd p{font-size:13px;color:var(--t2);margin-top:8px;line-height:1.8;max-width:780px}
.pHd.pt{background:linear-gradient(180deg,#FFF6F6 0%,#FDECEC 100%);border-bottom-color:#F2C9C8}
.pHd.pt h1{color:#A32D2D}
.pHd.pt .crumb b{color:#A32D2D}
.crumb{font-size:12px;color:var(--t3)}

/* 生活服务页顶部居中宣传语（类首页 hero，蓝底白字居中） */
.lfHero{background:var(--p);border-bottom:.5px solid var(--ln2);padding:42px 0 38px;text-align:center;color:#fff}
.lfHero .crumb{padding:0 0 12px;color:rgba(255,255,255,.82)}
.lfHero .crumb b{color:#fff}
.lfHero h1{font-size:30px;font-weight:500;line-height:1.32;letter-spacing:.5px;color:#fff}
.lfHero h1 em{font-style:normal;color:#CDEBFF}
.lfHero .sub{font-size:14.5px;line-height:1.7;color:rgba(255,255,255,.92);margin:12px auto 0;max-width:620px}
.lfHero .bt.p{margin-top:22px;background:#fff;color:var(--p);border-color:#fff}
.lfHero .bt.p:hover{background:#EAF3FE}

/* 发布需求两栏：左说明 / 右表单 */
.cqWrap{display:flex;gap:30px;align-items:flex-start;flex-wrap:wrap}
.cqIntro{flex:1 1 240px;min-width:240px}
.cqIntro .eb{margin-bottom:10px}
.cqIntro h2{font-size:22px;font-weight:500;letter-spacing:.4px;color:var(--t)}
.cqIntro p{font-size:13.5px;color:var(--t2);margin-top:9px;line-height:1.85;max-width:340px}
.cqIntro .cqNote{margin-top:6px;font-size:12px;color:var(--t3)}
.cqForm{flex:1 1 300px;min-width:280px}
.cqWrap .cqForm{margin-top:0}
.cqForm .cqT{font-size:15px;font-weight:500;color:var(--t);margin-bottom:12px}
@media(max-width:720px){.cqWrap{gap:18px}.cqIntro,.cqForm{flex:1 1 100%}}

/* R1-G：周边好店页居中 Hero（蓝底白字 + 搜索店）—— 全站第三个蓝 Hero，与首页/生活服务统一 */
.mcHero{background:var(--p);border-bottom:.5px solid var(--ln2);padding:42px 0 38px;text-align:center;color:#fff}
.mcHero .crumb{padding:0 0 12px;color:rgba(255,255,255,.82)}
.mcHero .crumb b{color:#fff}
.mcHero h1{font-size:30px;font-weight:500;line-height:1.32;letter-spacing:.5px;color:#fff}
.mcHero h1 em{font-style:normal;color:#CDEBFF}
.mcHero .sub{font-size:14.5px;line-height:1.7;color:rgba(255,255,255,.92);margin:12px auto 0;max-width:620px}
.mcSearch{display:flex;align-items:center;gap:10px;max-width:560px;margin:22px auto 0;
  background:#fff;border-radius:100px;padding:6px 6px 6px 20px;box-shadow:0 6px 20px rgba(8,30,64,.14)}
.mcSI{flex:0 0 auto;width:17px;height:17px;fill:none;stroke:#9aa4b2;stroke-width:1.8;stroke-linecap:round}
.mcSearch input{flex:1;min-width:0;border:0;outline:none;background:transparent;font-size:14px;font-family:inherit;color:var(--t)}
.mcSearch input::placeholder{color:#9aa4b2}
.mcSb{flex:0 0 auto;background:var(--p);color:#fff;border-radius:100px;padding:10px 24px;font-size:13.5px;font-weight:500}
.mcSb:hover{background:var(--p-d)}
.mcHot{margin-top:14px;font-size:12px;color:rgba(255,255,255,.85)}
.mcHot b{font-weight:400;color:#fff}
.mcHot span{display:inline-block;margin:0 4px 6px;padding:2px 11px;border-radius:100px;
  background:rgba(255,255,255,.16);border:.5px solid rgba(255,255,255,.32);cursor:pointer;transition:.15s}
.mcHot span:hover{border-color:#CDEBFF;color:#CDEBFF}
@media(max-width:640px){
  .mcHero{padding:30px 0 26px}
  .mcHero h1{font-size:23px}
  .mcSearch{padding:5px 5px 5px 16px;gap:8px}
  .mcSb{padding:9px 18px}
}
.crumb b{color:var(--t2);font-weight:400}
/* 页头带之后的首个内容区块：顶部留白收窄 */
.page>.wrap>section.bl:first-child{padding-top:24px}

/* ===== hero：首页即找房，居中布局，不放规模数字 ===== */
.hero{background:#CFE3FB;border-bottom:.5px solid var(--ln2);padding:30px 0 26px;text-align:center}
.tg{display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:1.6px;color:var(--p);background:#fff;
  border:.5px solid var(--ln2);padding:4px 12px;border-radius:100px;margin-bottom:11px}
.tg i{width:5px;height:5px;border-radius:50%;background:var(--p);display:block}
/* R1-B：主标题改为房子宣传语，字号上调做主视觉；副标题压成一行，不再出现三行小字 */
.hero h1{font-size:34px;font-weight:500;line-height:1.3;letter-spacing:.6px;color:var(--t)}
.hero h1 em{font-style:normal;color:var(--p)}
.hero .sub{font-size:14.5px;line-height:1.7;color:var(--t2);margin:12px auto 0;max-width:620px}
/* 找房搜索框 —— 首页主入口，要醒目 */
.sbox{display:flex;margin:16px auto 0;max-width:660px;background:#fff;border:1px solid var(--ln2);border-radius:10px;overflow:hidden}
.sbox input{flex:1;padding:13px 18px;font-size:14px;color:var(--t)}
.sbox input::placeholder{color:var(--t3)}
.sbox .sb{background:var(--p);color:#fff;padding:0 32px;font-size:14px;font-weight:500;flex-shrink:0}
.sbox .sb:hover{background:var(--p-d)}
.hot{margin-top:11px;font-size:12.5px;color:var(--t3);display:flex;gap:9px;justify-content:center;flex-wrap:wrap;align-items:center}
.hot b{font-weight:400;color:var(--t2)}
.hot span{padding:3px 11px;border:.5px solid var(--ln);border-radius:100px;background:#fff;color:var(--t2);cursor:pointer}
.hot span:hover{border-color:var(--p);color:var(--p)}
.hcta{display:flex;gap:12px;margin-top:24px}
.hcta .bt{padding:11px 26px;font-size:14px}
.more2{text-align:center;margin-top:26px}

/* ===== section ===== */
section.bl{padding:46px 0}
/* R1 Q3=B：交替区块底色统一为中性浅底（原 --p-l2 蓝味重，与首页白底观感不一致） */
section.bl.alt{background:var(--sec-alt)}
.findBl{padding-top:26px !important;padding-bottom:24px !important}
/* 每页最后一个区块：底部留白收窄，避免"最下面空一片" */
.page section.bl:last-of-type{padding-bottom:26px}
.sh{margin-bottom:28px;display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap}
.sh h2{font-size:24px;font-weight:500;letter-spacing:.4px}
.sh p{font-size:13.5px;color:var(--t2);margin-top:9px;line-height:1.85;max-width:660px}
.sh .more{margin-left:auto;font-size:13px;color:var(--p);flex-shrink:0;cursor:pointer}
/* R1 Q3=B：区块小标签统一为「胶囊」样式（全站一致，观感对齐首页卡片语言） */
.eb{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;letter-spacing:1.5px;color:var(--p-d);
  background:var(--p-l);border:1px solid var(--card-bd);border-radius:100px;padding:4px 12px;margin-bottom:10px}
.eb::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--p);flex:0 0 auto}

/* ===== 四项总览 ===== */
.ov{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.ov .it{background:var(--p-l);border:.5px solid var(--ln);border-radius:var(--r);padding:24px 24px}
.ov .it .n{font-size:34px;font-weight:500;color:var(--p-d);line-height:1.1;letter-spacing:-.5px}
.ov .it .n small{font-size:14px;font-weight:400;color:var(--t3);margin-left:4px}
.ov .it .k{font-size:14px;color:var(--t);margin-top:8px;font-weight:500}
.ov .it .s{font-size:12px;color:var(--t3);margin-top:4px}

/* ===== 房源卡 ===== */
.hg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.hc{background:#fff;border:.5px solid var(--ln);border-radius:var(--r);overflow:hidden;cursor:pointer;transition:border-color .16s,transform .16s}
.hc:hover{border-color:var(--p);transform:translateY(-2px)}
.hc .th{height:200px;display:flex;align-items:center;justify-content:center;font-size:12.5px;position:relative;background:var(--p-l);color:var(--p-d)}
.hc .th.n{background:repeating-linear-gradient(135deg,#F5F8FC,#F5F8FC 9px,#EDF2F9 9px,#EDF2F9 18px);color:var(--t3)}
.hc .th img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.hc .th.v{background:#E7F0FB}
.hc .th.v .play{width:38px;height:38px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;position:relative;z-index:2}
.hc .th.v .play::before{content:"";width:0;height:0;border-left:11px solid var(--p);border-top:7px solid transparent;border-bottom:7px solid transparent;margin-left:3px}
.hc .th .vtag{position:absolute;bottom:9px;left:10px;z-index:2;font-size:11px;padding:2px 8px;border-radius:100px;background:rgba(255,255,255,.94);color:var(--p-d)}
.hc .pg{position:absolute;top:10px;left:10px;font-size:11.5px;padding:3px 9px;border-radius:100px;background:rgba(255,255,255,.94);color:var(--p-d);border:.5px solid var(--ln);z-index:2}
.hc .bd{padding:14px 16px 16px}
.hc .n1{font-size:15px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hc .m1{font-size:12.5px;color:var(--t2);margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hc .f1{display:flex;align-items:baseline;margin-top:11px}
.hc .pr{font-size:20px;font-weight:500;color:var(--pt);letter-spacing:-.3px}
.hc .pr small{font-size:12px;font-weight:400;color:var(--t3)}
.hc .f1 .rr{margin-left:auto;font-size:11.5px;color:var(--t3)}
/* P3-11：押金与面积补间距 + 分隔点，避免两个字段视觉上黏成一串 */
.hc .f1 .ar{margin-left:9px;padding-left:9px;border-left:1px solid var(--ln2)}
.hc .a1{font-size:11.5px;color:var(--t3);margin-top:10px;padding-top:10px;border-top:.5px solid var(--ln);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ===== 服务入口 ===== */
.sv{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.sv .it{background:var(--p-l);border:.5px solid var(--ln);border-radius:var(--r);padding:22px 18px;text-align:center;cursor:pointer;transition:border-color .16s,transform .16s}
.sv .it:hover{border-color:var(--p);transform:translateY(-2px)}
.sv .ic{width:44px;height:44px;border-radius:12px;background:#fff;margin:0 auto 12px;display:flex;align-items:center;justify-content:center}
.sv .ic svg{width:21px;height:21px;stroke:var(--p);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.sv .it.pt .ic svg{stroke:var(--pt)}
.sv .n2{font-size:14px;font-weight:500}
.sv .d2{font-size:12px;color:var(--t2);margin-top:6px;line-height:1.7}

/* ===== 众包发布 ===== */
.crowdPub{display:grid;grid-template-columns:1.12fr .88fr;gap:16px}
.cpCard{background:#fff;border:1px solid var(--ln);border-radius:var(--r);padding:24px}
.cpT{font-size:16px;font-weight:500}
.cpG{margin-top:16px;display:flex;flex-direction:column;gap:10px}
.cpF{display:flex;align-items:center;gap:12px;border:.5px solid var(--ln2);border-radius:var(--rs);padding:11px 14px}
.cpF .k{width:66px;color:var(--t3);flex-shrink:0;font-size:12.5px}
.cpF .v{color:var(--t3);flex:1;font-size:13px}
.cpB{margin-top:18px;width:100%;text-align:center;padding:12px;border-radius:var(--rs);background:var(--p);color:#fff;font-size:14px;font-weight:500}
.cpB:hover{background:var(--p-d)}
.cpNote{margin-top:11px;font-size:12px;color:var(--t3);line-height:1.75}
.steps{margin-top:15px;display:flex;flex-direction:column}
.step{display:flex;gap:11px;align-items:flex-start;padding:8px 0}
.step .d{width:9px;height:9px;border-radius:50%;background:#fff;border:2px solid var(--ln2);flex-shrink:0;margin-top:6px}
.step.on .d,.step.done .d{border-color:var(--p);background:var(--p)}
.step b{color:var(--t2);font-weight:400;display:block;font-size:13px}
.step.on b{color:var(--p);font-weight:500}
.step em{font-size:11.5px;color:var(--t3);font-style:normal;display:block;margin-top:2px}
.cpSample{margin-top:14px;padding-top:14px;border-top:.5px dashed var(--ln)}
.ssT{font-size:12px;color:var(--t3);margin-bottom:8px}
.ssR{display:flex;font-size:12.5px;padding:6px 0;border-bottom:.5px solid var(--ln)}
.ssR:last-child{border-bottom:none}
.ssR span{flex:1;color:var(--t2)}
.ssR b{color:var(--pt);font-weight:500;flex-shrink:0}
.catWrap{margin-top:16px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.catG{background:var(--p-l);border:.5px solid var(--ln);border-radius:var(--r);padding:18px}
.cgTitle{font-size:13px;font-weight:500;color:var(--p-d);display:flex;align-items:center}
.cgTitle .cn{font-size:11px;font-weight:400;color:var(--t3);margin-left:auto}
.cgItems{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.cgItems span{font-size:12.5px;padding:5px 12px;border-radius:var(--rs);background:#fff;color:var(--t2);border:.5px solid var(--ln);cursor:pointer}
.cgItems span:hover{border-color:var(--p);color:var(--p)}
.crowdTip{margin-top:16px;padding:15px 20px;background:var(--p-l2);border:.5px solid var(--ln);border-radius:var(--r);font-size:12.5px;color:var(--t2);line-height:1.9}
.crowdTip b{color:var(--t);font-weight:500}
.cLink{color:var(--p);cursor:pointer;white-space:nowrap}

/* ===== 服务站 ===== */
.stGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.sc{background:#fff;border:.5px solid var(--ln);border-radius:var(--r);overflow:hidden}
.sc .hd{background:var(--p-l);padding:14px 18px;border-bottom:.5px solid var(--ln)}
.sc .hd .ty{display:inline-block;font-size:11.5px;padding:2px 9px;border-radius:100px;background:#fff;color:var(--p-d);font-weight:500;border:.5px solid var(--ln)}
.sc .hd .ty.ag{color:var(--p-d)}
.sc .hd .nm2{font-size:15px;font-weight:500;margin-top:9px;line-height:1.45}
.sc .bd{padding:16px 18px}
.sc .r1{display:flex;font-size:12.5px;padding:7px 0;border-bottom:.5px dashed var(--ln)}
.sc .r1 .k{width:64px;color:var(--t3);flex-shrink:0}
.sc .r1 .v{color:var(--t);flex:1}
.sc .r1:last-of-type{border-bottom:none}
.sc .tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.sc .tags span{font-size:11.5px;padding:3px 9px;border-radius:5px;background:var(--p-l);color:var(--p-d)}
.sc .ptn{margin-top:13px;padding:10px 13px;border-radius:var(--rs);background:var(--p-l2);font-size:12px;color:var(--t2)}
.sc .ptn b{color:var(--p-d);font-weight:500}
.agBar{margin-top:16px;background:var(--p-l);border:.5px solid var(--ln2);border-radius:var(--r);padding:16px 22px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.agBar .tx{font-size:13px;color:var(--t2);flex:1;min-width:260px}
.agBar .tx b{color:var(--t);font-weight:500}

/* ===== 党建突出位 ===== */
.ptHero{background:var(--pt-l);border:.5px solid #F2C9C8;border-radius:var(--r);padding:26px 30px;display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.ptHero .lft{flex:1;min-width:280px}
.ptHero .badge{display:inline-block;font-size:11.5px;letter-spacing:1.6px;color:#fff;background:var(--pt);padding:3px 11px;border-radius:100px;margin-bottom:12px}
.ptHero h3{font-size:22px;font-weight:500;color:#A32D2D;letter-spacing:1.2px;line-height:1.45}
.ptHero .ds{font-size:13px;color:#A32D2D;opacity:.85;margin-top:8px}
.ptHero .go{font-size:13.5px;padding:11px 26px;border-radius:var(--rs);background:var(--pt);color:#fff;font-weight:500;flex-shrink:0}
.ptHero .pub{display:inline-flex;align-items:center;gap:8px;margin-top:15px;font-size:12.5px;color:#A32D2D;background:rgba(255,255,255,.75);border:.5px solid #F2C9C8;border-radius:100px;padding:5px 14px}
.ptHero .pub svg{width:14px;height:14px;stroke:#A32D2D;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.pnl .ph .src{margin-left:10px;font-size:11.5px;font-weight:400;color:var(--t3)}
.ptTwo{display:grid;grid-template-columns:1.2fr 1fr;gap:16px;margin-top:16px}
.pnl{background:#fff;border:.5px solid #F2C9C8;border-radius:var(--r);overflow:hidden}
.pnl .ph{padding:13px 18px;border-bottom:.5px solid #F7DEDD;background:#FFFBFB;font-size:13.5px;font-weight:500;color:#A32D2D;display:flex;align-items:center}
.pnl .ph .mo{margin-left:auto;font-size:12px;font-weight:400;color:var(--pt)}
.pnl .pr{padding:13px 18px;border-bottom:.5px solid #FCF0F0;display:flex;gap:11px;font-size:13.5px;align-items:flex-start}
.pnl .pr:last-child{border-bottom:none}
.pnl .pr:hover{background:#FFFCFC}
.pnl .pr .dt2{width:5px;height:5px;border-radius:50%;background:var(--pt);flex-shrink:0;margin-top:7px}
.pnl .pr .tt{flex:1;line-height:1.7}
.pnl .pr .dd{font-size:12px;color:var(--t3);flex-shrink:0;margin-top:2px}
.vol{padding:14px 18px;border-bottom:.5px dashed #F7DEDD;display:flex;gap:12px}
.vol:last-child{border-bottom:none}
.vol .tt{font-size:13.5px;font-weight:500}
.vol .mm{font-size:12.5px;color:var(--t2);margin-top:6px;line-height:1.75}
.vol .qq{font-size:12.5px;color:var(--pt);margin-top:7px}
.vol .qq.full{color:var(--t3)}
.vol .rd{margin-left:auto;align-self:center;flex-shrink:0;font-size:12.5px;padding:7px 15px;border-radius:var(--rs);background:var(--pt);color:#fff}
.vol .rd.dis{background:var(--p-l2);color:var(--t3)}

/* ===== 社区页：设备接入总览（不写台数） ===== */
.devCap{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.dc{background:var(--p-l);border:.5px solid var(--ln2);border-radius:var(--r);padding:22px}
.dc .ic{width:44px;height:44px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.dc .ic svg{width:21px;height:21px;stroke:var(--p);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.dc .n3{font-size:15px;font-weight:500}
.dc .d3{font-size:12.5px;color:var(--t2);margin-top:7px;line-height:1.8}
.dc .cap{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.dc .cap span{font-size:11.5px;padding:3px 9px;border-radius:5px;background:#fff;color:var(--p-d)}

/* ===== 找房页 ===== */
.fbar{background:#fff;border:.5px solid var(--ln);border-radius:var(--r);overflow:hidden;margin-bottom:16px}
.fbar .picked{display:flex;align-items:center;gap:8px;padding:13px 18px;border-bottom:.5px solid var(--ln);flex-wrap:wrap}
.fbar .pk{font-size:12px;padding:3px 11px;border-radius:100px;background:var(--p-l);color:var(--p-d)}
.fbar .pk.off{background:#F4F6F9;color:var(--t3)}
.fbar .tg2{margin-left:auto;font-size:12.5px;color:var(--p);cursor:pointer}
.frow{display:flex;align-items:center;gap:12px;padding:11px 18px;border-bottom:.5px solid var(--ln)}
.frow:last-child{border-bottom:none}
.frow .lb{width:52px;font-size:12.5px;color:var(--t3);flex-shrink:0}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{font-size:12.5px;padding:4px 12px;border:.5px solid var(--ln2);border-radius:var(--rs);color:var(--t2);background:#fff;cursor:pointer}
.chip:hover{border-color:var(--p);color:var(--p)}
.chip.on{border-color:var(--p);color:var(--p);background:var(--p-l);font-weight:500}
.frsel{border:.5px solid var(--ln2);border-radius:var(--rs);background:#fff;padding:5px 10px;font-size:12.5px;color:var(--t2);cursor:pointer;outline:none}
.frsel:hover{border-color:var(--p);color:var(--p)}
.frsel:disabled{background:#F4F6F9;color:var(--t3);cursor:default;border-color:var(--ln)}
.ftools{display:flex;align-items:center;font-size:12.5px;color:var(--t2);padding:4px 2px 14px}
.ftools .so{margin-left:auto;display:flex;gap:16px;cursor:pointer}
.ftools .so span.on{color:var(--p);font-weight:500}
.empty{background:#fff;border:.5px dashed var(--ln2);border-radius:var(--r);padding:30px 20px;text-align:center;margin-top:16px}
.empty .t{font-size:14.5px;font-weight:500;margin-bottom:8px}
.empty .d{font-size:12.5px;color:var(--t2);margin-bottom:16px}
.skl{border:.5px dashed var(--ln2);border-radius:var(--r);padding:40px 20px;text-align:center;color:var(--t3);font-size:12.5px}
/* 分页器 */
.pager{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:24px;flex-wrap:wrap}
.pager .pg2{min-width:34px;height:34px;padding:0 11px;border:.5px solid var(--ln2);border-radius:var(--rs);
  background:#fff;color:var(--t2);font-size:13px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.pager .pg2:hover{border-color:var(--p);color:var(--p)}
.pager .pg2.on{background:var(--p);border-color:var(--p);color:#fff;font-weight:500}
.pager .pg2.dis{opacity:.45;background:#F7F9FC;cursor:default}
.pager .pg2.dis:hover{border-color:var(--ln2);color:var(--t2)}
.pager .pgi{font-size:12.5px;color:var(--t3);padding:0 4px}
/* 列表下方说明条（原大标题块下移到此） */
.listNote{margin-top:24px;padding:17px 22px;background:var(--p-l2);border:.5px solid var(--ln);border-radius:var(--r)}
.listNote .lnT{font-size:14px;font-weight:500}
.listNote .lnD{font-size:12.5px;color:var(--t2);margin-top:7px;line-height:1.9}

/* ===== 关于我们 ===== */
.cap6{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.c6{background:var(--p-l);border:.5px solid var(--ln2);border-radius:var(--r);padding:22px}
.c6 .ic{width:40px;height:40px;border-radius:11px;background:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:13px}
.c6 .ic svg{width:19px;height:19px;stroke:var(--p);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.c6 .t{font-size:14.5px;font-weight:500}
.c6 .d{font-size:12.5px;color:var(--t2);margin-top:7px;line-height:1.8}
.infoBox{background:#fff;border:.5px solid var(--ln);border-radius:var(--r);padding:24px 26px;margin-top:16px}
.infoBox .r2{display:flex;font-size:13px;padding:10px 0;border-bottom:.5px dashed var(--ln)}
.infoBox .r2:last-child{border-bottom:none}
.infoBox .r2 .k{width:110px;color:var(--t3);flex-shrink:0}
.infoBox .r2 .v{flex:1;color:var(--t)}
.infoBox .r2 .v .icp{color:var(--pt)}

/* ===== 党建专区 · 加厚版块 ===== */
.memG{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:18px}
.mem{border:.5px solid #F2C9C8;border-radius:12px;padding:18px;background:#fff}
.mem .av{width:46px;height:46px;border-radius:50%;background:var(--pt-l);margin:0 auto 10px;display:flex;align-items:center;justify-content:center;color:#A32D2D;font-size:15px;font-weight:500}
.mem .n4{font-size:13.5px;font-weight:500;text-align:center}
.mem .b4{font-size:12px;color:var(--t3);margin-top:3px;text-align:center}
.mem .s4{font-size:12px;color:var(--t2);margin-top:11px;padding-top:11px;border-top:.5px solid #F7DEDD;line-height:1.75}
.brG{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.br{border:.5px solid #F2C9C8;border-radius:12px;padding:20px;background:#fff}
.br .ttl{font-size:14.5px;font-weight:500;color:#A32D2D}
.br .dsc{font-size:12.5px;color:var(--t2);margin-top:8px;line-height:1.8}
.br .mt{margin-top:13px;padding-top:13px;border-top:.5px solid #F7DEDD;font-size:12px;color:var(--t3);display:flex;gap:16px;flex-wrap:wrap}
.br .mt b{color:#A32D2D;font-weight:500}
.caseG{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.case{border:.5px solid #F2C9C8;border-radius:12px;padding:18px 20px;background:#fff;display:flex;gap:14px}
.case .ic{width:38px;height:38px;border-radius:10px;background:var(--pt-l);flex-shrink:0;display:flex;align-items:center;justify-content:center}
.case .ic svg{width:18px;height:18px;stroke:#A32D2D;fill:none;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.case .ttl{font-size:13.5px;font-weight:500}
.case .dsc{font-size:12.5px;color:var(--t2);margin-top:6px;line-height:1.8}
.joinBar{background:var(--pt-l);border:.5px solid #F2C9C8;border-radius:12px;padding:20px 24px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:18px}
.joinBar .tx{font-size:13.5px;color:#A32D2D;flex:1;min-width:280px;line-height:1.85}
.joinBar .tx b{font-weight:500}
.joinBar .go{font-size:13.5px;padding:11px 26px;border-radius:var(--rs);background:var(--pt);color:#fff;font-weight:500;flex-shrink:0}
.joinBar .go:hover{background:#C93A39}
.joinBar .go.ghost{background:#fff;color:var(--pt);border:.5px solid var(--pt)}
.joinBar .go.ghost:hover{background:#FFF5F5}
/* 版块内空态 */
.pghost{padding:22px 18px;text-align:center;font-size:12.5px;color:var(--t3);line-height:1.85}
.pghost b{display:block;color:var(--t2);font-weight:500;font-size:13px;margin-bottom:4px}
/* 党建内容来源标注（转发内容必带出处） */
.pnl .pr .s2,.vol .s2{font-size:11.5px;color:var(--t3);font-weight:400;margin-left:8px}
.pnl .pr .sm{display:block;font-size:12.5px;color:var(--t2);font-weight:400;margin-top:5px;line-height:1.8}
.vnote{padding:11px 18px;background:#FFFBFB;border-top:.5px dashed #F7DEDD;font-size:12px;color:var(--t3);line-height:1.75}
.br .bsrc,.case .bsrc{margin-top:9px;font-size:11.5px;color:var(--t3);line-height:1.7}
.case .bsrc{margin-top:8px}
/* 门户内容声明条（原文出处见各条） */
.noticeBar{background:#FFF9E8;border:.5px solid #F0D9A0;color:#8A6420;border-radius:var(--rs);font-size:12px;padding:9px 16px;margin-top:16px;line-height:1.75}

/* ===== 加盟专区（放大的浅蓝区块，不做深色以免阅读疲劳） ===== */
.join{background:#E8F1FD;border:1px solid #C6DDFA;border-radius:var(--r);padding:38px 40px}
.joinTop{display:grid;grid-template-columns:1.3fr .7fr;gap:36px;align-items:center;padding-bottom:30px;border-bottom:1px solid #C6DDFA}
.jtBadge{display:inline-block;font-size:11.5px;letter-spacing:1.8px;color:#fff;background:var(--p);padding:3px 12px;border-radius:100px;font-weight:500;margin-bottom:14px}
.join h2{font-size:30px;font-weight:500;letter-spacing:.6px;line-height:1.35;color:var(--p-d)}
.joinTop p{font-size:13.5px;color:var(--t2);margin-top:14px;line-height:1.95;max-width:580px}
.joinTop p strong{color:var(--p-d)}
.jtBtns{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}
.jtBtn{padding:13px 30px;border-radius:var(--rs);background:var(--p);color:#fff;font-size:14px;font-weight:500}
.jtBtn:hover{background:var(--p-d)}
.jtBtn.ghost{background:#fff;color:var(--p);border:1px solid var(--p)}
.jtBtn.ghost:hover{background:#F4F9FF}
.jtR{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#C6DDFA;border:1px solid #C6DDFA;border-radius:var(--r);overflow:hidden}
.jtStat{background:#fff;padding:16px 18px}
.jtStat .n{font-size:29px;font-weight:500;line-height:1.1;color:var(--p-d)}
.jtStat .k{font-size:12px;color:var(--t3);margin-top:5px}
.joinTypes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:26px}
.jt{background:#fff;border:1px solid #C6DDFA;border-radius:var(--r);padding:22px}
.jt .lv{font-size:11px;letter-spacing:1.6px;color:var(--p);margin-bottom:9px}
.jt .t{font-size:17px;font-weight:500;color:var(--t)}
.jt .d{font-size:12.5px;color:var(--t2);margin-top:9px;line-height:1.85}
.jt .ul{margin-top:15px;padding-top:14px;border-top:1px dashed #C6DDFA}
.jt .ul div{font-size:12.5px;color:var(--t2);padding:3px 0}
.joinFlow{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:26px;padding-top:24px;border-top:1px solid #C6DDFA;flex-wrap:wrap}
.joinFlow .fs{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--t2)}
.joinFlow .sn{width:20px;height:20px;border-radius:50%;background:var(--p);color:#fff;font-size:11.5px;font-weight:500;display:flex;align-items:center;justify-content:center}
.joinFlow .fa{color:#9CBEE8;padding:0 12px}

/* ===== footer ===== */
/* ===== 页脚（单行紧凑式 · 约 92px） ===== */
footer{background:#12304F;color:rgba(255,255,255,.58);padding:18px 0 14px}
.ftop{display:flex;align-items:center;gap:22px;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.1)}
.ftop .lg2{display:flex;align-items:center;gap:8px;color:#fff;font-size:14px;font-weight:500;letter-spacing:.6px;flex-shrink:0}
.ftop .lg2 .mk{width:20px;height:20px;border-radius:6px;background:var(--sky);position:relative}
.ftop .lg2 .mk::before{content:"";position:absolute;inset:6px;border-radius:2px;background:#12304F}
.fnav{display:flex;align-items:center;flex-wrap:wrap;font-size:12.5px}
.fnav a{padding:0 11px;border-left:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.68);white-space:nowrap}
.fnav a:first-child{border-left:none;padding-left:0}
.fnav a:hover{color:#fff}
.fbot{padding-top:10px;display:flex;gap:14px;font-size:12px;flex-wrap:wrap;align-items:center}
.fbot .icp{color:#FF9A98}
.fbot .sp{margin-left:auto}

/* ===== modal ===== */
.mask{position:fixed;inset:0;background:rgba(18,48,79,.4);display:none;align-items:center;justify-content:center;z-index:200}
.mask.on{display:flex}
.modal{background:#fff;border-radius:var(--r);width:390px;padding:26px;position:relative}
.modal h3{font-size:16px;font-weight:500}
.modal .sub{font-size:12px;color:var(--t2);margin-top:6px}
.modal .x{position:absolute;top:14px;right:18px;font-size:19px;color:var(--t3);cursor:pointer}
.fld{margin-top:15px}
.fld .lb{font-size:12px;color:var(--t3);margin-bottom:6px}
.inp{display:flex;align-items:center;gap:8px;border:.5px solid var(--ln2);border-radius:var(--rs);padding:10px 12px}
.inp input{flex:1;font-size:13.5px}
.inp .pfx{font-size:13px;color:var(--t3);padding-right:8px;border-right:.5px solid var(--ln)}
.inp .code{font-size:12px;color:var(--p);white-space:nowrap;padding-left:10px;border-left:.5px solid var(--ln);cursor:pointer}
.modal .submit{margin-top:19px;text-align:center;padding:11px;border-radius:var(--rs);background:var(--p);color:#fff;font-size:13.5px;cursor:pointer;font-weight:500}
.modal .submit:hover{background:var(--p-d)}
.modal .agree{margin-top:13px;font-size:12px;color:var(--t3);display:flex;gap:7px;line-height:1.7}
.modal .agree .cb{width:13px;height:13px;border:.5px solid var(--ln2);border-radius:3px;flex-shrink:0;margin-top:3px}
.modal .agree a{color:var(--p)}

@media(max-width:1024px){
  .ov,.sv,.devCap,.hg,.stGrid,.cap6,.memG,.brG,.caseG,.joinTypes,.catWrap{grid-template-columns:repeat(2,minmax(0,1fr))}
  .crowdPub,.joinTop{grid-template-columns:1fr;gap:22px}
  .join{padding:28px 24px}
  .ptTwo{grid-template-columns:1fr}
  .ftop{grid-template-columns:1fr 1fr;gap:22px}
  /* 导航不隐藏（原 display:none 会让 ≤1024px 整条导航消失且无替代入口） */
  .nav{gap:16px}
  .menu{gap:15px;font-size:13px}
  .pHd{padding:16px 0 18px}
  .pHd h1{font-size:21px}
}
@media(max-width:640px){
  /* R1-B：hero h1 字号统一在文件后段 @media(max-width:640px) 定为 22px（此处不再重复声明） */
  .ov,.sv,.devCap,.hg,.stGrid,.cap6,.ftop,.memG,.brG,.caseG,.joinTypes,.jtR,.catWrap{grid-template-columns:1fr}
  .join{padding:22px 18px}
  .join h2{font-size:23px}
  .joinFlow .fa{padding:0 4px}
  .wrap{padding:0 16px}
  .nav{gap:12px}
  .logo{font-size:14px}
  .logo .mk{width:20px;height:20px}
  .menu{gap:11px;font-size:12.5px;overflow-x:auto;white-space:nowrap}
  .menu a{white-space:nowrap}
  .navr .bt.p{display:none}
  .pHd{padding:14px 0 16px}
  .pHd h1{font-size:19px}
  .pHd p{font-size:12.5px}
  .pager .pg2{min-width:30px;height:30px;font-size:12.5px}
}

/* ============================================================
   视觉打磨 · 对外门户专用
   说明：这是面向公众的展示站，与后台管理端「无投影」的规范不同，
   此处允许「极轻投影 + 柔和环境光」制造层次感；色系仍保持清淡天蓝。
   ⚠️ 交付说明：派单卡 §3.1「禁止渐变/阴影/发光」与 UI 定稿的本段相冲突，
      本单以「UI 稿即设计基准」为准保留本段。若总控要求去投影，
      直接整段删除（从本注释起始行到文件「打磨段结束」标记行）即可，
      删除后其余样式不受影响。
   ============================================================ */

/* 1. 全站层次：卡片统一柔投影 */
.hc,.sc,.cpCard,.pnl,.c6,.dc,.jt,.mem,.br,.case,.infoBox{
  box-shadow:0 1px 2px rgba(20,60,120,.045),0 4px 14px rgba(20,60,120,.05)}
.hc:hover,.sc:hover,.dc:hover,.c6:hover,.jt:hover,.mem:hover{
  box-shadow:0 2px 6px rgba(20,60,120,.07),0 16px 36px rgba(20,60,120,.10)}
.hc,.sc,.cpCard,.pnl,.c6,.dc,.jt,.mem,.br,.case{border-radius:14px}

/* 2. 首屏：柔和环境光 + 淡网格（不用深色，保持清淡） */
.hero{position:relative;overflow:hidden;
  background:linear-gradient(180deg,#E1EEFD 0%,#CDE2FB 100%);
  background-image:
    radial-gradient(660px 430px at 84% -10%,rgba(74,158,255,.26),transparent 66%),
    radial-gradient(520px 380px at -6% 104%,rgba(30,111,217,.16),transparent 68%),
    linear-gradient(180deg,#E1EEFD 0%,#CDE2FB 100%);
  background-repeat:no-repeat}
.hero>.wrap{position:relative;z-index:2}

/* 3. 搜索框：立体感 + 聚焦态 */
.sbox{border:1px solid rgba(30,111,217,.22);
  box-shadow:0 2px 6px rgba(20,60,120,.06),0 14px 34px rgba(20,60,120,.09);
  transition:box-shadow .2s,border-color .2s}
.sbox:focus-within{border-color:var(--p);
  box-shadow:0 2px 8px rgba(30,111,217,.14),0 16px 38px rgba(30,111,217,.14)}

/* 4. 小标题：加装饰短线（提升精致度） */
/* （R1 Q3=B：.eb 已在 116-119 行统一为胶囊样式，此处不再覆盖） */

/* 5. 主按钮：柔投影 */
.bt.p,.cpB,.jtBtn,.sbox .sb{
  box-shadow:0 1px 2px rgba(30,111,217,.16),0 6px 16px rgba(30,111,217,.16)}
.bt.p:hover,.cpB:hover,.jtBtn:hover{
  box-shadow:0 2px 6px rgba(30,111,217,.2),0 10px 24px rgba(30,111,217,.2)}

/* 6. 服务入口图标：浮起 */
.sv .it .ic,.dc .ic,.c6 .ic{
  box-shadow:0 1px 3px rgba(20,60,120,.07),0 4px 10px rgba(20,60,120,.05)}
.sv .it .ic{transition:transform .2s}
.sv .it:hover .ic{transform:translateY(-2px)}

/* 7. 房源卡缩略图：更精致 */
.hc .th{height:200px;font-weight:500;letter-spacing:.3px}
.hc .th.n{background:repeating-linear-gradient(135deg,#F7FAFD,#F7FAFD 10px,#EFF4FA 10px,#EFF4FA 20px)}
.hc .pg{box-shadow:0 1px 3px rgba(20,60,120,.08)}

/* 8. 加盟区：更精致 */
.join{border-radius:16px;box-shadow:0 2px 6px rgba(20,60,120,.05),0 12px 32px rgba(20,60,120,.06)}
.jtR,.joinFlow .sn{box-shadow:0 1px 3px rgba(20,60,120,.06)}

/* 9. 党建重点位：柔投影 */
.ptHero{box-shadow:0 1px 3px rgba(200,60,60,.06),0 8px 22px rgba(200,60,60,.06)}

/* 10. 页脚：深色微渐变（收尾更稳） */
footer{background:linear-gradient(180deg,#12304F 0%,#0E2842 100%)}

/* 11. 信息条 / 空态：淡投影 */
.empty,.crowdTip,.agBar,.joinBar,.skl,.noticeBar{
  box-shadow:0 1px 2px rgba(20,60,120,.035),0 4px 12px rgba(20,60,120,.04)}

/* 12. 大数字：紧凑字距（更有设计感） */
.ov .it .n{letter-spacing:-.5px}

/* 13. 表格线 / 分隔线统一更淡 */
.pnl .pr{border-color:#F7E4E3}
/* ===== 打磨段结束 ===== */

/* ===== W2：众包发单表单输入（保持清淡天蓝风格） ===== */
.cqIn{flex:1;min-width:0;border:.5px solid rgba(30,111,217,.26);border-radius:8px;
  padding:7px 11px;font-size:13px;color:var(--t,#1A1D23);background:#fff;outline:none;
  font-family:inherit;transition:border-color .15s}
.cqIn:focus{border-color:var(--p,#1E6FD9)}
.cqIn::placeholder{color:#8C949F}
select.cqIn{appearance:none;-webkit-appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,#8C949F 50%),linear-gradient(135deg,#8C949F 50%,transparent 50%);
  background-position:calc(100% - 15px) 50%,calc(100% - 10px) 50%;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:28px}
#cqTip{display:block;margin-top:5px;color:var(--p,#1E6FD9)}

/* ===== W5：商家频道 ===== */
.mchBar{display:flex;gap:10px;max-width:660px;margin-bottom:16px}
.mchBar input{flex:1;border:1px solid var(--ln2);border-radius:var(--rs);padding:11px 15px;font-size:13.5px;background:#fff;outline:none;font-family:inherit;color:var(--t)}
.mchBar input:focus{border-color:var(--p);box-shadow:0 0 0 3px rgba(30,111,217,.1)}
.mchSb{background:var(--p);color:#fff;border-radius:var(--rs);padding:0 26px;font-size:13.5px;font-weight:500;flex-shrink:0}
.mchSb:hover{background:var(--p-d)}
.mchCats{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.mchCats .mc2{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;padding:6px 14px;border-radius:100px;
  border:.5px solid var(--ln2);background:#fff;color:var(--t2);cursor:pointer}
.mchCats .mc2:hover{border-color:var(--p);color:var(--p)}
.mchCats .mc2.on{border-color:var(--p);background:var(--p-l);color:var(--p-d);font-weight:500}
.mchCats .mc2 .cn2{font-size:11px;color:var(--t3)}
.mchCats .mc2.on .cn2{color:var(--p)}
.mchGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.mc{background:#fff;border:.5px solid var(--ln);border-radius:var(--r);overflow:hidden;cursor:pointer;
  transition:border-color .16s,transform .16s;box-shadow:0 1px 2px rgba(20,60,120,.045),0 4px 14px rgba(20,60,120,.05)}
.mc:hover{border-color:var(--p);transform:translateY(-2px)}
.mc .mcTh{height:132px;background:var(--p-l);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.mc .mcTh img{width:100%;height:100%;object-fit:contain;padding:6px}
.mc .mcTh .mcPh{font-size:30px;font-weight:500;color:var(--p-d);opacity:.55}
.mc .mcBd{padding:14px 16px 15px}
.mc .mcN{font-size:14.5px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc .mcM{font-size:12px;color:var(--p);margin-top:5px}
.mc .mcA{font-size:11.5px;color:var(--t3);margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc .mcTags{display:flex;gap:5px;flex-wrap:wrap;margin-top:9px}
.mc .mcTags span{font-size:11px;padding:2px 8px;border-radius:5px;background:var(--p-l);color:var(--p-d)}
.mc .mcF{display:flex;align-items:center;margin-top:11px;padding-top:10px;border-top:.5px solid var(--ln)}
.mc .mcP{font-size:11.5px;color:var(--t3)}
.mc .mcGo{margin-left:auto;font-size:12px;color:var(--p);font-weight:500}
/* 商家详情弹层 */
.mchModal{background:#fff;border-radius:var(--r);width:560px;max-width:92vw;max-height:86vh;overflow:auto;position:relative}
.mchModal .mmHd{padding:18px 22px;border-bottom:.5px solid var(--ln);background:var(--p-l2);position:relative}
.mchModal .mmHd .mhN{font-size:17px;font-weight:500}
.mchModal .mmHd .mhM{font-size:12.5px;color:var(--p);margin-top:6px}
.mchModal .mmHd .mhA{font-size:12px;color:var(--t3);margin-top:5px}
.mchModal .mmX{position:absolute;top:14px;right:18px;font-size:20px;color:var(--t3);cursor:pointer;line-height:1}
.mchModal .mmBd{padding:18px 22px 22px}
.mchModal .mmDesc{font-size:12.5px;color:var(--t2);line-height:1.85;margin-bottom:14px}
.mchModal .mmST{font-size:13px;font-weight:500;margin-bottom:10px}
.mchModal .mmP{display:flex;align-items:baseline;gap:10px;padding:10px 0;border-bottom:.5px dashed var(--ln);font-size:13px}
.mchModal .mmP:last-child{border-bottom:none}
.mchModal .mmP .mpN{flex:1}
.mchModal .mmP .mpS{font-size:11.5px;color:var(--t3)}
.mchModal .mmP .mpR{font-size:14px;font-weight:500;color:var(--pt);flex-shrink:0}
.mchModal .mmFoot{display:flex;gap:10px;margin-top:16px;padding-top:14px;border-top:.5px solid var(--ln)}

/* ===== W5：我的 ===== */
.mgG{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:720px;margin:0 auto}
.mgI{background:var(--p-l);border-radius:var(--rs);padding:16px 12px;text-align:center}
.mgN{font-size:13px;font-weight:500;color:var(--p-d)}
.mgD{font-size:11.5px;color:var(--t2);margin-top:5px}
.meHead{display:flex;align-items:center;gap:14px;background:#fff;border:.5px solid var(--ln);border-radius:var(--r);padding:18px 22px;margin-top:6px}
.meHead .meAv{width:46px;height:46px;border-radius:50%;background:var(--p);color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:500;flex-shrink:0}
.meHead .meHd{flex:1;min-width:0}
.meHead .mePh{font-size:16px;font-weight:500}
.meHead .meRl{font-size:12px;color:var(--t3);margin-top:5px;display:flex;gap:6px;flex-wrap:wrap}
.meHead .meRl span{font-size:11px;padding:2px 9px;border-radius:100px;background:var(--p-l);color:var(--p-d)}
.meKpi{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-top:14px}
.meKpi .mk2{background:#fff;border:.5px solid var(--ln);border-radius:var(--r);padding:17px 19px}
.meKpi .mk2 .mn{font-size:25px;font-weight:500;color:var(--p-d);line-height:1.15}
.meKpi .mk2 .mn small{font-size:12px;font-weight:400;color:var(--t3);margin-left:2px}
.meKpi .mk2 .mkl{font-size:12.5px;color:var(--t2);margin-top:6px}
.meKpi .mk2.wn{background:#FEF4F4}
.meKpi .mk2.wn .mn{color:var(--pt)}
.meTabs{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0 14px}
.meTabs .mt2{font-size:13px;padding:8px 18px;border-radius:var(--rs);border:.5px solid var(--ln2);background:#fff;color:var(--t2);cursor:pointer}
.meTabs .mt2:hover{border-color:var(--p);color:var(--p)}
.meTabs .mt2.on{background:var(--p);border-color:var(--p);color:#fff;font-weight:500}
.mePanel{background:#fff;border:.5px solid var(--ln);border-radius:var(--r);overflow:hidden;min-height:190px}
.meRow{display:flex;align-items:center;gap:14px;padding:14px 20px;border-bottom:.5px solid var(--ln);font-size:13.5px}
.meRow:last-child{border-bottom:none}
.meRow .mrL{flex:1;min-width:0}
.meRow .mrT{font-size:13.5px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.meRow .mrS{font-size:11.5px;color:var(--t3);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.meRow .mrR{text-align:right;flex-shrink:0}
.meRow .mrA{font-size:14.5px;font-weight:500;color:var(--pt)}
.meRow .mrB{font-size:11.5px;padding:3px 10px;border-radius:100px;background:var(--p-l);color:var(--p-d);display:inline-block}
.meRow .mrB.wn{background:#FEF4F4;color:var(--pt)}
.meRow .mrB.ok{background:#EAF7F0;color:#0F6E56}
.meGhost{padding:34px 20px;text-align:center;font-size:12.5px;color:var(--t3);line-height:1.9}
.meGhost b{display:block;font-size:13.5px;color:var(--t2);font-weight:500;margin-bottom:6px}
.meForm{padding:18px 20px}
.meForm .mfRow{display:flex;align-items:center;gap:12px;margin-bottom:11px}
.meForm .mfK{width:78px;font-size:12.5px;color:var(--t3);flex-shrink:0}
.meForm textarea.mfIn{width:100%;min-height:82px;resize:vertical;border:.5px solid var(--ln2);border-radius:var(--rs);
  padding:10px 12px;font-size:13px;font-family:inherit;outline:none;color:var(--t)}
.meForm textarea.mfIn:focus{border-color:var(--p)}
.meLock{padding:22px 24px;text-align:center}
.meLock .mlP{font-size:30px;font-weight:500;color:var(--p-d);letter-spacing:3px;font-variant-numeric:tabular-nums}
.meLock .mlD{font-size:12px;color:var(--t3);margin-top:8px;line-height:1.8}
.meLock .mlB{margin-top:16px;padding:10px 26px;border-radius:var(--rs);background:var(--p);color:#fff;font-size:13.5px;font-weight:500}
.meLock .mlB:hover{background:var(--p-d)}
.meMeter{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;padding:18px 20px}
.meMeter .mmC{background:var(--p-l);border-radius:var(--rs);padding:16px 18px}
.meMeter .mmC .mt3{font-size:12px;color:var(--t2)}
.meMeter .mmC .mv{font-size:21px;font-weight:500;color:var(--p-d);margin-top:7px;font-variant-numeric:tabular-nums}
.meMeter .mmC .ms{font-size:11.5px;color:var(--t3);margin-top:5px}

@media(max-width:1024px){
  .mchGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .meKpi{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mgG{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .mchGrid,.meKpi,.mgG,.meMeter{grid-template-columns:1fr}
  .mchBar{flex-direction:column}
  .mchSb{padding:11px 0;width:100%}
  .meTabs{gap:6px}
  .meTabs .mt2{padding:7px 13px;font-size:12.5px}
}

/* ===== V8 门户改版（本地分支 portal_build，独立于线上） ===== */
.logo .lgi{width:26px;height:26px;border-radius:6px;object-fit:cover;flex-shrink:0;box-shadow:0 0 0 .5px var(--ln);background:#fff}
.ftop .lg2 .lgi.fti{width:20px;height:20px;border-radius:4px;object-fit:cover;background:#fff;padding:1.5px;box-sizing:border-box}
/* 首屏滚动背景图 */
/* V2 方案蓝底：门户主蓝渐变 + 右上柔光，替代原深藏青照片轮播 */
.hero{position:relative;overflow:hidden;height:auto;padding:0;border-bottom:.5px solid rgba(255,255,255,.14);
  background:
    radial-gradient(120% 140% at 82% -18%, rgba(150,196,255,.50), transparent 56%),
    linear-gradient(135deg,#2E82EC 0%,#1E6FD9 46%,#154C96 100%)}
.hero .slides{position:absolute;inset:0;z-index:0;background:transparent}
.hero .slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity .9s ease}
.hero .slide.on{opacity:.42}
.hero::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(8,30,64,.05),rgba(8,30,64,.22))}
.hero>.wrap{position:relative;z-index:2;padding:62px 0 40px;text-align:center}
.hero h1,.hero .sub,.hero .tg,.hero .sbox,.hero .hot{color:#fff}
.hero h1{color:#fff}
.hero h1 em{color:#CDEBFF;text-shadow:0 1px 0 rgba(8,30,64,.18)}
.hero .tg{color:#fff;background:rgba(255,255,255,.16);border:.5px solid rgba(255,255,255,.30)}
.hero .tg i{background:#CDEBFF}
.hero .sub{color:rgba(255,255,255,.94);max-width:620px}
.hero .sbox{background:#fff}
.hero .sbox input{color:var(--t)}
.hero .hot{color:rgba(255,255,255,.88)}
.hero .hot b{color:#fff}
.hero .hot span{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.32);color:#fff}
.hero .hot span:hover{border-color:#CDEBFF;color:#CDEBFF}
/* 控制件：仅在有背景图轮播(has-slides)时显示；默认蓝底不显示 */
.hero .dots,.hero .arw,.hero .hcount{display:none}
.hero.has-slides .dots{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:3;display:flex;gap:7px}
.hero.has-slides .dots i{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.5);cursor:pointer;transition:width .2s,background .2s}
.hero.has-slides .dots i.on{width:20px;border-radius:4px;background:#fff}
.hero.has-slides .arw{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:38px;height:38px;border:none;border-radius:50%;background:rgba(8,30,64,.30);color:#fff;font-size:22px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.hero.has-slides .arw:hover{background:rgba(8,30,64,.55)}
.hero.has-slides .arw.l{left:18px}.hero.has-slides .arw.r{right:18px}
.hero.has-slides .hcount{position:absolute;right:18px;bottom:16px;z-index:3;font-size:11.5px;color:rgba(255,255,255,.9);background:rgba(8,30,64,.30);padding:3px 10px;border-radius:100px}
/* 卡片标签化 */
.hc .tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.hc .tags span{font-size:11.5px;padding:3px 9px;border-radius:5px;background:var(--p-l);color:var(--p-d)}
.hc .tags .dc{background:#FFF5EC;color:#C8772E}
.hc .tags .mt{background:#E9F4FF;color:#1F6FC4}
.hc .tags .el{background:#EEF7EE;color:#2E8B57}
.hc .tags .tgp{background:var(--p);color:#fff}
.hc .m1{display:none}

/* ===== V10 找房增强：Hero 搜索卡（城市 badge + 清空 ✕） ===== */
.hero .sbox{display:flex;align-items:center;gap:10px;max-width:680px;margin:18px auto 0;background:#fff;border-radius:26px;padding:6px 6px 6px 8px;box-shadow:0 10px 30px rgba(10,30,60,.22)}
.hero .sbox .hs-city{display:flex;align-items:center;gap:3px;flex:none;padding:0 12px;height:42px;border-right:1px solid #eef2f8;font-size:14px;font-weight:700;color:var(--p-d);cursor:pointer}
.hero .sbox .hs-city i{font-style:normal;font-size:9px;color:#9db4d6}
.hero .sbox #heroInput{flex:1;min-width:0;height:42px;border:none;background:transparent;font-size:14.5px;color:var(--t);outline:none}
.hero .sbox .hs-clear{flex:none;width:20px;height:20px;border-radius:50%;background:#c9d4e2;color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center;cursor:pointer}
.hero .sbox .hs-clear:hover{background:#b3c1d4}
.hero .sbox .sb{height:42px;border:none;border-radius:21px;background:var(--p);color:#fff;font-size:14.5px;font-weight:600;padding:0 22px;cursor:pointer;flex:none}

/* ===== 金刚区（仿安居客/58 分类入口） ===== */
.kingkong{display:grid;grid-template-columns:repeat(8,1fr);gap:10px;background:#fff;border-radius:14px;padding:16px 10px;box-shadow:0 1px 6px rgba(10,30,60,.04)}
.kk{display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;padding:6px 0;border-radius:10px;transition:.15s}
.kk:hover{background:var(--p-l2)}
.kk-ico{width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:23px;background:var(--p-l2)}
.kk:nth-child(2) .kk-ico{background:#fdeee6}.kk:nth-child(3) .kk-ico{background:#e8f7ef}
.kk:nth-child(4) .kk-ico{background:#fef3e0}.kk:nth-child(5) .kk-ico{background:#eef0ff}
.kk:nth-child(6) .kk-ico{background:#fdeaf2}.kk:nth-child(7) .kk-ico{background:#eaf7fb}
.kk:nth-child(8) .kk-ico{background:#eef6e8}
.kk-name{font-size:12.5px;color:#3a4a63;font-weight:500}

/* ===== 区块小标题 ===== */
.secHead{display:flex;align-items:baseline;justify-content:space-between;padding:0 2px 10px}
.secHead b{font-size:17px;font-weight:600;color:var(--t)}
.secHead .more{font-size:12.5px;color:var(--p);cursor:pointer}

/* ===== 精选推荐横滑 ===== */
.rec-scroll{display:flex;gap:11px;overflow-x:auto;padding:2px 2px 6px;scrollbar-width:thin}
.rec-item{flex:none;width:212px;cursor:pointer;border-radius:var(--r);overflow:hidden;background:#fff;border:.5px solid var(--ln);transition:border-color .16s,transform .16s}
.rec-item:hover{border-color:var(--p);transform:translateY(-2px)}
.rec-media{position:relative;width:100%;height:122px;background:linear-gradient(135deg,#e8f1ff,#d4e4ff);display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:700;color:#9dbdf0;overflow:hidden}
.rec-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.rec-info{position:absolute;left:0;bottom:0;width:100%;box-sizing:border-box;padding:16px 11px 9px;background:linear-gradient(to top,rgba(10,20,34,.82),rgba(10,20,34,0))}
.rec-name{font-size:12.5px;font-weight:600;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rec-price{font-size:12.5px;font-weight:700;color:#ffd479;margin-top:2px}

/* ===== 双入口条 ===== */
.entry-row{display:flex;gap:11px}
.entry{flex:1;display:flex;align-items:center;gap:11px;padding:13px 15px;background:#fff;border:1px solid #e7eef8;border-radius:var(--r);cursor:pointer;transition:.15s}
.entry:hover{border-color:var(--p)}
.entry-ico{width:40px;height:40px;border-radius:11px;background:var(--p-l);display:flex;align-items:center;justify-content:center;font-size:20px;flex:none}
.entry-title{font-size:14.5px;font-weight:600;color:var(--p-d);line-height:1.35}
.entry-sub{font-size:11.5px;color:var(--t3);margin-top:2px}

/* ===== 卡片收藏角标（登录后显） ===== */
.hc .fav{position:absolute;right:9px;bottom:9px;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.95);display:flex;align-items:center;justify-content:center;font-size:16px;color:#ff6b81;box-shadow:0 1px 4px rgba(10,30,60,.28);z-index:5;cursor:pointer}
.hc .fav.on{color:#fff;background:#f5222d}

/* ===== 响应式 ===== */
@media(max-width:768px){
  .kingkong{grid-template-columns:repeat(4,1fr)}
  .kk-name{font-size:11.5px}
  .entry-row{flex-direction:column}
}
/* 头部城市徽标 */
.citypick{position:relative;flex-shrink:0;margin-left:4px}
.citybtn{display:flex;align-items:center;gap:5px;height:32px;padding:0 11px;border:1px solid var(--ln);border-radius:8px;background:#fff;color:var(--p-d);font-size:13.5px;cursor:pointer}
.citybtn:hover{border-color:var(--p)}
.citybtn svg{width:13px;height:13px;fill:var(--p)}
.citybtn b{font-weight:600}
.citybtn i{font-style:normal;font-size:10px;color:#8ba3bd;transition:transform .18s}
.citypick.open .citybtn{border-color:var(--p)}
.citypick.open .citybtn i{transform:rotate(180deg)}
.citypanel{position:absolute;top:40px;left:0;width:340px;background:#fff;border:1px solid var(--ln);border-radius:12px;box-shadow:0 12px 32px rgba(18,48,79,.14);padding:12px 16px 8px;display:none;z-index:70}
.citypick.open .citypanel{display:block}
.cprow{display:flex;gap:10px;padding:7px 0;border-bottom:.5px solid #f0f4f8}
.cprow:last-of-type{border-bottom:none}
.cpt{font-size:12px;color:#8ba3bd;width:58px;flex-shrink:0;padding-top:4px}
.cpc{display:flex;flex-wrap:wrap;gap:2px;flex:1}
.cpc a{padding:4px 10px;border-radius:6px;font-size:13px;color:var(--t);cursor:pointer}
.cpc a:hover{background:#f2f7fc;color:var(--p)}
.cpc a.on{background:var(--p);color:#fff;font-weight:600}
.cpc a.on:hover{color:#fff}
.cpc a.dis{color:#c3cfdd;cursor:not-allowed}
.cpc a.dis:hover{background:none;color:#c3cfdd}
.cpnote{font-size:11.5px;color:#a9bacd;padding:8px 0 6px;text-align:center;border-top:.5px solid #f0f4f8;margin-top:4px}

/* ===== V9 生活服务版块（依小程序便民服务页重做 · 6 区块） ===== */
/* ① 驿站条：单站就近落点 */
.reStation{margin-top:0}
.rsCard{display:flex;align-items:center;gap:14px;background:linear-gradient(180deg,#F4F9FF,#EAF3FE);
  border:.5px solid var(--ln);border-radius:var(--r);padding:16px 18px;
  box-shadow:0 1px 2px rgba(20,60,120,.045),0 4px 14px rgba(20,60,120,.05)}
.rsIco{width:46px;height:46px;border-radius:11px;background:var(--p);color:#fff;font-size:19px;font-weight:600;
  display:flex;align-items:center;justify-content:center;flex-shrink:0}
.rsMain{flex:1;min-width:0}
.rsName{font-size:16px;font-weight:600;color:var(--t);display:flex;align-items:center;gap:8px}
.rsDot{width:8px;height:8px;border-radius:50%;background:#1d9e75;box-shadow:0 0 0 3px rgba(29,158,117,.16)}
.rsMeta{font-size:12.5px;color:var(--t2);margin-top:4px;line-height:1.7}
.rsAct{display:flex;gap:8px;flex-shrink:0}
.rsBtn{font-size:13px;padding:8px 16px;border-radius:var(--rs);cursor:pointer;text-decoration:none;background:#EAF3FE;color:#185FA5;font-weight:500;line-height:1.4}
.rsBtn:hover{background:#DCEAFB}
.rsBtn.b{background:var(--p);color:#fff}
.rsBtn.b:hover{background:var(--p-d)}

/* 区块通用：色标 + 标题行 */
.reTag{display:inline-block;font-size:11px;font-weight:600;color:#fff;padding:3px 11px;border-radius:100px;margin-bottom:14px;background:var(--p-d)}
.reTag.p{background:#534ab7}
.reTag.g{background:#1d9e75}
.reTag.o{background:#e0820d}
.reSrow{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.reStitle{font-size:18px;font-weight:700;color:var(--t)}
/* P2-7：说明另起一行（原与标题同排，一行塞了三件事） */
.reSsub{display:block;font-size:12.5px;color:var(--t3);margin-top:5px}
.reSmore{font-size:13px;color:var(--p);cursor:pointer;white-space:nowrap}

/* ② 众包大厅主位（紫调，区别于一般卡片） */
.crowdHall{background:linear-gradient(180deg,#faf9ff,#fff);border:1px solid rgba(83,74,183,.18);border-radius:var(--r);
  padding:20px 22px;box-shadow:0 1px 2px rgba(20,60,120,.045),0 4px 14px rgba(20,60,120,.05)}
.reGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.ent{display:flex;flex-direction:column;align-items:center;gap:7px;padding:14px 6px;border-radius:11px;
  background:#f7f9fc;cursor:pointer;transition:background .15s,transform .15s}
.ent:hover{background:#eef4fc;transform:translateY(-2px)}
.ient{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:23px;background:#fff;box-shadow:0 1px 3px rgba(20,60,120,.07)}
.en{font-size:14px;font-weight:600;color:var(--t)}
.ebadge{font-size:11px;color:#e0820d;background:#fdf1e0;padding:1px 7px;border-radius:8px}
.ebadge.g{color:#1d9e75;background:#e3f6ee}
.reCta{display:flex;gap:12px;margin-top:16px}
.reCta .c{flex:1;text-align:center;padding:13px;border-radius:11px;font-size:15px;font-weight:600;cursor:pointer;transition:background .15s}
.reCta .cM{background:#534ab7;color:#fff}
.reCta .cM:hover{background:#463d9e}
.reCta .cG{background:#fff;color:#534ab7;border:1px solid #534ab7}
.reCta .cG:hover{background:#f5f3ff}

/* ④ 邻里互助 chips */
.reChips{display:flex;flex-wrap:wrap;gap:10px}
.reChips .chip{display:flex;align-items:center;gap:7px;background:#f4f7fb;border:1px solid #e6edf5;padding:9px 14px;border-radius:20px;font-size:14px;cursor:pointer;color:var(--t)}
.reChips .chip:hover{border-color:var(--p);color:var(--p)}
.reChips .chip .ci{font-size:17px}

/* ⑤ 通宝权益 横向卡 */
.rePts{display:flex;gap:12px;overflow-x:auto;padding-bottom:4px}
.rePts .pt{flex:0 0 150px;border:1px solid #eef0f4;border-radius:12px;padding:14px;background:#fffaf2;cursor:pointer;transition:border-color .15s}
.rePts .pt:hover{border-color:#e0820d}
.rePts .pt .pi{font-size:26px}
.rePts .pt .pn{font-size:14px;font-weight:600;margin-top:6px;color:var(--t)}
.rePts .pt .pc{font-size:13px;color:#e0820d;margin-top:4px}
.rePts .pt .px{font-size:12px;color:var(--t3);margin-top:2px}
.rePnote{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;font-size:13px;color:var(--t2);background:#f6f9fd;padding:10px 14px;border-radius:9px}
.rePnote .pl{color:var(--p);font-weight:600;white-space:nowrap;cursor:pointer}

/* ⑥ 社区公告 */
.reNtcList{display:flex;flex-direction:column}
.reNtcList .ntc{display:flex;align-items:flex-start;gap:10px;padding:11px 0;border-bottom:.5px dashed var(--ln);cursor:pointer}
.reNtcList .ntc:last-child{border-bottom:none}
.reNtcList .ntc .ni{font-size:18px;flex-shrink:0}
.reNtcList .ntc .nt{font-size:14px;font-weight:600;color:var(--t)}
.reNtcList .ntc .nd{font-size:12px;color:var(--t3);margin-top:2px}
.reNtcList .ntc:hover .nt{color:var(--p)}
.reEmpty{font-size:12.5px;color:var(--t3);padding:8px 0}

@media(max-width:1024px){
  .reGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .reGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .reCta{flex-direction:column}
  .reStitle{font-size:17px}
}

/* ===================== V11 周边生活（丰富版商家频道） ===================== */
.mchKk{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:12px}
.kkIt{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 6px;background:#fff;border:1px solid var(--ln);border-radius:var(--r);cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s}
.kkIt:hover{transform:translateY(-3px);box-shadow:0 8px 20px rgba(30,111,217,.12);border-color:var(--p)}
.kkIco{width:46px;height:46px;display:flex;align-items:center;justify-content:center;font-size:24px;background:linear-gradient(135deg,#eaf2fe,#e4ecfb);border-radius:50%}
.kkNm{font-size:13px;color:var(--t);text-align:center}

.msec{margin:0}
.msecH{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:16px;gap:12px}
.msecH h2{font-size:21px;color:var(--t);font-weight:700;margin:0}
.msecH .msub{display:block;font-size:12.5px;color:var(--t3);margin-top:4px}
.mMore{font-size:13px;color:var(--p);cursor:pointer;white-space:nowrap;font-weight:600}
.mMore:hover{text-decoration:underline}

/* ② 附近好店：横向滑动卡 */
.mNear{display:flex;gap:14px;overflow-x:auto;padding-bottom:6px;scroll-snap-type:x mandatory}
.mNear::-webkit-scrollbar{height:6px}
.mNear::-webkit-scrollbar-thumb{background:var(--ln2);border-radius:6px}
.ns{flex:0 0 260px;scroll-snap-align:start;background:#fff;border:1px solid var(--ln);border-radius:var(--r);overflow:hidden;cursor:pointer;transition:transform .15s,box-shadow .15s}
.ns:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(30,111,217,.14)}
/* P1-4：商户卡无 LOGO 占位——原来整块纯蓝 + 40px 白字（18 家里 15 家如此），
   改浅蓝底 + 收小字号，与 .mc 列表卡占位口径一致 */
.nsTh{height:120px;background:var(--p-l);display:flex;align-items:center;justify-content:center;overflow:hidden}
.nsTh img{width:100%;height:100%;object-fit:cover}
.nsPh{font-size:32px;font-weight:500;color:var(--p-d);opacity:.45}
.nsBd{padding:12px 14px}
.nsN{font-size:15px;font-weight:600;color:var(--t)}
.nsR{margin:5px 0;font-size:13px}
.nsR .stars{color:#FFB400;letter-spacing:1px}
.nsR .nsRt{color:var(--t3);margin-left:4px}
.nsC{font-size:12.5px;color:var(--p);background:#eaf2fe;display:inline-block;padding:1px 8px;border-radius:100px;margin-bottom:5px}
.nsA{font-size:12px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* 通用商品卡（到家好物 / 9.9抢购 / 限时特惠） */
.mGoods,.mGrab,.mDeal{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}
.gp,.gb,.dl{background:#fff;border:1px solid var(--ln);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:transform .15s,box-shadow .15s}
.gp:hover,.gb:hover,.dl:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(30,111,217,.14)}
.gpTh,.gbTh,.dlTh{position:relative;height:176px;background:linear-gradient(135deg,#eaf2fe,#e4ecfb);display:flex;align-items:center;justify-content:center;overflow:hidden}
.gpTh img,.gbTh img,.dlTh img{width:100%;height:100%;object-fit:cover}
/* P1-3：商品无图占位——原为 34px 彩色首字（一屏多个「抢」像测试数据漏出），
   改为浅斜纹 + 12px 灰字，与房源卡占位同一套克制口径 */
.gpPh,.gbPh,.dlPh{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:13px;font-weight:400;color:var(--t3);letter-spacing:.5px;background:repeating-linear-gradient(135deg,#F7FAFD,#F7FAFD 10px,#EFF4FA 10px,#EFF4FA 20px)}
/* P1-3：gbPh 已并入统一占位，取消分色 */
/* P1-3：dlPh 已并入统一占位，取消分色 */
.gpTag,.dlTag{position:absolute;top:8px;left:8px;font-size:11px;color:#fff;background:var(--p);padding:2px 8px;border-radius:100px}
.dlTag{background:#d4453b}
.gpBd,.gbBd,.dlBd{padding:11px 13px;display:flex;flex-direction:column;gap:6px;flex:1}
.gpN,.gbN,.dlN{font-size:14.5px;font-weight:600;color:var(--t);line-height:1.4}
.gpShop,.gbShop,.dlShop{font-size:12px;color:var(--t3)}
.gpP,.gbP,.dlP{font-size:17px;font-weight:700;color:#e0820d}
.gpP .gpO,.gbP .gbO,.dlP .dlO{font-size:12px;font-weight:400;color:var(--t3);text-decoration:line-through;margin-left:6px}
.gpF{display:flex;align-items:center;justify-content:space-between;margin-top:auto;gap:8px}
.gpPt{font-size:12px;color:#1d9e75;font-weight:600}
.gpBuy,.gbBuy,.dlBuy{margin:0 13px 13px;border:none;border-radius:8px;padding:8px 0;font-size:13px;font-weight:600;color:#fff;background:var(--p);cursor:pointer;transition:background .15s}
.gpBuy:hover,.gbBuy:hover,.dlBuy:hover{background:var(--p-d)}
.dlBuy{background:#d4453b}
.dlBuy:hover{background:#b5362e}
.dlCd{font-size:12px;color:var(--t3);display:flex;align-items:center;gap:5px}
.dlCd .cdDot{width:7px;height:7px;border-radius:50%;background:#d4453b;display:inline-block;animation:blink 1s infinite}
.dlCd .dealCd{font-variant-numeric:tabular-nums;color:#d4453b;font-weight:700}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}

/* ④ 抢购分类筛选 */
.mGrabCats{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.mGrabCats .gc{font-size:13px;color:var(--t);background:#fff;border:1px solid var(--ln);border-radius:100px;padding:5px 15px;cursor:pointer;transition:.15s}
.mGrabCats .gc:hover{border-color:var(--p);color:var(--p)}
.mGrabCats .gc.on{background:var(--p);border-color:var(--p);color:#fff}

@media(max-width:1024px){
  .mchKk{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:640px){
  .mchKk{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
  .kkIt{padding:12px 4px}
  .ns{flex-basis:200px}
  .mGoods,.mGrab,.mDeal{grid-template-columns:repeat(2,minmax(0,1fr))}
  .msecH h2{font-size:18px}
}

/* ============================================================
   W1 新增样式：房源详情弹层 / 众包发布表单 / 登录同意勾选
   字号沿用现有体系（11.5/12/12.5/13/13.5/17/20），颜色全部走 CSS 变量
   ============================================================ */

/* ① 房源卡可点（原房源卡无任何点击态） */
.hc.clickable{cursor:pointer;transition:box-shadow .18s,transform .18s}
.hc.clickable:hover{box-shadow:0 6px 20px rgba(30,111,217,.14);transform:translateY(-2px)}
.hc.clickable:focus-visible{outline:2px solid var(--p);outline-offset:2px}

/* ② 房源详情弹层（复用 .mchModal 容器，补房源专属区块） */
.hsModal{width:620px}
.hsModal .hsPr{font-size:20px;font-weight:600;color:var(--pt);margin-top:8px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.hsModal .hsPr small{font-size:12.5px;font-weight:400;color:var(--t3)}
.hsModal .hsPr .hsDp{font-size:12px;font-weight:400;color:var(--t2);background:#fff;border:1px solid var(--ln);border-radius:5px;padding:2px 8px}
.hsGal{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;margin-bottom:14px;position:relative}
.hsGal.none{display:flex;flex-direction:column;align-items:center;justify-content:center;height:150px;
  background:linear-gradient(135deg,var(--p-l) 0%,var(--p-l2) 100%);border-radius:var(--rs);gap:8px}
.hsGal .hsImg{aspect-ratio:4/3;border-radius:var(--rs);overflow:hidden;background:var(--p-l2)}
.hsGal .hsImg img{width:100%;height:100%;object-fit:cover;display:block}
.hsGal .hsBig{font-size:38px;font-weight:600;color:var(--p);opacity:.45;line-height:1.1}
.hsGal .hsNoTip{font-size:12.5px;color:var(--t3);text-align:center;line-height:1.8}
.hsGal .hsVtag,.hsGal .hsCtag{position:absolute;top:8px;font-size:11px;color:#fff;background:rgba(18,48,79,.62);padding:2px 8px;border-radius:4px}
.hsGal .hsVtag{left:8px}
.hsGal .hsCtag{right:8px}
.hsTags{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:13px}
.hsTags span{font-size:11.5px;color:var(--t2);background:var(--p-l2);border:1px solid var(--ln);border-radius:5px;padding:3px 9px}
.hsTags .tgp{color:var(--p);border-color:var(--ln2);background:var(--p-l)}
.hsTags .lk{color:#1E7F5C;border-color:rgba(30,127,92,.25);background:#EFF9F4}
.hsTags .vd{color:var(--p-d);border-color:var(--ln2);background:var(--p-l)}
.hsTags .vf{color:var(--pt);border-color:rgba(226,75,74,.22);background:#FEF4F4}
.hsGrid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--ln);border:1px solid var(--ln);border-radius:var(--rs);overflow:hidden;margin-bottom:13px}
.hsGrid .hsG{display:flex;gap:8px;padding:9px 12px;background:#fff;font-size:12.5px}
.hsGrid .hsG .k{color:var(--t3);flex:0 0 62px}
.hsGrid .hsG .v{color:var(--t);flex:1;min-width:0}
.hsTip{font-size:12px;color:var(--t2);background:var(--p-l2);border-left:3px solid var(--p);border-radius:4px;padding:9px 12px;margin-bottom:10px}
.hsMeta{font-size:11.5px;color:var(--t3);margin-bottom:6px}
/* R1-B：房源详情「底部固定条」—— 电话常驻视口底部（口径对齐小程序；无号置灰不可拨）
   原 .hsTel 把电话插在内容流最末尾，被画廊/参数/描述压在下面，须滚到底才见，等同没有。
   现改 sticky 底栏，内容再长也常驻。负边距抵消 .mmBd 的 22px 内边距，让底栏通栏。 */
.hsBar{position:sticky;bottom:-22px;z-index:6;display:flex;align-items:center;gap:10px;
  margin:16px -22px -22px;padding:12px 22px;background:#fff;border-top:.5px solid var(--ln)}
.hsBarTel{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:9px 14px;
  background:var(--p-l);border:1px solid rgba(30,111,217,.18);border-radius:10px;
  text-decoration:none;color:inherit;transition:background .15s,border-color .15s}
.hsBarTel:hover{background:var(--p-l2);border-color:var(--p)}
.hsBarIco{flex:0 0 auto;width:30px;height:30px;border-radius:50%;background:var(--p);
  display:flex;align-items:center;justify-content:center}
.hsBarIco svg{width:15px;height:15px;fill:#fff;stroke:none}
.hsBarTx{flex:0 0 auto;font-size:13px;font-weight:500;color:var(--p-d)}
.hsBarNm{margin-left:auto;font-size:16px;font-weight:600;color:var(--p);letter-spacing:.5px;
  font-family:ui-monospace,Consolas,monospace;white-space:nowrap}
.hsBarTel.off{background:#F7F8FA;border-style:dashed;border-color:#E3E6EA}
.hsBarTel.off .hsBarIco{background:#C3C8CF}
.hsBarTel.off .hsBarTx{color:var(--t3);font-weight:400}
.hsBarBtn{flex:0 0 auto;padding:11px 22px;white-space:nowrap}
.hsLead{margin-top:14px;padding-top:14px;border-top:.5px dashed var(--ln)}
.hsLead .hsLrow{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.hsLead .hsLrow .k{flex:0 0 62px;font-size:12.5px;color:var(--t3)}
.hsLead .hsLrow .cqIn{flex:1}

/* ③ 众包发布需求表单（W1 新挂载） */
.cqForm{margin-top:16px;background:#fff;border:1px solid var(--ln);border-radius:var(--r);padding:18px 20px}
.cqForm.hide{display:none}
.cqForm .cqHd{display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:500;margin-bottom:14px}
.cqForm .cqHd .cqX{font-size:12px;color:var(--t3);cursor:pointer;font-weight:400}
.cqForm .cqHd .cqX:hover{color:var(--p)}
.cqForm .cqFld{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}
.cqForm .cqFld .k{flex:0 0 66px;font-size:12.5px;color:var(--t3);padding-top:9px}
.cqForm .cqTa{flex:1;min-width:0;min-height:74px;resize:vertical;border:.5px solid rgba(30,111,217,.26);border-radius:8px;
  padding:9px 12px;font-size:13px;font-family:inherit;color:var(--t);outline:none;background:var(--w)}
.cqForm .cqTa:focus{border-color:var(--p)}
.cqForm .cqTa::placeholder{color:#8C949F}

/* ④ 登录同意勾选（原 .cb 为纯装饰 span，不勾也能登录） */
.modal .agree{cursor:pointer;user-select:none}
.modal .agree .cb{position:relative;transition:.15s}
.modal .agree .cb.on{background:var(--p);border-color:var(--p)}
.modal .agree .cb.on::after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;
  border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.modal .agreeNote{margin-top:7px;font-size:11.5px;color:var(--t3);line-height:1.7}

/* ⑤ 租房需求登记表单（W1：就地展开） */
.rnForm{margin-top:15px;display:flex;flex-direction:column;gap:9px;max-width:420px;margin-left:auto;margin-right:auto;text-align:left}
.rnForm.hide{display:none}
.rnForm .cpB{margin-top:2px}
.rnForm .cpNote{text-align:center}

@media(max-width:640px){
  .hsGrid{grid-template-columns:1fr}
  .hsModal .hsPr{font-size:18px}
  /* 窄屏：电话与预约按钮各占一行，避免挤成一团 */
  .hsBar{flex-wrap:wrap;gap:8px;padding:10px 22px}
  .hsBarTel{flex:1 1 100%}
  .hsBarBtn{flex:1 1 100%}
  .hsLead .hsLrow{flex-direction:column;align-items:stretch;gap:5px}
  .hsLead .hsLrow .k{flex:none;padding-top:0}
  .cqForm .cqFld{flex-direction:column;align-items:stretch;gap:5px}
  .cqForm .cqFld .k{flex:none;padding-top:0}
}

/* ============================================================
   W2 新增样式：招商化导航 / 服务站网络 / 小程序码引导 / 免登录留资
   字号沿用现有体系（11.5/12/12.5/13/13.5/14/16/17/20），颜色全部走 CSS 变量
   ============================================================ */

/* ① 导航「扫码办事」按钮（带二维码图标） */
.qrBtn{display:inline-flex;align-items:center;gap:6px}
.qrBtn .qi{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}

/* ② 首屏内联引导带（窄条，不抢房源区视觉）
   R1-B：改为首屏右下角浮标，不再单独占一排（原为第 6 排，是「6 排文字」的来源之一）；
         窄屏回落为静态一排，避免遮挡搜索框。 */
/* R3-1g：「缴费/报修/开门/查账单」原为 absolute 定位在搜索框右侧（与搜索框挤同一行），
   现随 .heroFoot 下移到搜索框下方独立一行 —— 去掉绝对定位，交由 flex 居中排列。 */
.hero .qrInline{position:static;margin-top:0}
/* 提示行 + 居民办事引导 同一行（左提示 / 右二维码） */
.heroFoot{display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap;margin-top:16px}
.hfHint{font-size:12px;color:rgba(255,255,255,.78);line-height:1.6}
.qrInline{display:inline-flex;align-items:center;gap:10px;margin-top:16px;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.26);
  border-radius:100px;padding:6px 8px 6px 14px;backdrop-filter:blur(2px)}
.qrInline .qi2{width:15px;height:15px;flex:0 0 auto;display:inline-flex}
.qrInline .qi2 svg{width:15px;height:15px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.qrInline .qt2{font-size:12.5px;color:rgba(255,255,255,.9)}
.qrInline .qb2{font-size:12px;color:var(--p-d);background:#fff;border:none;border-radius:100px;
  padding:5px 14px;cursor:pointer;font-weight:500;white-space:nowrap}
.qrInline .qb2:hover{background:var(--p-l)}

/* ③ 小程序码：通用码框（有图出图 / 无图出占位，绝不破图） */
.qrImg{background:#fff;border:1px solid var(--ln);border-radius:var(--rs);
  display:flex;align-items:center;justify-content:center;overflow:hidden;flex:0 0 auto}
.qrImg img{display:block;width:100%;height:100%;object-fit:contain}
.qrImg.ph{border-style:dashed;border-color:var(--ln2);background:var(--p-l2);
  flex-direction:column;gap:6px;padding:8px}
.qrImg.ph svg{width:30px;height:30px;fill:none;stroke:var(--p);opacity:.5;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.qrImg.ph span{font-size:11.5px;color:var(--t3);text-align:center;line-height:1.4}
/* W3：多码横排（小程序码 + 公众号…，数量由 content.json 决定） */
.qrRow{display:flex;align-items:flex-start;justify-content:center;gap:20px;flex-wrap:wrap}
.qrCell{display:flex;flex-direction:column;align-items:center;gap:6px;flex:0 0 auto}
.qrCell .qrCN{font-size:12px;font-weight:500;color:var(--t2);line-height:1.3;text-align:center}
.qrCell .qrCK{font-size:11px;color:var(--t3);line-height:1.3;text-align:center;max-width:150px}
.qrFoot .qrRow{gap:12px;justify-content:flex-start}
.qrFoot .qrCell .qrCN{font-size:10.5px}
.qrFoot .qrCell .qrCK{display:none}
.qrBand .qrRow{gap:16px}

/* ④ 小区块标题（服务站网络 / 服务分工 复用 .sh + .eb） */
.stGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(304px,1fr));gap:16px}


/* ⑥ 招商留资表单（免登录） */
.jtLead{margin-top:18px;background:#fff;border:1px solid var(--ln);border-radius:var(--r);padding:16px 18px;max-width:460px}
.jtLead.hide{display:none}
.jtLead .jtLf{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.jtLead .jtLf .k{flex:0 0 64px;font-size:12.5px;color:var(--t3)}
.jtLead .jtLf .cqIn{flex:1}
.jtLead .cpB{margin-top:4px}

/* ⑦ 服务网络页底部引导带 */
.qrBand .qrBd{display:flex;align-items:center;gap:22px;background:var(--p-l);
  border:1px solid var(--ln);border-radius:var(--r);padding:20px 24px}
.qrBand .qbT{font-size:15px;font-weight:500}
.qrBand .qbD{font-size:12.5px;color:var(--t2);line-height:1.85;margin-top:6px}
.qrBand .qbN{font-size:11.5px;color:var(--t3);margin-top:8px}

/* ⑧ 页脚常驻码 */
.qrFoot{display:flex;align-items:center;gap:12px;margin-top:14px;padding-top:14px;
  border-top:.5px solid var(--ln)}
.qrFoot .qfT{font-size:11.5px;color:var(--t3);line-height:1.7}

/* ⑨ 居民办事页引导卡（原「我的」） */
.qrPanel .qpWrap{display:flex;align-items:center;gap:30px;background:#fff;border:1px solid var(--ln);
  border-radius:var(--r);padding:28px 32px;margin-bottom:8px}
.qrPanel .qpT{font-size:17px;font-weight:500}
.qrPanel .qpD{font-size:13px;color:var(--t2);line-height:1.9;margin-top:10px}
.qrPanel .qpSteps{margin-top:14px;display:flex;flex-direction:column;gap:7px}
.qrPanel .qpSteps div{display:flex;align-items:flex-start;gap:9px;font-size:12.5px;color:var(--t2)}
.qrPanel .qpSteps i{flex:0 0 auto;width:17px;height:17px;border-radius:50%;background:var(--p);
  color:#fff;font-size:11px;font-style:normal;display:inline-flex;align-items:center;
  justify-content:center;margin-top:1px}
.qrPanel .qpN{font-size:11.5px;color:var(--t3);margin-top:12px}

/* ⑩ 小程序码弹层 */
.qrModal{background:#fff;border-radius:var(--r);width:392px;max-width:92vw;padding:28px 30px 24px;
  position:relative;text-align:center}
.qrModal .qrX{position:absolute;top:14px;right:18px;font-size:20px;color:var(--t3);cursor:pointer;line-height:1}
.qrModal .qrT{font-size:16px;font-weight:500}
.qrModal .qrD{font-size:12.5px;color:var(--t2);line-height:1.85;margin-top:9px}
.qrModal .qrBox{display:flex;justify-content:center;margin:20px 0 14px}
.qrModal .qrN{font-size:11.5px;color:var(--t3)}
.qrModal .qrSteps{margin-top:18px;padding-top:16px;border-top:.5px solid var(--ln);
  display:flex;flex-direction:column;gap:8px;text-align:left}
.qrModal .qrSteps span{display:flex;align-items:flex-start;gap:9px;font-size:12.5px;color:var(--t2)}
.qrModal .qrSteps i{flex:0 0 auto;width:16px;height:16px;border-radius:50%;background:var(--p-l);
  color:var(--p-d);font-size:11px;font-style:normal;display:inline-flex;align-items:center;
  justify-content:center;margin-top:1px}

/* ⑪ 通宝卡改为只读能力说明（去掉点击态，避免「点了没用」） */
.pt.ptro{cursor:default}
.pt.ptro:hover{border-color:var(--ln)}

@media(max-width:1024px){

  .stGrid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
  /* R1-B：窄屏空间紧，扫码引导回落为静态一排（不再悬浮，避免压住搜索框） */
  .heroFoot{gap:10px;margin-top:14px}
  .hero h1{font-size:27px}
}
@media(max-width:640px){
  .hero h1{font-size:22px}
  .qrInline{margin-top:14px;padding:5px 6px 5px 11px;gap:7px}
  .qrInline .qt2{font-size:12px}
  .qrInline .qb2{padding:4px 11px;font-size:11.5px}
  .stGrid{grid-template-columns:1fr;gap:12px}
  .qrBand .qrBd{flex-direction:column;text-align:center;gap:16px;padding:20px}
  .qrPanel .qpWrap{flex-direction:column;text-align:center;gap:20px;padding:24px 20px}
  .qrPanel .qpSteps{text-align:left}
  .jtLead{padding:15px 16px}
  .jtLead .jtLf{flex-direction:column;align-items:stretch;gap:5px}
  .jtLead .jtLf .k{flex:none}
  .qrFoot{flex-direction:column;align-items:flex-start;gap:10px}
  .qrRow{gap:14px}
  .qrCell .qrCK{display:none}
}
/* ============================================================
   R2-A · 生活服务页界面完善（2026-10-15）
   参照：outputs/portal-r2/生活服务页界面设计_UI方案_V1.html（总控已确认）
   范围：仅生活服务页新增样式 + 把众包大厅紫调收敛为全站蓝色语言
   ============================================================ */

/* ① 首屏「服务搜索 + 发布需求」合并条（把模糊需求直接带进表单） */
.lfSearch{display:flex;align-items:center;gap:9px;max-width:660px;margin:20px auto 0;background:#fff;
  border-radius:26px;padding:6px 6px 6px 18px;box-shadow:0 10px 30px rgba(8,30,64,.24)}
.lfSearch .lfSI{width:17px;height:17px;flex:none;fill:none;stroke:#9DB4D6;stroke-width:1.7;stroke-linecap:round}
.lfSearch input{flex:1;min-width:0;height:40px;border:none;background:transparent;font-size:14px;
  color:var(--t);outline:none;font-family:inherit}
.lfSearch input::placeholder{color:#9AA7B8}
.lfSearch .lfSb{flex:none;height:40px;border-radius:20px;background:#fff;color:var(--p);font-size:14px;
  font-weight:600;padding:0 24px;cursor:pointer;transition:background .15s}
.lfSearch .lfSb:hover{background:var(--p-l)}

/* ② 热门需求词（点即回填并打开发布表单） */
.lfHot{margin:13px auto 0;display:flex;gap:9px;justify-content:center;flex-wrap:wrap;align-items:center;
  font-size:12.5px;color:rgba(255,255,255,.9)}
.lfHot b{font-weight:400;color:#fff;opacity:.8}
.lfHot span{background:rgba(255,255,255,.14);border:.5px solid rgba(255,255,255,.32);border-radius:100px;
  padding:3px 12px;font-size:12px;cursor:pointer;transition:border-color .15s,color .15s}
.lfHot span:hover{border-color:#CDEBFF;color:#CDEBFF}

/* ③ 服务保障标签（补"谁上门 / 怎么收费"的预期管理） */
.lfTrust{display:flex;gap:10px 16px;justify-content:center;flex-wrap:wrap;margin-top:20px;padding-top:18px;
  border-top:.5px solid rgba(255,255,255,.22);font-size:12.5px;color:rgba(255,255,255,.95)}
.lfTrust span{display:inline-flex;align-items:center;gap:6px}
.lfTrust span::before{content:"\2713";display:inline-flex;align-items:center;justify-content:center;
  width:14px;height:14px;flex:none;border-radius:50%;background:rgba(255,255,255,.22);
  color:#fff;font-size:9px;line-height:1}

/* ④ 服务流程带（说需求 → 就近派单 → 上门服务 → 验收付款） */
.lfFlow{background:#fff;border-bottom:.5px solid #EDF1F7;padding:22px 0}
.lfFlowIn{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}
.lfStep{display:flex;align-items:center;gap:9px}
.lfStep .n{width:26px;height:26px;border-radius:50%;background:var(--p-l);color:var(--p-d);font-size:12.5px;
  font-weight:500;display:flex;align-items:center;justify-content:center;
  border:.5px solid var(--card-bd);flex:none}
.lfStep .tx{font-size:13.5px;color:var(--t);font-weight:500;line-height:1.35}
.lfStep .tx small{display:block;font-size:11.5px;color:var(--t3);font-weight:400;margin-top:2px}
.lfArrow{width:46px;height:1px;background:linear-gradient(90deg,var(--ln2),#CFE0F5);margin:0 12px;
  position:relative;flex:none}
.lfArrow::after{content:"";position:absolute;right:-1px;top:-3px;border-left:6px solid #CFE0F5;
  border-top:3.5px solid transparent;border-bottom:3.5px solid transparent}

/* ⑤ 品类卡（R2-A：4 列 × 3 行 emoji → 6 列 × 2 行线性图标 + 一句说明） */
.cfGrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:11px}
.cfC{background:#fff;border:.5px solid var(--ln2);border-radius:11px;padding:15px 11px;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;
  transition:transform .15s,box-shadow .15s,border-color .15s}
.cfC:hover{transform:translateY(-2px);border-color:var(--p);box-shadow:0 6px 18px rgba(30,111,217,.12)}
.cfI{width:42px;height:42px;border-radius:11px;background:var(--p-l);color:var(--p);
  display:flex;align-items:center;justify-content:center;flex:none}
.cfI svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round}
.cfN{font-size:13.5px;font-weight:500;color:var(--t)}
.cfD{font-size:11.5px;color:var(--t3);line-height:1.5}

/* ⑥ 生活服务页服务站卡（由 1 家 → stations.json 全部三家网格） */
/* P3-8：站卡改纵向 flex + 动作行贴底 —— 原标签行数不同会让「电话直联」
   不在同一水平线（差约 20px）。grid 父级已 stretch，故 margin-top:auto 即可对齐 */
.lfSt{background:linear-gradient(180deg,#F7FBFF,#EFF6FE);border:.5px solid var(--ln);border-radius:var(--r);display:flex;flex-direction:column;
  padding:16px 17px;box-shadow:var(--card-sh)}
.lfSt .top{display:flex;align-items:center;gap:11px}
.lfSt .ic{width:44px;height:44px;border-radius:11px;background:var(--p);color:#fff;font-size:18px;
  font-weight:500;display:flex;align-items:center;justify-content:center;flex:none}
.lfSt .nm{font-size:14px;font-weight:500;color:var(--t);line-height:1.4}
.lfSt .meta{font-size:11.5px;color:var(--t3);margin-top:3px;display:flex;align-items:center;gap:6px}
.lfSt .dot{width:6px;height:6px;border-radius:50%;background:#22B573;display:inline-block;flex:none}
.lfSt .tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.lfSt .tags span{font-size:11.5px;color:#185FA5;background:#E4F0FD;border:.5px solid #CFE2F8;
  border-radius:6px;padding:2px 8px}
.lfSt .act{display:flex;gap:8px;margin-top:auto;padding-top:13px}
.lfSt .act a{font-size:12.5px;padding:7px 15px;border-radius:var(--rs);background:#EAF3FE;color:#185FA5;
  font-weight:500;cursor:pointer;text-decoration:none}
.lfSt .act a.b{background:var(--p);color:#fff}
.lfSt .act a.b:hover{background:var(--p-d)}
.lfSt .act a.gh{background:#fff;border:.5px solid var(--ln2);color:var(--t2);font-weight:400}
.lfSt .act a.gh:hover{border-color:var(--p);color:var(--p)}

/* ⑦ 覆盖：众包大厅由「紫调主位」收敛为全站蓝色语言（R1 Q3=B 底色/语言统一） */
.crowdHall{background:#fff;border:.5px solid var(--card-bd);border-radius:var(--r);padding:20px 22px;
  box-shadow:var(--card-sh)}
.reCta .c{font-size:14.5px}
.reCta .cM{background:var(--p);color:#fff}
.reCta .cM:hover{background:var(--p-d)}
.reCta .cG{background:#fff;color:var(--p);border:.5px solid var(--ln2)}
.reCta .cG:hover{background:var(--p-l)}

/* ⑧ 响应式：品类由 6 列 → 3 列；流程带压缩 */
@media(max-width:900px){
  .cfGrid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .lfArrow{width:20px;margin:0 6px}
}
@media(max-width:640px){
  .lfSearch{padding-left:14px}
  .lfSearch .lfSb{padding:0 16px;font-size:13px}
  .cfGrid{gap:9px}
  .cfC{padding:12px 8px}
  .lfStep .tx small{display:none}
  .lfArrow{width:12px;margin:0 4px}
}
/* ============================================================
   R2-B · 卡片视觉统一 + 两页主调性 + 合规配套样式（2026-10-15）
   参照：outputs/portal-r2/R2B设计稿_两页重排与主调性_V1.html（总控已确认）
   写法：末尾追加覆盖块，不改动原有规则行 —— 单点、可整段回滚
   总控拍板：边框 0.5px ／ 能力卡·设备卡浅蓝底保留 ／ 字重统一 500
   ============================================================ */

/* ---------- ① 卡片令牌（唯一来源；旧 --ln 降级为 --card-bd 的别名） ---------- */
:root{
  --card-bd-w:.5px;
  --card-sh-h:0 6px 20px rgba(30,111,217,.12);
  --card-lift:-2px;
  --card-pad:16px 17px;
  --teal:#0F8A6A;--teal-d:#0A6B52;--teal-l:#E6F5F0;--teal-l2:#F4FBF8;
  --gold:#B45309;--gold-d:#8F4107;--gold-l:#FDF3E7;--gold-l2:#FEFAF4;
}
/* --ln 与 --card-bd 取值完全相同（rgba(30,111,217,.14)），别名化零视觉变化 */
:root{--ln:var(--card-bd)}

/* ---------- ② 通用页 Hero 壳（两页共用；主调色见 ③ 变体） ---------- */
.pageHero{background:var(--p);border-bottom:var(--card-bd-w) solid var(--ln2);
  padding:40px 0 36px;text-align:center;color:#fff}
.pageHero .crumb{padding:0 0 12px;color:rgba(255,255,255,.82)}
.pageHero .crumb b{color:#fff}
.pageHero h1{font-size:30px;font-weight:500;line-height:1.32;letter-spacing:.5px;color:#fff}
.pageHero h1 em{font-style:normal}
.pageHero .sub{font-size:14.5px;line-height:1.7;color:rgba(255,255,255,.92);margin:12px auto 0;max-width:640px}
.pageHeroStats{display:flex;justify-content:center;margin-top:20px;padding-top:18px;
  border-top:var(--card-bd-w) solid rgba(255,255,255,.24)}
.pageHeroStats .phs{flex:1;max-width:150px;border-left:var(--card-bd-w) solid rgba(255,255,255,.2)}
.pageHeroStats .phs:first-child{border-left:none}
.pageHeroStats .phs .n{font-size:23px;font-weight:500;line-height:1.1}
.pageHeroStats .phs .k{font-size:11px;color:rgba(255,255,255,.82);margin-top:3px}
.pageHeroBtns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:20px}
.pageHeroBtns .phb{background:#fff;color:var(--p);border-radius:100px;padding:10px 26px;
  font-size:13px;font-weight:500;cursor:pointer;transition:opacity .15s,background .15s}
.pageHeroBtns .phb:hover{opacity:.88}
.pageHeroBtns .phb.ghost{background:rgba(255,255,255,.16);color:#fff;
  border:var(--card-bd-w) solid rgba(255,255,255,.5)}
.pageHeroTel{margin-top:14px;font-size:11.5px;color:rgba(255,255,255,.78)}

/* ---------- ③ 主调变体（青绿 = 运营中；赭金 = 机会） ---------- */



.pageHero.ht-gold{background:var(--gold)}
.pageHero.ht-gold h1 em{color:#FBD9A8}
.pageHero.ht-gold .pageHeroBtns .phb{color:var(--gold-d)}

/* 服务版图页（青绿）：小标签 / 强调数字 / 服务站卡与分工卡细节 */

/* 招商合作页（赭金）：小标签 / 加盟区 / 表单 / 流程 */
#p-about .eb{color:var(--gold-d);background:var(--gold-l);border-color:rgba(180,83,9,.2)}
#p-about .eb::before{background:var(--gold)}
#p-about .join{background:var(--gold-l2);border-color:rgba(180,83,9,.18)}
#p-about .joinTop{border-bottom-color:rgba(180,83,9,.18)}
#p-about .joinFlow{border-top-color:rgba(180,83,9,.18)}
#p-about .joinFlow .sn{background:var(--gold)}
#p-about .joinFlow .fa{color:#DDB98A}
#p-about .jtBadge{background:var(--gold)}
#p-about .jtBtn{background:var(--gold)}
#p-about .jtBtn:hover{background:var(--gold-d)}
#p-about .jtBtn.ghost{background:#fff;color:var(--gold);border-color:var(--gold)}
#p-about .jtBtn.ghost:hover{background:var(--gold-l)}
#p-about .jtStat .n{color:var(--gold-d)}
#p-about .jt .lv{background:var(--gold-l);color:var(--gold-d)}
#p-about .jtR{background:rgba(180,83,9,.18);border-color:rgba(180,83,9,.18)}
#p-about .cpB,#p-about .bt.p{background:var(--gold)}
#p-about .cpB:hover,#p-about .bt.p:hover{background:var(--gold-d)}
#p-about .bt:hover{border-color:var(--gold);color:var(--gold-d)}
#p-about .jtLead{border-color:rgba(180,83,9,.2)}


/* ---------- ⑤ 卡片统一（A 内容卡 / B 说明卡 / C 纯展示块） ---------- */
/* A 类：边框宽度统一 .5px + 常态阴影 + hover（-2px + --card-sh-h） */
.hc,.mc,.cfC,.lfSt,.kkIt,.ns,.gp,.gb,.dl{border-width:var(--card-bd-w)}
.hc,.cfC,.kkIt,.ns,.gp,.gb,.dl{background:#fff;box-shadow:var(--card-sh)}
.hc,.cfC,.lfSt,.kkIt,.ns,.gp,.gb,.dl{transition:transform .15s,box-shadow .15s,border-color .15s}
.hc:hover,.cfC:hover,.lfSt:hover,.kkIt:hover,.ns:hover,.gp:hover,.gb:hover,.dl:hover{
  transform:translateY(var(--card-lift));box-shadow:var(--card-sh-h)}
/* 不可点击卡：不加 hover 位移，避免误导性交互（分工卡 + B 类说明卡） */
.c6,.dc{transition:none}
.c6:hover,.dc:hover{transform:none}
/* B 类说明卡：浅蓝底保留，仅统一边框宽度 / 圆角 / 常态阴影 */
.c6,.dc{border-width:var(--card-bd-w);border-radius:var(--r);box-shadow:var(--card-sh)}
/* 商户卡：阴影由自写一套 → 统一令牌 */
.mc{box-shadow:var(--card-sh)}
.mc:hover{box-shadow:var(--card-sh-h);transform:translateY(var(--card-lift))}
/* 圆角归位：硬编码 10 / 11 / 14px → 令牌 */
.kk{border-radius:var(--r)}
.kingkong{border-radius:var(--r)}
.cfC{border-radius:var(--r)}
/* 硬编码边框色归位 */
.jt{border-color:var(--card-bd)}


/* ---------- ⑥ 字重统一：600 / 700 → 500（全站仅 400 / 500 两档） ---------- */
.hero .sbox .sb,.secHead b,.rec-name,.entry-title,.citybtn b,.cpc a.on,.rsIco,.rsName,
.reTag,.en,.reCta .c,.rePts .pt .pn,.rePnote .pl,.reNtcList .ntc .nt,.mMore,.nsN,
.gpN,.gbN,.dlN,.gpPt,.gpBuy,.gbBuy,.dlBuy,.hsModal .hsPr,.hsGal .hsBig,.hsBarNm,
.lfSearch .lfSb,
.hero .sbox .hs-city,.rec-media,.rec-price,.reStitle,.msecH h2,.nsPh,
.gpPh,.gbPh,.dlPh,.gpP,.gbP,.dlP,.dlCd .dealCd{font-weight:500}

/* ---------- ⑦ 重排配套：.joinSolo 去双线；.joinTypes 独立成段 ---------- */
.join.joinSolo .joinTop{border-bottom:none;padding-bottom:0}
.page>.wrap>section.bl>.joinTypes{margin-top:0}

/* ---------- ⑧ 响应式 ---------- */
@media(max-width:900px){
  .pageHeroStats{flex-wrap:wrap;gap:10px}
  .pageHeroStats .phs{flex:0 0 40%;max-width:none;border-left:none}


}
@media(max-width:640px){
  .pageHero{padding:30px 0 26px}
  .pageHero h1{font-size:22px}
  .pageHeroBtns .phb{padding:9px 20px;font-size:12.5px}
  .pageHeroStats .phs{flex:0 0 45%}
}

/* ============================================================
   R2-C1：对外脸面 + 后端能力对接（真实商品 / 距离排序 / 结构化筛选）
   —— 全部为「新增」样式，不改动上方任何既有规则；本段可整段删除回滚。
   ============================================================ */

/* ① 商品卡：商户名 · 规格（副标题） */
.gpS{font-size:12px;color:var(--t3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ② 单价单位：小字，不抢价格主视觉 */
.gpP small,.gbP small,.dlP small{font-size:12px;font-weight:400;color:var(--t3);margin-left:1px}

/* ③ 售罄角标（与品类角标同位置，右侧） */
.gpOut{position:absolute;top:8px;right:8px;font-size:11px;color:#fff;background:rgba(0,0,0,.55);padding:2px 8px;border-radius:100px}

/* ④ 距离标签：商户卡 / 附近好店（不侵入地址行） */
.mcD{display:inline-block;margin-left:6px;font-size:11.5px;color:var(--p);background:var(--p-l);padding:1px 7px;border-radius:100px;white-space:nowrap}

/* ⑤ 可一键清除的筛选条件 chip（renderPicked 里的 × ） */
.pkx{cursor:default}
.pkx b{margin-left:5px;font-weight:600;color:var(--t3);cursor:pointer;padding:0 3px;border-radius:3px}
.pkx b:hover{color:#d4453b;background:rgba(212,69,59,.08)}

/* ⑥ 数据尚未补录的筛选项：虚线置灰 + 禁用光标（点击给明确提示，见 applyChip） */
.chip.dis{opacity:.42;cursor:not-allowed;background:#f5f7fa;border-style:dashed}
.chip.dis:hover{border-color:var(--ln2);color:var(--t2)}

/* ⑦ 商户排序行：复用 .ftools .so，仅去掉多余内边距 */
#mchSort span{padding:0}

/* ============================================================
   R3-1：生态价值门户 —— 首页新叙事段
   （全部新增，不改动上方既有规则；本段可整段删除回滚）
   ============================================================ */

/* ① 三角色岔路（主次布局：居民宽卡 + 商户/合伙人窄条）
      padding-top:0 + 负 margin 上提，让卡片「骑」在 Hero 底边，进入首屏视野 */
.roleBl{padding-top:0!important;margin-top:-18px;position:relative;z-index:3}
/* R3-1e：负边距由 -34px 收窄到 -18px。原因：首屏「热门词」已去掉后 hero 变矮，
   而首屏右下角的居民办事二维码距 hero 底部仅 23px —— -34px 会把它压掉 11px。
   改 -18px 后仍需保留少量压屏（卡片浮出首屏的既有设计语言），且与二维码留 5px 净空。 */
.roleHint{font-size:12px;color:var(--t3);margin:0 2px 9px;display:flex;align-items:center;gap:7px}
.roleHint::before{content:"";width:3px;height:12px;border-radius:2px;background:var(--p)}
.roleGrid{display:grid;grid-template-columns:1.72fr 1fr;gap:12px}
.roleMain{background:linear-gradient(180deg,#F8FBFF,#EFF6FE);border:1px solid var(--ln2);border-radius:var(--r);
  box-shadow:0 2px 10px rgba(30,111,217,.10);padding:19px 21px}
.roleSide{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.roleSm{background:linear-gradient(180deg,#F8FBFF,#EFF6FE);border:1px solid var(--ln2);border-radius:var(--r);
  box-shadow:0 2px 10px rgba(30,111,217,.10);padding:14px 16px;display:flex;flex-direction:column;
  justify-content:center;cursor:pointer;transition:transform .18s,border-color .18s,box-shadow .18s}
.roleSm:hover{border-color:var(--p);transform:translateY(-2px);box-shadow:0 6px 20px rgba(30,111,217,.16)}
.roleN{font-size:15.5px;font-weight:500;color:var(--t);display:flex;align-items:center;gap:9px}
.roleN i{width:23px;height:23px;border-radius:6px;display:inline-flex;align-items:center;
  justify-content:center;font-size:12px;font-style:normal;flex:none}
.roleMain .roleN i{background:var(--p-l);color:var(--p-d)}
/* R3-1f：角色数由 2 增到 4，配色改按 id 匹配（不依赖 DOM 顺序，后续增删不会串色） */
#roleMerchant .roleN i{background:#FDF4E7;color:#854F0B}
#roleZasset  .roleN i{background:#EAF3FE;color:#154C96}
#roleProperty .roleN i{background:#E7F5F1;color:#0F6E56}
#rolePartner .roleN i{background:#EEEDFE;color:#3C3489}
.roleL{font-size:12.5px;color:var(--t2);margin-top:7px;line-height:1.75}
.roleLinks{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}
.roleLinks span{font-size:12.5px;padding:6px 14px;border-radius:100px;border:.5px solid var(--ln2);
  background:#fff;color:var(--t2);cursor:pointer;transition:.16s}
.roleLinks span:hover{border-color:var(--p);color:var(--p);background:var(--p-l)}

/* ② 找房版块小标题：贴近筛选栏，不额外占高 */
.findSh{margin-bottom:20px!important}

/* ③ 一笔社区消费的钱怎么走（主线叙事链路） */
.jFlow{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap}
.jStep{flex:1;min-width:148px;background:linear-gradient(180deg,#F8FBFF,#EFF6FE);border:.5px solid var(--ln2);box-shadow:var(--card-sh);
  border-radius:var(--r);padding:15px 16px}
.jStep .k{font-size:13.5px;font-weight:500;color:var(--t)}
.jStep .v{font-size:12.5px;color:var(--t3);margin-top:5px;line-height:1.7}
.jStep.hi{background:#E7F5F1;border-color:#9FE1CB}
.jStep.hi .k{color:#04342C}
.jStep.hi .v{color:#0F6E56}
.jArrow{display:flex;align-items:center;color:#C3CCD8;font-size:15px;flex:none;padding:0 1px}
.jTail{margin-top:16px;font-size:13px;color:var(--t2);background:#F6F8FB;border-radius:10px;
  padding:13px 16px;border-left:3px solid var(--p);line-height:1.8}

/* ④ 通宝账户（讲通兑） */
.tbCols{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.tbCol{background:linear-gradient(180deg,#F8FBFF,#EFF6FE);border:.5px solid var(--ln2);border-radius:var(--r);padding:17px 18px;box-shadow:var(--card-sh)}
.tbCol .t{font-size:14px;font-weight:500;color:var(--p-d);padding-bottom:10px;
  border-bottom:1px solid #F0F4F9;display:flex;align-items:center;gap:8px}
.tbCol .t b{width:20px;height:20px;border-radius:5px;background:var(--p-l);color:var(--p);
  font-size:11.5px;display:inline-flex;align-items:center;justify-content:center;font-weight:500;flex:none}
.tbCol ul{list-style:none;padding:0;margin:11px 0 0}
.tbCol li{font-size:13px;color:var(--t2);padding:5px 0 5px 15px;position:relative;line-height:1.65}
.tbCol li::before{content:"";position:absolute;left:2px;top:12px;width:4px;height:4px;
  border-radius:1px;background:var(--ln2)}
.tbFoot{margin-top:14px;font-size:12.5px;color:var(--t3);line-height:1.8}

/* ⑤ 服务落点（有店有人） */
.stLifeGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.stLife{background:#fff;border:.5px solid var(--card-bd);border-radius:var(--r);padding:16px 18px}
.stLife .n{font-size:14px;font-weight:500;color:var(--t)}
.stLife .m{font-size:12.5px;color:var(--t2);margin-top:6px}
.stLife .a{font-size:12.5px;color:var(--t3);margin-top:9px;line-height:1.7}
.stLife .tel{margin-top:12px;display:inline-flex;align-items:center;gap:6px;font-size:12.5px;
  color:var(--p);border:.5px solid var(--ln2);border-radius:100px;padding:5px 13px;
  cursor:pointer;transition:.16s;text-decoration:none}
.stLife .tel:hover{background:var(--p-l);border-color:var(--p)}

/* ⑥ 可核验承诺段 */
.trustGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}
.trustItem{display:flex;gap:9px;align-items:flex-start;font-size:13.5px;color:var(--t2);line-height:1.75;
  background:linear-gradient(180deg,#F8FBFF,#EFF6FE);border:.5px solid var(--ln);border-radius:var(--rs);padding:12px 14px}
.trustItem i{width:6px;height:6px;border-radius:1px;background:#0F8A6A;margin-top:8px;
  flex:none;font-style:normal}
.trustTail{margin-top:16px;padding-top:14px;border-top:1px solid #F0F4F9;
  font-size:12.5px;color:var(--t3);line-height:1.85}

/* ⑦ 通宝说明条（周边好店 / 生活服务）
      —— 不做逐店「可抵通宝」标识：merchant.profit_ratio 属后端白名单外字段（明确不对外），
         前端拿不到 → 逐店打标无依据；故用页面级说明，内容基于通用规则。 */
.tbNote{display:flex;align-items:flex-start;gap:9px;background:#E7F5F1;border:.5px solid #9FE1CB;
  border-radius:10px;padding:11px 14px;margin-bottom:16px;font-size:12.5px;color:#0F6E56;line-height:1.75}
.tbNote b{flex:none;font-weight:500;color:#04342C;background:#fff;border-radius:100px;
  padding:1px 9px;font-size:11.5px;border:.5px solid #9FE1CB}

/* ⑧ 响应式 */
@media(max-width:900px){
  .roleGrid{grid-template-columns:1fr}
  .tbCols,.stLifeGrid{grid-template-columns:1fr}
  .trustGrid{grid-template-columns:1fr}
  .jStep{min-width:112px}
}
@media(max-width:640px){
  .roleBl{margin-top:-20px}
  .jStep{min-width:calc(50% - 5px)}
  .roleLinks span{font-size:12px;padding:5px 11px}
  .jArrow{display:none}
}
/* ==================== R3-1b：找房租房独立页头 ====================
   复用 pageHero 主蓝（与首页 hero 同调性），仅补 h1 em 高亮色，不改其他页 */
.pageHero.findHero h1 em{color:#CDEBFF}
/* ==================== R3-1h：通宝段导语 ====================
   「在楼下消费就能得通宝 · 每笔送通宝，能在别的店抵」原挂首页找房条（R3-1f），
   R3-1h 该条整体移除后归入通宝段。本体是 .sh 内的 <p>，继承 .sh p 的说明文字样式，
   此处只做两件事：稍强于副标题、并给 hi 段加主色加粗。 */
.sh p.tbLead{font-size:14px;color:var(--t);margin-top:8px}
.sh p.tbLead b{color:var(--p);font-weight:500}

/* ⑫ 去小程序买 · 本店专属码弹层（R4-1）
   复用 .qrModal 白卡骨架与 .qrX 关闭键，只新增专属码自己的元素，不动既有通用码样式 */
.mqLoad{padding:26px 0;font-size:12.5px;color:var(--t3)}
.mqBadge{display:inline-block;font-size:11px;padding:2px 9px;border-radius:99px;
  background:var(--p-l);color:var(--p-d);margin-bottom:7px}
.qrModal .mqQr{display:flex;justify-content:center;margin:18px 0 10px}
.mqQr img{width:150px;height:150px;display:block;border:1px solid var(--ln);
  border-radius:var(--rs);background:#fff}
.mqNoQr{margin:18px 0 10px;padding:22px 12px;border:1px dashed var(--ln2);border-radius:var(--rs);
  background:var(--p-l2);font-size:12px;color:var(--t3);line-height:1.8}
.mqNm{font-size:12.5px;font-weight:500;color:var(--t2)}
.mqKd{font-size:11px;color:var(--t3);margin-top:2px}
.mqBtn{display:block;margin-top:14px;height:42px;line-height:42px;border-radius:var(--rs);
  background:#07C160;color:#fff;font-size:14px;font-weight:500;text-decoration:none}
.mqBtn:hover{background:#06AD56}
.mqTip{margin-top:12px;padding:9px 12px;border-radius:var(--rs);background:var(--p-l);
  border:1px solid rgba(30,111,217,.16);font-size:11.5px;color:var(--p-d);line-height:1.7;text-align:left}
.mqTip.ok{background:var(--teal-l);border-color:rgba(15,138,106,.22);color:var(--teal-d)}
.mqSteps{margin-top:14px;padding-top:13px;border-top:.5px solid var(--ln);
  display:flex;flex-direction:column;gap:7px;text-align:left}
.mqSteps span{display:flex;align-items:flex-start;gap:9px;font-size:12.5px;color:var(--t2)}
.mqSteps i{flex:0 0 auto;width:16px;height:16px;border-radius:50%;background:var(--p-l);color:var(--p-d);
  font-size:11px;font-style:normal;display:inline-flex;align-items:center;justify-content:center;margin-top:1px}

/* B1-③：修复「六类居民服务」裸文本（方案 V1 的 P4-12）
   原因：HTML 是 <div class="mgG" id="meGuest">，而 meGuest 是 **id**，不是 class；
   原规则写成 .meGuest .mgG / .mgI / .mgN / .mgD（后代选择器，要求祖先带 .meGuest）
   → 全部不匹配，6 张卡片退化成 12 行无样式文本。
   已去掉失效前缀（mg* 系列全站仅此一处使用）；
   另删除两条悬空规则（无元素匹配、无 JS 生成），原值留档：
     .meGuest{background:#fff;border:.5px solid var(--ln);border-radius:var(--r);padding:30px 26px;text-align:center;margin-top:6px;
  box-shadow:0 1px 2px rgba(20,60,120,.045),0 4px 14px rgba(20,60,120,.05)}
     .meGuest .mgT{font-size:15px;font-weight:500;margin-bottom:20px}
   注：不能给同一元素补 class="meGuest" —— 后代选择器要求严格后代，仍不匹配。 */

/* P2-6b：「⑤ 卡片统一」区块已用 --card-sh 统一全站卡片阴影，
   故不新增第二个阴影令牌，而是直接升级 --card-sh 本身（方案原意：一处变量，全站生效）：
   0 1px 6px rgba(10,30,60,.04) → 0 2px 10px rgba(30,111,217,.13)。
   同时 5 处卡片边框 .14 → --ln2(.26)：
   .jStep / .tbCol / .cfC / .c6 / .dc。 */

/* W1-R5（2026-10-17）：房源卡图高 146 → 200
   原卡宽 366 / 图高 146 = 2.5:1，过于扁平；81 实测 92% 房源有图，提到 200（约 1.8:1）。 */

/* ===== W2-R5（2026-10-17）：找房页「新上房源」主推区 ===== */
/* W2-R5b：主推条带收紧 —— .bl 默认 padding:46px 0 让主推区虚高 92px，
   这里单独压到 20px，把高度让给房源列表 */
#p-find .npBl{padding:14px 0}
#newPick{margin:0}
#newPick .npHead{display:flex;align-items:baseline;gap:10px;margin:0 2px 9px}
#newPick .npT{font-size:17px;font-weight:500;color:var(--t)}
#newPick .npS{font-size:12.5px;color:var(--t3)}
#newPick .npMore{margin-left:auto;font-size:12.5px;color:var(--p);cursor:pointer;white-space:nowrap}

/* 横滑行：超出部分横向滚动，右侧露出半张即"还有更多"的暗示 */
#newPick .npRow{display:flex;gap:13px;overflow-x:auto;padding:2px 2px 6px;scroll-snap-type:x mandatory}
#newPick .npRow::-webkit-scrollbar{height:6px}
#newPick .npRow::-webkit-scrollbar-thumb{background:var(--ln2);border-radius:3px}

.np{flex:0 0 268px;scroll-snap-align:start;background:#fff;border:.5px solid var(--ln2);
  border-radius:var(--r);overflow:hidden;box-shadow:var(--card-sh)}
.np.clickable{cursor:pointer;transition:transform .16s,border-color .16s}
.np.clickable:hover{transform:translateY(-2px);border-color:var(--p)}
.np .npTh{position:relative;height:150px;background:var(--p-l);overflow:hidden}
.np .npTh img{width:100%;height:100%;object-fit:cover;display:block}
.np .npTag{position:absolute;top:9px;left:9px;font-size:11px;padding:3px 9px;border-radius:5px;
  background:#fff;color:var(--p-d);box-shadow:0 1px 3px rgba(10,30,60,.12)}
.np .npBd{padding:10px 12px 11px}
.np .npN{font-size:14.5px;font-weight:500;color:var(--t);line-height:1.4;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.np .npM{font-size:12px;color:var(--t3);margin-top:4px;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.np .npF{display:flex;align-items:baseline;margin-top:9px}
.np .npP{font-size:17px;font-weight:500;color:var(--p)}
.np .npP small{font-size:11px;color:var(--t3);font-weight:400}
.np .npGo{margin-left:auto;font-size:12px;color:var(--p)}

@media(max-width:640px){
  .np{flex:0 0 232px}
  .np .npTh{height:148px}
  #newPick .npS{display:none}
}

/* R5-3b（2026-10-17）：金刚区下移后，81 真实数据下房源列表在 907px、视口 900 —— 差 7px。
   再压 18px（主推条带 padding 20→14 / 主推卡图高 156→150），列表进首屏（约 889px）。 */

/* ===== R6-1（2026-10-17）：周边好店重构 ===== */

/* ① 页头小程序引导条 —— 居中（与 h1 / 搜索框 / 热词同一中轴） */
.mcMini{display:inline-flex;align-items:center;gap:14px;margin:22px auto 0;
  padding:11px 15px;border-radius:10px;background:rgba(255,255,255,.13);
  border:.5px solid rgba(255,255,255,.26);text-align:left}
.mcMiniBd{min-width:0}
.mcMiniT{font-size:13px;font-weight:500;color:#fff;line-height:1.4}
.mcMiniD{font-size:11.5px;color:rgba(255,255,255,.82);margin-top:3px;line-height:1.5}
.mcMiniQr{flex:0 0 auto;width:52px;height:52px;background:#fff;border-radius:6px;
  display:flex;align-items:center;justify-content:center;overflow:hidden}
.mcMiniQr img{width:100%;height:100%;object-fit:contain;display:block}
.mcMiniPh{font-size:12px;color:var(--t3)}
@media(max-width:640px){
  .mcMini{flex-direction:column;align-items:center;text-align:center;gap:10px}
}

/* ② 好物推荐横滑行 */
.mPickRow{display:flex;gap:13px;overflow-x:auto;padding:2px 2px 8px;scroll-snap-type:x mandatory}
.mPickRow .gp{flex:0 0 224px;scroll-snap-align:start}
.mPickRow::-webkit-scrollbar{height:6px}
.mPickRow::-webkit-scrollbar-thumb{background:var(--ln2);border-radius:3px}
@media(max-width:640px){ .mPickRow .gp{flex:0 0 196px} }

/* ③ 商品卡价格角标 */
.gpMark{position:absolute;top:9px;left:9px;font-size:11px;padding:3px 8px;border-radius:5px;
  color:#fff;font-weight:500;line-height:1.2}
.gpMark.m99{background:#C62828}
.gpMark.mdl{background:#B26A00}
.gp .gpTh{position:relative}

/* ④ 售罄：整卡降饱和 + 按钮不可点 */
.gp.gpOff{opacity:.72}
.gp.gpOff:hover{transform:none}
.gpBuyOff{display:inline-flex;align-items:center;justify-content:center;height:30px;padding:0 12px;
  border-radius:var(--rs);background:#EEF2F7;color:var(--t3);font-size:12px;cursor:not-allowed}

/* ⑤ 商家卡占位块压小（原 120px 高 / 32px 字，12 张连排很单调） */
.nsTh,.mcTh{height:132px}
.mcPh{font-size:34px;font-weight:600;color:var(--p-d);opacity:.42}
/* 入驻商家网格：81 只有 8 家，4 列两行正好铺满 */
.mchGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}
@media(max-width:1024px){ .mchGrid{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media(max-width:640px){ .mchGrid{grid-template-columns:repeat(2,minmax(0,1fr))} }
/* 卡片高度在信息去噪后变矮：收紧内边距 */
.mc .mcBd{padding:10px 13px 12px}
.mc .mcN{font-size:14px}
.mc .mcA{font-size:11.5px}

/* ⑥ 入驻表单折叠 */
.maFoldBar{display:flex;align-items:center;gap:13px;padding:15px 18px;background:#fff;
  border:.5px solid var(--ln2);border-radius:var(--r);cursor:pointer;box-shadow:var(--card-sh);
  transition:border-color .16s}
.maFoldBar:hover{border-color:var(--p)}
.maFoldBar.on{border-color:var(--p);border-bottom-left-radius:0;border-bottom-right-radius:0}
.maFoldIc{flex:0 0 34px;height:34px;border-radius:9px;background:var(--p-l);color:var(--p-d);
  display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:500}
.maFoldTx{flex:1;min-width:0}
.maFoldTx b{display:block;font-size:14.5px;font-weight:500;color:var(--t)}
.maFoldTx span{display:block;font-size:12px;color:var(--t3);margin-top:2px}
.maFoldGo{flex:0 0 auto;font-size:12.5px;color:var(--p)}
.maFoldBody{display:none;padding:20px 0 0}
.maFoldBody.on{display:block}

/* R6-1b（2026-10-17）：商家卡图块 118 → 72
   原规则 `.mc .mcTh{height:118px}` 特异性 (0,2,0)，高于新增的 `.mcTh`(0,1,0)，
   导致 72px 未生效（实测仍 118）。直接改原规则值的做法最稳。 */
.mc .mcPh{font-size:34px;font-weight:600;color:var(--p-d);opacity:.42}

/* R7-F3（2026-10-17）：总控反馈「好物推荐和入驻商家的图片展示位小了，入驻商家只看到一半」。
   根因：商家卡图块仅 72px 高 + object-fit:cover（R6-1 为「12 张连排纯色块太单调」压低，
   当时 81 商户 0 封面；现在有真图了，cover 把图裁成中间一条）。
   改为 132px + object-fit:contain + 6px 内边距（完整显示不裁），占位首字 20→34px；
   好物推荐卡图 130 → 176px（商品照片仍是 cover，比例更接近实物）。 */

/* ============================================================
   R7-F4（2026-10-17）：周边好店首屏重排（方案 B）
   总控要求：宣传必须保持居中 —— 故 h1 / 副标题 / 搜索框 / 热词 / 引导条
   全部保持 text-align:center 与 margin:auto 中轴，只压缩纵向留白。
   实测基线：页头 406 / 品类 179 / 好物头 124 / 卡片 767~1101（只露 133/334）
   目标：卡片 534~868，首屏完整看到一排。
   ============================================================ */

/* ① 页头纵向留白：上 42→24、下 38→20（省 36） */
.mcHero{padding:24px 0 16px}
/* ② 面包屑下留白 12→6（省 6） */
.mcHero .crumb{padding:0 0 6px}
/* ③ 搜索框上留白 22→14（省 8）；热词上留白 14→8（省 6） */
.mcSearch{margin:14px auto 0}
.mcHot{margin-top:8px}

/* ④ 小程序引导条：整行 76px → 居中胶囊 40px（省 36 + 上间距 22→10 省 12）
      仍是 inline-flex + margin:auto —— 与宣传同一中轴，视觉更轻。
      码 52→30（圆角同步 5px，保持方形二维码不被切角）；
      副标题隐藏：「下单请在微信小程序」这一句已经说清，副标题只是解释性重复。 */
.mcMini{margin:10px auto 0;padding:5px 14px 5px 5px;border-radius:100px;gap:9px}
.mcMini .mcMiniD{display:none}
.mcMini .mcMiniT{font-size:12.5px;line-height:1.2}
.mcMini .mcMiniQr{width:30px;height:30px;border-radius:5px}

/* ⑤ 品类条带：section 上 24→10、下 46→14（省 46）；item 109→83（省 26）
      用 #p-merchant 前缀压过 `.page>.wrap>section.bl:first-child` 的 padding-top:24px */
#p-merchant .mchKkBl{padding:8px 0 10px}
#p-merchant .mchKk .kkIt{padding:10px 6px;gap:5px}
#p-merchant .mchKk .kkIco{width:36px;height:36px;font-size:19px}
#p-merchant .mchKk .kkNm{font-size:12.5px}

/* ⑥ 好物推荐条带：上 46→18（省 28）；标题下间距 16→8（省 8）；
      副标题由 block 改 inline 与 h2 同行（省 21） */
#p-merchant .mGoodsBl{padding:10px 0 24px}
#p-merchant .mGoodsBl .msecH{margin-bottom:6px;align-items:baseline}
#p-merchant .mGoodsBl .msecH .msub{display:inline;margin:0 0 0 9px;font-size:12px}
/* R7-F4b：首轮实测卡底 889（视口 900 仅余 11px），再收 18px 至约 871，留安全余量。 */

/* R7-F6b（2026-10-17）：`.bt` 原本只给 <button> 用。
   招商合作页新增「旧版官网」入口是 <a class="bt">，需要与相邻 button 等高：
   button 的 line-height 为 normal（内容高 21px → 总高 35px），
   而 <a> 继承 body 的 line-height:22.275px → 总高 38px，矮 3px 会显歪。
   flex + line-height:normal 让两者盒模型完全一致。 */
a.bt{display:inline-flex;align-items:center;justify-content:center;line-height:normal;text-decoration:none}
