/*
Theme Name: Houzez Child
Theme URI: https://anf-immo.fr
Description: Thème enfant de Houzez
Author: LMHT
Author URI: https://anf-immo.fr
Template: houzez
Version: 1.0.0
*/

.hover-card:hover .elementor-heading-title,
.hover-card:hover .elementor-widget-text-editor {
    color: #ffffff !important;
}

.footer-bottom-wrap {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
.footer-top-wrap .widget-title {
    color: #ffffff !important;
    Font-weight: 600;
}

.custom-carousel .swiper-pagination {
    margin-top: 16px;
}

.icon-service {
    width: 30px;
    height: auto;
    margin-right: 2px;
    margin-left: 20px;
    vertical-align: middle;
}

.icon-service:first-of-type {
    margin-left: 0;
}

.footer-top-wrap .menu li a {
    font-size: 12px !important;
    color: #909CC2 !important;
}

.footer-top-wrap .contact-list a {
    color: #909CC2 !important;
    font-size: 12px !important;
    font-weight: 500 !important;
}

.houzez-nav-menu-main .dropdown-toggle::after {
    display: none !important;
}
.header-main-wrap .nav-item.dropdown > a.dropdown-toggle::after {
    display: none !important;
}

.footer-top-wrap .contact-list li span {
    color: #909CC2 !important;
    font-size: 12px !important;
    font-weight: 500 !important;
}

.houzez-icon.icon-envelope,
.houzez-icon.icon-answer-machine {
    display: none !important;
}

html, body {
    width: 100%;
    overflow-x: hidden;
}
.header-v4 {
    z-index: 10 !important;
    width: 100% !important;
    box-shadow: 0px 25px 40px rgba(0, 0, 0, 0.03) !important;
    background: white !important;
    border-bottom: 1px solid #D8D7FF !important;
    opacity: 1 !important;
    transition: opacity 0s ease;
}
.main-nav .dropdown-toggle:after, .houzez-nav-menu-main-desktop-wrap .houzez-nav-menu-main .dropdown-toggle:after {
    color: #5C59F3;
}
.main-nav .navbar-nav .nav-item .dropdown-menu, .login-register .login-register-nav li .dropdown-menu {
    padding: 20px;
    position: absolute;
    left: 0;
    opacity: 0;
    transition: top 0.01s, opacity 0s;
    width: 280px;
    background: #FFFFFF;
    box-shadow: 0px 3px 12px rgba(0, 0, 0, 0.05);
    border-radius: 15px;
    border: 1px solid #E5E5FF;
}
.dropdown-item {
    font-weight: 600;
    font-size: 12px;
}
.main-nav .navbar-nav .nav-item .nav-item a, .login-register .login-register-nav li .dropdown-menu .nav-item a {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    padding: 14px 0px;
    border-radius: 5px;
}
.main-nav:not(.houzez-nav-menu-main) .dropdown-item {
    padding: 15px;
    line-height: 3;
    min-width: 250px;
    font-family: "poppins";
}
.header-mobile-right {
    display: none;
}
.header-mobile {
    width: 100%;
}
.header-mobile .logo {
    margin: 0px 45px 0px 0px;
}
.nav-mobile:not(.houzez-nav-menu-main-mobile-wrap) .main-nav .nav-item .nav-mobile-trigger {
    height: 56px;
    width: 400px;
    line-height: 56px;
}
.heading span {
    color: #5C59F3;
}
.headingsecond span {
    color: #f95143;
}
/* Dégradé 90° turquoise → bleu foncé */
.gradient-text-teal {
    background: linear-gradient(90deg, #5de0e6, #004aad);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.header-main-wrap .login-register-nav .btn-create-listing {
    padding: 0 15px;
    border-radius: 15px 15px 15px 15px;
}
.mobile-property-contact {
    display: none;
}
.sort-by .form-control, .sort-by .btn-light.dropdown-toggle {
    display: none;
}
.sort-by-title, .woocommerce ul.products li.product .button {
    font-family: Jost;
    font-size: 15px;
    display: none;
}

@media (min-width: 1025px) and (max-width: 1366px) {
    #header-section .container {
        max-width: none !important;
        width: 100% !important;
        padding-left: 100px !important;
        padding-right: 100px !important;
    }
    .header-mobile .logo {
        margin: 0px 15px 0px 0px;
    }
}

@media (max-width: 480px) {
    .icon-service {
        width: 25px !important;
        margin-right: 2px;
        margin-left: 8px;
    }
    .icon-service:first-of-type {
        margin-left: 0;
    }
}



@media (max-width: 1024px) {
    body {
        width: 100%;
        padding-top: 80px;
    }
    .header-mobile {
        flex-direction: row-reverse;
        height: 80px;
        position: fixed !important;
        top: 0;
        left: 0;
        right: 0;
        z-index: 999;
        transition: background 0.3s ease;
    }
    .header-mobile-center {
        justify-content: flex-start !important;
        flex-grow: 0 !important;
        margin-right: auto !important;
        padding-left: 15px;
    }
    .header-mobile .logo img {
        width: 100px !important;
        height: auto !important;
    }
    .header-mobile .toggle-button-left {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        margin-right: 10px;
    }
    .header-mobile .toggle-button-left .houzez-icon {
        display: none !important;
    }
    .header-mobile .toggle-button-left::after {
        content: '';
        display: block;
        width: 14px;
        height: 14px;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 19'%3E%3Crect y='0' width='22' height='3' rx='1.5' fill='%235C59F3'/%3E%3Crect y='8' width='22' height='3' rx='1.5' fill='%235C59F3'/%3E%3Crect y='16' width='22' height='3' rx='1.5' fill='%235C59F3'/%3E%3C/svg%3E");
        background-size: contain;
        background-repeat: no-repeat;
    }
    .header-mobile .toggle-button-left.is-open::after {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M1 1l14 14M15 1L1 15' stroke='%235C59F3' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E");
    }
    .header-mobile .toggle-button-left, .header-mobile .toggle-button-right {
        font-size: 15px;
        color: #5C59F3 !important;
        background-color: #ffffff;
        box-shadow: 0px 6px 4px 0px #4647540F;
        justify-content: center;
        width: 45px;
        height: 45px;
        border-radius: 16px;
        cursor: pointer;
        border: 1px solid #ecf1fc;
    }
    .houzez-theme .houzez-icon, .houzez-icon {
        font-weight: 700;
    }
    .nav-mobile .nav-item.dropdown {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        flex-wrap: wrap !important;
        cursor: pointer !important;
    }
    .nav-mobile .nav-item.dropdown > a {
        flex: 1 !important;
    }
    .nav-mobile:not(.houzez-nav-menu-main-mobile-wrap) .main-nav .nav-item .nav-mobile-trigger {
        position: relative !important;
        width: 40px !important;
        height: 40px !important;
        left: auto !important;
        line-height: 40px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        font-size: 20px !important;
        margin-right: 10px !important;
    }
    .nav-mobile-trigger .houzez-icon {
        color: #5C59F3 !important;
    }
    .nav-mobile .nav-item .dropdown-menu {
        position: static !important;
        width: 100% !important;
        box-shadow: none !important;
        border: none !important;
        padding: 0 0 0 15px !important;
        border-radius: 0 !important;
    }
    .nav-mobile:not(.houzez-nav-menu-main-mobile-wrap) .main-nav .nav-item a {
        border-bottom: 0px;
    }
    .nav-mobile:not(.houzez-nav-menu-main-mobile-wrap) .main-nav .nav-item .dropdown-menu .nav-item a {
        padding-top: 16px !important;
        padding-right: 15px !important;
        padding-bottom: 16px !important;
        padding-left: 10px !important;
    }
    .main-nav .navbar-nav .nav-item .dropdown-menu, .login-register .login-register-nav li .dropdown-menu {
        padding: 20px;
        width: 240px;
    }
    .main-nav:not(.houzez-nav-menu-main) .dropdown-item {
        min-width: 0px;
    }
    .nav-mobile .navbar-nav > .nav-item > a {
        font-size: 20px !important;
        color: #282830 !important;
        font-weight: 500 !important;
    }
    .nav-mobile .navbar-nav > .nav-item .dropdown-menu .nav-item a {
        font-size: 16px !important;
        color: #282830 !important;
        font-weight: 700 !important;
    }
    #hz-offcanvas-mobile-menu .navbar-nav > .nav-item {
        padding-left: 5px !important;
        padding-top: 10px !important;
        padding-bottom: 10px !important;
    }
    #hz-offcanvas-mobile-menu .navbar-nav {
        margin-top: 25px !important;
    }
    #hz-offcanvas-mobile-menu .offcanvas-body {
        padding-top: 0 !important;
    }
    .elementor-kit-8 h1 {
        font-size: 24px;
    }
    #hz-offcanvas-mobile-menu {
        height: calc(100vh - 80px) !important;
        margin-top: 0 !important;
        top: 80px !important;
        transition: transform 0.05s ease !important;
        z-index: 10000 !important;
    }
    #hz-offcanvas-mobile-menu .dropdown-menu {
        padding-bottom: 15px !important;
    }
    .offcanvas-mobile-menu .offcanvas-header {
        display: none !important;
    }
    .offcanvas-backdrop {
        top: 80px !important;
        opacity: 0.3 !important;
        z-index: 9999 !important;
    }
    .header-mobile-left {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        gap: 8px !important;
    }
    .nav-mobile-trigger .houzez-icon {
        display: none !important;
    }
    #hz-offcanvas-mobile-menu .nav-mobile-trigger::after {
        display: none !important;
    }
    #hz-offcanvas-mobile-menu .dropdown-toggle::after {
        display: none !important;
    }
    .offcanvas-mobile-menu-body .wp-block-button__link.has-white-background-color {
        border: 1px solid #D8D7FF !important;
    }
}
/* ==============================================
   CUSTOM CAROUSEL
   ============================================== */

/* Overflow visible + clip pour afficher le début des slides suivantes */
.custom-carousel .swiper {
    overflow: visible;
    clip-path: inset(0 -200% 0 0);
}

/* Mobile : slides à 85% pour afficher ~15% de la suivante */
@media (max-width: 766px) {
    .custom-carousel .swiper-slide {
        width: 85% !important;
    }
}

/* 1. Flèches : desktop uniquement (>= 1025px) */
.custom-carousel .elementor-swiper-button {
    display: none !important;
}
@media (min-width: 1025px) {
    .custom-carousel .elementor-swiper-button {
        display: flex !important;
    }
}

/* 2. Dots : mobile + tablette portrait uniquement (< 1025px) */
.custom-carousel .swiper-pagination {
    display: none !important;
}
@media (max-width: 1024px) {
    .custom-carousel .swiper-pagination {
        display: flex !important;
        justify-content: center;
        gap: 6px;
    }
}

/* 3. Flèche après les titres H3 dans le carousel */
.custom-carousel .swiper-slide h3.elementor-heading-title::after {
    content: '→';
    margin-left: 8px;
}

/* 4. Dot actif en forme de pilule allongée */
.custom-carousel .swiper-pagination-bullet {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    transition: width 0.3s ease, border-radius 0.3s ease;
}
.custom-carousel .swiper-pagination-bullet-active {
    width: 24px !important;
    border-radius: 4px !important;
}

/* Carousel sans débordement */
.custom-carousel-simple .elementor-swiper-button {
    display: none !important;
}
@media (min-width: 1025px) {
    .custom-carousel-simple .elementor-swiper-button {
        display: flex !important;
    }
}
.custom-carousel-simple .swiper-pagination {
    display: flex !important;
    justify-content: center;
    gap: 6px;
    margin-top: 16px;
}
.custom-carousel-simple .swiper-pagination-bullet {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    transition: width 0.3s ease, border-radius 0.3s ease;
}
.custom-carousel-simple .swiper-pagination-bullet-active {
    width: 24px !important;
    border-radius: 4px !important;
}

/* ============================================================
   ACCORDÉON FAQ - Grand format
   Classe Elementor : accordion-large
   ============================================================ */

.accordion-large .e-n-accordion-item-title {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 16px;
    padding: 16px 0;
}

.accordion-large .e-n-accordion-item-title-header {
    flex: 1 !important;
    order: 1 !important;
}

.accordion-large .e-n-accordion-item-title-icon {
    order: 2 !important;
    flex-shrink: 0 !important;
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    min-height: 36px !important;
    border-radius: 50% !important;
    background: white !important;
    border: 1px solid #cccccc !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin-left: auto !important;
    box-sizing: border-box !important;
    padding: 0 !important;
}

.accordion-large .e-n-accordion-item:not([open]) .e-n-accordion-item-title-icon .e-opened {
    display: none !important;
}
.accordion-large .e-n-accordion-item:not([open]) .e-n-accordion-item-title-icon .e-closed {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.accordion-large .e-n-accordion-item[open] .e-n-accordion-item-title-icon .e-closed {
    display: none !important;
}
.accordion-large .e-n-accordion-item[open] .e-n-accordion-item-title-icon .e-opened {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.accordion-large .e-n-accordion-item-title-icon svg {
    width: 14px !important;
    height: 14px !important;
    fill: #444444 !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
}

.accordion-large .e-n-accordion-item {
    border: none !important;
    border-bottom: 1px solid #e0e0e0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

.accordion-large .e-n-accordion-item[open] {
    border: none !important;
    border-bottom: 1px solid #e0e0e0 !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* ============================================================
   ACCORDÉON FAQ - Petit format
   Classe Elementor : accordion-small
   ============================================================ */

.accordion-small .e-n-accordion-item-title {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 16px;
    padding: 16px 0;
}

.accordion-small .e-n-accordion-item-title-header {
    flex: 1 !important;
    order: 1 !important;
}

.accordion-small .e-n-accordion-item-title-icon {
    order: 2 !important;
    flex-shrink: 0 !important;
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
    min-height: 28px !important;
    border-radius: 50% !important;
    background: white !important;
    border: 1px solid #cccccc !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin-left: auto !important;
    box-sizing: border-box !important;
    padding: 0 !important;
}

.accordion-small .e-n-accordion-item:not([open]) .e-n-accordion-item-title-icon .e-opened {
    display: none !important;
}
.accordion-small .e-n-accordion-item:not([open]) .e-n-accordion-item-title-icon .e-closed {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.accordion-small .e-n-accordion-item[open] .e-n-accordion-item-title-icon .e-closed {
    display: none !important;
}
.accordion-small .e-n-accordion-item[open] .e-n-accordion-item-title-icon .e-opened {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.accordion-small .e-n-accordion-item-title-icon svg {
    width: 11px !important;
    height: 11px !important;
    fill: #444444 !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
}

.accordion-small .e-n-accordion-item {
    border: none !important;
    border-bottom: 1px solid #e0e0e0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

.accordion-small .e-n-accordion-item[open] {
    border: none !important;
    border-bottom: 1px solid #e0e0e0 !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}





/* =============================================
   LMHT — Carrousel Property Cards
   (home, /vendre/, /gestion-locative/ — widget houzez_elementor_properties_carousel_v2)
   ---------------------------------------------
   NB : la largeur du carrousel est déjà gérée plus haut, par l'exclusion
   :not(.houzez-all-slider-wrap) ajoutée aux DEUX sélecteurs de la règle
   « .listing-view.grid-view > div / [class*="col"] { max-width: 380px } ».
   Ce bloc ne gère que l'intérieur des cards du carrousel.
   ============================================= */

/* Boîtes chambres / surface / prix : 2 colonnes, la case Prix passe sous les deux */
.elementor-widget-houzez_elementor_properties_carousel_v2 .item-amenities {
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
}
.elementor-widget-houzez_elementor_properties_carousel_v2 .item-amenities > li:last-child {
    grid-column: 1 / -1;
}

/* Masquer la barre de statut (Disponible/Vendu) — on n'y présente que des biens disponibles.
   Ne touche pas aux grilles listing de /acheter/ et /louer/, qui gardent leur barre. */
.elementor-widget-houzez_elementor_properties_carousel_v2 .lmht-status-btn {
    display: none !important;
}

/* =============================================
   LMHT — Personnalisation Property Cards V1
   ============================================= */


/* ===== CARD WRAP — contexte de positionnement isolé ===== */
.item-listing-wrap .item-wrap {
    border-radius: 16px !important;
    overflow: visible !important;
    isolation: isolate;
}

/* ===== GRILLE — centrage quand moins de 3 cards ===== */
.listing-view.grid-view {
    justify-content: flex-start !important;
}
.listing-view.grid-view > div:not(.houzez-all-slider-wrap),
.listing-view.grid-view > [class*="col"]:not(.houzez-all-slider-wrap) {
    max-width: 380px;
}

/* Carrousel — masquer la barre de statut (on n'y présente que des biens disponibles) */
.elementor-widget-houzez_elementor_properties_carousel_v2 .lmht-status-btn {
    display: none !important;
}

/* ===== IMAGE — conteneur ===== */
.item-listing-wrap .listing-image-wrap {
    position: relative;
    width: 100%;
    padding: 12px 12px 12px;
    box-sizing: border-box;
}
.item-listing-wrap .listing-featured-thumb {
    border-radius: 12px !important;
    overflow: hidden !important;
    height: 180px;
}
.item-listing-wrap .listing-thumb img,
.item-listing-wrap .listing-featured-thumb img {
    height: 100%;
    object-fit: cover;
    width: 100%;
    display: block;
    border-radius: 0 !important;
}

/* ===== SUPPRIMER le calque noir au survol ===== */
.item-listing-wrap .listing-featured-thumb::before,
.item-listing-wrap .listing-featured-thumb::after,
.item-listing-wrap .hover-effect::before,
.item-listing-wrap .hover-effect::after {
    display: none !important;
}
.item-listing-wrap .listing-featured-thumb .overlay,
.item-listing-wrap .hover-effect .overlay {
    display: none !important;
}

/* ===== LABELS — haut à droite sur l'image ===== */
.item-listing-wrap .labels-wrap {
    position: absolute;
    top: 20px;
    right: 20px;
    left: auto !important;
    z-index: 5;
    flex-direction: row;
    gap: 4px;
}

/* ===== LABEL STATUT — masquer Disponible ===== */
.item-listing-wrap .label-status {
    display: none !important;
}
/* Loué — status-color-34 */
.item-listing-wrap .label.status-color-34 {
    display: inline-flex !important;
    align-items: center;
    padding: 4px 10px;
    border-radius: 99px;
    font-family: 'Poppins', sans-serif;
    font-size: 11px;
    font-weight: 500;
    background: #D64545;
    color: #FFFFFF;
    text-decoration: none;
    border: none;
}

/* ===== LABEL ÉTIQUETTE — masquer tout sauf Meublé ===== */
.item-listing-wrap .hz-label {
    display: none !important;
}
/* Meublé — label-color-53 */
.item-listing-wrap .label.label-color-53 {
    display: inline-flex !important;
    align-items: center;
    padding: 4px 10px;
    border-radius: 99px;
    font-family: 'Poppins', sans-serif;
    font-size: 11px;
    font-weight: 500;
    background: #EEEDFE;
    color: #5C59F3;
    text-decoration: none;
    border: none;
}

/* ===== PRIX — masquer l'ancien emplacement ===== */
.item-listing-wrap .item-price-wrap {
    display: none !important;
}

/* ===== IMAGE WRAP — position relative pour les labels ===== */
.item-listing-wrap .listing-image-wrap {
    position: relative;
    width: 100%;
}

/* ===== TITRE — masqué ===== */
.item-listing-wrap .item-title {
    display: none !important;
}

/* ===== TYPE affiché en remplacement du titre ===== */
.lmht-type-title {
    font-family: 'Poppins', sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: #000;
    margin: 8px 16px 4px;
}

/* ===== ADRESSE ===== */
.item-listing-wrap .item-address {
    font-family: 'Poppins', sans-serif;
    font-size: 12px;
    color: #888;
    margin: 0 16px 10px;
    display: flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ===== BODY ===== */
.item-listing-wrap .item-body {
    padding: 0;
    width: 100%;
}

/* ===== GRILLE INFOS ===== */
.item-listing-wrap .item-amenities {
    display: grid !important;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 8px;
    margin: 0 16px 10px;
    list-style: none;
    padding: 0;
    width: calc(100% - 32px);
}

/* Chaque box d'info */
.item-listing-wrap .item-amenities li {
    display: flex !important;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    text-align: left !important;
    border: 1px solid #e8e8e8;
    border-radius: 8px;
    padding: 8px 10px;
    gap: 8px;
    margin: 0 !important;
    min-height: 68px;
}

/* h-type masqué dans grille */
.item-listing-wrap .item-amenities .h-type {
    display: none !important;
}

/* Masquer icônes Houzez originales */
.item-listing-wrap .item-amenities .houzez-icon {
    display: none !important;
}

/* Masquer texte "Chambres:" */
.item-listing-wrap .item-amenities .item-amenities-text {
    display: none !important;
}

/* Chiffres */
.item-listing-wrap .h-beds .hz-figure,
.item-listing-wrap .h-area .hz-figure,
.item-listing-wrap .h-area .area_postfix {
    font-family: 'Poppins', sans-serif;
    font-size: 13px;
    font-weight: 500;
    color: #000;
    display: inline;
}

/* ===== ICÔNE LIT — haut gauche ===== */
.item-listing-wrap .h-beds {
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
}
.item-listing-wrap .h-beds::before {
    content: '';
    display: block;
    width: 18px;
    height: 18px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23888888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 20v-8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v8'/%3E%3Cpath d='M4 10V6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4'/%3E%3Cpath d='M12 4v6'/%3E%3Cpath d='M2 18h20'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    flex-shrink: 0;
    align-self: flex-start;
}
/* Parking */
.item-listing-wrap .h-beds.lmht-beds-parking::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='%23888888' viewBox='0 0 256 256'%3E%3Cpath d='M240,112H211.31L168,68.69A15.86,15.86,0,0,0,156.69,64H44.28A16,16,0,0,0,31,71.12L1.34,115.56A8.07,8.07,0,0,0,0,120v48a16,16,0,0,0,16,16H33a32,32,0,0,0,62,0h66a32,32,0,0,0,62,0h17a16,16,0,0,0,16-16V128A16,16,0,0,0,240,112ZM44.28,80H156.69l32,32H23ZM64,192a16,16,0,1,1,16-16A16,16,0,0,1,64,192Zm128,0a16,16,0,1,1,16-16A16,16,0,0,1,192,192Zm48-24H223a32,32,0,0,0-62,0H95a32,32,0,0,0-62,0H16V128H240Z'/%3E%3C/svg%3E");
}

/* Local commercial */
.item-listing-wrap .h-beds.lmht-beds-shop::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='%23888888' viewBox='0 0 256 256'%3E%3Cpath d='M232,96a7.89,7.89,0,0,0-.3-2.2L217.35,43.6A16.07,16.07,0,0,0,202,32H54A16.07,16.07,0,0,0,38.65,43.6L24.31,93.8A7.89,7.89,0,0,0,24,96h0v16a40,40,0,0,0,16,32v72a8,8,0,0,0,8,8H208a8,8,0,0,0,8-8V144a40,40,0,0,0,16-32V96ZM54,48H202l11.42,40H42.61Zm50,56h48v8a24,24,0,0,1-48,0Zm-16,0v8a24,24,0,0,1-35.12,21.26,7.88,7.88,0,0,0-1.82-1.06A24,24,0,0,1,40,112v-8ZM200,208H56V151.2a40.57,40.57,0,0,0,8,.8,40,40,0,0,0,32-16,40,40,0,0,0,64,0,40,40,0,0,0,32,16,40.57,40.57,0,0,0,8-.8Zm4.93-75.8a8.08,8.08,0,0,0-1.8,1.05A24,24,0,0,1,168,112v-8h48v8A24,24,0,0,1,204.93,132.2Z'/%3E%3C/svg%3E");
}

/* Bureau */
.item-listing-wrap .h-beds.lmht-beds-bureau::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='%23888888' viewBox='0 0 256 256'%3E%3Cpath d='M216,72a8,8,0,0,1-8,8H176a8,8,0,0,1,0-16h32A8,8,0,0,1,216,72Zm-8,24H176a8,8,0,0,0,0,16h32a8,8,0,0,0,0-16Zm40-48V208a16,16,0,0,1-16,16H152a16,16,0,0,1-16-16V192H96v16h16a8,8,0,0,1,0,16H64a8,8,0,0,1,0-16H80V192H32A24,24,0,0,1,8,168V96A24,24,0,0,1,32,72H136V48a16,16,0,0,1,16-16h80A16,16,0,0,1,248,48ZM136,176V88H32a8,8,0,0,0-8,8v72a8,8,0,0,0,8,8Zm96,32V48H152V208h80Zm-40-40a12,12,0,1,0,12,12A12,12,0,0,0,192,168Z'/%3E%3C/svg%3E");
}

/* ===== ICÔNE SURFACE — haut gauche ===== */
.item-listing-wrap .h-area {
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
}
.item-listing-wrap .h-area::before {
    content: '';
    display: block;
    width: 18px;
    height: 18px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23888888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7V5a2 2 0 0 1 2-2h2'/%3E%3Cpath d='M17 3h2a2 2 0 0 1 2 2v2'/%3E%3Cpath d='M21 17v2a2 2 0 0 1-2 2h-2'/%3E%3Cpath d='M7 21H5a2 2 0 0 1-2-2v-2'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    flex-shrink: 0;
    align-self: flex-start;
}

/* ===== GRILLE — adaptation colonnes selon nb de résultats ===== */
.listing-view.grid-view.row-cols-lg-1 .item-listing-wrap {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
}
.listing-view.grid-view.row-cols-lg-2 .item-listing-wrap {
    width: 50% !important;
    max-width: 50% !important;
    flex: 0 0 50% !important;
}

/* ===== FORCER LARGEUR PLEINE DES PROPERTIES GRID ===== */
.elementor-element-bf31682,
.elementor-element-f8286d4 {
    width: 100% !important;
    max-width: 100% !important;
}
.item-listing-wrap .btn-item {
    display: none !important;
}

/* ===== BOUTON STATUT EN BAS ===== */
.lmht-status-btn {
    display: block;
    margin: 6px 16px 16px;
    width: calc(100% - 32px);
    box-sizing: border-box;
    text-align: center;
    padding: 10px;
    border: 1px solid #e8e8e8;
    border-radius: 8px;
    font-family: 'Poppins', sans-serif;
    font-size: 13px;
    font-weight: 400;
    color: #333;
    background: white;
}
.lmht-status-btn.loue {
    color: #C0392B;
    border-color: #FDECEA;
    background: #FDECEA;
}

/* ===== PAGE ACHETER — pills ===== */

/* Vendu — status-color-32 */
.lmht-page-acheter .item-listing-wrap .label.status-color-32 {
    display: inline-flex !important;
    align-items: center;
    padding: 4px 10px;
    border-radius: 99px;
    font-family: 'Poppins', sans-serif;
    font-size: 11px;
    font-weight: 500;
    background: #D64545;
    color: #FFFFFF;
    text-decoration: none;
    border: none;
}

/* Exclusivité — label-color-42 */
.lmht-page-acheter .item-listing-wrap .label.label-color-42 {
    display: inline-flex !important;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: 99px;
    font-family: 'Poppins', sans-serif;
    font-size: 11px;
    font-weight: 500;
    background: #EEEDFE;
    color: #5C59F3;
    text-decoration: none;
    border: none;
}

/* Masquer Exclusivité sur biens vendus via classe JS */
.lmht-page-acheter .item-listing-wrap .label.label-color-42.lmht-hidden {
    display: none !important;
}

/* ===== PAGE ACHETER — widget grilles pleine largeur ===== */
.lmht-page-acheter .elementor-element-dcc11d1,
.lmht-page-acheter .elementor-element-5fd49cd {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 !important;
}

/* ===== POPUP MAP — HOUZEZ INFO WINDOW ===== */

/* Border radius sur la popup Google Maps */
.gm-style-iw-c {
    border-radius: 16px !important;
    padding: 0 !important;
    overflow: hidden !important;
    box-shadow: 0 8px 32px rgba(0,0,0,0.15) !important;
}
.gm-style-iw-d {
    overflow: hidden !important;
    padding: 0 !important;
}

/* Masquer le bouton fermer par défaut et la croix Houzez */
.gm-style-iw-chr { display: none !important; }

/* Conteneur principal */
.property-info-window {
    font-family: 'Poppins', sans-serif !important;
    width: 260px !important;
    cursor: pointer;
}

/* Image avec margin et border radius */
.property-info-window .info-window-image {
    padding: 8px 8px 0 8px;
}
.property-info-window .info-window-image img {
    border-radius: 10px !important;
    width: 100% !important;
    height: 160px !important;
    object-fit: cover !important;
    display: block;
}

/* Zone de contenu */
.property-info-window .info-content {
    padding: 22px 12px 12px 12px !important;
}

/* Prix */
.property-info-window .info-window-price {
    font-size: 16px !important;
    font-weight: 600 !important;
    color: #0a0e34 !important;
    margin-bottom: 8px !important;
}

/* Type de bien */
.property-info-window .info-window-property-type {
    font-size: 11px !important;
    font-weight: 500 !important;
    color: #888 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    margin-bottom: 4px !important;
}

/* Adresse — sans !important sur display pour que le JS puisse la masquer */
.property-info-window .info-window-address-info {
    font-size: 12px !important;
    color: #555 !important;
    display: flex;
    align-items: center !important;
    gap: 4px !important;
    margin-bottom: 8px !important;
}
.property-info-window .info-window-address-info .houzez-icon {
    font-size: 11px !important;
}

/* Encadré info-details */
.property-info-window .info-window-info-details {
    display: flex !important;
    gap: 8px !important;
    background: #f8f8f8 !important;
    border-radius: 8px !important;
    padding: 8px 10px !important;
    margin-top: 8px !important;
}

/* Items méta */
.property-info-window .info-window-meta-item {
    display: flex !important;
    align-items: center !important;
    gap: 5px !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    color: #333 !important;
}

/* Masquer les icônes Houzez originales — remplacées par JS */
.property-info-window .houzez-icon {
    display: none !important;
}

/* Masquer l'adresse Houzez — remplacée par le pill JS */
.property-info-window .info-window-address-info[style*="display: none"],
.property-info-window .info-window-address-info[style*="display:none"] {
    display: none !important;
}

.property-info-window .info-window-image > div:not([data-lmht-pill]):not([data-lmht-pills-wrap]) {
    display: none !important;
}

/* ===== POPUP — ordre : type → info-details → prix ===== */
.property-info-window .info-content {
    display: flex !important;
    flex-direction: column !important;
}

.property-info-window .info-window-property-type {
    order: 1 !important;
}

.property-info-window .info-window-info-details {
    order: 2 !important;
}

.property-info-window .info-window-price {
    order: 3 !important;
}

/* Masquer la flèche triangulaire de la popup Google Maps */
.gm-style-iw-tc {
    display: none !important;
}

/* Curseur par défaut sur le contenu non cliquable de la popup */
.property-info-window .info-content {
    cursor: default !important;
}

/* Curseur pointer uniquement sur l'image (cliquable) */
.property-info-window .info-window-image {
    cursor: pointer !important;
}

/* ===== CARDS — pill ville à cheval sur l'image ===== */
.item-listing-wrap .item-header {
    overflow: visible !important;
    position: relative;
}

/* Ajouter du padding-top sur item-body pour que le pill ne chevauche pas le contenu */
.item-listing-wrap .item-body {
    padding-top: 22px !important;
}

.item-listing-wrap .item-body {
    padding-top: 18px !important;
}

/* === Fiche property : galerie — arrondi des images === */
.hs-gallery-v4-grid .img-fluid {
    border-radius: 12px;
}

/* === Fiche property : masquer l'en-tête au-dessus de la galerie (réintégré ailleurs) === */
.property-header-wrap { display: none !important; }

/* === Fiche property : rubriques (cartes blanches) — coins arrondis === */
.block-wrap:not(.border-0) { border-radius: 12px; }

/* === Fiche property : Caractéristiques — icône par caractéristique === */
.block-wrap li:has(a[href*="/feature/"]) {
    display: flex !important;
    align-items: center !important;
    margin-bottom: 10px;
}
.lmht-feat-icon {
    display: inline-flex;
    flex: 0 0 auto;
    width: 46px;
    height: 46px;
    background: #EAEFFB;
    border-radius: 12px;
    align-items: center;
    justify-content: center;
    color: #0a0e34;
    margin-right: 14px;
}
.lmht-feat-icon svg { width: 20px; height: 20px; display: block; }
.lmht-feat-icon i.houzez-icon { font-size: 20px; line-height: 1; } /* fallback tick */
.block-wrap li:has(a[href*="/feature/"]) a {
    color: #0a0e34 !important;
    font-weight: 400;
    font-size: 14px;
    pointer-events: none;   /* non cliquable */
    cursor: default;
}

/* === Fiche property : bande overview (reconstruite par JS) === */
.property-overview-data {
    background: #fff;
    border-radius: 99px;
    box-shadow: 0 12px 40px rgba(0,0,0,0.12);
    padding: 18px 30px;
    max-width: 1040px;
    margin: -70px auto 0;
    position: relative;
    z-index: 2;
}
.property-overview-data > ul {
    border-left: 0 !important;          /* corrigé : supprime le trait à gauche du 1er onglet */
    border-right: 1px solid #ececec;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: baseline;
    align-content: center;
    gap: 4px;
    padding: 0 10px;
    flex: 1 1 0 !important;
    min-width: 0;
}
.property-overview-data > ul:last-child,
.property-overview-data .lmht-overview-prix { border-right: 0 !important; }
.property-overview-data .property-overview-item { display: contents; }
.property-overview-data .property-overview-item .houzez-icon {
    flex: 0 0 100%;
    text-align: center;
    color: #0a0e34;
    margin: 0 0 6px 0;
}
.property-overview-data .property-overview-item .houzez-icon svg { width: 24px; height: 24px; display: block; margin: 0 auto; }
.property-overview-data .property-overview-item strong { font-size: 14px; font-weight: 600; color: #0a0e34; }
.property-overview-data .hz-meta-label { font-size: 14px; font-weight: 400; color: #0a0e34; white-space: nowrap; }
.property-overview-data .lmht-overview-prix {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    border-right: none;
}
.property-overview-data .lmht-prix-title { font-size: 13px; color: #0a0e34; white-space: nowrap; }
.property-overview-data .lmht-overview-prix strong { font-size: 16px; font-weight: 700; color: #0a0e34; }

/* === Fiche property : rubrique Informations financières === */
.lmht-finance .lmht-fin-row { display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding:7px 0; color:#0a0e34; }
.lmht-finance .lmht-fin-label { color:#0a0e34; }
.lmht-finance .lmht-fin-val { color:#0a0e34; font-weight:600; white-space:nowrap; }
.lmht-finance .lmht-fin-head .lmht-fin-label { font-weight:600; }
.lmht-finance .lmht-fin-big { font-weight:600; }
.lmht-finance .lmht-fin-big.lmht-fin-xl { font-size:20px; }       /* valeur Loyer / Prix de vente agrandie */
.lmht-finance .lmht-fin-divider { border:0; border-top:1px solid #c4cad6; margin:14px 0; }
.lmht-finance .lmht-fin-subhead { font-weight:600; color:#0a0e34; margin:4px 0 12px; }
.lmht-finance .lmht-fin-bail { margin-bottom:12px; }
.lmht-finance .lmht-fin-bailline { color:#0a0e34; }
.lmht-finance .lmht-fin-bailline strong { font-weight:600; }
.lmht-finance .lmht-fin-note { color:#63666e; font-size:13px; margin-top:3px; }

/* === Fiche property : widget Diagnostic énergétique === */
.lmht-dpe { display:flex; gap:24px; align-items:flex-start; }
.lmht-dpe-scale { flex:1; min-width:0; }
.lmht-dpe-scale:first-child { border-right:1px solid #ececec; padding-right:24px; }
.lmht-dpe-scale-title { font-weight:600; color:#0a0e34; margin-bottom:14px; font-size:14px; }
.lmht-dpe-row { display:flex; gap:6px; align-items:flex-start; justify-content:flex-start; padding-bottom:48px; }
.lmht-dpe-cell { display:flex; flex-direction:column; align-items:center; width:34px; position:relative; }
.lmht-dpe-sq { width:34px; height:34px; border-radius:9px; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:13px; flex:0 0 auto; }
.lmht-dpe-sq.is-active { height:46px; box-shadow:0 4px 12px rgba(0,0,0,.18); }
.lmht-dpe-stem { width:2px; height:18px; background:#c4cad6; margin-top:5px; }
.lmht-dpe-val { position:absolute; top:100%; left:50%; transform:translateX(-50%); margin-top:8px; text-align:center; white-space:nowrap; }
.lmht-dpe-val .num { display:block; font-size:17px; font-weight:700; color:#0a0e34; line-height:1.1; }
.lmht-dpe-val .unit { display:block; font-size:11px; color:#9aa0ad; margin-top:2px; }
@media (max-width:600px){
  .lmht-dpe { flex-direction:column; gap:8px; }
  .lmht-dpe-scale:first-child { border-right:0; padding-right:0; border-bottom:1px solid #ececec; }
}


/* === Fiche property : simulateur de prêt === */
.lmht-mortgage { display:flex; gap:30px; align-items:stretch; }
.lmht-mort-left { flex:1.2; min-width:0; display:flex; flex-direction:column; gap:14px; }
.lmht-mort-right { flex:1; min-width:0; border-left:1px solid #ececec; padding-left:30px; display:flex; flex-direction:column; justify-content:flex-start; gap:28px; }
.lmht-mort-line { display:flex; justify-content:flex-start; gap:8px; color:#0a0e34; align-items:baseline; }
.lmht-mort-line strong { font-weight:700; white-space:nowrap; }
.lmht-mort-result { display:flex; gap:48px; margin-top:8px; }
.lmht-mort-result .lbl { color:#0a0e34; font-weight:700; font-size:14px; margin-bottom:4px; }
.lmht-mort-result .big, .lmht-mort-result .rate { color:#5C59F3; font-weight:700; font-size:20px; line-height:1.1; }
.lmht-mort-slabel { display:flex; justify-content:space-between; margin-bottom:12px; color:#0a0e34; font-weight:600; }
.lmht-mort-slabel strong { color:#5C59F3; font-weight:700; font-size:18px; }
.lmht-mort-range { width:100%; accent-color:#5C59F3; }
.lmht-mort-note { margin-top:20px; color:#9aa0ad; font-size:12px; font-style:italic; }
@media (max-width:600px){
  .lmht-mortgage { flex-direction:column; gap:20px; }
  .lmht-mort-right { border-left:0; padding-left:0; border-top:1px solid #ececec; padding-top:20px; }
}

/* Fiche property : section Production (Chauffage / Eau chaude) */
.lmht-production{display:block;margin-bottom:42px}
.lmht-production .lmht-prod-item{display:flex;align-items:center}
.lmht-production .lmht-prod-txt{display:flex;flex-direction:column;gap:4px;line-height:1.2}
.lmht-production .lmht-prod-label{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#909CC2}
.lmht-production .lmht-prod-value{font-size:14px;font-weight:400;color:#0A0E34;font-family:Poppins,sans-serif}

/* Fiche property : bandeau titre + prix + pills */
.lmht-prop-head{margin:22px 0 4px}
.lmht-prop-head .lmht-head-top{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}
.lmht-prop-head h2.lmht-head-title{font-family:Poppins,sans-serif!important;font-size:30px!important;font-weight:400!important;line-height:1.4!important;color:#0A0E34!important;margin:0!important;flex:1 1 auto;max-width:64%}
.lmht-prop-head .lmht-head-price{flex-shrink:0;text-align:right;margin-top:8px}
.lmht-prop-head .lmht-head-price-main{font-family:Poppins,sans-serif;font-size:28px;font-weight:400;color:#0A0E34;white-space:nowrap}
.lmht-prop-head .lmht-head-price-m2{font-size:14px;color:#909CC2;margin-top:2px;white-space:nowrap}
.lmht-prop-head .lmht-head-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:20px}
.lmht-prop-head .lmht-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;font-family:Poppins,sans-serif;font-size:13px;font-weight:600;line-height:1}
.lmht-prop-head .lmht-pill-dispo{background:#E8F6EA;color:#3DA35D}
.lmht-prop-head .lmht-pill-indispo{background:#FBE9E9;color:#D64545}
.lmht-prop-head .lmht-pill-tag{background:#EAEFFB;color:#5C59F3}
.lmht-prop-head .lmht-pill-ref{background:#EEF0F4;color:#0A0E34}

/* ===== Fiche property : formulaire de contact ===== */
.widget-property-form{border-radius:12px;overflow:hidden;background:#fff}
.widget-property-form .agent-details{display:none!important} /* encart agent/agence masqué (cases target_email[] conservées dans le DOM) */
.lmht-form-banner{background:#EAEFFB;margin:-24px -24px 22px;padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.lmht-banner-txt{display:flex;flex-direction:column;gap:4px}
.lmht-banner-sub{font-family:Poppins,sans-serif;font-size:14px;color:#7E88A8}
.lmht-banner-title{font-family:Poppins,sans-serif;font-size:22px;font-weight:600;color:#0A0E34;line-height:1.1}
.lmht-banner-badge{flex-shrink:0;width:52px;height:52px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;color:#0A0E34}
.lmht-banner-badge svg{width:24px;height:24px}
.lmht-name-row{display:flex;gap:10px}
.lmht-name-row>*{flex:1;min-width:0;margin-bottom:0!important}
.widget-property-form .form-control{border-radius:40px;height:44px;padding:0 20px;border:1px solid #E3E3EA;font-size:14px;color:#0A0E34;margin-bottom:10px}
.widget-property-form .form-control::placeholder{color:#8A8A99;font-size:14px;opacity:1}
.widget-property-form textarea.form-control{border-radius:20px;height:auto;min-height:110px;padding:12px 20px;font-size:14px}
.widget-property-form .form-control.lmht-invalid{border-color:#D64545!important}
.lmht-required-note{font-size:13px;color:#8A8A99;margin:2px 0 14px}
.widget-property-form .btn{border-radius:40px!important;min-height:46px;background:#0A0E34!important;border-color:#0A0E34!important;color:#fff!important;font-weight:400;font-size:15px}
.widget-property-form .btn:hover,.widget-property-form .btn:focus{background:#0A0E34!important;border-color:#0A0E34!important;color:#fff!important}

/* ===== Fiche property : façade carte (lazy-load) + zoom custom ===== */
.lmht-map-wrap{position:relative;isolation:isolate;border-radius:12px;overflow:hidden;margin-top:1.5rem}
.lmht-map-wrap > #houzez-single-listing-map-address{margin-top:0!important}
.lmht-map-facade{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;
  cursor:pointer;background-size:cover;background-position:center;background-repeat:no-repeat;transition:opacity .45s ease}
.lmht-map-facade.lmht-hide{opacity:0;pointer-events:none}
.lmht-map-btn{display:inline-flex;align-items:center;gap:8px;background:#0A0E34;color:#fff;border:none;
  border-radius:40px;padding:13px 22px;font:600 15px Poppins,sans-serif;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.lmht-map-btn svg{width:20px;height:20px}
/* contrôle zoom custom */
.lmht-zoom{margin:14px;display:flex;flex-direction:column;background:#fff;border-radius:12px;
  box-shadow:0 4px 14px rgba(10,14,52,.18);overflow:hidden}
.lmht-zoom-btn{width:42px;height:42px;border:none;background:#fff;color:#0A0E34;
  font:500 22px/1 Poppins,sans-serif;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}
.lmht-zoom-btn:first-child{border-bottom:1px solid #ECECF2}
.lmht-zoom-btn:hover{background:#EAEFFB}

/* Fiche property : masque le bouton natif "Ouvrir sur Google Maps" */
.hz-btn-map{display:none!important}




/* RESPONSIVE — cards compactes centrées sous 992px (tablette portrait + téléphone) */
@media (max-width: 991.98px) {
  /* la colonne occupe toute la largeur… */
  .listing-view.grid-view > div,
  .listing-view.grid-view > [class*="col"] {
    max-width: 100% !important;
  }
  /* …mais la card visuelle garde 380px et se centre dans sa colonne */
  .listing-view.grid-view .item-listing-wrap .item-wrap {
    max-width: 380px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

/* RESPONSIVE — hauteur de la carte du listing en téléphone (sinon conteneur effondré) */
@media (max-width: 767.98px) {
  #houzez-properties-map.h-properties-map-for-elementor,
  .houzez-elementor-map-wrap {
    height: 400px !important;
    min-height: 400px !important;
  }
}

/* ── Fiche property mobile : masquer les blocs natifs Houzez ──
   1. .mobile-top-wrap  = bloc titre/prix mobile (doublon du bandeau custom)
      Complément de .property-header-wrap qui masque la version desktop.
   2. .mobile-property-contact = barre de contact fixe en bas d'écran
   Ajouté le 2026-08-25 */
.single-property .mobile-top-wrap,
.single-property .mobile-property-contact {
  display: none !important;
}

/* ── Fiche property mobile : titre et espacement des blocs ──
   Ajouté le 2026-08-25 */
@media (max-width: 767.98px) {

    /* Bandeau custom : titre à 30px/42px, trop imposant sur petit écran */
  .lmht-prop-head h2.lmht-head-title {
    font-size: 22px !important;
    line-height: 1.3 !important;
  }

  /* Blocs : Houzez colle les blocs et les sépare par un filet.
     On rétablit un espacement vertical. */
  .single-property .block-wrap {
    margin-top: 16px;
  }

}

/* Exclusivité — pill créée par le widget depuis fave_exclusivite (2026-08-28) */
/* Remplace le ciblage .label-color-42, devenu obsolète depuis la suppression
   du terme de taxonomie « exclusivité » le 19/06. */
.item-listing-wrap .label.lmht-exclu {
    display: inline-flex !important;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: 99px;
    font-family: 'Poppins', sans-serif;
    font-size: 11px;
    font-weight: 500;
    background: #EEEDFE;
    color: #5C59F3;
    text-decoration: none;
    border: none;
}


/* Sous compromis — pill créée */
.lmht-prop-head .lmht-pill-compromis{background:#FDF1E3;color:#B26A00}

/* Sous compromis — status-color-65 (prod) / 69 (préprod) */
.item-listing-wrap .label.status-color-65,
.item-listing-wrap .label.status-color-69 {
    display: inline-flex !important;
    align-items: center;
    padding: 4px 10px;
    border-radius: 99px;
    font-family: 'Poppins', sans-serif;
    font-size: 11px;
    font-weight: 500;
    background: #E08A2E;
    color: #FFFFFF;
    text-decoration: none;
    border: none;
}

/* Pills de card : décoratives, non cliquables */
.item-listing-wrap .labels-wrap a {
    pointer-events: none;
    cursor: default;
}


/* ===== Carte recherche : zoom léger du pin au survol ===== */
.lmht-page-location gmp-advanced-marker > *,
.lmht-page-acheter gmp-advanced-marker > * {
  transition: transform .15s ease;
  transform-origin: 50% 100%; /* grossit depuis la pointe du pin */
}
.lmht-page-location gmp-advanced-marker:hover > *,
.lmht-page-acheter gmp-advanced-marker:hover > * {
  transform: scale(1.15);
}
.lmht-page-location gmp-advanced-marker:hover,
.lmht-page-acheter gmp-advanced-marker:hover {
  z-index: 999999 !important; /* pin survolé au premier plan */
}

.lmht-finance .lmht-fin-val.lmht-fin-wrap { white-space:normal; text-align:right; }



/* Perf CLS — les deux grilles sont dans le HTML ; celle qui est masquée par le
   toggle l'est d'abord en CSS, jusqu'à ce que le script prenne le relais.
   Chantier PageSpeed, 23/09/2026. */
html:not(.lmht-toggle-pret) .elementor-element-137c44f,   /* /location/ */
html:not(.lmht-toggle-pret) .elementor-element-2aad152 {  /* /acheter/ */
    display: none;
}



/* ============================================
   FORMULAIRES — MESSAGES DE RETOUR
   ============================================ */

/* Base commune (fiche bien + formulaires Elementor) */
.form_messages .alert,
.ele-form-messages .alert {
    border-radius: 6px;
    padding: 12px 16px;
    font-size: 12px;
    line-height: 1.5;
    box-shadow: none;
}

/* Succès */
.form_messages .alert-success,
.ele-form-messages .alert-success {
    background-color: #EAEFFB;
    border: 1px solid #0A0E34;
    color: #0A0E34;
}

/* Erreur */
.form_messages .alert-danger,
.ele-form-messages .alert-danger {
    background-color: #FFFFFF;
    border: 1px solid #C0392B;
    color: #C0392B;
}

/* Icône et croix à la couleur du texte */
.form_messages .alert svg,
.form_messages .alert i,
.ele-form-messages .alert svg,
.ele-form-messages .alert i {
    color: currentColor;
    fill: currentColor;
}
.form_messages .alert .btn-close,
.form_messages .alert .close,
.ele-form-messages .alert .btn-close,
.ele-form-messages .alert .close {
    color: currentColor;
    opacity: .6;
}
.form_messages .alert .btn-close:hover,
.form_messages .alert .close:hover,
.ele-form-messages .alert .btn-close:hover,
.ele-form-messages .alert .close:hover {
    opacity: 1;
}



/* ============================================
   CHAMPS ELEMENTOR — ENCOCHE VIOLETTE + BORDER
   ============================================ */

.elementor-form .form-control.is-valid,
.elementor-form .elementor-field.is-valid,
.elementor-widget-form .form-control.is-valid {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%235C59F3' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right .875rem center;
    background-size: .9rem .9rem;
}

.elementor-form .form-control.is-valid:focus,
.elementor-form .elementor-field.is-valid:focus,
.elementor-widget-form .form-control.is-valid:focus {
    box-shadow: 0 0 0 1px #5C59F3;
    outline: none;
}

.elementor-form .form-control.is-invalid,
.elementor-form .elementor-field.is-invalid,
.elementor-widget-form .form-control.is-invalid {
    box-shadow: 0 0 0 1px #FF1100;
}

.elementor-form .form-control.is-invalid:focus,
.elementor-form .elementor-field.is-invalid:focus,
.elementor-widget-form .form-control.is-invalid:focus {
    box-shadow: 0 0 0 1px #FF1100;
    outline: none;
}