/* Fixed navigation is independent of optional reveal effects. */
html:has(> body.ap-site) { scroll-padding-top: var(--ap-scroll-offset, 140px); }
.ap-site .ap-skip { z-index: 100; }
.ap-home .ap-home-header { position: fixed; z-index: 40; }
/* Scrolling changes contrast only; keep the header and logo at their initial size. */
.ap-home .ap-home-header.ap-is-scrolled {
    background: #101a26; border-color: #46586e;
    box-shadow: 0 8px 24px #0a142029;
}
.ap-inner .ap-inner-masthead {
    position: sticky; top: calc(-1 * var(--ap-inner-header-height, 84px));
    z-index: 40; background: #fff;
}
/* Bring the logo/phone back into view when reached by keyboard. */
.ap-inner .ap-inner-masthead:focus-within { top: 0; }
.ap-inner .ap-inner-masthead .ap-header { background: #fff; }
.ap-inner .ap-sidebar { top: calc(var(--ap-scroll-offset, 80px) + 16px); }
@media (prefers-reduced-motion: no-preference) {
    /* Never animate dimensions: header changes must not trigger layout loops. */
    .ap-home .ap-home-header { transition: background-color 240ms ease, border-color 240ms ease, box-shadow 240ms ease; }
}
@media (max-width: 1000px) {
    .ap-home .ap-navigation.ap-open {
        max-height: calc(100svh - var(--ap-home-header-height, 128px) - 48px);
        overflow-y: auto; overscroll-behavior: contain;
    }
}
@media (max-width: 700px) {
    .ap-inner .ap-inner-masthead { top: 0; }
    .ap-inner .ap-inner-masthead .ap-header { padding-block: 6px; }
    .ap-inner .ap-inner-masthead .ap-brand, .ap-inner .ap-inner-masthead .ap-brand img { width: 144px; }
    .ap-inner .ap-inner-masthead .ap-phone { min-height: 36px; }
    .ap-inner .ap-inner-masthead .ap-navigation.ap-open {
        position: absolute; top: 100%; left: 0; right: 0;
        max-height: calc(100svh - var(--ap-inner-header-height, 104px) - 40px);
        overflow-y: auto; overscroll-behavior: contain;
        box-shadow: 0 12px 24px #0a14201f;
    }
}
@media (prefers-reduced-motion: reduce) {
    .ap-home .ap-home-header { transition: none; }
}
@media print {
    html:has(> body.ap-site) { scroll-padding-top: 0; }
    .ap-home .ap-home-header, .ap-inner .ap-inner-masthead { position: static; top: auto; box-shadow: none; }
    .ap-home .ap-home-header.ap-is-scrolled { background: #fff; }
}
