/* ============================================================
   Pash · legal.css — stile condiviso, statico
   ============================================================ */

@font-face{font-family:"Pash Bricolage";src:url("/fonts/BricolageGrotesque_48pt_SemiCondensed-ExtraLight.woff2") format("woff2");font-weight:200;font-style:normal;font-display:swap}
@font-face{font-family:"Pash Bricolage";src:url("/fonts/BricolageGrotesque_48pt_SemiCondensed-Light.woff2") format("woff2");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Pash Bricolage";src:url("/fonts/BricolageGrotesque_48pt_SemiCondensed-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Pash Bricolage";src:url("/fonts/BricolageGrotesque_48pt_SemiCondensed-Bold.woff2") format("woff2");font-weight:700 900;font-style:normal;font-display:swap}

:root{
  --bg:#f4ead7;
  --ink:#212121;
  --cream:#F9EDDB;
  --muted:#7a7268;
  --muted-2:#a39a8b;
  --border:rgba(20,19,15,.12);
  --f:"Pash Bricolage",sans-serif;
  --topbar-h:3.5rem;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

html{
  min-height:100%;
  background:var(--bg);
}

body{
  min-height:100vh;
  display:flex;
  flex-direction:column;
  font-family:var(--f);
  color:var(--ink);
  background:var(--bg);
  font-size:1rem;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
::selection{background:var(--ink);color:var(--bg)}

body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:200;
  opacity:.24;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.08 0 0 0 0 0.07 0 0 0 0 0.06 0 0 0 0.08 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

/* Header */
.topbar{
  position:fixed;
  top:0;
  left:0;
  right:0;
  height:var(--topbar-h);
  z-index:1000;
  background:rgba(244,234,215,.88);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid var(--border);
}

.topbar-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:100%;
  padding:0 1.75rem;
  gap:1rem;
}

.topbar-logo{
  display:inline-flex;
  align-items:center;
  flex-shrink:0;
}

.nav-logo-full{
  width:5.7rem;
  height:auto;
  object-fit:contain;
}

.legal-page-label{
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
  white-space:nowrap;
}

.legal-nav{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:1.2rem;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--muted);
  white-space:nowrap;
}

.legal-nav a{
  color:var(--muted);
  text-decoration:none;
}

.legal-nav a:hover{
  color:var(--ink);
}

/* Layout contenuto */
.legal-main{
  flex:1;
  width:100%;
  max-width:46rem;
  margin:0 auto;
  padding:calc(var(--topbar-h) + 4rem) 1.75rem 4rem;
}

/* Titolo + intro */
.legal-title{
  font-family:var(--f);
  font-weight:800;
  font-size:clamp(2.5rem,7vw,4.5rem);
  line-height:.92;
  letter-spacing:-.045em;
  color:var(--ink);
  margin-bottom:.25rem;
}

.legal-subtitle{
  font-size:clamp(1.15rem,2.2vw,1.5rem);
  font-weight:700;
  color:var(--ink);
  margin:.5rem 0 0;
}

.lede{
  font-size:1.12rem;
  line-height:1.5;
  color:var(--ink);
  margin:1rem 0;
}

.lede em{font-style:italic}

.meta{
  font-size:.8rem;
  letter-spacing:.04em;
  color:var(--muted);
  margin-top:.3rem;
}

.meta-strong{
  margin-top:1.6rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--ink);
}

/* Corpo */
.legal-main h2{
  font-weight:700;
  font-size:clamp(1.4rem,3.2vw,2rem);
  line-height:1.1;
  letter-spacing:-.02em;
  margin:2.6rem 0 .8rem;
  color:var(--ink);
}

.legal-main h3{
  font-weight:700;
  font-size:clamp(1.1rem,2.4vw,1.4rem);
  line-height:1.15;
  letter-spacing:-.01em;
  margin:1.8rem 0 .6rem;
  color:var(--ink);
}

.legal-main h4{
  font-weight:700;
  font-size:clamp(1rem,2vw,1.15rem);
  line-height:1.2;
  letter-spacing:-.005em;
  margin:1.25rem 0 .55rem;
  color:var(--ink);
}

.legal-main h2,
.legal-main h3,
.legal-main h4{
  scroll-margin-top:calc(var(--topbar-h) + 1rem);
}

.legal-main p{
  margin:0 0 1rem;
  line-height:1.65;
}

.legal-main ul,
.legal-main ol{
  margin:0 0 1.2rem;
  padding-left:1.4rem;
}

.legal-main li{
  margin:0 0 .55rem;
  line-height:1.6;
}

.legal-main strong{
  font-weight:700;
}

.legal-main a{
  color:var(--ink);
  text-decoration:underline;
  text-underline-offset:2px;
  text-decoration-thickness:1px;
}

.legal-main a:hover{
  text-decoration:none;
}

/* Note */
.ref{
  font-size:.78rem;
  line-height:1.5;
  color:var(--muted-2);
  border-left:2px solid var(--border);
  padding-left:.85rem;
  margin:0 0 1.4rem;
  font-style:italic;
}

/* Contatti */
dl.contact{
  margin:1rem 0 1.4rem;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:.35rem 1.4rem;
}

dl.contact dt{
  font-weight:700;
  color:var(--muted);
  font-size:.85rem;
  align-self:start;
}

dl.contact dd{
  margin:0;
  color:var(--ink);
}

/* Footer */
.site-footer{
  flex-shrink:0;
  width:100%;
  background:#212121;
  color:#F9EDDB;
  padding:4rem 1.5rem;
  border-top:0;
}

.site-footer-inner{
  width:100%;
  max-width:72rem;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:3rem;
}

.footer-brand{
  display:flex;
  flex-direction:column;
  gap:1rem;
}

.footer-logo{
  width:7rem;
  height:auto;
  object-fit:contain;
}

.footer-tagline{
  max-width:18rem;
  margin:0;
  font-size:.95rem;
  line-height:1.5;
  color:rgba(249,237,219,.65);
}

.footer-copyright{
  margin:1.5rem 0 0;
  font-size:.9rem;
  line-height:1.4;
  color:rgba(249,237,219,.55);
}

.footer-column{
  display:flex;
  flex-direction:column;
  gap:1rem;
}

.footer-column h3{
  margin:0;
  font-size:1rem;
  line-height:1.2;
  font-weight:700;
  color:#F9EDDB;
}

.footer-links{
  display:flex;
  flex-direction:column;
  gap:1rem;
}

.footer-links a{
  font-size:.95rem;
  line-height:1.4;
  color:rgba(249,237,219,.65);
  text-decoration:none;
  transition:color .2s ease;
}

.footer-links a:hover{
  color:#F9EDDB;
}

/* Aggiunte legal pages */
.eyebrow{
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:.4rem;
}

/* Indice / Tracklist */
nav.toc{
  border:1px solid var(--border);
  border-radius:.9rem;
  padding:1.1rem 1.3rem;
  margin:1.6rem 0 2.2rem;
  background:rgba(255,255,255,.28);
}

nav.toc .toc-title{
  font-weight:800;
  letter-spacing:-.01em;
  font-size:1.05rem;
  margin-bottom:.6rem;
}

nav.toc ul{
  list-style:none;
  padding:0;
  margin:0;
}

nav.toc li{
  margin:.3rem 0;
  line-height:1.35;
}

nav.toc li.sub{
  padding-left:1.2rem;
  font-size:.9em;
  color:var(--muted);
}

nav.toc a{
  color:var(--ink);
  text-decoration:none;
}

nav.toc li.sub a{
  color:var(--muted);
}

nav.toc a:hover{
  text-decoration:underline;
}

/* Tabelle */
.table-scroll{
  width:100%;
  overflow-x:auto;
  margin:1rem 0 1.6rem;
  -webkit-overflow-scrolling:touch;
}

.legal-table{
  width:100%;
  border-collapse:collapse;
  margin:0;
  font-size:.92rem;
}

.legal-table th,
.legal-table td{
  text-align:left;
  vertical-align:top;
  padding:.6rem .7rem;
  border-bottom:1px solid var(--border);
  overflow-wrap:anywhere;
}

.legal-table th{
  font-weight:700;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.05em;
  font-size:.72rem;
}

.legal-table td:first-child{
  font-weight:700;
}

.legal-table tr:last-child td{
  border-bottom:none;
}

/* Moderation policy */
.legal-rule{
  border:0;
  border-top:1px solid var(--ink);
  margin:3rem 0 2.5rem;
}

.legal-main h2 + .lede{
  margin-top:.6rem;
}

.legal-main h4 + ul,
.legal-main h4 + ol{
  margin-top:.2rem;
}

.legal-main li,
.legal-main p{
  overflow-wrap:anywhere;
}

.legal-main ol{
  padding-left:1.55rem;
}

.legal-main ol li{
  padding-left:.1rem;
}

/* Report form */
.legal-form{
  margin-top:2rem;
}

.form-group{
  margin-bottom:1.2rem;
}

.form-group label{
  display:block;
  font-weight:700;
  font-size:.85rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:.45rem;
}

.form-group input,
.form-group textarea{
  width:100%;
  border:1px solid var(--border);
  border-radius:.75rem;
  background:rgba(255,255,255,.32);
  color:var(--ink);
  font-family:var(--f);
  font-size:1rem;
  line-height:1.5;
  padding:.85rem 1rem;
  outline:none;
}

.form-group textarea{
  resize:vertical;
  min-height:10rem;
}

.form-group input:focus,
.form-group textarea:focus{
  border-color:var(--ink);
  background:rgba(255,255,255,.46);
}

.legal-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--ink);
  border-radius:999px;
  background:var(--ink);
  color:var(--bg);
  font-family:var(--f);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  padding:.85rem 1.25rem;
  cursor:pointer;
}

.legal-button:hover{
  background:transparent;
  color:var(--ink);
}

.form-message{
  margin-top:1rem;
  font-size:.95rem;
  color:var(--muted);
}

.form-message.success{
  color:var(--ink);
  font-weight:700;
}

.form-message.error{
  color:#9b1c1c;
  font-weight:700;
}

.honeypot{
  position:absolute!important;
  left:-9999px!important;
  opacity:0!important;
}

/* Mobile */
@media (max-width:47.99rem){
  :root{
    --topbar-h:4.35rem;
  }

  .legal-page-label{
    font-size:.58rem;
    letter-spacing:.08em;
  }

  .topbar-inner{
    padding:0 .9rem;
  }

  .nav-logo-full{
    width:5.4rem;
  }

  .legal-nav{
    gap:.65rem;
    font-size:.56rem;
    letter-spacing:.06em;
  }

  .legal-main{
    padding:calc(var(--topbar-h) + 2.5rem) 1.25rem 3rem;
  }

  dl.contact{
    grid-template-columns:1fr;
    gap:.1rem 0;
  }

  dl.contact dt{
    margin-top:.6rem;
  }

  .legal-table{
    font-size:.85rem;
  }

  .legal-table th,
  .legal-table td{
    padding:.5rem .5rem;
  }

  nav.toc{
    padding:1rem 1rem;
    border-radius:.75rem;
  }

  nav.toc li.sub{
    padding-left:.8rem;
  }

  .site-footer{
    padding:3.5rem 1.5rem;
  }

  .site-footer-inner{
    grid-template-columns:1fr;
    gap:2.5rem;
  }

  .footer-logo{
    width:6.5rem;
  }
}

@media (max-width:25rem){
  .legal-nav{
    gap:.45rem;
    font-size:.5rem;
    letter-spacing:.04em;
  }

  .nav-logo-full{
    width:4.8rem;
  }
}

@media (prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    animation:none!important;
    transition:none!important;
  }
}