
.modal {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: rgba(0, 0, 0, .4);
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: flex-start;
    z-index: 7;
    overflow: auto;
    opacity: 0;
    pointer-events: none;
    transition: .1s all;
}

.modal-sm {
    align-items: center;
}

.modal-sub {
    z-index: 8;
}

.modal.active {
    opacity: 1;
    pointer-events: all;
}

.modal-dialog {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    min-height: 100%;
    max-height: 100%;
    background: #fff;
    overflow: hidden;
    position: relative;
    padding: 45px;
}

.modal-sm .modal-dialog,
.modal-md .modal-dialog,
.modal-lg .modal-dialog {
    max-width: calc(100% - 48px);
    border-radius: 12px;
    box-shadow: 4px 4px 12px 0px #00000040;
    margin: 24px 0;
    min-height: unset;
    max-height: calc(100% - 48px);
}

.modal-requests .modal-dialog {
    height: calc(100% - 48px);
}

@media (min-width: 1024px) {

    .modal-dialog {
        max-width: calc(100% - 48px);
        border-radius: 12px;
        box-shadow: 4px 4px 12px 0px #00000040;
        height: 675px;
        margin: 24px 0;
        min-height: unset;
    }

    .modal-sm .modal-dialog {
        height: unset;
    }

    .modal-requests .modal-dialog {
        height: 675px;
    }

    @media (min-height: 700px) {

        .modal {
            align-items: center;
        }
        .modal-dialog {
            margin: unset;
        }
    }
}

.modal-sub .modal-dialog {
    min-height: unset;
}

.modal-lg .modal-dialog {
    width: 1200px;
}

.modal-md .modal-dialog {
    width: 900px;
}

.modal-sm .modal-dialog {
    width: 600px;
}

.modal-img,
.modal-content {
    display: flex;
    flex-direction: column;
}

.modal-img {
    height: calc(100dvw / 2);
    overflow: hidden;
}

@media (min-width: 1024px) {
    .modal-img {
        max-height: unset;
    }
}

.modal-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.modal-content {
    flex: 1;
    max-height: 100%;
    overflow: hidden;
}

@media (min-width: 1024px) {

    .modal-full .modal-dialog {
        width: 100%;
        height: 100%;
        margin: 0;
        max-width: unset;
        border-radius: 0;
    }

    .modal-full .modal-back {
        left: 50%;
        margin-left: calc((100dvw / -2) + 24px);
    }

    .modal-full .modal-content {
        height: 100%;
        margin: auto;
    }

    .modal-full .modal-header,
    .modal-full .modal-body,
    .modal-full .modal-footer {
        padding-left: calc((100dvw - 1440px) / 2);
        padding-right: calc((100dvw - 1440px) / 2);
    }

    .modal-full .modal-header > *,
    .modal-full .modal-body > *,
    .modal-full .modal-footer > * {
        margin: 0 24px;
    }

    .modal-full .modal-header .ws-btns {
        margin: 0;
    }

    .modal-full .modal-body .cards,
    .modal-full .modal-body .form {
        margin: 0;
        padding: 0 24px;
    }

}

@media (min-width: 1440px) {
    .modal-full .modal-back {
        left: calc(((100dvw - 1440px) / 2) + 24px);
        margin: unset;
    }
}


.modal-header,
.modal-body,
.modal-footer {
    /* padding: 24px; */
    padding-bottom: 30px;
    position: relative;
    display: flex;
    flex-direction: column;
}

.modal-header.bordered {
    border-bottom: 1px solid #CCCAC7;
}

.modal-body {
    flex: 1;
    font-size: 14px;
    overflow: auto;
}

.modal-password .modal-body {
    min-height: 320px;
}

@media (min-width: 1024px) {
    .modal-password .modal-body {
        min-height: unset;
    }
}

.modal-title {
    color: #014E6C;
    font-family: 'Editor\'s Note';
    text-align: center;
    font-size: 24px;
    margin: unset;
}

.modal-title-sm {
    color: initial;
    font-family: 'Quasimoda';
    font-weight: 500;
    font-size: 20px;
    text-align: left;
}

.modal-subtitle {
    font-size: 16px;
    font-family: 'Quasimoda';
    text-align: center;
    margin: 1em 0 0 0;
}

.modal-close {
    position: fixed;
    top: 16px;
    right: 16px;
    color: #014E6C;
    cursor: pointer;
    background: rgba(255, 255, 255, .5);
    border-radius: 4px;
    z-index: 1;
}

/*.modal-sm*/ .modal-close {
                  position: absolute;
              }

@media (min-width: 1024px) {

    .modal-close {
        position: absolute;
    }
}

.modal-back {
    position: absolute;
    top: 16px;
    left: 16px;
    color: #014E6C;
    cursor: pointer;
    background: rgba(255, 255, 255, .5);
    border-radius: 4px;
    z-index: 1;
    display: flex;
    align-items: end;
    gap: 6px;
    text-transform: uppercase;
}

.modal-heading {
    color: #014567;
    font-size: 18px;
    font-family: 'Quasimoda';
    text-transform: uppercase;
    font-weight: 500;
    text-align: center;
}
