/* ===== ScuolaGo — Pagine legali (privacy, cookie, termini) ===== */
.shell{ max-width:1180px; margin:0 auto; padding:0 clamp(20px,5vw,44px); }

/* header snello e coerente con la home */
.legal-head{
  position:sticky; top:0; z-index:60;
  background:color-mix(in srgb,var(--card,#fff) 84%,transparent);
  -webkit-backdrop-filter:blur(14px) saturate(1.4); backdrop-filter:blur(14px) saturate(1.4);
  border-bottom:1px solid var(--hairline,rgba(38,52,84,.12));
}
/* L'header resta in VETRO anche in modalità veloce: perf.css azzera i backdrop-filter con
   [class][class][class]!important (specificità 0,3,0). Qui usiamo 0,3,1 per ripristinarlo SOLO
   sull'header (lo sfondo della pagina resta leggero, senza sfocature). */
header.legal-head.legal-head.legal-head{
  -webkit-backdrop-filter:blur(14px) saturate(1.4)!important;
  backdrop-filter:blur(14px) saturate(1.4)!important;
}
.legal-head .row{ display:flex; align-items:center; gap:14px; height:64px; max-width:1180px; margin:0 auto; padding:0 clamp(20px,5vw,44px); }
.legal-head .brand-logo{ height:38px; width:auto; display:block; }
.legal-head .spacer{ margin-left:auto; }
.legal-head a.back{
  display:inline-flex; align-items:center; gap:8px; font-size:14px; font-weight:600; text-decoration:none;
  color:var(--text-secondary); padding:9px 16px; border-radius:999px;
  border:1px solid var(--border-glass); background:var(--button-bg,color-mix(in srgb,var(--card) 70%,transparent));
  transition:all .22s var(--ease,ease);
}
.legal-head a.back:hover{ color:var(--accent); border-color:color-mix(in srgb,var(--accent) 50%,var(--border-glass)); transform:translateY(-1px); }
.legal-head a.back svg{ width:16px; height:16px; }
.legal-head .ps-iconbtn{ width:40px; height:40px; }

/* intestazione documento */
.legal-hero{ padding:clamp(40px,7vw,80px) 0 clamp(20px,3vw,32px); }
.legal-hero .eyebrow{ display:inline-flex; align-items:center; gap:11px; font-size:12px; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--accent); }
.legal-hero .eyebrow::before{ content:""; width:26px; height:1px; background:currentColor; opacity:.7; }
.legal-hero h1{ font-size:clamp(30px,5vw,52px); font-weight:600; line-height:1.06; letter-spacing:-.02em;
  margin:14px 0 14px; color:var(--text-primary); }
.legal-hero .updated{ color:var(--text-muted); font-size:13.5px; }
.legal-hero .updated b{ color:var(--text-secondary); font-weight:600; }

/* corpo: indice + contenuto */
.legal-wrap{ display:grid; grid-template-columns:240px 1fr; gap:clamp(24px,4vw,56px);
  align-items:start; padding-bottom:clamp(48px,7vw,96px); }
.legal-toc{ position:sticky; top:88px; }
.legal-toc b{ display:block; font-size:11.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  color:var(--text-muted); margin:0 0 12px; }
.legal-toc a{ display:block; padding:7px 12px; border-radius:9px; font-size:13.5px; line-height:1.4;
  color:var(--text-secondary); text-decoration:none; transition:all .16s; border-left:2px solid transparent; }
.legal-toc a:hover{ color:var(--accent); background:color-mix(in srgb,var(--accent) 7%,transparent); }
.legal-toc a.active{ color:var(--accent); border-left-color:var(--accent); font-weight:600; }

.legal-doc{ max-width:780px; }
.legal-doc .gl-card{
  background:var(--surface-glass); -webkit-backdrop-filter:blur(20px) saturate(1.4); backdrop-filter:blur(20px) saturate(1.4);
  border:1px solid var(--border-glass); box-shadow:var(--shadow-soft), inset 0 1px 0 var(--edge,rgba(255,255,255,.4));
  border-radius:18px; padding:clamp(18px,3vw,26px); margin:22px 0;
}
.legal-doc .lead{ color:var(--text-secondary); font-size:clamp(15px,1.4vw,17px); line-height:1.75; }

.legal-doc section{ scroll-margin-top:84px; padding-top:clamp(22px,3vw,34px); }
.legal-doc section + section{ border-top:1px solid var(--hairline); }
.legal-doc h2{ font-size:clamp(20px,2.4vw,27px); font-weight:600; letter-spacing:-.01em; line-height:1.2;
  margin:0 0 14px; color:var(--text-primary); display:flex; gap:12px; align-items:baseline; }
.legal-doc h2 .n{ font-family:'Fraunces','Lora',serif; font-size:.82em; color:var(--accent); font-weight:600; flex:none; }
.legal-doc h3{ font-size:clamp(16px,1.8vw,19px); font-weight:600; color:var(--text-primary); margin:24px 0 8px; }
.legal-doc p{ color:var(--text-secondary); font-size:15px; line-height:1.75; margin:0 0 14px; }
.legal-doc ul,.legal-doc ol{ color:var(--text-secondary); font-size:15px; line-height:1.7; margin:0 0 16px; padding-left:4px; list-style:none; }
.legal-doc ul li{ position:relative; padding-left:24px; margin:0 0 9px; }
.legal-doc ul li::before{ content:""; position:absolute; left:6px; top:9px; width:6px; height:6px; border-radius:50%;
  background:var(--accent); opacity:.8; }
.legal-doc ol{ counter-reset:li; padding-left:0; }
.legal-doc ol li{ position:relative; padding-left:30px; margin:0 0 9px; counter-increment:li; }
.legal-doc ol li::before{ content:counter(li); position:absolute; left:0; top:0; width:20px; height:20px;
  font-size:11px; font-weight:700; color:var(--accent); display:grid; place-items:center;
  border:1px solid color-mix(in srgb,var(--accent) 35%,transparent); border-radius:50%;
  background:color-mix(in srgb,var(--accent) 10%,transparent); }
.legal-doc a{ color:var(--accent); font-weight:500; text-decoration:none; }
.legal-doc a:hover{ text-decoration:underline; }
.legal-doc strong,.legal-doc b{ color:var(--text-primary); font-weight:600; }
.legal-doc .muted{ color:var(--text-muted); font-size:13.5px; }

/* tabella (cookie / dati) */
.legal-doc .tbl{ width:100%; border-collapse:collapse; margin:6px 0 18px; font-size:13.5px; }
.legal-doc .tbl th,.legal-doc .tbl td{ text-align:left; padding:11px 13px; vertical-align:top;
  border-bottom:1px solid var(--hairline); color:var(--text-secondary); line-height:1.5; }
.legal-doc .tbl th{ font-weight:700; color:var(--text-primary); font-size:12px; letter-spacing:.03em; text-transform:uppercase; }
.legal-doc .tbl tr:last-child td{ border-bottom:0; }
.legal-doc .tbl code{ font-size:12.5px; }
.legal-doc .tbl-wrap{ overflow-x:auto; border:1px solid var(--hairline); border-radius:14px;
  background:color-mix(in srgb,var(--card) 50%,transparent); padding:2px 14px; margin:6px 0 18px; }
.legal-doc .tbl-wrap .tbl{ margin:0; }

.legal-doc code{ font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:13px;
  background:color-mix(in srgb,var(--accent) 10%,transparent); color:var(--accent-d,var(--accent));
  padding:2px 7px; border-radius:6px; }
.legal-doc .callout{
  border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border-glass)); border-left:3px solid var(--accent);
  background:color-mix(in srgb,var(--accent) 7%,transparent); border-radius:12px; padding:14px 18px; margin:6px 0 18px; }
.legal-doc .callout p{ margin:0; font-size:14px; }

/* nota legale finale */
.legal-note{ color:var(--text-muted); font-size:12.5px; line-height:1.7; max-width:780px; margin:0 0 8px; }

@media(max-width:880px){
  .legal-wrap{ grid-template-columns:1fr; }
  .legal-toc{ position:static; margin-bottom:8px; border:1px solid var(--hairline); border-radius:14px;
    padding:14px 16px; background:color-mix(in srgb,var(--card) 60%,transparent); }
}

/* ===== MOBILE (pagine legali/guide) ===== */
@media(max-width:880px){
  /* l'indice diventa una fila di chip tappabili invece di 550px di elenco */
  .legal-toc{ display:flex; flex-wrap:wrap; gap:6px; }
  .legal-toc b{ flex-basis:100%; margin-bottom:2px; }
  .legal-toc a{ display:inline-flex; align-items:center; border:1px solid var(--hairline); border-radius:999px; padding:10px 12px; font-size:12.5px; line-height:1.2; }
}
@media(max-width:430px){
  .legal-head .row{ gap:8px; }
  .legal-head .brand-logo{ height:32px; }
  .legal-head .back{ white-space:nowrap; min-height:44px; display:inline-flex; align-items:center; }
}
@media(pointer:coarse){ .legal-head .ps-iconbtn{ width:44px; height:44px; } }
