
:root {
  --testo: #c9dbd4; --tenue: #93b1a7; --bianco: #fff; --verde-chiaro: #9debd3;
  --amber: #f2b84b; --notte: #071b17; --riga: rgba(255,255,255,.12); --vetro: rgba(255,255,255,.045);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { position: relative; margin: 0; min-height: 100vh; overflow-x: hidden; color: var(--testo); background: radial-gradient(circle at 80% 0, #12664f 0, transparent 32%), linear-gradient(160deg, #061713 10%, #0a3429 55%, #075e47 130%) fixed; font: 16px/1.7 Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif; isolation: isolate; }
a { color: var(--verde-chiaro); }
a:hover { color: var(--bianco); }
.legale-griglia { position: fixed; inset: 0; z-index: -2; opacity: .09; pointer-events: none; background-image: linear-gradient(rgba(255,255,255,.35) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.35) 1px, transparent 1px); background-size: 64px 64px; mask-image: linear-gradient(90deg, black, transparent 80%); }
.legale-cerchio { position: fixed; z-index: -1; width: 430px; height: 430px; right: -230px; top: -140px; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; box-shadow: 0 0 0 70px rgba(255,255,255,.025), 0 0 0 140px rgba(255,255,255,.018); pointer-events: none; }

.legale-testata { position: sticky; top: 0; z-index: 5; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px clamp(22px, 5vw, 76px); color: white; background: rgba(7,27,23,.82); backdrop-filter: blur(16px); box-shadow: 0 8px 30px rgba(0,0,0,.16); }
.legale-testata .brand { display: inline-flex; align-items: center; gap: 11px; color: inherit; text-decoration: none; }
.legale-testata .brand-mark { display: grid; place-items: center; height: 42px; padding: 5px 9px; border-radius: 12px; background: linear-gradient(145deg, white, #d6f4e9); box-shadow: 0 8px 20px rgba(0,0,0,.13); }
.legale-testata .brand-mark img { display: block; width: auto; height: 32px; }
.legale-testata strong { display: block; font-size: 17px; letter-spacing: .09em; line-height: 1.1; }
.legale-testata small { display: block; margin-top: 4px; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; opacity: .72; }
.legale-testata nav { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 22px; font-size: 14px; font-weight: 600; }
.legale-testata nav a { color: rgba(255,255,255,.8); text-decoration: none; }
.legale-testata nav a:hover { color: white; }
.legale-testata nav a[aria-current="page"] { color: white; box-shadow: inset 0 -2px 0 var(--amber); }

.legale { max-width: 880px; margin: 0 auto; padding: clamp(46px, 8vw, 96px) clamp(22px, 4vw, 32px) 80px; }
.eyebrow { margin: 0 0 18px; color: var(--verde-chiaro); font-size: 12px; font-weight: 900; letter-spacing: .17em; text-transform: uppercase; }
.eyebrow span { display: inline-block; width: 28px; height: 2px; margin: 0 10px 3px 0; background: var(--amber); }
.legale h1 { margin: 0 0 14px; color: white; font-size: clamp(42px, 6vw, 76px); line-height: 1; letter-spacing: -.055em; }
.legale h1 em { color: var(--verde-chiaro); font-family: Georgia, serif; font-weight: 400; }
.legale .versione { margin: 0 0 34px; color: var(--tenue); font-size: 14px; }
.legale .sintesi, .legale .indice, .tabella-scorre { border: 1px solid var(--riga); border-radius: 22px; background: var(--vetro); box-shadow: 0 30px 70px rgba(0,0,0,.18); }
.legale .sintesi { margin: 0 0 22px; padding: 22px 24px; }
.legale .sintesi b { color: white; }
.legale .sintesi p { margin: 0; }
.legale .sintesi ul { margin: 10px 0 0; padding-left: 20px; }
.legale .indice { margin: 0 0 12px; padding: 18px 24px; font-size: 15px; }
.legale .indice > b { color: white; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.legale .indice ol { margin: 8px 0 0; padding-left: 22px; columns: 2 240px; }
.legale .indice a { text-decoration: none; }
.legale h2 { margin: 46px 0 12px; padding-top: 22px; border-top: 1px solid var(--riga); color: white; font-size: clamp(22px, 3vw, 28px); line-height: 1.25; letter-spacing: -.02em; scroll-margin-top: 90px; }
.legale h3 { margin: 26px 0 6px; color: white; font-size: 17px; }
.legale b { color: #e6f1ec; }
.legale p, .legale li { max-width: 74ch; }
.legale ul { padding-left: 22px; }
.legale li + li { margin-top: 5px; }
.legale li::marker { color: var(--verde-chiaro); }
.legale code { padding: 1px 6px; border-radius: 6px; color: white; background: rgba(255,255,255,.1); }
.tabella-scorre { overflow-x: auto; margin: 16px 0; }
.tabella-scorre table { width: 100%; min-width: 620px; border-collapse: collapse; font-size: 14.5px; }
.tabella-scorre th, .tabella-scorre td { padding: 12px 14px; border-bottom: 1px solid var(--riga); text-align: left; vertical-align: top; }
.tabella-scorre th { color: var(--verde-chiaro); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; background: rgba(255,255,255,.04); }
.tabella-scorre td:first-child { color: white; font-weight: 600; }
.tabella-scorre tr:last-child td { border-bottom: 0; }
.dati-in-costruzione { color: var(--amber); }

.legale-piede { padding: 26px clamp(22px, 7vw, 110px); color: #b2cac2; background: #04100d; font-size: 12px; }
.legale-piede div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 20px; max-width: 1200px; margin: 0 auto; }
.legale-piede a { color: #b2cac2; }
.legale-piede a:hover { color: white; }
@media (max-width: 640px) {
  .legale-testata { flex-direction: column; align-items: flex-start; gap: 10px; padding: 10px 18px; }
  .legale-testata nav { gap: 4px 16px; font-size: 13px; }
  .legale-cerchio { width: 300px; height: 300px; right: -190px; top: -90px; }
}
