#modal {z-index: 999;}

.card {
background: #fff;
border-top-right-radius: 16px;
border-bottom-left-radius: 16px;
box-shadow: -20px 20px 35px 1px rgba(10, 49, 86, 0.18);
display: flex;
flex-direction: column;
padding: 32px;
margin: 40px;
width: 100%;
}

.heading {
font-size: 1.5em;
margin-bottom: 12px;
}
.modal-header {
align-items: baseline;
display: flex;
justify-content: space-between;
}
.close {
background: none;
border: none;
cursor: pointer;
display: flex;
height: 16px;
text-decoration: none;
width: 16px;
}
.close svg {
width: 16px;
}

.modal-wrapper {
align-items: center;
background: rgba(0, 0, 0, 0.7);
bottom: 0;
display: flex;
justify-content: center;
left: 0;
position: fixed;
right: 0;
top: 0;
}

#modal {
opacity: 0;
transition: opacity 0.25s ease-in-out;
visibility: hidden;
}
#modal:target {
opacity: 1;
visibility: visible;
}
#modal:target .modal-body {
opacity: 1;
transform: translateY(1);
}
#modal .modal-body {
max-width: 500px;
opacity: 0;
transform: translateY(-100px);
transition: opacity 0.25s ease-in-out;
width: 100%;
z-index: 1;
}

.outside-trigger {
bottom: 0;
cursor: default;
left: 0;
position: fixed;
right: 0;
top: 0;
}
h2.heading {
color: #575275;
font-weight: 700;
line-height: 125%;
font-size: 160%;
}

/* Extra small devices (phones, 600px and down) */
@media only screen and (max-width: 600px) {
    .card {
        padding: 10px;
    }
    .modal-wrapper {
        top: 125px;
    }

}

/* Small devices (portrait tablets and large phones, 600px and up) */
@media only screen and (min-width: 600px) {
    .card {
        padding: 15px;
    }
    .modal-wrapper {
        top: 125px;
    }
}

/* Medium devices (landscape tablets, 768px and up) */
@media only screen and (min-width: 768px) {
    .card {
        padding: 15px;
    }
    .modal-wrapper {
        top: 125px;
    }
}

/* Large devices (laptops/desktops, 992px and up) */
@media only screen and (min-width: 992px) {
    .card {
        padding: 15px;
    }
    .modal-wrapper {
        top: 125px;
    }
    #forms {
        width: 500px;
    }
    #modal .modal-body {
        max-width: 600px;
    }
}

/* Extra large devices (large laptops and desktops, 1200px and up) */
@media only screen and (min-width: 1200px) {
    .card {
        padding: 15px;
    }
    .modal-wrapper {
        top: 125px;
    }
    #forms {
        width: 500px;
    }
    #modal .modal-body {
        max-width: 600px;
    }
}