/**
 * Top bar fades/collapses on scroll; main nav sticks once top bar is gone.
 */

.usl-site-header {
    position: relative;
    z-index: 1000;
    width: 100%;
}

/* Top social bar — shrinks away as you scroll */
.usl-site-header .top-bar {
    max-height: calc(var(--top-bar-full-height, 40px) * (1 - var(--top-bar-progress, 0)));
    opacity: calc(1 - var(--top-bar-progress, 0));
    overflow: hidden;
    transform: translateY(calc(var(--top-bar-progress, 0) * -6px));
    will-change: max-height, opacity, transform;
}

.usl-site-header.usl-header--stuck .top-bar {
    max-height: 0 !important;
    opacity: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    transform: translateY(-100%);
    pointer-events: none;
}

/* Main nav — in flow until stuck */
.usl-site-header .usl-main-nav {
    position: relative;
    top: auto;
    width: 100%;
    background: #fff;
    transition: box-shadow 0.3s ease;
}

.usl-site-header.usl-header--stuck .usl-main-nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    box-shadow:
        0 4px 6px -1px rgba(15, 23, 42, 0.08),
        0 10px 24px -6px rgba(15, 23, 42, 0.12);
}

.usl-site-header .usl-main-nav__bar {
    transition: height 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.usl-site-header.usl-header--stuck .usl-main-nav__bar {
    height: 48px !important;
}

.usl-site-header .usl-main-nav__logo-wrap {
    transition: padding-top 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.usl-site-header.usl-header--stuck .usl-main-nav__logo-wrap {
    padding-top: 0 !important;
    align-items: center !important;
}

.usl-site-header.usl-header--stuck .usl-main-nav__logo-wrap img,
.usl-site-header.usl-header--stuck .usl-main-nav__logo-wrap picture {
    max-height: 40px;
}

/* Reserve space only when main nav is stuck */
body.usl-has-stuck-nav {
    padding-top: var(--usl-header-compact-height, 48px);
}

/* Page sticky bars sit below the stuck main nav */
body.usl-has-stuck-nav :is(
    .acal-nav,
    .evcal-nav,
    .evt-filters,
    .gov-toolbar,
    .adm-quick-nav,
    .faq-toolbar
) {
    top: var(--usl-header-compact-height, 48px);
}

@media (max-width: 767px) {
    .usl-site-header.usl-header--stuck .usl-main-nav__bar {
        height: 52px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .usl-site-header .top-bar,
    .usl-site-header .usl-main-nav,
    .usl-site-header .usl-main-nav__bar,
    body.usl-has-stuck-nav {
        transition: none !important;
    }
}
