:root{
  --blue:#0876c9;--blue2:#0a8ff2;--cyan:#23c9d5;--mint:#6be0c1;
  --ink:#0b2747;--ink2:#123858;--muted:#6d8297;--line:#dbe9f4;--paper:#f5f9fc;
  --deep:#061725;--deep2:#0a263b;--white:#fff;--shadow:0 18px 55px rgba(10,67,111,.12);
  --radius:20px;--wrap:1220px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:1180px;font-family:Inter,"PingFang SC","Microsoft YaHei","Noto Sans SC",Arial,sans-serif;color:var(--ink);background:#fff;line-height:1.65}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,textarea,select{font:inherit}.wrap{width:var(--wrap);margin:0 auto}.section{padding:82px 0;position:relative}.section.compact{padding:60px 0}.section-title{margin:0 0 10px;font-size:36px;line-height:1.18;letter-spacing:-.02em}.section-kicker{color:var(--blue);font-size:13px;letter-spacing:.18em;font-weight:800;text-transform:uppercase;margin-bottom:10px}.section-sub{max-width:720px;color:var(--muted);margin:0;font-size:16px}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:34px}.section-head .more{font-weight:800;color:var(--blue);white-space:nowrap}.tiny-en{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:#8aa5bd}.glass{background:rgba(255,255,255,.8);border:1px solid rgba(202,226,243,.85);box-shadow:0 14px 40px rgba(19,78,120,.08);backdrop-filter:blur(16px)}

/* header */
.site-header{height:82px;background:rgba(255,255,255,.94);border-bottom:1px solid #e3eef6;position:sticky;top:0;z-index:1000;backdrop-filter:blur(18px)}.site-header .inner{width:var(--wrap);height:100%;margin:0 auto;display:flex;align-items:center;gap:24px}.brand{width:190px;display:flex;align-items:center;gap:10px;flex:0 0 auto}.brand img{width:72px;height:52px;object-fit:contain}.brand span{display:flex;flex-direction:column;line-height:1.05}.brand b{font-size:18px;color:#1268b6;white-space:nowrap}.brand small{font-size:8px;letter-spacing:.06em;color:#35749f;margin-top:5px;white-space:nowrap}.main-nav{display:flex;align-items:center;gap:23px;margin-left:auto;font-size:14px;font-weight:700;color:#29445e}.main-nav a{position:relative;padding:30px 0 26px}.main-nav a:after{content:"";position:absolute;height:3px;border-radius:2px;left:50%;right:50%;bottom:0;background:linear-gradient(90deg,var(--blue),var(--cyan));transition:.25s}.main-nav a:hover,.main-nav a.active{color:var(--blue)}.main-nav a:hover:after,.main-nav a.active:after{left:0;right:0}.nav-cta{margin-left:8px;border:0;color:#fff;background:linear-gradient(135deg,var(--blue),#0261d2);padding:13px 23px;border-radius:999px;font-weight:800;cursor:pointer;box-shadow:0 10px 22px rgba(0,110,215,.22)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:0 22px;border-radius:999px;border:1px solid transparent;font-weight:800;cursor:pointer;transition:.25s}.btn-primary{background:linear-gradient(135deg,var(--blue2),#0062d7);color:#fff;box-shadow:0 10px 24px rgba(3,117,213,.24)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(3,117,213,.3)}.btn-outline{background:#fff;color:var(--blue);border-color:#a8d1ef}.btn-outline:hover{background:#edf8ff}.btn-dark{background:#0a2d49;color:#fff}.btn-sm{min-height:38px;padding:0 17px;font-size:14px}.actions{display:flex;gap:12px;flex-wrap:wrap}

/* hero */
.hero{height:650px;position:relative;overflow:hidden;background:linear-gradient(90deg,rgba(248,252,255,.98) 0%,rgba(248,252,255,.94) 42%,rgba(241,248,252,.65) 64%,rgba(226,243,253,.35) 100%)}.hero:before{content:"";position:absolute;inset:0;background:url('../img/hero-lab.webp') center/cover no-repeat;opacity:.34}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#f8fcff 0 42%,rgba(248,252,255,.78) 60%,rgba(248,252,255,.12) 100%),radial-gradient(circle at 72% 52%,rgba(39,191,232,.18),transparent 32%)}.hero .wrap{height:100%;position:relative;z-index:2;display:grid;grid-template-columns:1.06fr .94fr;align-items:center;gap:52px}.hero-copy{padding-bottom:12px}.hero-kicker{font-weight:800;letter-spacing:.32em;font-size:15px;margin-bottom:18px;color:#315476}.hero h1{font-size:62px;line-height:1.04;margin:0 0 20px;letter-spacing:-.035em}.hero h1 span{color:var(--blue)}.hero .lead{font-size:19px;color:#294a69;max-width:680px;margin-bottom:28px}.hero .note{font-size:14px;color:#6e8294;margin-top:18px}.hero-visual{height:540px;position:relative;display:flex;align-items:center;justify-content:center;perspective:1000px}.holo-platform{position:absolute;width:430px;height:170px;bottom:49px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(42,210,255,.35),rgba(9,119,218,.08) 45%,transparent 69%);border:1px solid rgba(46,185,255,.35);box-shadow:0 0 0 16px rgba(39,159,237,.035),0 0 90px rgba(31,164,242,.18)}.holo-platform:before,.holo-platform:after{content:"";position:absolute;border-radius:50%;inset:18px;border:1px solid rgba(70,199,255,.42)}.holo-platform:after{inset:42px;border-color:rgba(70,199,255,.26)}.hero-product{position:relative;height:475px;z-index:2;filter:drop-shadow(0 28px 24px rgba(14,52,75,.2));transform-style:preserve-3d;transition:transform .15s ease}.callout{position:absolute;z-index:4;font-size:13px;color:#436783;padding-left:24px}.callout b{display:block;color:#0c4f86;font-size:15px}.callout:before{content:"";position:absolute;left:0;top:6px;width:11px;height:11px;border-radius:50%;background:#1aa8ff;box-shadow:0 0 0 6px rgba(26,168,255,.12)}.callout.c1{top:116px;right:18px}.callout.c2{bottom:155px;left:0}.hero-grid{position:absolute;inset:65px 10px 15px;background-image:linear-gradient(rgba(9,117,196,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(9,117,196,.06) 1px,transparent 1px);background-size:32px 32px;mask-image:radial-gradient(circle,#000,transparent 75%)}

.stats-bar{position:absolute;bottom:0;left:0;right:0;height:92px;background:rgba(255,255,255,.72);border-top:1px solid rgba(194,219,236,.75);backdrop-filter:blur(14px);z-index:3}.stats-bar .wrap{display:grid;grid-template-columns:repeat(4,1fr);align-items:center;gap:20px;height:100%}.stat{display:flex;gap:14px;align-items:center}.stat-icon{width:42px;height:42px;border-radius:12px;border:1px solid #c9e4f7;background:#f6fbff;display:grid;place-items:center;color:var(--blue);font-weight:900}.stat b{font-size:22px;color:#0a6bbd}.stat span{display:block;font-size:13px;color:#708499}

/* problem */
.problem{background:linear-gradient(180deg,#fff,#f7fbfe)}.compare-grid{display:grid;grid-template-columns:.86fr 1.14fr;gap:28px;align-items:center}.problem-copy{padding-right:40px}.problem-copy p{color:#667f94}.compare{display:grid;grid-template-columns:1fr 70px 1fr;align-items:stretch;gap:12px}.compare-card{border:1px solid #d7e7f2;background:#fff;border-radius:18px;padding:24px;box-shadow:var(--shadow)}.compare-card.good{border-color:#8dc8ef;background:linear-gradient(180deg,#f7fcff,#edf7ff)}.compare-card h3{margin:0 0 18px;font-size:20px}.compare-card ul{list-style:none;padding:0;margin:0}.compare-card li{position:relative;padding:9px 0 9px 30px;color:#536d83;border-bottom:1px dashed #e2edf5}.compare-card li:last-child{border-bottom:0}.compare-card.bad li:before{content:"×";position:absolute;left:0;color:#9aa8b2;font-weight:900}.compare-card.good li:before{content:"✓";position:absolute;left:0;color:var(--blue);font-weight:900}.vs{align-self:center;justify-self:center;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--blue);font-weight:900;border:1px solid #b9d9ef;box-shadow:0 10px 26px rgba(20,100,160,.12)}

/* dark instrument section */
.instrument-section{background:linear-gradient(135deg,#061724,#082b43 68%,#0c3350);color:#fff;overflow:hidden}.instrument-section:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(63,166,221,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(63,166,221,.08) 1px,transparent 1px);background-size:40px 40px;opacity:.45}.instrument-section .section-sub{color:#9abbd0}.instrument-row{position:relative;display:grid;grid-template-columns:240px repeat(6,1fr);gap:14px;align-items:stretch}.instrument-intro{padding:24px 10px 20px 0}.instrument-intro h2{font-size:34px;margin:0 0 10px}.instrument-intro p{font-size:14px;color:#a2bbcc}.instrument-card{min-height:220px;border:1px solid rgba(106,187,231,.25);border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.035));padding:18px;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden;transition:.25s}.instrument-card:hover{transform:translateY(-8px);border-color:#29b5ff;box-shadow:0 0 0 1px rgba(0,174,255,.25),0 22px 50px rgba(0,130,224,.15)}.instrument-card img{position:absolute;top:16px;left:50%;transform:translateX(-50%);height:115px;max-width:88%;object-fit:contain;filter:drop-shadow(0 12px 18px rgba(0,0,0,.22))}.instrument-card b{font-size:17px}.instrument-card small{color:#89aabe;margin-top:4px}

/* species */
.species-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:15px}.species-card{height:164px;border:1px solid #dceaf4;border-radius:18px;background:linear-gradient(180deg,#fff,#f7fbfe);padding:18px;position:relative;overflow:hidden;transition:.25s}.species-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:#9acced}.species-ghost{position:absolute;right:-2px;bottom:-18px;font-size:74px;opacity:.1}.species-card b{font-size:20px}.species-card span{display:block;color:#7d93a5;font-size:12px;letter-spacing:.08em}.species-card em{font-style:normal;color:#4f6b81;font-size:13px;position:absolute;bottom:18px;left:18px}

/* service */
.service-section{background:#f7fbfe}.service-top{display:grid;grid-template-columns:.8fr 1.2fr;gap:34px;align-items:stretch;margin-bottom:28px}.service-copy{padding:36px 28px;border-radius:22px;background:linear-gradient(135deg,#073056,#0b69b9);color:#fff;position:relative;overflow:hidden}.service-copy:after{content:"";position:absolute;right:-100px;bottom:-120px;width:300px;height:300px;border:1px solid rgba(99,214,255,.28);border-radius:50%;box-shadow:0 0 0 30px rgba(99,214,255,.04),0 0 0 60px rgba(99,214,255,.025)}.service-copy p{color:#c6e1f1}.service-image{height:320px;border-radius:22px;overflow:hidden;position:relative}.service-image img{width:100%;height:100%;object-fit:cover}.service-image:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,39,67,.05),rgba(3,39,67,.15))}.process-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.process-card{background:#fff;border:1px solid #dceaf4;border-radius:18px;padding:16px;position:relative;min-height:260px;transition:.2s}.process-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.process-num{font-size:28px;color:var(--blue);font-weight:900}.process-card img{height:104px;width:100%;object-fit:cover;border-radius:12px;margin:8px 0 13px}.process-card h3{font-size:17px;margin:0 0 8px}.process-card p{font-size:13px;color:#74899b;margin:0}.process-arrow{position:absolute;right:-14px;top:50%;z-index:2;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid #cce3f3;color:var(--blue);font-weight:900}.process-card:last-child .process-arrow{display:none}

/* advantage */
.adv-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.adv-card{border:1px solid #dce9f3;background:#fff;border-radius:17px;padding:22px;transition:.25s;min-height:150px}.adv-card:hover{border-color:#8ecbf0;box-shadow:var(--shadow);transform:translateY(-4px)}.adv-icon{width:46px;height:46px;border-radius:14px;background:#edf8ff;display:grid;place-items:center;color:var(--blue);font-weight:900;margin-bottom:15px}.adv-card h3{margin:0 0 7px;font-size:18px}.adv-card p{font-size:13px;color:#75899b;margin:0}

/* cards */
.case-grid,.article-grid,.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.case-card,.article-card,.news-card{border:1px solid #dce9f3;border-radius:18px;background:#fff;overflow:hidden;transition:.25s}.case-card:hover,.article-card:hover,.news-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:#9acdee}.case-card img,.article-card img,.news-card img{height:190px;width:100%;object-fit:cover}.case-body,.article-body,.news-body{padding:20px}.tag{display:inline-flex;align-items:center;padding:5px 11px;border-radius:999px;background:#e9f6ff;color:var(--blue);font-size:12px;font-weight:800}.case-body h3,.article-body h3,.news-body h3{font-size:18px;line-height:1.45;margin:12px 0 8px}.case-body p,.article-body p,.news-body p{font-size:13px;color:#72889a;margin:0}.meta{font-size:12px;color:#8aa0b2;margin-top:10px;display:flex;gap:16px}

/* CTA/Footer */
.home-cta{padding:64px 0;background:linear-gradient(135deg,#edf8ff,#fff);position:relative;overflow:hidden}.home-cta:after{content:"DNA";position:absolute;right:6%;top:10px;font-size:160px;font-weight:900;color:rgba(3,112,204,.035);letter-spacing:.1em}.home-cta .wrap{display:flex;justify-content:space-between;align-items:center;position:relative;z-index:2}.home-cta h2{font-size:34px;margin:0 0 8px}.home-cta p{color:#708799;margin:0}.site-footer{background:#061b2e;color:#dcecf7;padding:54px 0 22px;position:relative;overflow:hidden}.site-footer:before{content:"";position:absolute;inset:auto 0 0;height:120px;background:radial-gradient(ellipse at bottom,rgba(0,157,238,.22),transparent 65%)}.footer-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.4fr .8fr 1.25fr .8fr;gap:40px}.footer-logo{display:flex;align-items:center;gap:12px}.footer-logo img{width:76px;height:52px;object-fit:contain;filter:brightness(0) invert(1);opacity:.95}.footer-logo span{display:flex;flex-direction:column;line-height:1.05}.footer-logo b{font-size:20px;color:#fff}.footer-logo small{font-size:9px;letter-spacing:.08em;color:#8db2c8;margin-top:5px}.footer-brand p{color:#87a8be;font-size:14px;max-width:260px}.footer-col h4{margin:0 0 14px;color:#fff}.footer-col a,.footer-col p{display:block;font-size:13px;color:#9cb6c8;margin:6px 0}.footer-col a:hover{color:#58cfff}.qr-placeholder{width:126px;height:126px;background:#fff;border:6px solid #fff;border-radius:8px;position:relative;overflow:hidden}.qr-placeholder img{width:100%;height:100%;object-fit:contain}.copyright{position:relative;z-index:2;border-top:1px solid rgba(255,255,255,.1);margin-top:35px;padding-top:17px;font-size:12px;color:#728ea3;display:flex;justify-content:space-between}

/* interior hero */
.page-hero{height:330px;position:relative;display:flex;align-items:center;overflow:hidden;background:linear-gradient(135deg,#f5fbff,#eaf6fd)}.page-hero .bg{position:absolute;inset:0;opacity:.26}.page-hero .bg img{width:100%;height:100%;object-fit:cover}.page-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(248,252,255,.98) 0 55%,rgba(248,252,255,.35))}.page-hero .wrap{position:relative;z-index:2}.breadcrumb{font-size:13px;color:#6b879c;margin-bottom:24px}.breadcrumb span{margin:0 9px;color:#a4b7c6}.page-hero h1{font-size:46px;margin:0 0 12px}.page-hero p{max-width:720px;margin:0;color:#52708a}.page-hero.dark{background:#061b2d;color:#fff}.page-hero.dark:after{background:linear-gradient(90deg,rgba(6,27,45,.97),rgba(6,27,45,.44))}.page-hero.dark p,.page-hero.dark .breadcrumb{color:#b3cbda}

/* about */
.about-intro{display:grid;grid-template-columns:1.04fr .96fr;gap:46px;align-items:center}.about-photo{height:460px;border-radius:24px;overflow:hidden;position:relative;box-shadow:var(--shadow)}.about-photo img{width:100%;height:100%;object-fit:cover}.about-copy p{color:#637b90}.strength-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:24px}.strength-item{padding:16px;border-radius:14px;background:#f6fbff;border:1px solid #dcecf6;font-size:14px}.gallery-3{display:grid;grid-template-columns:1.1fr .9fr .9fr;gap:16px}.gallery-3 img{height:300px;width:100%;object-fit:cover;border-radius:18px}.patent-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.patent-grid img{height:420px;object-fit:contain;width:100%;background:#f7fbfd;border:1px solid #dce9f3;border-radius:16px;padding:14px}.partner-wall{width:100%;border:1px solid #dfeaf2;border-radius:18px;background:#fff;padding:18px}

/* product center */
.filter-bar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:28px}.filter-btn{border:1px solid #cde2f1;background:#fff;color:#496b84;border-radius:999px;padding:9px 16px;font-weight:700;cursor:pointer}.filter-btn.active,.filter-btn:hover{background:var(--blue);color:#fff;border-color:var(--blue)}.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.product-card{border:1px solid #dce9f3;border-radius:20px;background:#fff;overflow:hidden;transition:.25s;position:relative}.product-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:#9bcfee}.product-photo{height:250px;background:linear-gradient(180deg,#f9fcff,#eef7fc);display:flex;align-items:center;justify-content:center;padding:24px;position:relative}.product-photo:after{content:"";position:absolute;left:12%;right:12%;bottom:25px;height:26px;background:radial-gradient(ellipse,rgba(26,97,137,.13),transparent 66%)}.product-photo img{max-height:205px;max-width:95%;object-fit:contain;position:relative;z-index:1}.product-info{padding:20px}.product-code{font-size:11px;letter-spacing:.1em;color:#83a0b5}.product-info h3{font-size:18px;line-height:1.4;margin:7px 0}.product-info p{font-size:13px;color:#788ea0;margin:0 0 14px}.product-meta{display:flex;gap:7px;flex-wrap:wrap}.chip{font-size:11px;color:#3773a1;border:1px solid #cee5f4;border-radius:999px;padding:4px 8px;background:#f7fcff}.product-link{position:absolute;right:16px;bottom:17px;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#eaf7ff;color:var(--blue);font-weight:900}

/* service page */
.pipeline{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.pipeline-item{border:1px solid #dce8f2;background:#fff;border-radius:18px;padding:20px;min-height:280px;position:relative}.pipeline-item img{height:120px;width:100%;object-fit:cover;border-radius:12px;margin:10px 0}.pipeline-item h3{font-size:17px;margin:0 0 8px}.pipeline-item ul{margin:0;padding-left:18px;color:#72889b;font-size:13px}.model-table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;border:1px solid #d8e8f3;border-radius:18px}.model-table th,.model-table td{padding:15px 18px;text-align:left;border-bottom:1px solid #e3edf4;font-size:14px}.model-table th{background:#0a72c6;color:#fff}.model-table tr:last-child td{border-bottom:0}.model-table td:first-child{font-weight:800;background:#f3faff;width:28%}.detect-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}.detect-card{border:1px solid #dce9f2;border-radius:16px;background:#fff;overflow:hidden}.detect-card img{width:100%;height:112px;object-fit:cover}.detect-card div{padding:14px}.detect-card b{font-size:15px}.detect-card p{font-size:12px;color:#7c91a2;margin:5px 0 0}

/* viewer / product detail */
.detail-top{padding:34px 0 60px;background:linear-gradient(180deg,#f7fbff,#fff)}.detail-grid{display:grid;grid-template-columns:1.38fr .92fr;gap:24px}.viewer-shell{height:660px;border-radius:22px;background:radial-gradient(circle at 50% 74%,rgba(0,142,229,.22),transparent 33%),linear-gradient(135deg,#061a2d,#0a314c);position:relative;overflow:hidden;color:#fff;border:1px solid #0c527f;box-shadow:0 24px 60px rgba(5,36,62,.2)}.viewer-shell:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(87,183,235,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(87,183,235,.1) 1px,transparent 1px);background-size:34px 34px}.viewer-tabs{height:64px;display:grid;grid-template-columns:repeat(4,1fr);position:relative;z-index:8;border-bottom:1px solid rgba(149,215,250,.16);background:rgba(3,19,32,.35)}.viewer-tab{border:0;background:transparent;color:#aac7d9;font-weight:700;cursor:pointer;border-right:1px solid rgba(149,215,250,.13)}.viewer-tab b{display:block;color:#fff;font-size:13px}.viewer-tab.active{background:linear-gradient(180deg,rgba(0,143,255,.55),rgba(0,104,206,.18));box-shadow:inset 0 -3px 0 #20b8ff}.viewer-stage{position:absolute;left:0;right:72px;top:64px;bottom:88px;display:flex;align-items:center;justify-content:center;perspective:1100px;overflow:hidden}.viewer-orbit{position:absolute;width:470px;height:150px;border-radius:50%;bottom:35px;border:1px solid rgba(82,203,255,.35);box-shadow:0 0 0 18px rgba(49,181,255,.035),0 0 80px rgba(35,172,255,.2)}.viewer-orbit:before,.viewer-orbit:after{content:"";position:absolute;inset:18px;border-radius:50%;border:1px solid rgba(52,184,255,.3)}.viewer-orbit:after{inset:43px}.viewer-object-wrap{height:460px;width:360px;display:flex;align-items:center;justify-content:center;transform-style:preserve-3d;position:relative;z-index:2;cursor:grab}.viewer-object-wrap.dragging{cursor:grabbing}.viewer-object{max-height:450px;max-width:310px;filter:drop-shadow(0 22px 20px rgba(0,0,0,.4));transform-style:preserve-3d;user-select:none;pointer-events:none}.viewer-object.wireframe{filter:grayscale(1) contrast(2.3) brightness(1.7) drop-shadow(0 0 8px rgba(62,212,255,.45));opacity:.7}.hotspot{position:absolute;z-index:5;font-size:12px;color:#b8d8ea;pointer-events:none}.hotspot:before{content:"";position:absolute;width:12px;height:12px;background:#1bb2ff;border-radius:50%;box-shadow:0 0 0 7px rgba(27,178,255,.13)}.hotspot b{color:#fff;display:block;font-size:14px}.hotspot.hs1{top:80px;right:94px;padding-left:24px}.hotspot.hs1:before{left:0;top:6px}.hotspot.hs2{left:72px;top:230px;padding-right:24px;text-align:right}.hotspot.hs2:before{right:0;top:6px}.hotspot.hs3{right:78px;bottom:92px;padding-left:24px}.hotspot.hs3:before{left:0;top:6px}.hotspots-off .hotspot{display:none}.viewer-tools{position:absolute;right:14px;top:84px;width:48px;z-index:10;display:flex;flex-direction:column;gap:9px}.tool-btn{width:48px;height:48px;border:1px solid rgba(123,211,255,.3);border-radius:13px;background:rgba(8,44,69,.8);color:#fff;display:grid;place-items:center;cursor:pointer;font-size:18px;box-shadow:0 8px 24px rgba(0,0,0,.12)}.tool-btn:hover,.tool-btn.active{background:#0878d3;box-shadow:0 0 0 1px #37c6ff,0 0 24px rgba(27,178,255,.25)}.viewer-help{position:absolute;right:84px;top:82px;z-index:9;padding:11px 15px;border:1px solid rgba(130,211,255,.2);border-radius:12px;background:rgba(4,28,48,.72);font-size:12px;color:#bdd6e6}.view-strip{position:absolute;left:18px;right:18px;bottom:14px;height:64px;display:flex;gap:10px;z-index:8}.view-thumb{flex:1;border:1px solid rgba(128,206,247,.22);background:rgba(8,36,58,.88);color:#aec8da;border-radius:10px;font-size:11px;cursor:pointer}.view-thumb.active{border-color:#2ac0ff;box-shadow:inset 0 0 0 1px #2ac0ff;color:#fff;background:rgba(0,99,171,.45)}.mode-panel{position:absolute;inset:0;display:none}.mode-panel.active{display:block}.drawing-panel{padding:26px;position:absolute;inset:64px 72px 88px 0}.drawing-sheet{height:100%;border:1px solid rgba(119,205,250,.28);border-radius:14px;background:rgba(4,27,46,.72);position:relative;overflow:hidden;display:grid;grid-template-columns:1fr .8fr;align-items:center}.drawing-sheet img{height:88%;justify-self:center;filter:grayscale(1) contrast(1.8) brightness(1.45);opacity:.8}.drawing-lines{padding:30px;color:#a8c8dc}.drawing-lines h3{font-size:25px;color:#fff;margin:0 0 12px}.drawing-lines .dim{border-top:1px dashed #32b9ff;margin:16px 0;padding-top:12px}.detail-mode{position:absolute;inset:64px 72px 88px 0;padding:24px;display:grid;grid-template-columns:1fr 1fr;gap:16px}.detail-shot{border:1px solid rgba(110,200,245,.25);border-radius:14px;background:rgba(5,28,47,.68);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px}.detail-shot img{max-height:190px;object-fit:contain}.detail-shot h4{margin:10px 0 0;color:#fff}.explode-mode{position:absolute;inset:64px 72px 88px 0}.explode-canvas{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.explode-part{position:absolute;height:430px;filter:drop-shadow(0 20px 18px rgba(0,0,0,.35));transition:.45s}.explode-part.head{transform:translateY(-64px) translateX(-28px)}.explode-part.body{transform:translateX(24px)}.explode-part.rings{transform:translateY(58px) translateX(-14px)}.part-label{position:absolute;padding:9px 13px;border-radius:10px;background:rgba(4,37,61,.78);border:1px solid rgba(58,190,255,.35);font-size:12px;color:#c9e4f4}.part-label.l1{left:70px;top:90px}.part-label.l2{right:85px;top:230px}.part-label.l3{left:90px;bottom:90px}.dimension-line{position:absolute;right:105px;top:90px;height:325px;width:60px;border-left:1px solid #42bfff}.dimension-line:before,.dimension-line:after{content:"";position:absolute;left:-8px;width:16px;border-top:1px solid #42bfff}.dimension-line:before{top:0}.dimension-line:after{bottom:0}.dimension-line span{position:absolute;top:48%;left:10px;color:#8ed8ff;font-size:12px}.dimensions-off .dimension-line{display:none}.product-summary{border-radius:22px;padding:28px;background:#fff;border:1px solid #d9e8f2;box-shadow:var(--shadow)}.product-summary .badge{display:inline-flex;border:1px solid #8cccf2;color:var(--blue);border-radius:999px;padding:5px 12px;font-size:12px;font-weight:800}.product-summary h1{font-size:36px;line-height:1.2;margin:14px 0 8px}.product-summary .en{color:#4b76a0;font-size:16px}.product-summary .model{font-size:17px;margin:8px 0 16px;font-weight:800}.product-summary>p{color:#5e778c}.feature-row{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:18px 0}.feature-box{border:1px solid #dceaf3;border-radius:12px;padding:12px;text-align:center;background:#fbfdff;font-size:12px}.feature-box b{display:block;color:var(--blue);font-size:14px}.param-card{margin-top:18px;border-top:1px solid #e2edf4;padding-top:16px}.param-card h3{margin:0 0 8px}.param-row{display:grid;grid-template-columns:95px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid #e8f0f5;font-size:13px}.param-row:last-child{border-bottom:0}.param-row span:first-child{font-weight:800;color:#49677e}.detail-section{padding:72px 0}.detail-section.alt{background:#f7fbfe}.feature-six{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}.feature-six .adv-card{text-align:center;padding:20px 12px}.anatomy-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:20px}.anatomy-card{border:1px solid #dce9f3;border-radius:18px;background:#fff;padding:26px;min-height:320px;position:relative;overflow:hidden}.anatomy-figure{height:270px;display:flex;align-items:center;justify-content:center;font-size:130px;color:#b9d9eb}.anatomy-dot{position:absolute;width:18px;height:18px;border-radius:50%;background:#17a9ff;left:48%;top:52%;box-shadow:0 0 0 12px rgba(23,169,255,.14)}.research-list{display:grid;gap:10px;margin-top:18px}.research-item{padding:14px;border-radius:12px;background:#f5fbff;border:1px solid #dceaf3}.immersive-view{display:none;position:fixed;inset:0;z-index:5000;background:radial-gradient(circle at 52% 72%,rgba(0,149,232,.18),transparent 30%),#03111d;color:#fff}.immersive-view.open{display:block}.immersive-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(50,158,214,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(50,158,214,.08) 1px,transparent 1px);background-size:42px 42px}.immersive-close{position:absolute;right:28px;top:22px;z-index:5;color:#fff;background:none;border:0;font-size:28px;cursor:pointer}.immersive-info{position:absolute;left:34px;top:90px;width:320px;z-index:3;border:1px solid rgba(86,189,241,.26);border-radius:18px;background:rgba(2,23,39,.68);padding:24px}.immersive-info h2{font-size:26px;margin:6px 0}.immersive-canvas{position:absolute;inset:35px 100px 70px 390px;display:flex;align-items:center;justify-content:center;perspective:1200px}.immersive-product{height:72vh;filter:drop-shadow(0 32px 28px rgba(0,0,0,.5));cursor:grab;transform-style:preserve-3d}.immersive-tools{position:absolute;right:28px;top:100px;z-index:4;display:flex;flex-direction:column;gap:10px}.immersive-tip{position:absolute;right:120px;bottom:105px;border:1px solid rgba(77,190,246,.25);border-radius:12px;background:rgba(3,24,42,.76);padding:11px 14px;font-size:12px;color:#bad8ea}.immersive-strip{position:absolute;left:390px;right:160px;bottom:25px;height:58px;display:flex;justify-content:center;gap:10px}.immersive-strip button{width:130px;border:1px solid rgba(83,190,245,.25);border-radius:10px;color:#bdd7e6;background:rgba(2,29,48,.76)}

/* knowledge/news/contact */
.split-list{display:grid;grid-template-columns:1fr 1fr;gap:28px}.list-panel{border:1px solid #ddeaf3;border-radius:20px;background:#fff;padding:22px}.list-item{display:grid;grid-template-columns:105px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid #e7eff5}.list-item:last-child{border-bottom:0}.list-item img{width:105px;height:78px;object-fit:cover;border-radius:10px}.list-item h4{margin:0 0 5px;font-size:15px}.list-item p{margin:0;color:#7c91a2;font-size:12px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.contact-card{border:1px solid #dce9f3;border-radius:20px;padding:28px;background:#fff}.contact-row{padding:12px 0;border-bottom:1px solid #e7eef4}.contact-row:last-child{border-bottom:0}.contact-row b{display:block;color:#3d617a;font-size:13px}.contact-row span{font-size:17px}.map-mock{height:420px;border-radius:20px;position:relative;overflow:hidden;background:linear-gradient(135deg,#eaf4f9,#f9fcfe);border:1px solid #dce9f3}.map-mock:before{content:"";position:absolute;inset:0;background-image:linear-gradient(#d2e4ed 1px,transparent 1px),linear-gradient(90deg,#d2e4ed 1px,transparent 1px);background-size:42px 42px;opacity:.55}.map-pin{position:absolute;left:57%;top:47%;width:34px;height:34px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#0a82da;box-shadow:0 0 0 12px rgba(10,130,218,.13)}.map-label{position:absolute;left:51%;top:60%;background:#fff;border:1px solid #cfe3ef;padding:12px 16px;border-radius:12px;box-shadow:var(--shadow)}

/* Reference-art direction: compact white-and-cobalt medical interface */
:root{--wrap:1180px;--blue:#0874df;--blue2:#008bf1;--ink:#072e68;--muted:#597492;--line:#d8e8f5;--paper:#f6fbff;--radius:12px;--shadow:0 10px 28px rgba(21,93,161,.12)}
body{background:linear-gradient(135deg,#fff 0%,#f4faff 45%,#fff 100%);font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;letter-spacing:.005em}.wrap{width:var(--wrap)}.site-header{height:66px;box-shadow:0 2px 16px rgba(33,108,166,.07);border-bottom:1px solid rgba(208,228,242,.78)}.site-header .inner{width:var(--wrap);gap:20px}.brand{width:175px}.brand img{width:64px;height:46px}.brand b{font-size:16px}.brand small{font-size:7px;margin-top:3px}.main-nav{gap:28px;font-size:12px}.main-nav a{padding:24px 0 21px}.nav-cta{padding:10px 23px;font-size:13px;min-width:118px}
.btn{min-height:38px;padding:0 20px;font-size:13px;box-shadow:none}.btn-primary{box-shadow:0 7px 16px rgba(0,111,221,.22)}.btn-outline{border-color:#a6d3f7;background:rgba(255,255,255,.92)}.section{padding:52px 0}.section.compact{padding:38px 0}.section-title{font-size:29px;color:#072f68}.section-kicker{font-size:11px;letter-spacing:.15em;margin-bottom:6px}.section-sub{font-size:13px}.section-head{margin-bottom:20px}.tiny-en{font-size:10px}
body[data-page="home"] .hero{height:452px;background:linear-gradient(90deg,rgba(251,254,255,.98) 0%,rgba(248,252,255,.94) 50%,rgba(229,245,255,.65) 100%)}body[data-page="home"] .hero:before{opacity:.47}body[data-page="home"] .hero:after{background:linear-gradient(90deg,#fbfdff 0 41%,rgba(249,253,255,.8) 61%,rgba(243,251,255,.16) 100%),radial-gradient(circle at 73% 58%,rgba(14,171,255,.18),transparent 34%)}body[data-page="home"] .hero .wrap{grid-template-columns:1.02fr .98fr;gap:18px;padding-bottom:70px}body[data-page="home"] .hero-kicker{font-size:13px;letter-spacing:.28em;margin-bottom:9px;color:#254a76}body[data-page="home"] .hero h1{font-size:49px;margin-bottom:9px;color:#052e68;font-weight:900}body[data-page="home"] .hero h1 span{color:#052e68}body[data-page="home"] .hero .lead{font-size:15px;line-height:1.75;max-width:640px;margin-bottom:16px;color:#163f71;font-weight:700}body[data-page="home"] .hero .note{font-size:12px;margin-top:11px}.hero-visual{height:370px}.hero-product{height:355px;filter:drop-shadow(0 22px 18px rgba(9,48,81,.26))}.holo-platform{width:370px;height:128px;bottom:20px}.hero-grid{inset:38px 4px 6px;background-size:26px 26px}.callout{font-size:11px}.callout b{font-size:13px}.callout.c1{top:57px;right:15px}.callout.c2{bottom:91px;left:8px}
body[data-page="home"] .stats-bar{height:70px;background:rgba(255,255,255,.77)}.stats-bar .wrap{gap:12px}.stat{gap:9px}.stat-icon{width:30px;height:30px;border-radius:8px;font-size:10px}.stat b{font-size:17px}.stat span{font-size:11px}body[data-page="home"] .section{padding:31px 0}body[data-page="home"] .section.compact{padding:26px 0}body[data-page="home"] .section-title{font-size:25px;margin-bottom:5px}body[data-page="home"] .section-head{margin-bottom:14px}.problem-copy{padding-right:18px}.problem-copy p{font-size:13px;margin:7px 0 14px;line-height:1.75}.compare-grid{gap:24px}.compare{grid-template-columns:1fr 52px 1fr;gap:8px}.compare-card{border-radius:7px;padding:13px 18px;box-shadow:0 8px 20px rgba(16,77,126,.08)}.compare-card h3{font-size:14px;margin-bottom:5px}.compare-card li{font-size:12px;padding:6px 0 6px 23px}.vs{width:40px;height:40px;font-size:13px}
body[data-page="home"] .instrument-section{padding:29px 0;background:linear-gradient(135deg,#041b34,#062d4b 65%,#073b62)}.instrument-row{grid-template-columns:240px repeat(6,1fr);gap:8px}.instrument-intro{padding:9px 9px 6px 0}.instrument-intro h2{font-size:26px;margin-bottom:4px}.instrument-intro p{font-size:12px;margin:4px 0 12px}.instrument-card{min-height:154px;border-radius:7px;padding:11px}.instrument-card img{top:9px;height:76px}.instrument-card b{font-size:14px}.instrument-card small{font-size:10px}.instrument-card:after{content:"→";position:absolute;right:11px;bottom:10px;width:18px;height:18px;border:1px solid rgba(156,219,255,.7);border-radius:50%;display:grid;place-items:center;font-size:12px}
body[data-page="home"] .species-grid{gap:10px}.species-card{height:126px;border-radius:8px;padding:12px;background:rgba(255,255,255,.86)}.species-card b{font-size:16px}.species-card span{font-size:10px}.species-card em{left:12px;bottom:11px;font-size:10px}.species-ghost{font-size:58px;bottom:-14px}body[data-page="home"] .service-section{padding:27px 0;background:linear-gradient(100deg,#f3faff,#fff)}body[data-page="home"] .service-section .wrap{display:grid;grid-template-columns:250px 1fr;gap:15px}body[data-page="home"] .service-top{display:contents}body[data-page="home"] .service-copy{grid-row:1/3;border-radius:6px;padding:21px 17px;background:linear-gradient(145deg,#063269,#0069c4)}body[data-page="home"] .service-copy .section-title{color:#fff;font-size:24px}body[data-page="home"] .service-copy p{font-size:12px;line-height:1.65;margin:7px 0 12px}body[data-page="home"] .service-image{display:none}body[data-page="home"] .process-grid{grid-column:2;gap:8px}.process-card{min-height:144px;border-radius:6px;padding:9px}.process-num{font-size:19px;line-height:1}.process-card img{height:58px;border-radius:4px;margin:4px 0 6px}.process-card h3{font-size:12px;margin:0}.process-card p{font-size:10px;line-height:1.45}.process-arrow{right:-11px;width:22px;height:22px;font-size:12px}
body[data-page="home"] .adv-grid{grid-template-columns:repeat(8,1fr);gap:7px}.adv-card{border-radius:6px;padding:13px;min-height:0}.adv-icon{width:31px;height:31px;border-radius:50%;margin:0 auto 8px;font-size:0;background:#f4fbff;border:1px solid #d6edfb}.adv-card:nth-child(1) .adv-icon:after{content:"◎"}.adv-card:nth-child(2) .adv-icon:after{content:"⚙"}.adv-card:nth-child(3) .adv-icon:after{content:"♙"}.adv-card:nth-child(4) .adv-icon:after{content:"⌘"}.adv-card:nth-child(5) .adv-icon:after{content:"◌"}.adv-card:nth-child(6) .adv-icon:after{content:"⌬"}.adv-card:nth-child(7) .adv-icon:after{content:"▣"}.adv-card:nth-child(8) .adv-icon:after{content:"✓"}.adv-icon:after{font-size:19px;color:#0578df;line-height:1}.adv-card h3{font-size:12px;text-align:center;line-height:1.35}.adv-card p{font-size:10px;line-height:1.4;text-align:center}
body[data-page="home"] .case-grid{gap:10px}.case-card{border-radius:6px}.case-card img{height:92px}.case-body{padding:10px}.case-body h3{font-size:13px;margin:4px 0}.case-body p{font-size:10px;line-height:1.45}.tag{font-size:9px;padding:3px 7px}.split-list{gap:18px}.list-panel{padding:12px;border:0;border-radius:0;background:transparent}.list-panel h2{font-size:23px;margin:2px 0}.list-item{grid-template-columns:72px 1fr;gap:9px;padding:6px 0}.list-item img{width:72px;height:47px;border-radius:3px}.list-item h4{font-size:11px;margin:0}.list-item p{font-size:9px}.home-cta{padding:29px 0}.home-cta h2{font-size:25px}.home-cta p{font-size:12px}.home-cta:after{font-size:95px}.site-footer{padding:29px 0 12px}.footer-grid{grid-template-columns:1.4fr .82fr 1.2fr .75fr;gap:26px}.footer-logo img{width:58px;height:38px}.footer-logo b{font-size:16px}.footer-brand p,.footer-col a,.footer-col p{font-size:10px;margin:4px 0}.footer-col h4{font-size:12px;margin-bottom:8px}.qr-placeholder{width:78px;height:78px;border-width:3px}.copyright{margin-top:16px;padding-top:9px;font-size:9px}
body[data-page="service"] .page-hero{height:300px}body[data-page="service"] .page-hero .bg{opacity:.52}body[data-page="service"] .page-hero:after{background:linear-gradient(90deg,rgba(249,253,255,.98) 0 42%,rgba(248,252,255,.2) 82%)}body[data-page="service"] .page-hero h1{font-size:43px;color:#062d66;margin:4px 0 7px}body[data-page="service"] .page-hero p{font-size:15px;line-height:1.7;color:#173e70;max-width:600px}body[data-page="service"] .page-hero .breadcrumb{margin-bottom:10px}body[data-page="service"] .section{padding:29px 0}body[data-page="service"] .section-title{font-size:27px}.pipeline{gap:11px}.pipeline-item{min-height:215px;border-radius:7px;padding:12px}.pipeline-item .process-num{display:inline-block;background:#0874d8;color:#fff;border-radius:5px;padding:2px 8px;font-size:18px}.pipeline-item img{height:77px;border-radius:4px;margin:6px 0}.pipeline-item h3{font-size:13px;margin:3px 0}.pipeline-item ul{font-size:10px;line-height:1.7}.model-table{border-radius:7px}.model-table th,.model-table td{font-size:12px;padding:9px 12px}.detect-grid{gap:9px}.detect-card{border-radius:6px}.detect-card img{height:76px}.detect-card div{padding:8px}.detect-card b{font-size:12px}.detect-card p{font-size:10px}
.detail-top{padding:12px 0 24px;background:linear-gradient(115deg,#f9fdff,#eaf6ff 70%,#fff)}.detail-top .breadcrumb{margin-bottom:10px}.detail-grid{grid-template-columns:1.4fr .82fr;gap:20px}.viewer-shell{height:570px;border-radius:8px;border-color:#0879bf;box-shadow:0 16px 38px rgba(4,53,95,.18);background:radial-gradient(circle at 50% 74%,rgba(0,152,242,.27),transparent 35%),linear-gradient(135deg,#02162a,#062d49)}.viewer-shell:before{background-size:24px 24px}.viewer-tabs{height:55px}.viewer-tab{font-size:10px}.viewer-tab b{font-size:12px}.viewer-stage{top:55px;right:58px;bottom:69px}.viewer-stage:before{content:"精工制造\A 助力高质量动物模型研究\A\A PRECISION INSTRUMENTS\A FOR BETTER SCIENCE";white-space:pre-line;position:absolute;left:26px;top:35px;color:#d9edfc;font-weight:800;font-size:16px;line-height:1.55;z-index:1}.viewer-stage:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 54% 74%,rgba(4,151,255,.18),transparent 24%);pointer-events:none}.viewer-object-wrap{height:390px;width:300px}.viewer-object{max-height:395px;max-width:275px}.viewer-orbit{width:390px;height:120px;bottom:20px}.hotspot{font-size:10px}.hotspot b{font-size:12px}.hotspot.hs1{top:72px;right:45px}.hotspot.hs2{left:38px;top:205px}.hotspot.hs3{right:35px;bottom:72px}.viewer-tools{right:9px;top:67px;width:40px;gap:6px}.tool-btn{width:40px;height:40px;border-radius:8px;font-size:16px}.viewer-help{right:67px;top:67px;padding:8px 10px;font-size:10px}.view-strip{left:12px;right:12px;bottom:10px;height:50px;gap:7px}.view-thumb{border-radius:6px;font-size:10px}.product-summary{padding:20px;border-radius:8px}.product-summary .badge{font-size:10px;padding:4px 9px}.product-summary h1{font-size:29px;margin:9px 0 5px}.product-summary .en{font-size:13px}.product-summary .model{font-size:14px;margin:6px 0 10px}.product-summary>p{font-size:13px;margin:7px 0}.feature-row{gap:6px;margin:12px 0}.feature-box{border-radius:6px;padding:8px 4px;font-size:8px}.feature-box b{font-size:11px}.param-card{margin-top:12px;padding-top:11px}.param-card h3{font-size:17px}.param-row{grid-template-columns:78px 1fr;gap:8px;padding:6px 0;font-size:11px}.detail-section{padding:34px 0}.feature-six{gap:8px}.feature-six .adv-card{padding:11px 6px}.feature-six .adv-card h3{font-size:12px}.feature-six .adv-card p{font-size:10px}.anatomy-card{border-radius:8px;padding:17px;min-height:230px}.anatomy-figure{height:190px;font-size:100px}.anatomy-dot{width:14px;height:14px}.research-list{gap:7px;margin-top:12px}.research-item{padding:9px;font-size:12px;border-radius:6px}.drawing-panel,.detail-mode{inset:55px 58px 69px 0;padding:15px}.explode-mode{inset:55px 58px 69px 0}.explode-part{height:355px}.part-label{font-size:10px;padding:6px 9px}.part-label.l1{left:35px;top:50px}.part-label.l2{right:42px;top:180px}.part-label.l3{left:50px;bottom:46px}.dimension-line{right:50px;top:58px;height:270px}.immersive-info{left:35px;top:95px;width:350px;border-radius:12px}.immersive-info h2{font-size:25px}.immersive-canvas{inset:28px 120px 72px 390px}.immersive-product{height:74vh}.immersive-tools{right:24px;top:92px}.immersive-tip{right:105px;bottom:98px}.immersive-strip{left:390px;right:145px;height:58px}

body[data-page="home"] .hero:before{background-image:url('../source/home-banner.jpg')}
body[data-page="service"] .page-hero .bg{opacity:.62}
body[data-page="service"] .page-hero .bg:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(246,252,255,.62),transparent 58%)}
.immersive-bg{background-image:linear-gradient(rgba(2,15,29,.74),rgba(2,15,29,.84)),linear-gradient(rgba(50,158,214,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(50,158,214,.08) 1px,transparent 1px),url('../source/lab-space.jpg');background-size:auto,42px 42px,42px 42px,cover;background-position:center}.immersive-info{background:rgba(2,24,43,.78);box-shadow:0 20px 45px rgba(0,0,0,.28)}
/* modal/reveal */
.modal{display:none;position:fixed;inset:0;background:rgba(0,18,32,.55);z-index:4000;align-items:center;justify-content:center}.modal.open{display:flex}.modal-card{width:520px;background:#fff;border-radius:22px;padding:30px;box-shadow:0 30px 80px rgba(0,0,0,.25);position:relative}.modal-card h2{margin:0 0 10px}.modal-close{position:absolute;right:18px;top:14px;border:0;background:none;font-size:24px;cursor:pointer}.modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.modal-item{border:1px solid #dce9f3;border-radius:12px;padding:14px}.modal-item b{display:block;font-size:12px;color:#6f879a}.reveal{opacity:1;transform:none;transition:.65s ease}.reveal.show{opacity:1;transform:none}

/* Homepage — reference-accurate editorial layout */
body[data-page="home"] .site-header{height:54px;background:rgba(255,255,255,.96)}body[data-page="home"] .site-header .inner{width:1110px}body[data-page="home"] .brand{width:160px}body[data-page="home"] .brand img{width:56px;height:40px}body[data-page="home"] .brand b{font-size:14px}body[data-page="home"] .brand small{font-size:6px}body[data-page="home"] .main-nav{gap:26px;font-size:10px}body[data-page="home"] .main-nav a{padding:19px 0 17px}body[data-page="home"] .nav-cta{padding:8px 18px;font-size:11px;min-width:92px}
.home-reference{font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;color:#092e65;background:linear-gradient(135deg,#fff 0%,#f5fbff 52%,#fff 100%)}.home-reference h1,.home-reference h2,.home-reference h3,.home-reference p{margin:0}.ref-wrap{width:1110px;margin:0 auto}.ref-hero{height:377px;position:relative;overflow:hidden;background:linear-gradient(90deg,rgba(251,254,255,.99) 0%,rgba(247,252,255,.92) 48%,rgba(239,249,255,.42) 100%)}.ref-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.93) 0 40%,rgba(255,255,255,.52) 61%,rgba(255,255,255,.04)),url('../source/home-banner.jpg') center/cover no-repeat;filter:saturate(.82);opacity:.95}.ref-hero:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 73% 68%,rgba(0,150,242,.18),transparent 22%),linear-gradient(125deg,transparent 55%,rgba(13,130,224,.04))}.ref-hero-inner{height:320px;position:relative;z-index:2;display:grid;grid-template-columns:49% 51%;align-items:center}.ref-hero-copy{padding-bottom:7px}.ref-eyebrow{font-size:13px;letter-spacing:.25em;font-weight:800;color:#3c5378;margin-bottom:8px}.ref-hero-copy h1{font-size:43px;line-height:1.05;letter-spacing:-.035em;font-weight:900;color:#062b62}.ref-hero-copy h1 span{color:#062b62}.ref-hero-copy h2{font-size:14px;line-height:1.5;margin-top:9px;font-weight:800;color:#092e65}.ref-hero-copy p{font-size:12px;color:#3f6083;line-height:1.7;margin-top:12px}.ref-actions{display:flex;gap:10px;margin-top:14px}.ref-btn{display:inline-flex;align-items:center;justify-content:center;min-height:31px;padding:0 18px;border:1px solid #b6d9f7;border-radius:20px;color:#0872d5;background:#fff;font-size:11px;font-weight:800;box-shadow:0 3px 9px rgba(30,125,205,.08)}.ref-btn.primary{border-color:#0785ee;color:#fff;background:linear-gradient(135deg,#058cec,#0064d3);box-shadow:0 7px 15px rgba(0,111,212,.23)}.ref-btn i{font-style:normal;margin-left:9px;font-size:14px}.ref-hero-product{height:100%;position:relative;z-index:2}.ref-hero-product>img{position:absolute;height:278px;max-width:270px;object-fit:contain;right:149px;top:15px;filter:drop-shadow(0 18px 12px rgba(1,42,83,.26))}.hero-product-card{position:absolute;top:52px;left:8px;z-index:3;width:151px;padding:10px 12px;border-radius:6px;background:rgba(255,255,255,.76);box-shadow:0 10px 28px rgba(37,112,180,.1);backdrop-filter:blur(8px)}.hero-product-card b{display:block;font-size:12px}.hero-product-card span,.hero-product-card small{display:block;font-size:9px;color:#54718d;line-height:1.65}.hero-product-card span{margin-top:4px}.ref-crosshair{position:absolute;right:52px;top:38px;width:206px;height:200px;border-left:1px solid rgba(22,141,232,.38);border-bottom:1px solid rgba(22,141,232,.38);z-index:1}.ref-crosshair:before,.ref-crosshair:after{content:"";position:absolute;border:1px solid rgba(22,141,232,.34);border-radius:50%}.ref-crosshair:before{width:4px;height:4px;bottom:-3px;left:-3px;background:#fff}.ref-crosshair:after{width:180px;height:56px;bottom:-44px;left:-65px}.ref-platform{position:absolute;width:270px;height:76px;right:108px;bottom:21px;border:1px solid rgba(41,177,247,.52);border-radius:50%;background:radial-gradient(ellipse,rgba(56,192,255,.36),rgba(21,130,231,.1) 48%,transparent 70%);box-shadow:0 0 0 13px rgba(48,186,255,.035),0 0 38px rgba(28,174,255,.2)}.ref-platform:after{content:"";position:absolute;inset:13px;border:1px solid rgba(68,194,255,.42);border-radius:50%}.ref-tagline{position:absolute;right:4px;top:144px;color:#0874dc;font-family:KaiTi,"STKaiti",serif;font-size:20px;line-height:1.42;font-weight:700;transform:rotate(-7deg)}.ref-metrics{height:57px;position:absolute;z-index:3;bottom:0;left:0;right:0;background:rgba(255,255,255,.76);border-top:1px solid rgba(203,228,244,.8);backdrop-filter:blur(9px)}.ref-metrics .ref-wrap{height:100%;display:grid;grid-template-columns:repeat(4,1fr);align-items:center}.ref-metrics div>div{display:grid;grid-template-columns:21px auto;column-gap:7px;align-items:center}.ref-metrics b{grid-row:1/3;font-size:17px;color:#0879dd}.ref-metrics strong{font-size:16px;line-height:1;color:#0872d2}.ref-metrics span{font-size:9px;color:#617d96;margin-top:3px}
.ref-problem{height:171px;background:linear-gradient(105deg,#fff 0%,#f7fbff 69%,rgba(234,247,255,.7))}.ref-problem-grid{height:100%;display:grid;grid-template-columns:33% 67%;align-items:center;gap:20px}.ref-copy h2,.ref-section-title h2,.ref-case-head h2,.ref-news h2{font-size:23px;line-height:1.2;font-weight:900}.ref-copy h3{font-size:11px;color:#718ba3;margin-top:4px}.ref-copy p{font-size:10px;line-height:1.7;color:#54718a;margin:10px 0}.ref-small-btn{display:inline-flex;min-height:27px;align-items:center;padding:0 14px;border:1px solid #abd4f5;border-radius:18px;color:#0873d2;background:rgba(255,255,255,.8);font-size:10px;font-weight:800}.ref-compare{display:grid;grid-template-columns:1fr 36px 1fr;gap:6px;align-items:center}.ref-compare article{height:108px;border:1px solid #d8e7f1;border-radius:6px;background:rgba(255,255,255,.86);padding:8px 18px;box-shadow:0 8px 18px rgba(35,107,166,.08)}.ref-compare article h3{font-size:11px;margin-bottom:5px}.ref-compare article p{font-size:9px;line-height:1.8;color:#5e768c;border-top:1px dashed #e6eef4}.ref-compare .standard{background:linear-gradient(180deg,#eef9ff,#f8fdff);border-color:#8dcdf5}.ref-compare .standard h3{color:#075fb6}.ref-compare .standard p{color:#1872bf}.ref-compare em{width:33px;height:33px;border:1px solid #aad5f3;border-radius:50%;background:#fff;display:grid;place-items:center;color:#0873d1;font-size:11px;font-style:normal;font-weight:900;box-shadow:0 4px 10px rgba(38,109,170,.12)}
.ref-instruments{height:169px;background:linear-gradient(100deg,#041d37,#072f4d 70%,#083c62);color:#fff;position:relative;overflow:hidden}.ref-instruments:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(88,183,230,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(88,183,230,.08) 1px,transparent 1px);background-size:26px 26px}.ref-instrument-grid{height:100%;position:relative;display:grid;grid-template-columns:236px repeat(6,1fr);gap:9px;align-items:center}.ref-instrument-copy h2{font-size:23px}.ref-instrument-copy p{font-size:10px;color:#d6e8f4;margin-top:7px}.ref-instrument-copy small{font-size:9px;color:#7fb1d0;display:block;margin:5px 0 12px}.ref-instrument-copy .ref-btn{min-height:27px;padding:0 13px;font-size:10px}.ref-instrument-card{height:118px;position:relative;border:1px solid rgba(137,208,249,.33);border-radius:5px;background:linear-gradient(180deg,rgba(255,255,255,.11),rgba(255,255,255,.035));overflow:hidden;padding:76px 9px 9px;color:#fff}.ref-instrument-card.selected{border-color:#3cbfff;box-shadow:0 0 0 1px rgba(57,197,255,.35),0 0 15px rgba(41,181,245,.26)}.ref-instrument-card img{position:absolute;top:7px;left:50%;height:65px;max-width:88%;object-fit:contain;transform:translateX(-50%);filter:drop-shadow(0 7px 8px rgba(0,0,0,.35))}.ref-instrument-card b{display:block;font-size:12px}.ref-instrument-card span{display:block;color:#a4c5d9;font-size:8px;margin-top:1px}.ref-instrument-card:after{content:"→";position:absolute;right:8px;bottom:7px;width:15px;height:15px;border:1px solid rgba(168,224,255,.7);border-radius:50%;display:grid;place-items:center;font-size:10px}
.ref-species{height:150px;background:linear-gradient(95deg,#fff,#f4faff);position:relative}.ref-species-grid{height:100%;display:grid;grid-template-columns:245px repeat(6,1fr);align-items:center;gap:8px}.ref-species-copy h2{font-size:20px}.ref-species-copy p{font-size:9px;color:#607a91;margin:6px 0 10px}.animal-card{height:112px;border:1px solid #dceaf4;border-radius:6px;background:#fff;overflow:hidden;position:relative;padding:79px 8px 8px;color:#183d68;box-shadow:0 3px 10px rgba(26,96,145,.05)}.animal-card>div{position:absolute;top:0;left:0;right:0;height:77px;overflow:hidden;background:linear-gradient(#f8fbfd,#fff)}.animal-card>div img{position:absolute;height:600px;width:auto;top:-331px}.animal-card.mouse img{left:-1px}.animal-card.rat img{left:-152px}.animal-card.rabbit img{left:-305px}.animal-card.dog img{left:-520px}.animal-card.pig img{left:-667px}.animal-card.goat img{left:-800px}.animal-card b{font-size:11px;display:block}.animal-card span{font-size:8px;color:#638097}.animal-card i{position:absolute;right:8px;bottom:8px;font-style:normal;color:#1683df;font-size:11px}
.ref-service{height:164px;background:linear-gradient(105deg,#edf8ff,#fff)}.ref-service-grid{height:100%;display:grid;grid-template-columns:202px repeat(6,1fr);gap:8px;align-items:center}.ref-service-copy h2{font-size:21px}.ref-service-copy p{font-size:10px;color:#456b8d;margin:5px 0}.ref-service-copy small{font-size:8px;line-height:1.5;color:#5f7f97;display:block;margin-bottom:9px}.ref-service-copy .ref-btn{min-height:27px;padding:0 13px;font-size:10px}.ref-service article{height:110px;border:1px solid #d8e8f3;border-radius:5px;background:#fff;overflow:hidden;padding:65px 8px 7px;position:relative;box-shadow:0 3px 10px rgba(23,91,148,.06)}.ref-service article img{position:absolute;top:0;left:0;width:100%;height:58px;object-fit:cover}.ref-service article b{display:block;font-size:10px}.ref-service article b em{font-style:normal;color:#087de0;font-size:17px;margin-right:6px;vertical-align:-2px}.ref-service article span{font-size:8px;color:#658097;display:block;margin-top:1px}
.ref-advantages{height:115px;background:#fff}.ref-advantages .ref-wrap{height:100%;display:grid;grid-template-columns:205px 1fr;gap:14px;align-items:center}.ref-section-title p{font-size:9px;color:#607c93;margin-top:5px}.ref-adv-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.ref-adv-grid article{height:73px;border:1px solid #dfebf4;border-radius:5px;display:grid;grid-template-columns:29px 1fr;align-items:center;gap:5px;padding:8px;background:#fff}.ref-adv-grid b{font-size:20px;color:#087ee0;text-align:center}.ref-adv-grid strong{font-size:9px;line-height:1.38;color:#163f6e}
.ref-cases{height:155px;background:linear-gradient(100deg,#f7fcff,#fff)}.ref-cases .ref-wrap{height:100%;padding-top:14px}.ref-case-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:9px}.ref-case-head p{font-size:9px;color:#688199;margin-top:4px}.ref-case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.ref-case-grid a{height:87px;position:relative;border:1px solid #d7e7f2;border-radius:5px;overflow:hidden;background:#fff;padding:47px 10px 7px}.ref-case-grid img{position:absolute;inset:0 0 auto;width:100%;height:42px;object-fit:cover;filter:brightness(.9)}.ref-case-grid b{position:absolute;top:34px;left:10px;padding:2px 7px;border-radius:10px;background:#e8f7ff;color:#0875d4;font-size:8px}.ref-case-grid h3{font-size:9px;line-height:1.35;margin:1px 16px 1px 0;color:#183e68}.ref-case-grid p{font-size:7px;color:#748aa0}.ref-case-grid i{position:absolute;right:9px;bottom:8px;color:#087cdf;font-size:14px;font-style:normal}
.ref-news{height:146px;background:#fff}.ref-news-grid{height:100%;display:grid;grid-template-columns:180px 1fr 180px 1fr;gap:12px;align-items:center}.ref-news h2{font-size:19px}.ref-news p{font-size:9px;color:#637d96;margin:5px 0 12px}.ref-news-list{display:grid;gap:4px}.ref-news-list a{height:29px;display:grid;grid-template-columns:42px 1fr;gap:7px;border-bottom:1px solid #edf3f7;color:#244a70;font-size:8px;line-height:1.35;overflow:hidden}.ref-news-list img{width:42px;height:25px;object-fit:cover}.ref-news-list small{display:block;color:#8ca0b1;font-size:7px;margin-top:1px}

/* Source banner is a 1920x1080 composition: these offsets isolate each animal. */
.animal-card>div img{height:500px;max-width:none;top:-330px;filter:saturate(.88) contrast(.98)}
.animal-card.mouse img{left:-16px}.animal-card.rat img{left:-118px}.animal-card.rabbit img{left:-257px}.animal-card.dog img{left:-535px}.animal-card.pig img{left:-396px}.animal-card.goat img{left:-674px}

/* Interaction and detail refinement */
:root{--ui-radius-sm:8px;--ui-radius-md:12px;--ui-radius-lg:18px;--ui-border:#d8e8f3}
html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
#site-header{height:66px}
body[data-page="home"] #site-header{height:54px}
.site-header{position:fixed;top:0;left:0;right:0;width:100%;transition:transform .32s cubic-bezier(.22,.61,.36,1),box-shadow .25s;border-bottom-color:rgba(199,220,235,.82);box-shadow:0 5px 24px rgba(7,51,87,.045);will-change:transform}
.site-header.nav-hidden{transform:translateY(calc(-100% - 4px));box-shadow:none}
.nav-reveal-zone{position:fixed;z-index:1001;top:0;left:0;right:0;height:12px;background:linear-gradient(90deg,transparent,rgba(10,137,226,.12),transparent);opacity:0;pointer-events:none;transition:opacity .2s,height .15s}
.nav-reveal-zone.active{height:78px;pointer-events:auto;cursor:default}
.nav-reveal-zone.active:hover{opacity:1}
.main-nav{height:100%;gap:19px}
.nav-item{position:relative;height:100%;display:flex;align-items:center}
.main-nav .nav-link{height:100%;display:flex;align-items:center;gap:5px;white-space:nowrap}
.main-nav .nav-link i{width:5px;height:5px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.55;transition:.2s}
.nav-item:hover .nav-link i{transform:rotate(225deg) translate(-1px,-1px);opacity:1}
.sub-nav{position:absolute;top:calc(100% - 2px);left:50%;width:196px;padding:9px;background:rgba(255,255,255,.98);border:1px solid #dbeaf4;border-radius:0 0 var(--ui-radius-md) var(--ui-radius-md);box-shadow:0 18px 36px rgba(8,50,86,.14);opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,9px);transition:opacity .2s,transform .22s,visibility .2s}
.nav-item:hover .sub-nav,.nav-item:focus-within .sub-nav{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
.main-nav .sub-nav a{display:flex;align-items:center;justify-content:space-between;padding:10px 11px;border-radius:7px;color:#244b70;font-size:12px;font-weight:700;line-height:1.2}
.main-nav .sub-nav a:after{display:none}.main-nav .sub-nav a:hover{background:linear-gradient(90deg,#eef8ff,#f8fcff);color:#0577d8}.main-nav .sub-nav a span{color:#74acd6;transition:transform .2s}.main-nav .sub-nav a:hover span{transform:translateX(3px)}
.home-reference{letter-spacing:.005em}.ref-copy h2,.ref-section-title h2,.ref-case-head h2,.ref-news h2,.ref-instrument-copy h2,.ref-species-copy h2,.ref-service-copy h2{letter-spacing:-.025em}.ref-copy p,.ref-service-copy small,.ref-news-list a{letter-spacing:.01em}
.ref-compare article,.ref-instrument-card,.animal-card,.ref-service article,.ref-adv-grid article,.ref-case-grid a{border-radius:var(--ui-radius-sm);border-color:var(--ui-border)}
.ref-compare article,.animal-card,.ref-service article,.ref-adv-grid article,.ref-case-grid a{box-shadow:0 5px 15px rgba(22,88,139,.055)}
.ref-species{height:168px}.ref-species-grid{grid-template-columns:245px repeat(6,1fr);gap:9px}.animal-card{height:126px;padding:94px 10px 8px;transition:transform .22s,border-color .22s,box-shadow .22s}.animal-card>div{height:90px;background:linear-gradient(180deg,#f6f9fb,#fff)}.animal-card:hover{transform:translateY(-4px);border-color:#8ccaf3;box-shadow:0 12px 24px rgba(21,104,166,.13)}.animal-card b{font-size:12px}.animal-card span{font-size:9px}.animal-card.rabbit img,.animal-card.dog img,.animal-card.pig img,.animal-card.goat img{top:-290px}.animal-card.mouse img,.animal-card.rat img{top:-320px}
.ref-service{height:174px}.ref-service article{height:120px;padding-top:72px}.ref-service article img{height:65px}.ref-service article:hover,.ref-case-grid a:hover{border-color:#9acff2;box-shadow:0 12px 25px rgba(18,92,151,.12)}
.ref-advantages{height:122px}.ref-adv-grid article{height:78px}.ref-cases{height:164px}.ref-case-grid a{height:94px;padding-top:51px}.ref-case-grid img{height:46px}.ref-news{height:152px}
.mini-3d-badge,.product-3d-badge{position:absolute;z-index:4;display:inline-flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(135deg,#20b8ff,#056fd8);box-shadow:0 5px 12px rgba(0,119,217,.25);font-weight:900;letter-spacing:.05em}
.mini-3d-badge{top:7px;left:7px;width:26px;height:18px;border-radius:5px;font-size:8px}.ref-instrument-card.supports-3d:hover{border-color:#55c9ff;transform:translateY(-3px);box-shadow:0 0 0 1px rgba(57,197,255,.25),0 10px 24px rgba(0,0,0,.2)}
.product-3d-badge{top:14px;left:14px;height:27px;padding:0 10px;border-radius:999px;font-size:10px}.product-card.supports-3d .product-photo{background:radial-gradient(circle at 50% 72%,rgba(27,177,246,.13),transparent 36%),linear-gradient(180deg,#f9fdff,#eaf6fd)}
.product-card,.adv-card,.detect-card,.pipeline-item,.param-card,.anatomy-card{border-radius:var(--ui-radius-md)}

/* Homepage legibility and image-proportion pass */
body[data-page="home"] .site-header{height:64px}
body[data-page="home"] .site-header .inner{width:1140px}
body[data-page="home"] .brand{width:178px}
body[data-page="home"] .brand img{width:64px;height:46px}
body[data-page="home"] .brand b{font-size:16px}
body[data-page="home"] .brand small{font-size:7px}
body[data-page="home"] .main-nav{gap:19px;font-size:12px}
body[data-page="home"] .main-nav .nav-link{padding:0}
body[data-page="home"] .main-nav .sub-nav a{padding:11px 12px;font-size:12px}
body[data-page="home"] .nav-cta{padding:10px 19px;font-size:12px;min-width:100px}
.ref-hero-copy h2{font-size:15px}.ref-hero-copy p{font-size:13px}.ref-btn{font-size:12px;min-height:34px}.ref-metrics strong{font-size:18px}.ref-metrics span{font-size:10px}
.ref-problem{height:205px}.ref-problem-grid{grid-template-columns:34% 66%;gap:24px}.ref-copy h2,.ref-section-title h2,.ref-case-head h2{font-size:26px}.ref-copy h3{font-size:13px;margin-top:6px}.ref-copy p{font-size:12px;line-height:1.75;margin:12px 0}.ref-small-btn{font-size:11px;min-height:30px;padding:0 16px}.ref-compare{grid-template-columns:1fr 42px 1fr;gap:8px}.ref-compare article{height:137px;padding:12px 19px}.ref-compare article h3{font-size:13px;margin-bottom:7px}.ref-compare article p{font-size:10.5px;line-height:1.95}.ref-compare em{width:38px;height:38px;font-size:12px}
.ref-instruments{height:205px}.ref-instrument-grid{grid-template-columns:245px repeat(6,1fr);gap:10px}.ref-instrument-copy h2{font-size:27px}.ref-instrument-copy p{font-size:12px}.ref-instrument-copy small{font-size:10px;margin:7px 0 14px}.ref-instrument-copy .ref-btn{min-height:31px;font-size:11px}.ref-instrument-card{height:148px;padding:98px 11px 10px}.ref-instrument-card img{top:9px;height:86px;max-width:92%}.ref-instrument-card b{font-size:14px}.ref-instrument-card span{font-size:9px;margin-top:3px}.ref-instrument-card:after{width:18px;height:18px;font-size:11px}
.ref-species{height:210px}.ref-species-grid{grid-template-columns:255px repeat(6,1fr);gap:10px}.ref-species-copy h2{font-size:24px}.ref-species-copy p{font-size:11px;line-height:1.65;margin:8px 0 14px}.animal-card{height:158px;padding:120px 11px 9px}.animal-card>div{height:114px;background:linear-gradient(180deg,#f6fbff 0%,#fff 100%)}.animal-card>div img{position:relative;width:100%;height:100%;max-width:100%;top:auto!important;left:auto!important;object-fit:contain;padding:5px 8px 2px;filter:drop-shadow(0 8px 8px rgba(20,76,114,.12));transform:none}.animal-card b{font-size:13px}.animal-card span{font-size:9px;margin-top:2px;display:block}.animal-card i{font-size:13px;right:10px;bottom:10px}
.ref-service{height:220px}.ref-service-grid{grid-template-columns:225px repeat(6,1fr);gap:10px}.ref-service-copy h2{font-size:25px}.ref-service-copy p{font-size:12px;margin:7px 0}.ref-service-copy small{font-size:10px;line-height:1.65;margin-bottom:12px}.ref-service-copy .ref-btn{min-height:31px;font-size:11px}.ref-service article{height:158px;padding:99px 10px 9px}.ref-service article img{height:91px;object-fit:cover}.ref-service article b{font-size:12px}.ref-service article b em{font-size:20px;margin-right:6px}.ref-service article span{font-size:9px;margin-top:3px}
.ref-advantages{height:150px}.ref-advantages .ref-wrap{grid-template-columns:220px 1fr;gap:18px}.ref-section-title p{font-size:11px;line-height:1.6;margin-top:7px}.ref-adv-grid{gap:9px}.ref-adv-grid article{height:96px;grid-template-columns:34px 1fr;padding:10px}.ref-adv-grid b{font-size:24px}.ref-adv-grid strong{font-size:10.5px;line-height:1.5}
.ref-cases{height:240px}.ref-cases .ref-wrap{padding-top:20px}.ref-case-head{margin-bottom:13px}.ref-case-head p{font-size:11px;margin-top:6px}.ref-case-grid{gap:12px}.ref-case-grid a{height:166px;padding:118px 13px 10px}.ref-case-grid img{height:108px;object-fit:cover;filter:brightness(.96) saturate(.92)}.ref-case-grid b{top:96px;left:13px;padding:3px 9px;font-size:10px}.ref-case-grid h3{font-size:11.5px;line-height:1.45;margin:2px 22px 2px 0}.ref-case-grid p{font-size:9px}.ref-case-grid i{font-size:16px;right:11px;bottom:10px}
.ref-news{height:188px}.ref-news-grid{grid-template-columns:190px 1fr 190px 1fr;gap:16px}.ref-news h2{font-size:23px}.ref-news p{font-size:11px;line-height:1.55;margin:6px 0 15px}.ref-news-list{gap:5px}.ref-news-list a{height:37px;grid-template-columns:54px 1fr;gap:9px;font-size:10px;line-height:1.4}.ref-news-list img{width:54px;height:33px}.ref-news-list small{font-size:8px;margin-top:2px}

/* Medical technology typography system */
:root{--type-cn:"PingFang SC","Source Han Sans SC","Noto Sans CJK SC","Microsoft YaHei",sans-serif;--type-en:Inter,Arial,Helvetica,sans-serif;--type-navy:#0f3764;--type-navy-2:#153f6a;--type-body:#6d849c;--type-muted:#8daac2;--type-brand:#1178d8}
body{font-family:var(--type-cn);font-size:16px;font-weight:400;line-height:1.7;color:var(--type-body)}
h1,h2,h3,h4,h5,h6{font-family:var(--type-cn);color:var(--type-navy);letter-spacing:-.018em;text-wrap:balance}p{color:var(--type-body)}
.section-kicker,.tiny-en,.ref-eyebrow,.product-code{font-family:var(--type-en);font-size:11px;font-weight:700;line-height:1.35;letter-spacing:.14em;text-transform:uppercase;color:var(--type-muted)}
.section-title{font-size:34px;font-weight:800;line-height:1.2;color:var(--type-navy);letter-spacing:-.02em}.section-sub{font-size:15px;font-weight:400;line-height:1.75;color:var(--type-body);max-width:760px}
.page-hero h1{font-size:54px;font-weight:900;line-height:1.1;color:var(--type-navy);letter-spacing:-.025em}.page-hero p{font-size:16px;font-weight:400;line-height:1.75;color:var(--type-body)}
.btn,.nav-cta,.ref-btn,.ref-small-btn{font-family:var(--type-cn);font-size:14px;font-weight:700;line-height:1;letter-spacing:0}.btn,.ref-btn{min-height:40px}.ref-small-btn{min-height:34px}
.product-info h3,.adv-card h3,.detect-card b,.pipeline-item h3{font-size:18px;font-weight:700;line-height:1.35;color:var(--type-navy-2)}.product-info p,.adv-card p,.detect-card p,.pipeline-item li{font-size:14px;font-weight:400;line-height:1.7;color:var(--type-body)}
.product-summary h1{font-size:38px;font-weight:900;line-height:1.14;color:var(--type-navy);letter-spacing:-.025em}.product-summary .en{font-family:var(--type-en);font-size:14px;font-weight:500;line-height:1.4;letter-spacing:.02em;color:#597b99}.product-summary>p{font-size:15px;line-height:1.75;color:var(--type-body)}
.param-card h3{font-size:22px;font-weight:800;color:var(--type-navy)}.param-row{font-size:14px;line-height:1.6;color:var(--type-body)}.param-row>span:first-child{font-weight:700;color:var(--type-navy-2)}
body[data-page="home"] .main-nav{font-family:var(--type-cn);font-size:13px;font-weight:700;color:#274866}.home-reference{font-family:var(--type-cn);color:var(--type-body)}
.ref-eyebrow{font-size:13px;letter-spacing:.18em;color:#7394b1;margin-bottom:12px}.ref-hero{height:430px}.ref-hero-inner{height:360px}
.ref-hero-copy h1{font-size:60px;font-weight:900;line-height:1.1;color:var(--type-navy);letter-spacing:-.026em}.ref-hero-copy h1 span{color:var(--type-navy)}.ref-hero-copy h2{font-size:18px;font-weight:700;line-height:1.4;color:var(--type-navy-2);margin-top:14px}.ref-hero-copy p{font-size:15px;font-weight:400;line-height:1.75;color:var(--type-body);margin-top:14px}
.ref-actions{margin-top:21px;gap:12px}.ref-metrics{height:70px}.ref-metrics strong{font-family:var(--type-en);font-size:25px;font-weight:800;line-height:1;color:var(--type-brand)}.ref-metrics span{font-size:12px;font-weight:500;color:var(--type-body);margin-top:5px}.ref-metrics b{font-size:20px;color:var(--type-brand)}
.ref-problem{height:228px}.ref-copy h2,.ref-instrument-copy h2,.ref-species-copy h2,.ref-service-copy h2,.ref-section-title h2,.ref-case-head h2{font-size:32px;font-weight:800;line-height:1.2;letter-spacing:-.022em}.ref-copy h3{font-size:15px;font-weight:600;line-height:1.35;color:var(--type-navy-2);margin-top:9px}.ref-copy p{font-size:14px;font-weight:400;line-height:1.75;color:var(--type-body);margin:14px 0 18px}
.ref-compare article{height:154px;padding:15px 20px}.ref-compare article h3{font-size:16px;font-weight:700;line-height:1.35;color:var(--type-navy-2);margin-bottom:9px}.ref-compare article p{font-size:12.5px;font-weight:400;line-height:1.9;color:var(--type-body)}
.ref-instruments{height:222px}.ref-instrument-copy h2{color:#fff}.ref-instrument-copy p{font-size:14px;font-weight:400;line-height:1.65;color:#d6e8f4;margin-top:9px}.ref-instrument-copy small{font-family:var(--type-en);font-size:11px;font-weight:600;line-height:1.5;letter-spacing:.08em;color:#8fb9d3}.ref-instrument-card{height:160px;padding-top:104px}.ref-instrument-card b{font-size:16px;font-weight:700;line-height:1.3;color:#fff}.ref-instrument-card span{font-size:11px;font-weight:500;line-height:1.4;color:#adc9db}
.ref-species{height:225px}.ref-species-copy p{font-size:14px;font-weight:400;line-height:1.7;color:var(--type-body);margin:10px 0 17px}.animal-card{height:170px;padding-top:128px}.animal-card>div{height:122px}.animal-card b{font-size:16px;font-weight:700;line-height:1.25;color:var(--type-navy-2)}.animal-card span{font-family:var(--type-en);font-size:10px;font-weight:600;line-height:1.2;letter-spacing:.04em;color:var(--type-muted)}
.ref-service{height:238px}.ref-service-copy p{font-size:14px;font-weight:500;line-height:1.6;color:var(--type-navy-2);margin:9px 0}.ref-service-copy small{font-size:12.5px;font-weight:400;line-height:1.75;color:var(--type-body);margin-bottom:16px}.ref-service article{height:170px;padding-top:105px}.ref-service article img{height:97px}.ref-service article b{font-size:14px;font-weight:700;line-height:1.35;color:var(--type-navy-2)}.ref-service article span{font-size:11px;font-weight:400;line-height:1.45;color:var(--type-body)}
.ref-advantages{height:165px}.ref-section-title p,.ref-case-head p{font-size:13px;font-weight:400;line-height:1.7;color:var(--type-body)}.ref-adv-grid article{height:106px}.ref-adv-grid strong{font-size:12px;font-weight:700;line-height:1.5;color:var(--type-navy-2)}
.ref-cases{height:258px}.ref-case-grid a{height:178px;padding-top:124px}.ref-case-grid img{height:114px}.ref-case-grid b{top:101px;font-size:11px;font-weight:700}.ref-case-grid h3{font-size:14px;font-weight:700;line-height:1.42;color:var(--type-navy-2)}.ref-case-grid p{font-size:11px;font-weight:400;line-height:1.4;color:var(--type-body)}
.ref-news{height:205px}.ref-news h2{font-size:28px;font-weight:800;line-height:1.2;color:var(--type-navy)}.ref-news p{font-size:13px;font-weight:400;line-height:1.7;color:var(--type-body)}.ref-news-list a{height:41px;font-size:11.5px;font-weight:600;line-height:1.4;color:var(--type-navy-2)}.ref-news-list img{height:37px}.ref-news-list small{font-family:var(--type-en);font-size:9px;font-weight:500;letter-spacing:.02em;color:var(--type-muted)}
.footer-col h4{font-size:15px;font-weight:700;color:#fff}.footer-brand p,.footer-col a,.footer-col p{font-size:12px;font-weight:400;line-height:1.65}.copyright{font-size:10px}
body[data-page] .section-title{font-size:34px;font-weight:800;line-height:1.2;color:var(--type-navy)}
body[data-page] .page-hero h1{font-size:54px;font-weight:900;line-height:1.1;color:var(--type-navy)}
.ref-cases{height:268px}

/* Footer QR: crop the source artwork to the 65x65 QR matrix plus a clean quiet zone. */
.qr-placeholder{width:112px;height:112px;padding:0;border:6px solid #fff;border-radius:8px;background:#fff;position:relative;overflow:hidden;box-shadow:0 8px 22px rgba(0,0,0,.18)}
.qr-placeholder img{position:absolute;width:182px;height:auto;max-width:none;left:-33px;top:-78px;object-fit:initial;image-rendering:pixelated}

/* Hero product integration: share one blueprint language with the laboratory background. */
.ref-hero-product:before{content:"";position:absolute;inset:32px 34px 20px 42px;background-image:linear-gradient(rgba(27,136,215,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(27,136,215,.07) 1px,transparent 1px),radial-gradient(circle at 60% 60%,rgba(34,164,236,.12),transparent 52%);background-size:24px 24px,24px 24px,100% 100%;border:1px solid rgba(32,137,210,.1);border-radius:28px;opacity:.55;mask-image:linear-gradient(90deg,transparent 0,#000 18%,#000 88%,transparent 100%)}
.ref-hero-product>img{height:306px;max-width:300px;right:116px;top:18px;opacity:.9;mix-blend-mode:multiply;filter:saturate(.78) contrast(.94) drop-shadow(0 18px 14px rgba(12,57,93,.18))}
.hero-product-card{top:67px;left:34px;width:174px;padding:2px 0 2px 13px;border-left:3px solid rgba(12,126,215,.62);border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none}
.hero-product-card b{font-size:14px;color:var(--type-navy-2)}.hero-product-card span,.hero-product-card small{font-size:10px;line-height:1.7;color:#66839c}
.ref-crosshair{right:48px;top:48px;width:248px;height:215px;border-color:rgba(22,141,232,.22)}
.ref-platform{width:300px;height:84px;right:82px;bottom:17px;border-color:rgba(41,177,247,.34);background:radial-gradient(ellipse,rgba(56,192,255,.22),rgba(21,130,231,.06) 50%,transparent 72%);box-shadow:0 0 0 12px rgba(48,186,255,.025),0 0 34px rgba(28,174,255,.12)}
.ref-tagline{right:8px;top:153px;font-size:18px;color:#147acb;opacity:.84}

/* The enlarged typography needs a real content height; keep the CTA inside its section. */
.ref-problem{height:304px}
.ref-problem-grid{align-items:center;padding:18px 0 22px}
.ref-copy{align-self:center;padding-bottom:3px}
.ref-copy p{max-width:360px;margin-bottom:20px}
.ref-copy .ref-small-btn{position:relative;z-index:2;margin-top:0}

/* Card content discipline: media, title and supporting copy stay in their own zones. */
.ref-service{height:258px}
.ref-service article{height:188px;padding:110px 10px 10px;display:flex;flex-direction:column;overflow:hidden}
.ref-service article img{height:101px}
.ref-service article b{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:start;gap:3px;min-height:42px;font-size:13px;line-height:1.35;overflow:hidden}
.ref-service article b em{font-size:19px;line-height:1.15;margin:0;white-space:nowrap}
.ref-service article span{display:block;margin-top:auto;font-size:10.5px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ref-advantages{height:174px}.ref-adv-grid article{height:112px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:10px 8px}.ref-adv-grid b{line-height:1}.ref-adv-grid strong{display:block;width:100%;font-size:11px;line-height:1.45;text-align:center;word-break:normal;overflow-wrap:anywhere}
.ref-cases{height:318px}.ref-cases .ref-wrap{padding-top:24px}.ref-case-grid a{height:220px;padding:140px 14px 12px;display:flex;flex-direction:column;overflow:hidden}.ref-case-grid img{height:130px}.ref-case-grid b{top:116px;left:14px}.ref-case-grid h3{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-height:40px;margin:2px 22px 3px 0;font-size:14px;line-height:1.42}.ref-case-grid p{margin-top:auto;font-size:11px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ref-case-grid i{bottom:13px}
.product-info h3,.case-body h3,.article-body h3,.news-body h3,.pipeline-item h3,.detect-card b{overflow-wrap:anywhere}.product-info h3,.case-body h3,.article-body h3,.news-body h3{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.product-info p,.case-body p,.article-body p,.news-body p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}

/* Comparison panels: present them as structured research-report modules, not text boxes. */
.ref-problem{height:334px}
.ref-compare{grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr);gap:10px}
.ref-compare article{height:190px;position:relative;padding:57px 15px 13px;border-radius:14px;overflow:hidden;box-shadow:0 14px 30px rgba(18,72,116,.09)}
.ref-compare article h3{position:absolute;top:0;left:0;right:0;height:45px;display:flex;align-items:center;gap:9px;padding:0 15px;margin:0;border:0;font-size:15px;letter-spacing:-.01em}
.ref-compare article h3:before{width:23px;height:23px;flex:0 0 23px;border-radius:50%;display:grid;place-items:center;font-family:Arial,sans-serif;font-size:13px;font-weight:900}
.ref-compare .traditional{background:linear-gradient(180deg,#fff 0%,#f7f9fb 100%);border-color:#d8e1e9}.ref-compare .traditional h3{background:linear-gradient(90deg,#edf2f6,#f8fafc);color:#49647c}.ref-compare .traditional h3:before{content:"!";background:#8398aa;color:#fff}
.ref-compare .standard{background:linear-gradient(180deg,#fff 0%,#eef8ff 100%);border-color:#79c6f4}.ref-compare .standard h3{background:linear-gradient(90deg,#0878d7,#0c92e8);color:#fff}.ref-compare .standard h3:before{content:"✓";background:#fff;color:#0879d8}
.ref-compare article p{min-height:27px;display:flex;align-items:center;margin:0 0 5px;padding:4px 8px;border:0;border-radius:6px;background:rgba(255,255,255,.72);font-size:11.5px;line-height:1.45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ref-compare .standard p{color:#176aa9;background:rgba(255,255,255,.78)}
.ref-compare em{width:42px;height:42px;border:2px solid #9fd3f3;font-size:12px;background:#fff;box-shadow:0 8px 18px rgba(18,94,151,.13)}
.ref-instrument-card b,.ref-instrument-card span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pipeline-item h3,.detect-card b,.adv-card h3{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}

/* Genuine offline WebGL viewer for the rabbit femur instrument. */
.product-3d-canvas{display:none;position:absolute;inset:0;width:100%;height:100%;z-index:3;cursor:grab;touch-action:none;outline:0}
.product-3d-canvas.dragging{cursor:grabbing}
.product-3d-canvas.is-hidden{display:none!important}
.real-3d-active .product-3d-canvas{display:block}
.real-3d-active .viewer-object-wrap{display:none}
.real-3d-label{display:none;position:absolute;left:26px;bottom:24px;z-index:6;padding-left:12px;border-left:2px solid #18adff;color:#83cfff;pointer-events:none}
.real-3d-label b{display:block;font:700 10px/1.3 Inter,Arial,sans-serif;letter-spacing:.14em;color:#38bfff}
.real-3d-label span{display:block;margin-top:3px;font-size:10px;color:#8cb5ca}
.real-3d-active .real-3d-label{display:block}
.real-3d-active .viewer-help{color:#d4eafa;border-color:rgba(64,190,255,.38);background:rgba(2,27,48,.82)}
.viewer-shell:fullscreen{width:100vw;height:100vh;border:0;border-radius:0;background:radial-gradient(circle at 50% 74%,rgba(0,152,242,.28),transparent 34%),linear-gradient(135deg,#02101f,#052e4c)}
.viewer-shell:fullscreen .viewer-stage{top:64px;right:74px;bottom:96px}
.viewer-shell:fullscreen .viewer-orbit{width:min(48vw,720px);height:190px;bottom:3vh}
.viewer-shell:fullscreen .viewer-help{top:82px;right:92px}
.viewer-shell:fullscreen .real-3d-label{left:4vw;bottom:12vh}
@media(max-width:900px){.real-3d-label{left:14px;bottom:16px}.real-3d-active .hotspot{display:none}.viewer-shell:fullscreen .viewer-stage{right:58px}}

/* Cohesive, high-key inner-page hero system. Each page uses its own generated scene. */
body[data-page] .page-hero{background:#f5fbff;color:var(--type-navy);border-bottom:1px solid rgba(188,218,238,.72)}
body[data-page] .page-hero .bg{opacity:1}
body[data-page] .page-hero .bg:after{display:none}
body[data-page] .page-hero .bg img{object-position:center center;filter:saturate(.88) contrast(.96) brightness(1.02)}
body[data-page] .page-hero:after{background:linear-gradient(90deg,rgba(249,253,255,.99) 0%,rgba(248,252,255,.97) 36%,rgba(246,251,255,.78) 51%,rgba(239,249,255,.16) 73%,rgba(237,248,255,.04) 100%)}
body[data-page] .page-hero .wrap{padding-bottom:2px}
body[data-page] .page-hero h1{color:#0b315d;text-shadow:0 2px 12px rgba(255,255,255,.52)}
body[data-page] .page-hero p{color:#58738d;max-width:650px}
body[data-page] .page-hero .breadcrumb{color:#607e98}
body[data-page] .page-hero .section-kicker{color:#4782b4}
body[data-page="products"] .page-hero .bg img{object-position:center 46%;filter:saturate(.72) contrast(.93) brightness(1.08)}
body[data-page="products"] .page-hero:after{background:linear-gradient(90deg,rgba(248,253,255,.995) 0%,rgba(246,252,255,.97) 34%,rgba(239,249,255,.74) 49%,rgba(221,242,253,.22) 70%,rgba(210,237,251,.12) 100%),linear-gradient(rgba(218,241,254,.13),rgba(218,241,254,.13))}
body[data-page="about"] .page-hero .bg img{object-position:53% center}
body[data-page="service"] .page-hero .bg img{object-position:52% center}
body[data-page="cases"] .page-hero .bg img{object-position:52% center}
body[data-page="knowledge"] .page-hero .bg img{object-position:52% center}
body[data-page="news"] .page-hero .bg img{object-position:51% center}
body[data-page="contact"] .page-hero .bg img{object-position:53% center}

/* Inner-page content repair: homepage compact rules must never compress archive media. */
body:not([data-page="home"]) .case-card{display:flex;flex-direction:column;min-height:420px;border-radius:12px}
body:not([data-page="home"]) .case-card>img{width:100%;height:240px;object-fit:cover;background:#f6fbfe}
body:not([data-page="home"]) .case-card .case-body{display:flex;flex:1;flex-direction:column;padding:17px 18px 19px}
body:not([data-page="home"]) .case-card .case-body h3{display:block;overflow:visible;font-size:16px;line-height:1.45;margin:8px 0 5px}
body:not([data-page="home"]) .case-card .case-body p{display:block;overflow:visible;font-size:12.5px;line-height:1.65}
body:not([data-page="home"]) .case-card .tag{font-size:10px;padding:4px 9px}
body:not([data-page="home"]) .case-card .meta{margin-top:auto;padding-top:10px;font-size:11px;flex-wrap:wrap;gap:8px 14px}

/* Knowledge cards: document sheets stay complete; only real photographs may crop. */
body[data-page="knowledge"] .knowledge-library{padding:64px 0 76px}
body[data-page="knowledge"] .article-grid{gap:22px;align-items:stretch}
body[data-page="knowledge"] .article-card{display:flex;flex-direction:column;min-height:548px;border-radius:14px}
body[data-page="knowledge"] .article-card>img{width:100%;height:340px;object-fit:contain;object-position:center;background:linear-gradient(180deg,#f5faff,#fff);padding:12px}
body[data-page="knowledge"] .article-card.photo-card>img{object-fit:cover;padding:0}
body[data-page="knowledge"] .article-card .article-body{display:flex;flex:1;flex-direction:column;padding:16px 18px 18px}
body[data-page="knowledge"] .article-card .tag{font-size:10px;padding:4px 9px}
body[data-page="knowledge"] .article-card h3{display:block;overflow:visible;font-size:16px;line-height:1.45;margin:9px 0 6px}
body[data-page="knowledge"] .article-card p{display:block;overflow:visible;font-size:12.5px;line-height:1.65}
body[data-page="knowledge"] .article-card .meta{margin-top:auto;padding-top:10px;font-size:11px;flex-wrap:wrap}

/* Case archive: preserve complete material sheets and give real photographs enough room. */
body[data-page="cases"] .case-grid{gap:20px;align-items:stretch}
body[data-page="cases"] .case-card{min-height:535px}
body[data-page="cases"] .case-card>img{height:340px;object-fit:contain;object-position:center;background:linear-gradient(180deg,#f4faff,#fff);padding:12px}
body[data-page="cases"] .case-card.photo-card>img{object-fit:cover;padding:0}
body[data-page="cases"] .case-card.product-photo-card>img{object-fit:contain;padding:18px;background:#fff}
body[data-page="cases"] .custom-case-section .case-card{min-height:455px}
body[data-page="cases"] .custom-case-section .case-card>img{height:265px}
body[data-page="cases"] .case-structure-section .about-intro{align-items:stretch}
body[data-page="cases"] .case-structure-figure{height:560px;background:#f4faff;border:1px solid #d8e8f3;box-shadow:0 18px 42px rgba(18,77,119,.09)}
body[data-page="cases"] .case-structure-figure img{object-fit:contain;padding:16px;background:#fff}

/* Service sections: restore readable media, text and card proportions. */
body[data-page="service"] .section{padding:54px 0}
body[data-page="service"] .section.compact{padding:48px 0}
body[data-page="service"] .section-title{font-size:32px}
body[data-page="service"] .pipeline{gap:14px}
body[data-page="service"] .pipeline-item{min-height:300px;padding:16px;border-radius:12px}
body[data-page="service"] .pipeline-item img{height:112px;margin:9px 0 10px;border-radius:8px;object-fit:cover;background:#f5faff}
body[data-page="service"] .pipeline-item.document-media img{object-fit:contain;padding:6px}
body[data-page="service"] .pipeline-item h3{display:block;overflow:visible;font-size:15px;line-height:1.4;margin:5px 0 8px}
body[data-page="service"] .pipeline-item ul{font-size:12px;line-height:1.75}
body[data-page="service"] .detect-card{min-height:210px}
body[data-page="service"] .detect-card img{height:124px}
body[data-page="service"] .detect-card.document-media img{object-fit:contain;padding:6px;background:#f5faff}
body[data-page="service"] .detect-card div{padding:12px}
body[data-page="service"] .detect-card b{display:block;overflow:visible;font-size:14px}
body[data-page="service"] .detect-card p{font-size:11.5px}
body[data-page="service"] .delivery-grid{gap:20px}
body[data-page="service"] .delivery-grid .case-card{min-height:455px}
body[data-page="service"] .delivery-grid .case-card>img{height:275px;object-fit:contain;padding:12px;background:#f5faff}
body[data-page="service"] .delivery-grid .case-card.photo-card>img{object-fit:cover;padding:0}

/* Product, news and generic inner-page cards: no inherited 92px image or text clamp. */
body[data-page="products"] .product-card{min-height:430px}
body[data-page="products"] .product-photo{height:270px}
body[data-page="products"] .product-photo img{max-height:225px}
body[data-page="products"] .product-info h3,body[data-page="products"] .product-info p{display:block;overflow:visible}
body[data-page="products"] .detail-section .case-card{min-height:420px}
body[data-page="products"] .detail-section .case-card>img{height:250px;object-fit:contain;padding:12px;background:#f5faff}
body[data-page="news"] .news-card{min-height:420px}
body[data-page="news"] .news-card>img{height:240px}
body[data-page="news"] .news-body h3,body[data-page="news"] .news-body p{display:block;overflow:visible}

/* Narrow desktop/tablet QA: prevent fixed-width grids from disappearing off-screen. */
@media(max-width:1199px){
  body:not([data-page="home"]){min-width:0}
  body:not([data-page="home"]) .wrap,body:not([data-page="home"]) .site-header .inner{width:calc(100% - 40px)}
  body:not([data-page="home"]) .site-header .inner{gap:12px}
  body:not([data-page="home"]) .brand{width:152px}
  body:not([data-page="home"]) .main-nav{gap:13px;font-size:11px;overflow-x:auto;scrollbar-width:none}
  body:not([data-page="home"]) .main-nav::-webkit-scrollbar{display:none}
  body:not([data-page="home"]) .nav-cta{padding:9px 13px;min-width:90px;font-size:11px}
}
@media(max-width:980px){
  body:not([data-page="home"]) .case-grid,body:not([data-page="home"]) .article-grid,body:not([data-page="home"]) .news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  body[data-page="products"] .product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  body[data-page="service"] .pipeline{grid-template-columns:repeat(2,minmax(0,1fr))}
  body[data-page="service"] .detect-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  body:not([data-page="home"]) .about-intro{grid-template-columns:1fr;gap:28px}
  body:not([data-page="home"]) .main-nav{gap:10px}
  body:not([data-page="home"]) .nav-cta{display:none}
}
@media(max-width:680px){
  body:not([data-page="home"]) .case-grid,body:not([data-page="home"]) .article-grid,body:not([data-page="home"]) .news-grid,body[data-page="products"] .product-grid,body[data-page="service"] .pipeline{grid-template-columns:1fr}
  body[data-page="service"] .detect-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  body:not([data-page="home"]) .page-hero h1{font-size:40px}
  body:not([data-page="home"]) .section-title{font-size:29px}
}

/* The homepage remains a dense PC composition, but must still fit common 1000px windows. */
@media(max-width:1199px) and (min-width:981px){
  body[data-page="home"]{min-width:0}
  body[data-page="home"] .ref-wrap,body[data-page="home"] .site-header .inner,body[data-page="home"] .site-footer .wrap{width:calc(100% - 28px)}
  body[data-page="home"] .site-header .inner{gap:10px}
  body[data-page="home"] .brand{width:140px}
  body[data-page="home"] .main-nav{gap:12px;font-size:9px}
  body[data-page="home"] .nav-cta{display:none}
  body[data-page="home"] .ref-problem-grid{grid-template-columns:minmax(0,34fr) minmax(0,66fr)}
  body[data-page="home"] .nav-item:nth-last-child(-n+2) .sub-nav{left:auto;right:0}
  body[data-page="home"] .ref-instrument-grid{grid-template-columns:205px repeat(6,minmax(0,1fr));gap:7px}
  body[data-page="home"] .ref-species-grid{grid-template-columns:210px repeat(6,minmax(0,1fr));gap:7px}
  body[data-page="home"] .ref-service-grid{grid-template-columns:195px repeat(6,minmax(0,1fr));gap:7px}
  body[data-page="home"] .ref-instrument-card,body[data-page="home"] .animal-card,body[data-page="home"] .ref-service article{min-width:0}
  body[data-page="home"] .ref-news-grid{grid-template-columns:160px 1fr 160px 1fr;gap:10px}
  body[data-page="home"] .footer-grid{gap:18px}
}

/* ==========================================================================
   2026-09 站点调整
   1) 联系我们改为全站右下角圆形悬浮按钮（不再固定在导航栏）
   2) 首页 banner 按钮与部分区块隐藏（代码保留，删除对应 display:none 即可恢复）
   3) 首页「高校与科研机构」数据条加高至与 banner 主图等高（306px）
   ========================================================================== */

/* --- 1. 圆形悬浮咨询按钮：右下角，距视口底部 1/3 屏高偏下 --- */
.consult-fab{position:fixed;right:32px;bottom:12vh;z-index:1500;width:92px;height:92px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:0;border-radius:50%;cursor:pointer;color:#fff;font-family:var(--type-cn);font-size:16px;font-weight:800;line-height:1.22;letter-spacing:.02em;text-align:center;background:linear-gradient(135deg,#058cec,#0064d3);box-shadow:0 12px 28px rgba(0,110,215,.34),0 0 0 0 rgba(5,140,236,.3);transition:transform .22s cubic-bezier(.22,.61,.36,1),box-shadow .22s}
.consult-fab:hover{transform:translateY(-3px) scale(1.06);box-shadow:0 18px 34px rgba(0,110,215,.42),0 0 0 9px rgba(5,140,236,.12)}
.consult-fab:active{transform:translateY(-1px) scale(1.02)}
.consult-fab:focus-visible{outline:2px solid #7fc6ff;outline-offset:3px}
.consult-fab-en{display:block;margin-top:3px;font-family:var(--type-en);font-size:8px;font-weight:700;letter-spacing:.12em;opacity:.82}
@media(max-width:680px){.consult-fab{right:16px;bottom:10vh;width:76px;height:76px;font-size:14px}.consult-fab-en{font-size:7px}}

/* --- 2. 首页：banner 按钮隐藏（HTML 保留） --- */
body[data-page="home"] .ref-actions{display:none}

/* --- 2b. 首页：以下区块暂时隐藏（HTML 保留） --- */
body[data-page="home"] .ref-instruments,
body[data-page="home"] .ref-species,
body[data-page="home"] .ref-service,
body[data-page="home"] .ref-cases,
body[data-page="home"] .ref-news-grid>div:first-child,
body[data-page="home"] .ref-news-grid>div:nth-child(2){display:none}
body[data-page="home"] .ref-news-grid{grid-template-columns:240px minmax(0,1fr)}

/* --- 3. 首页数据条加高至 306px（banner 区 360px + 数据条 306px = 666px）--- */
body[data-page="home"] .ref-hero{height:666px}
body[data-page="home"] .ref-hero:before,
body[data-page="home"] .ref-hero:after{inset:0 0 236px 0}/* 666-430：背景图可视区仍是原来的 430px，裁切效果不变 */
body[data-page="home"] .ref-hero-inner{height:360px}
body[data-page="home"] .ref-metrics{height:306px;display:flex;align-items:center;background:linear-gradient(180deg,#f5fbff,#fff);border-top:1px solid rgba(199,220,235,.9);backdrop-filter:none}
body[data-page="home"] .ref-metrics .ref-wrap{height:auto;align-items:center}
body[data-page="home"] .ref-metrics div>div{grid-template-columns:auto auto;column-gap:18px;justify-content:center}
body[data-page="home"] .ref-metrics b{font-size:42px;line-height:1}
body[data-page="home"] .ref-metrics strong{font-size:54px;letter-spacing:-.02em}
body[data-page="home"] .ref-metrics span{font-size:17px;margin-top:12px}

/* ==========================================================================
   2026-09 站点调整（第二轮）
   4) banner 改为单列居中：右侧器械展示整块隐藏
   5) banner 下方各块统一为「上：标题+描述 / 下：内容」
   ========================================================================== */

/* --- 4. banner 单列居中：隐藏右侧卡片 / 器械图 / 准星 / 平台 / 标语 --- */
body[data-page="home"] .ref-hero{height:606px}
body[data-page="home"] .ref-hero:before,
body[data-page="home"] .ref-hero:after{inset:0 0 176px 0}/* 606-430：背景图可视区仍是原来的 430px，裁切不变 */
body[data-page="home"] .ref-hero-product{display:none}
body[data-page="home"] .ref-hero-inner{height:300px;grid-template-columns:minmax(0,1fr);justify-items:center}
body[data-page="home"] .ref-hero-copy{width:100%;max-width:860px;margin:0 auto;padding-bottom:0;text-align:center}
body[data-page="home"] .ref-hero-copy h1{letter-spacing:-.02em}
body[data-page="home"] .ref-hero-copy h2{margin-top:14px}
body[data-page="home"] .ref-hero-copy p{margin:14px auto 0;max-width:640px}

/* --- 5a. 「为什么需要标准化动物模型」：上标题描述 / 下对比卡 --- */
body[data-page="home"] .ref-problem{height:auto;padding:56px 0}
body[data-page="home"] .ref-problem-grid{height:auto;grid-template-columns:minmax(0,1fr);justify-items:center;gap:34px;padding:0}
body[data-page="home"] .ref-copy{align-self:auto;width:100%;padding-bottom:0;text-align:center}
body[data-page="home"] .ref-copy p{max-width:720px;margin:14px auto 0}
body[data-page="home"] .ref-compare{width:100%;max-width:1000px;margin:0 auto}

/* --- 5b. 「我们的核心优势」：上标题描述 / 下优势卡 --- */
body[data-page="home"] .ref-advantages{height:auto;padding:56px 0}
body[data-page="home"] .ref-advantages .ref-wrap{height:auto;grid-template-columns:minmax(0,1fr);gap:30px}
body[data-page="home"] .ref-section-title{text-align:center}
body[data-page="home"] .ref-section-title p{max-width:720px;margin:10px auto 0}

/* --- 5c. 「新闻动态」：上标题描述 / 下新闻列表 --- */
body[data-page="home"] .ref-news{height:auto;padding:56px 0}
body[data-page="home"] .ref-news-grid{grid-template-columns:minmax(0,1fr);gap:30px;align-items:start}
body[data-page="home"] .ref-news-grid>div:nth-child(3){text-align:center}/* 前两组是已隐藏的「动物实验技巧科普」 */
body[data-page="home"] .ref-news p{max-width:720px;margin:10px auto 0}
body[data-page="home"] .ref-news-list{width:100%;max-width:900px;margin:0 auto;gap:10px}
body[data-page="home"] .ref-news-list a{height:52px;grid-template-columns:76px minmax(0,1fr);gap:12px;font-size:13px}
body[data-page="home"] .ref-news-list img{width:76px;height:44px}
body[data-page="home"] .ref-news-list small{font-size:10px;margin-top:3px}

/* --- 5d. 各块「了解更多 / 查看更多」小按钮隐藏（HTML 保留）--- */
body[data-page="home"] .ref-small-btn{display:none}

/* ============================================================
   6. 子页面 banner（.page-hero）改版
   - 面包屑已在 HTML 中删除，此处 display:none 仅作兜底
   - 标题 / 描述 / 英文小标 全部居中
   - banner 内的按钮（.actions）隐藏
   - 遮罩由「左重右轻」改为居中对称，避免居中文字左侧留一片空白
   ============================================================ */
body[data-page] .page-hero{justify-content:center}
body[data-page] .page-hero .wrap{text-align:center}
body[data-page] .page-hero .breadcrumb,
body[data-page] .page-hero .actions{display:none}
body[data-page] .page-hero h1,
body[data-page] .page-hero p,
body[data-page] .page-hero .section-kicker{margin-left:auto;margin-right:auto}
body[data-page] .page-hero p{margin-top:0}
body[data-page] .page-hero:after{background:radial-gradient(ellipse 64% 122% at 50% 50%,rgba(250,253,255,.97) 0%,rgba(249,252,255,.92) 40%,rgba(245,250,255,.58) 64%,rgba(238,248,255,.12) 86%,rgba(237,248,255,.03) 100%)}

/* ============================================================
   8. 首页「新闻动态」：改为 2 列 × 2 行
   （HTML 侧已补第 4 条、并去掉阅读量 ◉ x.x k）
   ============================================================ */
body[data-page="home"] .ref-news-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px}

/* ============================================================
   9. 联系我们
   - 公司名称从卡片里移出，banner 下方独立成块
   - 左侧信息行改为「标签｜内容」左右排布，压低行高
   - 右侧地图去掉固定高度，跟随左卡片拉伸，左右自动等高
   ============================================================ */
body[data-page="contact"] .contact-name{text-align:center}
body[data-page="contact"] .section{padding:40px 0 76px}
body[data-page="contact"] .contact-grid{align-items:stretch}
body[data-page="contact"] .contact-card{padding:22px 26px}
body[data-page="contact"] .contact-row{display:grid;grid-template-columns:116px minmax(0,1fr);gap:16px;align-items:baseline;padding:7px 0}
body[data-page="contact"] .contact-row b{font-size:13px;line-height:1.6}
body[data-page="contact"] .contact-row span{font-size:15px;line-height:1.6}
body[data-page="contact"] .map-mock{height:auto;min-height:340px}

/* ============================================================
   10. 首页 banner 轮播（3 张，淡入淡出）
   - 关掉 :before 里原来的固定背景图，改由 .ref-hero-slides 承载
   - 幻灯片铺满图片区（inset:0 0 176px 0，与原 :before 同一区域）
   - 原白色渐变遮罩移到幻灯片容器上；文案层不参与轮播
   ============================================================ */
body[data-page="home"] .ref-hero:before{display:none}
body[data-page="home"] .ref-hero-slides{position:absolute;inset:0 0 176px 0;z-index:0;overflow:hidden;pointer-events:none}
body[data-page="home"] .ref-hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.2s ease-in-out}
body[data-page="home"] .ref-hero-slide.is-active{opacity:1}
body[data-page="home"] .ref-hero-slide img{width:100%;height:100%;object-fit:cover;filter:saturate(.82)}
body[data-page="home"] .ref-hero-slides:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.93) 0 40%,rgba(255,255,255,.52) 61%,rgba(255,255,255,.04))}

/* ============================================================
   11. 首页数据条：去掉前置图标，数字单列居中 + 悬停放大
   （数字递增动画在 app.js 的 metricsCount()）
   ============================================================ */
body[data-page="home"] .ref-metrics div>div{grid-template-columns:auto;column-gap:0;justify-content:center;justify-items:center}
body[data-page="home"] .ref-metrics strong{display:block;font-variant-numeric:tabular-nums;transform-origin:center center;transition:transform .28s cubic-bezier(.22,.61,.36,1),color .28s}
body[data-page="home"] .ref-metrics div>div:hover strong{transform:scale(1.14);color:#0b8bf5}

/* ============================================================
   12. 联系我们：公司名称标题
   （该标题已改为 h2.contact-name，不再是 .contact-name > h2）
   ============================================================ */
body[data-page="contact"] .contact-name{margin:0 0 26px;padding:0;background:none;text-align:center;font-size:30px;font-weight:800;line-height:1.3;color:var(--type-navy);letter-spacing:-.02em}

/* ============================================================
   13. 首页各块：背景深浅交替 + 加大上下内边距
   （banner 下方 3 块原来都接近纯白，块与块之间分不出分界）
   ============================================================ */
body[data-page="home"] .ref-problem{background:linear-gradient(180deg,#e8f4ff,#f4faff);border-top:1px solid #dceafa;padding:88px 0}
body[data-page="home"] .ref-advantages{background:#fff;border-top:1px solid #e6f0f8;padding:88px 0}
body[data-page="home"] .ref-news{background:linear-gradient(180deg,#f1f9ff,#fbfdff);border-top:1px solid #dceafa;padding:88px 0}

/* ============================================================
   14. 「为什么需要标准化动物模型」右侧两张对比卡：悬停放大 + 边框 + 投影
   ============================================================ */
body[data-page="home"] .ref-compare article{transition:transform .28s cubic-bezier(.22,.61,.36,1),box-shadow .28s,border-color .28s}
body[data-page="home"] .ref-compare article:hover{transform:translateY(-6px) scale(1.02);border-color:#8ecbf0;box-shadow:0 22px 44px rgba(18,72,116,.18);z-index:2}

/* ============================================================
   15. 「我们的核心优势」：2 行 × 7 格棋盘布局
   （HTML 里 7 张内容卡与 7 张空白卡交替；无间隙无圆角无边框，
     拼成一张完整棋盘。两行渐变方向互为镜像，同一行内
     空白卡与内容卡的渐变方向也相反：）
        第 1 行  空白卡 上浅下深   内容卡 上深下浅
        第 2 行  空白卡 上深下浅   内容卡 上浅下深
   （棋盘共 14 个格子，:nth-child(-n+7) = 第 1 行，:nth-child(n+8) = 第 2 行）
   ============================================================ */
body[data-page="home"] .ref-adv-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:0}

/* 空白卡：浅灰 */
body[data-page="home"] .ref-adv-gap{border:0;border-radius:0;box-shadow:none}
body[data-page="home"] .ref-adv-gap:nth-child(-n+7){background:linear-gradient(180deg,#fff,#dfe6ec)}
body[data-page="home"] .ref-adv-gap:nth-child(n+8){background:linear-gradient(180deg,#dfe6ec,#fff)}

/* 内容卡：深蓝 */
body[data-page="home"] .ref-adv-grid>article{position:relative;height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;padding:14px 12px;border:0;border-radius:0;box-shadow:none;transition:filter .26s,box-shadow .26s}
body[data-page="home"] .ref-adv-grid>article:nth-child(-n+7){background:linear-gradient(180deg,#0c92e8,#0878d7);opacity:0.7}
body[data-page="home"] .ref-adv-grid>article:nth-child(n+8){background:linear-gradient(180deg,#0878d7,#0c92e8);opacity:0.8}
body[data-page="home"] .ref-adv-grid>article b{font-size:22px;line-height:1;color:#fff;text-align:center}
body[data-page="home"] .ref-adv-grid>article strong{display:block;width:100%;font-size:13px;line-height:1.5;font-weight:700;text-align:center;color:#fff;overflow-wrap:anywhere}

/* 悬停：位置不动，只靠「底色压深 + 更重的投影」抬起 */
body[data-page="home"] .ref-advantages .ref-adv-grid>article:hover{filter:brightness(.93) saturate(1.12);box-shadow:0 24px 48px rgba(16,66,110,.42),0 6px 18px rgba(16,66,110,.22);z-index:2}
body[data-page="home"] .ref-adv-grid>article:hover strong{font-weight:900}

/* --- 16. 首页「新闻动态」列表项：均匀内边距 + 悬停圆角边框 --- */
body[data-page="home"] .ref-news-list a{height:auto;min-height:60px;padding:6px;align-items:center;border:1px solid transparent;border-bottom-color:#ddd;border-radius:4px;transition:border-color .22s,background .22s,box-shadow .22s}
body[data-page="home"] .ref-news-list a:hover{border-color:#8ecbf0;background:#f6fcff;box-shadow:0 10px 24px rgba(23,86,140,.14)}
body[data-page="home"] .ref-news-list img{border-radius:4px}

/* ============================================================
   18. 「为什么需要标准化动物模型」对比区
       右侧卡「微领标准化造模体系」静止尺寸加大，成为视觉主体：
       列宽由 1:1 改为 1:1.25，卡高 190 -> 222px，标题与条目同步放大。
       悬停：不位移（去掉 translateY），放大幅度由 1.02 收到 1.01。
       左侧卡与 VS 徽标维持原样（VS 仍与左侧卡居中对齐）。
   ============================================================ */
body[data-page="home"] .ref-compare{grid-template-columns:minmax(0,1fr) 48px minmax(0,1.25fr)}
body[data-page="home"] .ref-compare article.standard{height:222px;padding:64px 18px 16px;box-shadow:0 18px 38px rgba(18,72,116,.18)}
body[data-page="home"] .ref-compare article.standard h3{height:52px;padding:0 18px;font-size:17px}
body[data-page="home"] .ref-compare article.standard h3:before{width:25px;height:25px;flex:0 0 25px;font-size:14px}
body[data-page="home"] .ref-compare article.standard p{min-height:30px;font-size:12.5px}
body[data-page="home"] .ref-compare article.standard:hover{transform:scale(1.01);border-color:#8ecbf0;box-shadow:0 26px 52px rgba(18,72,116,.24);z-index:2}

/* ============================================================
   19. 全站块级竖直间距 ×2
       规则：每个内容块的 padding-top / padding-bottom 取改前数值的 2 倍。
       banner（.page-hero 330px、首页 .ref-hero 606px）没有 padding、
       也不是内容块，未纳入。
       首页 4 个原本「固定高度 + 无 padding」的块（器械/物种/技术服务/案例）
       改为 height:auto 并补齐 176px，与相邻块节奏统一。
       顺序要求：先全局基准，再各页原有权重的等比换算（同权重靠后覆盖）。
   ============================================================ */

/* --- 全局基准 --- */
body[data-page] .section{padding:164px 0}                     /* 82   -> 164  */
body[data-page] .section.compact{padding:120px 0}             /* 60   -> 120  */

/* --- 各页原有权重的等比换算 --- */
body[data-page="service"] .section{padding:108px 0}                                    /* 54   -> 108   */
body[data-page="service"] .section.compact{padding:96px 0}                             /* 48   -> 96    */
body[data-page="contact"] .section{padding:80px 0 152px}                               /* 40/76 -> 80/152 */
body[data-page="knowledge"] .section.compact.knowledge-library{padding:128px 0 152px}  /* 64/76 -> 128/152 */
body[data-page="products"] .detail-top{padding:24px 0 48px}                            /* 12/24 -> 24/48 */
body[data-page="products"] .detail-section{padding:68px 0}                             /* 34   -> 68    */

/* --- 首页：原本已有 padding 的 3 块 --- */
body[data-page="home"] .ref-problem{padding:176px 0}          /* 88   -> 176  */
body[data-page="home"] .ref-advantages{padding:176px 0}
body[data-page="home"] .ref-news{padding:176px 0}

/* --- 首页：原本固定高度、无 padding 的 4 块 --- */
body[data-page="home"] .ref-instruments,
body[data-page="home"] .ref-species,
body[data-page="home"] .ref-service,
body[data-page="home"] .ref-cases{height:auto;padding:176px 0}
body[data-page="home"] .ref-instrument-grid,
body[data-page="home"] .ref-species-grid,
body[data-page="home"] .ref-service-grid,
body[data-page="home"] .ref-cases .ref-wrap{height:auto}
body[data-page="home"] .ref-cases .ref-wrap{padding-top:0}

/* ============================================================
   20. 联系我们：右侧改为浙江省真实地图
   （原 .map-pin / .map-label 静态装饰已从 HTML 移除）

   地图由 ECharts 的 geo 组件绘制；标记点与公司名称用 DOM 叠加层，
   因为本项目 echarts 精简构建不含任何 series 类型（见 app.js 注释）。
   ============================================================ */
/* 原网格纹理底衬去掉，避免与地图底图打架 */
body[data-page="contact"] .map-mock:before{display:none}
body[data-page="contact"] .map-mock{background:linear-gradient(160deg,#f4fbff,#eaf4fb)}
/* 容器绝对定位铺满，让 ECharts 拿到确定的宽高（.map-mock 高度由左栏撑开） */
body[data-page="contact"] #contact-map{position:absolute;inset:0}

/* 叠加层：原点即公司经纬度对应的像素点，由 JS 设 transform 平移过来 */
body[data-page="contact"] .map-mark{position:absolute;left:0;top:0;z-index:5;pointer-events:none;opacity:0;transition:opacity .3s ease}
body[data-page="contact"] .map-mark>i{position:absolute;left:0;top:0;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;display:block}
body[data-page="contact"] .map-mark-dot{background:#e8392f;border:1.5px solid #fff;box-shadow:0 2px 7px rgba(180,30,20,.5)}
/* 涟漪：纯 CSS，不依赖 ECharts 的 effectScatter */
body[data-page="contact"] .map-mark-ring{background:rgba(232,57,47,.55);animation:mapRipple 2.2s ease-out infinite}
@keyframes mapRipple{
  0%{transform:scale(1);opacity:.8}
  70%{transform:scale(4.8);opacity:0}
  100%{transform:scale(4.8);opacity:0}
}
/* 名称标签：贴住标记点正上方 */
body[data-page="contact"] .map-mark-name{position:absolute;left:0;bottom:17px;transform:translateX(-50%);white-space:nowrap;padding:7px 12px;border-radius:8px;background:#fff;border:1px solid #a9d8f6;color:#0b2f4d;font-size:12px;font-weight:700;line-height:1.2;box-shadow:0 8px 20px rgba(23,86,140,.2)}
/* 标签下沿的小尖角，指向标记点 */
body[data-page="contact"] .map-mark-name:after{content:"";position:absolute;left:50%;bottom:-5px;width:9px;height:9px;margin-left:-4.5px;background:#fff;border-right:1px solid #a9d8f6;border-bottom:1px solid #a9d8f6;transform:rotate(45deg)}
/* 第二行：杭州 · 余杭区（全国图上看不出街道，靠这行补足定位精度） */
body[data-page="contact"] .map-mark-name span{display:block;margin-top:3px;padding-top:3px;border-top:1px solid #e4f1fa;font-size:10.5px;font-weight:600;letter-spacing:.04em;color:#6d8297}

/* 视图按钮：右上角横排两枚（放大 / 缩小） */
body[data-page="contact"] .map-zoom{position:absolute;right:14px;top:14px;z-index:6;display:flex;gap:6px}
body[data-page="contact"] .map-zoom button{width:30px;height:30px;padding:0;border:1px solid #cfe3ef;border-radius:8px;background:rgba(255,255,255,.94);color:#2f6d99;font-family:inherit;font-size:15px;font-weight:700;line-height:1;cursor:pointer;box-shadow:0 4px 12px rgba(23,86,140,.12);transition:background .2s,color .2s,border-color .2s,box-shadow .2s,opacity .2s}
body[data-page="contact"] .map-zoom button:hover:not(:disabled){background:#0a82da;border-color:#0a82da;color:#fff;box-shadow:0 6px 16px rgba(10,130,218,.3)}
/* 到达视图两端时置灰，取代「点了没反应」 */
body[data-page="contact"] .map-zoom button:disabled{opacity:.35;cursor:default;box-shadow:none}

/* ============================================================
   21. 尺寸调整：banner 高度 + 内容区加宽

   首页 banner 撑满一屏（减去吸顶 header），一屏内正好放下
   图片区 + 底部数据条，往下滚才进入正文。
   内页 banner ×1.3（330 → 430，技术服务页 300 → 390）
   内容宽度 ×1.25（首页 1110 → 1388，内页 1180 → 1475）
   ============================================================ */

/* 内容区加宽。--wrap 前面有两处定义，这里靠「同特异性取最后一条」覆盖。 */
:root{--wrap:1475px}
.ref-wrap{width:1388px}

/* 块级内容容器跟着放宽。容器宽了但这些块还卡在原宽度上，
   会在两侧留出大片空白，看起来像缩在中间。
   纯文字段落的 max-width 不动 —— 那是控制每行字数的，放宽反而难读。 */
body[data-page="home"] .ref-hero-copy{max-width:1075px}
body[data-page="home"] .ref-compare{max-width:1250px}
body[data-page="home"] .ref-news-list{max-width:1125px}

/* 首页 banner：一屏高，滚到底正好接上正文。
   减的是 #site-header 的高度（app.js 注入的那个占位容器，首页 54px）——
   注意不是 .site-header，那个是 fixed 定位、不占文档流。
   内容居中，padding-bottom 抵掉底部数据条占的高度，
   让居中基准落在图片区而不是「图片区 + 数据条」的整块。 */
body[data-page="home"] .ref-hero{height:calc(100vh - 54px);min-height:620px;display:flex;align-items:center;padding-bottom:176px}
body[data-page="home"] .ref-hero-inner{flex:0 0 auto}

/* 内页 banner 本来就是 flex 居中，只改高度即可 */
body[data-page] .page-hero{height:430px}
body[data-page="service"] .page-hero{height:390px}

/* 核心优势卡片改成正方形。7 列等分，列宽就是卡片宽，
   aspect-ratio 让高度跟着宽度走；空白格同样要给，否则行高对不齐。 */
body[data-page="home"] .ref-adv-grid>article,
body[data-page="home"] .ref-adv-grid>.ref-adv-gap{height:auto;aspect-ratio:1}

/* 内容区加宽到 1475 后，原有的 1199 断点已经护不住 1200~1519 这段视口，
   会出现横向滚动条。这里补一条更宽的断点让它们改用自适应宽度。 */
@media(max-width:1519px){
  body:not([data-page="home"]) .wrap,
  body:not([data-page="home"]) .site-header .inner{width:calc(100% - 40px)}
  body[data-page="home"] .ref-wrap,
  body[data-page="home"] .site-header .inner,
  body[data-page="home"] .site-footer .wrap{width:calc(100% - 28px)}
}

/* ============================================================
   22. 首页顶部导航：item 之间拉开一点、字号加大
   限定大屏 —— 981~1199 那档另有一套紧凑导航规则，
   不加这层媒体查询会连它一起覆盖掉。
   ============================================================ */
@media(min-width:1200px){
  body[data-page="home"] .main-nav{gap:24px;font-size:14px}
}

/* ============================================================
   23. 产品中心：按动物体型分三组、每行 6 个小卡片
   原来的 4 列大卡（.product-grid / .product-card 在文件前半段）
   这里整组覆盖：卡片矮一半、去掉底部的特性标签、型号沉到最底。
   ============================================================ */
body[data-page="products"] .product-group+.product-group{margin-top:46px}
body[data-page="products"] .product-group-head{display:flex;align-items:baseline;gap:12px;margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid #e2eef7}
body[data-page="products"] .product-group-head h3{margin:0;font-size:20px;font-weight:800;color:var(--type-navy)}
body[data-page="products"] .product-group-head span{font-size:13px;color:#7d93a6}
body[data-page="products"] .product-group-head i{margin-left:auto;font-style:normal;font-size:12px;color:#9db2c4}

body[data-page="products"] .product-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
body[data-page="products"] .product-card{min-height:0}
body[data-page="products"] .product-photo{height:132px;padding:12px}
body[data-page="products"] .product-photo:after{bottom:12px;height:16px}
body[data-page="products"] .product-photo img{max-height:106px}
body[data-page="products"] .product-3d-badge{top:8px;left:8px;height:20px;padding:0 7px;font-size:9px}

body[data-page="products"] .product-info{padding:12px}
/* 卡片小，名称和用途各截到 2 行，避免长文案把卡片撑得一高一低 */
body[data-page="products"] .product-info h3{font-size:13px;line-height:1.4;margin:0 0 6px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
body[data-page="products"] .product-info p{font-size:11px;line-height:1.5;margin:0 0 10px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
/* 型号沉到卡片最底，跟上方内容用一条细线分开；右侧留出箭头的位 */
body[data-page="products"] .product-code{font-size:10px;letter-spacing:.06em;padding:8px 30px 0 0;border-top:1px solid #eef5fa;color:#93aec2}
body[data-page="products"] .product-link{right:10px;bottom:9px;width:24px;height:24px;font-size:12px}

/* 窄屏下 6 列会挤成一条，回落到 3 列 */
@media(max-width:980px){
  body[data-page="products"] .product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* ============================================================
   24. 新闻动态：左右分栏（左列表 / 右正文）
   弃用原来的 3 列卡片网格。两栏各自限高并独立滚动，
   切换列表项时右侧内容替换但外框不动，避免整页跳动。
   ============================================================ */
/* 两栏等高：右栏被拉伸到与左栏同高，内容超出则在栏内滚动。
   min-height:0 是关键 —— grid item 默认 min-height:auto 会被内容顶高，
   那样右栏就跟着内容长，不再是「和左侧一样高」。 */
body[data-page="news"] .news-layout{display:grid;grid-template-columns:400px minmax(0,1fr);gap:28px;align-items:stretch}
/* align-self:start 让左栏按内容自然高度、不参与拉伸 —— 它才是高度的基准。
   否则 grid 行高取两栏的较大值，右栏正文一长就会把左栏一起撑高，
   变成「左栏跟右栏一样高」，正好反了。右栏的高度由 app.js 按左栏实测值设定。 */
body[data-page="news"] .news-list{display:flex;flex-direction:column;gap:12px;min-height:0;align-self:start}
body[data-page="news"] .news-items{display:flex;flex-direction:column;gap:8px;flex:1;min-height:0;overflow-y:auto;padding-right:6px}
body[data-page="news"] .news-items::-webkit-scrollbar{width:6px}
body[data-page="news"] .news-items::-webkit-scrollbar-thumb{background:#cfe3f2;border-radius:99px}

body[data-page="news"] .news-item{display:grid;grid-template-columns:84px minmax(0,1fr);gap:10px;align-items:center;width:100%;padding:8px;border:1px solid #e2eef7;border-radius:10px;background:#fff;font:inherit;color:inherit;text-align:left;cursor:pointer;transition:border-color .2s,box-shadow .2s,background .2s}
body[data-page="news"] .news-item img{width:84px;height:54px;object-fit:cover;border-radius:7px;display:block}
body[data-page="news"] .news-item h3{margin:0;font-size:13px;line-height:1.4;font-weight:700;color:var(--type-navy-2);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
body[data-page="news"] .news-item-meta{display:flex;align-items:center;gap:6px;margin-top:5px}
body[data-page="news"] .news-item-meta time{font-size:11px;color:#93aec2}
body[data-page="news"] .news-item:hover{border-color:#9acdee;box-shadow:0 8px 20px rgba(21,93,161,.1)}
body[data-page="news"] .news-item.is-active{border-color:var(--blue);background:#f5fbff;box-shadow:0 10px 24px rgba(21,93,161,.14)}

/* 分页器：贴着列表底部 */
body[data-page="news"] .news-pager{display:flex;justify-content:center;align-items:center;gap:6px}
body[data-page="news"] .news-pager button{min-width:30px;height:30px;padding:0 8px;border:1px solid #d7e7f3;border-radius:8px;background:#fff;color:#4a6b85;font:inherit;font-size:12px;font-weight:700;line-height:1;cursor:pointer;transition:border-color .2s,color .2s,background .2s}
body[data-page="news"] .news-pager button:hover:not(:disabled):not(.is-current){border-color:var(--blue);color:var(--blue)}
body[data-page="news"] .news-pager button.is-current{background:var(--blue);border-color:var(--blue);color:#fff}
body[data-page="news"] .news-pager button:disabled{opacity:.35;cursor:default}

body[data-page="news"] .news-view{border:1px solid #e2eef7;border-radius:16px;background:#fff;padding:24px 30px 30px;min-height:0;overflow-y:auto}
body[data-page="news"] .news-view::-webkit-scrollbar{width:6px}
body[data-page="news"] .news-view::-webkit-scrollbar-thumb{background:#cfe3f2;border-radius:99px}
body[data-page="news"] .news-view-photo{margin:0 0 22px}
body[data-page="news"] .news-view-photo img{width:100%;height:260px;object-fit:cover;border-radius:12px;display:block}
body[data-page="news"] .news-view-meta{display:flex;align-items:center;gap:12px;margin-bottom:18px}
body[data-page="news"] .news-view-meta time{font-size:13px;color:#93aec2}
body[data-page="news"] .news-view h2{margin:0 0 12px;font-size:26px;line-height:1.35;font-weight:800;color:var(--type-navy)}
body[data-page="news"] .news-view-body p{margin:0 0 14px;font-size:15px;line-height:1.9;color:var(--type-body)}
body[data-page="news"] .news-view-body p:last-child{margin-bottom:0}

/* 分类标签：这套样式不依赖别处定义的 .tag，尺寸按这里的新布局定 */
body[data-page="news"] .news-item .tag,
body[data-page="news"] .news-view-meta .tag{font-size:10px;line-height:1;padding:4px 8px;border-radius:999px;background:#eaf5ff;color:#2f7cba;font-weight:700;white-space:nowrap}

@media(max-width:980px){
  body[data-page="news"] .news-layout{grid-template-columns:1fr;gap:20px}
  body[data-page="news"] .news-list,
  body[data-page="news"] .news-view{max-height:none}
}

/* ============================================================
   25. 首页 banner：左右切换按钮
   hero 有 padding-bottom:176px（给底部数据条让位），
   top:50% 是整个 banner 的中点，按钮要落在「图片区」中点，
   所以往上提 88px，也就是 176 的一半。
   ============================================================ */
body[data-page="home"] .ref-hero-nav{position:absolute;top:calc(50% - 88px);transform:translateY(-50%);z-index:6;width:46px;height:46px;padding:0 0 2px;border:1px solid rgba(255,255,255,.72);border-radius:50%;background:rgba(255,255,255,.82);color:#0a6cc4;font-family:inherit;font-size:25px;font-weight:400;line-height:1;display:grid;place-items:center;cursor:pointer;box-shadow:0 6px 20px rgba(23,86,140,.18);backdrop-filter:blur(8px);transition:background .22s,color .22s,border-color .22s,box-shadow .22s}
body[data-page="home"] .ref-hero-nav:hover{background:#0a82da;border-color:#0a82da;color:#fff;box-shadow:0 10px 26px rgba(10,130,218,.36)}
body[data-page="home"] .ref-hero-nav:focus-visible{outline:2px solid #7fc6ff;outline-offset:3px}
body[data-page="home"] .ref-hero-nav.prev{left:30px}
body[data-page="home"] .ref-hero-nav.next{right:30px}

/* 窄屏：hero 变矮，按钮跟着收小并靠近边缘 */
@media(max-width:980px){
  body[data-page="home"] .ref-hero-nav{width:38px;height:38px;font-size:20px}
  body[data-page="home"] .ref-hero-nav.prev{left:12px}
  body[data-page="home"] .ref-hero-nav.next{right:12px}
}
