/* ============================================================
   ARFASA — Páginas legales y utilitarias
   Política de privacidad, aviso legal, cookies, gracias y 404.
   Cargar DESPUÉS de site.css y home.css. Usa sus tokens.
   ============================================================ */

/* ─── Encabezado compacto (variante de .about-hero) ─── */
.legal-hero .about-hero-in{max-width:var(--mw);padding-block:clamp(2.2rem,4.5vw,3.4rem) clamp(2.4rem,4.5vw,3.4rem);}
.legal-hero h1{font-size:clamp(2.1rem,3.6vw,3rem);max-width:22ch;}
.legal-hero p{font-size:1.04rem;margin-top:1rem;max-width:62ch;}
.legal-meta{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;margin-top:1.4rem;font-size:.84rem;color:rgba(255,255,255,.62);}
.legal-meta span{display:inline-flex;align-items:center;gap:.45rem;}
.legal-meta svg{width:14px;height:14px;stroke:var(--gold-3);fill:none;stroke-width:1.8;flex-shrink:0;}
.legal-meta b{color:#fff;font-weight:600;}

/* ─── Estructura: índice lateral + cuerpo legible ─── */
.legal-wrap{max-width:var(--mw);margin:0 auto;padding:clamp(2.5rem,6vw,4.5rem) var(--px) clamp(3.5rem,7vw,5.5rem);
  display:grid;grid-template-columns:260px minmax(0,1fr);gap:clamp(2rem,5vw,4.5rem);align-items:start;}
.legal-wrap>*{min-width:0;}
.legal-toc{position:sticky;top:120px;max-height:calc(100vh - 140px);overflow:auto;padding:1.3rem 1.2rem 1.3rem 1.3rem;
  background:var(--cream);border:1px solid var(--line);border-radius:var(--r);font-size:.86rem;}
.legal-toc .toc-title{font-family:var(--sans);font-size:.7rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-text);margin-bottom:.8rem;}
.legal-toc ol{list-style:none;counter-reset:none;display:flex;flex-direction:column;gap:.1rem;}
.legal-toc a{display:flex;gap:.55rem;padding:.38rem .5rem;border-radius:6px;color:var(--t2);line-height:1.35;transition:background var(--t),color var(--t);}
.legal-toc a .n{color:var(--gold-text);font-weight:600;min-width:1.5em;font-variant-numeric:tabular-nums;}
.legal-toc a:hover{background:#fff;color:var(--navy);}
.legal-toc a.is-active{background:#fff;color:var(--navy);box-shadow:inset 2px 0 0 var(--gold);}

.legal-body{max-width:none;color:var(--t2);font-size:1.0rem;}
.legal-body>:not(.legal-table-wrap):not(h2){max-width:70ch;}
.legal-body>*+*{margin-top:1rem;}
.legal-body h2{font-size:clamp(1.55rem,2.6vw,1.95rem);margin-top:3rem;padding-top:1.6rem;border-top:1px solid var(--line);
  display:flex;gap:.7rem;align-items:baseline;scroll-margin-top:120px;line-height:1.15;}
.legal-body h2:first-of-type{margin-top:2.2rem;}
.legal-body h2 .cl-n{font-family:var(--serif);color:var(--gold-text);font-weight:600;min-width:1.6ch;}
.legal-body h3{font-family:var(--sans);font-size:1.02rem;font-weight:700;color:var(--t1);margin-top:1.6rem;letter-spacing:0;line-height:1.35;}
.legal-body p,.legal-body li{line-height:1.75;}
.legal-body a:not(.btn){color:var(--gold-text);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;}
.legal-body a:not(.btn):hover{color:var(--navy);}
.legal-body strong{color:var(--t1);font-weight:600;}
.legal-body ul,.legal-body ol.legal-list{padding-left:1.25rem;}
.legal-body ul li+li,.legal-body ol.legal-list li+li{margin-top:.45rem;}
.legal-body ul li::marker{color:var(--gold);}
.legal-body .cl{display:grid;grid-template-columns:auto 1fr;gap:.2rem .7rem;}
.legal-body .cl>b{color:var(--gold-text);font-weight:600;font-variant-numeric:tabular-nums;}
.legal-intro{font-size:1.06rem;color:var(--t2);}

/* Recuadro "En resumen" y notas */
.legal-summary{background:var(--cream);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:var(--r-sm);padding:1.3rem 1.4rem;}
.legal-summary .sum-title{font-family:var(--sans);font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-text);margin-bottom:.6rem;}
.legal-summary ul{margin:0;}
.legal-note{background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:1rem 1.2rem;font-size:.95rem;}
.legal-note b{color:var(--t1);}

/* Ficha de datos del titular */
.legal-card{display:grid;grid-template-columns:minmax(120px,max-content) 1fr;gap:.55rem 1.2rem;background:var(--cream);border:1px solid var(--line);border-radius:var(--r-sm);padding:1.2rem 1.3rem;font-size:.95rem;}
.legal-card dt{color:var(--t3);font-weight:600;font-size:.84rem;}
.legal-card dd{color:var(--t1);overflow-wrap:anywhere;}

/* Tablas */
.legal-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-sm);-webkit-overflow-scrolling:touch;}
.legal-table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:560px;}
.legal-table caption{text-align:left;padding:.8rem 1rem;font-weight:600;color:var(--t1);background:var(--cream);border-bottom:1px solid var(--line);}
.legal-table th,.legal-table td{padding:.75rem 1rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);line-height:1.55;}
.legal-table thead th{background:var(--navy);color:#fff;font-weight:600;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;}
.legal-table tbody tr:last-child td{border-bottom:0;}
.legal-table tbody tr:nth-child(even) td{background:#FCFBF7;}
.legal-table code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.84em;background:var(--cream-2);padding:.08em .35em;border-radius:4px;color:var(--t1);white-space:nowrap;}
.tag{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.2rem .5rem;border-radius:4px;white-space:nowrap;}
.tag-ok{background:rgba(37,211,102,.12);color:#12743A;}
.tag-consent{background:var(--gold-soft);color:var(--gold-text);}

/* Cierre de página legal */
.legal-contact{margin-top:3rem;background:var(--navy);color:rgba(255,255,255,.78);border-radius:var(--r);padding:1.6rem 1.7rem;}
.legal-contact h2{color:#fff;border:0;padding:0;margin:0;font-size:1.5rem;display:block;}
.legal-contact p{margin-top:.6rem;}
.legal-contact a:not(.btn){color:var(--gold-3);}
.legal-contact .btns{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.1rem;}
.legal-updated{margin-top:2rem;font-size:.86rem;color:var(--t3);}
.consent-hint{font-size:.88rem;color:var(--t3);}

@media(max-width:980px){
  .legal-wrap{grid-template-columns:minmax(0,1fr);}
  .legal-toc{position:static;max-height:none;}
  .legal-toc ol{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.1rem .8rem;}
}
@media(max-width:560px){
  .legal-card{grid-template-columns:1fr;gap:.1rem;}
  .legal-card dd{margin-bottom:.55rem;}
  .legal-contact .btns .btn{width:100%;justify-content:center;}
}

/* ─── Páginas de estado: gracias y 404 ─── */
.status{background:linear-gradient(180deg,var(--cream) 0%,#fff 100%);}
.status-in{max-width:880px;margin:0 auto;padding:clamp(3rem,7vw,5.5rem) var(--px) clamp(3.5rem,7vw,5.5rem);text-align:center;}
.status-badge{width:72px;height:72px;border-radius:50%;margin:0 auto 1.4rem;display:flex;align-items:center;justify-content:center;
  background:#fff;border:1px solid var(--gold-line);box-shadow:var(--sh-1);}
.status-badge svg{width:32px;height:32px;stroke:var(--gold);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.status-code{font-family:var(--serif);font-size:clamp(4.5rem,12vw,7rem);line-height:1;color:var(--gold);font-weight:600;letter-spacing:.02em;}
.status h1{margin-top:.9rem;font-size:clamp(2.1rem,4vw,3.1rem);}
.status .lead{max-width:60ch;margin:1rem auto 0;color:var(--t2);}
.status .lead b{color:var(--t1);}
.status-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem;margin-top:2rem;}

.next-steps{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:2.6rem 0 0;text-align:left;counter-reset:step;}
.next-steps li{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.3rem 1.3rem 1.4rem;counter-increment:step;}
.next-steps li::before{content:counter(step);display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;
  background:var(--navy);color:var(--gold-3);font-family:var(--sans);font-weight:700;font-size:.9rem;margin-bottom:.7rem;}
.next-steps h2{font-family:var(--sans);font-size:1rem;font-weight:700;color:var(--t1);line-height:1.35;}
.next-steps p{font-size:.92rem;margin-top:.4rem;line-height:1.6;color:var(--t2);}

.link-block{margin-top:3rem;text-align:left;}
.link-block h2{font-size:clamp(1.5rem,2.6vw,1.9rem);text-align:center;}
.link-block .sub{text-align:center;color:var(--t3);margin-top:.5rem;}
.link-grid{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.7rem;margin-top:1.4rem;}
.link-grid a{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.95rem 1.1rem;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-sm);color:var(--t1);font-weight:600;font-size:.94rem;transition:border-color var(--t),transform var(--t),box-shadow var(--t);}
.link-grid a small{display:block;font-weight:400;color:var(--t3);font-size:.8rem;margin-top:.1rem;}
.link-grid a svg{width:16px;height:16px;stroke:var(--gold);fill:none;stroke-width:2;flex-shrink:0;transition:transform var(--t);}
.link-grid a:hover{border-color:var(--gold-line);transform:translateY(-2px);box-shadow:var(--sh-1);}
.link-grid a:hover svg{transform:translateX(3px);}

@media(max-width:760px){
  .next-steps{grid-template-columns:1fr;}
  .status-actions .btn{width:100%;justify-content:center;}
}

/* Tablas de cookies: columnas proporcionadas */
.cookie-table{table-layout:fixed;min-width:640px;}
.cookie-table td,.cookie-table th{padding:.7rem .75rem;overflow-wrap:break-word;}
