/* DISCLAIMER */
.disclaimer {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #144f76e6;
    z-index: 9999;
}
.disclaimer .disclaimer_container {
    background: #fff;
    max-width: 900px;
    padding: 60px;
    text-align: center;
}
.disclaimer .disclaimer_container h2 {
    color: #144f76;
}
.disclaimer .disclaimer_container p {
    line-height: 1.2em;
}
button.disclaimer_close {
    border: solid 1px #144f76;
    background: 0 0;
    padding: 20px 38px 18px 38px;
    margin-block-start: 30px;
    text-transform: uppercase;
    color: #144f76;
    font-size: 16px;
    cursor: pointer;
    transition: all .3s ease-in-out;
}
button.disclaimer_close:hover {
    background: #144f76;
    color: #fff;
}

/* IMAGE MAP */
.interactive_map_container {
    overflow: hidden;
}
.interactive_map {
    position: relative;
    background-size: contain;
    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;
}
.interactive_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: #144f76;    
}


/* PIN LOCATION */
.interactive_map.on_overlay .locations_pins {
    opacity: 0;
    visibility: hidden;
}
.pin_location {
    position: absolute;
    width: 2em;
    height: 2em;
    transform: translate(-50%, -50%);
    transform-origin: top left;
    transition: transform 0.2s ease-in-out;
}
.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 {
    max-width: 1em;
    max-height: 1.2em;
    z-index: 3;
}
.pin_location>.icon>img.hide {
    display: none;
}
.pin_location.pin_bigger {
    width: 3em;
    height: 3em;
}
.pin_location.pin_bigger>.icon>img {
    max-width: 1.5em;
    max-height: 1.3em;
}
.pin_location.pin_bigger>.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_bigger>.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 {
    position: absolute;
    background: #144f76;
    top: 50%;
    right: calc(3em + 40px);
    transform: translateY(-50%);
    min-width: 160px;
    padding: 20px;
    line-height: 1.3em;
    font-family: 'petersburg-web';
    color: #fff;
    box-shadow: 0px 0px 6px 1px #0004;
    opacity: 1;
    visibility: visible;
    transition: all .3s;
}
.cta_box::after {
    content: '';
    position: absolute;
    width: 21px;
    height: 28px;
    right: -21px;
    top: 50%;
    transform: translateY(-50%);
    background: #144F76;
    clip-path: polygon(0 0, 100% 50%, 0 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;
}
.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>.content {
    padding: 15px 15px 20px 15px;
}
.modal_excerpt {
    line-height: 1.2em;
    font-size: 14px;
}
.modal h3 {
    font-size: 18px;
    font-family: 'petersburg-web', serif !important;
    padding-bottom: 0;
    color: var(--icon-color);
}
.modal a {
    text-transform: uppercase;
    margin-top: 10px;
    font-size: 14px;
    display: inline-block;
    cursor: pointer;
    color: var(--icon-color);
}

/* 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 {
    padding: 15px 24px 12px 24px;
    top: 40px;
    right: 30px;
    position: absolute;
    background: #fff;
    border: none;
    color: #144f76;
    box-shadow: 0 0 15px -5px #0009;
    text-transform: uppercase;
    cursor: pointer;
    z-index: 9;
}
button.backtosite.darkmode {
    background: #144f76;
    color: #fff;
    box-shadow: 0 0 15px -5px #fff9;
}
button.backtosite 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: #144f76;
}
.gallery_slider_container {
    position: absolute;
    bottom: 50px;
    right: 50px;
    width: calc(50% - 60px);
    max-width: 720px;
    z-index: 9;
}
.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 #144f76;
}
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");
}
.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");
}
.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");
}
.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");
}

@media (max-width: 980px) {
    .disclaimer .disclaimer_container {
        max-width: 90%;
        padding: 2em;
    }
    .pin_location {
        width: 1.6em;
        height: 1.6em;
    }
    .pin_location.pin_bigger {
        width: 2.3em;
        height: 2.3em;
    }
    .pin_location.pin_bigger>.icon>img {
        max-width: 1.3em;
        height: 1.2em;
    }
    .pin_location>.icon>img {
        max-width: 0.8em;
        max-height: 0.7em;
    }
}
@media (min-width:768px) {
    .mv_control { display: none; }
}
@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 {
        min-width: 100%;
        min-height: 600px;
        top: 0 !important;
        left: 0 !important;
    }
    .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; }
}
@keyframes slideBg {
    0% { background-position: 0%; }
    50% { background-position: 100%; }
    100% { background-position: 0%; }
}