/* Shared app-style navigation on every public page, desktop and mobile. */
.cpst-bottom-nav {
    box-sizing: border-box;
    position: fixed;
    inset: auto 0 0;
    z-index: 9990;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    padding: 5px 4px calc(5px + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid #e1e5ea;
    background: #fff;
    box-shadow: 0 -2px 10px rgba(15, 23, 42, .06);
}
.cpst-bottom-nav__item { display: flex; min-width: 0; min-height: 54px; flex-direction: column; align-items: center; justify-content: center; gap: 4px; padding: 3px 0; color: #65707b; text-align: center; text-decoration: none; font: 600 11px/1.15 Arial, Helvetica, sans-serif; }
.cpst-bottom-nav__item svg { display: block; width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.cpst-bottom-nav__item.is-active, .cpst-bottom-nav__item[aria-current="page"] { color: var(--cp-navy, #0a1a4f); font-weight: 700; }
.cpst-bottom-nav__item:hover { color: var(--cp-navy, #0a1a4f); background: #f7f9fc; }
.cpst-bottom-nav__item:focus-visible { outline: 2px solid var(--cp-cyan, #00aeef); outline-offset: -2px; border-radius: 6px; }
body:has(.cpst-site-menu:target) .cpst-bottom-nav__item--menu { color: var(--cp-navy, #0a1a4f); }
body:has(.cpst-bottom-nav) { padding-bottom: calc(65px + env(safe-area-inset-bottom, 0px)) !important; }
html:has(.cpst-bottom-nav) { scroll-padding-bottom: calc(75px + env(safe-area-inset-bottom, 0px)); }
body:has(.cpst-bottom-nav) .cpx-election-app-nav { display: none; }
@media(min-width:761px) {
    /* The subscription ribbon retains its space above the navigation. */
    body:has(.cpst-bottom-nav) .cpst-subscription-ribbon { bottom: calc(65px + env(safe-area-inset-bottom, 0px)); }
    body.cpst-has-subscribe-ribbon:has(.cpst-bottom-nav) { padding-bottom: calc(147px + env(safe-area-inset-bottom, 0px)) !important; }
}
@media print {
    .cpst-bottom-nav { display: none !important; }
    body:has(.cpst-bottom-nav) { padding-bottom: 0 !important; }
}
