:root {
  --legal-max:72rem;
  --legal-copy:48rem;
}

* { box-sizing:border-box; }
html { min-height:100%; background:var(--site-bg); }
body {
  min-height:100vh;
  min-height:100svh;
  margin:0;
  color:var(--site-fg);
  background:var(--site-bg);
  font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
  line-height:1.65;
}
a { color:inherit; }
::selection { color:var(--site-bg); background:var(--site-fg); }
:focus-visible { outline:2px solid currentColor; outline-offset:5px; }
.legal-sprite {
  position:absolute;
  width:0;
  height:0;
  overflow:hidden;
}
.skip-link {
  position:fixed;
  z-index:120;
  top:.75rem;
  left:.75rem;
  padding:.7rem 1rem;
  color:var(--site-bg);
  background:var(--site-fg);
  font-size:.65rem;
  letter-spacing:.14em;
  text-decoration:none;
  text-transform:uppercase;
  transform:translateY(-180%);
  transition:transform var(--motion-fast,.2s);
}
.skip-link:focus { transform:none; }
.legal-header {
  display:flex;
  min-height:5.25rem;
  align-items:center;
  padding:1rem clamp(1.25rem,4.5vw,5.5rem);
  padding-right:clamp(10rem,18vw,13rem);
  border-bottom:1px solid var(--site-line);
}
.legal-brand {
  display:grid;
  width:4.65rem;
  height:3.9rem;
  place-items:center;
  color:var(--site-fg);
  text-decoration:none;
}
.legal-logo {
  display:block;
  width:4.25rem;
  height:3.6rem;
  overflow:visible;
  transition:transform var(--motion-standard,.35s) var(--motion-ease,cubic-bezier(.22,1,.36,1));
}
.legal-logo use {
  fill:none;
  stroke:currentColor;
  stroke-width:5.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
}
.legal-brand:hover .legal-logo,
.legal-brand:focus-visible .legal-logo { transform:scale(1.06); }
.legal-main {
  width:min(100%,var(--legal-max));
  margin:0 auto;
  padding:clamp(4rem,9vw,8rem) clamp(1.25rem,5vw,5.5rem) clamp(5rem,10vw,9rem);
}
.legal-hero {
  max-width:58rem;
  padding-bottom:clamp(3rem,7vw,6rem);
  border-bottom:1px solid var(--site-line);
}
.legal-kicker,
.legal-updated {
  margin:0;
  color:var(--site-muted);
  font-size:.59rem;
  font-weight:500;
  letter-spacing:.2em;
  text-transform:uppercase;
}
.legal-kicker {
  display:flex;
  align-items:center;
  gap:.8rem;
  margin-bottom:1.6rem;
}
.legal-kicker::before {
  width:1.8rem;
  height:1px;
  content:"";
  background:currentColor;
}
.legal-hero h1 {
  max-width:11ch;
  margin:0 0 1.6rem;
  font-size:clamp(3.6rem,9vw,7.8rem);
  font-weight:300;
  letter-spacing:-.065em;
  line-height:.88;
}
.legal-lede {
  max-width:43rem;
  margin:0 0 1.4rem;
  color:var(--site-muted);
  font-size:clamp(1rem,1.7vw,1.25rem);
  line-height:1.7;
}
.legal-language-note {
  max-width:42rem;
  margin:0 0 1.2rem;
  color:var(--site-muted);
  font-size:.82rem;
}
.legal-content {
  max-width:var(--legal-copy);
  padding-top:clamp(3rem,7vw,6rem);
}
[data-legal-language] { display:none; }
html[lang="de"] [data-legal-language="de"],
html[lang="it"] [data-legal-language="it"],
html[lang="en"] [data-legal-language="en"] { display:block; }
html[data-fixed-language] [data-language-toggle],
html[data-fixed-language] [data-language-menu] { display:none; }
.legal-section {
  padding:0 0 clamp(2.6rem,5vw,4rem);
}
.legal-section + .legal-section {
  padding-top:clamp(2.6rem,5vw,4rem);
  border-top:1px solid var(--site-line);
}
.legal-section h2 {
  margin:0 0 1.15rem;
  font-size:clamp(1.6rem,3vw,2.5rem);
  font-weight:400;
  letter-spacing:-.035em;
  line-height:1.1;
}
.legal-section h3 {
  margin:1.8rem 0 .65rem;
  font-size:1rem;
  font-weight:600;
}
.legal-section p,
.legal-section li {
  color:var(--site-muted);
  font-size:.96rem;
}
.legal-section p { margin:0 0 1rem; }
.legal-section p:last-child { margin-bottom:0; }
.legal-section ul {
  display:grid;
  gap:.55rem;
  margin:1rem 0;
  padding-left:1.2rem;
}
.legal-section strong {
  color:var(--site-fg);
  font-weight:500;
}
.legal-section a {
  color:var(--site-fg);
  text-decoration-color:var(--site-line-strong);
  text-decoration-thickness:1px;
  text-underline-offset:.22em;
}
.legal-section a:hover,
.legal-section a:focus-visible { text-decoration-color:currentColor; }
.legal-address { font-style:normal; }
.legal-footer {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.4rem;
  padding:3rem clamp(1.25rem,4.5vw,5.5rem);
  border-top:1px solid var(--site-line);
  color:var(--site-muted);
  font-size:.58rem;
  letter-spacing:.16em;
  text-align:center;
  text-transform:uppercase;
}
.legal-footer p { margin:0; }
.legal-footer nav {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:.55rem;
}
.legal-footer nav a {
  color:inherit;
  text-decoration:none;
}
.legal-footer nav a[aria-current="page"] { color:var(--site-fg); }

@media (max-width:680px) {
  .legal-header { min-height:4.8rem; padding-right:9.5rem; }
  .legal-logo { width:3.95rem; }
  .legal-main { padding-top:3.5rem; }
  .legal-hero h1 { font-size:clamp(3.25rem,17vw,5.2rem); }
}

@media print {
  .site-preferences,
  .skip-link { display:none !important; }
  .legal-header { padding-right:1rem; }
  .legal-main { padding-top:3rem; }
  .legal-footer { page-break-inside:avoid; }
}
