/* =========================================================
   LEGAL — privacy, cookies, terms
   ========================================================= */
.lhero {
  position: relative; overflow: clip; min-height: 70vh; min-height: 70svh;
  padding: calc(var(--gutter) * 2 + 3.6rem) var(--gutter) var(--gutter);
  display: flex; flex-direction: column; justify-content: space-between; gap: 1.5rem;
}
.lhero__top { position: relative; z-index: 2; }
.lhero__star { position: absolute; right: -8vw; top: 6vh; width: min(46vw, 54vh); height: auto; z-index: 0; }
.lhero__title { position: relative; z-index: 1; display: block; line-height: .78; white-space: nowrap; margin-left: -.03em; }
.lhero__sub { position: relative; z-index: 2; max-width: 38ch; font-size: clamp(.95rem, 1.35vw, 1.3rem); font-weight: 700; line-height: 1.22; padding-right: 90px; }
@media (max-width: 800px) { .lhero__star { width: 76vw; right: -28vw; top: 10vh; } }

.legal {
  display: grid; grid-template-columns: minmax(150px, 1fr) minmax(0, 3fr); gap: var(--gutter);
  padding: clamp(3rem, 7vw, 7rem) var(--gutter) clamp(4rem, 9vw, 9rem);
  border-top: 3px solid var(--black);
}
.legal__toc { position: sticky; top: 6rem; align-self: start; display: grid; gap: .3rem; }
.legal__toc a {
  font-size: clamp(1.4rem, 2.6vw, 2.6rem); font-weight: 900; font-stretch: 112%;
  text-transform: uppercase; letter-spacing: -.04em; line-height: 1; transition: opacity .3s, transform .5s var(--out);
}
@media (hover: hover) {
  .legal__toc:hover a { opacity: .3; }
  .legal__toc a:hover { opacity: 1; transform: translateX(.3rem); }
}
.legal__en, .legal__it { max-width: 62rem; }
html[lang="it"] .legal__en, html:not([lang="it"]) .legal__it { display: none; }
.legal__sec { padding-bottom: clamp(3rem, 6vw, 6rem); scroll-margin-top: 5rem; }
.legal__h {
  font-size: clamp(2.2rem, 6.4vw, 6.4rem); font-weight: 900; font-stretch: 114%;
  text-transform: uppercase; letter-spacing: -.04em; line-height: .9; margin-bottom: clamp(1.2rem, 2.4vw, 2.4rem);
}
.legal h3 { font-size: .85rem; font-weight: 900; text-transform: uppercase; letter-spacing: .02em; margin: 1.6rem 0 .4rem; border-top: 2px solid var(--black); padding-top: .8rem; }
.legal p, .legal li { font-size: clamp(.98rem, 1.15vw, 1.15rem); font-weight: 600; line-height: 1.42; max-width: 62ch; }
.legal ul { display: grid; gap: .7rem; margin: 1rem 0; padding-left: 1.1rem; list-style: square; }
.legal a { border-bottom: 2px solid currentColor; }
.legal code { font-family: ui-monospace, Menlo, monospace; font-weight: 700; background: var(--black); color: var(--red); padding: .05em .4em; border-radius: 4px; font-size: .9em; }
.legal__upd { margin-top: 2rem; font-weight: 900 !important; text-transform: uppercase; font-size: .8rem !important; }
@media (max-width: 800px) {
  .legal { grid-template-columns: 1fr; }
  .legal__toc { position: static; grid-auto-flow: column; justify-content: start; gap: 1.2rem; }
  .legal__toc a { font-size: 1.1rem; }
}
