:root{
  --brand:#f4511e;
  --brand-dark:#d63d0c;
  --navy:#123a63;
  --navy-2:#0b2a4a;
  --navy-3:#1c5a94;
  --gold:#f0c463;
  --ink:#1f2329;
  --ink-2:#5b626b;
  --ink-3:#8d949d;
  --line:#e5e8eb;
  --bg:#f4f5f7;
  --card:#fff;
  --radius:10px;
  --shadow:0 1px 3px rgba(20,24,28,.06),0 6px 18px rgba(20,24,28,.05);
}
*{box-sizing:border-box;}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font:14px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
button{font-family:inherit;cursor:pointer;}
.wrap{max-width:1240px;margin:0 auto;padding:0 20px;}

/* ---------- ★ 顶部服务热线条（400 电话醒目） ---------- */
/* z-index:60 —— 让「各地区客户经理」浮动面板盖住下方 sticky 顶栏（.topbar z-index:50） */
.hotline-bar{background:linear-gradient(90deg,#d63d0c,#f4511e);color:#fff;position:relative;z-index:60;}
.hotline-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;height:38px;}
.hotline-slogan{font-size:12.5px;opacity:.95;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hotline-phone{display:flex;align-items:center;gap:8px;white-space:nowrap;}
.hotline-phone .hotline-label{font-size:12px;opacity:.9;}
.hotline-phone strong{font-size:19px;font-weight:800;letter-spacing:.5px;}
/* ★ 2026-10-07：手机端（≤760px）顶栏品牌行整行移除，logo 前移到本热线条最左（「客户经理」之前）。
   PC 端隐藏此处 logo（顶栏 .brand 已有），避免同一个 logo 在一屏里出现两次。 */
.hotline-brand{display:none;}
.hb-logo{display:block;width:auto;max-width:none;}
@media(max-width:760px){.hotline-slogan{display:none;} .hotline-inner{justify-content:center;}}

/* ================================================================
   ★ v1.62 顶部热线条：各地区客户经理入口（微信同号）
   悬停 / 键盘聚焦 / 点击 → 展开 6 大区域负责人「二维码 + 电话」浮动面板。
   桌面：绝对定位面板，右对齐入口并向左展开（左边界无约束，不会出视口）；
   ≤760px：无 hover，改为整屏遮罩 + 居中卡片弹层，由 JS 点击开合。
   ================================================================ */
.hotline-mgr{
  position:relative;display:inline-flex;align-items:center;margin-left:auto;
  /* 面板尺寸全部由这三个变量推导，改一处即可整体缩放 */
  --hmr-qr:110px;   /* 二维码边长 */
  --hmr-cw:126px;   /* 卡片列宽 */
  --hmr-gap:11px;   /* 卡片间距 */
  --hmr-pad:14px;   /* 面板左右内边距 */
}
.hotline-mgr-link{
  display:inline-flex;align-items:center;gap:6px;
  height:26px;padding:0 11px;border-radius:999px;
  background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.42);
  color:#fff;font-size:12.5px;font-weight:600;white-space:nowrap;text-decoration:none;
  transition:background .18s ease,border-color .18s ease;
}
.hotline-mgr-link:hover,.hotline-mgr.open .hotline-mgr-link{background:rgba(255,255,255,.3);border-color:rgba(255,255,255,.8);}
.hotline-mgr-link:focus-visible{outline:2px solid #fff;outline-offset:3px;}
.hotline-mgr-link .hmr-ico{width:13px;height:13px;flex:0 0 auto;opacity:.92;}
.hotline-mgr-link .hmr-wx{font-weight:800;letter-spacing:.3px;}
.hotline-mgr-link .hmr-sep{font-style:normal;opacity:.7;}
.hotline-mgr-link .hmr-short{display:none;}
.hmr-caret{width:0;height:0;flex:0 0 auto;margin-left:1px;
  border-left:4px solid transparent;border-right:4px solid transparent;
  border-top:5px solid rgba(255,255,255,.85);transition:transform .18s ease;}
.hotline-mgr:hover .hmr-caret,.hotline-mgr.open .hmr-caret{transform:rotate(180deg);}

/* 浮层：padding-top 同时充当「悬停桥接」，鼠标从入口下移到面板不会中断 */
.hotline-mgr-pop{
  position:absolute;top:100%;right:-6px;left:auto;z-index:70;
  padding-top:10px;
  width:max-content;max-width:calc(100vw - 14px);
  opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-6px);
  transition:opacity .16s ease,transform .16s ease,visibility .16s;
}
.hotline-mgr:hover .hotline-mgr-pop,
.hotline-mgr:focus-within .hotline-mgr-pop{
  opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);
}
/* ★ 面板给「确定宽度」：若交给 max-content，二维码图片的固有宽（640）会撑爆整列，
   实测 3 列各涨到 379px、总宽 1244px 顶到视口并且左溢出 —— 必须用固定列宽反推面板宽。 */
.hmr-panel{
  width:calc(3 * var(--hmr-cw) + 2 * var(--hmr-gap) + 2 * var(--hmr-pad));
  max-height:calc(100vh - 56px);overflow:auto;
  background:#fff;color:var(--ink);
  border:1px solid rgba(20,30,40,.09);border-radius:14px;
  padding:13px var(--hmr-pad) 10px;box-shadow:0 16px 40px rgba(16,30,48,.26);
}
.hmr-head{display:grid;grid-template-columns:1fr auto;align-items:center;gap:3px 10px;
  padding:0 2px 9px;border-bottom:1px solid var(--line);margin-bottom:11px;}
.hmr-head b{font-size:14px;font-weight:800;color:var(--navy);}
.hmr-head span{grid-column:1 / -1;font-size:11.5px;line-height:1.5;color:var(--ink-3);}
.hmr-close{display:none;align-items:center;justify-content:center;
  width:30px;height:30px;border:1px solid var(--line);border-radius:9px;
  background:#fff;color:var(--ink-2);font-size:19px;line-height:1;}
.hmr-close:hover{background:var(--bg);color:var(--ink);}

.hmr-grid{display:grid;grid-template-columns:repeat(3,var(--hmr-cw));gap:var(--hmr-gap);justify-content:center;}
.hmr-card{
  min-width:0;display:flex;flex-direction:column;align-items:center;gap:6px;
  background:#fff;border:1px solid var(--line);border-top:3px solid var(--ac,#f4511e);
  border-radius:12px;padding:8px 8px 9px;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.hmr-card:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(16,42,72,.16);}
.hmr-qrlink{display:block;border-radius:8px;outline-offset:2px;}
/* ★ 尺寸写死（不用 width:100%）—— 百分比在 max-content 布局里会退化成图片固有宽 640px，
   把整列撑爆；同时必须 max-width:none，否则全局 img{max-width:100%} 会把码横向压扁变形 */
.hmr-qr{width:var(--hmr-qr);height:var(--hmr-qr);max-width:none;
  aspect-ratio:1/1;object-fit:contain;
  display:block;border-radius:8px;background:#fff;}
.hmr-body{display:flex;flex-direction:column;align-items:center;gap:1px;width:100%;min-width:0;}
.hmr-reg{font-size:11px;font-weight:700;letter-spacing:.2px;color:#c2410c;line-height:1.35;
  background:#fff4e8;border:1px solid #f6d8b8;border-radius:999px;padding:1px 9px;margin-bottom:3px;}
.hmr-branch{font-size:14px;font-weight:800;color:var(--navy);line-height:1.2;white-space:nowrap;}
.hmr-person{font-size:11.5px;color:var(--ink-3);line-height:1.25;}
.hmr-tel{font-size:14px;font-weight:800;color:var(--brand-dark);letter-spacing:.2px;line-height:1.3;
  white-space:nowrap;text-decoration:none;}
.hmr-tel:hover{text-decoration:underline;}
.hmr-foot{display:flex;flex-wrap:wrap;align-items:center;gap:3px 8px;
  margin-top:10px;padding:9px 2px 0;border-top:1px solid var(--line);
  font-size:11.5px;color:var(--ink-3);}
.hmr-foot a{color:var(--brand-dark);font-weight:700;}
.hmr-foot a:hover{text-decoration:underline;}
.hmr-foot .hmr-more{margin-left:auto;white-space:nowrap;}
.hmr-sep2{margin:0 2px;}

.hotline-mgr.open .hotline-mgr-pop{
  opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);
}

/* 中窄屏：整体缩小，保证面板不顶到视口左边缘 */
@media(max-width:1080px){
  .hotline-mgr{--hmr-qr:98px;--hmr-cw:114px;--hmr-gap:9px;}
  .hmr-branch{font-size:13px;}
  .hmr-tel{font-size:13px;}
}
@media(max-width:900px){
  .hotline-mgr{--hmr-qr:90px;--hmr-cw:106px;--hmr-gap:8px;--hmr-pad:12px;}
  .hmr-card{padding:7px 7px 8px;}
  .hmr-reg{font-size:10.5px;padding:1px 8px;}
}

/* ≤760px：hover 失效 → 整屏遮罩 + 居中弹层（仅 .open 生效） */
@media(max-width:760px){
  .hotline-slogan{display:none;}
  /* 品牌 logo 已进本行（.hotline-brand，见上文），就排在「客户经理」前面；
     整组继续居中（与改动前一致，只是左侧多了一个 logo） */
  .hotline-inner{justify-content:center;gap:10px;}
  .hotline-mgr{margin-left:0;}
  .hotline-brand{display:inline-flex;align-items:center;flex:0 0 auto;}
  .hb-logo{height:26px;}
  .hotline-mgr-link{padding:0 9px;font-size:12px;}
  .hotline-mgr:hover .hotline-mgr-pop,
  .hotline-mgr:focus-within .hotline-mgr-pop{
    opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-6px);
  }
  .hotline-mgr-pop{
    position:fixed;left:0;right:0;top:0;bottom:0;z-index:90;
    display:flex;align-items:center;justify-content:center;
    width:auto;max-width:none;padding:0;background:rgba(15,23,32,.52);
    transform:none;
  }
  .hmr-panel{width:min(430px,calc(100vw - 24px));max-height:86vh;overflow:auto;
    padding:13px 12px 10px;border-radius:16px;}
  .hmr-head{position:sticky;top:-13px;margin:-13px -12px 11px;padding:13px 12px 9px;
    background:#fff;border-radius:16px 16px 0 0;z-index:1;}
  .hmr-close{display:inline-flex;}
  /* 弹层里容器宽已确定 → 2 列自适应；二维码用 min() 封顶，
     否则百分比会按列宽(约 200px)放大成 246px 的巨码，卡片高 343px、面板要滚两屏 */
  .hmr-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
  .hmr-qr{width:min(108px,100%);height:auto;aspect-ratio:1/1;max-width:none;}
  .hmr-branch{font-size:13.5px;}
  .hmr-tel{font-size:13.5px;}
}
@media(max-width:560px){
  .hotline-mgr-link .hmr-full,.hotline-mgr-link .hmr-sep,.hotline-mgr-link .hmr-wx{display:none;}
  .hotline-mgr-link .hmr-short{display:inline;}
  /* ★ 2026-10-07：logo 进本行后 ≤560px 宽度最紧张（360 屏可用宽度仅 320px），
     整体收紧一档，保证「logo + 客户经理 + 400 热线」不换行、不横向溢出。 */
  .hotline-inner{gap:8px;}
  .hb-logo{height:22px;}
  .hotline-mgr-link{padding:0 8px;}
  .hotline-phone{gap:6px;}
  .hotline-phone .hotline-label{font-size:11px;}
  .hotline-phone strong{font-size:16px;letter-spacing:.2px;}
}
/* ★ ≤380px（老款小屏）：连「全国服务热线」四字也放不下，去掉文字标签、只留大号号码 ——
   号码本身仍然醒目，且避免整页出现横向滚动条。 */
@media(max-width:380px){
  .hotline-phone .hotline-label{display:none;}
}

/* ---------- 顶栏 ---------- */
.topbar{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;}
/* ★ v1.61：--ctl-h = 顶栏所有控件（搜索框/介绍/中英文/账号/购物车）的统一高度。
   原先各控件靠上下 padding 各自撑高，实测 26.5 / 31 / 34.8 / 36.8 / 38px 五种高度并存 → 显得不专业。
   现统一 box 高度（*{box-sizing:border-box} 全局已设，含边框），内部用 flex 居中。 */
.topbar-inner{display:flex;align-items:center;gap:24px;min-height:68px;padding:10px 0;--ctl-h:36px;}
.brand{display:flex;align-items:center;gap:11px;flex-shrink:0;}
.brand picture{display:block;line-height:0;}
.brand-logo{height:50px;width:auto;max-width:none;display:block;}
.brand-text{display:flex;flex-direction:column;line-height:1.28;}
.brand-mark{font-size:16.5px;font-weight:800;letter-spacing:.3px;color:var(--navy);}
.brand-sub{font-size:11.5px;color:var(--ink-3);}
@media(max-width:700px){.brand-text{display:none;} .brand-logo{height:42px;}}
/* 搜索区：输入行 + 热门搜索热词行（京东式） */
.search{flex:1;display:flex;flex-direction:column;gap:7px;max-width:560px;}
.search-row{display:flex;border:2px solid var(--brand);border-radius:8px;overflow:hidden;height:var(--ctl-h);}
/* 输入框改 height:100% + 去掉纵向 padding：单行 input 会自动垂直居中，行高不再撑破统一高度 */
.search-row input{flex:1;border:0;outline:0;padding:0 14px;font-size:14px;background:#fff;min-width:0;height:100%;}
.search-row button{border:0;background:var(--brand);color:#fff;padding:0 22px;font-size:14px;font-weight:600;white-space:nowrap;height:100%;}
.search-row button:hover{background:var(--brand-dark);}
.hotwords{display:flex;align-items:center;gap:11px;flex-wrap:wrap;font-size:12px;color:var(--ink-3);line-height:1.5;}
.hotwords .hw-label{color:var(--ink-3);opacity:.85;}
.hotwords a{color:var(--ink-2);transition:color .14s;}
.hotwords a:hover{color:var(--brand);}
@media(max-width:760px){.hotwords{display:none;} .search{max-width:none;}}
.topbar-right{display:flex;align-items:center;gap:16px;flex-shrink:0;}
/* 账号区：未登录 / 已登录两态 */
.acct{position:relative;flex-shrink:0;}
.acct-login{display:inline-flex;align-items:center;height:var(--ctl-h);border:1px solid var(--brand);background:#fff;color:var(--brand);border-radius:8px;padding:0 15px;font-size:13px;font-weight:700;white-space:nowrap;}
.acct-login:hover{background:var(--brand);color:#fff;}
.acct-on{position:relative;}
.acct-name{display:inline-flex;align-items:center;height:var(--ctl-h);gap:6px;border:1px solid var(--line);background:#fff;border-radius:8px;padding:0 11px;font-size:13px;font-weight:600;color:var(--ink);max-width:170px;}
.acct-name:hover{border-color:var(--brand);color:var(--brand);}
.acct-name .an-ico{width:17px;height:17px;color:var(--brand);flex-shrink:0;}
.acct-name .an-ico svg{width:100%;height:100%;display:block;}
.acct-name .an-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.acct-name .an-caret{font-size:10px;color:var(--ink-3);}
.acct-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:216px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px rgba(11,42,74,.16);padding:6px;z-index:80;}
.acct-menu a,.acct-menu button{display:block;width:100%;text-align:left;border:0;background:none;padding:9px 12px;border-radius:7px;font-size:13.5px;color:var(--ink-2);font-family:inherit;}
.acct-menu a:hover,.acct-menu button:hover{background:#f4f6f9;color:var(--brand);}
.acct-menu .am-head{padding:9px 12px 10px;border-bottom:1px solid var(--line);margin-bottom:5px;display:flex;flex-direction:column;gap:3px;}
.acct-menu .am-head b{font-size:14px;color:var(--navy);}
.acct-menu .am-type{align-self:flex-start;font-size:11.5px;font-weight:700;color:var(--brand);background:#fff2ec;border-radius:5px;padding:1px 7px;}
.acct-menu .am-org{font-size:12px;color:var(--ink-3);} 
.cart-link{display:inline-flex;align-items:center;gap:4px;height:var(--ctl-h);background:var(--brand);color:#fff;padding:0 16px;border-radius:8px;font-weight:600;font-size:13px;white-space:nowrap;}
.cart-link b{background:rgba(255,255,255,.28);border-radius:9px;padding:1px 7px;margin-left:4px;font-size:12px;}
.guest-tip{background:#fff8e6;color:#8a6100;font-size:12px;padding:7px 14px;text-align:center;border-top:1px solid #f5e7bf;}
.guest-tip.hide{display:none;}
.guest-tip .gt-btn{border:0;background:none;padding:0;font:inherit;font-weight:700;color:#d63d0c;text-decoration:underline;text-underline-offset:2px;}

/* ---------- 分类导航 ----------
 * ★ v1.45：一行摆不下就自动换行（2~3 行），不再横向滚动。
 *   原因：品类增到 17 个后单行必然溢出，横向拖着看很别扭。
 *   做法：flex-wrap:wrap 取代 overflow-x:auto；行间隔 6px。 */
.catnav{background:#fff;border-bottom:1px solid var(--line);}
.catnav-inner{display:flex;flex-wrap:wrap;gap:6px;padding:10px 20px;max-width:1240px;margin:0 auto;align-content:center;}
.catnav a{
  display:inline-flex;align-items:center;gap:5px;
  padding:6px 14px;border-radius:16px;font-size:13px;color:var(--ink-2);
  white-space:nowrap;border:1px solid transparent;
}
.catnav a:hover{background:#f7f8fa;}
.catnav a.on{background:var(--brand);color:#fff;font-weight:600;}
.catnav a .n{opacity:.6;font-size:12px;margin-left:4px;}
/* 分类小图标（线性 SVG，随文字变色） */
.jc-ico{flex-shrink:0;vertical-align:-3px;opacity:.72;}
.catnav a .jc-ico{color:var(--ink-3);}
.catnav a:hover .jc-ico{color:var(--brand);opacity:1;}
.catnav a.on .jc-ico{color:#fff;opacity:1;}

/* ---------- 页面通用 ---------- */
main{padding:22px 0 60px;min-height:60vh;}
.page-head{display:flex;align-items:baseline;gap:12px;margin-bottom:16px;flex-wrap:wrap;}
.page-head h2{margin:0;font-size:20px;}
.page-head .sub{color:var(--ink-3);font-size:13px;}

/* ---------- ★ v1.57：列表页排序条（综合 / 价格↑↓ / 名称 / 热度） ----------
 * 靠右对齐（margin-left:auto）；窄屏整行换到标题下方（见 @media 760px）。 */
.sortbar{margin-left:auto;align-self:center;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.sortbar .sort-label{color:var(--ink-3);font-size:13px;}
.sortbar .sortbtn{border:1px solid var(--line);background:#fff;color:var(--ink-2);border-radius:6px;padding:5px 12px;font-size:13px;line-height:1.2;transition:border-color .14s,color .14s,background .14s;}
.sortbar .sortbtn:hover{border-color:var(--brand);color:var(--brand);}
.sortbar .sortbtn.on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600;}
.sortbar .sortbtn .sar{font-style:normal;margin-left:2px;font-size:11px;opacity:.9;}

/* ---------- 商品网格 ----------
 * ★ v1.54：改用弹性栅格（原 CSS Grid auto-fill）。
 *   原因：Grid 的轨道是「整列对齐」的 —— 最后一行不满时，空位必然留在最右端
 *   （用户反馈：列表页每一页、首页展示位的末行末尾都空一格）。
 *   做法：flex-wrap + justify-content:center —— 排满的行没有任何余量，居中不产生位移，
 *   与原来完全一致；只有「不满的最后一行」会整体居中，右端不再留空位。
 *   列数用断点写死为 --gc（不再 auto-fill），这样列表页「每页件数 = 列数 × 行数」
 *   才能保证每一页都正好排满。★ 改这里的断点必须同步改 app.js 的 listGridSize()。 */
.grid{display:flex;flex-wrap:wrap;gap:var(--gg,14px);justify-content:center;--gc:6;--gg:14px;}
.grid>.card{flex:0 0 calc((100% - (var(--gc) - 1) * var(--gg)) / var(--gc) - .4px);}
@media(max-width:1180px){.grid{--gc:5;}}
@media(max-width:980px){.grid{--gc:4;}}
.card{background:var(--card);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s;display:flex;flex-direction:column;cursor:pointer;}
.card:hover{transform:translateY(-3px);box-shadow:0 6px 22px rgba(20,24,28,.11);}
.card-link{display:flex;flex-direction:column;flex:1;min-height:0;color:inherit;}
.card-img{aspect-ratio:1/1;background:#fafbfc;position:relative;overflow:hidden;}
.card-img img{width:100%;height:100%;object-fit:contain;}
.card-img .ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#c8cdd3;font-size:12px;background:#f7f8fa;}
.card-img .badge{position:absolute;left:8px;top:8px;background:rgba(31,35,41,.78);color:#fff;font-size:11px;padding:2px 8px;border-radius:10px;}
.card-body{padding:10px 12px 0;display:flex;flex-direction:column;gap:6px;flex:1;}
.card-name{font-size:13.5px;line-height:1.45;height:39px;overflow:hidden;font-weight:600;}
.card-cat{font-size:11.5px;color:var(--ink-3);}
/* 价格行 + 快速加购按钮（v1.48）：按钮在价格行右端，卡片窄时自动落到第二行 */
.card-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;row-gap:7px;padding:8px 12px 14px;}
.card-price{display:flex;align-items:baseline;gap:6px;min-width:0;flex-wrap:wrap;}
.card-price .v{color:var(--brand);font-weight:800;font-size:20px;}
.card-price .v small{font-size:14px;font-weight:600;}
.card-price .suffix{font-size:11.5px;color:var(--ink-3);}
.card-price .lock{color:var(--ink-3);font-size:12.5px;font-weight:600;}
/* ★ 2026-10-08「划线原价」：中文站折后价右侧展示基准价（清单价），黑色划线 */
.card-price .orig{color:var(--ink-2);font-size:15px;font-weight:600;text-decoration:line-through;text-decoration-thickness:1px;}
/* ★ 快速加购按钮：老客户不必进详情页 */
.card-cart{margin-left:auto;flex:none;border:0;border-radius:999px;background:var(--brand);color:#fff;
  font-size:12px;font-weight:600;line-height:1.2;padding:6px 12px;white-space:nowrap;
  transition:background .15s,transform .1s;}
.card-cart:hover{background:var(--brand-dark);}
.card-cart:active{transform:scale(.95);}
.range{display:flex;flex-direction:column;gap:6px;}

/* ---------- 首页「全部展品」区（v1.58：桌面每行 6 个 / 窄屏 4、3、2） ----------
 * ★ 首页件数与列数必须整除：db.homePicks() 固定抽 36 件（每品类 2 件 + 差额给件数最多的品类各 +1），
 *   36/6=6、36/4=9、36/3=12、36/2=18 都是整行；改列数或抽样件数时两者必须一起改，
 *   否则末行会留空（v1.27 的 9 列 × 44 件就是 44%9=8 → 末行空一格）。 */
body.home #listzone .grid{--gc:6;--gg:12px;}
body.home #listzone .card-body{padding:8px 9px 0;gap:4px;}
body.home #listzone .card-foot{padding:7px 9px 11px;gap:6px;row-gap:6px;}
body.home #listzone .card-cart{flex:0 0 100%;font-size:10.5px;padding:4px 9px;background:#fdece3;color:var(--brand-dark);font-weight:600;}
body.home #listzone .card-cart:hover{background:#f9d9c8;}
body.home #listzone .card-name{font-size:12px;line-height:1.42;height:34px;}
body.home #listzone .card-cat{font-size:10.5px;}
body.home #listzone .card-price .v{font-size:17px;}
body.home #listzone .card-price .suffix{font-size:10.5px;}
body.home #listzone .card-price .lock{font-size:11px;}
body.home #listzone .card-price .orig{font-size:13px;}
body.home #listzone .card-img .badge{font-size:10px;padding:1px 6px;left:6px;top:6px;}
/* 桌面 6 列；再窄依次 4、3、2 列，均能整除 36 件 */
@media(max-width:980px){body.home #listzone .grid{--gc:4;}}
@media(max-width:760px){body.home #listzone .grid{--gc:3;--gg:10px;}}
@media(max-width:430px){body.home #listzone .grid{--gc:2;}}

/* 查看全部展品（首页精选 → 全量列表页） */
.more-row{display:flex;justify-content:center;margin-top:24px;}
.more-btn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:#fff;color:#123a63;font-weight:700;font-size:14px;padding:11px 28px;border-radius:26px;box-shadow:var(--shadow);transition:background .15s,color .15s,border-color .15s;}
.more-btn:hover{background:#123a63;border-color:#123a63;color:#fff;}
.more-btn .ar{transition:transform .15s;}
.more-btn:hover .ar{transform:translateX(3px);}

/* ---------- 分页 ---------- */
.pager{display:flex;justify-content:center;gap:6px;margin-top:26px;}
.pager button{border:1px solid var(--line);background:#fff;border-radius:6px;padding:7px 13px;font-size:13px;color:var(--ink-2);}
.pager button.on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600;}
.pager button:disabled{opacity:.45;cursor:default;}

/* ---------- 详情页 ---------- */
/* ★ v1.53.7：轨道改用 minmax(0,1fr)，避免宽子元素（加购行）把 min-content 撑破容器 → 窄屏横向溢出 */
.detail{display:grid;grid-template-columns:460px minmax(0,1fr);gap:32px;align-items:start;}
@media(max-width:900px){.detail{grid-template-columns:minmax(0,1fr);}}

/* 左栏：图集 + 咨询留言 竖排（v1.32 把留言栏从页面底部移到图片下方，填满左栏空白） */
.detail-left{display:flex;flex-direction:column;gap:24px;min-width:0;}
.detail-left .sec-head{margin-bottom:14px;}
.detail-left .sec-head h2{font-size:19px;}
.detail-left .sec-head p{font-size:13px;line-height:1.7;}
.detail-left .qa-wrap{grid-template-columns:1fr;gap:16px;padding:18px;}
.detail-left .qa-list{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:14px;min-height:84px;}
.detail-left .qa-form textarea{min-height:84px;}
@media(max-width:900px){
  .detail-left{order:2;}
  .detail .info{order:1;}
  .detail-left .qa-wrap{padding:20px 22px;}
}
.gallery{background:#fff;border-radius:var(--radius);padding:14px;box-shadow:var(--shadow);}
.gallery-main{aspect-ratio:1/1;background:#fafbfc;border-radius:8px;overflow:hidden;display:flex;align-items:center;justify-content:center;}
.gallery-main img{width:100%;height:100%;object-fit:contain;}
.thumbs{display:flex;gap:8px;margin-top:10px;overflow-x:auto;padding-bottom:2px;}
.thumbs img{width:60px;height:60px;object-fit:contain;border:2px solid var(--line);border-radius:6px;background:#fff;flex-shrink:0;cursor:pointer;}
.thumbs img.on{border-color:var(--brand);}

.info{background:#fff;border-radius:var(--radius);padding:24px 26px;box-shadow:var(--shadow);min-width:0;}
.info h1{margin:0 0 10px;font-size:23px;line-height:1.35;}
.info .crumbs{font-size:12.5px;color:var(--ink-3);margin-bottom:12px;}
.info .crumbs a{color:var(--ink-2);}
.tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;}
.tag{background:#f2f4f7;color:var(--ink-2);font-size:12px;padding:3px 10px;border-radius:12px;}

.pricebox{background:linear-gradient(180deg,#fff8f5,#fff);border:1px solid #ffe3d8;border-radius:8px;padding:16px 18px;margin-bottom:18px;}
.pricebox .row{display:flex;align-items:baseline;gap:10px;}
.pricebox .now{color:var(--brand);font-weight:800;font-size:35px;line-height:1.1;}
.pricebox .now small{font-size:18px;}
.pricebox .basis{font-size:12px;color:var(--ink-3);}
.pricebox .orig{color:var(--ink-2);font-size:19px;font-weight:600;text-decoration:line-through;text-decoration-thickness:1.5px;}
.pricebox .hint{font-size:12.5px;color:var(--ink-2);margin-top:6px;}
.pricebox .hint-tip{color:var(--brand-dark);font-weight:600;}
.pricebox .locked{font-size:15px;font-weight:700;color:var(--ink-2);}

.sec-title{font-size:13.5px;font-weight:700;margin:20px 0 10px;display:flex;align-items:center;gap:8px;}
.sec-title .must{color:var(--brand);font-weight:600;font-size:12px;}
.sec-title .pick{color:var(--ink-3);font-weight:400;font-size:12px;}

/* ---------- ★ 款式选择器（看图选款） ---------- */
.variants{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px;max-height:340px;overflow-y:auto;padding:2px;}
.variants::-webkit-scrollbar{width:8px;}
.variants::-webkit-scrollbar-thumb{background:#d8dde3;border-radius:4px;}
.variant{border:2px solid var(--line);border-radius:8px;background:#fff;padding:5px;cursor:pointer;transition:border-color .12s,box-shadow .12s;text-align:left;}
.variant:hover{border-color:#f8b39b;}
.variant.on{border-color:var(--brand);box-shadow:0 0 0 3px rgba(244,81,30,.13);}
.variant-img{aspect-ratio:1/1;background:#fafbfc;border-radius:5px;overflow:hidden;position:relative;}
.variant-img img{width:100%;height:100%;object-fit:contain;}
.variant-img .ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#c8cdd3;font-size:11px;background:#f7f8fa;}
.variant-img .tick{position:absolute;right:4px;bottom:4px;width:17px;height:17px;border-radius:50%;background:var(--brand);color:#fff;font-size:11px;display:none;align-items:center;justify-content:center;font-weight:700;}
.variant.on .variant-img .tick{display:flex;}
.variant-label{font-size:11px;color:var(--ink-2);margin-top:5px;line-height:1.35;height:30px;overflow:hidden;}
.variant.on .variant-label{color:var(--brand);font-weight:600;}

/* ---------- ★ 逐款式文案（v1.50）：功能概述 / 参考参数 / 展项评测随所选款式切换 ---------- */
.vtext-sub{font-size:12px;color:var(--ink-3);margin-top:10px;line-height:1.5;}
.vtext-sub b{color:var(--brand);font-weight:600;}
.vtext{font-size:13.5px;color:#3d444d;white-space:pre-wrap;line-height:1.72;}
/* 参考参数：规格块（浅底 + 左侧色条），长文自动换行 */
.vparam{font-size:13px;color:#3d444d;white-space:pre-wrap;line-height:1.7;
  background:#fafbfc;border:1px solid var(--line);border-left:3px solid #f8b39b;
  border-radius:7px;padding:12px 14px;}

/* ---------- 加购 ---------- */
/* ★ v1.53.7：加购行允许换行；数量器不可被压缩（否则内容被裁切、按钮文字折行） */
.buybar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:22px;padding-top:20px;border-top:1px solid var(--line);}
.qty{display:flex;align-items:center;border:1px solid var(--line);border-radius:7px;overflow:hidden;flex:0 0 auto;}
.qty button{width:34px;height:38px;border:0;background:#fff;font-size:17px;color:var(--ink-2);}
.qty button:hover{background:#f7f8fa;}
.qty input{width:52px;height:38px;border:0;text-align:center;font-size:14px;outline:0;border-left:1px solid var(--line);border-right:1px solid var(--line);}
.btn-buy{border:0;border-radius:8px;padding:0 30px;height:44px;font-size:15px;font-weight:700;background:var(--brand);color:#fff;}
.btn-buy:hover:not(:disabled){background:var(--brand-dark);}
.btn-buy:disabled{background:#dfe3e8;color:#a8afb8;cursor:not-allowed;}
.btn-ghost{background:#fff;border:1px solid var(--line);color:var(--ink-2);border-radius:8px;height:44px;padding:0 20px;font-size:14px;}
.notice{font-size:12.5px;color:#b26a00;background:#fff8e6;border-radius:6px;padding:9px 12px;margin-top:12px;}

/* ---------- 参数表 ---------- */
.spec{width:100%;border-collapse:collapse;font-size:13px;}
.spec th,.spec td{border:1px solid var(--line);padding:9px 12px;text-align:left;vertical-align:top;}
.spec th{background:#fafbfc;color:var(--ink-2);font-weight:600;width:120px;white-space:nowrap;}

/* ---------- 购物车 ---------- */
.cart-table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);}
.cart-table th{background:#fafbfc;color:var(--ink-2);font-size:13px;font-weight:600;padding:12px;text-align:left;border-bottom:1px solid var(--line);}
.cart-table td{padding:12px;border-bottom:1px solid #f2f4f7;vertical-align:middle;}
.cart-prod{display:flex;gap:12px;align-items:center;}
.cart-prod img,.cart-prod .ph{width:62px;height:62px;object-fit:contain;border-radius:6px;background:#fafbfc;border:1px solid var(--line);flex-shrink:0;}
.cart-prod .ph{display:flex;align-items:center;justify-content:center;color:#c8cdd3;font-size:11px;}
.cart-prod .pn{font-weight:600;font-size:13.5px;}
.cart-prod .pinfo{min-width:0;flex:1;}                 /* 防长款式名撑破左列 */
.cart-prod .pv{font-size:12px;color:var(--ink-3);margin-top:3px;}
/* ★ 购物车换款式（v1.51）：多款式展品的「款式」行改为下拉框，可在清单里直接切换 */
.pv.vrow{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.vlb{color:var(--ink-3);flex-shrink:0;}
.vsel{max-width:256px;min-width:0;padding:1px 4px;font:inherit;font-size:12px;line-height:1.6;
  color:var(--ink);background:#fff;border:1px solid #dfe3e8;border-radius:5px;cursor:pointer;}
.vsel:hover{border-color:var(--brand);}
.vsel:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 2px rgba(244,81,30,.12);}
.vtag{font-size:11px;color:#bcc2ca;flex-shrink:0;}
@media(max-width:780px){ .vsel{max-width:188px;} .vtag{display:none;} }
.money{color:var(--brand);font-weight:700;}
.btn-del{border:0;background:none;color:var(--ink-3);font-size:13px;}
.btn-del:hover{color:var(--brand);}
.cart-foot{display:flex;justify-content:flex-end;align-items:center;gap:18px;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 24px;margin-top:14px;}
.cart-foot .tot{font-size:15px;}
.cart-foot .tot b{color:var(--brand);font-size:25px;font-weight:800;}
.btn-xls{border:0;border-radius:8px;height:44px;padding:0 24px;font-size:14.5px;font-weight:700;background:#1f2329;color:#fff;}
.btn-xls:hover:not(:disabled){background:#000;}
.btn-xls:disabled{background:#dfe3e8;color:#a8afb8;cursor:not-allowed;}
.btn-xls2{border:1px solid #1f2329;border-radius:8px;height:44px;padding:0 20px;font-size:14px;font-weight:700;background:#fff;color:#1f2329;white-space:nowrap;}
.btn-xls2:hover:not(:disabled){background:#f2f3f5;}
.btn-xls2:disabled{background:#dfe3e8;color:#a8afb8;cursor:not-allowed;}
/* 购物车按分类归类 */
.cat-row td{background:#f7f8fa;padding:10px 14px;border-bottom:2px solid var(--line);}
.cat-row .cat-name{font-weight:800;font-size:14px;color:var(--ink);}
.cat-row .cat-n{margin-left:10px;font-size:12px;color:var(--ink-3);font-weight:500;}
.empty{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:60px 20px;text-align:center;color:var(--ink-3);}
.empty .big{font-size:44px;margin-bottom:10px;}

/* ---------- 尾部 ---------- */
.foot{border-top:1px solid var(--line);background:#fff;padding:16px 0;margin-top:16px;}
.foot-contact{display:flex;gap:26px;flex-wrap:wrap;align-items:center;padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:8px;}
/* ★ v1.60：左块改为定宽 252px（原来 flex:0 0 auto → 被最长一行标语撑到 411px，框大内容小、
   右端参差）。定宽后标语拆两行铺满，整块近似矩形；省下的宽度给右侧区域列。 */
.fc-left{flex:0 0 252px;min-width:0;}
.fc-brand{font-size:14.5px;font-weight:800;color:var(--brand);}
.fc-slogan{font-size:12px;color:var(--ink-3);margin-top:3px;line-height:1.6;}
/* ★ v1.29：页脚 400 已删除（与上方 CTA 横幅的 400 距离过近、重复），勿再加回 */
.fc-web{font-size:12px;font-weight:400;color:var(--ink-2);margin-left:9px;}
/* ★ v1.60：区域列由 grid（auto-fit minmax(250px,1fr)，宽屏留大片空白）改为
   flex 换行 + space-between：每行自动顶到左右两端，列随宽度自适应（3 列→2 列），不会溢出。
   小屏 ≤760 仍由媒体查询切回 grid（见文件下方 .fc-regions 规则），观感与改前一致。 */
.fc-regions{flex:1 1 620px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 34px;}
.fc-item{font-size:12px;line-height:1.45;color:var(--ink-2);white-space:nowrap;}
.fc-item .reg{display:inline-block;min-width:50px;color:var(--brand);font-weight:600;}
.fc-item b{color:var(--ink);font-weight:700;margin-right:5px;}
.foot-note{margin:0;font-size:12px;color:var(--ink-2);line-height:1.7;}
.foot-note .sep{margin:0 7px;color:#d8dde3;}
.toast{position:fixed;left:50%;bottom:40px;transform:translateX(-50%);background:rgba(31,35,41,.93);color:#fff;padding:11px 22px;border-radius:8px;font-size:13.5px;opacity:0;pointer-events:none;transition:opacity .2s,bottom .2s;z-index:99;}
.toast.on{opacity:1;bottom:52px;}
.loading{text-align:center;color:var(--ink-3);padding:40px;font-size:13px;}

/* ================================================================
   首页专属区块（Hero 轮播 / 数据条 / 服务 / 流程 / 案例墙 / 主题 / 优势 / CTA / 简介）
   图片素材均来自「整馆效果图」真实场馆，已转码为 WebP（assets/halls/）
   ================================================================ */

/* ---------- Hero 轮播 ---------- */
.hero{position:relative;border-radius:14px;overflow:hidden;background:var(--navy-2);box-shadow:0 10px 34px rgba(11,42,74,.22);}
.hero-track{position:relative;height:clamp(290px,38vw,430px);}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity .8s ease;pointer-events:none;}
.hero-slide.on{opacity:1;pointer-events:auto;}
.hero-slide img{width:100%;height:100%;object-fit:cover;}
.hero-veil{position:absolute;inset:0;background:linear-gradient(100deg,rgba(6,20,38,.42) 0%,rgba(6,20,38,.16) 38%,rgba(6,20,38,0) 66%),linear-gradient(0deg,rgba(6,20,38,.68) 0%,rgba(6,20,38,.22) 34%,rgba(6,20,38,0) 60%);}
.hero-cap{
  position:absolute;inset:0;max-width:1240px;margin:0 auto;
  padding:0 40px 46px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:11px;color:#fff;
}
.hero-cap strong{font-size:clamp(20px,2.7vw,32px);font-weight:800;line-height:1.32;max-width:660px;text-shadow:0 2px 12px rgba(0,0,0,.55);}
.hero-cap em{font-style:normal;font-size:clamp(13px,1.2vw,15.5px);opacity:.94;max-width:620px;text-shadow:0 1px 8px rgba(0,0,0,.5);}
.hero-btn{
  margin-top:8px;display:inline-block;background:var(--brand);color:#fff;font-size:14px;font-weight:700;
  padding:11px 26px;border:0;border-radius:8px;box-shadow:0 6px 18px rgba(244,81,30,.34);transition:background .15s,transform .15s;
}
.hero-btn:hover{background:var(--brand-dark);transform:translateY(-1px);}
.hero-nav{
  position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border:0;border-radius:50%;
  background:rgba(6,20,38,.34);color:#fff;font-size:24px;line-height:1;backdrop-filter:blur(3px);
  display:flex;align-items:center;justify-content:center;transition:background .15s;
}
.hero-nav:hover{background:rgba(6,20,38,.58);}
.hero-nav.prev{left:14px;}
.hero-nav.next{right:14px;}
.hero-dots{position:absolute;left:0;right:0;bottom:16px;display:flex;justify-content:center;gap:7px;}
.hero-dots i{width:22px;height:4px;border-radius:2px;background:rgba(255,255,255,.42);cursor:pointer;transition:background .2s,width .2s;}
.hero-dots i.on{background:var(--gold);width:34px;}
@media(max-width:760px){.hero-nav{display:none;} .hero-cap{padding:0 20px 38px;} .hero{border-radius:10px;}}

/* ---------- 京东式顶部：左侧竖排分类菜单 + 右侧轮播海报 ---------- */
.jd-hero{display:grid;grid-template-columns:216px minmax(0,1fr);gap:14px;align-items:stretch;margin-top:18px;}
.jd-cats{
  background:#fff;border-radius:14px;box-shadow:var(--shadow);
  padding:8px 0;display:flex;flex-direction:column;overflow:hidden;
}
.jd-cats-head{
  font-size:13px;font-weight:800;color:var(--navy);letter-spacing:.5px;
  padding:6px 18px 10px;border-bottom:1px solid var(--line);margin-bottom:6px;
}
.jd-cat{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:0 18px;height:34px;font-size:13.5px;color:var(--ink-2);
  border-left:3px solid transparent;transition:background .14s,color .14s,border-color .14s;
}
.jd-cat .jc-name{display:flex;align-items:center;gap:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.jd-cat .jc-ico{color:var(--ink-3);opacity:.8;}
.jd-cat:hover .jc-ico,.jd-cat.on .jc-ico{color:var(--brand);opacity:1;}
.jd-cat .jc-n{font-size:11.5px;color:var(--ink-3);flex-shrink:0;}
.jd-cat:hover{background:#fff4ef;color:var(--brand);border-left-color:var(--brand);}
.jd-cat:hover .jc-n{color:var(--brand);}
.jd-cat.on{background:#fff4ef;color:var(--brand);font-weight:700;border-left-color:var(--brand);}
.jd-banner{min-width:0;display:flex;}
.jd-banner .hero{flex:1;height:100%;}
.jd-banner .hero-track{height:100%;min-height:392px;}
/* 首页隐藏顶部横向分类条（分类已移到左侧竖排菜单）；小屏再恢复横向条 */
body.home .catnav{display:none;}
@media(max-width:900px){
  body.home .catnav{display:block;}
  .jd-hero{grid-template-columns:1fr;gap:12px;}
  .jd-cats{display:none;}
  .jd-banner .hero-track{min-height:300px;}
}
/* ★ 2026-10-07：手机版首页也去掉顶部横向分类条（分类入口由底部导航「全部展品」承担）。
   断点取 760px（与顶栏收窄、底部导航 .mobbar 同一断点）—— 761–900px 的窄平板保留横向条，
   否则该区间左侧竖排菜单（.jd-cats，900px 以下已隐藏）与底部导航都不存在，会没有任何分类入口。 */
@media(max-width:760px){
  body.home .catnav{display:none;}
}

/* ---------- 数据条（深蓝 + 金，呼应 logo 配色） ---------- */
.stats{margin-top:14px;border-radius:12px;overflow:hidden;background:linear-gradient(100deg,#0b2a4a,#15497a 52%,#0b2a4a);}
.stat-inner{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:22px 12px;}
.stat{text-align:center;color:#fff;border-right:1px solid rgba(255,255,255,.14);padding:2px 8px;}
.stat:last-child{border-right:0;}
.stat b{display:block;font-size:clamp(21px,2.5vw,29px);font-weight:800;color:var(--gold);letter-spacing:.5px;line-height:1.2;}
.stat b i{font-size:13px;font-style:normal;font-weight:600;margin-left:3px;color:#e6d5a8;}
.stat span{font-size:12.5px;opacity:.86;}
@media(max-width:700px){.stat-inner{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 4px;} .stat:nth-child(2){border-right:0;}}

/* ---------- 通用区块标题 ---------- */
.sec{margin-top:46px;}
.sec-head{margin-bottom:20px;}
.sec-head h2{margin:0 0 8px;font-size:22px;color:var(--navy);position:relative;padding-left:14px;line-height:1.35;}
.sec-head h2::before{content:'';position:absolute;left:0;top:5px;bottom:4px;width:4px;border-radius:2px;background:linear-gradient(180deg,var(--navy-3),var(--brand));}
.sec-head p{margin:0;font-size:13.5px;color:var(--ink-2);padding-left:14px;max-width:920px;line-height:1.75;}

/* ---------- 服务能力 ---------- */
/* ★ v1.58：服务能力固定 3 列 —— 原 auto-fit/minmax(238px) 在介绍页内容宽 962px 下
   （floor((962+16)/(238+16))=3）只会排 3 列，4 张卡就变成「3+1」末行空两格。
   现按 6 项服务写死 3 列，天然 3×2 对齐；窄屏降 2 列（3 行）、手机 1 列，任一断点都无空位。 */
.svc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
@media(max-width:980px){.svc-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:480px){.svc-grid{grid-template-columns:minmax(0,1fr);}}
.svc{background:#fff;border-radius:12px;padding:22px 22px 24px;box-shadow:var(--shadow);border-top:3px solid #eef1f4;transition:transform .16s,box-shadow .16s,border-top-color .16s;}
.svc:hover{transform:translateY(-3px);box-shadow:0 8px 26px rgba(18,58,99,.13);border-top-color:var(--brand);}
.svc-ico{width:46px;height:46px;border-radius:12px;background:linear-gradient(135deg,var(--navy),var(--navy-3));color:var(--gold);display:flex;align-items:center;justify-content:center;margin-bottom:13px;}
.svc-ico svg{width:25px;height:25px;}
.svc h3{margin:0 0 8px;font-size:15.5px;color:var(--navy);}
.svc p{margin:0;font-size:13px;color:var(--ink-2);line-height:1.75;}

/* ---------- 服务流程 ---------- */
.proc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.proc{position:relative;background:#fff;border-radius:12px;padding:20px 20px 22px;box-shadow:var(--shadow);border-left:3px solid var(--navy-3);}
.proc-n{font-size:26px;font-weight:800;color:#e3e9f0;letter-spacing:1px;line-height:1;}
.proc h3{margin:8px 0 8px;font-size:15px;color:var(--navy);}
.proc p{margin:0;font-size:12.8px;color:var(--ink-2);line-height:1.72;}
.proc-arrow{position:absolute;right:-11px;top:50%;transform:translateY(-50%);font-size:22px;color:#c3cfdb;font-weight:700;}
@media(max-width:900px){.proc-grid{grid-template-columns:repeat(2,minmax(0,1fr));} .proc-arrow{display:none;}}
@media(max-width:520px){.proc-grid{grid-template-columns:minmax(0,1fr);}}

/* ---------- 展馆设计参考墙（CSS 瀑布流，保留各图原始比例） ---------- */
.case-grid{columns:4;column-gap:12px;}
.case-card{position:relative;break-inside:avoid;margin:0 0 12px;border-radius:12px;overflow:hidden;box-shadow:var(--shadow);background:#e9edf1;}
.case-card img{width:100%;display:block;transition:transform .45s ease;}
.case-card:hover img{transform:scale(1.05);}
.case-cap{
  position:absolute;inset:auto 0 0 0;padding:30px 13px 11px;
  background:linear-gradient(180deg,transparent,rgba(6,20,38,.88));color:#fff;
  display:flex;align-items:baseline;justify-content:space-between;gap:8px;
}
.case-cap b{font-size:13.5px;font-weight:700;}
.case-cap i{font-style:normal;font-size:11px;color:var(--gold);white-space:nowrap;background:rgba(255,255,255,.14);border-radius:9px;padding:2px 8px;}
@media(max-width:1000px){.case-grid{columns:3;}}
@media(max-width:700px){.case-grid{columns:2;}}

/* ---------- 联系科普猫（全国 6 大区域分公司 + 负责人微信，3 列 × 2 行） ---------- */
.ct-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.ct-card{
  min-width:0;
  background:#fff;border:1px solid var(--line);border-top:3px solid var(--brand);
  border-radius:14px;padding:15px 13px 14px;box-shadow:var(--shadow);
  display:flex;flex-direction:column;align-items:center;gap:8px;
  transition:transform .3s ease,box-shadow .3s ease;
}
.ct-card:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(16,42,72,.15);}
.ct-region{
  font-size:15px;font-weight:700;letter-spacing:.3px;color:#c2410c;
  background:#fff4e8;border:1px solid #f6d8b8;border-radius:999px;padding:4px 15px;
}
.ct-qr{width:100%;background:#fff;border-radius:10px;overflow:hidden;}
.ct-qr img{width:100%;display:block;aspect-ratio:1/1;object-fit:contain;}
.ct-info{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%;margin-top:-5%;}
.ct-branch{font-size:18px;font-weight:700;color:var(--navy);line-height:1.3;}
.ct-line{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:3px 9px;line-height:1.3;}
.ct-person{font-style:normal;font-size:15px;color:var(--ink-3);}
.ct-tel{font-size:17px;font-weight:800;color:var(--brand-dark);letter-spacing:.2px;white-space:nowrap;text-decoration:none;}
.ct-tel:hover{text-decoration:underline;}
@media(max-width:640px){.ct-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}.ct-card{padding:13px 11px 12px;}.ct-region{font-size:13.5px;padding:3px 13px;}.ct-branch{font-size:16px;}.ct-person{font-size:13.5px;}.ct-tel{font-size:15.5px;}}
@media(max-width:380px){.ct-grid{grid-template-columns:1fr;}}

/* ---------- 关注我们（五大平台二维码，统一白底方块） ---------- */
.follow-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;}
.follow-card{
  min-width:0;
  background:#fff;border:1px solid var(--line);border-top:3px solid var(--fc,var(--navy));
  border-radius:14px;padding:14px 12px 11px;box-shadow:var(--shadow);
  display:flex;flex-direction:column;align-items:center;gap:11px;
  transition:transform .3s ease,box-shadow .3s ease;
}
.follow-card:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(16,42,72,.15);}
.fc-qr{width:100%;background:#fff;border-radius:10px;overflow:hidden;}
.fc-qr img{width:100%;display:block;aspect-ratio:1/1;object-fit:contain;}
.fc-meta{display:flex;align-items:center;gap:8px;width:100%;}
.fc-ico{
  flex:none;width:28px;height:28px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;color:#fff;background:var(--fc,var(--navy));
}
.fc-ico svg{display:block;}
.fc-txt{display:flex;flex-direction:column;min-width:0;line-height:1.32;}
.fc-txt b{font-size:13.5px;color:var(--navy);white-space:nowrap;}
.fc-txt i{font-style:normal;font-size:10.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
@media(max-width:1000px){.follow-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:640px){.follow-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}}

/* ---------- 主题方案 ---------- */
.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(186px,1fr));gap:14px;}
.theme-card{position:relative;display:block;border-radius:12px;overflow:hidden;aspect-ratio:3/2;box-shadow:var(--shadow);background:#e9edf1;}
.theme-card img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.theme-card:hover img{transform:scale(1.07);}
.theme-cap{
  position:absolute;inset:auto 0 0 0;padding:28px 12px 10px;
  background:linear-gradient(180deg,transparent,rgba(6,20,38,.88));color:#fff;
  display:flex;align-items:baseline;justify-content:space-between;gap:8px;
}
.theme-cap b{font-size:14px;font-weight:700;}
.theme-cap i{font-style:normal;font-size:11.5px;color:var(--gold);white-space:nowrap;}

/* ---------- 源头厂家优势对比 ---------- */
.adv-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.adv-col{background:#fff;border-radius:12px;padding:20px 22px 22px;box-shadow:var(--shadow);}
.adv-col.ours{border-top:3px solid var(--brand);}
.adv-col.theirs{border-top:3px solid #cfd6dd;background:#fafbfc;}
.adv-head{font-size:14.5px;font-weight:800;margin-bottom:13px;padding-left:26px;position:relative;line-height:1.4;}
.adv-col.ours .adv-head{color:var(--navy);}
.adv-col.theirs .adv-head{color:var(--ink-2);}
.adv-head::before{position:absolute;left:0;top:1px;font-size:15px;font-weight:800;}
.adv-col.ours .adv-head::before{content:'✓';color:var(--brand);}
.adv-col.theirs .adv-head::before{content:'×';color:#aab3bc;}
.adv-col ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px;}
.adv-col li{font-size:13px;line-height:1.65;color:var(--ink-2);padding-left:18px;position:relative;}
.adv-col.ours li{color:#3d444d;}
.adv-col li::before{content:'';position:absolute;left:2px;top:8px;width:6px;height:6px;border-radius:50%;background:var(--navy-3);}
.adv-col.theirs li::before{background:#c3cbd3;}
@media(max-width:800px){.adv-grid{grid-template-columns:1fr;}}

/* ---------- CTA 横幅（暖奶油/浅金底 + 藏青标题 + 品牌橙按钮：取自 logo 配色，避免与 logo 撞色） ---------- */
.cta-band{
  display:flex;align-items:center;gap:26px;flex-wrap:wrap;
  background:linear-gradient(112deg,#fff9f0,#fdefd8 58%,#fbe3c4);
  border:1px solid #f2d8b4;
  border-radius:14px;padding:26px 32px;box-shadow:0 10px 30px rgba(176,120,44,.14);
}
.cta-brand{flex:0 0 auto;line-height:0;}
.cta-brand img{height:74px;width:auto;}
.cta-txt{flex:1 1 300px;min-width:240px;}
.cta-txt b{display:block;color:#0b2a4a;font-size:clamp(17px,1.8vw,21px);font-weight:800;margin-bottom:8px;line-height:1.4;}
.cta-txt span{color:#8a6a46;font-size:13.5px;line-height:1.7;}
.cta-act{flex:0 0 auto;}
.cta-phone{display:flex;flex-direction:column;align-items:center;gap:1px;background:linear-gradient(180deg,#f5791f,#d9450a);padding:12px 28px;border-radius:10px;color:#fff;box-shadow:0 6px 16px rgba(217,69,10,.32);transition:filter .15s,transform .15s;}
.cta-phone:hover{filter:brightness(1.16);transform:translateY(-2px);}
.cta-phone small{font-size:11.5px;opacity:.92;}
.cta-phone strong{font-size:24px;font-weight:800;letter-spacing:.6px;}
@media(max-width:760px){.cta-band{padding:22px 20px;} .cta-brand img{height:58px;}}

/* ---------- 首页底部简介（利于收录） ---------- */
.about{background:#fff;border-radius:12px;padding:26px 30px 28px;box-shadow:var(--shadow);}
.about h2{margin:0 0 14px;font-size:19px;color:var(--navy);}
.about p{margin:0 0 12px;font-size:13.2px;line-height:1.95;color:var(--ink-2);text-align:justify;}
.about p:last-child{margin-bottom:0;}
@media(max-width:700px){.about{padding:20px 18px;}}

/* ---------- 页脚备案信息 ---------- */
.foot-icp{margin:10px 0 0;font-size:12px;color:var(--ink-3);display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
.foot-icp a{color:var(--ink-2);border-bottom:1px dotted #c8cdd3;padding-bottom:1px;transition:color .15s,border-color .15s;}
.foot-icp a:hover{color:var(--brand);border-bottom-color:var(--brand);}
.foot-icp .sep{color:#d8dde3;}

/* ================================================================
   首页「活动专区」/ 中英文切换 / 弹窗 / 咨询留言 / 评价（预留）/ AI 导出
   ================================================================ */

/* ---------- 顶栏：介绍入口 + 中英文切换 ---------- */
/* 科普猫介绍（v1.28：价签式高亮入口，替代原重复的 400 电话位） */
.topbar-intro{display:inline-flex;align-items:center;height:var(--ctl-h);gap:5px;font-size:13px;font-weight:700;color:#a8480a;white-space:nowrap;
  padding:0 12px;border-radius:999px;
  background:linear-gradient(135deg,#fff8ea,#ffe6b8 58%,#ffd58c);
  border:1px solid #f2c983;box-shadow:0 1px 3px rgba(210,120,20,.16);
  transition:filter .15s,transform .15s,box-shadow .15s,color .15s;}
.topbar-intro .ti-ico{width:14px;height:14px;display:block;flex:0 0 auto;opacity:.9;}
.topbar-intro:hover{color:#8f3c05;filter:brightness(1.03);transform:translateY(-1px);box-shadow:0 5px 12px rgba(210,120,20,.24);}
@media(max-width:1080px){.topbar-intro{display:none;}}
.lang{display:inline-flex;align-items:center;height:var(--ctl-h);border:1px solid var(--line);border-radius:8px;overflow:hidden;font-size:12.5px;line-height:1;flex-shrink:0;}
.lang span,.lang a{padding:0 10px;height:100%;display:inline-flex;align-items:center;}
.lang span.on{background:var(--navy);color:#fff;font-weight:600;}
.lang a{color:var(--ink-2);}
.lang a:hover{background:#f2f4f7;color:var(--brand);}
@media(max-width:560px){.lang span{display:none;}}

/* ---------- 活动专区（京东式活动入口） ---------- */
.promo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.promo{position:relative;display:flex;flex-direction:column;gap:8px;border-radius:12px;padding:20px 20px 18px;color:#fff;overflow:hidden;box-shadow:var(--shadow);transition:transform .16s,box-shadow .16s;min-height:160px;}
.promo:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(11,42,74,.24);}
.promo::after{content:'';position:absolute;right:-30px;bottom:-40px;width:130px;height:130px;border-radius:50%;background:rgba(255,255,255,.12);}
.promo b{font-size:16.5px;font-weight:800;line-height:1.4;position:relative;}
.promo i{font-style:normal;font-size:12.5px;opacity:.93;line-height:1.65;position:relative;}
.promo-tag{align-self:flex-start;background:rgba(255,255,255,.22);border-radius:10px;padding:2px 10px;font-size:11.5px;font-weight:600;letter-spacing:.3px;}
.promo-go{margin-top:auto;font-size:12.5px;font-weight:700;opacity:.96;}
.promo.p-hot{background:linear-gradient(135deg,#f4511e,#ff7a45);}
.promo.p-sale{background:linear-gradient(135deg,#c0392b,#e74c3c);}
.promo.p-vip{background:linear-gradient(135deg,#8a6d1f,#d4a72c);}
.promo.p-new{background:linear-gradient(135deg,#0b2a4a,#1c5a94);}
@media(max-width:980px){.promo-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:560px){.promo-grid{grid-template-columns:minmax(0,1fr);}}

/* ---------- 通用弹窗 ---------- */
#modal-root{position:fixed;inset:0;z-index:200;display:none;}
#modal-root.on{display:block;}
#modal-root .mask{position:absolute;inset:0;background:rgba(11,20,32,.55);}
#modal-root .dialog{
  position:relative;margin:9vh auto 0;width:min(560px,92vw);max-height:82vh;overflow-y:auto;
  background:#fff;border-radius:14px;box-shadow:0 24px 60px rgba(0,0,0,.3);animation:dlgIn .18s ease;
}
@keyframes dlgIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
.dlg-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line);}
.dlg-head h3{margin:0;font-size:17px;color:var(--navy);}
.dlg-x{border:0;background:none;font-size:24px;line-height:1;color:var(--ink-3);padding:0 4px;}
.dlg-x:hover{color:var(--brand);}
.dlg-body{padding:20px 22px;}
.dlg-lead{margin:0 0 16px;font-size:13.5px;line-height:1.85;color:var(--ink-2);}
.dlg-note{margin-top:14px;font-size:12px;color:var(--ink-3);background:#f7f8fa;border-radius:8px;padding:10px 12px;line-height:1.7;}
.dlg-foot{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap;padding:16px 22px;border-top:1px solid var(--line);}
.dlg-foot .btn-buy{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;}
.contact-list{display:flex;flex-direction:column;gap:8px;}
.cl-item{display:flex;align-items:center;gap:10px;background:#fafbfc;border:1px solid var(--line);border-radius:9px;padding:10px 14px;font-size:13.5px;transition:border-color .15s,background .15s;}
.cl-item:hover{border-color:var(--brand);background:#fff8f5;}
.cl-reg{flex:0 0 68px;color:var(--brand);font-weight:600;font-size:13px;}
.cl-item b{color:var(--ink);font-size:15px;letter-spacing:.3px;}
.cl-who{color:var(--ink-3);font-size:12.5px;margin-left:auto;}

/* ★ v1.54：卡片快速加购 · 多款式选择弹窗 */
.pick-loading{padding:26px 0;text-align:center;color:var(--ink-2);font-size:14px;}
.pick-tip{font-size:13px;line-height:1.75;color:var(--ink-2);margin-bottom:14px;}
.pick-tip b{color:var(--brand-dark);}
/* 内层限高 56vh：常见 5 个款式可一屏显示完，更多款式时仅列表区滚动（标题/按钮不动） */
.pick-list{display:flex;flex-direction:column;gap:10px;max-height:56vh;overflow-y:auto;padding:2px;}
.pick-row{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:11px;padding:10px 12px;background:#fff;transition:border-color .15s,box-shadow .15s;}
.pick-row:hover{border-color:var(--brand);box-shadow:0 4px 14px rgba(214,61,12,.09);}
.pick-img{width:60px;height:60px;border-radius:8px;object-fit:cover;flex:0 0 auto;background:#f4f5f7;}
.pick-img.ph{display:flex;align-items:center;justify-content:center;color:#c2c9d1;font-size:12px;}
.pick-info{flex:1;min-width:0;}
.pick-label{font-size:14.5px;font-weight:700;color:var(--ink);}
.pick-size{font-size:12.5px;color:var(--ink-2);margin-top:4px;word-break:break-all;}
.pick-right{display:flex;flex-direction:column;align-items:flex-end;gap:7px;flex:0 0 auto;}
.pick-price{font-size:18.6px;font-weight:800;color:var(--brand-dark);white-space:nowrap;}
.pick-prices{display:inline-flex;align-items:baseline;gap:6px;white-space:nowrap;}
.pick-right .orig{font-size:14px;font-weight:600;color:var(--ink-2);text-decoration:line-through;text-decoration-thickness:1px;}
.pick-lock{font-size:12px;color:var(--ink-3);white-space:nowrap;}
.pick-add{border:0;border-radius:8px;background:var(--brand);color:#fff;font-size:13px;font-weight:700;padding:7px 16px;cursor:pointer;transition:background .15s;}
.pick-add:hover{background:var(--brand-dark);}
@media(max-width:560px){
  .pick-img{width:52px;height:52px;}
  .pick-label{font-size:13.5px;}
  .pick-add{padding:6px 12px;}
}

/* ---------- 咨询留言 ---------- */
.qa-wrap{background:#fff;border-radius:12px;box-shadow:var(--shadow);padding:20px 22px;display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start;}
@media(max-width:820px){.qa-wrap{grid-template-columns:1fr;}}
.qa-form{display:flex;flex-direction:column;gap:10px;}
.qa-fields{display:flex;gap:10px;flex-wrap:wrap;}
.qa-fields input{flex:1 1 160px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:13.5px;outline:0;font-family:inherit;}
.qa-form textarea{border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:13.5px;outline:0;min-height:92px;resize:vertical;font-family:inherit;line-height:1.7;}
.qa-fields input:focus,.qa-form textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(244,81,30,.1);}
.qa-act{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.qa-act .btn-buy{height:42px;padding:0 26px;font-size:14px;}
.qa-tip{font-size:12px;color:var(--ink-3);}
.qa-list{border-left:1px solid var(--line);padding-left:22px;min-height:120px;}
@media(max-width:820px){.qa-list{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:16px;}}
.qa-item{padding:12px 0;border-bottom:1px dashed var(--line);}
.qa-item:last-child{border-bottom:0;}
.qa-head{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--ink-3);margin-bottom:6px;}
.qa-head b{color:var(--navy);font-size:13px;}
.qa-body{font-size:13.5px;line-height:1.75;color:var(--ink-2);}
.qa-reply{margin-top:8px;background:#f6f9fc;border-left:3px solid var(--navy-3);border-radius:6px;padding:8px 12px;font-size:13px;color:var(--ink-2);line-height:1.7;}
.qa-reply b{color:var(--navy-3);}
.qa-empty{color:var(--ink-3);font-size:13px;padding:20px 0;text-align:center;}

/* ---------- 商品评价（预留，REVIEWS_ENABLED=false 时不渲染） ---------- */
.rv-summary{display:flex;gap:26px;align-items:center;background:#fff;border-radius:12px;box-shadow:var(--shadow);padding:20px 24px;flex-wrap:wrap;}
.rv-score{text-align:center;min-width:110px;}
.rv-score b{display:block;font-size:34px;color:var(--brand);font-weight:800;line-height:1.1;}
.rv-score span{font-size:12.5px;color:var(--ink-3);}
.rv-bars{flex:1;display:flex;flex-direction:column;gap:6px;min-width:200px;}
.rv-bar{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-3);}
.rv-bar i{flex:1;height:7px;background:#eef1f4;border-radius:4px;overflow:hidden;}
.rv-bar em{display:block;height:100%;background:var(--gold);}
.rv-empty{margin-top:14px;color:var(--ink-3);font-size:13px;text-align:center;background:#fff;border-radius:12px;box-shadow:var(--shadow);padding:24px;}

/* ---------- AI 导出方案 ---------- */
.ai-box{background:#fff;border-radius:12px;box-shadow:var(--shadow);padding:20px 22px;}
.ai-preview{margin:0 0 14px;background:#0b2a4a;color:#dbe6f2;border-radius:10px;padding:16px 18px;font-size:12.5px;line-height:1.8;white-space:pre-wrap;word-break:break-word;max-height:280px;overflow-y:auto;font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;}
.ai-acts{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.btn-copy{border:0;border-radius:8px;height:40px;padding:0 22px;font-size:13.5px;font-weight:700;background:var(--navy);color:#fff;}
.btn-copy:hover{background:var(--navy-2);}
.ai-link{display:inline-flex;align-items:center;height:40px;padding:0 18px;border-radius:8px;border:1px solid var(--line);font-size:13.5px;font-weight:600;color:var(--ink-2);background:#fff;}
.ai-link:hover{border-color:var(--brand);color:var(--brand);}
.ai-hint{margin-top:12px;font-size:12px;color:var(--ink-3);}

/* ---------- 购物车操作区 ---------- */
.cart-foot{justify-content:space-between;flex-wrap:wrap;}
.cart-acts{display:flex;gap:12px;flex-wrap:wrap;align-items:center;}
.btn-ai{border:1px solid var(--navy);border-radius:8px;height:44px;padding:0 20px;font-size:14px;font-weight:700;background:#fff;color:var(--navy);}
.btn-ai:hover{background:#f2f7fc;}
.btn-submit{border:0;border-radius:8px;height:44px;padding:0 26px;font-size:14.5px;font-weight:700;background:var(--brand);color:#fff;}
.btn-submit:hover{background:var(--brand-dark);}

/* ---------- 介绍页 ---------- */
.about-head{margin-bottom:22px;}
/* ★ 自有产品商城 高亮徽标：金色系，与顶栏「科普猫介绍」价签风格呼应 */
.own-badge{
  display:inline-flex;align-items:center;gap:4px;
  margin-left:2px;padding:3px 11px;border-radius:999px;
  font-size:12.5px;font-weight:800;letter-spacing:.5px;
  color:#7a4600;
  background:linear-gradient(135deg,#fff3d6,#ffe1a6 58%,#ffd279);
  border:1px solid #f0c569;
  box-shadow:0 1px 3px rgba(180,120,0,.20);
  white-space:nowrap;
}
.own-badge::before{content:"";width:7px;height:7px;border-radius:50%;background:#e58a00;box-shadow:0 0 0 3px rgba(229,138,0,.18);}

/* ★ v1.29 介绍页改版：PC 端左侧竖排分类菜单（同首页）+ 右侧全部介绍内容；
   分类菜单吸顶跟随（--sticky-top 由 app.js 按顶栏实际高度写入，避免被吸顶顶栏遮住）。
   ★ 2026-10-07：**只有手机端**去掉分类清单 —— 小屏隐藏左栏后不再恢复顶部横向分类条
   （底部移动导航已有「全部展品」入口）；PC 端左栏分类菜单保持原样。 */
.about-layout{display:grid;grid-template-columns:216px minmax(0,1fr);gap:22px;align-items:start;}
.about-side{position:sticky;top:var(--sticky-top,104px);}
.about-body{min-width:0;}
/* 注意：body 类名用 aboutPage 而非 about —— 页内已存在 .about（介绍卡片）样式，用 about 会串味 */
body.aboutPage .catnav{display:none;}          /* PC：分类已在左侧竖排菜单 */
@media(max-width:900px){
  /* ★ 手机端：此处**刻意不写**「小屏恢复分类条」那条规则 —— 小屏不展示任何分类清单 */
  .about-layout{grid-template-columns:1fr;gap:0;}
  .about-side{display:none;}
}
/* ★ 2026-10-07：手机端「我的」页（/me）同样不展示顶部横向产品分类条 —— 手机底部导航已有
   「全部展品」入口，而分类条在小屏要占掉 6~8 行、把「我的资料」挤到屏外。
   **只在手机端隐藏，PC 端保持原样**（与介绍页同一口径）。body 类名由 renderMe() 加上。 */
@media(max-width:900px){
  body.mePage .catnav{display:none;}
}
/* ★ 2026-10-07：手机端「我的清单」页（/cart）同样不展示顶部横向产品分类条 —— 清单是任务型页面，
   底部移动导航已有「全部展品」。**只手机端隐藏，PC 端保持原样**（同介绍页/我的页口径）。body 类名由 renderCart() 加上。 */
@media(max-width:900px){
  body.cartPage .catnav{display:none;}
}
/* ★ 2026-10-07：页内锚点跳转（如顶栏「客户经理」→ 介绍页「联系科普猫」）必须给吸顶顶栏留高度，
   否则目标区块标题会被 sticky 顶栏压住 —— 看起来就像"没跳到位"。--sticky-top 由 app.js 按顶栏实际高度写入。 */
#main [id]{scroll-margin-top:calc(var(--sticky-top,104px) + 4px);}

/* ================= 账号：登录 / 注册 ================= */
.hide{display:none !important;}
.btn-login-inline{border:0;border-radius:8px;height:38px;padding:0 18px;font-size:13.5px;font-weight:700;background:var(--brand);color:#fff;font-family:inherit;}
.btn-login-inline:hover{background:var(--brand-dark);}

.auth-tabs{display:flex;border-bottom:1px solid var(--line);padding:0 22px;}
.auth-tabs .at{border:0;background:none;padding:13px 4px;margin-right:24px;font-size:14px;font-weight:700;color:var(--ink-3);font-family:inherit;border-bottom:2.5px solid transparent;}
.auth-tabs .at.on{color:var(--brand);border-bottom-color:var(--brand);}
.auth-form{display:flex;flex-direction:column;gap:13px;}
.af-field{display:flex;flex-direction:column;gap:6px;}
.af-field>label{font-size:12.5px;font-weight:700;color:var(--ink-2);}
.af-field>input{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:13.5px;font-family:inherit;outline:0;background:#fff;}
.af-field>input:focus,.af-inline input:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(244,81,30,.1);}
.af-inline{display:flex;gap:8px;}
.af-inline input{flex:1;min-width:0;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:13.5px;font-family:inherit;outline:0;}
.af-code{flex-shrink:0;border:1px solid var(--brand);background:#fff;color:var(--brand);border-radius:8px;padding:0 13px;font-size:13px;font-weight:700;font-family:inherit;white-space:nowrap;}
.af-code:hover:not(:disabled){background:var(--brand);color:#fff;}
.af-code:disabled{opacity:.5;cursor:not-allowed;}
.af-types{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.af-type{position:relative;display:flex;flex-direction:column;gap:2px;border:1.5px solid var(--line);border-radius:9px;padding:10px 10px 9px;cursor:pointer;background:#fff;}
.af-type input{position:absolute;opacity:0;pointer-events:none;}
.af-type .aft-name{font-size:13.5px;font-weight:700;color:var(--ink);display:flex;align-items:baseline;gap:4px;}
.af-type .aft-name b{font-size:12px;color:var(--brand);}
.af-type em{font-size:11px;color:var(--ink-3);font-style:normal;line-height:1.45;}
.af-type:has(input:checked),.af-type.on{border-color:var(--brand);background:#fff7f3;box-shadow:0 0 0 3px rgba(244,81,30,.08);}
.af-type:has(input:checked) .aft-name,.af-type.on .aft-name{color:var(--brand-dark);}
.af-aux{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.af-wx{border:1px dashed var(--line);background:#fafbfc;color:var(--ink-2);border-radius:8px;padding:8px 12px;font-size:12.5px;font-family:inherit;}
.af-wx:hover{border-color:#2aae67;color:#2aae67;}
.af-smshint{font-size:11.5px;color:#8a6100;background:#fff8e6;border-radius:6px;padding:5px 9px;line-height:1.5;}
.af-err{display:none;font-size:12.5px;color:#c0392b;background:#ffecec;border-radius:7px;padding:8px 11px;line-height:1.6;}
.af-err.on{display:block;}
.af-submit{width:100%;height:44px;}
.af-submit:disabled{opacity:.6;cursor:not-allowed;}
.af-note{margin:0;font-size:11.5px;color:var(--ink-3);line-height:1.7;}
.tip{font-size:11.5px;color:var(--ink-3);}

/* ================= 我的资料 ================= */
.me-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px;align-items:start;}
.me-card{background:#fff;border-radius:12px;box-shadow:var(--shadow);padding:22px 24px;}
.me-card h3{margin:0 0 12px;font-size:16px;color:var(--navy);}
.me-card p{margin:0 0 10px;font-size:13px;line-height:1.85;color:var(--ink-2);}
.me-hero{display:flex;align-items:center;gap:14px;padding-bottom:16px;border-bottom:1px solid var(--line);margin-bottom:14px;}
.me-avatar{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,var(--brand),#ff8a5c);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;flex-shrink:0;}
.me-name{display:block;font-size:18px;color:var(--navy);}
.me-type{display:inline-block;margin-top:4px;font-size:12px;font-weight:700;color:var(--brand);background:#fff2ec;border-radius:5px;padding:2px 9px;}
.me-rows{display:flex;flex-direction:column;}
.me-rows>div{display:flex;gap:14px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:13.5px;}
.me-rows>div:last-child{border-bottom:0;}
.me-rows span{width:74px;flex-shrink:0;color:var(--ink-3);}
.me-rows b{color:var(--ink);font-weight:600;word-break:break-all;}
.me-rows i{font-style:normal;font-size:11.5px;border-radius:4px;padding:1px 6px;margin-left:6px;}
.me-ok{background:#e8f7ee;color:#1e8a4c;}
.me-warn{background:#fff8e6;color:#8a6100;}
.me-acts{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px;}
.me-acts .btn-buy{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;}

/* ================= 移动端（底部固定导航 + 小屏适配） ================= */
.mobbar{display:none;}

@media(max-width:760px){
  /* 顶栏：手机端只保留搜索框（品牌行整行移除，见下） */
  /* ★ v1.61：移动端统一 42px（与原搜索框 42px 一致） */
  .topbar-inner{flex-wrap:wrap;gap:10px 12px;padding:9px 0;--ctl-h:42px;}
  .search{order:3;flex:1 1 100%;max-width:none;}
  /* ★ 2026-10-07：手机端把顶栏「品牌行」整行去掉 —— 该行 = logo + 介绍 + 中英文 + 账号 + 购物车，
     与底部导航完全重复。logo 已前移到顶部热线条最左（.hotline-brand），「介绍」已进底部导航，
     账号与购物车底部导航本来就有入口。**PC 端保持原样**（.brand 与 .topbar-right 照常显示）。 */
  .brand,.topbar-right{display:none;}
  .guest-tip{font-size:11.5px;line-height:1.6;}

  /* 分类导航：多行换行（v1.45，原「横向滚动」已废弃） */
  .catnav-inner{flex-wrap:wrap;gap:6px;padding:9px 14px;}
  .catnav a{padding:5px 11px;font-size:12.5px;}

  /* 主体留出底部导航高度 */
  body{padding-bottom:calc(62px + env(safe-area-inset-bottom));}
  .mobbar{
    /* ★ v1.53.6：minmax(0,1fr) 防止长文案（登录/注册）把轨道撑破、导致末项被挤出屏幕
       ★ 2026-10-07：4 → 5 列 —— 新增「介绍」（原在顶栏，顶栏品牌行已移除） */
    display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:120;
    background:rgba(255,255,255,.97);backdrop-filter:blur(8px);border-top:1px solid var(--line);
    padding-bottom:env(safe-area-inset-bottom);
  }
  .mb-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:7px 0 6px;color:var(--ink-3);font-size:10.5px;position:relative;min-width:0;overflow:hidden;}
  .mb-item.on{color:var(--brand);}
  .mb-ico{position:relative;width:23px;height:23px;}
  .mb-ico svg{width:100%;height:100%;display:block;}
  .mb-badge{position:absolute;top:-4px;right:-9px;background:var(--brand);color:#fff;font-size:9.5px;line-height:1;border-radius:8px;padding:2px 4.5px;font-weight:700;}
  .mb-txt{line-height:1;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

  /* 商品栅格：两列更贴合手机（★ v1.54 起列数由 --gc 控制，间距走 --gg；与 app.js listGridSize() 对应） */
  .grid{--gc:2;--gg:10px;}
  .card-body{padding:9px 10px 0;}
  .card-foot{padding:7px 10px 11px;}
  .card-name{font-size:13px;}

  /* 详情页 */
  .detail{gap:14px;}
  .page-head h2{font-size:19px;}
  /* ★ v1.57：排序条在小屏独占一行、靠左，避免与标题、件数挤在一行 */
  .sortbar{margin-left:0;width:100%;}
  /* ★ v1.53.7：加购行窄屏换行 —— 数量器保持完整；「加入购物车」与数量同排、
     「查看购物车」独占一行，按钮文字一律不折行 */
  .buybar{gap:10px;}
  .buybar .btn-buy{flex:1 1 auto;white-space:nowrap;padding:0 18px;}
  .buybar .btn-ghost{flex:1 1 100%;white-space:nowrap;}
  /* 选择款式标题：小屏让说明文字独立成行，避免挤在一行错行 */
  .sec-title{flex-wrap:wrap;}
  .sec-title .must{white-space:nowrap;}
  .sec-title .pick{flex:1 1 100%;}

  /* 弹窗全宽、表单更紧凑 */
  #modal-root .dialog{width:94vw;max-width:520px;max-height:88vh;}
  .dlg-head{padding:15px 16px;}
  .dlg-body{padding:16px;}
  .auth-tabs{padding:0 16px;}
  .af-types{grid-template-columns:minmax(0,1fr);gap:7px;}
  .af-type{flex-direction:row;align-items:baseline;gap:8px;padding:9px 11px;}
  .af-type em{display:none;}

  /* ★ 清单表格：手机端改为卡片式，单列纵向排布，彻底去掉左右滑动
     tr 用 grid 划分 商品信息/单价/数量/小计/删除 五个区，删除键固定在卡片右上角 */
  .cart-table{display:block;overflow:visible;white-space:normal;}
  .cart-table thead{display:none;}
  .cart-table tbody{display:block;}
  .cart-table tr.cat-row{display:block;margin:16px 0 10px;padding:8px 12px;
    background:#fafbfc;border:1px solid var(--line);border-radius:8px;}
  .cart-table tr.cat-row td{border:0;padding:0;}
  .cart-table tr.cat-row .cat-name{font-weight:700;font-size:14px;color:var(--ink);}
  .cart-table tr.cat-row .cat-n{margin-left:8px;color:var(--ink-3);font-size:12px;}
  .cart-table tr[data-vid]{
    display:grid;gap:8px 10px;align-items:center;
    grid-template-columns:1fr auto auto;
    grid-template-areas:"prod prod del" "price qty qty" "sub sub sub";
    background:#fff;border:1px solid var(--line);border-radius:12px;
    padding:12px;margin-bottom:12px;box-shadow:var(--shadow);
  }
  .cart-table tr[data-vid] td{border:0;padding:0;vertical-align:middle;min-width:0;}
  .cart-table tr[data-vid] td:nth-child(1){grid-area:prod;}
  .cart-table tr[data-vid] td:nth-child(2){grid-area:price;}
  .cart-table tr[data-vid] td:nth-child(3){grid-area:qty;justify-self:end;}
  .cart-table tr[data-vid] td:nth-child(4){grid-area:sub;text-align:right;color:var(--brand);font-weight:700;}
  .cart-table tr[data-vid] td:nth-child(4)::before{content:"小计 ";color:var(--ink-3);font-weight:400;}
  .cart-table tr[data-vid] td:nth-child(5){grid-area:del;justify-self:end;align-self:start;}
  .cart-table tr[data-vid] td:nth-child(2)::before{content:"单价 ";color:var(--ink-3);font-weight:400;}
  .cart-table tr[data-vid] .money{font-size:15px;}
  .cart-table tr[data-vid] .btn-del{border:1px solid var(--line);border-radius:6px;padding:4px 10px;color:var(--ink-3);font-size:12px;}
  .cart-table tr[data-vid] .btn-del:hover{color:var(--brand);border-color:var(--brand);}
  /* ★ v1.53.8：轨道改 minmax(0,1fr)（裸 1fr=minmax(auto,1fr) 会被长文案按钮撑破容器 → 横向溢出）；
     按钮一律 nowrap、收窄内边距与字号；超长时省略号兜底，杜绝文字折行跑出按钮 */
  .cart-foot{padding:16px 14px;flex-direction:column;align-items:stretch;gap:12px;}
  .cart-acts{display:grid;grid-template-columns:repeat(auto-fit,minmax(126px,1fr));gap:10px;min-width:0;width:100%;}
  .cart-acts .btn-xls2{grid-column:1 / -1;}
  .cart-acts .btn-submit{grid-column:1 / -1;}
  .cart-acts button{width:100%;min-width:0;white-space:nowrap;padding:0 10px;font-size:13px;overflow:hidden;text-overflow:ellipsis;}

  /* 我的资料：单列 */
  .me-grid{grid-template-columns:minmax(0,1fr);}
  .me-card{padding:18px 16px;}
  .me-rows>div{flex-direction:column;gap:2px;}
  .me-rows span{width:auto;}
  /* ★ v1.53.8：同 cart-acts，轨道 minmax(0,1fr) + 按钮不折行，防溢出 */
  .me-acts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0;width:100%;}
  .me-acts .btn-buy,.me-acts .btn-ghost{width:100%;min-width:0;white-space:nowrap;padding:0 10px;font-size:13px;overflow:hidden;text-overflow:ellipsis;}
  .acct-menu{right:-4px;min-width:196px;}

  /* 页脚：小屏进一步收紧 */
  .foot{padding:16px 0;margin-top:16px;}
  .foot-contact{gap:12px;padding-bottom:10px;margin-bottom:8px;}
  /* ★ v1.53.6：原来 .fc-left 是 flex:0 0 auto（禁止收缩）+ 标语不换行 → 宽 412px 撑破 360 屏，
     导致整页横向滚动、右侧内容（含登录入口）被挤出可视区。小屏改为可收缩 + 标语换行。 */
  .fc-left{flex:1 1 100%;min-width:0;}
  .fc-slogan{white-space:normal;}
  .fc-brand{font-size:14.5px;}
  .fc-web{margin-left:8px;}
  .fc-regions{display:grid;flex:1 1 100%;gap:4px 16px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));}
  .fc-item{font-size:11.5px;white-space:normal;}
  .foot-note{font-size:11.5px;line-height:1.8;}

  /* 触摸目标 ≥ 44px */
  .hotline-phone strong{font-size:17px;}
  .search-row input{padding:0 12px;font-size:15px;}
  .search-row button{padding:0 18px;}
}

/* 更小屏：分类条再收紧一档（v1.45），换行后尽量少占竖向空间 */
@media(max-width:430px){
  .catnav-inner{gap:5px;padding:8px 12px;}
  .catnav a{padding:4px 10px;font-size:11.5px;gap:4px;}
  .catnav a .jc-ico{width:15px;height:15px;}
  .catnav a .n{font-size:10.5px;margin-left:2px;}
}

@media(max-width:380px){
  .acct-name .an-text{max-width:64px;}
  .card-name{font-size:12.5px;}
}

/* ---------- 首页特色能力条（v1.53） ---------- */
.feat-sec{margin-top:26px;}
.feat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.feat-card{background:#fff;border-radius:12px;box-shadow:var(--shadow);padding:20px 22px;border-top:3px solid var(--brand);display:flex;flex-direction:column;gap:8px;transition:transform .16s,box-shadow .16s;}
.feat-card:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(11,42,74,.14);}
.feat-ico{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#fdece3,#ffe0cf);color:var(--brand);}
.feat-card b{font-size:16px;color:var(--navy);font-weight:800;}
.feat-card p{margin:0;font-size:13px;color:var(--ink-2);line-height:1.75;}
@media(max-width:1180px){.feat-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:620px){.feat-grid{grid-template-columns:1fr;}}

/* ---------- 购物车云端同步状态提示（v1.55） ---------- */
.sync-tip{display:flex;align-items:center;gap:8px;font-size:13px;line-height:1.6;border-radius:10px;padding:9px 14px;margin:0 0 12px;}
.sync-tip .st-ico{font-size:14px;line-height:1;}
.sync-tip.ok{background:#eef7f0;border:1px solid #cfe8d6;color:#2f6b41;}
.sync-tip.warn{background:#fff8ed;border:1px solid #f3ddb8;color:#8a5a12;}
.st-login{border:0;background:none;padding:0;margin-left:2px;font-size:13px;font-weight:800;color:var(--brand);text-decoration:underline;cursor:pointer;font-family:inherit;}
@media(max-width:760px){.sync-tip{font-size:12.5px;padding:9px 12px;}}

/* ---------- 购物车特色提示条 + 一键 AI 方案（v1.53） ---------- */
.cart-feats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 16px;}
.cf-item{display:flex;align-items:center;gap:12px;background:#fdf6f1;border:1px solid #f6ddcd;border-radius:10px;padding:12px 16px;}
.cf-ico{flex:0 0 40px;width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:#fff;color:var(--brand);box-shadow:0 1px 4px rgba(244,81,30,.14);}
.cf-tx{display:flex;flex-direction:column;gap:2px;}
.cf-tx b{font-size:14px;color:var(--brand-dark);font-weight:800;}
.cf-tx span{font-size:12.5px;color:var(--ink-2);}
@media(max-width:760px){.cart-feats{grid-template-columns:1fr;}}

.btn-aigen{border:0;border-radius:8px;height:44px;padding:0 22px;font-size:14.5px;font-weight:800;background:linear-gradient(135deg,#f4511e,#ff7a45);color:#fff;white-space:nowrap;box-shadow:0 4px 14px rgba(244,81,30,.28);}
.btn-aigen:hover:not(:disabled){background:linear-gradient(135deg,#e0430f,#f4663a);}
.btn-aigen:disabled{background:#dfe3e8;color:#a8afb8;cursor:not-allowed;box-shadow:none;}

/* AI 方案弹窗 */
.dlg-proposal{width:min(760px,94vw);}
.ai-loading{display:flex;flex-direction:column;align-items:center;gap:10px;padding:26px 10px;color:var(--ink-2);font-size:14px;text-align:center;}
.ai-loading-sub{font-size:12.5px;color:var(--ink-3);}
.spin{width:30px;height:30px;border-radius:50%;border:3px solid #f1d6c8;border-top-color:var(--brand);animation:spin .8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.ai-err{background:#ffecec;color:#c0392b;border-radius:10px;padding:14px 16px;font-size:13.5px;line-height:1.7;}
.proposal{font-size:14px;color:var(--ink);line-height:1.85;}
.proposal h1{font-size:20px;color:var(--navy);border-bottom:2px solid var(--brand);padding-bottom:8px;margin:0 0 14px;}
.proposal h2{font-size:17px;color:var(--navy);margin:22px 0 8px;}
.proposal h3{font-size:15px;margin:16px 0 6px;}
.proposal h4{font-size:14px;margin:12px 0 4px;}
.proposal p{margin:8px 0;}
.proposal ul,.proposal ol{margin:8px 0;padding-left:22px;}
.proposal li{margin:4px 0;}
.proposal blockquote{margin:10px 0;padding:8px 14px;border-left:4px solid var(--brand);background:#fdf3ee;color:#5a4636;border-radius:0 8px 8px 0;}
.proposal hr{border:0;border-top:1px solid var(--line);margin:18px 0;}
.proposal strong{color:var(--navy);}
.proposal code{background:#f2f3f5;border-radius:4px;padding:1px 5px;font-size:.9em;}
.ai-meta{margin-top:16px;font-size:12px;color:var(--ink-3);}

/* ===== 邮箱验证 / 重置密码（v1.60 密码登录配套） ===== */
.verify-sent{text-align:center;padding:10px 4px 4px;}
.vs-ico{font-size:42px;line-height:1;margin-bottom:8px;}
.vs-title{font-size:14px;color:var(--ink-3);margin:6px 0 2px;}
.vs-email{font-size:16px;font-weight:800;color:var(--navy);margin:0 0 10px;word-break:break-all;}
.vs-tip{font-size:13px;color:var(--ink-3);line-height:1.6;margin:0 0 14px;}
.link-btn{background:none;border:none;color:var(--brand);font-weight:700;font-size:12.5px;cursor:pointer;padding:0 2px;text-decoration:underline;font-family:inherit;}
.link-btn:disabled{opacity:.6;cursor:default;}
.verify-box{max-width:460px;margin:26px auto;}
.verify-box .auth-form{gap:13px;}
.vb-loading{font-size:14px;color:var(--ink-3);padding:30px 0;text-align:center;}
.vb-ok{padding:18px 10px;text-align:center;}
.vb-ok .vb-ico{width:64px;height:64px;border-radius:50%;background:#e6f7ee;color:#0f9d58;font-size:34px;line-height:64px;margin:0 auto 14px;}
.vb-ok h3{font-size:19px;margin:0 0 8px;color:var(--navy);}
.vb-ok p{font-size:13.5px;color:var(--ink-3);line-height:1.6;margin:0 auto 6px;max-width:340px;}
.vb-ok .btn-buy{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;}
.vb-err{max-width:420px;margin:0 auto;background:#fff4f4;border:1px solid #f3c9c9;color:#c0392b;border-radius:10px;padding:18px 16px;font-size:13.5px;line-height:1.6;text-align:center;}
.vb-err + .btn-buy{display:block;max-width:200px;margin-left:auto;margin-right:auto;text-align:center;text-decoration:none;}

/* ================= ★ v1.65 微信小程序 web-view 适配 =================
   类名 html.is-mp 由 index.html <head> 里的脚本按 UA 注入（UA 含 miniProgram 时添加，
   且在 CSS 之前执行，避免「先显示再隐藏」的闪动）。普通浏览器不带该类名，以下规则全部不生效。
   背景：web-view 内只有「本域名 + 已配业务域名」的 URL 能打开——
   站外链（英文站 popscicat.com、工信部 beian.miit.gov.cn）点了必然白屏，必须去掉可点性。
   配套：电话 tel: 在 iOS web-view 内无效 → 由 app.js 的 mpTelInit() 统一拦截为「点击复制号码」。 */

/* ① 站外链：整块隐藏（顶栏中英文切换块 —— 里面的 EN 指向 popscicat.com） */
html.is-mp .mp-hide{display:none !important;}
/* ② 站外链：保留文字、去掉可点性（页脚备案号 —— 法规要求必须展示备案号，故不隐藏）
      顺手去掉虚线下划线，避免看起来仍可点 */
html.is-mp .mp-nolink{pointer-events:none;cursor:default;border-bottom-color:transparent;}
/* ③ 小程序内专属/替换文案：默认不显示，仅在 is-mp 下出现（如「· 点击复制」） */
.mp-only{display:none;}
html.is-mp .mp-only{display:inline;}

/* ④ 底部安全区连带修复：iPhone 全面屏的 Home 指示条会让底部固定导航变高
      （.mobbar 自身已有 env(safe-area-inset-bottom) 内边距，加安全区后实际高 ≈84px），
      而 .toast 原本固定 bottom:40/52px 且 z-index 低于 .mobbar ——
      结果 iPhone 上提示条被底部导航整条盖住（安卓因无安全区不明显）。
      这里把提示条整体上移到导航栏之上：50px(导航) + 10px(间距) + 安全区。 */
@media(max-width:760px){
  .toast{bottom:calc(72px + env(safe-area-inset-bottom));}
  .toast.on{bottom:calc(84px + env(safe-area-inset-bottom));}
}
