:root {
    --dark-blue: #1F2945;
    --dark-brown: #635447;
    --dark-background: #35453c;
    --turquoise: #144f76;
}

/* DISCLAIMER */
.disclaimer {
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;

    &::before {
        content: '';
        position: absolute;
        z-index: -1;
        inset: 0;
        width: 100%;
        height: 100%;
        background-color: #35453Ce6;
        opacity: .75;
    }
}

.disclaimer .disclaimer_container {
    background: #fff;
    max-width: 900px;
    padding: 60px;
    text-align: center;
}

.disclaimer .disclaimer_container h2 {
    font-weight: 400;
    line-height: 1.25;
    color: #35453c;
}

.disclaimer .disclaimer_container p {
    line-height: 1.2;
    сolor: var(--dark-background);
}

button.disclaimer_close {
    border: solid 2px #904c40;
    background: 0 0;
    padding: 20px 38px 18px 38px;
    margin-block-start: 30px;
    text-transform: uppercase;
    color: #904c40;
    font-weight: 600;
    font-size: 16px;
    cursor: pointer;
    transition: all .3s ease-in-out;
}

button.disclaimer_close:hover {
    background: #904c40;
    color: #fff;
}

/* IMAGE MAP */
.interactive_map_container {
    position: relative;
    /*overflow-x: hidden;*/
}

html, body {
    &:has(.interactive_map_container) {
        overflow-x: hidden;

        ::-webkit-scrollbar {
            width: 8px;
            background: rgba(0, 0, 0, 0.2);
        }

        ::-webkit-scrollbar-thumb {
            background: rgba(0, 0, 0, .4);
            border-radius: 4px;
        }

        * {
            scrollbar-width: thin;
            scrollbar-color: rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.2);
        }
    }
}

.interactive_map {
    position: relative;
    background-size: 100%;
    background-repeat: no-repeat;
    display: grid;
    transition: transform 0.2s ease-in-out;
    min-width: 767px;
}

.interactive_map > div {
    grid-column: 1/2;
    grid-row: 1/2;
}

.interactive-map-error {
    padding: 30px;
}

.interactive_map.on_overlay {
    background-image: unset;
}

.interactive_map.on_overlay.on_map_overlay .locations_pins > img.interactive_map_image {
    height: 0;
}

.inner_map_image, .interactive_map_image {
    display: block;
    width: 100%;
    visibility: hidden;
    opacity: 0;
}

.inner_map_image--nested {
    display: none;
}

.interactive_map.on_overlay.on_gallery_overlay,
.im_overlay.map.on_overlay.on_gallery_overlay {
    max-height: calc(100vh - 60px);
    background-size: cover;
}

.interactive_map:not(.on_overlay) .locations_overlays {
    visibility: hidden;
}

.interactive_map.on_gallery_overlay ~ .zoom_options {
    visibility: hidden;
    opacity: 0;
}

.interactive_map ~ .zoom_options {
    position: absolute;
    top: 20px;
    left: 20px;
    width: 45px;
    height: 90px;
    z-index: 99;
    transition: all .2s ease-in-out;
}

.interactive_map ~ .zoom_options > div {
    width: 100%;
    height: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    box-shadow: inset 0px 0px 10px 0px #0000;
    border: solid 1px #C7C7C7;
    cursor: pointer;
    transition: all .2s ease-in-out;
}

.interactive_map ~ .zoom_options > div:first-child {
    border-bottom-width: 0;
}

.interactive_map ~ .zoom_options > div:hover {
    box-shadow: inset 0px 0px 20px 0px #0003;
}

.interactive_map ~ .zoom_options i {
    color: var(--turquoise);
}


/* PIN LOCATION */
.interactive_map.on_overlay .locations_pins {
    opacity: 0;
    visibility: hidden;
}

.pin_location {
    z-index: 10;
    aspect-ratio: 1;
    width: 1.8em;
    position: absolute;
    transform: translate(-50%, -50%);
    transform-origin: top left;
    transition: transform 0.2s ease-in-out;

    &::before {
        content: '';
        display: block;
        position: absolute;
        top: -5px;
        left: -5px;
        width: calc(100% + 10px);
        aspect-ratio: 1;
        background-color: var(--icon-color);
        border-radius: 50%;
        opacity: 0;
        transition: all .3s ease;
    }

    &:hover {
        &::before {
            opacity: .6;
        }
    }

    &.small_pin {
        width: 1.8em;
    }

    &.medium_pin {
        width: 2.4em;
    }

    &.large_pin {
        width: 2.8em;
    }

    &.pin_main {
        z-index: 3;
        width: 3em;
    }
}

.pin_location > .icon {
    position: absolute;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background-color: var(--icon-color);
    cursor: pointer;
    z-index: 2;
    box-shadow: 0px 0px 6px 1px #0004;
}

.pin_location > .icon > img {
    width: 55%;
    height: 55%;
    z-index: 3;
}

.pin_location > .icon > img.hide {
    display: none;
}

.pin_location.pin_main > .icon::before {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    border: solid 3px var(--icon-color);
    border-radius: 50%;
    opacity: 1;
    visibility: visible;
    transition: opacity .3s ease-out, visibility .3s ease-out;
    animation: pulse 3s ease-out infinite;
}

.initialized .pin_location.pin_main > .icon::before {
    opacity: 0;
    visibility: hidden;
}

@keyframes pulse {
    0% {
        transform: scale(0.9);
        opacity: 1;
    }
    100% {
        transform: scale(1.5);
        opacity: 0;
    }
}

/* CTA MESSAGE */

.cta_box {
    font-size: 15px;
    position: absolute;
    background: #496488;
    top: 50%;
    right: calc(3em + 40px);
    transform: translateY(-50%);
    min-width: 180px;
    padding: 20px;
    text-align: center;
    line-height: 1.3em;
    font-family: 'petersburg-web';
    color: #fff;
    box-shadow: 0px 0px 6px 1px #0004;
    opacity: 1;
    visibility: visible;
    transition: all .3s;

    &::after {
        content: '';
        position: absolute;
        width: 21px;
        height: 28px;
        right: -20px;
        top: 50%;
        transform: translateY(-50%);
        background: #496488;
        clip-path: polygon(0 0, 100% 50%, 0 100%);
    }
}

.cta_box.cta_box--right {
    right: auto;
    left: calc(3em + 40px);

    &::after {
        right: auto;
        left: -20px;
        clip-path: polygon(100% 0, 0 50%, 100% 100%);
    }
}

.initialized .cta_box {
    opacity: 0;
    visibility: hidden;
}

/* MODAL */
.modal {
    position: absolute;
    display: grid;
    background: #fff;
    min-width: 280px;
    box-shadow: 0px 0px 21px -12px #0009;
    z-index: 1;
    opacity: 0;
    visibility: hidden;
    background-color: #eae3d3;
}

.modal.top {
    bottom: 50%;
}

.modal.left {
    right: 50%;
}

.modal.right {
    left: 50%;
}

.modal.bottom {
    top: 50%;
}

.modal.outRight {
    left: unset !important;
    right: 50% !important;
}

.modal.outLeft {
    right: unset !important;
    left: 50% !important;
}

.modal.outTop {
    bottom: unset !important;
    top: 50% !important;
}

.modal.outBottom {
    top: unset !important;
    bottom: 50% !important;
}

.modal.open {
    opacity: 1;
    visibility: visible;
}

.modal img {
    width: 100%;
    max-height: 300px;
    object-fit: cover;
}

.modal > .content {
    padding-top: 15px;
}

.modal_excerpt {
    line-height: 1.2em;
    font-size: 14px;
    padding: 0 15px;
    margin-bottom: 20px;
}

.modal h3 {
    font-size: 18px;
    line-height: 1.2;
    font-family: 'petersburg-web', serif !important;
    padding: 0 15px 0;
    margin-bottom: 15px;
    color: #3E6F49;
}

.modal a {
    text-transform: uppercase;
    margin-top: 20px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    text-align: center;
    padding: 10px;
    display: block;
    cursor: pointer;
    color: #fff;
    background-color: rgba(73, 135, 89, 1);
    transition: all .3s ease;

    &:hover {
        background-color: rgba(73, 135, 89, 0.8);
    }
}

/* OVERLAY */
.im_overlay {
    width: 100%;
    top: 0;
    left: 0;
    opacity: 0;
    visibility: hidden;
}

.im_overlay.gallery {
    position: absolute;
    height: 100%;
}

.im_overlay.map {
    display: grid;
    background-size: contain;
    background-repeat: no-repeat;
    height: 0;
}

.im_overlay.open {
    opacity: 1;
    visibility: visible;
}

.im_overlay.map.open {
    height: auto;
}

button.backtosite,
button.backtoinnermap {
    padding: 15px 24px 12px 24px;
    top: 40px;
    right: 30px;
    position: absolute;
    background: #fff;
    border: none;
    color: var(--dark-blue);
    box-shadow: 0 0 15px -5px #0009;
    text-transform: uppercase;
    cursor: pointer;
    z-index: 9;
    transition: all .3s ease;

    &:hover {
        color: #fff;
        background: #498759;
    }
}

button.backtosite.darkmode,
button.backtoinnermap.darkmode {
    background: var(--dark-blue);
    color: #fff;
    box-shadow: 0 0 15px -5px #fff9;

    &:hover {
        background: var(--dark-background);
    }
}

button.backtosite i,
button.backtoinnermap i {
    margin-inline-start: 10px;
}

.gallery_item {
    position: absolute;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    visibility: hidden;
    opacity: 0;
    transition: opacity .2s ease-in-out, visibility .2s ease-in-out;
    transition-delay: .2s;
    z-index: 1;
}

.im_overlay.open .gallery_item.active {
    visibility: visible;
    opacity: 1;
    transition-delay: 0s;
    z-index: 2;
}

.gallery_item > span {
    position: absolute;
    width: 100%;
    height: 50%;
    bottom: -0.1em;
    left: 0;
}

.gallery_content {
    position: absolute;
    width: calc(50% - 100px);
    bottom: 50px;
    left: 30px;
}

.gallery_content .title, .gallery_content .description {
    color: #fff;
}

.gallery_item[data-darkmode='1'] .gallery_content .title, .gallery_item[data-darkmode='1'] .gallery_content .description {
    color: var(--dark-blue);
}

.gallery_slider_container {
    position: absolute;
    bottom: 50px;
    right: 50px;
    width: calc(50% - 60px);
    max-width: 720px;
    z-index: 9;

    &:has(+ .gallery_item.active) .mv_control.next {
        opacity: .3;
    }
}

.im_overlay.gallery {
    &:has(.gallery_item.active+.backtosite) .mv_control.previous {
        opacity: .3;
    }
}

.gallery_slider {
    overflow: hidden;
}

.gallery_slider_carrousel {
    display: inline-flex;
    height: 120px;
    transition: all .3s ease-in-out;
    gap: 10px;
    padding: 5px;
}

.gallery_slider img {
    max-width: unset;
    height: 100%;
    object-fit: cover;
    flex-shrink: 0;
    cursor: pointer;
}

.gallery_slider_container .gallery_slider img.active {
    outline: solid 5px #CAD9D6;
}

.gallery_slider_container.darkmode .gallery_slider img.active {
    outline: solid 5px var(--dark-blue);
}

span.gallery_slider_control {
    position: absolute;
    width: 25px;
    height: 25px;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    background-size: contain;
    background-repeat: no-repeat;
}

.gallery_slider_container span.gallery_slider_control.previous {
    left: -40px;
    background-image: url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 50 50'%3E%3Cg%3E%3Cpath fill='%23fff' d='M16.8,25c2,2.2,4.1,4.4,6.1,6.6c4.7,5.1,9.3,10.2,14,15.3c1,1.2,0.8,2.6-0.6,3.1c-0.8,0.3-1.4,0-1.9-0.5 c-1-1-1.9-2-2.9-3c-3.6-3.9-7.1-7.7-10.7-11.6c-2.5-2.8-5.1-5.5-7.6-8.3c-0.9-1-1-1.9,0-2.9c3-3.3,6.1-6.6,9.1-9.9 c4-4.3,8-8.7,12-13c1.1-1.2,2.7-0.8,3.1,0.6c0.2,0.7-0.1,1.3-0.5,1.9c-2.2,2.4-4.4,4.8-6.7,7.2c-4.4,4.8-8.8,9.6-13.3,14.4 C16.9,24.8,16.9,24.9,16.8,25z'/%3E%3C/g%3E%3C/svg%3E%0A");
    transition: filter 0.3s ease-in-out;

    &:hover {
        filter: brightness(0.9);
    }
}

.gallery_slider_container span.gallery_slider_control.next {
    right: -30px;
    background-image: url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 50 50'%3E%3Cg%3E%3Cpath fill='%23fff' d='M33.2,25c-2-2.2-4.1-4.4-6.1-6.6c-4.7-5.1-9.3-10.2-14-15.3c-1-1.2-0.8-2.6,0.6-3.1c0.8-0.3,1.4,0,1.9,0.5 c1,1,1.9,2,2.9,3c3.6,3.9,7.1,7.7,10.7,11.6c2.5,2.8,5.1,5.5,7.6,8.3c0.9,1,1,1.9,0,2.9c-3,3.3-6.1,6.6-9.1,9.9c-4,4.3-8,8.7-12,13 c-1.1,1.2-2.7,0.8-3.1-0.6c-0.2-0.7,0.1-1.3,0.5-1.9c2.2-2.4,4.4-4.8,6.7-7.2c4.4-4.8,8.8-9.6,13.3-14.4 C33.1,25.2,33.1,25.1,33.2,25z'/%3E%3C/g%3E%3C/svg%3E%0A");
    transition: filter 0.3s ease-in-out;

    &:hover {
        filter: brightness(0.9);
    }
}

.gallery_slider_container.darkmode span.gallery_slider_control.previous {
    background-image: url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 50 50'%3E%3Cg%3E%3Cpath fill='%23144f76' d='M16.8,25c2,2.2,4.1,4.4,6.1,6.6c4.7,5.1,9.3,10.2,14,15.3c1,1.2,0.8,2.6-0.6,3.1c-0.8,0.3-1.4,0-1.9-0.5 c-1-1-1.9-2-2.9-3c-3.6-3.9-7.1-7.7-10.7-11.6c-2.5-2.8-5.1-5.5-7.6-8.3c-0.9-1-1-1.9,0-2.9c3-3.3,6.1-6.6,9.1-9.9 c4-4.3,8-8.7,12-13c1.1-1.2,2.7-0.8,3.1,0.6c0.2,0.7-0.1,1.3-0.5,1.9c-2.2,2.4-4.4,4.8-6.7,7.2c-4.4,4.8-8.8,9.6-13.3,14.4 C16.9,24.8,16.9,24.9,16.8,25z'/%3E%3C/g%3E%3C/svg%3E%0A");

    &:hover {
        filter: brightness(1.5);
    }
}

.gallery_slider_container.darkmode span.gallery_slider_control.next {
    background-image: url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 50 50'%3E%3Cg%3E%3Cpath fill='%23144f76' d='M33.2,25c-2-2.2-4.1-4.4-6.1-6.6c-4.7-5.1-9.3-10.2-14-15.3c-1-1.2-0.8-2.6,0.6-3.1c0.8-0.3,1.4,0,1.9,0.5 c1,1,1.9,2,2.9,3c3.6,3.9,7.1,7.7,10.7,11.6c2.5,2.8,5.1,5.5,7.6,8.3c0.9,1,1,1.9,0,2.9c-3,3.3-6.1,6.6-9.1,9.9c-4,4.3-8,8.7-12,13 c-1.1,1.2-2.7,0.8-3.1-0.6c-0.2-0.7,0.1-1.3,0.5-1.9c2.2-2.4,4.4-4.8,6.7-7.2c4.4-4.8,8.8-9.6,13.3-14.4 C33.1,25.2,33.1,25.1,33.2,25z'/%3E%3C/g%3E%3C/svg%3E%0A");

    &:hover {
        filter: brightness(1.5);
    }
}

/*NESTED INNER MAP*/
.nested_inner_map {
    /*position: absolute;*/
    position: relative;
    z-index: 30;
    width: 100%;
    height: 100%;
    background-size: cover;
}

.nested_inner_map.open {
    visibility: visible;
    opacity: 1;
    height: 100%;
    background-size: cover;
}

.nested_inner_map.open .locations_pins {
    opacity: 1;
    visibility: visible;
    position: absolute;
    width: 100%;
    height: 100%;
}

.nested_inner_map.open .locations_pins .nested_item {
    display: block;
}

/*NESTED GALLERY*/
.nested_gallery.open {
    z-index: 30;
}

/*NESTED OVERLAY*/
.nested_image {
    display: none;
    /*position: absolute;*/
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
    z-index: 30;
    visibility: hidden;
    opacity: 0;
}

.nested_image.open {
    display: block;
    visibility: visible;
    opacity: 1;
}

.nested_image img {
    /*position: absolute;*/
    width: 100%;
    height: 100%;

}

/*Overlay footer fix*/
#main-content:has(.interactive_map_container) + footer .et_builder_inner_content {
    z-index: initial;
}

#main-content:has(.interactive_map_container) {
    position: relative;
    z-index: 10;
}

@media (max-width: 980px) {
    .disclaimer .disclaimer_container {
        max-width: 90%;
        padding: 2em;
    }

    .pin_location {
        width: 1.6em;

        &.small_pin {
            width: 1.4em;
        }

        &.medium_pin {
            width: 2em;
        }

        &.large_pin,
        &.pin_main {
            width: 2.3em;
        }
    }
}

@media (min-width: 768px) {
    .mv_control {
        display: none;
    }

    .modal {
        min-width: 250px;
    }
}

@media (max-width: 767px) {
    .disclaimer .disclaimer_container {
        max-width: 90vw;
        margin: 5vw 0;
    }

    .interactive_map_container {
        display: flex;
        justify-content: center;
    }

    .gallery_content {
        width: calc(100% - 60px);
    }

    .gallery_slider_container > .gallery_slider, .gallery_slider_control:not(.mv_control) {
        display: none;
    }

    .interactive_map.on_overlay.on_gallery_overlay,
    .im_overlay.map.on_overlay.on_gallery_overlay {
        min-width: 100%;
        min-height: 600px;
        top: 0 !important;
        left: 0 !important;
    }

    .im_overlay.map.on_overlay.on_gallery_overlay {
        position: relative;
        background-size: cover;
        min-width: 100%;
    }

    .gallery_item > span {
        height: 60%;
    }

    .gallery_content .description {
        line-height: 1.5em;
    }

    .gallery_item {
        animation: slideBg 20s infinite linear;
    }

    .gallery_slider_container {
        width: 100%;
        right: 0;
        bottom: 65%;
    }

    span.mv_control.gallery_slider_control {
        /*opacity: 1 !important;*/
        filter: drop-shadow(2px 4px 6px #000);
        width: 35px;
        height: 35px;
    }

    span.mv_control.gallery_slider_control.next {
        right: 1em;
    }

    span.mv_control.gallery_slider_control.previous {
        left: 1em;
    }

    .modal {
        min-width: 260px;
    }
}

@media (max-width: 480px) {
    .modal {
        min-width: 240px;
    }
}

@keyframes slideBg {
    0% {
        background-position: 0%;
    }
    50% {
        background-position: 100%;
    }
    100% {
        background-position: 0%;
    }
}