/* ============================================================================
   LunchDrive — Právní stránky (obchodní podmínky, podmínky užití, GDPR, DPA)
   Sdílený layout: čtecí sloupec + sticky obsah (TOC). Načítá se jen na
   právních stránkách nad tokens.css + homepage-stripe.css (nav + patička).
   ============================================================================ */

.s-legal {
  --legal-nav-h: 64px;          /* výška sticky navigace (.s-nav) */
  --legal-read-w: 760px;        /* max. šířka čtecího sloupce */
  --legal-toc-w: 240px;
  background: var(--paper);
}

/* Plynulý scroll pro kotvy v obsahu (vypnuto v prefers-reduced-motion níže) */
html:has(.s-legal) { scroll-behavior: smooth; }

/* ---- Kontejner ---------------------------------------------------------- */
.s-legal__wrap {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--gutter);
}

/* ---- Hlavička (bez marketingového hera) --------------------------------- */
.s-legal__header {
  padding: clamp(40px, 7vw, 88px) 0 clamp(28px, 4vw, 44px);
  border-bottom: 1px solid var(--line);
}
.s-legal__header-inner {
  max-width: var(--legal-read-w);
}
.s-legal__eyebrow {
  font-size: var(--t-caption);
  font-weight: var(--fw-semibold);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--blue-600);
  margin: 0 0 14px;
}
.s-legal__h1 {
  font-size: clamp(2rem, 4.4vw, 3rem);
  line-height: 1.1;
  letter-spacing: -.02em;
  color: var(--ink);
  margin: 0;
}
.s-legal__effective {
  margin: 18px 0 0;
  font-size: var(--t-sm);
  color: var(--n-600);
}
.s-legal__effective b { color: var(--ink); font-weight: var(--fw-semibold); }

/* ---- Tělo: dvousloupcový grid (≥1100px) --------------------------------- */
.s-legal__body {
  display: block;
  padding: clamp(32px, 5vw, 56px) 0 clamp(64px, 9vw, 120px);
}
@media (min-width: 1100px) {
  .s-legal__body {
    display: grid;
    grid-template-columns: var(--legal-toc-w) minmax(0, 1fr);
    gap: clamp(40px, 5vw, 72px);
    align-items: start;
  }
}

/* ---- Obsah / TOC -------------------------------------------------------- */
.s-legal__toc { display: none; }
@media (min-width: 1100px) {
  .s-legal__toc {
    display: block;
    position: sticky;
    top: calc(var(--legal-nav-h) + 24px);
    max-height: calc(100vh - var(--legal-nav-h) - 48px);
    overflow-y: auto;
  }
}
.s-legal__toc-head {
  font-size: var(--t-caption);
  font-weight: var(--fw-semibold);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--n-500);
  margin: 0 0 12px;
}
.s-legal__toc-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-left: 1px solid var(--line);
}
.s-legal__toc-list a {
  display: block;
  padding: 7px 0 7px 16px;
  margin-left: -1px;
  border-left: 2px solid transparent;
  font-size: 14px;
  line-height: 1.4;
  color: var(--n-600);
  text-decoration: none;
  transition: color var(--dur-base) var(--ease), border-color var(--dur-base) var(--ease);
}
.s-legal__toc-list a:hover { color: var(--blue-600); }
.s-legal__toc-list a.is-active {
  color: var(--blue-700);
  border-left-color: var(--blue-600);
  font-weight: var(--fw-semibold);
}

/* ---- Čtecí sloupec ------------------------------------------------------ */
.s-legal__doc {
  max-width: var(--legal-read-w);
  font-size: 16px;
  line-height: 1.7;
  color: var(--ink-soft);
  overflow-wrap: break-word;
  word-wrap: break-word;
}
.s-legal__doc > p { margin: 0 0 18px; }
.s-legal__doc h2 {
  scroll-margin-top: calc(var(--legal-nav-h) + 24px);
  font-size: clamp(1.3rem, 2.4vw, 1.6rem);
  line-height: 1.25;
  color: var(--ink);
  margin: 44px 0 16px;
  padding-top: 8px;
}
.s-legal__doc h2:first-child { margin-top: 0; }

/* ---- Číslované klauzule (**1.1.** …) ------------------------------------ */
.s-legal-clause { margin: 0 0 16px; }
.s-legal-clause__num {
  font-weight: var(--fw-bold);
  color: var(--blue-700);
  margin-right: .35em;
  font-variant-numeric: tabular-nums;
}

/* ---- Seznamy ------------------------------------------------------------ */
.s-legal__doc ul {
  margin: 0 0 18px;
  padding-left: 1.4em;
}
.s-legal__doc li { margin: 0 0 8px; }
.s-legal__doc li::marker { color: var(--blue-400); }
.s-legal-list--lettered { list-style: none; padding-left: .2em; }
.s-legal-list--lettered li::marker { content: none; }

/* ---- Odkazy v textu ----------------------------------------------------- */
.s-legal__doc a {
  color: var(--blue-700);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color var(--dur-base) var(--ease);
}
.s-legal__doc a:hover { border-bottom-color: var(--blue-600); }

/* ---- Callout / info box (ostré rohy, levý akcent) ----------------------- */
.s-legal-callout {
  border-left: 3px solid var(--blue-600);
  background: var(--blue-50);
  border-radius: 0;
  padding: 16px 20px;
  margin: 0 0 28px;
  font-size: var(--t-sm);
  line-height: 1.6;
  color: var(--ink-soft);
}
.s-legal-callout b { color: var(--ink); font-weight: var(--fw-semibold); }
.s-legal-callout p { margin: 0; }

/* ---- Související dokumenty ---------------------------------------------- */
.s-legal-related {
  max-width: var(--legal-read-w);
  margin-top: clamp(40px, 6vw, 64px);
  padding-top: 28px;
  border-top: 1px solid var(--line);
}
.s-legal-related__head {
  font-size: var(--t-caption);
  font-weight: var(--fw-semibold);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--n-500);
  margin: 0 0 16px;
}
.s-legal-related__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 12px;
}
.s-legal-related__card {
  display: block;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 0;
  border-left: 3px solid var(--blue-600);
  background: var(--surface);
  color: var(--ink);
  font-size: var(--t-sm);
  font-weight: var(--fw-medium);
  text-decoration: none;
  transition: background var(--dur-base) var(--ease), border-color var(--dur-base) var(--ease);
}
.s-legal-related__card:hover {
  background: var(--blue-50);
  border-left-color: var(--blue-700);
}

/* ---- Responsivita ------------------------------------------------------- */
@media (max-width: 640px) {
  .s-legal__doc { font-size: 15.5px; }
}

/* ---- prefers-reduced-motion -------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  html:has(.s-legal) { scroll-behavior: auto; }
  .s-legal__toc-list a,
  .s-legal__doc a,
  .s-legal-related__card { transition: none; }
}

/* ---- Tisk --------------------------------------------------------------- */
@media print {
  .s-nav,
  .s-mobile-menu,
  .s-footer,
  .s-legal__toc,
  .s-legal-related,
  .cky-consent-container { display: none !important; }

  .s-legal { background: #fff; }
  .s-legal__body { display: block; padding: 0; }
  .s-legal__doc {
    max-width: none;
    color: #000;
    font-size: 11pt;
    line-height: 1.5;
  }
  .s-legal__doc h2 { color: #000; }
  .s-legal-clause__num { color: #000; }
  .s-legal-callout {
    background: none;
    border-left: 2px solid #000;
    color: #000;
  }
  .s-legal__doc a { color: #000; border-bottom: none; }
  .s-legal__doc a[href^="http"]::after,
  .s-legal__doc a[href^="mailto"]::after { content: " (" attr(href) ")"; font-size: 9pt; color: #333; }
}
