/* Páginas legales: menú lateral + texto sobrio y cómodo de leer (tipografía contenida) */
.legal { padding: 24px 0 56px; font-size: 15px; line-height: 1.65; color: #243746; font-family: 'Instrument Sans', system-ui, sans-serif; }
.legal h1, .legal h2, .legal h3, .legal strong { font-family: 'Instrument Sans', system-ui, sans-serif; }
.legal-rejilla { display: grid; gap: 20px; align-items: start; }
@media (min-width: 900px) { .legal-rejilla { grid-template-columns: 232px minmax(0, 1fr); gap: 56px; } }

/* Menú */
.legal-menu { font-size: 14px; }
@media (min-width: 900px) { .legal-menu { position: sticky; top: 84px; max-height: calc(100vh - 104px); overflow: auto; padding-right: 4px; } }
.legal-menu details { border: 1px solid #dbe5ec; border-radius: 12px; background: #fff; }
.legal-menu summary { cursor: pointer; padding: 11px 14px; font-weight: 600; font-size: 14px; color: #0F3E5C; list-style: none; }
.legal-menu summary::-webkit-details-marker { display: none; }
.legal-menu nav { padding: 2px 6px 12px; }
@media (min-width: 900px) { .legal-menu details { border: 0; background: none; } .legal-menu summary { display: none; } .legal-menu nav { padding: 0; } }
.legal-menu a { display: block; padding: 6px 10px; border-radius: 8px; color: #3d4f5d; text-decoration: none; line-height: 1.35; font-weight: 450; }
.legal-menu a:hover { background: #eef4f8; color: #0F3E5C; }
.legal-menu a.activo { background: #e6eff5; color: #0F3E5C; font-weight: 600; box-shadow: inset 3px 0 0 #0F3E5C; border-radius: 0 8px 8px 0; }
.legal-menu ul { list-style: none; margin: 0; padding: 0; }
.legal-grupo { margin-top: 16px; }
.legal-grupo-titulo { margin: 0 0 4px 10px; font-size: 11px; letter-spacing: .09em; text-transform: uppercase; color: #7b8a96; font-weight: 600; }

/* Cabecera de página */
.legal-texto { min-width: 0; max-width: 720px; }
.legal-volver { margin: 0 0 6px; font-size: 13px; }
.legal-volver a { color: #5b6b77; text-decoration: none; }
.legal-volver a:hover { color: #0F3E5C; text-decoration: underline; }
.legal-texto h1 { margin: 0 0 12px; font-size: 1.75rem; line-height: 1.2; letter-spacing: -.01em; font-weight: 700; color: #0F3E5C; }
.legal-lead { margin: 0 0 8px; font-size: 1rem; color: #4b5a66; }
.legal-sub { margin: 0 0 4px; font-size: 14px; color: #6b7a86; }
.legal-version { display: inline-block; margin: 0 0 18px; padding: 3px 10px; font-size: 12px; font-weight: 500; color: #5b6b77; background: #eef4f8; border-radius: 999px; }
.legal-indice { margin: 12px 0 26px; padding: 12px 16px; background: #f4f8fa; border: 1px solid #e1eaf0; border-radius: 12px; font-size: 14px; }
.legal-indice span { display: block; margin-bottom: 4px; font-size: 11px; letter-spacing: .09em; text-transform: uppercase; color: #7b8a96; font-weight: 600; }
.legal-indice ul { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 4px 18px; }
.legal-indice a { color: #0F3E5C; text-decoration: none; font-weight: 500; }
.legal-indice a:hover { text-decoration: underline; }

/* Documentos y texto */
.legal-doc { margin: 0 0 40px; scroll-margin-top: 84px; }
.legal-doc + .legal-doc { padding-top: 32px; border-top: 1px solid #dbe5ec; }
.legal-doc-titulo { margin: 0 0 6px; font-size: 1.3rem; line-height: 1.25; font-weight: 700; color: #0F3E5C; }
.legal-md h2 { margin: 1.9em 0 .5em; font-size: 1.1rem; line-height: 1.3; font-weight: 650; color: #0F3E5C; scroll-margin-top: 84px; }
.legal-md h3 { margin: 1.4em 0 .35em; font-size: 1rem; line-height: 1.35; font-weight: 650; color: #243746; }
.legal-md p, .legal-md li { max-width: 68ch; }
.legal-md p { margin: 0 0 .85em; }
.legal-md ul, .legal-md ol { margin: 0 0 1em; padding-left: 1.3em; }
.legal-md li { margin: .25em 0; }
.legal-md strong { font-weight: 650; color: #14283a; }
.legal-md a { color: #0F5E96; text-underline-offset: 2px; }
.legal-md table { width: 100%; border-collapse: collapse; margin: 1em 0 1.3em; font-size: 13.5px; line-height: 1.5; display: block; overflow-x: auto; }
.legal-md th, .legal-md td { border: 1px solid #dbe5ec; padding: 7px 10px; text-align: left; vertical-align: top; }
.legal-md th { background: #f1f6f9; font-weight: 600; color: #3d4f5d; }
.legal-md hr { border: 0; border-top: 1px solid #dbe5ec; margin: 1.8em 0; }
.legal-md pre { white-space: pre-wrap; background: #f6f9fb; padding: 12px 14px; border-radius: 10px; border: 1px solid #dbe5ec; font-size: 13.5px; }
.legal-md blockquote { margin: 1em 0; padding: 4px 14px; border-left: 3px solid #E8A658; background: #fbf7ef; color: #5b4a2c; }

/* Resumen */
.legal-bloque { margin: 1.6em 0; }
.legal-bloque h2 { margin: 0 0 2px; font-size: 1.1rem; font-weight: 650; color: #0F3E5C; }
.legal-tarjetas { list-style: none; padding: 0; margin: 12px 0 0; display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.legal-tarjetas a { display: flex; flex-direction: column; gap: 3px; height: 100%; padding: 12px 14px; border: 1px solid #dbe5ec; border-radius: 12px; background: #fff; color: inherit; text-decoration: none; }
.legal-tarjetas a:hover { border-color: #0F3E5C; background: #fafcfd; }
.legal-tarjetas strong { font-size: 14.5px; font-weight: 600; color: #0F3E5C; }
.legal-tarjetas span { font-size: 13px; line-height: 1.45; color: #6b7a86; }
.legal-nota { margin-top: 2em; padding: 12px 14px; font-size: 14px; background: #f1f6f9; border-radius: 10px; }

.legal-pie { font-size: 13px; }
@media print { .legal-menu, header.nav, footer, .legal-indice { display: none; } .legal-rejilla { display: block; } }

/* El sitio da margen y ancho máximo a las secciones y a los títulos: aquí no */
.legal section { padding: 0; }
.legal h1, .legal h2, .legal h3 { max-width: none; text-wrap: balance; }
.legal-bloque { margin: 1.4em 0 0; }
.legal-doc-titulo { margin-top: 0; }
