/* ==========================================================================
   landing-v2-pravni.css — extrakce ZDROJ/pravni.css (sdílený styl právních
   a info podstránek). Task 4 (landing-v2 SDD).

   Načítá se JEN na právních stránkách (Task 12 přes $extraHead), tj. PO
   landing.css + landing-v2*.css. Právní stránky mají $bodyClass "page-legal".

   DRY / chrome: :root, reset, header/.nav/.logo a celý footer blok šablony
   (vč. .foot-inner) SMAZÁNY — jednotný nav+footer dodává sdílená hlavička
   stylovaná z landing-v2.css. Šablonová varianta nav (výška 66 px, max-width
   1120 px) by se sdíleným navem kolidovala.

   Scoping: prefix `body.page-legal`. Obsahové odkazy s podtržením na hover
   jsou scopnuté na obalové prvky (.wrap/.doc-body/.legal-shell), aby
   nepodtrhávaly sdílenou navigaci/footer. Vnitřní struktura .legal-shell
   (kompletní HTML z DB legal_documents) se zde NIJAK nepředepisuje — pouze
   se stylují třídy, které v ní jsou (aliasy dořeší Task 12).
   ========================================================================== */

/* reset šablony, scopnutý na právní stránky (nulová specificita jako původní `*`) */
:where(body.page-legal, body.page-legal *){margin:0;padding:0;box-sizing:border-box}
body.page-legal{font-family:'Inter',system-ui,sans-serif;color:var(--text);background:var(--bg);line-height:1.7;font-size:16px}
body.page-legal :where(a){color:var(--primary);text-decoration:none}
body.page-legal :where(.wrap,.doc-body,.legal-shell) a:hover{text-decoration:underline}
body.page-legal h1,body.page-legal h2,body.page-legal h3{font-family:'Manrope','Inter',sans-serif;letter-spacing:-.015em;line-height:1.2;color:var(--dark)}
body.page-legal .wrap{max-width:820px;margin:0 auto;padding:0 24px}
body.page-legal .back{font-size:.92rem;font-weight:600;color:var(--dark-2)}
body.page-legal .back:hover{color:var(--primary);text-decoration:none}
body.page-legal .doc-hero{background:linear-gradient(160deg,var(--primary-light) 0%,#fff 65%,var(--accent-light) 100%);padding:56px 0 40px}
body.page-legal .eyebrow{position:relative;display:inline-block;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--primary);
 background:rgba(250,253,251,.94);padding:7px 15px;border-radius:10px;margin-bottom:14px;border:0}
body.page-legal .eyebrow::before{content:"";position:absolute;inset:0;border-radius:10px;padding:1.5px;pointer-events:none;
 background:linear-gradient(120deg,#2dd4bf,#0d9488 55%,#7fe0cf);
 -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
 mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude}
body.page-legal .doc-hero h1{font-size:clamp(1.7rem,3.4vw,2.5rem);font-weight:800;margin-bottom:8px}
body.page-legal .doc-hero .meta{color:var(--text-muted);font-size:.9rem}
body.page-legal .doc-note{margin:26px auto 0;max-width:820px;background:#fffbeb;border:1px solid #fde68a;border-radius:12px;padding:16px 20px;font-size:.92rem;color:#7c5e10}
body.page-legal .doc-body{padding:40px 0 72px}
body.page-legal .doc-body h2{font-size:1.3rem;font-weight:800;margin:34px 0 10px}
body.page-legal .doc-body p{margin-bottom:12px;color:var(--text)}
body.page-legal .doc-body ul{margin:0 0 14px 22px;padding-left:0}
body.page-legal .doc-body li{margin-bottom:6px}
body.page-legal .doc-body .lead{color:var(--text-muted);font-size:1.05rem;margin-bottom:8px}

/* ==========================================================================
   legal-shell / legal-doc__* component system (Task 12, 2026-07-15).

   Real markup: DB `legal_documents.content_html` (public docs: gdpr, cookies,
   obchodni-podminky — verified via SELECT against magnapro_datadent_dev) AND
   the two static pages (prohlaseni-ochrana-udaju.php, registracni-pravidla.php)
   both use the SAME BEM system `.legal-shell > .legal-doc__crumb + .legal-doc__toc
   + article.legal-doc`, NOT the template's `.wrap/.doc-hero/.eyebrow/.doc-body`
   classes above (those came verbatim from ZDROJ/pravni.css and are kept as
   harmless dead weight — no page in the app emits that markup today).

   These rules give the actual `.legal-shell` markup the v2 look (Manrope
   headings, teal --primary, card shadow) using the v2 design tokens. They also
   double as the fix-up for the `:where(body.page-legal,body.page-legal *)`
   reset above, which zeroes ul/ol/blockquote/table margins — every element
   below gets an explicit margin/padding so lists and tables don't look
   collapsed/broken (checked against /obchodni-podminky, which has the deepest
   ol/table nesting of the public docs).
   ========================================================================== */
body.page-legal .legal-shell{width:92%;max-width:1488px;margin:40px auto 80px;display:grid;grid-template-columns:240px minmax(0,1fr);gap:32px;align-items:start}
@media (max-width:900px){
  /* minmax(0,1fr), ne holé 1fr — jinak min-content širokého obsahu (meta, dlouhé
     řetězce) roztáhne sloupec přes šířku viewportu. Stejná gotcha jako main.css. */
  body.page-legal .legal-shell{grid-template-columns:minmax(0,1fr);width:92%;margin:28px auto 56px;gap:20px}
  body.page-legal .legal-shell>*{min-width:0}
  body.page-legal .legal-doc__content{overflow-wrap:anywhere}
  body.page-legal .legal-doc__meta{flex-wrap:wrap}
}

body.page-legal .legal-doc__crumb{grid-column:1/-1;font-size:.82rem;color:var(--text-muted);margin-bottom:4px}
body.page-legal .legal-doc__crumb a{color:var(--text-muted)}
body.page-legal .legal-doc__crumb a:hover{color:var(--primary);text-decoration:underline}
body.page-legal .legal-doc__crumb .sep{margin:0 6px;opacity:.5}

body.page-legal .legal-doc__toc{position:sticky;top:calc(68px + 16px);align-self:start;max-height:calc(100vh - 68px - 32px);overflow-y:auto;padding:20px 16px;background:var(--bg-soft);border:1px solid var(--border);border-radius:14px;font-size:.84rem;z-index:5}
@media (max-width:900px){body.page-legal .legal-doc__toc{position:static;max-height:none}}
body.page-legal .legal-doc__toc-title{font-family:'Manrope',sans-serif;font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:10px}
body.page-legal .legal-doc__toc ol{list-style:none;margin:0;padding:0;counter-reset:ld-toc}
body.page-legal .legal-doc__toc li{counter-increment:ld-toc;margin:0;line-height:1.4}
/* padding-left 36px: na dvouciferná čísla („12.") při 28px zbýval ~1px mezery (audit 2026-07-16) */
body.page-legal .legal-doc__toc a{display:block;padding:6px 6px 6px 36px;color:var(--dark-2);border-radius:8px;text-decoration:none;position:relative;transition:background .15s,color .15s}
body.page-legal .legal-doc__toc a::before{content:counter(ld-toc) ".";position:absolute;left:6px;font-weight:700;color:var(--text-muted);font-variant-numeric:tabular-nums}
body.page-legal .legal-doc__toc a:hover,
body.page-legal .legal-doc__toc a.is-active{background:#fff;color:var(--primary)}

body.page-legal .legal-doc{background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:0 8px 30px rgba(13,148,136,.07);padding:44px 48px 52px}
@media (max-width:720px){body.page-legal .legal-doc{padding:28px 20px 32px;border-radius:14px}}

body.page-legal .legal-doc__head{border-bottom:1px solid var(--border);padding-bottom:24px;margin-bottom:28px}
body.page-legal .legal-doc__eyebrow{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--primary);background:var(--accent-light);padding:6px 14px;border-radius:999px;margin-bottom:14px}
body.page-legal .legal-doc__title{font-family:'Manrope',sans-serif;font-size:clamp(1.55rem,3vw,2.15rem);font-weight:800;letter-spacing:-.015em;line-height:1.18;color:var(--dark);margin:0 0 10px;overflow-wrap:break-word;word-wrap:break-word;hyphens:auto}
@media (max-width:480px){body.page-legal .legal-doc__title{font-size:1.35rem}}
body.page-legal .legal-doc__lede{font-size:1.02rem;color:var(--text-muted);line-height:1.65;margin:0 0 16px;max-width:62ch}
body.page-legal .legal-doc__meta{display:flex;flex-wrap:wrap;gap:12px 24px;font-size:.84rem;color:var(--text-muted)}
body.page-legal .legal-doc__meta-item .lbl{display:block;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:3px}
body.page-legal .legal-doc__meta-item .val{font-weight:700;color:var(--dark)}
body.page-legal .legal-doc__audience{margin:16px 0 0;padding:14px 16px;background:var(--bg-soft);border-left:3px solid var(--primary);border-radius:0 10px 10px 0;font-size:.92rem;color:var(--text);line-height:1.55}

body.page-legal .legal-doc__content{font-size:.98rem;line-height:1.75;color:var(--text)}
body.page-legal .legal-doc__content h2{font-family:'Manrope',sans-serif;font-size:1.28rem;font-weight:800;color:var(--primary);margin:36px 0 12px;scroll-margin-top:90px}
body.page-legal .legal-doc__content h3{font-family:'Manrope',sans-serif;font-size:1.05rem;font-weight:700;color:var(--primary-dark);margin:22px 0 8px}
body.page-legal .legal-doc__content h4{font-size:.95rem;font-weight:700;color:var(--dark-2);margin:16px 0 6px}
body.page-legal .legal-doc__content p{margin:0 0 14px}
body.page-legal .legal-doc__content ul,
body.page-legal .legal-doc__content ol{margin:0 0 16px 26px;padding:0;list-style:revert}
body.page-legal .legal-doc__content li{margin:4px 0}
body.page-legal .legal-doc__content li::marker{color:var(--text-muted)}
body.page-legal .legal-doc__content strong{color:var(--primary-dark);font-weight:700}
body.page-legal .legal-doc__content em{color:var(--text-muted);font-style:italic}
body.page-legal .legal-doc__content code{background:var(--bg-soft);border:1px solid var(--border);border-radius:5px;padding:1px 6px;font-size:.85em;font-family:ui-monospace,"SFMono-Regular",Menlo,monospace;color:var(--primary)}
body.page-legal .legal-doc__content blockquote{border-left:3px solid var(--accent);padding:8px 18px;margin:16px 0;background:var(--accent-light);color:var(--primary-dark);border-radius:0 10px 10px 0;font-size:.94rem}
body.page-legal .legal-doc__content hr{border:none;border-top:1px solid var(--border);margin:32px 0}

/* Tables — bare <table> uvnitř __content i explicitní .legal-doc__table(-wrap) varianta */
body.page-legal .legal-doc__content table,
body.page-legal .legal-doc__table{width:100%;border-collapse:collapse;margin:16px 0 22px;font-size:.9rem;background:#fff}
body.page-legal .legal-doc__table-wrap{margin:16px 0 24px;overflow-x:auto;border-radius:12px;border:1px solid var(--border)}
body.page-legal .legal-doc__table-wrap .legal-doc__table{margin:0;border-radius:0}
body.page-legal .legal-doc__content thead th,
body.page-legal .legal-doc__table thead th{background:var(--bg-soft);text-align:left;font-weight:700;color:var(--primary);padding:10px 14px;border-bottom:1px solid var(--border)}
body.page-legal .legal-doc__table tbody th[scope="row"]{background:var(--bg-soft);text-align:left;font-weight:700;color:var(--primary);padding:10px 14px;vertical-align:top;border-bottom:1px solid var(--border);width:30%}
body.page-legal .legal-doc__content tbody td,
body.page-legal .legal-doc__table tbody td{padding:10px 14px;border-bottom:1px solid var(--border);vertical-align:top;color:var(--text)}
body.page-legal .legal-doc__content tbody tr:hover td,
body.page-legal .legal-doc__table tbody tr:hover td{background:var(--bg-soft)}
body.page-legal .legal-doc__table tbody tr:last-child td,
body.page-legal .legal-doc__table tbody tr:last-child th{border-bottom:0}

body.page-legal .legal-doc__article{margin:26px 0;scroll-margin-top:90px}
body.page-legal .legal-doc__article:first-of-type{margin-top:0}
body.page-legal .legal-doc__article-num{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-right:8px}

body.page-legal .legal-doc__callout{margin:22px 0;padding:16px 18px;border-radius:12px;font-size:.94rem;line-height:1.55}
body.page-legal .legal-doc__callout--info{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af}
body.page-legal .legal-doc__callout--info strong{color:#1e3a8a}
body.page-legal .legal-doc__callout--warn,
body.page-legal .legal-doc__callout--warning{background:#fffbeb;border:1px solid #fde68a;color:#7c5e10}
body.page-legal .legal-doc__callout--warn strong,
body.page-legal .legal-doc__callout--warning strong{color:#78350f}
body.page-legal .legal-doc__callout--success{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46}

body.page-legal .legal-doc__card{margin:16px 0;padding:16px 18px;background:var(--bg-soft);border:1px solid var(--border);border-radius:12px;font-size:.94rem;line-height:1.55}
body.page-legal .legal-doc__card p{margin:0}
body.page-legal .legal-doc__card p+p{margin-top:8px}

body.page-legal .legal-doc__legal-basis{margin:8px 0 16px;padding:8px 12px;background:var(--bg-soft);border-left:3px solid var(--accent);border-radius:0 8px 8px 0;font-size:.92rem;color:var(--primary-dark);line-height:1.55}
body.page-legal .legal-doc__legal-basis strong{color:var(--primary)}

body.page-legal .legal-doc__note{font-size:.84rem;color:var(--text-muted);font-style:italic;margin:6px 0 0;line-height:1.5}
body.page-legal .legal-doc__footnote{margin-top:36px;padding-top:20px;border-top:1px solid var(--border);font-size:.83rem;color:var(--text-muted);line-height:1.55}

body.page-legal .legal-doc__actions{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 0}
body.page-legal .legal-doc__actions .btn--print,
body.page-legal .legal-doc__actions .btn--related,
body.page-legal .btn--related{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;font-size:.88rem;font-weight:700;background:#fff;color:var(--primary);border:1px solid var(--border);border-radius:10px;cursor:pointer;text-decoration:none;transition:all .15s}
body.page-legal .legal-doc__actions .btn--print:hover,
body.page-legal .legal-doc__actions .btn--related:hover,
body.page-legal .btn--related:hover{border-color:var(--primary);color:var(--primary-dark);background:var(--accent-light)}
body.page-legal .btn--related svg{width:18px;height:18px}

@media print{
  body.page-legal .legal-doc__toc,
  body.page-legal .legal-doc__crumb,
  body.page-legal .legal-doc__actions{display:none !important}
  body.page-legal .legal-shell{display:block;padding:0;max-width:100%}
  body.page-legal .legal-doc{box-shadow:none;border:none;padding:0}
}
