@charset "UTF-8";
/* ==========================================================================
   Blok: Dokument prawny — spis treści przy krawędzi, dokument obok
   Szerokość kontenera wypełnia nawigacja, nie rozciągnięty akapit. Kolumna
   tekstu nie ma narzuconego max-width — jej szerokość wynika z siatki.
   ========================================================================== */

.legal__head {
  margin-bottom: clamp(2.5rem, 6vw, 4rem);
  padding-bottom: clamp(1.5rem, 4vw, 2.5rem);
  border-bottom: 1px solid var(--line);
}
.legal__lead p:last-child { margin-bottom: 0; }
.legal__updated {
  margin: var(--space-4) 0 0;
  font-size: var(--fs-xs);
  letter-spacing: var(--tracking-wide);
  color: var(--muted);
}

/* --- Siatka: spis treści + dokument -------------------------------------- */
.legal__grid {
  display: grid;
  grid-template-columns: 300px minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: start;
}

/* --- Spis treści ---------------------------------------------------------- */
.legal__toc {
  position: sticky;
  /* Pod nagłówkiem i paskiem administratora — inaczej chowa się za sticky header. */
  top: calc(var(--header-h) + var(--admin-bar) + 1.5rem);
  max-height: calc(100dvh - var(--header-h) - var(--admin-bar) - 3rem);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-right: var(--space-4);
  border-right: 1px solid var(--line);
}
.legal__toc-title {
  font-family: var(--font-body);
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: var(--space-4);
}
.legal__toc-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1px;
}
.legal__toc-item a {
  display: grid;
  grid-template-columns: 2.6rem minmax(0, 1fr);
  gap: var(--space-2);
  padding: 0.5rem 0;
  font-size: var(--fs-xs);
  line-height: 1.4;
  color: var(--muted);
  text-decoration: none;
  transition: color var(--dur) var(--ease);
}
.legal__toc-item a:hover,
.legal__toc-item a:focus-visible { color: var(--accent-deep); text-decoration: none; }
.legal__toc-num {
  font-family: var(--font-display);
  color: var(--stone);
  transition: color var(--dur) var(--ease);
}
.legal__toc-item a:hover .legal__toc-num { color: var(--accent-deep); }

/* --- Dokument ------------------------------------------------------------- */
.legal__doc { min-width: 0; }

.legal__par {
  /* Kotwica ze spisu treści musi zatrzymać się pod przyklejonym nagłówkiem. */
  scroll-margin-top: calc(var(--header-h) + var(--admin-bar) + 1.5rem);
}
.legal__par + .legal__par {
  margin-top: clamp(2.5rem, 5vw, 3.5rem);
  padding-top: clamp(2.5rem, 5vw, 3.5rem);
  border-top: 1px solid var(--line);
}
.legal__par:target .legal__par-num { color: var(--accent-deep); }

.legal__par-title {
  font-size: var(--fs-h3);
  line-height: var(--lh-snug);
  margin-bottom: var(--space-5);
}
.legal__par-num {
  display: block;
  font-size: var(--fs-xs);
  font-family: var(--font-body);
  font-weight: 600;
  letter-spacing: var(--tracking-wide);
  color: var(--stone);
  margin-bottom: var(--space-2);
  transition: color var(--dur) var(--ease);
}

/* Treść paragrafu — bez max-width, szerokość bierze się z kolumny siatki. */
.legal__par-body { font-size: var(--fs-body); line-height: var(--lh-body); }
.legal__par-body > :last-child { margin-bottom: 0; }
.legal__par-body h3 {
  font-size: var(--fs-h4);
  margin-top: var(--space-6);
  margin-bottom: var(--space-3);
}
.legal__par-body ol,
.legal__par-body ul { padding-left: 1.4em; margin-bottom: var(--space-4); }
.legal__par-body li { margin-bottom: var(--space-3); }
.legal__par-body li:last-child { margin-bottom: 0; }
.legal__par-body li > ol,
.legal__par-body li > ul { margin-top: var(--space-3); }
.legal__par-body a { color: var(--accent-deep); }

/* Tabela zasad zwrotu — czyta się lepiej niż ten sam warunek opisany zdaniem. */
.legal__par-body table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: var(--space-4);
  font-size: var(--fs-xs);
}
.legal__par-body th,
.legal__par-body td {
  text-align: left;
  vertical-align: top;
  padding: var(--space-3) var(--space-4) var(--space-3) 0;
  border-bottom: 1px solid var(--line);
  line-height: 1.45;
}
.legal__par-body th {
  font-weight: 600;
  letter-spacing: var(--tracking-wide);
  color: var(--muted);
  border-bottom-color: var(--line-strong);
}
.legal__par-body td:last-child,
.legal__par-body th:last-child { padding-right: 0; }
.legal__par-body tr:last-child td { border-bottom: 0; }
.section--dark .legal__par-body th,
.section--dark .legal__par-body td { border-bottom-color: var(--line-on-dark); }

/* Brakująca dana rejestrowa — ma kłuć w oczy, żeby nie wyszła na produkcję. */
.legal__todo {
  background: #fde68a;
  color: #713f12;
  padding: 0.1em 0.45em;
  border-radius: var(--radius-sm);
  font-size: 0.9em;
  font-weight: 600;
  white-space: nowrap;
}

/* --- Wariant na ciemnym tle ------------------------------------------------ */
.section--dark .legal__toc { border-right-color: var(--line-on-dark); }
.section--dark .legal__head,
.section--dark .legal__par + .legal__par { border-color: var(--line-on-dark); }
.section--dark .legal__toc-item a,
.section--dark .legal__toc-title,
.section--dark .legal__updated { color: var(--on-dark-muted); }
.section--dark .legal__toc-item a:hover { color: var(--accent); }
.section--dark .legal__par-body a { color: var(--accent); }

/* --- Responsywność --------------------------------------------------------- */
@media (max-width: 1000px) {
  /* Spis treści wraca nad dokument. Przy kilkunastu paragrafach lista w jednej
     kolumnie byłaby dłuższa niż pierwszy ekran, więc łamiemy ją na dwie. */
  .legal__grid { grid-template-columns: minmax(0, 1fr); gap: clamp(2rem, 5vw, 3rem); }
  .legal__toc {
    position: static;
    max-height: none;
    overflow: visible;
    padding: var(--space-5);
    padding-bottom: var(--space-4);
    border-right: 0;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
  }
  .legal__toc-list { grid-template-columns: 1fr 1fr; gap: 0 var(--space-5); }
  .section--dark .legal__toc { background: var(--dark-2); border-color: var(--line-on-dark); }
}

@media (max-width: 600px) {
  .legal__toc-list { grid-template-columns: 1fr; }
}
