/* ==========================================================================
   Data policy — policy pubblica e allegato tecnico
   Caricato solo da quelle due pagine ($PAGE['css']). Il testo arriva verbatim
   da _inc/dp/*.html, con le classi del documento approvato: qui si decide
   soltanto come appare, dentro .dp, senza toccare il resto del sito.

   Gli elementi decorativi (pallini, numeri, filetto dei riquadri) usano
   --brand dove esiste: sul master EurekaGO l'azzurro e' riservato a cio' che
   ha una funzione (cap. 02). Sui siti BIKE --brand non c'e' e vale l'azzurro.
   ========================================================================== */

.dp-page { padding: 40px 0 88px; background: var(--white); }
.dp { max-width: 720px; margin: 0 auto; font-size: 16px; line-height: 1.68; color: var(--ink); }

/* --- Selettore documenti ------------------------------------------------ */
.dp-switch { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding-bottom: 20px; border-bottom: 1px solid var(--ink-10); }
.dp-switch a { font-size: 13px; font-weight: 700; padding: 8px 14px; border-radius: var(--r-sm); border: 1px solid var(--ink-10); color: var(--ink); transition: border-color .15s ease; }
.dp-switch a:hover { border-color: var(--ink); }
.dp-switch a[aria-current="page"] { background: var(--ink); border-color: var(--ink); color: var(--white); }
.dp-switch .dp-pdf { margin-left: auto; color: var(--azure-dark); border-color: var(--azure); }
.dp-switch .dp-pdf:hover { background: var(--azure); border-color: var(--azure); color: var(--white); }
@media (max-width: 540px) { .dp-switch .dp-pdf { margin-left: 0; } }

/* --- Intestazione del documento ---------------------------------------- */
.dp header.doc { padding: 44px 0 8px; }
.dp .eyebrow { margin-bottom: 16px; }
.dp h1 { font-size: clamp(32px, 5vw, 52px); font-weight: 900; line-height: 1.06; letter-spacing: -.025em; margin-bottom: 22px; text-wrap: balance; }
.dp .lede { font-size: 19px; line-height: 1.6; color: var(--ink-60); }
.dp .lede strong { color: var(--ink); font-weight: 600; }

/* --- Corpo -------------------------------------------------------------- */
.dp h2 { font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--fog); margin: 52px 0 18px; padding-bottom: 10px; border-bottom: 1px solid var(--ink-10); }
.dp h3 { font-size: 20px; font-weight: 800; letter-spacing: -.01em; margin: 30px 0 8px; }
.dp p { margin: 0 0 14px; }
.dp p:last-child { margin-bottom: 0; }
.dp section p strong, .dp li b { font-weight: 700; }

.dp ul.plain { list-style: none; display: flex; flex-direction: column; gap: 10px; margin: 0 0 16px; }
.dp ul.plain li { position: relative; padding-left: 18px; }
.dp ul.plain li::before { content: ''; position: absolute; left: 0; top: .68em; width: 6px; height: 6px; border-radius: 50%; background: var(--brand, var(--azure)); }

.dp .pull { background: var(--cream); border-left: 3px solid var(--brand, var(--azure)); border-radius: 0 var(--r-md) var(--r-md) 0; padding: 20px 22px; margin: 24px 0; }
.dp .pull p { font-size: 16.5px; }
.dp .pull .lbl { font-size: 11px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--brand, var(--azure-dark)); margin-bottom: 9px; }

.dp .limits { list-style: none; counter-reset: lim; display: flex; flex-direction: column; gap: 16px; margin: 20px 0 6px; }
.dp .limits li { position: relative; padding-left: 42px; }
.dp .limits li::before { counter-increment: lim; content: counter(lim); position: absolute; left: 0; top: 1px; width: 28px; height: 28px; border-radius: 50%; background: var(--cream); color: var(--brand, var(--azure-dark)); font-size: 13px; font-weight: 800; font-variant-numeric: tabular-nums; display: flex; align-items: center; justify-content: center; }
.dp .limits li b { display: block; font-weight: 700; margin-bottom: 2px; }
.dp .limits li span { color: var(--ink-60); font-size: 15px; }

.dp .tablewrap { overflow-x: auto; margin: 18px 0; border: 1px solid var(--ink-10); border-radius: var(--r-md); }
.dp table { width: 100%; border-collapse: collapse; font-size: 14.5px; line-height: 1.55; }
.dp th, .dp td { padding: 11px 14px; border-bottom: 1px solid var(--ink-10); vertical-align: top; text-align: left; }
.dp th { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--fog); background: var(--cream); }
.dp tr:last-child td { border-bottom: 0; }
.dp td:first-child { width: 34%; font-weight: 600; }
.dp td:last-child { color: var(--ink-60); }

.dp .foot { margin-top: 52px; padding-top: 18px; border-top: 1px solid var(--ink-10); font-size: 13.5px; line-height: 1.6; color: var(--fog); }
.dp .foot strong { color: var(--ink); }
/* Versione, validita' e marchi: staccati dai dati societari e in corpo minore. */
.dp .foot-meta { margin-top: 1.4em; font-size: 12px; line-height: 1.6; color: var(--fog); }

@media (max-width: 540px) {
  .dp .lede { font-size: 17.5px; }
  .dp td:first-child { width: auto; }
}

/* --- Versioni precedenti (solo pagina dell'allegato) ------------------- */
.dp-archive { margin-top: 40px; padding: 20px 22px; background: var(--cream); border-radius: var(--r-md); }
.dp-archive h2 { margin: 0 0 10px; padding: 0; border: 0; }
.dp-archive p { font-size: 14.5px; color: var(--ink-60); margin-bottom: 12px; }
.dp-archive ul { list-style: none; display: flex; flex-direction: column; gap: 6px; }
.dp-archive li { font-size: 14.5px; }
.dp-archive li span { font-size: 11px; font-weight: 700; letter-spacing: .08em; color: var(--fog); margin-left: 6px; }

/* --- Stampa / PDF --------------------------------------------------------
   Il PDF dell'allegato si genera da questa pagina (vedi _inc/dp/README.md):
   resta il documento, sparisce il sito. */
@media print {
  @page { size: A4; margin: 18mm 17mm 18mm; }
  html, body { background: #fff; }
  body { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .skip-link, .top-bar, nav.nav, footer.footer, .dp-switch, .dp-archive { display: none !important; }
  .dp-page { padding: 0; }
  .dp-page .container { padding: 0; max-width: none; }
  .dp { max-width: none; font-size: 10.5pt; line-height: 1.55; }
  .dp header.doc { padding-top: 0; }
  .dp h1 { font-size: 26pt; }
  .dp .lede { font-size: 12pt; }
  .dp h2 { margin-top: 26pt; break-after: avoid; }
  .dp table { font-size: 9.5pt; }
  .dp tr, .dp li, .dp .pull { break-inside: avoid; }
  .dp .foot { margin-top: 28pt; font-size: 9pt; }
  .dp .foot-meta { font-size: 8pt; }
}
