.fast-modal {
    display: none;
    color: var(--color-neutral-900);
    font-family: var(--font-body);
    font-size: 16px;
    font-weight: 400;

    margin: 0px;
    overscroll-behavior: contain;
    touch-action: none;
    padding: 0px !important;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1050;
}

.fast-modal.open {
    display: block;
    visibility: visible;
}

.fast-modal > .modal-backdrop {
    opacity: 0.5;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1040;
    background-color: #000;
    touch-action: none;
}

.fast-modal > .modal-dialog {
    display: flex;
    align-items: center;
    justify-content: center;

    position: relative;
    pointer-events: none;
    transform: none;
    margin: 0;
    height: 100%;
    width: 100%;
    z-index: 1050;
}

.fast-modal > .modal-dialog > .modal-content {
    background-color: var(--color-white);
    pointer-events: auto;

    display: flex;
    flex-direction: column;
    gap: var(--space-4);

    overflow: hidden;
    overscroll-behavior: contain;
    padding: var(--space-6) var(--space-4) var(--space-3) var(--space-4);
    height: 100%;
    width: 100%;
}

.fast-modal > .modal-dialog > .modal-content > .modal-header {
    display: flex;
    align-items: center;
    flex: 0 0 auto;

    background-color: var(--color-white);
    border: none;
    padding: 0px;
    position: relative;
}

.fast-modal > .modal-dialog > .modal-content > .modal-header > .modal-title {
    font-family: var(--font-heading);
    font-size: 24px;
    font-weight: 600;
    margin: 0px;
    padding: 0px;
}

.fast-modal > .modal-dialog > .modal-content > .modal-header > .modal-close {
    appearance: none;
    background: none;
    border: none;
    color: var(--color-neutral-700);
    position: absolute;
    top: 0px;
    right: 0px;
    bottom: auto;
    left: auto;
}

.fast-modal > .modal-dialog > .modal-content > .modal-body {
    flex: 1 1;
    overflow: auto;
    padding: 1px;
}

.fast-modal > .modal-dialog > .modal-content > .modal-footer {
    flex: 0 0 auto;
    border: none;
    padding: 0px;
}

.fast-modal > .modal-dialog > .modal-content > .modal-footer::before,
.fast-modal > .modal-dialog > .modal-content > .modal-footer::after {
    content: none;
}

.fast-modal.no-mobile-fullscreen > .modal-dialog > .modal-content {
    border-radius: 8px;
    flex: 1 1;
    margin: 16px;
    padding: var(--space-8);
    height: auto;
    width: auto;
}

/* === SCREEN (MD) === */
@media (min-width: 768px) {
    .fast-modal.fast-modal.no-mobile-fullscreen
        > .modal-dialog
        > .modal-content {
        margin: 32px;
    }
}

/* === SCREEN (LG) === */
@media (min-width: 1024px) {
    .fast-modal > .modal-dialog > .modal-content {
        border-radius: 8px;
        max-width: 800px;
        padding: var(--space-8);
        height: auto;
        width: auto;
    }

    .fast-modal.no-mobile-fullscreen > .modal-dialog > .modal-content {
        margin: 0px;
    }
}
