/* ------------------------------------------------------------------
   Právní texty — Zásady ochrany soukromí
   Dlouhé souvislé čtení, takže užší sloupec a větší řádkování než
   ve zbytku webu. Obsah po straně drží při scrollování.
   ------------------------------------------------------------------ */
.legal { padding: clamp(60px,6.5vw,100px) 0 clamp(76px,8vw,116px); }
.legal-layout { display: grid; grid-template-columns: minmax(0,1fr); gap: clamp(36px,4vw,56px); }

.legal-toc { align-self: start; }
.legal-toc-title { margin: 0 0 14px; color: var(--muted); font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.legal-toc ol { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; counter-reset: legal; }
.legal-toc a { display: block; padding: 7px 0; color: var(--ink); font-size: 14px; font-weight: 700; line-height: 1.4; transition: color .18s ease; }
.legal-toc a::before { margin-right: 9px; color: var(--cyan-deep); content: counter(legal) "."; counter-increment: legal; font-variant-numeric: tabular-nums; }
.legal-toc a:hover, .legal-toc a:focus-visible { color: var(--cyan-deep); }

.legal-body { max-width: 74ch; color: var(--ink); font-size: 16px; line-height: 1.72; }
.legal-body > section + section { margin-top: clamp(40px,4vw,60px); }
.legal-body h2 { margin: 0 0 18px; font-size: clamp(23px,2.1vw,29px); font-weight: 800; letter-spacing: -.03em; line-height: 1.2; scroll-margin-top: 24px; }
.legal-body h3 { margin: 30px 0 8px; font-size: 17px; font-weight: 800; letter-spacing: -.01em; }
.legal-body p { margin: 0 0 16px; }
.legal-body p:last-child, .legal-body ul:last-child { margin-bottom: 0; }
.legal-body ul { margin: 0 0 16px; padding-left: 22px; }
.legal-body li { margin-bottom: 8px; }
.legal-body li:last-child { margin-bottom: 0; }
.legal-body a { color: var(--cyan-deep); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.legal-body a:hover, .legal-body a:focus-visible { color: var(--ink); }
.legal-body strong { font-weight: 800; }

/* Shrnutí nahoře — ať je hlavní sdělení vidět bez čtení celého dokumentu. */
.legal-summary { margin: 0 0 clamp(40px,4vw,56px); border: 1px solid var(--line); border-left: 3px solid var(--cyan-deep); border-radius: 0 18px 18px 0; padding: 24px 26px; background: var(--white); }
.legal-summary p { margin: 0 0 10px; color: var(--muted); font-size: 15px; }
.legal-summary p:last-child { margin-bottom: 0; }
.legal-summary strong { color: var(--ink); }

/* Údaje správce a kontakty. */
.legal-facts { display: grid; gap: 12px; margin: 0 0 18px; padding: 0; }
.legal-facts div { display: grid; grid-template-columns: minmax(0,148px) minmax(0,1fr); gap: 6px 18px; }
.legal-facts dt { color: var(--muted); font-size: 14px; font-weight: 700; }
.legal-facts dd { margin: 0; font-weight: 700; }

/* Tabulka kategorií cookies — na mobilu se posouvá vodorovně sama. */
.legal-table-wrap { overflow-x: auto; margin: 0 0 18px; border: 1px solid var(--line); border-radius: 16px; background: var(--white); }
.legal-table { width: 100%; min-width: 520px; border-collapse: collapse; font-size: 14.5px; }
.legal-table th, .legal-table td { padding: 13px 18px; text-align: left; vertical-align: top; }
.legal-table thead th { border-bottom: 1px solid var(--line); color: var(--muted); font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.legal-table tbody tr + tr th, .legal-table tbody tr + tr td { border-top: 1px solid var(--line); }
.legal-table tbody th { width: 27%; font-weight: 800; }

/* Nevyplněný údaj z configu. Musí být vidět na první pohled, aby s ním
   nikdo dokument nepustil do provozu. */
.legal-todo { border-radius: 6px; padding: 1px 8px; background: #ffe9a8; color: #6b4d00; font-weight: 800; }

.legal-note { margin-top: clamp(40px,4vw,56px); border-top: 1px solid var(--line); padding-top: 22px; color: var(--muted); font-size: 14px; }

@media (min-width: 1024px) {
  .legal-layout { grid-template-columns: minmax(0,232px) minmax(0,1fr); gap: clamp(48px,5vw,84px); }
  .legal-toc { position: sticky; top: 28px; }
}

@media (max-width: 640px) {
  .legal-body { font-size: 15.5px; }
  .legal-summary { border-radius: 16px; padding: 20px; }
  .legal-facts div { grid-template-columns: minmax(0,1fr); gap: 2px; }
  .legal-toc { border-bottom: 1px solid var(--line); padding-bottom: 22px; }
}
