.legal-shell{ padding:4rem 0 5rem; }

.legal-header{
  text-align:center;
  max-width:40rem;
  margin:0 auto 3rem;
}
.legal-title{
  font-family:'Fraunces', serif;
  font-weight:600;
  font-size:clamp(1.9rem, 3.2vw, 2.5rem);
  margin-top:.4rem;
  color:var(--ink);
}
.legal-meta{
  font-family:'IBM Plex Mono', monospace;
  font-size:.78rem;
  color:#8A8499;
  margin-top:.5rem;
  letter-spacing:.03em;
}

/* ---------- Table of contents ---------- */
.legal-toc{
  position:sticky;
  top:5.5rem;
  display:flex;
  flex-direction:column;
  gap:.15rem;
  border-left:1px solid var(--line);
  padding-left:1rem;
}
.legal-toc-label{
  font-family:'IBM Plex Mono', monospace;
  font-size:.7rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#8A8499;
  margin-bottom:.6rem;
}
.legal-toc a{
  font-size:.86rem;
  color:#5B5670;
  padding:.35rem 0;
  line-height:1.4;
  transition:color .15s ease;
}
.legal-toc a:hover{ color:var(--indigo-800); }

/* ---------- Document typography ---------- */
.legal-doc{
  font-size:1rem;
  line-height:1.8;
  color:#3A3550;
  max-width:44rem;
}
.legal-doc h2{
  font-family:'Fraunces', serif;
  font-weight:600;
  font-size:1.4rem;
  color:var(--ink);
  margin:2.6rem 0 1rem;
  scroll-margin-top:5.5rem;
}
.legal-doc h2:first-child{ margin-top:0; }
.legal-doc h3{
  font-family:'Fraunces', serif;
  font-weight:600;
  font-size:1.1rem;
  color:var(--indigo-800);
  margin:1.8rem 0 .8rem;
  scroll-margin-top:5.5rem;
}
.legal-doc p{ margin-bottom:1.1rem; }
.legal-doc ul{ padding-left:1.3rem; margin-bottom:1.3rem; }
.legal-doc li{ margin-bottom:.6rem; }
.legal-doc li::marker{ color:var(--gold-600); }
.legal-doc a{ color:var(--indigo-800); font-weight:600; }
.legal-doc a:hover{ color:var(--gold-600); }
.legal-doc strong{ color:var(--ink); }

.legal-callout{
  background:var(--paper-2);
  border-left:3px solid var(--gold-500);
  border-radius:4px 10px 10px 4px;
  padding:1rem 1.3rem;
  font-size:.92rem;
  color:var(--ink);
  font-weight:500;
}

.legal-contact-card{
  background:var(--paper-2);
  border:1px solid var(--line);
  border-radius:14px;
  padding:1.5rem 1.7rem;
  margin-top:1rem;
  display:flex;
  flex-direction:column;
  gap:.7rem;
}
.legal-contact-row{
  display:flex; align-items:flex-start; gap:.7rem;
  font-size:.92rem;
  color:#3A3550;
}
.legal-contact-row i{ color:var(--gold-600); margin-top:.2rem; }

@media (max-width: 991px){
  .legal-toc{ position:static; border-left:none; padding-left:0; border-bottom:1px solid var(--line); padding-bottom:1rem; }
}
