/* ==========================================================
   DURAND IMMOBILIER — CSS ADDITIONNEL (nettoyé le 29/09/2026)
   ========================================================== */

.home .logo img {   /* remplace max-height */
    max-height: none !important;
}

/* Masquer sticky consent*/
#cmplz-manage-consent .cmplz-manage-consent {
    display: none;
}

/* Logo agrandi — état normal (haut de page, non scrollé) */
.home .logo img {
    height: 90px !important;
    width: auto !important;
    top: 15px;
    margin-left: -12px;
}

/* Reset en mode sticky (scrollé) : on revient à la taille d'origine */
.home .header-v4.houzez-in-view .logo img {
    height: 60px !important;
    width: auto !important;
    top: 0 !important;
    margin-left: -12px;
}

.dropdown-menu {
  border: none !important;
  border-radius: 6px !important;
  box-shadow: 0 6px 24px rgba(0,0,0,0.08) !important;
  padding: 10px 0 !important;
  margin-top: 0 !important;
  min-width: 200px !important;
}

.dropdown-menu li {
  border: none !important;
}

.dropdown-item {
  color: #1a1a1a !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  padding: 11px 22px !important;
  background: transparent !important;
  border: none !important;
  border-bottom: none !important;
  transition: color 0.15s ease, padding-left 0.15s ease;
}

.dropdown-item:hover,
.dropdown-item:active {
  color: #FF5C4C !important;
  background: transparent !important;
  padding-left: 28px !important;
}

.header-main-wrap .main-nav .dropdown-menu, .houzez-nav-menu-main-desktop-wrap .houzez-nav-menu-main:not(.houzez-nav-menu-layout-dropdown) .dropdown-menu {
    visibility: hidden;
    opacity: 100;
    top: 100%;
    border-radius: 10px;
}

.btn-create-listing {
  border-radius: 0px !important;
}

.main-nav .navbar-nav .nav-item .dropdown-menu, .login-register .login-register-nav li .dropdown-menu {
    background-color: rgb(255 255 255);
}

body:has(.menu-item-has-megamenu:hover) .header-main-wrap {
    filter: none !important;
}

body:has(.menu-item-has-megamenu:hover) #main-wrap > *:not(.header-main-wrap) {
    filter: blur(15px);
    transform: scale(1.02);
}

.dropdown-menu.megamenu a:hover {
    background-color: transparent !important;
}

.houzez-in-view .logo-splash img {
    max-height: 48px !important;
}

.logo img {
    top: -3px;
    margin-left: -12px;
max-height: 50px 
}

body .elementor-44402 .elementor-element.elementor-element-d803447 .elementor-labels-above .elementor-field-group > label {
    padding-bottom: 0px;
    margin-left: 12px;
}

.elementor-44402 .elementor-element.elementor-element-ff36ff1 .grid-item-subtitle {
    padding-top: 180%;
}

.elementor-44402 .elementor-element.elementor-element-727adcb .grid-item-subtitle {
    padding-top: 180%;
}

.elementor-44402 .elementor-element.elementor-element-46e14ea .grid-item-subtitle {
    padding-top: 180%;
}

.elementor-44402 .elementor-element.elementor-element-5d34d7c .grid-item-subtitle {
    padding-top: 180%;
}

.elementor-44402 .elementor-element.elementor-element-51b6995 .grid-item-subtitle {
    padding-top: 180%;
}

/* Scale sur les cards, pas les slides internes */
.property-carousel-module .slick-track {
    display: flex !important;
    align-items: stretch;
}

.property-carousel-module .item-listing-wrap {
    height: auto;
    display: flex;
    flex-direction: column;
    transform: scale(0.88);
    transition: transform 0.4s;
    position: relative;
    z-index: 1;
}

.property-carousel-module .item-listing-wrap.slick-active + .item-listing-wrap.slick-active:has(+ .item-listing-wrap.slick-active) {
    transform: scale(1);
    z-index: 2;
}

/* Flèches de navigation */
.property-carousel-module {
    position: relative;
}

.property-carousel-buttons-wrap {
    position: absolute !important;
    top: 40% !important;
    transform: translateY(-50%);
    width: 100%;
    height: auto !important;
    display: flex !important;
    justify-content: space-between;
    text-align: left !important;
    pointer-events: none;
    z-index: 1;
    padding: 0;
}

.property-carousel-buttons-wrap .slick-prev,
.property-carousel-buttons-wrap .slick-next {
    pointer-events: all;
    width: 48px !important;
    height: 48px !important;
    border-radius: 50% !important;
    border: 2px solid #E07865 !important;
    background: transparent !important;
    font-size: 0 !important;
    position: relative !important;
    cursor: pointer;
    padding: 0 !important;
}

.property-carousel-buttons-wrap .slick-prev {
    margin-left: -45px;
}

.property-carousel-buttons-wrap .slick-next {
    margin-right: -45px;
}

.property-carousel-buttons-wrap .slick-prev::after {
    content: "❮";
    font-size: 16px;
    color: #E07865;
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
}

.property-carousel-buttons-wrap .slick-next::after {
    content: "❯";
    font-size: 16px;
    color: #E07865;
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
}

/* label */

.hz-label {
    font-size: 8px !important;
    padding: 6px 12px !important;
    background-color: #FF5C4C !important;
    border-radius: 10px !important;
}

.hz-label:hover {
    background-color: #FF5C4C !important;
    color: #fff !important;
    opacity: 1 !important;
}

.grid-item-v4 .hover-effect-flat::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(to top, rgba(0,0,0,0.6) 10%, rgba(0,0,0,0.1) 45%, transparent 100%) !important;
    opacity: 1 !important;
    z-index: 1;
}

/* Cacher l'icône actuelle */
.grid-item-icon .houzez-icon {
    font-size: 0 !important;
}

/* Afficher → à la place */
.grid-item-icon::after {
    content: "→";
    font-size: 22px;
    color: #E07865;
    font-family: sans-serif;
}

.grid-item-text-link {
    color: #fff;
    font-size: 12px;
    text-transform: uppercase;
    display: none;
}

/* Transition sur l'icône */
.grid-item-icon {
    transition: transform 0.3s ease;
}

/* Flèche qui glisse à droite au hover */
.grid-item-v4:hover .grid-item-icon {
    transform: translateX(8px);
}

/* Séparateurs Home */
/* Supprimer les ::after */
.elementor-element-e9d8122 {
    background-image:
        linear-gradient(rgba(0,0,0,0.2), rgba(0,0,0,0.2)),
        linear-gradient(rgba(0,0,0,0.2), rgba(0,0,0,0.2)),
        linear-gradient(rgba(0,0,0,0.2), rgba(0,0,0,0.2));
    background-size: 1px 80px, 1px 80px, 1px 80px;
    background-position: 25% center, 49% center, 77% center;
    background-repeat: no-repeat;
}

/* Séparateurs Page Listing */
/* Supprimer les ::after */
.elementor-element-594557f {
    background-image:
        linear-gradient(rgba(0,0,0,0.2), rgba(0,0,0,0.2)),
        linear-gradient(rgba(0,0,0,0.2), rgba(0,0,0,0.2)),
        linear-gradient(rgba(0,0,0,0.2), rgba(0,0,0,0.2));
    background-size: 1px 80px, 1px 80px, 1px 80px;
    background-position: 25% center, 48.5% center, 77% center;
    background-repeat: no-repeat;
}

.elementor-element-e9d8122 .elementor-widget:not(:first-child) p {
    padding-left: 20px !important;
}

/* Texte des cards Gestion : aligné en bas, flèche masquée */
#gestion-cards .grid-item-text-wrap.flex-column {
  flex-direction: column !important;
  justify-content: flex-end !important;
}

/* Masque la flèche */
#gestion-cards .grid-item-text-wrap .d-flex.align-items-center.justify-content-between {
  display: none !important;
}

/* Empêche le texte de rester figé au scroll */
#gestion-cards .grid-item-text-wrap {
  position: relative !important;
  top: auto !important;
  bottom: auto !important;
  padding-bottom: 20px !important;
}

#gestion-cards a.grid-item-link {
  position: relative !important;
  overflow: visible !important;
}

/* =========================================================
   DURAND IMMO - LISTING
   PAGE ID : 47455

   IMPORTANT :
   Aucun CSS sur la map ou les résultats Houzez.
   ========================================================= */

.page-id-47455 {
    --durand-content-width: 1210px;
    --durand-coral: #ff5c4c;
    --durand-field-bg: #f7f5f1;

    overflow-x: hidden;
}

.page-id-47455 .container-fluid {
	max-width: 1210px;
}
.page-id-47455 .item-address {display: none;}
.page-id-47455 .half-map-wrap {gap: 10px;}

/* =========================================================
   1. TITRE
   ========================================================= */

.page-id-47455 .durand-listing-title {
    width: calc(100% - 40px);
    max-width: var(--durand-content-width);

    margin: 60px auto 60px;

    font-family: Poppins, sans-serif;
    font-size: 54px;
    line-height: 1.1;
    font-weight: 300;

    color: #222;
}

.page-id-47455 .durand-listing-title span {
    font-family: "Fraunces", serif;
    font-size: inherit;
    font-weight: 400;
    font-style: italic;
}

/* =========================================================
   2. BARRE DE RECHERCHE
   ========================================================= */

.page-id-47455 #desktop-header-search {
    background: #fff !important;

    padding: 0 0 60px !important;

    overflow: visible !important;
}

.page-id-47455 #desktop-header-search > .container-fluid {
    width: calc(100% - 40px) !important;
    max-width: var(--durand-content-width) !important;

    margin-left: auto !important;
    margin-right: auto !important;

    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* =========================================================
   3. STRUCTURE DE LA RECHERCHE
   5 champs + bouton
   ========================================================= */

.page-id-47455 #desktop-header-search
.advanced-search-v3 > .d-flex {

    display: grid !important;

    grid-template-columns:
        1.15fr
        1.15fr
        1fr
        .9fr
        .9fr
        1fr;

    gap: 14px !important;

    align-items: end !important;
}

.page-id-47455 #desktop-header-search .form-group {
    margin: 0 !important;
}

.page-id-47455 #desktop-header-search .flex-search {
    min-width: 0;
}

/* Masquer Plus de filtres */
.page-id-47455 #desktop-header-search
.advanced-search-v3 > .d-flex > .flex-search:nth-child(6) {
    display: none !important;
}

/* Masquer Effacer */
.page-id-47455 #desktop-header-search .reset-search-btn-wrap {
    display: none !important;
}

/* =========================================================
   4. LABELS
   ========================================================= */

.page-id-47455 #desktop-header-search
.advanced-search-v3 > .d-flex > .flex-search:nth-child(-n+5) {

    position: relative;

    display: flex;
    flex-direction: column;
}

.page-id-47455 #desktop-header-search
.advanced-search-v3 > .d-flex > .flex-search:nth-child(-n+5)::before {

    display: block;

    margin: 0 0 6px 2px;

    font-family: Poppins, sans-serif;
    font-size: 13px;
    line-height: 1;
    font-weight: 600;

    color: #34405c;
}

.page-id-47455 #desktop-header-search
.advanced-search-v3 > .d-flex > .flex-search:nth-child(1)::before {
    content: "Je cherche à";
}

.page-id-47455 #desktop-header-search
.advanced-search-v3 > .d-flex > .flex-search:nth-child(2)::before {
    content: "Localisation";
}

.page-id-47455 #desktop-header-search
.advanced-search-v3 > .d-flex > .flex-search:nth-child(3)::before {
    content: "Type de bien";
}

.page-id-47455 #desktop-header-search
.advanced-search-v3 > .d-flex > .flex-search:nth-child(4)::before {
    content: "Surface min";
}

.page-id-47455 #desktop-header-search
.advanced-search-v3 > .d-flex > .flex-search:nth-child(5)::before {
    content: "Budget max";
}

/* =========================================================
   5. STYLE DES CHAMPS
   ========================================================= */

.page-id-47455 #desktop-header-search
.bootstrap-select > .dropdown-toggle,

.page-id-47455 #desktop-header-search
.form-control,

.page-id-47455 #desktop-header-search
.btn-light-grey-outlined {

    width: 100% !important;

    height: 42px !important;
    min-height: 42px !important;

    padding-left: 12px !important;
    padding-right: 12px !important;

    background: var(--durand-field-bg) !important;

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

    box-shadow: none !important;

    color: #34405c !important;

    font-size: 12px !important;
    font-weight: 400 !important;
}

.page-id-47455 #desktop-header-search .btn-group {
    width: 100%;
}

.page-id-47455 #desktop-header-search .btn-group > .btn {
    width: 100%;
    text-align: left;
}

.page-id-47455 #desktop-header-search
.bootstrap-select .filter-option-inner-inner {
    color: #34405c !important;
}

/* Hover / Focus */
.page-id-47455 #desktop-header-search
.bootstrap-select > .dropdown-toggle:hover,

.page-id-47455 #desktop-header-search
.bootstrap-select > .dropdown-toggle:focus,

.page-id-47455 #desktop-header-search
.form-control:focus {

    background: #f4f2ed !important;

    border-color: #e7e4dd !important;

    box-shadow: none !important;
}

/* =========================================================
   6. BOUTON RECHERCHER
   ========================================================= */

.page-id-47455 #desktop-header-search .btn-no-right-padding {
    padding-right: 0 !important;
    align-self: end !important;
}

.page-id-47455 #desktop-header-search .btn-search {

    width: 100% !important;
    min-height: 42px !important;
    border-radius: 3px !important;

    box-shadow: none !important;
}

/* =========================================================
   7. CONTENU ELEMENTOR SOUS LE LISTING
   Ne touche ni à la map ni aux annonces
   ========================================================= */

.page-id-47455 .elementor-47468 {
    width: 100% !important;
    max-width: 100% !important;

    overflow-x: hidden !important;
}

/* =========================================================
   8. TABLETTE
   ========================================================= */

@media (min-width: 992px) and (max-width: 1200px) {

    .page-id-47455 .durand-listing-title {
        font-size: 44px;
    }

    .page-id-47455 #desktop-header-search
    .advanced-search-v3 > .d-flex {

        grid-template-columns:
            1.15fr
            1.15fr
            .9fr
            .8fr
            .8fr
            1fr;
    }

}

/* =========================================================
   9. MOBILE
   ========================================================= */

@media (max-width: 767px) {

    .page-id-47455 .durand-listing-title {
        line-height: 1.15;
    }

}

/* Titres propriétés listing */
.page-id-47455 .item-title {
    font-size: 14px;
    line-height: 21px;
}
/* Map Controls */
.page-id-47455 .map-wrap .map-arrows-actions, .page-id-47455 .map-wrap .map-next-prev-actions, .page-id-47455 .map-wrap .map-zoom-actions {
	display: none;
}
/* Barre de recherche */
.page-id-47455 #desktop-header-search .bootstrap-select .filter-option-inner-inner {font-size: 13px !important;}

/* =========================================================
   DURAND IMMO - HALF MAP
   Scroll page normal + résultats complets + carte sticky
   ========================================================= */

@media (min-width: 992px) {

    /* -----------------------------------------------------
       1. DÉSACTIVER LE MODE "ÉCRAN FIXE" DE HOUZEZ
       ----------------------------------------------------- */

    body.page-id-47455.houzez-halfmap-page {
        height: auto !important;
        min-height: 100% !important;

        overflow-x: hidden !important;
        overflow-y: visible !important;
    }

    .page-id-47455 #main-wrap.main-half-map-wrap {
        position: relative !important;

        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;

        overflow: visible !important;
    }

    /* -----------------------------------------------------
       2. HALF MAP
       Sa hauteur doit être déterminée par les résultats
       ----------------------------------------------------- */

    .page-id-47455 .half-map-wrap {
        position: relative !important;

        display: flex !important;
        align-items: flex-start !important;

        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;

        overflow: visible !important;
    }

    /* -----------------------------------------------------
       3. COLONNE DES RÉSULTATS
       AUCUN scroll interne
       ----------------------------------------------------- */

    .page-id-47455 #half-map-listing-area.half-map-right-wrap {
        position: relative !important;

        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;

        overflow: visible !important;
        overflow-x: visible !important;
        overflow-y: visible !important;

        align-self: flex-start !important;
    }

    .page-id-47455 #houzez_ajax_container {
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;

        overflow: visible !important;
    }

    .page-id-47455 #houzez_ajax_container .listing-view {
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;

        overflow: visible !important;
    }

    /* -----------------------------------------------------
       4. CARTE STICKY
       ----------------------------------------------------- */

    .page-id-47455 #map-view-wrap.half-map-left-wrap {
        position: sticky !important;

        /*
         * Header non sticky sur cette page :
         * la carte reste à 20px du haut.
         */
        top: 20px !important;

        align-self: flex-start !important;

        /*
         * Hauteur indépendante du listing.
         * Ne PAS mettre 100vh sur le Half Map.
         */
        height: 650px !important;
        min-height: 650px !important;
        max-height: 650px !important;

        overflow: hidden !important;
    }

    /* -----------------------------------------------------
       5. GOOGLE MAP REMPLIT SON CONTENEUR
       ----------------------------------------------------- */

     .page-id-47455 #map-view-wrap .map-wrap {
        position: relative !important;

        width: 100% !important;
        height: 650px !important;
        min-height: 650px !important;
        max-height: 650px !important;
    }

    .page-id-47455 #houzez-properties-map {
        width: 100% !important;

        height: 100% !important;
        min-height: 650px !important;
    }

}

    /* -----------------------------------------------------
       REMETTRE CAROUSEL EN COULEUR
       ----------------------------------------------------- */
.elementor-image-carousel img {
  filter: none !important;
}

   /* -----------------------------------------------------
       SOULIGNER LE PRIX EN PAGE ANNONCE
       ----------------------------------------------------- */

.property-price-wrap .price {
  position: relative;
  display: inline-block;
  padding-bottom: 16px;
}
.property-price-wrap .price::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 70%;
  height: 2px;
  background: #EE6C55;
}

 /* -----------------------------------------------------
       DESIGN BOUTON PARTAGER CETTE ANNONCE
       ----------------------------------------------------- */

.item-tool-share {
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  width: auto !important;
  padding: 10px 16px !important;
  border: 1px solid #ccc !important;
  border-radius: 0px !important;
  background: #fff !important;
}
.item-tool-share i {
  color: #333 !important;
}
.item-tool-share::after {
  content: "Partager cette annonce";
  font-size: 14px;
  color: #333;
  white-space: nowrap;
}

/* -----------------------------------------------------
       DESIGN CARACTERISTIQUES PAGE ANNONCE
       ----------------------------------------------------- */

.hs-meta-widget-module.hs-meta-widget-module-v1 {
  flex-direction: column !important;
  align-items: center !important;
  gap: 6px !important;
  text-align: center;
}
.hs-meta-widget-icon {
  order: 0 !important;
}
.hs-meta-widget-title {
  order: 1 !important;
  font-size: 14px;
  color: #777;
}
.hs-meta-widget-data {
  order: 2 !important;
  font-weight: bold;
  font-size: 18px;
}
.elementor-widget-houzez-property-meta:not(:last-child) {
  border-right: 1px solid #eee;
  padding-right: 24px;
  margin-right: 24px;
}

.hs-meta-widget-icon {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 60px !important;
  height: 60px !important;
  overflow: hidden;
}

/* -----------------------------------------------------
       Barre latérale signature quote
       ----------------------------------------------------- */

.signature-quote {
  border-left: 3px solid #EE6C55;
  padding-left: 20px;
}

/* -----------------------------------------------------
       Logos greyscale home
       ----------------------------------------------------- */

.logos-noir img {
  filter: grayscale(100%) !important;
}

/* -----------------------------------------------------
       Taille de section en page annonce
       ----------------------------------------------------- */

#section-boxed-1250 {
  width: 1250px !important;
  max-width: 1250px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  gap: 0px !important;
  justify-content: center !important;
}

.elementor-element-6af2a62 {
  flex: 0 0 820px !important;
  max-width: 820px !important;
}

.elementor-element-44d85f1 {
  flex: 0 0 400px !important;
  max-width: 400px !important;
  padding: 30px !important;
}

/* Layout flex pour les champs côte à côte */
.property-form-wrap form {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 20px !important;
}

.property-form-wrap .form-group {
  flex: 1 1 100% !important;
  margin-bottom: 0 !important;
}

.property-form-wrap .form-group:nth-of-type(1),
.property-form-wrap .form-group:nth-of-type(2) {
  flex: 1 1 calc(50% - 10px) !important;
}

/* Masquer le champ "Sélectionner" */
.property-form-wrap .bootstrap-select {
  display: none !important;
}

/* Champs texte en style "souligné", sans boîte */
.property-form-wrap .form-control {
  border: none !important;
  border-bottom: 1px solid #999 !important;
  border-radius: 0 !important;
  padding: 6px 0 !important;
  font-size: 14px !important;
  background: transparent !important;
}

.property-form-wrap .form-control:focus {
  border-bottom-color: #EE6C55 !important;
  outline: none !important;
  box-shadow: none !important;
}

/* Texte conditions */
.property-form-wrap a {
  color: #EE6C55 !important;
  text-decoration: underline;
}

/* Bouton Submit compact, aligné à gauche */
.property-form-wrap button[type="submit"],
.property-form-wrap input[type="submit"] {
  background: #EE6C55 !important;
  border: none !important;
  border-radius: 6px !important;
  padding: 12px 32px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: #fff !important;
  width: auto !important;
  display: inline-block !important;
}

.property-form-wrap button[type="submit"]:hover,
.property-form-wrap input[type="submit"]:hover {
  background: #d95a44 !important;
}

/* Accordéons page Investir */

/* Traits de séparation entre les items de l'accordéon */
.e-n-accordion-item {
  border-top: 1px solid #333 !important;
  border-bottom: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.e-n-accordion-item:last-child {
  border-bottom: 1px solid #333 !important;
}

/* Espacement uniforme du titre de chaque item */
.e-n-accordion-item-title {
  padding: 24px 0 !important;
  margin: 0 !important;
}

/* Zone de contenu dépliable : neutraliser tout espace résiduel quand fermé */
.e-n-accordion-item > [role="region"] {
  overflow: hidden !important;
}

.e-n-accordion-item:not([open]) > [role="region"] {
  max-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
}

/* Colonnes page Engagements */

#colonne-etape-1,
#colonne-etape-2,
#colonne-etape-3,
#colonne-etape-4 {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}

#separateur-1,
#separateur-2,
#separateur-3,
#separateur-4 {
  margin-top: auto !important;
}

#photo-avec-ombre {
  position: relative;
  z-index: 1;
  overflow: visible !important;
}

#photo-avec-ombre .elementor-widget-container {
  overflow: visible !important;
}

#photo-avec-ombre::before {
  content: "";
  position: absolute;
  top: 100px;
  left: 80px;
  width: 55%;
  height: 80%;
  background: #FF5C4C;
  z-index: -1;
}

/* Champs Select barre de recherche */
#desktop-search-form .control.control--checkbox {
	margin: 11px 22px;
}
#desktop-search-form .advanced-search-v3 .btn-apply, #desktop-search-form .advanced-search-v3 .btn-clear {
	display: none;
}

/* Contact Form en page Contact */

.wpcf7-form .row {
    display: flex;
    gap: 24px;
    margin-bottom: 20px;
}
.wpcf7-form .row > div {
    flex: 1;
}
.wpcf7-form label,
.wpcf7-form .form-section-title {
    display: block;
    font-size: 12px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    margin-bottom: 8px;
    color: #333;
}
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form select,
.wpcf7-form textarea {
    width: 100%;
    border: 1px solid #ddd;
    border-radius: 4px;
    padding: 12px 16px;
    font-size: 14px;
}
.wpcf7-form select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    padding-right: 44px;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23333' stroke-width='1.5' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 20px center;
}
.wpcf7-form textarea {
    min-height: 150px;
}
.wpcf7-form input[type="text"]:focus,
.wpcf7-form input[type="email"]:focus,
.wpcf7-form input[type="tel"]:focus,
.wpcf7-form select:focus,
.wpcf7-form textarea:focus {
    outline: none;
    border-color: #FF5C4C;
    box-shadow: 0 0 0 1px #FF5C4C;
}
.wpcf7-form p:has(.wpcf7-acceptance) {
    margin-left: 0 !important;
    padding-left: 0 !important;
    text-indent: 0 !important;
}
.wpcf7-form .wpcf7-acceptance,
.wpcf7-form .wpcf7-acceptance .wpcf7-list-item {
    margin: 0 !important;
    padding: 0 !important;
}
.wpcf7-form .wpcf7-acceptance label {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 11px;
    font-weight: 400;
    color: #555;
    text-transform: none;
}
.wpcf7-form .wpcf7-acceptance input[type="checkbox"] {
    margin: 0 !important;
    flex-shrink: 0;
}
.wpcf7-form .wpcf7-acceptance .wpcf7-list-item-label {
    line-height: 1.4;
}
.wpcf7-form input[type="submit"] {
    background-color: #FF5C4C;
    color: #fff;
    border: 2px solid #FF5C4C;
    border-radius: 0;
    padding: 14px 32px;
    font-size: 14px;
    font-weight: 400;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
}
.wpcf7-form input[type="submit"]:hover {
    background-color: transparent;
    color: #FF5C4C;
    border-color: #FF5C4C;
}
div.wpcf7 .wpcf7-response-output {
    width: fit-content !important;
    box-sizing: border-box !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 10px 20px 10px 20px !important;
    margin: 24px 0 0 0 !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    background-color: #F0EDE9 !important;
    color: #333 !important;
    border-left: 4px solid #FF5C4C !important;
}

/* Conteneur de la fenêtre de partage */
.item-tool-dropdown-menu {
    background-color: #ffffff;
    border: none;
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
    padding: 8px 0;
    min-width: 200px;
}

/* Ligne "Share on:" */
.item-tool-dropdown-menu .dropdown-item[role="menuitem"]:first-child {
    font-weight: 600;
    font-size: 13px;
    color: #666;
    padding: 8px 20px 6px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    pointer-events: none;
}

/* Liens de partage (WhatsApp, Pinterest, Facebook, LinkedIn, Email) */
.item-tool-dropdown-menu a.dropdown-item {
    color: #333;
    font-size: 14px;
    padding: 10px 20px;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.item-tool-dropdown-menu a.dropdown-item:hover,
.item-tool-dropdown-menu a.dropdown-item:focus {
    background-color: #FFF1EF;
    color: #FF5C4C;
}

.item-tool-dropdown-menu .dropdown-item[role="menuitem"]:first-child {
    display: none;
}

/* Désactiver clic sur label en page annonce */

.ele-labels-wrap .item-label,
.ele-labels-wrap .label-status {
    pointer-events: none;
    cursor: default;
}

/* Mise ne forme des features en page annonce */

.property-features-wrap .col-xl-4,
.property-features-wrap .col-lg-6,
.property-features-wrap .col-md-6,
.property-features-wrap .col-sm-12 {
    width: auto !important;
    max-width: none !important;
    flex: 0 0 auto !important;
    box-sizing: border-box;
    padding: 0 40px !important;
    margin: 0;
    border-right: 1px solid #eee;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    list-style: none;
}

.property-features-wrap ul.list-unstyled.row {
    display: flex !important;
    flex-wrap: wrap;
    row-gap: 24px;
    margin: 0;
    padding: 0;
    width: 100%;
}

.property-features-wrap .col-xl-4:first-child {
    padding-left: 0 !important;
}

.property-features-wrap .col-xl-4:last-child {
    border-right: none;
}

.property-features-wrap .houzez-icon {
    display: none !important;
}

.property-features-wrap ul.list-unstyled.row li a {
    font-family: "Fraunces", serif;
    font-size: 22px;
    font-weight: 400;
    color: #000;
    text-decoration: none;
    pointer-events: none;
}

.property-features-wrap ul.list-unstyled.row li a::after {
    content: "Oui";
    display: block;
    font-family: Poppins, sans-serif;
    font-weight: 700;
    font-size: 16px;
    color: #000;
    margin-top: 4px;
}

.property-features-wrap #property-features-wrap,
.property-features-wrap .block-wrap,
.property-features-wrap .block-content-wrap,
.property-features-wrap ul.list-unstyled.row {
    width: 100% !important;
    max-width: 100% !important;
    flex-basis: 100% !important;
}

.property-section-wrap *:focus,
.property-section-wrap *:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}

.hs-gallery-v5-wrap .img-wrap-3-text {
    display: none !important;
}

/* Mise ne forme des infos legales en page annonce */

#bandeau-informations-legales .elementor-widget-houzez-property-meta,
#bandeau-informations-legales .elementor-widget-houzez-property-meta * {
    border: none !important;
}

#bandeau-informations-legales .hs-meta-widget-module.hs-meta-widget-module-v4 .hs-meta-widget-data {
    margin-left: 5px !important;
}

/* Rapprocher label et valeur */
#bandeau-informations-legales .hs-meta-widget-module {
    justify-content: flex-start !important;
    gap: 0px;
}

/* Honoraires - ajouter € */
#bandeau-informations-legales .elementor-element-2f03dca .hs-meta-widget-data::after {
    content: " €";
}

/* Consommation énergie - ajouter kWh/m²/an */
#bandeau-informations-legales .elementor-element-a5bd4c4 .hs-meta-widget-data::after {
    content: " kWh/m²/an";
}

#bandeau-informations-legales .elementor-element-da50b0b .hs-meta-widget-data::after {
    content: " kgCO2/m²/an";
}

/* Labels sur les cartes de listing (Coup de cœur, Vendu, Nouveauté, etc.) */
.item-header .label-featured,
.item-header [class*="label-color-"],
.item-header .label-status {
    background-color: #FF5C4C !important;
    color: #fff !important;
    border-color: #FF5C4C !important;
}

/* =========================================================
   FORMULAIRE DE CONTACT AGENT - PAGE ANNONCE
   ========================================================= */

.property-contact-agent-wrap {
    background-color: #F1F0EE !important;
    padding: 12px 16px !important;
    border-radius: 6px;
}

.property-contact-agent-wrap .block-wrap,
.property-contact-agent-wrap .block-content-wrap,
.property-contact-agent-wrap form {
    background-color: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
}

.property-contact-agent-wrap .agent-details {
    display: flex !important;
    align-items: center;
    gap: 16px;
    margin: 0 0 12px 0 !important;
}

/* Masquer le titre "Enquire About This Property" */
.property-contact-agent-wrap .block-title-wrap {
    display: none !important;
}

.property-contact-agent-wrap .agent-image,
.property-contact-agent-wrap .agent-image a {
    display: block !important;
    width: 72px !important;
    height: 72px !important;
}

.property-contact-agent-wrap .agent-image img {
    width: 72px !important;
    height: 72px !important;
    border-radius: 50% !important;
    object-fit: cover !important;
}

.property-contact-agent-wrap .agent-details a {
    font-family: "Fraunces", serif;
    font-size: 19px;
    font-weight: 400;
    color: #000;
}

/* Masquer l'icône devant le nom de l'agent */
.property-contact-agent-wrap .agent-details i,
.property-contact-agent-wrap .agent-details .houzez-icon,
.property-contact-agent-wrap .agent-information i {
    display: none !important;
}

.property-contact-agent-wrap .row {
    display: flex !important;
    flex-wrap: wrap !important;
    row-gap: 12px;
    column-gap: 20px;
    margin: 0 !important;
}

/* Les 2 premiers champs (Prénom, Téléphone) sur la même ligne */
.property-contact-agent-wrap .row > div:nth-child(1),
.property-contact-agent-wrap .row > div:nth-child(2) {
    flex: 1 1 45% !important;
}

/* Tous les champs suivants en pleine largeur */
.property-contact-agent-wrap .row > div:nth-child(n+3) {
    flex: 1 1 100% !important;
}

/* Masquer entièrement le champ "Je suis" */
.property-contact-agent-wrap .row > div:has(.bootstrap-select) {
    display: none !important;
}

.property-contact-agent-wrap label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #7a7a7a;
    font-weight: 600;
    margin-bottom: 4px;
    display: block;
}

.property-contact-agent-wrap input[type="text"],
.property-contact-agent-wrap input[type="email"],
.property-contact-agent-wrap input[type="tel"],
.property-contact-agent-wrap textarea {
    border: none !important;
    border-bottom: 1px solid #999 !important;
    border-radius: 0 !important;
    background: transparent !important;
    padding: 4px 0 !important;
    font-size: 14px;
    color: #000;
    width: 100% !important;
    box-shadow: none !important;
}

.property-contact-agent-wrap input[type="text"]:focus,
.property-contact-agent-wrap input[type="email"]:focus,
.property-contact-agent-wrap input[type="tel"]:focus,
.property-contact-agent-wrap textarea:focus {
    border-bottom-color: #FF5C4C !important;
    outline: none;
}

.property-contact-agent-wrap textarea {
    min-height: 60px;
    resize: none;
}

.property-contact-agent-wrap a.cgu-link,
.property-contact-agent-wrap p a {
    color: #FF5C4C !important;
    text-decoration: underline;
}

.property-contact-agent-wrap .houzez-ele-button,
.property-contact-agent-wrap .btn-secondary {
    background-color: #FF5C4C !important;
    border: 2px solid #FF5C4C !important;
    border-radius: 0 !important;
    color: #fff !important;
    padding: 2px 32px !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    width: auto !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.property-contact-agent-wrap .houzez-ele-button:hover,
.property-contact-agent-wrap .btn-secondary:hover {
    background-color: transparent !important;
    color: #FF5C4C !important;
}

.property-contact-agent-wrap .agent-image a {
    pointer-events: none;
    cursor: default;
}

/* Réduit l'espace entre les options */
.bootstrap-select .dropdown-menu li a,
.bootstrap-select .dropdown-menu .dropdown-item {
    padding: 8px 20px !important;
    line-height: 1.4 !important;
    min-height: 0 !important;
    transition: color 0.15s ease, padding-left 0.15s ease !important;
}

/* Rétablit l'animation au survol */
.bootstrap-select .dropdown-menu li a:hover,
.bootstrap-select .dropdown-menu li a:active,
.bootstrap-select .dropdown-menu .dropdown-item:hover,
.bootstrap-select .dropdown-menu .dropdown-item:active {
    color: #FF5C4C !important;
    background: transparent !important;
    padding-left: 26px !important;
}

/* Page listing masquer pas de résultats trouvés */

.search-no-results-found {
    display: none;
}

.map-notfound {
    display: none;
}

/* Label sur cards du slider en page d'accueil */

.item-header .label-featured, .item-header [class*="label-color-"], .item-header .label-status {
    color: #fff;
    font-size: 9px;
    text-transform: uppercase;
    padding: 5px 10px;
    border-radius: 4px;
    line-height: 1.4;
}

/* Étiquettes Nouveauté / Sous offre / Compromis / Vendu sur les cartes */
.item-header { position: relative; }
.durand-extra-labels {
    position: absolute;
    top: 22px;
    right: 20px;
    z-index: 5;
    display: flex;
    gap: 6px;
    pointer-events: none;
}
.durand-extra-label {
    background: #1a1a1a;
    color: #fff;
    font-size: 9px;
    text-transform: uppercase;
    padding: 5px 10px;
    border-radius: 4px;
    line-height: 1.4;
}

/* Label sur map en page listing */

.label-featured {
    background-color: #FF5C4C;
    color: #FFFFFF;
    font-size: 9px;
    text-transform: uppercase;
    padding: 5px 10px;
    border-radius: 4px;
    line-height: 1.4;
}

/* Listing : désactive l'ajustement automatique du défilement par le navigateur */
.page-id-47455,
.page-id-47455 #half-map-listing-area,
.page-id-47455 #houzez_ajax_container {
    overflow-anchor: none;
}

/* Listing : masquer la recherche sur le champs localisation */

.bs-actionsbox, .bs-donebutton, .bs-searchbox {
    padding: 4px 8px;
    display: none;
}

/* =========================================================
   RECHERCHE : menus déroulants et listes à cocher harmonisés
   ========================================================= */

/* --- Conteneur des menus déroulants --- */
.advanced-search .bootstrap-select .dropdown-menu,
.elementor-widget-container .bootstrap-select .dropdown-menu {
    padding: 8px 0 !important;
}
.bootstrap-select .dropdown-menu.inner {
    padding: 0 !important;
}

/* --- Lignes : menus déroulants (Localisation, Budget...) + cases à cocher (Type, Je cherche à) --- */

/* Menus déroulants (Localisation) : gras quand sélectionné */
.bootstrap-select .dropdown-menu li.active a,
.bootstrap-select .dropdown-menu .dropdown-item.active {
    background: transparent !important;
    color: #1a1a1a !important;
}

/* Survol : léger glissement, sans changement de couleur */
.bootstrap-select .dropdown-menu li a:hover,
.bootstrap-select .dropdown-menu .dropdown-item:hover,
.flex-search .control.control--checkbox:hover,
#desktop-search-form .control.control--checkbox:hover {
    color: #1a1a1a !important;
    background: transparent !important;
}

/* =========================================================
   RECHERCHE : menus déroulants et listes à cocher
   (harmonisés avec la barre de recherche)
   ========================================================= */

:root {
    --durand-search-bg: #F5F4F1;     /* fond de la barre */
    --durand-search-text: #34405c;   /* bleu nuit des champs */
    --durand-search-border: #E7E3DC; /* bordure de la liste */
}

/* --- Conteneur de la liste --- */
.flex-search .dropdown-menu,
.advanced-search .dropdown-menu,
#desktop-search-form .dropdown-menu,
.bootstrap-select .dropdown-menu {
    background: var(--durand-search-bg) !important;
    border: 1px solid var(--durand-search-border) !important;
    border-radius: 8px !important;
    box-shadow: 0 2px 5px rgba(0,0,0,.04), 0 10px 24px rgba(0,0,0,.08) !important;
    margin-top: 6px !important;
    padding: 8px 0 !important;
    overflow: hidden;
}
.bootstrap-select .dropdown-menu.inner,
.bootstrap-select .dropdown-menu .inner {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* --- Lignes : menus déroulants (Localisation, Budget...) + cases à cocher (Type, Je cherche à) --- */
.bootstrap-select .dropdown-menu li a,
.bootstrap-select .dropdown-menu .dropdown-item,
.flex-search .control.control--checkbox,
#desktop-search-form .control.control--checkbox {
    position: relative !important;
    display: block !important;
    margin: 0 !important;
    padding: 8px 48px 8px 20px !important;
    min-height: 0 !important;
    font-family: Poppins, sans-serif !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
    color: var(--durand-search-text) !important;
    background: transparent !important;
    cursor: pointer;
    transition: padding-left 0.15s ease !important;
}

/* Même taille et même couleur pour le texte interne des menus déroulants */
.bootstrap-select .dropdown-menu li a .text,
.bootstrap-select .dropdown-menu li a span:not(.check-mark),
.bootstrap-select .dropdown-menu .dropdown-item .text {
    font-family: Poppins, sans-serif !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    font-weight: inherit !important;
    color: inherit !important;
}

/* --- États --- */

/* Cases à cocher : pas de gras quand coché */
.flex-search .control.control--checkbox:has(input:checked),
#desktop-search-form .control.control--checkbox:has(input:checked) {
    font-weight: 400 !important;
}

/* Menus déroulants (Localisation) : gras quand sélectionné */
.bootstrap-select .dropdown-menu li.selected a,
.bootstrap-select .dropdown-menu .dropdown-item.selected {
    font-weight: 700 !important;
}

/* Aucune couleur de fond : ni sélection, ni survol, ni focus clavier */
.bootstrap-select .dropdown-menu li.selected a,
.bootstrap-select .dropdown-menu li.active a,
.bootstrap-select .dropdown-menu .dropdown-item.selected,
.bootstrap-select .dropdown-menu .dropdown-item.active,
.bootstrap-select .dropdown-menu li:hover,
.bootstrap-select .dropdown-menu li a:hover,
.bootstrap-select .dropdown-menu li a:focus,
.bootstrap-select .dropdown-menu .dropdown-item:hover,
.bootstrap-select .dropdown-menu .dropdown-item:focus,
.flex-search .control.control--checkbox:hover,
#desktop-search-form .control.control--checkbox:hover {
    background: transparent !important;
    color: var(--durand-search-text) !important;
}

/* Survol : léger glissement vers la droite */
.bootstrap-select .dropdown-menu li a:hover,
.bootstrap-select .dropdown-menu .dropdown-item:hover,
.flex-search .control.control--checkbox:hover,
#desktop-search-form .control.control--checkbox:hover {
    padding-left: 23px !important;
}

/* --- Coche corail (identique partout) --- */

/* Menus déroulants : on remplace la coche du thème */
.bootstrap-select .dropdown-menu .check-mark {
    position: absolute !important;
    right: 16px !important;
    left: auto !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 20px !important;
    height: 20px !important;
    margin: 0 !important;
    font-size: 0 !important;
    color: transparent !important;
    border: none !important;
    background: none !important;
}
.bootstrap-select .dropdown-menu .check-mark::before,
.bootstrap-select .dropdown-menu .check-mark::after,
.bootstrap-select .dropdown-menu .check-mark * {
    display: none !important;
    content: none !important;
}
.bootstrap-select .dropdown-menu li.selected .check-mark,
.bootstrap-select .dropdown-menu .dropdown-item.selected .check-mark {
    display: block !important;
    background: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23FF5C4C' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M7.5 12.5l3 3 6-6.5'/%3E%3C/svg%3E") no-repeat center / 20px 20px !important;
}

/* Cases à cocher : on masque la case carrée du thème */
.flex-search .control.control--checkbox .control__indicator,
#desktop-search-form .control.control--checkbox .control__indicator {
    left: auto !important;
    right: 16px !important;
    top: 50% !important;
    transform: translateY(-50%);
    width: 20px !important;
    height: 20px !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}
.flex-search .control.control--checkbox .control__indicator::after,
#desktop-search-form .control.control--checkbox .control__indicator::after {
    display: none !important;
}
.flex-search .control.control--checkbox input:checked ~ .control__indicator,
#desktop-search-form .control.control--checkbox input:checked ~ .control__indicator {
    background: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23FF5C4C' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M7.5 12.5l3 3 6-6.5'/%3E%3C/svg%3E") no-repeat center / 20px 20px !important;
}

/* =========================================================
   LISTING : barre de recherche (style home) — bloc autonome
   ========================================================= */

.page-id-47455 {
    --ls-bg: #F5F4F1;     /* fond de la barre */
    --ls-text: #34405c;   /* bleu nuit */
    --ls-border: #ECE8E1; /* liseré */
}

/* Boîte */
.page-id-47455 #desktop-header-search .advanced-search-v3 {
    background: var(--ls-bg) !important;
    border: 1px solid var(--ls-border) !important;
    border-radius: 12px !important;
    padding: 24px 28px !important;
    box-shadow: 0 1px 3px rgba(0,0,0,.05), 0 6px 16px rgba(0,0,0,.06) !important;
}

/* Titres : plus de décalage à gauche */
.page-id-47455 #desktop-header-search
.advanced-search-v3 > .d-flex > .flex-search:nth-child(-n+5)::before {
    margin-left: 0 !important;
}

/* Champs (bouton Rechercher exclu) : fond transparent, alignés à gauche, centrés verticalement */
.page-id-47455 #desktop-header-search .flex-search .dropdown-toggle,
.page-id-47455 #desktop-header-search .flex-search .btn:not(.btn-search),
.page-id-47455 #desktop-header-search .flex-search .form-control,
.page-id-47455 #desktop-header-search .flex-search .dropdown-toggle:hover,
.page-id-47455 #desktop-header-search .flex-search .dropdown-toggle:focus,
.page-id-47455 #desktop-header-search .flex-search .btn:not(.btn-search):hover,
.page-id-47455 #desktop-header-search .flex-search .btn:not(.btn-search):focus,
.page-id-47455 #desktop-header-search .flex-search .form-control:focus {
    display: flex !important;
    align-items: center !important;
    height: 42px !important;
    min-height: 42px !important;
    padding-left: 0 !important;
    margin-left: 0 !important;
    text-indent: 0 !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
    color: var(--ls-text) !important;
}

/* Texte à l'intérieur des menus déroulants */
.page-id-47455 #desktop-header-search .bootstrap-select .filter-option,
.page-id-47455 #desktop-header-search .bootstrap-select .filter-option-inner,
.page-id-47455 #desktop-header-search .bootstrap-select .filter-option-inner-inner {
    display: flex !important;
    align-items: center !important;
    height: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    position: static !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    color: var(--ls-text) !important;
}

/* Placeholder (Surface min) */
.page-id-47455 #desktop-header-search .form-control::placeholder {
    color: var(--ls-text) !important;
    opacity: 1 !important;
}

/* Bouton Rechercher : on garde son style d'origine */
.page-id-47455 #desktop-header-search .btn-search {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 42px !important;
    padding: 0 20px !important;
    background: #FF5C4C !important;
    border: 0 !important;
    color: #fff !important;
    font-size: 12px !important;
    font-weight: 600 !important;
}
.page-id-47455 #desktop-header-search .btn-search:hover {
    background: #f6796c !important;
}

/* Menus déroulants : pas de double cadre */
.page-id-47455 #desktop-header-search .bootstrap-select .dropdown-menu.inner,
.page-id-47455 #desktop-search-form .bootstrap-select .dropdown-menu.inner {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Boutons "Apply" / "Effacer" du thème : toujours masqués */
.page-id-47455 #desktop-header-search .flex-search .btn.btn-apply:not(.btn-search),
.page-id-47455 #desktop-header-search .flex-search .btn.btn-clear:not(.btn-search),
.page-id-47455 #desktop-header-search .flex-search .btn.btn-apply:not(.btn-search):hover,
.page-id-47455 #desktop-header-search .flex-search .btn.btn-clear:not(.btn-search):hover,
.page-id-47455 #desktop-header-search .flex-search .btn.btn-apply:not(.btn-search):focus,
.page-id-47455 #desktop-header-search .flex-search .btn.btn-clear:not(.btn-search):focus {
    display: none !important;
}

/* Partie en italique des titres : taille proportionnelle au titre */
.titre-italique {
    font-family: 'Fraunces', serif;
    font-style: italic;
    font-size: 1.2em;   /* 1,5 fois la taille du titre */
    line-height: 1.05;
    display: inline-block;
}

/* =========================================================
   HOME : recherche en pastilles + curseur — tablette + mobile
   ========================================================= */
.rs-panel { display: none; }

@media (max-width: 1024px) {

    #recherche-home .rs-hidden { display: none !important; }

    #recherche-home .rs-panel {
        display: block;
        width: 100%;
        flex: 0 0 100%;
        font-family: Poppins, sans-serif;
    }

    /* Bouton Rechercher pleine largeur */
    #recherche-home .elementor-field-type-submit {
        width: 100% !important;
        max-width: none !important;
        flex: 0 0 100% !important;
    }
    #recherche-home .houzez-search-button {
        width: 100% !important;
        height: 52px !important;
    }

    .rs-group { margin: 0 0 20px; min-width: 0; }
    .rs-label {
        margin: 0 0 8px;
        font-family: Poppins, sans-serif;
        font-size: 11px;
        font-weight: 600;
        letter-spacing: 1.2px;
        text-transform: uppercase;
        color: #8a857d;
    }

    /* --- Pastilles --- */
    .rs-chips { display: flex; flex-wrap: wrap; gap: 8px; }
    .rs-chips.rs-scroll {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 4px;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    .rs-chips.rs-scroll::-webkit-scrollbar { display: none; }

    .rs-chip {
        flex: 0 0 auto;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        height: 40px;
        padding: 0 16px;
        border: 1px solid #DCD6CC;
        border-radius: 999px;
        background: #fff;
        color: #34405c;
        font: 400 14px/1 Poppins, sans-serif;
        white-space: nowrap;
        cursor: pointer;
        transition: background .15s ease, border-color .15s ease, color .15s ease;
    }
    .rs-chip.is-on {
        background: #FFEDEA;
        border-color: #FF5C4C;
        color: #FF5C4C;
        font-weight: 500;
    }
    .rs-chip:disabled { opacity: .35; cursor: default; }

    /* "Je cherche à" : deux boutons de même largeur */
    .rs-segment .rs-chips { flex-wrap: nowrap; }
    .rs-segment .rs-chip { flex: 1 1 0; }

    /* --- Curseur de surface --- */
    .rs-range__head {
        display: flex;
        align-items: baseline;
        justify-content: space-between;
    }
    .rs-range__value {
        font: 400 14px/1 Poppins, sans-serif;
        color: #8a857d;
    }
    .rs-range__value.is-on { color: #FF5C4C; font-weight: 500; }

    .rs-range input[type="range"] {
        -webkit-appearance: none;
        appearance: none;
        width: 100%;
        height: 28px;
        margin: 4px 0 0;
        background: transparent;
        cursor: pointer;
    }
    .rs-range input[type="range"]::-webkit-slider-runnable-track {
        height: 4px;
        border-radius: 4px;
        background: linear-gradient(to right, #FF5C4C 0, #FF5C4C var(--p, 0%), #DCD6CC var(--p, 0%), #DCD6CC 100%);
    }
    .rs-range input[type="range"]::-moz-range-track {
        height: 4px;
        border-radius: 4px;
        background: #DCD6CC;
    }
    .rs-range input[type="range"]::-moz-range-progress {
        height: 4px;
        border-radius: 4px;
        background: #FF5C4C;
    }
    .rs-range input[type="range"]::-webkit-slider-thumb {
        -webkit-appearance: none;
        width: 24px;
        height: 24px;
        margin-top: -10px;
        border-radius: 50%;
        background: #fff;
        border: 2px solid #FF5C4C;
        box-shadow: 0 2px 6px rgba(0,0,0,.15);
    }
    .rs-range input[type="range"]::-moz-range-thumb {
        width: 22px;
        height: 22px;
        border-radius: 50%;
        background: #fff;
        border: 2px solid #FF5C4C;
        box-shadow: 0 2px 6px rgba(0,0,0,.15);
    }
}

/* Tablette : mise en page sur deux colonnes */
@media (min-width: 768px) and (max-width: 1024px) {
    #recherche-home .rs-panel {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0 28px;
    }
    /* "Type de bien" (3e groupe) sur toute la largeur */
    #recherche-home .rs-panel > .rs-group:nth-child(3) {
        grid-column: 1 / -1;
    }
}

/* =========================================================
   CARTES DE BIENS : pas d'icône "agrandir" sur les photos
   ========================================================= */
.item-listing-wrap .hz-show-lightbox-js,
.item-listing-wrap .item-tools,
.item-listing-wrap .icon-expand-3,
.item-listing-wrap [class*="lightbox"] {
    display: none !important;
}

/* =========================================================
   HOME : carrousel "Coups de cœur" — tablette + mobile
   ========================================================= */
@media (max-width: 1024px) {

    /* Cartes à taille réelle (annule le zoom desktop) */
    .property-carousel-module .item-listing-wrap,
    .property-carousel-module .item-listing-wrap.slick-active {
        transform: none !important;
    }

    /* Carrousel principal : on aperçoit la carte suivante */
    .property-carousel-module .slick-slider:not(.houzez-listing-carousel) > .slick-list {
        padding: 0 12% 0 0 !important;
        overflow: hidden;
    }
    .property-carousel-module .slick-slider:not(.houzez-listing-carousel) > .slick-list > .slick-track > .slick-slide {
        padding: 0 8px !important;
    }

    /* Galerie photo interne : aucun décalage */
    .property-carousel-module .houzez-listing-carousel .slick-list,
    .property-carousel-module .houzez-listing-carousel .slick-slide {
        padding: 0 !important;
    }

    /* Flèches masquées : on fait glisser au doigt */
    .property-carousel-module .property-carousel-buttons-wrap,
    .property-carousel-module .houzez-listing-carousel .slick-arrow {
        display: none !important;
    }

    /* Pas de contour bleu au toucher */
    .property-carousel-module .slick-slide:focus,
    .property-carousel-module .item-listing-wrap:focus,
    .property-carousel-module a:focus {
        outline: none !important;
    }

    /* Étiquettes toujours au-dessus de la photo, même pendant le glissement */
    .property-carousel-module .item-header {
        position: relative;
    }
    .property-carousel-module .item-header .label-featured,
    .property-carousel-module .item-header .labels-wrap,
    .property-carousel-module .item-header .durand-extra-labels {
        position: absolute;
        z-index: 10 !important;
        transform: translateZ(0);
        -webkit-backface-visibility: hidden;
        backface-visibility: hidden;
    }

    /* Titre sur 2 lignes */
    .property-carousel-module .item-title,
    .property-carousel-module .item-title a {
        font-size: 15px !important;
        line-height: 1.45 !important;
        display: -webkit-box !important;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        margin-bottom: 8px !important;
    }
}

/* Mobile : aperçu plus marqué, texte un peu plus petit */
@media (max-width: 767px) {
    .property-carousel-module .slick-slider:not(.houzez-listing-carousel) > .slick-list {
        padding: 0 18% 0 0 !important;
    }
    .property-carousel-module .slick-slider:not(.houzez-listing-carousel) > .slick-list > .slick-track > .slick-slide {
        padding: 0 6px !important;
    }
    .property-carousel-module .item-title,
    .property-carousel-module .item-title a {
        font-size: 14px !important;
    }
    .property-carousel-module .item-price,
    .property-carousel-module .price {
        font-size: 18px !important;
    }
}

/* =========================================================
   HOME : recherche en tablette — marges et alignement
   ========================================================= */
@media (min-width: 768px) and (max-width: 1024px) {

    /* Marge autour de la carte */
    #recherche-home {
        padding-left: 40px !important;
        padding-right: 40px !important;
        box-sizing: border-box;
    }

    /* Espace à l'intérieur de la carte */
    #recherche-home .houzez-search-builder-wrapper {
        padding: 40px 44px !important;
    }

    /* Bouton aligné sur les pastilles */
    #recherche-home .elementor-field-type-submit {
        padding-left: 0 !important;
        padding-right: 0 !important;
        margin-top: 8px !important;
    }
}

/* =========================================================
   LISTING (page 47455) : TABLETTE + MOBILE
   Pas de carte, résultats en pleine largeur (en dessous de 1024px)
   ========================================================= */
@media (max-width: 1024px) {

    /* --- Tous les conteneurs parents de la liste : plus de hauteur fixe --- */
    body.page-id-47455,
    .page-id-47455 *:has(.half-map-wrap) {
        height: auto !important;
        max-height: none !important;
        overflow-y: visible !important;
    }

    /* --- Bloc titre + recherche : toujours affiché (titre visible) --- */
    .page-id-47455 #desktop-header-search {
        display: block !important;
        padding-bottom: 32px !important;
    }

    /* --- Conteneur carte + résultats : affichage normal dans la page --- */
    .page-id-47455 .half-map-wrap {
        display: block !important;
        position: relative !important;
        inset: auto !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow: visible !important;
        transform: none !important;
    }

    /* --- Résultats : pleine largeur, sans défilement interne --- */
    .page-id-47455 #half-map-listing-area {
        display: block !important;
        position: relative !important;
        inset: auto !important;
        width: 100% !important;
        max-width: 100% !important;
        flex: none !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow: visible !important;
        transform: none !important;
        padding: 0 40px 48px !important;
    }
    .page-id-47455 #houzez_ajax_container,
    .page-id-47455 #houzez_ajax_container .listing-view {
        height: auto !important;
        max-height: none !important;
        overflow: visible !important;
    }

    /* Compteur + tri sur une seule ligne */
    .page-id-47455 .page-title-wrap {
        padding: 8px 0 20px !important;
    }
    .page-id-47455 .page-title-wrap > .d-flex {
        gap: 16px;
    }
    .page-id-47455 .page-title-wrap .page-title {
        white-space: nowrap;
    }
    .page-id-47455 .page-title-wrap .page-title,
    .page-id-47455 .page-title-wrap .page-title * {
        font-size: 18px !important;
        line-height: 1.3 !important;
    }
    .page-id-47455 .page-title-wrap .sort-by {
        font-size: 14px !important;
        white-space: nowrap;
    }
    .page-id-47455 .page-title-wrap .listing-switch-view {
        display: none !important;
    }

    /* Grille : espacement propre (2 colonnes en tablette, 1 en mobile, gérées par le thème) */
    .page-id-47455 #houzez_ajax_container .listing-view {
        --bs-gutter-x: 24px;
        --bs-gutter-y: 32px;
    }
    .page-id-47455 .pagination-wrap {
        margin-top: 32px;
    }
}

/* ---------- TABLETTE (768–1024) : notre barre de recherche sur 2 lignes ---------- */
@media (min-width: 768px) and (max-width: 1024px) {

    .page-id-47455 .mobile-search-nav {
        display: none !important;
    }

    .page-id-47455 #desktop-header-search > .container-fluid {
        width: calc(100% - 80px) !important;
    }

    .page-id-47455 #desktop-header-search .advanced-search-v3 > .d-flex {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 18px 16px !important;
    }

    .page-id-47455 .durand-listing-title {
        width: calc(100% - 80px) !important;
        margin: 40px auto !important;
        font-size: 44px !important;
    }
}

/* ---------- MOBILE (< 768) ---------- */
@media (max-width: 767px) {

    /* Titre de la page */
    .page-id-47455 .durand-listing-title {
        width: calc(100% - 48px) !important;
        margin: 28px auto 16px !important;
        font-size: 30px !important;
    }

    /* Résultats : mêmes marges, 1 colonne sans décalage */
    .page-id-47455 #half-map-listing-area {
        padding: 0 24px 40px !important;
    }
    .page-id-47455 #houzez_ajax_container .listing-view {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    .page-id-47455 #houzez_ajax_container .listing-view > * {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* Compteur et tri : peuvent passer à la ligne */
    .page-id-47455 .page-title-wrap > .d-flex {
        flex-wrap: wrap;
        row-gap: 6px;
    }
    .page-id-47455 .page-title-wrap .page-title,
    .page-id-47455 .page-title-wrap .page-title * {
        font-size: 17px !important;
    }
}

/* =========================================================
   LISTING (page 47455) : biens sur 2 colonnes en tablette
   ========================================================= */
@media (min-width: 768px) and (max-width: 1024px) {
    .page-id-47455 #houzez_ajax_container .listing-view {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 32px 24px !important;
        margin: 0 !important;
    }
    .page-id-47455 #houzez_ajax_container .listing-view > .item-listing-wrap {
        width: auto !important;
        max-width: none !important;
        flex: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }
}

/* =========================================================
   LISTING (page 47455) : MOBILE — recherche + flèches photos
   ========================================================= */

/* ---------- Recherche : notre barre au lieu du bouton "Rechercher" ---------- */
@media (max-width: 767px) {

    /* On réaffiche notre formulaire et on masque la barre Houzez */
    .page-id-47455 #desktop-header-search > .container-fluid {
        display: block !important;
        width: calc(100% - 48px) !important;
    }
    .page-id-47455 .mobile-search-nav {
        display: none !important;
    }
    .page-id-47455 #desktop-header-search {
        padding-bottom: 28px !important;
    }
}
/* ---------- Flèches des photos : toujours visibles sur tablette et mobile (style du thème) ---------- */
@media (max-width: 1024px) {
    .page-id-47455 .item-listing-wrap .houzez-listing-carousel .slick-arrow {
        display: block !important;
        opacity: 1 !important;
        visibility: visible !important;
        z-index: 5;
    }
}

/* =========================================================
   LISTING (page 47455) : recherche en pastilles, en mobile
   ========================================================= */
@media (max-width: 767px) {

    /* Panneau de pastilles visible, anciens champs masqués */
    .page-id-47455 #desktop-header-search .rs-panel {
        display: block !important;
        width: 100%;
        font-family: Poppins, sans-serif;
    }
    .page-id-47455 #desktop-header-search .rs-hidden {
        display: none !important;
    }

    /* Il ne reste que le bouton dans la grille : pleine largeur */
    .page-id-47455 #desktop-header-search .advanced-search-v3 > .d-flex {
        display: block !important;
    }
    .page-id-47455 #desktop-header-search .btn-no-right-padding,
    .page-id-47455 #desktop-header-search .advanced-search-v3 > .d-flex > :last-child {
        display: block !important;
        width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
        border: 0 !important;
    }
    .page-id-47455 #desktop-header-search .btn-search {
        width: 100% !important;
        height: 50px !important;
        font-size: 15px !important;
    }

    /* Carte de recherche : un peu plus d'air */
    .page-id-47455 #desktop-header-search .advanced-search-v3 {
        padding: 22px 18px 20px !important;
    }
}

/* =========================================================
   Recherche en pastilles : pas d'affichage de l'ancienne barre au chargement
   ========================================================= */
@keyframes rs-reveal { to { visibility: visible; opacity: 1; } }

/* Home : tablette + mobile */
@media (max-width: 1024px) {
    #recherche-home .houzez-ele-search-form-wrapper {
        transition: opacity .25s ease;
    }
    #recherche-home:not([data-rs-done]) .houzez-ele-search-form-wrapper {
        visibility: hidden;
        opacity: 0;
        animation: rs-reveal 0s 1.5s forwards;   /* sécurité : réaffiche si le script ne se lance pas */
    }
}

/* Listing : mobile */
@media (max-width: 767px) {
    .page-id-47455 #desktop-header-search .advanced-search-v3 {
        transition: opacity .25s ease;
    }
    .page-id-47455 #desktop-header-search:not([data-rs-done]) .advanced-search-v3 {
        visibility: hidden;
        opacity: 0;
        animation: rs-reveal 0s 1.5s forwards;
    }
}

/* ==========================================================
   PAGE ANNONCE : TABLETTE + MOBILE (≤1024px)
   Annule les largeurs fixes (1250 / 820 / 400) et empile
   la description et le formulaire de contact
   ========================================================== */
@media (max-width: 1024px) {

    body.single-property {
        overflow-x: clip;
    }

    /* Conteneur principal : pleine largeur + marges latérales */
    #section-boxed-1250 {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 40px !important;
        padding-right: 40px !important;
        box-sizing: border-box !important;
    }

    /* Le parent des 2 colonnes passe à la ligne */
    *:has(> .elementor-element-6af2a62) {
        flex-wrap: wrap !important;
    }

    /* Colonne description (820) + colonne contact (400) : empilées */
    .elementor-element-6af2a62,
    .elementor-element-44d85f1 {
        flex: 0 0 100% !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .elementor-element-44d85f1 {
        margin-top: 48px;
    }
}

@media (max-width: 767px) {
    #section-boxed-1250 {
        padding-left: 24px !important;
        padding-right: 24px !important;
    }
}

/* ==========================================================
   PAGE ANNONCE (modèle 46410) : MARGES + BARRE AGENT
   Tablette + mobile uniquement
   ========================================================== */
@media (max-width: 1024px) {

    /* Marges latérales sur toutes les sections de la fiche
       (le fond des sections reste pleine largeur) */
    .elementor-46410 > .elementor-element.e-con-boxed {
        padding-left: 40px !important;
        padding-right: 40px !important;
        box-sizing: border-box !important;
    }

    /* Barre agent collée en bas : masquée */
    .mobile-property-contact {
        display: none !important;
    }
}

@media (max-width: 767px) {
    .elementor-46410 > .elementor-element.e-con-boxed,
    #section-boxed-1250 {
        padding-left: 24px !important;
        padding-right: 24px !important;
    }
}

/* ==========================================================
   PAGE ANNONCE : INFOS COMPLÉMENTAIRES + FORMULAIRE
   Tablette + mobile uniquement
   ========================================================== */
@media (max-width: 1024px) {

    /* ---------- Les deux grilles : même logique ---------- */
    .elementor-element-40ad2b5,
    .elementor-element-ed0aa8d ul.list-unstyled.row {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 32px 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        --bs-gutter-x: 0;
        --bs-gutter-y: 0;
    }
    .elementor-element-40ad2b5 {
        margin-bottom: 32px !important;
    }
    .elementor-element-ed0aa8d .block-wrap,
    .elementor-element-ed0aa8d .block-content-wrap {
        padding: 0 !important;
        margin: 0 !important;
    }

    /* Chaque case : alignée à gauche, trait à droite */
    .elementor-element-40ad2b5 > .elementor-widget-houzez-property-meta,
    .elementor-element-ed0aa8d ul.list-unstyled.row > li {
        width: auto !important;
        max-width: none !important;
        min-width: 0;
        flex: none !important;
        margin: 0 !important;
        padding: 0 20px !important;
        border-right-width: 1px !important;
        text-align: left !important;
    }
    .elementor-element-40ad2b5 .hs-meta-widget-module {
        width: 100% !important;
        justify-content: flex-start !important;
        align-items: flex-start !important;
        text-align: left !important;
    }
    .elementor-element-40ad2b5 .hs-meta-widget-module > * {
        width: 100%;
        text-align: left !important;
    }

    /* 1re colonne collée à gauche, pas de trait en fin de ligne */
    .elementor-element-40ad2b5 > .elementor-widget-houzez-property-meta:nth-child(4n+1),
    .elementor-element-ed0aa8d ul.list-unstyled.row > li:nth-child(4n+1) {
        padding-left: 0 !important;
    }
    .elementor-element-40ad2b5 > .elementor-widget-houzez-property-meta:nth-child(4n),
    .elementor-element-40ad2b5 > .elementor-widget-houzez-property-meta:last-child,
    .elementor-element-ed0aa8d ul.list-unstyled.row > li:nth-child(4n),
    .elementor-element-ed0aa8d ul.list-unstyled.row > li:last-child {
        border-right-width: 0 !important;
    }

    /* ---------- Formulaire ---------- */
    /* Bloc gris aligné sur le texte de la description */
    .elementor-element-44d85f1 {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
    /* Marge intérieure du bloc gris */
    .elementor-element-819f467 {
        padding: 48px 48px 40px !important;
    }
    .elementor-element-819f467 > .e-con-inner {
        padding: 0 !important;
    }
    /* Tout aligné à gauche dans le bloc */
    .elementor-element-44d85f1 .elementor-element-c96df85 {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    .elementor-element-44d85f1 .property-contact-agent-wrap {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    .elementor-element-44d85f1 .property-contact-agent-wrap form > .row {
        margin-left: -12px !important;
        margin-right: -12px !important;
    }
}

/* ---------- Mobile ---------- */
@media (max-width: 767px) {

    .elementor-element-40ad2b5,
    .elementor-element-ed0aa8d ul.list-unstyled.row {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 24px 0 !important;
    }
    .elementor-element-40ad2b5 {
        margin-bottom: 24px !important;
    }

    .elementor-element-40ad2b5 > .elementor-widget-houzez-property-meta,
    .elementor-element-ed0aa8d ul.list-unstyled.row > li {
        padding: 0 16px !important;
        border-right-width: 1px !important;
    }
    .elementor-element-40ad2b5 > .elementor-widget-houzez-property-meta:nth-child(2n+1),
    .elementor-element-ed0aa8d ul.list-unstyled.row > li:nth-child(2n+1) {
        padding-left: 0 !important;
    }
    .elementor-element-40ad2b5 > .elementor-widget-houzez-property-meta:nth-child(2n),
    .elementor-element-40ad2b5 > .elementor-widget-houzez-property-meta:last-child,
    .elementor-element-ed0aa8d ul.list-unstyled.row > li:nth-child(2n),
    .elementor-element-ed0aa8d ul.list-unstyled.row > li:last-child {
        border-right-width: 0 !important;
    }

    .elementor-element-44d85f1 {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    .elementor-element-819f467 {
        padding: 32px 24px 28px !important;
    }
}

/* PAGE ANNONCE : espace sous la liste Ascenseur / Terrasse avant la ligne */
@media (max-width: 1024px) {
    .elementor-element-ed0aa8d {
        padding-bottom: 48px !important;
    }
}
@media (max-width: 767px) {
    .elementor-element-ed0aa8d {
        padding-bottom: 36px !important;
    }
}

/* ==========================================================
   PAGE ANNONCE : BANDEAU INFORMATIONS LÉGALES
   Interligne resserré, tous écrans
   ========================================================== */
#bandeau-informations-legales > .e-con-inner {
    row-gap: 5px !important;
    grid-auto-rows: auto !important;
    grid-template-rows: none !important;
    align-items: start !important;
}

/* Si les lignes sont dans des sous-conteneurs */
#bandeau-informations-legales .e-con {
    row-gap: 5px !important;
    justify-content: flex-start !important;
}

#bandeau-informations-legales .elementor-widget {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

#bandeau-informations-legales .elementor-widget-container,
#bandeau-informations-legales .elementor-widget-container p {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* ==========================================================
   PAGE ANNONCE (modèle 46410) : MOBILE (< 768px)
   ========================================================== */
@media (max-width: 767px) {

    /* --- Sections : hauteur = contenu --- */
    .elementor-46410 > .elementor-element.e-con-boxed,
    .elementor-46410 > .elementor-element.e-con-boxed > .e-con-inner {
        min-height: 0 !important;
        height: auto !important;
        grid-template-rows: none !important;
        grid-auto-rows: auto !important;
        align-content: start !important;
    }

    /* --- Vide sous l'en-tête --- */
    body.single-property .main-wrap {
        margin-top: 0 !important;
    }
    .elementor-element-9bc7d62 > .e-con-inner {
        padding-top: 32px !important;
    }

    /* --- Titres de section : à gauche, sans marge négative --- */
    .elementor-46410 .elementor-widget-heading .elementor-heading-title {
        text-align: left !important;
    }
    .elementor-element-8c110ad,
    .elementor-element-3cf0465,
    .elementor-element-b89cd01 {
        margin-top: 0 !important;
        margin-bottom: 24px !important;
        padding-bottom: 0 !important;
    }
    .elementor-element-c806202 > .e-con-inner,
    .elementor-element-e537fc4 > .e-con-inner {
        padding-top: 48px !important;
    }

    /* --- Surface / Pièces / Chambres : 3 sur une ligne --- */
    .elementor-element-fb759ae > .e-con-inner {
        padding-top: 0 !important;
    }
    .elementor-element-fb759ae .elementor-widget-houzez-property-meta:last-child {
        border-right-width: 0 !important;
    }

    /* --- Informations complémentaires --- */
    .elementor-element-2faf6f7 > .e-con-inner {
        padding-top: 40px !important;
        padding-bottom: 0 !important;
    }
    .elementor-element-48681d1 {
        margin-top: 16px !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* --- Le Bien : texte aligné sur le titre --- */
    .elementor-element-6af2a62 {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* --- Formulaire --- */
    .elementor-element-44d85f1 {
        margin-top: 32px !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }
    .elementor-element-20433c4 {
        margin-top: 0 !important;
        margin-bottom: 8px !important;
    }
    .elementor-element-b72effa {
        padding-bottom: 48px !important;
    }

    /* --- Informations légales --- */
    .elementor-element-c4f63b5 > .e-con-inner {
        padding-top: 40px !important;
    }
    .elementor-element-d87cb14 > .e-con-inner {
        row-gap: 10px !important;
        padding-top: 0 !important;
        padding-bottom: 48px !important;
    }
    .elementor-element-d87cb14 .elementor-widget-houzez-property-meta {
        width: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        border-right-width: 0 !important;
    }
    .elementor-element-d87cb14 .elementor-widget-houzez-property-meta .elementor-widget-container,
    .elementor-element-d87cb14 .hs-meta-widget-module,
    .elementor-element-d87cb14 .hs-meta-widget-module * {
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        line-height: 1.45 !important;
    }
}

/* PAGE ANNONCE : texte du bandeau légal plus petit (mobile) */
@media (max-width: 767px) {
    .elementor-element-d87cb14 .hs-meta-widget-module,
    .elementor-element-d87cb14 .hs-meta-widget-module * {
        font-size: 15px !important;
    }
}

/* ==========================================================
   PAGE ANNONCE : TITRE + PRIX CORAIL + PARTAGER (mobile)
   ========================================================== */
@media (max-width: 767px) {

    /* Version "ordinateur" des 2 widgets affichée, version mobile masquée */
    .elementor-element-a3ddecc .page-title-wrap.d-none,
    .elementor-element-0731b1d .page-title-wrap.d-none {
        display: block !important;
    }
    .elementor-element-a3ddecc .d-block.d-md-none,
    .elementor-element-0731b1d .d-block.d-md-none {
        display: none !important;
    }

    /* Titre */
    .elementor-element-a3ddecc .property-header-wrap {
        margin-top: 0 !important;
    }
    .elementor-element-a3ddecc .page-title {
        margin-right: 0 !important;
    }

    /* Prix : aligné à gauche */
    .elementor-element-0731b1d .property-header-wrap {
        margin-top: 0 !important;
        justify-content: flex-start !important;
    }
    .elementor-element-0731b1d .property-price-wrap,
    .elementor-element-0731b1d .property-price-wrap .item-price {
        text-align: left !important;
        margin-top: 0 !important;
    }

    /* Trait corail : l'original est masqué, un identique est dessiné sous le prix */
    .elementor-element-0731b1d .property-price-wrap .price::after {
        display: none !important;
    }
    .elementor-element-0731b1d .property-price-wrap .price {
        display: inline-block !important;
        padding-bottom: 16px !important;
        background-image: linear-gradient(#EE6C55, #EE6C55) !important;
        background-repeat: no-repeat !important;
        background-position: left bottom !important;
        background-size: 80px 2px !important;
    }

    /* Espace titre → prix */
    .elementor-element-9bc7d62 > .e-con-inner {
        row-gap: 12px !important;
    }

    /* Bouton Partager aligné à gauche */
    .elementor-element-79d6d37 ul.ele-item-tools {
        justify-content: flex-start !important;
    }
}

/* PAGE ANNONCE : titre "Ce bien vous plaît ?" sur une seule ligne (mobile) */
@media (max-width: 767px) {
    .elementor-element-20433c4 .elementor-heading-title {
        font-size: min(40px, calc((100vw - 96px) / 10)) !important;
        white-space: nowrap !important;
    }
}

/* PAGE ANNONCE : titres "Les Caractéristiques" et "Informations légales"
   sur une seule ligne (mobile) */
@media (max-width: 767px) {

    .elementor-element-8c110ad .elementor-heading-title {
        font-size: min(40px, calc((100vw - 48px) / 9.5)) !important;
        white-space: nowrap !important;
    }

    .elementor-element-b89cd01 .elementor-heading-title {
        font-size: min(34px, calc((100vw - 48px) / 11.5)) !important;
        white-space: nowrap !important;
    }
}

/* ==========================================================
   PAGE ANNONCE : GALERIE MOBILE — photo principale + 3 vignettes
   ========================================================== */
@media (max-width: 767px) {

    .elementor-element-5416d03 .hs-gallery-v5-grid-wrap {
        position: relative;
    }

    /* Grille : 3 colonnes, la photo principale prend toute la largeur */
    .elementor-element-5416d03 .hs-gallery-v5-grid {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        grid-template-rows: auto !important;
        gap: 8px !important;
        height: auto !important;
    }
    .elementor-element-5416d03 .hs-gallery-v5-grid-item-01 {
        grid-column: 1 / -1 !important;
    }

    /* Les photos 2 à 4 deviennent des vignettes */
    .elementor-element-5416d03 .hs-gallery-v5-grid-item-02 {
        display: contents !important;
    }
    .elementor-element-5416d03 .hs-gallery-v5-grid-item-02 > a {
        display: block !important;
        position: relative;
        aspect-ratio: 1 / 1;
        width: 100% !important;
        height: auto !important;
        overflow: hidden;
        border-radius: 6px;
        background-size: cover;
        background-position: center;
    }
    .elementor-element-5416d03 .hs-gallery-v5-grid-item-02 > a img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        display: block;
    }
    .elementor-element-5416d03 .hs-gallery-v5-grid-item-02 > a.img-wrap-5 {
        display: none !important;
    }

    /* Badge "nombre de photos" sur la dernière vignette */
    .elementor-element-5416d03 .img-wrap-3-text.d-md-none {
        display: inline-flex !important;
        align-items: center;
        gap: 4px;
        position: absolute !important;
        right: 8px !important;
        bottom: 8px !important;
        left: auto !important;
        top: auto !important;
        z-index: 3;
        padding: 5px 10px !important;
        border-radius: 20px;
        background: rgba(26, 26, 26, .72) !important;
        color: #fff !important;
        font-size: 12px !important;
        line-height: 1.2 !important;
        pointer-events: none;
    }
    .elementor-element-5416d03 .img-wrap-3-text.d-md-none i {
        color: #fff !important;
    }
}

/* ==========================================================
   PAGE ANNONCE : CARACTÉRISTIQUES — 4 par ligne (mobile)
   ========================================================== */
@media (max-width: 767px) {

    .elementor-element-fb759ae > .e-con-inner {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        align-items: stretch !important;
        gap: 24px 0 !important;
    }

    .elementor-element-fb759ae .elementor-widget-houzez-property-meta {
        width: auto !important;
        min-width: 0;
        margin: 0 !important;
        padding: 0 4px !important;
        align-self: stretch !important;
        height: auto !important;
        border-right-width: 1px !important;
    }

    /* Pas de trait en fin de ligne (4e, 8e…) ni sur la dernière case */
    .elementor-element-fb759ae .elementor-widget-houzez-property-meta:nth-child(4n),
    .elementor-element-fb759ae .elementor-widget-houzez-property-meta:last-child {
        border-right-width: 0 !important;
    }

        /* Pictos : même hauteur pour tous */
    .elementor-element-fb759ae .hs-meta-widget-module img,
    .elementor-element-fb759ae .hs-meta-widget-module svg {
        height: 30px !important;
        width: auto !important;
        max-width: 48px !important;
        max-height: 30px !important;
        object-fit: contain;
    }
    .elementor-element-fb759ae .hs-meta-widget-module i {
        font-size: 30px !important;
        line-height: 1 !important;
    }

    /* Libellés : Surface m², Pièces… */
    .elementor-element-fb759ae .hs-meta-widget-title {
        font-size: 15px !important;
        line-height: 1.25 !important;
        white-space: nowrap !important;
    }

    /* Valeurs : 71, 3, Toits dégagée… */
    .elementor-element-fb759ae .hs-meta-widget-module > :not(.hs-meta-widget-title):not(img):not(svg):not(i) {
        font-size: 14px !important;
        line-height: 1.35 !important;
    }
}

/* ==========================================================
   PAGE ANNONCE : INFOS COMPLÉMENTAIRES — typo réduite (mobile)
   (à laisser en toute fin du CSS additionnel)
   ========================================================== */
@media (max-width: 767px) {

    /* Titre de l'accordéon sur une ligne */
    body.single-property .elementor-46410 .elementor-element-5583485 .e-n-accordion-item-title-text {
        font-size: min(24px, calc((100vw - 90px) / 13)) !important;
        white-space: nowrap !important;
    }

    /* Référence / Étage / Charges : libellé */
    body.single-property .elementor-46410 .elementor-element-40ad2b5 .hs-meta-widget-module .hs-meta-widget-title {
        font-size: 18px !important;
        line-height: 1.3 !important;
    }
    /* Référence / Étage / Charges : valeur */
    body.single-property .elementor-46410 .elementor-element-40ad2b5 .hs-meta-widget-module > :not(.hs-meta-widget-title) {
        font-size: 15px !important;
        line-height: 1.4 !important;
    }

    /* Ascenseur / Garage / Parking… : libellé */
    body.single-property .elementor-46410 .elementor-element-ed0aa8d .property-features-wrap li > a {
        font-size: 18px !important;
        line-height: 1.3 !important;
    }
    /* … : le "Oui" ajouté après le libellé */
    body.single-property .elementor-46410 .elementor-element-ed0aa8d .property-features-wrap li > a::after,
    body.single-property .elementor-46410 .elementor-element-ed0aa8d .property-features-wrap li::after {
        font-size: 15px !important;
        line-height: 1.4 !important;
    }
}

/* ==========================================================
   DM — BASE COMMUNE DES PAGES DE CONTENU (widgets HTML)
   ========================================================== */
:root {
    --dm-coral: #FF5C4C;
    --dm-text: #1a1a1a;
    --dm-muted: #6b6b6b;
    --dm-beige: #f0ede9;
    --dm-width: 1210px;
    --dm-serif: 'Fraunces', Georgia, serif;
    --dm-title: clamp(32px, 3.4vw, 50px);
}

/* Le widget HTML prend toute la largeur, sans la marge de 10px de la colonne Elementor */
.elementor-widget-html:has(.dm-section) {
    width: 100%;
    max-width: 100%;
}
.elementor-widget-wrap:has(> .elementor-widget-html .dm-section),
.e-con:has(> .elementor-widget-html .dm-section) {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.dm-section {
    font-family: 'Poppins', sans-serif;
    color: var(--dm-text);
    padding: 72px 0;
}
.dm-section *,
.dm-section *::before,
.dm-section *::after {
    box-sizing: border-box;
}
.dm-container {
    width: 100%;
    max-width: var(--dm-width);
    margin: 0 auto;
    padding: 0 12px 0 0;
}
/* Entre 1025 et 1250px : petite marge pour ne pas coller au bord */
@media (min-width: 1025px) and (max-width: 1250px) {
    .dm-container { padding: 0 20px; }
}

/* Sur-titre */
.dm-eyebrow {
    display: block;
    margin: 0 0 16px;
    font-size: 18px;
    font-weight: 300;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--dm-muted);
}

/* Titres : une seule taille pour tous (h1 et h2) */
.dm-h1,
.dm-h2 {
    margin: 0;
    font-family: 'Poppins', sans-serif;
    font-weight: 400;
    font-size: var(--dm-title);
    line-height: 1.08;
    color: var(--dm-text);
    letter-spacing: -.01em;
}
/* Partie en italique serif (ex : "c'est possible") */
.dm-italic {
    display: inline-block;
    font-family: var(--dm-serif);
    font-style: italic;
    font-weight: 400;
    font-size: 1.12em;
    line-height: 1;
    letter-spacing: 0;
}

/* Texte courant */
.dm-text {
    margin: 24px 0 0;
    font-size: 17px;
    line-height: 1.65;
    font-weight: 300;
    letter-spacing: .04em;
    color: var(--dm-text);
}

/* Boutons */
.dm-btns {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 36px;
}
.dm-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 10px 24px;
    border: 1.5px solid var(--dm-text);
    border-radius: 0;
    font-family: 'Poppins', sans-serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.2;
    text-decoration: none !important;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.dm-btn--primary {
    background: var(--dm-coral);
    border-color: var(--dm-coral);
    color: #fff !important;
}
.dm-btn--primary:hover {
    background: transparent;
    border-color: var(--dm-coral);
    color: var(--dm-coral) !important;
}
.dm-btn--outline {
    background: transparent;
    color: var(--dm-text) !important;
}
.dm-btn--outline:hover {
    background: var(--dm-text);
    color: #fff !important;
}

@media (max-width: 1024px) {
    .dm-section { padding: 56px 0; }
    .dm-container { padding: 0 40px; }
}

/* ---------- Mobile ---------- */
@media (max-width: 767px) {
    .dm-section { padding: 40px 0; }
    .dm-container { padding: 0 24px; }
    .dm-eyebrow { font-size: 13px; margin-bottom: 12px; }
    .dm-text { font-size: 16px; letter-spacing: .02em; margin-top: 18px; }
    .dm-btns { flex-direction: column; gap: 10px; margin-top: 28px; }
    .dm-btn { width: 100%; min-height: 46px; }
}

/* ==========================================================
   DM — FORMULAIRE "PARLONS DE VOTRE BIEN" (Contact Form 7)
   ========================================================== */

/* Le widget Shortcode suit les mêmes règles que les widgets HTML */
.elementor-widget-shortcode:has(.dm-section) {
    width: 100%;
    max-width: 100%;
}
.elementor-widget-wrap:has(> .elementor-widget-shortcode .dm-section),
.e-con:has(> .elementor-widget-shortcode .dm-section) {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Texte réservé aux lecteurs d'écran */
.dm-sr {
    position: absolute !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

/* ---------- Section ---------- */
.dm-lead {
    background: var(--dm-coral);
    color: #fff;
    padding: 80px 0;
}
.dm-lead__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 80px;
    align-items: center;
}

/* ---------- Texte ---------- */
.dm-lead .dm-lead__eyebrow,
.dm-lead .dm-lead__title,
.dm-lead .dm-lead__text {
    color: #fff !important;
}
.dm-lead .dm-lead__eyebrow {
    margin-bottom: 18px;
}
.dm-lead .dm-lead__title {
    max-width: 520px;
    font-size: clamp(22px, 1.9vw, 30px) !important;
    line-height: 1.45 !important;
}
.dm-lead .dm-lead__text {
    max-width: 470px;
    margin-top: 20px;
}

/* ---------- Champs ---------- */
.dm-lead__fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.dm-lead__field {
    display: block;
    margin: 0;
}
.dm-lead .wpcf7-form-control-wrap {
    display: block;
}
.dm-lead input[type="text"],
.dm-lead input[type="tel"],
.dm-lead input[type="email"],
.dm-lead select {
    width: 100%;
    height: 50px;
    margin: 0;
    padding: 0 16px;
    background-color: transparent;
    border: 1px solid rgba(255, 255, 255, .85);
    border-radius: 0;
    box-shadow: none;
    color: #fff;
    font-family: 'Poppins', sans-serif;
    font-size: 15px;
    font-weight: 400;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
    transition: border-color .2s ease, background-color .2s ease;
}
.dm-lead input::placeholder {
    color: #fff;
    opacity: 1;
}
.dm-lead input:focus,
.dm-lead select:focus {
    border-color: #fff;
    background-color: rgba(255, 255, 255, .08);
}
.dm-lead select {
    padding-right: 40px;
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23fff' stroke-width='1.5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
}
.dm-lead select option {
    color: var(--dm-text);
}

/* ---------- Consentement RGPD ---------- */
.dm-lead .dm-lead__rgpd,
.dm-lead .dm-lead__rgpd label,
.dm-lead .dm-lead__rgpd .wpcf7-list-item-label {
    font-family: 'Poppins', sans-serif !important;
    font-size: 12.5px !important;
    font-weight: 300 !important;
    line-height: 1.5 !important;
    letter-spacing: .02em !important;
    color: #fff !important;
}
.dm-lead .dm-lead__rgpd {
    margin-top: 18px !important;
}
.dm-lead .dm-lead__rgpd .wpcf7-list-item {
    margin: 0 !important;
}
.dm-lead .dm-lead__rgpd label {
    display: flex !important;
    gap: 10px;
    align-items: flex-start;
    cursor: pointer;
}
.dm-lead .dm-lead__rgpd input[type="checkbox"] {
    flex: 0 0 16px;
    width: 16px !important;
    height: 16px !important;
    margin: 1px 0 0 !important;
    accent-color: #fff;
}

/* ---------- Bouton ---------- */
.wpcf7-form .dm-lead [type="submit"],
.wpcf7-form .dm-lead .wpcf7-submit {
    display: block !important;
    width: 100% !important;
    height: 64px !important;
    margin: 22px 0 0 !important;
    padding: 0 20px !important;
    background: #fff !important;
    border: 1.5px solid #fff !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: var(--dm-coral) !important;
    font-family: 'Poppins', sans-serif !important;
    font-size: 17px !important;
    font-weight: 500 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    text-align: center !important;
    text-transform: none !important;
    cursor: pointer;
    transition: background-color .2s ease, color .2s ease;
}
.wpcf7-form .dm-lead [type="submit"]:hover,
.wpcf7-form .dm-lead .wpcf7-submit:hover {
    background: transparent !important;
    color: #fff !important;
}
.wpcf7-form .dm-lead .wpcf7-spinner {
    display: block;
    margin: 12px auto 0;
}

/* ---------- Messages de validation (sous les champs) ---------- */
.dm-lead .wpcf7-not-valid-tip {
    margin-top: 4px;
    font-size: 12px;
    color: #fff;
}
.dm-lead .wpcf7-not-valid {
    border-color: #fff !important;
    border-width: 2px !important;
}

/* ---------- Après envoi : panneau de remerciement ---------- */
.dm-lead__thanks {
    display: none;
}
.wpcf7-form.sent .dm-lead__form-inner {
    display: none;
}
.wpcf7-form.sent .dm-lead__thanks {
    display: block;
    padding: 44px 40px;
    border: 1px solid rgba(255, 255, 255, .85);
    color: #fff;
    animation: dm-lead-in .5s ease both;
}
@keyframes dm-lead-in {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: none; }
}
.dm-lead__thanks-icon {
    display: block;
    width: 44px;
    height: 44px;
    margin-bottom: 20px;
    border: 1.5px solid #fff;
    border-radius: 50%;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='14' viewBox='0 0 18 14'%3E%3Cpath d='M1 7l5 5L17 1' fill='none' stroke='%23fff' stroke-width='1.8'/%3E%3C/svg%3E") center / 18px 14px no-repeat;
}
.dm-lead .dm-lead__thanks-title {
    margin: 0 0 10px;
    font-family: 'Poppins', sans-serif;
    font-size: 22px;
    font-weight: 400;
    line-height: 1.35;
    color: #fff;
}
.dm-lead .dm-lead__thanks-text {
    margin: 0;
    font-size: 15px;
    font-weight: 300;
    line-height: 1.7;
    letter-spacing: .03em;
    color: #fff;
}

/* ---------- Message CF7 : masqué après un envoi réussi,
   sur fond corail en cas d'erreur ---------- */
.wpcf7-form.sent .wpcf7-response-output {
    display: none !important;
}
.wpcf7-form:has(.dm-lead) .wpcf7-response-output {
    float: none !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 max(24px, calc((100% - var(--dm-width)) / 2)) 48px !important;
    border: 0 !important;
    background: var(--dm-coral) !important;
    color: #fff !important;
    font-family: 'Poppins', sans-serif !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    text-align: right !important;
}
.wpcf7-form:has(.dm-lead) .wpcf7-response-output:empty {
    display: none !important;
}

/* ---------- Tablette : texte puis formulaire ---------- */
@media (max-width: 1024px) {
    .dm-lead { padding: 60px 0; }
    .dm-lead__grid { grid-template-columns: 1fr; gap: 40px; }
    .dm-lead .dm-lead__title { max-width: 640px; }
    .dm-lead .dm-lead__text { max-width: 560px; }
    .wpcf7-form:has(.dm-lead) .wpcf7-response-output {
        padding: 0 40px 40px !important;
        text-align: left !important;
    }
}

/* ---------- Mobile : champs sur une colonne ---------- */
@media (max-width: 767px) {
    .dm-lead { padding: 44px 0; }
    .dm-lead__grid { gap: 28px; }
    .dm-lead__fields { grid-template-columns: 1fr; gap: 10px; }
    .dm-lead input[type="text"],
    .dm-lead input[type="tel"],
    .dm-lead input[type="email"],
    .dm-lead select { height: 48px; font-size: 16px; }
    .wpcf7-form .dm-lead [type="submit"],
    .wpcf7-form .dm-lead .wpcf7-submit {
        height: 56px !important;
        font-size: 16px !important;
    }
    .wpcf7-form.sent .dm-lead__thanks { padding: 32px 24px; }
    .dm-lead .dm-lead__thanks-title { font-size: 19px; }
    .wpcf7-form:has(.dm-lead) .wpcf7-response-output {
        padding: 0 24px 36px !important;
    }
}

/* DM — Variante formulaire COPROPRIÉTÉ : titre normal + italique */
.dm-lead--cp .dm-lead__title {
    max-width: 560px;
    font-size: clamp(28px, 2.7vw, 40px) !important;
    line-height: 1.15 !important;
}
.dm-lead--cp .dm-lead__title .dm-italic {
    color: #fff;
}
.dm-lead--cp .dm-lead__text {
    margin-top: 32px;
}
@media (max-width: 767px) {
    .dm-lead--cp .dm-lead__text { margin-top: 20px; }
}

/* ==========================================================
   PAGE CONTACT : FORMULAIRE CF7
   (ciblé par son titre "Votre demande", unique sur le site)
   ========================================================== */

/* Message de confirmation / d'erreur (tous écrans) */
.wpcf7-form:has(.form-section-title) .wpcf7-response-output {
    margin: 16px 0 0 !important;
    padding: 12px 16px !important;
    border: 1px solid var(--dm-coral) !important;
    color: var(--dm-text);
    font-family: 'Poppins', sans-serif;
    font-size: 14px;
}
.wpcf7-form.sent:has(.form-section-title) .wpcf7-response-output {
    background: var(--dm-beige);
    border-color: var(--dm-beige) !important;
}

/* Survol du bouton : creux (tous écrans) */
.wpcf7-form:has(.form-section-title) .wpcf7-submit {
    border: 1.5px solid var(--dm-coral) !important;
    transition: background-color .2s ease, color .2s ease;
}
.wpcf7-form:has(.form-section-title) .wpcf7-submit:hover {
    background: transparent !important;
    color: var(--dm-coral) !important;
}

/* ---------- Mobile ---------- */
@media (max-width: 767px) {

    /* Une seule colonne, espacement régulier */
    .wpcf7-form:has(.form-section-title) .row {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 12px !important;
        margin: 0 0 12px !important;
    }
    .wpcf7-form:has(.form-section-title) .row > [class*="col-"] {
        width: 100% !important;
        max-width: none !important;
        flex: none !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    .wpcf7-form:has(.form-section-title) p {
        margin: 0 !important;
    }
    .wpcf7-form:has(.form-section-title) .wpcf7-form-control-wrap {
        display: block;
    }
    .wpcf7-form:has(.form-section-title) .form-section-title p {
        margin: 20px 0 10px !important;
        font-size: 12px !important;
        letter-spacing: .12em;
        color: var(--dm-muted) !important;
    }

    /* Champs : même style pour tous, 16px pour éviter le zoom iPhone */
    .wpcf7-form:has(.form-section-title) input[type="text"],
    .wpcf7-form:has(.form-section-title) input[type="email"],
    .wpcf7-form:has(.form-section-title) input[type="tel"],
    .wpcf7-form:has(.form-section-title) select,
    .wpcf7-form:has(.form-section-title) textarea {
        display: block !important;
        width: 100% !important;
        height: 50px !important;
        margin: 0 !important;
        padding: 0 16px !important;
        background-color: #fff !important;
        border: 1px solid #dcd8d3 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        color: var(--dm-text) !important;
        font-family: 'Poppins', sans-serif !important;
        font-size: 16px !important;
        font-weight: 400 !important;
        -webkit-appearance: none !important;
        appearance: none !important;
    }
    .wpcf7-form:has(.form-section-title) input::placeholder,
    .wpcf7-form:has(.form-section-title) textarea::placeholder {
        color: #8a8a8a;
        opacity: 1;
    }
    .wpcf7-form:has(.form-section-title) input:focus,
    .wpcf7-form:has(.form-section-title) select:focus,
    .wpcf7-form:has(.form-section-title) textarea:focus {
        border-color: var(--dm-coral) !important;
        outline: none;
    }

    /* Listes déroulantes : sans le style natif de l'iPhone */
    .wpcf7-form:has(.form-section-title) select {
        padding-right: 44px !important;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%231a1a1a' stroke-width='1.5'/%3E%3C/svg%3E") !important;
        background-repeat: no-repeat !important;
        background-position: right 16px center !important;
        background-size: 12px 8px !important;
    }

    /* Message */
    .wpcf7-form:has(.form-section-title) textarea {
        height: 150px !important;
        padding: 14px 16px !important;
        margin-top: 12px !important;
        resize: vertical;
    }

    /* Consentement : bien détaché de la zone message */
    .wpcf7-form:has(.form-section-title) p:has(.wpcf7-acceptance) {
        margin-top: 28px !important;
    }
    .wpcf7-form:has(.form-section-title) .wpcf7-acceptance {
        display: block;
    }
    .wpcf7-form:has(.form-section-title) .wpcf7-list-item {
        margin: 0 !important;
    }
    .wpcf7-form:has(.form-section-title) .wpcf7-acceptance label {
        display: flex !important;
        align-items: flex-start;
        gap: 10px;
    }
    .wpcf7-form:has(.form-section-title) .wpcf7-acceptance input {
        flex: 0 0 18px;
        width: 18px !important;
        height: 18px !important;
        margin: 2px 0 0 !important;
        accent-color: var(--dm-coral);
    }
    .wpcf7-form:has(.form-section-title) .wpcf7-list-item-label {
        font-size: 13px !important;
        line-height: 1.5 !important;
        letter-spacing: .02em !important;
    }

    /* Bouton pleine largeur */
    .wpcf7-form:has(.form-section-title) .wpcf7-submit {
        display: block !important;
        width: 100% !important;
        height: 54px !important;
        margin-top: 20px !important;
        font-size: 16px !important;
    }
    .wpcf7-form:has(.form-section-title) .wpcf7-spinner {
        display: block;
        margin: 12px auto 0;
    }
}
/* ==========================================================
   EN-TÊTE MOBILE : masque l'en-tête Houzez dès le chargement
   (évite le flash de l'ancien logo)
   ========================================================== */
@media (max-width: 1024px) {
    #header-mobile,
    .header-mobile,
    header.header-mobile,
    .mobile-header-wrap,
    .header-mobile-wrap {
        display: none !important;
    }
}

/* ==========================================================
   DM — PAGES LÉGALES (Mentions, CGU, Confidentialité)
   ========================================================== */
.dm-legal { padding: 56px 0 96px; }
.dm-legal__head { max-width: 820px; margin-bottom: 64px; }
.dm-legal__head .dm-text { max-width: 640px; margin-top: 20px; }
.dm-legal__update {
  display: block;
  margin-top: 16px;
  font-size: 13px;
  font-weight: 300;
  letter-spacing: .06em;
  color: var(--dm-muted);
}

.dm-legal__layout {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 80px;
  align-items: start;
}

/* Sommaire */
.dm-legal__toc {
  position: sticky;
  top: 120px;
  padding-left: 20px;
  border-left: 1px solid #e6e2dd;
}
.dm-legal__toc p {
  margin: 0 0 14px;
  font-size: 12px;
  font-weight: 400;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--dm-muted);
}
.dm-legal__toc ol { list-style: none; margin: 0; padding: 0; }
.dm-legal__toc li { margin: 0 0 10px; }
.dm-legal__toc a {
  font-size: 14px;
  font-weight: 300;
  line-height: 1.4;
  color: var(--dm-text) !important;
  text-decoration: none !important;
  transition: color .2s ease;
}
.dm-legal__toc a:hover { color: var(--dm-coral) !important; }

/* Contenu */
.dm-legal__body { max-width: 820px; }
.dm-legal__section { scroll-margin-top: 120px; }
.dm-legal__section + .dm-legal__section {
  margin-top: 56px;
  padding-top: 56px;
  border-top: 1px solid #e6e2dd;
}
.dm-legal__section h2 {
  margin: 0 0 24px;
  font-family: 'Poppins', sans-serif;
  font-size: clamp(24px, 2.2vw, 30px);
  font-weight: 400;
  line-height: 1.2;
  color: var(--dm-text);
}
.dm-legal__section h3 {
  margin: 0 0 14px;
  font-family: 'Poppins', sans-serif;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--dm-text);
}
.dm-legal__section p,
.dm-legal__section li,
.dm-legal__section dd {
  font-size: 15px;
  font-weight: 300;
  line-height: 1.8;
  letter-spacing: .03em;
  color: var(--dm-text);
}
.dm-legal__section p { margin: 0 0 14px; }
.dm-legal__section p:last-child { margin-bottom: 0; }
.dm-legal__section ul { margin: 0 0 14px; padding-left: 20px; }
.dm-legal__section strong { font-weight: 600; }
.dm-legal__section a {
  color: var(--dm-coral) !important;
  text-decoration: underline !important;
  text-underline-offset: 3px;
  overflow-wrap: anywhere;
}
.dm-legal__address {
  margin: 0 0 14px;
  padding-left: 16px;
  border-left: 2px solid var(--dm-coral);
  font-style: normal;
  font-size: 15px;
  font-weight: 300;
  line-height: 1.7;
}

/* Fiches d'identité (libellé / valeur) */
.dm-legal__cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.dm-legal__card {
  padding: 32px 28px;
  background: var(--dm-beige);
}
.dm-legal__card--full { grid-column: 1 / -1; }
.dm-legal__dl { margin: 0; }
.dm-legal__dl div { padding: 10px 0; border-bottom: 1px solid rgba(26,26,26,.08); }
.dm-legal__dl div:last-child { border-bottom: 0; padding-bottom: 0; }
.dm-legal__dl dt {
  margin: 0 0 2px;
  font-size: 11.5px;
  font-weight: 400;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--dm-muted);
}
.dm-legal__dl dd { margin: 0; line-height: 1.6 !important; }

/* Tablette : sommaire masqué */
@media (max-width: 1024px) {
  .dm-legal { padding: 40px 0 72px; }
  .dm-legal__head { margin-bottom: 44px; }
  .dm-legal__layout { grid-template-columns: 1fr; gap: 0; }
  .dm-legal__toc { display: none; }
}

/* Mobile */
@media (max-width: 767px) {
  .dm-legal { padding: 24px 0 56px; }
  .dm-legal__head { margin-bottom: 32px; }
  .dm-legal__section + .dm-legal__section { margin-top: 40px; padding-top: 40px; }
  .dm-legal__section h2 { margin-bottom: 18px; }
  .dm-legal__cards { grid-template-columns: 1fr; gap: 8px; }
  .dm-legal__card { padding: 24px 20px; }
  .dm-legal__section p,
  .dm-legal__section li { font-size: 15px; letter-spacing: .02em; }
}

/* ==========================================================
   MENU DESKTOP : fondu à l'ouverture seulement
   (évite le fantôme à gauche pendant la fermeture en mode sticky)
   ========================================================== */
@media (min-width: 1025px) {
    /* Fermeture : immédiate */
    #main-nav .dropdown-menu {
        transition: none !important;
    }
    /* Ouverture : fondu conservé */
    #main-nav li:hover > .dropdown-menu,
    #main-nav li:focus-within > .dropdown-menu,
    #main-nav .dropdown-menu.show {
        transition: opacity .2s ease, visibility .2s ease !important;
    }
}

/* ==========================================================
   MOBILE / TABLETTE : annule la marge ajoutée par le sticky Houzez
   au début du défilement (évite le "saut" de la page)
   ========================================================== */
@media (max-width: 1024px) {
    body #main-wrap,
    body .main-wrap {
        margin-top: 0 !important;
    }
    body .header-main-wrap {
        position: absolute !important;
        height: 0 !important;
    }
}

/* MENU MOBILE : masque le bloc téléphone + e-mail */
#dm-drawer a[href^="tel:"],
#dm-drawer a[href^="mailto:"],
#dm-drawer :is(div, p, ul, li, footer):has(a[href^="tel:"], a[href^="mailto:"]):not(:has(a:not([href^="tel:"]):not([href^="mailto:"]))) {
    display: none !important;
}

/* ==========================================================
   DM — TITRES EN MOBILE : partie italique à la même taille
   et au même interligne que le titre (évite les chevauchements
   et les coupures maladroites)
   ========================================================== */
@media (max-width: 767px) {
    .dm-h1 .dm-italic,
    .dm-h2 .dm-italic {
        font-size: 1.04em;
        line-height: inherit;
    }
    .dm-h1,
    .dm-h2 {
        line-height: 1.14 !important;
    }
}

/* ==========================================================
   HOME : RECHERCHE COMPACTE + PANNEAU "AFFINER" (≤1024px)
   ========================================================== */

/* Le lien et le panneau n'existent pas sur ordinateur */
.rs-refine, .rs-overlay, .rs-sheet { display: none; }

@media (max-width: 1024px) {

    /* --- Localisation en liste --- */
    #recherche-home.rs-compact .rs-loc .rs-label {
        display: flex;
        align-items: center;
        gap: 6px;
    }
    #recherche-home.rs-compact .rs-loc .rs-label svg { width: 15px; height: 15px; }
    #recherche-home.rs-compact .rs-select {
        width: 100%;
        padding: 0 44px 0 16px;
        background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%231a1a1a' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 16px center / 12px 8px;
        border: 1px solid #ECE8E1;
        border-radius: 12px;
        color: #1a1a1a;
        font-family: 'Poppins', sans-serif;
        -webkit-appearance: none;
        appearance: none;
    }

    /* --- Lien "Affiner ma recherche" --- */
    #recherche-home.rs-compact .rs-refine {
        display: flex;
        align-items: center;
        gap: 12px;
        width: 100%;
        padding: 14px 2px 2px;
        background: none;
        border: 0;
        border-top: 1px solid #ECE8E1;
        border-radius: 0;
        color: #1a1a1a;
        font-family: 'Poppins', sans-serif;
        font-weight: 400;
        text-align: left;
        cursor: pointer;
    }
    #recherche-home.rs-compact .rs-refine svg { width: 20px; height: 20px; flex: 0 0 20px; }
    #recherche-home.rs-compact .rs-refine span { flex: 1; }
    #recherche-home.rs-compact .rs-refine em { font-style: normal; color: var(--dm-coral, #FF5C4C); font-weight: 600; }
    #recherche-home.rs-compact .rs-refine__chev { width: 16px !important; height: 16px !important; }

    /* --- Fond sombre --- */
    .rs-overlay {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 99998;
        background: rgba(26, 26, 26, .45);
        opacity: 0;
        visibility: hidden;
        transition: opacity .3s ease, visibility .3s ease;
    }
    .rs-overlay.is-open { opacity: 1; visibility: visible; }
    html.rs-lock, html.rs-lock body { overflow: hidden; }

    /* --- Panneau --- */
    .rs-sheet {
        display: block;
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 99999;
        overflow-y: auto;
        background: #F5F4F1;
        border-radius: 22px 22px 0 0;
        box-shadow: 0 -10px 40px rgba(0, 0, 0, .12);
        font-family: 'Poppins', sans-serif;
        color: #1a1a1a;
        transform: translateY(105%);
        transition: transform .38s cubic-bezier(.2, .8, .2, 1);
    }
    .rs-sheet.is-open { transform: translateY(0); }
    .rs-sheet *, .rs-sheet *::before, .rs-sheet *::after { box-sizing: border-box; }

    .rs-sheet__handle {
        width: 40px;
        height: 4px;
        margin: 0 auto 14px;
        border-radius: 4px;
        background: #d8d2ca;
    }
    .rs-sheet__head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        border-bottom: 1px solid #ECE8E1;
    }
    .rs-sheet__title { font-weight: 500; }
    .rs-sheet__close {
        display: flex;
        background: none !important;
        border: 0 !important;
        color: #1a1a1a !important;
        cursor: pointer;
    }
    .rs-sheet__close svg { width: 100%; height: 100%; }

    /* Groupes */
    .rs-sheet .rs-group {
        display: block;
        border-bottom: 1px solid #ECE8E1;
    }
    .rs-sheet .rs-label {
        margin: 0 0 12px;
        font-weight: 500;
        letter-spacing: .12em;
        text-transform: uppercase;
        color: #6b6b6b;
    }

    /* Pastilles Type de bien */
    .rs-sheet .rs-chips {
        display: flex;
        gap: 8px;
        overflow-x: auto;
        scrollbar-width: none;
    }
    .rs-sheet .rs-chips::-webkit-scrollbar { display: none; }
    .rs-sheet .rs-chip {
        flex: 0 0 auto;
        background: #fff;
        border: 1px solid #ECE8E1;
        border-radius: 12px;
        color: #34405c;
        font-family: 'Poppins', sans-serif;
        white-space: nowrap;
        cursor: pointer;
    }
    .rs-sheet .rs-chip.is-on {
        background: #FFEDEA;
        border-color: #FF5C4C;
        color: #FF5C4C;
    }

    /* Curseurs Surface / Budget */
    .rs-sheet .rs-range__head {
        display: flex;
        align-items: center;
        justify-content: space-between;
    }
    .rs-sheet .rs-range__head .rs-label { margin: 0; }
    .rs-sheet .rs-range__value {
        background: #fff;
        border: 1px solid #ECE8E1;
        border-radius: 10px;
        color: #6b6b6b;
    }
    .rs-sheet .rs-range__value.is-on { color: #1a1a1a; font-weight: 500; }
    .rs-sheet input[type="range"] {
        --p: 0%;
        width: 100%;
        margin: 0;
        background: transparent;
        -webkit-appearance: none;
        appearance: none;
    }
    .rs-sheet input[type="range"]::-webkit-slider-runnable-track {
        height: 4px;
        border-radius: 4px;
        background: linear-gradient(to right, #FF5C4C 0 var(--p), #e3ddd6 var(--p) 100%);
    }
    .rs-sheet input[type="range"]::-webkit-slider-thumb {
        -webkit-appearance: none;
        width: 24px;
        height: 24px;
        margin-top: -10px;
        border-radius: 50%;
        background: #fff;
        border: 2px solid #FF5C4C;
        box-shadow: 0 2px 6px rgba(0, 0, 0, .15);
    }
    .rs-sheet input[type="range"]::-moz-range-track {
        height: 4px;
        border-radius: 4px;
        background: #e3ddd6;
    }
    .rs-sheet input[type="range"]::-moz-range-progress {
        height: 4px;
        border-radius: 4px;
        background: #FF5C4C;
    }
    .rs-sheet input[type="range"]::-moz-range-thumb {
        width: 20px;
        height: 20px;
        border-radius: 50%;
        background: #fff;
        border: 2px solid #FF5C4C;
    }
    .rs-sheet .rs-range__ends {
        display: flex;
        justify-content: space-between;
        color: #8a8a8a;
    }

    /* Pied du panneau */
    .rs-sheet__foot { text-align: center; }
    .rs-sheet__submit {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 12px;
        width: 100%;
        background: #FF5C4C !important;
        border: 0 !important;
        border-radius: 12px;
        color: #fff !important;
        font-family: 'Poppins', sans-serif;
        font-weight: 400;
        cursor: pointer;
    }
    .rs-sheet__submit svg { width: 16px; height: 10px; }
    .rs-sheet__reset {
        background: none !important;
        border: 0 !important;
        color: #6b6b6b !important;
        font-family: 'Poppins', sans-serif;
        font-size: 13px;
        text-decoration: underline;
        text-underline-offset: 3px;
        cursor: pointer;
    }
}

/* ==========================================================
   HOME : HERO PLUS COURT + CARTE DE RECHERCHE QUI CHEVAUCHE
   (tablette + mobile)
   ========================================================== */
@media (max-width: 1024px) {

    /* 1. Visuel du hero (section juste avant celle de la recherche) */
    .elementor-44402 > .elementor-element:has(+ .elementor-element-fc6ccad),
    .elementor-44402 > .elementor-element:has(+ .elementor-element-fc6ccad) > .elementor-container,
    .elementor-44402 > .elementor-element:has(+ .elementor-element-fc6ccad) > .e-con-inner {
        height: auto !important;
    }

    /* 2. La recherche remonte sur l'image */
    .elementor-element-fc6ccad {
        position: relative;
        z-index: 3;
    }

    /* 3. Aspect "carte" */
    #recherche-home.rs-compact .houzez-ele-search-form-wrapper {
        background: #F5F4F1 !important;
        border-radius: 22px;
        box-shadow: 0 12px 34px rgba(0, 0, 0, .14);
    }
}

/* ==========================================================
   HOME : BOUTONS SÉLECTIONNÉS EN FONCÉ (maquette)
   ========================================================== */
@media (max-width: 1024px) {

    /* Acheter / Louer : deux boutons côte à côte */
    #recherche-home.rs-compact .rs-segment .rs-chips {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }
    #recherche-home.rs-compact .rs-segment .rs-chip {
        width: 100%;
        padding: 0 12px !important;
        background: #fff !important;
        border: 1px solid #ECE8E1 !important;
        border-radius: 12px !important;
        color: #1a1a1a !important;
        font-weight: 400 !important;
        transition: background-color .2s ease, color .2s ease, border-color .2s ease;
    }

    /* Boutons sélectionnés : foncé */
    #recherche-home.rs-compact .rs-segment .rs-chip.is-on,
    .rs-sheet .rs-chip.is-on {
        background: #2A2521 !important;
        border-color: #2A2521 !important;
        color: #fff !important;
    }
}

/* ==========================================================
   HOME : AJUSTEMENTS (carte plus haute + panneau compact)
   ========================================================== */

/* 1. Visuel plus court + carte plus haute */
@media (max-width: 1024px) {
    #recherche-home { margin-top: -220px !important; }
}
@media (max-width: 767px) {
    #recherche-home { margin-top: -190px !important; }
}

/* 2. Un seul fond : le panneau intérieur devient transparent */
@media (max-width: 1024px) {
    #recherche-home.rs-compact .rs-panel {
        padding: 0 !important;
        margin: 0 0 14px !important;
        background: transparent !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }
    #recherche-home.rs-compact form,
    #recherche-home.rs-compact .elementor-widget-container {
        background: transparent !important;
        box-shadow: none !important;
    }
}

/* 3. Panneau "Affiner" resserré : tout tient sans défilement */
@media (max-width: 1024px) {
    .rs-sheet {
        max-height: 94vh;
        padding: 8px 20px calc(14px + env(safe-area-inset-bottom));
    }
    .rs-sheet__handle { margin-bottom: 8px; }
    .rs-sheet__head { padding-bottom: 10px; }
    .rs-sheet__title { font-size: 17px; }
    .rs-sheet__close { width: 30px; height: 30px; padding: 5px; }

    .rs-sheet .rs-group { padding: 12px 0; }
    .rs-sheet .rs-label { margin-bottom: 8px; font-size: 11px; }

    .rs-sheet .rs-chip { padding: 8px 14px; font-size: 13.5px; }

    .rs-sheet .rs-range__head { margin-bottom: 6px; }
    .rs-sheet .rs-range__value { padding: 4px 10px; font-size: 13px; }
    .rs-sheet input[type="range"] { height: 22px; }
    .rs-sheet .rs-range__ends { margin-top: 4px; font-size: 11.5px; }

    .rs-sheet__foot { padding-top: 14px; }
    .rs-sheet__submit { height: 50px; font-size: 15px; }
    .rs-sheet__reset { margin-top: 6px; padding: 4px; }
}

/* HOME : carte de recherche plus compacte (≤1024px) */
@media (max-width: 1024px) {
    #recherche-home.rs-compact .rs-panel { gap: 0 !important; }
    #recherche-home.rs-compact .rs-group { margin: 0 0 12px !important; padding: 0 !important; }
    #recherche-home.rs-compact .rs-label {
        margin: 0 0 6px !important;
        font-size: 11px !important;
        letter-spacing: .12em;
    }
    #recherche-home.rs-compact .rs-segment .rs-chip { height: 42px !important; font-size: 14px !important; }
    #recherche-home.rs-compact .rs-select { height: 44px !important; font-size: 15px !important; }
    #recherche-home.rs-compact .houzez-search-button,
    #recherche-home.rs-compact .btn-search,
    #recherche-home.rs-compact button[type="submit"] {
        height: 48px !important;
        min-height: 0 !important;
        margin: 2px 0 0 !important;
    }
    #recherche-home.rs-compact .elementor-field-group:not(.rs-hidden) { margin-bottom: 0 !important; padding-bottom: 0 !important; }
    #recherche-home.rs-compact .rs-refine { margin-top: 10px !important; padding-top: 10px !important; font-size: 13.5px !important; }
    #recherche-home.rs-compact .houzez-ele-search-form-wrapper { padding: 16px 16px 12px !important; }
}

/* ==========================================================
   HOME : CARTE DE RECHERCHE — POSITION + FOND UNIQUE (FINAL)
   ========================================================== */
@media (max-width: 1024px) {

    /* 1. Carte nettement plus haute sur le visuel */
    #recherche-home.rs-compact {
        position: relative;
        z-index: 5;
    }

    /* 2. Aucun fond à l'intérieur de la carte... */
    #recherche-home.rs-compact .elementor-widget-container,
    #recherche-home.rs-compact .houzez-ele-search-form-wrapper,
    #recherche-home.rs-compact form,
    #recherche-home.rs-compact .elementor-form-fields-wrapper,
    #recherche-home.rs-compact .elementor-field-group,
    #recherche-home.rs-compact .rs-panel,
    #recherche-home.rs-compact .rs-group {
        background: transparent !important;
        background-image: none !important;
        box-shadow: none !important;
        border-color: transparent !important;
        border-radius: 0 !important;
    }
    #recherche-home.rs-compact .elementor-widget-container,
    #recherche-home.rs-compact .houzez-ele-search-form-wrapper,
    #recherche-home.rs-compact .rs-panel {
        padding: 0 !important;
        margin: 0 !important;
    }

    /* ...une seule carte, sur le bloc de recherche lui-même */
    #recherche-home.rs-compact {
        padding: 16px 16px 12px !important;
        background: #F5F4F1 !important;
        border-radius: 22px !important;
        box-shadow: 0 12px 34px rgba(0, 0, 0, .14) !important;
    }
    #recherche-home.rs-compact .rs-panel { margin-bottom: 12px !important; }
}

/* HOME : supprime le second fond (conteneur Houzez) + aligne le bouton */
@media (max-width: 1024px) {
    #recherche-home.rs-compact .houzez-search-builder-wrapper {
        padding: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        border-radius: 0 !important;
    }
    #recherche-home.rs-compact .houzez-search-button {
        width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        border-radius: 12px !important;
    }
    #recherche-home.rs-compact .elementor-field-group:has(.houzez-search-button) {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

/* ==========================================================
   HOME : TITRE DU HERO + PANNEAU "AFFINER" STABLE
   ========================================================== */
@media (max-width: 1024px) {

    /* 1. Titre du hero descendu (visuel = section juste avant la recherche) */
    .elementor-44402 > .elementor-element:has(+ .elementor-element-fc6ccad) .elementor-widget-wrap,
    .elementor-44402 > .elementor-element:has(+ .elementor-element-fc6ccad) > .e-con-inner {
        align-content: flex-start !important;
        justify-content: flex-start !important;
    }

    /* 2. Panneau "Affiner" : plus de glissement à gauche / à droite */
    .rs-sheet {
        overflow-x: hidden !important;
        overscroll-behavior: contain;
        touch-action: pan-y;
    }
    .rs-sheet .rs-chips {
        margin: 0 -20px !important;
        padding: 0 20px 2px !important;
        touch-action: pan-x;
    }
}

/* ==========================================================
   HOME : HERO — hauteurs figées + titre centré (tablette + mobile)
   --hero-h  = hauteur de l'image (% de l'écran)
   --card-up = remontée de la carte de recherche sur l'image (% de l'écran)
   Le titre se centre tout seul dans la partie visible de l'image.
   ========================================================== */

/* Tablette (600 à 1024 px) : vos valeurs ici */
@media (min-width: 600px) and (max-width: 1024px) {
    .elementor-44402 {
        --hero-h: 55;
        --card-up: 10;
    }
}

/* Mobile (moins de 600 px) : vos valeurs ici */
@media (max-width: 599px) {
    .elementor-44402 {
        --hero-h: 50;
        --card-up: 18;
    }
}

/* Mise en page commune (ne pas modifier) */
@media (max-width: 1024px) {

    /* Hauteur de l'image */
    .elementor-44402 > .elementor-element:has(+ .elementor-element-fc6ccad),
    .elementor-44402 > .elementor-element:has(+ .elementor-element-fc6ccad) > .elementor-container,
    .elementor-44402 > .elementor-element:has(+ .elementor-element-fc6ccad) > .e-con-inner {
        min-height: calc(var(--dm-vh, 1svh) * var(--hero-h)) !important;
    }
    .elementor-44402 > .elementor-element:has(+ .elementor-element-fc6ccad) > .elementor-container {
        align-items: stretch !important;
    }

    /* Remontée de la carte de recherche */
    #recherche-home.rs-compact {
        margin-top: calc(var(--dm-vh, 1svh) * var(--card-up) * -1) !important;
    }

    /* Titre centré dans la partie visible (au-dessus de la carte) */
    .elementor-44402 > .elementor-element:has(+ .elementor-element-fc6ccad) .elementor-widget-wrap,
    .elementor-44402 > .elementor-element:has(+ .elementor-element-fc6ccad) > .e-con-inner {
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
        align-content: center !important;
        padding-top: 0 !important;
        padding-bottom: calc(var(--dm-vh, 1svh) * var(--card-up)) !important;
    }
    .elementor-44402 > .elementor-element:has(+ .elementor-element-fc6ccad) .elementor-widget-heading {
        margin-top: 0 !important;
        margin-bottom: 0 !important;
    }
}
/* ==========================================================
   LISTING (mobile) : RECHERCHE COMPACTE COMME LA HOME
   ========================================================== */
@media (max-width: 767px) {

    /* Localisation en liste */
    #desktop-header-search.rs-compact .rs-loc .rs-label { display: flex; align-items: center; gap: 6px; }
    #desktop-header-search.rs-compact .rs-loc .rs-label svg { width: 15px; height: 15px; }
    #desktop-header-search.rs-compact .rs-select {
        width: 100%;
        height: 44px;
        padding: 0 44px 0 16px;
        background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%231a1a1a' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 16px center / 12px 8px;
        border: 1px solid #ECE8E1;
        border-radius: 12px;
        color: #1a1a1a;
        font-family: 'Poppins', sans-serif;
        font-size: 16px;
        -webkit-appearance: none;
        appearance: none;
    }

    /* Espacements compacts */
    #desktop-header-search.rs-compact .rs-panel {
        padding: 0 !important;
        margin: 0 0 12px !important;
        background: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
    }
    #desktop-header-search.rs-compact .rs-group { margin: 0 0 12px !important; padding: 0 !important; }
    #desktop-header-search.rs-compact .rs-label { margin: 0 0 6px !important; font-size: 11px !important; letter-spacing: .12em; }

    /* Acheter / Louer : boutons côte à côte, sélection foncée */
    #desktop-header-search.rs-compact .rs-segment .rs-chips {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }
    #desktop-header-search.rs-compact .rs-segment .rs-chip {
        width: 100%;
        height: 42px;
        padding: 0 12px !important;
        background: #fff !important;
        border: 1px solid #ECE8E1 !important;
        border-radius: 12px !important;
        color: #1a1a1a !important;
        font-size: 14px !important;
    }
    #desktop-header-search.rs-compact .rs-segment .rs-chip.is-on {
        background: #2A2521 !important;
        border-color: #2A2521 !important;
        color: #fff !important;
    }

    /* Bouton Rechercher */
    #desktop-header-search.rs-compact .btn-search {
        height: 48px !important;
        border-radius: 12px !important;
    }

    /* Lien "Affiner ma recherche" */
    #desktop-header-search.rs-compact .rs-refine {
        display: flex;
        align-items: center;
        gap: 12px;
        width: 100%;
        margin-top: 10px;
        padding: 10px 2px 2px;
        background: none;
        border: 0;
        border-top: 1px solid #ECE8E1;
        border-radius: 0;
        color: #1a1a1a;
        font-family: 'Poppins', sans-serif;
        font-size: 13.5px;
        text-align: left;
        cursor: pointer;
    }
    #desktop-header-search.rs-compact .rs-refine svg { width: 20px; height: 20px; flex: 0 0 20px; }
    #desktop-header-search.rs-compact .rs-refine span { flex: 1; }
    #desktop-header-search.rs-compact .rs-refine em { font-style: normal; color: #FF5C4C; font-weight: 600; }
    #desktop-header-search.rs-compact .rs-refine__chev { width: 16px !important; height: 16px !important; }
}

/* LISTING (mobile) : séparateur + mise en page de "Affiner ma recherche" */
@media (max-width: 767px) {
    section#desktop-header-search.rs-compact .advanced-search-v3 > .d-flex > .rs-refine {
        position: relative !important;
        display: flex !important;
        align-items: center !important;
        gap: 12px !important;
        width: 100% !important;
        margin: 14px 0 0 !important;
        padding: 14px 2px 2px !important;
        border: 0 !important;
    }
    section#desktop-header-search.rs-compact .advanced-search-v3 > .d-flex > .rs-refine::before {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        top: 0;
        height: 1px;
        background: #ECE8E1;
    }
}

/* ==========================================================
   LISTING (mobile) : aucune flèche sur "Trier par"
   ========================================================== */
@media (max-width: 1024px) {

    /* Flèches du menu du thème */
    .sort-by .bootstrap-select > .dropdown-toggle::after,
    .sort-by .bootstrap-select > .dropdown-toggle::before,
    .sort-by .bootstrap-select .filter-option-inner-inner::after,
    .sort-by .bootstrap-select .bs-caret,
    .sort-by .bootstrap-select .caret,
    .sort-by .bootstrap-select > .dropdown-toggle i,
    .sort-by .bootstrap-select > .dropdown-toggle svg {
        display: none !important;
        content: none !important;
    }
    .sort-by .bootstrap-select > .dropdown-toggle {
        background-image: none !important;
        padding-right: 0 !important;
    }

    /* Liste native de l'iPhone (flèches ⇕) */
    .sort-by select {
        -webkit-appearance: none !important;
        appearance: none !important;
        background: transparent !important;
        background-image: none !important;
        border: 0 !important;
        color: transparent !important;
        opacity: 0 !important;
    }
}

/* ==========================================================
   HOME : plus d'espace au-dessus de l'image du hero
   (la descente s'applique au titre seul, plus à toute la colonne)
   ========================================================== */
@media (max-width: 1024px) {
    .elementor-44402 > .elementor-element:has(+ .elementor-element-fc6ccad) .elementor-widget-wrap,
    .elementor-44402 > .elementor-element:has(+ .elementor-element-fc6ccad) > .e-con-inner {
        padding-top: 0 !important;
    }
    .elementor-44402 > .elementor-element:has(+ .elementor-element-fc6ccad) .elementor-widget-heading:not(.elementor-widget-heading ~ .elementor-widget-heading) {
        margin-top: calc(var(--dm-vh, 1svh) * 11) !important;
    }
}
@media (max-width: 767px) {
    .elementor-44402 > .elementor-element:has(+ .elementor-element-fc6ccad) .elementor-widget-heading:not(.elementor-widget-heading ~ .elementor-widget-heading) {
        margin-top: calc(var(--dm-vh, 1svh) * 9) !important;
    }
}

/* Collages Marseille / Vars : apparition douce (home, Acheter, Copropriété) */
.durand-collage-wrap img.dm-reveal,
.dm-achterr__visual img.dm-reveal,
.dm-syndic__visual img.dm-reveal {
    opacity: 0;
    translate: 0 28px;
    scale: .97;
    transition:
        opacity 1s ease var(--d, 0s),
        translate 1.2s cubic-bezier(.2, .7, .2, 1) var(--d, 0s),
        scale 1.2s cubic-bezier(.2, .7, .2, 1) var(--d, 0s);
}
.durand-collage-wrap img.dm-reveal.is-in,
.dm-achterr__visual img.dm-reveal.is-in,
.dm-syndic__visual img.dm-reveal.is-in {
    opacity: 1;
    translate: 0 0;
    scale: 1;
}
/* ==========================================================
   LISTING (mobile/tablette) : carte arrondie + plein écran
   ========================================================== */
@media (max-width: 1024px) {

    /* La carte repasse au-dessus des résultats */
    html body.page-id-47455 *:has(> #map-view-wrap) {
        display: flex !important;
        flex-direction: column !important;
    }
    html body.page-id-47455 #map-view-wrap {
        display: block !important;
        order: -1;
        position: relative !important;
        top: auto !important;
        left: auto !important;
        flex: none !important;
        width: auto !important;
        max-width: none !important;
        height: 280px !important;
        margin: 16px 40px 8px !important;
        border-radius: 16px;
        overflow: hidden;
        box-shadow: 0 8px 24px rgba(0, 0, 0, .08);
        z-index: 2;
    }
    html body.page-id-47455 #map-view-wrap .map-wrap,
    html body.page-id-47455 #houzez-gmap-view {
        height: 100% !important;
        min-height: 0 !important;
    }
    html body.page-id-47455 #houzez-gmap-prev,
    html body.page-id-47455 #houzez-gmap-next {
        display: none !important;
    }

    /* Bouton agrandir / voir la liste */
    .dm-map-btn {
        position: absolute;
        top: 12px;
        right: 12px;
        z-index: 10;
        display: flex;
        align-items: center;
        gap: 8px;
        height: 40px;
        min-width: 40px;
        padding: 0 10px;
        background: #fff !important;
        border: 0 !important;
        border-radius: 20px !important;
        box-shadow: 0 2px 10px rgba(0, 0, 0, .18);
        color: #1a1a1a !important;
        font-family: 'Poppins', sans-serif;
        font-size: 14px;
        cursor: pointer;
    }
    .dm-map-btn svg { width: 20px; height: 20px; flex: 0 0 20px; }

    /* Plein écran */
    html body.page-id-47455 #map-view-wrap.dm-map-full {
        position: fixed !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        margin: 0 !important;
        border-radius: 0;
        z-index: 99990;
    }
    #map-view-wrap.dm-map-full .dm-map-btn {
        top: auto;
        bottom: calc(24px + env(safe-area-inset-bottom));
        right: 50%;
        transform: translateX(50%);
        padding: 0 18px;
        background: #1a1a1a !important;
        color: #fff !important;
    }
    html.dm-map-lock,
    html.dm-map-lock body { overflow: hidden; }
}

@media (max-width: 767px) {
    html body.page-id-47455 #map-view-wrap {
        height: 240px !important;
        margin: 12px 24px 4px !important;
    }
}

/* LISTING (mobile) : espace réduit entre la pagination et "Vous ne trouvez pas le bien idéal ?" */
@media (max-width: 767px) {
    .page-id-47455 .pagination-wrap {
        margin-bottom: 0 !important;
    }
    .page-id-47455 #half-map-listing-area {
        padding-bottom: 0px !important;
    }
}

/* ==========================================================
   FICHE BIEN : description plus aérée (tous écrans)
   ========================================================== */
.single-property .elementor-widget-houzez-property-content .elementor-widget-container {
    max-width: 700px;
}
.single-property .elementor-widget-houzez-property-content p {
    margin: 0 0 1.1em !important;
    font-size: 17px !important;
    line-height: 1.75 !important;
    letter-spacing: .01em;
}
.single-property .elementor-widget-houzez-property-content p:last-child {
    margin-bottom: 0 !important;
}

@media (max-width: 767px) {
    .single-property .elementor-widget-houzez-property-content .elementor-widget-container {
        max-width: none;
    }
    .single-property .elementor-widget-houzez-property-content p {
        font-size: 16px !important;
        line-height: 1.7 !important;
        margin-bottom: 1em !important;
    }
}

/* ==========================================================
   FICHE BIEN : titre "Le Bien" rapproché du texte (tous écrans),
   espace sous le texte + formulaire à sa hauteur (ordinateur)
   ========================================================== */

/* ---------- Ordinateur ---------- */
@media (min-width: 1025px) {

    /* "Le Bien" : espace réduit mais confortable */
    .elementor-element-e537fc4 .elementor-element-3cf0465 {
        margin-bottom: 32px !important;
    }
    .elementor-element-b72effa {
        padding-top: 0 !important;
        padding-bottom: 96px !important;   /* espace sous le texte */
    }

    /* Le formulaire garde sa hauteur, sans s'étirer le long du texte */
    .elementor-element-44d85f1 {
        align-self: flex-start !important;
        height: auto !important;
    }
    .elementor-element-44d85f1 > .elementor-element-819f467,
    .elementor-element-819f467 {
        height: auto !important;
        min-height: 0 !important;
    }
}

/* ---------- Tablette + mobile ---------- */
@media (max-width: 1024px) {
    .elementor-element-e537fc4 .elementor-element-3cf0465 {
        margin-bottom: 24px !important;
    }
    .elementor-element-b72effa {
        padding-top: 0 !important;
    }
    .elementor-element-6af2a62 {
        padding-top: 0 !important;
    }
}

/* ==========================================================
   PAGE CONTACT : MARGES LATÉRALES (mobile + tablette)
   + FORMULAIRE EN TABLETTE
   Le bandeau corail et le footer restent en pleine largeur.
   ========================================================== */

/* ---------- Mobile : 20 px de chaque côté ---------- */
@media (max-width: 767px) {
    body:has(.dm-ctc) main .elementor > .elementor-element:not(:has(.durand-footer)):not(:has(.dm-espace)) {
        padding-left: 20px !important;
        padding-right: 20px !important;
        box-sizing: border-box !important;
    }
}

/* ---------- Tablette (768 à 1024 px) ---------- */
@media (min-width: 768px) and (max-width: 1024px) {

    /* 1. Marges latérales de 40 px */
    body:has(.dm-ctc) main .elementor > .elementor-element:not(:has(.durand-footer)):not(:has(.dm-espace)) {
        padding-left: 40px !important;
        padding-right: 40px !important;
        box-sizing: border-box !important;
    }

    /* 2. Colonne texte + photo sur toute la largeur */
    .elementor-widget-html:has(.dm-ctc) {
        width: 100% !important;
        max-width: 100% !important;
    }
    .dm-ctc__title,
    .dm-ctc__text { max-width: 640px; }
    .dm-ctc__media img { aspect-ratio: 16 / 9; }

    /* 3. Formulaire : 2 colonnes, espacements resserrés */
    .wpcf7-form:has(.form-section-title) {
        margin-top: 40px;
    }
    .wpcf7-form:has(.form-section-title) .row {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 14px 16px !important;
        margin: 0 0 14px !important;
    }
    .wpcf7-form:has(.form-section-title) .row > [class*="col-"] {
        width: 100% !important;
        max-width: none !important;
        flex: none !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    .wpcf7-form:has(.form-section-title) p {
        margin: 0 !important;
    }
    .wpcf7-form:has(.form-section-title) .wpcf7-form-control-wrap {
        display: block;
    }
    .wpcf7-form:has(.form-section-title) .form-section-title p {
        margin: 24px 0 10px !important;
        font-size: 12px !important;
        letter-spacing: .12em;
        color: var(--dm-muted) !important;
    }
    .wpcf7-form:has(.form-section-title) input[type="text"],
    .wpcf7-form:has(.form-section-title) input[type="email"],
    .wpcf7-form:has(.form-section-title) input[type="tel"],
    .wpcf7-form:has(.form-section-title) select {
        width: 100% !important;
        height: 52px !important;
        margin: 0 !important;
        font-size: 16px !important;
    }
    .wpcf7-form:has(.form-section-title) textarea {
        width: 100% !important;
        height: 180px !important;
        margin: 0 !important;
        font-size: 16px !important;
    }

    /* Consentement + bouton */
    .wpcf7-form:has(.form-section-title) p:has(.wpcf7-acceptance) {
        margin-top: 24px !important;
    }
    .wpcf7-form:has(.form-section-title) .wpcf7-submit {
        margin-top: 20px !important;
    }
}

/* ==========================================================
   PAGE CONTACT : PANNEAU DE REMERCIEMENT APRÈS ENVOI (tous écrans)
   ========================================================== */
/* L'enveloppe ne change rien à la mise en page (2 colonnes tablette, etc.) */
.wpcf7-form:not(.sent) .dm-cform__inner { display: contents; }

.dm-cform__thanks { display: none; }

/* Après un envoi réussi : les champs laissent place au panneau */
.wpcf7-form.sent .dm-cform__inner { display: none; }
.wpcf7-form.sent .dm-cform__thanks {
    display: block;
    grid-column: 1 / -1;
    padding: 44px 40px;
    background: var(--dm-beige);
    color: var(--dm-text);
    font-family: 'Poppins', sans-serif;
    animation: dm-cform-in .5s ease both;
}
.wpcf7-form.sent:has(.dm-cform__thanks) .wpcf7-response-output {
    display: none !important;
}
@keyframes dm-cform-in {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: none; }
}

.dm-cform__thanks-icon {
    display: block;
    width: 48px;
    height: 48px;
    margin-bottom: 20px;
    border-radius: 50%;
    background: var(--dm-coral) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='14' viewBox='0 0 18 14'%3E%3Cpath d='M1 7l5 5L17 1' fill='none' stroke='%23fff' stroke-width='2'/%3E%3C/svg%3E") center / 18px 14px no-repeat;
}
.wpcf7-form .dm-cform__thanks-title {
    margin: 0 0 10px !important;
    font-size: 22px !important;
    font-weight: 400 !important;
    line-height: 1.35 !important;
    color: var(--dm-text) !important;
}
.wpcf7-form .dm-cform__thanks-text {
    margin: 0 !important;
    font-size: 15px !important;
    font-weight: 300 !important;
    line-height: 1.7 !important;
    letter-spacing: .03em;
    color: var(--dm-text) !important;
}

@media (max-width: 767px) {
    .wpcf7-form.sent .dm-cform__thanks { padding: 32px 24px; }
    .dm-cform__thanks-icon { width: 44px; height: 44px; margin-bottom: 16px; }
    .wpcf7-form .dm-cform__thanks-title { font-size: 19px !important; }
}

/* ==========================================================
   CF7 : MESSAGES D'ERREUR PLUS DISCRETS (tous formulaires)
   ========================================================== */
.wpcf7-form .wpcf7-not-valid-tip {
    display: block;
    margin-top: 6px !important;
    font-family: 'Poppins', sans-serif;
    font-size: 13px !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
    letter-spacing: .01em;
    color: #d63c2f !important;
}

/* Message global sous le bouton (« Un ou plusieurs champs… ») */
.wpcf7-form .wpcf7-response-output {
    font-size: 13px !important;
    line-height: 1.5 !important;
}

@media (max-width: 767px) {
    .wpcf7-form .wpcf7-not-valid-tip { font-size: 12px !important; }
}

/* ==========================================================
   LISTING : RECHERCHE COMPACTE AUSSI EN TABLETTE (768–1024px)
   (reprend à l'identique la version mobile)
   ========================================================== */
@media (min-width: 768px) and (max-width: 1024px) {

    /* --- Carte de recherche : une seule colonne --- */
    .page-id-47455 #desktop-header-search > .container-fluid {
        display: block !important;
    }
    .page-id-47455 #desktop-header-search .rs-panel {
        display: block !important;
        width: 100%;
        font-family: 'Poppins', sans-serif;
    }
    .page-id-47455 #desktop-header-search .rs-hidden {
        display: none !important;
    }
    .page-id-47455 #desktop-header-search .advanced-search-v3 > .d-flex {
        display: block !important;
    }
    .page-id-47455 #desktop-header-search .btn-no-right-padding,
    .page-id-47455 #desktop-header-search .advanced-search-v3 > .d-flex > :last-child {
        display: block !important;
        width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
        border: 0 !important;
    }
    .page-id-47455 #desktop-header-search .btn-search {
        width: 100% !important;
        height: 50px !important;
        font-size: 15px !important;
    }
    .page-id-47455 #desktop-header-search .advanced-search-v3 {
        padding: 22px 18px 20px !important;
        transition: opacity .25s;
    }
    /* Évite le flash de l'ancienne recherche au chargement */
    .page-id-47455 #desktop-header-search:not([data-rs-done]) .advanced-search-v3 {
        visibility: hidden;
        opacity: 0;
        animation: rs-reveal 0s 1.5s forwards;
    }

    /* --- Localisation en liste --- */
    #desktop-header-search.rs-compact .rs-loc .rs-label {
        display: flex;
        align-items: center;
        gap: 6px;
    }
    #desktop-header-search.rs-compact .rs-loc .rs-label svg { width: 15px; height: 15px; }
    #desktop-header-search.rs-compact .rs-select {
        width: 100%;
        height: 44px;
        padding: 0 44px 0 16px;
        background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%231a1a1a' stroke-width='1.5'/%3E%3C/svg%3E") right 16px center / 12px 8px no-repeat;
        border: 1px solid #ECE8E1;
        border-radius: 12px;
        color: #1a1a1a;
        font-family: 'Poppins', sans-serif;
        font-size: 16px;
        -webkit-appearance: none;
        appearance: none;
    }

    /* --- Groupes et libellés --- */
    #desktop-header-search.rs-compact .rs-panel {
        padding: 0 !important;
        margin: 0 0 12px !important;
        background: none !important;
        border: 0 !important;
        box-shadow: none !important;
    }
    #desktop-header-search.rs-compact .rs-group {
        margin: 0 0 12px !important;
        padding: 0 !important;
    }
    #desktop-header-search.rs-compact .rs-label {
        margin: 0 0 6px !important;
        font-size: 11px !important;
        letter-spacing: .12em;
    }

    /* --- Acheter / Louer --- */
    #desktop-header-search.rs-compact .rs-segment .rs-chips {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }
    #desktop-header-search.rs-compact .rs-segment .rs-chip {
        width: 100%;
        height: 42px;
        padding: 0 12px !important;
        background: #fff !important;
        border: 1px solid #ECE8E1 !important;
        border-radius: 12px !important;
        color: #1a1a1a !important;
        font-size: 14px !important;
    }
    #desktop-header-search.rs-compact .rs-segment .rs-chip.is-on {
        background: #2A2521 !important;
        border-color: #2A2521 !important;
        color: #fff !important;
    }
    #desktop-header-search.rs-compact .btn-search {
        height: 48px !important;
        border-radius: 12px !important;
    }

    /* --- Lien "Affiner ma recherche" --- */
    #desktop-header-search.rs-compact .rs-refine svg { width: 20px; height: 20px; flex: 0 0 20px; }
    #desktop-header-search.rs-compact .rs-refine span { flex: 1; }
    #desktop-header-search.rs-compact .rs-refine em { font-style: normal; color: var(--dm-coral, #FF5C4C); font-weight: 600; }
    #desktop-header-search.rs-compact .rs-refine__chev { width: 16px !important; height: 16px !important; }
    section#desktop-header-search.rs-compact .advanced-search-v3 > .d-flex > .rs-refine {
        position: relative !important;
        display: flex !important;
        align-items: center !important;
        gap: 12px !important;
        width: 100% !important;
        margin: 14px 0 0 !important;
        padding: 14px 2px 2px !important;
        background: none;
        border: 0 !important;
        border-radius: 0;
        color: #1a1a1a;
        font-family: 'Poppins', sans-serif;
        font-size: 13.5px;
        text-align: left;
        cursor: pointer;
    }
    section#desktop-header-search.rs-compact .advanced-search-v3 > .d-flex > .rs-refine::before {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        top: 0;
        height: 1px;
        background: #ECE8E1;
    }
}

/* ==========================================================
   HOME : LABELS DU CARROUSEL "COUP DE CŒUR" STABLES AU DÉFILEMENT
   (tous écrans : les labels restent au-dessus de l'image
   pendant l'animation d'échelle des cartes)
   ========================================================== */
.property-carousel-module .item-header .label-featured,
.property-carousel-module .item-header .labels-wrap,
.property-carousel-module .item-header .durand-extra-labels {
    z-index: 5;
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    transition: none !important;
}

/* ==========================================================
   CF7 : WIDGET ANTI-SPAM TURNSTILE (sous le bouton)
   ========================================================== */
.wpcf7-form .dm-turnstile {
    width: 100%;
    margin: 14px 0 0;
    line-height: 0;
}
.wpcf7-form .dm-turnstile > *,
.wpcf7-form .dm-turnstile iframe {
    max-width: 100% !important;
}
/* Invisible tant que Cloudflare ne demande rien : pas d'espace vide */
.wpcf7-form .dm-turnstile:not(:has(iframe[style*="visibility: visible"])):not(:has(.wpcf7-not-valid-tip)) {
    margin: 0;
}
.wpcf7-form .dm-turnstile .wpcf7-not-valid-tip {
    line-height: 1.4;
    margin-top: 6px !important;
}

/* Page Contact (fond blanc) : même largeur que le bouton */
.wpcf7-form:has(.form-section-title) .dm-turnstile {
    max-width: 340px;
}

/* ==========================================================
   CF7 : MESSAGES D'ERREUR EN BLANC SUR LES FORMULAIRES CORAIL (dm-lead)
   ========================================================== */
.wpcf7-form .dm-lead .wpcf7-not-valid-tip,
.wpcf7-form:has(.dm-lead) .wpcf7-not-valid-tip {
    color: #fff !important;
    opacity: 1 !important;
}

/* Champ en erreur : bordure blanche plus marquée (au lieu du rouge) */
.wpcf7-form .dm-lead .wpcf7-not-valid,
.wpcf7-form:has(.dm-lead) .wpcf7-not-valid {
    border-color: #fff !important;
    box-shadow: inset 0 0 0 1px #fff !important;
}

/* Message global sous le bouton (« Un ou plusieurs champs… ») */
.wpcf7-form:has(.dm-lead) .wpcf7-response-output {
    color: #fff !important;
    border-color: rgba(255, 255, 255, .6) !important;
}

/* ==========================================================
   AVIS : VOILE BLANC SUR LA PHOTO + TITRE NOIR (.durand-avis)
   (sélecteurs renforcés pour passer devant le CSS du widget)
   ========================================================== */

/* Bloc photo = exactement la taille de la photo, centré */
.durand-avis .durand-avis__hero {
    position: relative !important;
    display: block !important;
    width: fit-content !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Taille de la photo (fixée sans % pour que le voile la suive) */
.durand-avis .durand-avis__photo {
    display: block !important;
    width: 460px !important;
    max-width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    filter: none !important;
}

/* Voile blanc : couvre la photo, pas le fond beige */
.durand-avis .durand-avis__hero::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: rgba(255, 255, 255, .58);
    pointer-events: none;
}

/* Titre centré dans la photo */
.durand-avis .durand-avis__title {
    position: absolute !important;
    inset: 0 !important;
    z-index: 2 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: .3em !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 32px !important;
    transform: none !important;
    text-align: center !important;
    text-shadow: none !important;
    color: var(--dm-text, #1a1a1a) !important;
}
.durand-avis .durand-avis__title .durand-avis__line1,
.durand-avis .durand-avis__title .durand-avis__line2 {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    text-shadow: none !important;
    color: var(--dm-text, #1a1a1a) !important;
}
.durand-avis .durand-avis__title .durand-avis__line1 {
    font-size: 30px !important;
    line-height: 1.2 !important;
}
.durand-avis .durand-avis__title .durand-avis__line2 {
    font-size: 40px !important;
    line-height: 1.12 !important;
}

/* ---------- TABLETTE ---------- */
@media (min-width: 768px) and (max-width: 1024px) {
    .durand-avis .durand-avis__photo {
        width: min(420px, 60vw) !important;
    }
    .durand-avis .durand-avis__title .durand-avis__line1 { font-size: 26px !important; }
    .durand-avis .durand-avis__title .durand-avis__line2 { font-size: 34px !important; }
}

/* ---------- MOBILE ---------- */
@media (max-width: 767px) {

    /* Photo pleine largeur du contenu, carrée */
    .durand-avis .durand-avis__hero {
        width: 100% !important;
    }
    .durand-avis .durand-avis__photo {
        width: 100% !important;
        object-position: center 30%;
    }
    .durand-avis .durand-avis__hero::after {
        background: rgba(255, 255, 255, .62);
    }

    /* Titre : plus grand */
    .durand-avis .durand-avis__title {
        gap: .4em !important;
        padding: 0 24px !important;
    }
    .durand-avis .durand-avis__title .durand-avis__line1 {
        font-size: clamp(18px, 5.4vw, 23px) !important;
        line-height: 1.25 !important;
    }
    .durand-avis .durand-avis__title .durand-avis__line2 {
        font-size: clamp(26px, 7.8vw, 34px) !important;
        line-height: 1.12 !important;
    }

    /* Note sous la photo */
    .durand-avis .durand-avis__note {
        margin-top: 12px !important;
        font-size: 12px !important;
        line-height: 1.5 !important;
        text-align: center !important;
    }
}

/* ==========================================================
   HEADER : MARGES LATÉRALES ENTRE 1025 ET 1250 PX
   (logo et bouton alignés sur le contenu des pages)
   ========================================================== */
@media (min-width: 1025px) and (max-width: 1250px) {
    #header-section.header-desktop > .container {
        width: 100% !important;
        max-width: none !important;
        /* + 12 px : compense le décalage interne du logo */
        padding-left: calc(max(20px, (100vw - 1210px) / 2 + 20px) + 12px) !important;
        padding-right: max(20px, (100vw - 1210px) / 2 + 20px) !important;
    }
}

/* ==========================================================
   COMPLIANZ : BOUTON FLOTTANT "GÉRER LE CONSENTEMENT" MASQUÉ
   (accès conservé via le lien "Gérer mes cookies" du footer)
   ========================================================== */
.cmplz-manage-consent,
#cmplz-manage-consent .cmplz-manage-consent {
    display: none !important;
}




/* Message de confirmation / erreur des formulaires Houzez */
.form_messages .alert {
	position: relative;
	background: #fff;
	border: 0;
	border-left: 3px solid #FF5C4C;
	border-radius: 0;
	color: #222;
	font-family: Poppins, sans-serif;
	font-size: 14px;
	line-height: 1.5;
	padding: 12px 40px 12px 14px;
	margin-bottom: 20px;
	box-shadow: none;
}
.form_messages .alert .houzez-icon {
	color: #FF5C4C;
	margin-right: 6px;
}
.form_messages .alert .close {
	position: absolute;
	top: 50%;
	right: 10px;
	transform: translateY(-50%);
	background: none;
	border: 0;
	padding: 4px;
	font-size: 11px;
	opacity: .5;
}
.form_messages .alert .close:hover {
	opacity: 1;
}
.form_messages .alert-danger {
	border-left-color: #c0392b;
}
.form_messages .alert-danger .houzez-icon {
	color: #c0392b;
}


/* Carte des biens : masquer le message "X biens affichés" */
#houzez-map-message { display: none !important; }
