#wrapper {
    display: grid;
    grid-template-columns: auto;
    grid-template-rows: auto;
}

#contents {
    background-color: var(--light-gray);
    width: 100%;
    display: grid;
    justify-items: center;
    grid-template-columns: auto;
    grid-template-rows: auto;
    grid-column: 1;
    grid-row: 1;
    z-index: 1;
}

#modal-bg {
    grid-column: 1;
    grid-row: 1;
    z-index: 10;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.75);
    display: none; /* TODO: Revert to none */
    opacity: 0;
}

#listing-info-modal {
    overflow-y: scroll;
    width: 65%;
    height: 65%;
    background-color: var(--light-gray);
    border-radius: var(--common-border-radius);
    box-shadow: var(--common-box-shadow);
    justify-self: center;
    align-self: start;
    margin-top: 50px;
    display: grid;
    grid-template-rows: repeat(3, max-content);
}

#listing-info-title-container {
    width: 100%;
    height: max-content;
    background-color: white;
    border-top-right-radius: var(--common-border-radius);
    border-top-left-radius: var(--common-border-radius);
    display: grid;
    grid-template-columns: 1fr max-content 1fr;
}

#listing-info-title-container h1 {
    font-size: 28pt;
    font-weight: 400;
    color: var(--middle-green);
    justify-self: center;
    align-self: center;
    text-align: center;
    grid-column: 2;
}

#listing-info-title-container img {
    grid-column: 3;
    justify-self: end;
    margin: 25px 50px 0 0;
}

#listing-info-title-container img:hover {
    cursor: pointer;
}

#listing-info-title-address-container {
    grid-column: 1 / span 3
}

#listing-info-title-container p {
    font-size: 20pt;
    font-weight: 400;
    justify-self: center;
    align-self: center;
    margin: 0;
    padding: 0;
}

#listing-info-img-container {
    display: grid;
    grid-template-rows: repeat(2, max-content);
}

#listing-info-display-img {
    width: 350px;
    height: auto;
    justify-self: center;
    align-self: center;
    margin-top: 50px;
    box-shadow: var(--common-box-shadow);
    border-radius: var(--common-border-radius);
}

#listing-info-img-carousel-background {
    width: 90%;
    background-color: white;
    margin-top: 50px;
    justify-self: center;
    border-radius: var(--common-border-radius);
}

#listing-info-img-carousel {
    width: calc((75px * 6) + 100px);
    max-width: 95%;
    padding: 20px;
    justify-self: center;
    display: grid;
    grid-template-rows: max-content;
    grid-auto-flow: column;
    grid-auto-columns: 75px;
    overflow-x: auto;
    overflow-y: hidden;
    grid-column-gap: 25px;
}

.listing-info-carousel-img {
    width: 75px;
    height: auto;
    box-shadow: var(--common-box-shadow);
    border-radius: var(--common-border-radius);
}

.listing-info-carousel-img:hover {
    cursor: pointer;
}

#listing-info-modal .divider {
    width: 75%;
    justify-self: center;
    height: 2px;
    background: linear-gradient(
        to right,
        var(--light-gray) 0%,
        var(--middle-green) 25%,
        var(--middle-green) 50%,
        var(--middle-green) 75%,
        var(--light-gray) 100%
    );
    margin-top: 50px;
}

#loading-container {
    grid-column: 1;
    grid-row: 3;
    z-index: 10;
    display: none;
    justify-items: center;
    align-items: center;
    width: 100%;
    background-color: white;
    opacity: 0;
    pointer-events: none;
    min-height: 300px;
}

#loading-container .divider {
    width: 50%;
    background: linear-gradient(
        to right,
        white 0%,
        var(--middle-green) 25%,
        var(--middle-green) 50%,
        var(--middle-green) 75%,
        white 100%
    );
    height: 3px;
}

#loading-container h1 {
    font-size: 38pt;
    font-weight: 400;
    color: var(--middle-green);
}

#search-container {
    grid-column: 1;
    grid-row: 3;
    z-index: 1;
    width: 100%;
    display: grid;
    justify-items: center;
    background-color: var(--light-gray);
    grid-template-rows: max-content auto;
    opacity: 1;
    min-height: 300px;
}

#filters-outer {
    width: 100%;
    display: grid;
    justify-items: center;
}

#filter-bar {
    width: 90%;
    background-color: white;
    border-bottom-right-radius: var(--common-border-radius);
    border-bottom-left-radius: var(--common-border-radius);
    box-shadow: var(--common-box-shadow);
    display: grid;
    grid-template-columns: 1fr max-content 4fr repeat(2, 1fr);
    justify-items: center;
    align-items: center;
    margin-bottom: 50px;
    /*overflow-y: clip;*/
}

#filter-submit-container {
    grid-column: 1 / span 5;
    justify-self: center;
    align-self: center;
    display: grid;
    grid-template-rows: repeat(2, max-content);
    grid-template-columns: 2fr repeat(2, 1fr) 2fr;
    justify-items: center;
    align-items: center;
    width: 100%;
    margin-top: 0;
    opacity: 0;
    max-height: 0;
    overflow: hidden;
}

#filter-submit-container .divider {
    height: 2px;
    width: 50%;
    grid-column: 1 / span 4;
    justify-self: center;
    align-self: center;
    background: linear-gradient(
        to right,
        white 0%,
        var(--middle-green) 25%,
        var(--middle-green) 50%,
        var(--middle-green) 75%,
        white 100%
    );
}

#filter-submit-container button {
    width: 200px;
    justify-self: center;
    align-self: center;
}

#filter-submit-button {
    grid-column: 2;
}

#filter-clear-button {
    grid-column: 3;
}

#filter-bar h2 {
    font-size: 24pt;
    color: var(--middle-green);
    font-weight: 400;
    justify-self: center;
    text-align: center;
    align-self: center;
}

#filter-bar .vertical-divider {
    width: 2px;
    height: 75%;
    background: linear-gradient(
        to bottom,
        white 0%,
        var(--middle-green) 25%,
        var(--middle-green) 50%,
        var(--middle-green) 75%,
        white 100%
    );
}

#filter-bar .custom-dropdown {
    width: 90%;
    justify-self: center;
}

#add-filter-and-button,
#add-filter-or-button {
    display: none;
    opacity: 0;
}

#add-filter-add-button {
    grid-column: 4 / span 2;
}

.filter-monetary-bar,
.filter-decimal-bar,
.filter-int-bar,
.filter-date-bar,
.filter-string-bar,
.filter-enum-bar {
    background-color: white;
    border-radius: var(--common-border-radius);
    box-shadow: var(--common-box-shadow);
    display: grid;
    grid-template-columns: 1fr max-content 1fr;
    grid-template-rows: repeat(2, max-content) 1fr;
    width: 90%;
    margin-bottom: 50px;
}

.filter-monetary-bar .input-container,
.filter-decimal-bar .input-container,
.filter-int-bar .input-container,
.filter-date-bar .input-container {
    display: grid;
    grid-template-columns: 1fr max-content 1fr;
    width: 50%;
    justify-self: center;
    margin-bottom: 50px;
    grid-row: 3;
    grid-column: 1 / span 3;
}

.input-container input::placeholder {
    color: var(--medium-light-gray);
}

.filter-string-bar input {
    grid-column: 1 / span 3;
    width: 75%;
    justify-self: center;
}

.filter-monetary-bar .monetary-input {
    display: grid;
    grid-template-columns: repeat(2, max-content);
    align-items: center;
    justify-self: center;
}

.filter-monetary-bar > h2,
.filter-decimal-bar > h2,
.filter-int-bar > h2,
.filter-date-bar > h2,
.filter-string-bar > h2,
.filter-bool-bar > h2,
.filter-enum-bar > h2 {
    font-size: 20pt;
    font-weight: 400;
    color: var(--middle-green);
    text-align: center;
    justify-self: center;
    grid-row: 1;
    grid-column: 2;
}

.filter-monetary-bar > img,
.filter-decimal-bar > img,
.filter-int-bar > img,
.filter-date-bar > img,
.filter-string-bar > img,
.filter-bool-bar > img,
.filter-enum-bar > img {
    grid-row: 1;
    grid-column: 3;
    justify-self: right;
    margin-right: 50px;
    align-self: center;
}

.filter-monetary-bar .divider,
.filter-decimal-bar .divider,
.filter-int-bar .divider,
.filter-date-bar .divider,
.filter-string-bar .divider,
.filter-bool-bar .divider,
.filter-enum-bar .divider {
    grid-row: 2;
    grid-column: 1 / span 3;
    justify-self: center;
    align-self: center;
    width: 75%;
    height: 2px;
    background: linear-gradient(
        to right,
        white 0%,
        var(--middle-green) 25%,
        var(--middle-green) 50%,
        var(--middle-green) 75%,
        white 100%
    );
    margin-bottom: 50px;
}

.filter-monetary-bar .from-input,
.filter-decimal-bar .from-input,
.filter-int-bar .from-input,
.filter-date-bar .from-input {
    align-self: center;
    justify-self: center;
}

.filter-monetary-bar h3,
.filter-decimal-bar h3,
.filter-int-bar h3,
.filter-date-bar h3 {
    align-self: center;
    justify-self: center;
    font-size: 18pt;
    font-weight: 400;
    color: var(--middle-green);
}

.filter-monetary-bar .to-input,
.filter-decimal-bar .to-input,
.filter-int-bar .to-input,
.filter-date-bar .to-input {
    align-self: center;
    justify-self: center;
}

.filter-monetary-bar input,
.filter-decimal-bar input,
.filter-int-bar input,
.filter-date-bar input,
.filter-string-bar input {
    font-size: 18pt;
    background-color: var(--blue-background-gray);
    color: white;
    padding: 10px;
    border-radius: var(--common-border-radius);
    box-shadow: var(--common-box-shadow);
}

.input-container .dollar-sign {
    font-size: 22pt;
    margin-right: 15px;
}

.filter-string-bar input {
    margin-bottom: 50px;
}

.filter-bool-bar {
    display: grid;
    border-radius: var(--common-border-radius);
    box-shadow: var(--common-box-shadow);
    width: 90%;
    background-color: white;
    grid-template-columns: 1fr max-content 1fr;
    align-items: center;
    justify-items: center;
}

.filter-bool-bar .input-container {
    grid-column: 1 / span 3;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    align-items: center;
    justify-items: center;
    grid-column-gap: 100px;
}

.filter-bool-bar .input-container h3 {
    font-size: 24pt;
    font-weight: 400;
    color: var(--middle-green);
}

.filter-enum-bar .divider {
    margin-bottom: 25px;
}

.filter-enum-bar .custom-dropdown {
    grid-column: 1 / span 3;
    margin-bottom: 50px;
    justify-self: center;
}

.filter-enum-bar .rocker-switch {
    grid-column: 3;
    margin-bottom: 50px;
    justify-self: left;
    margin-left: 50px;
    display: none;
    opacity: 0;
}

.filter-enum-bar .remove-filter-button:hover {
    cursor: pointer;
}

.filter-enum-bar .tile-container {
    grid-column: 1 / span 3;
    padding: 0;
    width: 75%;
    justify-self: center;
    background-color: var(--blue-background-gray);
    display: grid;
    grid-gap: 25px;
    grid-template-columns: repeat(4, 1fr);
    border-radius: var(--common-border-radius);
    box-shadow: var(--common-box-shadow);
    margin-bottom: 0;
    height: 0;
    /*animation: padding 500ms ease, margin-bottom 500ms ease, height 500ms ease;*/
}

/*.filter-enum-bar .tile-container.is-open {*/
/*    padding: 25px;*/
/*    margin-bottom: 50px;*/
/*    height: 100px;*/
/*}*/

.filter-enum-bar .tile-container .option-tile {
    background-color: white;
    border-radius: var(--common-border-radius);
    box-shadow: var(--common-box-shadow);
    padding: 15px;
    display: grid;
    grid-template-columns: 1fr max-content 1fr;
}

.option-tile h2 {
    font-size: 18pt;
    font-weight: 400;
    color: var(--middle-green);
    grid-column: 2;
    justify-self: center;
    align-self: center;
}

.option-tile img {
    grid-column: 3;
    justify-self: right;
    margin-right: 10%;
    align-self: start;
}

.option-tile .remove-tile-button:hover {
    cursor: pointer;
}

.filter-splitter {
    display: grid;
    grid-template-rows: max-content;
    grid-template-columns: repeat(3, 1fr);
    width: 50%;
    justify-self: center;
    align-self: center;
    justify-items: center;
    margin-bottom: 50px;
}

.filter-splitter h1 {
    font-size: 28pt;
    font-weight: 500;
    color: var(--middle-green);
    margin: 0;
    padding: 0;
}

.filter-splitter .divider:first-of-type {
    height: 2px;
    align-self: center;
    width: 85%;
    justify-self: right;
    background: linear-gradient(
        to right,
        var(--light-gray) 0%,
        var(--light-gray) 25%,
        var(--middle-green) 50%
    );
}

.filter-splitter .divider:last-of-type {
    height: 2px;
    align-self: center;
    width: 85%;
    justify-self: left;
    background: linear-gradient(
        to right,
        var(--middle-green) 50%,
        var(--light-gray) 75%,
        var(--light-gray) 100%
    );
}

.filter-container:last-of-type {
    margin-bottom: 50px;
}

#results-container {
    width: 100%;
    display: none;
    opacity: 0;
    grid-column: 1;
    grid-row: 3;
    z-index: 50;
    justify-items: center;
    min-height: 300px;
}

#results-title-container {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

#results-title-container > h1 {
    font-size: 28pt;
    font-weight: 400;
    color: var(--middle-green);
    grid-column: 2;
    justify-self: center;
    align-self: center;
}

#results-pagination-container {
    grid-column: 3;
    justify-self: left;
    align-self: center;
    display: grid;
    grid-template-columns: repeat(2, max-content);
    grid-column-gap: 25px;
    align-items: center;
}

#results-pagination-container h2 {
    font-size: 18pt;
    font-weight: 400;
    color: var(--middle-green);
}

#results-tile-container {
    width: 100%;
    display: grid;
    justify-self: center;
    align-self: center;
}

.results-page {
    width: 100%;
    display: none;
    opacity: 0;
    justify-self: center;
    align-self: center;
    grid-row: 2;
    grid-column: 1;
    z-index: 10;
}

.results-tile {
    width: 90%;
    justify-self: center;
    background-color: white;
    border-radius: var(--common-border-radius);
    box-shadow: var(--common-box-shadow);
    padding: 10px;
    display: grid;
    grid-template-columns: 1fr max-content 4fr;
    margin-bottom: 50px;
    align-items: center;
    justify-items: center;
}

.results-tile:hover {
    cursor: pointer;
}

.results-tile > img {
    grid-row: 1;
    grid-column: 1;
    z-index: 5;
}

.results-tile .vertical-divider {
    grid-row: 1;
    grid-column: 2;
    z-index: 5;
    width: 2px;
    height: 75%;
    background: linear-gradient(
        to bottom,
        white 0%,
        var(--middle-green) 25%,
        var(--middle-green) 50%,
        var(--middle-green) 75%,
        white 100%
    );
}

.results-tile > h2 {
    grid-row: 1;
    grid-column: 3;
    z-index: 5;
    font-size: 24pt;
    font-weight: 400;
    color: var(--middle-green);
    text-align: center;
}

.results-tile-overlay {
    grid-row: 1;
    grid-column: 1 / span 3;
    z-index: 10;
    background-color: rgba(0, 0, 0, 0.6);
    display: none;
    justify-items: center;
    align-items: center;
    opacity: 0;
    width: 100%;
    height: 100%;
    padding: 10px;
    border-radius: var(--common-border-radius);
}

.results-tile-overlay h2 {
    font-size: 24pt !important;
    font-weight: 500 !important;
    color: white !important;
}

#pagination-page-select {
    background-color: white;
    border-radius: var(--common-border-radius);
    box-shadow: var(--common-box-shadow);
    padding: 10px;
    display: grid;
    grid-template-columns: auto;
    width: max-content;
    min-width: 35%;
    justify-items: center;
    align-items: center;
    margin-bottom: 50px;
}

#pagination-page-select > h2 {
    font-size: 18pt;
    font-weight: 400;
    user-select: none;
}

#pagination-page-select > h2:not(.noclick):hover {
    cursor: pointer;
}

#pagination-page-select > h2.active {
    font-size: 22pt;
    font-weight: 500;
    color: var(--middle-green);
}

#pagination-page-select button {
    margin-top: 25px;
    font-size: 22pt;
    font-weight: 400;
    border-radius: var(--common-border-radius);
    box-shadow: var(--common-box-shadow);
    padding: 10px;
    text-align: center;
    justify-self: center;
    align-self: center;
    border: none;
    background-color: white;
    color: var(--middle-green);
}

#pagination-page-select button:hover {
    cursor: pointer;
    background-color: var(--middle-green);
    color: white;
}

#listing-info-agent-container {
    background-color: white;
    border-radius: var(--common-border-radius);
    width: 75%;
    justify-self: center;
    margin: 50px 0 50px 0;
}

#listing-info-agent-container h1 {
    font-size: 26pt;
    font-weight: 400;
    color: black;
    justify-self: center;
    text-align: center;
    margin: 0;
    padding: 0;
}

#listing-info-agent-container h2 {
    font-size: 24pt;
    font-weight: 400;
    justify-self: center;
    text-align: center;
    margin: 0;
    padding: 0;
}

#listing-info-agent-container h3 {
    font-size: 22pt;
    font-weight: 400;
    justify-self: center;
    text-align: center;
    margin: 0;
    padding: 0;
}

#listing-info-agent-container .divider {
    margin: 25px 0 25px 0;
    background: linear-gradient(
        to right,
        white 0%,
        black 25%,
        black 50%,
        black 75%,
        white 100%
    );
}

.listing-info-detail-tile {
    width: 90%;
    border-radius: var(--common-border-radius);
    justify-self: center;
    background-color: white;
    display: grid;
    grid-template-columns: 2fr max-content 4fr;
    margin-bottom: 50px;
}

.listing-info-detail-tile h1 {
    padding: 10px;
    font-size: 26pt;
    font-weight: 500;
    color: var(--middle-green);
    justify-self: center;
    align-self: center;
}

.listing-info-detail-tile h2 {
    font-size: 22pt;
    font-weight: 400;
    color: var(--middle-green);
    justify-self: center;
    align-self: center;
}

.listing-info-detail-tile .vertical-divider {
    width: 2px;
    height: 75%;
    background: linear-gradient(
        to bottom,
        white 0%,
        var(--middle-green) 25%,
        var(--middle-green) 50%,
        var(--middle-green) 75%,
        white 100%
    );
    justify-self: center;
    align-self: center;
}

/* Only show this if the property is a lease */
.listing-info-detail-tile.rent-includes {
    display: none;
}

@media (max-width: 1100px) {
    #filter-bar {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: repeat(5, auto);
    }

    #filter-bar h2 {
        grid-row: 1;
        grid-column: 1 / span 2;
    }

    #filter-bar .vertical-divider {
        width: 75%;
        height: 2px;
        grid-row: 2;
        grid-column: 1 / span 2;
    }

    #filter-bar .custom-dropdown {
        grid-row: 3;
        grid-column: 1 / span 2;
    }

    #add-filter-add-button {
        grid-column: 1 / span 2;
        grid-row: 4;
    }

    #add-filter-and-button {
        grid-row: 4;
        grid-column: 1;
    }

    #add-filter-or-button {
        grid-row: 4;
        grid-column: 2;
    }

    #filter-submit-container {
        grid-row: 5;
        grid-column: 1 / span 2;
    }

    #filter-submit-button {
        margin-right: 50px;
    }

    #filter-clear-button {
        margin-left: 50px;
    }

    .filter-monetary-bar .input-container,
    .filter-decimal-bar .input-container,
    .filter-int-bar .input-container,
    .filter-date-bar .input-container {
        grid-template-columns: auto;
        grid-row: 3;
        grid-column: 1 / span 3;
    }

    .filter-enum-bar .tile-container {
        grid-template-columns: auto;
    }

    #results-title-container {
        grid-template-columns: auto;
    }

    #results-title-container > h1 {
        grid-column: 1;
        grid-row: 1;
    }

    #results-pagination-container {
        grid-column: 1;
        grid-row: 2;
        justify-self: center;
        margin-bottom: 50px;
    }
}
