/* ==========================================================================
   Primionics — Cleanroom Qualification & Controlled Environment Validation
   Editorial, application-led layout system for the cleanroom solution family.
   Extends the shared .ss-* / .se-* solutions grammar; does not replace it.
   Typography floor is deliberately higher than the shared solutions module:
   technical content must stay readable (body 16–18px, tables 14–16px).
   ========================================================================== */

.cq{
  --cq-navy:var(--n0,#0f2238);
  --cq-navy-2:var(--n1,#1a3557);
  --cq-blue:var(--n2,#24487a);
  --cq-orange:var(--o2,#e5551a);
  --cq-orange-dark:var(--o1,#c8420f);
  --cq-text:var(--t2,#2d4762);
  --cq-muted:var(--t3,#587292);
  --cq-line:#dfe6ee;
  --cq-line-strong:#c9d5e3;
  --cq-soft:#f4f7fa;
  --cq-paper:#eef2f8;
  --cq-gap:clamp(28px,3vw,48px);
}

/* Body / caption / eyebrow floors ---------------------------------------- */
.cq p,.cq li{font-size:16.5px;line-height:1.75;color:var(--cq-text)}
.cq .cq-lead{font-size:18px;line-height:1.68}
.cq figcaption{font-size:13.5px;line-height:1.6;color:var(--cq-muted)}
.cq .cq-eyebrow,.cq span.cq-eyebrow{
  display:block;margin-bottom:12px;color:var(--cq-orange-dark);
  font-family:var(--f-mono,'JetBrains Mono',monospace);
  font-size:11.5px!important;font-weight:700;letter-spacing:.16em;text-transform:uppercase;line-height:1.5;
}
.cq h2{font-family:var(--f-head,'Plus Jakarta Sans',sans-serif);color:var(--cq-navy);font-size:clamp(30px,3.4vw,46px);font-weight:650;line-height:1.12;letter-spacing:-.025em;margin:0 0 18px}
.cq h3{font-family:var(--f-head,'Plus Jakarta Sans',sans-serif);color:var(--cq-navy);font-size:clamp(20px,2vw,25px);font-weight:650;line-height:1.28;letter-spacing:-.015em;margin:0 0 12px}
.cq h4{font-family:var(--f-head,'Plus Jakarta Sans',sans-serif);color:var(--cq-navy);font-size:17px;font-weight:650;line-height:1.35;margin:0 0 8px}
.cq .cq-section-intro{max-width:78ch}

/* ---------------------------------------------------------------- Hero -- */
.cq-hero{position:relative;overflow:hidden;background:var(--cq-navy);color:#fff;padding:clamp(56px,6vw,88px) 0 0}
.cq-hero__grid{display:grid;grid-template-columns:minmax(0,55fr) minmax(320px,45fr);gap:clamp(40px,5vw,80px);align-items:center}
.cq-hero__copy{padding-bottom:clamp(48px,5vw,72px)}
.cq-hero .cq-eyebrow{color:#ff8b5b}
.cq-hero h1{
  max-width:16ch;margin:0 0 22px;color:#fff;
  font-family:var(--f-head,'Plus Jakarta Sans',sans-serif);
  font-size:clamp(38px,4.6vw,64px);font-weight:700;line-height:1.05;letter-spacing:-.035em;
}
.cq-hero__lead{max-width:62ch;margin:0 0 30px;color:#dbe7f1;font-size:18px;line-height:1.66}
.cq-hero__actions{display:flex;flex-wrap:wrap;gap:12px}
.cq-hero__visual{position:relative;align-self:stretch;display:flex;flex-direction:column;justify-content:flex-end;min-height:340px;padding-bottom:0}
.cq-hero__main{position:relative;height:clamp(300px,30vw,430px);overflow:hidden;border-left:1px solid rgba(255,255,255,.22)}
.cq-hero__main img{width:100%;height:100%;object-fit:cover;filter:saturate(.84) contrast(1.05)}
.cq-hero__inset{
  position:absolute;right:0;bottom:64px;width:clamp(150px,42%,216px);
  overflow:hidden;border:3px solid var(--cq-navy);box-shadow:0 12px 34px rgba(0,0,0,.34);
}
.cq-hero__inset img{display:block;width:100%;height:clamp(104px,13vw,150px);object-fit:cover;filter:saturate(.8) contrast(1.04)}
.cq-hero__inset figcaption,.cq-hero__main figcaption{
  padding:8px 12px;background:rgba(15,34,56,.94);color:#cddced;
  font-size:12.5px;line-height:1.45;letter-spacing:.01em;
}
.cq-hero__main figcaption{position:absolute;right:0;bottom:0;left:0;max-width:none}
.cq-hero__labels{
  grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px 26px;
  padding:16px 0;border-top:1px solid rgba(255,255,255,.16);
  color:#9fb4c8;font-family:var(--f-mono,'JetBrains Mono',monospace);
  font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;
}
.cq-hero__labels span{white-space:nowrap}

/* ----------------------------------------------------------- Sections -- */
.cq-section{padding:clamp(44px,4vw,66px) 0;background:#fff}
.cq-section--soft{background:var(--cq-soft)}
.cq-section--deep{background:var(--cq-navy);color:#fff}
.cq-section--deep h2,.cq-section--deep h3{color:#fff}
.cq-section--deep p,.cq-section--deep li{color:#cbdae7}
.cq-section--tight{padding:clamp(32px,2.8vw,44px) 0}
.cq-head{max-width:86ch;margin-bottom:clamp(22px,2.4vw,34px)}
.cq-head h2{max-width:22ch}
.cq-head .cq-lead{margin:0}

/* ------------------------------------------- Editorial media / content -- */
.cq-split{display:grid;gap:var(--cq-gap);align-items:center}
.cq-split--55{grid-template-columns:minmax(0,55fr) minmax(0,45fr)}
.cq-split--45{grid-template-columns:minmax(0,45fr) minmax(0,55fr)}
.cq-split--60{grid-template-columns:minmax(0,60fr) minmax(0,40fr)}
.cq-split--70{grid-template-columns:minmax(0,70fr) minmax(0,30fr)}
.cq-split--start{align-items:start}
.cq-split__body>*:last-child{margin-bottom:0}

.cq-figure{margin:0;background:var(--cq-soft);border:1px solid var(--cq-line)}
.cq-figure img{display:block;width:100%;height:auto;background:#fff}
.cq-figure--photo img{aspect-ratio:16/9;object-fit:cover}
.cq-figure--square img{aspect-ratio:4/3;object-fit:cover}
.cq-figure--product{background:#fff}
.cq-figure--product img{aspect-ratio:4/3;object-fit:contain;padding:22px}
.cq-figure--diagram{background:#fff}
.cq-figure--diagram img{aspect-ratio:auto;object-fit:contain;padding:8px}
.cq-figure figcaption{padding:13px 18px;border-top:1px solid var(--cq-line);background:#fff}
.cq-figure--inset{max-width:340px}

/* --------------------------------------------- Five primary methods ----- */
.cq-methods{border-top:1px solid var(--cq-line-strong);counter-reset:cq-method}
.cq-method{
  display:grid;grid-template-columns:76px minmax(0,32%) minmax(0,1fr) auto;
  gap:0 32px;align-items:baseline;
  padding:28px 0;border-bottom:1px solid var(--cq-line);
  color:inherit;text-decoration:none;counter-increment:cq-method;
  transition:background-color .18s,box-shadow .18s;
}
a.cq-method:hover{background:var(--cq-soft);box-shadow:inset 4px 0 var(--cq-orange)}
a.cq-method:focus-visible{outline:3px solid rgba(36,72,122,.34);outline-offset:3px}
.cq-method::before{
  content:"0" counter(cq-method);
  color:var(--cq-orange-dark);font-family:var(--f-mono,monospace);
  font-size:12px;font-weight:700;letter-spacing:.1em;
}
.cq-method h3{margin:0;font-size:21px}
.cq-method p{margin:0;font-size:15.5px;line-height:1.68;color:var(--cq-text)}
.cq-method__go{
  align-self:center;color:var(--cq-orange-dark);
  font-family:var(--f-head,sans-serif);font-size:13.5px;font-weight:650;white-space:nowrap;
  transition:transform .18s;
}
a.cq-method:hover .cq-method__go{transform:translateX(4px)}

/* ------------------------------------ Qualification vs monitoring duo --- */
.cq-duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border:1px solid var(--cq-line-strong);background:#fff}
.cq-duo>div{padding:clamp(28px,3vw,44px)}
.cq-duo>div+div{border-left:1px solid var(--cq-line-strong)}
.cq-duo h3{font-size:24px}
.cq-duo__tag{
  display:inline-block;margin-bottom:14px;padding:6px 11px;
  background:var(--cq-paper);color:var(--cq-blue);
  font-family:var(--f-mono,monospace);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
}
.cq-duo p{font-size:15.5px}
.cq-duo__std{margin-top:18px;padding-top:16px;border-top:1px solid var(--cq-line)}
.cq-duo__std b{display:block;color:var(--cq-navy);font-size:14.5px}
.cq-duo__std span{display:block;margin-top:4px;color:var(--cq-muted);font-size:13.5px;line-height:1.55}

/* ---------------------------------------------- Editorial focus rows ---- */
.cq-focus{margin:0;padding:0;list-style:none;border-top:1px solid var(--cq-line)}
.cq-focus li{
  display:grid;grid-template-columns:minmax(0,34%) minmax(0,1fr);gap:8px 28px;
  padding:16px 0;border-bottom:1px solid var(--cq-line);font-size:15.5px;
}
.cq-focus li>b{color:var(--cq-navy);font-family:var(--f-head,sans-serif);font-size:15.5px;font-weight:650}
.cq-focus li>span{color:var(--cq-text);line-height:1.65}

/* ------------------------------------------------- Technical sequence -- */
.cq-flow{display:flex;flex-wrap:wrap;align-items:stretch;gap:0;margin:0 0 28px;border:1px solid var(--cq-line-strong);background:#fff}
.cq-flow__step{
  position:relative;flex:1 1 160px;min-width:150px;padding:20px 24px 20px 22px;
  border-right:1px solid var(--cq-line);
}
.cq-flow__step:last-child{border-right:0}
.cq-flow__step small{
  display:block;margin-bottom:7px;color:var(--cq-orange-dark);
  font-family:var(--f-mono,monospace);font-size:10.5px;font-weight:700;letter-spacing:.13em;
}
.cq-flow__step strong{display:block;color:var(--cq-navy);font-family:var(--f-head,sans-serif);font-size:14.5px;font-weight:650;line-height:1.4}
.cq-flow__step:not(:last-child)::after{
  content:"→";position:absolute;top:50%;right:-10px;z-index:1;
  width:20px;height:20px;display:grid;place-items:center;
  background:#fff;color:var(--cq-blue);font-size:15px;transform:translateY(-50%);
}
.cq-section--soft .cq-flow__step:not(:last-child)::after{background:#fff}

/* Vertical mini architecture used inside teasers */
.cq-miniflow{margin:0;padding:0;list-style:none;border:1px solid var(--cq-line-strong);background:#fff}
.cq-miniflow li{
  position:relative;padding:15px 20px;border-bottom:1px solid var(--cq-line);
  color:var(--cq-navy);font-family:var(--f-head,sans-serif);font-size:14.5px;font-weight:650;
}
.cq-miniflow li:last-child{border-bottom:0}
.cq-miniflow li span{display:block;margin-top:3px;color:var(--cq-muted);font-family:var(--f-body,sans-serif);font-size:13px;font-weight:400;line-height:1.5}
.cq-miniflow li+li::before{
  content:"↓";position:absolute;top:-11px;left:20px;
  width:22px;height:22px;display:grid;place-items:center;
  background:#fff;color:var(--cq-blue);font-size:13px;
}

/* ------------------------------------------------------------ Tables --- */
.cq-table-wrap{
  position:relative;overflow-x:auto;-webkit-overflow-scrolling:touch;
  border:1px solid var(--cq-line-strong);background:#fff;
}
.cq-table{width:100%;min-width:720px;border-collapse:collapse;background:#fff}
.cq-table caption{
  padding:20px 22px;border-bottom:1px solid var(--cq-line);
  color:var(--cq-muted);font-size:14px;line-height:1.65;text-align:left;
}
.cq-table th,.cq-table td{
  padding:15px 20px;border-bottom:1px solid var(--cq-line);
  font-size:15px;line-height:1.6;text-align:left;vertical-align:top;
}
.cq-table thead th{
  position:sticky;top:0;z-index:2;
  background:var(--cq-navy);color:#fff;
  font-family:var(--f-head,sans-serif);font-size:14px;font-weight:650;
  letter-spacing:.01em;white-space:nowrap;
}
.cq-table tbody th{
  color:var(--cq-navy);font-family:var(--f-head,sans-serif);font-weight:650;
  background:#fff;white-space:nowrap;
}
.cq-table tbody tr:nth-child(even) th,.cq-table tbody tr:nth-child(even) td{background:#f8fafc}
.cq-table tbody tr:last-child th,.cq-table tbody tr:last-child td{border-bottom:0}
.cq-table--num td+td,.cq-table--num th+th{text-align:right}
.cq-table--num td:last-child,.cq-table--num th:last-child{text-align:left}
.cq-table td em{color:var(--cq-muted);font-style:normal}
.cq-table a{color:var(--cq-orange-dark);font-weight:650}
.cq-table__note{margin:14px 0 0;font-size:14px;line-height:1.65;color:var(--cq-muted)}
.cq-table__scrollhint{
  display:none;margin:10px 0 0;color:var(--cq-muted);
  font-family:var(--f-mono,monospace);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;
}

/* Sticky first column keeps the row identity visible while scrolling */
@media(max-width:900px){
  .cq-table th:first-child,.cq-table td:first-child{
    position:sticky;left:0;z-index:1;
    box-shadow:1px 0 0 var(--cq-line-strong);
  }
  .cq-table thead th:first-child{z-index:3}
  .cq-table__scrollhint{display:block}
}

/* --------------------------------------------------------- Callouts ---- */
.cq-callout{
  margin:26px 0 0;padding:22px 26px;
  border-left:4px solid var(--cq-orange);background:var(--cq-soft);
}
.cq-callout--strong{background:var(--cq-navy);border-left-color:var(--cq-orange)}
.cq-callout--strong,.cq-callout--strong p{color:#dbe7f1}
.cq-callout--strong b,.cq-callout--strong strong{color:#fff}
.cq-callout p{margin:0;font-size:15.5px;line-height:1.7}
.cq-callout p+p{margin-top:12px}
.cq-callout__label{
  display:block;margin-bottom:9px;color:var(--cq-orange-dark);
  font-family:var(--f-mono,monospace);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
}
.cq-callout--strong .cq-callout__label{color:#ff8b5b}

.cq-interval{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:20px 0 0;background:var(--cq-line-strong);border:1px solid var(--cq-line-strong)}
.cq-interval div{padding:20px 22px;background:#fff}
.cq-interval b{display:block;color:var(--cq-navy);font-family:var(--f-head,sans-serif);font-size:15px;font-weight:650}
.cq-interval strong{display:block;margin-top:6px;color:var(--cq-orange-dark);font-family:var(--f-head,sans-serif);font-size:22px;font-weight:700;letter-spacing:-.01em}

/* ----------------------------------------------------- Deep-page teaser  */
.cq-teaser{display:grid;grid-template-columns:minmax(0,58fr) minmax(0,42fr);gap:var(--cq-gap);align-items:center}
.cq-teaser--reverse .cq-teaser__media{order:2}
.cq-teaser__body>h2{margin-top:0}
.cq-teaser__cta{
  display:inline-flex;align-items:center;gap:9px;margin-top:22px;
  padding-bottom:5px;border-bottom:2px solid var(--cq-orange);
  color:var(--cq-orange-dark);font-family:var(--f-head,sans-serif);font-size:15px;font-weight:650;text-decoration:none;
  transition:gap .18s;
}
.cq-teaser__cta:hover{gap:15px}

/* ------------------------------------------------- Technology rows ----- */
.cq-techrows{border-top:1px solid var(--cq-line-strong)}
.cq-techrow{
  display:grid;grid-template-columns:96px minmax(0,26%) minmax(0,1fr) auto;
  gap:0 28px;align-items:center;
  padding:18px 0;border-bottom:1px solid var(--cq-line);
  color:inherit;text-decoration:none;transition:background-color .18s,box-shadow .18s;
}
a.cq-techrow:hover{background:var(--cq-soft);box-shadow:inset 4px 0 var(--cq-orange)}
a.cq-techrow:focus-visible{outline:3px solid rgba(36,72,122,.34);outline-offset:3px}
.cq-techrow__img{display:grid;place-items:center;height:72px;padding:6px;background:#fff;border:1px solid var(--cq-line)}
.cq-techrow__img img{max-width:100%;max-height:60px;object-fit:contain}
.cq-techrow b{color:var(--cq-navy);font-family:var(--f-head,sans-serif);font-size:16.5px;font-weight:650;line-height:1.35}
.cq-techrow b small{display:block;margin-top:3px;color:var(--cq-muted);font-family:var(--f-mono,monospace);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.cq-techrow span{color:var(--cq-text);font-size:15px;line-height:1.62}
.cq-techrow i{
  font-style:normal;color:var(--cq-orange-dark);
  font-family:var(--f-head,sans-serif);font-size:13.5px;font-weight:650;white-space:nowrap;transition:transform .18s;
}
a.cq-techrow:hover i{transform:translateX(4px)}

/* --------------------------------------------------- Product routing --- */
.cq-routes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;border:1px solid var(--cq-line-strong);background:var(--cq-line-strong)}
.cq-route{
  display:block;padding:24px 26px;background:#fff;color:inherit;text-decoration:none;
  transition:background-color .18s,box-shadow .18s;
}
a.cq-route:hover{background:var(--cq-soft);box-shadow:inset 4px 0 var(--cq-orange)}
a.cq-route:focus-visible{outline:3px solid rgba(36,72,122,.34);outline-offset:-3px}
.cq-route small{
  display:block;margin-bottom:8px;color:var(--cq-muted);
  font-family:var(--f-mono,monospace);font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
}
.cq-route strong{display:block;color:var(--cq-navy);font-family:var(--f-head,sans-serif);font-size:17px;font-weight:650;line-height:1.35}
.cq-route span{display:block;margin-top:7px;color:var(--cq-text);font-size:14.5px;line-height:1.6}
.cq-route i{display:block;margin-top:12px;font-style:normal;color:var(--cq-orange-dark);font-family:var(--f-head,sans-serif);font-size:13.5px;font-weight:650}

/* ---------------------------------------------------------- Gallery ---- */
.cq-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.cq-gallery figure{margin:0;border:1px solid var(--cq-line);background:#fff}
.cq-gallery img{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;padding:18px;background:#fff}
.cq-gallery figcaption{padding:13px 17px;border-top:1px solid var(--cq-line);font-size:13.5px;line-height:1.55}

/* -------------------------------------------------------- Resources ---- */
.cq-resources{border-top:1px solid var(--cq-line-strong)}
.cq-resource{
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:18px 0;border-bottom:1px solid var(--cq-line);
  color:var(--cq-navy);font-family:var(--f-head,sans-serif);font-size:16px;font-weight:650;text-decoration:none;
  transition:color .18s,padding-left .18s;
}
.cq-resource:hover{color:var(--cq-orange-dark);padding-left:8px}
.cq-resource span{color:var(--cq-orange-dark);font-size:14px;white-space:nowrap}

/* ------------------------------------------------------- Back-link ----- */
.cq-backlink{
  display:inline-flex;align-items:center;gap:10px;
  color:var(--cq-orange-dark);font-family:var(--f-head,sans-serif);font-size:14.5px;font-weight:650;text-decoration:none;
}
.cq-backlink:hover{text-decoration:underline}
.cq-related{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;border:1px solid var(--cq-line-strong);background:var(--cq-line-strong)}
.cq-related a{display:block;padding:24px 26px;background:#fff;color:var(--cq-navy);text-decoration:none;font-family:var(--f-head,sans-serif);font-size:16px;font-weight:650;line-height:1.4}
.cq-related a small{display:block;margin-bottom:8px;color:var(--cq-muted);font-family:var(--f-mono,monospace);font-size:10.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.cq-related a:hover{background:var(--cq-soft);box-shadow:inset 4px 0 var(--cq-orange)}

/* --------------------------------------------------- Claim provenance -- */
.cq-provenance{
  display:inline-block;margin-top:14px;padding:5px 10px;
  background:var(--cq-paper);color:var(--cq-blue);
  font-family:var(--f-mono,monospace);font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
}
.cq-section--deep .cq-provenance{background:rgba(255,255,255,.1);color:#b8cada}

/* ------------------------------------------------------------ Video ---- */
.cq-video{position:relative;margin:0;border:1px solid var(--cq-line-strong);background:var(--cq-navy)}
.cq-video button{
  display:block;width:100%;padding:0;border:0;background:none;cursor:pointer;color:inherit;
}
.cq-video img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;opacity:.7}
.cq-video__play{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  padding:14px 24px;background:var(--cq-orange);color:#fff;
  font-family:var(--f-head,sans-serif);font-size:14px;font-weight:650;pointer-events:none;
}

/* ======================================================= Responsive ==== */
@media(max-width:1100px){
  .cq-hero__grid{grid-template-columns:minmax(0,58fr) minmax(280px,42fr);gap:40px}
  .cq-method{grid-template-columns:60px minmax(0,34%) minmax(0,1fr);gap:0 24px}
  .cq-method__go{grid-column:2/-1;margin-top:10px}
  .cq-techrow{grid-template-columns:84px minmax(0,30%) minmax(0,1fr);gap:0 22px}
  .cq-techrow i{grid-column:2/-1;margin-top:10px}
  .cq-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cq-related{grid-template-columns:1fr}
}
@media(max-width:860px){
  .cq-hero__grid{grid-template-columns:1fr}
  .cq-hero__copy{padding-bottom:34px}
  .cq-hero__visual{min-height:0}
  .cq-hero__main{height:clamp(220px,46vw,300px);border-left:0;border-top:1px solid rgba(255,255,255,.22)}
  .cq-hero__inset{right:16px;bottom:52px;width:min(42%,180px)}
  .cq-split,.cq-teaser{grid-template-columns:1fr!important}
  .cq-teaser--reverse .cq-teaser__media{order:0}
  .cq-duo{grid-template-columns:1fr}
  .cq-duo>div+div{border-left:0;border-top:1px solid var(--cq-line-strong)}
  .cq-routes{grid-template-columns:1fr}
  .cq-interval{grid-template-columns:1fr}
  .cq-flow{flex-direction:column}
  .cq-flow__step{border-right:0;border-bottom:1px solid var(--cq-line)}
  .cq-flow__step:last-child{border-bottom:0}
  .cq-flow__step:not(:last-child)::after{content:"↓";top:auto;right:auto;bottom:-11px;left:22px;transform:none}
  .cq-focus li{grid-template-columns:1fr;gap:4px}
  .cq-figure--inset{max-width:none}
}
@media(max-width:600px){
  .cq p,.cq li{font-size:16px}
  .cq .cq-lead,.cq-hero__lead{font-size:16.5px}
  .cq-method{grid-template-columns:44px minmax(0,1fr);gap:0 16px;padding:22px 0}
  .cq-method h3{grid-column:2}
  .cq-method p{grid-column:2;margin-top:8px}
  .cq-method__go{grid-column:2}
  .cq-techrow{grid-template-columns:64px minmax(0,1fr);gap:0 16px}
  .cq-techrow__img{height:56px}
  .cq-techrow b{grid-column:2}
  .cq-techrow span{grid-column:2;margin-top:6px}
  .cq-techrow i{grid-column:2}
  .cq-gallery{grid-template-columns:1fr}
  .cq-table th,.cq-table td{padding:13px 15px;font-size:14.5px}
  .cq-resource{align-items:flex-start;flex-direction:column;gap:8px}
}
@media(prefers-reduced-motion:reduce){
  .cq *,.cq *::before,.cq *::after{transition-duration:.01ms!important;animation-duration:.01ms!important}
}

/* ================= Precision Environments IA landing =================== */
.pe-ia-group{margin-top:clamp(36px,3.8vw,56px)}
.pe-ia-group:first-of-type{margin-top:0}
.pe-ia-group__head{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 32px;align-items:end;
  padding-bottom:16px;border-bottom:2px solid var(--cq-navy);
}
.pe-ia-group__head h2{grid-column:1;margin:0;font-size:clamp(24px,2.6vw,34px)}
.pe-ia-group__head p{grid-column:1;max-width:74ch;margin:0;font-size:15.5px;line-height:1.65;color:var(--cq-muted)}
.pe-ia-overview{
  grid-column:2;grid-row:1/span 2;align-self:end;white-space:nowrap;
  color:var(--cq-orange-dark);font-family:var(--f-head,sans-serif);font-size:14px;font-weight:650;text-decoration:none;
}
.pe-ia-overview:hover{text-decoration:underline}
.pe-ia-rows{border-top:0}
.pe-ia-row{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;
  padding:22px 0;border-bottom:1px solid var(--cq-line);
  color:inherit;text-decoration:none;
  transition:background-color .18s,box-shadow .18s,padding-left .18s;
}
.pe-ia-row:hover{background:var(--cq-soft);box-shadow:inset 4px 0 var(--cq-orange);padding-left:14px}
.pe-ia-row:focus-visible{outline:3px solid rgba(36,72,122,.34);outline-offset:2px}
.pe-ia-row>span{display:block;min-width:0}
.pe-ia-row strong{
  display:block;color:var(--cq-navy);font-family:var(--f-head,sans-serif);
  font-size:clamp(18px,1.9vw,22px);font-weight:650;line-height:1.3;
}
.pe-ia-row strong+span{display:block;margin-top:6px;color:var(--cq-text);font-size:15.5px;line-height:1.6}
.pe-ia-row b{
  color:var(--cq-orange-dark);font-family:var(--f-head,sans-serif);font-size:14px;font-weight:650;
  white-space:nowrap;transition:transform .18s;
}
.pe-ia-row:hover b{transform:translateX(4px)}
.pe-ia-note{
  margin:18px 0 0;padding:14px 18px;border-left:3px solid var(--cq-line-strong);
  background:var(--cq-soft);color:var(--cq-muted);font-size:14.5px;line-height:1.6;
}
@media(max-width:760px){
  .pe-ia-group__head{grid-template-columns:minmax(0,1fr)}
  .pe-ia-overview{grid-column:1;grid-row:auto;justify-self:start;min-width:0;white-space:normal}
  .pe-ia-row{grid-template-columns:1fr;gap:10px}
  .pe-ia-row b{justify-self:start}
}

/* ============ Overview gateway: three-image hero + IA row index ======== */
.cq-hero__grid--trio{grid-template-columns:minmax(0,52fr) minmax(340px,48fr)}
.cq-hero__trio{
  position:relative;align-self:stretch;display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto;gap:2px;
  align-content:end;
}
.cq-hero__trio figure{margin:0;position:relative;overflow:hidden;background:#0b1a2c}
.cq-hero__trio-main{grid-column:1/-1}
.cq-hero__trio-main img{width:100%;height:clamp(190px,20vw,270px);object-fit:cover;filter:saturate(.84) contrast(1.05)}
.cq-hero__trio-sub img{width:100%;height:clamp(112px,12vw,150px);object-fit:cover;filter:saturate(.8) contrast(1.04)}
.cq-hero__trio-sub--diagram{background:#fff}
.cq-hero__trio-sub--diagram img{object-fit:contain;filter:none;padding:8px;background:#fff}
.cq-hero__trio figcaption{
  position:absolute;left:0;bottom:0;padding:6px 11px;
  background:rgba(15,34,56,.94);color:#cddced;
  font-family:var(--f-mono,'JetBrains Mono',monospace);
  font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
}

/* IA-generated solution index rows (shared by both overview gateways) */
.cq-ia-rows{border-top:1px solid var(--cq-line-strong);background:#fff}
.cq-ia-row{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;
  padding:24px 26px;border-bottom:1px solid var(--cq-line);
  color:inherit;text-decoration:none;
  transition:background-color .18s,box-shadow .18s,padding-left .18s;
}
.cq-ia-row:hover{background:var(--cq-soft);box-shadow:inset 4px 0 var(--cq-orange);padding-left:36px}
.cq-ia-row:focus-visible{outline:3px solid rgba(36,72,122,.34);outline-offset:-3px}
.cq-ia-row>span{display:block;min-width:0}
.cq-ia-row strong{
  display:block;color:var(--cq-navy);font-family:var(--f-head,sans-serif);
  font-size:clamp(18px,1.9vw,22px);font-weight:650;line-height:1.3;
}
.cq-ia-row strong+span{display:block;margin-top:6px;color:var(--cq-text);font-size:15.5px;line-height:1.6}
.cq-ia-row b{
  color:var(--cq-orange-dark);font-family:var(--f-head,sans-serif);font-size:14px;font-weight:650;
  white-space:nowrap;transition:transform .18s;
}
.cq-ia-row:hover b{transform:translateX(4px)}
@media(max-width:860px){
  .cq-hero__grid--trio{grid-template-columns:1fr}
  .cq-hero__trio{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
  .cq-ia-row{grid-template-columns:1fr;gap:10px;padding:20px 18px}
  .cq-ia-row:hover{padding-left:26px}
  .cq-ia-row b{justify-self:start}
}

/* ======================================================================
   PRECISION ENVIRONMENTS — SHARED SOLUTION COMPONENTS
   One implementation reused across every Precision Environments page:
   governing-reference strip, detailed standards rows, product grid,
   related-solution rows and spacing utilities.
   ====================================================================== */

/* --------------------------------------------- spacing utilities ------ */
.cq-stack-md{margin-top:clamp(24px,2.6vw,36px)}
.cq-stack-lg{margin-top:clamp(26px,2.6vw,38px)}
.cq-stack-xl{margin-top:clamp(34px,3.4vw,52px)}
.cq-flush{padding-bottom:0}

/* ------------------------------- LEVEL 1: governing references strip -- */
.cq-refs{display:flex;flex-wrap:wrap;gap:1px;margin:0;border:1px solid var(--cq-line-strong);background:var(--cq-line-strong)}
.cq-refs__label{
  flex:1 0 100%;padding:14px 24px;background:var(--cq-navy);
  color:#fff;font-family:var(--f-mono,monospace);
  font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
}
.cq-ref{flex:1 1 clamp(240px,26%,420px);padding:26px 28px;background:#fff;text-decoration:none;color:inherit}
a.cq-ref{transition:background-color .18s}
a.cq-ref:hover{background:#fff}
a.cq-ref:focus-visible{outline:3px solid rgba(36,72,122,.34);outline-offset:-3px}
.cq-ref b{
  display:block;color:var(--cq-navy);font-family:var(--f-head,sans-serif);
  font-size:22px;font-weight:700;line-height:1.2;letter-spacing:-.015em;
}
.cq-ref span{display:block;margin-top:8px;color:var(--cq-text);font-size:15px;line-height:1.55}
.cq-ref em{
  display:block;margin-top:8px;color:var(--cq-muted);font-style:normal;
  font-family:var(--f-mono,monospace);font-size:12px;letter-spacing:.03em;
}
.cq-refs__note{
  flex:1 0 100%;padding:18px 28px;background:var(--cq-soft);
  border-top:1px solid var(--cq-line);color:var(--cq-text);font-size:15px;line-height:1.6;
}
.cq-refs__note strong{color:var(--cq-navy)}

/* --------------------------- LEVEL 2: detailed standards entries ------ */
.cq-std-list{border-top:1px solid var(--cq-line-strong)}
.cq-std{
  display:grid;grid-template-columns:minmax(200px,var(--cq-std-col,26%)) minmax(0,1fr);
  gap:6px 36px;padding:28px 0;border-bottom:1px solid var(--cq-line);
}
.cq-std__ref{align-self:start}
.cq-std__ref b{
  display:block;color:var(--cq-navy);font-family:var(--f-head,sans-serif);
  font-size:21px;font-weight:700;line-height:1.22;letter-spacing:-.015em;
}
.cq-std__ref em{
  display:block;margin-top:7px;color:var(--cq-muted);font-style:normal;
  font-family:var(--f-mono,monospace);font-size:12.5px;line-height:1.5;
}
.cq-std__body>div{display:grid;grid-template-columns:132px minmax(0,1fr);gap:6px 20px;padding:7px 0}
.cq-std__body>div+div{border-top:1px solid var(--cq-line)}
.cq-std__body dt,.cq-std__body>div>b{
  color:var(--cq-orange-dark);font-family:var(--f-mono,monospace);
  font-size:11px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;padding-top:3px;
}
.cq-std__body dd,.cq-std__body>div>span{margin:0;color:var(--cq-text);font-size:15.5px;line-height:1.65}
.cq-std__body .cq-std__not span{color:var(--cq-muted)}

/* ------------------------------------------------- product grid ------- */
.cq-product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.cq-product-grid--two{grid-template-columns:repeat(2,minmax(0,1fr));max-width:900px}
.cq-product-card{
  display:flex;flex-direction:column;height:100%;
  border:1px solid var(--cq-line-strong);border-radius:14px;background:#fff;
  color:inherit;text-decoration:none;overflow:hidden;
  transition:transform .18s,border-color .18s,box-shadow .18s;
}
a.cq-product-card:hover{
  transform:translateY(-2px);border-color:rgba(229,85,26,.42);
  box-shadow:0 10px 26px rgba(15,34,56,.08);
}
a.cq-product-card:focus-visible{outline:3px solid rgba(36,72,122,.34);outline-offset:3px}
.cq-product-card__media{position:relative;display:block;height:196px;border-bottom:1px solid var(--cq-line);background:var(--cq-soft)}
.cq-product-card__media img{position:absolute;top:20px;right:22px;bottom:20px;left:22px;width:auto;height:auto;max-width:calc(100% - 44px);max-height:calc(100% - 40px);margin:auto;object-fit:contain}
.cq-product-card__body{display:flex;flex-direction:column;flex:1;padding:22px 24px 24px}
.cq-product-card__meta{
  color:var(--cq-muted);font-family:var(--f-mono,monospace);
  font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
}
.cq-product-card__title{
  margin:9px 0 0;color:var(--cq-navy);font-family:var(--f-head,sans-serif);
  font-size:22px;font-weight:700;line-height:1.2;letter-spacing:-.018em;
}
.cq-product-card__role{margin:9px 0 0;color:var(--cq-text);font-size:15px;line-height:1.6}
.cq-product-card__specs{
  display:flex;flex-wrap:wrap;gap:7px;margin:16px 0 0;padding:0;list-style:none;
}
.cq-product-card__specs li{
  padding:5px 10px;border:1px solid var(--cq-line-strong);border-radius:5px;
  background:var(--cq-soft);color:var(--cq-text);
  font-family:var(--f-mono,monospace);font-size:11.5px;line-height:1.4;
}
.cq-product-card__action{
  margin-top:auto;padding-top:18px;color:var(--cq-orange-dark);
  font-family:var(--f-head,sans-serif);font-size:14px;font-weight:650;
}
a.cq-product-card:hover .cq-product-card__action{text-decoration:underline}
.cq-product-more{
  display:inline-block;margin-top:26px;color:var(--cq-orange-dark);
  font-family:var(--f-head,sans-serif);font-size:15px;font-weight:650;text-decoration:none;
}
.cq-product-more:hover{text-decoration:underline}

/* ------------------------------------------- related solution rows ---- */
.cq-related-rows{border-top:1px solid var(--cq-line-strong)}
.cq-related-row{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;
  padding:20px 0;border-bottom:1px solid var(--cq-line);
  color:inherit;text-decoration:none;transition:padding-left .18s,color .18s;
}
.cq-related-row:hover{padding-left:10px}
.cq-related-row:focus-visible{outline:3px solid rgba(36,72,122,.34);outline-offset:2px}
.cq-related-row strong{
  display:block;color:var(--cq-navy);font-family:var(--f-head,sans-serif);
  font-size:18px;font-weight:650;line-height:1.3;
}
.cq-related-row span{display:block;margin-top:5px;color:var(--cq-text);font-size:15px;line-height:1.55}
.cq-related-row b{color:var(--cq-orange-dark);font-family:var(--f-head,sans-serif);font-size:14px;font-weight:650}
.cq-related-row:hover strong{color:var(--cq-orange-dark)}

/* ------------------------------------------- contextual cross-link ---- */
.cq-crosslink{
  margin:26px 0 0;padding:18px 22px;border-left:3px solid var(--cq-blue);
  background:var(--cq-soft);
}
.cq-crosslink p{margin:0;font-size:15.5px;line-height:1.6}
.cq-crosslink a{color:var(--cq-orange-dark);font-family:var(--f-head,sans-serif);font-weight:650;text-decoration:none}
.cq-crosslink a:hover{text-decoration:underline}

/* ------------------------------------------------- provenance tone ---- */
.cq-provenance{
  background:transparent;padding:0;margin-top:16px;
  color:var(--cq-muted);font-size:11.5px;font-weight:600;letter-spacing:.07em;
}

/* ================================================== responsive ======== */
@media(max-width:1050px){
  .cq-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cq-std{grid-template-columns:1fr;gap:14px}
}
@media(max-width:700px){
  .cq-product-grid,.cq-product-grid--two{grid-template-columns:1fr;max-width:none}
  .cq-product-card__media{height:176px}
  .cq-std__body>div{grid-template-columns:1fr;gap:3px}
  .cq-related-row{grid-template-columns:1fr;gap:8px}
  .cq-related-row b{justify-self:start}
  .cq-refs__label{padding:12px 18px}
  .cq-ref{padding:20px 18px}
}

/* diagram-led hero: an original SVG needs contain-fit on a white stage, not the
   saturated photo treatment the default hero media applies */
.cq-hero__main--diagram{background:#fff}
.cq-hero__main--diagram img{object-fit:contain;filter:none;opacity:1;background:#fff;padding:10px}

/* ------------------------------- diagram stack: full-rail technical art -- */
.cq-diagram-stack{display:block}
.cq-diagram-stack>.cq-split__body{max-width:84ch}
.cq-diagram-stack>.cq-split__body+.cq-figure,
.cq-diagram-stack>.cq-figure{margin-top:clamp(26px,2.8vw,40px)}
.cq-figure--diagram img{width:100%;height:auto}
.cq-figure--diagram figcaption{
  padding:15px 22px;color:var(--cq-muted);font-size:14px;line-height:1.6;
}
.cq-figure--diagram figcaption strong{color:var(--cq-navy);font-weight:650}

/* ------------------------------------ related solutions: cards + image --- */
.cq-related-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.cq-related-cards--two{grid-template-columns:repeat(2,minmax(0,1fr));max-width:880px}
.cq-related-card{
  display:flex;flex-direction:column;height:100%;overflow:hidden;
  border:1px solid var(--cq-line-strong);border-radius:14px;background:#fff;
  color:inherit;text-decoration:none;
  transition:transform .18s,border-color .18s,box-shadow .18s;
}
.cq-related-card:hover{
  transform:translateY(-2px);border-color:rgba(229,85,26,.42);
  box-shadow:0 10px 26px rgba(15,34,56,.08);
}
.cq-related-card:focus-visible{outline:3px solid rgba(36,72,122,.34);outline-offset:3px}
.cq-related-card__media{position:relative;display:block;height:148px;overflow:hidden;background:var(--cq-soft);border-bottom:1px solid var(--cq-line)}
.cq-related-card__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.82) contrast(1.03)}
.cq-related-card__media--diagram{background:#fff}
.cq-related-card__media--diagram img{inset:12px;width:calc(100% - 24px);height:calc(100% - 24px);object-fit:contain;filter:none}
.cq-related-card__body{display:flex;flex-direction:column;flex:1;padding:20px 22px 22px}
.cq-related-card__body strong{
  color:var(--cq-navy);font-family:var(--f-head,sans-serif);
  font-size:18px;font-weight:650;line-height:1.28;
}
.cq-related-card__body span{margin-top:7px;color:var(--cq-text);font-size:14.5px;line-height:1.55}
.cq-related-card__body b{
  margin-top:auto;padding-top:16px;color:var(--cq-orange-dark);
  font-family:var(--f-head,sans-serif);font-size:13.5px;font-weight:650;
}

@media(max-width:1050px){.cq-related-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){
  .cq-related-cards,.cq-related-cards--two{grid-template-columns:1fr;max-width:none}
  .cq-related-card__media{height:132px}
}

/* --------------------- index-row thumbnails (gateways + landing page) ---- */
.cq-ia-row,.pe-ia-row{grid-template-columns:132px minmax(0,1fr) auto;gap:26px}
.cq-ia-row__media,.pe-ia-row__media{
  position:relative;display:block;height:88px;overflow:hidden;border-radius:8px;
  background:var(--cq-soft);border:1px solid var(--cq-line);
}
.cq-ia-row__media img,.pe-ia-row__media img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:saturate(.8) contrast(1.03);transition:transform .28s,filter .28s;
}
.cq-ia-row__media--contain,.pe-ia-row__media--contain{background:#fff}
.cq-ia-row__media--contain img,.pe-ia-row__media--contain img{
  inset:8px;width:calc(100% - 16px);height:calc(100% - 16px);object-fit:contain;filter:none;
}
.cq-ia-row:hover .cq-ia-row__media img,.pe-ia-row:hover .pe-ia-row__media img{
  transform:scale(1.04);filter:saturate(.98) contrast(1.05);
}
.cq-ia-row__media--contain ~ *,.pe-ia-row__media--contain ~ *{min-width:0}
@media(max-width:700px){
  .cq-ia-row,.pe-ia-row{grid-template-columns:84px minmax(0,1fr);gap:16px}
  .cq-ia-row__media,.pe-ia-row__media{height:64px}
  .cq-ia-row b,.pe-ia-row b{grid-column:2}
}

/* ------------- product figure inside a split: match the text column ------
   A fixed 4:3 product image overshot the adjacent copy by up to 180px. The
   figure now stretches to the row height and the instrument is contained and
   centred inside whatever height the text actually needs. */
.cq-split>.cq-figure--product,
.cq-teaser>.cq-figure--product{
  align-self:stretch;display:flex;flex-direction:column;min-height:250px;
}
.cq-split>.cq-figure--product img,
.cq-teaser>.cq-figure--product img{
  flex:1 1 0;height:0;min-height:0;width:100%;
  aspect-ratio:auto;max-height:none;object-fit:contain;padding:26px;
}
.cq-split>.cq-figure--product figcaption,
.cq-teaser>.cq-figure--product figcaption{margin-top:auto}

/* photographic figures in a split behave the same way */
.cq-split>.cq-figure--photo{align-self:stretch;display:flex;flex-direction:column;min-height:260px}
.cq-split>.cq-figure--photo img{flex:1 1 0;height:0;min-height:0;aspect-ratio:auto;object-fit:cover}
.cq-split>.cq-figure--photo figcaption{margin-top:auto}

/* ======================================================================
   PRECISION ENVIRONMENTS — TYPOGRAPHIC & VISUAL REFINEMENT
   Selectors here deliberately carry the .cq prefix so they win against the
   generic `.cq p` body rule, which was pulling the hero lead down to 16.5px
   and flattening heading leading.
   ====================================================================== */

/* --- hero: a calmer, more confident opening ---------------------------- */
.cq .cq-hero__lead{letter-spacing:normal;max-width:58ch}
.cq .cq-hero h1{line-height:1.04;letter-spacing:-.035em}
.cq .cq-hero__copy{padding-bottom:clamp(40px,4vw,60px)}
.cq .cq-hero__actions{margin-top:32px;gap:14px}
.cq .cq-hero__labels{gap:10px 30px;padding:15px 0;font-size:11px;letter-spacing:.15em}

/* --- section heads: generous leading, a quiet rule above the eyebrow ---- */
.cq .cq-section h2{line-height:1.14;letter-spacing:-.026em}
.cq .cq-head{position:relative}
.cq .cq-head .cq-lead{font-size:18.5px;line-height:1.66;color:var(--cq-text);max-width:74ch}
.cq .cq-section h3{line-height:1.26;letter-spacing:-.018em}
.cq .cq-section p{max-width:74ch}
.cq .cq-split__body p{max-width:64ch}

/* --- qualification / monitoring duo: lighter, editorial, less boxy ------ */
.cq .cq-duo{border:0;background:transparent;gap:0 clamp(36px,4vw,72px);
  border-top:2px solid var(--cq-navy);padding-top:6px}
.cq .cq-duo>div{padding:30px 0 4px}
.cq .cq-duo>div+div{border-left:1px solid var(--cq-line);padding-left:clamp(30px,3.4vw,56px)}
.cq .cq-duo__tag{
  padding:0;margin-bottom:16px;background:transparent;
  color:var(--cq-orange-dark);font-size:11px;letter-spacing:.16em;
}
.cq .cq-duo h3{font-size:23px;line-height:1.28}
.cq .cq-duo p{font-size:16px;line-height:1.68;max-width:52ch}

/* --- focus rows: hairline dividers, tighter rhythm ---------------------- */
.cq .cq-focus{border-top:1px solid var(--cq-line-strong)}
.cq .cq-focus li{padding:15px 0;gap:6px 32px;border-bottom:1px solid var(--cq-line)}
.cq .cq-focus li>b{font-size:15.5px;letter-spacing:-.006em}
.cq .cq-focus li>span{font-size:15.5px;color:var(--cq-text)}

/* --- workflow: a lighter, more precise step bar ------------------------- */
.cq .cq-flow{border-color:var(--cq-line-strong);border-radius:10px;overflow:hidden}
.cq .cq-flow__step{padding:22px 26px}
.cq .cq-flow__step small{font-size:10.5px;letter-spacing:.16em;color:var(--cq-orange-dark)}
.cq .cq-flow__step strong{font-size:15px;line-height:1.42;letter-spacing:-.006em}

/* --- tables: softer chrome, more air ----------------------------------- */
.cq .cq-table-wrap{border-radius:10px}
.cq .cq-table caption{padding:20px 24px 18px;font-size:14.5px;line-height:1.68;background:#fff}
.cq .cq-table thead th{
  background:var(--cq-paper);color:var(--cq-navy);
  font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  padding:14px 22px;border-bottom:1px solid var(--cq-line-strong);
}
.cq .cq-table th,.cq .cq-table td{padding:16px 22px;font-size:15.5px}
.cq .cq-table tbody tr:nth-child(even) th,
.cq .cq-table tbody tr:nth-child(even) td{background:#fbfcfe}
.cq .cq-table--num td{font-variant-numeric:tabular-nums}

/* --- governing references: the standard number leads ------------------- */
.cq .cq-refs{border-radius:10px;overflow:hidden}
.cq .cq-ref b{font-size:24px;letter-spacing:-.022em}
.cq .cq-ref span{font-size:15px;line-height:1.58;color:var(--cq-text);max-width:34ch}
.cq .cq-ref em{
  margin-top:10px;padding-top:9px;border-top:1px solid var(--cq-line);
  font-size:11.5px;letter-spacing:.06em;color:var(--cq-muted);
}
.cq .cq-refs__label{font-size:11px;letter-spacing:.18em;padding:13px 26px}
.cq .cq-refs__note{font-size:15px;line-height:1.66}

/* --- callouts: quieter, less banner-like ------------------------------- */
.cq .cq-callout{border-left-width:3px;border-radius:0 8px 8px 0;padding:22px 26px}
.cq .cq-callout p{font-size:16px;line-height:1.68;max-width:82ch}
.cq .cq-callout__label{font-size:10.5px;letter-spacing:.16em;margin-bottom:10px}

/* --- index rows on gateways: more presence, cleaner alignment ---------- */
.cq .cq-ia-rows{border-top:2px solid var(--cq-navy);background:transparent}
.cq .cq-ia-row{padding:22px 0;border-bottom:1px solid var(--cq-line)}
.cq .cq-ia-row:hover{background:transparent;box-shadow:none;padding-left:10px}
.cq .cq-ia-row strong{font-size:21px;letter-spacing:-.02em}
.cq .cq-ia-row strong+span{font-size:15.5px;color:var(--cq-muted)}
.cq .cq-ia-row:hover strong{color:var(--cq-orange-dark)}

/* --- figures: hairline frame, caption reads as caption ---------------- */
.cq .cq-figure{border-radius:10px;overflow:hidden;border-color:var(--cq-line)}
.cq .cq-figure figcaption{font-size:14px;line-height:1.6;padding:14px 20px;color:var(--cq-muted)}

/* --- product & related cards: calmer surface --------------------------- */
.cq .cq-product-card,.cq .cq-related-card{border-radius:12px}
.cq .cq-product-card__title{font-size:23px;letter-spacing:-.022em}
.cq .cq-product-card__meta{font-size:10.5px;letter-spacing:.15em}
.cq .cq-product-card__role{font-size:15px;line-height:1.6;color:var(--cq-muted)}

/* final CTA band sits closer to the content it closes */
.cq .ss-cta{padding:clamp(46px,4.6vw,68px) 0}
.cq .ss-cta h2{font-size:clamp(26px,3vw,38px);line-height:1.14;letter-spacing:-.026em}
.cq .ss-cta p{font-size:16.5px;line-height:1.66;max-width:66ch}
.cq .ss-cta-inner{gap:clamp(28px,3.4vw,52px)}

/* ======================================================================
   TYPE SCALE — aligned to the Primionics homepage
   Homepage reference (1440px): H1 60/1.02/-.045em · H2 48/1.12 · lead 18/1.65
   · body 18/1.65 · secondary 16 · eyebrow 12 mono 900 .11em · link 15/600.
   Declared once as tokens so every Precision Environments page inherits the
   same scale instead of drifting per component.
   ====================================================================== */
.cq{
  --fs-h1:clamp(38px,4.4vw,60px);
  --fs-h2:clamp(30px,3.4vw,48px);
  --fs-h3:clamp(21px,2.1vw,26px);
  --fs-h4:19px;
  --fs-lead:18px;
  --fs-body:18px;
  --fs-secondary:16px;
  --fs-meta:15px;
  --fs-caption:14px;
  --fs-eyebrow:12px;
  --lh-body:1.65;
}

/* headings */
.cq .cq-hero h1{font-size:var(--fs-h1);line-height:1.02;letter-spacing:-.045em;font-weight:700}
.cq .cq-section h2,.cq .cq-head h2{font-size:var(--fs-h2);line-height:1.12;letter-spacing:-.035em;font-weight:700}
.cq .cq-section h3,.cq .cq-duo h3{font-size:var(--fs-h3);line-height:1.25;letter-spacing:-.02em;font-weight:650}
.cq .cq-section h4{font-size:var(--fs-h4);line-height:1.35;letter-spacing:-.014em;font-weight:650}

/* eyebrow — matches the homepage mono eyebrow */
.cq .cq-eyebrow,.cq span.cq-eyebrow{
  font-family:var(--f-mono,'JetBrains Mono',monospace);
  font-size:var(--fs-eyebrow)!important;font-weight:900;letter-spacing:.11em;line-height:1.25;
  text-transform:uppercase;margin-bottom:14px;
}

/* prose */
.cq p,.cq li,.cq dd{font-size:var(--fs-body);line-height:var(--lh-body)}
.cq .cq-lead,.cq .cq-head .cq-lead{font-size:var(--fs-lead);line-height:var(--lh-body)}
.cq .cq-hero__lead{font-size:var(--fs-lead);line-height:var(--lh-body);max-width:60ch}
.cq .cq-split__body p,.cq .cq-duo p,.cq .cq-callout p,.cq .cq-refs__note{
  font-size:var(--fs-secondary);line-height:1.68;
}

/* supporting components settle on the secondary size */
.cq .cq-focus li,.cq .cq-focus li>b,.cq .cq-focus li>span,
.cq .cq-table th,.cq .cq-table td,
.cq .cq-ref span,.cq .cq-ia-row strong+span,
.cq .cq-related-card__body span,.cq .cq-product-card__role,
.cq .cq-related-row span{font-size:var(--fs-secondary);line-height:1.62}

/* links and actions */
.cq .cq-teaser__cta,.cq .cq-product-more,.cq .cq-backlink,
.cq .cq-product-card__action,.cq .cq-related-card__body b,
.cq .cq-ia-row b,.cq .cq-related-row b{font-size:var(--fs-meta);font-weight:650}

/* captions and micro-labels */
.cq figcaption,.cq .cq-figure figcaption,.cq .cq-table caption,
.cq .cq-table__note,.cq .cq-figure--diagram figcaption{font-size:var(--fs-caption);line-height:1.62}
.cq .cq-callout__label,.cq .cq-duo__tag,.cq .cq-refs__label,
.cq .cq-product-card__meta,.cq .cq-flow__step small{
  font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;
}

/* titles inside components track the heading scale */
.cq .cq-ref b{font-size:26px;line-height:1.18;letter-spacing:-.028em}
.cq .cq-ia-row strong,.cq .cq-product-card__title{font-size:22px;line-height:1.22;letter-spacing:-.024em}
.cq .cq-related-card__body strong,.cq .cq-flow__step strong{font-size:18px;line-height:1.34;letter-spacing:-.012em}
.cq .cq-std__ref b{font-size:22px;line-height:1.2;letter-spacing:-.022em}

@media(max-width:600px){
  .cq{--fs-body:16.5px;--fs-lead:17px;--fs-secondary:15.5px;--fs-caption:13.5px}
}

/* ----------------------------------------------------------------------
   Homepage parity enforcement.
   homepage-consistency.css caps section headings at 36px and forces label
   text to 11px/800/.17em with !important, while the homepage itself renders
   its section heads through .pm-section-head h2 (48/1.12/-.035em) and its
   eyebrow through .pm-eyebrow (12/900/.11em). These declarations carry
   !important solely to reach the same result as the homepage.
   ---------------------------------------------------------------------- */
.cq .cq-section h2,.cq .cq-head h2,.cq .pe-ia-group__head h2{
  font-family:var(--f-head,'Plus Jakarta Sans',sans-serif)!important;
  font-size:var(--fs-h2)!important;
  line-height:1.12!important;
  letter-spacing:-.035em!important;
  font-weight:700!important;
}
.cq .cq-hero h1{
  font-size:var(--fs-h1)!important;
  line-height:1.02!important;
  letter-spacing:-.045em!important;
  font-weight:700!important;
  color:#fff!important;
}
.cq .cq-hero .cq-hero__lead{color:#dbe7f1!important}
.cq .cq-hero .cq-eyebrow,.cq .cq-hero span.cq-eyebrow{color:#ff8b5b!important}
.cq .cq-section h3,.cq .cq-duo h3{
  font-size:var(--fs-h3)!important;line-height:1.25!important;
  letter-spacing:-.02em!important;font-weight:650!important;
}
.cq .cq-section h4{
  font-size:var(--fs-h4)!important;line-height:1.35!important;
  letter-spacing:-.014em!important;font-weight:650!important;
}
/* the site's global label rule matches [class*="-eyebrow"], so cq-eyebrow is
   caught by it; restate the homepage eyebrow treatment */
.cq .cq-eyebrow,.cq span.cq-eyebrow{
  font-size:var(--fs-eyebrow)!important;
  font-weight:900!important;
  line-height:1.25!important;
  letter-spacing:.11em!important;
}
/* component titles keep their own scale against the same global cap */
.cq .cq-ref b{font-size:26px!important;line-height:1.18!important;letter-spacing:-.028em!important}
.cq .cq-ia-row strong,.cq .cq-product-card__title{font-size:22px!important;line-height:1.22!important}
.cq .cq-related-card__body strong{font-size:18px!important;line-height:1.34!important}
.cq .cq-std__ref b{font-size:22px!important;line-height:1.2!important}

.cq .cq-hero__lead,.cq .cq-lead{letter-spacing:normal!important}

/* Hero headline: the homepage constrains its H1 by px, not ch. A 16ch box at
   60px clipped long single words (e.g. "Classification") at 1024px. */
.cq .cq-hero h1{
  max-width:min(100%,15em);overflow-wrap:break-word;hyphens:none;text-wrap:balance;
}
@media(max-width:1100px){.cq .cq-hero h1{max-width:100%}}

/* ----------------------------------------------------------------------
   Readability floor (brief 113, 116, 142).
   Label-class text was sitting at 11px against the site's own 12px eyebrow
   token, and table / definition text was dropping to 12-13px. Nothing here
   changes a design decision -- it raises the small end to the stated minimum.
   ---------------------------------------------------------------------- */
.cq .cq-duo__tag,
.cq .cq-callout__label,
.cq .cq-refs__label,
.cq .cq-product-card__meta,
.cq .cq-route small,
.cq .cq-refmap__row b{
  font-size:12px!important;
}
.cq .cq-table th,.cq .cq-table td{font-size:15px!important;line-height:1.6!important}
.cq .cq-table thead th{font-size:14px!important;text-transform:none!important;letter-spacing:.045em!important}
.cq .cq-table caption{font-size:14px!important}
.cq .cq-std__body>div>b,.cq .cq-std__body dt{font-size:15px!important;line-height:1.45!important}
.cq .cq-std__body>div>span,.cq .cq-std__body dd{font-size:15px!important;line-height:1.6!important}
.cq .cq-figure figcaption,.cq figcaption{font-size:14px!important;line-height:1.55!important}
.cq .cq-route span{font-size:15px!important}
.cq .cq-refmap__row span{font-size:15px!important}

/* Solution-index row descriptions inherited the site muted token (#5a7494),
   which lands at 4.48:1 on the soft surface -- just under AA. */
.cq .cq-ia-row>span>span,
.cq .pe-ia-row>span>span,
.cq .cq-ia-row strong+span,
.cq .pe-ia-row strong+span{color:#546d8b!important}
/* 113/116: navigation chrome was sitting at 11px inside the solution pages */
.cq .ss-breadcrumb,.cq .ss-breadcrumb a,.cq .ss-breadcrumb span{font-size:12.5px!important}
.ss-subnav .ss-subnav-inner a{font-size:12.5px!important}

/* ======================================================================
   Precision-environment solution discovery — compact card architecture
   ====================================================================== */
.cq .pe-ia-rows,
.cq .cq-ia-rows{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin-top:24px;
  border:0;
}
.cq .pe-ia-row,
.cq .cq-ia-row{
  display:flex;
  min-width:0;
  min-height:330px;
  flex-direction:column;
  align-items:stretch;
  gap:0;
  padding:0;
  overflow:hidden;
  border:1px solid #d5e0eb;
  border-radius:14px;
  background:#fff;
  box-shadow:0 8px 24px rgba(16,39,67,.055);
  color:inherit;
  text-decoration:none;
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.cq .pe-ia-row:hover,
.cq .cq-ia-row:hover{
  padding:0;
  border-color:#f06a3a;
  background:#fff;
  box-shadow:0 16px 34px rgba(16,39,67,.11);
  transform:translateY(-3px);
}
.cq .pe-ia-row:focus-visible,
.cq .cq-ia-row:focus-visible{outline:3px solid rgba(240,86,24,.3);outline-offset:3px}
.cq .pe-ia-row__media,
.cq .cq-ia-row__media{
  width:100%;
  height:178px;
  flex:0 0 178px;
  border:0;
  border-bottom:1px solid #dce5ee;
  border-radius:0;
  background:#f3f6f9;
}
.cq .pe-ia-row__media img,
.cq .cq-ia-row__media img{object-fit:cover}
.cq .pe-ia-row__media--contain img,
.cq .cq-ia-row__media--contain img{
  /* Product cut-outs must not be cropped, so these stay object-fit:contain.
     The 12px inset left the instrument floating in white and reading much
     smaller than the photographic cards beside it; 4px lets it fill the box. */
  inset:4px;
  width:calc(100% - 8px);
  height:calc(100% - 8px);
  object-fit:contain;
}
.cq .pe-ia-row>span:nth-child(2),
.cq .cq-ia-row>span:nth-child(2){padding:20px 20px 0}
.cq .pe-ia-row strong,
.cq .cq-ia-row strong{font-size:20px!important;line-height:1.25!important}
.cq .pe-ia-row strong+span,
.cq .cq-ia-row strong+span{
  margin-top:8px;
  color:#4c6684!important;
  font-size:15px!important;
  line-height:1.55!important;
}
.cq .pe-ia-row b,
.cq .cq-ia-row b{
  align-self:flex-end;
  margin-top:auto;
  padding:16px 20px 20px;
  color:#c94312;
}
.cq .pe-ia-row:hover b,
.cq .cq-ia-row:hover b{transform:translateX(3px)}

/* Final CTA copy must remain legible against the navy surface. */
.cq .ss-cta h2,
.cq .ss-cta p{
  color:#f7fafc!important;
  text-shadow:none!important;
}
.cq .ss-cta p{color:#d9e5ef!important}
.cq .ss-cta .ss-btn--secondary{
  border-color:#c7d6e5;
  background:#fff;
  color:#102743;
}

@media(max-width:1050px){
  .cq .pe-ia-rows,.cq .cq-ia-rows{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
  .cq .pe-ia-rows,.cq .cq-ia-rows{grid-template-columns:1fr;gap:14px}
  .cq .pe-ia-row,.cq .cq-ia-row{min-height:0}
  .cq .pe-ia-row__media,.cq .cq-ia-row__media{height:150px;flex-basis:150px}
}

/* ======================================================================
   2026 editorial composition — solution-page component refinement
   ====================================================================== */
.cq{--cq-card-shadow:0 10px 28px rgba(16,39,67,.065)}
.cq .cq-section{padding:clamp(42px,4.2vw,64px) 0}
.cq .cq-section--tight{padding:clamp(28px,2.8vw,42px) 0}

/* Section introductions use the rail horizontally instead of forming a
   tall stack of large type followed by a narrow paragraph. */
.cq .cq-head{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(330px,.92fr);
  grid-template-rows:auto auto;
  column-gap:clamp(42px,5vw,82px);
  row-gap:10px;
  align-items:end;
  max-width:none;
  margin-bottom:clamp(28px,3vw,42px);
  padding-bottom:24px;
  border-bottom:1px solid var(--cq-line-strong);
}
.cq .cq-head .cq-eyebrow{grid-column:1;grid-row:1;margin:0}
.cq .cq-head h2,.cq .cq-head h3{
  grid-column:1;grid-row:2;
  max-width:24ch;
  margin:0;
  font-size:clamp(30px,2.7vw,42px)!important;
  line-height:1.1!important;
}
.cq .cq-head>.cq-lead{
  grid-column:2;grid-row:1/span 2;
  align-self:end;
  max-width:58ch;
  margin:0;
  color:#405c7a;
  font-size:17px!important;
  line-height:1.68!important;
}
.cq .cq-head>:not(.cq-eyebrow):not(h2):not(h3):not(.cq-lead){grid-column:1/-1}

/* Decision criteria become scannable evidence cards. */
.cq .cq-focus{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  border:0;
}
.cq .cq-focus li{
  display:flex;
  min-width:0;
  min-height:132px;
  flex-direction:column;
  gap:8px;
  padding:20px 21px;
  border:1px solid #d7e1eb;
  border-radius:12px;
  background:#fff;
  box-shadow:0 5px 16px rgba(16,39,67,.035);
}
.cq .cq-section:not(.cq-section--soft) .cq-focus li{background:#f8fafc}
.cq .cq-focus li>b{
  color:#102743;
  font-size:16px!important;
  line-height:1.35!important;
}
.cq .cq-focus li>span{
  color:#506a87!important;
  font-size:15px!important;
  line-height:1.58!important;
}
.cq .cq-split .cq-focus{grid-template-columns:1fr}
.cq .cq-split .cq-focus li{min-height:0;padding:17px 18px}

/* Reference panels: full-width heading, equal reference cards and one clear
   scope statement. This prevents empty navy and grey grid cells. */
.cq .cq-refs{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0;
  overflow:hidden;
  border:1px solid #cbd8e5;
  border-radius:14px;
  background:#fff;
  box-shadow:var(--cq-card-shadow);
}
.cq .cq-refs:has(> .cq-ref:nth-child(4)){grid-template-columns:repeat(3,minmax(0,1fr))}
.cq .cq-refs:has(> .cq-ref:nth-child(5)){grid-template-columns:repeat(4,minmax(0,1fr))}
.cq .cq-refs__label{
  grid-column:1/-1;
  max-width:none!important;
  margin:0;
  padding:15px 22px;
  border-bottom:1px solid rgba(255,255,255,.12);
  background:linear-gradient(110deg,#102743,#1a3b61);
  color:#f5f8fb;
}
.cq .cq-ref{
  min-width:0;
  padding:23px 24px 25px;
  border-right:1px solid var(--cq-line);
  border-bottom:1px solid var(--cq-line);
  background:#fff;
}
.cq .cq-ref:last-of-type{border-right:0}
.cq .cq-ref b{font-size:20px!important;line-height:1.2!important}
.cq .cq-ref span{font-size:14.5px!important;line-height:1.55!important}
.cq .cq-ref em{min-height:1.2em}
.cq .cq-refs__note{
  grid-column:1/-1;
  max-width:none!important;
  margin:0;
  padding:18px 22px;
  border:0;
  background:#edf3f8;
  color:#314d6b;
  font-size:15px!important;
  line-height:1.6!important;
}

/* Workflows are modular tiles rather than one stretched horizontal strip. */
.cq .cq-flow{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  overflow:visible;
  margin-bottom:28px;
  border:0;
  border-radius:0;
  background:transparent;
}
.cq .cq-flow__step{
  min-width:0;
  min-height:118px;
  padding:19px 20px 20px;
  border:1px solid #d3deea!important;
  border-radius:12px;
  background:#fff;
  box-shadow:0 5px 16px rgba(16,39,67,.035);
}
.cq .cq-flow__step small{
  display:inline-grid;
  width:30px;
  height:30px;
  place-items:center;
  margin:0 0 14px;
  border-radius:50%;
  background:#fff1ea;
  color:#c94312;
  font-size:10px!important;
}
.cq .cq-flow__step strong{font-size:16px!important;line-height:1.4!important}
.cq .cq-flow__step::after{display:none!important}
.cq .cq-split .cq-flow{grid-template-columns:repeat(2,minmax(0,1fr))}

/* Text-to-text splits become deliberate technical cards; media-to-text
   compositions retain the editorial image layout. */
.cq .cq-split:has(> .cq-split__body + .cq-split__body){
  gap:18px;
  align-items:stretch;
}
.cq .cq-split:has(> .cq-split__body + .cq-split__body)>.cq-split__body{
  padding:clamp(24px,2.5vw,34px);
  border:1px solid #d5e0eb;
  border-radius:14px;
  background:#fff;
  box-shadow:var(--cq-card-shadow);
}
.cq .cq-section:not(.cq-section--soft) .cq-split:has(> .cq-split__body + .cq-split__body)>.cq-split__body{background:#f8fafc}
.cq .cq-split:has(> .cq-split__body + .cq-split__body) h3{font-size:22px!important}
.cq .cq-split:has(> .cq-split__body + .cq-split__body) p{font-size:15.5px!important;line-height:1.66!important}
.cq .cq-split--60{grid-template-columns:minmax(0,54fr) minmax(0,46fr)}

/* Paired engineering decisions share the same card grammar. */
.cq .cq-duo{
  gap:16px;
  border:0;
  padding:0;
  background:transparent;
}
.cq .cq-duo>div,
.cq .cq-duo>div+div{
  min-width:0;
  padding:26px 28px;
  border:1px solid #d5e0eb;
  border-radius:14px;
  background:#fff;
  box-shadow:var(--cq-card-shadow);
}
.cq .cq-duo__tag{
  display:inline-grid;
  min-width:34px;
  height:28px;
  place-items:center;
  margin:0 0 18px;
  padding:0 9px;
  border-radius:999px;
  background:#fff1ea;
  color:#c94312;
}
.cq .cq-duo h3{font-size:22px!important}
.cq .cq-duo p{font-size:15.5px!important;line-height:1.66!important}

/* Scope and boundary notes read as professional evidence panels. */
.cq .cq-callout{
  padding:23px 25px;
  border:1px solid #d5e0eb;
  border-left:4px solid var(--cq-orange);
  border-radius:12px;
  background:#f5f8fb;
}
.cq .cq-callout--strong{
  padding:27px 29px;
  border:1px solid #28486c;
  border-left:4px solid #f06a3a;
  background:linear-gradient(120deg,#102743,#183a60);
  box-shadow:0 12px 28px rgba(16,39,67,.13);
}
.cq .cq-callout--strong p,
.cq .cq-callout--strong strong{color:#f4f8fb!important}
.cq .cq-callout--strong .cq-callout__label{color:#ffad86!important}
.cq .cq-std__not-block{background:#fff}
.cq .cq-std__not-block .cq-std__body{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.cq .cq-std__not-block .cq-std__body>div{
  display:block;
  min-width:0;
  padding:17px 18px;
  border:1px solid var(--cq-line);
  border-radius:10px;
  background:#f8fafc;
}
.cq .cq-std__not-block .cq-std__body>div+div{border-top:1px solid var(--cq-line)}
.cq .cq-std__not-block .cq-std__body b{display:block;margin-bottom:7px;color:#c94312}
.cq .cq-std__not-block .cq-std__body span{font-size:14.5px!important;line-height:1.58!important}
.cq .pe-ia-group__head h2{font-size:clamp(28px,2.6vw,38px)!important;line-height:1.15!important}

@media(max-width:980px){
  .cq .cq-head{grid-template-columns:1fr;grid-template-rows:auto;row-gap:12px}
  .cq .cq-head .cq-eyebrow,.cq .cq-head h2,.cq .cq-head h3,.cq .cq-head>.cq-lead{grid-column:1;grid-row:auto}
  .cq .cq-head h2,.cq .cq-head h3{max-width:25ch}
  .cq .cq-head>.cq-lead{max-width:70ch;margin-top:4px}
  .cq .cq-focus{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cq .cq-std__not-block .cq-std__body{grid-template-columns:1fr}
  .cq .cq-refs,.cq .cq-refs:has(> .cq-ref:nth-child(4)),.cq .cq-refs:has(> .cq-ref:nth-child(5)){grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:720px){
  .cq .cq-section{padding:38px 0}
  .cq .cq-head{padding-bottom:20px;margin-bottom:24px}
  .cq .cq-head h2,.cq .cq-head h3{font-size:clamp(28px,8.5vw,36px)!important}
  .cq .cq-focus,.cq .cq-flow,.cq .cq-split .cq-flow{grid-template-columns:1fr}
  .cq .cq-focus li,.cq .cq-flow__step{min-height:0}
  .cq .cq-refs,.cq .cq-refs:has(> .cq-ref:nth-child(4)),.cq .cq-refs:has(> .cq-ref:nth-child(5)){grid-template-columns:1fr!important}
  .cq .cq-ref{border-right:0}
  .cq .cq-duo{grid-template-columns:1fr}
  .cq .cq-duo>div+div{padding-left:28px}
}

/* One complete card per workflow stage; avoids a second explanatory list. */
.cq .cq-workflow {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  list-style:none;
  margin-bottom:0;
  padding:0;
}
.cq .cq-workflow>li {
  position:relative;
  min-height:206px;
  padding:24px 24px 26px;
  overflow:hidden;
  border:1px solid var(--cq-line);
  border-radius:14px;
  background:#fff;
  box-shadow:var(--cq-card-shadow);
}
.cq .cq-workflow>li::after {
  content:"";
  position:absolute;
  right:0;
  bottom:0;
  left:0;
  height:3px;
  background:linear-gradient(90deg,var(--cq-orange) 0 24%,#d8e3ee 24% 100%);
}
.cq .cq-workflow__stage {
  display:inline-flex;
  align-items:center;
  min-height:25px;
  padding:4px 9px;
  border-radius:999px;
  background:#fff0e9;
  color:#b83b0b;
  font-size:11px;
  font-weight:800;
  letter-spacing:.09em;
  line-height:1;
  text-transform:uppercase;
}
.cq .cq-workflow h3 {
  margin:18px 0 9px;
  color:var(--cq-navy);
  font-size:clamp(18px,1.45vw,22px)!important;
  line-height:1.18!important;
}
.cq .cq-workflow p {
  margin:0;
  color:var(--cq-copy);
  font-size:15px!important;
  line-height:1.55!important;
}
@media(max-width:980px){
  .cq .cq-workflow{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .cq .cq-workflow{grid-template-columns:1fr}
  .cq .cq-workflow>li{min-height:0}
}

/* Existing compact sequences use explicit stage labels instead of bare numerals. */
.cq .cq-flow__step small {
  display:inline-flex;
  width:auto;
  min-width:58px;
  height:27px;
  align-items:center;
  justify-content:center;
  padding:0 9px;
  border-radius:999px;
  line-height:1;
}
.cq .cq-flow__step small::before { content:"Stage\00a0"; }

/* ======================================================================
   2026 solution-page refinement: aligned navigation, actionable cards,
   reference mapping and compact technical narratives.
   ====================================================================== */

/* Return-to-family links sit at the right edge and point in the direction
   of navigation. */
.cq .cq-backlink{
  display:flex;
  width:max-content;
  max-width:100%;
  margin:0 0 14px auto;
  justify-content:flex-end;
  text-align:right;
}

/* Related methods use the same scale and action alignment as product cards. */
.cq .cq-related-cards{align-items:stretch}
.cq .cq-related-card__media{height:196px}
.cq .cq-related-card__body{padding:22px 24px 24px}
.cq .cq-related-card__body strong{font-size:21px!important;line-height:1.25!important}
.cq .cq-related-card__body b,
.cq .cq-product-card__action{
  align-self:flex-end;
  width:max-content;
  margin-left:auto;
  text-align:right;
}
.cq .cq-split__body:has(> .cq-teaser__cta),
.cq .cq-workflow-panel,
.cq .cq-duo>div:has(> .cq-teaser__cta),
.cq .cq-fog-quality-card:has(> .cq-teaser__cta){
  display:flex;
  flex-direction:column;
}
.cq .cq-split__body>.cq-teaser__cta,
.cq .cq-workflow-panel>.cq-teaser__cta,
.cq .cq-duo>div>.cq-teaser__cta,
.cq .cq-fog-quality-card>.cq-teaser__cta{
  align-self:flex-end;
  margin-top:auto;
  text-align:right;
}
.cq p:has(> .cq-teaser__cta){display:flex;justify-content:flex-end;text-align:right}
.cq .cq-product-more{
  display:block;
  width:max-content;
  max-width:100%;
  margin-left:auto;
  text-align:right;
}
.cq .cq-product-grid--single{grid-template-columns:minmax(0,420px)}

/* Reference-to-solution map: each reference is an independent, linked card. */
.cq .cq-refmap{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.cq .cq-refmap__row{
  display:grid;
  grid-template-rows:auto 1fr auto;
  min-width:0;
  min-height:182px;
  padding:22px 23px;
  border:1px solid #d3deea;
  border-radius:13px;
  background:#fff;
  box-shadow:0 7px 20px rgba(16,39,67,.04);
}
.cq .cq-refmap__row>b{
  display:block;
  width:max-content;
  max-width:100%;
  margin-bottom:12px;
  padding:5px 9px;
  border-radius:999px;
  background:#fff0e9;
  color:#b83b0b;
  font-family:var(--f-mono,monospace);
  letter-spacing:.06em;
}
.cq .cq-refmap__row>span:not(.cq-refmap__go){color:#425d7b;line-height:1.58}
.cq .cq-refmap__go{
  display:flex;
  flex-wrap:wrap;
  gap:7px 14px;
  align-items:center;
  justify-content:flex-end;
  margin-top:18px;
  padding-top:14px;
  border-top:1px solid #e0e8f0;
}
.cq .cq-refmap__go a{
  color:var(--cq-orange-dark);
  font-family:var(--f-head,sans-serif);
  font-size:13.5px;
  font-weight:700;
  text-decoration:none;
}
.cq .cq-refmap__go a:hover{text-decoration:underline}

/* Product links embedded in technical selection tables. */
.cq .cq-table-link{
  display:flex;
  gap:16px;
  align-items:center;
  justify-content:space-between;
  color:var(--cq-navy);
  font-weight:650;
  text-decoration:none;
}
.cq .cq-table-link span{
  color:var(--cq-orange-dark);
  font-size:13px;
  font-weight:700;
  white-space:nowrap;
}
.cq .cq-table-link:hover span{text-decoration:underline}
.cq .cq-table--schedule-m th,
.cq .cq-table--schedule-m td{text-align:center;font-variant-numeric:tabular-nums}
.cq .cq-table--schedule-m thead th:first-child,
.cq .cq-table--schedule-m tbody th{text-align:left}

/* HEPA / ULPA technical principles: scan-friendly evidence cards. */
.cq .cq-principle-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.cq .cq-principle-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:28px;
  border:1px solid #d3deea;
  border-radius:14px;
  background:#fff;
  box-shadow:var(--cq-card-shadow);
}
.cq .cq-principle-card__label,
.cq .cq-chain-grid>li>span{
  width:max-content;
  max-width:100%;
  padding:5px 9px;
  border-radius:999px;
  background:#fff0e9;
  color:#b83b0b;
  font-family:var(--f-mono,monospace);
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.cq .cq-principle-card h3{margin:17px 0 9px;font-size:22px!important}
.cq .cq-principle-card>p{margin:0;color:#405a78;font-size:15px!important;line-height:1.6!important}
.cq .cq-principle-card ul{display:grid;gap:9px;margin:19px 0 0;padding:0;list-style:none}
.cq .cq-principle-card li{padding:10px 12px;border-radius:8px;background:#f4f7fa;color:#405a78;font-size:14.5px;line-height:1.5}
.cq .cq-principle-card__note{margin-top:auto!important;padding-top:18px!important;color:#607894!important;font-size:13.5px!important}
.cq .cq-chain-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-bottom:0;
  padding:0;
  list-style:none;
}
.cq .cq-chain-grid>li{
  min-width:0;
  padding:23px 24px 25px;
  border:1px solid #d3deea;
  border-radius:13px;
  background:#fff;
  box-shadow:0 7px 20px rgba(16,39,67,.04);
}
.cq .cq-chain-grid>li:last-child{grid-column:2/4}
.cq .cq-chain-grid h3{margin:17px 0 9px;font-size:20px!important}
.cq .cq-chain-grid p{margin:0;color:#405a78;font-size:14.5px!important;line-height:1.58!important}

/* Airflow-visualisation sequence with an explicit direction of travel. */
.cq .cq-visual-workflow{
  display:grid;
  gap:0;
  margin:20px 0 24px;
  padding:0;
  list-style:none;
  border:1px solid #d3deea;
  border-radius:12px;
  background:#fff;
}
.cq .cq-visual-workflow li{
  position:relative;
  display:grid;
  grid-template-columns:72px minmax(0,1fr);
  gap:4px 14px;
  padding:17px 20px;
  border-bottom:1px solid #dce5ee;
}
.cq .cq-visual-workflow li:last-child{border-bottom:0}
.cq .cq-visual-workflow li:not(:last-child)::after{
  content:"↓";
  position:absolute;
  z-index:2;
  bottom:-12px;
  left:42px;
  display:grid;
  width:24px;
  height:24px;
  place-items:center;
  border:1px solid #d3deea;
  border-radius:50%;
  background:#fff;
  color:var(--cq-orange-dark);
  font-weight:800;
}
.cq .cq-visual-workflow li>span{grid-row:1/3;color:#b83b0b;font-family:var(--f-mono,monospace);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.cq .cq-visual-workflow strong{color:var(--cq-navy);font-size:16px;line-height:1.35}
.cq .cq-visual-workflow small{color:#58718e;font-size:13.5px;line-height:1.5}

/* Operating-theatre activity selection and fog-quality composition. */
.cq .cq-methods--cards{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  border-top:0;
}
.cq .cq-methods--cards .cq-method{
  display:flex;
  min-width:0;
  min-height:220px;
  flex-direction:column;
  gap:0;
  align-items:stretch;
  padding:25px 26px;
  border:1px solid #d3deea;
  border-radius:13px;
  background:#fff;
  box-shadow:0 7px 20px rgba(16,39,67,.04);
}
.cq .cq-methods--cards .cq-method::before{display:none}
.cq .cq-methods--cards .cq-method h3{font-size:22px!important;line-height:1.25!important}
.cq .cq-methods--cards .cq-method p{margin-top:11px;color:#405a78;font-size:15px!important;line-height:1.58!important}
.cq .cq-methods--cards .cq-method__go{align-self:flex-end;margin-top:auto;padding-top:20px}
.cq .cq-theatre-airflow{
  display:grid;
  grid-template-columns:minmax(0,1.18fr) minmax(340px,.82fr);
  gap:28px;
  align-items:start;
}
.cq .cq-theatre-airflow__overview{min-width:0}
.cq .cq-theatre-airflow__overview>.cq-figure{margin-top:26px}
.cq .cq-fog-quality-card{
  overflow:hidden;
  border:1px solid #d3deea;
  border-radius:14px;
  background:#fff;
  box-shadow:var(--cq-card-shadow);
}
.cq .cq-fog-quality-card>.cq-figure{border:0;border-radius:0}
.cq .cq-fog-quality-card>h3,
.cq .cq-fog-quality-card>p,
.cq .cq-fog-quality-card>.cq-teaser__cta{margin-right:24px;margin-left:24px}
.cq .cq-fog-quality-card>h3{margin-top:24px}
.cq .cq-fog-quality-card>.cq-teaser__cta{margin-bottom:24px}
.cq .cq-split__body--wide{max-width:none!important}
.cq .cq-split__body--wide>p{max-width:112ch}

@media(max-width:980px){
  .cq .cq-refmap,
  .cq .cq-principle-grid,
  .cq .cq-methods--cards,
  .cq .cq-theatre-airflow{grid-template-columns:1fr}
  .cq .cq-chain-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cq .cq-chain-grid>li:last-child{grid-column:auto}
}
@media(max-width:620px){
  .cq .cq-related-card__media{height:196px}
  .cq .cq-chain-grid{grid-template-columns:1fr}
  .cq .cq-refmap__row{min-height:0}
  .cq .cq-table-link{align-items:flex-start;flex-direction:column;gap:6px}
  .cq .cq-methods--cards .cq-method{min-height:0}
  .cq .cq-visual-workflow li{grid-template-columns:1fr;padding:18px 18px 18px 52px}
  .cq .cq-visual-workflow li>span{grid-row:auto}
  .cq .cq-visual-workflow li:not(:last-child)::after{left:14px}
}

/* Final Primionics design-system alignment: shared card geometry, image stage
   and accessible action sizing. */
.cq .cq-product-card,
.cq .cq-related-card,
.cq .cq-refmap__row,
.cq .cq-principle-card,
.cq .cq-chain-grid>li,
.cq .cq-methods--cards .cq-method,
.cq .cq-fog-quality-card{border-radius:12px;box-shadow:none}
.cq .cq-product-card__media,
.cq .cq-related-card__media{height:220px}
.cq .cq-hero__actions a,
.cq .cq-hero__actions button{min-height:48px!important}
.cq .cq-product-more{
  display:inline-flex;
  min-height:48px;
  align-items:center;
}
@media(max-width:620px){
  .cq .cq-product-card__media,
  .cq .cq-related-card__media{height:196px}
}
.cq .ss-rail{box-sizing:border-box}
