/*
 * Grille filtrable — le peu de CSS qui est commun.
 *
 * L'apparence des pastilles, des fiches et de la pagination reste dans chaque section : elles
 * ne se ressemblent pas. Seuls la région d'annonce et le fondu du remplacement sont partagés,
 * parce qu'ils font partie du comportement et non du dessin.
 */

.filtered-grid__status {
    /* Masquée à l'œil, lue par les lecteurs d'écran. */
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

/* Après un changement de page, la grille remonte en haut de l'écran : sans cette marge, son début
   passerait sous la barre de menu collante (environ 90px, plus la barre d'administration). */
[data-filtered-grid] {
    scroll-margin-top: 140px;
}

/* Le bloc reçoit le focus après un changement de page, mais ce n'est pas un contrôle : pas
   d'anneau autour de toute la grille, l'annonce vocale suffit à le signaler. */
[data-fg="results"] {
    transition: opacity 140ms ease-out;
}

[data-fg="results"]:focus {
    outline: none;
}

[data-fg="results"].is-leaving {
    opacity: 0;
}

@media (prefers-reduced-motion: reduce) {
    [data-fg="results"] {
        transition: none;
    }
}
