/* ForgeInt — legal pages (privacy.html, terms.html). Loaded AFTER page.css.
   Uses ONLY existing tokens (var(--font-*), var(--ink), var(--molten)) so the
   pages read as part of the site, not as a pasted document. No new webfont,
   no new asset, no new colour. The one deliberate deviation: muted text sits
   at 0.58 alpha instead of the site's 0.45, because 0.45 over #09090A is 4.33:1
   and legal text must clear WCAG AA (4.5:1) at these sizes. */

/* ---------- language switch (anchor toggle, no JS, no i18n layer) ---------- */
.lg-lang { display: flex; gap: 20px; margin: 32px 0 0; }
.lg-lang a {
  /* NOT var(--font-mono): Geist Mono has no greek subset, so «ΕΛΛΗΝΙΚΑ» would
     fall back to ui-monospace and sit visibly next to Latin Geist glyphs.
     Inter carries both scripts, so every small label on these pages uses it. */
  font: 500 10.5px/1 var(--font-sans); letter-spacing: 0.16em;
  color: rgba(244,241,236,0.58); text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,0.14); padding-bottom: 5px;
  transition: color 240ms cubic-bezier(0.44,0,0.56,1), border-color 240ms;
}
.lg-lang a:hover { color: var(--molten); border-bottom-color: var(--molten); }

/* ---------- document column ---------- */
.lg-main { padding: 0 clamp(24px, 4vw, 56px) 104px; }
.lg-main .zone-inner { max-width: 1240px; margin: 0 auto; }
/* the measure sits INSIDE the 1240 container, so its left edge lines up with
   the page title instead of floating 210px to its right */
.lg-doc, .lg-split { max-width: 820px; }
.lg-doc { scroll-margin-top: 104px; }

/* both language blocks open with the SAME marker, so neither reads as the
   primary and the other as an appendix */
.lg-eyebrow {
  margin: 0 0 20px; padding-bottom: 14px;
  border-bottom: 1px solid rgba(255,255,255,0.16);
  font: 500 11px/1.4 var(--font-sans); letter-spacing: 0.16em;
  text-transform: uppercase; color: rgba(244,241,236,0.58);
}
.lg-eyebrow b { color: var(--ink); font-weight: 500; }
body.legal .page-head { padding-bottom: 60px; }
.lg-updated {
  margin: 0 0 8px; font: 400 11.5px/1.5 var(--font-sans);
  letter-spacing: 0.04em; color: rgba(244,241,236,0.58);
}
.lg-updated strong { font-weight: 400; color: rgba(244,241,236,0.58); }
/* the date arrives wrapped in <code> because the source marks it as a
   placeholder token; once the real date is substituted at deploy, a date in a
   code box would read as machine output. Strip the code chrome here only. */
.lg-updated code { background: none; border: none; padding: 0; font: inherit; color: inherit; }

.lg-h {
  margin: 54px 0 18px; font: 500 clamp(19px, 1.6vw, 23px)/1.32 var(--font-display);
  letter-spacing: -0.004em; color: var(--ink);
}
.lg-doc > .lg-h:first-child { margin-top: 0; }

.lg-doc p { margin: 0 0 18px; font: 300 15.5px/1.78 var(--font-sans); color: #B9BEC7; }
.lg-doc p strong { color: var(--ink); font-weight: 500; }

.lg-list { margin: 0 0 20px; padding: 0; list-style: none; display: grid; }
.lg-list li {
  position: relative; padding: 11px 0 11px 22px;
  border-top: 1px solid rgba(255,255,255,0.08);
  font: 300 15px/1.7 var(--font-sans); color: #B9BEC7;
}
.lg-list li::before {
  content: "▪"; position: absolute; left: 0; top: 11px; line-height: 1.7;
  font-size: 8px; color: var(--molten);
}
.lg-list li strong { color: var(--ink); font-weight: 500; }

/* ---------- tables (processors, retention, legal bases) ---------- */
.lg-tablewrap { margin: 0 0 28px; overflow-x: auto; }
.lg-table { width: 100%; border-collapse: collapse; }
.lg-table th {
  text-align: left; font: 500 10px/1.4 var(--font-sans); letter-spacing: 0.14em;
  text-transform: uppercase; color: rgba(244,241,236,0.58);
  padding: 0 18px 11px 0; border-bottom: 1px solid rgba(255,255,255,0.16);
  vertical-align: bottom; white-space: nowrap;
}
.lg-table td {
  font: 300 14px/1.68 var(--font-sans); color: #B9BEC7;
  padding: 14px 18px 14px 0; border-bottom: 1px solid rgba(255,255,255,0.08);
  vertical-align: top;
}
.lg-table td:last-child, .lg-table th:last-child { padding-right: 0; }
.lg-table td strong { color: var(--ink); font-weight: 500; }

/* ---------- inline ---------- */
.lg-doc code {
  font: 400 12.5px/1 var(--font-mono); color: rgba(244,241,236,0.82);
  background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.08);
  border-radius: 4px; padding: 2px 6px;
}
.lg-doc a {
  color: var(--ink); text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,0.28); transition: color 200ms, border-color 200ms;
}
.lg-doc a:hover { color: var(--molten); border-bottom-color: var(--molten); }

.lg-rule { border: none; border-top: 1px solid rgba(255,255,255,0.10); margin: 46px 0 26px; }
.lg-prevail { color: rgba(244,241,236,0.58) !important; font-size: 13.5px !important; }
.lg-split { border: none; border-top: 1px solid rgba(255,255,255,0.16); margin: 92px 0 76px; }

/* ---------- small screens ---------- */
@media (max-width: 700px) {
  .lg-h { margin-top: 42px; }
  .lg-doc p { font-size: 15px; }
  .lg-split { margin: 64px 0 56px; }

  /* Tables stack instead of scrolling sideways. The 3-column processors table
     ran off the right edge at 390px, so its last column ("what they see") was
     simply not readable — unacceptable for a table that exists to disclose. */
  .lg-tablewrap { overflow-x: visible; }
  .lg-table, .lg-table tbody, .lg-table tr, .lg-table td { display: block; width: 100%; }
  .lg-table thead { display: none; }
  .lg-table tr { padding: 16px 0; border-top: 1px solid rgba(255,255,255,0.16); }
  .lg-table tr:first-child { border-top: none; padding-top: 0; }
  .lg-table td { border: none; padding: 0 0 12px; }
  .lg-table td:last-child { padding-bottom: 0; }
  .lg-table td::before {
    content: attr(data-label); display: block; margin-bottom: 4px;
    font: 500 9.5px/1.4 var(--font-sans); letter-spacing: 0.14em;
    text-transform: uppercase; color: rgba(244,241,236,0.58);
  }
  .lg-table td[data-label=""]::before { display: none; }
}

/* ── PRINT ────────────────────────────────────────────────────────────────────
   Privacy and Terms are documents the visitor has a right to keep (GDPR Art. 12
   - "in a concise, transparent, intelligible and easily accessible form"). On
   screen they sit on a near-black background, so printing them produced a black
   page. legal.css is loaded by privacy.html and terms.html only, so this block
   cannot affect any other page. */
@media print {
  html, body { background: #fff !important; color: #000 !important; }
  body { font-size: 11pt; line-height: 1.5; }

  /* the whole atmosphere layer: 3D canvases, cursor, ambient chrome */
  canvas, #gl, #field, #field-text, #field-inv,
  .fi-nav, .site-footer, .fi-cursor, .cursor, .heat-pill, .pill-cta,
  .lg-toc, .scrim, .grain, .vignette { display: none !important; }

  .lg-wrap, .lg-doc, .lg-body, main, article, section { background: transparent !important;
    color: #000 !important; max-width: none !important; width: auto !important;
    padding: 0 !important; margin: 0 !important; box-shadow: none !important; }

  h1, h2, h3, h4, .lg-h, .page-title, .lg-updated strong { color: #000 !important;
    page-break-after: avoid; break-after: avoid; }
  p, li, td, th, .lg-body { color: #000 !important; }
  strong, b { color: #000 !important; font-weight: 700; }
  code, .lg-updated code { background: #f2f2f2 !important; color: #000 !important;
    border: 1px solid #ccc !important; padding: 0 3px; }

  table { width: 100% !important; border-collapse: collapse !important;
    page-break-inside: avoid; break-inside: avoid; }
  th, td { border: 1px solid #999 !important; padding: 5px 7px !important;
    color: #000 !important; background: #fff !important; }
  thead { display: table-header-group; }

  /* clip-path masks the titles until JS adds .in - never leave a printed page blank */
  .page-title, .page-title:not(.in), [data-reveal], .lg-doc * {
    clip-path: none !important; opacity: 1 !important; transform: none !important;
    visibility: visible !important; filter: none !important; }

  /* a printed link is useless without its destination */
  a { color: #000 !important; text-decoration: underline; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 9pt; word-break: break-all; }
  a[href^="mailto:"]::after { content: " (" attr(href) ")"; font-size: 9pt; }
  a[href^="#"]::after, a[href^="/"]::after { content: ""; }

  p, li, blockquote { page-break-inside: avoid; break-inside: avoid; orphans: 3; widows: 3; }
  @page { margin: 16mm 14mm; }
}

/* language nav on the legal pages now crosses languages instead of scrolling */
.lg-lang .on { color: var(--molten); border-bottom: 1px solid var(--molten); padding-bottom: 3px; }
@media print { .lang-chip, .lg-lang { display: none !important; } }
