/* ============================================================
   信达安 XinDaAn 检测试剂商城 — 本地版样式
   专业科研 / 实验室风格
   ============================================================ */
:root{
  --blue:#0e4a7b;
  --blue-2:#14578f;
  --blue-3:#1d6cb0;
  --teal:#0f9d8f;
  --teal-2:#0c8378;
  --bg:#f4f7fb;
  --card:#ffffff;
  --line:#e4ebf3;
  --text:#1f2d3d;
  --text-2:#5b6b7c;
  --text-3:#8a98a8;
  --orange:#e8731a;
  --red:#d64541;
  --green:#2f9e63;
  --shadow:0 2px 10px rgba(16,48,84,.06);
  --shadow-2:0 8px 28px rgba(16,48,84,.12);
  --radius:10px;
  --radius-s:6px;
  /* 全站 z-index 层级约定（最大→最小）
       toast(99999) > 图片查看器(9999) > 滑块验证(9000) > 普通弹窗(1000) > 协议(2000) > 浮动(210) > 头部(100)
     任何新弹层都不要超过 var(--z-toast)，否则错误/成功提示会被挡在下面。 */
  --z-toast:99999;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;color:var(--text);background:var(--bg);font-size:14px;line-height:1.6}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
img{max-width:100%;display:block}
button{cursor:pointer;font-family:inherit}
input,select,textarea{font-family:inherit;font-size:14px}
.container{max-width:1240px;margin:0 auto;padding:0 20px}

/* ---------- 顶部公告条 ---------- */
.topbar{background:linear-gradient(90deg,#0a3a63,#14578f 55%,#0f9d8f);color:#eaf3fb;font-size:12.5px}
.topbar .container{display:flex;justify-content:space-between;align-items:center;height:34px}
.topbar a{color:#cfe6f7}
.topbar a:hover{color:#fff}
.topbar .right{display:flex;gap:18px}
.topbar .right .sep{color:rgba(255,255,255,.35)}

/* ---------- 头部 ---------- */
.header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:100}
.header .h-main{display:flex;align-items:center;gap:30px;padding:16px 0}
.logo{display:flex;align-items:center;gap:12px;flex-shrink:0}
.logo .logo-mark{width:46px;height:46px;border-radius:12px;background:linear-gradient(135deg,var(--blue),var(--teal));color:#fff;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;box-shadow:0 4px 12px rgba(14,74,123,.25)}
.logo .logo-text .cn{font-size:24px;font-weight:800;letter-spacing:4px;color:var(--blue)}
.logo .logo-text .en{font-size:11px;color:var(--text-3);letter-spacing:2px}
.logo .slogan{margin-left:4px;font-size:12px;color:var(--text-2);border-left:1px solid var(--line);padding-left:14px;line-height:1.4}
.search-area{flex:1;display:flex;flex-direction:column;gap:6px}
.search-box{display:flex;align-items:stretch;border:2px solid var(--blue-2);border-radius:8px;overflow:hidden;background:#fff}
.search-box input{flex:1;border:0;outline:0;padding:10px 14px;font-size:14px}
.search-box .mode{display:flex;align-items:center;padding:0 10px;color:var(--text-2);font-size:12px;border-right:1px solid var(--line);background:#f7fafd;gap:6px}
.search-box .mode select{border:0;background:transparent;outline:0;color:var(--blue);font-weight:600;cursor:pointer}
.search-box .btn{background:linear-gradient(90deg,var(--blue-2),var(--blue-3));color:#fff;border:0;padding:0 22px;font-size:15px;font-weight:600}
.search-box .btn:hover{filter:brightness(1.08)}
.hot-keys{font-size:12px;color:var(--text-3)}
.hot-keys a{color:var(--blue-3);margin-right:12px}
.hot-keys a:hover{color:var(--teal)}
.h-tools{display:flex;align-items:center;gap:14px;flex-shrink:0}
.h-tools .tool{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:12px;color:var(--text-2);position:relative}
.h-tools .tool:hover{color:var(--blue)}
.h-tools .tool .icon{font-size:22px;line-height:1}
.h-tools .tool .badge{position:absolute;top:-6px;right:-10px;background:var(--red);color:#fff;font-size:11px;min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 5px}
.cart-box{position:relative}
.cart-box .cart-tip{position:absolute;right:0;top:calc(100% + 8px);width:300px;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-2);border:1px solid var(--line);padding:12px;display:none;z-index:60}
.cart-box:hover .cart-tip{display:block}
.cart-tip .t-list{max-height:230px;overflow:auto}
.cart-tip .t-item{display:flex;gap:10px;padding:8px 0;border-bottom:1px dashed var(--line)}
.cart-tip .t-item img,.cart-tip .t-item .ph{width:44px;height:44px;border-radius:6px;object-fit:cover;flex-shrink:0}
.cart-tip .t-name{font-size:12px;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cart-tip .t-price{color:var(--red);font-weight:700;font-size:12px;white-space:nowrap}
.cart-tip .t-empty{text-align:center;color:var(--text-3);padding:18px 0}
.cart-tip .t-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px}
.cart-tip .t-foot .total{font-size:13px;color:var(--text-2)}
.cart-tip .t-foot .total b{color:var(--red);font-size:16px}

/* ---------- 主导航 ---------- */
.nav{background:var(--blue);color:#fff}
.nav .container{display:flex;height:44px;position:relative}
.nav .all-cat{width:200px;background:var(--blue-2);display:flex;align-items:center;justify-content:center;gap:8px;font-weight:600;font-size:15px;cursor:pointer;position:relative}
.nav .all-cat:hover{background:#0a3a63}
.nav .cat-menu{position:absolute;left:0;top:100%;width:200px;background:#fff;box-shadow:var(--shadow-2);border:1px solid var(--line);display:none;z-index:80}
.nav .all-cat:hover .cat-menu,.nav .all-cat.open .cat-menu{display:block}
.cat-menu a{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;color:var(--text);font-size:14px;border-bottom:1px solid #f0f4f8}
.cat-menu a:hover{background:#eef5fb;color:var(--blue);padding-left:20px}
.cat-menu a .arr{color:var(--text-3)}
.nav .nav-list{display:flex;align-items:center;gap:2px;overflow-x:auto}
.nav .nav-list a{padding:0 20px;height:44px;display:flex;align-items:center;font-size:14.5px;color:#dcebf8;white-space:nowrap;border-bottom:2px solid transparent}
.nav .nav-list a:hover,.nav .nav-list a.active{color:#fff;background:rgba(255,255,255,.08);border-bottom-color:var(--teal)}

/* ---------- 轮播 ---------- */
.hero-wrap{display:flex;gap:14px;margin:16px 0;align-items:stretch}
.hero{position:relative;flex:1;min-width:0}
.hero .slide{display:none;border-radius:var(--radius);overflow:hidden;position:relative;height:340px}
.hero .slide.active{display:block;animation:fadeIn .5s}
.hero .slide img{width:100%;height:100%;object-fit:cover}
.hero .slide .cap{position:absolute;left:0;bottom:0;right:0;padding:40px 34px 24px;background:linear-gradient(transparent,rgba(10,42,68,.82));color:#fff}
.hero .slide .cap .tag{display:inline-block;background:var(--teal);color:#fff;font-size:12px;padding:3px 10px;border-radius:4px;margin-bottom:8px}
.hero .slide .cap h2{font-size:26px;margin-bottom:4px;letter-spacing:1px}
.hero .slide .cap p{font-size:14px;opacity:.9}
.hero .dots{position:absolute;bottom:16px;right:24px;display:flex;gap:8px}
.hero .dots i{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.5);cursor:pointer}
.hero .dots i.on{background:#fff;width:24px;border-radius:5px}
/* 首屏左侧商品分类 */
.hero-cats{width:220px;flex-shrink:0;height:340px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}
.hero-cats .hc-head{background:linear-gradient(135deg,var(--blue),var(--blue-3));color:#fff;font-size:14px;font-weight:600;letter-spacing:1px;padding:12px 16px}
.hero-cats ul{flex:1;display:flex;flex-direction:column;overflow:auto}
.hero-cats li{flex:1 1 0;min-height:28px;border-top:1px solid var(--line)}
.hero-cats li a{display:flex;align-items:center;gap:10px;height:100%;padding:0 14px;font-size:16px;color:var(--text-2);transition:.15s}
.hero-cats li a:hover{background:#f3f9ff;color:var(--blue)}
.hero-cats .hc-ic{font-size:16px;flex-shrink:0}
.hero-cats .hc-img{width:20px;height:20px;object-fit:contain;flex-shrink:0}
.hero-cats .hc-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hero-cats .arr{color:var(--text-3);flex-shrink:0}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

/* ---------- 通用区块标题 ---------- */
.sec{margin:30px 0}
.sec-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px}
.sec-head .t{display:flex;align-items:center;gap:10px}
.sec-head .t .bar{width:5px;height:22px;background:linear-gradient(var(--blue),var(--teal));border-radius:3px}
.sec-head .t h2{font-size:20px;color:var(--blue);letter-spacing:1px}
.sec-head .t span{font-size:12px;color:var(--text-3)}
.sec-head .more{font-size:13px;color:var(--blue-3)}
.sec-head .more:hover{color:var(--teal)}

/* ---------- 首页分类矩阵 ---------- */
.cat-matrix{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.cat-cell{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;display:flex;gap:14px;align-items:center;transition:.2s;cursor:pointer}
.cat-cell:hover{transform:translateY(-3px);box-shadow:var(--shadow-2);border-color:#cfe0ef}
.cat-cell .ic{width:52px;height:52px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:26px;flex-shrink:0;color:#fff}
.cat-cell .ic .ic-img{width:32px;height:32px;object-fit:contain;display:block}
.cat-cell .info h3{font-size:16px;margin-bottom:2px}
.cat-cell .info p{font-size:12px;color:var(--text-3)}
.cat-cell .info .n{font-size:11px;color:var(--teal);margin-top:4px;display:inline-block;background:#e6f6f4;border-radius:10px;padding:1px 8px}

/* ---------- 商品卡片 ---------- */
.prod-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.prod-grid.col4{grid-template-columns:repeat(4,1fr)}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:.2s;display:flex;flex-direction:column;position:relative}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-2);border-color:#cfe0ef}
.card .ph-wrap{position:relative;background:#fff;padding:12px;display:flex;align-items:center;justify-content:center;height:170px;overflow:hidden}
.card .ph-wrap img{width:100%;height:100%;object-fit:contain;transition:.3s}
.card:hover .ph-wrap img{transform:scale(1.05)}
.card .ph-wrap .ph{width:100%;height:100%;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#fff}
.card .ph-wrap .ph .big{font-size:34px;line-height:1}
.card .ph-wrap .ph .sub{font-size:11px;opacity:.9}
.card .tag{position:absolute;top:10px;left:10px;z-index:3}
.card .tag b{font-size:11px;font-weight:600;padding:2px 8px;border-radius:4px;color:#fff;margin-right:4px}
.card .tag .hot{background:var(--orange)}
.card .tag .new{background:var(--green)}
.card .tag .freeze{background:var(--blue-3)}
.card .c-body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px;flex:1}
.card .c-name{font-size:14px;font-weight:600;color:var(--text);height:42px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card .c-name:hover{color:var(--blue-3)}
.card .c-code{font-size:12px;color:var(--text-3)}
.card .c-code b{color:var(--blue-3);font-weight:600}
.card .c-spec{font-size:12px;color:var(--text-2)}
.card .c-meta{display:flex;gap:6px;flex-wrap:wrap}
.card .c-meta span{font-size:11px;padding:1px 7px;border-radius:4px;background:#eef5fb;color:var(--blue-3)}
.card .c-meta .cold{background:#e7f6f3;color:var(--teal-2)}
.card .c-meta .stock{background:#e8f7ee;color:var(--green)}
.card .c-foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto}
.card .price{color:var(--red);font-size:18px;font-weight:800}
.card .price small{font-size:12px}
.card .price .free-tag{display:inline-block;background:linear-gradient(90deg,#12b76a,#34d17a);color:#fff;font-size:13px;font-weight:700;padding:2px 10px;border-radius:6px;letter-spacing:1px}
.card .add{background:linear-gradient(90deg,var(--blue-2),var(--blue-3));color:#fff;border:0;border-radius:6px;padding:7px 14px;font-size:13px}
.card .add:hover{filter:brightness(1.1)}
.card .ask{background:#f0f4f8;color:var(--blue-3);border:1px solid #d7e3ef;border-radius:6px;padding:7px 14px;font-size:13px}
.card .ask:hover{background:#e4eef8}
/* 库存为 0：加入购物车/立即购买按钮置灰且不可点击 */
.card .add:disabled,.gtable .add:disabled,.d-btns button:disabled{background:#e3e8ee;color:#9aa7b4;cursor:not-allowed;filter:none;box-shadow:none}
.card .add:disabled:hover,.gtable .add:disabled:hover,.d-btns button:disabled:hover{filter:none}

/* 产品线 Tab（首页） */
.line-tabs{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}
.line-tabs button{border:1px solid var(--line);background:#fff;color:var(--text-2);padding:8px 18px;border-radius:20px;font-size:13.5px}
.line-tabs button.on{background:var(--blue);color:#fff;border-color:var(--blue)}

/* ---------- 服务/信任区 ---------- */
.service-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:26px 0}
.service-bar .item{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;display:flex;gap:12px;align-items:center}
.service-bar .item .ic{width:44px;height:44px;border-radius:10px;background:linear-gradient(135deg,var(--blue),var(--teal));color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px}
.service-bar .item b{font-size:15px;display:block}
.service-bar .item p{font-size:12px;color:var(--text-3)}
.trust-band{background:linear-gradient(90deg,#0a3a63,#14578f 60%,#0f9d8f);color:#fff;border-radius:var(--radius);padding:26px 30px;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin:26px 0}
.trust-band .t-cell b{font-size:28px;font-weight:800;display:block;letter-spacing:1px}
.trust-band .t-cell span{font-size:13px;opacity:.85}

/* ---------- 促销卡片 ---------- */
.promo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.promo-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:.2s;cursor:pointer}
.promo-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-2)}
.promo-card .p-img{height:150px;position:relative}
.promo-card .p-img img{width:100%;height:100%;object-fit:cover}
.promo-card .p-img .ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:40px;color:#fff}
.promo-card .p-body{padding:14px}
.promo-card .p-body .p-tag{font-size:11px;color:var(--teal-2);background:#e6f6f4;padding:2px 8px;border-radius:4px}
.promo-card .p-body h4{font-size:15px;margin:8px 0 4px}
.promo-card .p-body p{font-size:12.5px;color:var(--text-3);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ---------- 新闻/技术 ---------- */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.news-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px;transition:.2s;cursor:pointer}
.news-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-2)}
.news-card .n-tag{font-size:11px;color:var(--blue-3);background:#eef5fb;padding:2px 8px;border-radius:4px}
.news-card h4{font-size:15px;margin:8px 0 6px;line-height:1.5}
.news-card p{font-size:12.5px;color:var(--text-3);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.news-card .n-date{font-size:12px;color:var(--text-3);margin-top:8px}

/* ---------- 页脚 ---------- */
.footer{background:#0b2c4a;color:#b7c9da;margin-top:40px}
.footer .f-main{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1.4fr;gap:26px;padding:36px 0 26px}
.footer h5{color:#fff;font-size:15px;margin-bottom:14px}
.footer ul li{margin-bottom:8px;font-size:13px}
.footer ul a:hover{color:#fff}
.footer .f-logo{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.footer .f-logo .mark{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,#2a6bab,#0f9d8f);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}
.footer .f-logo b{color:#fff;font-size:19px;letter-spacing:3px}
.footer .f-desc{font-size:13px;line-height:1.8}
.footer .f-contact li{display:flex;gap:8px;align-items:center}
.footer .f-contact .ic{color:var(--teal)}
.footer .f-qr{width:110px;height:110px;background:#fff;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#0b2c4a;font-size:12px;text-align:center;margin-bottom:8px;overflow:hidden}
/* 公众号二维码是实拍图片，等比铺满 110x110 的白底方块 */
.footer .f-qr img{width:100%;height:100%;object-fit:contain;display:block}
.footer .copyright{border-top:1px solid rgba(255,255,255,.12);padding:16px 0;text-align:center;font-size:12.5px;color:#8fa6bc}

/* ---------- 产品列表页 ---------- */
.page-wrap{display:flex;gap:18px;margin:18px 0;align-items:flex-start}
.sidebar{width:220px;flex-shrink:0;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px;position:sticky;top:110px}
.sidebar h3{font-size:15px;color:var(--blue);padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:10px;display:flex;align-items:center;gap:8px}
.sidebar .s-item{display:block;padding:9px 10px;border-radius:6px;color:var(--text);font-size:13.5px;margin-bottom:2px}
.sidebar .s-item:hover{background:#eef5fb;color:var(--blue)}
.sidebar .s-item.on{background:var(--blue);color:#fff}
.sidebar .s-sub{padding-left:20px;font-size:12.5px;color:var(--text-2)}
.filter-group{margin-top:14px}
.filter-group .f-title{font-size:13px;font-weight:600;color:var(--text);margin-bottom:8px}
.filter-group label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-2);margin-bottom:6px;cursor:pointer}
.filter-group input[type=checkbox],.filter-group input[type=radio]{accent-color:var(--blue)}
.main-col{flex:1;min-width:0}
/* 三级分类筛选行：显示在商品列表查询项（排序/视图切换）的上方 */
.third-bar{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.third-bar .t-item{border:1px solid var(--line);background:#fff;border-radius:16px;padding:5px 14px;font-size:12.5px;color:var(--text-2);line-height:1.6}
.third-bar .t-item:hover{border-color:var(--blue-3);color:var(--blue-3);background:#f4f9fd}
.third-bar .t-item.on{background:var(--blue);color:#fff;border-color:var(--blue)}
.list-toolbar{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.list-toolbar .crumb{font-size:13px;color:var(--text-3)}
.list-toolbar .crumb b{color:var(--blue-3);font-weight:600}
.toolbar-right{display:flex;align-items:center;gap:10px}
.sort-tabs{display:flex;gap:6px}
.sort-tabs button{border:1px solid var(--line);background:#fff;border-radius:6px;padding:5px 12px;font-size:12.5px;color:var(--text-2)}
.sort-tabs button.on{background:var(--blue);color:#fff;border-color:var(--blue)}
.view-toggle{display:flex;gap:4px}
.view-toggle button{border:1px solid var(--line);background:#fff;border-radius:6px;padding:5px 10px;font-size:13px;color:var(--text-2)}
.view-toggle button.on{color:var(--blue);border-color:var(--blue-3)}
.result-info{font-size:12.5px;color:var(--text-3);margin-bottom:12px}

/* 列表视图 */
.prod-list{display:flex;flex-direction:column;gap:12px}
.card.list{flex-direction:row;gap:0;align-items:stretch}
.card.list .ph-wrap{width:150px;height:150px;flex-shrink:0;padding:14px}
.card.list .c-body{flex:1;padding:14px 16px}
.card.list .c-name{height:auto;margin-bottom:6px}
.card.list .c-feats{font-size:12px;color:var(--text-3);display:flex;gap:14px;flex-wrap:wrap;margin:4px 0}
.card.list .c-feats span{display:flex;align-items:center;gap:4px}
.card.list .c-feats i{color:var(--teal);font-style:normal}

/* 表格式商品列表（免费试用等） */
.gtable-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:auto}
.gtable{width:100%;min-width:620px;border-collapse:collapse}
.gtable th{background:#f4f8fc;color:var(--text-2);font-size:13px;font-weight:600;text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
.gtable td{padding:12px 14px;border-bottom:1px solid var(--line);font-size:13.5px;color:var(--text);vertical-align:middle}
.gtable tbody tr:last-child td{border-bottom:0}
.gtable tbody tr:hover{background:#f7fbfe}
.gtable .col-code{color:var(--text-3);white-space:nowrap}
.gtable .col-spec,.gtable .col-pack{color:var(--text-2)}
.gtable .col-name a{color:var(--blue-3);font-weight:600}
.gtable .col-name a:hover{color:var(--teal-2);text-decoration:underline}
.gtable .col-act{text-align:right;white-space:nowrap}
.gtable .add{background:linear-gradient(90deg,var(--blue-2),var(--blue-3));color:#fff;border:0;border-radius:6px;padding:7px 14px;font-size:13px}
.gtable .add:hover{filter:brightness(1.1)}

/* 分页 */
.pager{display:flex;justify-content:center;align-items:center;gap:6px;margin:22px 0}
.pager button{border:1px solid var(--line);background:#fff;border-radius:6px;min-width:34px;height:34px;font-size:13px}
.pager button.on{background:var(--blue);color:#fff;border-color:var(--blue)}
.pager button:disabled{opacity:.5;cursor:not-allowed}

/* ---------- 产品详情页 ---------- */
.detail-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px;margin-top:18px}
.d-bread{font-size:13px;color:var(--text-3);margin-bottom:18px}
.d-bread a:hover{color:var(--blue-3)}
.d-main{display:flex;gap:30px}
.d-gallery{width:380px;flex-shrink:0}
/* 图片+视频一体式画廊：主视窗 + 缩略图切换 */
.d-gallery .g-main{position:relative;border:1px solid var(--line);border-radius:var(--radius);background:#fff;height:360px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.d-gallery .g-item{display:none;width:100%;height:100%;align-items:center;justify-content:center;padding:16px}
.d-gallery .g-item.on{display:flex}
.d-gallery .g-item img{max-width:100%;max-height:100%;object-fit:contain}
.d-gallery .g-item video{width:100%;height:100%;object-fit:contain;background:#000;border-radius:8px}
.d-gallery .g-item .ph{width:100%;height:100%;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#fff}
.d-gallery .g-item .ph .big{font-size:60px}
.d-gallery .g-thumbs{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.d-gallery .g-thumb{width:64px;height:64px;padding:0;border:1px solid var(--line);border-radius:6px;background:#fff;overflow:hidden;display:flex;align-items:center;justify-content:center;cursor:pointer}
.d-gallery .g-thumb:hover{border-color:#cfe0ef}
.d-gallery .g-thumb.on{border-color:var(--blue);box-shadow:0 0 0 2px rgba(20,87,143,.18)}
.d-gallery .g-thumb img{max-width:100%;max-height:100%;object-fit:contain}
.d-gallery .g-thumb-video{flex-direction:column;gap:1px;background:#1b2733;color:#fff;font-size:11px;line-height:1.2}
.d-gallery .g-thumb-video .play{font-size:16px}
/* 点击查看大图：鼠标移上去才显示右下角提示，触屏直接点图片即可 */
.d-gallery .g-item{position:relative}
img[data-xv]{cursor:zoom-in}
.d-gallery .zoom-hint{position:absolute;right:10px;bottom:10px;padding:4px 10px;border-radius:14px;background:rgba(12,20,30,.62);color:#fff;font-size:12px;opacity:0;transition:opacity .18s;pointer-events:none}
.d-gallery .g-item:hover .zoom-hint{opacity:1}
.d-info{flex:1;min-width:0}
.d-info h1{font-size:22px;line-height:1.5;margin-bottom:10px}
.d-tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.d-tags b{font-weight:600;font-size:12px;padding:3px 10px;border-radius:4px}
.d-param{border:1px solid var(--line);border-radius:var(--radius);margin:14px 0;overflow:hidden}
.d-param .row{display:flex;border-bottom:1px solid var(--line)}
.d-param .row:last-child{border-bottom:0}
.d-param .k{width:150px;background:#f7fafd;padding:11px 16px;color:var(--text-2);font-size:13.5px;flex-shrink:0}
.d-param .v{padding:11px 16px;font-size:13.5px}
.d-param .v b{color:var(--blue-3)}
.d-price-row{display:flex;align-items:center;gap:16px;background:#fbf4ee;border-radius:var(--radius);padding:14px 18px;margin:14px 0}
.d-price-row .price{font-size:30px;font-weight:800;color:var(--red)}
.d-price-row .price small{font-size:14px}
.d-price-row .tips{font-size:12px;color:var(--text-2)}
.d-qty{display:flex;align-items:center;gap:10px;margin:16px 0}
.d-qty .label{font-size:14px;color:var(--text-2)}
.qty-ctrl{display:flex;align-items:center;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.qty-ctrl button{width:34px;height:34px;border:0;background:#f7fafd;font-size:16px}
.qty-ctrl input{width:56px;height:34px;border:0;border-left:1px solid var(--line);border-right:1px solid var(--line);text-align:center;outline:0}
.d-btns{display:flex;gap:12px;margin:8px 0}
.d-btns .btn-primary{background:linear-gradient(90deg,var(--orange),#ef8f33);color:#fff;border:0;border-radius:8px;padding:13px 30px;font-size:16px;font-weight:600;box-shadow:0 4px 12px rgba(232,115,26,.3)}
.d-btns .btn-primary:hover{filter:brightness(1.05)}
.d-btns .btn-cart{background:linear-gradient(90deg,var(--blue-2),var(--blue-3));color:#fff;border:0;border-radius:8px;padding:13px 30px;font-size:16px;font-weight:600}
.d-btns .btn-cart:hover{filter:brightness(1.08)}
.d-btns .btn-fav{background:#fff;border:1px solid var(--line);border-radius:8px;padding:0 16px;font-size:14px;color:var(--text-2)}
.d-btns .btn-fav.on{color:var(--red);border-color:#f0c4c2}
.d-actions{display:flex;gap:16px;margin-top:8px;font-size:13px;color:var(--text-2)}
.d-actions a{display:flex;align-items:center;gap:5px}
.d-actions a:hover{color:var(--blue-3)}
.d-tabs{margin-top:26px}
.d-tabs .tab-nav{display:flex;gap:2px;border-bottom:2px solid var(--line)}
.d-tabs .tab-nav button{border:0;background:none;padding:11px 22px;font-size:15px;color:var(--text-2);border-bottom:2px solid transparent;margin-bottom:-2px}
.d-tabs .tab-nav button.on{color:var(--blue);font-weight:600;border-bottom-color:var(--blue)}
.d-tabs .tab-pane{display:none;padding:20px 4px}
.d-tabs .tab-pane.on{display:block}
.feats-list li{display:flex;gap:8px;margin-bottom:8px;font-size:14px}
.feats-list li i{color:var(--teal);font-style:normal}
.spec-table{width:100%;border-collapse:collapse}
.spec-table th,.spec-table td{border:1px solid var(--line);padding:10px 14px;font-size:13.5px;text-align:left}
.spec-table th{background:#f7fafd;color:var(--text-2);width:180px}

/* ---------- 商品详情：富文本 / 使用说明 ---------- */
.rich-text{font-size:14px;line-height:2;color:#4a5a6a}
.rich-text img{max-width:100%;height:auto}
.usage-text{font-size:14px;line-height:2;color:#4a5a6a;white-space:pre-wrap}
.tab-empty{color:var(--text-3);font-size:14px;padding:6px 0}

/* ---------- 关联商品 ---------- */
.ref-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.ref-card{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;transition:.2s}
.ref-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-2);border-color:#cfe0ef}
.ref-card .rc-name{font-size:14px;font-weight:600;color:var(--text);line-height:1.5;min-height:42px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ref-card .rc-spec{font-size:12px;color:var(--text-3);margin-top:6px}
.ref-card .rc-price{color:var(--red);font-size:18px;font-weight:800;margin-top:10px}
.ref-card .rc-price small{font-size:12px}

/* ---------- 商品详情：产品文件（sku.files，与移动端同一套展示） ---------- */
.file-list{display:flex;flex-direction:column;gap:10px}
.file-item{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px 16px;transition:.2s}
.file-item:hover{border-color:var(--blue);box-shadow:var(--shadow-2)}
.file-item .fi-icon{font-size:22px;line-height:1;flex-shrink:0}
.file-item .fi-main{flex:1;min-width:0}
.file-item .fi-name{display:block;font-size:14px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-item .fi-type{display:block;font-size:12px;color:var(--text-3);margin-top:4px}
.file-item .fi-dl{flex-shrink:0;font-size:14px;color:var(--blue)}

/* ---------- 购物车 ---------- */
.cart-table{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-top:18px}
.cart-table table{width:100%;border-collapse:collapse}
.cart-table th{background:#f7fafd;color:var(--text-2);font-weight:600;padding:13px 12px;font-size:13px;text-align:left}
.cart-table td{padding:14px 12px;border-top:1px solid var(--line);vertical-align:middle;font-size:13.5px}
.cart-table .p-cell{display:flex;gap:12px;align-items:center}
.cart-table .p-cell img,.cart-table .p-cell .ph{width:56px;height:56px;border-radius:6px;object-fit:contain;flex-shrink:0}
.cart-table .p-cell .ph{display:flex;align-items:center;justify-content:center;color:#fff;font-size:22px}
.cart-table .p-cell .p-name{font-weight:600;line-height:1.4}
.cart-table .p-cell .p-code{font-size:12px;color:var(--text-3)}
.cart-table .del{color:var(--text-3);font-size:13px}
.cart-table .del:hover{color:var(--red)}
.cart-summary{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin:14px 0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px}
.cart-summary .sel-info{font-size:13px;color:var(--text-2)}
.cart-summary .total-box{display:flex;align-items:center;gap:16px}
.cart-summary .total-box .t{font-size:14px;color:var(--text-2)}
.cart-summary .total-box .amount{font-size:26px;font-weight:800;color:var(--red)}
.cart-summary .go-checkout{background:linear-gradient(90deg,var(--orange),#ef8f33);color:#fff;border:0;border-radius:8px;padding:12px 34px;font-size:15px;font-weight:600}
.empty-box{text-align:center;padding:60px 20px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);margin-top:18px}
.empty-box .ic{font-size:56px;margin-bottom:12px}
.empty-box p{color:var(--text-3);margin-bottom:16px}
.empty-box .btn-primary{background:var(--blue);color:#fff;border:0;border-radius:6px;padding:10px 26px}

/* ---------- 结算 ---------- */
.checkout-wrap{display:flex;gap:18px;align-items:flex-start;margin-top:18px}
.co-main{flex:1;min-width:0}
.co-panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:14px}
.co-panel h3{font-size:16px;color:var(--blue);margin-bottom:14px;display:flex;align-items:center;gap:8px}
.addr-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.addr-card{border:1px solid var(--line);border-radius:8px;padding:14px;cursor:pointer;position:relative}
.addr-card:hover{border-color:#cfe0ef}
.addr-card.on{border-color:var(--blue);background:#f4f9ff}
.addr-card .name{font-weight:600;margin-bottom:4px}
.addr-card .addr{font-size:12.5px;color:var(--text-2)}
.addr-card .def{position:absolute;top:12px;right:12px;font-size:11px;color:var(--teal-2);background:#e6f6f4;padding:1px 8px;border-radius:4px}
.ship-options{display:flex;gap:10px;flex-wrap:wrap}
.ship-opt{border:1px solid var(--line);border-radius:8px;padding:12px 16px;cursor:pointer;flex:1;min-width:150px}
.ship-opt.on{border-color:var(--blue);background:#f4f9ff}
.ship-opt .t{font-weight:600;display:flex;justify-content:space-between}
.ship-opt .t .f{color:var(--orange)}
.ship-opt p{font-size:12px;color:var(--text-3)}
/* 发票选项：紧凑单选，一行排开，减少占用高度 */
.invoice-options{gap:8px}
.invoice-options .ship-opt{flex:1 1 auto;min-width:0;padding:7px 10px;text-align:center;border-radius:6px;line-height:1.4}
.invoice-options .ship-opt .t{justify-content:center;font-size:13px}
.invoice-options .ship-opt p{display:none}
.invoice-options .ship-opt.on{box-shadow:inset 0 0 0 1px var(--blue)}
.co-aside{width:320px;flex-shrink:0;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;position:sticky;top:110px}
.co-aside h3{font-size:16px;color:var(--blue);margin-bottom:14px}
.co-aside .co-item{display:flex;justify-content:space-between;font-size:13.5px;margin-bottom:8px;color:var(--text-2)}
.co-aside .co-item span:last-child{color:var(--text)}
.co-aside .co-total{display:flex;justify-content:space-between;border-top:1px dashed var(--line);margin-top:10px;padding-top:12px;align-items:baseline}
.co-aside .co-total b{color:var(--red);font-size:24px}
.co-aside .co-btn{width:100%;background:linear-gradient(90deg,var(--orange),#ef8f33);color:#fff;border:0;border-radius:8px;padding:13px;font-size:15px;font-weight:600;margin-top:14px}
.co-aside .co-note{font-size:12px;color:var(--text-3);margin-top:10px;line-height:1.7}

/* ---------- 个人中心 ---------- */
.acc-wrap{display:flex;gap:18px;align-items:flex-start;margin-top:18px}
.acc-side{width:210px;flex-shrink:0;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px}
.acc-side .u-card{text-align:center;padding:10px 0 16px;border-bottom:1px solid var(--line);margin-bottom:12px}
.acc-side .u-avatar{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--teal));color:#fff;display:flex;align-items:center;justify-content:center;font-size:26px;margin:0 auto 10px}
.acc-side .u-name{font-weight:700;font-size:15px}
.acc-side .u-mail{font-size:12px;color:var(--text-3)}
.acc-side .m-item{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:6px;color:var(--text);font-size:14px;margin-bottom:2px}
.acc-side .m-item:hover{background:#eef5fb}
.acc-side .m-item.on{background:var(--blue);color:#fff}
.acc-side .m-item .n{margin-left:auto;background:var(--red);color:#fff;font-size:11px;min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 5px}
.acc-main{flex:1;min-width:0}
.acc-panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px}
.acc-panel h3{font-size:17px;color:var(--blue);margin-bottom:16px}
.acc-stat{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.acc-stat .st{background:#f7fafd;border:1px solid var(--line);border-radius:8px;padding:16px;text-align:center}
.acc-stat .st b{font-size:22px;color:var(--blue);display:block}
.acc-stat .st span{font-size:12.5px;color:var(--text-2)}
.order-tabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}
.order-tabs button{border:1px solid var(--line);background:#fff;border-radius:16px;padding:6px 16px;font-size:13px;color:var(--text-2)}
.order-tabs button.on{background:var(--blue);color:#fff;border-color:var(--blue)}
.order-card{border:1px solid var(--line);border-radius:8px;padding:14px;margin-bottom:12px}
.order-card .o-head{display:flex;justify-content:space-between;font-size:12.5px;color:var(--text-3);border-bottom:1px dashed var(--line);padding-bottom:8px;margin-bottom:10px}
.order-card .o-head .status{color:var(--orange);font-weight:600}
.order-card .o-head .status.done{color:var(--green)}
.order-card .o-items{display:flex;flex-direction:column;gap:8px}
.order-card .o-item{display:flex;justify-content:space-between;align-items:center;gap:12px}
.order-card .o-item .l{display:flex;gap:10px;align-items:center}
.order-card .o-item img,.order-card .o-item .ph{width:44px;height:44px;border-radius:6px;object-fit:contain}
.order-card .o-item .ph{display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px}
.order-card .o-item .nm{font-size:13px}
.order-card .o-item .pr{font-size:13px;color:var(--text-2)}
.order-card .o-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding-top:8px;border-top:1px dashed var(--line)}
.order-card .o-foot .sum{font-size:13px;color:var(--text-2)}
.order-card .o-foot .sum b{color:var(--red);font-size:16px}
.order-card .o-foot .acts{display:flex;gap:8px}
.order-card .o-foot .acts button{border:1px solid var(--line);background:#fff;border-radius:6px;padding:6px 14px;font-size:12.5px}
.order-card .o-foot .acts .pay{background:var(--orange);color:#fff;border-color:var(--orange)}

/* 地址管理 */
.addr-row{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin-bottom:10px}
.addr-row .a-main .a-name{font-weight:600;margin-right:10px}
.addr-row .a-main .a-tel{color:var(--text-2)}
.addr-row .a-main .a-addr{font-size:12.5px;color:var(--text-3);margin-top:2px}
.addr-row .a-ops{display:flex;gap:8px;font-size:13px;color:var(--blue-3)}
.addr-row .a-ops button{border:0;background:none;color:var(--blue-3);font-size:13px}
.addr-row .a-ops button:hover{color:var(--red)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-item{display:flex;flex-direction:column;gap:6px}
.form-item label{font-size:13px;color:var(--text-2)}
.form-item input,.form-item select,.form-item textarea{border:1px solid var(--line);border-radius:6px;padding:9px 12px;outline:0}
.form-item input:focus,.form-item textarea:focus{border-color:var(--blue-3)}
.form-item.full{grid-column:1/-1}
.btn{display:inline-block;border-radius:6px;padding:9px 20px;font-size:14px;border:0;font-weight:600}
.btn-blue{background:var(--blue);color:#fff}
.btn-blue:hover{filter:brightness(1.1)}
.btn-line{border:1px solid var(--line);background:#fff;color:var(--text-2)}
.btn-line:hover{border-color:var(--blue-3);color:var(--blue-3)}

/* ---------- 促销页 ---------- */
.promo-banner{border-radius:var(--radius);overflow:hidden;position:relative;height:220px;margin-bottom:20px}
.promo-banner img{width:100%;height:100%;object-fit:cover}
.promo-banner .cap{position:absolute;left:0;right:0;bottom:0;padding:30px;background:linear-gradient(transparent,rgba(10,42,68,.85));color:#fff}
.promo-banner .cap h2{font-size:24px;margin-bottom:4px}
.promo-banner .cap p{font-size:14px;opacity:.9}
.promo-tabs{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}
.promo-tabs button{border:1px solid var(--line);background:#fff;padding:8px 18px;border-radius:20px;font-size:13.5px;color:var(--text-2)}
.promo-tabs button.on{background:var(--orange);color:#fff;border-color:var(--orange)}

/* ---------- 通用小件 ---------- */
.breadcrumb{font-size:13px;color:var(--text-3);padding:12px 0}
.breadcrumb a:hover{color:var(--blue-3)}
.btn-go{display:inline-block;background:var(--blue);color:#fff;border-radius:6px;padding:9px 22px;font-size:14px}
.btn-go:hover{filter:brightness(1.1)}
/* 提示消息：必须高于所有弹层（收银台 1000、图片查看器 9999 等），
   否则在弹窗里支付/登录失败时，提示会被压在弹层下面只能看到一个模糊的轮廓 */
.toast{position:fixed;left:50%;top:70px;transform:translateX(-50%);background:rgba(10,42,68,.94);color:#fff;padding:12px 26px;border-radius:8px;font-size:14px;z-index:var(--z-toast,99999);box-shadow:0 6px 24px rgba(0,0,0,.25);opacity:0;transition:.25s;pointer-events:none}
.toast.show{opacity:1;top:84px}
.hidden{display:none!important}

/* 无图占位配色 */
.ph-0{background:linear-gradient(135deg,#14578f,#0f9d8f)}
.ph-1{background:linear-gradient(135deg,#0e6fa8,#4aa3d8)}
.ph-2{background:linear-gradient(135deg,#0f9d8f,#57c4b8)}
.ph-3{background:linear-gradient(135deg,#5b6b7c,#94a6b8)}
.ph-4{background:linear-gradient(135deg,#7a5fa8,#a98fd0)}

/* 响应式 */
@media (max-width:1200px){
  .prod-grid{grid-template-columns:repeat(4,1fr)}
  .cat-matrix{grid-template-columns:repeat(3,1fr)}
  .footer .f-main{grid-template-columns:1fr 1fr 1fr 1fr}
}
@media (max-width:992px){
  .h-main{flex-wrap:wrap;gap:14px}
  .search-area{order:3;flex-basis:100%}
  .prod-grid{grid-template-columns:repeat(3,1fr)}
  .cat-matrix{grid-template-columns:repeat(2,1fr)}
  .service-bar,.trust-band{grid-template-columns:repeat(2,1fr)}
  .promo-grid,.news-grid{grid-template-columns:repeat(2,1fr)}
  .page-wrap{flex-direction:column}
  .sidebar{width:100%;position:static}
  .sidebar .s-cats{display:flex;flex-wrap:wrap;gap:6px}
  .sidebar .s-item{margin:0}
  .checkout-wrap,.acc-wrap{flex-direction:column}
  .co-aside{width:100%;position:static}
  .d-main{flex-direction:column}
  .d-gallery{width:100%}
  .d-gallery .g-main{height:260px}
  .footer .f-main{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .prod-grid{grid-template-columns:repeat(2,1fr)}
  .cat-matrix,.service-bar,.trust-band,.promo-grid,.news-grid{grid-template-columns:1fr}
  .topbar .right{display:none}
  .hero .slide{height:200px}
  .hero-cats{display:none}
  .nav .nav-list a{padding:0 12px;font-size:13px}
}

/* ============================================================
   信达安 XinDaAn — 新增内容页（技术服务/解决方案/下载中心/关于我们）
   ============================================================ */
.page-hero{background:linear-gradient(120deg,#0a3a63 0%,#14578f 55%,#0f9d8f 100%);color:#fff;border-radius:14px;margin:20px 0 8px;padding:44px 40px;position:relative;overflow:hidden}
.page-hero h1{font-size:30px;margin-bottom:10px;letter-spacing:1px}
.page-hero p{color:#cfe2f2;font-size:15px;max-width:720px;line-height:1.8}
.page-hero .ph-badge{display:inline-block;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);padding:3px 12px;border-radius:20px;font-size:12px;margin-bottom:14px;color:#dff2ee}
.page-hero::after{content:"";position:absolute;right:-40px;top:-40px;width:220px;height:220px;border:30px solid rgba(255,255,255,.06);border-radius:50%}
.page-hero::before{content:"";position:absolute;right:120px;bottom:-70px;width:160px;height:160px;border:22px solid rgba(255,255,255,.05);border-radius:50%}

/* ---- 技术服务 ---- */
.svc-group{margin-top:34px}
.svc-group .g-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.svc-group .g-head .g-ic{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#eef5fb,#e6f6f4);display:flex;align-items:center;justify-content:center;font-size:22px}
.svc-group .g-head h3{font-size:20px;color:var(--blue)}
.svc-group .g-head span{font-size:12.5px;color:var(--text-3)}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.svc-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;cursor:pointer;transition:.2s;display:flex;flex-direction:column;gap:8px}
.svc-card:hover{box-shadow:var(--shadow-2);border-color:#c9d9e8;transform:translateY(-2px)}
.svc-card .s-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.svc-card h4{font-size:15.5px;color:var(--text)}
.svc-card .price{flex-shrink:0;background:#fdf0e4;color:var(--orange);font-size:12.5px;padding:2px 9px;border-radius:20px;white-space:nowrap;font-weight:600}
.svc-card p{font-size:12.8px;color:var(--text-2);line-height:1.75}
.svc-card .read{margin-top:auto;font-size:12.5px;color:var(--teal-2);background:#e6f6f4;border-radius:6px;padding:6px 0;text-align:center;transition:.15s}
.svc-card .read:hover{background:#d3efeb}
.svc-card .read i{font-style:normal;display:inline-block;transition:.2s}
.svc-card.open .read i{transform:rotate(180deg)}
.svc-article{display:none;border-top:1px dashed var(--line);padding-top:12px;margin-top:4px}
.svc-card.open .svc-article{display:block}
.svc-article h5{font-size:14px;color:var(--blue-2);margin-bottom:8px;display:flex;align-items:center;gap:8px}
.svc-article h5::before{content:"";width:4px;height:14px;background:var(--teal);border-radius:2px}
.svc-article p{font-size:13px;color:var(--text-2);line-height:1.9;margin-bottom:8px}
.svc-article .flow{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:10px 0 4px}
.svc-article .flow b{font-size:11.5px;background:#eef5fb;color:var(--blue-3);padding:3px 10px;border-radius:14px;font-weight:500}
.svc-article .flow i{font-style:normal;color:var(--text-3);font-size:11px}

/* ---- 解决方案 ---- */
.sol-block{background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px;margin-top:22px;display:grid;grid-template-columns:120px 1fr;gap:24px;transition:.2s}
.sol-block:hover{box-shadow:var(--shadow-2);border-color:#c9d9e8}
.sol-block .sol-ic{width:120px;height:120px;border-radius:16px;background:linear-gradient(150deg,#eef5fb,#e6f6f4);display:flex;align-items:center;justify-content:center;font-size:52px}
.sol-block .sol-body h3{font-size:19px;color:var(--blue);margin-bottom:6px;display:flex;align-items:center;gap:10px}
.sol-block .sol-body h3 .no{font-size:12px;color:var(--teal-2);background:#e6f6f4;border-radius:6px;padding:2px 8px;font-weight:600}
.sol-block .sol-body .desc{font-size:13.5px;color:var(--text-2);line-height:1.85;margin-bottom:12px}
.sol-caps{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.sol-caps b{font-size:12px;color:var(--blue-3);background:#eef5fb;border-radius:14px;padding:3px 11px;font-weight:500}
.sol-apps{font-size:12.8px;color:var(--text-3);line-height:1.8}
.sol-apps b{color:var(--text-2)}
.arch-box{margin-top:14px;border:1px solid #d7e3ef;border-radius:10px;padding:14px;background:#f8fbfe}
.arch-box .a-title{font-size:12.5px;color:var(--blue-3);margin-bottom:10px;font-weight:600}
.arch-layer{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.arch-layer .al{flex:1;min-width:120px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:9px 12px;text-align:center;font-size:12px;color:var(--text-2)}
.arch-layer .al b{display:block;font-size:13px;color:var(--blue);margin-bottom:3px}
.arch-arrow{text-align:center;color:var(--teal);font-size:11px;margin:3px 0;letter-spacing:4px}

/* ---- 下载中心 ---- */
.dl-wrap{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;margin-top:20px}
.dl-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;border-bottom:1px solid var(--line);padding-bottom:14px}
.dl-tabs button{border:1px solid var(--line);background:#fff;color:var(--text-2);padding:7px 16px;border-radius:20px;font-size:13px;cursor:pointer}
.dl-tabs button.on{background:var(--blue);color:#fff;border-color:var(--blue)}
.dl-table{width:100%;border-collapse:collapse}
.dl-table th{font-size:12.5px;color:var(--text-3);text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);background:#f8fbfe}
.dl-table td{padding:11px 12px;border-bottom:1px solid #eef3f8;font-size:13px;color:var(--text)}
.dl-table tr:hover td{background:#f8fbfe}
.dl-table .f-name{font-weight:600;color:var(--blue-2)}
.dl-table .f-meta{color:var(--text-3);font-size:12px;margin-top:3px}
.dl-table .dl-btn{border:1px solid #cfe0ee;background:#fff;color:var(--blue-2);font-size:12.5px;border-radius:6px;padding:5px 14px;cursor:pointer;transition:.15s}
.dl-table .dl-btn:hover{background:var(--blue);color:#fff;border-color:var(--blue)}
.dl-tag{font-size:11px;background:#eef5fb;color:var(--blue-3);border-radius:4px;padding:2px 7px;margin-left:8px}

/* ---- 关于我们 ---- */
.ab-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:18px;margin-top:20px}
.ab-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px}
.ab-card h3{font-size:17px;color:var(--blue);margin-bottom:12px;display:flex;align-items:center;gap:10px}
.ab-card h3 .ic{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#eef5fb,#e6f6f4);display:flex;align-items:center;justify-content:center;font-size:18px}
.ab-card p{font-size:13.5px;color:var(--text-2);line-height:1.95;margin-bottom:10px}
.ab-card .v-item{background:#f8fbfe;border:1px solid var(--line);border-radius:10px;padding:14px;margin-bottom:10px}
.ab-card .v-item b{color:var(--blue-2);font-size:14px}
.ab-card .v-item p{font-size:13px;color:var(--text-2);line-height:1.8;margin:6px 0 0}
.timeline{margin-top:8px}
.tl-item{display:flex;gap:16px;padding-bottom:16px;position:relative}
.tl-item::before{content:"";position:absolute;left:7px;top:20px;bottom:0;width:2px;background:var(--line)}
.tl-item:last-child::before{display:none}
.tl-dot{width:16px;height:16px;border-radius:50%;background:var(--teal);border:3px solid #e6f6f4;flex-shrink:0;margin-top:3px;position:relative;z-index:1}
.tl-item .tl-year{font-size:13px;font-weight:700;color:var(--teal-2);min-width:60px;padding-top:1px}
.tl-item .tl-txt{font-size:13px;color:var(--text-2);line-height:1.75}
.contact-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:14px}
.contact-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;text-align:center}
.contact-card .c-ic{width:46px;height:46px;margin:0 auto 10px;border-radius:12px;background:linear-gradient(135deg,#eef5fb,#e6f6f4);display:flex;align-items:center;justify-content:center;font-size:22px}
.contact-card b{display:block;font-size:14px;color:var(--text);margin-bottom:4px}
.contact-card span{font-size:12.5px;color:var(--text-3);line-height:1.7;display:block}

/* ---- CTA ---- */
.cta-bar{background:linear-gradient(90deg,#0a3a63,#14578f 55%,#0f9d8f);color:#fff;border-radius:14px;padding:28px 32px;margin-top:26px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.cta-bar h3{font-size:19px;margin-bottom:6px}
.cta-bar p{color:#cfe2f2;font-size:13.5px}
.cta-bar a{background:#fff;color:var(--blue);font-weight:600;padding:10px 26px;border-radius:8px;text-decoration:none;font-size:14px}

/* ---- 响应式 ---- */
@media (max-width:1100px){
  .svc-grid{grid-template-columns:repeat(2,1fr)}
  .ab-grid{grid-template-columns:1fr}
  .contact-cards{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:720px){
  .svc-grid{grid-template-columns:1fr}
  .sol-block{grid-template-columns:1fr}
  .page-hero{padding:30px 22px}
  .page-hero h1{font-size:23px}
  .contact-cards{grid-template-columns:1fr 1fr}
}

/* ============================================================
   信达安 — 技术服务详情页 + 浮动咨询工具条（v2）
   ============================================================ */
.svc-card{text-decoration:none;color:inherit}
.svc-card .read{background:var(--blue);color:#fff}
.svc-card .read:hover{background:var(--blue-3)}
.sd-wrap{display:grid;grid-template-columns:1fr 300px;gap:20px;margin-top:18px;align-items:start}
.sd-main{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px}
.sd-head{border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:18px}
.sd-head h1{font-size:24px;color:var(--blue);margin-bottom:12px}
.sd-tags{display:flex;gap:8px;flex-wrap:wrap}
.sd-tags b{font-size:12.5px;background:#eef5fb;color:var(--blue-3);padding:3px 11px;border-radius:16px;font-weight:500}
.sd-tags b.price{background:#fdf0e4;color:var(--orange)}
.sd-article h3,.sd-flow h3{font-size:15px;color:var(--blue-2);margin:0 0 12px;display:flex;align-items:center;gap:8px}
.sd-article h3::before,.sd-flow h3::before{content:"";width:4px;height:14px;background:var(--teal);border-radius:2px}
.sd-article p{font-size:14px;color:var(--text-2);line-height:2;margin-bottom:12px}
.sd-flow{margin-top:24px;background:#f8fbfe;border:1px solid var(--line);border-radius:10px;padding:16px}
.sd-flow .flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sd-flow .flow b{font-size:12.5px;background:#fff;border:1px solid #cfe0ee;color:var(--blue-3);padding:5px 13px;border-radius:16px;font-weight:500}
.sd-flow .flow i{font-style:normal;color:var(--text-3);font-size:11px}
.sd-side{display:flex;flex-direction:column;gap:14px}
.sd-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px}
.sd-card h4{font-size:14px;color:var(--blue);margin-bottom:10px}
.sd-card p{font-size:12.8px;color:var(--text-2);line-height:1.8;margin-bottom:12px}
.sd-card a.btn-primary{display:block;text-align:center;text-decoration:none;margin-top:4px}
.sd-card > a{font-size:13px;color:var(--blue-3);display:block;padding:7px 0;border-bottom:1px dashed #eef3f8;text-decoration:none}
.sd-card > a:hover{color:var(--teal-2)}
.sd-card > a span{color:var(--orange);font-size:12px;float:right}
@media (max-width:900px){.sd-wrap{grid-template-columns:1fr}}

/* ---- 浮动咨询工具条 ---- */
.float-bar{position:fixed;right:22px;bottom:100px;z-index:200;display:flex;flex-direction:column;gap:10px}
.float-bar .fb-item{width:54px;height:54px;border-radius:50%;background:#fff;box-shadow:var(--shadow-2);border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:11px;color:var(--blue);cursor:pointer;transition:.2s;text-decoration:none}
.float-bar .fb-item:hover{background:var(--blue);color:#fff;border-color:var(--blue)}
.float-bar .fb-item .fb-ic{font-size:19px;line-height:1}
.fb-pop{position:fixed;right:24px;bottom:170px;width:288px;background:#fff;border-radius:14px;box-shadow:var(--shadow-2);border:1px solid var(--line);padding:16px 16px 12px;display:none;z-index:210}
.fb-pop.show{display:block}
.fb-pop-head{font-weight:600;color:var(--blue);font-size:14px;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:12px}
.fb-qr-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
/* 第三张码（客服 2）跨两列居中：弹窗内宽约 256px，硬塞 3 列会缩到 78px，手机不好扫 */
.fb-qr.fb-qr-wide{grid-column:span 2;justify-self:center;width:118px}
.fb-qr{text-align:center}
.fb-qr canvas,.fb-qr img{width:118px!important;height:118px!important}
.fb-qr p{font-size:12px;color:var(--text-2);margin-top:6px}
.fb-tip{font-size:11.5px;color:var(--text-3);text-align:center;margin-top:10px;line-height:1.7}

/* ============================================================
   信达安 — 登录弹窗 / 登录页（v3）
   ============================================================ */
.lmask{position:fixed;inset:0;background:rgba(16,42,67,.88);z-index:300;display:flex;align-items:center;justify-content:center;padding:16px}
.lmodal{background:#fff;border-radius:16px;width:360px;max-width:92vw;padding:24px 24px 20px;box-shadow:0 12px 40px rgba(16,42,67,.35);position:relative}
.lm-close{position:absolute;top:10px;right:14px;border:0;background:none;font-size:24px;color:var(--text-3);cursor:pointer;line-height:1}
.lm-close:hover{color:var(--blue)}
.lm-head{text-align:center;margin-bottom:14px}
.lm-logo{width:46px;height:46px;border-radius:12px;background:linear-gradient(135deg,var(--blue),var(--blue-3));color:#fff;font-size:20px;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 10px}
.lm-head h3{font-size:17px;color:var(--blue);margin:0 0 4px}
.lm-head p{font-size:12px;color:var(--text-3);margin:0}
.lm-tabs{display:flex;gap:6px;background:#f0f6fc;border-radius:22px;padding:4px;margin-bottom:14px}
.lm-tabs b{flex:1;text-align:center;padding:7px 0;border-radius:20px;font-size:13px;color:var(--text-2);cursor:pointer;font-weight:500}
.lm-tabs b.on{background:#fff;color:var(--blue);box-shadow:0 1px 4px rgba(16,42,67,.12);font-weight:600}
.lm-row{margin-bottom:12px}
.lm-row input{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:13.5px;color:var(--text-1);outline:none;transition:.2s;background:#fbfdff}
.lm-row input:focus{border-color:var(--blue);background:#fff;box-shadow:0 0 0 3px rgba(47,110,181,.12)}
.lm-cap{display:flex;gap:8px;align-items:center}
.lm-cap input{flex:1;min-width:0}
.lm-cap canvas{border-radius:6px;cursor:pointer;border:1px solid var(--line);flex:none}
.lm-err{font-size:12px;color:#d64541;min-height:16px;margin:0 0 6px}
#lm-submit{width:100%;padding:11px;font-size:14px;border-radius:8px}
/* 独立登录页 */
.login-wrap{min-height:calc(100vh - 320px);display:flex;align-items:center;justify-content:center;padding:44px 16px;background:linear-gradient(180deg,#f4f9fe,#fff)}
.login-card{width:400px;max-width:92vw;background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px 30px 24px;box-shadow:var(--shadow-2)}

/* ============================================================
   信达安 — logo 图 + 订购中心页（v4）
   ============================================================ */
.logo-img{height:60px;width:auto;margin-right:18px}
.f-logo-img{height:40px;width:auto}
/* 订购中心 */
.od-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.od-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px 18px;text-align:center;transition:.2s}
.od-card:hover{border-color:var(--blue);box-shadow:var(--shadow-2);transform:translateY(-3px)}
.od-card .od-ic{font-size:30px;margin-bottom:10px}
.od-card h4{font-size:15px;color:var(--blue);margin:0 0 8px}
.od-card p{font-size:12.5px;color:var(--text-2);line-height:1.8;margin:0 0 10px;text-align:left}
.od-card a{font-size:13px;color:var(--teal-2);text-decoration:none;font-weight:500}
.od-card .od-tel{font-size:14px;color:var(--orange);font-weight:600;display:block}
.od-flow{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:8px}
.od-flow .of{text-align:center;position:relative;background:#f8fbfe;border:1px solid var(--line);border-radius:12px;padding:18px 10px}
.od-flow .of i{display:inline-flex;width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--blue-3));color:#fff;font-style:normal;font-weight:600;align-items:center;justify-content:center;margin-bottom:8px}
.od-flow .of b{display:block;font-size:13.5px;color:var(--blue-2);margin-bottom:6px}
.od-flow .of p{font-size:11.5px;color:var(--text-3);line-height:1.6;margin:0}
.od-list{display:flex;flex-direction:column;gap:12px}
.od-row{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px;display:flex;gap:14px;align-items:flex-start}
.od-row .r-ic{font-size:26px;flex:none}
.od-row b{font-size:14.5px;color:var(--blue-2);display:block;margin-bottom:4px}
.od-row p{font-size:13px;color:var(--text-2);line-height:1.8;margin:0}
@media (max-width:900px){.od-grid{grid-template-columns:repeat(2,1fr)}.od-flow{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.od-grid{grid-template-columns:1fr}}

/* ============================================================
   登录 v5：验证码 / 微信扫码 / 密码 三方式，免注册
   ============================================================ */
.lm-tabs3 b{flex:1;text-align:center}
.lm-sms{display:flex;gap:8px}
.lm-sms input{flex:1;min-width:0}
.lm-get{flex:none;height:42px;padding:0 12px;border:1px solid var(--blue);border-radius:8px;background:#eef5ff;color:var(--blue);font-size:13px;cursor:pointer;white-space:nowrap;transition:.2s}
.lm-get:hover{background:var(--blue);color:#fff}
.lm-get:disabled{opacity:.55;cursor:not-allowed;background:#eef5ff;color:var(--blue)}
.lm-wx{display:flex;flex-direction:column;align-items:center;gap:10px;padding:6px 0 14px}
.lm-wx #lm-wxqr,.lm-wx #lg-wxqr{width:150px;height:150px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:10px}
.lm-wx .wx-tip{font-size:12px;color:var(--text-3);margin:0;line-height:1.6;text-align:center}
.lm-wx .wx-ok{width:100%;height:42px}

/* ============================================================
   登录 v6 修正：高度固定 / 主按钮 / 微信 tab
   ============================================================ */
.lmodal{height:545px;display:flex;flex-direction:column}
.login-card{height:545px;display:flex;flex-direction:column}
.lmodal #lm-form,.login-card #lg-form{display:flex;flex-direction:column;flex:1;min-height:0}
#lm-submit,#lg-submit{width:100%;padding:11px;font-size:14px;border-radius:8px;border:0;background:linear-gradient(90deg,var(--blue),#4a90d9);color:#fff;font-weight:600;cursor:pointer;box-shadow:0 4px 12px rgba(47,110,181,.28);margin-top:auto}
#lm-submit:hover,#lg-submit:hover{filter:brightness(1.06)}
.lm-wx{flex:1;justify-content:center}
.lm-wx #lm-wxqr,.lm-wx #lg-wxqr{margin:0 auto}

/* ============================================================
   登录 v7：扫码即登录 / 高度收紧 / 按钮贴近输入框
   ============================================================ */
.lmodal{height:470px;display:flex;flex-direction:column}
.login-card{height:470px;display:flex;flex-direction:column}
#lm-submit,#lg-submit{width:100%;padding:11px;font-size:14px;border-radius:8px;border:0;background:linear-gradient(90deg,var(--blue),#4a90d9);color:#fff;font-weight:600;cursor:pointer;box-shadow:0 4px 12px rgba(47,110,181,.28);margin-top:8px}
#lm-submit:hover,#lg-submit:hover{filter:brightness(1.06)}
.lm-wx{flex:1;justify-content:center}
.lm-wx #lm-wxqr,.lm-wx #lg-wxqr{margin:0 auto}

/* ============================================================
   登录 v8：去 logo / 去底部链接，窗口进一步收紧
   ============================================================ */
.lmodal{height:360px;display:flex;flex-direction:column}
.login-card{height:360px;display:flex;flex-direction:column}
.lm-head{margin-bottom:10px}
#lm-submit,#lg-submit{width:100%;padding:11px;font-size:14px;border-radius:8px;border:0;background:linear-gradient(90deg,var(--blue),#4a90d9);color:#fff;font-weight:600;cursor:pointer;box-shadow:0 4px 12px rgba(47,110,181,.28);margin-top:8px}
#lm-submit:hover,#lg-submit:hover{filter:brightness(1.06)}
.lm-wx{flex:1;justify-content:center}
.lm-wx #lm-wxqr,.lm-wx #lg-wxqr{margin:0 auto}

/* 门户 Freemarker 模板：链接形态的排序/视图/分页控件 */
.sort-tabs a{border:1px solid var(--line);background:#fff;border-radius:6px;padding:5px 12px;font-size:12.5px;color:var(--text-2)}
.sort-tabs a.on{background:var(--blue);color:#fff;border-color:var(--blue)}
.view-toggle a{border:1px solid var(--line);background:#fff;border-radius:6px;padding:5px 10px;font-size:13px;color:var(--text-2)}
.view-toggle a.on{color:var(--blue);border-color:var(--blue-3)}
.pager a{display:inline-flex;justify-content:center;align-items:center;border:1px solid var(--line);background:#fff;border-radius:6px;min-width:34px;height:34px;font-size:13px;color:var(--text)}
.pager a.on{background:var(--blue);color:#fff;border-color:var(--blue)}
.pager a.pg-disabled{opacity:.5;cursor:not-allowed;pointer-events:none}

/* ============================================================
   图片查看器 XA.viewer（站点通用，site.js 动态创建节点）
   ============================================================ */
.xa-viewer{position:fixed;inset:0;z-index:9999;display:none;background:rgba(10,16,24,.94);user-select:none;touch-action:none}
.xa-viewer.on{display:block}
.xv-bar{position:absolute;top:0;left:0;right:0;height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;color:#fff;background:linear-gradient(rgba(0,0,0,.45),transparent)}
.xv-count{font-size:13.5px;opacity:.85;letter-spacing:.5px}
.xv-tools{display:flex;align-items:center;gap:8px}
.xv-btn{display:flex;align-items:center;justify-content:center;height:34px;min-width:34px;padding:0 8px;border:0;border-radius:8px;background:rgba(255,255,255,.14);color:#fff;font-size:16px;line-height:1;cursor:pointer;text-decoration:none;transition:.15s}
.xv-btn:hover{background:rgba(255,255,255,.28)}
.xv-btn.xv-wide{font-size:12.5px;padding:0 12px}
.xv-close{background:rgba(214,69,65,.82)}
.xv-close:hover{background:#d64541}
.xv-stage{position:absolute;top:52px;right:70px;bottom:0;left:70px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.xv-img{max-width:100%;max-height:100%;object-fit:contain;transform-origin:center center;transition:transform .12s ease;cursor:zoom-in}
.xa-viewer.grabbing .xv-img{transition:none;cursor:grabbing}
.xv-arrow{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:76px;border:0;border-radius:10px;background:rgba(255,255,255,.12);color:#fff;font-size:34px;line-height:1;cursor:pointer;transition:.15s}
.xv-arrow:hover{background:rgba(255,255,255,.26)}
.xv-prev{left:12px}
.xv-next{right:12px}
@media (max-width:720px){
  .xv-stage{right:0;left:0;bottom:66px}
  .xv-arrow{width:40px;height:52px;font-size:26px;top:auto;bottom:6px;transform:none}
  .xv-prev{left:16px}
  .xv-next{right:16px}
}
