/* A spatial deck, not a hidden native scrolling strip. */
#products .product-carousel.is-deck .product-viewport {
 position:relative; overflow:hidden; height:510px; padding:0;
 perspective:1200px; touch-action:pan-y; cursor:grab; user-select:none;
}
#products .is-deck .product-grid { position:relative; width:100%; height:100%; display:block; transform-style:preserve-3d; }
#products .is-deck .product-card {
 position:absolute; top:34px; left:50%; width:var(--deck-width,360px); height:420px;
 padding:30px 26px 20px; background:var(--surface); border:1px solid var(--line);
 transform:translateX(calc(-50% + var(--deck-x,0px) + var(--drag-x,0px))) translateZ(var(--deck-z,0px)) rotateY(var(--deck-angle,0deg)) scale(var(--deck-scale,1));
 transition:transform .25s cubic-bezier(.22,.7,.2,1),opacity .25s,box-shadow .25s,background .25s;
 box-shadow:0 12px 30px #252b3e0a; backface-visibility:hidden; opacity:.62;
}
#products .is-deck .product-card.is-current { background:var(--paper); opacity:1; border-color:var(--brand-soft); box-shadow:0 22px 45px #252b3e14; }
#products .is-deck .product-card[data-slot="-2"], #products .is-deck .product-card[data-slot="2"] { opacity:.35; }
#products .is-deck .product-card img { height:260px; min-height:0; flex:1; padding:22px 8px; pointer-events:none; }
#products .is-deck .product-card:not(.is-current) a, #products .is-deck .product-card:not(.is-current) button { pointer-events:none; }
#products .is-deck .product-card:hover img { transform:none; }
#products .is-dragging .product-card { transition:none; }
#products .is-dragging .product-viewport { cursor:grabbing; }
#products .product-viewport:focus-visible { outline:2px solid var(--brand); outline-offset:4px; }
#products .is-deck .card-bottom > span { font-size:14px; }
#products .product-controls { margin-top:0; }
.product-controls .deck-instruction { display:flex; align-items:center; gap:22px; }
.product-status { color:var(--brand); font-variant-numeric:tabular-nums; min-width:4em; }
.network-panel { display:grid; grid-template-columns:1fr 1.15fr; align-items:center; gap:24px; margin-top:40px; padding:24px clamp(24px,4vw,64px); background:var(--surface); border-top:1px solid var(--line); text-align:left; }
.network-copy .eyebrow { margin-bottom:20px; }
.network-copy h3 { font-size:clamp(25px,2.2vw,34px); line-height:1.4; margin:0 0 16px; }
.network-copy p { font-size:14px; line-height:1.9; max-width:24em; color:var(--muted); }
.network-copy .network-summary { max-width:none; }
.network-copy .network-note { font-size:11px; margin-top:28px; }
.network-map { width:100%; max-width:600px; max-height:none; aspect-ratio:680 / 560; display:block; height:auto; justify-self:center; }
.network-map .network-route { fill:none; stroke:var(--brand-soft); stroke-width:1.2; opacity:.5; }
.network-map .network-signal { fill:none; stroke:var(--brand); stroke-width:2; stroke-dasharray:6 94; animation:network-flow 4.8s linear infinite; }
.network-map .network-dot { fill:var(--brand); }
.network-map .network-pulse { fill:none; stroke:var(--brand-soft); stroke-width:1; transform-box:fill-box; transform-origin:center; animation:network-pulse 3s ease-out infinite; }
.network-map text { fill:var(--ink); font-family:inherit; font-size:15px; }
.network-map .network-hub { fill:var(--brand-red); }
.network-map .network-capital polygon { fill:#d83232; stroke:var(--paper); stroke-width:1; }
.network-map .network-nansha rect { stroke:var(--brand-soft); stroke-width:1; stroke-dasharray:4 4; vector-effect:non-scaling-stroke; }
.network-map .network-nansha text { fill:var(--muted); font-size:15px; }
.network-map .network-nansha .network-location-note { font-size:12px; }
.network-toggle { margin-top:14px; min-height:44px; padding:8px 15px; color:var(--brand); border:1px solid var(--line-strong); background:transparent; border-radius:3px; cursor:pointer; }
.network-toggle:hover { background:var(--paper); }
.network-toggle:active { background:var(--line); }
.network-toggle:disabled { opacity:.55; cursor:default; }
.network-panel.is-paused .network-signal,.network-panel.is-paused .network-pulse { animation-play-state:paused; }
@keyframes network-flow { to { stroke-dashoffset:-100; } }
@keyframes network-pulse { 0% { transform:scale(.5); opacity:.8; } 100% { transform:scale(2.5); opacity:0; } }
@media(max-width:760px){
 .network-panel { grid-template-columns:1fr; padding:28px 20px; gap:0; }
 .network-copy .network-note { margin-top:12px; }
 #products .is-deck .product-card { top:26px; height:370px; padding:24px 18px 16px; }
 #products .product-carousel.is-deck .product-viewport { height:445px; perspective:900px; }
 #products .is-deck .product-card img { height:220px; }
 .product-controls { gap:10px; }
 .product-controls .deck-instruction { gap:10px; flex-direction:column; align-items:flex-start; }
 .deck-instruction small { font-size:10px; }
}
@media(prefers-reduced-motion:reduce){
 #products .is-deck .product-card { transition:none; }
 .network-map .network-signal,.network-map .network-pulse { animation:none; }
 .network-map .network-pulse { opacity:.4; }
}
.motion-paused #products .is-deck .product-card { transition:none; }
.motion-paused .network-map .network-signal,.motion-paused .network-map .network-pulse { animation-play-state:paused; }

/* Approved compact refinement: borderless navigation and a horizontal EMS story. */
#compliance-title { white-space:nowrap; font-size:clamp(24px,3.3vw,52px); letter-spacing:0; }
#lims .lims-introduction { width:100%; max-width:none; margin:20px 0 26px; color:var(--muted); }
#lims .lims-introduction p { max-width:none; }
#lims .lims-layout { column-gap:clamp(24px,2.5vw,40px); }
.network-industries { margin:22px 0; display:grid; gap:12px; }
.network-industries > div { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:12px; padding-top:12px; border-top:1px solid var(--line); }
.network-industries dt { font-size:15px; font-weight:600; color:var(--ink); }
.network-industries dd { margin:0; font-size:13px; line-height:1.8; color:var(--muted); }
.network-copy .network-case-link { display:inline-flex; margin-top:0; }
.network-panel { padding-top:22px; padding-bottom:22px; }
#lims .lims-introduction p { margin:0; font-size:clamp(16px,1.1vw,18px); line-height:1.9; }
#lims .lims-introduction p + p { margin-top:14px; }
.header .nav-links a, .header .nav-contact { font-size:clamp(16px,1vw,18px); }
.header .nav-links { gap:clamp(16px,1.5vw,28px); }
.header .nav-tools { display:flex; align-items:center; gap:20px; margin-left:auto; flex-shrink:0; }
@media(min-width:1351px){
 .header .nav { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); }
 .header .brand { justify-self:start; }
 .header .nav-links { justify-self:center; margin:0; }
 .header .nav-tools { justify-self:end; margin-left:0; }
}
.header .nav-tools .nav-contact { margin-left:0; white-space:nowrap; }
.language-switch { display:flex; align-items:center; gap:2px; padding-left:16px; border-left:1px solid var(--line-strong); color:var(--muted); }
.language-switch button { border:0; background:transparent; color:inherit; font:inherit; font-size:14px; min-width:38px; min-height:44px; padding:8px 4px; cursor:pointer; }
.language-switch button[aria-pressed="true"] { color:var(--brand); font-weight:700; }
.language-switch button:hover { color:var(--brand); text-decoration:underline; text-underline-offset:5px; }
.language-switch button:active { opacity:.65; }
.language-switch button:focus-visible { outline:2px solid currentColor; outline-offset:1px; }
.header.over-hero .language-switch { color:var(--hero-copy); border-color:#ffffff50; }
.header.over-hero .language-switch button[aria-pressed="true"], .header.over-hero .language-switch button:hover { color:#fff; }
html[lang="en"] .header .nav-links a, html[lang="en"] .header .nav-contact { font-size:14px; }
html[lang="en"] .hero h1 { font-size:clamp(36px,5.5vw,94px); letter-spacing:-.025em; }
html[lang="en"] #compliance-title, html[lang="en"] #lims .lims-layout h2,
html[lang="en"] #applications .section-heading h2, html[lang="en"] #contact h2 { white-space:normal; }
html[lang="en"] #compliance-title { font-size:clamp(26px,3vw,46px); }
html[lang="en"] .card-bottom > span { overflow-wrap:anywhere; }
html[lang="en"] .network-industries > div { grid-template-columns:1fr; gap:4px; }
@media(max-width:1350px){
 .header .nav { gap:16px; }
 .header .menu { display:flex; flex-direction:column; gap:6px; width:36px; min-height:44px; padding:10px 6px; border:0; background:transparent; order:2; margin-left:auto; }
 .header .menu span { height:1px; width:24px; }
 .header .nav-tools { order:3; margin-left:0; }
 .header .nav-links { display:none; position:absolute; top:100%; left:var(--page-gutter); right:var(--page-gutter); padding:20px 24px; flex-direction:column; gap:4px; background:var(--paper); border:1px solid var(--line); max-height:calc(100dvh - 100px); overflow-y:auto; }
 .header .nav-links.open { display:flex; }
}
@media(max-width:650px){
 .header .nav { gap:8px; }
 .header .nav-tools { gap:8px; }
 .header .nav-contact, html[lang="en"] .header .nav-contact { font-size:12px; }
 .language-switch { padding-left:6px; }
 .language-switch button { min-width:30px; font-size:12px; }
 .header .brand { width:72px; }
 .header .brand img { width:72px; }
 html[lang="en"] .hero h1 { font-size:clamp(30px,7vw,46px); }
}
.header { height:100px; border:0; box-shadow:none; }
.header .nav { border:0; box-shadow:none; }
.header .scroll-progress { display:none; }
.header .nav-links a[aria-current]::after { display:none; }
#products .product-card .plus {
 display:inline-flex; align-items:center; justify-content:center;
 width:44px; height:44px; padding:0; border:1px solid var(--line-strong);
 border-radius:50%; background:transparent; color:var(--brand); line-height:1;
 cursor:pointer; text-decoration:none; transition:background .2s,color .2s,border-color .2s;
}
#products .product-card .plus svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
#products .product-card .plus:hover { background:var(--brand); border-color:var(--brand); color:var(--paper); }
#products .product-card .plus:active { background:var(--brand-hover); }
#technology > .wrap { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,3fr); align-items:center; gap:40px clamp(30px,4vw,72px); }
#technology .tech-heading { text-align:left; min-width:0; }
#technology .tech-heading h2 { font-size:clamp(32px,3.5vw,60px); }
#technology .signal-panel { margin:0; min-width:0; padding:clamp(22px,2.4vw,38px); }
#technology .signal-values { gap:20px; justify-content:space-between; }
#technology .signal-values strong { font-size:clamp(26px,2.7vw,42px); }
#technology .tech-features { grid-column:1/-1; margin:0; }
#explore { scroll-margin-top:112px; }
@media(max-width:900px) {
 #technology > .wrap { grid-template-columns:minmax(0,1fr); gap:30px; }
 #technology .tech-heading h2 { font-size:clamp(32px,6vw,48px); }
 #technology .signal-panel { padding:24px; }
}
@media(max-width:650px) {
 .header { height:89px; }
 #technology .signal-panel { padding:20px 16px; }
 #technology .signal-values { gap:10px; }
 #technology .signal-values strong { font-size:26px; }
 .network-map { max-width:376px; max-height:none; }
 #explore { scroll-margin-top:100px; }
}

/* Center both complete overlay blocks on the background's midline. */
@media (min-width: 901px) {
 #compliance .gmp-image-title,
 #compliance .gmp-data { top: 50%; bottom: auto; transform: translateY(-50%); }
 #compliance .gmp-image-title h3 { margin: 20px 0 0; }
 #compliance .gmp-image-title > span { display: block; white-space: nowrap; }
}

/* Shared typography for the nine user-marked supporting-text groups. */
:root {
 --annotation-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
 --annotation-size: 16px;
}
:is(
 #home .hero-intro,
 #home .actions > a,
 #compliance .compliance-sources,
 #compliance .compliance-sources > a,
 #compliance .compliance-sources > span,
 #lims .lims-introduction p,
 #applications .industry-overview p,
 #about > .wrap > p:not(.eyebrow),
 #about .company-copy p,
 #about .network-summary,
 #about .network-industries dt,
 #about .network-industries dd
) {
 font-family: var(--annotation-font);
 font-size: var(--annotation-size);
 font-weight: 400;
 line-height: 1.8;
 letter-spacing: normal;
}

/* One size for all user-marked section headings, including colored spans. */
:root { --section-heading-size: 48px; }
html :is(
 #compliance-title,
 #products .section-heading h2,
 #lims .lims-layout h2,
 #applications .section-heading h2,
 #about > .wrap > h2,
 #about .network-copy h3,
 #contact > .wrap > h2
) { font-size: var(--section-heading-size); }
#lims .lims-layout h2 > span,
#contact > .wrap > h2 > span { font-size: inherit; }
@media (max-width: 900px) { :root { --section-heading-size: 36px; } }
@media (max-width: 650px) { :root { --section-heading-size: clamp(22px, 6vw, 30px); } }
