/* ---------- mobile ---------- */

body:has(.modal-module-wrap.open) {
    overflow: hidden;
}

.modal-module-wrap:not(.open) {
    display: none;
}

.modal-module-wrap.open {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;

    background-color: transparent;
    backdrop-filter: blur(0px);
    transition: backdrop-filter .4s ease-in-out;
    backdrop-filter: blur(8px);

    z-index: 99999;
}

.modal-module-wrap .modal-module-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: 1fr;
    grid-column-gap: 16px;
    max-width: 80rem;
    margin: 0 auto;
    place-items: center;
    padding: 1rem;
    height: 100%;
}

.modal-module-wrap .modal-module-grid .modal-content {
    background-color: white;
    grid-column: span 4;
    height: 100%;
    padding: 2rem 1rem 1rem;
    box-shadow: var(--box-shadow);
    position: relative;
    border-radius: var(--radius-md);
    max-height: calc(100vh - 2rem);
    overflow: scroll;
}

.modal-module-wrap .modal-module-grid .modal-content button {
    position: absolute;
    right: 2rem;
    top: 2rem;
    background: transparent;
    border: none;
}

.modal-module-wrap .modal-module-grid .modal-content button:hover {
    cursor: pointer;
}

.modal-module-wrap .modal-module-grid .modal-content h2 {
    margin-bottom: 48px;
    padding-right: 64px;
}

.modal-module-wrap .modal-module-grid .modal-content section h3 {
    margin-bottom: var(--space-md);
}

.modal-module-wrap .modal-module-grid .modal-content section {
    margin-bottom: var(--space-xl);
}

.modal-module-wrap .modal-module-grid .modal-content .image-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

/* ---------- tablet ---------- */

@media screen and (min-width: 48rem) {
    .modal-module-wrap .modal-module-grid .modal-content {
        height: auto;
        min-height: 66.66666%;
        padding: var(--space-xxl);
    }

    .modal-module-wrap .modal-module-grid .modal-content .image-grid img {
        width: calc(50% - .5rem);
    }
}

/* ---------- laptop ---------- */

@media screen and (min-width: 80rem) {
    .modal-module-wrap .modal-module-grid {
        grid-template-columns: repeat(12, 1fr);
    }

    .modal-module-wrap .modal-module-grid .modal-content {
        grid-column: 3 / span 8;
    }
}