.bfr-fading {
    opacity: 0.45 !important;
    transition: opacity 160ms ease;
}
.bfr-page-spinner {
    position: fixed;
    z-index: 99998;
    top: 50%;
    left: 50%;
    width: 88px;
    height: 88px;
    transform: translate(-50%, -50%);
    border: 1px solid #e1e8eb;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 6px 28px #00183126;
    pointer-events: none;
}
.bfr-page-spinner[hidden] { display: none; }
.bfr-page-spinner::before,
.bfr-page-spinner::after {
    content: "";
    position: absolute;
    inset: 17px;
    border: 3px solid #e4edf0;
    border-top-color: #007c9e;
    border-right-color: #b5a064;
    border-radius: 50%;
    animation: bfr-spin 850ms linear infinite;
}
.bfr-page-spinner::after {
    inset: 27px;
    border-width: 2px;
    border-color: transparent;
    border-bottom-color: #b5a064;
    animation-duration: 1300ms;
    animation-direction: reverse;
}
.bfr-page-loading .brx-loading-animation[data-ajax-loader-query-id],
.bfr-page-loading [data-bfr-existing-loader],
.bfr-page-loading #ih-accommodation-loader { display: none !important; }
.bfr-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
@keyframes bfr-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
    .bfr-fading { transition: none; }
    .bfr-page-spinner::before, .bfr-page-spinner::after { animation: none; }
}

/* Query loading is centered in the visible results, including independently scrolling archives. */
.bfr-query-spinner { width:64px; height:64px; z-index:9990; }
.bfr-query-spinner::before { inset:12px; }
.bfr-query-spinner::after { inset:20px; }
