/* Datasphere — legal pages (privacy, terms)
   Layers on top of _astro/index.DX7saar6.css: reuses its reset, Geist/Aeonik
   faces, palette and the 0.694vw root font-size (capped at 10px above 1441px),
   so every rem below is written as max(<rem>, <px floor>) like the rest of the site. */

:root {
  --l-ink: #0a0d12;
  --l-ink-soft: #181d27;
  --l-body: #535862;
  --l-muted: #93979f;
  --l-line: #eef0f1;
  --l-surface: #f6f7f8;
  --l-accent: #9552e0;
  --l-accent-soft: #f9f5ff;
}

/* ---------- shell ---------- */

.l-main {
  padding-top: max(16rem, 120px);
  padding-bottom: max(12rem, 80px);
}

.l-wrap {
  width: 100%;
  max-width: 1002px;
  margin: 0 auto;
  padding: 0 24px;
}

@media (max-width: 500px) {
  .l-wrap { padding: 0 16px; }
}

/* ---------- masthead ---------- */

.l-head {
  border-bottom: 1px solid var(--l-line);
  padding-bottom: max(5.6rem, 40px);
}

.l-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 28px;
  padding: 0 12px;
  border-radius: 32px;
  background: var(--l-accent-soft);
  color: var(--l-accent);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: -.01em;
}

.l-eyebrow:before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
}

.l-title {
  font-family: Aeonik, sans-serif;
  font-size: max(5.6rem, 36px);
  line-height: 1.0714285714;
  letter-spacing: -.02em;
  color: var(--l-ink);
  margin: max(2.4rem, 16px) 0 max(1.6rem, 12px);
}

.l-standfirst {
  font-size: max(1.9rem, 17px);
  line-height: 1.4705882353;
  letter-spacing: -.01em;
  max-width: 34em;
}

.l-stamp {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 24px;
  margin-top: max(3.2rem, 24px);
  font-size: 14px;
  color: var(--l-muted);
}

.l-stamp strong { color: var(--l-ink-soft); font-weight: 600; }

/* ---------- short version ---------- */

.l-summary {
  margin-top: max(5.6rem, 40px);
  padding: max(3.2rem, 24px);
  border-radius: 24px;
  background: var(--l-surface);
}

.l-summary__label {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--l-muted);
  margin-bottom: max(1.6rem, 12px);
}

.l-summary p {
  font-size: max(1.8rem, 16px);
  line-height: 1.5;
  letter-spacing: -.01em;
  color: var(--l-ink-soft);
}

.l-summary p + p { margin-top: max(1.4rem, 12px); }

/* ---------- body layout ---------- */

.l-body {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: max(8rem, 56px);
  align-items: start;
  margin-top: max(8rem, 56px);
}

/* Grid items default to min-width:auto, so the 520px min-width on the tables
   would push the content column past the viewport instead of scrolling
   inside .l-table-wrap. */
.l-body > * { min-width: 0; }

@media (max-width: 900px) {
  .l-body { grid-template-columns: 1fr; gap: max(4.8rem, 36px); }
}

/* ---------- contents ---------- */

.l-toc {
  position: sticky;
  top: 120px;
}

@media (max-width: 900px) {
  .l-toc {
    position: static;
    padding: max(2.4rem, 20px);
    border: 1px solid var(--l-line);
    border-radius: 24px;
  }
}

.l-toc__label {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--l-muted);
  margin-bottom: max(1.6rem, 14px);
}

.l-toc__list {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.l-toc__link {
  display: flex;
  gap: 10px;
  padding: 6px 0;
  font-size: 14px;
  line-height: 1.3;
  letter-spacing: -.01em;
  color: var(--l-body);
  transition: color .3s ease;
}

.l-toc__link span { color: var(--l-muted); font-variant-numeric: tabular-nums; }
.l-toc__link:hover { color: var(--l-ink); }
.l-toc__link:hover span { color: var(--l-accent); }

/* ---------- sections ---------- */

.l-section + .l-section { margin-top: max(6.4rem, 48px); }

.l-section__num {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .04em;
  color: var(--l-accent);
  font-variant-numeric: tabular-nums;
}

.l-section h2 {
  font-family: Aeonik, sans-serif;
  font-size: max(2.8rem, 22px);
  line-height: 1.2;
  letter-spacing: -.015em;
  color: var(--l-ink);
  margin: max(1rem, 8px) 0 max(2rem, 16px);
}

.l-section h3 {
  font-size: max(1.8rem, 16px);
  font-weight: 600;
  letter-spacing: -.01em;
  color: var(--l-ink-soft);
  margin: max(3.2rem, 24px) 0 max(1.2rem, 10px);
}

.l-section p,
.l-section li {
  font-size: max(1.7rem, 16px);
  line-height: 1.5882352941;
  letter-spacing: -.005em;
}

.l-section p + p { margin-top: max(1.8rem, 16px); }

.l-section strong { color: var(--l-ink-soft); font-weight: 600; }

.l-section a:not(.l-toc__link) {
  color: var(--l-ink);
  font-weight: 500;
  box-shadow: inset 0 -1px currentColor;
  transition: color .3s ease, box-shadow .3s ease;
}

.l-section a:not(.l-toc__link):hover {
  color: var(--l-accent);
  box-shadow: inset 0 -1px transparent;
}

.l-list {
  margin-top: max(1.8rem, 16px);
  display: flex;
  flex-direction: column;
  gap: max(1.2rem, 10px);
}

.l-list li {
  position: relative;
  padding-left: 22px;
}

.l-list li:before {
  content: "";
  position: absolute;
  left: 4px;
  top: .65em;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--l-muted);
}

.l-note {
  margin-top: max(2.4rem, 20px);
  padding: max(2rem, 16px) max(2.4rem, 20px);
  border-left: 2px solid var(--l-accent);
  background: var(--l-accent-soft);
  border-radius: 0 16px 16px 0;
}

.l-note p { font-size: max(1.6rem, 15px) !important; color: var(--l-ink-soft); }

/* ---------- tables ---------- */

.l-table-wrap {
  margin-top: max(2.4rem, 20px);
  border: 1px solid var(--l-line);
  border-radius: 20px;
  overflow-x: auto;
}

.l-table {
  width: 100%;
  min-width: 520px;
  border-collapse: collapse;
  text-align: left;
}

.l-table th,
.l-table td {
  padding: max(1.6rem, 14px) max(2rem, 16px);
  font-size: max(1.5rem, 14px);
  line-height: 1.4285714286;
  letter-spacing: -.005em;
  vertical-align: top;
}

.l-table th {
  font-weight: 600;
  color: var(--l-ink-soft);
  background: var(--l-surface);
  white-space: nowrap;
}

.l-table tbody th { background: transparent; white-space: normal; }
.l-table tr + tr { border-top: 1px solid var(--l-line); }
.l-table td { color: var(--l-body); }

/* ---------- closing card ---------- */

.l-cta {
  margin-top: max(8rem, 56px);
  padding: max(4.8rem, 36px) max(3.2rem, 24px);
  border-radius: 32px;
  background: var(--l-surface);
  text-align: center;
}

.l-cta__title {
  font-family: Aeonik, sans-serif;
  font-size: max(3.2rem, 24px);
  line-height: 1.1666666667;
  letter-spacing: -.015em;
  color: var(--l-ink);
}

.l-cta__desc {
  font-size: max(1.7rem, 16px);
  line-height: 1.5;
  letter-spacing: -.01em;
  margin: max(1.2rem, 10px) auto max(2.8rem, 22px);
  max-width: 38em;
}

.l-cta .c-button { margin: 0 auto; }

/* ---------- footer strip ---------- */

.l-foot {
  border-top: 1px solid var(--l-line);
  padding: max(3.2rem, 24px) 0;
}

.l-foot__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}

.l-foot__left { display: flex; align-items: center; gap: 16px; }
.l-foot__logo img { height: 20px; display: block; }

.l-foot__links { display: flex; gap: 20px; }

.l-foot__link {
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -.01em;
  color: var(--l-body);
  transition: color .3s ease;
}

.l-foot__link:hover { color: var(--l-ink); }
.l-foot__link[aria-current="page"] { color: var(--l-ink); }
