body{background:var(--card)}
footer{background:var(--bg)}
.legal-layout{--link:color-mix(in srgb,var(--blue) 80%,#000);max-width:1440px;margin:0 auto}
.legal{max-width:780px;margin:0 auto;padding:32px 40px 90px;font-size:18px;line-height:1.8;color:var(--tx);overflow-wrap:anywhere}
.legal h1{font-size:clamp(34px,5vw,48px);font-weight:800;letter-spacing:-1.2px;line-height:1.1;text-wrap:balance}
.legal>.upd{margin:16px 0 48px;color:var(--tx3);font-size:13px;line-height:1.6;font-family:'JetBrains Mono',monospace}
/* El relleno global de section está pensado para la landing, no para una columna de lectura. */
.legal section{padding:0;scroll-margin-top:calc(var(--nav-h) + 32px)}
.legal section+section{margin-top:76px}
.legal h2{font-size:32px;font-weight:700;letter-spacing:-.8px;line-height:1.25;text-wrap:balance;margin:0 0 20px}
.legal section p{margin:16px 0}
.legal section>div>:first-child{margin-top:0}
.legal section>div>:last-child{margin-bottom:0}
.legal ul,.legal ol{padding-left:24px;margin:14px 0}
.legal li{margin:6px 0}
.legal code{background:var(--sbg);padding:1px 6px;border-radius:6px;font-family:'JetBrains Mono',monospace;font-size:.85em}
.legal a{color:var(--link);text-decoration:underline;text-underline-offset:3px}
.legal a:hover{color:var(--tx)}
.legal a:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:2px}
.legal .cookie-cta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:24px}
.legal .consent-btn{flex:0 0 auto;min-height:44px}
.cookie-state{font-size:14px;line-height:1.6;color:var(--tx3)}
@media(max-width:600px){
  .legal{padding:32px 22px 72px;font-size:17px}
  .legal h2{font-size:28px}
  .legal section+section{margin-top:56px}
}
.legal-vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.legal-nav[hidden],.legal-fab[hidden]{display:none}
.legal-nav a{position:relative;display:flex;align-items:center;color:var(--tx3);text-decoration:none}
.legal-nav a:focus-visible,.legal-fab:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.legal-nav-card{display:none}
.legal-fab{display:none}
@media(min-width:1300px){
  .legal-layout{display:grid;grid-template-columns:minmax(0,1fr) 780px minmax(0,1fr);column-gap:36px;padding:0 22px}
  .legal{grid-column:2;width:100%}
  .legal-nav{grid-column:1;grid-row:1;align-self:start;position:sticky;top:calc(var(--nav-h) + 32px);margin-top:32px;min-width:0;container-type:inline-size}
  .legal-nav a{width:48px;height:14px}
  .legal-nav-name{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .legal-nav a::before{content:"";flex:none;width:16px;height:2px;border-radius:1px;background:var(--tx3);opacity:.45;transform-origin:left center;transform:scaleX(var(--m,1));transition:transform 120ms var(--ease),opacity 120ms var(--ease),width 120ms var(--ease)}
  .legal-nav a:is(:hover,:focus-visible)::before{opacity:1}
  .legal-nav a.on::before{width:28px;background:var(--tx);opacity:1}
  .legal-nav-card{display:block;position:absolute;left:48px;top:50%;z-index:10;width:calc(100cqw + 16px);padding:12px 16px;background:var(--card);border:1px solid var(--brd);border-radius:var(--radius-sm);box-shadow:0 6px 22px rgba(0,0,0,.18);pointer-events:none;opacity:0;visibility:hidden;transform:translate(-4px,-50%);transition:opacity 120ms var(--ease),transform 120ms var(--ease),visibility 120ms}
  .legal-nav a:is(:hover,:focus-visible) .legal-nav-card{opacity:1;visibility:visible;transform:translate(0,-50%)}
  .legal-nav-card strong{display:block;font-size:14px;font-weight:600;line-height:1.35;color:var(--tx)}
  .legal-nav-card span{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-top:6px;font-size:13px;line-height:1.5;color:var(--tx3)}
}
@media(max-width:1299px){
  .legal-nav{position:fixed;right:16px;bottom:calc(76px + env(safe-area-inset-bottom));z-index:40;width:min(320px,calc(100vw - 32px));max-height:min(70vh,560px);overflow:auto;padding:8px;background:var(--card);border:1px solid var(--brd);border-radius:var(--radius-sm);box-shadow:0 6px 22px rgba(0,0,0,.18);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity 160ms var(--ease),transform 160ms var(--ease),visibility 160ms}
  .legal-nav.abierta{opacity:1;visibility:visible;transform:none}
  .legal-nav a{gap:10px;min-height:44px;padding:6px 10px;font-size:14px;line-height:1.35;border-radius:8px}
  .legal-nav a:hover{color:var(--tx);background:var(--hov)}
  .legal-nav a.on{color:var(--link);background:color-mix(in srgb,var(--blue) 8%,transparent);font-weight:600}
  .legal-nav a::before{content:"";flex:none;width:20px;height:2px;background:linear-gradient(currentColor,currentColor) left/12px 100% no-repeat;opacity:.35;transition:background-size 120ms var(--ease),opacity 120ms var(--ease)}
  .legal-nav a.on::before{background-size:100% 100%;opacity:1}
  .legal-fab{display:flex;position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:40;align-items:center;justify-content:center;width:44px;min-height:44px;background:var(--card);border:1px solid var(--brd);border-radius:var(--radius-sm);box-shadow:0 6px 22px rgba(0,0,0,.18);cursor:pointer}
}
.legal-mini{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.legal-mini i{display:block;width:14px;height:2px;border-radius:1px;background:var(--tx3);opacity:.45;transition:width 120ms var(--ease),opacity 120ms var(--ease)}
.legal-mini i.on{width:20px;background:var(--tx);opacity:1}
@media(prefers-reduced-motion:reduce){
  .legal-nav,.legal-nav a::before{transform:none;transition:none}
  .legal-nav-card{transform:translate(0,-50%);transition:none}
  .legal-mini i{transition:none}
}
