/**
 * Scroll-up reveal for the property address banner on /homes/* pages.
 *
 * position: sticky doesn't work here — body has overflow:hidden auto which
 * breaks sticky containing-block resolution. Instead we use position:fixed
 * combined with a JS-injected placeholder that occupies the bar's natural
 * flow space when the bar is pinned. Layout is preserved; the bar can pin
 * to the viewport top.
 *
 * States (managed by address-bar.js):
 *   - No class (scrollY < natural Y): bar in normal flow at its natural Y.
 *     Placeholder is display:none.
 *   - .--sticky (scrollY ≥ natural Y): bar position:fixed at top:0, visible.
 *     Placeholder takes its 59px flow space so content below doesn't shift.
 *   - .--sticky + .--hidden: bar slides off-screen via transform.
 */

.property-address-banner.property-address-banner--sticky {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    transform: translateY(0) !important;
    transition: transform 0.3s ease-out !important;
    will-change: transform;
    z-index: 99999;
}

.property-address-banner.property-address-banner--sticky.property-address-banner--hidden {
    transform: translateY(-100%) !important;
}

/* Placeholder injected by JS — sits where the bar's flow space would be
   while the bar is pinned. */
.property-address-banner-placeholder {
    display: none;
    width: 100%;
}
.property-address-banner-placeholder.is-active {
    display: block;
}

@media (prefers-reduced-motion: reduce) {
    .property-address-banner.property-address-banner--sticky {
        transition: none !important;
    }
}
