/* Ajustes limitados ao header/footer existentes do Grupo. */
.c21-internal-page-shell,
#c21-internal-root {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    overflow-x: clip;
    overflow-y: visible;
}

/* O formulário de contacto já está integrado nas páginas. Mantemos apenas o botão de voltar ao topo. */
.contact-box {
    display: none !important;
}

/* Keep the approved property-card layout; all details now live on the official portal. */
.c21-official-property .c21-official-property-image { display: block; }
.c21-official-property .listing-unit-img-wrapper img { display: block; width: 100%; aspect-ratio: 525 / 328; height: auto; object-fit: cover; }
.c21-official-property h4 a { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.6em; }
.c21-official-property .property_listing_details { flex-wrap: wrap; }
.c21-official-property .property_location { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.c21-official-property .propery_price4_grid { float: none; }
.c21-official-property .c21-official-property-cta { display: inline-flex; align-items: center; min-height: 44px; color: #9c824b; font-size: 12px; font-weight: 600; white-space: nowrap; }

.c21-newsletter-consent {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 15px 0 0;
    color: #ccc;
    font-size: 12px;
    line-height: 1.5;
    text-align: left;
}
.c21-newsletter-consent input {
    flex: 0 0 auto;
    margin: 3px 0 0;
    accent-color: #ad996b;
}
.c21-form-note,
.c21-form-status {
    margin-top: 12px;
    font-size: 13px;
    line-height: 1.5;
}
#Footer_V1 .c21-form-status { color: #ddd; }
#Footer_V1 .c21-form-note { color: #ccc; }
.c21-form-note a { color: inherit !important; }
#Footer_V1 .elementor-icon-list-item a { color: #ddd !important; }
#Footer_V1 .elementor-icon-list-item a:hover,
#Footer_V1 .elementor-icon-list-item a:focus-visible { color: #c8b98d !important; }
.c21-form-status[data-error="true"] { color: #e47070 !important; }
.c21-form-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; }

/* Retratos oficiais da Joana e dos brokers no lugar dos testemunhos duplicados. */
#Agent-01 .c21-home-team-holder {
    width: 100% !important;
    max-width: none !important;
    padding: 0 20px !important;
}

#Agent-01 .c21-home-team-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
    width: min(100%, 1340px);
    margin: 0 auto;
}

#Agent-01 .c21-home-team-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    color: #171715;
    text-decoration: none;
}

#Agent-01 .c21-home-team-photo {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: #f3f0e9;
}

#Agent-01 .c21-home-team-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: var(--c21-portrait-position, 50% 0%);
    transform-origin: 50% 0%;
    transform: translate(var(--c21-portrait-x, 0%), var(--c21-portrait-y, 0%)) scale(var(--c21-portrait-scale, 1));
    transition: transform .5s ease;
}

#Agent-01 .c21-home-team-card:hover img,
#Agent-01 .c21-home-team-card:focus-visible img {
    transform: translate(var(--c21-portrait-x, 0%), var(--c21-portrait-y, 0%)) scale(calc(var(--c21-portrait-scale, 1) * 1.035));
}

/* Recortes de busto aprovados: mesmos ficheiros, escala e altura dos olhos próximas. */
#Agent-01 .c21-home-team-card--joana {
    --c21-portrait-scale: 2.45;
    --c21-portrait-y: -53%;
}
#Agent-01 .c21-home-team-card--cristina {
    --c21-portrait-scale: 1.8;
    --c21-portrait-position: 65% 0%;
    --c21-portrait-x: -4.5%;
}
#Agent-01 .c21-home-team-card--ricardo {
    --c21-portrait-scale: 1.08;
    --c21-portrait-y: -3.5%;
}

#Agent-01 .c21-home-team-city {
    margin-top: 18px;
    color: #ad996b;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .17em;
    text-transform: uppercase;
}

#Agent-01 .c21-home-team-name {
    margin-top: 5px;
    font-size: clamp(18px, 1.7vw, 25px);
    font-weight: 700;
    line-height: 1.15;
}

#Agent-01 .c21-home-team-role {
    margin-top: 6px;
    color: #6e6c67;
    font-size: 14px;
}

@media (max-width: 1024px) {
    #Agent-01 .c21-home-team-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 540px) {
    #Agent-01 .c21-home-team-holder {
        padding: 0 18px !important;
    }

    #Agent-01 .c21-home-team-grid {
        gap: 24px 12px;
    }

    #Agent-01 .c21-home-team-city {
        margin-top: 12px;
        font-size: 9px;
        line-height: 1.5;
        min-height: 27px;
    }

    #Agent-01 .c21-home-team-name {
        font-size: 17px;
    }

    #Agent-01 .c21-home-team-role {
        font-size: 12px;
    }
}

.elementor-location-header .c21-logo-link {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
}

.elementor-location-header .c21-logo-link img {
    display: block;
}

/* Official timeless wordmark: keep it legible without changing menu alignment. */
.elementor-location-header .elementor-element-dcae94d {
    width: 160px !important;
    min-width: 160px !important;
    flex-shrink: 0;
}
.elementor-location-header img.c21-brand-logo {
    width: 160px !important;
    max-width: 100% !important;
    height: auto !important;
    object-fit: contain;
}
#Footer_V1 img.c21-brand-logo {
    width: 260px !important;
    max-width: 100% !important;
    height: auto !important;
    object-fit: contain;
}
@media (min-width: 541px) and (max-width: 1024px) {
    .elementor-location-header .elementor-element-dcae94d {
        width: 120px !important;
        min-width: 120px !important;
    }
    .elementor-location-header img.c21-brand-logo { width: 120px !important; }
}

.page-template-c21-internal-full-width .elementor-location-header .elementor-element-4b4ab7e {
    background-color: #161616 !important;
}

.elementor-location-header .elementor-nav-menu--main .elementor-item {
    padding-right: 9px !important;
    padding-left: 9px !important;
}

.elementor-location-header .elementor-element-1428344 {
    display: flex !important;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    width: auto !important;
    max-width: none !important;
}

.elementor-location-header .c21-workspace-button {
    min-width: 154px;
    white-space: nowrap;
}

#Footer_V1 .c21-footer-map {
    display: inline-block;
    margin-top: 8px;
    color: #c8b98d !important;
    font-weight: 600;
    text-decoration: none;
}

/* Os contactos do footer vivem sobre fundo preto: manter o contraste dourado
   e reservar uma linha inteira para o nome de cada agência. */
#Footer_V1 .elementor-icon-box-title,
#Footer_V1 .elementor-icon-box-title span {
    white-space: nowrap !important;
    font-size: 17px !important;
    line-height: 1.2 !important;
    letter-spacing: -0.015em;
}

#Footer_V1 .elementor-icon-box-description a {
    color: #c8b98d !important;
    text-decoration: none;
}

#Footer_V1 .elementor-icon-box-description a:hover,
#Footer_V1 .elementor-icon-box-description a:focus {
    color: #fff !important;
    text-decoration: underline;
}

#Footer_V1 .c21-footer-map:hover,
#Footer_V1 .c21-footer-map:focus {
    color: #fff !important;
    text-decoration: underline;
}

/* Em tablet as três colunas deixam de ter espaço para os nomes completos.
   Empilhar os contactos, sem cortar texto nem esconder o excesso de largura. */
@media (max-width: 1279px) {
    #Footer_V1 {
        padding-right: 20px !important;
        padding-left: 20px !important;
    }

    #Footer_V1 .elementor-element-bdeff82 {
        width: 100% !important;
        max-width: none !important;
        padding-right: 0 !important;
        padding-left: 0 !important;
    }

    #Footer_V1 .elementor-element-bdeff82 > .e-con-inner {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 28px;
    }

    #Footer_V1 .elementor-element-bdeff82 > .e-con-inner,
    #Footer_V1 .elementor-element-90e31dd,
    #Footer_V1 .elementor-element-f93d630,
    #Footer_V1 .elementor-element-11dac55,
    #Footer_V1 .elementor-icon-box {
        width: 100% !important;
        max-width: none !important;
        min-width: 0;
    }

    #Footer_V1 .elementor-element-90e31dd,
    #Footer_V1 .elementor-element-f93d630,
    #Footer_V1 .elementor-element-11dac55 {
        padding-right: 0 !important;
        padding-left: 0 !important;
    }

    #Footer_V1 .elementor-element-6dc6d7c {
        width: 100% !important;
        max-width: 680px !important;
        align-self: center;
    }
}

@media (min-width: 1025px) {
    .elementor-location-header .elementor-element-f2064f5 {
        position: absolute !important;
        z-index: 3 !important;
        left: 50% !important;
        width: max-content !important;
        max-width: none !important;
        transform: translateX(-50%) !important;
    }
}

@media (max-width: 1024px) {
    .elementor-location-header .elementor-menu-toggle {
        color: #fff !important;
        min-width: 44px !important;
        min-height: 44px !important;
        align-items: center;
        justify-content: center;
    }
    .elementor-location-header .elementor-menu-toggle svg {
        fill: currentColor !important;
    }
    .elementor-location-header .elementor-element-1428344 {
        gap: 6px;
    }

    .elementor-location-header .elementor-element-1428344 .elementor-button {
        padding-right: 14px !important;
        padding-left: 14px !important;
        font-size: 12px !important;
    }
}

@media (max-width: 767px) {
    /* O afastamento negativo original das setas ultrapassava o ecrã em mobile. */
    [data-elementor-id="18618"] .elementor-element-1b20b86 .elementor-swiper-button-next {
        right: 0 !important;
        left: auto !important;
    }
    [data-elementor-id="18618"] .elementor-element-1b20b86 .elementor-swiper-button-prev {
        left: 0 !important;
        right: auto !important;
    }
    #Footer_V1 .elementor-element-bdeff82 {
        width: 100% !important;
        max-width: none !important;
        padding-right: 0 !important;
        padding-left: 0 !important;
    }

    #Footer_V1 .elementor-element-bdeff82 > .e-con-inner,
    #Footer_V1 .elementor-element-90e31dd,
    #Footer_V1 .elementor-element-f93d630,
    #Footer_V1 .elementor-element-11dac55,
    #Footer_V1 .elementor-element-59a5631,
    #Footer_V1 .elementor-element-e6305b1,
    #Footer_V1 .elementor-element-de0a750 {
        width: 100% !important;
        max-width: none !important;
    }

    #Footer_V1 .elementor-element-90e31dd,
    #Footer_V1 .elementor-element-f93d630,
    #Footer_V1 .elementor-element-11dac55 {
        min-width: 0;
        padding-right: 0 !important;
        padding-left: 0 !important;
    }

    #Footer_V1 .elementor-icon-box-title,
    #Footer_V1 .elementor-icon-box-title span {
        font-size: clamp(12px, 3.9vw, 14px) !important;
        letter-spacing: -0.025em;
    }

    #Footer_V1 .elementor-form-fields-wrapper {
        margin-right: 0 !important;
        margin-left: 0 !important;
        row-gap: 12px;
    }

    #Footer_V1 .elementor-form .elementor-field-group {
        width: 100% !important;
        padding-right: 0 !important;
        padding-left: 0 !important;
    }

    #Footer_V1 .elementor-form input[type="email"],
    #Footer_V1 .elementor-form button[type="submit"] {
        width: 100%;
        min-height: 44px;
    }

    .elementor-location-header .elementor-element-4b4ab7e {
        min-height: 70px !important;
        align-items: center !important;
        overflow: visible !important;
    }

    .elementor-location-header .elementor-element-dcae94d {
        width: 88px !important;
        min-width: 88px !important;
    }

    .elementor-location-header .elementor-element-dcae94d img {
        width: 88px !important;
        height: auto !important;
    }

    #Footer_V1 img.c21-brand-logo { width: 220px !important; }
    .elementor-location-header .c21-workspace-button { min-width: 120px; }

    .elementor-location-header .elementor-element-f2064f5 {
        position: static !important;
        width: auto !important;
        min-width: 34px !important;
    }

    .elementor-location-header .elementor-nav-menu--dropdown {
        position: absolute !important;
        z-index: 1001 !important;
        top: 100% !important;
        right: 0 !important;
        left: 0 !important;
        width: 100% !important;
        min-width: 100% !important;
        margin: 0 !important;
        border: 0 !important;
        background: #161616 !important;
        box-shadow: 0 16px 28px rgba(0, 0, 0, 0.24);
    }

    .elementor-location-header .elementor-nav-menu--dropdown .elementor-item {
        justify-content: flex-start !important;
        padding: 13px 22px !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
        background: transparent !important;
        color: #fff !important;
        white-space: nowrap !important;
    }

    .elementor-location-header .elementor-nav-menu--dropdown .elementor-item:hover,
    .elementor-location-header .elementor-nav-menu--dropdown .elementor-item:focus,
    .elementor-location-header .elementor-nav-menu--dropdown .elementor-item-active {
        background: rgba(180, 154, 94, 0.16) !important;
        color: #c8b98d !important;
    }
}
