/*
THRIVE CSS
Version: 0.1.0*/

/* selector .swiper-button-right, selector .swiper-button-left{
    width: 40px !important;
    height: 40px !important;
    padding: 9px 9px 9px 9px;
    background-color: #fff;
    border-radius: 25px;
    box-shadow: 0px 2px 5px #aaa;
}
selector .swiper-button-right svg, selector .swiper-button-next svg{
    width:20px;
    height:20px;
}
selector .dce-container-navigation{
    margin-top: -170px;
    left: -340px;
    width: 110px;
}

@media (max-width:1000px) {
    selector .dce-container-navigation{
        margin-top: -20px;
        top:-4px;
        left: 180px !important;
        width: 110px;
    }      
} */

.annonces-swiper .elementor-loop-container~.elementor-swiper-button {
    top: 50%;
    z-index: 9;
    cursor: pointer;
    width: 40px !important;
    height: 40px !important;
    padding: 9px 9px 9px 9px;
    background-color: #fff;
    border-radius: 25px;
    box-shadow: 0px 2px 5px #aaa;
    background-image: none;
}

/* Cartes de biens (carrousel d'images en chargement paresseux) : l'image reste cachée
   jusqu'à son chargement. Ne vise QUE ces cartes : ailleurs (carrousel de la fiche,
   « Confiez votre recherche »), les images ne sont pas paresseuses et doivent s'afficher. */
.annonce-images-swiper .swiper-slide-image.swiper-lazy:not(.swiper-lazy-loaded) {
    color: transparent;
    visibility: hidden;
}

@media (min-width: 769px) {

    html[lang="fr-FR"] .annonces-swiper .elementor-loop-container~.elementor-swiper-button,
    html[lang="en-GB"] .annonces-swiper .elementor-loop-container~.elementor-swiper-button,
    html[lang="nl-NL"] .annonces-swiper .elementor-loop-container~.elementor-swiper-button {
        top: 20px;
    }

    .annonces-swiper .elementor-loop-container+.elementor-swiper-button-prev {
        left: -120px !important;
    }

    .annonces-swiper .elementor-loop-container~.elementor-swiper-button-next {
        left: -60px !important;
    }
}

@media (max-width: 768px) {
    .annonces-swiper .elementor-loop-container~.elementor-swiper-button {
        margin-top: -380px;
    }

    .annonces-swiper .elementor-loop-container+.elementor-swiper-button-prev {
        right: 100px !important;
        left: unset !important;
    }

    .annonces-swiper .elementor-loop-container~.elementor-swiper-button-next {
        right: 50px !important;
        left: unset !important;
    }
}

@media (max-width: 500px) {
    .annonces-swiper .elementor-loop-container~.elementor-swiper-button {
        margin-top: -360px;
    }

    .annonces-swiper .elementor-loop-container+.elementor-swiper-button-prev {
        right: 100px !important;
        left: unset !important;
    }

    .annonces-swiper .elementor-loop-container~.elementor-swiper-button-next {
        right: 50px !important;
        left: unset !important;
    }
}

/*---------------------------------------------------------------------------------------
  THRIVE 2026 : Swipers - Arrow button position
----------------------------------------------------------------------------------------*/

.elementor-element.elementor-pagination-position-outside .swiper,
.elementor-lightbox.elementor-pagination-position-outside .swiper {
    padding-bottom: 0px !important;
}

.elementor-element.elementor-pagination-position-outside .swiper .elementor-swiper-button,
.elementor-lightbox.elementor-pagination-position-outside .swiper .elementor-swiper-button {
    top: 50%;
}

.elementor-element.elementor-pagination-position-outside .swiper~.elementor-swiper-button,
.elementor-lightbox.elementor-pagination-position-outside .swiper~.elementor-swiper-button {
    top: revert-rule;
}

/*---------------------------------------------------------------------------------------
  THRIVE 2026 : Annonces - Achive annonces
----------------------------------------------------------------------------------------*/

/* Listes des biens : Acheter (archive annonce) et Biens vendus — classe body « liste-biens-page » posée dans functions.php */
@media (max-width: 1023px) {
    .liste-biens-page .elementor-widget-loop-grid .elementor-grid {
        grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    }
}

@media (min-width: 1024px) {
    .liste-biens-page .elementor-widget-loop-grid .elementor-grid {
        grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    }
}

.liste-biens-page .elementor-popup-modal .dialog-widget-content {
    border-radius: 10px;
}

@media (max-width: 575px) {
    .liste-biens-page .uael-button-wrapper {
        width: 100%;
    }
}

/* Bouton */
.liste-biens-page .elementor-button-content-wrapper {
    gap: 0px;
}

/* Nice Select */
.nice-select {
    padding: 14px 22px 14px 22px;
    border-radius: 25px 25px 25px 25px !important;
    box-shadow: 0px 2px 5px 0px #AAAAAA;
    font-family: "Poppins", Sans-serif;
    font-size: 13px;
    font-weight: 500;
    width: 100%;
    height: auto;
    line-height: 1em;
}

.nice-select::after {
    border-bottom: 2px solid #000000;
    border-right: 2px solid #000000;
}

.nice-select:hover,
.nice-select:focus {
    color: var(--e-global-color-ff28bea);
    background-color: var(--e-global-color-accent);
}

.nice-select:hover::after {
    border-bottom: 2px solid #ffffff;
    border-right: 2px solid #ffffff;
}

.nice-select .list {
    color: #000000;
    z-index: 10;
}

/* Modale Nice Select */
@media (min-width: 576px) {
    .liste-biens-page .dialog-message {
        overflow: hidden !important;
    }
}

.dialog-message .nice-select {
    border: 1px solid #bbb;
    border-radius: 3px !important;
    box-shadow: unset;
}

.dialog-message .nice-select:hover,
.dialog-message .nice-select:focus {
    color: initial;
    background-color: initial;
}

.dialog-message .nice-select:hover::after {
    border-bottom: 2px solid #000000;
    border-right: 2px solid #000000;
}

.liste-biens-page select[name="sort"] {
    padding: 14px 22px 14px 22px;
    border-radius: 25px 25px 25px 25px;
    box-shadow: 0px 2px 5px 0px #AAAAAA;
    font-family: "Poppins", Sans-serif;
    font-size: 13px;
    font-weight: 500;
    width: 100%;
    height: auto;

    &:hover,
    &:focus {
        color: var(--e-global-color-ff28bea);
        background-color: var(--e-global-color-accent);
    }
}

.liste-biens-page #filter-form {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.liste-biens-page .filter-row {
    display: grid;
    column-gap: 10px;
    row-gap: 30px;
}

@media (min-width: 576px) {
    .liste-biens-page .filter-row {
        grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
        gap: 30px;
    }
}

@media (max-width: 575px) {
    .liste-biens-page .filter-row.line-2 {
        grid-template-columns: 1fr 1fr;
    }
}

.liste-biens-page .filter-group {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.liste-biens-page .filter-group.layout-large {
    grid-column: span 2;
}

.liste-biens-page .filter-title {
    font-weight: 600;
    font-size: 14px;
}

.liste-biens-page .filter-subgroup {
    display: flex;
    gap: 10px;
}

/* Ligne des champs côte à côte */
@media (max-width: 575px) {
    .liste-biens-page .filter-group.layout-large .filter-subgroup.inline-fields {
        display: grid;
        row-gap: 30px;
    }
}

@media (min-width: 576px) {
    .liste-biens-page .filter-group.layout-large .filter-subgroup.inline-fields {
        gap: 30px;
    }
}

/* Chaque champ + titre au-dessus */
.liste-biens-page .field-column {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1;
    /* prend la moitié de la ligne si 2 champs */
}

.liste-biens-page .field-column input {
    width: 100%;
    /* prend toute la largeur de la colonne */
    box-sizing: border-box;
    font-size: 16px;
    font-style: normal;
    font-weight: 600;
    line-height: 23px;
    /* 143.75% */
    letter-spacing: 0.15px;
}

.liste-biens-page .field-column .input-wrapper input {
    padding-right: 30px;
}

.liste-biens-page .input-wrapper {
    position: relative;
}

/* espace pour le € */
.liste-biens-page .input-wrapper .suffix {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    font-size: 14px;
    color: #666;
}

.liste-biens-page .filter-subtitle {
    font-size: 14px;
    font-style: normal;
    font-weight: 600;
    line-height: 18px;
    /* 128.571% */
    letter-spacing: -0.5px;
    opacity: 0.7;
}

.liste-biens-page input::placeholder {
    font-size: 14px;
    opacity: 0.7;
}

.liste-biens-page .field-inline {
    display: flex;
    gap: 10px;
}

.liste-biens-page .field-inline input {
    flex: 1;
}

/* Autocomplete BAN */
.autocomplete-results {
    position: absolute;
    top: 100%;
    background: #fff;
    max-height: 200px;
    overflow-y: auto;
    width: 100%;
    z-index: 1000;
}

.autocomplete-results:has(.autocomplete-item) {
    border: 1px solid #ddd;
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);
}

.autocomplete-item {
    padding: 8px 12px;
    cursor: pointer;
}

.autocomplete-item:hover {
    background: #f0f0f0;
}

.ville-wrapper {
    position: relative;
}

.ville-clear {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    font-size: 18px;
    color: #999;
    display: none;
    /* cachée tant que le champ est vide */
    user-select: none;
}

#ville-autocomplete:not(:placeholder-shown)+.ville-clear {
    display: block;
    /* affiche la croix quand il y a du texte */
}

/* Range */
.range-wrapper {
    position: relative;
}

.perimetre-range {
    -webkit-appearance: none;
    width: 100% !important;
    height: 5px !important;
    padding: 0 !important;
    outline: none !important;
    border-radius: 5px !important;
    border: unset !important;
    background: var(--noir-10, rgba(0, 0, 0, 0.10)) !important;
    position: relative !important;
    margin: 20px 0 !important;
}

/* Curseur */
.perimetre-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--main-100, #BA8531);
    border: 5px solid #FFF;
    cursor: pointer;
    box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25);
    position: relative;
    z-index: 2;
}

.perimetre-range::-moz-range-thumb {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--main-100, #BA8531);
    border: 5px solid #FFF;
    cursor: pointer;
    box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25);
}

/* Valeur flottante */
.perimetre-value {
    position: absolute;
    bottom: -7px;
    /* au-dessus du curseur */
    left: 0;
    transform: translateX(0);
    color: var(--noir-100, #000);
    width: max-content;
    text-align: right;
    font-size: 14px;
    font-style: normal;
    font-weight: 600;
    line-height: 23px;
    letter-spacing: 0.15px;
    pointer-events: none;
    transition: left 0.1s ease;
}

/* 🔹 Checkboxes "Doit inclure" */
.inclusions-checkboxes {
    display: flex;
    gap: 40px;
    flex-wrap: wrap;
    row-gap: 10px;
}

.inclusions-checkboxes .field-column {
    flex: 0 0 auto;
    /* pas de flex-grow */
}

.inclusions-checkboxes label {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}

/* Cacher le vrai checkbox */
.inclusions-checkboxes input[type="checkbox"] {
    width: 18px;
    height: 18px;
    opacity: 0;
    position: absolute;
    cursor: pointer;
}

/* Custom checkbox */
.inclusions-checkboxes label::before {
    content: "";
    display: inline-block;
    width: 18px;
    height: 18px;
    border-radius: 5px;
    border: 1px solid var(--noir-30, rgba(0, 0, 0, 0.30));
    background: #fff;
    position: relative;
    transition: all 0.2s ease;
}

/* Checkmark */
.inclusions-checkboxes label::after {
    content: "";
    position: absolute;
    left: 3px;
    width: 12px;
    height: 12px;
    background-image: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 6L9 17L4 12' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-size: cover;
    opacity: 0;
    transition: opacity 0.2s ease;
}

/* Quand coché */
.inclusions-checkboxes label:has(input[type="checkbox"]:checked)::before {
    background: var(--main-100, #BA8531);
    border-color: var(--main-100, #BA8531);
}

.inclusions-checkboxes label:has(input[type="checkbox"]:checked)::after {
    opacity: 1;
}

/* Boutons */
.liste-biens-page .filter-actions {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    align-items: center;
}

.liste-biens-page .reset-button,
.liste-biens-page button[type="submit"] {
    display: flex;
    padding: 10px 20px;
    flex-direction: column;
    align-items: center;
    cursor: pointer;
    border-radius: 15px;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 23px;
    /* 143.75% */
    letter-spacing: 0.15px;
}

.liste-biens-page .reset-button {
    border: 1px solid var(--noir-20, rgba(0, 0, 0, 0.20));
    background: var(--white-100, #FFF);
    backdrop-filter: blur(2.5px);
}

.liste-biens-page button[type="submit"] {
    border: 1px solid var(--noir-20, #BA8531);
    background: var(--main-100, #BA8531);
}

.liste-biens-page .reset-button:hover,
.liste-biens-page .reset-button:focus {
    border: 1px solid var(--main-100, #BA8531);
}

.liste-biens-page button[type="submit"]:hover,
.liste-biens-page button[type="submit"]:focus {
    background: var(--main-90, rgba(186, 133, 49, 0.90));
}

/* Pagination */
.liste-biens-page .page-numbers {
    display: inline-block;
    padding: 6px 10px 6px 10px;
    border-radius: 4px 4px 4px 4px;
    color: var(--e-global-color-primary);
    background-color: #D3D2D2;
}

.liste-biens-page .page-numbers.current,
.liste-biens-page .page-numbers:hover,
.liste-biens-page .page-numbers:focus {
    background-color: var(--main-100, #BA8531);
}

/*---------------------------------------------------------------------------------------
  THRIVE 2026 : Annonces - Achive annonces - Card
----------------------------------------------------------------------------------------*/

/* Annonce Card */
.annonce .elementor-icon-list-item:has(.elementor-icon-list-text:empty) {
    display: none;
}

[data-elementor-type="loop-item"].elementor-12948>section>.elementor-container .elementor-widget-wrap {
    flex-direction: column;
}

[data-elementor-type="loop-item"].elementor-12948>section>.elementor-container .elementor-widget-wrap .elementor-list-item-link-full_width {
    flex: 1;
}

/* (Les hauteurs minimales de carte — 600 px en liste, 640 px en accueil — ont laissé place à l'alignement
   par rangée : voir « Cartes en grille » plus bas et script.js) */

/* Favoris */
/* button.favorite-btn {
    background: unset;
    border-radius: unset;
    color: unset;
    padding: unset;

    &:hover,
    &:focus {
        background: unset;
    }
} */

/*---------------------------------------------------------------------------------------
  THRIVE 2026 : Annonce - Single
----------------------------------------------------------------------------------------*/

p:has(img.indice-image) {
    display: flex;
}

img.indice-image {
    width: 50%;
    object-fit: contain;
}

/*---------------------------------------------------------------------------------------
  THRIVE 2026 : Footer
----------------------------------------------------------------------------------------*/

footer {
    .cpel-switcher__lang {
        padding: 2px 8px 2px 0px !important;
        background-color: #E0E0E0 !important;
        border: 1px solid #E0E0E0 !important;

        &:hover {
            background-color: #F4F4F4 !important;
            border: solid 1px #111B21 !important;
        }

    }

}

.circle {
    display: inline-grid;

    div.elementor-widget-container {
        display: flex;

        span {
            aspect-ratio: 1 / 1;
            display: flex;
            align-items: center;
            justify-content: center;
            position: relative;
            top: 2px;
        }
    }
}

.header-nav {
    >.elementor-container {
        align-items: center;
    }
}

.nav-widget {
    height: fit-content;

    .elementor-icon-list--layout-inline {
        margin-block-end: 0 !important;
    }
}

.cpel-switcher__nav {
    width: min-content !important;
}

.cpel-switcher__lang:not(.cpel-switcher__lang--active, .cpel-switcher__nav:hover .cpel-switcher__lang) {
    display: none !important;
}

#toTop {
    &:not(.active) {
        display: none !important;
    }

    &.active {
        width: 100%;
    }
}

.list-check {
    ul {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }

    li {
        list-style: none;
        display: inline-flex;
        gap: 10px;

    }

    span {
        display: inline-grid;
        aspect-ratio: 1 / 1;
        background-color: #BA8531;
        border-radius: 50%;
        color: #fff;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        height: 24px;
        width: 24px;

        svg {
            width: 100%;
            height: auto;
            flex: 1;
        }
    }
}

/*---------------------------------------------------------------------------------------
  THRIVE 2026 : Home - CTA
----------------------------------------------------------------------------------------*/

.home-ctas {
    >.elementor-widget-wrap {
        display: grid !important;
        gap: 10px;
        grid-template-columns: 1fr 1fr;

        @media all and (min-width: 480px) and (max-width: 1000px) {
            grid-template-columns: 1fr 1fr 1fr 1fr;
        }
    }
}

/*---------------------------------------------------------------------------------------
  THRIVE 2026 : Honoraires
----------------------------------------------------------------------------------------*/

.honoraires_grid {
    .p-no-margin p {
        margin: 0 !important;
    }

    >.elementor-container {

        display: grid;

        @media all and (min-width: 780px) {
            grid-template-columns: repeat(3, minmax(0, 1fr));
        }

        >.elementor-column {
            width: 100%;
        }

    }

    .gap-10 {
        .elementor-container {
            gap: 10px;
        }
    }

    .nx-hon__filet {
        border: 0;
        border-top: 1px solid #E3D3B6;
        margin: 18px 0;
        height: 0;
        background: none;
    }

    .or {
        color: #BA8531;
        font-weight: 600;
    }

    .elementor-widget-uael-business-hours {
        .elementor-widget-container {
            overflow: hidden;
        }

        .uael-days {
            >div:nth-child(1) {
                .uael-inner {
                    padding: 18px 22px;
                }
            }

            >div:not(:nth-child(1)) {
                .uael-inner {
                    padding: 13px 22px;
                }
            }
        }
    }
}

.uael-faq-container {
    >div:last-child {
        border-bottom: 0 !important;
    }
}

/*---------------------------------------------------------------------------------------
  THRIVE 2026 : Divers
----------------------------------------------------------------------------------------*/

.underline {

    .elementor-widget-container {
        p:last-child {
            margin-bottom: 0 !important;
        }
    }

    &:after {
        content: "";
        display: block;
        width: 60px;
        height: 1px;
        margin-top: 20px;
        border-radius: 100px;
        background: var(--e-global-color-secondary);
    }
}


.underline_bold {

    .elementor-widget-container {
        p:last-child {
            margin-bottom: 0 !important;
        }
    }

    &:after {
        content: "";
        display: block;
        width: 40px;
        height: 2px;
        margin-top: 7px;
        border-radius: 100px;
        background: var(--e-global-color-secondary);
    }
}

/*---------------------------------------------------------------------------------------
  THRIVE 2026 : Annonces - Fiche détail (maquette V4)
----------------------------------------------------------------------------------------*/

/* Caractéristiques : une ligne vide ne s'affiche pas */
.annonce-carac li:has(.elementor-icon-list-text:empty) {
    display: none !important;
}

/* Description détaillée : « Lire plus » */
.annonce-faq {
    .annonce-tronque {
        max-height: 300px;
        overflow: hidden;
        -webkit-mask-image: linear-gradient(to bottom, #000 70%, transparent);
        mask-image: linear-gradient(to bottom, #000 70%, transparent);
    }

    .annonce-lire-plus {
        display: inline-block;
        margin: 0 0 18px 22px;
        font-family: "Poppins", sans-serif;
        font-size: 12px;
        font-weight: 600;
        text-decoration: underline;
        color: var(--e-global-color-secondary);
    }
}

/* Plan d'étage : encadré gris, bouton plein écran */
.annonce-plan {
    position: relative;

    .annonce-plan__agrandir {
        position: absolute;
        top: -64px;
        right: 0;
        width: 34px;
        height: 34px;
        border-radius: 50px;
        background: rgba(0, 0, 0, .05) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111b21' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M14 4h6v6M10 20H4v-6M20 4l-7 7M4 20l7-7'/%3E%3C/svg%3E") center / 15px no-repeat;
    }

    /* Le plan tient entier dans le cadre (plus de barre de défilement) ; le bouton plein écran sert aux détails */
    .annonce-plan__cadre {
        overflow: hidden;
        padding: 20px;
        border-radius: 10px;
        background: #f2f2f2;
    }

    img.annonce-plan__media {
        height: auto;
        max-height: 640px;
        object-fit: contain;
    }

    .annonce-plan__media {
        display: block;
        width: 100%;
        border: 0;
        border-radius: 10px;
        background: #fff;
    }

    iframe.annonce-plan__media {
        height: 460px;
    }
}

/* Score énergétique : étiquettes DPE/GES et encadré libre sur une ligne */
.annonce-dpe {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 10px;

    img {
        max-width: 180px;
        height: auto;
    }
}

.annonce-encadre-dpe {
    display: block;
    max-width: 190px;
    padding: 10px;
    border: 1px solid rgba(0, 0, 0, .1);
    border-radius: 5px;
    font-family: "Open Sans", sans-serif;
    font-size: 12px;
    font-weight: 600;
    line-height: 15px;
    color: #000;
}

@media print {

    .annonce-plan__agrandir,
    .annonce-lire-plus {
        display: none !important;
    }
}
/* Fiche annonce : flèches du carrousel collées l'une à l'autre (maquette : 40 px, 10 px d'écart),
   au lieu d'une position en % qui les éloigne selon la largeur d'écran (CSS du widget 6c7a8e5). */
.elementor-12913 .elementor-element.elementor-element-6c7a8e5 .elementor-swiper-button.elementor-swiper-button-next {
    left: 50px;
    right: auto;
}

/*---------------------------------------------------------------------------------------
  THRIVE 2026-11 : Retour Sam — Résultats de recherche (maquette Figma « CATALOGUE BIEN »
  et « MODALE FILTRE », desktop et mobile)
----------------------------------------------------------------------------------------*/

/* Barre d'outils : bouton Filtres à gauche, pagination au centre, tri à droite */
.liste-biens-page .elementor-element-e93237a > .elementor-container {
    position: relative;
    align-items: center;
}

/* Bouton « Filtres de recherche » : 45 px, bordure fine, icône filtre */
.liste-biens-page .elementor-element-c0078c0 .elementor-button {
    display: inline-flex;
    align-items: center;
    height: 45px;
    padding: 0 15px;
    border: 1px solid rgba(0, 0, 0, .2);
    border-radius: 15px;
    background: #fff;
    box-shadow: none;
    color: #000;
    font-family: "Nexa", sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 23px;
    letter-spacing: .15px;
    transition: border-color .2s ease;
}

.liste-biens-page .elementor-element-c0078c0 .elementor-button:hover,
.liste-biens-page .elementor-element-c0078c0 .elementor-button:focus-visible {
    border-color: var(--e-global-color-accent, #BA8531);
    color: #000;
}

.liste-biens-page .elementor-element-c0078c0 .elementor-button-content-wrapper {
    display: flex;
    align-items: center;
    gap: 10px;
}

.liste-biens-page .elementor-element-c0078c0 .elementor-button-icon {
    display: block;
    flex: none;
    width: 20px;
    height: 20px;
    margin: 0;
    background: url("../images/filtres-icone.svg") center / 19.6px 12px no-repeat;
}

/* Tri « Les plus récents » : 265 × 45, bordure fine, chevron */
.liste-biens-page .elementor-element-0056165 {
    width: 265px;
    max-width: 100%;
}

.liste-biens-page .elementor-element-0056165 .nice-select {
    display: flex;
    align-items: center;
    height: 45px;
    padding: 0 40px 0 15px;
    border: 1px solid rgba(0, 0, 0, .15);
    border-radius: 15px !important;
    background: #fff;
    box-shadow: none;
    color: #000;
    font-family: "Nexa", sans-serif;
    font-size: 16px;
    font-weight: 600;
    line-height: 23px;
    letter-spacing: .15px;
}

.liste-biens-page .elementor-element-0056165 .nice-select:hover,
.liste-biens-page .elementor-element-0056165 .nice-select:focus,
.liste-biens-page .elementor-element-0056165 .nice-select.open {
    border-color: var(--e-global-color-accent, #BA8531);
    background: #fff;
    color: #000;
}

.liste-biens-page .elementor-element-0056165 .nice-select::after,
.liste-biens-page .elementor-element-0056165 .nice-select:hover::after {
    width: 12.4px;
    height: 12.4px;
    margin-top: -6.2px;
    right: 15px;
    border: 0;
    background: url("../images/tri-chevron.svg") center / 6.84px 12.38px no-repeat;
    transform: rotate(90deg);
    transform-origin: 50% 50%;
}

.liste-biens-page .elementor-element-0056165 .nice-select.open::after {
    transform: rotate(-90deg);
}

.liste-biens-page .elementor-element-0056165 .nice-select .list {
    left: 0;
    right: 0;
    margin-top: 5px;
    padding: 5px 0;
    border: 1px solid rgba(0, 0, 0, .15);
    border-radius: 15px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, .08);
}

.liste-biens-page .elementor-element-0056165 .nice-select .option {
    font-family: "Nexa", sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 40px;
    min-height: 40px;
    padding: 0 15px;
}

.liste-biens-page .elementor-element-0056165 .nice-select .option.selected {
    font-weight: 600;
}

/* Pagination (en haut au centre, copiée par script.js, et en bas) : pastilles de 29 px */
.liste-biens-page .elementor-pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 2px;
}

.liste-biens-page .elementor-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 29px;
    margin: 0;
    padding: 0 9px;
    border-radius: 3px;
    background-color: #DBDADA;
    color: #1F282F;
    font-family: "Nexa", sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 1;
    text-decoration: none;
    transition: background-color .2s ease, color .2s ease;
}

.liste-biens-page .elementor-pagination .page-numbers.compteur-pages {
    min-width: 52px;
}

.liste-biens-page .elementor-pagination .page-numbers.current,
.liste-biens-page .elementor-pagination a.page-numbers:hover,
.liste-biens-page .elementor-pagination a.page-numbers:focus-visible {
    background-color: #C5B18E;
    color: #fff;
}

.liste-biens-page .pagination-haut {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
    margin: 0;
}

@media (max-width: 767px) {
    .liste-biens-page .elementor-element-e93237a > .elementor-container {
        flex-wrap: wrap;
    }

    .liste-biens-page .pagination-haut {
        position: static;
        order: -1;
        width: 100%;
        margin: 0 0 20px;
        transform: none;
    }

    /* Mobile (maquette) : bouton et tri en pleine largeur, contenu du bouton centré */
    .liste-biens-page .elementor-element-c0078c0 .elementor-button {
        width: 100%;
        justify-content: center;
    }

    .liste-biens-page .elementor-element-0056165 {
        width: 100%;
    }
}

/* Cartes de biens (gabarit 12948) : « Ajouter aux favoris » et « Voir la liste »
   alignés, icônes de 20 px de la maquette (cœur et œil), 5 px avant le texte */
.elementor-12948 .elementor-element-3f5d56f > .elementor-widget-wrap,
.elementor-12948 .elementor-element-4ff682a > .elementor-widget-wrap {
    justify-content: center;
}

.elementor-12948 .elementor-element-968b9bf .elementor-button,
.elementor-12948 .elementor-element-593c6d7 .elementor-button {
    display: inline-flex;
    align-items: center;
    height: 20px;
    padding: 0;
    line-height: 18px;
}

.elementor-12948 .elementor-element-968b9bf .elementor-button-content-wrapper,
.elementor-12948 .elementor-element-593c6d7 .elementor-button-content-wrapper {
    display: flex;
    align-items: center;
    gap: 5px;
}

.elementor-12948 .elementor-element-968b9bf .elementor-button-icon,
.elementor-12948 .elementor-element-593c6d7 .elementor-button-icon {
    display: block;
    flex: none;
    width: 20px;
    height: 20px;
    margin: 0 !important;
    background-color: currentColor;
    -webkit-mask: url("../images/carte-coeur.png?v=2") center / 20px auto no-repeat;
    mask: url("../images/carte-coeur.png?v=2") center / 20px auto no-repeat;
}

.elementor-12948 .elementor-element-593c6d7 .elementor-button-icon {
    -webkit-mask-image: url("../images/carte-oeil.png");
    mask-image: url("../images/carte-oeil.png");
}

/* Bien déjà en favori : cœur doré, comme l’icône d’origine de l’état « Retirer des favoris » */
.elementor-12948 .elementor-element-968b9bf [data-dce-is-favorited="1"] .elementor-button-icon {
    background-color: #BA8531;
}

.elementor-12948 .elementor-element-968b9bf .elementor-button-icon svg,
.elementor-12948 .elementor-element-593c6d7 .elementor-button-icon i {
    display: none;
}

/* Modale de filtres (popup 12941) : zoom central léger, voile allégé et flouté */
#elementor-popup-modal-12941 {
    -webkit-backdrop-filter: blur(2.5px);
    backdrop-filter: blur(2.5px);
    animation: nx-voile-entree .35s ease both;
}

#elementor-popup-modal-12941:has(.dialog-widget-content.reverse) {
    animation: nx-voile-sortie .35s ease both;
}

#elementor-popup-modal-12941 .dialog-widget-content {
    border: 1px solid rgba(0, 0, 0, .15);
    border-radius: 10px;
    box-shadow: none;
    overflow: hidden;
}

#elementor-popup-modal-12941 .dialog-widget-content.animated {
    animation-duration: .35s;
    animation-timing-function: cubic-bezier(.2, .8, .2, 1);
}

#elementor-popup-modal-12941 .dialog-widget-content.animated.zoomIn {
    animation-name: nx-zoom-leger;
}

@keyframes nx-zoom-leger {
    from { opacity: 0; transform: scale(.94); }
    to   { opacity: 1; transform: scale(1); }
}

@keyframes nx-voile-entree {
    from { background-color: rgba(0, 0, 0, 0); -webkit-backdrop-filter: blur(0); backdrop-filter: blur(0); }
}

@keyframes nx-voile-sortie {
    to { background-color: rgba(0, 0, 0, 0); -webkit-backdrop-filter: blur(0); backdrop-filter: blur(0); }
}

@media (prefers-reduced-motion: reduce) {
    #elementor-popup-modal-12941,
    #elementor-popup-modal-12941 .dialog-widget-content.animated {
        animation-duration: .01s;
    }
}

/* En-tête : « Filtres » 20 px, bouton fermer rond de 35 px */
#elementor-popup-modal-12941 .elementor-element-933e335 .elementor-heading-title {
    font-family: "Nexa", sans-serif;
    font-size: 20px;
    font-weight: 500;
    line-height: 25px;
    letter-spacing: .15px;
    color: #000;
}

#elementor-popup-modal-12941 .dialog-close-button {
    top: 25px;
    right: 30px;
    width: 35px;
    height: 35px;
    margin: 0;
    background: url("../images/filtres-fermer.svg") center / 35px 35px no-repeat;
    opacity: 1;
}

#elementor-popup-modal-12941 .dialog-close-button i {
    display: none;
}

/* Champs : titres Nexa 16, sous-titres Open Sans 14, champs de 55 px */
#elementor-popup-modal-12941 #filter-form .filter-title {
    font-family: "Nexa", sans-serif;
    font-size: 16px;
    font-weight: 600;
    line-height: 23px;
    letter-spacing: .15px;
    color: #000;
}

#elementor-popup-modal-12941 #filter-form .filter-subtitle {
    font-family: "Open Sans", sans-serif;
    font-size: 14px;
    font-weight: 600;
    line-height: 18px;
    letter-spacing: -.5px;
    color: rgba(0, 0, 0, .7);
    opacity: 1;
}

#elementor-popup-modal-12941 #filter-form .field-column {
    gap: 10px;
}

#elementor-popup-modal-12941 #filter-form input[type="text"],
#elementor-popup-modal-12941 #filter-form input[type="number"] {
    height: 55px;
    padding: 0 15px;
    border: 1px solid rgba(0, 0, 0, .3);
    border-radius: 5px;
    background: #fff;
    color: #000;
    font-family: "Open Sans", sans-serif;
    font-size: 16px;
    font-weight: 600;
    line-height: 23px;
    letter-spacing: .15px;
    -moz-appearance: textfield;
}

#elementor-popup-modal-12941 #filter-form .input-wrapper input {
    padding-right: 40px;
}

#elementor-popup-modal-12941 #filter-form input::-webkit-outer-spin-button,
#elementor-popup-modal-12941 #filter-form input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

#elementor-popup-modal-12941 #filter-form input:focus {
    border-color: var(--e-global-color-accent, #BA8531);
    outline: none;
}

#elementor-popup-modal-12941 #filter-form input::placeholder {
    font-size: 16px;
    color: rgba(0, 0, 0, .7);
    opacity: 1;
}

#elementor-popup-modal-12941 #filter-form .input-wrapper .suffix {
    right: 15px;
    font-family: "Open Sans", sans-serif;
    font-size: 16px;
    font-weight: 600;
    color: rgba(0, 0, 0, .7);
}

#elementor-popup-modal-12941 #filter-form .ville-wrapper {
    display: block !important;
}

/* Listes (chambres, salles de bain) */
#elementor-popup-modal-12941 .nice-select {
    display: flex;
    align-items: center;
    height: 55px;
    padding: 0 40px 0 15px;
    border: 1px solid rgba(0, 0, 0, .3);
    border-radius: 5px !important;
    box-shadow: none;
    color: #000;
    font-family: "Nexa", sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 23px;
    letter-spacing: .15px;
}

#elementor-popup-modal-12941 .nice-select::after,
#elementor-popup-modal-12941 .nice-select:hover::after {
    width: 12.4px;
    height: 6.84px;
    margin-top: -3.42px;
    right: 15px;
    border: 0;
    background: url("../images/filtres-chevron.svg") center / contain no-repeat;
    transform: none;
}

#elementor-popup-modal-12941 .nice-select.open::after {
    transform: rotate(180deg);
}

#elementor-popup-modal-12941 .nice-select.open,
#elementor-popup-modal-12941 .nice-select:focus {
    border-color: var(--e-global-color-accent, #BA8531);
}

/* Liste ouverte (chambres, salles de bain) : 5 options visibles au plus, le reste défile dans la liste
   (sans quoi elle était coupée par le bas de la modale, qui masque ce qui dépasse) */
#elementor-popup-modal-12941 .nice-select .list {
    left: 0;
    right: 0;
    width: 100%;
    max-height: 200px;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: rgba(0, 0, 0, .25) transparent;
}

/* Ville + périmètre côte à côte (10 px), valeur du périmètre à droite du curseur */
#elementor-popup-modal-12941 .filter-group.layout-large .filter-subgroup.inline-fields {
    gap: 10px;
}

#elementor-popup-modal-12941 .range-wrapper {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    column-gap: 20px;
    row-gap: 10px;
}

#elementor-popup-modal-12941 .range-wrapper .filter-subtitle {
    grid-column: 1 / -1;
}

#elementor-popup-modal-12941 .perimetre-range {
    margin: 25px 0 !important;
}

#elementor-popup-modal-12941 .perimetre-value {
    position: static;
    left: auto !important;
    transform: none;
    font-family: "Open Sans", sans-serif;
    font-size: 16px;
    font-weight: 600;
    line-height: 23px;
    letter-spacing: .15px;
    color: #000;
}

/* « Doit inclure » : cases de 24 px, libellés Open Sans 16 */
#elementor-popup-modal-12941 .inclusions-checkboxes label {
    gap: 10px;
    font-family: "Open Sans", sans-serif;
    font-size: 16px;
    font-weight: 600;
    line-height: 23px;
    letter-spacing: .15px;
}

#elementor-popup-modal-12941 .inclusions-checkboxes input[type="checkbox"] {
    width: 24px;
    height: 24px;
}

#elementor-popup-modal-12941 .inclusions-checkboxes label::before {
    width: 24px;
    height: 24px;
    flex: none;
    border-radius: 5px;
}

#elementor-popup-modal-12941 .inclusions-checkboxes label::after {
    left: 4px;
    width: 16px;
    height: 16px;
}

/* Boutons Réinitialiser / Appliquer : 45 px, Nexa 16 */
#elementor-popup-modal-12941 .filter-actions {
    padding-top: 10px;
}

#elementor-popup-modal-12941 .reset-button,
#elementor-popup-modal-12941 button[type="submit"] {
    justify-content: center;
    height: 45px;
    padding: 0 20px;
    font-family: "Nexa", sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 23px;
    letter-spacing: .15px;
}

#elementor-popup-modal-12941 .reset-button {
    color: #000;
}

#elementor-popup-modal-12941 button[type="submit"] {
    color: #fff;
}

/* Modale en mobile (maquette) : pleine largeur à 20 px des bords, contenu qui défile */
@media (max-width: 767px) {
    #elementor-popup-modal-12941 .dialog-close-button {
        top: 20px;
        right: 20px;
    }
}

/* Retour Sam — ajustements après contrôle visuel de la modale (maquette « filtres-core ») */
/* Nexa n'existe qu'en 400, 600 (Nexa-Bold) et 900 (Nexa-Black) : un 700 tombait sur le Black */

/* Marges intérieures de 30 px : la colonne n'ajoute plus ses 10 px à ceux de la section */
#elementor-popup-modal-12941 .elementor-element-3d83428 > .elementor-widget-wrap {
    padding: 0;
}

/* En-tête « Filtres » : 25 px de haut, 30 px avant la première ligne de champs */
#elementor-popup-modal-12941 .elementor-element-933e335 {
    margin-bottom: 30px !important;
}

#elementor-popup-modal-12941 .elementor-element-933e335 > .elementor-widget-container {
    margin: 0;
    padding: 0;
}

/* Placeholders en Open Sans (le thème parent impose Libre Franklin) */
#elementor-popup-modal-12941 #filter-form input::placeholder {
    font-family: "Open Sans", sans-serif;
    font-weight: 600;
    letter-spacing: .15px;
}

/* « Doit inclure » : les libellés portent aussi la classe filter-title, d'où la règle plus précise */
#elementor-popup-modal-12941 #filter-form .inclusions-checkboxes {
    gap: 10px 40px;
}

#elementor-popup-modal-12941 #filter-form .inclusions-checkboxes label.filter-title {
    font-family: "Open Sans", sans-serif;
    font-size: 16px;
    font-weight: 600;
    line-height: 23px;
    letter-spacing: .15px;
    color: #000;
}

/* Barre d'outils en mobile (maquette « MOBILE CATALOGUE BIEN ») : boutons de 40 px arrondis à 10,
   Nexa Bold 14, 10 px entre eux ; pas de pagination en haut (celle du bas reste) */
@media (max-width: 767px) {
    .liste-biens-page .pagination-haut {
        display: none;
    }

    .liste-biens-page .elementor-element-62d271d > .elementor-widget-wrap {
        padding-bottom: 10px;
    }

    .liste-biens-page .elementor-element-d10d768 > .elementor-widget-wrap {
        padding-bottom: 17px;
    }

    .liste-biens-page .elementor-element-c0078c0 .elementor-button,
    .liste-biens-page .elementor-element-0056165 .nice-select {
        height: 40px;
        border-radius: 10px !important;
        font-size: 14px;
        font-weight: 600;
        line-height: 18px;
    }

    .liste-biens-page .elementor-element-c0078c0 .elementor-button {
        padding-top: 0;
        padding-bottom: 0;
    }

    .liste-biens-page .elementor-element-0056165 .nice-select .current {
        line-height: 38px;
    }
}

/* Modale de filtres en mobile (maquette « MOBILE CATALOGUE BIEN », filtres-core) :
   20 px du bord haut et des côtés, marges intérieures de 20 px, tout empilé, contenu qui défile */
@media (max-width: 767px) {
    #elementor-popup-modal-12941 {
        align-items: flex-start;
    }

    #elementor-popup-modal-12941 .dialog-widget-content {
        width: calc(100% - 40px) !important;
        max-width: none;
        margin-top: 20px;
    }

    #elementor-popup-modal-12941 .dialog-message {
        width: 100% !important;
        height: calc(100vh - 40px) !important;
        height: calc(100dvh - 40px) !important;
        max-height: none;
    }

    #elementor-popup-modal-12941 .elementor-element-9b46144 {
        padding: 20px !important;
    }

    #elementor-popup-modal-12941 .dialog-close-button {
        top: 15px;
        right: 20px;
    }

    #elementor-popup-modal-12941 #filter-form .filter-row,
    #elementor-popup-modal-12941 #filter-form .filter-row.line-2 {
        grid-template-columns: 1fr;
        row-gap: 30px;
    }

    #elementor-popup-modal-12941 #filter-form .filter-group.layout-large {
        grid-column: auto;
    }

    #elementor-popup-modal-12941 #filter-form .line-3 .filter-group {
        gap: 20px;
    }

    #elementor-popup-modal-12941 #filter-form .inclusions-checkboxes {
        flex-wrap: wrap;
        gap: 20px 40px;
    }
}

/*---------------------------------------------------------------------------------------
  THRIVE 2026-11 : Retour Sam — Fiche bien (gabarit 12913, maquette « DETAILS BIEN » › HEADER)
----------------------------------------------------------------------------------------*/

/* « Nous contacter » : 42 px de haut, 20 px de côté, Poppins 14, ombre de la maquette */
body .elementor-12913 .elementor-element.elementor-element-75094e6 .elementor-button {
    display: inline-flex;
    align-items: center;
    height: 42px;
    padding: 0 20px;
    border-radius: 50px;
    box-shadow: 0 2px 3.85px rgba(0, 0, 0, .35);
    font-size: 14px;
    line-height: 23px;
    letter-spacing: .15px;
}

/* Partage : pastilles de 34 px, pictogramme de 15 px, 5 px entre elles */
body .elementor-12913 .elementor-element.elementor-element-2d60c97 .elementor-share-btn {
    width: 34px;
    height: 34px;
}

body .elementor-12913 .elementor-element.elementor-element-2d60c97 .elementor-share-btn__icon {
    width: 34px;
    --e-share-buttons-icon-size: 15px;
}

/* Favoris, liste, impression : lignes de 20 px espacées de 15, icônes de 20 px de la maquette,
   5 px avant le texte, Open Sans 600 14/18 ; la couleur suit l'état (survol, déjà en favori) */
body .elementor-12913 .elementor-element.elementor-element-2bd3f4d,
body .elementor-12913 .elementor-element.elementor-element-eebf284 {
    margin-bottom: 15px;
}

body .elementor-12913 .elementor-element.elementor-element-2bd3f4d .elementor-button,
body .elementor-12913 .elementor-element.elementor-element-eebf284 .elementor-button,
body .elementor-12913 .elementor-element.elementor-element-26d8e9b .elementor-button {
    display: inline-flex;
    align-items: center;
    height: 20px;
    padding: 0;
    font-family: "Open Sans", sans-serif;
    font-size: 14px;
    font-weight: 600;
    line-height: 18px;
    letter-spacing: -.5px;
}

body .elementor-12913 .elementor-element.elementor-element-2bd3f4d .elementor-button-content-wrapper,
body .elementor-12913 .elementor-element.elementor-element-eebf284 .elementor-button .elementor-button-content-wrapper,
body .elementor-12913 .elementor-element.elementor-element-26d8e9b .elementor-button .elementor-button-content-wrapper {
    display: flex;
    align-items: center;
    gap: 5px;
}

body .elementor-12913 .elementor-element.elementor-element-2bd3f4d .elementor-button-icon,
body .elementor-12913 .elementor-element.elementor-element-eebf284 .elementor-button-icon,
body .elementor-12913 .elementor-element.elementor-element-26d8e9b .elementor-button-icon {
    display: block;
    flex: none;
    width: 20px;
    height: 20px;
    margin: 0 !important;
    background-color: currentColor;
    -webkit-mask: url("../images/carte-coeur.png?v=2") center / 20px auto no-repeat;
    mask: url("../images/carte-coeur.png?v=2") center / 20px auto no-repeat;
}

body .elementor-12913 .elementor-element.elementor-element-eebf284 .elementor-button-icon {
    -webkit-mask-image: url("../images/carte-oeil.png");
    mask-image: url("../images/carte-oeil.png");
}

body .elementor-12913 .elementor-element.elementor-element-26d8e9b .elementor-button-icon {
    -webkit-mask-image: url("../images/fiche-imprimer.png");
    mask-image: url("../images/fiche-imprimer.png");
}

body .elementor-12913 .elementor-element.elementor-element-2bd3f4d .elementor-button-icon svg,
body .elementor-12913 .elementor-element.elementor-element-eebf284 .elementor-button-icon > *,
body .elementor-12913 .elementor-element.elementor-element-26d8e9b .elementor-button-icon > * {
    display: none;
}

/* La ligne de texte du conteneur (24 px) agrandissait chaque bouton à 27 px */
body .elementor-12913 .elementor-element.elementor-element-2bd3f4d .elementor-button-wrapper,
body .elementor-12913 .elementor-element.elementor-element-eebf284 .elementor-button-wrapper,
body .elementor-12913 .elementor-element.elementor-element-26d8e9b .elementor-button-wrapper {
    line-height: 0;
}

body .elementor-12913 .elementor-element.elementor-element-2bd3f4d .elementor-button,
body .elementor-12913 .elementor-element.elementor-element-eebf284 .elementor-button,
body .elementor-12913 .elementor-element.elementor-element-26d8e9b .elementor-button {
    vertical-align: top;
}

/* Fiche bien en mobile (section c5bbec2, maquette « MOBILE DETAILS BIEN ») :
   favoris, liste et impression sur une ligne (15 px entre eux), bouton de 42 px, pastilles de 34 px */
body .elementor-12913 .elementor-element.elementor-element-bb4923e .elementor-share-btn {
    width: 34px;
    height: 34px;
}

body .elementor-12913 .elementor-element.elementor-element-bb4923e .elementor-share-btn__icon {
    width: 34px;
    --e-share-buttons-icon-size: 15px;
}

body .elementor-12913 .elementor-element.elementor-element-241a47a .elementor-button {
    display: inline-flex;
    align-items: center;
    height: 42px;
    padding: 0 20px;
    border-radius: 50px;
    box-shadow: 0 2px 3.85px rgba(0, 0, 0, .35);
    font-size: 14px;
    line-height: 23px;
    letter-spacing: .15px;
    white-space: nowrap;
}

body .elementor-12913 .elementor-element.elementor-element-51ff592 .elementor-button-wrapper,
body .elementor-12913 .elementor-element.elementor-element-a7c3e51 .elementor-button-wrapper,
body .elementor-12913 .elementor-element.elementor-element-e848208 .elementor-button-wrapper {
    line-height: 0;
}

body .elementor-12913 .elementor-element.elementor-element-51ff592 .elementor-button,
body .elementor-12913 .elementor-element.elementor-element-a7c3e51 .elementor-button,
body .elementor-12913 .elementor-element.elementor-element-e848208 .elementor-button {
    display: inline-flex;
    align-items: center;
    vertical-align: top;
    height: 20px;
    padding: 0;
    font-family: "Open Sans", sans-serif;
    font-size: 14px;
    font-weight: 600;
    line-height: 18px;
    letter-spacing: -.5px;
}

body .elementor-12913 .elementor-element.elementor-element-51ff592 .elementor-button-content-wrapper,
body .elementor-12913 .elementor-element.elementor-element-a7c3e51 .elementor-button .elementor-button-content-wrapper,
body .elementor-12913 .elementor-element.elementor-element-e848208 .elementor-button .elementor-button-content-wrapper {
    display: flex;
    align-items: center;
    gap: 5px;
}

body .elementor-12913 .elementor-element.elementor-element-51ff592 .elementor-button-icon,
body .elementor-12913 .elementor-element.elementor-element-a7c3e51 .elementor-button-icon,
body .elementor-12913 .elementor-element.elementor-element-e848208 .elementor-button-icon {
    display: block;
    flex: none;
    width: 20px;
    height: 20px;
    margin: 0 !important;
    background-color: currentColor;
    -webkit-mask: url("../images/carte-coeur.png?v=2") center / 20px auto no-repeat;
    mask: url("../images/carte-coeur.png?v=2") center / 20px auto no-repeat;
}

body .elementor-12913 .elementor-element.elementor-element-a7c3e51 .elementor-button-icon {
    -webkit-mask-image: url("../images/carte-oeil.png");
    mask-image: url("../images/carte-oeil.png");
}

body .elementor-12913 .elementor-element.elementor-element-e848208 .elementor-button-icon {
    -webkit-mask-image: url("../images/fiche-imprimer.png");
    mask-image: url("../images/fiche-imprimer.png");
}

body .elementor-12913 .elementor-element.elementor-element-51ff592 .elementor-button-icon svg,
body .elementor-12913 .elementor-element.elementor-element-a7c3e51 .elementor-button-icon > *,
body .elementor-12913 .elementor-element.elementor-element-e848208 .elementor-button-icon > * {
    display: none;
}

/* Mobile : les trois liens se répartissent sur la ligne (15 px entre eux tant que la place le permet,
   passage à la ligne propre dans les langues plus longues) */
body .elementor-12913 .elementor-element.elementor-element-8d1404e > .elementor-widget-wrap {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: min(15px, calc((100% - 322px) / 2));
    row-gap: 10px;
}

body .elementor-12913 .elementor-element.elementor-element-8d1404e > .elementor-widget-wrap > .elementor-element {
    margin: 0 !important;
}

/* Mobile : pastille « Exclusivité / Vendu… » comme en desktop (la maquette la garde) */
body .elementor-12913 .elementor-element.elementor-element-427b022 > .elementor-widget-container {
    padding: 4px 14px;
}

body .elementor-12913 .elementor-element.elementor-element-427b022 {
    margin-bottom: 10px;
}

body .elementor-12913 .elementor-element.elementor-element-8d1404e > .elementor-widget-wrap > .elementor-element > .elementor-widget-container {
    margin: 0 !important;
    padding: 0 !important;
}

/* Mobile : description détaillée et plan à 20 px des deux bords (la marge droite de 25 px du bureau restait) */
@media (max-width: 767px) {
    body .elementor-12913 .elementor-element.elementor-element-714dc1c > .elementor-widget-wrap {
        margin-right: 0;
    }
}

/* Grilles de biens (Loop Grid) : une carte ne doit jamais imposer sa largeur à la colonne.
   Sans cela, le carrousel d'images de la carte (Swiper) prend la largeur du conteneur (1140 px)
   et la page « Biens vendus » s'étalait sur 3 × 1140 px. */
.elementor-widget-loop-grid .elementor-loop-container > .e-loop-item {
    min-width: 0;
}

/* Étiquettes DPE / GES dessinées à la volée (SVG, shortcode dpe_image) */
.annonce-dpe svg.indice-image {
    display: block;
    width: 180px;
    max-width: 100%;
    height: auto;
}

/* DPE / GES sans indice : étiquette générique grisée, « Non soumis au diagnostic » par-dessus */
.annonce-dpe .indice-non-soumis {
    position: relative;
    display: block;
    width: 180px;
    max-width: 100%;
}

.annonce-dpe .indice-non-soumis img {
    display: block;
    width: 100%;
    max-width: none;
    height: auto;
    filter: grayscale(1);
    opacity: .35;
}

.annonce-dpe .indice-non-soumis__texte {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 86%;
    padding: 6px 8px;
    border: 1px solid rgba(0, 0, 0, .15);
    border-radius: 5px;
    background: rgba(255, 255, 255, .92);
    font-family: "Open Sans", sans-serif;
    font-size: 12px;
    font-weight: 600;
    line-height: 15px;
    color: #000;
    text-align: center;
    transform: translate(-50%, -50%);
}

/*---------------------------------------------------------------------------------------
  Correctifs UI du 05/11/2026 (brief « Correctifs UI préprod : Acheter, modale Filtres & Détail bien »)
----------------------------------------------------------------------------------------*/

/* Acheter : CTA « Filtres de recherche » en Medium. Nexa n'a pas de fichier Medium sur le site
   (Regular, Bold, Black) : graisse intermédiaire obtenue par un léger contour du texte */
.liste-biens-page .elementor-element-c0078c0 .elementor-button {
    -webkit-text-stroke: .35px currentColor;
}

/* Pagination : #D3D2D1 / page active #BDA177, centrée sur l'axe du bouton et du tri (45 px de haut) */
.liste-biens-page .elementor-pagination .page-numbers {
    background-color: #D3D2D1;
}

.liste-biens-page .elementor-pagination .page-numbers.current,
.liste-biens-page .elementor-pagination a.page-numbers:hover,
.liste-biens-page .elementor-pagination a.page-numbers:focus-visible {
    background-color: #BDA177;
}

@media (min-width: 768px) {
    .liste-biens-page .pagination-haut {
        top: 22.5px;
    }
}

/* Cartes de biens (gabarit 12948) : 20 px partout */
body .elementor-12948 .elementor-element.elementor-element-329dc4a > .elementor-widget-wrap {
    padding-bottom: 20px;
}

body .elementor-12948 .elementor-element.elementor-element-88fadfa,
body .elementor-12948 .elementor-element.elementor-element-ef1a4ae,
body .elementor-12948 .elementor-element.elementor-element-6ba5233 {
    padding-left: 20px;
    padding-right: 20px;
}

/* Localisation → titre : 10 px ; titre 18/20 ; 20 px jusqu'au séparateur */
body .elementor-12948 .elementor-element.elementor-element-61d5535 {
    margin-bottom: 10px;
}

/* Le bloc localisation + titre avait une hauteur minimale de 85 px qui étirait la localisation */
body .elementor-12948 .elementor-element.elementor-element-88fadfa > .elementor-container {
    min-height: 0;
}

body .elementor-12948 .elementor-element.elementor-element-d36cee4 .elementor-heading-title {
    font-size: 18px;
    line-height: 20px;
}

/* Le titre remontait de 10 px (marge négative d'origine) */
body .elementor-12948 .elementor-element.elementor-element-d36cee4 > .elementor-widget-container {
    margin: 0;
}

body .elementor-12948 .elementor-element.elementor-element-88fadfa {
    margin-bottom: 20px;
}

/* Séparateur supérieur sur toute la largeur du contenu (padding 20 px) */
body .elementor-12948 .elementor-element.elementor-element-03511f8 .elementor-divider-separator {
    width: calc(100% - 40px);
    margin: 0 20px;
}

body .elementor-12948 .elementor-element.elementor-element-03511f8 .elementor-divider {
    padding: 0;
}

/* Caractéristiques : 20 px sous le séparateur supérieur et au-dessus du séparateur inférieur,
   5 px entre deux lignes de pastilles (une liste vide ne compte pas) */
body .elementor-12948 .elementor-element.elementor-element-03511f8 {
    margin-bottom: 20px;
}

body .elementor-12948 .elementor-element.elementor-element-c7a2bb1,
body .elementor-12948 .elementor-element.elementor-element-1161826,
body .elementor-12948 .elementor-element.elementor-element-ac7329f {
    margin-bottom: 0;
}

body .elementor-12948 .elementor-element.elementor-element-c7a2bb1 > .elementor-widget-container,
body .elementor-12948 .elementor-element.elementor-element-1161826 > .elementor-widget-container,
body .elementor-12948 .elementor-element.elementor-element-ac7329f > .elementor-widget-container {
    margin: 0;
    padding: 0 20px;
}

body .elementor-12948 .elementor-element.elementor-element-1161826:has(.elementor-icon-list-text:not(:empty)),
body .elementor-12948 .elementor-element.elementor-element-ac7329f:has(.elementor-icon-list-text:not(:empty)) {
    margin-top: 5px;
}

/* Séparateur inférieur, prix/réf et favoris plaqués en bas de la carte : la hauteur en plus de la rangée
   se loge au-dessus du séparateur (20 px au moins sous les pastilles), les séparateurs s'alignent d'une carte à l'autre */
body .elementor-12948 .elementor-element.elementor-element-7953956 {
    margin-top: auto;
    padding-top: 20px;
    margin-bottom: 20px;
}

/* Séparateur supérieur : le bloc localisation + titre prend la hauteur du plus grand de la rangée
   (--complement-titre, calculé par script.js) */
body .elementor-12948 .elementor-element.elementor-element-03511f8 {
    margin-top: var(--complement-titre, 0px);
}

/* Prix 18/23 et référence 16 px, alignés par le haut, à 20 px du séparateur */
body .elementor-12948 .elementor-element.elementor-element-ef1a4ae {
    margin-top: 0;
}

body .elementor-12948 .elementor-element.elementor-element-ef1a4ae > .elementor-container {
    align-items: flex-start;
}

body .elementor-12948 .elementor-element.elementor-element-4d0eb48 > .elementor-widget-wrap,
body .elementor-12948 .elementor-element.elementor-element-63c17bb > .elementor-widget-wrap {
    padding: 0;
    align-content: flex-start;
    align-items: flex-start;
}

body .elementor-12948 .elementor-element.elementor-element-8eb0fe6 .elementor-heading-title {
    font-size: 18px;
    line-height: 23px;
}

body .elementor-12948 .elementor-element.elementor-element-4e0608e .elementor-heading-title {
    font-family: "Open Sans", sans-serif;
    font-size: 16px;
    line-height: 23px;
}

/* CTA à 20 px de la ligne prix / référence, sur une ligne : favoris à gauche, « Voir ma liste » à droite */
body .elementor-12948 .elementor-element.elementor-element-6ba5233 {
    margin-top: 20px;
}

body .elementor-12948 .elementor-element.elementor-element-6ba5233 > .elementor-container {
    justify-content: space-between;
    gap: 10px;
}

body .elementor-12948 .elementor-element.elementor-element-3f5d56f,
body .elementor-12948 .elementor-element.elementor-element-4ff682a {
    width: auto;
}

body .elementor-12948 .elementor-element.elementor-element-3f5d56f > .elementor-widget-wrap,
body .elementor-12948 .elementor-element.elementor-element-4ff682a > .elementor-widget-wrap {
    padding: 0;
}

body .elementor-12948 .elementor-element.elementor-element-3f5d56f > .elementor-widget-wrap {
    justify-content: flex-start;
}

body .elementor-12948 .elementor-element.elementor-element-4ff682a > .elementor-widget-wrap {
    justify-content: flex-end;
}

body .elementor-12948 .elementor-element.elementor-element-968b9bf .elementor-button,
body .elementor-12948 .elementor-element.elementor-element-593c6d7 .elementor-button {
    white-space: nowrap;
}

/* Modale Filtres : titre en Semi-bold */
#elementor-popup-modal-12941 .elementor-element-933e335 .elementor-heading-title {
    font-weight: 600;
}

/* Cartes en grille ou en carrousel : chaque carte prend la hauteur de sa rangée (la plus grande) */
[data-elementor-type="loop-item"].elementor-12948>section,
[data-elementor-type="loop-item"].elementor-12948>section>.elementor-container {
    height: 100%;
    min-height: 0;
}

/* Favoris (grille Dynamic Content) : la carte remplit le bloc étiré par la rangée */
.dce-post-block > [data-elementor-type="loop-item"].elementor-12948 {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
}

.dce-post-block > [data-elementor-type="loop-item"].elementor-12948 > section {
    flex: 1 1 auto;
}

/* Les listes (localisation, caractéristiques) ne s'étirent plus : 20 px fixes jusqu'au séparateur inférieur */
[data-elementor-type="loop-item"].elementor-12948>section>.elementor-container .elementor-widget-wrap .elementor-list-item-link-full_width.elementor-element {
    flex: 0 0 auto;
}

/* Fiche bien, « Description détaillée » : la colonne « Plan d'étage » s'aligne sur la colonne « Situation » du bloc
   au-dessus (55 % / 45 % du conteneur, bords gauche et droit), 50 px entre les accordéons et le plan.
   La colonne parente garde une marge droite de 25 px : on la compense (100 % + 25 px).
   Ordinateur seulement : en tablette et mobile les colonnes s'empilent. */
@media (min-width: 1025px) {
    body .elementor-12913 .elementor-element.elementor-element-a2b8b2c {
        width: calc((100% + 25px) * 0.55);
        flex-shrink: 0;
    }
    body .elementor-12913 .elementor-element.elementor-element-a2b8b2c > .elementor-widget-wrap {
        padding-right: 40px;
    }
    body .elementor-12913 .elementor-element.elementor-element-9d2917c {
        width: calc((100% + 25px) * 0.45 + 10px);
        margin-right: -35px; /* + les 10 px de marge intérieure de la section, que la colonne Situation n'a pas à droite */
        flex-shrink: 0;
    }
    body .elementor-12913 .elementor-element.elementor-element-9d2917c > .elementor-widget-wrap {
        padding-left: 10px;
    }
}

/* Acheter et Biens vendus : le tri (liste « Les plus récents ») a la même typographie que le bouton « Filtres de recherche » */
.elementor-widget-shortcode .nice-select,
.elementor-widget-shortcode .nice-select .current {
    font-weight: 400;
}
.elementor-widget-shortcode .nice-select {
    border-color: rgba(0, 0, 0, 0.2);
}


/* Boutons de partage (fiche bien) : icônes e-mail et Facebook de la charte, à la place de celles de Font Awesome */
.elementor-share-btn_email .elementor-share-btn__icon i,
.elementor-share-btn_facebook .elementor-share-btn__icon i {
    display: none;
}
.elementor-share-btn_email .elementor-share-btn__icon::before,
.elementor-share-btn_facebook .elementor-share-btn__icon::before {
    content: "";
    display: block;
    width: 15px;
    height: 15px;
    background-color: var(--e-global-color-primary, #111B21);
    -webkit-mask: url("../images/partage-mail.svg") center / contain no-repeat;
    mask: url("../images/partage-mail.svg") center / contain no-repeat;
}
.elementor-share-btn_email .elementor-share-btn__icon::before {
    width: 16px;
}
.elementor-share-btn_facebook .elementor-share-btn__icon::before {
    -webkit-mask-image: url("../images/partage-facebook.svg");
    mask-image: url("../images/partage-facebook.svg");
}

/* ===== Retours client 09/11/2026 ===== */

/* Vendre (FR/EN/NL) — encadré « mandat exclusif » : chaque titre réserve deux lignes, les textes partent à la même hauteur */
@media (min-width: 1001px) {
    .elementor-element-8b34993 .elementor-testimonial__text {
        min-height: 3em;
    }
}

/* Honoraires — tableau « Vente » : chaque tranche de prix sur une seule ligne */
.uael-business-scheduler-box-wrapper .uael-inner .heading-date {
    flex: 1 1 auto !important;
    width: auto !important;
    max-width: none !important;
    white-space: nowrap;
}
.uael-business-scheduler-box-wrapper .uael-inner .heading-time {
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: none !important;
}

/* Accueil — bouton « Zoekservice & aankoopbegeleiding » sur une ligne, comme celui du bas de Verkopen */
.elementor-element-10f0f29 .elementor-button,
.elementor-element-10f0f29 .elementor-button-text {
    white-space: nowrap;
}

/* Tri des biens (EN/NL) : liste plus large, libellés entiers */
html[lang^="en"] .elementor-widget-shortcode .nice-select,
html[lang^="nl"] .elementor-widget-shortcode .nice-select {
    min-width: 200px;
}
.elementor-widget-shortcode .nice-select .list {
    min-width: 100%;
}

/* Biens vendus : pagination recopiée au-dessus de la grille (pas de barre d'outils sur cette page) */
.liste-biens-page .barre-pagination-haut {
    width: 100%;
    display: flex;
    justify-content: center;
    margin-bottom: 30px;
}
.liste-biens-page .barre-pagination-haut .pagination-haut {
    position: static;
    transform: none;
}

/* Retours client 09/11/2026 (3) — Vendre : photos du carrousel « Découvrez comment… » au même format en tablette et mobile
   (sur ordinateur, le CSS de la page les étire en pleine hauteur). */
@media (max-width: 1024px) {
  .bdm-photos-pleine-hauteur .swiper-slide-image { width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; }
}

/* Retours client 09/11/2026 (3) — Accueil, « Une vente réussie se prépare… » : chaque titre de carte occupe deux lignes,
   pour que les textes en dessous s'alignent quelle que soit la langue. */
@media (min-width: 768px) {
  .elementor-element-79eab5a .elementor-testimonial__text { min-height: 3em; min-height: 2lh; }
}

/* Retours client 09/11/2026 (4) — Recherche (FR/EN/NL, mêmes identifiants d'éléments) */
/* Encadré gris « Vous avez déjà trouvé une propriété qui vous intéresse ? » : petit trait doré devant le titre (texte aligné à gauche dans Elementor). */
.elementor-element-ac10365 .elementor-heading-title::before {
  content: ""; display: inline-block !important; width: 40px; height: 2px; margin-right: 15px;
  vertical-align: middle; background: #BA8531;
}
/* Encadrés « Combien coûte ce service ? » : sous 1024 px, colonne d'icône à largeur fixe (elle était en %, donc variable d'un encadré à l'autre),
   pour que les trois titres partent du même point que leurs textes (décalés de 70 px). */
@media (min-width: 768px) and (max-width: 1024px) {
  .elementor-element-ac4c20f, .elementor-element-ac565c8, .elementor-element-0c65454 { width: 50px !important; }
  .elementor-element-6778f52, .elementor-element-031a004, .elementor-element-1bfd34d { width: calc(100% - 70px) !important; }
}
/* Accueil, carrousel « Une vente réussie… » : sous 1270 px, les flèches passaient sur les photos. On réserve une bande au-dessus des photos. */
@media (max-width: 1270px) {
  .elementor-element-79eab5a .elementor-main-swiper { padding-top: 60px; }
  .elementor-element-79eab5a .elementor-swiper-button { top: 30px !important; }
}
