/* ============================================================
   Brigg legal pages (Personvern, Vilkår)
   Shared styling. Sits on top of colors_and_type.css for tokens.
   ============================================================ */

:root {
  --wrap: 880px;
  --nav-h: 68px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--canvas);
  color: var(--ink);
  font-family: var(--font-sans);
  font-size: 16.5px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
::selection { background: var(--accent-soft); color: var(--accent-ink); }
a { color: inherit; text-decoration: none; }
.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 28px; }

/* ── Top nav (just the wordmark) ── */
.lnav {
  position: sticky; top: 0; z-index: 50;
  height: var(--nav-h);
  background: color-mix(in srgb, var(--canvas) 88%, transparent);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.lnav-in { height: 100%; display: flex; align-items: center; gap: 16px; }
.lnav-in .logo { height: 26px; width: auto; display: block; }
.lnav-in .lang-link {
  margin-left: auto;
  font-size: 13.5px; color: var(--ink-3);
  text-decoration: none;
}
.lnav-in .lang-link:hover { color: var(--ink-1); text-decoration: underline; }

/* ── Document container ── */
.doc { padding: clamp(56px, 8vw, 96px) 0 clamp(72px, 9vw, 112px); }
.doc-head { margin-bottom: clamp(40px, 5vw, 56px); }
.doc-head .eyebrow,
.doc-part-break .eyebrow {
  font-size: 11.5px; font-weight: 600; letter-spacing: .10em;
  text-transform: uppercase; color: var(--ink-4); margin: 0 0 18px;
}
.doc-head h1 {
  font-size: clamp(34px, 4.6vw, 52px);
  font-weight: 600; letter-spacing: -0.024em; line-height: 1.06;
  margin: 0 0 16px; text-wrap: balance;
}
.doc-head .meta { font-size: 13.5px; color: var(--ink-3); margin: 0 0 20px; }
.doc-head .lede,
.doc-part-break .lede {
  font-size: clamp(17px, 1.45vw, 19px);
  color: var(--ink-2); margin: 0; max-width: 56ch; line-height: 1.55;
}

/* ── Document body: numbered sections ── */
.doc-body section {
  padding: clamp(22px, 3vw, 32px) 0;
  border-top: 1px solid var(--line);
}
.doc-body section:last-of-type { border-bottom: 1px solid var(--line); }
.doc-body h2 {
  display: flex; align-items: baseline; gap: 16px;
  font-size: 20px; font-weight: 600; letter-spacing: -0.012em;
  margin: 0 0 14px;
}
.doc-body h2 .num {
  flex: none; min-width: 28px;
  font-family: var(--font-mono); font-size: 15px; font-weight: 500;
  color: var(--ink-4); letter-spacing: 0;
}
.doc-body h2 .t { color: var(--ink); }
.doc-body h3 {
  font-size: 15.5px; font-weight: 600;
  color: var(--ink); margin: 18px 0 8px;
}
.doc-body p { margin: 0 0 12px; color: var(--ink-2); max-width: 64ch; }
.doc-body p.muted { color: var(--ink-3); }
.doc-body p:last-child { margin-bottom: 0; }
.doc-body strong { color: var(--ink); font-weight: 600; }
.doc-body ul { margin: 0 0 12px; padding-left: 22px; }
.doc-body li { margin: 4px 0; color: var(--ink-2); }
.doc-body a.inline {
  color: var(--accent-ink);
  border-bottom: 1px solid color-mix(in srgb, var(--accent) 30%, transparent);
  transition: border-color .14s ease;
}
.doc-body a.inline:hover { border-bottom-color: var(--accent); }

/* ── Ordered lists (the DPA's GDPR art. 28 obligations / measures) ── */
.doc-body ol { margin: 0 0 12px; padding-left: 26px; }
.doc-body ol li { margin: 6px 0; padding-left: 4px; color: var(--ink-2); }

/* ── Checklist (the DPA's ticked security measures): the ☑ glyph is the
      marker, so no list bullet. ── */
.doc-body ul.checklist { list-style: none; padding-left: 0; margin: 8px 0 0; }
.doc-body ul.checklist li { margin: 6px 0; }

/* ── Tables (the DPA's processing-details + sub-processor list) ── */
/* Wrapped in `.table-wrap` so a wide table scrolls within its own box on
   narrow screens instead of being clipped by `.wrap` (which would hide the
   sub-processor "Lenke" column on mobile). */
.doc-body .table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 6px 0 4px; }
.doc-body .table-wrap table { margin: 0; }
.doc-body table {
  width: 100%;
  border-collapse: collapse;
  margin: 6px 0 4px;
  font-size: 14.5px;
  line-height: 1.5;
}
/* The 5-column sub-processor table needs a floor to stay legible; below it
   the `.table-wrap` scrolls. The 2-column key/value table has none, so it
   reflows to fit. */
.doc-body table.subprocessors { min-width: 620px; }
.doc-body th,
.doc-body td {
  text-align: left;
  vertical-align: top;
  padding: 12px 14px;
  border: 1px solid var(--line);
  color: var(--ink-2);
}
.doc-body thead th {
  font-weight: 600;
  color: var(--ink);
  background: var(--chrome);
}
.doc-body th[scope="row"] {
  width: 32%;
  font-weight: 600;
  color: var(--ink);
  background: color-mix(in srgb, var(--chrome) 55%, transparent);
}

/* ── Appended-document break (the DPA tail on the in-app terms page).
      The eyebrow + lede reuse the shared `.eyebrow`/`.lede` rules above; only
      the title differs (a sub-document heading, a tier below the page `h1`,
      and `display:block` to override `.doc-body h2`'s flex). ── */
.doc-part-break {
  margin-top: clamp(52px, 7vw, 84px);
  padding-top: clamp(28px, 4vw, 40px);
  border-top: 2px solid var(--ink);
}
.doc-part-break .part-title {
  display: block;
  font-size: clamp(26px, 3.4vw, 36px); font-weight: 600;
  letter-spacing: -0.02em; line-height: 1.08; margin: 0 0 16px;
}

/* ── Contact callout ── */
.callout {
  margin-top: 28px; padding: 22px 24px;
  background: var(--accent-soft);
  border: 1px solid var(--accent-soft-line);
  border-radius: 16px;
}
.callout h3 {
  font-size: 16px; font-weight: 600;
  color: var(--accent-ink); margin: 0 0 6px;
}
.callout p { color: var(--accent-ink); margin: 0; max-width: none; }
.callout a.inline { color: var(--accent-ink); border-bottom-color: var(--accent); }

/* ── Footer (same shape as index.html) ── */
footer.foot { border-top: 1px solid var(--line); background: var(--chrome); padding: 52px 0 56px; }
footer.foot .wrap { max-width: 1160px; }
.foot-in { display: flex; gap: 40px; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; }
.foot-brand img { height: 24px; width: auto; display: block; margin-bottom: 14px; }
.foot-brand p { font-size: 13.5px; color: var(--ink-3); margin: 0; max-width: 30ch; line-height: 1.5; }
.foot-cols { display: flex; gap: 64px; flex-wrap: wrap; }
.foot-col h5 {
  font-size: 11px; font-weight: 600; letter-spacing: .09em;
  text-transform: uppercase; color: var(--ink-4); margin: 0 0 14px;
}
.foot-col a {
  display: block; font-size: 14px; color: var(--ink-2);
  margin-bottom: 10px; transition: color .12s ease;
}
.foot-col a:hover { color: var(--ink); }
.foot-col a.current { color: var(--ink); font-weight: 500; }
.foot-bot {
  margin-top: 44px; padding-top: 22px; border-top: 1px solid var(--line);
  display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap;
  font-size: 13px; color: var(--ink-4);
}

@media (max-width: 520px) {
  .doc-body h2 { gap: 10px; }
  .doc-body h2 .num { min-width: 22px; }
  .doc-body table { font-size: 13px; }
  .doc-body th,
  .doc-body td { padding: 9px 10px; }
  .doc-body th[scope="row"] { width: 38%; }
}
