.elementor-3881 .elementor-element.elementor-element-8517822{--display:flex;--min-height:620px;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--overflow:hidden;--border-radius:28px 28px 28px 28px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3881 .elementor-element.elementor-element-26b2fe2{--display:flex;--min-height:120px;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;--gap:20px 20px;--row-gap:20px;--column-gap:20px;--border-radius:28px 28px 0px 0px;--padding-top:30px;--padding-bottom:30px;--padding-left:42px;--padding-right:42px;}.elementor-3881 .elementor-element.elementor-element-26b2fe2:not(.elementor-motion-effects-element-type-background), .elementor-3881 .elementor-element.elementor-element-26b2fe2 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-3881 .elementor-element.elementor-element-0c2b0d3{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:8px 8px;--row-gap:8px;--column-gap:8px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3881 .elementor-element.elementor-element-fab87e9{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;}.elementor-3881 .elementor-element.elementor-element-fab87e9 .elementor-heading-title{font-size:28px;font-weight:700;color:var( --e-global-color-primary );}.elementor-3881 .elementor-element.elementor-element-ecbcefe{--display:flex;--min-height:415px;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:stretch;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--overflow:hidden;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3881 .elementor-element.elementor-element-b019a3b{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;}.elementor-3881 .elementor-element.elementor-element-d950351{--display:flex;--position:absolute;--min-height:205px;--gap:6px 6px;--row-gap:6px;--column-gap:6px;--border-radius:22px 22px 22px 22px;--padding-top:22px;--padding-bottom:22px;--padding-left:22px;--padding-right:22px;top:260px;--z-index:500;}.elementor-3881 .elementor-element.elementor-element-d950351:not(.elementor-motion-effects-element-type-background), .elementor-3881 .elementor-element.elementor-element-d950351 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#263637;}body:not(.rtl) .elementor-3881 .elementor-element.elementor-element-d950351{left:33px;}body.rtl .elementor-3881 .elementor-element.elementor-element-d950351{right:33px;}.elementor-3881 .elementor-element.elementor-element-593ee36 .elementor-heading-title{font-size:10px;font-weight:600;letter-spacing:2px;color:#9DB3B0;}.elementor-3881 .elementor-element.elementor-element-08d3022{margin:5px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-3881 .elementor-element.elementor-element-08d3022 .elementor-heading-title{font-size:28px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:#FFFFFF;}.elementor-3881 .elementor-element.elementor-element-3f9b37c{--divider-border-style:solid;--divider-color:#49645F;--divider-border-width:1px;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;}.elementor-3881 .elementor-element.elementor-element-3f9b37c .elementor-divider-separator{width:100%;}.elementor-3881 .elementor-element.elementor-element-3f9b37c .elementor-divider{padding-block-start:15px;padding-block-end:15px;}.elementor-3881 .elementor-element.elementor-element-283a096{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:flex-start;--gap:10px 10px;--row-gap:10px;--column-gap:10px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3881 .elementor-element.elementor-element-65c4fd1{--display:flex;--min-height:41px;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;border-style:solid;--border-style:solid;border-width:1px 1px 1px 1px;--border-top-width:1px;--border-right-width:1px;--border-bottom-width:1px;--border-left-width:1px;border-color:#49645F;--border-color:#49645F;--border-radius:10px 10px 10px 10px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3881 .elementor-element.elementor-element-65c4fd1:not(.elementor-motion-effects-element-type-background), .elementor-3881 .elementor-element.elementor-element-65c4fd1 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#2B4945;}.elementor-3881 .elementor-element.elementor-element-65c4fd1.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-3881 .elementor-element.elementor-element-cde3110{background-color:#02010100;padding:8px 8px 8px 8px;}.elementor-3881 .elementor-element.elementor-element-cde3110 .elementor-icon-wrapper{text-align:center;}.elementor-3881 .elementor-element.elementor-element-cde3110 .elementor-icon{font-size:14px;}.elementor-3881 .elementor-element.elementor-element-cde3110 .elementor-icon svg{height:14px;}.elementor-3881 .elementor-element.elementor-element-122cb54{font-size:10px;font-weight:500;line-height:1.5em;color:#C5D3D1;}#elementor-popup-modal-3881 .dialog-widget-content{animation-duration:1.2s;background-color:#FFFFFF;border-radius:28px 28px 28px 28px;box-shadow:10px 35px 22px 0.25px rgba(10, 35, 31.999999999999993, 0.25);}#elementor-popup-modal-3881{background-color:rgba(0,0,0,.8);justify-content:center;align-items:center;pointer-events:all;}#elementor-popup-modal-3881 .dialog-message{width:960px;height:620px;align-items:flex-start;}#elementor-popup-modal-3881 .dialog-close-button{display:flex;top:7%;font-size:22px;}body:not(.rtl) #elementor-popup-modal-3881 .dialog-close-button{right:5%;}body.rtl #elementor-popup-modal-3881 .dialog-close-button{left:5%;}@media(min-width:768px){.elementor-3881 .elementor-element.elementor-element-8517822{--content-width:100%;}.elementor-3881 .elementor-element.elementor-element-26b2fe2{--width:100%;}.elementor-3881 .elementor-element.elementor-element-ecbcefe{--width:100%;}.elementor-3881 .elementor-element.elementor-element-d950351{--width:280px;}.elementor-3881 .elementor-element.elementor-element-65c4fd1{--width:41px;}}/* Start custom CSS for shortcode, class: .elementor-element-b019a3b *//* ==================================================
   CAMPUSBOOKING — MAPA DE LOCALIZAÇÃO APROXIMADA
================================================== */

.elementor-3881 .elementor-element.elementor-element-b019a3b,
.elementor-3881 .elementor-element.elementor-element-b019a3b .elementor-widget-container,
.elementor-3881 .elementor-element.elementor-element-b019a3b .cb-map-wrapper,
.elementor-3881 .elementor-element.elementor-element-b019a3b .cb-approx-map {
    width: 100%;
    height: 490px !important;
    min-height: 490px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

.elementor-3881 .elementor-element.elementor-element-b019a3b .cb-approx-map {
    background: #eef3f3;
}


/* ==================================================
   SUAVIZA AS CORES DO MAPA
================================================== */

.elementor-3881 .elementor-element.elementor-element-b019a3b .leaflet-tile-pane {
    filter:
        saturate(0.55)
        brightness(1.08)
        contrast(0.88);
}


/* ==================================================
   MARCADOR DA CASA
================================================== */

.elementor-3881 .elementor-element.elementor-element-b019a3b .cb-house-marker {
    display: flex;
    position: relative;
    align-items: center;
    justify-content: center;

    width: 58px;
    height: 58px;

    border: 4px solid #ffffff;
    border-radius: 50%;

    background: #1d3d39;
    color: #ffffff;

    animation:
        cb-house-pulse 2.2s ease-out infinite;
}


/* ==================================================
   ÍCONE HOUSE CAMPUS
================================================== */

.elementor-3881 .elementor-element.elementor-element-b019a3b .cb-house-marker::before {
    content: "";
    display: block;

    width: 27px;
    height: 27px;

    background-color: #ffffff;

    -webkit-mask-image:
        url("https://campusbooking.pt/wp-content/uploads/2026/07/housecampus.svg");

    mask-image:
        url("https://campusbooking.pt/wp-content/uploads/2026/07/housecampus.svg");

    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;

    -webkit-mask-position: center;
    mask-position: center;

    -webkit-mask-size: contain;
    mask-size: contain;
}


/*
 * Esconde qualquer ícone anterior que ainda
 * possa existir dentro do marcador.
 */
.elementor-3881 .elementor-element.elementor-element-b019a3b .cb-house-marker svg,
.elementor-3881 .elementor-element.elementor-element-b019a3b .cb-house-marker img {
    display: none !important;
}


/* ==================================================
   ANIMAÇÃO DE PULSO
================================================== */

@keyframes cb-house-pulse {
    0% {
        box-shadow:
            0 8px 24px rgba(24, 57, 53, 0.30),
            0 0 0 0 rgba(29, 61, 57, 0.42);
    }

    65% {
        box-shadow:
            0 8px 24px rgba(24, 57, 53, 0.30),
            0 0 0 24px rgba(29, 61, 57, 0);
    }

    100% {
        box-shadow:
            0 8px 24px rgba(24, 57, 53, 0.30),
            0 0 0 24px rgba(29, 61, 57, 0);
    }
}


/*
 * Desativa a animação quando o utilizador
 * prefere reduzir movimentos.
 */
@media (prefers-reduced-motion: reduce) {
    .elementor-3881 .elementor-element.elementor-element-b019a3b .cb-house-marker {
        animation: none;
        box-shadow:
            0 8px 24px rgba(24, 57, 53, 0.30);
    }
}


/* ==================================================
   REMOVE O FUNDO PADRÃO DO LEAFLET
================================================== */

.elementor-3881 .elementor-element.elementor-element-b019a3b .cb-house-div-icon {
    border: 0 !important;
    background: transparent !important;
}


/* ==================================================
   CONTROLOS DE ZOOM
================================================== */

.elementor-3881 .elementor-element.elementor-element-b019a3b .leaflet-control-zoom {
    overflow: hidden;

    border: 0 !important;
    border-radius: 12px !important;

    box-shadow:
        0 6px 20px rgba(24, 57, 53, 0.15) !important;
}

.elementor-3881 .elementor-element.elementor-element-b019a3b .leaflet-control-zoom a {
    color: #1d3d39 !important;
    border-color: #edf1f2 !important;
    background: rgba(255, 255, 255, 0.95) !important;
}

.elementor-3881 .elementor-element.elementor-element-b019a3b .leaflet-control-zoom a:hover {
    color: #ffffff !important;
    background: #1d3d39 !important;
}


/* ==================================================
   CRÉDITOS DO MAPA
================================================== */

.elementor-3881 .elementor-element.elementor-element-b019a3b .leaflet-control-attribution {
    font-size: 9px;
}


/* ==================================================
   TOOLTIP DA CIDADE
================================================== */

.elementor-3881 .elementor-element.elementor-element-b019a3b .leaflet-tooltip {
    padding: 8px 12px;

    border: 0;
    border-radius: 10px;

    color: #1d3d39;
    font-size: 12px;
    font-weight: 700;

    box-shadow:
        0 6px 18px rgba(24, 57, 53, 0.14);
}


/* ==================================================
   MENSAGEM SEM COORDENADAS
================================================== */

.elementor-3881 .elementor-element.elementor-element-b019a3b .cb-map-message {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 100%;
    height: 490px !important;
    min-height: 490px !important;

    margin: 0 !important;
    padding: 0 !important;

    color: #526866;
    background: #eef3f3;

    overflow: hidden !important;
}


/* ==================================================
   TABLET E TELEMÓVEL
================================================== */

@media (max-width: 767px) {
    .elementor-3881 .elementor-element.elementor-element-b019a3b,
    .elementor-3881 .elementor-element.elementor-element-b019a3b .elementor-widget-container,
    .elementor-3881 .elementor-element.elementor-element-b019a3b .cb-map-wrapper,
    .elementor-3881 .elementor-element.elementor-element-b019a3b .cb-approx-map,
    .elementor-3881 .elementor-element.elementor-element-b019a3b .cb-map-message {
        height: 440px !important;
        min-height: 440px !important;
    }

    .elementor-3881 .elementor-element.elementor-element-b019a3b .cb-house-marker {
        width: 52px;
        height: 52px;
    }

    .elementor-3881 .elementor-element.elementor-element-b019a3b .cb-house-marker::before {
        width: 24px;
        height: 24px;
    }

    @keyframes cb-house-pulse {
        0% {
            box-shadow:
                0 7px 20px rgba(24, 57, 53, 0.28),
                0 0 0 0 rgba(29, 61, 57, 0.42);
        }

        65% {
            box-shadow:
                0 7px 20px rgba(24, 57, 53, 0.28),
                0 0 0 20px rgba(29, 61, 57, 0);
        }

        100% {
            box-shadow:
                0 7px 20px rgba(24, 57, 53, 0.28),
                0 0 0 20px rgba(29, 61, 57, 0);
        }
    }
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-ecbcefe */.elementor-3881 .elementor-element.elementor-element-ecbcefe {
    position: relative;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-8517822 */.elementor-3881 .elementor-element.elementor-element-8517822 {
    overflow: hidden !important;
    border-radius: 28px;
}/* End custom CSS */