:root { --ink:#071d2d; --muted:#567080; --line:#d9e6e9; --mist:#f3f8f8; --aqua:#c8f2e6; --lime:#daf268; --orange:#ff946b; --white:#fff; --mono:"DM Mono", monospace; --sans:"Manrope", sans-serif; }

/* Product catalogue */
.catalogue-hero { min-height:490px; padding-top:85px; padding-bottom:82px; display:grid; grid-template-columns:minmax(0,1.2fr) minmax(260px,.65fr); gap:10vw; align-items:end; background:linear-gradient(122deg,#effaf7 0%,#f7fbfa 55%,#e4f5ec 100%); }
.catalogue-hero h1 { max-width:720px; margin-bottom:22px; font-size:clamp(46px,6vw,80px); }
.catalogue-lead { max-width:620px; color:#3e5d6a; font-size:16px; line-height:1.75; margin-bottom:30px; }
.catalogue-rule { padding:29px; background:#093044; color:white; border-top:5px solid var(--lime); }
.catalogue-rule span,.product-kicker { color:#cdf068; font:500 10px var(--mono); letter-spacing:.1em; text-transform:uppercase; }
.catalogue-rule strong { display:block; margin:15px 0 13px; font-size:18px; line-height:1.35; letter-spacing:-.03em; }
.catalogue-rule p { margin:0; color:#b9d2d2; font-size:12px; line-height:1.7; }
.product-jump { display:flex; flex-wrap:wrap; gap:0; border-bottom:1px solid var(--line); background:white; }
.product-jump a { padding:19px 18px 17px 0; margin-right:22px; color:#426570; font:500 10px var(--mono); letter-spacing:.05em; text-transform:uppercase; }
.product-jump a:hover { color:#129e94; }
.catalogue { padding-top:105px; padding-bottom:105px; }
.catalogue-intro { display:grid; grid-template-columns:1.05fr .7fr; gap:8vw; padding-bottom:63px; }
.catalogue-intro > p { margin:32px 0 0; color:var(--muted); font-size:15px; line-height:1.8; }
.product-detail { position:relative; display:grid; grid-template-columns:145px minmax(0,1fr); border-top:1px solid var(--line); padding:47px 0 39px; }
.product-index { padding-top:5px; display:flex; flex-direction:column; gap:13px; }
.product-index > span { color:#1da095; font:500 13px var(--mono); }
.product-index small { color:#5b737c; font:500 9px/1.6 var(--mono); letter-spacing:.08em; }
.product-kicker { margin-bottom:14px; color:#157e76; }
.product-body h2 { max-width:800px; margin-bottom:16px; font-size:clamp(30px,3.5vw,47px); }
.product-summary { max-width:800px; color:#4c6974; font-size:15px; line-height:1.75; }
.product-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 36px; margin-top:31px; }
.product-grid section { border-top:1px solid #cadadd; padding-top:13px; }
.product-grid h3 { margin:0 0 9px; font-size:13px; letter-spacing:-.02em; }
.product-grid ul { margin:0; padding-left:18px; color:#536f79; font-size:12px; line-height:1.75; }
.product-cta { grid-column:2; margin-top:30px; width:max-content; color:#092b3d; border-bottom:1px solid #21a79d; padding-bottom:4px; font-size:12px; font-weight:800; }
.product-cta span { font-size:17px; margin-left:7px; }
.product-cta:hover { color:#159e95; }
.catalogue-disclaimer { padding-top:80px; padding-bottom:80px; color:white; background:#1ba096; }
.catalogue-disclaimer .eyebrow { color:#e5fa9c; }
.catalogue-disclaimer h2 { max-width:870px; margin-bottom:20px; }
.catalogue-disclaimer > p:not(.eyebrow) { max-width:835px; color:#e2f8f5; font-size:15px; line-height:1.75; }
.catalogue-disclaimer .button { margin-top:12px; }
@media (max-width:900px) { .catalogue-hero { grid-template-columns:1fr; gap:38px; padding-top:65px; }.catalogue-rule { max-width:530px; }.catalogue-intro { grid-template-columns:1fr; gap:0; }.catalogue-intro > p { margin-top:22px; }.product-detail { grid-template-columns:105px minmax(0,1fr); }.product-cta { grid-column:2; } }
@media (max-width:600px) { .catalogue-hero { min-height:auto; padding-top:55px; padding-bottom:55px; }.catalogue-lead { font-size:15px; }.product-jump { display:grid; grid-template-columns:1fr 1fr; padding-top:8px; padding-bottom:8px; }.product-jump a { padding:9px 0; margin:0; font-size:8px; }.catalogue { padding-top:70px; padding-bottom:70px; }.catalogue-intro { padding-bottom:40px; }.product-detail { grid-template-columns:1fr; padding:35px 0; }.product-index { flex-direction:row; align-items:center; }.product-grid { grid-template-columns:1fr; gap:21px; }.product-cta { grid-column:1; margin-top:25px; }.catalogue-disclaimer { padding-top:60px; padding-bottom:60px; } }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; color:var(--ink); background:var(--white); font-family:var(--sans); font-size:16px; line-height:1.5; } a { color:inherit; text-decoration:none; } .announcement { background:var(--ink); color:#d7edec; display:flex; justify-content:center; gap:12px; padding:9px 24px; font:500 10px/1.2 var(--mono); letter-spacing:.08em; text-transform:uppercase; } .announcement a { color:var(--lime); margin-left:15px; } .site-header { height:85px; display:flex; align-items:center; max-width:1440px; margin:auto; padding:0 5.5vw; justify-content:space-between; position:relative; z-index:5; } .brand { display:flex; align-items:center; gap:10px; font-size:22px; font-weight:800; letter-spacing:-.08em; } .brand > span:last-child span { color:#20a99f; } .brand-mark { width:30px; height:30px; display:inline-flex; align-items:center; justify-content:center; position:relative; transform:rotate(-30deg); } .brand-mark i { display:block; width:9px; height:9px; border-radius:50%; position:absolute; background:#20a99f; } .brand-mark i:nth-child(1) { transform:translate(-8px,-4px); background:var(--lime); } .brand-mark i:nth-child(2) { transform:translate(4px,-5px); } .brand-mark i:nth-child(3) { transform:translate(2px,7px); background:var(--orange); } .desktop-nav { display:flex; gap:30px; font-size:13px; font-weight:700; } .desktop-nav a { transition:color .2s; } .desktop-nav a:hover,.text-link:hover { color:#159e95; } .button { background:var(--ink); color:white; min-height:52px; padding:0 21px; display:inline-flex; justify-content:center; align-items:center; gap:17px; font-size:12px; font-weight:800; border:none; cursor:pointer; transition:transform .2s, background .2s; } .button:hover { background:#124563; transform:translateY(-2px); } .button span { font-size:18px; font-weight:400; } .button-small { min-height:42px; padding:0 15px; font-size:11px; } .button-light { background:white; color:var(--ink); } .menu-button { display:none; border:0; background:transparent; padding:8px; } .menu-button span { width:22px; height:2px; background:var(--ink); display:block; margin:4px; } .section-pad { padding-left:5.5vw; padding-right:5.5vw; } .hero { min-height:655px; padding-top:74px; padding-bottom:80px; position:relative; overflow:hidden; background:linear-gradient(112deg,#f4fbf8 0%,#f7fbfa 57%,#ddf6ee 100%); display:grid; grid-template-columns:minmax(0,1.05fr) minmax(370px,.95fr); align-items:center; } .hero-grid { position:absolute; inset:0; opacity:.6; background-image:linear-gradient(rgba(18,150,141,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(18,150,141,.06) 1px,transparent 1px); background-size:48px 48px; mask-image:linear-gradient(to right,#000 10%,transparent 70%); } .hero-copy,.hero-visual { position:relative; z-index:1; } .eyebrow { display:flex; align-items:center; gap:10px; margin:0 0 18px; color:#177e78; font:500 10px/1.2 var(--mono); letter-spacing:.12em; text-transform:uppercase; } .eyebrow span { width:24px; height:1px; display:block; background:currentColor; } h1,h2,h3,p { margin-top:0; } h1 { max-width:680px; margin-bottom:25px; font-size:clamp(48px,6vw,88px); line-height:.99; letter-spacing:-.075em; } h1 em { font-style:normal; color:#16a197; } .hero-lead { max-width:550px; color:#3e5d6a; font-size:18px; line-height:1.65; } .hero-actions { display:flex; align-items:center; gap:28px; margin-top:35px; } .text-link { display:inline-flex; gap:9px; align-items:center; font-size:13px; font-weight:800; transition:color .2s; } .text-link span { font-size:17px; } .hero-tags { display:flex; flex-wrap:wrap; gap:8px; margin-top:65px; } .hero-tags span { border:1px solid #bdd9d4; color:#41676b; border-radius:20px; padding:7px 11px; font:500 10px var(--mono); letter-spacing:.02em; } .hero-visual { min-height:500px; display:flex; justify-content:center; align-items:center; } .orb { border-radius:50%; position:absolute; filter:blur(.2px); } .orb-one { width:390px; height:390px; background:radial-gradient(circle at 30% 28%,#e9fff8 0%,#8cd5c9 45%,#35a99f 100%); box-shadow:inset -35px -35px 65px rgba(4,86,91,.25), 0 30px 60px rgba(18,130,121,.16); } .orb-two { width:165px; height:165px; top:5%; right:6%; background:radial-gradient(circle at 30% 30%,#fdffce,#cfed64 65%,#98bd24); } .orb-three { width:86px; height:86px; bottom:4%; left:9%; background:radial-gradient(circle at 30% 30%,#ffe6d9,#ff976f 70%,#de663f); } .instrument-card { width:300px; height:360px; background:linear-gradient(145deg,#f7ffff,#b4e1dc); position:relative; z-index:2; padding:19px; border-radius:8px 8px 42px 8px; transform:perspective(900px) rotateY(-11deg) rotateX(4deg); box-shadow:25px 35px 30px rgba(9,70,75,.22), inset 1px 1px 1px rgba(255,255,255,.9); } .instrument-top { display:flex; gap:8px; align-items:center; color:#426d70; font:10px var(--mono); letter-spacing:.05em; } .instrument-top b { color:#138e83; margin-left:auto; font-weight:500; } .pulse { width:8px; height:8px; background:#3ed2ad; border-radius:100%; box-shadow:0 0 0 4px rgba(62,210,173,.15); } .instrument-screen { height:175px; margin-top:35px; background:#17384a; padding:24px; border:8px solid #eefafa; box-shadow:inset 0 0 25px #071d2d; } .screen-line { height:8px; width:86%; background:#92e3cf; opacity:.8; margin-bottom:11px; } .screen-line.short { width:50%; background:#d8f46a; } .screen-chart { height:67px; margin-top:25px; display:flex; align-items:end; gap:8px; } .screen-chart i { display:block; width:18px; background:#55d6c0; } .screen-chart i:nth-child(1){height:30%;}.screen-chart i:nth-child(2){height:55%;}.screen-chart i:nth-child(3){height:42%;}.screen-chart i:nth-child(4){height:85%;background:#d5f35c}.screen-chart i:nth-child(5){height:60%;}.screen-chart i:nth-child(6){height:75%;}.screen-chart i:nth-child(7){height:38%;} .instrument-base { height:78px; margin-top:20px; display:flex; align-items:center; gap:14px; border-top:1px solid #8fbdb7; } .instrument-base span { width:23px; height:23px; border-radius:50%; background:#6faea8; border:4px solid #e7fffc; } .instrument-base span:nth-child(2){width:55px;height:10px;border-radius:8px;background:#81c5bc;border:0;}.instrument-base span:nth-child(3){margin-left:auto;background:#ff9a74;} .floating-chip { z-index:3; position:absolute; background:white; box-shadow:0 13px 28px rgba(6,71,76,.16); padding:12px 14px; font:10px var(--mono); letter-spacing:.04em; color:#255461; } .chip-one { left:2%; top:12%; } .chip-two { right:0; bottom:11%; display:flex; align-items:center; gap:10px; width:170px; } .chip-two strong { color:#12a195; font-size:25px; letter-spacing:-.1em; } .chip-two span { font-size:8px; line-height:1.3; } .trust-strip { max-width:1440px; padding:0 5.5vw; margin:auto; display:grid; grid-template-columns:repeat(4,1fr); border-bottom:1px solid var(--line); } .trust-strip div { padding:28px 22px 30px 0; border-right:1px solid var(--line); display:flex; gap:12px; } .trust-strip div+div { padding-left:22px; } .trust-strip div:last-child { border-right:0; } .trust-number { color:#19a59b; font:10px var(--mono); } .trust-strip p { color:#3b5d69; margin:0; font-size:12px; font-weight:700; line-height:1.55; } .solutions { padding-top:120px; padding-bottom:120px; } .section-intro { display:flex; align-items:end; justify-content:space-between; gap:60px; margin-bottom:53px; } h2 { margin-bottom:0; font-size:clamp(37px,4.2vw,58px); line-height:1.04; letter-spacing:-.065em; } .section-intro > p { max-width:430px; color:var(--muted); font-size:15px; line-height:1.75; margin-bottom:4px; } .solution-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:13px; } .solution-card { min-height:395px; padding:20px; display:flex; flex-direction:column; background:#eef7f6; transition:transform .25s; } .solution-card:hover { transform:translateY(-7px); } .solution-immuno { background:#f1f4dc; }.solution-routine { background:#f9ece4; }.solution-public { background:#e7f0f8; } .card-top { display:flex; justify-content:space-between; color:#4d7078; font:11px var(--mono); } .arrow { font-size:18px; }.solution-icon { height:115px; margin:15px 0 22px; position:relative; }.molecule-icon i { width:29px; height:29px; border-radius:50%; background:#23afa1; position:absolute; }.molecule-icon i:after { content:""; position:absolute; width:55px; height:1px; background:#238b83; transform-origin:left; left:22px; top:14px; }.molecule-icon i:nth-child(1){left:17px;top:52px}.molecule-icon i:nth-child(2){left:83px;top:18px;background:#d8ef68}.molecule-icon i:nth-child(3){left:110px;top:77px;background:#ff916c}.molecule-icon i:nth-child(4){left:164px;top:47px;background:#23afa1}.molecule-icon i:nth-child(2):after{transform:rotate(64deg);}.molecule-icon i:nth-child(3):after{transform:rotate(-28deg);}.molecule-icon i:nth-child(4):after{display:none}.immuno-icon i { display:block; position:absolute; border-radius:50%; border:2px solid #558a56; width:65px; height:65px; }.immuno-icon i:nth-child(1){left:38px;top:28px}.immuno-icon i:nth-child(2){left:88px;top:13px;border-color:#a1b92e}.immuno-icon i:nth-child(3){left:115px;top:58px;border-color:#ef9274}.routine-icon { display:flex; align-items:center; gap:7px; }.routine-icon i { width:18px; background:#dc8a70; display:block; }.routine-icon i:nth-child(1){height:32px}.routine-icon i:nth-child(2){height:65px;background:#eead7e}.routine-icon i:nth-child(3){height:97px;background:#f5cf9b}.routine-icon i:nth-child(4){height:43px;background:#a1c2b6}.routine-icon i:nth-child(5){height:78px;background:#63aca0}.public-icon:before,.public-icon:after { content:""; position:absolute; left:80px; top:6px; width:3px; height:95px; background:#5996b0; transform:rotate(45deg); }.public-icon:after { transform:rotate(-45deg); }.public-icon i { display:block; position:absolute; border-radius:50%; background:#7eb8ca; width:30px; height:30px; }.public-icon i:nth-child(1){left:65px;top:3px}.public-icon i:nth-child(2){left:20px;top:78px}.public-icon i:nth-child(3){left:154px;top:80px}.solution-card h3 { font-size:20px; letter-spacing:-.04em; margin-bottom:10px; }.solution-card p { color:#4d6c76; font-size:13px; line-height:1.65; margin-bottom:20px; }.solution-card a { margin-top:auto; font-size:12px; font-weight:800; }.solution-card a span { font-size:17px; margin-left:8px; }.process { background:var(--ink); color:white; display:grid; grid-template-columns:1fr 1.35fr; gap:9vw; padding-top:112px; padding-bottom:112px; }.process .eyebrow { color:var(--lime); }.process-list { list-style:none; margin:0; padding:0; }.process-list li { display:grid; grid-template-columns:60px 1fr; gap:22px; border-top:1px solid rgba(221,244,239,.22); padding:22px 0; }.process-list li:last-child { border-bottom:1px solid rgba(221,244,239,.22); }.process-list > li > span { color:var(--lime); font:11px var(--mono); padding-top:5px; }.process-list h3 { margin-bottom:7px; font-size:17px; }.process-list p { margin-bottom:0; color:#b5d1d4; max-width:500px; font-size:13px; line-height:1.65; }.quality { display:grid; grid-template-columns:1fr 1fr; padding-top:105px; padding-bottom:105px; gap:0; }.quality-panel { background:#23a99e; color:white; min-height:500px; padding:58px 11%; display:flex; flex-direction:column; justify-content:center; }.quality-panel .eyebrow { color:#e4ffa4; }.quality-panel h2 { margin-bottom:20px; }.quality-panel > p:not(.eyebrow) { color:#e5fffd; max-width:430px; line-height:1.7; font-size:14px; }.quality-panel .button { align-self:flex-start; margin-top:17px; }.quality-list { border:1px solid var(--line); }.quality-list > div { min-height:125px; padding:26px 12%; border-bottom:1px solid var(--line); }.quality-list > div:last-child { border-bottom:0; }.quality-list span { color:#107e76; font:10px var(--mono); letter-spacing:.08em; text-transform:uppercase; }.quality-list p { margin:9px 0 0; font-size:15px; line-height:1.55; font-weight:700; }.about { display:grid; grid-template-columns:.8fr 1.2fr; gap:12vw; padding-top:95px; padding-bottom:95px; background:#f5f8f8; }.about-stat { display:flex; flex-direction:column; justify-content:center; align-items:flex-end; border-right:1px solid #cddddd; padding-right:10vw; }.about-stat strong { color:#1b9c92; font:800 clamp(75px,11vw,150px)/.8 var(--sans); letter-spacing:-.13em; }.about-stat span { margin-top:15px; color:#4d7480; text-align:right; font:10px/1.4 var(--mono); letter-spacing:.08em; text-transform:uppercase; }.about-copy h2 { margin-bottom:21px; }.about-copy > p:not(.eyebrow) { max-width:530px; color:var(--muted); font-size:15px; line-height:1.8; }.about-copy .text-link { margin-top:13px; }.rfq { display:grid; grid-template-columns:.75fr 1.25fr; gap:10vw; padding-top:115px; padding-bottom:115px; }.rfq-intro h2 { margin-bottom:20px; }.rfq-intro > p:not(.eyebrow) { color:var(--muted); max-width:330px; font-size:15px; line-height:1.8; }.rfq-note { margin-top:65px; display:grid; gap:7px; }.rfq-note span { color:#42807e; font:10px var(--mono); letter-spacing:.08em; text-transform:uppercase; }.rfq-note strong { font-size:13px; }.rfq-form { display:grid; grid-template-columns:1fr 1fr; gap:22px 18px; }.field { display:flex; flex-direction:column; gap:8px; }.field.full { grid-column:1/-1; }.field label { font-size:11px; font-weight:800; }.field sup { color:#17a399; }.field input,.field select,.field textarea { width:100%; border:0; border-bottom:1px solid #aebec5; background:transparent; color:var(--ink); padding:9px 0; font:13px var(--sans); outline:none; border-radius:0; }.field input:focus,.field select:focus,.field textarea:focus { border-color:#19a59b; }.field textarea { resize:vertical; }.check { grid-column:1/-1; display:flex; gap:10px; color:#54707d; font-size:11px; line-height:1.5; }.check input { accent-color:#129d93; margin-top:2px; }.form-submit { width:max-content; margin-top:9px; }.form-footnote { align-self:center; margin:9px 0 0; color:#738a94; font-size:10px; }.site-footer { color:white; background:var(--ink); padding:0 5.5vw; }.footer-top { min-height:180px; display:flex; align-items:center; justify-content:space-between; gap:40px; border-bottom:1px solid rgba(226,244,242,.18); }.brand-footer { color:white; }.footer-top > p { color:#b8d2d3; margin:0; font-size:13px; }.footer-bottom { min-height:75px; display:flex; align-items:center; justify-content:space-between; color:#a9c6c8; font:10px var(--mono); }.footer-bottom div { display:flex; gap:20px; }.footer-bottom a:hover { color:var(--lime); }
@media (max-width:900px) { .desktop-nav,.header-cta { display:none; }.desktop-nav.is-open { display:flex; position:absolute; z-index:10; top:70px; left:0; right:0; padding:23px 5.5vw; flex-direction:column; gap:17px; background:white; box-shadow:0 12px 20px rgba(7,29,45,.12); }.menu-button { display:block; }.hero { grid-template-columns:1fr; padding-top:65px; }.hero-visual { min-height:410px; margin-top:30px; }.trust-strip { grid-template-columns:repeat(2,1fr); }.trust-strip div:nth-child(2) { border-right:0; }.trust-strip div:nth-child(3) { border-top:1px solid var(--line); padding-left:0; }.trust-strip div:nth-child(4) { border-top:1px solid var(--line); }.solution-grid { grid-template-columns:repeat(2,1fr); }.process { grid-template-columns:1fr; gap:50px; }.quality { grid-template-columns:1fr; }.quality-panel { min-height:420px; }.about { gap:8vw; }.rfq { grid-template-columns:1fr; gap:50px; }.rfq-note { margin-top:30px; } }
@media (max-width:600px) { .announcement { font-size:8px; padding:8px 12px; gap:6px; }.announcement a { display:none; }.site-header { height:70px; }.section-pad { padding-left:24px; padding-right:24px; }.hero { min-height:auto; padding-top:52px; }.hero-lead { font-size:16px; }.hero-actions { gap:17px; }.hero-tags { margin-top:42px; }.hero-visual { transform:scale(.83); margin:0 -33px; min-height:365px; }.chip-one { left:0; }.chip-two { right:-10px; }.trust-strip { padding:0 24px; }.trust-strip div,.trust-strip div+div { padding:20px 10px 20px 0; gap:8px; }.trust-strip div+div { padding-left:10px; }.trust-strip p { font-size:10px; }.solutions,.process,.rfq { padding-top:75px; padding-bottom:75px; }.section-intro { display:block; margin-bottom:35px; }.section-intro > p { margin-top:20px; }.solution-grid { grid-template-columns:1fr; }.solution-card { min-height:290px; }.solution-icon { height:70px; margin:5px 0 12px; transform:scale(.75); transform-origin:left center; }.process-list li { grid-template-columns:36px 1fr; gap:12px; }.quality { padding-top:65px; padding-bottom:65px; }.quality-panel { padding:48px 9%; }.about { grid-template-columns:1fr; padding-top:70px; padding-bottom:70px; }.about-stat { border-right:0; border-bottom:1px solid #cddddd; padding:0 0 30px; align-items:start; }.about-stat span { text-align:left; }.rfq-form { grid-template-columns:1fr; }.field.full,.check { grid-column:auto; }.form-submit { grid-column:auto; }.form-footnote { grid-column:auto; }.footer-top { min-height:220px; padding:30px 0; align-items:start; flex-direction:column; justify-content:center; gap:20px; }.footer-bottom { min-height:90px; align-items:start; flex-direction:column; justify-content:center; gap:13px; } }
