/* MAP */
.map {
    position: relative;
    height: calc(var(--screen-height, 100svh) - var(--top-bar-height, var(--top-bar-estimated-height)));
    background-color: var(--color-grey);
}

.mapboxgl-map {
    width: 100%;
    height: 100%;
    z-index: 1;
}

.map__next {
    opacity: 1;
}

.map__search {
    position: absolute;
    z-index: 2;
    left: 50%;
    top: var(--unit-100);
    transform: translateX(-50%);
    background-color: var(--color-white);
    border-radius: var(--border-radius-medium);
    padding: calc(var(--spacing-default) / 1.25) var(--spacing-default);
    width: calc(4.8 * var(--unit-100));
}

.map__search-options {
    display: flex;
}

.map__search-results span {

}

.map__search[data-active] .map__search-results {
    display: block;
    max-height: calc(2.5 * var(--unit-100));
    /* padding-top: var(--spacing-default); */
}

.map__search-results {
    flex-direction: column;
    overflow-y: auto;
    max-height: 0;
    transition: var(--transition);
}

/* .map__search-select-wrapper select {
    border: 0;
    outline: 0;
    width: 100%;
} */

.map__search-select-wrapper svg {
    right: 0 !important;
}

.map__search-input-wrapper svg {
    width: var(--unit-14);
    height: var(--unit-14);
}

.map__search-input-wrapper input {
    border: 0;
    outline: 0;
    width: 100%;
}

.map__search-input-wrapper input::placeholder {
    color: var(--color-grey-dark);
}

/* STAGES * FILTERS */

.map__stages-wrapper,
.map__filters-wrapper {
    position: absolute;
    z-index: 9;
    bottom: var(--unit-100);
    background-color: var(--color-white);
    height: calc(100% - 2 * var(--unit-100));
    width: calc(3.75 * var(--unit-100));
    border-radius: var(--border-radius-medium);
    overflow-y: auto;
    transition: var(--transition);

    opacity: 0;
    pointer-events: none;
}

.map__stages-wrapper {
    left: var(--grid-container-padding-x, .9375rem);
}

.map__filters-wrapper {
    right: var(--grid-container-padding-x, .9375rem);
}

.map__stages-wrapper[data-active],
.map__filters-wrapper[data-active] {
    opacity: 1;
    pointer-events: all;
}

.map__search-button {
    background-color: var(--color-white);
    border-radius: 100%;
    width: 3.224rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.map__search-button svg {
    width: var(--unit-18);
    height: var(--unit-18);
}

.map__filters-actions {
    position: sticky;
    bottom: 0;
    left: 0;
    width: 100%;
    height: var(--unit-80);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgb(255, 255, 255) 50%);
    padding: var(--spacing-default);
}

.button-toggle-stages:not([data-active]) svg,
.button-toggle-filters:not([data-active]) svg {
    transform: scaleY(-1);
}

.map__stage {
    background-color: red;
    height: 400px;
    margin-bottom: 2rem;
}

.stage__preview {
    width: var(--unit-60);
    height: var(--unit-60);
    aspect-ratio: 1;
    border-radius: var(--border-radius-medium);
    overflow: hidden;
    position: absolute;
    right: calc(var(--spacing-default) / 2);
    bottom: calc(var(--spacing-default) / 2);
    z-index: 2;
}

.filter__map-style[data-active] {
    color: var(--color-primary);
}

.filter__map-style[data-active] .filter__map-style-image {
    border: 1px solid var(--color-primary);
}

.filter__icon img,
.filter__icon svg {
    width: var(--unit-24);
    min-width: var(--unit-24);
    max-width: var(--unit-24);
    height: auto;
    max-height: var(--unit-24);
    fill: var(--color-black);
}

/* END STAGES & FILTERS */


/* GPX */

.gpx-map__information {
    padding: calc(1.5 * var(--spacing-default)) var(--spacing-default);
}

.box--map {
    padding: 0;
    gap: 0;
}

/* END GPX*/

.button-close {
    position: fixed;
    top: 0;
    right: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--unit-35);
    height: var(--unit-35);
    transform: translate(-25%, 25%);
    background-color: var(--color-white);
    color: var(--color-black);
    z-index: 9999;
    text-transform: uppercase;
    box-shadow: var(--box-shadow-grey-dark);
    border-radius: 50%;
}

.button-close svg {
    width: var(--unit-16);
    height: var(--unit-16);
}

/* LARGE ONLY */
@media (min-width: 64rem) {

    .map__search-select-wrapper,
    .map__search-input-wrapper {
        width: 50%;
    }

    .map__search-select-wrapper {
        margin-right: var(--spacing-default);
    }

    .map__search-input-wrapper {
        margin-left: var(--spacing-default);
    }


    .map__search-select-wrapper::after {
        content: '';
        position: absolute;
        right: calc(-1 * var(--spacing-default));
        top: 0;
        height: 100%;
        width: var(--unit-1);
        background-color: var(--color-grey);
    }

    /* .map__search-input-wrapper {
        margin-left: var(--spacing-default);
    } */

    .filter__map-style-image,
    .filter__map-style-name {
        transition: var(--transition);
    }

    .filter__map-style .filter__map-style-image {
        border: 1px solid transparent;
    }

    .filter__map-style:hover .filter__map-style-image {
        border-color: var(--color-primary);
    }

    .filter__map-style:hover .filter__map-style-name {
        color: var(--color-primary);
    }

    .region__name {
        text-align: center;
        max-width: calc(2 * var(--unit-100));
    }

    /* Fix for desktop scrollbar making page to "snap" as this page is 100vh */
    body.scroll-block {
        padding-right: unset;
    }
}

/* END LARGE ONLY */

/* SMALL ONLY */
@media (max-width: 63.9375rem) {

    .map__search:not([data-active]) {
        pointer-events: none;
        opacity: 0;
    }

    .map__search {
        width: calc(100% - (2* var(--grid-container-padding-x)));
        transition: var(--transition);
    }

    .map__search-options {
        flex-direction: column;
        gap: var(--spacing-default);
    }

    .map__search-select-wrapper::after {
        content: '';
        position: absolute;
        left: 0;
        bottom: calc(-1 * (var(--spacing-default) / 2));
        width: 100%;
        height: 1px;
        background-color: var(--color-grey);
    }

    .map__search-select-wrapper,
    .map__search-input-wrapper {
        height: var(--unit-30);
    }

    .map__stages-wrapper,
    .map__filters-wrapper {
        position: fixed;
        left: 0;
        top: 0;
        z-index: 9999;
        width: 100%;
        height: 100%;
    }

    .map__stages,
    .map__filters {
        padding-top: var(--unit-50);
    }
}

/* END MAP */
