/* ═══════════════════════════════════════════════════════════
   Timatica S.r.l. — Stile pagine legali
   ═══════════════════════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

@font-face{font-family:'Syne';font-style:normal;font-weight:400 800;font-display:swap;src:url('fonts/syne-normal-400.woff2') format('woff2');}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:300 700;font-display:swap;src:url('fonts/dm-sans-normal-300.woff2') format('woff2');}
@font-face{font-family:'DM Sans';font-style:italic;font-weight:300 400;font-display:swap;src:url('fonts/dm-sans-italic-300.woff2') format('woff2');}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:300 700;font-display:swap;src:url('fonts/space-grotesk-normal-300.woff2') format('woff2');}

:root {
  --navy:#0d2240; --navy2:#162e52; --blue:#1b4f8c;
  --accent:#2e7fe8; --cyan:#00c8ff; --gray:#8899aa;
  --light:#e8edf4; --white:#fff; --dark:#070f1a;
}
html { scroll-behavior: smooth; }
body {
  font-family:'DM Sans',sans-serif; background:var(--dark); color:var(--light);
  overflow-x:hidden; line-height:1.8; font-size:.95rem;
}
a { color:var(--accent); text-decoration:none; transition:color .2s; }
a:hover { color:var(--cyan); text-decoration:underline; }
img { display:block; }

/* ── HEADER ── */
header {
  position:fixed; top:0; left:0; width:100%; z-index:200;
  background:rgba(7,15,26,.94); backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(46,127,232,.14);
  display:flex; align-items:center; justify-content:space-between;
  padding:0 6%; height:72px;
}
header .logo-img { height:38px; }
header nav { display:flex; gap:1.4rem; align-items:center; }
header nav a {
  font-size:.78rem; font-weight:500; color:var(--gray); letter-spacing:.06em;
  text-transform:uppercase; text-decoration:none;
}
header nav a:hover { color:var(--cyan); text-decoration:none; }
header nav a.active { color:var(--cyan); }

/* ── HERO ── */
.legal-hero {
  padding:11rem 6% 3.5rem; position:relative; overflow:hidden;
  border-bottom:1px solid rgba(46,127,232,.13);
  background:
    radial-gradient(ellipse 70% 100% at 20% 0%, rgba(46,127,232,.15) 0%, transparent 60%),
    linear-gradient(180deg, var(--navy) 0%, var(--dark) 100%);
}
.legal-hero::after {
  content:''; position:absolute; inset:0; opacity:.05; pointer-events:none;
  background-image:
    linear-gradient(45deg,var(--accent) 25%,transparent 25%),
    linear-gradient(-45deg,var(--accent) 25%,transparent 25%),
    linear-gradient(45deg,transparent 75%,var(--accent) 75%),
    linear-gradient(-45deg,transparent 75%,var(--accent) 75%);
  background-size:50px 50px;
  background-position:0 0,0 25px,25px -25px,-25px 0;
}
.legal-hero > * { position:relative; z-index:2; }
.sec-label {
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:'Space Grotesk',sans-serif; font-size:.74rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--cyan);
  margin-bottom:1rem;
}
.legal-hero h1 {
  font-family:'Syne',sans-serif; font-weight:800; letter-spacing:-.02em;
  font-size:clamp(2rem,5vw,3.2rem); line-height:1.1; color:var(--white);
  margin-bottom:1rem;
}
.legal-meta {
  font-family:'Space Grotesk',sans-serif; font-size:.8rem; color:var(--gray);
  letter-spacing:.03em;
}
.legal-meta strong { color:var(--light); font-weight:500; }

/* ── LAYOUT ── */
.legal-wrap {
  display:grid; grid-template-columns:250px 1fr; gap:4rem;
  max-width:1240px; margin:0 auto; padding:3.5rem 6% 5rem;
}
.toc { position:sticky; top:100px; align-self:start; }
.toc h4 {
  font-family:'Space Grotesk',sans-serif; font-size:.72rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.12em; color:var(--light);
  margin-bottom:1rem; padding-bottom:.7rem; border-bottom:1px solid rgba(46,127,232,.2);
}
.toc ol { list-style:none; counter-reset:toc; display:flex; flex-direction:column; gap:.5rem; }
.toc ol li { counter-increment:toc; }
.toc ol li a {
  font-size:.79rem; color:var(--gray); display:block; line-height:1.45;
  padding-left:1.6rem; position:relative; text-decoration:none;
}
.toc ol li a::before {
  content:counter(toc) "."; position:absolute; left:0;
  font-family:'Space Grotesk',sans-serif; font-size:.72rem; color:var(--accent);
}
.toc ol li a:hover { color:var(--cyan); text-decoration:none; }

/* ── CONTENUTO ── */
.legal-body { max-width:800px; min-width:0; }
.legal-body section { margin-bottom:2.8rem; scroll-margin-top:96px; }
.legal-body h2 {
  font-family:'Syne',sans-serif; font-size:1.32rem; font-weight:700; color:var(--white);
  margin-bottom:1rem; padding-bottom:.6rem;
  border-bottom:1px solid rgba(46,127,232,.18);
  letter-spacing:-.01em;
}
.legal-body h3 {
  font-family:'Space Grotesk',sans-serif; font-size:.98rem; font-weight:600;
  color:var(--cyan); margin:1.6rem 0 .6rem;
}
.legal-body p { margin-bottom:1rem; color:#b9c6d6; }
.legal-body ul, .legal-body ol { margin:0 0 1.1rem 1.2rem; color:#b9c6d6; }
.legal-body li { margin-bottom:.5rem; padding-left:.3rem; }
.legal-body li::marker { color:var(--accent); }
.legal-body strong { color:var(--light); font-weight:600; }

.callout {
  background:rgba(46,127,232,.07); border:1px solid rgba(46,127,232,.22);
  border-left:3px solid var(--accent); border-radius:8px;
  padding:1.2rem 1.4rem; margin:1.4rem 0;
}
.callout p:last-child { margin-bottom:0; }
.callout.warn { background:rgba(0,200,255,.05); border-left-color:var(--cyan); }

.data-card {
  background:linear-gradient(135deg,rgba(22,46,82,.65),rgba(13,34,64,.45));
  border:1px solid rgba(46,127,232,.22); border-radius:10px;
  padding:1.5rem 1.6rem; margin:1.2rem 0;
}
.data-card dl { display:grid; grid-template-columns:auto 1fr; gap:.55rem 1.4rem; margin:0; }
.data-card dt {
  font-family:'Space Grotesk',sans-serif; font-size:.74rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.08em; color:var(--gray);
  white-space:nowrap; padding-top:.15rem;
}
.data-card dd { margin:0; color:var(--light); font-size:.9rem; line-height:1.6; }

/* ── TABELLE ── */
.table-scroll { overflow-x:auto; margin:1.2rem 0; -webkit-overflow-scrolling:touch; }
table {
  width:100%; border-collapse:collapse; font-size:.83rem; min-width:560px;
  background:rgba(13,34,64,.35); border-radius:10px; overflow:hidden;
}
th {
  background:rgba(46,127,232,.16); color:var(--light); text-align:left;
  font-family:'Space Grotesk',sans-serif; font-size:.72rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.08em;
  padding:.85rem 1rem; border-bottom:1px solid rgba(46,127,232,.28);
}
td {
  padding:.85rem 1rem; border-bottom:1px solid rgba(255,255,255,.06);
  color:#b9c6d6; vertical-align:top; line-height:1.6;
}
tbody tr:last-child td { border-bottom:none; }
tbody tr:hover td { background:rgba(46,127,232,.05); }
td code, .legal-body code {
  font-family:'Space Grotesk',monospace; font-size:.8rem;
  background:rgba(46,127,232,.14); color:var(--cyan);
  padding:.12rem .4rem; border-radius:4px;
}
.badge {
  display:inline-block; font-family:'Space Grotesk',sans-serif; font-size:.68rem;
  font-weight:600; text-transform:uppercase; letter-spacing:.07em;
  padding:.18rem .55rem; border-radius:20px; white-space:nowrap;
}
.badge.tech { background:rgba(0,200,255,.15); color:var(--cyan); border:1px solid rgba(0,200,255,.35); }
.badge.opt  { background:rgba(255,180,60,.13); color:#ffb43c; border:1px solid rgba(255,180,60,.32); }

/* ── BOTTONI ── */
.btn-primary {
  display:inline-block; background:linear-gradient(135deg,var(--accent),var(--cyan));
  color:var(--white)!important; padding:.75rem 1.7rem; border-radius:8px;
  font-weight:700; font-size:.87rem; letter-spacing:.03em; text-decoration:none!important;
  box-shadow:0 4px 20px rgba(46,127,232,.32); transition:transform .2s,box-shadow .2s;
  border:none; cursor:pointer; font-family:inherit;
}
.btn-primary:hover { transform:translateY(-2px); box-shadow:0 8px 28px rgba(46,127,232,.5); }
.btn-outline {
  display:inline-block; border:1.5px solid var(--accent); color:var(--accent)!important;
  padding:.75rem 1.7rem; border-radius:8px; font-weight:600; font-size:.87rem;
  background:transparent; cursor:pointer; font-family:inherit;
  transition:background .2s,color .2s; text-decoration:none!important;
}
.btn-outline:hover { background:var(--accent); color:var(--white)!important; }

/* ── FOOTER ── */
footer { background:var(--dark); border-top:1px solid rgba(46,127,232,.13); padding:2.8rem 6% 2rem; }
.footer-bottom {
  display:flex; justify-content:space-between; align-items:center;
  flex-wrap:wrap; gap:1rem; max-width:1240px; margin:0 auto;
}
.footer-bottom p { font-size:.74rem; color:var(--gray); margin:0; }
.footer-legal { display:flex; gap:1.4rem; flex-wrap:wrap; }
.footer-legal a, .footer-legal button {
  font-size:.74rem; color:var(--gray); background:none; border:none;
  cursor:pointer; font-family:inherit; padding:0; text-decoration:none;
}
.footer-legal a:hover, .footer-legal button:hover { color:var(--cyan); text-decoration:none; }

@media (max-width:900px) {
  .legal-wrap { grid-template-columns:1fr; gap:2rem; padding-top:2.5rem; }
  .toc { position:static; }
  .legal-hero { padding-top:9rem; }
  header nav a:not(.btn-nav) { display:none; }
  .data-card dl { grid-template-columns:1fr; gap:.15rem .5rem; }
  .data-card dt { margin-top:.7rem; }
}
