/* Regulamin i polityka prywatności: jedna kolumna do czytania (ok. 70 znaków), spis treści
   na górze, od 1024 px przyklejony z lewej. Tylko tokeny z base.css; bez ruchu poza reveal
   (tu żadnego: tekst prawny ma być widoczny od razu). */

.legal {
  padding-block: var(--s-10) var(--s-16);
}
@media (min-width: 48rem) {
  .legal { padding-top: var(--s-12); }
}

/* ---------- Nagłówek dokumentu ---------- */

.legal-head { max-width: 70ch; }
.legal-back .icon { transform: scaleX(-1); }
a.link-action.legal-back { gap: var(--s-2); text-decoration: none; }
@media (hover: hover) and (pointer: fine) {
  a.link-action.legal-back:hover { text-decoration: underline; }
}
.legal-head h1 {
  margin-top: var(--s-6);
  font-size: clamp(2.75rem, 2rem + 3vw, 4.5rem);
}
.legal-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-1) var(--s-3);
  margin-top: var(--s-4);
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: var(--fs-small);
  color: var(--c-text-2);
}
.legal-intro { margin-top: var(--s-6); }
.legal-intro p {
  font-size: var(--fs-lead);
  line-height: 1.55;
  color: var(--c-text-2);
  text-wrap: pretty;
}
.legal-intro p + p { margin-top: var(--s-4); }
.legal-tools {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 var(--s-6);
  margin-top: var(--s-4);
}
.legal-tools > a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; }
.legal-tools .legal-print { font-size: inherit; }

/* ---------- Układ: spis treści + treść ---------- */

.legal-layout {
  margin-top: var(--s-10);
  display: grid;
  gap: var(--s-10);
}
@media (min-width: 64rem) {
  .legal-layout {
    grid-template-columns: minmax(0, 280px) minmax(0, 1fr);
    gap: var(--s-12);
    align-items: start;
  }
  .legal-toc {
    position: sticky;
    top: calc(var(--nav-h) + var(--s-6));
    max-height: calc(100vh - var(--nav-h) - var(--s-10));
    max-height: calc(100svh - var(--nav-h) - var(--s-10));
    overflow-y: auto;
    overscroll-behavior: contain;
  }
}

/* ---------- Spis treści ---------- */

.legal-toc {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--r-card);
  padding: var(--s-5) var(--s-4) var(--s-4);
}
.legal-toc__h {
  font-family: var(--font-body);
  font-size: var(--fs-caption);
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--c-text);
}
.legal-toc__h .muted { letter-spacing: 0.02em; text-transform: none; font-weight: 600; }
ol.legal-toc__list { margin-top: var(--s-3); }
.legal-toc__list a {
  display: grid;
  grid-template-columns: 3.25em minmax(0, 1fr);
  gap: var(--s-2);
  align-items: baseline;
  min-height: 32px;
  padding-block: var(--s-1);
  font-size: var(--fs-small);
  line-height: 1.4;
  color: var(--c-text);
  text-decoration: none;
}
.legal-toc__num { font-family: var(--font-mono); font-weight: 500; color: var(--c-accent); }
@media (hover: hover) and (pointer: fine) {
  .legal-toc__list a:hover > span:last-child { text-decoration: underline; text-underline-offset: 0.18em; }
}

/* ---------- Treść ---------- */

.legal-body { max-width: 70ch; min-width: 0; }
.legal-body p, .legal-body li { text-wrap: pretty; overflow-wrap: break-word; }
.legal-section + .legal-section { margin-top: var(--s-12); }
.legal-section > * + * { margin-top: var(--s-4); }
.legal-section__h {
  font-family: var(--font-body);
  font-weight: 800;
  font-size: var(--fs-h3);
  line-height: var(--lh-heading);
  letter-spacing: -0.01em;
  padding-top: var(--s-4);
  border-top: 1px solid var(--c-border);
}
.legal-section__num {
  font-family: var(--font-mono);
  font-weight: 500;
  color: var(--c-accent);
  margin-right: var(--s-2);
}

/* Ustępy: numeracja 1., 2., ...; punkty w ustępie: 1), 2), ... */
ol.legal-ol {
  list-style: decimal;
  padding-left: 2em;
}
ol.legal-ol > li { padding-left: var(--s-1); }
ol.legal-ol > li + li { margin-top: var(--s-3); }
ol.legal-ol > li::marker { color: var(--c-text-2); font-variant-numeric: tabular-nums; }
ol.legal-ol li > p + p,
ol.legal-ol li > ol + p,
ol.legal-ol li > p + ol { margin-top: var(--s-3); }
ol.legal-ol--pkt {
  list-style: none;
  padding-left: 2em;
  counter-reset: pkt;
}
ol.legal-ol--pkt > li { position: relative; counter-increment: pkt; padding-left: 0; }
ol.legal-ol--pkt > li + li { margin-top: var(--s-2); }
ol.legal-ol--pkt > li::before {
  content: counter(pkt) ")";
  position: absolute;
  right: calc(100% + 0.6em);
  color: var(--c-text-2);
}

/* Tabela celów przetwarzania: od 768 px zwykła tabela, niżej karta na wiersz. */
.legal-table { margin-top: var(--s-6); }
.legal-table table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--fs-small);
  line-height: 1.5;
}
.legal-table th {
  text-align: left;
  vertical-align: bottom;
  font-size: var(--fs-caption);
  font-weight: 800;
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--c-text-2);
  padding: 0 var(--s-3) var(--s-2) 0;
  border-bottom: 1px solid var(--c-field-border);
}
.legal-table td {
  vertical-align: top;
  padding: var(--s-3) var(--s-3) var(--s-3) 0;
  border-bottom: 1px solid var(--c-border);
  overflow-wrap: break-word;
}
.legal-table td:first-child { font-weight: 600; }
@media (max-width: 47.99rem) {
  .legal-table thead {
    position: absolute; width: 1px; height: 1px; overflow: hidden;
    clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
  }
  .legal-table table, .legal-table tbody, .legal-table tr, .legal-table td { display: block; width: 100%; }
  .legal-table tr {
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--r-card);
    padding: var(--s-4);
  }
  .legal-table tr + tr { margin-top: var(--s-3); }
  .legal-table td { padding: 0; border: 0; }
  .legal-table td + td { margin-top: var(--s-3); }
  .legal-table td::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 2px;
    font-size: var(--fs-caption);
    font-weight: 800;
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
    color: var(--c-text-2);
  }
  .legal-table td:first-child { font-size: var(--fs-body); }
}

.legal-end { margin-top: var(--s-16); }
.legal-end .legal-back { gap: var(--s-2); }

/* ---------- Druk (regulamin § 22 ust. 4) ---------- */

@media print {
  :root { color-scheme: light; }
  body { background: Canvas; color: CanvasText; }
  .skip-link, .site-header, .site-footer, .legal-toc, .legal-back, .legal-tools, .legal-end { display: none !important; }
  .legal { padding: 0; width: 100%; }
  .legal-layout { display: block; margin-top: 12pt; }
  .legal-body, .legal-head { max-width: none; }
  .legal-intro p, .legal-meta, .legal-table th { color: CanvasText; }
  .legal-section__num, .legal-body a { color: CanvasText; }
  .legal-section { break-inside: auto; }
  .legal-section__h { break-after: avoid; border-top-color: GrayText; }
}

@media (max-width: 29.99rem) {
  .legal-meta { flex-direction: column; }
  .legal-meta > [aria-hidden="true"] { display: none; }
}
