/* P2.2 : uniquement les navigations publiques explicitement activées. */
[data-public-navigation] .nav-link:focus-visible,
[data-public-navigation] .mobile-menu-btn:focus-visible {
    outline: 3px solid #0F172A;
    outline-offset: -3px;
}
/* Le Pack garde sa navigation textuelle et indique seulement sa catégorie. */
.resource-nav[data-public-navigation] a[data-nav-parent] {
    color: #0F766E;
    text-decoration: underline;
    text-underline-offset: 0.3em;
}
@media (max-width: 768px) {
    [data-public-navigation] .nav {
        max-height: calc(100vh - var(--header-height));
        max-height: calc(100dvh - var(--header-height));
        overflow-y: auto;
        overscroll-behavior-y: contain;
    }
    [data-public-navigation] .nav > * {
        flex-shrink: 0;
    }
}

/* P2.3 : repères publics ; le fond clair fige la teinte déjà obtenue sur blanc.
   Le soulignement distingue l'état sans dépendre du seul fond très pâle. */
[data-public-navigation] .nav-link.active {
    color: #0F766E;
    background: #ECF6F5;
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 0.25em;
}
[data-theme="dark"] [data-public-navigation] .nav-link.active {
    color: var(--color-secondary-light);
    background: rgba(45, 212, 191, 0.08);
}
/* Le Pack reste textuel : contour extérieur pour ne pas recouvrir les lettres. */
.resource-nav[data-public-navigation] a:focus-visible {
    outline: 3px solid #0F172A;
    outline-offset: 3px;
}
[data-theme="dark"] [data-public-navigation] .nav-link:focus-visible,
[data-theme="dark"] [data-public-navigation] .mobile-menu-btn:focus-visible,
[data-theme="dark"] .resource-nav[data-public-navigation] a:focus-visible {
    outline-color: var(--color-secondary);
}
[data-theme="dark"] .resource-nav[data-public-navigation] a[data-nav-parent] {
    color: var(--color-secondary);
}

/* Uniquement Green et Pack, activés par leur classe de page.
   Les dégradés, dimensions, textes et états d'activation restent en place. */
.public-contrast-page .btn-primary {
    color: #0F172A;
    border-color: #0F766E;
}
.public-contrast-page .btn-secondary,
.public-contrast-page .btn-outline {
    border-color: #0F766E;
}
.public-contrast-page .btn-outline {
    color: #0F766E;
}
/* Neutraliser uniquement le survol clair hérité de a:hover sur le CTA secondaire. */
.public-contrast-page .btn-secondary:hover {
    color: #0F172A;
}
.public-contrast-page #cta-final {
    /* Priorité locale nécessaire au color inline préexistant, conservé dans le HTML. */
    color: #0F766E !important;
    border-color: #0F172A;
}
/* Deux tons de focus : lisibles sur la carte sombre comme sur le bandeau turquoise. */
.public-contrast-page .btn:focus-visible {
    outline: 3px solid #0F172A;
    outline-offset: 3px;
    box-shadow: 0 0 0 3px #FFFFFF;
}
/* Conserver les encres sombres/claires qui passaient déjà dans le thème sombre. */
[data-theme="dark"] .public-contrast-page .btn-primary {
    color: var(--bg-dark);
    border-color: transparent;
}
[data-theme="dark"] .public-contrast-page .btn-secondary,
[data-theme="dark"] .public-contrast-page .btn-outline {
    border-color: var(--color-secondary-light);
}
[data-theme="dark"] .public-contrast-page .btn-outline {
    color: var(--color-secondary-light);
}
[data-theme="dark"] .public-contrast-page .btn-secondary:hover {
    color: var(--color-secondary-light);
}
[data-theme="dark"] .public-contrast-page #cta-final {
    color: var(--color-secondary) !important;
    border-color: transparent;
}
