/* ---- scheme drawing vocabulary (applies inside <use> clones) ---- */
.svg-defs{position:absolute;width:0;height:0;overflow:hidden}
.scheme{display:block;width:100%;height:auto;overflow:visible;
  --s-line:#23313B;--s-muted:#7E8B94;--s-accent:#1E4C86;--s-frac:#C97A1E;--s-water:#D3E4EF;--s-paper:#FBFCFB}
.ol{fill:none;stroke:var(--s-line);stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}
.ol.thin,.thin{stroke-width:1}
.ol.pp{fill:var(--s-paper)}
.st{fill:url(#p-hatch);stroke:var(--s-line);stroke-width:1.4}
.ld{stroke:var(--s-accent);stroke-width:2.4;stroke-linecap:round}
.ld-h,.ld2-h{fill:var(--s-accent)}
.ld2{stroke:var(--s-accent);stroke-width:1.6;stroke-linecap:round}
.dm{stroke:var(--s-muted);stroke-width:1}
.dm-h{fill:var(--s-muted)}
.dm-x{stroke:var(--s-muted);stroke-width:.9}
.ax{stroke:var(--s-muted);stroke-width:1;stroke-dasharray:16 4 2 4}
.fr{fill:none;stroke:var(--s-frac);stroke-width:1.9;stroke-linejoin:round;stroke-linecap:round}
.fr-d{fill:none;stroke:var(--s-frac);stroke-width:1.7;stroke-dasharray:7 5}
.sy{font-family:var(--font-serif,"Literata",Georgia,serif);font-style:italic;font-size:19px;fill:var(--s-line);display:var(--sym-display,inline)}
.sb{font-style:normal;font-size:12px}
.sr{font-style:normal;font-size:16px}
.wt{fill:var(--s-water)}
.wt-o{opacity:.64}
.mb{fill:none;stroke:var(--s-muted);stroke-width:1}
.bd{stroke:var(--s-muted);stroke-width:.8;opacity:.5}
.gg{fill:var(--s-paper);stroke:var(--s-line);stroke-width:1.2}
.gm{fill:none;stroke:var(--s-accent);stroke-width:1.1;stroke-linejoin:round}
.pad{fill:var(--s-accent)}
.wr{fill:none;stroke:var(--s-muted);stroke-width:1.1;stroke-linecap:round}
.wv{fill:none;stroke:var(--s-accent);stroke-width:2;stroke-linejoin:round}
.wf{fill:none;stroke:var(--s-accent);stroke-width:1;opacity:.45}
.tr{fill:#D9E0E5;stroke:var(--s-line);stroke-width:1.5}
.cb{fill:none;stroke:var(--s-line);stroke-width:1.5;stroke-linecap:round}
.bx{fill:#EDF0F1;stroke:var(--s-line);stroke-width:1.5}
.ds{fill:#DAE2E7;stroke:var(--s-line);stroke-width:1}
.gl{stroke:#fff;stroke-width:1.4;opacity:.85}
.pn{fill:#DCE2E6;stroke:var(--s-line);stroke-width:1.4}
.cl{fill:#E3E8EB;stroke:var(--s-line);stroke-width:1.3;stroke-linejoin:round}
.tk{stroke:var(--s-line);stroke-width:.8}
.gr{stroke:var(--s-muted);stroke-width:1}
.ws{fill:none;stroke:#7FA7C1;stroke-width:1.2}
.bb{fill:none;stroke:#7FA7C1;stroke-width:1}
.iv{fill:#F7F8F8;stroke:var(--s-line);stroke-width:1.2}
.ht{fill:none;stroke:var(--s-muted);stroke-width:1.2;stroke-linecap:round}
.dot{fill:var(--s-line)}
.pp{fill:var(--s-paper)}

/* ---- hero drawing sheet (dark ink) ---- */
.sheet{display:block;width:100%;height:auto;--amber:#E7AE57}
.h-frame{fill:none;stroke:rgba(207,224,238,.22);stroke-width:1}
.h-frame2{fill:none;stroke:rgba(207,224,238,.42);stroke-width:1.2}
.h-grid{fill:none;stroke:rgba(255,255,255,.065);stroke-width:.7}
.h-axis{fill:none;stroke:#DCE7F1;stroke-width:1.4}
.h-axh{fill:#DCE7F1}
.h-sym{font-family:var(--font-serif,"Literata",Georgia,serif);font-style:italic;font-size:22px;fill:#DCE7F1}
.h-sb{font-style:normal;font-size:13px}
.h-circ{fill:none;stroke:#CFE0EE;stroke-width:1.5}
.h-cen{fill:#CFE0EE}
.h-env{fill:none;stroke:#fff;stroke-width:2}
.h-tan{fill:var(--amber)}
.h-core{fill:rgba(207,224,238,.08)}
.h-ol{fill:none;stroke:#CFE0EE;stroke-width:1.4}
.h-st{stroke:#CFE0EE;stroke-width:1.3}
.h-ax{stroke:rgba(207,224,238,.55);stroke-width:1;stroke-dasharray:14 4 2 4}
.h-ld{stroke:#E9F1F7;stroke-width:2.2;stroke-linecap:round}
.h-ldh{fill:#E9F1F7}
.h-frac{fill:none;stroke:var(--amber);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
.h-tb{fill:none;stroke:rgba(207,224,238,.5);stroke-width:1.1}
.h-tbl{fill:none;stroke:rgba(207,224,238,.38);stroke-width:.8}
.h-tbt{font-family:var(--font-sans,"Golos Text",system-ui,sans-serif);font-size:12px;fill:#B9CDE0}
.h-tbt-l{font-size:13.5px;fill:#EEF4F9;font-weight:500}
.h-shard{fill:rgba(207,224,238,.16);stroke:#CFE0EE;stroke-width:1}
.h-needle{stroke:var(--amber);stroke-width:2;stroke-linecap:round;transform-box:view-box;transform-origin:62px 92px;
  transform:rotate(-120deg);animation:needle 2s cubic-bezier(.45,.05,.55,1) 1s forwards}
@keyframes needle{0%{transform:rotate(-120deg)}78%{transform:rotate(58deg)}100%{transform:rotate(30deg)}}
.h-lead{fill:none;stroke:rgba(207,224,238,.6);stroke-width:1}
.h-dot{fill:#CFE0EE}
.h-call{font-family:var(--font-sans,"Golos Text",system-ui,sans-serif);font-size:14px;fill:#DCE7F1}
.h-lead.h-call-hot{stroke:var(--amber)}
.h-dot.h-call-hot,.h-call.h-call-hot{fill:var(--amber)}
.sheet .draw{stroke-dasharray:1;stroke-dashoffset:1;animation:sheet-draw 1.15s cubic-bezier(.5,.05,.25,1) forwards;animation-delay:var(--d,0s)}
.sheet .fade{opacity:0;animation:sheet-fade .9s ease forwards;animation-delay:var(--d,0s)}
@keyframes sheet-draw{to{stroke-dashoffset:0}}
@keyframes sheet-fade{to{opacity:1}}
@media (prefers-reduced-motion:reduce){
  .sheet .draw{stroke-dashoffset:0;animation:none}
  .sheet .fade{opacity:1;animation:none}
  .h-needle{animation:none;transform:rotate(30deg)}
}
.h-steel{fill:rgba(207,224,238,.16);stroke:#CFE0EE;stroke-width:1.3}
:root{
  --snow:#F1F3F2;--paper:#FAFBFA;--basalt:#1B2327;--granite:#59646A;--frost:#D3D9DA;--frost-2:#E4E8E8;
  --ink:#16375E;--ink-deep:#0E2846;--ice:#C9DAEA;--ice-muted:#9DB4CB;--amber:#E7AE57;
  --font-serif:"Literata","Lora",Georgia,"Times New Roman",serif;
  --font-sans:"Golos Text","Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --wrap:1312px;--gx:clamp(20px,4vw,56px);--section:clamp(88px,10vw,160px);--hdr:76px;
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--hdr) + 12px)}
body{margin:0;background:var(--snow);color:var(--basalt);font:400 17px/1.55 var(--font-sans);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}
p{margin:0}
h1,h2,h3{margin:0;font-weight:400}
button{font:inherit;color:inherit}
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gx)}
.num{font-variant-numeric:tabular-nums lining-nums}
.nw{white-space:nowrap}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.on-ink :focus-visible{outline-color:var(--amber)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important}}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:40;background:rgba(241,243,242,.9);
  -webkit-backdrop-filter:blur(14px) saturate(1.1);backdrop-filter:blur(14px) saturate(1.1);
  border-bottom:1px solid transparent;transition:border-color .3s ease}
.site-header.is-scrolled{border-bottom-color:var(--frost)}
.hdr{display:flex;align-items:center;gap:clamp(20px,2.6vw,40px);height:var(--hdr)}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;flex:none}
.brand-logo{height:44px;width:44px;flex:none;display:block}
.brand.is-missing .brand-logo{display:none}
.brand-name{font-family:var(--font-serif);font-size:16px;line-height:1.2;letter-spacing:-.005em;max-width:21em}
.brand-name>span{display:block}
.brand-name .bn-2{margin-top:2px;font-family:var(--font-sans);font-size:12.5px;line-height:1.3;letter-spacing:0;color:var(--granite)}
.nav{display:flex;align-items:center;gap:clamp(18px,2vw,30px);margin-left:auto}
.nav a{position:relative;font-size:15px;white-space:nowrap;text-decoration:none;padding:8px 0}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:currentColor;
  transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.nav a:hover::after,.nav a.is-current::after{transform:scaleX(1)}
.hdr-phone{font-size:15px;text-decoration:none;white-space:nowrap}
.hdr-phone:hover{text-decoration:underline}
.menu-btn{display:none;align-items:center;justify-content:center;width:46px;height:46px;margin-left:auto;
  border:1px solid var(--frost);border-radius:2px;background:transparent;cursor:pointer}
.menu-btn svg{width:22px;height:22px}
.mnav{display:none;position:fixed;left:0;right:0;top:var(--hdr);z-index:39;background:var(--snow);
  border-bottom:1px solid var(--frost);padding:8px var(--gx) 28px;max-height:calc(100vh - var(--hdr));overflow:auto}
.mnav a.mnav-link{display:block;padding:16px 0;border-bottom:1px solid var(--frost);font-family:var(--font-serif);
  font-size:24px;line-height:1.2;text-decoration:none}
.mnav-contacts{display:grid;gap:6px;margin-top:22px;font-size:16px}
.mnav-contacts a{text-decoration:none}
.mnav .btn{margin-top:22px}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 24px;
  border:1px solid transparent;border-radius:2px;font:500 15px/1.2 var(--font-sans);text-decoration:none;
  cursor:pointer;white-space:nowrap;transition:background-color .25s ease,color .25s ease,border-color .25s ease}
.btn svg{width:18px;height:18px;flex:none}
.btn-ink{background:var(--ink);color:#fff}
.btn-ink:hover{background:var(--ink-deep)}
.btn-line{background:transparent;border-color:rgba(22,55,94,.32);color:var(--ink)}
.btn-line:hover{border-color:var(--ink)}
.btn-snow{background:#F4F7FA;color:var(--ink)}
.btn-snow:hover{background:#fff}
.btn-ghost{background:transparent;color:#EEF4F9;border-color:rgba(201,218,234,.42)}
.btn-ghost:hover{border-color:#EEF4F9}

/* ---------- hero ---------- */
.hero{background:var(--ink);color:#EEF3F8}
.hero-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gx);align-items:center;
  padding-block:clamp(56px,7vw,112px) clamp(64px,7vw,112px)}
.hero-text{grid-column:1/span 6}
.hero-figure{grid-column:7/span 6;margin:0}
.hero h1{font-family:var(--font-serif);font-weight:400;font-size:clamp(44px,5.3vw,80px);line-height:1.02;
  letter-spacing:-.022em;text-wrap:balance}
.hero-name{margin-top:28px;max-width:30em;font-size:16px;line-height:1.5;color:var(--ice-muted)}
.hero-lead{margin-top:18px;max-width:31em;font-family:var(--font-serif);font-size:clamp(18px,1.42vw,21px);
  line-height:1.62;color:#DCE6EF}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:40px}
.hero-contacts{display:flex;flex-wrap:wrap;gap:8px 32px;margin-top:36px;padding-top:24px;
  border-top:1px solid rgba(201,218,234,.18);font-size:16px}
.hero-contacts a{color:#F4F7FA;text-decoration:none}
.hero-contacts a:hover{text-decoration:underline}

/* ---------- sections ---------- */
.section{padding-block:var(--section)}
.section + .section{padding-top:0}
.section-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gx);
  margin-bottom:clamp(40px,5vw,72px)}
.section-title{grid-column:1/span 8;font-family:var(--font-serif);font-weight:400;font-size:clamp(38px,4.3vw,62px);
  line-height:1.04;letter-spacing:-.018em}

/* ---------- tests explorer ---------- */
.explorer{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(32px,5vw,88px);align-items:start}
.test-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--frost)}
.test-link{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 20px;
  padding:22px 0 24px;border-bottom:1px solid var(--frost);text-decoration:none}
.test-link .gost{grid-column:1;font-size:14px;color:var(--granite)}
.test-link .t-title{grid-column:1;font-family:var(--font-serif);font-size:clamp(18px,1.38vw,21px);line-height:1.32;
  transition:color .25s ease}
.test-link .t-go{grid-column:2;grid-row:1/span 2;width:22px;height:22px;color:var(--ink);opacity:0;
  transform:translateX(-6px);transition:opacity .25s ease,transform .3s ease}
.test-link .t-thumb{display:none}
.test-link.is-active .t-go{opacity:1;transform:none}
.test-link::before{content:"";position:absolute;left:calc(-1 * clamp(14px,1.5vw,22px));top:22px;bottom:24px;width:2px;
  background:var(--ink);transform:scaleY(0);transform-origin:top;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.test-link.is-active::before{transform:scaleY(1)}
.test-preview{position:sticky;top:calc(var(--hdr) + 28px);display:grid}
.pv{grid-area:1/1;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility 0s linear .3s}
.pv.is-active{opacity:1;visibility:visible;transition:opacity .45s ease}
.pv-meta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 36px;align-items:end;margin-top:28px}
.pv-text{grid-column:1;display:grid;gap:10px}
.pv-text p{font-family:var(--font-serif);font-size:18px;line-height:1.6;color:#2B363C;max-width:36em}
.pv-meta .btn{grid-column:2}

/* ---------- drawing plate ---------- */
.plate{position:relative;display:block;margin:0;background:var(--paper);border:1px solid var(--frost);color:inherit;text-decoration:none;
  padding:clamp(22px,3vw,40px) clamp(22px,3vw,40px) clamp(56px,5vw,64px)}
.plate::before{content:"";position:absolute;inset:9px;border:1px solid var(--frost-2);pointer-events:none}
.plate .scheme{max-width:540px;margin-inline:auto}
.plate-tb{position:absolute;right:9px;bottom:9px;display:flex;border-top:1px solid var(--frost);
  border-left:1px solid var(--frost);background:var(--paper);font-size:12.5px;color:var(--granite)}
.plate-tb span{padding:8px 14px}

/* ---------- media frames ---------- */
.frame{position:relative;margin:0;background:#E3E7E8;overflow:hidden}
.frame img{width:100%;height:100%;object-fit:cover;filter:saturate(.92) contrast(1.03)}
.frame.is-missing img,.doc-preview.is-missing img,.logo-box.is-missing img{visibility:hidden}
.frame.is-missing,.doc-preview.is-missing{background:#E4E8E8 repeating-linear-gradient(135deg,rgba(89,100,106,.08) 0 1px,transparent 1px 10px)}
.frame.is-missing::after{content:attr(data-caption);position:absolute;left:16px;right:16px;bottom:14px;font-size:13px;
  line-height:1.4;color:var(--granite)}

/* ---------- about ---------- */
.about-name{grid-column:1/span 10;margin-top:28px;font-family:var(--font-serif);font-size:clamp(26px,2.6vw,38px);
  line-height:1.22;letter-spacing:-.01em;color:var(--ink);text-wrap:balance}
.about-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gx);row-gap:40px}
.about-text{grid-column:1/span 7}
.about-text p{font-family:var(--font-serif);font-size:clamp(17px,1.3vw,19px);line-height:1.72;max-width:38em}
.about-text p+p{margin-top:1.05em}
.about-text a{color:var(--ink)}
.about-aside{grid-column:9/span 4}
.areas-intro{font-size:15px;color:var(--granite)}
.areas{list-style:none;margin:14px 0 0;padding:0;border-top:1px solid var(--frost)}
.areas li{position:relative;padding:15px 0 15px 26px;border-bottom:1px solid var(--frost);font-size:16px;line-height:1.5}
.areas li::before{content:"";position:absolute;left:1px;top:27px;width:12px;height:1px;background:var(--ink)}
.equip{margin-top:22px;font-size:15px;line-height:1.55;color:var(--granite)}
.places{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gx);margin-top:clamp(56px,7vw,104px)}
.place h3{font-family:var(--font-serif);font-size:clamp(22px,1.8vw,26px);line-height:1.2;margin-bottom:18px}
.place-media{display:grid;gap:12px}
.frame.photo{aspect-ratio:3/2}
.frame.map{aspect-ratio:var(--ar,2.4);max-width:var(--nw,100%)}
.frame.map img{object-fit:contain;filter:none;background:#E9ECEC}
.contacts{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gx);row-gap:32px;
  margin-top:clamp(48px,6vw,88px);padding-top:32px;border-top:1px solid var(--frost)}
.c-item{grid-column:span 3}
.c-label{font-size:14px;color:var(--granite);margin-bottom:8px}
.c-value{font-size:16px;line-height:1.55}
.c-phone{display:inline-block;font-family:var(--font-serif);font-size:clamp(22px,1.9vw,27px);line-height:1.2;text-decoration:none}
.c-mail{display:inline-block;margin-top:8px;font-size:16px}
.c-phone:hover,.c-mail:hover{color:var(--ink)}
.c-hours{display:grid;gap:2px;font-size:16px;line-height:1.5}
.c-item .btn{margin-top:20px}

/* ---------- documents ---------- */
.docs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gx)}
.doc{display:grid;grid-template-columns:minmax(0,200px) minmax(0,1fr);gap:clamp(20px,3vw,36px);align-items:end;
  padding:clamp(20px,2.6vw,32px);background:var(--paper);border:1px solid var(--frost)}
.doc-preview{position:relative;aspect-ratio:1/1.414;background:#fff;overflow:hidden;
  box-shadow:0 1px 0 rgba(27,35,39,.06),0 22px 36px -20px rgba(22,55,94,.42)}
.doc-preview img{width:100%;height:100%;object-fit:cover;object-position:top}
.doc-name{font-family:var(--font-serif);font-size:clamp(19px,1.6vw,23px);line-height:1.3;margin-bottom:20px;overflow-wrap:anywhere}

/* ---------- customers ---------- */
.logos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  border-top:1px solid var(--frost);border-left:1px solid var(--frost)}
.logos li{display:flex;flex-direction:column;align-items:center;gap:18px;padding:30px 18px 20px;background:var(--paper);
  border-right:1px solid var(--frost);border-bottom:1px solid var(--frost)}
.logo-box{display:flex;align-items:center;justify-content:center;width:100%;height:92px}
.logo-box img{max-height:80px;max-width:100%;width:auto;height:auto;object-fit:contain;filter:grayscale(1);opacity:.72;
  transition:filter .35s ease,opacity .35s ease}
.logos li:hover .logo-box img{filter:none;opacity:1}
.logo-box.is-missing{background:repeating-linear-gradient(135deg,rgba(89,100,106,.07) 0 1px,transparent 1px 10px)}
.logo-name{font-size:13px;line-height:1.35;color:var(--granite);text-align:center}
.logo-name span{display:block}

/* ---------- footer ---------- */
.site-footer{background:var(--ink-deep);color:#C9D7E5}
.ftr{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gx);row-gap:36px;padding-block:72px 40px}
.ftr-name{grid-column:1/span 6;font-family:var(--font-serif);font-size:clamp(19px,1.6vw,23px);line-height:1.4;color:#EEF4F9;max-width:25em;text-wrap:balance}
.ftr-nav{grid-column:8/span 5;display:flex;flex-wrap:wrap;gap:12px 28px;align-content:start}
.ftr-nav a{text-decoration:none;color:#EEF4F9}
.ftr-nav a:hover{text-decoration:underline}
.ftr-copy{grid-column:1/-1;padding-top:24px;border-top:1px solid rgba(201,218,234,.16);font-size:14px;color:var(--ice-muted)}

/* ---------- test page ---------- */
.test-page{padding-block:clamp(36px,5vw,64px) var(--section)}
.test-page[hidden]{display:none}
.back{display:inline-flex;align-items:center;gap:10px;font-size:15px;text-decoration:none;color:var(--ink)}
.back svg{width:18px;height:18px}
.back:hover span{text-decoration:underline}
.tp-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gx);margin-top:32px}
.tp-head h1{grid-column:1/span 10;font-family:var(--font-serif);font-weight:400;font-size:clamp(32px,3.7vw,54px);
  line-height:1.08;letter-spacing:-.016em;text-wrap:balance}
.tp-head h1:focus{outline:none}
.gallery{display:flex;gap:14px;margin-top:clamp(36px,4vw,56px);max-width:calc(var(--gh,560px) * var(--sum,10) + 14px * (var(--n,1) - 1))}
.gallery .frame{flex:var(--ar,1) 1 0;aspect-ratio:var(--ar,1);min-width:0;cursor:zoom-in}
.gallery .frame:focus-visible{outline-offset:4px}
.tp-body{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gx);row-gap:48px;margin-top:clamp(48px,6vw,88px)}
.tp-text{grid-column:1/span 7}
.tp-side{grid-column:8/span 5}
.tp-side .plate{position:sticky;top:calc(var(--hdr) + 24px)}
.tp-h2{font-size:15px;font-weight:500;color:var(--granite);margin-bottom:18px}
.tp-text p,.tp-text li{font-family:var(--font-serif);font-size:clamp(17px,1.3vw,19px);line-height:1.72;max-width:38em}
.tp-text p+p,.tp-text ol+p,.tp-text p+ol{margin-top:1em}
.tp-text ol{margin:1em 0 0;padding-left:1.5em}
.tp-text ol li::marker{font-family:var(--font-sans);color:var(--granite)}
.tp-docs{margin-top:clamp(40px,5vw,64px)}
.tp-docs-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px}
.all-link{font-size:15px;color:var(--ink)}
.doc-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--frost)}
.doc-link{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center;padding:16px 0;
  border-bottom:1px solid var(--frost);text-decoration:none}
.doc-ico{width:30px;height:36px;color:var(--ink)}
.doc-link .dl{width:20px;height:20px;color:var(--granite);transition:transform .25s ease,color .25s ease}
.doc-link:hover .dl{transform:translateY(2px);color:var(--ink)}
.doc-link:hover .doc-file{color:var(--ink)}
.doc-file{font-size:16px;line-height:1.4;overflow-wrap:anywhere}
.others{margin-top:clamp(72px,9vw,128px)}
.others h2{font-family:var(--font-serif);font-size:clamp(28px,2.6vw,38px);line-height:1.1;margin-bottom:28px}
.others-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--frost);border-left:1px solid var(--frost)}
.other{display:flex;flex-direction:column;gap:10px;padding:18px 20px 22px;background:var(--paper);text-decoration:none;
  border-right:1px solid var(--frost);border-bottom:1px solid var(--frost)}
.other .scheme{--sym-display:none;margin-bottom:6px}
.other .gost{font-size:13px;color:var(--granite)}
.other .o-title{font-family:var(--font-serif);font-size:17px;line-height:1.32;transition:color .25s ease}
.other:hover .o-title{color:var(--ink)}

/* ---------- dialogs ---------- */
dialog{border:0;padding:0;background:transparent;max-width:none;max-height:none;color:var(--basalt)}
dialog::backdrop{background:rgba(14,40,70,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.fb{position:relative;width:min(520px,calc(100vw - 32px));background:var(--paper);padding:clamp(28px,4vw,44px)}
.fb h2{font-family:var(--font-serif);font-size:clamp(28px,3vw,34px);line-height:1.1;margin-bottom:28px;padding-right:40px}
.field{display:grid;gap:8px;margin-bottom:16px}
.field label{font-size:14px;color:var(--granite)}
.field input{height:50px;padding:0 14px;border:1px solid var(--frost);border-radius:2px;background:#fff;
  font:400 16px/1.2 var(--font-sans);color:var(--basalt)}
.field input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(22,55,94,.12)}
.fb-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;margin-top:28px}
.fb-done p{font-family:var(--font-serif);font-size:20px;line-height:1.55;padding-right:24px}
.fb-done .btn{margin-top:28px}
.x-btn{position:absolute;top:12px;right:12px;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;
  border:0;background:transparent;cursor:pointer;border-radius:2px;color:var(--granite)}
.x-btn:hover{color:var(--basalt)}
.x-btn svg{width:20px;height:20px}
.lb{width:100vw;height:100vh;background:transparent}
.lb[open]{display:flex;align-items:center;justify-content:center}
.lb::backdrop{background:rgba(9,22,38,.94)}
.lb img{max-width:min(92vw,1600px);max-height:84vh;width:auto;height:auto;object-fit:contain}
.lb .x-btn{color:#DCE6EF;top:18px;right:18px}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border:1px solid rgba(201,218,234,.35);
  border-radius:2px;background:rgba(9,22,38,.4);color:#EEF4F9;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.lb-nav:hover{border-color:#EEF4F9}
.lb-nav svg{width:22px;height:22px}
.lb-prev{left:18px}.lb-next{right:18px}
.lb.single .lb-nav{display:none}

@media (min-width:1021px){.test-link.is-active .t-title{color:var(--ink)}}

/* ---------- responsive ---------- */
.hdr-phone{display:none}
@media (max-width:1180px){
  .nav,.hdr > .btn{display:none}
  .menu-btn{display:inline-flex}
  body.menu-open .mnav{display:block}
}
@media (max-width:1020px){
  .hero-grid{grid-template-columns:1fr}
  .hero-text,.hero-figure{grid-column:1/-1}
  .hero-figure{margin-top:52px;max-width:720px}
  .section-title,.about-name,.tp-head h1{grid-column:1/-1}
  .explorer{grid-template-columns:1fr}
  .test-preview{display:none}
  .test-link{grid-template-columns:104px minmax(0,1fr);gap:4px 18px}
  .test-link .t-thumb{display:block;grid-column:1;grid-row:1/span 2;width:104px;background:var(--paper);
    border:1px solid var(--frost);padding:6px;--sym-display:none}
  .test-link .gost,.test-link .t-title{grid-column:2}
  .test-link .t-go,.test-link::before{display:none}
  .about-text,.about-aside{grid-column:1/-1}
  .places,.docs-grid{grid-template-columns:1fr}
  .c-item{grid-column:span 6}
  .tp-text,.tp-side{grid-column:1/-1}
  .tp-side .plate{position:relative;top:auto;max-width:640px}
  .others-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ftr-name,.ftr-nav{grid-column:1/-1}
}
@media (max-width:620px){
  :root{--hdr:68px}
  body{font-size:16px}
  .brand-logo{height:38px;width:38px}
  .brand-name{font-size:14.5px}
  .brand-name .bn-2{font-size:11.5px}
  .hero-actions .btn{flex:1 1 auto}
  .c-item{grid-column:1/-1}
  .doc{grid-template-columns:96px minmax(0,1fr);gap:18px}
  .doc-name{font-size:18px}
  .gallery{max-width:none}
  .gallery{flex-direction:column}
  .gallery .frame{flex:none;width:100%}
  .others-grid{grid-template-columns:1fr}
  .test-link{grid-template-columns:84px minmax(0,1fr);gap:4px 14px}
  .test-link .t-thumb{width:84px}
}

/* ---------- полное название: три строки, первая главная ---------- */
.fn>span{display:block}
.fn{text-wrap:balance}
.hero-name .fn-1{font-family:var(--font-serif);font-size:clamp(19px,1.5vw,22px);line-height:1.3;color:#EEF3F8;margin-bottom:4px}
.about-name .fn-2,.about-name .fn-3{font-family:var(--font-sans);font-size:max(15px,.5em);line-height:1.45;letter-spacing:0;color:var(--granite)}
.about-name .fn-2{margin-top:.5em}
.ftr-name .fn-1{margin-bottom:2px}
.ftr-name .fn-2,.ftr-name .fn-3{font-family:var(--font-sans);font-size:15px;line-height:1.5;color:var(--ice-muted)}
.hero h1.fn{font-size:clamp(34px,3.7vw,56px);line-height:1.06}
.hero h1 .fn-2,.hero h1 .fn-3{font-family:var(--font-sans);font-size:max(17px,.42em);line-height:1.4;letter-spacing:0;color:var(--ice-muted)}
.hero h1 .fn-2{margin-top:.7em}
@media (min-width:621px){.brand-name .bn-1{white-space:nowrap}}

/* ---------- первый экран: факты, основная надпись, указатель испытаний ---------- */
.hero-grid{align-items:start;padding-bottom:0}
.hero-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--gx);margin:34px 0 0;max-width:640px}
.hero-facts>div{padding:14px 0 16px;border-top:1px solid rgba(201,218,234,.22)}
.hero-facts dt{font-size:13.5px;color:var(--ice-muted)}
.hero-facts dd{margin:4px 0 0;font-size:15px;line-height:1.45;color:#EEF3F8}
.hero-facts a,.stamp a{color:#F4F7FA;text-decoration:underline;text-decoration-color:rgba(244,247,250,.35);text-underline-offset:3px}
.hero-facts a:hover,.stamp a:hover{text-decoration-color:currentColor}
.hero-actions{margin-top:30px}
.hero-actions .btn .dl{width:18px;height:18px;margin-left:10px}
.hero-side{grid-column:7/span 6;display:flex;flex-direction:column}
.hero-side .hero-figure{grid-column:auto}
.stamp{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin:0;border:1px solid rgba(201,218,234,.3);border-top:0;
  background:rgba(255,255,255,.025)}
.stamp>div{padding:11px 14px 12px;border-top:1px solid rgba(201,218,234,.3)}
.stamp>div+div{border-left:1px solid rgba(201,218,234,.3)}
.stamp dt{font-size:12.5px;color:var(--ice-muted)}
.stamp dd{margin:3px 0 0;font-size:14.5px;line-height:1.45;color:#EEF3F8}
.st-phone,.st-mail{grid-column:span 2}
.st-hours{grid-column:span 2}
.st-fact,.st-post{grid-column:span 3}
.stamp .st-fact{border-left:0}
.st-phone dd .num{font-size:16px;text-decoration:none}
.hero-index{margin-top:clamp(48px,6vw,80px);padding-bottom:clamp(48px,6vw,88px)}
.hi-cap{font-size:14px;color:var(--ice-muted);margin:0 0 6px}
.hero-index ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--gx)}
.hero-index li{border-top:1px solid rgba(201,218,234,.22)}
.hero-index a{display:block;padding:14px 0 16px;text-decoration:none;color:#EEF3F8}
.hi-gost{display:block;font-size:13px;color:var(--ice-muted);font-variant-numeric:tabular-nums}
.hi-title{display:block;margin-top:4px;font-family:var(--font-serif);font-size:16.5px;line-height:1.35}
.hero-index a:hover .hi-title{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.hero-index a:hover .hi-gost{color:var(--amber)}
@media (max-width:1020px){
  .hero-side{grid-column:1/-1;margin-top:48px;max-width:720px}
  .hero-side .hero-figure{margin-top:0}
  .hero-index ul{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:620px){
  .hero-facts{grid-template-columns:1fr}
  .hero-side .hero-figure{display:none}
  .hero-side{margin-top:36px}
  .stamp{border-top:1px solid rgba(201,218,234,.3)}
  .stamp>div:first-child{border-top:0}
  .stamp{grid-template-columns:1fr}
  .stamp>div{grid-column:1/-1!important;border-left:0!important}
  .hero-index ul{grid-template-columns:1fr}
}

/* первый экран — примерно в высоту экрана */
.hero-grid{padding-top:clamp(36px,4.6vw,64px)}
.hero-side{padding-bottom:clamp(40px,5vw,64px)}
.hero-text{padding-bottom:clamp(40px,5vw,64px)}
.hero h1.fn{font-size:clamp(32px,3.2vw,48px)}
.hero-lead{font-size:clamp(17px,1.25vw,19px);margin-top:16px}
.hero-facts{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:26px}
.hero-facts dd{font-size:14.5px}
.hero-actions{margin-top:24px}
.st-fact{grid-column:1/-1!important;border-left:0!important}
.stamp .st-fact dd{max-width:none}
.hero-facts{grid-template-columns:minmax(0,.8fr) minmax(0,1.35fr) minmax(0,.85fr)}
@media (max-width:620px){.hero-facts{grid-template-columns:1fr}}


/* анимация пресса без оформления чертежа */
.hero-side .hero-figure{display:flex;justify-content:center;padding:6px 0 22px}
.hero-figure .press-anim{width:auto;height:clamp(280px,26vw,360px);max-width:100%}
.stamp{border-top:1px solid rgba(201,218,234,.3)}
.stamp>.st-phone,.stamp>.st-mail,.stamp>.st-hours{border-top:0}
@media (max-width:620px){.hero-side .hero-figure{display:none}.stamp>.st-mail,.stamp>.st-hours{border-top:1px solid rgba(201,218,234,.3)}}

/* анимация: после разрушения пресс уезжает вправо, слева появляется описание испытания */
.hero-side .hero-figure{--ph:clamp(280px,26vw,360px);--pw:calc(var(--ph) * .801);--gap:28px;
  container-type:inline-size;position:relative;display:flex;justify-content:flex-end;align-items:center;padding:6px 0 22px}
.hero-figure .press-anim{flex:none;height:var(--ph);width:var(--pw);max-width:none;
  transform:translateX(calc((100cqw - var(--pw)) / -2));animation:press-shift 1s cubic-bezier(.65,0,.25,1) 4.3s forwards}
@keyframes press-shift{to{transform:translateX(0)}}
.press-note{position:absolute;left:0;top:50%;width:calc(100cqw - var(--pw) - var(--gap));
  opacity:0;transform:translate(-14px,-50%);animation:note-in .8s ease 5s forwards}
@keyframes note-in{to{opacity:1;transform:translate(0,-50%)}}
.pn-gost{margin:0;font-size:13px;color:var(--amber);font-variant-numeric:tabular-nums}
.pn-title{margin:6px 0 0;font-family:var(--font-serif);font-size:clamp(17px,1.35vw,20px);line-height:1.3;color:#F4F7FA}
.press-note dl{margin:14px 0 0}
.press-note dl>div{padding:8px 0 9px;border-top:1px solid rgba(201,218,234,.2)}
.press-note dt{font-size:12.5px;color:var(--ice-muted)}
.press-note dd{margin:2px 0 0;font-size:14px;line-height:1.45;color:#EEF3F8}
@media (prefers-reduced-motion:reduce){
  .hero-figure .press-anim{animation:none;transform:none}
  .press-note{animation:none;opacity:1;transform:translateY(-50%)}
}

/* ---------- multi-page additions ---------- */
.skip-link{position:absolute;left:12px;top:-64px;z-index:100;padding:10px 16px;border-radius:2px;background:var(--ink);
  color:#fff;text-decoration:none;font-size:15px;transition:top .2s ease}
.skip-link:focus{top:12px}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;row-gap:6px;font-size:15px}
.crumbs li{display:inline-flex;align-items:center}
.crumbs li+li::before{content:"";width:16px;height:1px;margin:0 12px;background:var(--granite);opacity:.55}
.crumbs a{color:var(--ink);text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.nf{min-height:52vh}
.nf .section-title{margin-bottom:40px}
.nf-links{display:flex;flex-wrap:wrap;gap:12px}

/* ---------- feedback form ---------- */
.fb{max-height:calc(100dvh - 32px);overflow:auto}
.field label .opt{color:#7E8B94;font-size:13px;margin-left:6px}
.field textarea{min-height:112px;padding:12px 14px;border:1px solid var(--frost);border-radius:2px;background:#fff;resize:vertical;
  font:400 16px/1.45 var(--font-sans);color:var(--basalt)}
.field textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(22,55,94,.12)}
.field [aria-invalid="true"]{border-color:#A8382A}
.field [aria-invalid="true"]:focus{box-shadow:0 0 0 3px rgba(168,56,42,.14)}
.field-err{margin:0;font-size:13.5px;line-height:1.4;color:#A8382A}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.fb-captcha{margin-top:8px}
.fb-captcha:empty{display:none}
.fb-status{margin:16px 0 0;padding:12px 14px;border-left:3px solid #A8382A;background:#F8EEEC;font-size:14.5px;line-height:1.45;color:#5E1F17}
.fb-actions .btn[disabled]{opacity:.6;cursor:progress}

/* ---------- заказ на странице испытания ---------- */
.tp-side{display:flex;flex-direction:column;gap:24px;align-items:stretch}
.tp-side .plate{position:relative;top:auto}
.order{background:var(--paper);border:1px solid var(--frost);padding:26px 28px 8px}
.order-h{font-family:var(--font-serif);font-weight:400;font-size:26px;line-height:1.15;margin:0}
.order-test{margin:10px 0 0;font-size:14.5px;line-height:1.45;color:var(--granite)}
.order-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.order-actions .btn{flex:1 1 auto;justify-content:center}
.order-actions .btn .dl{width:18px;height:18px;margin-left:10px}
.order-contacts{display:grid;grid-template-columns:1fr 1fr;margin:22px 0 0}
.order-contacts>div{padding:12px 0 14px;border-top:1px solid var(--frost)}
.order-contacts>div:nth-child(odd){padding-right:16px}
.order-contacts>div:nth-child(n+3){grid-column:1/-1}
.order-contacts dt{font-size:13px;color:var(--granite)}
.order-contacts dd{margin:3px 0 0;font-size:15px;line-height:1.45}
.order-contacts a{color:var(--ink)}
.tp-cta{display:none}
.tp-cta-phone,.order-contacts .num{white-space:nowrap}
.fb-topic{margin:-16px 0 22px;padding:10px 14px;border-left:3px solid var(--ink);background:var(--snow);font-size:15px;line-height:1.45}
@media (max-width:1020px){
  .order{max-width:640px}
  .tp-cta{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;margin-top:22px}
  .tp-cta-phone{font-size:17px;text-decoration:none;color:var(--ink)}
}
@media (max-width:620px){.order-contacts{grid-template-columns:1fr}.order-contacts>div{grid-column:1/-1;padding-right:0!important}}

/* схема испытания — первое изображение галереи */
.gallery .frame-scheme{cursor:default;background:var(--paper)}
.frame-scheme .plate{height:100%;display:flex;align-items:center;justify-content:center;padding:5% 7% 15%;border-color:var(--frost)}
.frame-scheme .plate .scheme{width:100%;height:100%;max-width:none}
@media (max-width:620px){.gallery .frame-scheme{aspect-ratio:1.3}}

/* e-mail или телефон */
.fb-contact{margin:0 0 16px;padding:14px 16px 2px;border:1px solid var(--frost);border-radius:2px;min-width:0}
.fb-contact legend{padding:0 6px;margin-left:-6px;font-size:14px;color:var(--basalt)}
.fb-hint{margin:0 0 12px;font-size:13.5px;line-height:1.45;color:var(--granite)}
.fb-contact .field{margin-bottom:12px}
.fb-contact #fb-contact-err{margin:-4px 0 12px}
/* ---------- текст из редактора (Trix) на странице испытания ---------- */
/* весь текст описания — шрифтом с засечками, как остальной основной текст сайта */
.tp-text{font-family:var(--font-serif);font-size:clamp(17px,1.3vw,19px);line-height:1.72;color:var(--basalt)}
.tp-text :is(div,p,li,blockquote,figcaption){font-family:inherit;max-width:38em}
/* служебные блоки внутри .tp-text остаются рубленым шрифтом */
.tp-text .tp-h2,.tp-text .tp-docs{font-family:var(--font-sans);line-height:1.55}
.tp-text .tp-docs{font-size:16px}

/* отступы между блоками (Trix делает абзацы через <div>) */
:is(.tp-text,.tp-text .trix-content)>:is(p,div,ul,ol,blockquote,pre,figure,h1,h2,h3)+:is(p,div,ul,ol,blockquote,pre,figure){margin-top:1em}

/* заголовки внутри текста; кнопка «Heading» в Trix даёт <h1> — оформляем как подраздел */
.tp-text :is(h1,h2,h3):not(.tp-h2){font-family:var(--font-serif);font-weight:400;font-size:clamp(22px,1.8vw,26px);
  line-height:1.25;letter-spacing:-.01em;color:var(--ink);margin:1.6em 0 .55em;max-width:30em}
.tp-text h3:not(.tp-h2){font-size:clamp(19px,1.45vw,21px)}

/* маркированный список — короткая черта, как в разделе «О нас» */
.tp-text ul{list-style:none;margin:1em 0 0;padding:0}
.tp-text ul>li{position:relative;padding-left:26px}
.tp-text ul>li::before{content:"";position:absolute;left:1px;top:.86em;width:12px;height:1px;background:var(--ink)}
.tp-text ol{margin:1em 0 0;padding-left:1.5em}
.tp-text li+li{margin-top:.45em}
.tp-text li>:is(ul,ol){margin-top:.45em}

/* ссылки и выделение в тексте (кнопки и ссылки на документы с классами не трогаем) */
.tp-text a:not([class]){color:var(--ink);text-decoration:underline;text-decoration-color:rgba(22,55,94,.35);text-underline-offset:.18em}
.tp-text a:not([class]):hover{text-decoration-color:currentColor}
.tp-text :is(strong,b){font-weight:600}

/* цитата */
.tp-text blockquote{margin:1.4em 0 0;padding:.9em 1.2em .9em 1.4em;border-left:2px solid var(--ink);
  background:linear-gradient(90deg,rgba(22,55,94,.055),rgba(22,55,94,0) 75%);font-size:1.05em;line-height:1.6;color:#2B363C}
.tp-text blockquote+*{margin-top:1.4em}

/* код и вложения Trix */
.tp-text pre{margin:1em 0 0;padding:12px 14px;border:1px solid var(--frost);background:var(--paper);
  font:14px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-x:auto;max-width:38em}
.tp-text figure.attachment{margin:1.4em 0 0}
.tp-text figure.attachment img{max-width:100%;height:auto}
.tp-text .attachment__caption,.tp-text figcaption{margin-top:8px;font-family:var(--font-sans);font-size:13px;color:var(--granite)}

/* ---------- блок «Заказать испытание» всегда в поле зрения ---------- */
/* компьютер: слева заголовок, фото, описание и другие испытания,
   справа блок заказа, который прилипает к верху окна до конца страницы */
   @media (min-width:1021px){
     .tp-body{align-items:stretch}
     .tp-side .order{position:sticky;top:calc(var(--hdr) + 24px);max-height:calc(100vh - var(--hdr) - 48px);overflow-y:auto}
   }
/* телефон и планшет: панель с кнопкой и телефоном закреплена внизу экрана */
@media (max-width:1020px){
  .tp-cta{position:fixed;left:0;right:0;bottom:0;z-index:35;margin:0;display:flex;flex-wrap:nowrap;align-items:center;
    justify-content:space-between;gap:12px 18px;padding:10px var(--gx) calc(10px + env(safe-area-inset-bottom));
    background:rgba(241,243,242,.96);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--frost)}
  .tp-cta .btn{flex:1 1 auto;min-height:46px;padding:0 16px}
  .tp-cta-phone{flex:none;font-size:15px}
  body:has(.tp-cta){padding-bottom:calc(68px + env(safe-area-inset-bottom))}
}
/* узкие экраны: название в шапке переносится, кнопка меню не уезжает за край */
@media (max-width:620px){.hdr .brand{flex:1 1 auto;min-width:0}.hdr .brand-name{max-width:none}}