/* Pagine legali: stessa identità del sito, impaginazione pensata per lettura,
   navigazione per ancore e stampa su carta o PDF. */

.legal-main{ background:var(--bg); }
.legal-hero{ padding-block:clamp(3.5rem,7vw,6.5rem) clamp(2.6rem,5vw,4.5rem); border-bottom:1px solid var(--line); }
.legal-hero h1{ max-width:18ch; margin:.8rem 0 1rem; font-size:clamp(2.4rem,1.4rem + 4vw,4.7rem); }
.legal-hero .lede{ max-width:70ch; }
.legal-meta{ display:flex; flex-wrap:wrap; gap:.55rem 1rem; margin-top:1.4rem; color:var(--ink-3); font-size:.82rem; }
.legal-meta span{ font-family:var(--mono); }

.legal-wrap{ display:grid; grid-template-columns:minmax(13rem,16rem) minmax(0,48rem); gap:clamp(2rem,5vw,5rem); align-items:start; justify-content:center; padding-block:clamp(2.7rem,6vw,5.5rem); }
.legal-toc{ position:sticky; top:calc(var(--hdr) + 1.25rem); background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:1.15rem; }
.legal-toc h2{ font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3); margin-bottom:.75rem; }
.legal-toc ol{ display:grid; gap:.2rem; counter-reset:legal-toc; }
.legal-toc li{ counter-increment:legal-toc; }
.legal-toc a{ display:grid; grid-template-columns:1.5rem 1fr; gap:.35rem; padding:.42rem .45rem; border-radius:7px; text-decoration:none; color:var(--ink-2); font-size:.82rem; line-height:1.35; }
.legal-toc a::before{ content:counter(legal-toc,decimal-leading-zero); font-family:var(--mono); font-size:.65rem; color:var(--acc); padding-top:.12rem; }
.legal-toc a:hover{ color:var(--ink); background:var(--acc-bg); }

.legal-article{ min-width:0; }
.legal-notice{ padding:1.1rem 1.2rem; border:1px solid rgba(75,59,245,.28); border-radius:14px; background:var(--acc-bg); color:#28205E; margin-bottom:2rem; }
.legal-notice b{ display:block; margin-bottom:.25rem; }
.legal-article section{ padding:0 0 2.6rem; scroll-margin-top:calc(var(--hdr) + 1.5rem); }
.legal-article section + section{ border-top:1px solid var(--line); padding-top:2.6rem; }
.legal-article h2{ font-size:clamp(1.55rem,1.2rem + 1vw,2.1rem); margin-bottom:1rem; }
.legal-article h3{ font-size:1.08rem; letter-spacing:-.02em; line-height:1.25; margin:1.55rem 0 .55rem; }
.legal-article p{ color:var(--ink-2); margin:.7rem 0; }
.legal-article a{ color:var(--acc-2); font-weight:600; text-underline-offset:2px; overflow-wrap:anywhere; }
.legal-article ul,.legal-article ol{ margin:.75rem 0 1rem; padding-left:1.25rem; color:var(--ink-2); }
.legal-article ul{ list-style:disc; }
.legal-article ol{ list-style:decimal; }
.legal-article li{ padding-left:.25rem; margin:.42rem 0; }
.legal-article strong{ color:var(--ink); }
.legal-article address{ font-style:normal; color:var(--ink-2); }
.legal-article code{ font-family:var(--mono); font-size:.82em; overflow-wrap:anywhere; }
.legal-callout{ border-left:3px solid var(--acc); padding:.25rem 0 .25rem 1rem; margin:1.2rem 0; }
.legal-callout p{ margin:.35rem 0; }

.legal-table-wrap{ overflow-x:auto; margin:1rem 0 1.4rem; border:1px solid var(--line); border-radius:14px; background:var(--surface); }
.legal-table{ width:100%; border-collapse:collapse; min-width:42rem; font-size:.83rem; line-height:1.45; }
.legal-table th,.legal-table td{ padding:.8rem .85rem; text-align:left; vertical-align:top; border-bottom:1px solid var(--line); }
.legal-table th{ background:#F0F1F3; color:var(--ink); font-size:.7rem; letter-spacing:.05em; text-transform:uppercase; }
.legal-table tr:last-child td{ border-bottom:0; }
.legal-table td{ color:var(--ink-2); }
.legal-table td:first-child{ color:var(--ink); font-weight:600; }

.withdrawal-form{ margin-top:1.2rem; padding:1.25rem; border:1px dashed var(--line-2); border-radius:14px; background:var(--surface); }
.withdrawal-form h3{ margin-top:0; }

@media(max-width:860px){
  .legal-wrap{ grid-template-columns:1fr; }
  .legal-toc{ position:static; }
  .legal-toc ol{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:560px){
  .legal-toc ol{ grid-template-columns:1fr; }
  .legal-hero h1{ font-size:2.35rem; }
}

@media print{
  .site-header,.site-footer,.mobile-dock,.drawer,.cookie-consent{ display:none!important; }
  body,.legal-main{ background:#fff; color:#000; font-size:10.5pt; }
  .legal-hero{ padding:0 0 1.2cm; }
  .legal-wrap{ display:block; padding:1cm 0; }
  .legal-toc{ position:static; border:0; padding:0; margin-bottom:1cm; }
  .legal-toc ol{ grid-template-columns:repeat(2,1fr); }
  .legal-article section{ break-inside:avoid; }
  .legal-table-wrap{ overflow:visible; }
  .legal-table{ min-width:0; font-size:8pt; }
  .legal-article a{ color:#000; text-decoration:none; }
  .legal-article a[href^="http"]::after{ content:" (" attr(href) ")"; font-size:8pt; font-weight:400; }
}
