/* ==========================================================================
   PRAVNE STRANKY (/vop, /ochrana-osobnych-udajov, /cookies,
   /spracovanie-udajov, /subdodavatelia)

   Nacita sa az za brand.css. Riesi len citatelnost dlheho textu a tabuliek.
   Tabulka sa nikdy nesmie roztiahnut cez okraj stranky: je vzdy vo vlastnom
   kontajneri .tbl-scroll, ktory sa posuva do strán sam za seba.
   ========================================================================== */

.legal {
  padding: 40px 0 64px;
}

/* okolo 70 znakov na riadok */
.legal .doc {
  max-width: 68ch;
  margin: 0 auto;
  font-size: 15.5px;
  line-height: 1.72;
  color: var(--text);
  /* dlhe slova (adresy, identifikatory) nesmu roztiahnut stranku */
  overflow-wrap: break-word;
}

.legal .doc h1 {
  font-size: clamp(25px, 4.4vw, 34px);
  line-height: 1.18;
  margin: 0 0 14px;
}

.legal .doc h2 {
  font-size: clamp(19px, 2.6vw, 22px);
  line-height: 1.28;
  margin: 42px 0 12px;
  padding-top: 4px;
}

.legal .doc h3 {
  font-size: clamp(16px, 2vw, 17.5px);
  line-height: 1.35;
  margin: 28px 0 8px;
}

.legal .doc p { margin: 0 0 15px; }
.legal .doc strong { color: var(--ink); font-weight: 700; }

.legal .doc a {
  color: var(--accent-d);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.legal .doc a:hover { color: var(--ink); }

.legal .doc ul,
.legal .doc ol { margin: 0 0 16px; padding-left: 22px; }
.legal .doc li { margin-bottom: 7px; }
.legal .doc li::marker { color: var(--muted); }

.legal .doc hr {
  border: 0;
  border-top: 1px solid var(--line);
  margin: 34px 0;
}

.legal .doc code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: .88em;
  background: var(--soft);
  color: var(--accent-ink, #2a2f7a);
  padding: 1px 5px;
  border-radius: 5px;
  white-space: nowrap;
}

/* ---------- tabulky ---------- */

/* kontajner sa posuva do strán, stranka nikdy nepreteka */
.legal .tbl-scroll {
  margin: 0 0 20px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--card);
  /* jemny tien na okrajoch napovie, ze sa da posunut */
  background-image:
    linear-gradient(to right, var(--card) 30%, rgba(255,255,255,0)),
    linear-gradient(to left, var(--card) 30%, rgba(255,255,255,0)),
    linear-gradient(to right, rgba(22,24,29,.10), rgba(22,24,29,0)),
    linear-gradient(to left, rgba(22,24,29,.10), rgba(22,24,29,0));
  background-position: left center, right center, left center, right center;
  background-repeat: no-repeat;
  background-size: 40px 100%, 40px 100%, 14px 100%, 14px 100%;
  background-attachment: local, local, scroll, scroll;
}
.legal .tbl-scroll:focus-visible {
  outline: 3px solid rgba(79, 91, 213, .35);
  outline-offset: 2px;
}

.legal table {
  border-collapse: collapse;
  width: 100%;
  min-width: 560px;
  font-size: 14px;
  line-height: 1.55;
}

.legal thead th {
  text-align: left;
  font-weight: 700;
  color: var(--ink);
  background: var(--soft);
  padding: 11px 14px;
  border-bottom: 1px solid var(--line);
  white-space: nowrap;
}

.legal tbody td {
  padding: 11px 14px;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
  color: var(--text);
}
.legal tbody tr:last-child td { border-bottom: 0; }
.legal tbody td:empty { padding: 0 14px; }

/* Na telefone sa siroke tabulky prepnu do kariet: kazdy riadok je jedna karta
   a bunka nesie svoj nadpis pred sebou. Ziadne posuvanie, ziadne pretekanie. */
@media (max-width: 640px) {
  .legal .tbl-scroll {
    border: 0;
    border-radius: 0;
    background: none;
    overflow-x: visible;
  }
  .legal table { min-width: 0; display: block; }
  .legal thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .legal tbody { display: block; }
  .legal tbody tr {
    display: block;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--card);
    padding: 4px 14px;
    margin-bottom: 12px;
  }
  .legal tbody td {
    display: block;
    padding: 9px 0;
    border-bottom: 1px solid var(--line);
  }
  .legal tbody tr td:last-child { border-bottom: 0; }
  .legal tbody td:empty { display: none; }
  .legal tbody td::before {
    content: attr(data-th);
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 3px;
  }
  .legal tbody td[data-th=""]::before { display: none; }
  .legal .doc code { white-space: normal; }
}

/* ---------- spodok stranky ---------- */

.legal .back {
  max-width: 68ch;
  margin: 36px auto 0;
  padding-top: 22px;
  border-top: 1px solid var(--line);
}
.legal .back a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-size: 14.5px;
  color: var(--accent-d);
}
.legal .back a:hover { color: var(--ink); }
.legal .back svg { flex: none; }

@media (max-width: 640px) {
  .legal { padding: 26px 0 44px; }
  .legal .doc { font-size: 15px; }
  .legal .doc h2 { margin-top: 34px; }
}
