.modal-overlay {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,.65);
}

.modal-top .modal-overlay {
    align-items: flex-start;
}

.modal-container {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    max-width: 47rem;
    max-height: 80vh;
    position: relative;
    width: 100%;
    padding: 1rem;
}

.modal-shadow {
    -webkit-box-shadow: 0 4px 80px 0 rgba(0, 0, 0, .1);
    -moz-box-shadow: 0 4px 80px 0 rgba(0, 0, 0, .1);
    box-shadow: 0 4px 80px 0 rgba(0, 0, 0, .1);
}

.modal-top .modal-container {
    max-width: 100%;
}

.modal .loading-placeholder {
    max-height: 50vh;
    max-width: none;
    object-fit: cover;
    aspect-ratio: auto!important;
}

.modal-container-scroll {
    overflow-y: overlay;
    overflow-x: hidden;
    background: #fff;
    display: flex;
    flex-direction: column;
    max-height: 80vh;
    min-height: 20rem;
    padding: 2rem;
}

.modal-container > img {
    position: absolute;
    bottom: 0;
    right: 0;
    transform: translate(39%,26%);
    z-index: -1;
}

.modal .btn {
    position: inherit;
    margin-top: auto;
    z-index: 2;
}

.modal-title {
    font-size: 2rem;
    margin: 0 0 2rem 0;
    color: #000;
    font-weight: bold;
}

.modal-title.has-icon {
    font-size: 1.888rem;
}

.modal .link-group {
    margin: 1rem 0 2rem 0;
}

.modal-close {
    position: absolute;
    top: 2rem;
    right: 2rem;
    border: 1px solid #000;
    width: 2.222rem;
    height: 2.222rem;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: .2rem;
    z-index: 9999999;
    background: #fff;
    transform: scale(.999);
}

.modal-next,
.modal-prev {
    position: absolute;
    top: 50%;
    right: 1rem;
    border: 1px solid #000;
    width: 2.222rem;
    height: 2.222rem;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: .2rem;
    z-index: 9999999;
    background: #fff;
}

.modal-prev {
    left: 1rem;
    right: auto;
}

.modal-close svg,
.modal-next svg,
.modal-prev svg {
    fill: #000;
    width: .7rem;
    height: .7rem;
    pointer-events: none;
}

.modal-close:hover,
.modal-next:hover,
.modal-prev:hover {
    border-color: #000;
    transform: scale(.9);
}

.modal-close:hover svg,
.modal-next:hover svg,
.modal-prev:hover svg {
    fill: #000;
    transform: scale(1.4);
}

@keyframes slideIn {
    from {
        transform: translateY(15%)
    }

    to {
        transform: translateY(0)
    }
}

@keyframes slideInTop {
    from {
        transform: translateY(-15%)
    }

    to {
        transform: translateY(0)
    }
}

@keyframes slideOut {
    from {
        transform: translateY(0)
    }

    to {
        transform: translateY(-10%)
    }
}

.modal {
    display: none
}

.modal.is-open {
    display: block
}

.modal[aria-hidden=false] .modal-overlay {
    animation: fadeIn .3s cubic-bezier(0, 0, .2, 1)
}

.modal[aria-hidden=false] .modal-container {
    animation: slideIn .3s cubic-bezier(0, 0, .2, 1)
}

.modal.modal-top[aria-hidden=false] .modal-container {
    animation: slideInTop .3s cubic-bezier(0, 0, .2, 1)
}

.modal[aria-hidden=true] .modal-overlay {
    animation: fadeOut .3s cubic-bezier(0, 0, .2, 1)
}

.modal[aria-hidden=true] .modal-container {
    animation: slideOut .3s cubic-bezier(0, 0, .2, 1)
}

.modal .modal-container, .modal .modal-overlay {
    will-change: transform
}
