/*
 * AL BADI V8 Browser Stability Layer
 *
 * Principle:
 * Content must NEVER depend on JavaScript in order to be visible.
 * Motion is progressive enhancement only.
 */

/* -------------------------------------------------------
   GLOBAL REVEAL FAILSAFE
------------------------------------------------------- */

html .albadi-reveal,
html.albadi-motion-ready .albadi-reveal,
html.albadi-motion-ready .albadi-reveal:not(.is-visible),
html .albadi-reveal.reveal-heading,
html .albadi-reveal.reveal-heading:not(.is-visible),
html .albadi-reveal.reveal-card,
html .albadi-reveal.reveal-card:not(.is-visible),

html [data-v8-reveal],
html [data-v8-reveal]:not(.is-visible),

html .ab-static-reveal,
html .ab-static-reveal:not(.is-visible) {
    opacity: 1 !important;
    visibility: visible !important;
}

/*
 * Preserve subtle motion without hiding content.
 */
html.albadi-motion-ready .albadi-reveal:not(.is-visible),
html [data-v8-reveal]:not(.is-visible),
html .ab-static-reveal:not(.is-visible) {
    transform: translateY(10px) !important;
}

html .albadi-reveal.is-visible,
html [data-v8-reveal].is-visible,
html .ab-static-reveal.is-visible {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
}

/* -------------------------------------------------------
   TRIP FINDER FAILSAFE
------------------------------------------------------- */

html .trip-finder-v7g .trip-finder-panel,
html .trip-finder-v7g .trip-finder-field,
html .trip-finder-v7g .trip-finder-submit {
    visibility: visible !important;
}

html .trip-finder-v7g:not(.is-visible) .trip-finder-panel,
html .trip-finder-v7g:not(.is-visible) .trip-finder-field,
html .trip-finder-v7g:not(.is-visible) .trip-finder-submit {
    opacity: 1 !important;
}

/* -------------------------------------------------------
   PAGE VISIBILITY
------------------------------------------------------- */

body {
    visibility: visible !important;
}

main,
section,
footer {
    visibility: visible !important;
}

/* Never allow an animation state to block interaction forever. */
.is-visible {
    visibility: visible;
}

/* -------------------------------------------------------
   REDUCED MOTION
------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }

    .albadi-reveal,
    [data-v8-reveal],
    .ab-static-reveal {
        transform: none !important;
        opacity: 1 !important;
        visibility: visible !important;
    }
}
