/* RILEN – pagine legali (/privacy, /cookie, /note-legali, /accessibilita) e avviso/preferenze cookie.
   Caricato in tutte le pagine della cornice landing, DOPO landing.css o prima: le regole che devono vincere su quelle
   generiche di landing.css (.lp h1, .lp p, .lp ul) hanno un selettore più specifico (.lp .lg-…).
   Prefissi: lg- (documenti), ck- (cookie). Nessuna regola su elementi nudi o su classi lp-.
   Contrasti WCAG 2.1 AA sul blu notte #050b1a / #0a1633: testo #eef2fb (≥ 15:1), tenue #a8b3c7 (≥ 8:1),
   ciano #5eead4 (≥ 11:1), verde del bottone #34d399 con testo #03140d (≥ 9:1).
   Bottoni con la scala di altezze dell'app: 40px normale, 32px piccolo. */

.lg-pagina, .ck-avviso, .ck-dialogo {
  --lg-testo: var(--testo, #eef2fb); --lg-tenue: var(--tenue, #a8b3c7); --lg-tenue-2: var(--tenue-2, #8b98b0);
  --lg-ciano: var(--ciano, #5eead4); --lg-verde: var(--verde, #34d399); --lg-verde-chiaro: var(--verde-chiaro, #6ee7b7);
  --lg-fondo: #0a1633; --lg-riquadro: rgba(255, 255, 255, .035); --lg-linea: rgba(255, 255, 255, .1);
  --lg-linea-forte: rgba(255, 255, 255, .18);
  --lg-font: var(--font, "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif);
  --lg-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;
}

/* ---------- Pagina documento ---------- */
.lg-pagina { padding: 32px 0 64px; }
.lg-griglia { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-areas: "intesta" "indice" "doc"; gap: 24px; }
.lg-intesta { grid-area: intesta; max-width: 72ch; }
.lg-indice { grid-area: indice; }
.lg-doc { grid-area: doc; max-width: 72ch; min-width: 0; }

.lp .lg-occhiello { margin: 0 0 10px; font-size: .8rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--lg-ciano); }
.lp .lg-intesta h1 { font-size: clamp(1.875rem, 1.3rem + 2.4vw, 2.625rem); line-height: 1.15; letter-spacing: -.025em; text-wrap: balance; }
.lp .lg-lead { margin-top: 14px; font-size: 1.0625rem; line-height: 1.65; color: var(--lg-tenue); }

/* Indice delle sezioni: riquadro sopra il testo su telefono, colonna laterale fissa su schermo largo */
.lg-indice { padding: 16px 18px; border: 1px solid var(--lg-linea); border-radius: 14px; background: var(--lg-riquadro); }
.lp .lg-indice-titolo { margin: 0 0 8px; font-size: .75rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--lg-tenue-2); }
.lp .lg-indice ol { margin: 0; padding: 0; list-style: none; counter-reset: lg-voce; }
.lg-indice li { counter-increment: lg-voce; }
.lp .lg-indice a { display: flex; gap: 10px; padding: 6px 0; color: var(--lg-tenue); font-size: .9375rem; line-height: 1.4; text-decoration: none; }
.lg-indice a::before { content: counter(lg-voce); flex: 0 0 1.5em; color: var(--lg-tenue-2); font-variant-numeric: tabular-nums; }
.lp .lg-indice a:hover { color: var(--lg-testo); text-decoration: underline; }

@media (min-width: 1024px) {
  .lg-pagina { padding: 56px 0 96px; }
  .lg-griglia { grid-template-columns: 232px minmax(0, 72ch); grid-template-areas: "indice intesta" "indice doc";
    grid-template-rows: auto 1fr; column-gap: 56px; row-gap: 32px; justify-content: center; }
  .lg-indice { align-self: start; position: sticky; top: 88px; max-height: calc(100vh - 112px); overflow-y: auto;
    padding: 4px 0 4px 18px; border: 0; border-left: 1px solid var(--lg-linea); border-radius: 0; background: none; }
}

/* Testo */
.lg-doc { font-size: 1rem; line-height: 1.7; color: var(--lg-testo); }
.lg-doc section { padding-top: 8px; }
.lg-doc section + section { margin-top: 40px; padding-top: 32px; border-top: 1px solid var(--lg-linea); }
.lp .lg-doc h2 { font-size: 1.375rem; line-height: 1.3; letter-spacing: -.015em; scroll-margin-top: 88px; }
.lp .lg-doc h3 { margin-top: 28px; font-size: 1.0625rem; line-height: 1.4; letter-spacing: -.005em; }
.lp .lg-doc p { margin-top: 14px; }
.lp .lg-doc h2 + p, .lp .lg-doc h3 + p { margin-top: 10px; }
.lp .lg-doc section[id] { scroll-margin-top: 80px; }
.lp .lg-doc strong { color: var(--lg-testo); font-weight: 600; }
.lp .lg-doc a { color: var(--lg-ciano); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; overflow-wrap: anywhere; }
.lp .lg-doc a:hover { text-decoration-thickness: 2px; }
.lg-doc code, .ck-dialogo code { font-family: var(--lg-mono); font-size: .875em; padding: 1px 6px; border-radius: 6px;
  background: rgba(255, 255, 255, .07); border: 1px solid var(--lg-linea); color: var(--lg-testo); white-space: nowrap; }

.lp .lg-elenco { margin: 12px 0 0; padding-left: 1.25em; list-style: disc; }
.lg-elenco li { padding-left: 4px; }
.lg-elenco li + li { margin-top: 8px; }
.lg-elenco li::marker { color: var(--lg-tenue-2); }

/* Dati societari / titolare */
.lp .lg-dati { margin: 16px 0 0; padding: 4px 18px; border: 1px solid var(--lg-linea); border-radius: 14px; background: var(--lg-riquadro); }
.lg-dati > div { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px; padding: 10px 0; }
.lg-dati > div + div { border-top: 1px solid var(--lg-linea); }
.lg-dati dt { font-size: .8125rem; color: var(--lg-tenue); }
.lg-dati dd { margin: 0; overflow-wrap: anywhere; }
@media (min-width: 640px) { .lg-dati > div { grid-template-columns: 15rem minmax(0, 1fr); gap: 16px; align-items: baseline; } .lg-dati dt { font-size: .875rem; } }

/* Tabelle (cookie, finalità) con scorrimento interno su schermi stretti */
.lg-tabella-scorri { margin-top: 16px; overflow-x: auto; border: 1px solid var(--lg-linea); border-radius: 14px; background: var(--lg-riquadro); }
.lg-tabella-scorri:focus-visible { outline: 2px solid var(--lg-ciano); outline-offset: 3px; }
.lg-tabella { width: 100%; border-collapse: collapse; font-size: .9375rem; line-height: 1.55; }
.lg-tabella th, .lg-tabella td { padding: 12px 16px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--lg-linea); }
.lg-tabella tr:last-child > * { border-bottom: 0; }
.lg-tabella thead th { font-size: .75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--lg-tenue);
  background: rgba(255, 255, 255, .03); border-bottom-color: var(--lg-linea-forte); white-space: nowrap; }
.lg-tabella tbody th { font-weight: 600; color: var(--lg-testo); }
.lg-tabella tbody th[scope="row"] { width: 28%; }
.lg-tabella-cookie { min-width: 680px; }
.lg-tabella-cookie tbody th[scope="row"] { width: auto; white-space: nowrap; }
.lg-tabella-cookie td:last-child { min-width: 11rem; }

/* Sintesi delle categorie (cookie policy) */
.lp .lg-sintesi { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin-top: 16px; }
.lg-sintesi li { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 16px; border: 1px solid var(--lg-linea);
  border-radius: 14px; background: var(--lg-riquadro); }
.lg-sintesi-testo { font-size: .9rem; line-height: 1.5; color: var(--lg-tenue); }

.lg-stato, .ck-stato { display: inline-flex; align-items: center; gap: 6px; min-height: 24px; padding: 2px 10px; border-radius: 999px;
  font-size: .75rem; font-weight: 600; line-height: 1.2; white-space: nowrap; color: var(--lg-tenue);
  background: rgba(255, 255, 255, .06); border: 1px solid var(--lg-linea-forte); }
.lg-stato::before, .ck-stato::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; opacity: .7; }
.lg-stato-si, .ck-stato-attivo { color: var(--lg-verde-chiaro); background: rgba(52, 211, 153, .1); border-color: rgba(52, 211, 153, .35); }

/* Coda: data e altri documenti */
.lg-coda { margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--lg-linea-forte); }
.lp .lg-aggiornato { margin: 0; font-size: .875rem; color: var(--lg-tenue); }
.lp .lg-documenti ul { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 14px 0 0; padding: 0; list-style: none; font-size: .9375rem; }
.lp .lg-documenti a { color: var(--lg-tenue); text-decoration: none; }
.lp .lg-documenti a:hover { color: var(--lg-testo); text-decoration: underline; }
.lp .lg-documenti a[aria-current="page"] { color: var(--lg-testo); font-weight: 600; }

/* Bottone con aspetto di collegamento (apre le preferenze cookie) */
.ck-link { display: inline; padding: 0; margin: 0; border: 0; background: none; font: inherit; color: var(--lg-ciano, #5eead4);
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; cursor: pointer; }
.ck-link:hover { text-decoration-thickness: 2px; }
.lg-documenti .ck-link { color: var(--lg-tenue); text-decoration: none; }
.lg-documenti .ck-link:hover { color: var(--lg-testo); text-decoration: underline; }
.ck-link:focus-visible, .ck-btn:focus-visible { outline: 2px solid var(--lg-ciano, #5eead4); outline-offset: 3px; border-radius: 6px; }
.ck-senza-anello:focus { outline: none; }

/* ---------- Bottoni dell'avviso e del dialogo ---------- */
.ck-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; padding: 0 16px;
  border: 1px solid transparent; border-radius: 10px; font: 600 .9375rem/1 var(--lg-font); cursor: pointer; white-space: nowrap;
  transition: background-color .15s ease, border-color .15s ease; }
.ck-btn-s { min-height: 32px; padding: 0 10px; font-size: .8125rem; border-radius: 8px; }
.ck-btn-primario { background: var(--lg-verde); color: #03140d; }
.ck-btn-primario:hover { background: var(--lg-verde-chiaro); }
.ck-btn-vetro { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .22); color: var(--lg-testo); }
.ck-btn-vetro:hover { background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .34); }
.ck-btn-icona { width: 32px; padding: 0; background: transparent; border-color: var(--lg-linea-forte); color: var(--lg-tenue); }
.ck-btn-icona:hover { color: var(--lg-testo); background: rgba(255, 255, 255, .08); }

/* ---------- Avviso (non modale, in basso) ---------- */
.ck-avviso { position: fixed; z-index: 60; left: 50%; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%);
  width: min(960px, calc(100% - 32px)); display: flex; flex-direction: column; gap: 14px; padding: 16px 18px;
  background: var(--lg-fondo); color: var(--lg-testo); border: 1px solid var(--lg-linea-forte); border-radius: 16px;
  box-shadow: 0 24px 60px -16px rgba(0, 0, 0, .75); font: 400 .9375rem/1.55 var(--lg-font); }
.ck-avviso[hidden] { display: none; }
.ck-avviso .ck-avviso-testo { margin: 0; color: var(--lg-tenue); }
.ck-avviso-testo strong { color: var(--lg-testo); font-weight: 600; }
.ck-avviso a, .ck-dialogo a { color: var(--lg-ciano); text-decoration: underline; text-underline-offset: 3px; }
.ck-azioni { display: flex; flex-wrap: wrap; gap: 8px; }
.ck-azioni .ck-btn { flex: 1 1 auto; }
@media (min-width: 720px) {
  .ck-avviso { flex-direction: row; align-items: center; gap: 24px; padding: 14px 16px 14px 22px; }
  .ck-avviso-testo { flex: 1 1 auto; }
  .ck-azioni { flex: 0 0 auto; flex-wrap: nowrap; }
  .ck-azioni .ck-btn { flex: 0 0 auto; }
}

/* ---------- Dialogo delle preferenze ---------- */
.ck-dialogo { width: min(560px, calc(100% - 32px)); max-height: calc(100% - 32px); margin: auto; padding: 0; overflow: auto;
  background: var(--lg-fondo); color: var(--lg-testo); border: 1px solid var(--lg-linea-forte); border-radius: 18px;
  box-shadow: 0 32px 80px -20px rgba(0, 0, 0, .85); font: 400 .9375rem/1.55 var(--lg-font); color-scheme: dark; }
.ck-dialogo::backdrop { background: rgba(2, 6, 16, .72); }
.ck-dialogo:not([open]) { display: none; }
.ck-dialogo-testa { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 20px 0 24px; }
.ck-dialogo .ck-dialogo-testa h2 { margin: 0; font-size: 1.25rem; line-height: 1.3; letter-spacing: -.01em; font-weight: 700; color: var(--lg-testo); }
.ck-dialogo .ck-dialogo-desc { margin: 10px 24px 0; color: var(--lg-tenue); }
.ck-dialogo .ck-categorie { margin: 18px 24px 0; padding: 0; list-style: none; border: 1px solid var(--lg-linea); border-radius: 14px; background: var(--lg-riquadro); }
.ck-categoria { padding: 14px 16px; }
.ck-categoria + .ck-categoria { border-top: 1px solid var(--lg-linea); }
.ck-categoria-riga { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.ck-dialogo .ck-categoria h3 { margin: 0; font-size: 1rem; line-height: 1.35; font-weight: 600; color: var(--lg-testo); }
.ck-dialogo .ck-categoria p { margin: 6px 0 0; font-size: .875rem; line-height: 1.55; color: var(--lg-tenue); }
.ck-dialogo .ck-nota { margin: 14px 24px 0; font-size: .875rem; color: var(--lg-tenue); }
.ck-azioni-dialogo { justify-content: flex-end; padding: 18px 24px 22px; }
.ck-azioni-dialogo .ck-btn { flex: 0 0 auto; min-width: 140px; }

@media (prefers-reduced-motion: reduce) { .ck-btn, .ck-link { transition: none; } }
@media (forced-colors: active) { .ck-avviso, .ck-dialogo, .lg-indice, .lg-tabella-scorri, .lp .lg-dati { border: 1px solid CanvasText; } }

/* ---------- Stampa: solo il documento, nero su bianco ---------- */
@media print {
  .ck-avviso, .ck-dialogo, .lg-indice, .lg-documenti { display: none !important; }
  .lg-pagina { padding: 0; }
  .lg-griglia { display: block; }
  .lg-pagina, .lp .lg-doc, .lp .lg-doc h2, .lp .lg-doc h3, .lp .lg-intesta h1, .lp .lg-lead, .lg-tabella th, .lg-tabella td,
  .lg-dati dt, .lp .lg-aggiornato { color: #000 !important; }
  .lp .lg-doc a { color: #000 !important; }
  .lg-tabella-scorri, .lp .lg-dati, .lg-sintesi li { background: none; border-color: #999; overflow: visible; }
  .lg-tabella-cookie { min-width: 0; }
  .lg-doc section { break-inside: auto; }
  .lp .lg-doc h2, .lp .lg-doc h3 { break-after: avoid; }
}
