/* Índice «En esta página» (partials/indice_pagina.html): fijo bajo la barra compacta al bajar. Por debajo de la
   cabecera (z-index 10), para que el menú del móvil se abra por encima. */

@layer componentes {
  /* Los enlaces a una sección la dejan justo bajo la barra y el índice (--alto-indice, de indice-pagina.js). */
  html:has(.indice-pagina) {
    scroll-padding-top: calc(var(--alto-barra-compacta) + var(--alto-indice, 52px) + var(--espacio-2));
  }

  .indice-pagina {
    position: sticky;
    top: var(--alto-barra-compacta);
    z-index: 9;
    border-bottom: 1px solid var(--color-borde);
    background: var(--color-fondo);
  }

  .indice-pagina .contenedor {
    display: flex;
    gap: var(--espacio-5);
    align-items: center;
  }

  .indice-pagina__titulo {
    flex: none;
    color: var(--color-texto-suave);
    font-size: 0.875rem;
    font-weight: 600;
  }

  .indice-pagina ul {
    display: flex;
    flex-wrap: wrap;
    gap: 0 var(--espacio-5);
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .indice-pagina a {
    display: block;
    padding: 14px 0 12px;
    border-bottom: 2px solid transparent;
    color: var(--color-texto-suave);
    font-weight: 600;
    white-space: nowrap;
    text-decoration: none;
  }

  .indice-pagina a:hover {
    color: var(--color-marino);
  }

  .indice-pagina a[aria-current] {
    border-color: var(--color-acento);
    color: var(--color-marino);
  }

  /* Móvil: sin el título y en una sola línea (con los textos cortos de cada página, cabe desde 360 px; en una pantalla
     más estrecha se desliza de lado y el enlace actual se mantiene a la vista, indice-pagina.js). */
  @media (max-width: 820px) {
    .indice-pagina__titulo {
      display: none;
    }

    .indice-pagina ul {
      flex-wrap: nowrap;
      gap: 0 var(--espacio-3);
      overflow-x: auto;
      scrollbar-width: none;
    }

    .indice-pagina a {
      padding: 12px 0 10px;
      font-size: 0.875rem;
    }
  }
}
