﻿/* modal-state-manager.css - html.modal-is-open: freeze page chrome, blur background, manage z-index */


html.modal-is-open .background__stripe,
body.modal-is-open .background__stripe {
    animation: none !important;
    transform: none !important;
}

/* Freeze all non-modal background animations while any modal/form is open. */
html.modal-is-open body *:not(.modal):not(.modal *):not(.camera-capture-modal):not(.camera-capture-modal *):not(.form-calendar-overlay):not(.form-calendar-overlay *) {
    animation-play-state: paused !important;
}

/* Hide and stop spark bursts behind the form to remove visual distraction. */
html.modal-is-open .spark {
    animation: none !important;
    opacity: 0 !important;
}

html.modal-is-open,
body.modal-is-open {
    overscroll-behavior: none;
}

html.modal-is-open body,
body.modal-is-open {
    min-height: auto !important;
}

/* Force override for all browsers */
html.modal-is-open body,
body.modal-is-open {
    min-height: auto !important;
    height: auto !important;
}

/* Additional override for booking modal specifically */
html.modal-is-open #bookingModal.modal--active~body,
body.modal-is-open #bookingModal.modal--active~body {
    min-height: auto !important;
    height: auto !important;
}

html.modal-is-open .background {
    filter: blur(12px);
    transform: scale(1.03);
}

/* While any modal-like layer is open, hide page chrome and keep only
   paused SVG background + active overlay layer visible. */
html.modal-is-open body>* {
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

html.modal-is-open body>.background,
html.modal-is-open body>.modal.modal--active,
html.modal-is-open body>.camera-capture-modal.camera-capture-modal--active,
html.modal-is-open body>.form-calendar-overlay.form-calendar-overlay--active,
html.modal-is-open body>.month-switch-overlay.month-switch-overlay--active,
html.modal-is-open body>#floatingCustomSelectLayer,
html.modal-is-open body>#globalSpinner {
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}

html.modal-is-open .modal,
html.modal-is-open .camera-capture-modal,
html.modal-is-open .form-calendar-overlay {
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

html.modal-is-open #bookingModal,
html.modal-is-open #termsModal,
html.modal-is-open #privacyModal,
html.modal-is-open #intakeNoticeModal,
html.modal-is-open #cameraCaptureModal,
html.modal-is-open #formCalendarOverlay {
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

html.post-success-screen-active,
body.post-success-screen-active {
    overflow: hidden;
    overscroll-behavior: none;
}

html.post-success-screen-active body>* {
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

html.post-success-screen-active body>.background,
html.post-success-screen-active body>#postSuccessScreen {
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}

