/**
 * OpenKardec — Navegação interna fixa no topo
 * Arquivo: /assets/css/openkardec-page-nav-sticky.css
 *
 * Esta versão combina CSS sticky com fallback JavaScript.
 * Motivo: em alguns ambientes, position: sticky pode ser impedido por
 * elementos-pai com overflow/transform/estrutura de layout. O fallback
 * aplica position: fixed quando a barra alcança o topo da janela.
 */

:root {
    --ok-page-nav-offset: 0px;
    --ok-page-nav-scroll-margin: 110px;
}

:where(
    .ok-ap-nav,
    .ok-vpt-nav,
    .ok-ra-nav,
    .ok-prayer-nav,
    .ok-read-nav,
    .ok-study-nav,
    .ok-kardec-nav,
    .ok-kardec-nav-wrap,
    .ok-what-nav,
    .ok-what-nav-box,
    .ok-class-nav,
    .ok-works-nav,
    .ok-works-nav-box,
    .ok-sv-nav
) {
    position: sticky !important;
    top: var(--ok-page-nav-offset) !important;
    z-index: 120 !important;
}

:where(
    .ok-ap-nav,
    .ok-vpt-nav,
    .ok-ra-nav,
    .ok-prayer-nav,
    .ok-read-nav,
    .ok-study-nav,
    .ok-kardec-nav,
    .ok-what-nav,
    .ok-class-nav,
    .ok-works-nav,
    .ok-sv-nav
) {
    box-shadow: 0 10px 28px rgba(16, 42, 61, .08);
}

/*
 * Fallback acionado por /assets/js/openkardec-page-nav-sticky.js.
 * Ele resolve os casos em que o sticky nativo não funciona no servidor.
 */
:where(
    .ok-ap-nav,
    .ok-vpt-nav,
    .ok-ra-nav,
    .ok-prayer-nav,
    .ok-read-nav,
    .ok-study-nav,
    .ok-kardec-nav,
    .ok-what-nav,
    .ok-class-nav,
    .ok-works-nav,
    .ok-sv-nav
).is-ok-page-nav-fixed {
    position: fixed !important;
    top: var(--ok-js-page-nav-top, 0px) !important;
    left: var(--ok-js-page-nav-left, 0px) !important;
    width: var(--ok-js-page-nav-width, 100%) !important;
    z-index: 990 !important;
}

.ok-page-nav-placeholder {
    display: block;
    height: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

:where(main [id]) {
    scroll-margin-top: var(--ok-page-nav-scroll-margin);
}

@media (max-width: 760px) {
    :root {
        --ok-page-nav-scroll-margin: 128px;
    }
}
