/* Site-wide overrides layered on rcl-link.css. */

/* ---- Header ---------------------------------------------------------- */
:root { --rcl-header-h: 100px; }
.rcl-brand__img { height: 75px; }
@media (max-height: 800px) {
  :root { --rcl-header-h: 92px; }
  .rcl-brand__img { height: 68px; }
}
@media (max-width: 640px) {
  :root { --rcl-header-h: 84px; }
  .rcl-brand__img { height: 62px; }
}

.rcl-nav__link { white-space: nowrap; }
.rcl-nav__link--icon { display: inline-flex; align-items: center; gap: 8px; }
.rcl-nav__link--icon svg,
.rcl-drawer__link--icon svg { width: 16px; height: 16px; flex: none; color: var(--rcl-cyan); }
.rcl-drawer__link--icon svg { width: 20px; height: 20px; }

/* the four nav links fit down to 900px; below that, the drawer */
@media (max-width: 1219px) {
  .rcl-nav { display: flex; }
  .rcl-burger { display: none; }
  .rcl-nav__link { padding-inline: 10px; }
  .rcl-nav__link::after { left: 10px; right: 10px; }
}
@media (max-width: 900px) {
  .rcl-nav { display: none; }
  .rcl-burger { display: inline-flex; position: relative; }
}

/* ---- Manufacturing step bar (five steps) ------------------------------- */
.lk-proc__steps { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.lk-proc__steps::before { left: calc(100% / 10); right: calc(100% / 10); }
.lk-proc__steps::after { left: calc(100% / 10 + var(--pp, .25) * (100% - 100% / 5)); }
/* no JS / reduced motion: show the finished-assembly caption */
.lk-proc:not([data-k]) [data-cap="2"] { opacity: 0; }
.lk-proc:not([data-k]) [data-cap="1"] { opacity: 1; }

/* ---- Footer: brand, Company, Legal, Get in touch ----------------------- */
.rcl-footer__grid { grid-template-columns: 1.4fr .8fr .9fr 1.1fr; }
@media (max-width: 1000px) { .rcl-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .rcl-footer__grid { grid-template-columns: minmax(0, 1fr); } }

/* ---- Display type: Open Sans, sentence case ----------------------------
   `html` lifts these over page stylesheets loaded after this file. */
:root { --rcl-font-tech: "Open Sans", "Segoe UI", system-ui, -apple-system, Roboto, sans-serif; }

html .lk-hero__title,
html .lk-h2,
html .pg-title,
html .lk-mk__title,
html .lk-site__title,
html .lk-site__h { text-transform: none; letter-spacing: -.025em; }
html .lk-hero__title { line-height: 1.04; }
html .lk-h2,
html .lk-mk__title { line-height: 1.06; }
html .pg-title,
html .lk-site__title,
html .lk-site__h { line-height: 1; }

html .lk-orb__lab b,
html .ab-val h3,
html .ct__form h2,
html .cs__steps strong,
html .lg__body h2 { text-transform: none; letter-spacing: -.012em; }
html .lk-mk__sub { text-transform: none; letter-spacing: -.01em; }
html .lk-orb__end { text-transform: none; letter-spacing: 0; }

/* ---- Blue haze behind blue title text ----------------------------------
   A radial glow on ::before; the title isolates so it sits above the
   section background but under the text. */
:root {
  --rcl-haze: radial-gradient(closest-side, rgba(0, 174, 239, .55), rgba(0, 174, 239, .3) 40%, rgba(0, 174, 239, .11) 70%, rgba(0, 174, 239, 0));
  --rcl-haze-light: radial-gradient(closest-side, rgba(0, 174, 239, .26), rgba(0, 174, 239, .12) 45%, rgba(0, 174, 239, .04) 75%, rgba(0, 174, 239, 0));
}
html .lk-hero__title,
html .lk-h2,
html .pg-title,
html .lk-orb__end,
html .lk-mk__head { isolation: isolate; }
html .lk-hero__line--2,
html .lk-h2--xl span,
html .lk-orb__end span,
html .pg-title span,
html .ab-hq .lk-h2 span,
html .ab-values__head .lk-h2 span,
html .lk-mk__sub { position: relative; text-shadow: none; }
/* block-level lines shrink to their words so the haze centres on them */
html .lk-hero__line--2,
html .pg-title span,
html .ab-hq .lk-h2 span,
html .ab-values__head .lk-h2 span { width: fit-content; }
html .lk-hero__line--2::before,
html .lk-h2--xl span::before,
html .lk-orb__end span::before,
html .pg-title span::before,
html .ab-hq .lk-h2 span::before,
html .ab-values__head .lk-h2 span::before,
html .lk-mk__sub::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -110% -18%;
  background: var(--rcl-haze);
  pointer-events: none;
}
/* quieter on light backgrounds */
html .ab-values__head .lk-h2 span::before,
html .lk-mk__sub::before,
html.ab-light .pg-hero--flow .pg-title span::before { background: var(--rcl-haze-light); }
html .lk-mk__sub { overflow: visible; }

/* ---- Manufacturing: drawings sit straight on the section's grid paper --- */
html .lk-mk.lk-white {
  --lk-bg: var(--lk-paper);
  background:
    linear-gradient(rgba(20, 27, 34, .05) 1px, transparent 1px) 0 0 / 40px 40px,
    linear-gradient(90deg, rgba(20, 27, 34, .05) 1px, transparent 1px) 0 0 / 40px 40px,
    var(--lk-paper);
}
html .lk-mfg__desk,
html .lk-mfg__row,
html .lk-mfg.is-pinned .lk-mfg__row,
html .lk-mfg.is-pinned .lk-mfg__row[data-state] {
  background: none;
  border-color: transparent;
  box-shadow: none;
}
html .lk-mfg .dw-dim__bg { fill: var(--lk-paper); }

/* test results: a solid panel and PASS badges so they read over the grid */
html .lk-mfg .lk-dwg__qa {
  align-self: start;
  padding: 8px 12px 10px;
  border: 1px solid rgba(20, 27, 34, .14);
  border-left: 3px solid var(--lk-accent-text);
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 1px 3px rgba(20, 27, 34, .08);
  color: var(--lk-ink);
}
/* one fixed-width test column on every row, so the three panels line up */
html .lk-mfg.is-pinned .lk-dwg__sheet { grid-template-columns: minmax(0, calc(100cqh * 6)) minmax(13rem, 1fr) 18.5rem; }
html .lk-mfg.is-pinned .lk-dwg__qa { justify-self: stretch; box-sizing: border-box; }
html .lk-mfg .lk-dwg__qa-head { font-weight: 600; color: var(--lk-accent-text); }
html .lk-mfg .lk-dwg__qa-row em { color: #1f7f78; font-weight: 700; }
html .lk-mfg .lk-dwg__qa-row b {
  justify-self: end;
  padding: 1px 6px;
  border-radius: 3px;
  background: #1f7f78;
  color: #fff;
  font-weight: 600;
  letter-spacing: .08em;
}

/* ---- Section spacing: Manufacturing and Sourcing use half padding ------
   On wide screens the pinned block shrinks by the same amount, so the
   drawings keep their size. */
html .lk-mfg.is-pinned .lk-build__pin {
  --mfg-pt: max(calc(var(--rcl-header-h) + 16px), var(--mfg-py));
  padding-top: calc(var(--mfg-pt) / 2);
  padding-bottom: calc(var(--mfg-py) / 2);
  height: calc(100vh - (var(--mfg-pt) + var(--mfg-py)) / 2);
  height: calc(100svh - (var(--mfg-pt) + var(--mfg-py)) / 2);
}
html .lk-mfg:not(.is-pinned) .lk-build__pin { padding-block: calc(var(--lk-pad-y) / 2) calc(clamp(32px, 4vw, 56px) / 2); }
html .lk > .lk-src { padding-block: calc(var(--lk-pad-y) / 2); }

/* ---- Mobile drawer: out of the tab order and accessibility tree when closed */
.rcl-drawer { visibility: hidden; transition: transform var(--rcl-dur) var(--rcl-ease), visibility 0s linear var(--rcl-dur); }
.rcl-drawer.is-open { visibility: visible; transition: transform var(--rcl-dur) var(--rcl-ease), visibility 0s; }
