/* =============================================================================
   _legal — styles du noyau : liens de pied et recueil du consentement.
   Chargé par toute page. Aucune couleur n'est posée : les jetons communs du
   niveau 2 n'ont que des valeurs claires, et ce fichier sert sous tous les thèmes.
   Les traits et le texte secondaire dérivent donc de la couleur héritée ; le
   panneau du recueil prend la paire système Canvas / CanvasText, qui suit le
   `color-scheme` que l'app déclare. Les défauts des liens ont une spécificité
   NULLE (`:where`) : la classe que l'app leur donne l'emporte toujours.
   ============================================================================= */

/* L'emplacement reste masqué tant qu'aucune politique n'est servie, quelle que
   soit la règle `display` que l'app lui donne. */
[data-legal-links][hidden] {
    display: none !important;
}

.legal-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

:where(.legal-links a, .legal-links button) {
    color: inherit;
    font: inherit;
}

:where(.legal-links button) {
    padding: 0;
    border: 0;
    background: none;
    text-decoration: underline;
    cursor: pointer;
}

.legal-consent {
    position: fixed;
    inset: auto 1rem 1rem;
    z-index: 2147483000;
    max-width: 40rem;
    max-height: calc(100vh - 2rem);
    margin-inline: auto;
    padding: 1rem 1.25rem;
    overflow-y: auto;
    border: 1px solid color-mix(in srgb, currentColor 55%, transparent);
    border-radius: 0.5rem;
    background: Canvas;
    color: CanvasText;
    box-shadow: 0 0.5rem 1.5rem rgb(0 0 0 / 0.18);
}

/* Une seule voix dans le panneau, comme dans l'objet central (policies.css). */
.legal-consent :where(*) {
    font-size: inherit;
    color: inherit;
}

.legal-consent__title {
    margin: 0 0 0.5rem;
    font-size: 1.125rem;
    line-height: 1.35;
}

.legal-consent__title:focus {
    outline: none;
}

.legal-consent__intro {
    margin: 0 0 0.75rem;
    color: color-mix(in srgb, currentColor 72%, transparent);
}

.legal-consent__purposes {
    display: grid;
    gap: 0.5rem;
    margin: 0 0 1rem;
    padding: 0;
    list-style: none;
}

.legal-consent__purposes li {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.5rem;
}

.legal-consent__purposes a {
    color: inherit;
}

/* Refuser pèse autant qu'accepter : les trois actions partagent une seule variante. */
.legal-consent__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.legal-consent__button {
    flex: 1 1 10rem;
    padding: 0.5rem 1rem;
    border: 1px solid color-mix(in srgb, currentColor 60%, transparent);
    border-radius: 0.375rem;
    background: transparent;
    color: inherit;
    font: inherit;
    cursor: pointer;
}

:where(.legal-links a:focus-visible, .legal-links button:focus-visible) {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

.legal-consent a:focus-visible,
.legal-consent input:focus-visible,
.legal-consent__button:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

@media print {
    .legal-consent {
        display: none;
    }
}
