/* FUSION — stile condiviso delle pagine legali (privacy, cookie) */

:root {
  --orange: #FE660B;
  --yellow: #FFDC00;
  --grad: linear-gradient(135deg, #FE660B 0%, #FFDC00 100%);
  --bg: #000000;
  --bg-card: #0D0D0D;
  --bg-3: #141414;
  --text: #FFFFFF;
  --muted: rgba(255,255,255,0.45);
  --muted2: rgba(255,255,255,0.25);
  --border: rgba(255,255,255,0.08);
  --border2: rgba(254,102,11,0.20);
  --display: 'Poppins', system-ui, sans-serif;
  --body: 'Open Sans', system-ui, sans-serif;
}

@font-face { font-family: 'Poppins'; src: url('../assets/fonts/poppins-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Poppins'; src: url('../assets/fonts/poppins-latin-600-normal.woff2') format('woff2'); font-weight: 600; font-display: swap; }
@font-face { font-family: 'Poppins'; src: url('../assets/fonts/poppins-latin-700-normal.woff2') format('woff2'); font-weight: 700; font-display: swap; }
@font-face { font-family: 'Poppins'; src: url('../assets/fonts/poppins-latin-800-normal.woff2') format('woff2'); font-weight: 800; font-display: swap; }
@font-face { font-family: 'Open Sans'; src: url('../assets/fonts/open-sans-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Open Sans'; src: url('../assets/fonts/open-sans-latin-600-normal.woff2') format('woff2'); font-weight: 600; font-display: swap; }
@font-face { font-family: 'Open Sans'; src: url('../assets/fonts/open-sans-latin-700-normal.woff2') format('woff2'); font-weight: 700; font-display: swap; }

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--body);
  background: var(--bg);
  color: var(--text);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--orange); }
a:hover { text-decoration: none; }
a:focus-visible, button:focus-visible {
  outline: 2px solid var(--orange); outline-offset: 3px; border-radius: 4px;
}

.wrap { max-width: 820px; margin: 0 auto; padding: 0 24px; }

/* Barra superiore */
.legal-top {
  border-bottom: 1px solid var(--border);
  padding: 22px 0;
  position: sticky; top: 0; z-index: 10;
  background: rgba(0,0,0,0.9);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.legal-top .wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.legal-brand {
  font: 700 14px/1 var(--display); color: var(--text);
  text-decoration: none; letter-spacing: 0.02em;
}
.legal-brand span { color: var(--orange); }
.legal-back { font: 600 13px/1 var(--display); text-decoration: none; white-space: nowrap; }

/* Testata */
header.legal-head { padding: 72px 0 44px; border-bottom: 1px solid var(--border); }
.legal-tag {
  font: 700 10px/1 var(--display); letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--orange); margin-bottom: 20px; display: inline-block;
}
h1 {
  font: 800 clamp(30px, 5vw, 46px)/1.12 var(--display);
  letter-spacing: -1.4px; margin-bottom: 18px;
}
.legal-meta { font: 400 14px/1.6 var(--body); color: var(--muted); }

/* Corpo */
main { padding: 48px 0 40px; }
section.legal-sec { margin-bottom: 44px; scroll-margin-top: 90px; }
h2 {
  font: 700 clamp(19px, 2.4vw, 24px)/1.3 var(--display);
  letter-spacing: -0.5px; margin-bottom: 16px; color: var(--text);
}
h2 .n { color: var(--orange); margin-right: 10px; font-weight: 800; }
h3 {
  font: 600 16px/1.4 var(--display);
  color: var(--text); margin: 24px 0 10px;
}
p { font: 400 15.5px/1.75 var(--body); color: rgba(255,255,255,0.72); margin-bottom: 14px; }
strong { color: var(--text); font-weight: 600; }

ul, ol { margin: 0 0 16px; padding-left: 0; list-style: none; }
ul li, ol li {
  font: 400 15.5px/1.7 var(--body); color: rgba(255,255,255,0.72);
  padding: 7px 0 7px 26px; position: relative;
}
ul li::before { content: '→'; position: absolute; left: 0; color: var(--orange); font-weight: 700; }
ol { counter-reset: li; }
ol li { counter-increment: li; }
ol li::before {
  content: counter(li) '.'; position: absolute; left: 0;
  color: var(--orange); font-weight: 700; font-family: var(--display);
}

/* Indice */
.toc {
  background: var(--bg-card); border: 1px solid var(--border);
  border-radius: 14px; padding: 26px 30px; margin-bottom: 48px;
}
.toc-title {
  font: 700 10px/1 var(--display); letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--muted2); margin-bottom: 16px;
}
.toc ol { margin: 0; column-count: 2; column-gap: 34px; }
.toc li { padding: 5px 0 5px 24px; }
.toc li::before { font-size: 13px; }
.toc a { font: 400 14px/1.5 var(--body); text-decoration: none; color: rgba(255,255,255,0.72); }
.toc a:hover { color: var(--orange); }

/* Scheda titolare / riquadri */
.box {
  background: var(--bg-card); border: 1px solid var(--border);
  border-radius: 14px; padding: 24px 28px; margin: 18px 0;
}
.box.accent { border-color: var(--border2); background: rgba(254,102,11,0.035); }
.box p:last-child, .box ul:last-child { margin-bottom: 0; }
.box dl { display: grid; grid-template-columns: 190px 1fr; gap: 10px 20px; }
.box dt {
  font: 700 10px/1.6 var(--display); letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--muted2);
}
.box dd { font: 400 15px/1.6 var(--body); color: var(--text); }

/* Tabelle */
.table-scroll { overflow-x: auto; margin: 18px 0 8px; -webkit-overflow-scrolling: touch; }
table {
  width: 100%; border-collapse: collapse; min-width: 620px;
  background: var(--bg-card); border: 1px solid var(--border); border-radius: 14px;
  overflow: hidden;
}
th {
  font: 700 10px/1.4 var(--display); letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--orange); text-align: left; padding: 16px 18px;
  border-bottom: 1px solid var(--border); background: rgba(255,255,255,0.02);
  vertical-align: bottom;
}
td {
  font: 400 14px/1.6 var(--body); color: rgba(255,255,255,0.72);
  padding: 16px 18px; border-bottom: 1px solid var(--border); vertical-align: top;
}
tr:last-child td { border-bottom: none; }
td strong { color: var(--text); }
td code {
  font: 400 12.5px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace;
  color: var(--yellow); background: rgba(255,220,0,0.07);
  padding: 2px 7px; border-radius: 4px; white-space: nowrap;
}
.badge {
  display: inline-block; font: 700 9.5px/1 var(--display);
  letter-spacing: 0.1em; text-transform: uppercase;
  padding: 5px 9px; border-radius: 999px; white-space: nowrap;
}
.badge.nec { background: rgba(255,255,255,0.08); color: rgba(255,255,255,0.65); }
.badge.opt { background: rgba(254,102,11,0.14); color: var(--orange); }

/* Bottone (revoca consenso) */
.btn-inline {
  display: inline-flex; align-items: center; gap: 9px;
  background: var(--grad); color: #000; border: none; cursor: pointer;
  font: 700 13px/1 var(--display); letter-spacing: 0.04em;
  padding: 14px 22px; border-radius: 8px; text-decoration: none;
  transition: opacity 0.15s ease;
}
.btn-inline:hover { opacity: 0.88; }

/* Nota da compilare */
.fill {
  background: rgba(254,102,11,0.12); border: 1px dashed var(--orange);
  border-radius: 4px; padding: 2px 9px; color: rgba(255,255,255,0.75);
  font-size: 0.94em;
}
.fill::before { content: '⚠️ DA COMPILARE — '; color: var(--orange); font-weight: 700; }

/* Footer */
footer.legal-foot {
  border-top: 1px solid var(--border); padding: 32px 0 48px;
  font: 400 13px/1.7 var(--body); color: var(--muted2);
}
footer.legal-foot .wrap { display: flex; justify-content: space-between; gap: 18px; flex-wrap: wrap; }
footer.legal-foot a { color: var(--muted); text-decoration: none; }
footer.legal-foot a:hover { color: var(--orange); }

@media (max-width: 720px) {
  header.legal-head { padding: 48px 0 32px; }
  .toc { padding: 22px; }
  .toc ol { column-count: 1; }
  .box { padding: 20px 22px; }
  .box dl { grid-template-columns: 1fr; gap: 4px 0; }
  .box dd { margin-bottom: 12px; }
  footer.legal-foot .wrap { flex-direction: column; text-align: center; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
