/* Estilos para páginas legales de lectura larga.
   Se carga sólo en /politica-de-datos/ y reutiliza los tokens de styles.css. */

.legal-hero{ background:var(--navy-deep); color:var(--cream-text); padding:64px 0 56px; }
.legal-hero .wrap{ max-width:900px; }
.legal-hero h1{ font-size:clamp(1.7rem,4vw,2.5rem); color:#fff; margin:14px 0 20px; text-wrap:balance; }
.legal-meta{ display:flex; flex-wrap:wrap; gap:10px 28px; padding-top:20px; border-top:1px solid rgba(198,161,91,.28); }
.legal-meta div{ font-size:.82rem; color:#9aa4c2; }
.legal-meta strong{ display:block; font-family:var(--font-mono); font-size:10.5px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--gold); font-weight:500; margin-bottom:3px; }

.legal-layout{ display:grid; grid-template-columns:250px 1fr; gap:56px; align-items:start;
  max-width:1100px; margin:0 auto; padding:64px 32px 0; }

.legal-toc{ position:sticky; top:96px; }
.legal-toc h2{ font-family:var(--font-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--gold-ink); margin-bottom:14px; font-weight:600; }
.legal-toc ol{ list-style:none; counter-reset:toc; border-left:1px solid #e4e1d4; }
.legal-toc li{ counter-increment:toc; }
.legal-toc a{ display:block; padding:6px 0 6px 14px; font-size:.83rem; line-height:1.4;
  color:var(--ink-soft); border-left:2px solid transparent; margin-left:-1px; transition:color .2s, border-color .2s; }
.legal-toc a::before{ content:counter(toc) ". "; font-family:var(--font-mono); font-size:.76rem; color:var(--gold-ink); }
.legal-toc a:hover{ color:var(--navy-deep); border-left-color:var(--gold-ink); }

.legal-body{ max-width:68ch; padding-bottom:80px; }
.legal-body > p:first-of-type{ font-size:1.02rem; color:var(--ink-soft); }
.legal-body h2{ font-size:1.35rem; color:var(--navy-deep); margin:52px 0 18px; scroll-margin-top:96px; text-wrap:balance; }
.legal-body h2:first-child{ margin-top:0; }
.legal-body h2 .n{ font-family:var(--font-mono); font-size:.78em; color:var(--gold-ink); margin-right:.5em; }
.legal-body h3{ font-size:1.03rem; color:var(--navy-deep); margin:32px 0 12px; scroll-margin-top:96px; }
.legal-body p{ font-size:.94rem; line-height:1.78; color:var(--ink); margin-bottom:16px; }
.legal-body ol, .legal-body ul{ margin:0 0 18px; padding-left:0; list-style:none; }
.legal-body li{ font-size:.92rem; line-height:1.72; margin-bottom:12px; padding-left:30px; position:relative; }
.legal-body ol{ counter-reset:item; }
.legal-body ol > li{ counter-increment:item; }
.legal-body ol > li::before{ content:counter(item) "."; position:absolute; left:0; top:0;
  font-family:var(--font-mono); font-size:.82rem; color:var(--gold-ink); }
.legal-body ol.alpha > li::before{ content:counter(item,lower-alpha) ")"; }
.legal-body ul > li::before{ content:"—"; position:absolute; left:6px; color:var(--crimson); }
.legal-body li ul, .legal-body li ol{ margin-top:12px; }

.legal-sign{ margin-top:64px; padding-top:26px; border-top:1px solid #e4e1d4; }
.legal-sign .name{ font-family:var(--font-serif); font-size:1.05rem; color:var(--navy-deep); font-weight:600; }
.legal-sign .role{ font-size:.86rem; color:var(--ink-soft); margin-top:2px; }
.legal-sign .date{ font-family:var(--font-mono); font-size:.8rem; color:var(--gold-ink); margin-top:8px; }


@media(max-width:900px){
  .legal-layout{ grid-template-columns:1fr; gap:0; padding:44px 24px 0; }
  .legal-toc{ position:static; margin-bottom:44px; }
  .legal-toc ol{ columns:2; column-gap:24px; }
  .legal-body{ max-width:none; }
}
@media(max-width:520px){ .legal-toc ol{ columns:1; } }

@media print{
  .legal-hero{ background:#fff; color:#000; padding:0 0 20px; }
  .legal-hero h1{ color:#000; }
  .legal-meta div, .legal-meta strong{ color:#333; }
  .legal-toc{ display:none; }
  .legal-layout{ display:block; padding:0; }
  .legal-body{ max-width:none; }
  .legal-body h2{ page-break-after:avoid; margin-top:26px; }
  .legal-body li, .legal-body p{ page-break-inside:avoid; }
}
