/*
 * LabsNinja marketing shell — shared MNav + MFooter (redesign F1).
 *
 * Faithful port of the authoritative design's MNav / MFooter
 * (design_handoff_scim_platform/design_reference/marketing.jsx): sticky
 * blur nav with centered links + active indigo underline, and a multi-column
 * footer with a mono/uppercase column headers + bottom bar. Adapted to the real
 * site — reads the canonical --ln-* tokens (tokens.css) and keeps the site's
 * 1200px centered container.
 *
 * TRUTHFUL GATES (deliberate divergence from the artboard — see
 * ai-review-loop/UI_REDESIGN_GAP_MATRIX_2026-07-28.md):
 *   - CTA is "Start free", NOT "Start free trial" (perpetual-free Developer tier).
 *   - NO "SOC 2 · ISO 27001 · HIPAA · GDPR" compliance line (we hold none).
 *   - NO "All systems normal" live-status pill (we publish no live status).
 *
 * Namespaced .ln-mnav* / .ln-mfoot* so it never collides with the per-page
 * inline marketing styles during the incremental page migration. No Inter.
 */

/* ── MNav ─────────────────────────────────────────────────────────────────── */
.ln-mnav {
  position: sticky;
  top: 0;
  z-index: 100;
  background: color-mix(in srgb, var(--ln-bg, #0A0E15) 82%, transparent);
  -webkit-backdrop-filter: blur(20px) saturate(160%);
  backdrop-filter: blur(20px) saturate(160%);
  border-bottom: 1px solid var(--ln-border, rgba(255, 255, 255, 0.07));
}
.ln-mnav-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
  height: 64px;
  display: flex;
  align-items: center;
  gap: 28px;
}
.ln-mnav-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--ln-font-ui, "Helvetica Neue", Helvetica, Arial, sans-serif);
  font-weight: 600;
  font-size: 1.02rem;
  letter-spacing: -0.015em;
  color: var(--ln-fg-hi, #F2F4F8);
  text-decoration: none;
  white-space: nowrap;
}
/* Centered primary links. Defensive resets (position/border/background) so a
   leftover bare `nav {}` rule on a not-yet-migrated page can never restyle this
   inner <nav> when the partial is dropped in. */
.ln-mnav-links {
  position: static;
  margin: 0 auto;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: normal;
  gap: 24px;
  background: none;
  border: 0;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  font-size: 0.86rem;
}
.ln-mnav-link {
  position: relative;
  color: var(--ln-fg, #C7CDD8);
  text-decoration: none;
  padding: 4px 0;
  transition: color 0.15s;
}
.ln-mnav-link:hover { color: var(--ln-fg-hi, #F2F4F8); }
.ln-mnav-link.is-active { color: var(--ln-fg-hi, #F2F4F8); }
.ln-mnav-link.is-active::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -21px;
  height: 2px;
  background: var(--ln-indigo, #7C74F0);
}
.ln-mnav-link:focus-visible {
  outline: 2px solid var(--ln-indigo, #7C74F0);
  outline-offset: 3px;
  border-radius: 2px;
}
.ln-mnav-actions {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 0.86rem;
}
.ln-mnav-signin {
  color: var(--ln-fg, #C7CDD8);
  text-decoration: none;
  transition: color 0.15s;
}
.ln-mnav-signin:hover { color: var(--ln-fg-hi, #F2F4F8); }
.ln-mnav-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 16px;
  border-radius: var(--ln-radius-sm, 7px);
  border: none;
  background: var(--ln-indigo, #7C74F0);
  color: var(--ln-indigo-in, #fff);
  font-family: var(--ln-font-ui, "Helvetica Neue", Helvetica, Arial, sans-serif);
  font-weight: 500;
  font-size: 0.84rem;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.15s, transform 0.15s, box-shadow 0.15s;
}
.ln-mnav-cta:hover {
  background: var(--ln-indigo-hi, #918bf5);
  transform: translateY(-1px);
  box-shadow: 0 4px 20px var(--ln-indigo-border, rgba(124, 116, 240, 0.4));
}
.ln-mnav-cta:focus-visible {
  outline: 2px solid var(--ln-fg-hi, #F2F4F8);
  outline-offset: 2px;
}

/* ── MFooter ──────────────────────────────────────────────────────────────── */
.ln-mfoot {
  border-top: 1px solid var(--ln-border, rgba(255, 255, 255, 0.07));
  background: var(--ln-bg-alt, #0E131C);
  padding: 56px 24px 28px;
  margin-top: 0;
  text-align: left;
}
.ln-mfoot-inner { max-width: 1200px; margin: 0 auto; }
.ln-mfoot-grid {
  display: grid;
  grid-template-columns: 1.5fr repeat(3, 1fr);
  gap: 40px;
}
.ln-mfoot-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--ln-font-ui, "Helvetica Neue", Helvetica, Arial, sans-serif);
  font-weight: 600;
  font-size: 0.98rem;
  color: var(--ln-fg-hi, #F2F4F8);
  text-decoration: none;
}
.ln-mfoot-tag {
  font-size: 0.82rem;
  line-height: 1.55;
  color: var(--ln-fg-mute, #7C8597);
  margin-top: 16px;
  max-width: 300px;
}
.ln-mfoot-col-h {
  font-family: var(--ln-font-mono, "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace);
  font-size: 0.69rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ln-fg-hi, #F2F4F8);
  margin-bottom: 15px;
}
/* Defensive resets (see .ln-mnav-links) — these are semantic <nav> groups, so a
   leftover bare `nav {}` on a not-yet-migrated page must not restyle them. */
.ln-mfoot-links {
  position: static;
  padding: 0;
  display: flex;
  flex-direction: column;
  justify-content: normal;
  gap: 9px;
  background: none;
  border: 0;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.ln-mfoot-link {
  font-size: 0.82rem;
  color: var(--ln-fg, #C7CDD8);
  text-decoration: none;
  transition: color 0.15s;
}
.ln-mfoot-link:hover { color: var(--ln-fg-hi, #F2F4F8); }
.ln-mfoot-link:focus-visible {
  outline: 2px solid var(--ln-indigo, #7C74F0);
  outline-offset: 2px;
  border-radius: 2px;
}
.ln-mfoot-bottom {
  margin-top: 44px;
  padding-top: 20px;
  border-top: 1px solid var(--ln-border, rgba(255, 255, 255, 0.07));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  font-family: var(--ln-font-mono, "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace);
  font-size: 0.72rem;
  color: var(--ln-fg-dim, #525B6E);
}

/* ── Responsive ───────────────────────────────────────────────────────────── */
@media (max-width: 860px) {
  .ln-mfoot-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
}
@media (max-width: 768px) {
  .ln-mnav-links { display: none; }
  .ln-mnav-inner { gap: 12px; }
  .ln-mnav-actions { margin-left: auto; }
}
@media (max-width: 560px) {
  .ln-mfoot-grid { grid-template-columns: 1fr; }
  .ln-mfoot-bottom { flex-direction: column; align-items: flex-start; gap: 8px; }
}
