/* CATO Reference Standards · theme v2
   意图：药典专著页 + 试剂目录；品牌红点缀、深色信任带、结构式图驱动的产品卡片。
   规则：无渐变文字、无毛玻璃、无 emoji 图标；两档圆角、一档阴影；间距 4/8/12/16/24/32/48/64。 */
:root{
  --paper:#FBFAF7; --surface:#FFFFFF; --band:#14181C; --band-2:#1D232A;
  --ink:#14181C; --ink-2:#39424B; --muted:#5F6A74; --rule:#E3DFD7; --rule-2:#F0EDE7;
  --brand:#E50000; --brand-ink:#C40000; --brand-soft:#FDF0F0;
  --stock:#1D6B3F; --stock-bg:#F1F8F3; --stock-bd:#C3DCCB;
  --lead:#8A5A12; --lead-bg:#FBF5E8; --lead-bd:#E7D6AE;
  --sans:"IBM Plex Sans","Helvetica Neue",Helvetica,Arial,sans-serif;
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px; --sp-7:48px; --sp-8:64px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 var(--sans);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;height:auto;display:block}
a{color:var(--brand-ink);text-decoration:none;border-bottom:1px solid rgba(196,0,0,.24)}
a:hover{border-bottom-color:var(--brand-ink)}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible,select:focus-visible{
  outline:2px solid var(--brand);outline-offset:2px;border-radius:2px}
.skip{position:absolute;left:-9999px}
.wrap{max-width:1160px;margin:0 auto;padding:0 var(--sp-5)}
.narrow{max-width:780px;margin:0 auto;padding:0 var(--sp-5)}

h1,h2,h3,h4{font-family:var(--serif);font-weight:600;letter-spacing:-.012em;margin:0 0 var(--sp-3)}
h1{font-size:2.15rem;line-height:1.2}
h2{font-size:1.42rem;line-height:1.28}
h3{font-size:1.09rem;line-height:1.35}
p{margin:0 0 var(--sp-4)}
small,.small{font-size:.86rem;line-height:1.5}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}
hr{border:0;border-top:1px solid var(--rule);margin:var(--sp-6) 0}
.center{text-align:center}
h2.sec{display:inline-block;padding-bottom:var(--sp-2);border-bottom:2px solid var(--brand);
  margin-bottom:var(--sp-5)}

/* ---------- 顶部联系条 ---------- */
.topbar{background:var(--band);color:#C9CED4;font-size:.84rem}
.topbar .wrap{display:flex;justify-content:space-between;gap:var(--sp-4);padding:8px var(--sp-5);flex-wrap:wrap}
.topbar a{color:#fff;border-bottom-color:rgba(255,255,255,.45);font-family:var(--mono)}
.topbar a:hover{color:#fff;border-bottom-color:#fff}
.topbar .tb-r{color:#8C959E}
.topbar .tb-mail{display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:.92rem;
  letter-spacing:.01em;border-bottom:1px dashed rgba(255,255,255,.5)}
.topbar .tb-mail svg{width:15px;height:15px;flex:0 0 auto;color:#FF6B6B}
.topbar .tb-mail:hover{border-bottom-style:solid}
@media (max-width:760px){.topbar .wrap{justify-content:center;text-align:center}
  .topbar .tb-r{display:none}}

/* ---------- 页头邮箱（下拉后滑入，与 LOGO 同栏） ---------- */
.mailchip{display:inline-flex;align-items:center;gap:9px;margin-left:var(--sp-4);
  font-family:var(--mono);font-size:.92rem;font-weight:600;color:#fff;background:var(--brand);
  padding:9px 14px;border-radius:2px;border:1px solid var(--brand);white-space:nowrap;
  opacity:0;transform:translateY(-14px);pointer-events:none;
  transition:opacity .28s ease,transform .28s cubic-bezier(.22,.61,.36,1),background .15s;
  box-shadow:0 2px 8px rgba(229,0,0,.18)}
.mailchip svg{width:16px;height:16px;flex:0 0 auto}
.mailchip:hover{background:#c40000;border-color:#c40000;color:#fff}
html.scrolled .mailchip{opacity:1;transform:translateY(0);pointer-events:auto}
@media (max-width:760px){
  .mailchip{margin-left:auto;font-size:.84rem;padding:7px 11px;gap:7px}
  .mailchip .addr{display:none}          /* 小屏只留信封图标，避免挤掉导航 */
  .mailchip::after{content:"Email us"}
}

/* ---------- header ---------- */
header.site{background:var(--surface);border-bottom:1px solid var(--rule);
  box-shadow:inset 0 3px 0 var(--brand);position:sticky;top:0;z-index:30}
header.site .wrap{display:flex;align-items:center;gap:var(--sp-6);min-height:74px;flex-wrap:wrap}
.brand{display:flex;align-items:center;border:0;flex:0 0 auto}
.brand img{height:42px;width:auto}
nav.main{display:flex;gap:var(--sp-5);margin-left:auto;flex-wrap:wrap;align-items:center}
nav.main a{border:0;color:var(--ink-2);font-size:.94rem;font-weight:500;padding:var(--sp-1) 0}
nav.main a:hover{color:var(--brand-ink)}
nav.main a[aria-current="page"]{color:var(--brand-ink);box-shadow:inset 0 -2px 0 var(--brand)}
nav.main a.cta{background:var(--brand);color:#fff;padding:9px 16px;border-radius:2px}
nav.main a.cta:hover{background:#c40000}

/* ---------- hero ---------- */
.hero{background:
   radial-gradient(1100px 320px at 12% -10%, #FFF6F6 0%, rgba(255,255,255,0) 62%), var(--surface);
  border-bottom:1px solid var(--rule)}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.9fr);gap:var(--sp-7);
  align-items:center;padding-top:var(--sp-7);padding-bottom:var(--sp-7)}
.hero h1{max-width:24ch}
.hero .lede{font-size:1.06rem;color:var(--ink-2);max-width:60ch;margin-top:var(--sp-3)}
@media (max-width:920px){.hero .wrap{grid-template-columns:minmax(0,1fr);gap:var(--sp-6)}}
form.search{display:flex;gap:var(--sp-2);margin-top:var(--sp-5);max-width:580px}
form.search input{flex:1;min-width:0;padding:13px 14px;font:inherit;color:var(--ink);background:#fff;
  border:1px solid #D8D3C9;border-radius:2px}
form.search input::placeholder{color:#9AA3AC}
form.search button{padding:13px 20px;font:inherit;font-weight:600;color:#fff;background:var(--brand);
  border:1px solid var(--brand);border-radius:2px;cursor:pointer;white-space:nowrap}
form.search button:hover{background:#c40000;border-color:#c40000}
.hero .facts{display:flex;gap:var(--sp-6);flex-wrap:wrap;margin-top:var(--sp-6);
  border-top:1px solid var(--rule);padding-top:var(--sp-4)}
.hero .facts b{display:block;font-family:var(--serif);font-size:1.55rem;line-height:1.1}
.hero .facts span{font-size:.82rem;color:var(--muted)}

/* ---------- featured card (hero right) ---------- */
.fcard{background:var(--surface);border:1px solid var(--rule);border-radius:3px;
  box-shadow:0 1px 2px rgba(20,24,28,.04);overflow:hidden}
.fcard .ph{background:#FCFCFA;border-bottom:1px solid var(--rule-2);padding:var(--sp-5);
  display:flex;align-items:center;justify-content:center;min-height:210px}
.fcard .ph img{max-height:180px;width:auto}
.fcard .bd{padding:var(--sp-5)}
.fcard h3{margin-bottom:var(--sp-1);font-size:1.05rem}
.fcard .meta{font-family:var(--mono);font-size:.82rem;color:var(--muted)}
.fcard .row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);
  margin-top:var(--sp-4)}

/* ---------- bands ---------- */
.band{background:var(--band);color:#E9E7E2}
.band .wrap{padding:var(--sp-6) var(--sp-5);display:grid;grid-template-columns:repeat(4,1fr);
  gap:var(--sp-5)}
@media (max-width:860px){.band .wrap{grid-template-columns:1fr 1fr}}
.band h3{color:#fff;font-size:.98rem;margin-bottom:var(--sp-1)}
.band p{color:#B9BFC6;font-size:.88rem;margin:0}
.band .ico{width:26px;height:26px;margin-bottom:var(--sp-3)}
.band a{color:#fff;border-bottom-color:rgba(255,255,255,.4)}

section{padding:var(--sp-7) 0;border-bottom:1px solid var(--rule-2)}
section:last-of-type{border-bottom:0}
section.tight{padding:var(--sp-6) 0}
.lead-in{color:var(--ink-2);max-width:70ch;margin-bottom:var(--sp-5)}

/* ---------- grids & cards ---------- */
.grid{display:grid;gap:var(--sp-4)}
.grid.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1000px){.grid.g4{grid-template-columns:repeat(3,minmax(0,1fr))}
  .grid.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){.grid.g4,.grid.g3,.grid.g2{grid-template-columns:1fr}}
.card{background:var(--surface);border:1px solid var(--rule);border-radius:3px;padding:var(--sp-5)}
.card h3{margin-top:0}

/* 产品卡（结构式图驱动） */
.pcard{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--rule);
  border-radius:3px;overflow:hidden;border-bottom:1px solid var(--rule);transition:border-color .15s}
.pcard:hover{border-color:#CFC9BE}
.pcard .thumb{background:#FCFCFA;border-bottom:1px solid var(--rule-2);height:150px;
  display:flex;align-items:center;justify-content:center;padding:var(--sp-3)}
.pcard .thumb img{max-height:126px;width:auto;max-width:100%;mix-blend-mode:multiply}
.pcard .thumb a{display:block;line-height:0}
.pcard .name a{color:var(--ink);border-bottom:0}
.pcard .name a:hover{color:var(--brand-ink);border-bottom:1px solid rgba(196,0,0,.3)}
.pcard .body{padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2);flex:1}
.pcard .name{font-family:var(--serif);font-size:1rem;line-height:1.3;color:var(--ink);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pcard .cas{font-family:var(--mono);font-size:.8rem;color:var(--muted)}
.pcard .foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;
  gap:var(--sp-2);padding-top:var(--sp-2)}
.pcard .go{font-size:.86rem;font-weight:600;border:0;color:var(--brand-ink)}
.pcard a.pcard-link{position:absolute;inset:0}
.pcard{position:relative}

/* 品类卡 */
.hubcard{display:block;background:var(--surface);border:1px solid var(--rule);border-radius:3px;
  padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--rule)}
.hubcard:hover{border-color:#CFC9BE}
.hubcard b{font-family:var(--serif);font-size:1.02rem;font-weight:600;color:var(--ink);display:block}
.hubcard span{font-size:.82rem;color:var(--muted)}

/* 指南卡 */
.gcard{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--rule);
  border-radius:3px;padding:var(--sp-5);border-bottom:1px solid var(--rule)}
.gcard b{font-family:var(--serif);font-size:1.04rem;font-weight:600;color:var(--ink);margin-bottom:var(--sp-2)}
.gcard span{font-size:.88rem;color:var(--muted);margin-bottom:var(--sp-4)}
.gcard em{font-style:normal;font-size:.82rem;color:var(--brand-ink);margin-top:auto;font-weight:600}

/* ---------- tables ---------- */
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--rule);
  border-radius:3px;background:var(--surface)}
table.data{width:100%;border-collapse:collapse;font-size:.94rem}
table.data thead th{text-align:left;font-weight:600;font-size:.74rem;letter-spacing:.07em;
  text-transform:uppercase;color:var(--muted);background:#F7F5F1;padding:11px var(--sp-4);
  border-bottom:1px solid var(--rule);white-space:nowrap}
table.data td{padding:12px var(--sp-4);border-bottom:1px solid var(--rule-2);vertical-align:middle}
table.data tbody tr:last-child td{border-bottom:0}
table.data tbody tr:nth-child(even){background:#FDFCFA}
table.data tbody tr:hover{background:var(--brand-soft)}
table.data td.num{font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}
table.data.wide td{vertical-align:top}
.tag{display:inline-block;font-size:.76rem;font-weight:500;padding:2px 8px;border:1px solid var(--rule);
  border-radius:2px;color:var(--ink-2);background:#fff;white-space:nowrap}
.tag.stock{color:var(--stock);border-color:var(--stock-bd);background:var(--stock-bg)}
.tag.lead{color:var(--lead);border-color:var(--lead-bd);background:var(--lead-bg)}
.tag.brand{color:var(--brand-ink);border-color:#F2C9C9;background:var(--brand-soft)}

/* ---------- buttons ---------- */
.btn{display:inline-block;padding:11px 18px;border-radius:2px;font-weight:600;font-size:.95rem;
  background:var(--brand);color:#fff;border:1px solid var(--brand);cursor:pointer;text-align:center}
.btn:hover{background:#c40000;border-color:#c40000;color:#fff}
.btn.ghost{background:#fff;color:var(--ink);border-color:#D8D3C9}
.btn.ghost:hover{background:#F7F5F1;color:var(--ink)}
.btn.block{display:block;width:100%}
.btn.sm{padding:7px 13px;font-size:.87rem}
button.inq{font:inherit;font-size:.85rem;font-weight:600;padding:6px 13px;border:1px solid var(--brand);
  background:#fff;color:var(--brand-ink);border-radius:2px;cursor:pointer;white-space:nowrap}
button.inq:hover{background:var(--brand);color:#fff}

/* ---------- 文档入口（COA / SDS）· 醒目可点 ---------- */
.docbar{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2);margin:0 0 var(--sp-5)}
.docbar .lbl{display:inline-flex;align-items:center;gap:7px;font-size:.86rem;color:var(--ink-2)}
.docbar .lbl em{font-style:normal}
.docbar .lbl svg{width:17px;height:17px;flex:0 0 auto}
.docbtn{display:inline-flex;align-items:center;gap:9px;font-size:.9rem;font-weight:600;line-height:1.1;
  padding:11px 16px;border:1px solid #EFC4C4;border-radius:2px;background:#FFF6F6;color:var(--brand-ink);
  box-shadow:inset 0 -2px 0 rgba(229,0,0,.16);white-space:nowrap;
  transition:background .15s,border-color .15s,color .15s,transform .12s}
.docbtn:hover{background:var(--brand);border-color:var(--brand);color:#fff;transform:translateY(-1px);
  box-shadow:0 2px 6px rgba(229,0,0,.22)}
.docbtn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.docbtn svg{width:17px;height:17px;flex:0 0 auto}
.docbox{border:1px solid var(--rule);border-radius:3px;padding:var(--sp-4);margin-bottom:var(--sp-5);
  background:#FFFDFD}
.docbox-h{display:flex;align-items:center;gap:8px;font-weight:600;font-family:var(--serif);
  font-size:1rem;margin-bottom:var(--sp-2)}
.docbox-h svg{width:18px;height:18px;flex:0 0 auto}
.docbox p{margin:0 0 var(--sp-3);color:var(--ink-2)}
.docstack{display:grid;gap:var(--sp-2)}
.docstack .docbtn{justify-content:center;padding:12px 16px}
@media (max-width:520px){.docbtn{flex:1 1 100%;justify-content:center;font-size:.86rem}}

/* ---------- product page ---------- */
.crumb{font-size:.86rem;color:var(--muted);padding:var(--sp-4) 0}
.crumb a{border:0;color:var(--muted)}
.crumb a:hover{color:var(--brand-ink)}
.pgrid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(310px,1fr);gap:var(--sp-7);
  padding-bottom:var(--sp-7)}
.pgrid>*{min-width:0}
@media (max-width:940px){.pgrid{grid-template-columns:minmax(0,1fr);gap:var(--sp-6)}}
.chips{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin:var(--sp-3) 0 var(--sp-5)}
.chip{font-size:.83rem;border:1px solid var(--rule);background:#fff;border-radius:2px;
  padding:4px 10px;color:var(--ink-2)}
.chip b{font-weight:600;color:var(--ink)}
.chip .mono{font-size:.83rem}
.structbox{background:var(--surface);border:1px solid var(--rule);border-radius:3px;
  padding:var(--sp-5);text-align:center;margin-bottom:var(--sp-5)}
.structbox img{max-height:360px;width:auto;margin:0 auto}
.structbox figcaption{font-size:.8rem;color:var(--muted);margin-top:var(--sp-3)}
.structbox a{display:block;border:0}
.structbox a:hover img{opacity:.92}
.structbox a:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
.quote{background:var(--surface);border:1px solid var(--rule);border-radius:3px;padding:var(--sp-5);
  position:sticky;top:96px;box-shadow:0 1px 2px rgba(20,24,28,.04)}
.quote h2{font-size:1.08rem;margin-bottom:var(--sp-2)}
.quote .mail{display:inline-flex;align-items:center;gap:1px;font-family:var(--mono);font-size:1rem;
  font-weight:600;word-break:break-all}
.quote hr{margin:var(--sp-4) 0}
dl.facts{margin:0;font-size:.92rem}
dl.facts div{display:flex;justify-content:space-between;gap:var(--sp-4);padding:7px 0;
  border-bottom:1px solid var(--rule-2)}
dl.facts div:last-child{border-bottom:0}
dl.facts dt{color:var(--muted);flex:0 0 auto}
dl.facts dd{margin:0;text-align:right;color:var(--ink)}
.note{font-size:.85rem;color:var(--muted);background:#F7F5F1;border-left:3px solid var(--rule);
  padding:var(--sp-3) var(--sp-4);border-radius:0 2px 2px 0;margin:var(--sp-4) 0}
details.faq{border-bottom:1px solid var(--rule-2);padding:var(--sp-3) 0}
details.faq summary{cursor:pointer;font-weight:600;font-family:var(--serif);font-size:1.03rem}
details.faq summary::marker{color:var(--brand)}
details.faq p{margin:var(--sp-2) 0 0;color:var(--ink-2)}
ul.clean{margin:0 0 var(--sp-4);padding-left:1.15em}
ul.clean li{margin-bottom:var(--sp-2)}
ul.links{list-style:none;margin:0;padding:0}
ul.links li{padding:var(--sp-2) 0;border-bottom:1px solid var(--rule-2);display:flex;
  justify-content:space-between;gap:var(--sp-3)}
ul.links li:last-child{border-bottom:0}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-6)}
@media (max-width:760px){.grid2{grid-template-columns:1fr}}

/* ---------- CTA band ---------- */
.cta{background:var(--band-2);color:#fff;border-radius:3px;padding:var(--sp-6);
  display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5);flex-wrap:wrap}
.cta h2{color:#fff;margin:0 0 var(--sp-1)}
.cta p{color:#B9BFC6;margin:0}
.cta .btn{background:var(--brand);border-color:var(--brand)}

/* ---------- footer ---------- */
footer.site{background:var(--band);color:#C9CED4;margin-top:var(--sp-7)}
footer.site .wrap{padding:var(--sp-7) var(--sp-5) var(--sp-6);display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1fr;gap:var(--sp-6)}
@media (max-width:900px){footer.site .wrap{grid-template-columns:1fr 1fr}}
@media (max-width:560px){footer.site .wrap{grid-template-columns:1fr}}
footer.site img.flogo{height:44px;width:auto;margin-bottom:var(--sp-4)}
footer.site h3{font-size:.78rem;letter-spacing:.09em;text-transform:uppercase;color:#8C959E;
  font-family:var(--sans);font-weight:600;margin-bottom:var(--sp-3)}
footer.site ul{list-style:none;margin:0;padding:0;font-size:.92rem}
footer.site li{margin-bottom:var(--sp-2)}
footer.site a{border:0;color:#C9CED4}
footer.site a:hover{color:#fff}
footer.site p{color:#8C959E;font-size:.88rem}
.certs{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin-top:var(--sp-4)}
.certs span{font-size:.76rem;border:1px solid #333B43;background:#1B2027;padding:3px 9px;
  border-radius:2px;color:#C9CED4}
.legal{font-size:.8rem;color:#7B848D;border-top:1px solid #262C33;padding:var(--sp-4) var(--sp-5);
  max-width:1160px;margin:0 auto}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---------- mobile ---------- */
@media (max-width:760px){
  header.site .wrap{gap:var(--sp-3);padding-top:var(--sp-3);padding-bottom:var(--sp-2);min-height:0}
  .brand img{height:34px}
  nav.main{margin-left:0;width:100%;flex-wrap:nowrap;overflow-x:auto;gap:var(--sp-4);
    padding-bottom:var(--sp-2);scrollbar-width:none}
  nav.main::-webkit-scrollbar{display:none}
  nav.main a{font-size:.9rem;white-space:nowrap}
  nav.main a.cta{padding:7px 13px}
  h1{font-size:1.6rem}
  h2{font-size:1.22rem}
  .hero .wrap{padding-top:var(--sp-6);padding-bottom:var(--sp-6)}
  .hero .facts{gap:var(--sp-5)}
  .hero .facts b{font-size:1.3rem}
  .fcard .ph{min-height:150px}
  section{padding:var(--sp-6) 0}
  table.data{font-size:.88rem}
  table.data thead th,table.data td{padding:9px var(--sp-3)}
  table.data td.num{white-space:normal}
  .quote{position:static}
  dl.facts div{flex-direction:column;gap:2px}
  dl.facts dd{text-align:left}
  .cta{padding:var(--sp-5)}
  .structbox img{max-height:220px}
}
