/* ==========================================================================
   Inner pages: About, Contact, Contact success and the legal pages.
   Layered on the rcl-link bundle (tokens, header, footer, buttons, .lk-*
   section primitives) and rcl-site.css. Loaded by each inner page only.
   ========================================================================== */

/* ---- Page hero -------------------------------------------------------------- */
.pg-hero {
  position: relative;
  overflow: hidden;
  padding-block: clamp(72px, 3rem + 6vw, 152px) clamp(56px, 2rem + 5vw, 120px);
  background:
    radial-gradient(60% 80% at 85% 0%, rgba(0, 174, 239, .14), rgba(0, 174, 239, 0) 70%),
    radial-gradient(40% 60% at 0% 100%, rgba(52, 101, 127, .22), rgba(52, 101, 127, 0) 70%),
    var(--lk-void);
}
.pg-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(rgba(143, 166, 184, .06) 1px, transparent 1px) 0 0 / 56px 56px,
    linear-gradient(90deg, rgba(143, 166, 184, .06) 1px, transparent 1px) 0 0 / 56px 56px;
  -webkit-mask-image: radial-gradient(90% 90% at 70% 20%, #000, transparent 75%);
  mask-image: radial-gradient(90% 90% at 70% 20%, #000, transparent 75%);
}
.pg-hero > .rcl-shell { position: relative; }
.pg-crumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 clamp(28px, 4vw, 48px);
  padding: 0;
  list-style: none;
  font-family: var(--rcl-font-mono);
  font-size: .68rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--rcl-text-faint);
}
.pg-crumbs li + li::before { content: "/"; margin-right: 8px; opacity: .6; }
.pg-crumbs a { color: var(--rcl-text-muted); text-decoration: none; }
.pg-crumbs a:hover { color: var(--rcl-cyan); }
.pg-hero .lk-index { margin: 0 0 clamp(14px, 2vw, 22px); font-family: var(--rcl-font-mono); font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; }
.pg-title {
  margin: 0;
  max-width: 18ch;
  font-family: var(--rcl-font-tech);
  font-weight: 600;
  font-size: clamp(2.4rem, 1rem + 4.6vw, 5.4rem);
  line-height: .95;
  letter-spacing: .005em;
  text-transform: uppercase;
  color: #fff;
}
.pg-title span { display: block; color: var(--rcl-cyan); }
.pg-hero .lk-lede { max-width: 44rem; margin-top: clamp(20px, 2.4vw, 32px); }
.pg-hero__actions { display: flex; flex-wrap: wrap; gap: 12px 16px; margin-top: clamp(28px, 3vw, 40px); }

/* ---- About: where we are (globe pinned by js/rcl-about.js) ------------------
   Base rules are the fallback (no JS, reduced motion): the still globe sits
   behind the copy, the figures are a plain list and the head-office card
   follows them. .ab-hq.is-live is the pinned version; the script places the
   card and draws the leader line from the Cornwall marker. */
.lk > .ab-hq { padding: 0; }
.ab-hq { position: relative; overflow: clip; background: var(--lk-void); }

/* About hero: the same flat void as the globe scene beneath it, with no grid,
   glow or rule between them, so the title reads as the opening of that scene. */
.pg-hero--flow { background: var(--lk-void); padding-bottom: clamp(24px, 4vw, 56px); }

/* Light-to-dark opening (About). --t runs 0 (light) -> 1 (dark); js/rcl-about.js
   scrubs it over the first part of the scroll. Dark (1) is the default, so no JS
   or reduced motion simply shows the dark theme. The light layer, a pale paper
   with a faint grid, fades out as --t rises, and the hero's text blends from ink
   to white. The hero's grid is anchored to its bottom edge and the globe
   section's to its top, so the lines run on unbroken across the join without a
   fixed (repaint-on-scroll) background. The header is not part of it. */
.ab-page .lk { --t: 1; }
.ab-light .ab-page .lk { --t: 0; }
.ab-page .lk {
  --sc-fg: color-mix(in srgb, #fff calc(var(--t) * 100%), #141b22);
  --sc-fg2: color-mix(in srgb, #b7c7d4 calc(var(--t) * 100%), #4e5760);
  --sc-fg3: color-mix(in srgb, #8fa6b8 calc(var(--t) * 100%), #5c656e);
  --sc-line: color-mix(in srgb, #2c4256 calc(var(--t) * 100%), #b9bac7);
  --sc-accent: #00aeef;
  /* light-mode accent, as the homepage Manufacturing subline */
  --lk-accent-text: var(--rcl-cyan);
}
.pg-hero--flow::before,
.ab-page .ab-hq::before {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: calc(1 - var(--t));
  -webkit-mask-image: none;
  mask-image: none;
  background:
    linear-gradient(rgba(20, 27, 34, .055) 1px, transparent 1px) 0 0 / 48px 48px,
    linear-gradient(90deg, rgba(20, 27, 34, .055) 1px, transparent 1px) 0 0 / 48px 48px,
    #f3f4f7;
}
.pg-hero--flow::before { background-position: 0 100%, 0 100%, 0 0; }
.pg-hero--flow > .rcl-shell { position: relative; z-index: 1; }
.ab-page .ab-hq__pin { z-index: 1; }
.pg-hero--flow { --lk-fg: var(--sc-fg); --lk-fg-2: var(--sc-fg2); --lk-fg-3: var(--sc-fg3); color: var(--sc-fg); }
.pg-hero--flow .pg-title { color: var(--sc-fg); }
.pg-hero--flow .pg-title span { color: var(--sc-accent); }
.pg-hero--flow .pg-crumbs { color: var(--sc-fg3); }
.pg-hero--flow .pg-crumbs a { color: var(--sc-fg2); }
.pg-hero--flow .rcl-btn--ghost { color: var(--sc-fg); border-color: var(--sc-line); background: transparent; }
/* The globe is drawn for a dark ground. While the page is light it is shown
   inverted (a pale glass globe with blue land); at the midpoint of the blend it
   dips to transparent and returns in its normal dark rendering, so it never
   passes through a half-inverted grey. js/rcl-about.js sets .is-dark at --t 0.5. */
.ab-page .ab-hq .ab-hq__globe, .ab-page .ab-hq.is-live .ab-hq__globe { opacity: max(calc(1 - 2 * var(--t)), calc(2 * var(--t) - 1)); }
.ab-light .ab-page .lk:not(.is-dark) .ab-hq__globe canvas,
.ab-light .ab-page .lk:not(.is-dark) .ab-hq__globe img { filter: invert(1) hue-rotate(180deg) saturate(1.3); }
/* the copy panel's own box only exists on the dark theme */
.ab-page .ab-hq.is-live .ab-hq__panel {
  background: rgba(6, 12, 18, calc(.88 * var(--t)));
  border-color: rgba(143, 166, 184, calc(.18 * var(--t)));
  box-shadow: 0 30px 70px -30px rgba(0, 0, 0, calc(.9 * var(--t)));
}
.pg-hero--flow .rcl-btn--primary { background: color-mix(in srgb, #0a1822 calc(var(--t) * 100%), #141b22); color: #eaf7ff; border-color: color-mix(in srgb, rgba(0, 174, 239, .55) calc(var(--t) * 100%), #141b22); }
.ab-hq__pin { position: relative; padding-block: var(--lk-pad-y); }
.ab-hq__globe { position: absolute; top: 0; bottom: 0; right: -14vw; width: min(66vw, 980px); opacity: .5; pointer-events: none; }
.ab-hq__globe .lk-globe__still { object-fit: contain; }
.ab-hq__copy { position: relative; z-index: 2; }
.ab-hq__panel { max-width: 36rem; }
/* Panel and card are near-opaque rather than backdrop-blurred: a blur over the
   live globe canvas would be recomputed on every frame it draws. */
.ab-hq.is-live .ab-hq__panel {
  padding: clamp(20px, 2.4vw, 32px);
  border: 1px solid var(--lk-line-d);
  border-radius: 4px;
  background: rgba(6, 12, 18, .88);
  box-shadow: 0 30px 70px -30px rgba(0, 0, 0, .9);
}
.ab-hq.is-live .ab-hq__panel .lk-index { margin-top: 0; }
.ab-hq.is-live .ab-hq__panel .lk-h2 { font-size: clamp(1.9rem, 1rem + 2.2vw, 3rem); }
.ab-hq.is-live .ab-hq__panel .lk-lede { font-size: var(--rcl-step-0); }
/* figures as a compact 2 x 2 grid inside the panel */
.ab-hq.is-live .ab-figs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; margin-top: clamp(18px, 2.6vh, 28px); }
.ab-hq.is-live .ab-fig { grid-template-columns: minmax(0, 1fr); gap: 6px; padding: 14px 0 14px 16px; }
.ab-hq.is-live .ab-fig__v { font-size: clamp(1.7rem, 1rem + 1.4vw, 2.4rem); }
.ab-hq.is-live .ab-fig__t span { font-size: .82rem; }
@media (max-height: 860px) { .ab-hq.is-live .ab-fig__t span { display: none; } }
.ab-hq .lk-h2 { color: #fff; }
.ab-hq .lk-h2 span { display: block; color: var(--rcl-cyan); }
.ab-hq .lk-lede { margin-top: 20px; }
.ab-hq__line { display: none; }

.ab-figs { margin: clamp(28px, 4vh, 48px) 0 0; padding: 0; list-style: none; display: grid; gap: 0; border-top: 1px solid var(--lk-line-d); }
.ab-fig {
  position: relative;
  display: grid;
  grid-template-columns: minmax(7.5rem, auto) minmax(0, 1fr);
  gap: 20px;
  align-items: center;
  padding: clamp(10px, 1.6vh, 16px) 0 clamp(10px, 1.6vh, 16px) 18px;
  border-bottom: 1px solid var(--lk-line-d);
  transition: opacity .4s var(--rcl-ease);
}
.ab-fig::before { content: ""; position: absolute; left: 0; top: 50%; width: 6px; height: 6px; margin-top: -3px; border-radius: 50%; background: var(--lk-line-d2); transition: background .4s var(--rcl-ease), box-shadow .4s var(--rcl-ease); }
.ab-fig__v { display: flex; align-items: baseline; font-family: var(--rcl-font-tech); font-weight: 600; font-size: clamp(2rem, 1.2rem + 2vw, 3.2rem); line-height: 1; color: #fff; font-variant-numeric: tabular-nums; }
.ab-fig__v i { font-style: normal; color: var(--rcl-cyan); }
.ab-fig__v small { margin-left: 6px; font-family: var(--rcl-font-mono); font-size: .3em; letter-spacing: .14em; text-transform: uppercase; color: var(--rcl-cyan); }
.ab-fig__t strong { display: block; font-family: var(--rcl-font-mono); font-weight: 500; font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: #d6e4ec; }
.ab-fig__t span { display: block; margin-top: 4px; font-size: .9rem; line-height: 1.45; color: var(--rcl-text-faint); }

.ab-card {
  position: relative;
  z-index: 4;
  width: min(360px, calc(100% - 48px));
  margin: clamp(32px, 5vh, 56px) 0 0 max(24px, calc((100% - var(--rcl-content-max)) / 2));
  padding: 22px 22px 20px;
  border: 1px solid rgba(0, 174, 239, .45);
  border-radius: 4px;
  background: linear-gradient(180deg, rgba(14, 25, 34, .96), rgba(8, 15, 22, .97));
  box-shadow: 0 30px 70px -30px rgba(0, 0, 0, .9), 0 0 0 1px rgba(255, 255, 255, .03) inset, 0 0 42px -12px rgba(0, 174, 239, .45);
}
.ab-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: linear-gradient(90deg, var(--rcl-cyan), rgba(0, 174, 239, 0)); }
.ab-card__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 16px; border-bottom: 1px solid var(--lk-line-d); }
.ab-card__head img { height: 40px; width: auto; }
.ab-card__live { display: inline-flex; align-items: center; gap: 8px; font-family: var(--rcl-font-mono); font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; color: #9fe3c3; }
.ab-card__live i { position: relative; width: 7px; height: 7px; border-radius: 50%; background: #2bd38a; box-shadow: 0 0 0 3px rgba(43, 211, 138, .2); }
/* the pulse is a ring scaled and faded on the compositor, not an animated shadow */
.ab-card__live i::after { content: ""; position: absolute; inset: -3px; border-radius: 50%; background: rgba(43, 211, 138, .3); animation: ab-live 2.4s ease-out infinite; }
@keyframes ab-live { from { transform: scale(1); opacity: .9; } to { transform: scale(2.2); opacity: 0; } }
.ab-card__k { margin: 16px 0 6px; font-family: var(--rcl-font-mono); font-size: .66rem; letter-spacing: .16em; text-transform: uppercase; color: var(--rcl-cyan); }
.ab-card__addr { font-style: normal; font-size: 1.02rem; line-height: 1.5; color: #fff; }
.ab-card__geo { margin: 10px 0 0; font-family: var(--rcl-font-mono); font-size: .68rem; letter-spacing: .12em; color: var(--rcl-text-faint); }
.ab-card__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.ab-card__actions .rcl-btn { min-height: 40px; padding: 0 14px; font-size: .85rem; }

/* Live: one pinned screen */
.ab-hq.is-live .ab-hq__pin { height: 100vh; height: 100svh; padding: 0; overflow: hidden; }
/* the globe spans the whole stage, edge to edge bar a small margin; the copy sits on its own panel */
.ab-hq.is-live .ab-hq__globe { left: 16px; right: 16px; width: auto; opacity: 1; }
.ab-hq.is-live .ab-hq__copy { position: absolute; left: 0; right: 0; top: calc(var(--rcl-header-h, 100px) + clamp(20px, 5vh, 64px)); }
.ab-hq.is-live .ab-fig { opacity: .3; }
.ab-hq.is-live .ab-fig.is-on { opacity: 1; }
.ab-hq.is-live .ab-fig.is-on::before { background: var(--lk-led); box-shadow: 0 0 0 4px var(--lk-led-soft); }
.ab-hq.is-live .ab-card { position: absolute; left: 0; top: 0; margin: 0; will-change: transform, opacity; }
.ab-hq.is-live .ab-hq__line { display: block; position: absolute; inset: 0; z-index: 3; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.ab-hq__line path { fill: none; stroke: var(--rcl-cyan); stroke-width: 1.5; filter: drop-shadow(0 0 6px rgba(0, 174, 239, .6)); }
.ab-hq__line circle { fill: var(--rcl-cyan); filter: drop-shadow(0 0 8px rgba(0, 174, 239, .9)); }

@media (max-width: 900px) {
  .ab-hq__globe { right: -30vw; width: 110vw; opacity: .35; }
  .ab-hq.is-live .ab-hq__globe { left: 8px; right: 8px; width: auto; top: calc(var(--rcl-header-h, 84px) + 110px); bottom: 30vh; }
  .ab-hq.is-live .ab-hq__panel { display: contents; }
  .ab-hq.is-live .ab-hq__copy { top: calc(var(--rcl-header-h, 84px) + 16px); bottom: 18px; display: flex; flex-direction: column; }
  .ab-hq.is-live .ab-hq__copy .lk-lede { display: none; }
  .ab-hq.is-live .lk-h2 { font-size: 1.7rem; }
  .ab-hq.is-live .ab-figs { margin: auto 0 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; border: 0; max-width: none; }
  .ab-hq.is-live .ab-fig { grid-template-columns: minmax(0, 1fr); gap: 4px; padding: 10px 0 10px 14px; }
  .ab-hq.is-live .ab-fig__t span { display: none; }
  .ab-hq.is-live .ab-fig__v { font-size: 1.7rem; }
}

/* ---- About: how we work ----------------------------------------------------- */
.ab-values {
  position: relative;
  background:
    linear-gradient(rgba(20, 27, 34, .04) 1px, transparent 1px) 0 0 / 40px 40px,
    linear-gradient(90deg, rgba(20, 27, 34, .04) 1px, transparent 1px) 0 0 / 40px 40px,
    var(--lk-paper);
  color: var(--lk-ink);
  color-scheme: light;
  --lk-fg: var(--lk-ink);
  --lk-fg-2: var(--lk-ink-2);
  --lk-fg-3: var(--lk-ink-3);
}
.ab-values__head { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 20px 48px; align-items: end; margin-bottom: clamp(40px, 5vw, 72px); }
.ab-values__head .lk-index { grid-column: 1 / -1; margin: 0; }
.ab-values__head .lk-h2 span { color: var(--lk-accent-text); }
.ab-values__head .lk-lede { justify-self: end; }
.ab-values__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(14px, 1.6vw, 24px); margin: 0; padding: 0; list-style: none; }
.ab-val {
  --bar: 1;
  position: relative;
  overflow: hidden;
  padding: clamp(24px, 2.4vw, 34px) clamp(20px, 2vw, 28px) clamp(26px, 2.6vw, 36px);
  border: 1px solid var(--lk-line-l);
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 1px 0 rgba(20, 27, 34, .04), 0 26px 50px -38px rgba(20, 27, 34, .5);
  transition: transform .4s var(--rcl-ease), box-shadow .4s var(--rcl-ease), border-color .4s var(--rcl-ease);
}
.ab-val::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: linear-gradient(90deg, var(--rcl-cyan), var(--lk-accent-text)); transform: scaleX(var(--bar)); transform-origin: 0 50%; }
.ab-val:hover { transform: translateY(-4px); border-color: rgba(0, 174, 239, .5); box-shadow: 0 1px 0 rgba(20, 27, 34, .04), 0 34px 60px -36px rgba(0, 174, 239, .45); }
.ab-val__ico { display: grid; place-items: center; width: 56px; height: 56px; margin-bottom: clamp(28px, 3vw, 44px); border-radius: 4px; background: linear-gradient(160deg, #e9f7fd, #d8eff9); color: var(--lk-accent-text); box-shadow: 0 0 0 1px rgba(0, 174, 239, .2) inset; }
.ab-val__ico svg { width: 28px; height: 28px; stroke-width: 1.6; }
.ab-val__no { position: absolute; right: 18px; top: 10px; font-family: var(--rcl-font-tech); font-weight: 600; font-size: 4.4rem; line-height: 1; color: transparent; -webkit-text-stroke: 1px rgba(20, 27, 34, .1); pointer-events: none; }
.ab-val h3 { margin: 0 0 12px; font-family: var(--rcl-font-tech); font-weight: 600; font-size: clamp(1.2rem, 1rem + .5vw, 1.45rem); line-height: 1.1; text-transform: uppercase; color: var(--lk-ink); }
.ab-val p { margin: 0; color: var(--lk-ink-2); line-height: 1.55; }
@media (max-width: 1080px) { .ab-values__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) {
  .ab-values__head { grid-template-columns: minmax(0, 1fr); }
  .ab-values__head .lk-lede { justify-self: start; }
}
@media (max-width: 560px) { .ab-values__grid { grid-template-columns: minmax(0, 1fr); } }

/* ---- Call to action band ---------------------------------------------------- */
.pg-cta { background: radial-gradient(50% 80% at 50% 100%, rgba(0, 174, 239, .12), transparent 70%), var(--lk-void); text-align: center; }
.pg-cta .lk-h2 { color: #fff; margin-inline: auto; max-width: 16ch; }
.pg-cta .lk-lede { margin: 22px auto 0; }
.pg-cta .pg-hero__actions { justify-content: center; }

/* ---- Contact: 50/50 split ------------------------------------------------- */
.ct { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: calc(100vh - var(--rcl-header-h, 100px)); }
.ct__info {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(56px, 6vw, 112px) clamp(24px, 6vw, 112px);
  background:
    radial-gradient(70% 60% at 0% 0%, rgba(0, 174, 239, .14), transparent 70%),
    var(--lk-void);
  color: var(--rcl-text);
  overflow: hidden;
}
.ct__info::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(rgba(143, 166, 184, .05) 1px, transparent 1px) 0 0 / 48px 48px,
    linear-gradient(90deg, rgba(143, 166, 184, .05) 1px, transparent 1px) 0 0 / 48px 48px;
  -webkit-mask-image: radial-gradient(80% 80% at 20% 20%, #000, transparent 75%);
  mask-image: radial-gradient(80% 80% at 20% 20%, #000, transparent 75%);
}
.ct__info > * { position: relative; max-width: 34rem; }
.ct__info .lk-index { margin: 0 0 20px; font-family: var(--rcl-font-mono); font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; }
.ct__info .pg-title { font-size: clamp(2.4rem, 1rem + 4vw, 4.6rem); }
.ct__info .lk-lede { margin-top: 24px; }
.ct__methods { margin: clamp(32px, 4vw, 56px) 0 0; padding: 0; list-style: none; display: grid; gap: 0; border-top: 1px solid var(--lk-line-d); }
.ct__methods li { border-bottom: 1px solid var(--lk-line-d); }
.ct__method {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  padding: 18px 0;
  color: inherit;
  text-decoration: none;
}
.ct__method svg { width: 22px; height: 22px; color: var(--rcl-cyan); }
.ct__ico { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--lk-line-d2); border-radius: 2px; }
.ct__label { display: block; font-family: var(--rcl-font-mono); font-size: .66rem; letter-spacing: .16em; text-transform: uppercase; color: var(--rcl-text-faint); }
.ct__value { display: block; margin-top: 3px; font-family: var(--rcl-font-tech); font-weight: 600; font-size: 1.15rem; color: #fff; }
.ct__value--addr { font-family: var(--rcl-font); font-weight: 400; font-size: .98rem; line-height: 1.5; color: var(--rcl-text-muted); font-style: normal; }
a.ct__method:hover .ct__value { color: var(--rcl-cyan); }
a.ct__method:hover .ct__ico { border-color: var(--rcl-cyan); }
.ct__note { margin: 28px 0 0; font-size: .9rem; color: var(--rcl-text-faint); }
.ct__note b { color: var(--rcl-text-muted); font-weight: 500; }

.ct__form {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(48px, 6vw, 112px) clamp(24px, 6vw, 112px);
  background: var(--lk-white);
  color: var(--lk-ink);
}
.ct__form-in { width: 100%; max-width: 36rem; }
.ct__form h2 { margin: 0; font-family: var(--rcl-font-tech); font-weight: 600; font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.3rem); line-height: 1.05; text-transform: uppercase; color: var(--lk-ink); }
.ct__form-intro { margin: 12px 0 clamp(24px, 3vw, 36px); color: var(--lk-ink-2); }
@media (max-width: 960px) {
  .ct { grid-template-columns: minmax(0, 1fr); min-height: 0; }
}

/* ---- Form controls (light surface) ------------------------------------------ */
.rcl-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 20px; }
.rcl-field { display: grid; gap: 7px; min-width: 0; }
.rcl-field--full { grid-column: 1 / -1; }
.rcl-field__label { font-family: var(--rcl-font-mono); font-size: .68rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--lk-ink); }
.rcl-field__label em { font-style: normal; color: var(--lk-accent-text); }
.rcl-field__label small { font-size: inherit; letter-spacing: inherit; color: var(--lk-ink-3); font-weight: 400; text-transform: none; }
.rcl-input {
  width: 100%;
  min-height: 48px;
  padding: 12px 14px;
  border: 1px solid var(--lk-line-l2);
  border-radius: 2px;
  background: #fff;
  color: var(--lk-ink);
  font: 400 1rem/1.4 var(--rcl-font);
  transition: border-color var(--rcl-dur-fast) var(--rcl-ease), box-shadow var(--rcl-dur-fast) var(--rcl-ease);
}
textarea.rcl-input { min-height: 160px; resize: vertical; }
.rcl-input::placeholder { color: #8a929b; }
.rcl-input:hover { border-color: #8f97a3; }
.rcl-input:focus { outline: none; border-color: var(--lk-accent-text); box-shadow: 0 0 0 3px rgba(11, 108, 146, .18); }
.rcl-input[aria-invalid="true"] { border-color: #b3261e; box-shadow: 0 0 0 3px rgba(179, 38, 30, .12); }
.rcl-check { grid-column: 1 / -1; display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 12px; align-items: start; font-size: .9rem; line-height: 1.5; color: var(--lk-ink-2); cursor: pointer; }
.rcl-check input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--lk-accent-text); }
.rcl-check a { color: var(--lk-accent-text); }
.rcl-form__captcha { grid-column: 1 / -1; min-height: 78px; }
.rcl-form__foot { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }
.rcl-form__fine { margin: 0; font-size: .82rem; color: var(--lk-ink-3); }
.rcl-form__error { grid-column: 1 / -1; margin: 0; padding: 12px 14px; border-left: 3px solid #b3261e; background: #fbeceb; color: #7a1a14; font-size: .92rem; }
.lk-white .rcl-btn--primary, .ct__form .rcl-btn--primary { background: var(--lk-ink); color: #eaf7ff; border-color: var(--lk-ink); box-shadow: none; }
.lk-white .rcl-btn--primary:hover, .ct__form .rcl-btn--primary:hover { background: #0b1218; border-color: var(--rcl-cyan); box-shadow: 0 0 0 3px rgba(0, 174, 239, .18); }
.rcl-btn[disabled] { opacity: .6; cursor: progress; }
@media (max-width: 560px) { .rcl-form { grid-template-columns: minmax(0, 1fr); } }

/* ---- Contact success -------------------------------------------------------- */
.cs__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 5vw, 88px); align-items: start; }
.cs__steps { margin: 0; padding: 0; list-style: none; counter-reset: cs; display: grid; gap: 0; border-top: 1px solid var(--lk-line-l); }
.cs__steps li { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 12px; padding: 20px 0; border-bottom: 1px solid var(--lk-line-l); color: var(--lk-ink-2); }
.cs__steps b { font-family: var(--rcl-font-mono); font-weight: 500; font-size: .72rem; letter-spacing: .14em; color: var(--lk-accent-text); padding-top: 3px; }
.cs__steps strong { display: block; margin-bottom: 4px; font-family: var(--rcl-font-tech); font-weight: 600; font-size: 1.1rem; text-transform: uppercase; color: var(--lk-ink); }
.cs__card { border: 1px solid var(--lk-line-l); border-radius: 4px; background: #fff; box-shadow: 0 24px 60px -40px rgba(20, 27, 34, .45); }
.cs__card-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 16px 22px; border-bottom: 1px solid var(--lk-line-l); font-family: var(--rcl-font-mono); font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; color: var(--lk-ink-3); }
.cs__card-head span:first-child::before { content: ""; display: inline-block; width: 7px; height: 7px; margin-right: 10px; border-radius: 50%; background: #2bb673; box-shadow: 0 0 0 3px rgba(43, 182, 115, .2); vertical-align: 1px; }
.cs__dl { margin: 0; padding: 8px 22px 22px; display: grid; grid-template-columns: 110px minmax(0, 1fr); }
.cs__dl dt, .cs__dl dd { margin: 0; padding: 12px 0; border-bottom: 1px solid #eceef2; }
.cs__dl dt { font-family: var(--rcl-font-mono); font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: var(--lk-ink-3); padding-top: 15px; }
.cs__dl dd { color: var(--lk-ink); overflow-wrap: anywhere; }
.cs__dl .cs__msg { grid-column: 1 / -1; padding-top: 4px; border-bottom: 0; white-space: pre-line; line-height: 1.6; color: var(--lk-ink-2); }
.cs__dl .cs__msg-l { grid-column: 1 / -1; border-bottom: 0; }
@media (max-width: 900px) { .cs__grid { grid-template-columns: minmax(0, 1fr); } }

/* ---- Legal pages ------------------------------------------------------------ */
.lg__grid { display: grid; grid-template-columns: minmax(0, 260px) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.lg__toc { position: sticky; top: calc(var(--rcl-header-h, 100px) + 32px); }
.lg__toc p { margin: 0 0 14px; font-family: var(--rcl-font-mono); font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; color: var(--lk-ink-3); }
.lg__toc ol { margin: 0; padding: 0; list-style: none; display: grid; gap: 2px; border-left: 1px solid var(--lk-line-l); }
.lg__toc a { display: block; padding: 6px 0 6px 16px; margin-left: -1px; border-left: 2px solid transparent; font-size: .9rem; line-height: 1.35; color: var(--lk-ink-2); text-decoration: none; }
.lg__toc a:hover { color: var(--lk-ink); border-left-color: var(--lk-line-l2); }
.lg__toc a[aria-current="true"] { color: var(--lk-accent-text); border-left-color: var(--lk-accent-text); }
.lg__meta { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 0 0 clamp(32px, 4vw, 48px); padding: 16px 20px; border: 1px solid var(--lk-line-l); border-radius: 2px; background: var(--lk-paper); font-size: .9rem; color: var(--lk-ink-2); }
.lg__meta b { font-weight: 600; color: var(--lk-ink); }
.lg__body { max-width: 46rem; color: var(--lk-ink-2); line-height: 1.7; }
.lg__body section { scroll-margin-top: calc(var(--rcl-header-h, 100px) + 24px); padding-bottom: clamp(24px, 3vw, 40px); }
.lg__body section + section { padding-top: clamp(24px, 3vw, 40px); border-top: 1px solid var(--lk-line-l); }
.lg__body h2 { display: flex; gap: 14px; align-items: baseline; margin: 0 0 16px; font-family: var(--rcl-font-tech); font-weight: 600; font-size: clamp(1.3rem, 1.1rem + .6vw, 1.7rem); line-height: 1.15; text-transform: uppercase; color: var(--lk-ink); }
.lg__body h2 small { font-family: var(--rcl-font-mono); font-weight: 500; font-size: .7rem; letter-spacing: .14em; color: var(--lk-accent-text); }
.lg__body h3 { margin: 24px 0 8px; font-family: var(--rcl-font); font-weight: 600; font-size: 1.02rem; color: var(--lk-ink); }
.lg__body p { margin: 0 0 12px; }
.lg__body ul, .lg__body ol { margin: 0 0 14px; padding-left: 1.25rem; }
.lg__body li { margin-bottom: 6px; }
.lg__body ol.lg__clauses { list-style: none; padding: 0; }
.lg__body ol.lg__clauses > li { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 8px; margin-bottom: 10px; }
.lg__body ol.lg__clauses > li > b { font-family: var(--rcl-font-mono); font-weight: 500; font-size: .78rem; color: var(--lk-ink-3); padding-top: 3px; }
.lg__body ol.lg__clauses ol { list-style: none; padding: 0; margin: 8px 0 0; }
.lg__body ol.lg__clauses ol li { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 6px; margin-bottom: 6px; }
.lg__body ol.lg__clauses ol li > b { font-family: var(--rcl-font-mono); font-weight: 500; font-size: .74rem; color: var(--lk-ink-3); padding-top: 3px; }
.lg__body a { color: var(--lk-accent-text); }
.lg__body strong { color: var(--lk-ink); }
.lg__addr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 4px 0 16px; }
.lg__addr div { padding: 16px 18px; border: 1px solid var(--lk-line-l); border-radius: 2px; background: #fff; font-size: .95rem; line-height: 1.55; }
.lg__addr b { display: block; margin-bottom: 6px; font-family: var(--rcl-font-mono); font-weight: 500; font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; color: var(--lk-accent-text); }
.lg__table { width: 100%; margin: 4px 0 16px; border-collapse: collapse; font-size: .94rem; }
.lg__table th, .lg__table td { padding: 10px 12px; border: 1px solid var(--lk-line-l); text-align: left; vertical-align: top; }
.lg__table th { background: var(--lk-paper); font-weight: 600; color: var(--lk-ink); }
.lg__others { display: flex; flex-wrap: wrap; gap: 10px; margin-top: clamp(32px, 4vw, 48px); }
@media (max-width: 900px) {
  .lg__grid { grid-template-columns: minmax(0, 1fr); }
  .lg__toc { position: static; }
  .lg__addr { grid-template-columns: minmax(0, 1fr); }
}
.cs__grid .lk-lede { margin-top: 20px; }
.cs__grid .cs__steps { margin-top: clamp(28px, 4vw, 48px); }

/* Native controls (checkboxes, scrollbars) follow the surface, not the dark site default */
.lk-white, .ct__form, .lg { color-scheme: light; }

.lg__table th[scope="row"] { width: 28%; font-weight: 600; }
@media (max-width: 560px) { .lg__table th[scope="row"] { width: 38%; } }
