/* ============================================================
   瑞禧生物 · 全站唯一样式表
   字体：微软雅黑（系统默认，不引入外部字体）
   ============================================================ */
:root{
  --c1:#0b5bd3;        /* 主色 科研蓝 */
  --c1d:#0a3d91;       /* 深蓝 */
  --navy:#0a2a5e;      /* 藏青 */
  --cyan:#18b7d4;      /* 点缀青 */
  --ink:#1c2733;       /* 正文深色 */
  --mut:#5c6b7a;       /* 次要文字 */
  --line:#e3eaf2;      /* 分割线 */
  --bg:#f5f8fc;        /* 浅底 */
  --soft:#eef4fb;      /* 更浅底 */
  --red:#e64533;       /* 价格/强调 */
  --radius:10px;
  --shadow:0 6px 24px rgba(10,42,94,.08);
  --shadow-h:0 12px 32px rgba(10,42,94,.16);
  --hd-h:82px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:"Microsoft YaHei","微软雅黑","PingFang SC","Hiragino Sans GB",sans-serif;
  font-size:15px;line-height:1.75;color:var(--ink);background:#fff;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}
input,textarea,select{font-family:inherit;font-size:14px;color:var(--ink)}
h1,h2,h3,h4,h5{line-height:1.4;font-weight:700}
.container{max-width:1400px;margin:0 auto;padding:0 20px}
.mono{font-family:Consolas,Menlo,monospace}

/* ---------- 图标（内联SVG） ---------- */
.ico{width:1em;height:1em;display:inline-block;vertical-align:-.14em;fill:currentColor;flex:none}
.ico.lg{width:22px;height:22px}
.ico.xl{width:30px;height:30px}

/* ============================================================
   头部
   ============================================================ */
.topbar{background:var(--navy);color:#c6d6ee;font-size:13px}
.topbar .container{display:flex;justify-content:space-between;align-items:center;height:38px;gap:16px}
.tb-left,.tb-right{display:flex;align-items:center;gap:20px;min-width:0}
.tb-item{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.tb-item .ico{color:var(--cyan)}
.topbar a:hover{color:#fff}
.tb-right a{opacity:.85}
.tb-right a:hover{opacity:1}

/* 吸顶由外层 .header 承担：sticky 的活动范围受父盒子高度限制，
   原先 sticky 写在 .site-header 上而其父盒子仅 120px 高，实际只能吸住 38px
   （顶栏高度），头部随之滚走。改为外层 sticky + 负 top，顶栏滚出后主头部
   即钉在视口顶部 —— 这也正是 --hd-h 相关计算（如侧栏 max-height）成立的前提。
   .site-header 保留为定位祖先（.drop / .search-panel / .mobile-menu 的包含块）。 */
.header{position:sticky;top:-38px;z-index:200}
.site-header{position:relative;z-index:200;background:#fff;border-bottom:1px solid var(--line);transition:box-shadow .25s}
/* main.js 把 scrolled 加在 .site-header 上（var header = $('.site-header')），
   故阴影选择器保持 .site-header.scrolled */
.site-header.scrolled{box-shadow:0 4px 18px rgba(10,42,94,.12)}
.hd-wrap{display:flex;align-items:center;gap:28px;height:var(--hd-h)}
.hd-logo{display:flex;align-items:center;gap:12px;flex:none}
.hd-logo img{height:60px;width:auto}
.hd-logo .logo-name{font-size:25px;font-weight:700;color:var(--navy);letter-spacing:1px;display:block;line-height:1.2}
.hd-logo .logo-sub{font-size:13px;color:var(--mut);letter-spacing:.5px;display:block;line-height:1.2;text-transform: uppercase; margin-top: 4px;}

.main-nav{display:flex;align-items:stretch;height:var(--hd-h);flex:1;min-width:0;justify-content:flex-end}
.nav-item{position:relative;display:flex}
.nav-link{display:flex;align-items:center;gap:6px;padding:0 19px;font-size:17.5px;font-weight:700;color:var(--ink);position:relative;white-space:nowrap}
.nav-link .caret{font-size:12px;color:#9fb0c3;transition:transform .2s}
.nav-link:hover,.nav-link.active{color:var(--c1)}
.nav-link::after{content:"";position:absolute;left:19px;right:19px;bottom:0;height:3px;background:var(--c1);border-radius:2px;transform:scaleX(0);transition:transform .25s}
.nav-link:hover::after,.nav-link.active::after{transform:scaleX(1)}
.nav-item:hover .caret{transform:rotate(180deg)}

/* 下拉面板 */
.drop{position:absolute;top:100%;left:50%;transform:translate(-50%,10px);min-width:230px;max-height:calc(100vh - var(--hd-h) - 60px);overflow:auto;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-h);padding:10px;opacity:0;visibility:hidden;transition:.22s;z-index:210}
.nav-item:hover .drop,.nav-item:focus-within .drop{opacity:1;visibility:visible;transform:translate(-50%,0)}
.drop a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border-radius:8px;font-size:14px;color:var(--ink)}
.drop a .ico{font-size:11px;color:#b6c4d4}
.drop a:hover{background:var(--soft);color:var(--c1)}
.drop a:hover .ico{color:var(--c1)}

/* ---------- 定制服务：16 项单列过长，改为双列面板 ----------
   水平定位沿用 .drop 的「相对导航项居中」（left:50% + translateX(-50%)），
   故此处不再声明 left/right/transform。此前写的是 left:auto;right:0，
   即把面板右边缘对齐到导航项右边缘；但面板宽 460~660px 远超导航项本身
   （约 106~126px），整块只能向左展开，看起来就是居左的。
   实测居中后各宽度均不溢出（最窄 1025px 时面板落在 [194,654]）。 */
.drop-mega{width:min(660px,calc(100vw - 40px));min-width:0;max-height:none;overflow:visible;padding:16px 18px 14px}
.drop-mega .dm-head{display:flex;align-items:baseline;gap:10px;padding:0 2px 12px;margin-bottom:12px;border-bottom:1px solid var(--line)}
.drop-mega .dm-head b{flex:none;font-size:16px;color:var(--navy)}
.drop-mega .dm-head span{font-size:12.5px;color:var(--mut)}
.drop-mega .dm-head .dm-all{margin-left:auto;flex:none;font-size:13px;font-weight:600;color:var(--c1);white-space:nowrap}
.drop-mega .dm-head .dm-all:hover{color:var(--c1d)}
.drop-mega .dm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 12px}
.drop-mega .dm-grid a{display:flex;align-items:center;justify-content:flex-start;gap:9px;padding:8px 10px;border-radius:8px;font-size:14px;color:var(--ink);line-height:1.45}
.drop-mega .dm-grid a i{flex:none;width:24px;height:24px;display:grid;place-items:center;border-radius:6px;background:var(--soft);color:var(--c1);font-size:11.5px;font-weight:700;font-style:normal;transition:.2s}
.drop-mega .dm-grid a:hover{background:var(--soft);color:var(--c1)}
.drop-mega .dm-grid a:hover i{background:var(--c1);color:#fff}

.header-actions{display:flex;align-items:center;gap:10px;flex:none}
.icon-btn{width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:17px;color:var(--ink);background:var(--soft);position:relative;transition:.2s}
.icon-btn:hover{background:var(--c1);color:#fff}
.badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--red);color:#fff;font-size:11px;line-height:18px;text-align:center;font-weight:700}
.btn-cta{background:linear-gradient(135deg,var(--c1),var(--c1d));color:#fff;font-size:14px;font-weight:600;padding:10px 22px;border-radius:24px;transition:.2s;white-space:nowrap}
.btn-cta:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(11,91,211,.35)}
.menu-toggle{display:none}

/* 搜索面板 */
.search-panel{position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 18px 30px rgba(10,42,94,.12);padding:26px 0;display:none;z-index:205}
.search-panel.open{display:block}
.search-panel-inner{max-width:820px;margin:0 auto;padding:0 20px}
.search-box{display:flex;border:2px solid var(--c1);border-radius:30px;overflow:hidden;height:50px}
.search-box input{flex:1;min-width:0;border:none;outline:none;padding:0 22px;font-size:15px}
.search-box button{background:var(--c1);color:#fff;padding:0 30px;font-size:15px;font-weight:600;display:flex;align-items:center;gap:7px}
.search-hot{margin-top:14px;font-size:13px;color:var(--mut);display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.search-hot button{border:1px solid var(--line);border-radius:14px;padding:3px 12px;font-size:13px;color:var(--mut);transition:.2s}
.search-hot button:hover{border-color:var(--c1);color:var(--c1)}

/* 移动端菜单 */
/* 移动端菜单：挂在 .site-header 内部，用 top:100% 紧贴头部。
   原实现为 position:fixed + 硬编码 top（顶栏 38px + 头部 --hd-h），而顶栏会随
   页面滚走，滚动后菜单与头部之间会露出 38px 页面内容。
   展开时（body.menu-open）把头部钉在视口顶部并隐藏顶栏，菜单即可稳定占据
   头部以下的全部视口，不再依赖 sticky 的滚动状态。 */
.mobile-menu{display:none;position:absolute;top:100%;left:0;right:0;height:calc(100vh - var(--hd-h));height:calc(100dvh - var(--hd-h));background:#fff;z-index:190;overflow:auto;overscroll-behavior:contain;padding:10px 20px 40px;-webkit-overflow-scrolling:touch}
body.menu-open .topbar{display:none}
body.menu-open .site-header{position:fixed;top:0;left:0;right:0;z-index:200}
.mobile-menu.open{display:block}
.mnav{display:block;padding:14px 4px;font-size:16px;font-weight:600;border-bottom:1px solid var(--line)}
.mnav-group-head{width:100%;display:flex;justify-content:space-between;align-items:center;padding:14px 4px;font-size:16px;font-weight:600;border-bottom:1px solid var(--line)}
.mnav-sub{display:none;padding:4px 0 8px}
.mnav-sub a{display:block;padding:9px 14px;font-size:14px;color:var(--mut)}
.mnav-group.open .mnav-sub{display:block}
.m-hot{padding:14px 4px;color:var(--mut);font-size:14px;display:flex;align-items:center;gap:8px}

/* ============================================================
   首页 Hero
   ============================================================ */
.hero{position:relative;height:700px;overflow:hidden;background:var(--navy)}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity .8s}
.hero-slide.on{opacity:1}
.hero-slide img{width:100%;height:100%;object-fit:cover}
.hero-mask{position:absolute;inset:0;
background:linear-gradient(90deg,rgba(6,26,60,.2) 0%,rgba(6,26,60,.2) 55%,rgba(6,26,60,.15) 100%)}

.hero-content{position:relative;height:100%;display:flex;align-items:center}
.hero-text{color:#fff;max-width:640px}
.hero-kicker{font-size:14px;letter-spacing:3px;color:var(--cyan);font-weight:600;margin-bottom:16px}
.hero-title{font-size:44px;line-height:1.25;margin-bottom:18px;text-shadow:0 2px 12px rgba(0,0,0,.25)}
.hero-sub{font-size:17px;color:#d5e2f5;margin-bottom:34px}
.hero-btns{display:flex;gap:16px;flex-wrap:wrap}
.btn-solid{background:var(--c1);color:#fff;padding:13px 32px;border-radius:30px;font-size:15px;font-weight:600;display:inline-flex;align-items:center;gap:8px;transition:.2s}
.btn-solid:hover{background:#fff;color:var(--c1)}
.btn-ghost{border:1.5px solid rgba(255,255,255,.7);color:#fff;padding:12px 30px;border-radius:30px;font-size:15px;font-weight:600;transition:.2s}
.btn-ghost:hover{background:#fff;color:var(--navy)}
.hero-arrow{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:18px;display:flex;align-items:center;justify-content:center;transition:.2s;z-index:5}
.hero-arrow:hover{background:var(--c1)}
.hero-arrow.prev{left:26px}.hero-arrow.next{right:26px}
.hero-dots{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);display:flex;gap:10px;z-index:5}
.hero-dots button{width:26px;height:4px;border-radius:2px;background:rgba(255,255,255,.35);transition:.25s}
.hero-dots button.on{background:#fff;width:40px}

/* ============================================================
   版块通用
   ============================================================ */
.section{padding:74px 0}
.sec-soft{background:var(--bg)}
.sec-head{margin-bottom:42px}
.sec-head-row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}
.sec-kicker{font-size:13px;letter-spacing:2.5px;color:var(--cyan);font-weight:700;text-transform:uppercase;margin-bottom:6px}
.sec-title{font-size:30px;color:var(--navy)}
.sec-desc{font-size:15px;color:var(--mut);margin-top:8px;max-width:85%;text-align: justify;}
.sec-divider{height:3px;background:var(--line);margin-top:20px;position:relative;border-radius:2px}
.sec-divider::before{content:"";position:absolute;left:0;top:0;height:3px;width:74px;background:var(--c1);border-radius:2px}
.sec-more{flex:none;display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--c1);border:1px solid var(--c1);border-radius:22px;padding:8px 20px;transition:.2s;white-space:nowrap}
.sec-more:hover{background:var(--c1);color:#fff}
.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .6s,transform .6s}
.js .reveal.in{opacity:1;transform:none}

#cartTableBody .ico{ width: 1.4rem; height:1.4rem;}
.cart-table td:last-child{ text-align: center;}
.cart-table th:last-child{ text-align: center}
/* ============================================================
   产品卡片（统一图片尺寸：1:1 白底 contain）
   ============================================================ */
.p-tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:30px}
.p-tabs button,.p-tabs a{padding:10px 28px;border-radius:24px;border:1px solid var(--line);background:#fff;font-size:14.5px;color:var(--mut);transition:.2s}
.p-tabs button:hover,.p-tabs a:hover{border-color:var(--c1);color:var(--c1)}
.p-tabs button.on,.p-tabs a.on{background:var(--c1);border-color:var(--c1);color:#fff;font-weight:600}
.p-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
/* 3 列变体（常见产品 / 定制产品列表页）。原实现写在内联 style 上，
   内联优先级高于媒体查询，手机端无法降列，故改为类名并在各断点同步降列。 */
.p-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.p-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s}
.p-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-h)}
.p-thumb{position:relative;display:block;aspect-ratio:1/1;background:#fff;border-bottom:1px solid var(--line)}
.p-thumb img{width:100%;height:100%;object-fit:contain;padding:14px}
.tag-new,.tag-custom,.tag-top{position:absolute;top:10px;font-size:11px;font-weight:700;color:#fff;padding:3px 9px;border-radius:4px;letter-spacing:.5px}
.tag-new{left:10px;background:var(--red)}
.tag-custom{right:10px;background:var(--c1)}
.tag-top{left:10px;background:linear-gradient(135deg,#f7a21b,#e64533)}
.tag-new + .tag-top{left:auto;right:10px}
.tag-top + .tag-new{left:56px !important;right:auto !important}
.p-body{padding:15px 16px 16px;display:flex;flex-direction:column;flex:1}
.p-sku{font-size:12px;color:#93a3b5;margin-bottom:4px}
/* 主副标题：默认单行截断 + 省略号（长英文名/中文化学名不再撑破栅格）。
   卡片带 .p-wrap 时改为自动换行、完整展示（参考标题如
   「PLGA-TK-PEG-CHO,聚乳酸-羟基乙酸共聚物-硫缩酮键-聚乙二醇-醛基」）。
   min-width:0 保证在 grid/flex 子项中能被正确压缩，否则长单词会把列撑宽。 */
/* display:block 不可省：.p-name 是 <a>，行内元素上 overflow/ellipsis 不生效，长标题会直接溢出卡片边界 */
.p-name{display:block;font-size:16px;font-weight:700;color:var(--ink);line-height:1.4;min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.p-name:hover{color:var(--c1)}
.p-en{display:block;font-size:13px;color:var(--mut);margin-top:3px;min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 不限制字数：完整展示主副标题 */
.p-card.p-wrap .p-name{white-space:normal;overflow:visible;text-overflow:clip}
.p-card.p-wrap .p-en{white-space:normal;overflow:visible;text-overflow:clip}
.p-tags{display:flex;gap:6px;flex-wrap:nowrap;margin-top:10px;overflow:hidden}
.p-tags li{font-size:12px;color:var(--c1);background:var(--soft);border-radius:4px;padding:2px 8px;flex:none}
.p-foot{margin-top:auto;padding-top:14px}
.p-price-row{display:flex;justify-content:space-between;align-items:center}
.p-price{font-size:18px;font-weight:700;color:var(--red)}
/* 价格小数 .00：比整数部分小一号，更精致 */
.p-price small.dec{font-size:12px}
.pd-price small.dec{font-size:20px;color:var(--red);font-weight:700}
.iq-item .pr small.dec{font-size:11px}
.sr-item .pr small.dec{font-size:12px}
.cart-total b small.dec{font-size:15px}
.cart-table small.dec{font-size:12px}
/* 移动端 .cart-table td 是 display:flex + justify-content:space-between
   （data-th 标签靠左、值靠右）。单元格的值必须包在单一元素里：
   若直接写「裸文本 + <small class="dec">.00</small>」，匿名文本节点与 <small>
   会成为两个 flex 子项被推向两端，渲染成「¥780 ……… .00」，看起来像两个数字。
   小计列因为整体包在 <b> 里，所以一直正常——同表内部分列正常、部分列异常。
   .cell-v 只做兜底不换行，真正的修法在 js/main.js 的模板里。 */
.cart-table .cell-v{white-space:nowrap}
.p-detail{font-size:13px;color:var(--mut);display:inline-flex;align-items:center;gap:4px}
.p-detail:hover{color:var(--c1)}
.p-actions{display:flex;gap:10px;margin-top:12px}
.p-add,.p-buy{flex:1;height:36px;border-radius:6px;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:.2s}
.p-add{border:1px solid var(--c1);color:var(--c1)}
.p-add:hover{background:var(--c1);color:#fff}
.p-buy{background:var(--c1);color:#fff;font-weight:600}
.p-buy:hover{background:var(--c1d)}
.p-add.added{background:#19b57b;border-color:#19b57b;color:#fff}
.p-empty{grid-column:1/-1;text-align:center;color:var(--mut);padding:50px 0;font-size:14px}

/* ============================================================
   定制范围（首页重排版：突出文字内容）
   ============================================================ */
.range-sec{background:url(../images/bj_t.jpg) no-repeat top center; background-size: cover;}
.range-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.range-card{display:flex;gap:16px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px 20px;transition:.25s;position:relative;overflow:hidden}
.range-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--c1);opacity:0;transition:.25s}
.range-card:hover{box-shadow:var(--shadow-h);transform:translateY(-3px)}
.range-card:hover::before{opacity:1}
.range-num{font-size:26px;font-weight:800;color:#d7e4f7;line-height:1;flex:none;font-family:Consolas,monospace;padding-top:2px}
.range-main{flex:1;min-width:0}
.range-name{font-size:16.5px;font-weight:700;color:var(--navy);display:flex;align-items:center;gap:8px}
.range-name .ico{color:var(--c1)}
.range-brief{font-size:13px;color:var(--mut);margin-top:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.range-go{font-size:13px;color:var(--c1);margin-top:10px;display:inline-flex;align-items:center;gap:4px;font-weight:600}

/* ============================================================
   首页新闻区
   ============================================================ */
.news-grid{display:grid;grid-template-columns:1.25fr minmax(0,1fr) minmax(0,1fr);gap:26px}
.news-col-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;padding-bottom:12px;border-bottom:2px solid var(--line);position:relative}
.news-col-h::after{content:"";position:absolute;left:0;bottom:-2px;width:56px;height:2px;background:var(--c1)}
.news-col-h h3{font-size:19px;color:var(--navy)}
.news-col-h a{font-size:13px;color:var(--mut)}
.news-col-h a:hover{color:var(--c1)}
.news-main-card{border-radius:var(--radius);overflow:hidden;position:relative;box-shadow:var(--shadow)}
.news-main-card img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .4s}
.news-main-card:hover img{transform:scale(1.05)}
.news-main-card .cap{position:absolute;left:0;right:0;bottom:0;padding:36px 18px 14px;background:linear-gradient(transparent,rgba(6,26,60,.85));color:#fff}
.news-main-card .cap h4{font-size:16px;line-height:1.5}
.news-main-card .cap span{font-size:12px;color:#b9cbe4}
.news-list li{border-bottom:1px dashed var(--line)}
.news-list a{display:block;padding:11px 2px}
.news-list .t{font-size:14.5px;color:var(--ink);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;transition:.2s}
.news-list a:hover .t{color:var(--c1)}
.news-list .d{font-size:12px;color:#9aabbe;margin-top:2px}

/* ============================================================
   首页新闻区 · 新版（对齐 rxsw 首页：产品动态大图轮播 + 行业新闻/定制资讯双栏）
   ============================================================ */
.news-sec .nsec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:26px}
.news-sec .nsec-head .tt{display:flex;align-items:baseline;gap:12px;min-width:0}
.news-sec .nsec-head h2{font-size:26px;font-weight:800;color:var(--navy);white-space:nowrap}
.news-sec .nsec-head .en{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--mut);white-space:nowrap}
.news-sec .nsec-head .more{display:inline-flex;align-items:center;gap:4px;font-size:14px;font-weight:600;color:var(--ink);white-space:nowrap;transition:color .22s}
.news-sec .nsec-head .more .ico{width:14px;height:14px}
.news-sec .nsec-head .more:hover{color:var(--c1)}
.news-sec .news-dyn{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px;align-items:start}
.news-sec .news-show{position:relative;border-radius:var(--radius);overflow:hidden;background:var(--bg)}
.news-sec .news-show a.show-slide{display:block;transition:opacity .7s}
.news-sec .news-show a.show-slide.hidden-slide{position:absolute;inset:0;opacity:0;pointer-events:none}
.news-sec .news-show img{width:100%;aspect-ratio:14/9;object-fit:cover}
.news-sec .news-show .cap{position:absolute;left:0;right:0;bottom:0;padding:56px 22px 18px;background:linear-gradient(to top,rgba(10,42,94,.92),rgba(10,42,94,.45),transparent)}
.news-sec .news-show .cap h3{color:#fff;font-weight:700;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.news-sec .news-show .cap p{color:#fff;font-size:12px;margin-top:6px;font-weight:600;font-variant-numeric:tabular-nums}
.news-sec .news-show .show-dots{position:absolute;right:18px;bottom:18px;z-index:5;display:flex;gap:6px}
.news-sec .news-show .show-dots button{height:5px;width:12px;border-radius:3px;background:rgba(255,255,255,.35);border:0;padding:0;cursor:pointer;transition:all .3s}
.news-sec .news-show .show-dots button.on{width:26px;background:#fff;}
.news-sec .news-list li{border-bottom:0}
.news-sec .news-list li + li{border-top:1px solid var(--line);padding-top:18px;margin-top:18px}
.news-sec .news-list a{display:flex;gap:14px;padding:0}
.news-sec .news-list .nl-img{width:184px;height:115px;object-fit:cover;border-radius:6px;flex-shrink:0;background:var(--bg)}
.news-sec .news-list h3{line-height:1.55;transition:color .22s}
.news-sec .news-list a:hover h3{color:var(--c1)}
.news-sec .news-list h3.t1{font-size:15.5px;font-weight:700;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.news-sec .news-list h3.t2{font-size:16px;font-weight:400;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.news-sec .news-list .nl-sum{font-size:14px;color:var(--mut);margin-top:6px;line-height:1.7;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.news-sec .news-list .nl-date{font-size:13px;color:var(--mut);margin-top:5px;font-variant-numeric:tabular-nums}
.news-sec .news-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px}
.news-sec-second{padding-top:0}

/* ============================================================
   页脚
   ============================================================ */
.friend-links{background:var(--soft);border-top:1px solid var(--line);padding:14px 0}
.friend-links .row{display:flex;align-items:center;gap:8px 18px;flex-wrap:wrap;font-size:13px}
.friend-links b{color:var(--navy);flex:none}
.friend-links a{color:var(--mut)}
.friend-links a:hover{color:var(--c1)}
.footer{background:var(--navy);color:#aebfd9}
/* 该元素同时带 .container；用简写 padding 会把 .container 的左右 20px 清零，
   导致页脚内容在手机上贴齐屏幕边缘、桌面上比页头内容左移 20px。只设上下内边距。 */
.footer-main{display:grid;grid-template-columns:2fr minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) 1.3fr;gap:45px;padding-top:56px;padding-bottom:46px}
.footer-logo{height:94px;width:auto;margin-bottom:16px;padding:5px 10px}

.footer-brand{ padding-right: 40px;}
.footer-brand p{font-size:13px;line-height:1.9;color:#8fa5c6}
.footer-col h4{color:#fff;font-size:16px;margin-bottom:16px;position:relative;padding-bottom:10px}
.footer-col h4::after{content:"";position:absolute;left:0;bottom:0;width:26px;height:2px;background:var(--cyan)}
.footer-col ul li{margin-bottom:4px}
.footer-col ul a{font-size:13.5px;color:#aebfd9;transition:.2s}
.footer-col ul a:hover{color:#fff;padding-left:4px}
.footer-contact li{display:flex;gap:9px;font-size:13.5px;margin-bottom:11px;line-height:1.7}
.footer-contact .ico{color:var(--cyan);margin-top:5px}
.footer-contact a:hover{color:#fff}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding:16px 0;font-size:12.5px;color:#7e94b6}
.footer-bottom .row{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}

/* 询价篮浮动按钮 */
.inquiry-float{position:fixed;right:26px;bottom:96px;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--c1),var(--c1d));color:#fff;font-size:22px;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px rgba(11,91,211,.45);z-index:180;transition:.2s}
.inquiry-float:hover{transform:scale(1.06)}
.to-top{position:fixed;right:26px;bottom:26px;width:46px;height:46px;border-radius:50%;background:#fff;color:var(--c1);border:1px solid var(--line);font-size:16px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow);z-index:180;opacity:0;visibility:hidden;transition:.25s}
.to-top.show{opacity:1;visibility:visible}
.to-top:hover{background:var(--c1);color:#fff}

/* 询价篮抽屉 */
.inquiry-overlay{position:fixed;inset:0;background:rgba(8,20,40,.45);z-index:300;opacity:0;visibility:hidden;transition:.3s}
.inquiry-overlay.open{opacity:1;visibility:visible}
.inquiry-drawer{position:absolute;top:0;right:0;bottom:0;width:420px;max-width:94vw;background:#fff;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .3s;box-shadow:-10px 0 40px rgba(0,0,0,.18)}
.inquiry-overlay.open .inquiry-drawer{transform:none}
.iq-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--line)}
.iq-head h3{font-size:17px;color:var(--navy)}
.iq-head .ops{display:flex;gap:8px}
.iq-clear,.iq-close{font-size:13px;color:var(--mut);display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border:1px solid var(--line);border-radius:6px;transition:.2s}
.iq-clear:hover{color:var(--red);border-color:var(--red)}
.iq-close:hover{color:var(--c1);border-color:var(--c1)}
.iq-body{flex:1;overflow:auto;padding:14px 20px}
.iq-empty{text-align:center;color:var(--mut);padding:70px 0}
.iq-empty .ico{font-size:40px;color:#c6d4e6;margin-bottom:12px}
.iq-empty p{font-size:15px;font-weight:600;color:var(--ink)}
.iq-empty small{font-size:12.5px}
.iq-item{display:flex;gap:12px;padding:12px;border:1px solid var(--line);border-radius:10px;margin-bottom:12px;align-items:center}
.iq-item img{width:64px;height:64px;object-fit:contain;border:1px solid var(--line);border-radius:8px;flex:none;background:#fff}
.iq-item .inf{flex:1;min-width:0}
.iq-item .nm{font-size:14px;font-weight:600;line-height:1.4;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.iq-item .sk{font-size:12px;color:#93a3b5}
.iq-item .pr{font-size:14px;color:var(--red);font-weight:700;margin-top:3px}
.iq-item .rm{color:#b3c1d1;font-size:15px;padding:6px}
.iq-item .rm:hover{color:var(--red)}
.iq-item .qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:6px;margin-top:6px;overflow:hidden}
.iq-item .qty button{width:26px;height:26px;font-size:14px;color:var(--mut)}
.iq-item .qty button:hover{color:var(--c1)}
.iq-item .qty span{width:34px;text-align:center;font-size:13px}
.iq-foot{border-top:1px solid var(--line);padding:16px 20px;background:var(--bg)}
.iq-foot p{font-size:13px;color:var(--mut);line-height:1.9}
.iq-foot a{color:var(--c1)}
.iq-actions{display:flex;gap:12px;margin-top:12px}
.iq-actions .btn-line,.iq-actions .btn-fill{flex:1;height:42px;border-radius:8px;font-size:14px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:7px}
.iq-actions .btn-line{border:1px solid var(--c1);color:var(--c1)}
.iq-actions .btn-line:hover{background:var(--soft)}
.iq-actions .btn-fill{background:var(--c1);color:#fff}
.iq-actions .btn-fill:hover{background:var(--c1d)}

/* ============================================================
   内页通用
   ============================================================ */
.page-hero{position:relative;background:var(--navy);color:#fff;overflow:hidden}
.page-hero img.bgimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.85}
/* 该元素同时带 .container 与 .inner；原先用简写 padding:64px 0 56px
   会把 .container 的左右 20px 内边距覆盖成 0，文案在手机上贴齐屏幕边缘。
   改为只设上下内边距，左右沿用 .container。 */
.page-hero .inner{position:relative;padding-top:64px;padding-bottom:56px}
.page-hero h1{font-size:34px;margin-bottom:10px}
.page-hero .en{font-size:13px;letter-spacing:2.5px;color:var(--cyan);text-transform:uppercase;font-weight:600;margin-bottom:8px}
.crumb{font-size:13px;color:#b9cbe4;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.crumb a:hover{color:#fff}
.crumb .ico {
    font-size: 16px;
    margin-right: 8px;
}
/* 同上：该元素同时带 .container，只设上下内边距以保留左右留白 */
.layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:40px;padding-top:56px;padding-bottom:72px;align-items:start}
.layout-full{grid-template-columns:minmax(0,1fr);gap:0}
.layout > aside{position:sticky;top:100px;align-self:start;max-height:calc(100vh - var(--hd-h) - 40px);overflow:auto;scrollbar-width:thin;scrollbar-color:#b9cbe4 #f2f6fc}
.layout > aside::-webkit-scrollbar{width:6px}
.layout > aside::-webkit-scrollbar-track{background:#f2f6fc;border-radius:3px}
.layout > aside::-webkit-scrollbar-thumb{background:#b9cbe4;border-radius:3px}
.layout > aside::-webkit-scrollbar-thumb:hover{background:var(--c1)}
.side-nav{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;scrollbar-width:thin;scrollbar-color:#b9cbe4 #f2f6fc}
.side-nav::-webkit-scrollbar{height:5px}
.side-nav::-webkit-scrollbar-track{background:#f2f6fc;border-radius:3px}
.side-nav::-webkit-scrollbar-thumb{background:#b9cbe4;border-radius:3px}
.side-nav::-webkit-scrollbar-thumb:hover{background:var(--c1)}
.side-nav .sn-head{background:linear-gradient(135deg,var(--c1),var(--c1d));color:#fff;padding:18px 20px}
.side-nav .sn-head b{font-size:17px;display:block}
.side-nav .sn-head span{font-size:12px;color:#bcd6f7;letter-spacing:1px}
.side-nav a{display:flex;justify-content:space-between;align-items:center;padding:13px 20px;font-size:14.5px;border-bottom:1px solid var(--line);color:var(--ink);transition:.2s}
.side-nav a .ico{font-size:11px;color:#b6c4d4}
.side-nav a:last-child{border-bottom:none}
.side-nav a:hover,.side-nav a.on{color:var(--c1);background:var(--soft);padding-left:26px}
.side-cta{margin-top:22px;background:linear-gradient(160deg,var(--navy),#103a7c);border-radius:var(--radius);color:#fff;padding:22px 20px;text-align:center}
.side-cta h4{font-size:16px;margin-bottom:8px}
.side-cta p{font-size:12.5px;color:#b9cbe4;margin-bottom:14px}
.side-cta a{display:inline-block;background:#fff;color:var(--c1);font-size:14px;font-weight:600;border-radius:22px;padding:9px 24px}

.content-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:36px 40px;min-width:0}
.content-card > h2.ct{font-size:24px;color:var(--navy);margin-bottom:6px}
.ct-sub{font-size:13px;color:var(--mut);padding-bottom:18px;margin-bottom:24px;border-bottom:1px solid var(--line);display:flex;gap:18px;flex-wrap:wrap}

/* 富文本 */
.richtext{font-size:15px;line-height:1.9;color:#33404e}
.richtext p{margin-bottom:14px}
.richtext h3{font-size:19px;color:var(--navy);margin:28px 0 14px;padding-left:12px;border-left:4px solid var(--c1)}
.richtext h4{font-size:16.5px;color:var(--ink);margin:20px 0 10px}
.richtext ul{margin:0 0 14px}
.richtext ul li{position:relative;padding-left:18px;margin-bottom:6px}
.richtext ul li::before{content:"";position:absolute;left:2px;top:.72em;width:7px;height:7px;border-radius:2px;background:var(--c1)}
.richtext ol{margin:0 0 14px 20px;list-style:decimal}
.richtext ol li{margin-bottom:6px}
.richtext strong{color:var(--navy)}
.richtext img{margin:16px auto;border-radius:8px;max-width:100%}
.richtext table{width:100%;border-collapse:collapse;margin:16px 0 20px;font-size:14px}
.richtext th,.richtext td{border:1px solid var(--line);padding:9px 12px;text-align:left}
.richtext th{background:var(--soft);color:var(--navy)}
.richtext blockquote{border-left:4px solid var(--cyan);background:var(--soft);padding:12px 18px;border-radius:0 8px 8px 0;margin:16px 0;color:var(--mut);font-size:14px}

/* 步骤流程（时间线式） */
.steps{display:flex;flex-direction:column;margin:26px 0 8px}
.step{display:flex;gap:20px;padding:0 0 28px;position:relative}
.step:last-child{padding-bottom:0}
.step::before{content:"";position:absolute;left:26px;top:62px;bottom:6px;width:2px;background:linear-gradient(to bottom,var(--cyan),rgba(11,91,211,.06));border-radius:2px}
.step:last-child::before{display:none}
.step .no{flex:none;width:54px;height:54px;border-radius:50%;background:linear-gradient(135deg,var(--c1),var(--cyan));color:#fff;font-size:17px;font-weight:700;display:flex;align-items:center;justify-content:center;font-family:Consolas,monospace;box-shadow:0 6px 16px rgba(11,91,211,.32);position:relative;z-index:1;margin-top:2px}
.step > div{flex:1;min-width:0;border:1px solid var(--line);border-radius:var(--radius);padding:22px 26px;background:#fff;transition:.25s}
.step > div:hover{box-shadow:var(--shadow-h);transform:translateY(-2px);border-color:#c9ddf6}
.step h4{font-size:17px;color:var(--navy);margin-bottom:6px;display:flex;align-items:center;gap:9px}
.step h4::before{content:"";width:4px;height:16px;border-radius:2px;background:linear-gradient(var(--c1),var(--cyan))}
.step p{font-size:14px;color:var(--mut);line-height:1.85}

/* 联系卡片 */
.contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:22px 0}
.contact-item{display:flex;gap:16px;align-items:flex-start;border:1px solid var(--line);border-radius:var(--radius);padding:20px;transition:.2s}
.contact-item:hover{box-shadow:var(--shadow)}
.contact-item .ic{flex:none;width:48px;height:48px;border-radius:12px;background:var(--soft);color:var(--c1);display:flex;align-items:center;justify-content:center}
.contact-item .ic .ico{width:22px;height:22px}
.contact-item b{font-size:15.5px;color:var(--navy);display:block;margin-bottom:2px}
.contact-item p{font-size:14px;color:var(--mut);line-height:1.7;word-break:break-all}
.contact-item a{color:var(--c1)}

/* 表单 */
.form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}
.form-item{display:flex;flex-direction:column;gap:7px}
.form-item.full{grid-column:1/-1}
.form-item label{font-size:14px;font-weight:600;color:var(--ink)}
.form-item label i{color:var(--red);font-style:normal;margin-left:3px}
.form-item input,.form-item textarea,.form-item select{border:1px solid var(--line);border-radius:8px;padding:11px 14px;outline:none;transition:.2s;background:#fff}
.form-item textarea{min-height:130px;resize:vertical}
.form-item input:focus,.form-item textarea:focus,.form-item select:focus{border-color:var(--c1);box-shadow:0 0 0 3px rgba(11,91,211,.12)}
.form-tip{font-size:12.5px;color:var(--mut)}
.form-submit{margin-top:22px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.btn-primary{background:linear-gradient(135deg,var(--c1),var(--c1d));color:#fff;font-size:15px;font-weight:600;padding:13px 44px;border-radius:28px;display:inline-flex;align-items:center;gap:8px;transition:.2s}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(11,91,211,.35)}
.form-ok{display:none;margin-top:16px;background:#e9f9f1;border:1px solid #9adcbd;color:#14805a;border-radius:8px;padding:13px 18px;font-size:14px}
.form-ok.show{display:block}

/* 产品详情页 */
.pd-top{display:grid;grid-template-columns:360px minmax(0,1fr);grid-template-areas:"gallery info" "files buy";gap:18px 36px;margin-bottom:36px;align-items:stretch}
.pd-top>.pd-gallery{grid-area:gallery}.pd-top>.pd-info{grid-area:info}.pd-top>.pd-files{grid-area:files}.pd-top>.pd-buy{grid-area:buy}
.pd-gallery{border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow:hidden;flex:none;display:flex;flex-direction:column}
/* 产品图固定为正方形比例（1:1），不再随左侧列拉伸变形 */
.pd-gallery .main-img{aspect-ratio:1/1;flex:none;display:flex;align-items:center;justify-content:center;padding:18px;min-height:0}
.pd-gallery .main-img img{max-width:100%;max-height:100%;object-fit:contain}
/* 文件下载区（移到左侧图区下方） */
/* 文件下载区占据左侧列剩余高度，让左右两列视觉更均衡 */
.pd-files{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:18px;flex:1;min-height:260px;display:flex;flex-direction:column}
.pd-files h4{font-size:15px;color:var(--navy);margin-bottom:12px;display:flex;align-items:center;gap:8px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.pd-files h4 .ico{color:var(--c1)}
/* 文件条目均分剩余高度且保持节奏一致，与右侧信息栏视觉对齐 */
.pd-file-list{display:flex;flex-direction:column;gap:10px;flex:1;justify-content:space-between}
.pd-file-item{display:flex;align-items:center;gap:12px;padding:0 14px;background:var(--bg);border:1px solid transparent;border-radius:8px;transition:.2s;flex:1;min-height:46px}
.pd-file-item:hover{background:var(--soft);border-color:#cfE2f7;transform:translateX(2px)}
.pd-file-item .ico{color:var(--c1);flex:none;width:22px;height:22px}
.pd-file-item span{flex:1;font-size:14px;color:var(--ink);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pd-file-item .dl{font-size:13px;color:var(--c1);font-weight:600;flex:none}
.pd-file-item .dl:hover{text-decoration:underline}
.pd-info h1{font-size:26px;color:var(--navy);line-height:2.2}
.pd-en{font-size:15px;color:var(--mut);margin:8px 0 16px}
.pd-meta{border-top:1px dashed var(--line);border-bottom:1px dashed var(--line);padding:14px 0;margin-bottom:18px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 20px}
.pd-meta div{font-size:14px;color:var(--mut)}
.pd-meta b{color:var(--ink);font-weight:600}
.pd-price-row{display:flex;align-items:baseline;gap:10px;margin-bottom:20px}
.pd-price{font-size:30px;font-weight:800;color:var(--red)}
.pd-price small{font-size:14px;color:var(--mut);font-weight:400}
.pd-tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.pd-tags a{font-size:13px;color:var(--c1);background:var(--soft);border-radius:5px;padding:4px 12px}
.pd-tags a:hover{background:var(--c1);color:#fff}
.pd-btns{display:flex;gap:14px;flex-wrap:wrap}
.btn-cart,.btn-inq{height:48px;padding:0 34px;border-radius:26px;font-size:15px;font-weight:600;display:inline-flex;align-items:center;gap:9px;transition:.2s}
.btn-cart{border:1.5px solid var(--c1);color:var(--c1)}
.btn-cart:hover{background:var(--soft)}
.btn-cart.added{background:#19b57b;border-color:#19b57b;color:#fff}
.btn-inq{background:linear-gradient(135deg,var(--c1),var(--c1d));color:#fff}
.btn-inq:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(11,91,211,.35)}
.pd-notice{margin-top:18px;font-size:13px;color:var(--mut);background:var(--bg);border-radius:8px;padding:12px 16px;line-height:1.8}
.pd-notice a{color:var(--c1)}
.pd-tabs{display:flex;border-bottom:2px solid var(--line);margin-bottom:26px;gap:4px;flex-wrap:wrap}
.pd-tabs button{padding:12px 24px;font-size:15.5px;font-weight:600;color:var(--mut);position:relative;transition:.2s}
.pd-tabs button::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:3px;background:var(--c1);transform:scaleX(0);transition:.25s}
.pd-tabs button.on{color:var(--c1)}
.pd-tabs button.on::after{transform:scaleX(1)}
.pd-pane{display:none}
.pd-pane.on{display:block}

/* 参数表 */
.spec-table{width:100%;border-collapse:collapse;font-size:14px;margin-bottom:8px}
.spec-table th,.spec-table td{border:1px solid var(--line);padding:10px 14px;text-align:left}
.spec-table th{background:var(--soft);color:var(--navy);width:180px;font-weight:600}

/* 文献库 / 文件下载 */
.lit-list li{display:flex;gap:12px;align-items:flex-start;padding:13px 4px;border-bottom:1px dashed var(--line)}
.lit-list .ico{color:var(--c1);margin-top:5px}
.lit-list a{font-size:14.5px;line-height:1.6;color:var(--ink)}
.lit-list a:hover{color:var(--c1);text-decoration:underline}
.lit-list .src{display:block;font-size:12px;color:#9aabbe;margin-top:2px}
/* ---------- 相关推荐：图文卡片 ---------- */
.rel-news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.rel-news-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;transition:.22s;min-width:0}
.rel-news-card:hover{border-color:var(--c1);box-shadow:var(--shadow);transform:translateY(-3px)}
.rel-news-card .rnc-img{aspect-ratio:16/9;overflow:hidden;background:var(--bg)}
.rel-news-card .rnc-img img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
.rel-news-card:hover .rnc-img img{transform:scale(1.05)}
.rel-news-card .rnc-body{padding:12px 14px;display:flex;flex-direction:column;gap:6px;flex:1}
.rel-news-card .rnc-t{font-size:14px;color:var(--ink);line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;transition:color .2s}
.rel-news-card:hover .rnc-t{color:var(--c1)}
.rel-news-card .rnc-d{font-size:12px;color:#9aabbe;margin-top:auto}
@media (max-width:900px){
  .rel-news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:560px){
  .rel-news-grid{grid-template-columns:minmax(0,1fr)}
}

/* ---------- 小工具：脂质体数量浓度计算器 ---------- */
.tool-box{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:26px 28px}
.tool-title{font-size:16px;font-weight:700;color:var(--c1);display:flex;align-items:center;gap:8px;margin-bottom:6px}
.tool-title .ico{width:18px;height:18px}
.tool-name{font-size:18px;font-weight:700;color:var(--navy);margin-bottom:20px}
.tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 28px}
.tool-field{display:flex;flex-direction:column;gap:7px;min-width:0}
.tool-field label{font-size:14px;color:var(--ink);font-weight:600}
.tool-input{display:flex;align-items:center;gap:10px}
.tool-input input{flex:1;min-width:0;height:42px;border:1px solid var(--line);border-radius:8px;padding:0 14px;font-size:14px;color:var(--ink);background:#fff;transition:border-color .2s}
.tool-input input:focus{outline:none;border-color:var(--c1)}
.tool-input input[readonly]{background:var(--soft);color:var(--c1);font-weight:700}
.tool-input .unit{flex:none;font-size:13.5px;color:var(--mut);min-width:34px}
.tool-field .hint{font-size:12px;color:#9aabbe;line-height:1.5}
.tool-divider{height:1px;background:var(--line);margin:18px 0}
.tool-actions{display:flex;gap:14px;margin-top:22px}
.tool-btn{min-width:110px;height:40px;padding:0 26px;border-radius:8px;font-size:14.5px;font-weight:600;border:1px solid var(--c1);background:#fff;color:var(--c1);transition:.2s}
.tool-btn:hover{background:var(--soft)}
.tool-btn.primary{background:var(--c1);color:#fff}
.tool-btn.primary:hover{background:var(--c1d)}
.tool-note{margin-top:18px;font-size:12.5px;color:var(--mut);line-height:1.8;border-top:1px dashed var(--line);padding-top:14px}

/* 小工具：四个计算器子标签 */
.tool-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px;border-bottom:1px solid var(--line);padding-bottom:14px}
.tool-tab{height:36px;padding:0 16px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--mut);font-size:13.5px;font-weight:600;white-space:nowrap;transition:.2s;cursor:pointer}
.tool-tab:hover{border-color:var(--c1);color:var(--c1);background:var(--soft)}
.tool-tab.on{background:var(--c1);border-color:var(--c1);color:#fff}
.tool-pane{display:none}
.tool-pane.on{display:block}
/* 单位下拉（表格里 D4 的 μmol/L ↔ mg/mL 序列） */
.tool-input .unit-sel{flex:none;height:42px;border:1px solid var(--line);border-radius:8px;padding:0 10px;font-size:13.5px;color:var(--ink);background:#fff;cursor:pointer;transition:border-color .2s}
.tool-input .unit-sel:focus{outline:none;border-color:var(--c1)}
@media (max-width:640px){
  .tool-box{padding:18px 16px}
  .tool-grid{grid-template-columns:minmax(0,1fr);gap:14px}
  .tool-actions{flex-wrap:wrap}
  .tool-btn{flex:1;min-width:0}
  .tool-tabs{gap:6px}
  .tool-tab{flex:1 1 auto;padding:0 10px;font-size:12.5px}
}

.file-cards{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.file-card{display:flex;gap:14px;align-items:center;border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;transition:.2s;background:#fff}
.file-card:hover{box-shadow:var(--shadow);border-color:var(--c1)}
.file-card .fc-ic{flex:none;width:50px;height:50px;border-radius:10px;background:var(--soft);color:var(--c1);display:flex;align-items:center;justify-content:center}
.file-card .fc-ic .ico{width:24px;height:24px}
.file-card b{font-size:15px;color:var(--navy);display:block}
.file-card span{font-size:12.5px;color:var(--mut)}
.file-card .dl{margin-left:auto;flex:none;font-size:13px;color:var(--c1);border:1px solid var(--c1);border-radius:18px;padding:5px 16px;display:inline-flex;align-items:center;gap:5px}
.file-card .dl:hover{background:var(--c1);color:#fff}

/* 相关推荐 */
.rel-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;margin-top:22px}

/* 新闻列表页 */
.news-page-grid{display:grid;gap:18px}
.news-row{display:grid;grid-template-columns:300px minmax(0,1fr);gap:24px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff;transition:.2s}
.news-row:hover{box-shadow:var(--shadow-h)}
.news-row .nr-img{overflow:hidden}
.news-row .nr-img img{width:100%;height:100%;object-fit:cover;aspect-ratio:16/10;transition:transform .4s}
.news-row:hover .nr-img img{transform:scale(1.05)}
.news-row .nr-body{padding:22px 24px 22px 0;display:flex;flex-direction:column}
.news-row h3{font-size:18px;color:var(--ink);line-height:1.5}
.news-row:hover h3{color:var(--c1)}
.news-row .nr-meta{display:flex;gap:14px;font-size:12.5px;color:#9aabbe;margin:8px 0 10px;align-items:center}
.news-row .nr-meta .cat{color:var(--c1);background:var(--soft);border-radius:4px;padding:2px 9px}
.news-row p{font-size:14px;color:var(--mut);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.news-row .nr-go{margin-top:auto;padding-top:10px;font-size:13px;color:var(--c1);font-weight:600;display:inline-flex;align-items:center;gap:5px}

/* 新闻详情 */
.news-detail-h{text-align:center;max-width:860px;margin:0 auto 30px}
.news-detail-h h1{font-size:28px;color:var(--navy);line-height:1.5;margin-bottom:14px}
.news-detail-h .meta{font-size:13px;color:#9aabbe;display:flex;justify-content:center;gap:20px;flex-wrap:wrap}
.article-body{font-size:15.5px;line-height:2;color:#33404e}
.article-body p{margin-bottom:16px;text-indent:2em}
.article-body img{border-radius:10px;margin:20px auto;width:100%;aspect-ratio:16/9;object-fit:cover}
.article-body h2{font-size:22px;color:var(--navy);margin:32px 0 14px;text-indent:0}
.article-body h3{font-size:19px;color:var(--navy);margin:28px 0 14px;text-indent:0}
.news-nav{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line);margin-top:36px;padding-top:22px;font-size:14px}
.news-nav a{color:var(--mut);max-width:46%}
.news-nav a:hover{color:var(--c1)}
.news-nav .nx{text-align:right;margin-left:auto}
.news-nav .nv{display:inline-flex;align-items:center;gap:6px;flex:none}
/* 文献详情：分类标签（置于居中标题上方） */
.lit-detail-tag{display:inline-block;font-size:13px;color:var(--c1);background:rgba(11,91,211,.08);border-radius:999px;padding:4px 14px;margin-bottom:12px}

/* 分页 */
.pagination{display:flex;justify-content:center;gap:8px;margin-top:40px}
.pagination a,.pagination span{min-width:38px;height:38px;border:1px solid var(--line);border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;color:var(--mut);padding:0 10px;background:#fff}
.pagination a:hover{border-color:var(--c1);color:var(--c1)}
.pagination .on{background:var(--c1);border-color:var(--c1);color:#fff;font-weight:600}

/* 定制服务汇总页 */
.cs-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.cs-card{border:1px solid var(--line);border-radius:var(--radius);padding:26px 24px;background:#fff;transition:.25s;display:flex;flex-direction:column;position:relative;overflow:hidden}
.cs-card::after{content:"";position:absolute;right:-30px;top:-30px;width:110px;height:110px;border-radius:50%;background:var(--soft);transition:.25s}
.cs-card:hover{box-shadow:var(--shadow-h);transform:translateY(-4px)}
.cs-card:hover::after{background:#dcebfb;transform:scale(1.3)}
.cs-card .cs-ic{width:54px;height:54px;border-radius:14px;background:linear-gradient(135deg,var(--c1),var(--cyan));color:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:16px;position:relative;z-index:1}
.cs-card .cs-ic .ico{width:26px;height:26px}
.cs-card .cs-num{position:absolute;right:18px;top:14px;font-size:13px;color:#b9cbe4;font-family:Consolas,monospace;z-index:1}
.cs-card h3{font-size:17.5px;color:var(--navy);margin-bottom:8px;position:relative;z-index:1}
.cs-card p{font-size:13.5px;color:var(--mut);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;position:relative;z-index:1}
.cs-card .cs-go{margin-top:16px;font-size:13.5px;color:var(--c1);font-weight:600;display:inline-flex;align-items:center;gap:5px;position:relative;z-index:1}
/* 首页定制范围横排卡片 */
.cs-card.cs-hz{flex-direction:row;gap:18px;align-items:flex-start;padding:24px 22px}
.cs-card.cs-hz .cs-ic{width:52px;height:52px;border-radius:12px;margin-bottom:0;flex:none;margin-top:2px;
  background:linear-gradient(135deg,#eef4fb,#dfeafa);box-shadow:inset 0 0 0 1px rgba(11,91,211,.08);background: linear-gradient(135deg, var(--c1), var(--cyan));}
.cs-card.cs-hz .cs-ic .ico{width:28px;height:28px}
.cs-card.cs-hz .cs-ic img{max-width:78%;max-height:78%}
.cs-card.cs-hz .cs-body{display:flex;flex-direction:column;flex:1;min-width:0;position:relative;z-index:1}
.cs-card.cs-hz h3{font-size:16.5px;margin-bottom:7px}
.cs-card.cs-hz p{-webkit-line-clamp:2;margin-bottom:0}
.cs-card.cs-hz .cs-go{margin-top:auto;padding-top:13px}
/* 定制服务汇总页（18 类） */
.cs-intro{font-size:14.5px;line-height:1.9;color:var(--mut);margin-bottom:30px;padding:20px 24px;background:var(--soft);border-radius:var(--radius);border-left:3px solid var(--c1)}
/* ===== 定制服务总览卡片（图片+介绍+查看详情） ===== */
.cs-grid-18{gap:20px}
.cs-grid-18 .cs-card{padding:0;scroll-margin-top:100px}
.cs-grid-18 .cs-card::after{display:none}
.cs-pic{position:relative;height:150px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#f2f7fd 0%,#e4eefa 55%,#d8e8fa 100%);overflow:hidden}
.cs-pic::before{content:"";position:absolute;left:-34px;bottom:-44px;width:120px;height:120px;border-radius:50%;background:rgba(11,91,211,.07)}
.cs-pic::after{content:"";position:absolute;right:-26px;top:-30px;width:88px;height:88px;border-radius:50%;background:rgba(24,183,212,.10)}
.cs-pic img{max-width:96px;max-height:96px;position:relative;z-index:1;transition:transform .35s;filter:drop-shadow(0 6px 14px rgba(10,42,94,.14))}
.cs-card:hover .cs-pic img{transform:scale(1.1)}
.cs-grid-18 .cs-num{position:absolute;right:16px;top:12px;z-index:2;font-size:12.5px;color:#9db6da;font-family:Consolas,monospace;font-weight:700}
.cs-bd{display:flex;flex-direction:column;flex:1;padding:18px 20px 20px}
.cs-grid-18 .cs-card h3{font-size:16.5px;margin-bottom:7px}
.cs-grid-18 .cs-card p{-webkit-line-clamp:2}
.cs-grid-18 .cs-go{margin-top:auto;padding-top:14px}
/* 图标型 cs-ic 容器（首页等横向卡片）：改为浅色底 + 图片图标 */
.cs-ic img{max-width:64%;max-height:64%;object-fit:contain;display:block}
/* 定制明细区块（锚点目标） */
.cs-sec{padding:28px 0;border-top:1px solid var(--line);scroll-margin-top:100px}
.cs-sec:first-of-type{border-top:none;padding-top:8px}
.cs-sec-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.cs-sec-head .cs-sec-num{font-family:Consolas,monospace;font-size:13px;color:#fff;background:var(--c1);border-radius:6px;padding:4px 9px;flex:none}
.cs-sec-head h3{font-size:19px;color:var(--navy);margin:0}
.cs-sec>p{font-size:14px;line-height:1.9;color:var(--mut);margin-bottom:14px}
.cs-sec ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px;margin-bottom:8px}
.cs-sec ul li{font-size:13.5px;color:var(--mut);padding-left:16px;position:relative;line-height:1.75}
.cs-sec ul li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:var(--c1)}

/* 定制详情页 banner */
.cs-banner{border-radius:var(--radius);overflow:hidden;margin-bottom:28px}
.cs-banner img{width:100%;aspect-ratio:16/9;object-fit:cover}

/* FAQ */
.faq-item{border:1px solid var(--line);border-radius:var(--radius);margin-bottom:14px;overflow:hidden;background:#fff}
.faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:17px 22px;font-size:15.5px;font-weight:600;color:var(--ink);text-align:left}
.faq-q .ico{color:var(--c1);transition:transform .25s;flex:none}
.faq-item.open .faq-q{color:var(--c1)}
.faq-item.open .faq-q .ico{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease}
.faq-a .inner{padding:0 22px 18px;font-size:14.5px;color:var(--mut);line-height:1.9}

/* 标签聚合 */
.tag-cloud{display:flex;flex-wrap:wrap;gap:10px}
.tag-cloud a{font-size:13.5px;color:var(--mut);background:var(--bg);border:1px solid var(--line);border-radius:18px;padding:6px 16px;transition:.2s}
.tag-cloud a:hover{color:var(--c1);border-color:var(--c1);background:var(--soft)}

/* 购物车/结算页 */
.cart-table{width:100%;border-collapse:collapse;font-size:14px}
.cart-table th{background:var(--soft);color:var(--navy);padding:12px 14px;text-align:left;border:1px solid var(--line)}
.cart-table td{border:1px solid var(--line);padding:12px 14px;vertical-align:middle}
.cart-prod{display:flex;align-items:center;gap:12px;min-width:220px}
.cart-prod img{width:58px;height:58px;object-fit:contain;border:1px solid var(--line);border-radius:8px;background:#fff;flex:none}
.cart-prod .nm{font-weight:600;font-size:14px}
.cart-prod .sk{font-size:12px;color:#93a3b5}
.cart-qty{display:inline-flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.cart-qty button{width:30px;height:30px;color:var(--mut)}
.cart-qty button:hover{color:var(--c1)}
.cart-qty span{width:40px;display:flex;align-items:center;justify-content:center;font-size:14px}
.cart-rm{color:#b3c1d1}
.cart-rm:hover{color:var(--red)}
.cart-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;border:1px solid var(--line);border-radius:var(--radius);padding:18px 22px;margin-top:18px;background:var(--bg);flex-wrap:wrap}
.cart-total{font-size:15px;color:var(--mut)}
.cart-total b{font-size:24px;color:var(--red);font-weight:800;margin:0 4px}
/* 三个大按钮（清空 / 继续购物 / 结算·提交订单）合计需约 480px，
   原先不换行会撑破 .cart-bar，故允许换行 */
.cart-bar .acts{display:flex;gap:12px;flex-wrap:wrap}
.btn-line-lg,.btn-fill-lg{height:46px;padding:0 32px;border-radius:24px;font-size:15px;font-weight:600;display:inline-flex;align-items:center;gap:8px}
.btn-line-lg{border:1.5px solid var(--c1);color:var(--c1)}
.btn-line-lg:hover{background:var(--soft)}
.btn-fill-lg{background:linear-gradient(135deg,var(--c1),var(--c1d));color:#fff}
.btn-fill-lg:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(11,91,211,.35)}
.cart-empty{text-align:center;padding:80px 0;color:var(--mut)}
.cart-empty .ico{font-size:52px;color:#c6d4e6;margin-bottom:14px}
.cart-empty p{font-size:16px;font-weight:600;color:var(--ink);margin-bottom:6px}
.cart-empty a{color:var(--c1)}

/* 搜索结果 */
.search-result-head{font-size:15px;color:var(--mut);margin-bottom:22px}
.search-result-head b{color:var(--c1);font-size:17px}
.sr-item{display:flex;gap:18px;border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:14px;background:#fff;transition:.2s;align-items:center}
.sr-item:hover{box-shadow:var(--shadow)}
.sr-item img{width:84px;height:84px;object-fit:contain;border:1px solid var(--line);border-radius:8px;flex:none;background:#fff}
.sr-item .inf{flex:1;min-width:0}
/* 主副标题与分类行统一单行截断，长英文名/中文化学名不撑破行 */
.sr-item .nm{font-size:16px;font-weight:700;color:var(--ink);display:block;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sr-item .nm:hover{color:var(--c1)}
.sr-item .mt{font-size:12.5px;color:#9aabbe;margin:3px 0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sr-item .tg{font-size:12px;color:var(--c1)}
.sr-item .pr{font-size:17px;color:var(--red);font-weight:700;flex:none}
mark{background:#ffe9a8;padding:0 2px;border-radius:2px}

/* 网站地图 */
.sitemap-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.sitemap-box{border:1px solid var(--line);border-radius:var(--radius);padding:24px;background:#fff}
.sitemap-box h3{font-size:17px;color:var(--navy);margin-bottom:14px;padding-bottom:10px;border-bottom:2px solid var(--soft);display:flex;align-items:center;gap:8px}
.sitemap-box h3 .ico{color:var(--c1)}
.sitemap-box ul li{margin-bottom:9px}
.sitemap-box ul a{font-size:14px;color:var(--mut)}
.sitemap-box ul a:hover{color:var(--c1);padding-left:4px;transition:.2s}

/* 合作单位 */
.partner-reg{margin-bottom:8px}
.partner-reg h4{font-size:16px;color:var(--c1);margin:18px 0 8px}
.partner-reg p{font-size:14.5px;color:#33404e;line-height:2}

/* 组织架构 · 部门矩阵（放射式布局） */
.org-wrap{margin:26px 0 10px;padding:30px 24px;background:linear-gradient(180deg,var(--soft),#fff 78%);border:1px solid var(--line);border-radius:var(--radius);position:relative;overflow:hidden}
.org-wrap::before{content:"";position:absolute;left:50%;top:50%;width:460px;height:460px;transform:translate(-50%,-50%);border-radius:50%;border:1px dashed #cfe0f3;pointer-events:none}
.org-core{width:132px;height:132px;margin:0 auto 30px;border-radius:50%;background:linear-gradient(135deg,var(--c1),var(--cyan));color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;position:relative;z-index:2;box-shadow:0 12px 30px rgba(11,91,211,.28);text-align:center}
.org-core .ico{width:28px;height:28px}
.org-core b{font-size:16px;letter-spacing:.5px}
.org-core span{font-size:11.5px;opacity:.85;letter-spacing:1px}
.org-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;position:relative;z-index:2}
.org-item{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:11px;padding:15px 16px;transition:.22s}
.org-item:hover{border-color:var(--c1);box-shadow:0 8px 22px rgba(11,91,211,.12);transform:translateY(-3px)}
.org-item .org-ic{width:38px;height:38px;border-radius:10px;background:var(--soft);color:var(--c1);display:flex;align-items:center;justify-content:center;flex:none}
.org-item .org-ic .ico{width:20px;height:20px}
.org-item .org-tx{display:flex;flex-direction:column;min-width:0}
.org-item .org-tx b{font-size:14.5px;color:var(--navy);line-height:1.4}
.org-item .org-tx span{font-size:12px;color:#8fa2b8;margin-top:3px}

/* 底部 · 到访与联系 */
.visit-block{margin-top:26px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff}
.visit-map{position:relative;height:280px;background:var(--soft);overflow:hidden}
.visit-map img{width:100%;height:100%;object-fit:cover;display:block}
.visit-map .vm-pin{position:absolute;left:50%;top:50%;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;gap:6px;z-index:2}
.visit-map .vm-pin .ico{width:34px;height:34px;color:#e0483a;filter:drop-shadow(0 4px 8px rgba(0,0,0,.25))}
.visit-map .vm-pin b{background:rgba(255,255,255,.96);color:var(--navy);font-size:12.5px;padding:4px 10px;border-radius:20px;white-space:nowrap;box-shadow:0 3px 10px rgba(0,0,0,.14)}
.visit-info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
.visit-info .vi{padding:16px 22px;border-top:1px solid var(--line);border-right:1px solid var(--line);display:flex;align-items:flex-start;gap:11px}
.visit-info .vi:nth-child(2n){border-right:none}
.visit-info .vi .ico{width:17px;height:17px;color:var(--c1);flex:none;margin-top:3px}
.visit-info .vi .vt{display:flex;flex-direction:column;gap:3px;min-width:0}
.visit-info .vi .vt b{font-size:13px;color:#8fa2b8;font-weight:500}
.visit-info .vi .vt span,.visit-info .vi .vt a{font-size:14.5px;color:var(--ink);font-weight:600;line-height:1.55;word-break:break-all}
.visit-info .vi .vt a:hover{color:var(--c1)}

/* 提示条 */
.notice-bar{background:var(--soft);border-left:4px solid var(--c1);border-radius:0 8px 8px 0;padding:14px 18px;font-size:14px;color:var(--mut);margin:18px 0;line-height:1.9}

/* ============================================================
   2026-09 修改新增
   ============================================================ */
/* 页脚品牌：logo + 中英文名称 */
.footer-brand .fb-logo{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.footer-brand .fb-logo img{height:60px;width:auto;flex:none;margin:0;padding:0}
.footer-brand .fb-logo .fb-name{font-size:22px;font-weight:600;color:#fff;letter-spacing:1px;line-height:1.25;display:block}
.footer-brand .fb-logo .fb-sub{font-size:12px;color:#8fa5c6;letter-spacing:.5px;text-transform:uppercase;line-height:1.25;display:block; margin-top: 4px;}

/* 产品详情：上传时间 */
.pd-date{display:flex;align-items:center;gap:6px;font-size:13.5px;color:var(--mut);margin:0 0 14px}
.pd-date .ico{color:var(--c1)}

/* 产品详情：货号 / 规格 / 价格表 */
.pd-specs{width:100%;border-collapse:collapse;margin:0 0 20px;font-size:14.5px; margin-top: -32px;}
.pd-specs caption{caption-side:top;text-align:left;font-size:13.5px;color:var(--mut);padding-bottom:8px}
.pd-specs th{background:var(--soft);color:var(--navy);padding:11px 14px;text-align:left;font-weight:700;border:1px solid var(--line)}
.pd-specs td{border:1px solid var(--line);padding:11px 14px;color:var(--ink)}
.pd-specs tr:nth-child(even) td{background:var(--bg)}
.pd-specs .mono{color:var(--navy);font-weight:600}
.pd-specs .price{color:var(--red);font-weight:700}
.pd-specs .inq-btn{display:inline-flex;align-items:center;gap:5px;background:none;border:none;padding:0;font:inherit;font-weight:700;color:var(--red);cursor:pointer;border-bottom:1px dashed rgba(230,69,51,.55);line-height:1.4;transition:color .2s,border-color .2s}
.pd-specs .inq-btn:hover{color:#b8341f;border-bottom-color:#b8341f}
.pd-specs .inq-btn .ico{font-size:13px}
.pd-specs-note{font-size:12.5px;color:#9aabbe;margin:-10px 0 18px}

/* 列表分页器 */
.pager{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:30px;flex-wrap:wrap;list-style:none;padding:0}
.pager li{list-style:none;margin:0;padding:0}
.pager button,.pager .page-linkdata{min-width:38px;height:38px;padding:0 12px;border-radius:8px;border:1px solid var(--line);background:#fff;font-size:14px;color:var(--ink);transition:.2s;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;cursor:pointer;box-sizing:border-box}
.pager button:hover:not(:disabled),.pager a.page-linkdata:hover{border-color:var(--c1);color:var(--c1)}
.pager button.on,.pager li.active .page-linkdata{background:var(--c1);border-color:var(--c1);color:#fff;font-weight:700}
.pager button:disabled,.pager li.disabled .page-linkdata{opacity:.4;cursor:default}
.pager li.active .page-linkdata{opacity:1;cursor:default}
.pager .pg-info{width:100%;text-align:center;font-size:13px;color:var(--mut);margin-top:4px}

/* 相关资讯板块（定制栏目/详情页通用） */
.rel-news-sec{margin-top:44px}
.rel-news-sec .news-list{background:#fff;border:1px solid var(--line);border-radius:10px;padding:6px 20px}

/* 文献资料页：列表化 */
.lit-row{display:grid;grid-template-columns:300px minmax(0,1fr);gap:24px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff;transition:.2s;margin-bottom:18px}
.lit-row:hover{box-shadow:var(--shadow-h)}
.lit-row .lr-img{overflow:hidden;background:var(--soft)}
.lit-row .lr-img img{width:100%;height:100%;object-fit:cover;aspect-ratio:16/10;transition:transform .4s}
.lit-row:hover .lr-img img{transform:scale(1.05)}
.lit-row .lr-body{padding:20px 24px 20px 0;display:flex;flex-direction:column}
.lit-row .lr-tag{align-self:flex-start;font-size:12px;color:var(--c1);background:var(--soft);border-radius:4px;padding:2px 9px;margin-bottom:8px}
.lit-row h3{font-size:16.5px;color:var(--ink);line-height:1.55}
.lit-row:hover h3{color:var(--c1)}
.lit-row .lr-src{font-size:12.5px;color:#9aabbe;margin-top:8px}
.lit-row .lr-go{margin-top:auto;padding-top:10px;font-size:13px;color:var(--c1);font-weight:600;display:inline-flex;align-items:center;gap:5px}

/* 侧栏聚合标签卡片 */
.side-tags{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-top:20px}
.side-tags .sn-head{background:linear-gradient(135deg,var(--c1),var(--c1d));color:#fff;padding:16px 20px}
.side-tags .sn-head b{font-size:16px;display:block}
.side-tags .sn-head span{font-size:12px;color:#bcd6f7;letter-spacing:1px}
.side-tags .tag-cloud{padding:16px 18px}

/* 内容栏底部 · 相关资讯（聚合标签 + 最近新闻 5~6 条） */
.rel-news{margin-top:30px;border-top:1px solid var(--line);padding-top:24px}
.rel-news-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.rel-news-head h3{font-size:18px;color:var(--navy);display:flex;align-items:center;gap:8px}
.rel-news-head h3 .ico{color:var(--c1)}
.rel-news-head .more{font-size:13.5px;color:var(--c1);font-weight:600;display:inline-flex;align-items:center;gap:5px}
.rel-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.rel-tags a{font-size:12.5px;color:var(--c1);background:var(--soft);border:1px solid #d7e6f8;border-radius:16px;padding:4px 13px;transition:.2s}
.rel-tags a:hover{background:var(--c1);color:#fff;border-color:var(--c1)}
/* 相关资讯/相关推荐：单列排布，前置品牌蓝小点修饰（原两列，且 --c2 未定义导致小点不显示） */
.rel-news-list{display:grid;grid-template-columns:minmax(0,1fr);gap:0}
.rel-news-list li{display:flex;align-items:flex-start;gap:10px;min-width:0;line-height:1.6;padding:10px 4px;border-bottom:1px dashed var(--line);transition:background .2s}
.rel-news-list li:last-child{border-bottom:none}
.rel-news-list li:hover{background:var(--soft)}
.rel-news-list li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--c1);box-shadow:0 0 0 3px rgba(11,91,211,.12);flex:none;margin-top:10px}
.rel-news-list a{font-size:14px;color:var(--ink);min-width:0;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;transition:.2s}
.rel-news-list a:hover{color:var(--c1)}
.rel-news-list .rn-date{font-size:12.5px;color:#9aabbe;flex:none;margin-left:auto;padding-left:10px}

/* ============================================================
   确认弹框（危险操作二次确认）
   目前用于「清空询价篮」——批量、不可撤销的删除。
   单条删除刻意不加确认：确认框滥用会让用户形成无脑点「确定」的习惯，
   反而削弱真正危险操作的警示作用（详见 js/main.js 的 confirmBox 注释）。
   结构由 JS 按需注入（.cf-overlay 只在需要时创建），故此处只管样式。
   z-index 400 高于询价篮抽屉的 300，保证从抽屉里唤起时能盖住抽屉。
   ============================================================ */
.cf-overlay{position:fixed;inset:0;background:rgba(8,20,40,.5);z-index:400;
  display:flex;align-items:center;justify-content:center;padding:20px;
  opacity:0;visibility:hidden;transition:opacity .22s,visibility .22s}
.cf-overlay.open{opacity:1;visibility:visible}
.cf-box{width:100%;max-width:360px;background:#fff;border-radius:14px;
  padding:26px 24px 20px;text-align:center;
  box-shadow:0 20px 50px rgba(10,42,94,.28);
  transform:translateY(12px) scale(.97);transition:transform .24s}
.cf-overlay.open .cf-box{transform:none}
.cf-ico{width:52px;height:52px;margin:0 auto 14px;border-radius:50%;
  background:#fdecea;color:var(--red);
  display:flex;align-items:center;justify-content:center}
.cf-ico svg{width:26px;height:26px;display:block}
.cf-title{font-size:17px;font-weight:700;color:var(--navy);margin-bottom:8px}
.cf-text{font-size:14px;line-height:1.7;color:var(--mut)}
.cf-text b{color:var(--ink)}
.cf-acts{display:flex;gap:10px;margin-top:22px}
.cf-acts button{flex:1;height:44px;border-radius:9px;font-size:14.5px;font-weight:600;
  display:inline-flex;align-items:center;justify-content:center;transition:.2s}
.cf-cancel{border:1px solid var(--line);color:var(--mut);background:#fff}
.cf-cancel:hover{border-color:var(--c1);color:var(--c1);background:var(--soft)}
.cf-ok{background:var(--red);color:#fff}
.cf-ok:hover{background:#cf3a29}

/* ============================================================
   响应式
   ============================================================ */
@media (max-width:1280px){
  .nav-link{padding:0 12px;font-size:16px}
  .nav-link::after{left:12px;right:12px}
  /* 窄桌面（1025~1280px，桌面导航在 ≤1024px 隐藏）下导航项间距收窄，
     660px 面板居中后左右余量不足，故压缩到 460px 并收紧内边距 */
  .drop-mega{width:min(460px,calc(100vw - 32px));padding:14px 14px 12px}
  .drop-mega .dm-head b{font-size:15px}
  .drop-mega .dm-head span{display:none}
  .drop-mega .dm-head{padding-bottom:10px;margin-bottom:10px}
  .drop-mega .dm-grid{gap:2px 8px}
  .drop-mega .dm-grid a{align-items:flex-start;gap:7px;padding:7px 8px;font-size:13px}
  .drop-mega .dm-grid a i{width:20px;height:20px;font-size:10.5px;border-radius:5px;margin-top:1px}
}
@media (max-width:1180px){
  .p-grid,.rel-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .rel-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .footer-main{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:30px}
  .cs-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:1024px){
  .main-nav{display:none}
  .menu-toggle{display:inline-flex}
  .hd-only{display:none}
  .range-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .news-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .news-sec .news-dyn,.news-sec .news-two{grid-template-columns:minmax(0,1fr)}
  .news-sec .news-dyn{gap:28px}
  .news-sec .news-two{gap:32px}
  .layout{grid-template-columns:minmax(0,1fr);gap:26px}
  .layout > aside{position:static;top:auto;max-height:none;overflow:visible;min-width:0}
  .side-nav{position:static;display:flex;overflow-x:auto;border-radius:10px;min-width:0;-webkit-overflow-scrolling:touch}
  .side-nav .sn-head{display:none}
  .side-nav a{flex:none;border-bottom:none;border-right:1px solid var(--line);white-space:nowrap;padding:13px 18px}
  .side-nav a:hover,.side-nav a.on{padding-left:18px}
  .side-cta{display:none}
  .pd-top{grid-template-columns:minmax(0,1fr);grid-template-areas:"gallery" "info" "files" "buy";gap:22px}
  .pd-gallery{max-width:360px;margin:0 auto;width:100%}
  .pd-files{padding:14px}
  /* iOS Safari 聚焦时会自动放大 font-size<16px 的控件，移动端统一提到 16px */
  input,textarea,select{font-size:16px}
  .content-card,.news-row,.lit-row,.p-card,.file-card{min-width:0}
  .cs-grid-18{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cs-sec ul{grid-template-columns:minmax(0,1fr)}
  .org-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:768px){
  .section{padding:52px 0}
  .hero{height:460px}
  .hero-title{font-size:30px}
  .hero-sub{font-size:15px}
  .hero-arrow{display:none}
  .p-grid,.rel-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .range-grid{grid-template-columns:minmax(0,1fr)}
  .news-grid{grid-template-columns:minmax(0,1fr)}
  .news-sec .nsec-head h2{font-size:22px}
  .news-sec .news-show .cap{padding:40px 16px 14px}
  .news-sec .news-list .nl-img{width:84px;height:64px}
  .news-sec .news-list li + li{padding-top:14px;margin-top:14px}
  .news-sec .news-two{gap:28px}
  .cs-grid{grid-template-columns:minmax(0,1fr)}
  .cs-grid-18{grid-template-columns:minmax(0,1fr)}
  .cs-sec ul{grid-template-columns:minmax(0,1fr)}
  .cs-intro{padding:16px 18px;font-size:14px}
  .rel-news-list{grid-template-columns:minmax(0,1fr)}
  .org-grid{grid-template-columns:minmax(0,1fr)}
  .org-wrap{padding:22px 16px}
  .org-wrap::before{width:320px;height:320px}
  .visit-info{grid-template-columns:minmax(0,1fr)}
  .visit-info .vi{border-right:none}
  .visit-map{height:210px}
  .content-card{padding:26px 20px}
  .footer-main{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:26px;padding-top:44px;padding-bottom:36px}
  .news-row{grid-template-columns:minmax(0,1fr)}
  .news-row .nr-body{padding:0 20px 20px}
  .lit-row{grid-template-columns:minmax(0,1fr)}
  .lit-row .lr-body{padding:0 20px 20px}
  .pd-specs th,.pd-specs td{padding:9px 10px;font-size:13.5px}
  .form-grid{grid-template-columns:minmax(0,1fr)}
  .contact-grid{grid-template-columns:minmax(0,1fr)}
  .file-cards{grid-template-columns:minmax(0,1fr)}
  .sitemap-cols{grid-template-columns:minmax(0,1fr)}
  .page-hero h1{font-size:26px}
  .sec-title{font-size:24px}
  .sec-head-row{flex-direction:column;align-items:flex-start;gap:14px}
  .hd-wrap{gap:14px}
  .hd-logo .logo-sub{display:none}
  .hd-logo img{height:38px}
  .tb-left .clock{display:none}
  /* 顶栏两个 nowrap 项在窄屏会顶破容器：允许收缩 + 省略号兜底 */
  .tb-left,.tb-right{min-width:0}
  .tb-item{min-width:0}
  .tb-item span{overflow:hidden;text-overflow:ellipsis}
  /* 产品卡标签原为 nowrap + overflow:hidden，窄卡片里会被直接裁掉，改为换行 */
  .p-tags{flex-wrap:wrap;overflow:visible}
  /* 触控目标：轮播指示条视觉高度仅 4~5px，用透明伪元素把可点区域扩到约 34px */
  .hero-dots button,.news-sec .news-show .show-dots button{position:relative}
  .hero-dots button::after{content:'';position:absolute;left:-5px;right:-5px;top:-15px;bottom:-15px}
  .news-sec .news-show .show-dots button::after{content:'';position:absolute;left:-3px;right:-3px;top:-14px;bottom:-14px}
  /* 产品卡按钮原 36px，略低于触控舒适区 */
  .p-add,.p-buy{height:40px}
  /* 触控目标：规格表内的「询价」是纯文本行内按钮（约 20px 高）。
     用「等量 padding + 负 margin」把热区扩到约 40px，行高与文字视觉位置不变；
     实测相邻按钮净间隙 22.7px，扩 10px 后仍留约 3px，不会误触。 */
  .pd-specs .inq-btn{padding-top:10px;padding-bottom:10px;margin-top:-10px;margin-bottom:-10px}
  /* 触控目标：顶栏链接高 22.8px、顶栏高 38px。用透明伪元素把热区扩到约 37px，不改变布局。 */
  .tb-item{position:relative}
  .tb-item::after{content:'';position:absolute;left:-6px;right:-6px;top:-7px;bottom:-7px}
  /* 触控目标：产品卡的标题与「详情」是卡片上除按钮外的主交互入口，原高 22~23px。
     坑：.p-name 原本用 -webkit-line-clamp:1 截断，直接加 padding 会把内容盒撑高
     （clientHeight 22.4→36.4），Chrome 会多渲染出第 2 行的一截并与 .p-en 文字重叠。
     故改用视觉等效的「单行 + 省略号」截断，再扩热区；外层尺寸由负 margin 抵消，卡片总高不变。
     （.p-name 带 overflow:hidden，伪元素会被裁掉，所以只能走 padding 方案。） */
  .p-name{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
          padding-top:7px;padding-bottom:7px;margin-top:-7px;margin-bottom:-7px}
  .p-card.p-wrap .p-name{white-space:normal;overflow:visible;text-overflow:clip}
  .p-card.p-wrap .p-en{white-space:normal;overflow:visible;text-overflow:clip}
  .p-detail{padding-top:7px;padding-bottom:7px;margin-top:-7px;margin-bottom:-7px}
  /* 触控目标：「更多」链接原高 25px。容器 padding-bottom 为 14px，外扩 6px 不会压到相邻元素。 */
  .news-sec .nsec-head .more{padding-top:6px;padding-bottom:6px;margin-top:-6px;margin-bottom:-6px}
  .cart-table thead{display:none}
  .cart-table,.cart-table tbody,.cart-table tr{display:block;width:100%}
  .cart-table tr{border:1px solid var(--line);border-radius:10px;margin-bottom:12px;padding:10px}
  .cart-table td{display:flex;justify-content:space-between;align-items:center;border:none;padding:7px 8px}
  .cart-table td::before{content:attr(data-th);font-size:13px;color:var(--mut)}
  .cart-table td:first-child{display:block}
  /* 购物车操作区：窄屏下收窄内边距并让按钮独占整行换行，避免撑破容器 */
  .cart-bar{padding:16px 14px;gap:12px}
  .cart-bar .acts{width:100%;gap:10px}
  .cart-bar .acts > *{flex:1 1 auto;min-width:118px;padding:0 14px;justify-content:center}
  /* 搜索结果卡：三列 flex 在手机上会把标题列挤到约 130px，
     标题被压成多行短行。改为缩略图 + 信息同一行、价格独占一行。 */
  .sr-item{align-items:flex-start;gap:12px;padding:14px;flex-wrap:wrap}
  .sr-item img{width:64px;height:64px}
  .sr-item .inf{flex:1 1 calc(100% - 76px);min-width:0}
  .sr-item .pr{flex:1 1 100%;text-align:right;font-size:16px}
  .inquiry-float{right:16px;bottom:86px}
  .to-top{right:16px}
  .spec-table th{width:110px}
  .pd-meta{grid-template-columns:minmax(0,1fr)}
  .pd-btns .btn-cart,.pd-btns .btn-inq{flex:1;padding:0 14px;justify-content:center}
}
@media (max-width:430px){
  .p-grid,.p-grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .p-body{padding:12px}
  .p-actions{flex-direction:column;gap:8px}
  /* 关键修复：改为纵向后主轴变为垂直，.p-add/.p-buy 上的 flex:1（= flex-basis:0%）
     会接管「主轴尺寸」并覆盖 height，把按钮压到约 17~19px（原 40px 失效）。
     这里用 flex:none 交回高度控制权，44px 为移动端推荐最小触控高度。 */
  .p-actions .p-add,.p-actions .p-buy{flex:0 0 auto;height:44px}
  /* 2 列栅格下价格行很窄（320px 时仅约 88px），而「¥2200.00(约 71px) + 详情 →(43px)」
     需要约 114px，放不下时「详情」会被拆成上下两行（每行一个字）。
     改为允许换行 + 详情不压缩不折字 + margin-left:auto 右对齐：
     放得下就同行（≥390px），放不下才落到第二行右侧（320~360px）。 */
  .p-price-row{flex-wrap:wrap;row-gap:2px}
  .p-price{white-space:nowrap}
  .p-detail{flex:none;white-space:nowrap;margin-left:auto}
  .hero-title{font-size:25px}
  .topbar .tb-right{display:none}
}
/* 320px 级窄屏（iPhone SE 等）：热线 168px + 邮箱 146px + 间距 + 内边距 = 354px，
   超出视口。保留可点击拨号的热线，隐藏邮箱项（邮箱在联系页与页脚仍可见）。 */
@media (max-width:380px){
  .topbar .tb-left a[href^="mailto:"]{display:none}
  .topbar .container{gap:10px}
  /* 头部：logo(167px) + 操作区(140px) + 间距 超出 280px 容器，压缩 logo 与图标 */
  .hd-wrap{gap:10px}
  .hd-logo{gap:8px}
  .hd-logo img{height:32px}
  .hd-logo .logo-name{font-size:17px;letter-spacing:0}
  .icon-btn{width:36px;height:36px;font-size:16px}
}

/* ---------- 关于我们 · 公司发展时间线 ---------- */
.timeline{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin:22px 0 8px;position:relative}
.timeline::before{content:"";position:absolute;left:5%;right:5%;top:23px;height:2px;background:linear-gradient(90deg,var(--soft),var(--c1),var(--soft))}
.tl-item{position:relative;text-align:center;padding-top:52px}
.tl-item::before{content:"";position:absolute;top:16px;left:50%;transform:translateX(-50%);width:15px;height:15px;border-radius:50%;background:#fff;border:3px solid var(--c1);box-shadow:0 0 0 4px var(--soft);z-index:2}
.tl-year{position:absolute;top:0;left:50%;transform:translateX(-50%);font-size:14px;font-weight:800;color:var(--c1);font-family:Consolas,monospace;letter-spacing:1px}
.tl-body b{display:block;font-size:14.5px;color:var(--navy);margin-bottom:5px}
.tl-body span{font-size:12.5px;color:var(--mut);line-height:1.65;display:block;max-width:210px;margin:0 auto}
@media (max-width:900px){
  .timeline{grid-template-columns:minmax(0,1fr);gap:0;padding-left:26px}
  .timeline::before{left:7px;right:auto;top:12px;bottom:12px;width:2px;height:auto;background:linear-gradient(180deg,var(--soft),var(--c1),var(--soft))}
  .tl-item{text-align:left;padding:12px 0 12px 22px}
  .tl-item::before{top:18px;left:0;transform:none}
  .tl-year{position:static;transform:none;display:inline-block;margin-bottom:4px}
  .tl-body span{margin:0;max-width:none}
}

/* ---------- 关于我们 · 企业风采 ---------- */
.style-slogan{font-size:19px;font-weight:700;color:var(--c1);text-align:center;letter-spacing:4px;margin:6px 0 20px}
.style-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:24px}
.style-item{display:flex;flex-direction:column;align-items:center;gap:10px;background:linear-gradient(180deg,#fff,var(--soft));border:1px solid var(--line);border-radius:12px;padding:20px 10px;transition:.25s}
.style-item:hover{border-color:var(--c1);transform:translateY(-4px);box-shadow:0 10px 24px rgba(11,91,211,.12)}
.si-ic{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--c1),var(--cyan));color:#fff;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 6px 14px rgba(11,91,211,.25)}
.si-ic .ico{width:22px;height:22px}
.style-item b{font-size:14.5px;color:var(--navy)}
.style-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:10px}
.style-gallery figure{position:relative;border-radius:12px;overflow:hidden;margin:0;box-shadow:var(--shadow)}
.style-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .4s}
.style-gallery figure:hover img{transform:scale(1.06)}
.style-gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 14px 10px;background:linear-gradient(transparent,rgba(6,26,60,.8));color:#fff;font-size:13px;letter-spacing:1px}
@media (max-width:760px){
  .style-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .style-gallery{grid-template-columns:minmax(0,1fr)}
}

/* ---------- 关于我们 · 设计感增强 ---------- */
.about-kv{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:28px 0 18px}
.about-kv .kv-item{background:linear-gradient(180deg,#fff,var(--soft));border:1px solid var(--line);border-radius:12px;padding:18px 14px;text-align:center;transition:.25s}
.about-kv .kv-item:hover{border-color:var(--c1);transform:translateY(-4px);box-shadow:0 10px 26px rgba(11,91,211,.12)}
.about-kv .kv-ic{width:46px;height:46px;border-radius:12px;background:linear-gradient(135deg,var(--c1),var(--cyan));color:#fff;display:inline-flex;align-items:center;justify-content:center;margin-bottom:10px}
.about-kv .kv-ic .ico{width:22px;height:22px}
.about-kv .kv-item b{display:block;font-size:15px;color:var(--navy);margin-bottom:4px}
.about-kv .kv-item>span:last-child{font-size:12.5px;color:var(--mut)}
@media (max-width:1024px){
  .about-kv{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:480px){
  .about-kv{grid-template-columns:minmax(0,1fr)}
}

/* 打印隐藏 */
@media print{.inquiry-float,.to-top,.site-header,.topbar{display:none}}

/* ================= 关于我们 · 单栏重排版 ================= */
.about-main{background:#fff}
.ab-nav-wrap{position:sticky;top:var(--hd-h);z-index:150;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.ab-nav{display:flex;gap:6px;overflow-x:auto;padding:12px 0;scrollbar-width:none}
.ab-nav::-webkit-scrollbar{display:none}
.ab-nav a{flex:none;font-size:14px;color:var(--mut);padding:7px 18px;border-radius:20px;transition:.2s;white-space:nowrap}
.ab-nav a:hover{color:var(--c1);background:var(--soft)}
.ab-nav a.on{color:#fff;background:linear-gradient(135deg,var(--c1),var(--c1d));font-weight:600}
.ab-sec{padding:66px 0}
.ab-sec-alt{background:var(--bg)}
.ab-head{text-align:center;margin-bottom:36px}
.ab-kicker{font-size:13px;letter-spacing:2.5px;color:var(--cyan);text-transform:uppercase;font-weight:600;margin-bottom:8px}
.ab-head h2{font-size:30px;color:var(--navy)}
.ab-line{display:block;width:56px;height:4px;border-radius:2px;background:linear-gradient(90deg,var(--c1),var(--cyan));margin:14px auto 0}
.ab-intro-box{margin:0 auto 32px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--c1);border-radius:12px;padding:24px 30px;box-shadow:var(--shadow)}
.ab-intro-box p{font-size:15px;color:#33404e;line-height:2}
.ab-intro-box p+p{margin-top:10px}
/* 公司发展 */
.ab-tl{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}
.ab-tl-item{background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px 20px;transition:.25s}
.ab-tl-item:hover{transform:translateY(-4px);box-shadow:var(--shadow-h);border-color:#c9ddf6}
.ab-tl-item .yr{display:inline-block;font-family:Consolas,monospace;font-size:15px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--c1),var(--cyan));border-radius:8px;padding:4px 14px;margin-bottom:14px}
.ab-tl-item b{display:block;font-size:16px;color:var(--navy);margin-bottom:8px}
.ab-tl-item p{font-size:13px;color:var(--mut);line-height:1.8}
/* 公司实力 */
.ab-band{background:linear-gradient(130deg,#0a2a5e 0%,#0b5bd3 62%,#11808b 100%);position:relative;overflow:hidden}
.ab-band::before{content:"";position:absolute;right:-140px;top:-140px;width:420px;height:420px;border-radius:50%;background:rgba(255,255,255,.06)}
.ab-band::after{content:"";position:absolute;left:-110px;bottom:-150px;width:340px;height:340px;border-radius:50%;background:rgba(24,183,212,.14)}
.ab-band .ab-kicker{color:#7fd4e8}
.ab-band .ab-head h2{color:#fff}
.ab-band .ab-line{margin:14px auto 0}
.ab-band-desc{position:relative;z-index:1;max-width:880px;margin:0 auto 40px;text-align:center;font-size:14.5px;color:rgba(255,255,255,.86);line-height:2}
.ab-stats{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.ab-stat{text-align:center;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.20);border-radius:14px;padding:30px 10px;transition:.25s}
.ab-stat:hover{background:rgba(255,255,255,.15);transform:translateY(-3px)}
.ab-stat b{display:block;font-size:44px;font-weight:800;font-family:Consolas,"Microsoft YaHei",monospace;color:#fff;line-height:1.2}
.ab-stat b i{font-style:normal;font-size:26px;color:#67e3f5}
.ab-stat span{font-size:14px;color:rgba(255,255,255,.85)}
/* 业务范围 */
.ab-chips{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:0 auto}
.ab-chips span{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:24px;padding:9px 20px;transition:.2s}
.ab-chips span:hover{border-color:var(--c1);color:var(--c1);transform:translateY(-2px);box-shadow:var(--shadow)}
.ab-chips .ico{width:16px;height:16px;color:var(--c1)}
/* 企业风采 */
.ab-slogan{text-align:center;font-size:21px;color:var(--navy);font-weight:700;letter-spacing:5px;margin-bottom:32px}
.ab-slogan i{color:var(--c1);font-style:normal}
.ab-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:38px}
.ab-val{background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px 10px;text-align:center;transition:.22s}
.ab-val:hover{border-color:var(--c1);transform:translateY(-4px);box-shadow:0 10px 26px rgba(11,91,211,.12)}
.ab-val .ic{width:48px;height:48px;border-radius:50%;background:var(--soft);color:var(--c1);display:flex;align-items:center;justify-content:center;margin:0 auto 10px}
.ab-val .ic .ico{width:23px;height:23px}
.ab-val b{font-size:15px;color:var(--navy)}
.ab-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px; margin-top: 20px;}
.ab-gallery figure{position:relative;border-radius:12px;overflow:hidden;margin:0}
.ab-gallery img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;transition:transform .45s}
.ab-gallery figure:hover img{transform:scale(1.06)}
.ab-gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 16px 11px;background:linear-gradient(transparent,rgba(10,42,94,.75));color:#fff;font-size:13px;letter-spacing:1px}
/* 企业使命 */
.ab-mission{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.ab-ms{background:#fff;border:1px solid var(--line);border-radius:14px;padding:34px 28px;text-align:center;transition:.25s;position:relative;overflow:hidden}
.ab-ms::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--c1),var(--cyan))}
.ab-ms:hover{transform:translateY(-5px);box-shadow:var(--shadow-h)}
.ms-ic{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--c1),var(--cyan));color:#fff;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;box-shadow:0 10px 22px rgba(11,91,211,.30)}
.ms-ic .ico{width:28px;height:28px}
.ab-ms h3{font-size:18px;color:var(--navy);margin-bottom:10px}
.ab-ms p{font-size:14px;color:var(--mut);line-height:1.9}
/* 合作单位 */
.ab-partners{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.ab-pt{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px 24px;transition:.2s}
.ab-pt:hover{border-color:#c9ddf6;box-shadow:var(--shadow)}
.ab-pt h4{font-size:15.5px;color:var(--c1);margin-bottom:8px;display:flex;align-items:center;gap:8px}
.ab-pt h4::before{content:"";width:4px;height:14px;border-radius:2px;background:linear-gradient(var(--c1),var(--cyan))}
.ab-pt p{font-size:13.5px;color:#33404e;line-height:1.95}
.ab-note{text-align:center;font-size:13.5px;color:var(--mut);margin-top:24px}
/* 联系我们 · 高德地图 */
.ab-map{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;box-shadow:var(--shadow)}
.ab-map-img{position:relative;display:block;height:400px;overflow:hidden}
.ab-map-img img{width:100%;height:100%;object-fit:cover;display:block}
.ab-map-open{position:absolute;right:18px;bottom:16px;display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.96);color:var(--c1);font-size:13px;font-weight:600;padding:8px 16px;border-radius:20px;box-shadow:0 4px 14px rgba(0,0,0,.16);transition:.2s}
.ab-map-img:hover .ab-map-open{background:var(--c1);color:#fff}
.ab-contact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.ab-contact .vi{padding:18px 26px;border-top:1px solid var(--line);display:flex;align-items:flex-start;gap:11px}
.ab-contact .vi:nth-child(odd){border-right:1px solid var(--line)}
.ab-contact .vi .ico{width:17px;height:17px;color:var(--c1);flex:none;margin-top:3px}
.ab-contact .vi .vt{display:flex;flex-direction:column;gap:3px;min-width:0}
.ab-contact .vi .vt b{font-size:13px;color:#8fa2b8;font-weight:500}
.ab-contact .vi .vt span,.ab-contact .vi .vt a{font-size:14.5px;color:var(--ink);font-weight:600;line-height:1.55;word-break:break-all}
.ab-contact .vi .vt a:hover{color:var(--c1)}
@media (max-width:1024px){
  .ab-tl{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ab-values{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:768px){
  .ab-sec{padding:46px 0}
  .ab-head h2{font-size:24px}
  .ab-tl{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ab-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ab-values{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ab-gallery{grid-template-columns:minmax(0,1fr)}
  .ab-mission{grid-template-columns:minmax(0,1fr)}
  .ab-partners{grid-template-columns:minmax(0,1fr)}
  .ab-contact{grid-template-columns:minmax(0,1fr)}
  .ab-contact .vi:nth-child(odd){border-right:none}
  .ab-map-img{height:250px}
  .ab-slogan{font-size:17px;letter-spacing:2px}
}

/* 定制服务-图片文字列表 */
.cs-list{display:flex;flex-direction:column;gap:16px}
.cs-row{display:flex;align-items:center;gap:24px;padding:16px 20px 16px 16px;border:1px solid var(--line);border-radius:14px;background:#fff;transition:border-color .25s,box-shadow .25s,transform .25s}
.cs-row:hover{border-color:#b9d4f6;box-shadow:0 12px 30px rgba(11,91,211,.10);transform:translateY(-2px)}
.cs-row-pic{display:block;width:272px;aspect-ratio:16/10;flex:none;border-radius:10px;overflow:hidden;background:var(--soft)}
.cs-row-pic img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s}
.cs-row:hover .cs-row-pic img{transform:scale(1.06)}
.cs-row-bd{display:flex;flex-direction:column;flex:1;min-width:0}
.cs-row-head{display:flex;align-items:center;gap:10px}
.cs-row-num{font-style:normal;font-family:Consolas,monospace;font-size:13px;font-weight:700;color:var(--c1);background:var(--soft);border-radius:6px;padding:3px 9px;flex:none}
.cs-row-title{font-size:17px;color:var(--navy);font-weight:700}
.cs-row-desc{display:block;font-size:13.5px;color:var(--mut);line-height:1.8;margin:9px 0 12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cs-row .cs-go{margin:0;font-size:13.5px;color:var(--c1);font-weight:600;display:inline-flex;align-items:center;gap:5px}
.cs-row .cs-go .ico{transition:transform .25s}
.cs-row:hover .cs-go .ico{transform:translateX(3px)}

/* 定制服务详情页 */
.sd-card{padding:0;overflow:hidden}
.sd-banner{max-height:380px;overflow:hidden;background:var(--soft)}
.sd-banner img{width:100%;height:100%;object-fit:cover;display:block}
.sd-body{padding:30px 36px 6px;border-top:none}
.sd-cta{margin:22px 36px 0;padding:20px 26px;background:linear-gradient(120deg,var(--c1),var(--c1d));border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:18px;color:#fff}
.sd-cta b{font-size:16.5px}
.sd-cta p{font-size:13px;opacity:.85;margin-top:6px}
.sd-cta-btn{flex:none;background:#fff;color:var(--c1);font-size:14px;font-weight:700;padding:11px 24px;border-radius:24px;transition:.2s;white-space:nowrap}
.sd-cta-btn:hover{background:#eaf2ff}
.sd-pn{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:26px 36px 30px;padding-top:18px;border-top:1px solid var(--line);font-size:13.5px}
.sd-pn a{color:var(--mut);max-width:34%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.sd-pn a:hover{color:var(--c1)}
.sd-pn .sd-back{color:var(--c1);font-weight:600}
.sd-pn a.dis{opacity:.35;pointer-events:none}
@media(max-width:768px){
  .cs-row{flex-direction:column;align-items:stretch;gap:14px;padding:14px}
  .cs-row-pic{width:100%}
  .sd-body{padding:20px 18px 4px}
  .sd-cta{margin:16px 18px 0;flex-direction:column;align-items:flex-start}
  .sd-pn{margin:18px 18px 22px}
  .sd-pn a{max-width:100%}
}

/* 关于页-动态高德地图 */
.ab-map{position:relative}
.ab-map-box{position:relative;overflow:hidden}
.ab-map-dyn{height:360px;width:100%;z-index:1}
.ab-map-open-fix{position:absolute;right:18px;bottom:16px;z-index:600}
.ab-map-open-fix:hover{background:var(--c1);color:#fff}
.amap-pin{filter:drop-shadow(0 4px 8px rgba(0,0,0,.3))}
/* 信息窗：与站点风格统一，隐藏默认关闭按钮（信息窗常驻展开） */
.amap-info-content{border-radius:10px;font-size:13px;line-height:1.7;color:#333;padding:12px 16px;box-shadow:0 6px 20px rgba(0,0,0,.14)}
.amap-info-content b{color:var(--navy)}
.amap-info-close{display:none}
@media(max-width:768px){.ab-map-dyn{height:260px}}

/* ============================================================
   手机端专项适配（仅作用于 <=768px，桌面端零影响）
   设计基调：桌面端已定稿，此处只做小屏可读性 / 可点性提升，
   不改任何桌面端会命中的选择器与数值。
   ============================================================ */

/* --- 1. 表单控件：iOS Safari 在 font-size < 16px 时会自动放大整页 ---
   必须 >=16px。16px 也正好是移动端表单的推荐下限。 */
@media (max-width:768px){
  input,textarea,select{font-size:16px}
  .tool-input input{font-size:16px;height:46px}
  .tool-input .unit-sel{font-size:14px;height:46px}
  .search-box input{font-size:16px}
  .cart-qty input{font-size:16px}
}

/* --- 2. 正文可读性：小屏行宽变窄，字号需要略微上提才不显吃力 ---
   桌面 15.5px 在 1240px 行宽下舒适，390px 下行宽仅 350px，
   同样字号观感明显更小，故移动端上调。 */
@media (max-width:768px){
  .article-body{font-size:16.5px;line-height:1.95}
  .article-body h2{font-size:20px;margin:26px 0 12px}
  .article-body h3{font-size:18px;margin:22px 0 11px}
  .richtext{font-size:15.5px}
  .richtext p,.content-card p{font-size:15.5px;line-height:1.9}
  .news-detail-h h1{font-size:22px;line-height:1.45}
  .page-hero h1{font-size:27px}
  .page-hero .en{font-size:12.5px;letter-spacing:2px}
}

/* --- 3. 页脚：12px 的版权行在手机上偏小，且行距过密 --- */
@media (max-width:768px){
  .footer,.fb-sub{font-size:13px}
  .fb-sub{letter-spacing:1px}
  .fb-copy,.footer-bottom,.fb-copy span{font-size:13px;line-height:1.85}
  .footer a{font-size:13.5px}
}

/* --- 4. 触摸目标：正文外的独立控件提到 >=44px 热区 ---
   手法：伪元素向外扩，视觉零变化、布局零位移。
   仅针对「独立可点控件」，段落内文链接与面包屑保持原样（行业惯例）。 */
@media (max-width:768px){
  /* 顶栏联系方式（热线 / 邮箱）：23px -> 44px 热区 */
  .topbar .tb-item{position:relative;padding-top:11px;padding-bottom:11px;margin-top:-11px;margin-bottom:-11px}
  .topbar a{position:relative}
  /* 卡片标题 / 「详情」入口：21~23px -> 44px */
  .p-card .p-name,.p-card .p-detail{position:relative;padding-top:11px;padding-bottom:11px;margin-top:-11px;margin-bottom:-11px}
  /* 文献条目 */
  .lit-row .lr-go{position:relative;padding-top:11px;padding-bottom:11px;margin-top:-11px;margin-bottom:-11px}
  /* 详情页下载 / 询价等操作按钮 */
  .pd-file-list .dl,.inq-btn{position:relative}
  .pd-file-list .dl::after,.inq-btn::after{content:"";position:absolute;left:-8px;right:-8px;top:-11px;bottom:-11px}
  /* 上一篇 / 下一篇 */
  .news-nav a{position:relative}
  .news-nav a::after{content:"";position:absolute;left:0;right:0;top:-10px;bottom:-10px}
  /* 「更多 / 全部」类文字入口 */
  .more,.news-list .more{position:relative}
  .more::after{content:"";position:absolute;left:-10px;right:-10px;top:-10px;bottom:-10px}
  /* 轮播指示条：原仅 4~5px 高 */
  .dots button{position:relative}
  .dots button::after{content:"";position:absolute;left:-5px;right:-5px;top:-15px;bottom:-15px}
}

/* --- 5. 分页控件：小屏热区与间距 --- */
@media (max-width:768px){
  .pager a,.pager button,.page-nav a{min-width:40px;min-height:40px;display:inline-flex;align-items:center;justify-content:center}
}

/* --- 6. 高德信息窗：固定 320px 在 <=360px 会被容器裁切 ---
   限制其最大宽度并允许内容换行，保证 320px 屏也能完整显示。 */
@media (max-width:768px){
  .amap-info-content{font-size:13.5px;padding:11px 14px;max-width:min(78vw,300px);line-height:1.65}
}

/* --- 7. 表格类内容：正文区横向滚动兜底，避免撑破布局 --- */
@media (max-width:768px){
  .richtext table{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
}

/* --- 8. 小工具四个计算器：窄屏标签与结果框可读性 --- */
@media (max-width:768px){
  .tool-title{font-size:15.5px}
  .tool-name{font-size:17px;margin-bottom:16px}
  .tool-field label{font-size:14.5px}
  .tool-field .hint{font-size:12.5px}
  .tool-note{font-size:13px;line-height:1.85}
  .tool-tab{height:40px}
  .tool-actions{gap:12px}
  .tool-btn{height:44px}
}
@media (max-width:430px){
  .tool-grid{gap:13px}
  .tool-tabs{gap:6px}
  .tool-tab{flex:1 1 calc(50% - 3px);padding:0 8px;font-size:12.5px}
}

/* --- 9. 内容型小字标签：11~12.5px 在手机上过小，统一提到 12.5~13.5px ---
   注意只上调「承载信息的文字」（货号、来源、日期、备注），
   角标类（NEW / 置顶）保持紧凑以免遮挡配图。 */
@media (max-width:768px){
  .p-sku{font-size:13px}
  .lit-row .lr-src{font-size:13.5px;line-height:1.7}
  .lit-row .lr-tag{font-size:12.5px;padding:3px 10px}
  .rel-news-list .rn-date{font-size:13px}
  .news-row .nr-meta .cat{font-size:12.5px;padding:3px 10px}
  .pd-specs-note{font-size:13.5px;line-height:1.75}
  .form-tip{font-size:13.5px;line-height:1.75}
  .footer-brand .fb-logo .fb-sub{font-size:12.5px;letter-spacing:.6px}
}

/* --- 10. 角标仅做轻微上调（保持不遮挡配图）--- */
@media (max-width:768px){
  .tag-new,.tag-custom,.tag-top{font-size:12px;padding:4px 10px}
}

/* --- 11. 卡片元信息 / 表格文字：小屏统一可读下限 13px --- */
@media (max-width:768px){
  .p-meta,.p-info,.p-foot,.p-price small,.p-price .dec{font-size:13px}
  .crumb{font-size:13px;line-height:1.7}
  .side-nav a{font-size:15px}
  .side-nav .sn-head b{font-size:15.5px}
  .side-nav .sn-head span{font-size:12.5px}
  .tag-cloud a{font-size:13px;padding:6px 12px}
}

/* --- 12. 分页 / 导航小字 --- */
@media (max-width:768px){
  .news-nav a{font-size:14px;line-height:1.6}
  .lit-row h3{font-size:16px;line-height:1.5}
  .lit-row .lr-go{font-size:13.5px}
}

/* --- 13. 触控友好：取消移动端 hover 粘滞，改用 :active 反馈 --- */
@media (hover:none) and (max-width:768px){
  .p-card:hover{box-shadow:none;border-color:var(--line)}
  .p-card:active{box-shadow:var(--shadow);border-color:var(--c1)}
  .lit-row:hover{background:#fff}
  .lit-row:active{background:var(--soft)}
}
