.flashMitigationStart {
    opacity: 0;
}

.flashMitigationEnd {
    opacity: 1;
}

.hiddenBlur {
    opacity: 0;
    transition: opacity 0.3s, transform 0.3s, filter 0.3s;
}

.showBlur {
    opacity: 1;
}

@media(prefers-reduced-motion) {
    .hiddenBlur, .hiddenSlideY {
        transition: none;
    }
}

.hoverable {
    transition: transform 0.4s;
    will-change: transform;
    cursor: pointer;
}
  
.hoverable:hover {
    transform: scale(1.015);
    position: relative;
}

/* Page preloader - hide header until parallax images are loaded */
header.preloading {
    opacity: 0;
    visibility: hidden;
}

header.preloaded {
    opacity: 1;
    visibility: visible;
    transition: opacity 0.5s ease-in-out, visibility 0.5s ease-in-out;
}

/* Preloader spinner overlay */
.preloader-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.8);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
    opacity: 1;
    visibility: visible;
    transition: opacity 0.3s ease-out, visibility 0.3s ease-out;
}

.preloader-overlay.hidden {
    opacity: 0;
    visibility: hidden;
}

.preloader-overlay .spinner-border {
    width: 3rem;
    height: 3rem;
    border-width: 0.3rem;
}