/*
 * Paginile legale (includes/pagina-legal.php): confidențialitate, cookies, termeni, Data Act.
 * Încărcată doar de ele (legal_pagina() o pune în $pagina['css']). Jetoanele vin din site.css.
 * Aceeași gramatică: alb, titlul ca la /contact/, linii de 1 px, etichete gri; albastrul rămâne pe focus.
 * Cuprinsul stă în stânga, lipit sus; textul în dreapta, într-o coloană de ~68 de caractere.
 */

.legal { background: #fff; color: #000; padding: calc(var(--antet) + 72px) 0 128px; }
/* „confidențialitate” trebuie să încapă pe un rând la 320 px (288 px de text). */
.legal__titlu { max-width: 22ch; text-wrap: balance; overflow-wrap: break-word; }

.legal__grila { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 64px; margin-top: 48px; border-top: 1px solid #000; padding-top: 24px; }
.legal__lateral { min-width: 0; }
.legal__meta { margin-bottom: 40px; }
.legal__meta dd { white-space: normal; text-align: right; }

/* ---- Cuprinsul ------------------------------------------------------------------------------------------------ */
/* Desktop: lipit sus; o șină de 1 px în stânga, neagră și de 2 px la secțiunea citită (legal.js). */
.legal__cuprins { position: sticky; top: calc(var(--antet) + 32px); max-height: calc(100svh - var(--antet) - 64px); overflow-y: auto; scrollbar-width: thin; }
.legal__cuprins ol, .legal__cuprins-mobil ol { margin: 0; padding: 0; list-style: none; }
.legal__cuprins .eticheta, .legal__lipita > .eticheta { color: var(--gri-a); margin-bottom: 12px; }
.legal__cuprins a { display: grid; grid-template-columns: 36px minmax(0, 1fr); align-items: baseline; padding: 7px 0 7px 16px;
  font-size: 14px; line-height: 1.35; text-decoration: none; color: var(--gri-a); box-shadow: inset 1px 0 0 var(--linie-a);
  transition: color .2s, box-shadow .2s; }
.legal__cuprins .nr, .legal__cuprins-mobil .nr { font: 500 11.5px/1.3 var(--f-titlu); font-stretch: 125%; letter-spacing: .07em; font-variant-numeric: tabular-nums; }
.legal__cuprins a:hover, .legal__cuprins a:focus-visible { color: #000; }
.legal__cuprins a[aria-current="true"] { color: #000; box-shadow: inset 2px 0 0 #000; }

/* Telefon și tabletă: închis, se deschide la atingere. */
.legal__cuprins-mobil { display: none; border-top: 1px solid #000; border-bottom: 1px solid var(--linie-a); }
.legal__cuprins-mobil summary { display: flex; align-items: center; gap: 12px; min-height: 52px; cursor: pointer; list-style: none; }
.legal__cuprins-mobil summary::-webkit-details-marker { display: none; }
.legal__cuprins-mobil summary::after { content: '+'; margin-left: auto; font: 400 22px/1 var(--f-text); }
.legal__cuprins-mobil[open] summary::after { content: '−'; }
.legal__cate { font-size: 13px; color: var(--gri-a); }
.legal__cuprins-mobil ol { padding-bottom: 8px; }
.legal__cuprins-mobil a { display: grid; grid-template-columns: 40px minmax(0, 1fr); align-items: baseline; min-height: 44px; padding: 11px 0;
  border-top: 1px solid var(--linie-a); font-size: 15px; line-height: 1.35; text-decoration: none; }
.legal__cuprins-mobil .nr { color: var(--gri-a); }

/* ---- Textul ----------------------------------------------------------------------------------------------------- */
.legal__text { max-width: 68ch; font-size: 16.5px; line-height: 1.7; overflow-wrap: break-word; }
.legal__text > :first-child { margin-top: 0; }
.legal__text p, .legal__text ul, .legal__text ol, .legal__text details { margin-top: 16px; }
.legal__text h2 { margin-top: 80px; font: 400 28px/1.15 var(--f-titlu); font-stretch: 125%; }
.legal__text > h2:first-child { margin-top: 0; }
.legal__text h2 .nr { display: block; margin-bottom: 12px; font: 500 11.5px/1.3 var(--f-titlu); font-stretch: 125%; letter-spacing: .07em; color: var(--gri-a); font-variant-numeric: tabular-nums; }
.legal__text h2 .t { display: block; }
.legal__text h3 { margin: 40px 0 0; font: 600 18px/1.3 var(--f-text); }
.legal__text h3 + p, .legal__text h3 + ul { margin-top: 8px; }
.legal__text ul { padding-left: 1.2em; list-style: square; }
.legal__text ol { padding-left: 1.5em; list-style: decimal; }
.legal__text li + li { margin-top: 8px; }
.legal__text li::marker { color: #000; }
.legal__text strong { font-weight: 600; }
.legal__text a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; overflow-wrap: anywhere; }
.legal__text a:hover { text-decoration-thickness: 2px; }
.legal__text code { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .85em; padding: .1em .35em; background: var(--gri-f); }
.legal-mic { font-size: 14px; line-height: 1.55; color: var(--gri-a); }

/* Modelul de cerere: o foaie gri în text. */
.legal__text details { background: var(--gri-f); border-top: 1px solid #000; }
.legal__text details summary { display: flex; align-items: center; min-height: 52px; padding: 12px 20px; cursor: pointer; list-style: none; font-weight: 600; }
.legal__text details summary::-webkit-details-marker { display: none; }
.legal__text details summary::after { content: '+'; margin-left: auto; font: 400 22px/1 var(--f-text); }
.legal__text details[open] summary::after { content: '−'; }
.legal__text details > p { margin: 0; padding: 0 20px 16px; }

/* Fișa: rândurile de la program; eticheta deasupra pe telefon, alături de la 600 px. */
.legal-fisa { margin-top: 20px; border-top: 1px solid #000; }
.legal-fisa > div { padding: 10px 0; border-bottom: 1px solid var(--linie-a); }
.legal-fisa dt { font-size: 14px; color: var(--gri-a); }
.legal-fisa dd { margin: 2px 0 0; }
@media (min-width: 600px) {
  .legal__text .legal-fisa > div { display: grid; grid-template-columns: 13rem minmax(0, 1fr); column-gap: 24px; align-items: baseline; }
  .legal__text .legal-fisa dt { font-size: 15px; }
  .legal__text .legal-fisa dd { margin: 0; }
}
/* Fișa din coloana laterală (Data Act): mereu una sub alta, lipită sus. */
.legal__lateral .legal-fisa { font-size: 15px; line-height: 1.45; }
.legal__lateral .legal-fisa dd { overflow-wrap: anywhere; }
.legal__lateral .legal-fisa a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.legal__lipita { position: sticky; top: calc(var(--antet) + 32px); }

/* Tabelele: capul cu etichete gri și linie neagră, rândurile cu linii fine; pe telefon fiecare rând devine un bloc. */
.legal-tabel { margin-top: 20px; }
.legal-tabel table { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.55; }
.legal-tabel th, .legal-tabel td { text-align: left; vertical-align: top; padding: 12px 20px 12px 0; }
.legal-tabel th:last-child, .legal-tabel td:last-child { padding-right: 0; }
.legal-tabel thead th { padding-top: 0; padding-bottom: 10px; border-bottom: 1px solid #000; font: 500 11.5px/1.3 var(--f-titlu); font-stretch: 125%; text-transform: uppercase; letter-spacing: .07em; color: var(--gri-a); }
.legal-tabel tbody td { border-bottom: 1px solid var(--linie-a); }
/* Tabelele de cookie-uri au aceleași coloane, ca rândurile să se alinieze de la un tabel la altul. */
@media (min-width: 600px) {
  .legal-tabel--cookie table { table-layout: fixed; }
  .legal-tabel--cookie th:nth-child(1) { width: 22%; }
  .legal-tabel--cookie th:nth-child(2) { width: 25%; }
  .legal-tabel--cookie th:nth-child(4) { width: 7.5rem; }
}
@media (max-width: 599px) {
  .legal-tabel thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .legal-tabel table, .legal-tabel tbody, .legal-tabel tr, .legal-tabel td { display: block; }
  .legal-tabel tbody { border-top: 1px solid #000; }
  .legal-tabel tr { padding: 12px 0; border-bottom: 1px solid var(--linie-a); }
  .legal-tabel tbody td { padding: 0; border: 0; }
  .legal-tabel td + td { margin-top: 8px; }
  .legal-tabel td::before { content: attr(data-eticheta); display: block; margin-bottom: 2px; font: 500 10.5px/1.3 var(--f-titlu); font-stretch: 125%; text-transform: uppercase; letter-spacing: .07em; color: var(--gri-a); }
}

/* ---- Sub 1100 px: o singură coloană; cuprinsul de telefon în locul celui lipit ------------------------------------ */
@media (max-width: 1099px) {
  .legal__grila { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .legal__meta { margin-bottom: 24px; }
  .legal__cuprins { display: none; }
  .legal__cuprins-mobil { display: block; }
  .legal__lipita { position: static; }
}
@media (max-width: 899px) {
  .legal { padding: calc(var(--antet) + 40px) 0 72px; }
  .legal__titlu { font-size: clamp(28px, 9.4vw, 34px); }
  .legal__grila { margin-top: 32px; padding-top: 16px; }
  .legal__text { font-size: 16px; }
  .legal__text h2 { margin-top: 56px; font-size: 23px; }
  .legal__text h3 { margin-top: 32px; }
}
