:root{
  --bone:#ece4d3; --forest:#14241a; --green:#476857;
  --gold:#bf953f; --gold-deep:#7a5e24; --ink:#17211a; --paper-ink:#2c382e;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
/* fallback calibrati sulle metriche dei font veri → lo swap non causa layout shift (CLS) */
@font-face{font-family:'Fraunces Fallback';src:local('Georgia'),local('Times New Roman'),local('Liberation Serif');size-adjust:80.9%;ascent-override:120.89%;descent-override:31.52%;line-gap-override:0%}
@font-face{font-family:'Hanken Fallback';src:local('Arial'),local('Helvetica Neue'),local('Liberation Sans');size-adjust:102.68%;ascent-override:97.39%;descent-override:29.51%;line-gap-override:0%}
body{font-family:'Hanken Grotesk','Hanken Fallback',system-ui,sans-serif;background:var(--bone);color:var(--ink);
  line-height:1.7;-webkit-font-smoothing:antialiased}
.serif{font-family:'Fraunces','Fraunces Fallback',Georgia,serif;font-optical-sizing:auto}
a{color:inherit;text-decoration:none}
::selection{background:var(--gold);color:var(--forest)}

/* solo per screen reader */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* focus da tastiera visibile (oro scuro: contrasto ≥3:1 su fondo chiaro) */
a:focus-visible{outline:2px solid var(--gold-deep);outline-offset:3px;border-radius:3px}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
}

.legal-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;
  padding:15px clamp(20px,4vw,56px);background:rgba(236,228,211,.9);backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(23,33,26,.1)}
.legal-header .brand{display:flex;align-items:center;gap:12px}
.legal-header .brand img{width:36px;height:36px}
.legal-header .brand b{font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;font-weight:500;color:var(--green)}
.legal-header .back{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--green);
  border-bottom:1px solid transparent;transition:border-color .3s}
.legal-header .back:hover{border-color:var(--green)}

main.legal{max-width:820px;margin:0 auto;padding:clamp(48px,7vw,90px) clamp(20px,5vw,40px) 70px}
.legal-kicker{font-size:.72rem;letter-spacing:.34em;text-transform:uppercase;color:var(--gold-deep);font-weight:600}
main.legal h1{font-family:'Fraunces','Fraunces Fallback',serif;font-weight:400;line-height:1.05;color:var(--paper-ink);
  font-size:clamp(2.2rem,1.4rem + 3vw,3.6rem);margin:14px 0 8px}
.legal-meta{font-size:.84rem;color:var(--green);margin-bottom:8px}
.legal-draft{background:rgba(191,149,63,.12);border:1px solid rgba(191,149,63,.45);border-radius:10px;
  padding:13px 18px;font-size:.86rem;color:var(--paper-ink);margin:26px 0 18px}
main.legal h2{font-family:'Fraunces','Fraunces Fallback',serif;font-weight:500;font-size:1.45rem;color:var(--ink);margin:40px 0 12px}
main.legal h2 .n{color:var(--gold-deep);font-style:italic;font-size:1.05rem;margin-right:8px}
main.legal p{font-size:1rem;font-weight:300;color:var(--paper-ink);margin-bottom:14px}
main.legal ul{margin:0 0 16px 20px}
main.legal li{font-size:1rem;font-weight:300;color:var(--paper-ink);margin-bottom:7px}
main.legal a.inline{color:var(--green);border-bottom:1px solid rgba(71,104,87,.45)}
main.legal a.inline:hover{border-color:var(--green)}

.legal-footer{border-top:1px solid rgba(23,33,26,.12);margin-top:56px;padding-top:24px;
  font-size:.82rem;font-weight:300;color:var(--paper-ink)}
.legal-footer strong{font-weight:600}
