/* Árbol HTML del mapa del sitio: todos los enlaces visibles sin JavaScript. */
.site-map { max-width: 960px; padding: clamp(1rem, 3vw, 2.5rem); background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 1rem; color: #334155; }
.site-map-root { display: inline-block; padding: .65rem 1.2rem; border-radius: .6rem; background: #1e40af; color: #fff; font-size: 1.25rem; font-weight: 700; text-decoration: none; }
.site-map-root:hover { color: #fff; background: #1e3a8a; }
.site-map ul { list-style: none; margin: 0; padding-left: clamp(1rem, 3vw, 2rem); }
.site-map .site-map-tree { margin-top: 1rem; }
.site-map li { position: relative; padding: .3rem 0 .3rem 1rem; border-left: 2px solid #cbd5e1; }
.site-map li::before { content: ''; position: absolute; left: 0; top: 1.35rem; width: .8rem; border-top: 2px solid #cbd5e1; }
.site-map li:last-child { border-left-color: transparent; }
.site-map li:last-child::after { content: ''; position: absolute; top: 0; left: -2px; height: 1.35rem; border-left: 2px solid #cbd5e1; }
.site-map li > a, .site-map li > span { position: relative; display: inline-block; padding: .4rem .5rem; line-height: 1.5; overflow-wrap: anywhere; }
.site-map li > a { color: #1e40af; text-decoration: underline; text-underline-offset: .2em; border-radius: .3rem; }
.site-map li > a:hover { background: #dbeafe; }
.site-map .site-map-branch { font-weight: 700; }
.site-map a:focus-visible { outline: 3px solid #2563eb; outline-offset: 3px; }
.site-map a[aria-current="page"] { color: #334155; font-weight: 700; }
@media (max-width: 575.98px) {
    .site-map { padding: 1rem .65rem; }
    .site-map ul { padding-left: .7rem; }
    .site-map li { padding-left: .6rem; }
    .site-map li::before { width: .45rem; }
}